定式化
推定したい状態量の時刻での真の値を
とする。
は前周期の値
をもとにしてある状態量
と正規分布に従うノイズ
によって線形で表現できると仮定する。
このシステムにおいての推定値
を求めることを考える。まずオドメトリによる推定値は、前の周期に算出した推定値
を伝搬させることで求められる。
ここで、
と表されるので、の分散共分散行列
は
となる。ここでは測定結果に誤差はないと考えていることに注意。もし誤差がある場合この項由来の成分が追加で加わることになる。
次に観測値について考える。観測値は真の値
を観測による線形変換したものに対して正規分布に従うノイズ成分
をのせたものだとし、その結果が示す推定値を
とすると、
(1)(3)のように線形の関係で表される場合線形カルマンフィルターが使える。オドメトリによる推定値と観測値を使って、最適な推定値はカルマンゲイン
を使って以下のように表される。
オドメトリによる推定値をベースとし、観測値による補正量にカルマンゲインをかけたものを最終的な推定値としていることがわかる。
最後にに関する分散共分散行列を考える。
なので
その他よく出てくる表記法
は、時刻
までの観測値を使って推定した時刻
での推定値のこと。したがって
* : 時刻
での推定値のこと。すなわち
のこと。
* : 時刻
での予測値のこと。すなわち
のこと。
* :
に対して観測結果更新を行った状態、すなわち時刻
での推定値であり
のこと。
アルゴリズムまとめ
線形カルマンフィルタは、、
、
、
を入力として
と
を求めることを目指す。処理の流れを以下に示す。
1: 式(2)によりを求める
2: 式(3)によりを求める
3: 式(7)によりを求める
4: 式(5)によりが決まる。
5: 式(6)によりが決まる。
最適カルマンゲインの導出(極値条件を用いた導出)
最適とは推定誤差、すなわち の分散が最小になることである。共分散行列を
と表記すると
最後の式の展開はの次数ごとに項を分解している。ここでは
に関する分散共分散行列を
と表記している。
の分散は共分散行列
のトレースとして表されるので、分散が最小になるという必要条件から、最適なカルマンゲイン
に関する方程式が以下のように導出できる。
ここで、行列のトレースに対する行列微分(スカラーに対する行列微分とは、スカラーを各行列成分で微分したもの)を実施しており、一般に行列、
に対して
が成立することを利用している(導出は公式まとめを参照)。これをについて解くと
また、なので
とも書ける。
最適なカルマンゲインの導出(Likelihoodを使った求め方)
予測による推定結果が、観測結果が
であったときに、最終的な推定結果
となる確率は
ここで、の推定値は
を最大にするはずなので、1回微分したものが0にならないといけない。すなわち
ベクトル微分については公式まとめを参照。扱いやすいように転置をとると
この式をカルマンゲインの定義式
と見比べると
このままでも良いが、「最適カルマンゲインの導出(極値条件を用いた導出)」で求めた表式と一致させるために式変形をしていくと
となり、「最適カルマンゲインの導出(極値条件を用いた導出)」で求めたものと同じ形になることがわかった。ちなみに、推定値の分散の逆数は
における
の係数の-2倍であることから
と表現される。
1次元カルマンフィルターの例
等速直線運動を考える。
ただしは
のノイズだとすると、カルマンフィルタの定式化に合わせた場合
となる。また、観測による線形変換を
とする。ただしは
のノイズだとする。この場合
となる。
最適なカルマンゲインは
となり
のようにシンプルな形で表されることがわかった。推定量は
と表される。
とした場合の結果を以下に示す。右下のグラフから、カルマンフィルタによる推定値(緑)の誤差がオドメトリ(赤)と観測値(青)の誤差より小さくなっており良い推定量になっていることがわかる。
ベイズフィルターの事後確率を分布の重ね合わせとして解釈する
自分の理解としては、線形カルマンフィルターの出力はガウシアンの掛け合わせになるということである。これは
ここでは何も情報がないときに
が
となる確率であるが、これは何もヒントがないから
によらず一定値を取るとして依存性がないとした。
したがってと
という2つのガウシアンをかけたものが出力となる。2つのガウシアンを掛け合わせた分布もガウシアンになる。
]、それを掛け合わせたのがオレンジ
参考
http://www1.accsnet.ne.jp/~aml00731/kalman.pdf
確率ロボティクス (ROBOT books) | Sebastian Thrun, Wolfram Burgard, Dieter Fox, 上田 隆一 |本 | 通販 | Amazon