Cartographer为谷歌开源的即时定位与地图建模库,使用该库可实现二维和三维的定位与建图。Cartographer基于图网络的优化算法,Cartographer目前主要基于激光雷达来实现SLAM。
一、Cartographer安装
1.安装工具
更新软件源:
sudo apt-get update
安装一系列工具:
sudo apt-get install -y python-wstool python-rosdep ninja-build
2.创建并初始化工作空间
为了不与已有功能包冲突,首先要为Cartographer专门创建一个工作空间:
mkdir catkin_google_ws
然后在终端输入以下命令,进入工作空间路径:
cd catkin_google_ws
再初始化工作空间,生成src文件:
wstool init src
3.加入cartographer_ros.rosinstall并更新依赖
在catkin_google_ws目录下,输入终端命令:
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
完成cartographer_ros.rosinstall的加入
输入完该命令后需要改文件的下载地址,另起终端输入:
gedit carto_ws/src/.rosinstall
将最后一个git来源网址由https://ceres-solver.googlesource.com/ceres-solver.git改为https://github.com/ceres-solver/ceres-solver.git
然后开始克隆:
wstool update -t src
4.安装依赖并下载cartographer相关功能包
更新ROS依赖:
rosdep update
安装ROS依赖:
rosdep install --from-paths src --ignore-src --rosdistro=melodic -y
5.编译并安装
对功能包进行编译与安装:
catkin_make_isolated --install --use-ninja
然后设置环境变量:
source install_isolated/setup.bash
每次运行demo都需要输入一遍该命令,否则系统找不到launch文件。(在当前终端有效)
要想避免每次都要输入该命令,可使用编辑bashrc文件的方法:
sudo gedit ~/.bashrc
然后在文本的末尾添加以下语句(根据自身情况修改),并保存:
source /home/jms/catkin_google_ws/install_isolated/setup.bash
二、官方demo测试
(1)2D slam demo
从外国网站下载数据包:
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
(2)3D slam demo
从外国网站下载数据包:
wget -P ~/Downloads https://storage.googleapis.com/cartographer-public-data/bags/backpack_3d/b3-2016-04-05-14-14-00.bag
运行数据包:
roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=${HOME}/Downloads/b3-2016-04-05-14-14-00.bag