今回は、AMRのコア技術である”SLAM”について、前回に引き続き解説したいと思います。
SLAMの動作シーケンス
SLAMは”Simultaneous Localization and Mapping”です。日本語に直すと自己位置推定(Localization)と地図作成(Mapping)を同時(Simultaneous)に行います。
- ロボットに搭載されたセンサーで、外部環境のなんらかの情報を得る。
- センサーから得られた情報を元に、ロボットが現在いる位置を演算し古い情報を更新する。
- ロボットが移動する。
この1~3の動作シーケンスを繰り返します。「あたりまえ」なのですが、これがなかなか難しい処理となります。なぜ難しいのか?解説していきます。
測定誤差を含んだマップ
センサーの測定値には、必ず誤差が存在します。誤差を含んだ測定値を積み上げて、自己位置を演算することとなります。以下、イメージの図を用いて説明します。
このようなレイアウトの走行エリアを考えます。長方形の形状の部屋の中央に三角形の柱が配置されています。この部屋を反時計回りの青字の経路に走行させることを考えます。
地点①~④の4地点でLiDARを用いてスキャンデータを取得したとします。機体と壁や柱の距離を点群データとして取得します。イメージとして、点線で表現しています。
仮に、データに測定誤差がなければ、上の図のように壁や柱の形状の点群データは直線となります。これらのデータを結合すると、実際のレイアウトに近い、より確からしい地図が出来上がります。
しかしながら、実際の測定データには測定誤差が含まれます。ここでは仮に、下の図のような形状データが得られたとします。
これらのデータを結合すると、下の図の地図が生成されます。実際のレイアウトとは程遠い形状となり、自己位置を推定することができず、円滑に走行することは不可能です。
SLAM技術開発の勘所
SLAM技術は、「誤差を含んだ測定データをどのように処理し、自己位置をいかに精度よく推定するか」が開発のポイントとなります。ブレークダウンすると、このような開発課題となります。
- センサーから取得した測定値から、自己位置を推定するアルゴリズム構築
- 許容できる測定誤差と、推定アルゴリズムへのパラメタ設定
- センシングと演算処理を実現できるハードウェア構成
1980年代にSLAM分野の研究が本格化してから約40年が経過しますが、現在もなお自己位置”推定”の手法が考案され、自律走行ロボットが開発されつづけています。
弊社も、技術を日々錬磨し、よりよいロボットが生み出せるように精進行きたいと思います。最後までお読みいただきありがとうございました。
"SLAM"のはなし② ← 前