SLAM學習資料整理 殿堂級大牛

Darlingqiang發表於2018-06-14

總結一下我接觸過的SLAM演算法吧,主要集中在visual slam:

特徵法:

  1. ORB SLAM github.com/raulmur/ORB_

優勢: 在靜態環境下定位準確,穩定, 單目和雙目版本都可以達到實時(高於10frames/s)。程式碼可讀性強,易擴充套件, 網上也有實現和imu融合的版本。

劣勢:建的地圖點雲稀疏。 執行速度方面,因為提特徵點的時間有瓶頸最快的執行速度應該不超過30frames/s, 我在本機 (i7-6600U) 測的速度基本都在20frames/s左右,因此對於高幀率的相機需要降幀率才能用。對動態物體很敏感,再有動態物體時非常容易tracking lost。

總的來說ORB-SLAM還是在智慧駕駛領域用的最廣泛的SLAM演算法,因為它在work的時候可以work的很好,急需解決的問題是對特徵點提取的加速,以及處理的環境中的動態物體。


直接法

2. DSO github.com/JakobEngel/d

優勢:可以生成相當稠密的點雲, 這個優點給DSO很大想象空間。 速度在可以work的時候很快, 大概在20-30frames/s。

劣勢:對場景光照要求高,要求儘量保持曝光時間的穩定。對動態物體沒有orb那樣敏感。程式碼可擴充套件性比較差,目前開源的只有單目版本,這個版本沒有做尺度恢復因此沒法在實際中直接用。這裡貼一個我開發的stereo dso: github.com/JiatianWu/st, 可以恢復相對準確的pose。

DSO的缺點和優點都很明顯,目前的侷限應該是還沒有一個開源可用的像雙目orb那樣穩定的版本,但是有很大的潛力去做一些orb無法做的事,比如建稠密的高精地圖,甚至semantic的高精地圖都有可能。

簡單說一下LSD,自從DSO出來後LSD就沒多少價值了,因為DSO在準確性,穩定性和速度上都比LSD好。LSD有個優勢就是迴環檢測,這個對於DSO有些雞肋,因為如果odometry都可以很精確為什麼需要用額外的計算量去做迴環檢測呢。


半直接法

3. SVO github.com/uzh-rpg/rpg_

優點:非常快, 快到可以在laptop上達到300frames/s。

缺點:誤差大,不準確。這也是為達到高速度犧牲效能的結果吧。

SVO適用的主要場景是無人機,因此程式碼中採用了一些無人機上的假設,比如假設相機的姿態是向下看的。SVO的最大問題就是不準確,這個可以通過融合imu改善,前提是你擁有一個準確的imu。。


Visual-inertial SLAM

4. 首推港科大的VINS github.com/HKUST-Aerial。 沒仔細研究過, 不過港科大的這個工作開源的很徹底,ros版本的和ios版本的都開源了, 大家可以看看產品級的slam應用是怎麼實現的,程式碼也很清晰,主要側重點在後端的優化,前端寫的很簡潔。

另外經典的VIO還是ETH的OKVIS: github.com/ethz-asl/okv 。VINS和OKVIS效能差不多, OKVIS開發得更早一些, 後端優化的一些思想比如sliding window optimization也被DSO和VINS所借鑑。


連結:https://www.zhihu.com/question/51045335/answer/340167377
MonoSLAM、Co-SLAM、Swarm SLAM、ORB_SLAM、RGB-D SLAM


一、入門篇

1. Andrew Davison的課程: http://www.doc.ic.ac.uk/~ajd/Robotics/index.html

    week7 SLAM,week8裡面推薦了slam的兩個入門 Tutorial 1  和Tutorial 2

2. 瑞士蘇黎世理工的學生練習http://www.csc.kth.se/~kootstra/index.php?item=313&menu=300

    把excise 3:SLAM(EKF)做完,SLAM原理基本理解

3. 高博的CNBLOG:http://www.cnblogs.com/gaoxiang12/


二、現有資源

1. OpenSLAM:https://openslam.org/

    這個網站中含有很多slam方面的資料,編寫的程式也各有不同,很權威

2. Kitti相簿,可以做simulation:http://www.cvlibs.net/datasets/kitti/

3. 蘇黎世理工學習練習excise3看完後可以使用Javier Civera 的程式進行試手,注意對calibration的調整

    http://webdiis.unizar.es/~jcivera/code/1p-ransac-ekf-monoslam.html

4. 對於Javier Civera的1p RANSAC-monoSLAM有一定了解了,可以試試用SURF去實現

    南理工論文可以參考 http://cdmd.cnki.com.cn/Article/CDMD-10288-1012319519.htm

5. RGB-D SLAM Dataset and Benchmark:http://cvpr.in.tum.de/data/datasets/rgbd-dataset
    慕尼黑工業大學,還有其他的資料庫,如單目視覺里程計資料庫,詳見http://vision.in.tum.de/data/datasets

6. Monocular SLAM:http://vision.ia.ac.cn/Students/gzp/monocularslam.html

    The research in monocular SLAM technology is mainly based on the EKF(Extended Kalman Filter) SLAM approaches.

7. MRPT:http://www.mrpt.org/    the mobile robot programming toolkit非常好的東西

三、相關書籍

1. Multiple View Geometry in Computer Vision Second Edition ,http://www.robots.ox.ac.uk/~vgg/hzbook/

    計算機視覺方面大神級別的書,也有中文版

2. Robotics Vision and Control ,http://www.petercorke.com/RVC/

    澳大利亞昆士蘭理工大學的Peter Corke是機器視覺領域的大牛人物,他所編寫的Robotics, vision and control一書更是該領域的經典教材

    配套有matlab工具箱。工具箱分為兩部分,一部分為機器人方面的,另一部分為視覺方面的工具箱

    原始碼都是開放免費下載的: http://petercorke.com/Toolbox_software.html

3. Probabilistic Robotics,http://www.probabilistic-robotics.org/理解這本書要有很好的數學基礎



四、研究學者
國內鐳射雷達Slam武漢大學做得好,李明教授是最早一批做3Dslam的;國防科大的應該也不錯。
國外的話史丹佛的塞巴斯蒂安是絕對的大牛,他的徒弟也都很厲害;KIT的SLAM6D做的很好,現在網上有開源的3DTK,內部整合了slam6D;
德國弗萊堡大學做的也不錯。
1. 英國帝國理工學院Andrew Davison:http://www.doc.ic.ac.uk/~ajd/,SLAM領域的權威

2. 麻省理工John Leonard:http://marinerobotics.mit.edu/ 側重於應用。目前主要在做水下SLAM的專案。參加過DARPA的智慧車挑戰賽。

3. 悉尼大學Victoria Par: http://www-personal.acfr.usyd.edu.au/nebot/victoria_park.htm 經典資料庫
4. 慕尼黑工業大學Jakob Engel:http://vision.in.tum.de/members/engelj
5. 史丹佛Sebastian Thrunhttp://robots.stanford.edu/papers.html


五、其他資源(一)

1. Giorgio GrisettiCyrill StachnissWolfram Burgard; (GridMapping 演算法,及概率機器人一書作者)

2. M. Montemerlo; Dirk HaehnelSebastian Thrun; (FastSLAM創始者,理論水平和實際應用能力非常強)

   參加過DARPA的智慧車挑戰賽,取得最好成績。

3. Austin EliazarRonald Parr; (DP-SLAM創始者,從文章到資料,程式都公開的牛人) 

4. 以 Jose Neira和Jose luis Blanco為代表的一批西班牙學者.

5. http://babel.isa.uma.es/mrpt/index.php/Main_Page  2008年開始陸續出現了一些好文章.

6. http://cres.usc.edu/radishrepository/view-all.php  包含了大量的用於驗證SLAM演算法的資料.

7. http://www.isa.uma.es/C13/jlblanco/default.aspx     西班牙的一個博士生.程式設計能力極強. 另外Jose Neira帶領的團隊也比較猛.


六、其他資源二(

工具類:

ros框架

linux系列教程     vim 

Eigen      Eigen快速入門

Pangolin  Pangolin安裝與使用

 

      

資料集:

TUM          資料格式      

提供python寫的工具,參考  TUM資料集測評工具的使用

除此之外提供online測試

 合併深度圖和rgb:

python associate.py rgb.txt depth.txt > associations.txt #如果沒有最後那個選項會把結果直接列印到控制檯

對齊輸出軌跡,並計算誤差:

python eveluate_ate.py --save alignedTrajectory.txt groundtruth.txt KeyFrameTrajectory.txt

 

 

科研類:

PTAM - ISMAR2007 英國牛津 Georg Klein 主頁及程式碼  PTAM-GPL   

DTAM - ICCV2011 倫敦帝國理工學院 Richard  paper

RGB-D_SLAM Trans. on Robotics2014   開原始碼

ORB-SLAM - Trans. on Robotics2015 西班牙Raúl Mur Artal 主頁  ORB-SLAM開原始碼 ORB-SLAM2開原始碼 

SVO -  ICRA2014 瑞士蘇黎世大學 Christian Forster 開原始碼

LSD-SLAM 2014 德國慕尼黑工業大學(TMU) Jakob Engel 開原始碼

DSO 2016 機構作者同LSD  主頁    開原始碼

德國慕尼黑工業大學計算機視覺組:https://vision.in.tum.de/research/vslam

一個更全的統計:Awesome SLAM\


相關文章