rviz实现gmapping的具体方法,利用官方包
来源:互联网 发布:中兴软件开发怎么样 编辑:程序博客网 时间:2024/06/05 04:22
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元,但这个不是我们今天的话题内容。
四 操作过程
启动ROS master. 这是所有ROS操作的第一步,就像开机一样
配置ROS启用重放数据中的时间而非本机时间,影响整个系统所有时间API的输出结果。在默认情况下,ROS使用ubuntu系统的时间,也就是墙上时钟时间(wall clock)。但我们重播一个记录历史文件时,里面记录的是历史时间,所以我们需要告诉ROS从现在起开始启用模拟时间。
下载ROS提供的激光数据采集记录文件
启动gmapping, 并监听 scan_base topic发来的消息。该topic是由模拟器发布的。
启动模拟器重放激光数据
启动RViz,点击 add 按钮(左下方) ,在弹出的列表中选择 map,点击OK,这时开始展现一个空的地图
最关键的一步,要告诉RViz 生成map信息的topic是什么。我们前面讲到过,gmapping输出的topic是 /map. 如下图配置,立即就可以看到地图的动态建立了
- 随着时间的推进,慢慢的整个地图就显示出来了
使用map_server功能包的map_saver保存新地图到磁盘(等rosbag结束后)
rosrun map_server map_saver
此时可以看到本地地图map.gpm已经生成,可以用图像浏览器(gimp, eog, gthumb, 等等)打开查看
- rviz实现gmapping的具体方法,利用官方包
- rviz包的问题
- 利用Spring扫包实现发现具体的注解类
- C#利用dig命令解析SRV方法的具体实现
- gmapping算法的MATLAB实现
- 分页的具体实现方法
- 课时43|封装-方法重载,包的实现和利用
- 利用.NET Remoting基础架构中的真实代理/透明代理技术实现了不针对具体类型、具体方法的通用方法调用拦截机制
- FieldInfos的write方法的具体实现
- String的lequals方法的具体实现
- 具体java打印方法的实现
- C#委托的具体实现方法
- WebElement.clear() 方法的具体实现
- 页面返回顶部的具体实现方法
- 多线程的同步方法和具体实现
- oc中类的具体实现方法
- 线程有两种实现方法的具体区别
- weak的生命周期:具体实现方法
- Python中turtle模块
- 自定义控件TitleView
- 关于友盟使用注意事项
- web旋转动画
- 数据库
- rviz实现gmapping的具体方法,利用官方包
- apt-get installs 报错 Could not open lock file /var/lib/dpkg/lock
- (UVA)272
- C++三大特性----“继承”
- 结构型模式之装饰DECORATOR
- 蓝桥杯 ALGO-101 算法训练 图形显示
- Codeforces Round #308 (Div. 2)C
- 获取项目部署名称的两种方式
- Contact Us