2021-03-15 深入理解SLAM技术【1】 基础知识
1 啥是SLAM?
SLAM是真正的3d技術,是解決移動車輛的定位和動態地圖生成的問題的。比如說,你要構造一個自主機器人,能實現路面行走,障礙規避,而且理解三維透視場景,甚至將這種場景翻譯成幾何場景,以及,走過的路如何動態生成記憶(MAP)。這統統需要SLAM技術。
2 SLAM的技術背景?
計算機視覺的研究目前主要分為兩大方向:基于學習的方法和基于幾何的方法。其中基于學習的方法最火的就是深度學習,而基于幾何方法最火的就是視覺SLAM。
3 SLAM技術的應用場合
常見的有:1)自主機器人 2)自動駕駛? 3)虛擬場景 4)三維重構 ? 5)無人機技術
4 學習SLAM的數學背景
基礎知識有:1)矩陣論。2)李群李代數。3)非線性優化問題。(比如梯度下降、牛頓法、高斯-牛頓法、LM算法、bundle adjustment等)。4)還有泰勒展開,求(偏)導,積分等。
5 學習SLAM的計算機技術
SLAM里涉及很多圖像處理、計算機視覺知識 :
1)圖像處理相關。比如和特征點相關的有:特征點描述子、特征點提取、特征點匹配。圖像梯度計算、邊緣檢測、直線檢測等。
2)相機相關:單目、雙目、RGB-D等相機的物理參數意義、相機成像模型、相機的標定、去畸變等。雙目的話還涉及到視差計算,RGB-D的話涉及到RGB和depth圖像的對齊等。
3)多視角幾何相關。比如對極約束、本質矩陣、單應矩陣、光流估計、三角化等。
6 軟件環境
1)電腦環境:Linux環境,推薦Ubuntu16.04。
2)編程語言:主要是C++。推薦紅寶書《C++ Primer》。
3)集成開發環境:CLion(用edu結尾郵箱可以申請免費使用一年)、kdevelop(免費),個人覺得前者好用一點。
4)編譯工具:cmake。統一使用cmake編譯,好處很多,比如代碼可以很方便的跨平臺使用等。使用起來也很方便。有個小冊子《CMake practice》照著學一下。
5)文檔編輯:有很多,比如gedit、Nano、vim等。
6)開發庫:使用到的第三方庫主要包括:OpenCV(計算機視覺),OpenGL(計算機圖形學),Eigen(幾何變換),Sophus(李代數),Ceres(非線性優化),G2o(圖優化)等。
7 行業開源代碼
該行業的開源代碼如下,不妨作為初學者拐杖先用著。
稀疏法:
ORB-SLAM2:支持單目,雙目,RGB-D相機
https://github.com/raulmur/ORB_SLAM2
半稠密法:
LSD-SLAM:支持單目,雙目,RGB-D相機
https://vision.in.tum.de/research/vslam/lsdslam
DSO:單目
https://vision.in.tum.de/research/vslam/dso
稠密法
Elastic Fusion:RGB-D相機
https://github.com/mp3guy/ElasticFusion
BundleFusion:RGB-D相機
https://github.com/niessner/BundleFusion
RGB-D SLAM V2:RGB-D相機
https://github.com/felixendres/rgbdslam_v2
多傳感器融合:
VINS:單目 + IMU(慣性測量單元)
https://github.com/HKUST-Aerial-Robotics/VINS-Mono
OKVIS:(單目、雙目、四目)+ IMU
https://wp.doc.ic.ac.uk/sleutene/2016/02/04/release-of-okvis-open-keyframe-based-visual-inertial-slam/
8 行業數據集
主要列舉幾個主流的數據集
1、TUM RGB-D SLAM Dataset and Benchmark
德國慕尼黑理工大學計算機視覺組制作的數據集,使用Kinect相機采集的數據集,包括IMU數據,并且用高精度運動采集系統提供了groundtruth(真值)。提供測試腳本,可以方便的實現量化評估。
https://vision.in.tum.de/data/datasets/rgbd-dataset
2、KITTI Vision Benchmark Suite
德國卡爾斯魯厄理工學院和豐田工業大學芝加哥分校一起合作制作的用于自動駕駛的數據集。
使用一輛改裝的汽車采集,該車配備了兩臺高分辨率彩色和灰度攝像機,還有Velodyne激光掃描儀和GPS定位系統,用來提供精確的groundtruth。主要采集區域是卡爾斯魯厄市區、農村地區和高速公路。提供測試腳本可以方便的實現量化評估。
http://www.cvlibs.net/datasets/kitti/
3、EuRoC MAV Dataset
蘇黎世聯邦理工大學制作的數據集,采用裝備了雙目相機和IMU的四旋翼無人機采集數據,使用高精度運動采集系統提供了groundtruth。提供測試腳本,可以方便的實現量化評估。
https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets
9 結束語
好了,以上介紹了學習SLAM的相關知識,有興趣的同學們,就自己準備環境,等待解決吧。
?
*參考技術
SLAM濾波 :參考文章
SLAM綜述:SLAM應用現狀
?
?
?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的2021-03-15 深入理解SLAM技术【1】 基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021-03-08 Halcon初学者
- 下一篇: Halcon知识: 矩形测量