![2af6085beb6b768546516790cc0b5306.png](https://img-blog.csdnimg.cn/img_convert/2af6085beb6b768546516790cc0b5306.png)
之前介绍过粒子滤波器(传送门),在全局地图环境下,传统粒子滤波器在sample数量过大的情况下,计算效率会非常的低。但是如果在非常大的地图环境下,少量的sample数又会导致定位的发散。这样,在早期阶段可能需要有数十万的样本来完成初期的定位,维持一个如此大的样本集合是有必要的,一旦机器人确定了自己的位置之后只需要一小部分粒子就足以跟踪机器人的位置了。
KLD采样是MCL定位的一种变形,它根据时间自适应的调整粒子数量。这里我们不提供KLD采样的数学推导,只是陈述算法过程并展示一些实验结果。 KLD采样的全称是库尔贝克-莱布勒散度Kullback-Leibler Divergence,它是一种计算两个概率分布之间差异的方法。KLD采样背后的思想就是根据基于采样近似质量的统计界限来确定粒子数量。 更特殊的,在粒子滤波器的每次迭代过程中,KLD采样以概率1−σ来确定样本数量,真实的后验概率与基于采样的近似分布之间的差异小于ε。 还有几个假设可以让我们有效的实现这一思想,这里先不详细解释这些假设了。
![b2aa4e9567ba28d8fc650c79b3190cac.png](https://img-blog.csdnimg.cn/img_convert/b2aa4e9567ba28d8fc650c79b3190cac.png)
KLD采样会不断的生成粒子直到满足了