您的位置:首页 > 产品设计 > UI/UE

(ros/navigation)how to build a map using logged data 怎样用记录的数据创建地图

2015-07-13 13:54 483 查看
1 how to build a map using logged data 怎样用记录的数据创建地图

描述:怎样用记录的转换和激光扫描数据创建二维地图。

创建地图

1. 如果作为源校验(相对于二进制安装),构建gmapping:

rosmake gmapping


2. 获取一个包。有两个选择:

1 用机器人创建一个包

2 下载一个现有的包做测试

任何一种方式,都会得到一个包。

3. 启动核心

roscore


4. 在其他节点启动前,确保use_sim_time设置为true

<pre name="code" class="javascript">     rosparam set use_sim_time true



5. 启动slam_gmapping,它将会接收激光扫描(在这个例子中,在base_scan话题上),并且创建地图:

rosrun gmapping slam_gmapping scan:=base_scan


注意:在PR2上,odom坐标系称为odom_combined。使用这个命令:

rosrun gmapping slam_gmapping scan:=base_scan _odom_frame:=odom_combined


6. 在一个新终端,开始回放bag文件,莱维slam_gmapping提供数据:

rosbag play --clock <name of the bag that you downloaded / created in step 2>


等待rosbag完成并退出。

7. 使用map_server包的map_saver保存新地图到磁盘:

rosrun map_server map_saver


现在就有了一个地图,本地保存为map.pgm。可以用任何图像浏览器(gimp,eog,gthumb等)查看;

下载一个测试包

使用wget命令来下载测试包,

wget http://pr.willowgarage.com/data/gmapping/basic_localization_stage.bag[/code] 
自己创建包

1 启动机器人,发布激光扫描和转换数据,摇杆操纵启用(不同机器人的细节不同);

2 开始记录扫描和转换(注意scan话题可能因为机器人不同而不同):

rosbag record -O mylaserdata /base_scan /tf


将会在当前目录开始写文件,文件名字为’mylaserdata_<DATE>-topic.bag’

3 驱动机器人转一圈。常用的建议:

Ø 尝试限制快速旋转,因为他们在扫描匹配上最难。降低操纵杆的最大允许速度比较有用。

Ø 用激光雷达可视化机器”看到”的;如果激光不能看到,则地图上就不会有。

Ø 人类走动通常不会出现问题,除非他随着机器人走,在激光的视野内。

Ø 回路闭合是最难的部分。关闭回路时,确保多行驶5-10米,来获得回路始端和终端之间的大量重叠。

4 杀掉rosbag实例,并且注意创建的文件的名字。

变化:查看创建地图的进展

如果看到结果前,不介意等待直到记录数据回放和创建地图过程完成,可以再rviz中查看进展:

rosrun rviz rviz


添加地图显示,设置话题 /map



Author: wsh

Email: tongzhuodenilove@163.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: