SLAM

ロボット工学において、SLAM（正式名称：）とは、環境地図と自己位置推定を交互に行い、「場所」の概念を獲得させる手法。

 概要 
学習者に場所の概念を理解させるためには、地図と自己の位置の理解が前提である。しかし、学習者は三人称視点で自らがどこにいるのか常に理解できるわけでもなければ、座標の概念が提供されているわけでもない。そういうわけで、自分が見たもの、触れたもの、行動履歴などを参照しながら位置を把握し、同時に「動き回って」物体の配置を覚えながら地図を作成する。ただ、位置を欲すれば地図が必要だしそのまた逆も然りであるため、この二つの課題を交互に行い、相互参照問題を解消している。

Lidarなどのセンサを搭載した移動体が走行を行いながら周囲の環境をセンシングすることで、二次元もしくは三次元の環境地図の作成を行う。同時に移動体の移動量の推定を逐次的に行うことで環境地図上での自己位置推定も行われる。カーナビのように既存の地図上でのGPSを用いた自己位置推定とは異なり、地図の存在しない屋内などの環境でも自己位置推定が行える。

位置の推定やマップ作成で利用されるセンサには、レーザーレンジスキャナー(測域センサ、Lidar)、カメラ、エンコーダ、マイクロフォンアレイなどが用いられることが多い。

身近な利用例として、電機系各社が販売するロボット掃除機が挙げられる。この場合、清掃の対象の居室の形状、及びその室内に対する自機位置の検出をすることにより、移動経路及び清掃順路の最適化と、それによる効率化、節電、清掃力の向上、可能清掃面積の拡大等を図ることが出来る。更にパナソニック製ロボット掃除機「RULO」(MC-RS800)等では、スマホアプリに二次元地図を表示することにより、室内の清掃状況や汚染状況の情報を利用者に提供することも成されている。

屋外に於ける利用例として、宅配ドローン制御用の三次元地図を効率的に作成するために、車両に載せ道路を走り情報を集める手法にも利用される。

一般的にSLAM機器にはIMUやGNSS、車両状の移動体であればロータリーエンコーダを利用したホイールオドメトリなどのSLAM以外の自己位置特定の補助システムが搭載されていて、自己位置特定精度の向上に用いられている。

 SLAMの種類 
SLAMを行う際に使われるセンサによってSLAMの分類を行う。

 Lidar SLAM 
Lidarを用いたSLAM。Lidarにより周囲の環境をセンシングし、暗闇でも明るさに関係なく2次元もしくは3次元の点群データを取得できる。カメラのみを用いたSLAMと比較すると精度が高く、広視野で遠距離まで観測が行える。一方でLidarが高価であることや、障害物の少ない環境では点群データの取得が難しいといった課題もある。地図の作成や自己位置の推定には拡張カルマンフィルタやパーティクルフィルタ、ICPアルゴリズムやNDTアルゴリズムが利用される。

 Visual SLAM 
カメラを用いたSLAM。カメラで撮影された映像や、RGBDカメラの場合は深度画像も利用して二次元もしくは三次元の地図を作成する。

 RGB_SLAM

単眼カメラ、全天球カメラ、広角カメラを用いたVisual SLAM。カメラのみをSLAMに用いるため安価に計測が行える利点が大きい。複数の平面画像から、画像特徴点や画像の輝度値を用いて深度推定や自己位置推定を行う。そのため、特徴の少ない壁のみの画面や、カメラのブレ、暗闇に弱い。また三次元像の実際の寸法は推定できずスケールが不明となる。

 RGBD_SLAM

RGBカメラとDepthセンサを組み合わせたもの、もしくはステレオカメラなどを用いたSLAM。センサの例としてステレオカメラやKinect、ProjectTango(深度センサ搭載スマホ)などがある。センサによりカメラ画像と深度画像の両方を得ることができる。ステレオカメラの場合、比較的安価に深度画像を得られる一方で単眼カメラと同様の欠点があり、Lidarと比較すると精度も低く計測距離が短いなどの課題がある。Lidarとカメラが用いられるような場合、Lidar SLAMとRGBD_SLAMの分類が曖昧になることもある。

 その他のSLAM 
CNNによる機械学習を利用して深度の推定を行うSLAMや、Wifiを用いたSLAMがある。また水中などの環境では音響センサを用いたSLAMもある。

なお上記にあげたセンサによるSLAMの分類は大まかなものであり、センサの誤差やノイズを減らすため複数のセンサを融合してSLAMを行う場合も多い。

 脚注 

 註釈 

 出典 

 参考文献 
 株式会社サイバネテック


 関連項目 

Category:コンピュータシステム
Category:応用機械学習
Category:自動運転車
Category:ロボット制御