【安装学习】安装Cartographer ROS(noetic)
参考链接:https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html
1、创建工作空间
1 | mkdir -p ~/catkin_google_ws/src |
2、安装工具
1 | sudo apt update |
3、初始化工作空间
1 | cd catkin_google_ws |
4、安装依赖
1 | sudo pip install rosdepc |
5、Libabsl-dev处理
进行XML文件修改,路径为
1 | cartographer_ws/src/cartographer/package.xml |
找到第46行<depend>libabsl-dev</depend>
删掉
6、执行rosdep install命令
1 | rosdep update |
7、安装abseil库
先删除本地abseil库
1
sudo apt-get remove ros-${ROS_DISTRO}-abseil-cpp
再运行
1
src/cartographer/scripts/install_abseil.sh
这时发现可能会报错,类型如下:
1
* existing target is neither a link nor a directory: include/absl/base/internal/sysinfo.h
定位到上方.sh脚本运行后下载的文件夹,与src文件夹同级,进行如下操作:
1
2
3
4
5cd ~/path/to/abseil-cpp
mkdir build && cd build
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE -DCMAKE_BUILD_TYPE=Release ..
make -j$(nproc)
sudo make install确保编译器可以找到安装的
abseil-cpp
库。检查LD_LIBRARY_PATH
和CMAKE_PREFIX_PATH
中是否包含/usr/local/lib
和/usr/local
,以确保 CMake 和 linker 能找到abseil-cpp
库。请在终端中执行下方命令,以将这些变量永久添加到~/.bashrc
里:1
2
3echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
echo 'export CMAKE_PREFIX_PATH=/usr/local:$CMAKE_PREFIX_PATH' >> ~/.bashrc
source ~/.bashrc
8、构建
在 catkin_ws
中清理 build_isolated
和 devel_isolated
文件夹后重新构建:
1 | cd ~/WS/catkin_ws |