如何使用Google 的Cartographer SLAM算法包
文/冷冬寒梅
下面即为具体步骤
(一)安装cartographer_ros
1)首先安装wstool和rosdep工具
sudo apt-get update
sudo apt-getinstall -y python-wstool python-rosdep ninja-build
2)然后建立一个新的workspace
mkdir slam_ws
cd slam_ws
wstool init src
3)安装cartographer_ros.rosinstall文件,更新
wstool merge -t srchttps://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src
4)安装deb依赖Installdeb dependencies.
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
5)安装和设置路径
catkin_make_isolated --install –use-ninja
(此处需要时间比较长,要耐心等待,我在运行时候,以为此处进行不下去了,结果等的时间长些,运行成功)
source install_isolated/setup.bash 此语句设置路径
(二)根据需要修改lua配置文件
launch文件如下
参数如下,不使用odom,只使用激光,参数如下
每次修改了lua代码都需要运行下面代码进行编译和设置路径
cd slam_ws
catkin_make_isolated --install --use-ninja进行编译
source install_isolated/setup.bash设置路径
运行launch文件
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=/home/dmchen/slam_ws/src/cartographer_ros/cartographer_ros/bag/1014.bag
其中我们自己的数据包包1014.bag存储路径为/home/dmchen/slam_ws/src/cartographer_ros/cartographer_ros/bag
运行结果
使用激光和odom数据,参数设置如下
注意需要运行catkin_make_isolated--install –use-ninja编译
运行效果如下:
备注:关于lua设置文件中每个参数的意义,以后会单独写文章进行说明