SLAM
From Wikipedia, the free encyclopedia
SLAMは、事前に地図などの情報が与えられていない環境で、ロボット等が自己位置と周囲の環境を認識するための技術である。LiDARセンサやカメラなどのセンサ類から得られたデータをもとに、自身がどこにいるのかを把握する自己位置推定(Localization)と、推定された自己位置をもとに周囲の状況の記録・更新する環境地図作成(Mapping)という2つのタスクを同時に遂次実行する。カーナビのように既存の地図上でのGPSを用いた自己位置推定とは異なり、地図の存在しない屋内などの環境でも自己位置推定が行える。
自己位置推定では、センサデータと環境地図上のランドマークをもとに、周囲の障害物の位置とロボットの移動量、ロボットの位置が推定される。こうして推定されたデータを元に、環境地図が更新される[4]。なお、環境地図をもとに、次のロボットがどこに進むべきかを判断する経路計画アルゴリズムについては、SLAMのアルゴリズムの中には通常含まないため注意が必要である[注釈 1]。
周囲の環境を測位する上で用いられるセンサには、主にLiDARやカメラ、深度カメラ(TOFカメラ)やマイクロフォンアレイなどがある。
一般的にSLAM機器にはIMUやGNSS、車両状の移動体であればロータリーエンコーダを利用したホイールオドメトリなどのSLAM以外の自己位置特定の補助システムが搭載されていて、自己位置特定精度の向上に用いられている。
SLAMの身近な利用例として、電機系各社が販売するロボット掃除機が挙げられる。清掃の対象の居室の形状、及びその室内に対する自機位置の検出をすることにより、移動経路及び清掃順路の最適化と、それによる効率化、節電、清掃力の向上、可能清掃面積の拡大等を図ることが出来る。更にパナソニック製ロボット掃除機「RULO」(MC-RS800)等では、スマホアプリに二次元地図を表示することにより、室内の清掃状況や汚染状況の情報を利用者に提供することも成されている[7]。
この他にも近年では、レストランの配膳ロボット[1]や倉庫内などの屋内地図(HD Map)の作成[8]、宅配ドローン制御用の三次元地図を効率的に作成する手法としても利用される。
種類
センサの種類やアルゴリズムの違いによって、さまざまな種類のSLAMがある。本項ではセンサの種類による分類とアルゴリズムの種類による分類を示す。
センサの種類による分類
用いられるセンサには、主にLiDARセンサや光学カメラ、深度カメラなどがある。また、これらのセンサデータの欠点の補完などを行う目的で、一部GPSやIMUが用いられるケースもある。センサデータの特徴に応じて処理が異なるため、それにあったSLAMが提案されている。
LiDAR SLAM
LiDARから得られた3次元の点群データから、自己位置推定と環境地図作成を行うSLAMである。LiDARで得られた時系列の点群データの各点をマッチングし座標系に統一させるには、点群レジストレーション[en:Point-set registration][9][10]を用いる。カメラのみを用いたSLAMと比較すると精度が高く、広視野で遠距離まで観測が行える。一方でLidarが高価であることや、障害物の少ない環境では点群データの取得が難しいといった課題もある[11]。
Visual SLAM(VSLAM、vSLAM)[12]
光学カメラから得られた画像を観測データとして自己位置推定と環境地図作成を行うSLAMをVisual SLAMと総称する。用いられるカメラの種類には、単眼カメラ、複眼カメラ、全天球カメラや広角カメラ、RGB-Dカメラなどがある。LiDAR SLAMとは異なり、作成される地図に視覚的な情報が付与される。このため三次元地図の作成に応用される。
カメラから得られた画像をもとに直接マッチングを行う直接法(LSD-SLAM[13]など)と、画像から基準となるような特徴点を抽出し、特徴点のマッチングをもとに追跡を行う特徴点ベースの手法(ORB-SLAM[14]など)の主に2種類の方法でカメラの位置と向きを推定する。
また、Visual SLAMは自己位置推定と環境地図作成の手法を2つ独立して研究されることがあり、それぞれVisual OdometryとStructure-from-Motionと呼ばれている。
Visual Odometry(VO、en:Visual odometry)[15]
カメラからの出力画像をもとに、ロボットの位置と向きを特定する手法である。NASAの火星探査機[16]やドローンの制御[17]などに応用されている。近年では、慣性計測装置(IMU)を組み合わせたVIO(Visual-Inertial Odometry)も提案されている[18]。
Structure from Motion(SfM、en:Structure from motion)[19]
カメラからの出力画像群から、撮影対象の3次元形状を推定するための手法である。すでに撮影された動画像をもとに後から3次元形状を推定するオフラインの手法[20]と、逐次推定を行う手法がある[21][22]。Google マップのストリートビューなどに応用されている[23]。
Fusion SLAM
LiDAR、カメラ、IMU、GPSなど複数の異なるセンサを組み合わせることで、極めて頑健で確度が高いSLAMの手法である。複数のセンサが必要になることから、他のSLAMと比べてコストは高い。高い認識精度が求められるような自動運転車のシステムに応用される[24][25]。
アルゴリズムの種類による分類
自己位置推定と環境地図作成をする手法として、カルマンフィルタやパーティクルフィルタなどを用いる方法などが提案されてきた。近年は機械学習を用いる手法も提案されている。
フィルタベース
拡張カルマンフィルタ(英:Extended Kalman Filter、EKF)やパーティクルフィルタなどを用いた手法である。初期のSLAMに見られることが多いものであり、代表的なものでEKF-SLAM[26][27]、FastSLAM[28]などがある。
グラフベース
ロボットの各時刻の位置と向きをノードとし、観測や移動による制約をエッジとしたグラフ構造を定義して更新を行う手法である[29]。ポーズ最適化という最適化手法を用いることで、精度の高いマップを推定する。ORB-SLAM[14]などで応用されている。
深層学習ベース
ニューラルネットワークをベースとしたSLAMである。特徴点抽出など一部の処理をCNNで行う手法[30][31]や、end-to-endでほとんどすべての処理を独自のモデルで行うもの[32][33]など、さまざまなSLAMが提案されている。