変数の定義
:自己位置姿勢
:地図データ(ランドマークから構成される)
:i番目のランドマークの観測結果
:オドメトリ
:計測データを地図データのランドマークに対応づけするための変数:
ベイズの定理
完全SLAM問題
背景
が与えられた状況でを求めること、すなわちを計算することを考える。
となりに関する漸化式が導かれることがわかった。したがって
となる。は前の周期の位置とオドメトリから次の周期の位置を予測するオドメトリ項、は位置と地図が与えられた時にランドマークがどのように観測されるかを表す観測項である。を最大化するが完全SLAM問題の解である。
軌跡推定項と地図生成項の分離
一般に完全SLAM問題は計算量が多く大変なので、先に移動軌跡を全て決め切ってしまってから地図を推定するということがよく行われる。具体的には
と変形する(導出はこちらが詳しい)。第一項はによらないのでこの項が最大になるようにを決定し、その後に第二項を最大にするようにを決めるという方針で進める。この項が最適解である保証は当然ない。
軌跡推定項
という漸化式が導かれる。第一項については
これらを組み合わせると
ももに対して正規分布すると仮定するとの最適値をから順次決めていくことができる。
地図生成項
が決まれば、地図生成項である
を最大化するように地図を決めていけばSLAM問題が解けたことになる。
オンラインSLAM問題
オンラインSLAM問題ではを求めることを考える。
したがってを逐次的に求めることができることがわかった。積分の中がオドメトリによる予測項、が観測項を表す。
拡張カルマンフィルター を使ったアルゴリズム
オンラインSLAM問題を解くアルゴリズムとして拡張カルマンフィルター を使った方法を示す。ここではカルマンフィルターの状態にロボットの位置姿勢情報だけでなく地図特徴点の情報も含める。そのため計算サイズは行列サイズとして地図特徴点数の2乗で聞いてくるためあまり大きなサイズの特徴点を扱えないという欠点がある。
例として2次元平面上で移動する物体があり、障害物までの相対距離と相対方位角が測定できるとする。カルマンフィルター の状態は
という次元で表現される。ここでは番目の特徴点の地図座標系での位置を表し、は特徴ベクトルを表す。は特徴点の個数である。
伝搬ステップ
2次元平面上で移動する物体の絶対速度と角速度が測定できる場合、伝搬式は
偏微分は
となる。行列表記のためは次元のベクトルを次元に写像する
という行列を用いると便利であり、伝搬式を行列表記で書くと
なので、全状態ベクトルに対する伝搬を省略せずに書くと
と表されることがわかった。
観測ステップ
観測ステップは、観測した特徴点と状態量の特徴点の間のインデックスの対応がわかっていないことが多いが、まずは簡単のためわかっている状況を想定する。
観測点と状態ベクトルインデックスの対応が既知のケース
観測点に順に与えられたインデックスと、状態ベクトルの地図点インデックスの対応付けがわかっているとする()。観測量は相対距離と相対方位角と特徴ベクトルであり
との対応付けはわかっているのでは前提としている。したがって観測量に関係する部分のみを抜き出したJacobianは
今回の場合も6次元を次元に写像する行列を用意すると便利である
を定義すると、求めたいJacobianは
となることがわかった。
観測点と状態ベクトルインデックスの対応が不明のケース
観測点に対応する状態ベクトルの地図インデックスが不明の場合、状態ベクトルの地図インデックスに対して全ての組み合わせを試し確率が高いものを採択する。確率が高いものがなければ新規の地図点であると判断し状態ベクトルに新規で追加する。確率が高いものを採択する時、観測位置とある候補インデックスの伝搬後位置の距離をマハラノビス距離で測定する。まず、伝搬後の位置に対する分散共分散行列は、伝搬後の分散共分散行列にをかけたものと、観測の誤差を足し合わせたものあので
となるので、マララノビス距離は
で求められる。各に対して、全てのでを導出しこれが最も大きくなったをに対応するインデックスとして選択する。ただし、その時のがある閾値を超えていない場合はその点は新規の点だと判断して新たに状態ベクトルに追加する。
参考
https://sterngerlach.github.io/doc/slam-formulation.pdf
SLAM入門: ロボットの自己位置推定と地図構築の技術 | 友納 正裕 |本 | 通販 | Amazon
確率ロボティクス (ROBOT books) | Sebastian Thrun, Wolfram Burgard, Dieter Fox, 上田 隆一 |本 | 通販 | Amazon