Particle Filter
- 又称: sequential Monte Carlo, SMC, bootstrap filter
- 类别: State estimation & navigation › Localisation
- 标签: state-estimation, localization, bayesian-filtering, probabilistic-robotics, monte-carlo
一种状态估计方法,它把置信表示为一组加权样本,用运动模型移动它们,按传感器似然为它们加权并进行重采样。
定义
粒子滤波器(Particle filter)是一种递归贝叶斯估计器,它用一组各带一个权重的样本(称为粒子)来表示系统状态的概率分布。这种方法也称为序贯蒙特卡洛(sequential Monte Carlo);其被广泛引用的形式——自举滤波器(bootstrap filter)——由 Gordon、Salmond 和 Smith 于 1993 年发表。在机器人领域,它通过 Dellaert、Fox、Burgard 和 Thrun 开发的蒙特卡洛定位成为标准方法,并在 Probabilistic Robotics 一书中有深入论述。
每次更新包括三个步骤。在预测步骤中,每个粒子按照运动模型移动,并加入噪声以反映里程计或控制中的不确定性。在更新步骤中,每个粒子按照最新的传感器测量与其所代表状态的吻合程度被赋予权重。在重采样步骤中,按权重的比例抽取一组新的粒子,于是可能性大的假设被复制,可能性小的假设则消失。估计值可以从加权平均、最佳粒子或一簇粒子中读出。
与卡尔曼滤波器及其扩展不同,粒子滤波器并不假设置信分布是高斯分布。它可以同时保持几个相互分离的假设,例如机器人可能位于两条完全相同的走廊之一,或者手中所握的物体可能处于与迄今感受到的接触相一致的几种位姿之一。代价在于计算量:所需的粒子数随状态维数迅速增长,而如果落在真实状态附近的粒子太少,滤波器可能会坍缩到一个错误的答案上。因此,实用的滤波器会使用低方差重采样,只在有效样本量下降时才重采样,自适应调整粒子数,并注入随机粒子以便从失败中恢复。
为何重要
许多机器人估计问题是非线性且有歧义的,其置信分布有多个峰而不是一个。粒子滤波器能直接处理这类问题,这就是它成为移动机器人标准 2D 定位的基础,也是根据接触和触觉估计物体位姿的常用工具的原因。
主要应用
- 在已知地图中进行移动机器人定位(蒙特卡洛定位)
- 根据本体感觉和触觉接触估计手内物体位姿
- 在杂乱或有遮挡的场景中跟踪人和物体
- 使用 FastSLAM 和 GMapping 等 Rao–Blackwellized 粒子滤波器的 SLAM
- 机器人在不知情的情况下被移动后的全局定位与恢复
实际应用
运行 ROS 导航栈的仓库机器人通常用 AMCL(一个自适应蒙特卡洛定位软件包)进行定位。启动时,操作员给出一个粗略的初始位姿,几千个粒子散布在它周围。机器人行驶时,轮式里程计移动这些粒子,每次激光雷达扫描都会根据存储的占据地图为它们重新加权;行驶几米之内,粒子云就会在真实位姿周围收紧。工程师调节里程计噪声参数,使其与真实的驱动系统相匹配,设定最小和最大粒子数,并在 RViz 中观察粒子云:在重复的货架通道中分裂成两簇的粒子云,表明滤波器正在跟踪两个假设,需要一个有辨识度的特征来区分它们。
常见误解
- 粒子越多,精度问题总能解决 — 所需粒子数随状态维数迅速增长,因此高维问题需要更好的提议分布或结构,而不仅仅是更多样本
- 粒子滤波器只是更慢的卡尔曼滤波器 — 它能表示卡尔曼类滤波器无法表示的非高斯、多峰置信分布
- 每一步都重采样总是最好的 — 重采样过于频繁会丢失多样性;许多滤波器只在有效样本量低于阈值时才重采样
- 滤波器总能从错误的估计中恢复 — 一旦粒子坍缩到远离真实状态的地方,除非注入随机粒子,否则它们无法回来
谁需要了解
- 移动机器人定位和导航工程师
- 状态估计和 SLAM 开发者
- 根据触觉估计物体位姿的操作研究人员
- 学习概率机器人学的机器人专业学生
相关技术
- 蒙特卡洛定位(Monte Carlo Localization,AMCL)
- 卡尔曼滤波器(Kalman Filter)
- FastSLAM
- 重要性采样(Importance Sampling)
- 占据栅格地图(Occupancy Grid Map)
相关术语
- Extended Kalman Filter
- SLAM
- Odometry
- Sensor Fusion
- LIDAR
- Partially Observable Markov Decision Process (POMDP)
相关项目
- Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
- Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
- GTSAM: Factor-graph optimization library powering many modern SLAM backends
- OpenVINS: The reference open platform for visual-inertial state estimation research
- AprilTag: The standard visual fiducial marker system for robot localization and pose estimation
- GLIM: GPU-accelerated 3D lidar SLAM framework for any range sensor, from AIST
视频
- Understanding the Particle Filter | | Autonomous Navigation, Part 2: MATLAB
- Particle Filter - 5 Minutes with Cyrill: Cyrill Stachniss