ROS实验笔记之——基于cartographer方法的SLAM
Posted gwpscut
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS实验笔记之——基于cartographer方法的SLAM相关的知识,希望对你有一定的参考价值。
之前做的2D LiDAR的实验中,大多采用gmapping,本博文试试采用cartographer。对于cartographer方法,相比起gmapping,其多了IMU以及回环检测。有了回环检测后,可以避免odom的累积误差
首先安装依赖包
sudo apt-get install ros-melodic-cartographer*
然后对于运行的SLAM launch加入参数指定SLAM方法即可
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=cartographer
直接运行仿真时会报错(https://blog.csdn.net/c417469898/article/details/117365197)
$ roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=cartographer
错误如下:
sensor_bridge.cc:126] Check failed: sensor_to_tracking->translation().norm() < 1e-5 The IMU frame must be colocated with the tracking frame. Transforming linear acceleration into the tracking frame will otherwise be imprecise.
这是gazebo_ros_imu的一个bug
解决方法1
运行slam时候,添加参数指定仿真用配置文件
configuration_basename:=turtlebot3_lds_2d_gazebo.lua
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=cartographer configuration_basename:=turtlebot3_lds_2d_gazebo.lua
运行键盘
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
接下来看看实验的效果以及跟gmapping的对比:
以上是关于ROS实验笔记之——基于cartographer方法的SLAM的主要内容,如果未能解决你的问题,请参考以下文章
ROS实验笔记之——基于Kalibr标定event 与imu