スキャンマッチングSLAMの概要をまとめました。
スキャンマッチングSLAM実装のシリーズ
- 概要編 ←いまココ
- EKF実装編
- NDT実装編
- Launchファイル実装編
【ROS】スキャンマッチングSLAMの実装(概要編)
スキャンマッチングの実装例を紹介するシリーズのうち、この記事は第一弾の「概要編」です。実装する前に、システム全体の概要をつかんでもらえればと思います。
スキャンマッチングSLAMとは
SLAMは数種類に分類することができ、スキャンマッチングSLAMはそのうちの一種です。
▶【自動運転】SLAMとは
▶オープンソース SLAM の分類(外部リンク)
異なる時間ステップで計測された点群データを、絵合わせするように重ね合わせていくことで、センサーがどれだけ移動したかを推定する手法です。
処理の流れ
計測した点群を初期位置に配置
↓(センサ移動)
内界センサで相対位置姿勢変化を予測
↓
初期点群と計測点群をNDTでスキャンマッチング
↓
NDTで算出された相対位置姿勢変化をもとに観測更新
&
計測点群を推定位置に配置して蓄積点群に追加
↓(センサ移動)
繰り返し
※内界センサを用いないSLAMもたくさん存在します
システム図
「自己位置推定」と「地図生成」を同時に行います。ゆえに、EKFとNDTは互いの出力を入力として用いており、依存し合っている関係です。
- 自己位置推定:EKFで推定
- 地図生成:NDTの計算結果をもとに点群を配置
EKF:自己位置推定
予測と観測を繰り返すことで、ロボットの位置・姿勢を推定します。
予測ステップ(ホイールエンコーダ)
ホイールエンコーダで計測される並進速度積算します。
予測ステップ(ジャイロスコープ)
ジャイロスコープで計測される角速度を積算します。
観測ステップ(NDT)
NDTで推定されたロボットの位置・姿勢を観測し、状態ベクトルを更新します。
NDT:地図生成
LiDARで得られた点群を、過去ステップで蓄積した点群に対して、絵合わせして追加していきます。絵合わせの初期位置は、EKFで推定されたロボットの位置・姿勢を用います。
さいごに
スキャンマッチングSLAMの概要をまとめました。参考になれば幸いです。
以上です。
スキャンマッチングSLAM実装のシリーズ
- 概要編 ←いまココ
- EKF実装編
- NDT実装編
- Launchファイル実装編
コメント