スキャンマッチングSLAMの概要をまとめました。

スキャンマッチングSLAM実装のシリーズ

【ROS】スキャンマッチングSLAMの実装(概要編)

スキャンマッチングの実装例を紹介するシリーズのうち、この記事は第一弾の「概要編」です。実装する前に、システム全体の概要をつかんでもらえればと思います。

スキャンマッチングSLAMとは

SLAMは数種類に分類することができ、スキャンマッチングSLAMはそのうちの一種です。

【自動運転】SLAMとは
オープンソース SLAM の分類(外部リンク)

異なる時間ステップで計測された点群データを、絵合わせするように重ね合わせていくことで、センサーがどれだけ移動したかを推定する手法です。

処理の流れ

計測した点群を初期位置に配置
 ↓(センサ移動)
内界センサで相対位置姿勢変化を予測
 ↓
初期点群と計測点群をNDTでスキャンマッチング
 ↓
NDTで算出された相対位置姿勢変化をもとに観測更新
 &
計測点群を推定位置に配置して蓄積点群に追加
 ↓(センサ移動)
繰り返し

※内界センサを用いないSLAMもたくさん存在します

システム図

「自己位置推定」と「地図生成」を同時に行います。ゆえに、EKFとNDTは互いの出力を入力として用いており、依存し合っている関係です。

  • 自己位置推定:EKFで推定
  • 地図生成:NDTの計算結果をもとに点群を配置
scanmatching_system

EKF:自己位置推定

予測と観測を繰り返すことで、ロボットの位置・姿勢を推定します。

予測ステップ(ホイールエンコーダ)

ホイールエンコーダで計測される並進速度積算します。

予測ステップ(ジャイロスコープ)

ジャイロスコープで計測される角速度を積算します。

観測ステップ(NDT)

NDTで推定されたロボットの位置・姿勢を観測し、状態ベクトルを更新します。

NDT:地図生成

LiDARで得られた点群を、過去ステップで蓄積した点群に対して、絵合わせして追加していきます。絵合わせの初期位置は、EKFで推定されたロボットの位置・姿勢を用います。

さいごに

スキャンマッチングSLAMの概要をまとめました。参考になれば幸いです。


以上です。

スキャンマッチングSLAM実装のシリーズ

Ad.