信号処理機械学習自動制御

カルマンフィルタ

かるまんふぃるた · Kalman Filter
23 views

カルマンフィルタは、誤差を含む観測データから、ノイズの影響を抑えて対象の真の状態を精度高く推定するためのアルゴリズムです。過去の状態と新しい測定値を確率的に融合し、逐次的に最適推定値を計算します。自動運転の自己位置推定や航空宇宙分野の軌道予測など、リアルタイムな状態推定に広く活用されています。

カルマンフィルタとは

カルマンフィルタとは、時間の経過とともに変化する不確実な動的システムにおいて、ノイズが含まれる測定データから、システムの真の状態を統計的・確率的に予測および更新しながら最適に推定する状態推定アルゴリズムです。

詳しく解説

カルマンフィルタは、1960年代にルドルフ・カルマンによって提唱された手法です。この手法は「予測ステップ」と「フィルタリング(更新)ステップ」の2つのプロセスを繰り返す逐次的な処理を行います。まず、システムモデルに基づき次の「事前推定値」を予測します(予測ステップ)。次に、実際に得られたセンサなどの「測定値」と予測値を、それぞれの不確実性(共分散)を考慮した「カルマンゲイン」と呼ばれる重みを用いてブレンドし、より確からしい「事後推定値」へと更新します(フィルタリングステップ)。これにより、メモリの消費を抑えながらリアルタイムで高精度な状態推定を実現できます。基本形は線形システムを対象としますが、非線形システムに対応するために拡張カルマンフィルタ(EKF)や無香カルマンフィルタ(UKF)なども開発されています。

具体例・使われ方

代表的な利用例として、自動運転車やロボットの自己位置推定が挙げられます。GPSのデータ(遮蔽物による誤差が大きい)と、車輪の回転数や加速度センサ(IMU)のデータ(累積誤差が発生しやすい)をカルマンフィルタで統合することで、正確な現在位置を算出します。また、人工衛星や航空機の軌道予測、スマートフォンの姿勢制御、さらに金融分野での時系列解析などにも応用されています。

似た用語との違い

カルマンフィルタと混同されやすいものにパーティクルフィルタがあります。カルマンフィルタ(特に基本形)は、ノイズがガウス分布(正規分布)に従う線形システムを前提としており、計算量が少なく高速に動作します。一方、パーティクルフィルタは非線形・非ガウス分布のシステムにも適用可能ですが、多数の粒子(サンプル)を用いて確率分布を近似するため、計算コストが非常に高いという違いがあります。また、移動平均フィルタなどの単純な平滑化手法とは異なり、システム全体の動的な物理特性を考慮して推定を行う点も大きな特徴です。

注意点

カルマンフィルタを効果的に機能させるには、対象とするシステムの物理モデルやノイズの特性(共分散行列など)を事前にある程度正確に定義する必要があります。モデルが実際のシステムと大きく乖離している場合や、想定外のノイズが発生した場合には、推定精度が著しく低下したり、値が発散したりする危険性があります。また、基本形は線形システムにしか適用できないため、現実世界の複雑な非線形システムに適用する際は、拡張カルマンフィルタなどの高度な派生アルゴリズムを選択する必要があります。

更新日時: 2026年9月7日 10:51