前言
目前诸多关于安装Google Cartographer的教程,然而因为各自环境的不同,经常安装失败。之前走了不少弯路,所以做个笔记。本文使用的配置为Ubuntu18.04+ROS Melodic,安装前,系统内仅有ROS环境。
安装依赖项
sudo apt-get install -y google-mock libboost-all-dev libeigen3-dev libgflags-dev libgoogle-glog-dev liblua5.2-dev libprotobuf-dev libsuitesparse-dev libwebp-dev ninja-build protobuf-compiler python-sphinx ros-melodic-tf2-eigen libatlas-base-dev libsuitesparse-dev liblapack-dev
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
安装wstool rosdep ninja
sudo apt-get update
sudo apt-get install -y python-wstool python-rosdep ninja-build
安装ceres-solver
mkdir google_ws/src #新建一个工作空间
cd google_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
这步有可能出错,错误提示如下:
出错原因是因为无法连接到raw.githubusercontent,这个步骤其实在安装ROS执行sudo rosdep init& rosdep update时也会遇到,解决办法就是修改hosts文件,但是这种方法必须在安装ROS前更换ubuntu国内源才能起效:执行gedit /etc/hosts,在打开的文档里添加以下内容,保存即可[1] (以下ip地址会失效,按照[2]修改最新地址):
151.101.84.133 raw.githubusercontent.com
重新执行
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src
即可。
安装依赖proto3
src/cartographer/scripts/install_proto3.sh
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=melodic -y
安装依赖abseil
新开终端(旧终端不要关闭,因为后面编译还要在google_ws路径下),输入
sudo apt-get install stow
cd /google_ws
cd /src
cd /carographer
cd /scripts
./install_abseil.sh
安装编译
catkin_make_isolated --install --use-ninja
echo “source ~/google_ws/devel_isolated/setup.bash” >> ~/.bashrc
source ~/.bashrc
2D建图测试
2d数据可以去google官网下载: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
OK,恭喜你,你也成功了,好好享受你的SLAM学习吧。