8

SLAM从入门到精通(gmapping建图)

 1 year ago
source link: https://blog.csdn.net/feixiaoxing/article/details/133442215
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        前面我们介绍了hector slam建图。相对而言,hector slam建图对数据的要求比较低,只需要lidar数据就可以建图了。但是hector slam也有它自己的问题。那就是如果robot行走在走廊上面,特别是长走廊上面,那么hector slam是很难建图的。这主要的原因就是,hector slam算法会觉得前后两帧lidar frame没有发生改变,小车根本没有移动。基于这个原因,人们又设计出了一种新的制图方法,那就是gmapping制图。和hector slam相比较,gmapping还依赖于robot的里程计数据。

1、打开仿真地图

        和之前打开wpb_stage_slam.launch不同,这一次打开的wpb_stage_corridor.launch。用roslaunch wpr_simulation wpb_stage_corridor.launch打开,效果是这样的,

122a8e40c3ba46c2b7d66b5b4674c22a.png

2、开启gmapping

        仿真环境准备好了,这个时候就可以准备用gmapping开始绘图了。输入的方法就是rosrun gmapping slam_gmapping即可。不出意外的话,可以看到这样的打印,

3、用rviz开启绘图效果

        直接执行rosrun rviz rviz,依次打开RobotModel、Map、LaserScan之后,我们就可以看到这样的效果,

f13b552124ba4047834ebd0c49be8688.png

4、继续打开rqt_robot_steering

        这个时候虽然已经看到图形了,但是车还没有办法动起来。所以,这个时候,我们还需要用rosrun rqt_robot_steering rqt_robot_steering把小车启动起来。这样一顿操作之后,就可以把所有的场景绘制完毕了。如果仅仅使用hector slam,这个时候就没有什么办法继续绘图了,

92f20e8ab279434db5dd4bc8d6c1026b.png

        但是,此时我们使用的是gmapping的建图方法,所以小车可以一直向前建图下去,

8e97d3d5b10c48bd9acf9e677fb5b804.png

5、保存和显示地图

        等地图做好了,就可以使用map_server保存地图了。直接输入rosrun map_server map_saver。ls一下,就可以看到map.yaml和map.pgm两个新文件。把map.pgm拷贝到windows平台,用gimp打开,就可以看到这样的图片效果,

39c6244ae4b841b981ba217278fa17ad.png

Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK