MyEnigma

とあるエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

Simultaneous Localization And Mapping (SLAM)について

SLAMとは?

近年,GPS のようなグローバルな位置情報を得ることができない環境で,

ロボットが正確な自己位置推定と地図構築を行うための手法として

Simultaneous Localization and mapping(SLAM)の研究が注目を浴びています。



SLAM は自己位置推定情報と地図情報を

互いに確率的にフィードバックし合うことにより,

高精度な自己位置推定と地図構築を行うための手法です。



SLAM のアルゴリズムは,利用する地図の種類によって

大きく分けて二つの種類に分けられます。



一つは,地図に点座標で表現されたランドマークを使用する Landmark based SLAM,

もう一つは,地図を格子状に表現する Grid based SLAM です。



Landmark based SLAM は自己位置推定に重点をおいたSLAM の手法であり,

Grid based SLAM は地図構築に重点をおいた SLAM の手法であるといえます。

Landmark based SLAM

Landmark based SLAM はロボットの周辺環境に存在する

特徴的な物体をランドマークとして認識し,そのランドマークの地図を作成します。

そして,そのランドマークの座標情報を用いて自己位置推定にフィードバックを行います。


冒頭の図は Landmark based SLAM の概念図です。

冒頭の図おいて,xk , uk はそれぞれ k ステップ目における

ロボットの位置情報などを含む状態ベクトルと入力値です。

また,zk,j , mj はそれぞれ k ステップ目における

j 番目ランドマークの観測値と地図上の座標値です。


このように Landmark based SLAM では,

自己位置情報と特徴点マップの情報を相互に反映させることにより,

高精度な自己位置推定と特徴点マップ作成を行うことが可能になります。

SLAMとバンドル調整、ポーズ調整の違い

SLAMと似た技術として、

バンドル調整とポーズ調整があります。


SLAMは、下記の図にあるように、

状態、ランドマーク、入力、観測を図にすると、

f:id:meison_amsl:20190531173453p:plain

状態と状態をつなぐ入力によるエッジ(入力)と、

ランドマークの観測と状態をつなぐエッジ(観測)がある形になります。

このような問題を完全SLAM問題と呼んだりします。


一方、バンドル調整は、下記の図のように

ランドマークと状態をつなぐ観測のエッジはありますが、

状態と状態をつなぐ入力のエッジがありません。

f:id:meison_amsl:20190531173740p:plain

これは、Structure From Motionのように、

画像間の並進移動の情報が無く、

観測情報のみが存在する場合を想定しています。


最後に、ポーズ調整は下記の図のように、

ランドマークではなく、

状態間のエッジのみが存在する状態で、

SLAM問題を解くものです。

f:id:meison_amsl:20190531174113p:plain

近年のSLAMでは、バックエンドのループとじ込み用に、

ローカルマップの情報から、状態間のエッジを生成して、

ポーズ調整をしながら、SLAMを実施する手法が一般的です。

ポーズ調整は通常のSLAMを解くよりも、

高速に安定的に解を得ることができます。


詳細はこちらの資料を参照ください。


SLAM入門: ロボットの自己位置推定と地図構築の技術

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com