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