視覺SLAM和激光SLAM的實現


在這里插入圖片描述

激光 SLAM:

早在 2005 年的時候,激光 SLAM 就已經被研究的比較透徹,框架也已初步確定。激光 SLAM,是目前最穩定、最主流的定位導航方法。

在這里插入圖片描述
激光 SLAM 地圖構建

VSLAM(基於視覺的定位與建圖):

隨着計算機視覺的迅速發展,視覺 SLAM 因為信息量大,適用范圍廣等優點受到廣泛關注。
在這里插入圖片描述
視覺 SLAM 地圖構建,圖片來源:百度 AI

(1)基於深度攝像機的 Vslam,跟激光 SLAM 類似,通過收集到的點雲數據,能直接計算障礙物距離;

(2)基於單目、魚眼相機的 VSLAM 方案,利用多幀圖像來估計自身的位姿變化,再通過累計位姿變化來計算距離物體的距離,並進行定位與地圖構建;

視覺SLAM和激光SLAM的對比

一直以來,不管是產業界還是學術界,對激光 SLAM 和 VSLAM 到底誰更勝一籌,誰是未來的主流趨勢這一問題,都有自己的看法和見解。下面就簡單從幾個方面對比了一下激光 SLAM 和 VSLAM。

成本

不管是 Sick,北洋,還是 Velodyne,價格從幾萬到幾十萬不等,成本相對來說比較高,但目前國內也有低成本激光雷達(RPLIDAR)解決方案。VSLAM 主要是通過攝像頭來采集數據信息,跟激光雷達一對比,攝像頭的成本顯然要低很多。但激光雷達能更高精度的測出障礙點的角度和距離,方便定位導航。

應用場景

從應用場景來說,VSLAM 的應用場景要豐富很多。VSLAM 在室內外環境下均能開展工作,但是對光的依賴程度高,在暗處或者一些無紋理區域是無法進行工作的。而激光 SLAM 目前主要被應用在室內,用來進行地圖構建和導航工作。

地圖精度

激光 SLAM 在構建地圖的時候,精度較高;VSLAM,比如常見的,大家也用的非常多的深度攝像機 Kinect,(測距范圍在 3-12m 之間),地圖構建精度約 3cm;所以激光 SLAM 構建的地圖精度一般來說比 VSLAM 高,且能直接用於定位導航。

易用性

激光 SLAM 和基於深度相機的 VSLAM 均是通過直接獲取環境中的點雲數據,根據生成的點雲數據,測算哪里有障礙物以及障礙物的距離。但是基於單目、雙目、魚眼攝像機的 VSLAM 方案,則不能直接獲得環境中的點雲,而是形成灰色或彩色圖像,需要通過不斷移動自身的位置,通過提取、匹配特征點,利用三角測距的方法測算出障礙物的距離。

安裝方式

雷達最先開始應用於軍事行業,后來逐漸民用。被大家廣泛知曉最先應該是從谷歌的無人車上所知道的。當時 Velodyne 雷達體積、重量都較大,應用到一些實際場景中顯然不適合。比如無人機、AR、VR 這種,本身體積就很小,再搭載大體積的激光雷達的話,根本無法使用,也影響美感和性能。所以 VSLAM 的出現,利用攝像頭測距,彌補了激光雷達的這一缺點,安裝方式可以隨着場景的不同實現多元化。

640?wx_fmt=jpeg

其他

除了上面幾點之外,在探測范圍、運算強度、實時數據生成、地圖累計誤差等方面,激光 SLAM 和視覺 SLAM 也會存在一定的差距。

比如:

640?wx_fmt=png

注:左為 Lidar SLAM,右為 VSLAM,數據來源:KITTI

可以明顯看出,對於同一個場景,VSLAM 在后半程中出現了偏差,這是因為累積誤差所引起的,所以 VSLAM 要進行回環檢驗。

激光 SLAM 是目前比較成熟的定位導航方案,視覺 SLAM 是未來研究的一個主流方向。所以,未來,多傳感器的融合是一種必然的趨勢。取長補短,優勢結合,為市場打造出真正好用的、易用的 SLAM 方案。

視覺SLAM相關資料

常用方法

特征法:

ORB SLAM https://github.com/raulmur/ORB_SLAM2
優勢: 在靜態環境下定位准確,穩定, 單目和雙目版本都可以達到實時(高於10frames/s)。代碼可讀性強,易擴展, 網上也有實現和imu融合的版本。

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

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

直接法
  1. DSO https://github.com/JakobEngel/dso

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

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

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

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

半直接法
  1. SVO https://github.com/uzh-rpg/rpg_svo

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

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

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

Visual-inertial SLAM

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

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

參考:http://blog.csdn.net/akunainiannian/article/details/45363731

鏈接:https://www.zhihu.com/question/51045335/answer/340167377

MonoSLAM、Co-SLAM、Swarm SLAM、ORB_SLAM、RGB-D SLAM

視覺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非常好的東西

  8. PTAM:http://www.robots.ox.ac.uk/~gk/PTAM/

    libCVD:http://www.edwardrosten.com/index.html

    編譯PTAM:http://www.fx114.net/qa-207-77156.aspx

    windows下編譯PTAM:http://blog.csdn.net/cgf_909/article/details/24457771

  9. ORB_SLAM:http://webdiis.unizar.es/~raulmur/orbslam/

  10. LSD_SLAM:http://www.cnblogs.com/hitcm/category/763753.html

三、相關書籍
  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 Thrun:http://robots.stanford.edu/papers.html

五、其他資源(一)
  1. Giorgio Grisetti; Cyrill Stachniss; Wolfram Burgard; (GridMapping 算法,及概率機器人一書作者)

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

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

  3. Austin Eliazar; Ronald 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帶領的團隊也比較猛.


 


原文:https://blog.csdn.net/Darlingqiang/article/details/80689922


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM