cartgrapher的安装以及编译
因为最近学习用到动态栅格地图构建,所以选择cartgrapher作为工具,但是在安装中出现了种种问题,最后导致许多天科研工作没进展,今天就顺利安装成功,写下来用以备忘记录。
写在前面:这篇博客主要记载cartgrapher的安装和编译,在此之前已经按顺序安装好了ubuntu16.04+kinetic版本的ROS:
1、好像还没有写ubuntu16.04的安装过程,这个如果有同学想看,那我下次一定!
2、kinetic版本的ROS安装博客:Ubuntu16.04安装ROS Kinetic详细过程
我安装的方法基本按照官网的来的,这次中间十分顺利,之前可不是这样的!!!希望有用~
正片开始:
为了编译 Cartographer ROS,官方推荐使用: wstool 和rosdep,Ninja会更快,也是官方推荐的好宝贝!本文使用的是rosdep。
使用下面的命令安装安装工具:
sudo apt-get update
sudo apt-get install -y python3-wstool python3-rosdep ninja-build stow
// ↑这里好像没成功,我继续下一条命令的,对结果影响不大
sudo apt-get install -y python-wstool python-rosdep ninja-build stow
安装完工具以后创建一个cartographer_ros的工作区间catkin_ws,建立src文件,初始化、下载cartographer_ros、cartographer:
mkdir catkin_ws
cd catkin_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src
接下来使用rosdep安装cartographer_ros’依赖包:
sudo rosdep init
//在ros安装时候已经执行过一次了,所以此处很可能会有如下图的问题,不必解决,无视就好
继续:
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${kinetic} -y
// ↓下面这一步仅kinetic版本需要执行
src/cartographer/scripts/install_proto3.sh
额外说明:
1、rosdep update这一步很有可能出错,出错怎么办,请看这里:ROS初始化时候sudo rosdep init rosdep update出现的各种问题亲测成功的解决办法(2020.12.29已解决!)
2、第二行的{}里面是ros的版本,所以如果是其他版本,记得在这里更换成自己的版本。
Cartographer使用abseil-cpp库,该库需要使用以下脚本手动安装abseil:
src/cartographer/scripts/install_abseil.sh
官网的方法是有一下步的,但是我没加:
sudo apt-get remove ros-${kinetic}-abseil-cpp
安装和编译:
catkin_make_isolated --install --use-ninja
source一下:
source install_isolated/setup.bash
测试demo:
下载3D rosbag:
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/with_intensities/b3-2016-04-05-14-14-00.bag
在catkin_ws下:
```cpp
catkin_make_isolated --install --use-ninja
//编译
source install_isolated/setup.bash
//source一下,会有红色文字的错误提示
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/b3-2016-04-05-14-14-00.bag
//运行
太久了,就不放最后的截图了。
至此,安装+编译+demo测试全部over,完美解决~,接下来就是实现自己的rosbag在cartgrapher下的运行,期待。