天天看點

SLAM 介紹

     SLAM是Simultaneous Localization and Mapping的縮寫,意為“同時定位與建圖”。slam說白就一句話:同時解決精确定位和環境繪制問題。首先是開場白,這項技術同時解決定位和環境繪制的問題:定位是一種精确的定位,包含機器位置、朝向、高度,不同于GPS;環境繪制例如使用SLAM,可以進一步恢複出三維,例如我們繞着城市拍一圈,就可以重建出三維城市的地圖。

    SLAM是智能機器和增強混合現實的關鍵技術,用商業的話來說就是『剛需』。SLAM可以使用各種各樣的傳感器資訊:從圖像、多圖像、深度資訊、GPS、IMU、乃至車輪齒輪轉了幾圈,都可以作為SLAM的輸入資訊來達到目的。

    如果SLAM技術加上各式各樣的深度學習+識别技術,可以了解為一個智能機器具備了學習陌生環境、解決自己『在哪兒』,還通過識别解決了『這是什麼』的兩個基本問題。能解決這兩個基本問題的軟體算法,就像是智能機器的『大腦』一樣,具備了一定程度的學習和回報的基礎。有了這樣的基礎,我們才能使機器更『聰明』的看懂這個世界,并進一步向我們所期待的回報方式去開發更高層的功能。

    主流開源SLAM方案

視覺傳感器:

稀疏法(特征點):

ORB-SLAM(單目,雙目,RGBD)[1](ORB-SLAM: a Versatile and Accurate Monocular SLAM System中文翻譯)[2]

PTAM(單目)[3]

MonoSLAM(單目)[4]

半稠密法:

LSD-SLAM(單目,雙目,RGBD)[5]

SVO(單目, 僅VO)[6]

稠密法:

DTAM(RGBD): Paper: [7] Open source code:[8]

Elastic Fusion(RGBD): Open source code:[9]

Kintinous(RGBD):Open source code: [10]

DVO: Open source code: [11]

RGBD-SLAM-V2: Open source code: [12]

RTAB-MAP: Code: [13]

其他

ScaViSLAM: Open source code [14]

雷射傳感器:

Hector SLAM[15]

Gmapping [16]

視覺(Visual)與IMU融合(VI)

Release of OKVIS: Open Keyframe-based Visual Inertial SLAM[17]

工具

g2o:[18]

ceres: [19]

入門資料推薦

關于Computer Vision

CMU computer vision 入門課件推薦(第16-19章關于visual odometry方面的基礎知識推導非常清晰)。

Multiple View Geometry

Daniel Cremers的MVG課程視訊。百度雲分享連結

An Invitation to 3D Computer Vision

關于SLAM(狀态最優估計)

State Estimation for Robotics, SLAM入門教材吐血推薦,對深入了解SLAM實質非常有幫助,下載下傳連結:[20]

Probabilistic Robotics

附slam評價:

monoslam那套現在很少人用了,我推薦幾個目前比較好的

1. PTAM:雖然很老了,但是在較小場景的計算效率和穩定性還是目前最好的之一,之前metaio和point cloud都是基于PTAM改的

2. ORB-SLAM:基于PTAM改的比較成功的,穩定性非常好,但效率比較低,很多思想很好

3. LSD-SLAM:近年來非常火的SLAM路線,能恢複半稠密三維,但目前的實作不太好,效率也不高

4. OKVIS:最近兩個SLAM最強的SLAM組ICL和ETH合作的,能融合IMU,算法架構非常好,但同樣實作很挫

5. SVO:特征跟蹤部分做的很好,對特征不是特别敏感,而且效率非常高,但SLAM部分做得不太好,可以它的特征跟蹤部分單獨抽出來用