
執筆者
K.S.
SLAMに関連する用語

SLAMとは
SLAMとは、同時自己位置推定と地図作成(Simultaneous Localization and Mapping)の略称です。主に、ロボットなどが移動する際の経路の決定などに使われる技術です。
最近ですと、自動車の自動運転やロボット掃除機に関する話題などでは、この単語を聞くことがあるのではないかと思います。
地図とは何か
人が自分の位置を知ろうと思ったとき、周囲の物体に比べて自分はどのあたりにいるのかを把握しようとするはずです。(試してみてください。)
上で言った地図とは、周囲のどこに何が有るのかというデータを指しています。
SLAMの手順

ロボットが自分の位置を推定するときも、人と同様の手順をなぞります。具体的に言うと、SLAMにおける自己位置の推定と地図の作成の手順は、
01-周囲の状況を把握
02-これまでのデータと周囲の状況から、周囲(地図)に対する自分の位置を計算(自己位置推定)
03-周囲の状況のデータを更新(地図作成)
を繰り返すことで進行していきます。
自分が移動することによる周囲の状況の変化に対し、自分の位置と地図とを交互に更新していくことで、地図の中における自分の軌跡を計算すると同時に地図の完成度を上げて行くことができるのです。
SLAMの種類
SLAMには、どのように周囲の情報を得るかによっていろいろな種類があります。
LiDAR
レーザー光を出してから帰ってくるまでの時間(ToF)から距離を計算して、自分からどれだけ離れたところにレーザー光を反射するものが有るかを把握します。
Visual SLAM
カメラの映像から、特徴的な点(特徴点)を取り出し、その点が移動によってどのように変化するかで遠近感を認識し、周囲との距離を測るSLAMです。詳細は別記事で解説します。
Depth SLAM
ToFセンサーや深度カメラなどによって得られた深度画像(近くにあるものほど明るく表現される)を用いて、周囲との距離を測るSLAMです。LiDARとの違いとして、LiDARの場合はそれぞれのデータから点群と呼ばれる仮想空間上の地図を作成するのに対し、Depth SLAMは深度の情報を画像に落とし込んだものを使用する、LiDARとVisual SLAMの中間的な存在です。
Landmark based SLAM
QRマーカーなどを設置し、それを読み取ることで情報を取得するSLAMです。あらかじめ地図とマーカーの位置情報を入力しておく場合が多いです。
Visual Relocalizer
地図上の位置とそこから撮影した画像の情報をあらかじめ用意しておき、周囲の風景と照合することで自己位置推定を行うSLAMです。地図上の位置と画像のペアがあれば推定できるため、他のSLAMと併用しやすいという利点があります。
その他のバリエーション
Wi-Fiなどの電波を使用するもの、IMU(加速度センサーなど)と組み合わせたもの、深度の計算方法や特徴点の取り方などにより様々なバリエーションが存在します。
以上のように、一か所から広い範囲の情報を得られるレーザー光や可視光を利用するのが一般的です。
原理的には、移動するたびに壁にぶつかるまで腕を伸ばすなどして、ダイレクトに周囲の情報を得ることも可能ですが、当然ながらあまり効率的とは言えないですよね。
余談ですが、音を用いるエコーロケーションも一種のSLAMということができるかもしれません。
イルカが水中でクリック音といわれる超音波を発し、反響定位を行うことが有名ですが、人も訓練によってエコーロケーションができるようになるそうです。
人の目とSLAM、そして未来

人の目による位置把握に一番近いのはDepth SLAMでしょうか。2つの目が周囲との遠近感を認識することを可能にしています。
人の目との大きな違いは、何がどこにあるかやどれとどれがおなじものかという認識を機械はしてくれないということです。その差を埋めてくれると期待されているのが、DeepLearningを筆頭とした機械学習であり、現在も精力的にSLAMへの応用が研究されています。
自動運転の実用化などにより、今注目を集めるSLAMという技術の理解の一助になっていれば幸いです。













