1、前言

看过之前两篇文章的大朋友们应该都知道,我们在这里分享了SLAM算法gmapping的大刀阔斧删减版的源码和2D激光雷达运动畸变去除的源码。没看过的朋友可以点击下方文章查看。

我手写了个SLAM算法!

详解2D激光雷达运动畸变去除

本篇文章的主要就是分享加入2D激光雷达运动畸变去除模块后的删减版gmapping代码。

针对my_slam_gmapping进行了如下三部分的改变

(1)嵌入激光雷达运动畸变去除到my_slam_gmapping中

(2)对my_slam_gmapping的结构调整,进一步删减

(3)对之前理解歧义甚至错误的中文注释进行更改

2、加入运动畸变去除

2.1、文件树的变化::

在这里插入图片描述

2.2、加入运动畸变去除之后的建图效果:

设备:TX2(Ubuntu16.04) + RPLIDAR A2M8 (10Hz)
在这里插入图片描述

2.3、加入运动畸变去除的作用:

(1)建图效果明显提升,低帧率激光雷达也能达到高帧率的效果

(2)地图精度大幅提升,特别是走廊长度

3、如何使用该算法功能包

3.1、my_slam_gmapping功能介绍

my_slam_gmapping算法功能包除了图片中划掉的发布机器人姿态分布熵的topic和加入激光雷达运动畸变去除模块之外,其他功能还是gmapping算法一致。

1

3.2、my_slam_gmapping使用说明

若ROS 版本为ROS Kinetic,则可以直接将my_slam_gmapping功能包复制到各自工作空间的src文件夹下,然后catkin_make编译,再之后使用roslaunch命令启动功能包,命令如下:

roslaunch my_slam_gmapping my_slam_gmapping.launch

若ROS 版本为其他版本,不可以直接使用,但是可以把该功能包的文件复制到各自的版本中自建的功能包里,自行编译也可行。

其他操作和gmapping算法功能包无差别,这里就不介绍了。

4、代码获取方式

在公众号:小白学移动机器人,发送:手写SLAM算法2,即可获得下载链接。

此次分享是我对该代码修改的第二版,对代码进行了再次的删减,并且加入了2D激光雷达运动畸变模块,并对核心代码进行了详细的中文注释。

本篇文章内容多是说明,没有谈及细节部分,若要了解细节,请看上面提到的两篇文章以及分享源码的注释部分。

本人水平有限,难免出现对代码理解不到位甚至是理解错误的地方,欢迎指出,欢迎交流,私信小编或者加我微信都可以。

如果你感觉,你真的喜欢我的文章与分享,喜欢解读源码,关注请加我微信,我新建了一个关于移动机器人技术的微信群,我邀你入群。
在这里插入图片描述

如果你感觉,我的文章比较适合你,关注我,点个赞,给你不一样的惊喜。

稿定设计导出-20200810-205521

在这里插入图片描述