SLAM~拡張カルマンフィルタ

概要

SLAM(ロボットの自己位置推定、マッピング同時に行うこと)に使用可能なセンサは、色々とあるが、それぞれ単一のセンサでは完璧ではないため、複数のセンサ情報を、統計的・確率的に組み合わせて、より精密で安定した自己位置を得る手法が一般的だ。状態値(位置、姿勢またはポーズ)、観測値とも正規分布(ガウス分布)に近似可能の場合、カルマンフィルタKFが適用される。また、非線形問題に対して、拡張カルマンフィルタEKFが適用される。勿論、UKF他のフィルタが存在する。なぜかROSに公式に採用されたのはEKFのようだ。ここでは、タイヤパルスセンサ(ホール式や、光学式エンコーダ)からのodom情報と距離センサ(レーザや、カメラなど)からの位置情報を組み合わせて、マッピング地図がある前提でロボットの自己位置、姿勢に拡張カルマンフィルタをかけて推定してみる。

状態空間モデル

xt=ft1(xtruet1+pt1)+qt1=[xt1+vt1Δtcosψt1000yt1+vt1Δtsinψt1000ψt1+ωt1Δt]+qt1
yt=Ht(xtruet)+rt=[xtyt]+rt

拡張カルマンフィルタの適用

予測ステップ

事前状態推定値

ˉxt=[ˆxt1+vt1Δtcosˆψt1000ˆyt1+vt1Δtsinˆψt1000ˆψt1+ωt1Δt]

線形化近似(ヤコビアン行列)

ˆFt=ft(x)x|x=ˆxt1=[10vt1Δtsinˆψt101vt1Δtcosˆψt1001]

事前誤差共分散行列

¯Pt=ˆFt1ˆPt1ˆFTt1+Qt1

フィルタリングステップ

カルマンゲイン行列

Kt=¯PtHTt(Ht¯PtHTt+Rt)1

状態推定値

^xt=¯xt+Kt(ytHt¯xt)

事後誤差共分散行列

^Pt=(IKtHt)¯Pt

関連記事

9軸IMUセンサ 6軸/9軸フュージョン 低遅延 USB出力 補正済み ROS対応
研究開発用 台車型ロボット キット

ロボット・ドローン部品お探しなら
ROBOT翔・電子部品ストア