HashMap Apache Pivot教程 gps Yarn 金融信贷 path insert Component pytorch安装教程 java清空数组 清空input文本框的值 oracle增加主键 python功能 二分查找python python基础教程免费 python代码 java时间戳转换成时间 java运行环境配置 java数组扩容 java有哪些数据类型 学习java基础 java的泛型 javafloat java怎么安装 java删除 网页游戏代码 js闭包的理解 unix系统下载 一件换肤 js验证码 华为手机刷公交卡 苹果手机验机软件 编程电子书 疯狂的站长 联盟练级路线 卧龙推广 苹果电脑数据恢复 西门子触摸屏编程软件 opengl版本过低 class选择器
当前位置: 首页 > 学习教程  > 编程语言

ROS小车实践记录(十二)

2020/11/24 10:16:12 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

小车代码ROS小车AMCL定位算法解析ROS小车AMCL定位算法解析 了解AMCL 连接小车,修改小车为当前时间sudo date -s "2020-11-23 19:52:00"在小车终端重启nfs服务sudo /etc/init.d/nfs-kernel-server restart在Ubuntu终端挂载小车代码sudo mount -t nfs 19…

小车代码

  • ROS小车AMCL定位算法解析

ROS小车AMCL定位算法解析

了解AMCL
在这里插入图片描述

  1. 连接小车,修改小车为当前时间sudo date -s "2020-11-23 19:52:00"
  2. 在小车终端重启nfs服务sudo /etc/init.d/nfs-kernel-server restart
  3. 在Ubuntu终端挂载小车代码sudo mount -t nfs 192.168.1.140: /home/huanyu/robot_ ws /mnt/
  4. 使用subl打开 /mnt
    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 空间。

  1. 发布的主题
amcl_pose (geometry_msgs/PoseWithCovarianceStamped) 

发布 amcl 定位后机器人在地图中的位姿(map->base_footprint)

particlecloud (geometry_msgs/PoseArray) 

发布 amcl 的粒子位姿。

tf (tf/tfMessage) 

发布 map->base_footprint 之间的 tf 转换。

  1. Amcl 参数说明 <param name="min_particles" value="500"/> //允许的粒子数量的最小值,默认 100
    <param name="max_particles" value="5000"/> //允许的例子数量的最大值,默认 5000
    <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,也就是调用已经构建完成的地图。在 navigation 1.4.2 中新加入的参数。
    <param name="first_map_only" value="false"/> //当设置为 true 时,AMCL 将仅仅使用订阅的第
    一个地图,而不是每次接收到新的时更新为一个新的地图。
    <param name="laser_min_range" value="-1.0"/> //被考虑的最小扫描范围;参数设置为-1.0
    时,将会使用激光上报的最小扫描范围
    <param name="laser_max_range" value="-1.0"/> //被考虑的最大扫描范围;参数设置为-1.0
    时,将会使用激光上报的最大扫描范围
    <param name="laser_max_beams" value="30"/> //更新滤波器时,每次扫描中多少个等间距的光束被使用(减小计算量,测距扫描中相邻波束往往不是独立的可以减小噪声影响,太小也会造成信息量少定位不准

  2. 连接小车后 ,运行roslaunch huanyu_robot_start amcl_test. launch

  3. 添加
    在这里插入图片描述
    可以看到粒子是比较分散的
    在这里插入图片描述

  4. 我们打开arbotix_ gui工具集
    移动小车后会变得密集,提升定位精度
    在这里插入图片描述


本文链接: http://www.dtmao.cc/news_show_400238.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?