大家好,又见面了,我是你们的朋友全栈君。
前端匹配(局部定位)
AMCL(全局定位)
AMCL(adaptive Monte Carlo Localization)自适应蒙特卡洛定位,A也可以理解为augmented,是机器人在二维移动过程中概率定位系统,采用粒子滤波器来跟踪已经知道的地图中机器人位姿,对于大范围的局部定位问题工作良好。对机器人的定位是非常重要的,因为若无法正确定位机器人当前位置,那么基于错误的起始点来进行后面规划的到达目的地的路径必定也是错误的。
- 粒子滤波和蒙特卡洛
蒙特卡洛:是一种思想或方法。举例:一个矩形里面有个不规则形状,怎么计算不规则形状的面积?不好算。但我们可以近似。拿一堆豆子,均匀的撒在矩形上,然后统计不规则形状里的豆子的个数和剩余地方的豆子个数。矩形面积知道的呀,所以就通过估计得到了不规则形状的面积。拿机器人定位来讲,它处在地图中的任何一个位置都有可能,这种情况我们怎么表达一个位置的置信度呢?我们也使用粒子,哪里的粒子多,就代表机器人在哪里的可能性高。
粒子滤波:粒子数代表某个东西的可能性高低。通过某种评价方法(评价这个东西的可能性),改变粒子的分布情况。比如在机器人定位中,某个粒子A,我觉得这个粒子在这个坐标(比如这个坐标就属于之前说的“这个东西”)的可能性很高,那么我给他打高分。下次重新安排所有的粒子的位置的时候,就在这个位置附近多安排一些。这样多来几轮,粒子就都集中到可能性高的位置去了。
- 自适应蒙特卡洛(失效恢复) 自适应体现在:1解决了机器人绑架问题,它会在发现粒子们的平均分数突然降低了(意味着正确的粒子在某次迭代中被抛弃了)的时候,在全局再重新的撒一些粒子。
- KLD采样(调节粒子数) 就是为了控制上述粒子数冗余而设计的。比如在栅格地图中,看粒子占了多少栅格。占得多,说明粒子很分散,在每次迭代重采样的时候,允许粒子数量的上限高一些。占得少,说明粒子都已经集中了,那就将上限设低,采样到这个数就行了。
- MCL算法和AMCl算法的区别
AMCL算法增加了短期和长期的指数滤波器衰减率αslow,αfast,换句话说MCL中αslow,αfast为0,AMCL中的不为0。
(1)四个参数的含义
(2)xt代表M个粒子的集合,第5行利用运动模型从旧粒子采样获取新位姿,第6行它的重要性权重依据测量模型设置。
动态环境下全局定位
(1)状态增广技术 (2)异常值去除技术 见《概率机器人》p204
参考:添加链接描述
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172364.html原文链接:https://javaforall.cn