AMCL源码架构讲解与详细分析

AMCL算法简介

AMCL(adaptive Monte Carlo Localization)自适应蒙特卡洛定位 ,源于MCL算法的一种增强,本章简要介绍AMCL的算法原理并着重讲解源码包(详细算法原理请见ROS及SLAM进阶教程(二)AMCL算法原理讲解
AMCL是2D的概率定位系统,这个方法是在已知地图中使用粒子滤波方法得到位姿的。输入激光雷达数据、里程计数据,输出机器人在地图中的位姿。如果里程计没有误差,完美的情况下,我们可以直接使用里程计信息推算出机器人(base_frame)相对里程计坐标系的位置。但现实情况,里程计存在漂移以及无法忽略的累计误差,所以AMCL采用先根据里程计信息初步定位base_frame,然后通过测量模型得到base_frame相对于map_frame(全局地图坐标系)的偏移,也就知道了机器人在地图中的位姿。(注意,这里虽然估计的是basemap的转换,但最后发布的是mapodom的转换,可以理解为里程计的漂移。)
与MCL不同的地方是AMCL算法在机器人遭到绑架的时候,会随机注入粒子(injection of random particles),增加粒子的方法引起两个问题,一是每次算法迭代中应该增加多少粒子,二是从哪种分布产生这些粒子。
解决第一个问题可通过监控传感器测量的概率来评估增加粒子,即式 ( 1.1 ) (1.1) (1.1)
p ( z t ∣ z 1 : t − 1 , u 1 : t , m ) p(z_t|z_{1:t-1},u_{1:t},m) p(ztz1:t1,u1:t,m)
并将其与平均测量概率联系起来,在粒子滤波中这个数量的近似容易根据重要性因子获取,因为重要性权重是这个概率的随机估计,其平均值为式 ( 2.2 ) (2.2) (2.2)
1 M ∑ m = 1 M w t [ m ] ≈ p ( z t ∣ z 1 : t − 1 , u 1 : t , m ) \frac{1}{M} \sum_{m=1}^{M}w_t^{[m]}\approx p(z_t|z_{1:t-1},u_{1:t},m) M1m=1Mwt[m]p(ztz1:t1,u1:t,m)
这个接近式 ( 1.1 ) (1.1) (1.1)中的期望概率。
解决第二个问题可以根据均匀分布在位姿空间产生粒子,用当前观测值加权得到这些粒子。如下给出增加随机粒子的蒙特卡洛定位算法自适应变种(AMCL):
增加随机采样的蒙特卡洛自适应变种
算法第5行使用运动模型采样,以当前置信度为起点使用粒子,第6行使用测量模型以确定粒子的重要性权值。这个算法跟踪式(1.1)的似然值的短期与长期均值,在第8行中给出了经验测量似然,并在第10、11行维持短期和长期似然平均,算法要求 0 ≤ α s l o w ≤ α f a s t 0\leq\alpha_{slow}\leq\alpha_{fast}

  • 11
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RedGlass_lee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值