蒙特卡洛粒子滤波定位算法_AMCL--自适应蒙特卡洛定位

AMCL是机器人二维移动中的概率定位系统,采用粒子滤波器实现大范围局部定位。它通过蒙特卡洛方法估计机器人位置,自适应特性解决粒子集中和绑架问题。关键概念包括KLD采样、测距仪的似然域及TF转换。AMCL与MCL的主要区别在于短期和长期滤波器衰减率。
摘要由CSDN通过智能技术生成

AMCL(adaptive Monte Carlo Localization)自适应蒙特卡洛定位,A也可以理解为augmented,是机器人在二维移动过程中概率定位系统,采用粒子滤波器来跟踪已经知道的地图中机器人位姿,对于大范围的局部定位问题工作良好。对机器人的定位是非常重要的,因为若无法正确定位机器人当前位置,那么基于错误的起始点来进行后面规划的到达目的地的路径必定也是错误的。

蒙特卡洛:是一种思想或方法。举例:一个矩形里面有个不规则形状,怎么计算不规则形状的面积?不好算。但我们可以近似。拿一堆豆子,均匀的撒在矩形上,然后统计不规则形状里的豆子的个数和剩余地方的豆子个数。矩形面积知道的呀,所以就通过估计得到了不规则形状的面积。拿机器人定位来讲,它处在地图中的任何一个位置都有可能,这种情况我们怎么表达一个位置的置信度呢?我们也使用粒子,哪里的粒子多,就代表机器人在哪里的可能性高。

粒子滤波:粒子数代表某个东西的可能性高低。通过某种评价方法(评价这个东西的可能性),改变粒子的分布情况。比如在机器人定位中,某个粒子A,我觉得这个粒子在这个坐标(比如这个坐标就属于之前说的“这个东西”)的可能性很高,那么我给他打高分。下次重新安排所有的粒子的位置的时候,就在这个位置附近多安排一些。这样多来几轮,粒子就都集中到可能性高的位置去了。

自适应蒙特卡洛

自适应体现在:1解决了机器人绑架问题,它会在发现粒子们的平均分数突然降低了(意味着正确的粒子在某次迭代中被抛弃了)的时候,在全局再重新的撒一些粒子

2解决了粒子数固定的问题,因为有时候当机器人定位差不多得到了的时候,比如这些粒子都集中在一块了,还要维持这么多的粒子没必要,这个时候粒子数可以少一点了。

KLD采样

就是为了控制上述粒子数冗余而设计的。比如在栅格地图中,看粒子占了多少栅格。占得多,说明粒子很分散,在每次迭代重采样的时候,允许粒子数量的上限高一些。占得少,说明粒子都已经集中了,那就将上限设低,采样到这个数就行了。

测距仪的似然域(likelihood field)

主要思想是首先将传感器扫描到的终点

2e0435cfeaf53f412064b9687f0fab94.gif

映射到地图的全局坐标空间。假定三种噪声和不确定性的来源

1.测量噪声。由测量过程引起的噪声使用高斯进行建模。在x-y空间,它涉及寻找地图上最近的障碍物。

2.测量失败,

3. 无法解释的随机测量

将障碍物检测的似然描述成全局x-y坐标的函数,叫作似然域。

1c8334fd96739b11c472464ba91c3405.png

有三种类型的ROS参数可以用来配置AMCL节点,整体滤波器,激光模式,odometery模型。

Transforms:

AMCL将传入的激光扫描数据转为里程计结果(odom_frame_id),因此必须存在从激光发布到里程计的tf树转换。

说白了就是2D的概率定位系统,输入激光雷达数据,里程计数据,输出机器人在地图中的位姿,用的是自适应蒙特卡洛定位方法,这个方法是在已知地图中使用粒子滤波方法得到位姿的。

  1. MCL算法和AMCl算法的区别

AMCL算法增加了短期和长期的指数滤波器衰减率αslow,αfast,换句话说MCL中αslow,αfast为0,AMCL中的不为0.

9416fc3ea7eb4dd945f86ad19d960517.png

37c74075f96c9e2dc227983c9675a8e1.png

xt代表M个粒子的集合,第5行利用运动模型从旧粒子采样获取新位姿,第6行它的重要性权重依据测量模型设置。

86df400075df1f12523064b303f9ea3a.png

AMCL中最重要的地方就是随机采样概率

42ce425ca501133024b68115dbf9150f.png

motion_model用的是《概率机器人》这本书第5章的sample_motion_model_velociy

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值