カルマンフィルタの設計と実装

「使える理論」へレベルアップするための講座!パラメータ推定ツールとして利用分野が拡大の一途をたどっているカルマンフィルタをマスターし、応用を急げ!

カルマンフィルタの設計と実装 〜演習付〜

共催:R&D支援センター

日時:2011年9月5日(月)13:00〜17:00、6日(火)9:30〜16:30

[講師の言葉]
ノイズに汚された観測データから、対象システムの真の状態やパラメータに対する「(統計的に)最も確からしい推定値」を知りたい場合が多々ある。カルマンフィルタはそのような要求に応える代表的かつ強力なツールである。それはカルマンらによって1960年代初頭に公表され、ただちに宇宙航空分野に応用され華々しい成功を納めた。その後現在に至ってもあらゆる移動体の航法フィルタとして、あるいはいろいろなシステムに対する状態推定またはパラメータ推定のツールとして、その利用分野は拡大の一途をたどっている。今や、エンジニアや研究者にとって常識と言って過言でない。

 カルマンフィルタについては統計推定やマルコフ過程などによる数学的に厳密な理論的枠組が確立している。そのために初めて学ぶ者がたまたま数学的理論から入ると非常に難しく感じ、たちまちあきらめてしまうことが多い(実際、難解である)。ツールとして使いたいエンジニアや研究者は数学理論については必要最低限だけ理解し、その上で実際の問題に正しく適用できればよい。

 そこで本講義ではどんな問題にもカルマンフィルタを正確に使えること、この1点をねらいとし、そのため数学的厳密性はある程度犠牲にして、カルマンフィルタの実際と応用について「ユーザの立場」から解説する。つまり単なる知識としての「フィルタ理論」から「使える理論」へレベルアップすることを目的とし、カルマンフィルタの基礎・基本設計とフィルタシミュレーション、PC上への実装と発散抑制、実利用例、さらには近年注目されている「Unscentedカルマンフィルタ」や「粒子フィルタ」などについても演習を含めわかりやすく解説できればと願っている。なお、これらフィルタのFORTRAN(一部MATLAB)によるコード例も提供する。

[プログラム]
Ⅰ.パラメータ推定問題とは
Ⅱ.確率・統計の基礎
  1.確率と確率変数
  2.統計量とは
  3.正規分布ガウス分布
  4.相関とスペクトル
  5.ガウスマルコフ過程

Ⅲ.最小二乗法(バッチフィルタ)
  1.アルゴリズム
  2.コレスキ分解による解法
  3.平方根アルゴリズム

Ⅳ.逐次推定法(カルマンフィルタを中心として)
  1.アルゴリズムの導出
  2.非線形系への拡張
  3.PC上への実装
  4.Unscentedカルマンフィルタ
  5.粒子フィルタ
  6.アンサンブルカルマンフィルタ
  7.スムージング
  8.演習

Ⅴ.フィルタの設計と実装の実際
  1.設計から実装までの手順
  2.発散とチューニング
  3.力学システムのモデル誤差と補償法
  4.数値的にロバストなフィルタ(平方根型フィルタ)
  5.フィルタのシミュレーション法

Ⅵ.実利用例
  1.GPSナビゲーション(PPPを含む)
  2.データフュージョン(MEMSINS/GPS複合化)
  3.システム同定
  4.宇宙機の姿勢決定
  5.その他

Ⅶ.まとめと展望
付録1:数学的準備
付録2:演習問題の解答例
付録3:FORTRAN(一部MATLAB)