2016/12/01

自律走行やARに必須なSLAMとは?

自律移動、夢のあるワードです

車は運転する必要はないし、コタツから出たくなければロボットにもの持ってきてもらえるし

さて、それにはまず第一に自分の位置と障害物の位置がわかることが必要です



それだとカーナビとかグーグルマップとかがもうありますね

これらはGPSっていって人工衛星がどこにいるか教えてくれる技術を使っています

でも、これって地図はもともと作っておいてあります、だから障害物の位置とかは動かないことが前提なんです

自分の家でロボット動かしたくてもその障害物位置なんて毎回場所も変わるし、誰にも部屋の地図とか公開したくないしGPSだけで動かすのは大変そうです

もっとかっこいい使い方だと倒壊した原発とかの建物のなかにロボットをおくりだしたとしたらどういう風に倒壊してるかわからないのでこれまたGPSじゃ大変そうです

あとは宇宙とか深海探索のときには電波届かないので自己位置すらこういう時はわからないです、ポケモンGOも地下鉄潜ると動かなくなりますよね

と、いうことで

「自分の位置とともに障害物の位置がわかり、そして電波がなくてもうごくこと」が自律移動には欲しくなってきます

とりあえず電波がなくて動くのなら、加速度センサとかホイールオドメトリをつかうっていうのがあります

加速度センサっていうのは速度の変化がわかるセンサで,コレをロボットにくっつけておけば動いた距離もわかります

ホイールオドメトリっていうのはタイヤがどれぐらい転がったかで自分の動いた距離がわかる技術です

どちらもGPSとはちがって電波の届かないところでも動きます

障害物位置はわからないけれど...

でもGPSとちがってセンサで値を取得するたびに誤差がたまり、どんどん本当の値とは離れてきてしまいます

このような自分の状態を知るセンサを内界センサといいます

まあ、目をつぶって歩いてるみたいな感じです

と、いうことで
自分の位置とともに障害物の位置がわかり、そして電波がなくてもうごいて、誤差もたまらないこと」が自律移動には必要ということになってきました


そこででてくるのが今回の話題のSLAMです

Simultaneous Localization And Mappingの略で
カメラとかLRF(レーザレンジファインダ)とかの自分以外の状況を知ることのできる外界センサをつかって未知の環境において

同時に(Simultaneous)、自己位置推定(localization)、と(And)、地図作成(Mapping)を行います

もう、掃除用ロボットが自分の位置と障害物位置知るのにとか使われています

将来的には自動運転とか、ARの表示の基準にしたりとかです

あとは老朽化したインフラの観測や宇宙や海中の探索用ロボットに搭載することが考えられます


外界センサを用いることで障害物位置がわかり、そこから自己位置も計算することができます

最大の特徴としてはたまった誤差を収束することができます

もちろんGPSや内界センサを用いた自己位置推定とは相性がよく、適用対象にいろいろなセンサを載せる余裕があるならば同時に用いることで欠点を補い合うことも多くあります

GPSほどの誤差の収束は見込めないし、優秀な内界センサを用いたときよりは局所的な移動の推定結果が良くないから(最近は外界センサだけで十分な精度のものも多い)です


誤差の収束とはどういうことか.

センサで取得すると多少なりとも誤差がたまり、歩いてきた軌跡とか,地図もずれてきてしまいます.

このズレを修正していくのが誤差の収束です.

SLAMはセンサだけで自己位置推定をするのにどうして誤差が収束するのか.

それは,外界センサが外の状況を見て動くことができることによります.

外界センサによって見たことある景色を再び観測した時にその判断をすることができます

GPSではないので自己位置の推定は徐々にズレていくはずですが、見たことある景色を再び観測したことがわかれば、

その時、ズレを把握することができます

ズレがあったら今まで歩いてた姿勢とか障害物位置も修正できます

これをLOOP CLOSINGと言い、地図を作れることとともにSLAM最大の特徴の1つといえます.


以下に図を示します.

以上、SLAM概要でした

次回、SLAMの起こりとSLAMアルゴリズム

2 件のコメント:

  1. すごくわかりやすいです!
    ありがとうございました!

    返信削除
    返信
    1. 少しでも参考になればうれしいです!

      削除