ROS开源社区中有很多SLAM算法,可以直接使用或者进行二次开发,其中最为常用和成熟的是gmapping功能包。其他的还有hector–slam和谷歌的cartographer包等等。gmapping功能包集成了Rao–Blackwellized粒子滤波算法,为开发者隐去了复杂的内部实现。gmapping融合了深度信息、IMU信息、里程计信息实现在位置环境中的即时定位与地图建模,适用与面积较小的平缓地面封闭环境,大家也可以搜索一下gmapping、hector–slam、cartographer三种建图方法的区别与优缺点等,接下去我们在仿真环境中进行gmapping建图
迷你机器人附带的ROS2GO随身系统中已经安装好各种环境,如果大家在其他环境中未安装gmapping可以使用以下算法进行安装
sudo apt-get install ros-<ros 版本>-gmapping
首先需要配置配置Lanuch文件我们新建gmapping.launch和gmapping_demo.launch代码如下:
完成上述配置,我们就能在gazebo中仿真SLAM了,我这边建了一个1:1仿真智能车比赛的赛道地图并在本次仿真中使用,在终端中启动gazebo仿真环境和gmapping节点:
roslaunch mini_gazebo