LiDAR-SLAM資料まとめ
目次
はじめに
こんにちは.ササキ(@saitosasaki)です.
今回はLiDAR-SLAMに関わるSLAMの資料をまとめました。
資料
書籍
- 確率ロボティクス
言わずもがな名著です.
下のリンクは原本に関するサイトです。説明スライドが置いてあります。
http://www.probabilistic-robotics.org/
- SLAM入門
『確率ロボティクス』は2005年に発売された本なので、カルマンフィルタやパーティクルフィルタのようなベイズフィルタ系のアプローチのSLAMがメインになっています(語弊があるかも)。
最近(少なくとも屋外では)主流のスキャンマッチングやグラフベースSLAMといった最適化によるアプローチは以下の解説論文が詳しいです。
移動ロボットの環境認識 —地図構築と自己位置推定
より詳しくは上の解説論文を書いた方が書いた『SLAM入門』があります。
記事
- Crafty_as_a_FoxさんのQiita記事
SLAM(Simultaneous Localization and Mapping)と環境計測センサについて - Qiita
Graph-Based SLAMを用いた軌跡推定シミュレーション - Qiita
- sakai atushiさんのブログmy enigmaの記事
Simultaneous Localization And Mapping (SLAM)について - MyEnigma
Simultaneous Localization And Mapping (SLAM) 技術がもたらす利点 - MyEnigma
EKF SLAMのためのMATLAB, Pythonサンプルプログラム - MyEnigma
ちなみにこの方、趣味で作ったOSS(Open Source Software)がGithubで4000starを超えるという凄い人です。
GitHub - AtsushiSakai/PythonRobotics: Python sample codes for robotics algorithms.
PythonRoboticsはロボットでよく使われるアルゴリズムのPythonでのサンプルコード集で、
ロボティクス初学者におすすめのOSSです。
SLAMにおいてもEKF(Extended Kalman Filter)SLAM、FastSLAM、GraphBasedSLAMが実装されています。
スライド
- ICRA 2016 Tutorial on SLAM
Wolfram Burgard先生の授業スライド
http://ais.informatik.uni-freiburg.de/teaching/ss13/robotics/slides/Pieter Abbeel先生の授業スライド
Pieter Abbeel先生のUC Berkeleyでの授業スライド。
Index of /~pabbeel/cs287-fa12/slidesAndrew Davison先生の授業スライド
Andrew Davison先生のImperial college londonでの授業スライド。
https://www.doc.ic.ac.uk/~ajd/Robotics/
- 確率ロボティクスの翻訳者で千葉工大の上田先生の授業スライド
『確率ロボティクス』の解説.「ロボットフロンティア(中部大学にて)」は出張授業のようで短くまとまっています.
https://lab.ueda.tech/?page_id=166
また,上田さんは『確率ロボティクス』のアルゴリズムプログラムをgithubに挙げています.
『確率ロボティクス』の解説書(?)もそのうち出すらしいです(楽しみ).
GitHub - ryuichiueda/probrobo_practice: 確率ロボティクスのアルゴリズム解説(こちらに最新・もっと正確なバージョンがあります->)
九州工業大学の確率システム制御特論の授業スライド
移動ロボット系は第12回~第14回です.主に『確率ロボティクス』の解説です.RBPF(rao blackwellized particle filter)の説明等もあります.
制御理論II資料千葉工大furoのHaraさんのスライド集
原さんは大学でSLAMの研究をされている方です.GmappingやCartographer,最近のオープンソースのSLAM,最近のSLAMや原さん自身の研究のスライドがあります.
Yoshitaka Hara presentations株式会社ABEJAのpeisukeさんのスライド
主にスキャンマッチングの説明です.
LiDAR-SLAM チュートリアル資料名大の赤井先生のスライド
自己位置推定とSLAMの基礎・発展の流れ・最新の取り組みが解説されています。後半はディープラーニング要素強め。
SSII2019企画: 画像および LiDAR を用いた自動走行に関する動向
- State Estimation
State Estimation for Robotics (399 pages)(リンク先のPDF) http://asrl.utias.utoronto.ca/~tdb/
- リー群
A tutorial on SE(3) transformation parameterizations and on-manifold optimization
Lie Groups for 2D and 3D Transformations
オンライン授業
- Artificial Intelligence for Robotics | Udacity
無料で『確率ロボティクス』の著者であるセバスチャン・スラン先生が講義を聞けます。
初学者でない方にも、各レッスンの最後に行われるQ&Aは非常に知見が得られるのでお勧めです。 SLAMはGraphSLAMの説明だけなのですが、非常にわかりやすいです。
ROS実装のある有名なOSSまとめ
以下ROS実装がある最近有名なLidarベースのSLAMオープンソースソフトウェアとその解説記事・スライドをまとめました。
まとめ表
名前 | 2D/3D | ループ閉じ込み | オドメトリ | IMU | 補足 |
---|---|---|---|---|---|
gmapping | 2D | 有るが非明示的 | 必須 | 必須 | ベイスフィルタによるSLAM |
LOAM | 3D | 無し | 不必要 | 可 | リアルタイム性がウリ |
Cartographer | 2D/3D | 有り | 可 | 2Dが可。3Dは必須 | ループ閉じ込みがウリ |
Autoware ndt-mapping | 3D | 無し | 可 | 可 | NDTマッチング(非PCL実装のNDTやICPもあり) |
hdl_graph_slam | 3D | 有り | 可 | 可 | NDT/ICP/GICP&ループ閉じ込み |
blam | 3D | 有り | 不可 | 不可 | |
A-LOAM | 3D | 無し | 不可 | 可 | |
LeGO-LOAM | 3D | 有り | 不可 | 可 | |
LIO-mapping | 3D | ||||
interactive_slam | 3D | GUIによるMap Correctionツール |
gmapping
ROSのnavigationパッケージにもあって一番有名だと思います。
Rao-Blackwellised Particle FilterによるSLAMです.
2D。ループ閉じ込みはあるが非明示的。
Github
github.com
論文
Improved Techniques for Grid Mapping with Rao-Blackwellized Particle Filter
論文著者による解説スライド(英語)
http://www2.informatik.uni-freiburg.de/~stachnis/pdf/rbpf-slam-tutorial-2007.pdf
日本語による解説記事。 qiita.com
LOAM(Lidar Odometry and Mapping in Real-time)
ライダーオドメトリとマッピングを分割したことによるリアルタイム性をウリにしたSLAMです。
3D。リアルタイム性が売り。ループ閉じ込み無し。
オドメトリ・IMU必要なし。IMU複合可。
Github
github.com
論文
LOAM: Lidar Odometry and Mapping in Real-time
解説スライド
Google Cartographer
2D/3D。ループ閉じ込み有り。
2Dはオドメトリ・IMU必要なし(どちらも複合可)。3DはIMU必須。GPSも複合可。ランドマーク複合可.
逐次SLAMがいまいち。
論文では2Dに関してのみですが、実装は3Dもあります。ただし、3Dでは処理が重すぎてリアルタイムにループ閉じ込みできないです。
Github
github.com
論文
Real-Time Loop Closure in 2D LIDAR SLAM
詳しく解説したものは(論文以外)なさげでしたが、概要は以下のブログ記事にあります。
ちなみに下の記事にはHector SLAMの概要もあります。
daily-tech.hatenablog.com
Autowareのndt mapping
3D。ループ閉じ込み無し。オドメトリ・IMU必要なし(どちらも複合可)。
他にもAutowareにはICPや色々な逐次SLAMの実装があります。
Github
github.com
実装者本人による解説スライド。ダウンロードしないと正常に見れないようです。
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
hdl_graph_slam
3D.NDT/ICP/GICPから選んだ逐次SLAMとグラフベースSLAM.ループ閉じ込み有り.GPSも複合可。
github.com
論文
A Portable 3D LIDAR-based System for Long-term and Wide-area People Behavior Measurement
BLAM(Berkeley Localization And Mapping)
Berkeley Localization And Mapping.更新が2016年以降ありません. 3D.ループ閉じ込みあり。
A-LOAM
LOAMの派生で、スキャンマッチングをceres-solverで解く等の改良が加えられています。ループとじ込みなし。
LeGO-LOAM
LOAMの派生です。論文はIROS2018採択。ループ閉じ込みあり。IMU複合可。オドメトリ複合不可。
GitHub - RobustFieldAutonomyLab/LeGO-LOAM: LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain
rosgraph
LIO-mapping
論文の『A Tightly Coupled 3D Lidar and Inertial Odometry and Mapping Approach』はICRA 2019採択。
rosgraph
interactive_slam
hdl_graph_slamの作者によるGUIでGraph SLAMを修正(ループ箇所を手動or自動で指定して最適化/ Plane-basedで地図の歪みを補正/複数地図の合成)するOSS。 github.com
その他
重複もありますが、他のROS実装のあるSLAMは以下にまとまっています。 ubuntuのバージョンが14.04以降では色々しないと動かない古いものが多く、自分は触ってません。