网站大量收购独家精品文档,联系QQ:2885784924

ROS解读12.学习Gmapping建图算法.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十二课 Gmapping建图算法 1. 初步介绍 Gmapping 对于建图, SLAM,也称为 CML (Concurrent Mapping and Localization), 我们从 名字就可以得知,其包含机器人的定位与地图的构建两部分,或者说并发建图与定 位。对于这个问题的模型,就是如果将一个机器人放入未知环境中的未知位置,是否有办法让机器人一边移动一边逐步描绘出此环境完全的地图(完全的地图是指不受障碍行进到房间可进入的每个角落,也就是熟知地图的障碍点)。定位与建图相辅相成、互相影响。 首先,构建地图要知道机器人的精确位姿,精确定位又需要给定的地图做参考。 先讲已知精确位姿(坐标和朝向)的地图创建,机器人位置已知,通过激光雷达扫描 到环境特征,即障碍物距离。可通过机器人坐标和朝向以及障碍物距离计算出障碍物 的坐标,采用 bresenham 直线段扫面算法,障碍物所处的栅格标注为 occupy ,机器人 所处的栅格与障碍物所处的栅格之间画直线,直线所到之处都为 free 。当然每个栅格 并不是简单的非 0 即 1,栅格的占据可用概率表示,若某一个栅格在激光束 a 扫描下标 识为 occupy ,在激光束 b 扫描下也标识为 occupy ,那该栅格的占据概率就变大,反之,则变小。这样,机器人所处的环境就可以通过二维栅格地图来表征。 2.Gmapping 功能包实现的前提 1. 提供的有两个 tf ,一个是 base_footprint 与 laser 之间的 tf ,即机器人底盘和激光 雷达之间的变换;我们在 Huanyu_robot_start.launch 文件的开头已经通过静态 tf 变换提 供了。一个是 base_footprint 与 odom_combined 之间的 tf ,即底盘和里程计原点之间的坐 标变换。 odom_combined 可以理解为里程计原点所在的坐标系。 2. /scan : 激光雷达数据,类型为 sensor_msgs/LaserScan 。 3.Gmapping 功能包参数说明 launch arg name=scan_topic default=scan / // 激光的 topic 相对应 arg name=base_frame default=base_footprint/// 机器人的坐标系 arg name=odom_frame default=odom_combined/// 机器人原点 node pkg=gmapping type=slam_gmapping name=slam_gmapping output=screen param name=base_frame value=$(arg base_frame)/ param name=odom_frame value=$(arg odom_frame)/ param name=map_update_interval value=0.01/// 地图更新的一个间隔,两次 scanmatch 的间隔,地图更新也受 scanmach 的影响,如果 scanmatch 没有成功的话,是不会更新地图的 param name=maxUrange value=4.0///set maxUrange maximum range of the real senso r = maxRange param name=maxRange value=5.0/ param name=sigma value=0.05/ param name=kernelSize value=3/ param name=lstep value=0.05/optimize 机器人移动的初始值(距离) 1 param name=astep value=0.05///optimize 机器人移动的初始值(角度) param name=iterations value=5///icp 的迭代次数 param name=lsigma value=0.075/ param name=ogain value=3.0/ param name=lskip value=0/// 为 0, 表示所有的激光都处理,尽可能为零,如果计算压力过大, 可以改成 1 param name=minimumScore value=30/// 很重要,判断 scanmatch 是否成功的阈值,过高的话会 使 scanmatch 失败,从而影响地图更新速率 param name=srr value=0.01/// 以下四个参数是运动模型的噪声参数 param name=srt value=0.02/ param name=str value=0.01/ param name=stt

您可能关注的文档

文档评论(0)

150****2233 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档