1. 重采样
重采样是为了消除早期SIS粒子滤波器的粒子退化问题
其基本思想是对赋予权重的粒子集合进行重新采样,从中取出权重较小的粒子,增加权重较大的粒子
虽然,这一操作成功地解决了粒子退化问题
但它带来了一种所谓的粒子匮乏地问题,随着迭代次数的增加,粒子的多样性在下降
GMapping采取了一种自适应的方式进行重采样
定义了一个指标Neff来评价粒子权重的相似度
只有在Neff小于一个给定的阈值的时候才进行重采样,其背后的思想可以在《SLAM GMapping(7)粒子和轨迹》查看
就是,粒子的权重差异越小, Neff越大,得到的粒子则更接近于对目标分布的采样
2. 重采样函数
通过resample重采样函数,当权重相似性小于设置的阈值时,
利用resampleIndexes
函数获取采样后的粒子在原始粒子集合中的索引
将选取的样本记录在临时粒子集合temp中,删除原粒子群
遍历重采样保留的临时粒子集合,将激光扫描的占用信息注册到栅格地图上ÿ