Ubuntu18.04安装Cartographer
上一篇文章讲到了如何安装ROS Melodic,对于其中的sources_list.py文件如果小伙伴们需要的话可以私聊我,我一直都有备份了,毕竟后面自己肯定还会用到的。
这一篇文章讲讲如何安装Cartographer,事先声明,本篇文章所叙述的方法事先需要安装成功ROS后才可以使用,否则中间会有步骤报错的。
也有另一种不依赖于ROS的安装而直接安装Cartographer的,这个大家自己去百度啦~
刚开始都是大家熟悉的更新和安装依赖包:
sudo apt-get update
sudo apt-get install -y python-wstool python-rosdep ninja-build stow
然后建立工作空间,这里命名大家可以根据自己需要来命名,我就是carto_ws:
mkdir -p ~/carto_ws
cd carto_ws
wstool init src
然后是拉取一个.rosinstall文件,后面运行这个文件会自动从github上拉取cartographer的包:
wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall
但是!重点来了,这个.rosinstall文件它只拉取了cartographer和cartographer_ros,然而我们还需要ceres-solver,所以我们对文件进行修改,运行:
sudo gedit src/.rosinstall
具体修改如图:
这里我的文件跟图片中有一些不一样的地方,一个是cartographer和cartographer_ros的version都是version: master,然后ceres-solver的version就是version: 1.13.0,并且ceres-solver的uri为
uri:https://github.com.cnpmjs.org/ceres-solver/ceres-solver.git
还有一个比较关键的,我在uri中github.com的后面加上了.cnpmjs.org,也就是改写成了github.com.cnpmjs.org,这个网址是github的镜像,这样就不会出现拉取失败的情况了。
接着运行命令行:
wstool update -t src
这一步就是从git上拉取包了,然后:
cd ~/carto_ws
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
我在运行rosdep install前面并没有rosdep update,因为我的ROS Melodic和Cartographer基本几个小时都可以安装完,在安装ROS Melodic的时候已经运行过一次rosdep update我认为就没必要再在安装Cartographer的时候又来一遍了,毕竟这个东西大家都很讨厌,但是rosdep install这一步可能就会有小伙伴报错,就是我之前说的,一定要在安装好ROS之后再安装Cartographer才不会出现这个报错,具体原因我也没分析,能成功就行嘛。
(如果需要rosdep update这一步但又报错的可以参考链接:https://blog.csdn.net/weixin_44570248/article/details/118461203)
最后是安装一个absl包以及把Cartographer加入bashrc里:
src/cartographer/scripts/install_abseil.sh #还是一样的,如果github拉取失败就改install_abseil.sh文件,改成github的镜像
catkin_make_isolated --install --use-ninja #编译,这个编译不同于catkin_make,这个一定要注意!
echo "source ~/carto_ws/install_isolated/setup.bash" >> ~/.bashrc
后面就可以下载一个2D测试包测试是否安装成功了,大概400+MB
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/cartographer_paper_deutsches_museum.bag
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=${HOME}/Downloads/cartographer_paper_deutsches_museum.bag