SLAMのチュートリアルを見ていると、何故か途中から普通のカルマンフィルタの議論になっていたりして、何が違うのか、というのがいまいちわからない。
SLAM と普通のカルマンフィルタで習う隠れ変数、観測モデルの違う点は、
- 観測が相対的に与えられる。
- 状態が2つある(ロボットとマップ)
ということだと思ったので、どういうことなのか考えてみた。観測が相対的に与えられる、ということは、その確率変数を考えてやれば、本質的にはカルマンフィルタと同じになる。
マップやロボットが動いているか動いていないかも重要だが、一緒に考えると混乱するので考えない。
ロボット一つ、ランドマーク一つ
ロボットとランドマークが一つづつあるような状態を考える。その時に、ロボットとランドマークの位置は、ここかな?とは思っているが、はっきりわかっていないとする。こういう状態は、正規分布で表せる。
カルマンフィルタ
http://www1.accsnet.ne.jp/~aml00731/kalman.pdf
http://www.kimura-lab.net/wp-content/uploads/2012/05/derivation_kalman_filter1.pdf
http://web.eecs.utk.edu/~leparker/Courses/CS594-fall08/Lectures/Nov-20-Localization-Mapping-III.pdf
このへんの資料が、直感的に書いてくれていてわかりやすい。
数学的に難しいのは、トレースを行列(カルマンゲイン)で微分するというところだけど、行列微分といってもエレメントごとに微分するだけなので、ちゃんとかけば理解出来る。
ほとんどユニバリエイトのケースと変わらないので、ユニバリエイトで導出してから多次元バージョンでやってみるとわかりやすい。
また、予測は単に掛け算なので、難しいのはやはりカルマンゲインを導出する所。カルマンゲインの意味と、「何を最小化するのか」ということが理解できれば、カルマンフィルタを理解したことになると思う。
No comments:
Post a Comment