0%

SLAM-EKF Fast-SLAM粒子滤波原理

基本概念

Fast-SLAM:一种基于Rao-Blackwillised Particle Filter的SLAM后端算法,包括Fast-SLAM1.0和Fast-SLAM2.0两个版本。
Fast-SLAM 1.0:该算法利用粒子滤波器跟踪移动机器人位姿参数,并且每一粒子单独维护一幅环境特征地图、每一个环境路标利用EKF算法来维护。
Fast-SLAM 2.0:在1.0版本的基础上,较好地解决了粒子退化的问题,使用较少的粒子就可以得到满意的SLAM结果。
受Fast-SLAM启发的算法:栅格地图Fast-SLAM、立体视觉Fast-SLAM、UFast-SLAM、CFast-SLAM等。
与EKF算法的区别:Fast-SLAM算法计算代价小、计算速度快、更适用于大尺度环境、数据关联鲁棒性更好。

Fast-SLAM基本框架

若机器人路径已知,则各个地标点的位置估计是相互独立的,SLAM问题目标概率方程分解为:

前项为路径后验概率、后项为地表估计。FastSLAM由粒子滤波和多个单独的EKF构成,粒子滤波器估计移动机器人的路径、EKF根据式中参数完成对单个路标的估计。
FastSLAM中的粒子包含粒子的历史路径和对每个路标的估计,可以表示为:

FastSLAM分为预测,更新和重要性采样三个步骤。预测和更新步骤根据观测信息和控制信息形成临时粒子集,将临时粒子集对路径的估计称为建议分布。由于建议分布与目标分布不符,因此在重采样步骤对粒子赋予权重,权重大小为:

FastSLAM算法存在粒子退化的问题,即权重大的粒子数量少,粒子滤波器对路径的估计出现偏差。因此,FastSLAM算法需要对粒子进行重新采样。执行重采样步骤的判断方法为对有效粒子数设置阈值,当小于阈值N-neff时进行重采样。有效粒子数的计算方式为:

重采样问题:重采样步骤会导致粒子集中在权重较大的粒子附近,在降低粒子多样性的同时,若权重较大的粒子为局部最优解,则包含局部最优解信息的粒子数量过多,进而导致对下一时刻的粒子路径估计错误,导致粒子偏离正确轨迹。

Fast-SLAM(Rao-Blackwillised PF)实际应用流程

  1. 机器人状态预测
  2. 数据关联
  3. 重要性采样(权值计算)
  4. 地图更新
  5. 重采样