分享

ROS 学习系列 -- RViz 实时观测机器人建立导航2D封闭空间地图过程 (SLAM)

 quasiceo 2016-01-15
2015-04-11 10:48 3782人阅读 评论(4) 收藏 举报
分类:

目录(?)[+]

ROS提供了非常强大的图形化模拟环境 RViz,这个 RViz 能做的事情非常多。今天我们学习一下如何使用 RViz 对机器人在路径探索过程中对地图动态观测。我们将学习重放已经采集的数据来模拟机器人输入,从而将精力放到SLAM和地图的建立以及RViz的使用上。下面是效果图:



一 基本概念

ROS 对机器人导航提供了非常强大的支持,这可以让我们在不了解细节和海量复杂无比的科学计算的情况下就可以对机器人的导航,定位,路径规划。这其中第一步就是要建立一个封闭环境的地图,这个过程叫做SLAM (simultaneous localization and mapping),也称为CML (Concurrent Mapping and Localization), 即时定位与地图构建,或并发建图与定位。 SLAM最早由Smith、Self和Cheeseman于1988年提出。 由于其重要的理论与应用价值,被很多学者认为是实现真正全自主移动机器人的关键。


二 ROS gmaping 工具

ROS 提供的gmaping包是用来生成地图的,它是对著名的开源OpenSlam包在ROS框架下的一个实现。这个包提供了对激光设备的Slam, 根据激光设备的输入和姿态数据从而建立一个基于网格的的2D地图(就像建立楼房设计的 平面图)。它需要从ROS系统监听许多Topic,并输出一个Topic --map (nav_msgs/OccupancyGrid),这也是RViz的输入Topic.

这个包需要单独下载 ,命令  : sudo apt-get install ros-indigo-slam-gmapping

三 硬件要求

本文提供的是模拟数据,所以没有任何硬件需要。

gmaping 需要使用实际的机器人获取激光或者深度数据。通常这些激光距离探测器价格比较昂贵,ROS推荐使用的 SCIP2.2, Hokuyo Model 04LX, 30LX ,SICK LMS2xx Lasers 价格都巨贵无比,而且尺寸都较大。ROS使用的廉价机器人TurtleBot使用的则是Kinnect价格在接近1000元,但这个不是我们今天的话题内容。


四 操作过程

  1. 启动ROS master.  这是所有ROS操作的第一步,就像开机一样
    [plain] view plaincopy
    1. roscore  

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

  3. 下载ROS提供的激光数据采集记录文件
    [plain] view plaincopy
    1. wget http://pr./data/gmapping/basic_localization_stage.bag  

  4. 启动gmapping, 并监听 scan_base topic发来的消息。该topic是由模拟器发布的。
    [plain] view plaincopy
    1. rosrun gmapping slam_gmapping scan:=base_scan  

  5. 启动模拟器重放激光数据
    [plain] view plaincopy
    1. rosbag play --clock basic_localization_stage.bag  

  6. 启动RViz,点击 add 按钮(左下方) ,在弹出的列表中选择 map,点击OK,这时开始展现一个空的地图
    [plain] view plaincopy
    1. rosrun rviz rviz  


  7. 最关键的一步,要告诉RViz  生成map信息的topic是什么。我们前面讲到过,gmapping输出的topic是 /map.  如下图配置,立即就可以看到地图的动态建立了

  8. 随着时间的推进,慢慢的整个地图就显示出来了

1
0
猜你在找
查看评论
3楼 shixiaolu63 2015-12-16 14:34发表 [回复]
大神,你好,在rviz中显示地图信息,只slam_gmapping只需要订阅tf scan就够了吧,我按您的步骤把模拟激光换成了真实的激光,可是在rviz中没右地图哦,这是什么原因,求指导
2楼 张京林要加油 2015-08-25 12:20发表 [回复]
请问楼主有没有遇到turtlebot建图不准的问题啊,我构建的地图总是在转角的时候把周围的直角走廊构建成钝角,最终地图无法闭合呢
1楼 FlyWithoutings 2015-05-10 00:07发表 [回复]
你好,为什么我做的时候,地图是一下子就出来了,没有一个动态的过程?
Re: wowobubu 2015-10-14 09:49发表 [回复]
回复Lser2012:你估计是没有启用模拟时间,就是上面的2步骤...你再试试?
发表评论

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多