SLAM

SLAM（スラム）とは、自己位置推定と環境地図作成を同時に行うことを言う。
正式名称は、Simultaneous Localization and Mapping。
Lidarなどのセンサを搭載した移動体が走行を行いながら周囲の環境をセンシングすることで、二次元もしくは三次元の環境地図の作成を行う。同時に移動体の移動量の推定を逐次的に行うことで環境地図上での自己位置推定も行われる。カーナビのように既存の地図上でのGPSを用いた自己位置推定とは異なり、地図の存在しない屋内などの環境でも自己位置推定が行える。
位置の推定やマップ作成で利用されるセンサには、レーザーレンジスキャナー(測域センサ、Lidar)、カメラ、エンコーダ、マイクロフォンアレイなどが用いられることが多い。
身近な利用例として、電機系各社が販売するロボット掃除機が挙げられる。この場合、清掃の対象の居室の形状、及びその室内に対する自機位置の検出をすることにより、移動経路及び清掃順路の最適化と、それによる効率化、節電、清掃力の向上、可能清掃面積の拡大等を図ることが出来る。更にPanasonic製ロボット掃除機「RULO」(MC-RS800)等では、スマホアプリに二次元地図を表示することにより、室内の清掃状況や汚染状況の情報を利用者に提供することも成されている。
屋外に於ける利用例として、宅配ドローン制御用の三次元地図を効率的に作成するために、車両に載せ道路を走り情報を集める手法にも利用される。
SLAMの種類.
SLAMを行う際に使われるセンサによってSLAMの分類を行う。
Lidar SLAM.
Lidarを用いたSLAM。Lidarにより周囲の環境をセンシングし、暗闇でも明るさに関係なく2次元もしくは3次元の点群データを取得できる。カメラのみを用いたSLAMと比較すると精度が高く、広視野で遠距離まで観測が行える。一方でLidarが高価であることや、障害物の少ない環境では点群データの取得が難しいといった課題もある。地図の作成や自己位置の推定には拡張カルマンフィルタやパーティクルフィルタ、ICPアルゴリズムやNDTアルゴリズムが利用される。
Visual SLAM.
カメラを用いたSLAM。カメラで撮影された映像や、RGBDカメラの場合は深度画像も利用して二次元もしくは三次元の地図を作成する。
単眼カメラ、全天球カメラ、広角カメラを用いたVisual SLAM。カメラのみをSLAMに用いるため安価に計測が行える利点が大きい。複数の平面画像から、画像特徴点や画像の輝度値を用いて深度推定や自己位置推定を行う。そのため、特徴の少ない壁のみの画面や、カメラのブレ、暗闇に弱い。また三次元像の実際の寸法は推定できずスケールが不明となる。
RGBカメラとDepthセンサを組み合わせたもの、もしくはステレオカメラなどを用いたSLAM。センサの例としてステレオカメラやKinect、ProjectTango(深度センサ搭載スマホ)などがある。センサによりカメラ画像と深度画像の両方を得ることができる。ステレオカメラの場合、比較的安価に深度画像を得られる一方で単眼カメラと同様の欠点があり、Lidarと比較すると精度も低く計測距離が短いなどの課題がある。Lidarとカメラが用いられるような場合、Lidar SLAMとRGBD_SLAMの分類が曖昧になることもある。
その他のSLAM.
CNNによる機械学習を利用して深度の推定を行うSLAMや、Wifiを用いたSLAMがある。また水中などの環境では音響センサを用いたSLAMもある。
なお上記にあげたセンサによるSLAMの分類は大まかなものであり、センサの誤差やノイズを減らすため複数のセンサを融合してSLAMを行う場合も多い。融合されるセンサの例として、ジャイロセンサ、加速度センサ、IMUや車輪オドメトリなどが用いられる。