Ⅰ.如何在ROS里愉快地玩耍 gmapping

a.作者Ubuntu18.04环境下示例

参考【1】turtlebot3 gazebo仿真-基于ros melodic ;用的是ros的navigation 包;

【2】(15条消息) gazebo模型下载以及配置_sunshine-CSDN博客_gazebo模型下载 ;gazebo模型下载,用来给turtlebot3一个运动的场所;

参考【3】zhuanlan.zhihu.com/p/59 ;安装NVIDIA显卡驱动;

如果你想像我一样,在ubuntu18.04装好满足计算能力有要求的显卡驱动以及配备的cuda,前提是你的主机真的装了硬件显卡,那么,装好后看一下自己的显卡驱动型号,输入命令:

nvidia-smi
b.作者的电脑显卡配置示意

Ⅱ.gmapping ros package

gmapping实现分两个包:slam_gmapping和openslam_gmapping。

(i).slam_gampping: 参考【4】gmapping - ROS Wiki ;此为封装以及接口。

c.gmapping wiki 关于slam_gmapping的介绍

(ii).openslam_gmapping:参考 【5】GitHub - ros-perception/openslam_gmapping;此为核心;

gmapping核心-openslam_gmapping 主要ros包示意如下:

d.gmapping核心-openslam_gmapping主要包示意

(iii).gmapping源码包框架梳理总结:1.slam_gmapping包为封装;2.openslam_gmapping包为核心:核心包有5个:grid (栅格地图实现)、gridfastslam(基于栅格的FastSLAM)、particlefilter(粒子滤波)、scanmatcher(激光/地图匹配)、sensor(里程计和激光数据处理)。

之前的理论铺垫都跟代码里的grid,gridfastslam,particlefilter,scanmatcher,sensor等包一一对应上了哦。理论还没吃透的话,请跳转gmapping理论+对应ROS包讲解(二) 理论 - 知乎 (zhihu.com)辅助理解。