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 で詳しく扱われている。
各更新は 3 つのステップからなる。予測ステップでは、各粒子を運動モデルに従って動かし、オドメトリや制御の不確かさを反映するノイズを加える。更新ステップでは、最新のセンサ計測がその粒子の表す状態とどれだけよく合うかで各粒子に重みを付ける。リサンプリングステップでは、重みに比例して新しい粒子の集合を抽出するので、可能性の高い仮説は複製され、可能性の低い仮説は消える。推定値は、重み付き平均、最良の粒子、あるいは粒子のクラスタから読み取れる。
カルマンフィルタやその拡張とは異なり、パーティクルフィルタは信念がガウス分布であることを仮定しない。2 本の同じ形の廊下のどちらかにいるかもしれないロボットや、これまでに感じた接触と矛盾しない複数の姿勢のどれかにありうる手の中の物体のように、互いに離れた複数の仮説を同時に保持できる。代償は計算量である。必要な粒子数は状態の次元とともに急速に増え、真の状態の近くに来る粒子が少なすぎると、フィルタは誤った答えに収束してしまうことがある。そのため、実用的なフィルタは、低分散リサンプリングを使い、有効サンプルサイズが下がったときだけリサンプリングし、粒子数を適応的に変え、失敗から回復するためにランダムな粒子を注入する。
重要な理由
ロボットの推定問題の多くは非線形で曖昧であり、信念の分布には峰が 1 つではなく複数ある。パーティクルフィルタはこれを直接扱えるので、移動ロボットの標準的な 2D 位置推定の基礎となっており、接触や触覚から物体の姿勢を推定する一般的な道具にもなっている。
主な用途
- 既知の地図に対する移動ロボットの位置推定(モンテカルロ位置推定)
- 固有受容感覚と触覚の接触からの手内の物体姿勢の推定
- 雑然としたシーンや遮蔽のあるシーンでの人や物体の追跡
- FastSLAM や GMapping のような Rao–Blackwellized パーティクルフィルタによる SLAM
- ロボットが知らないうちに動かされた場合の大域的な位置推定と回復
実際の使われ方
ROS のナビゲーションスタックを動かす倉庫ロボットは、通常、適応的モンテカルロ位置推定のパッケージである AMCL で位置推定を行う。起動時にオペレーターがおおまかな初期姿勢を与え、その周りに数千個の粒子がばらまかれる。ロボットが走行すると、車輪オドメトリが粒子を動かし、LiDAR のスキャンのたびに保存済みの占有地図に照らして粒子の重みが付け直される。数メートル進むうちに、粒子群は真の姿勢の周りに収束する。エンジニアは、オドメトリのノイズパラメータを実際の駆動系に合うように調整し、粒子数の最小値と最大値を設定し、RViz で粒子群を見守る。繰り返しの多い通路で粒子群が 2 つのクラスタに分かれたら、フィルタが 2 つの仮説を追跡していて、それらを見分けるための特徴的な目印が必要だというサインである。
よくある誤解
- 粒子を増やせば精度の問題は必ず解決する — 必要な粒子数は状態の次元とともに急速に増えるので、高次元の問題ではサンプルを増やすだけでなく、よりよい提案分布や構造が必要になる
- パーティクルフィルタは遅いカルマンフィルタにすぎない — カルマン型のフィルタでは表せない、非ガウスで多峰性の信念を表現できる
- 毎ステップのリサンプリングが常に最善である — リサンプリングが頻繁すぎると多様性が失われる。多くのフィルタは有効サンプルサイズがしきい値を下回ったときだけリサンプリングする
- フィルタは誤った推定から必ず回復する — 粒子が真の状態から離れたところに収束してしまうと、ランダムな粒子を注入しない限り戻ってこられない
知っておくべき人
- 移動ロボットの位置推定とナビゲーションのエンジニア
- 状態推定と 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