ROS随笔记(二)

ROS随笔记(二)

1.ubuntu安装GIMP(可用于修改pgm地图)

修改pgm地图的轻量软件:GIMP,可通过软件商店直接安装。
参考链接:Ubuntu18.04通过软件商店安装类似Photoshop的GIMP 2.10.20

2.安装gtsam

gtsam编译报错:

/gtsam/gtsam/3rdparty/CCOLAMD/Source/ccolamd.c:1:0: error: unknown value ‘native’ for -march

参考链接:GTSAM各版本汇总及ubuntu20.04编译时遇到问题及方法总结
GTSAM在LOAM/LIO-SAM系列中mapOptmization进程中断问题
安装GTSAM
解决办法:(安装GTSAM过程)

##1.下载gtsam源码
git clone https://bitbucket.org/gtborg/gtsam.git 
##2.依赖
Boost >= 1.43 (Ubuntu: sudo apt-get install libboost-all-dev)
CMake >= 3.0 (Ubuntu: sudo apt-get install cmake)
##3.编译
mkdir build
cd build
cmake .. -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF 
make check (可以选的)
make install  #或者sudo make install 

2)安装gtsam报错

安装gtsam时,make报错

undefined reference to pthread_mutexattr_init

解决方法:
在CMakeLists.txt里面加上以下:

set(CMAKE_CXX_FLAGS "-std=c++11 -O2 -pthread")

3.编译grid_map包报错

编译grid_map包报一堆<filters/filter_base.hpp>错:

/grid_map/grid_map_filters/include/grid_map_filters/MathExpressionFilter.hpp:14:10: fatal error: filters/filter_base.hpp: No such file or directory
#include <filters/filter_base.hpp>

**解决方案:**将对应路径的.h文件中#include <filters/filter_base.hpp>修改为#include <filters/filter_base.h>

4.编译grid_map包中grid_map_filters报错(AARCH64 linux架构)

编译grid_map包中grid_map_filters报错:

/grid_map/grid_map_filters/CMakeLists.txt:35 (find_package): By not providing “FindTBB.cmake” in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by “TBB”, but CMake did not find one.
Could not find a package configuration file provided by “TBB” (requested version 2020.1) with any of the following names:

TBBConfig.cmake
tbb-config.cmake

解决方法:
1.安装AARCH64 linux架构下的TBB库
PS: 装的是2020.2版本(找不到AARCH64 linux版TBB的2020.2版本),grid_map指定的是2020.1版本,所以需要修改一下/grid_map_filters/CMakeLists.txt文件。

cd tbb-aarch64
./scripts/bootstrap-aarch64-linux.sh
cmake .
sudo make install  ##加上sudo,不然会报错

2.修改一下/grid_map_filters/CMakeLists.txt文件
报错:

/grid_map/grid_map_filters/CMakeLists.txt:35 (find_package): Could not find a configuration file for package “TBB” that exactly matches requested version “2020.1”. The following configuration files were considered but not accepted:

/usr/local/lib/cmake/tbb/TBBConfig.cmake, version: 2020.2

解决方法:修改一下/grid_map_filters/CMakeLists.txt文件:
按照报错提示,把CMakeLists.txt中35行2020.1改成2020.2即可。

5.make

sudo make -j$(nproc) #该命令自动计算可用几核

6.查看版本

(1)eigen3

pkg-config --modversion eigen3
dpkg -s libeigen3-dev | grep Version #方法2

(2)opencv

opencv_version
pkg-config --modversion opencv   #方法2

(3)Eigen & cere-solover

# Eigen
sudo gedit /usr/include/eigen3/Eigen/src/Core/util/Macros.h #大概14-16行
# cere-solover
打开home下安装ceres-solver的文件夹,然后打开ceres-solver的package.xml文件,可以看到版本号

PS: Eigen & cere-solover版本对应关系:
Ceres Solver

7.GDB调试ROS Launch启动程序

参考链接:GDB调试ROS Launch启动程序
GDB调试常用参数

//在launch文件中添加
launch-prefix = "gdb -ex run --args"

GDB常用参数:

(gdb)n:单步调试(逐过程,函数直接执行)
s:单步调试(逐语句:跳入自定义函数内部执行)
bt:查看函数的调用的栈帧和层级关系
c:继续运行
q:退出gdb
b:在第num行设置断点
d:删除第num个断点

8.ImportError: No module named sklearn.neighbors(跑Livox-Localization)

解决方法:确保python环境下安装了sklearn

sudo apt-get install python-sklearn

参考链接:
Ubuntu下安装scikit-learn(sklearn)

9.ceres报错

/usr/bin/ld: /home/xavier/zq/kyxz/devel/.private/project_721/lib/project_721/estimate_test: hidden symbol `_ZN5ceres12CostFunctionD2Ev’ in /usr/local/lib/libceres.a(cost_function.cc.o) is referenced by DSO
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status

解决方法:
把ceres中的CmakeLists内容:

set(CMAKE_C_VISIBILITY_PRESET hidden)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)

改为

set(CMAKE_C_VISIBILITY_PRESET default)
set(CMAKE_CXX_VISIBILITY_PRESET default)
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)

参考链接:
Hidden symbol error. #804

10.ubuntu关闭自动休眠

gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'

参考链接:
如何关闭Ubuntu的自动休眠

### GTSAM库在Ubuntu 22.04上的安装方法 为了在 Ubuntu 22.04 上为 ROS 2 安装 GTSAM 库,可以按照以下方式操作: #### 准备工作 确保系统已更新至最新状态并安装必要的依赖项。运行以下命令来完成环境准备: ```bash sudo apt update && sudo apt upgrade -y sudo apt install build-essential cmake git pkg-config python3-pip -y pip3 install numpy empy catkin_pkg pybind11 ``` #### 方法一:通过源码编译安装 GTSAM 如果需要最新的功能支持或者自定义配置,可以通过源码构建 GTSAM。 ##### 下载 GTSAM 源码 克隆官方仓库到本地目录: ```bash git clone https://github.com/borglab/gtsam.git ~/gtsam_source cd ~/gtsam_source ``` ##### 配置和编译 创建一个单独的构建文件夹以保持项目结构清晰,并执行 CMake 构建过程: ```bash mkdir build && cd build cmake .. -DGTSAM_BUILD_WITH_MEX=OFF -DGTSAM_INSTALL_CMAKE_CONFIG=ON \ -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release make -j$(nproc) ``` ##### 安装库 完成后将生成的共享库文件复制到标准路径下以便于 ROS 使用: ```bash sudo make install sudo ldconfig ``` 此步骤会默认把库放置在 `/usr/local/lib` 中[^1]。 #### 解决ROS无法找到GTSAM的问题 由于 ROS 的查找机制可能不会自动扫描 `/usr/local/lib` 路径下的动态链接库,在这种情况下可手动将其拷贝到 ROS 默认使用的库路径中去解决这个问题: ```bash sudo cp /usr/local/lib/libmetis-gtsam.so /opt/ros/<your_ros2_distro>/lib/ ``` 注意替换 `<your_ros2_distro>` 成实际版本名比如 `humble`, `foxy` 等[^2]。 #### 方法:利用预编译包管理工具(推荐) 对于不想经历复杂编译流程的情况,也可以尝试借助 APT 或 Conda 渠道获取预先打包好的软件包。不过需要注意的是这些渠道提供的可能是较旧版次的 GTSAM ,具体取决于维护者的更新频率。 例如使用 conda 来简化安装体验: ```bash conda create --name myenv python=3.8 conda activate myenv conda install -c conda-forge gtsam ``` 最后确认 Python 绑定正常加载无误之后就可以开始开发基于 GTSAM 和 ROS 结合的应用程序了。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值