BEIKE blog

備忘録です

確率ロボティクス(青本) 自己位置推定

概要

自己位置推定に関するアルゴリズムを把握するために読んだことを備忘る。

自己位置推定

  • 格子位置推定
    • 細かい格子だと計算量が大きくなる
    • 荒い格子だと離散化による情報の損失が大きくなりフィルタに悪影響を与える
  • モンテカルロ位置推定(MCL)
    • 最も人気のある位置推定アルゴリズム
    • ロボット姿勢に対する事後信念を推定をするためにパーティクルフィルタを用いる

格子位置推定

姿勢空間を格子状に離散化し、ヒストグラムフィルタを適用して事後信念を近似する手法。

ヒストグラムフィルタ

ヒストグラムフィルタは、連続状態空間における近似推定のために、離散ベイズフィルタを利用する。 ロボットの存在確率を評価するのに各グリッドに対して行う。二次元平面上のX-Y位置のみを推定したい場合などに利用される。

格子の解像度

  • トポロジカル・・・ある特徴のみで表現

    • 極端に荒いものになる
    • グラフ状の粗い離散化表現
  • メトリック・・・細かい粒度での表現

    • 状態空間の解像度がトポロジカルよりずっと高くなる
    • 格子表現

計算量の考慮

三次元格子の場合、動作の更新は分布の積の積分により六次元の計算になる。 計測更新は3次元の演算であるが、スキャン全ての尤度を計算する負荷は大きい。

これらのことから、以下のような格子位置推定の計算複雑性を減少させるテクニックがある。

  • モデルキャッシング・・・各格子地図に正しい距離計測値をキャッシュしておくことで、計測モデルの計算負荷が高いことに対処するための方法
  • センササブサンプリング・・・計測値の一部だけについて計測モデルを評価することによっ て、処理スピードのアップが可能にする方法(ただし、情報量の減少により期待されない結果が求められる可能性がある)
  • 遅延動作更新・・・動作更新をロボットの制御や計測の頻度よりも少ない頻度で適用して、格子位置推定の実行速度を上げる方法
  • 選択的更新・・・格子セルの確率を更新するとき、閾値を超える事後確率を有する一部の格子セルしか更新を行わないことで計算負荷を小さくする方法(ただし誘拐ロボット問題では低確率の格子セルも直ぐに反応できるように注意を払う必要がある)

格子位置推定まとめ

離散化表現の解像度は、格子マルコフ位置推定において重要なパラメータである。十分な CPUとメモリが与えられれば、細かい離散化は粗い離散化よりも通常望ましい。また、細かい離散化による近似は、ロボットの信念が真の姿勢から大幅に異なってしまう致命的誤りが起こる頻度を低く抑える。


モンテカルロ位置推定(MCL)

パーティクルフィルタ

  • パーティクル
    • ガウス分布に従う確率変数 X から選ばれる標本
    • 事後確率分布の標本
    • 時刻 t における真の状態に対する仮説

      参考資料

myenigma.hatenablog.com

www.amazon.co.jp