您的位置:首页 > 其它

amcl算法问题

2017-10-23 19:09 281 查看

amcl理解

前言

    首先这是我的第一篇博文,我希望以我的理解为每一个学习ROS的爱好者提供帮助,同时我也是作为一个初学者的身份,希望各路前辈能够驻足交流一下经验。如果有理解不当的地方希望指出。


正文

    AMCL(adaptive Monte Carlo Localization)自适应蒙特卡洛定位 ,源于MCL算法的一种升华,一种提高。那么为什么要从MCL上升至AMCL呢?

   那么我们谈谈MCL算法,蒙特卡洛定位适用于局部定位和全局定位两类问题,尽管它相对的年轻,但是已经成为定位领域中的主流算法。MCL以目前的形式解决了全局定位问题,但无法从机器人绑架或全局定位失败中恢复过来。当位置被获取时,其他地方的不正确粒子会逐渐消失。在某种程度上,粒子只能“生存”在一个单一的姿势附近,如果这个姿势恰好不正确,算法就无法恢复。.
    这个问题是非常重要的,实际上任何随机算法,就想蒙特卡洛算法,在重采样步骤中可能意外的丢弃所有正确位姿附近的粒子。当粒子数很小(M=50)。并且,当粒子扩散到整个比较大的体积(如全局定位过程)时,这个问题的重要性就能充分的显示。当然这个问题已经解决了,AMCL的提出正是对这个问题的一个解决方法。AMCL算法在机器人遭到绑架的时候,会随机的注入粒子(injection of random particles)。相对MCL算法,AMCL算法正是多了一个“A””
,那么这个"A"是什么?“”A“”是adaptive 自适应的缩写,但是个人觉得将"A"理解为Augmented(增加的)更为合适。
    理清了MCL和AMCL的区别,那么我们看一下AMCL具体是怎么执行的。请看下面个人做的PPT截图。(请仔细看ppt内容,有相对的知识可以剖析,文字不做过多介绍)



(1)MCL算法和AMCL算法的区别:

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



(2)四个参数的含义



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



(4)AMCL中最重要的地方就是随机采样概率。(看图说话)



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



(6)各个参数的作用、



(7)measurement_model用的是《概率机器人》这本书的第6章landmark_model_known_correspondece



(8)算法各部分作用,以及算法的输入输出

定位显示

    借用《Probablistic Robotics》书中一个例子,AMCL算法的全局定位的一个过程:





                                            白色小圆点代表:真实的机器人位置,红色圈圈代表离自己均值(请仔细对照图,分析过程,收获颇丰)

在进行第一次标记检测时,几乎所有粒子根据这个检测抽取,如图b所示。该步骤对应测量概率的短期平均小于测量概率的长期平均的情况。多次检测后,粒子紧紧环绕早真实的机器人周围,就像d所示,并且短期和长期测量似然平均都将增加。在这个定位阶段,机器人只是跟踪其位置,观察似然相当高,并且只偶尔增加小数量的随机粒子。

当将机器人放置在其他位置时,测量概率下降。在这个新的位置,第一次标记检测还没有触发任何附加粒子,因为平滑估计Wfast仍然很高(e),在新位置进行了几次标记检测后,Wfast比Wslow下降的快,并有更多的随机粒子被加进来(f、g)。最后机器人定位成功。

版权声明:本文为博主原创文章,未经博主允许不得转载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CSDN ROS Navigation