ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真

使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真

注意:要先导入相应的ros包,launch文件才能进行后面的操作

ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第1张图片
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第2张图片ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第3张图片ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第4张图片
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第5张图片ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第6张图片

1. 使用gmapping仿真并并将简历完成的地图保存到功能包的maps文件夹中

先下载gmapping包
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第7张图片

打开gazebo模型
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第8张图片
如图:

ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第9张图片打开rviz,模拟

ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第10张图片
如图:
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第11张图片
执行以下代码进行机器人的移动:
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第12张图片
在这个终端上面,按键盘上的uiojklm,.键来控制机器人的移动
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第13张图片
如下图:开始移动,扫描
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第14张图片
最终移动一圈之后,形成的图形
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第15张图片
为了把这个地图保存下来,于是要先安装一个map-server这个包

ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第16张图片然后输入下面的指令,进行保存
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第17张图片
如下面的红框内的两个pgm和yaml文件
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第18张图片
打开可以查看pgm,即保存的地图
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第19张图片
可以打开yaml文件查看地图的参数
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第20张图片

2. hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中

下载hector_slam功能包
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第21张图片
打开gazebo
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第22张图片
打开rviz
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第23张图片
开始机器人的移动控制
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第24张图片
如下图,移动一圈之后,最后的结果:
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第25张图片
保存为hector_gmapping
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第26张图片
可以看见下面红框内即为保存的
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第27张图片
依然可以打开查看地图及参数:

ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第28张图片ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第29张图片

基于move_base和amcl功能包的机器人自主导航仿真

先要安装move_base包
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第30张图片
打开gazebo
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第31张图片
打开rviz,查看地图
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第32张图片
可以通过2D new goal让机器人移动
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第33张图片
进行自主导航
第一步:
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第34张图片
第二步:
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第35张图片

ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第36张图片第三步:
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第37张图片
如下图,机器人就会自己导航进行探索,绘制地图
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第38张图片
由于我的机器人运动缓慢,等了很久还没有绕一圈,所以没有等下去了,地图概况大概如下:
ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真_第39张图片

你可能感兴趣的:(ros:使用gmapping 和 hector_slam功能包实现SLAM仿真,并将简历完成的地图保存到功能包的maps文件夹中,以及基于move_base和amcl功能包的机器人自主导航仿真)