在slam_gmapping中使用Log数据创建地图

本文介绍使用机器人记录的tf变换和激光扫描数据来建立2D地图.并在ROS的图形化模拟环境rviz中通过重新回放记录的数据作为机器人真实传感器采集的输入,来观测地图动态创建过程.

1.ROS gmapping工具

ROS提供的gmapping包是用来生成地图的,它是对著名的开源openslam包在ROS框架下的一个实现.这个包提供了对激光设备的slam,根据激光设备的输入和姿态数据从而建立一个基于网格的2D地图.它需要从ROS系统监听许多Topic,并输出一个Topic,即map(nav_msgs/OccupancyGrid),这也是Rviz的输入Topic.

下载这个包的命令如下:sudo apt-get install ros-indigo-slam-gmapping

2.硬件要求

本文采用的是模拟数据,不需要任何硬件需要.

gmapping需要使用实际的机器人获取激光或者深度数据.通常这些激光距离探测器价格比较昂贵,ROS推荐使用的SCIP2.2, Hokuyo Model 04LX, 30LX ,SICK LMS2xx Lasers 价格都巨贵无比,而且尺寸都较大。ROS使用的廉价机器人TurtleBot使用的则是深度相机Kinnect来模拟,其价格在接近千元.

3.数据包准备过程

1)数据包的准备

下载ROS提供的激光数据采集记录文件

wget http://pr.willowgarage.com/data/gmapping/basic_localization_stage.bag 

 

2)使用机器人创建自己的bag包

 

a)给机器人安装激光器,确保可以发布变换数据,且可以遥控操作

 

b)启动扫描和变换数据记录

 

 

rosbag record -O mylaserdata /base_scan /tf

当前目录将创建一个名为mylaserdata_<DATE>-topic.bag的文件

c)让机器人动起来

d)kill掉rosbag用户可以看到记录文件已经创建

4.操作过程

1)启动节点管理器master

roscore

2)配置ROS启用重放数据中的时间而非本机时间,影响整个系统所有时间API的输出结果.在默认情况下,ROS使用ubuntu系统的时间,也就是墙上时钟时间(wall clock).但我们重播一个记录历史文件时,里面记录的是历史时间,所以我们需要告诉ROS从现在起开始启用模拟时间.

rosparam set use_sim_time true

3)运行slam_gmapping节点,它将在base_scan主题上监听激光扫描数据并创建地图,base_scan是模拟器rosbag发布的.

Note:在PR2上里程坐标系名字为odom_combined

命令为:rosrun gmapping slam_gmapping scan:=base_scan _odom_frame:=odom_combined

4)重新打开一个终端,使用模拟器rosbag启动bag包回放,将数据提供给slam_gmapping节点.

rosbag play --clock basic_localization_stage.bag

5)启动rviz,在左下方选择add,然后选择map,创建一副空地图;接着指定rviz的topic为/map可以监听到地图数据

rosrun rviz rviz

 

6)使用map_server功能包的map_saver保存新地图到磁盘(等rosbag结束后)

rosrun map_server map_saver -f my_map

此时可以看到本地地图map.gpm已经生成,可以用图像浏览器(gimp, eog, gthumb, 等等)打开查看。例如eog my_map1.pgm

注意:最后别忘了重新设置use_sim_time参数,即使用命令:rosparam set use_sim_time false

5.下面来看一下显示的节点图

1.

2.

3.

 

4.

 

5.

6.

查看它的服务和话题

 

posted on   gary_123  阅读(1387)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示