定式化
推定したい状態量の時刻での真の値をとする。は前周期の値をもとにしてある状態量と正規分布に従うノイズによって線形で表現できると仮定する。
このシステムにおいての推定値を求めることを考える。まずオドメトリによる推定値は、前の周期に算出した推定値を伝搬させることで求められる。
ここで、
と表されるので、の分散共分散行列は
となる。ここでは測定結果に誤差はないと考えていることに注意。もし誤差がある場合この項由来の成分が追加で加わることになる。
次に観測値について考える。観測値は真の値を観測による線形変換したものに対して正規分布に従うノイズ成分をのせたものだとし、その結果が示す推定値をとすると、
(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