地图服务与AMCL定位

  • costmap(代价地图)
  • AMCL定位(自适应蒙特卡罗定位)

costmap(代价地图)

1.地图文件格式:除了pgm(便携式灰度图)外,还支持jpg、png等常用图片格式,还可以用画图工具修改或重画地图:

2.地图参数文件

3.地图膨胀
地图膨胀,为了保护小车以免遭受碰撞。红色是障碍物,蓝色是按照一定的半径膨胀出来的。代价地图就是要保证小车与障碍物不发生碰撞。

官方提供了三种碰撞情况:最严重的是小车中心与红色相交,一定会发生碰撞。第二是障碍物以小车的内切圆为半径膨胀,小车的中心也不能蓝色部分相交,否则也一定会发生碰撞。第三是障碍物以小车的外接圆为半径膨胀,这时小车中心与蓝色部分相交,有可能发生碰撞。

三层地图来组成代价地图,代价地图又分为全局代价地图和局部代价地图
4.恢复行为
当物体运动的导航路线受阻的时候,会触发这个插件的功能,来对导航路线进行调整,如果调整失败,会结束导航。

AMCL定位(自适应蒙特卡罗定位)

解决的问题是目前自己所处地图的位置,利用的是粒子滤波算法。

粒子滤波:初始化.计算权重.重采样.状态转移.
1.初始化
产生N个位置假设。(采样)随机分布,我们叫它们为粒子。
2.计算权重
通过传感器收集到的数据(一般是激光雷达),来估算每个粒子位置的可能性。对可能性较大的粒子位置赋比较大的权重
3.重采样
重新撒点,跟初始化不同的是每个位置撒点的可能性是不一样的,依照的是上一步权重。权重越大,可能性越高,重采样中的粒子也集中在这些地方。所以重采样的新粒子会出现在旧粒子权重大的地方。现在由于所有的粒子是新采样得到的,所以每个粒子又都是相同的权重了。
4.状态转移阶段
物体继续运动,粒子也跟着一起运动,再进行计算权重,重采样…
不断循环这个过程。

移动1
开始移动

移动2
开始集中

移动3
越来越集中

移动4
粒子集中在一团,然后就能估算出物体的实际位置。

ROS的代价地图与AMCL定位原理相关推荐

  1. 激光SLAM导航系列(三)Costmap(代价地图)(上)

    Costmap(代价地图)(上) Costmap是机器人收集传感器信息建立和更新的二维或三维地图,可以从下图简要了解. 上图中,红色部分代表costmap中的障碍物,蓝色部分表示通过机器人内切圆半径膨 ...

  2. 第一章:costmap_2d代价地图生成原理

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 (1)[代价地图]costmap_2d功能包源码解读 (1)代价地图 ...

  3. ROS AMCL定位个人问题汇总

    AMCL定位是现在在ROS中比较常用的定位方式之一,其具体的原理详见<概率机器人>第8章内容,这里只简单记录一下做AMCL过程中遇到的问题. 1.安装 安装不细讲,这里只提示一点,在安装a ...

  4. ROS导航小车0 代价地图(仅作个人记录)

    前言 首先了解在导航堆中,move_base包与其它包(如amcl.map_server)的关系,如图所示 发布导航命令 rostopic pub /move_base_simple/goal geo ...

  5. ROS开源包之粒子滤波定位(AMCL)

    虽然现在直接使用amcl定位的很少了,但是它是粒子滤波的典型应用,还是可以了解一下.查阅了很多解读,自己也总结一下,最后在gazebo仿真平台上看看粒子定位跑起来的效果. 0.源码介绍 源码地址: g ...

  6. Android百度地图(一):百度地图定位sdk 类方法参数、定位原理详细介绍

    ***转载.引用请标明出处*** http://www.jianshu.com/p/29ccac3e1e42 本文出自[zhh_happig的简书博客](http://www.jianshu.com/ ...

  7. ROS1云课→28机器人代价地图配置

    ROS1云课→27机器人SLAM小结 在前面做的所有工作都成了现在项目的铺垫,而最大的乐趣也即将开始,这是赋予机器人生命的时刻. 后续学习以下内容: 应用程序包开发. 理解导航功能包集及其工作方式. ...

  8. AMCL算法原理讲解

    ROS进阶教程(二)AMCL算法原理讲解 AMCL算法理解 蒙特卡洛定位算法 蒙特卡洛定位算法自适应变种 里程计运动模型 测距仪模型 波束模型 似然域模型 AMCL算法理解 AMCL(adaptive ...

  9. ROS笔记(24) Amcl

    ROS笔记(24) Amcl 1. Amcl定位 2. amcl 3. 配置文件 4. 启动定位文件 5. 定位演示 1. Amcl定位 gmaping功能包生成地图,move_base功能包导航路径 ...

最新文章

  1. 远程开启目标计算机的远程桌面
  2. javascript之基本概念
  3. js解析顺序了解一下??
  4. 复选框怎么点td选中_jQuery点击tr实现checkbox选中的方法
  5. Python面向对象介绍
  6. django添加字典格式的数据
  7. 信号量优先级反转(翻转)与优先级继承
  8. 吃货的第一要诀 | 在马来西亚这么吃才爽!
  9. 110亿美金EOS都能瞬间归零,区块链谈何安全保障?
  10. linux dns服务无效,Linux下搭建DNS服务器及踩坑
  11. 定制问卷|表单收集系统-对接特殊接口(表单系统)
  12. NVIDIA驱动版本、Pytorch版本、Cuda版本三者之间对应的版本关系
  13. JasperReport:报表概述和模板制作
  14. 在n*n方阵里填入1,2,...n*n,要求填成蛇形
  15. Qt开发经验小技巧176-180
  16. 用 Python 制作商品历史价格查询
  17. word swag Android,Word Swag
  18. Python在cmd上打印彩色文字
  19. 论文笔记:Object Detection in 20 Years: A Surve(目标检测20年研究综述)
  20. chrome firefox 获取模拟微信浏览器

热门文章

  1. github推送Please make sure you have the correct access rights and the repository exists.
  2. Misc简单题目分享-CTF
  3. DCT变换在图像压缩中的实现
  4. kettle定时备份->mysql+mongoDB增量备份
  5. Android 集成Thinker 教程
  6. 伟景行Citymaker三维Gis加载FDB数据
  7. 什么是MES?MES系统有哪些功能?
  8. osgEarth示例分析——osgearth_features
  9. 【C语言】设计实现M*N矩阵和N*M矩阵相乘
  10. 一张图看懂梯度、散度、旋度、Jacobian、Hessian和Laplacian