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学习笔记之——3D map merge

ROS实验笔记之——基于Kalibr标定event 与imu

ROS实验笔记之——基于Augmented State EKF的多传感器融合(IMU,PnP,VO)

ROS实验笔记之——基于VSCODE的ROS开发

ROS实验笔记之——基于Prometheus的控制模块

ROS实验笔记之——基于Prometheus的无人机运动规划