ROS解读13.学习Amcl定位算法.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十三课 Amcl 定位算法学习 1. 关于 Amcl Amcl 的英文全称是 adaptive Monte Carlo localization ,其实就是蒙特卡洛定 位方法的一种升级版,使用自适应的 KLD方法来更新粒子, 而 mcl (蒙特卡洛定位) 算法使用的是粒子滤波的方法来进行定位的。而粒子滤波很粗浅的说就是一开始在地 图空间很均匀的撒一把粒子,然后通过获取机器人的 motion 来移动粒子,比如机器人 向前移动了一米,所有的粒子也就向前移动一米,不管现在这个粒子的位置对不对。 使用每个粒子所处位置模拟一个传感器信息跟观察到的传感器信息(一般是激光)作 对比,从而赋给每个粒子一个概率。之后根据生成的概率来重新生成粒子,概率越高 的生成的概率越大。这样的迭代之后,所有的粒子会慢慢地收敛到一起,机器人的确 切位置也就被推算出来了。 Amcl 算法步骤如下: 2.ROS中的 Amcl 1. 订阅的主题 scan (sensor_msgs/LaserScan) 激光雷达发布的 /scan 话题。 tf (tf/tfMessage) 各个坐标系的 tf 转换 。 initialpose (geometry_msgs/PoseWithCovarianceStamped) 初始位置给定,若没有初始位置时, map-base_footprint= ( 0)。 map (nav_msgs/OccupancyGrid) 发布的地图话题,在实验过程中我们会用 map_server 加载地图到 ROS空间。 2. 发布的主题 amcl_pose (geometry_msgs/PoseWithCovarianceStamped) 发布 amcl 定位后机器人在地图中的位姿( map-base_footprint )。 particlecloud (geometry_msgs/PoseArray) 发布 amcl 的粒子位姿。 tf (tf/tfMessage) 发布 map-base_footprint 之间的 tf 转换。 3. Amcl 参数说明 param name=min_particles value =500/ // 允许的粒子数量的最小值,默认 100 param name=max_particles value =5000/ // 允许的例子数量的最大值,默认 5000 1 param name=kld_err value =0.05/ // 真实分布和估计分布之间的最大误差,默认 0.01 param name=kld_z value =0.99/ // 上标准分位数( 1-p ),其中 p 是估计分布上误差小于 kld_err 的概率,默认 0.99 。 param name=update_min_a value =0.5/ // 执行滤波更新前旋转的角度,默认 pi/6 rad param name=resample_interval value =1/ // 在重采样前需要的滤波更新的次数 ,默认2 param name=transform_tolerance value =0.1/ //tf 变换发布推迟的时间 param name=recovery_alpha_slow value =0.0/ // 慢速的平均权重滤波的指数衰减频率,用 作决定什么时候通过增加随机位姿来 recover ,默认 0(disable ),可能 0.001 是一个不错的值 param name=recovery_alpha_fast value =0.0/ // 快速的平均权重滤波的指数衰减频率,用 作决定什么时候通过增加随机位姿来 recover ,默认 0(disable ),可能 0.1 是个不错的值 param name=gui_publish_rate value =10.0/ // 扫描和路径发布到可视化软件的最大频率, 设置参数为 -1.0 意为失能此功能,默认 -1.0 param name=save_pose_rate value =0.5/ // 存储上一次估计的位姿和协方差到参数服务器 的最大速率。被保存的位姿将会用在连续的运动上来初始化滤波器。 -1.0 失能。 param name=use_map_topic value =false/ // 当设置为 true 时, AMCL将会订阅 map话题, 而不是调用服务返回地图。也就是说,当设置为 true 时,有另外一个节点实时的发布 map话题,也 就是机器人在实时的进行地图构建,并供给 amcl 话题使用;当设置为 false 时,通过 map server , 也就是调用已经构建完成的地图。

文档评论(0)

135****2372 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档