自動運転で、SLAM(Simultaneous Localization and Mapping)という技術がよく使われています。
SLAMは、センサーとしてLiDAR(Light Detection and Ranging)を用いるLiDAR SLAM、 カメラ画像を用いるVisual SLAM等に分類されますが、本記事では、LiDAR SLAMについて紹介します。
LiDARは、レーザーの反射により検出した距離を点群として返す手法であり、 点群は位置(xyz座標)を持つ点の集合です。
LiDAR SLAMの概要
SLAMとは、移動体の位置を推定する自己位置推定と、その周辺環境の地図の作成を同時に行う技術です。
LiDAR SLAMでは、LiDARを搭載した移動体を走行させながら周辺環境の点群情報を取得し、 点群情報を重ねることにより、周辺環境の地図を作成します。
この技術は、ロボット掃除機、配膳ロボット、ロボット草刈り機など、様々なものに応用されています。
LiDAR SLAMはVisual SLAMと比べると、時間帯や天候に関係なく使用できる、 店舗や農場にマーカーを設置する必要がない、といった利点があります。
LiDAR SLAMの処理の流れ
以下では、LiDARを搭載した車体を移動させながらSLAMの地図を作成する方法について説明します。
ここでは説明のため、2つの座標系を定義します。
・地図座標系:原点を固定した、車体の位置に依存しない座標系
・車体座標系:車体の位置を原点とした、周辺環境の点群位置を表す座標系
LiDAR SLAMでは、①から④の処理の反復により地図を作成します。
① 大まかな自己位置推定
地図座標系における自己の位置の直近の変化量から、自己の現在の位置を推定します。
② 対応点の探索
これまで作成した地図上の点群と最新の計測点群から、 同じ物体や特徴点を示す点の組み合わせを探索します。
対応する点のペアを「対応点」と呼びます。
③ 正確な自己位置推定
車体座標系における自己と対応点の位置関係と、 地図座標系における自己と対応点の位置関係が一致するように、地図座標系における自己位置を求めます。
ここで求めた自己位置により、①で求めた自己の推定位置を更新します。
④ 計測点群の地図への追加
③で求めた地図座標系における自己位置と、地図座標系における計測点群の位置をもとに、 最新の計測点群を地図に追加します。
SLAMが難しいケース
SLAMに失敗する主なケースと対策について紹介します。
①で失敗するケース:大まかな自己位置推定が大きく間違っている
このケースは計測に問題があるときなどに起きることがあります。
対策として、IMU(Inertial Measurement Unit)などのセンサーを用いて 取得可能な移動量を用いる方法があります。
②で失敗するケース:周辺環境の分布に特徴がない
周辺環境に特徴がないと、自己位置が一つに定まらなくなることがあります。
例えば、周囲に何もない広大な土地では、時系列的に連続して似た点群が観測されます。
対策として、何かしらの物体を置いて環境を複雑にする方法があります。
最後に
本記事ではSLAMについて紹介しました。
最後までお読みいただき、ありがとうございました。
- 参考文献
田崎豪 『Autowareではじめる自律移動技術入門』