01Slam概述
SLAM是Simultaneous localization and mapping縮寫,意為“同步定位與建圖”。
SLAM的典型應(yīng)用領(lǐng)域:
機(jī)器人定位導(dǎo)航領(lǐng)域-地圖建模, VR/AR方面-輔助增強(qiáng)視覺效果, 無人機(jī)領(lǐng)域-地圖建模, 無人駕駛領(lǐng)域-視覺里程計(jì)。
SLAM框架:
傳感器數(shù)據(jù):主要用于采集實(shí)際環(huán)境中的各類型原始數(shù)據(jù)。包括激光掃描數(shù)據(jù)、視頻圖像數(shù)據(jù)、點(diǎn)云數(shù)據(jù)等。
視覺里程計(jì):主要用于不同時(shí)刻間移動(dòng)目標(biāo)相對(duì)位置的估算。包括特征匹配、直接配準(zhǔn)等算法的應(yīng)用。
后端:主要用于優(yōu)化視覺里程計(jì)帶來的累計(jì)誤差。包括濾波器、圖優(yōu)化等算法應(yīng)用。
建圖:用于三維地圖構(gòu)建。
回環(huán)檢測(cè):主要用于空間累積誤差消除
其工作流程大致為:
傳感器讀取數(shù)據(jù)后,視覺里程計(jì)估計(jì)兩個(gè)時(shí)刻的相對(duì)運(yùn)動(dòng)(Ego-motion),后端處理視覺里程計(jì)估計(jì)結(jié)果的累積誤差,建圖則根據(jù)前端與后端得到的運(yùn)動(dòng)軌跡來建立地圖,回環(huán)檢測(cè)考慮了同一場(chǎng)景不同時(shí)刻的圖像,提供了空間上約束來消除累積誤差。
基于傳感器的SLAM分類
基于激光雷達(dá)的激光SLAM(Lidar SLAM)和基于視覺的VSLAM(Visual SLAM)。
1.激光SLAM
激光SLAM采用2D或3D激光雷達(dá)(也叫單線或多線激光雷達(dá)),2D激光雷達(dá)一般用于室內(nèi)機(jī)器人上(如掃地機(jī)器人),而3D激光雷達(dá)一般使用于無人駕駛領(lǐng)域。激光雷達(dá)的出現(xiàn)和普及使得測(cè)量更快更準(zhǔn),信息更豐富。激光雷達(dá)采集到的物體信息呈現(xiàn)出一系列分散的、具有準(zhǔn)確角度和距離信息的點(diǎn),被稱為點(diǎn)云。通常,激光SLAM系統(tǒng)通過對(duì)不同時(shí)刻兩片點(diǎn)云的匹配與比對(duì),計(jì)算激光雷達(dá)相對(duì)運(yùn)動(dòng)的距離和姿態(tài)的改變,也就完成了對(duì)機(jī)器人自身的定位。
激光雷達(dá)測(cè)距比較準(zhǔn)確,誤差模型簡單,在強(qiáng)光直射以外的環(huán)境中運(yùn)行穩(wěn)定,點(diǎn)云的處理也比較容易。同時(shí),點(diǎn)云信息本身包含直接的幾何關(guān)系,使得機(jī)器人的路徑規(guī)劃和導(dǎo)航變得直觀。激光SLAM理論研究也相對(duì)成熟,落地產(chǎn)品更豐富。
2.視覺SLAM
眼睛是人類獲取外界信息的主要來源。視覺SLAM也具有類似特點(diǎn),它可以從環(huán)境中獲取海量的、富于冗余的紋理信息,擁有超強(qiáng)的場(chǎng)景辨識(shí)能力。早期的視覺SLAM基于濾波理論,其非線性的誤差模型和巨大的計(jì)算量成為了它實(shí)用落地的障礙。近年來,隨著具有稀疏性的非線性優(yōu)化理論(Bundle Adjustment)以及相機(jī)技術(shù)、計(jì)算性能的進(jìn)步,實(shí)時(shí)運(yùn)行的視覺SLAM已經(jīng)不再是夢(mèng)想。
視覺SLAM的優(yōu)點(diǎn)是它所利用的豐富紋理信息。例如兩塊尺寸相同內(nèi)容卻不同的廣告牌,基于點(diǎn)云的激光SLAM算法無法區(qū)別他們,而視覺則可以輕易分辨。這帶來了重定位、場(chǎng)景分類上無可比擬的巨大優(yōu)勢(shì)。同時(shí),視覺信息可以較為容易的被用來跟蹤和預(yù)測(cè)場(chǎng)景中的動(dòng)態(tài)目標(biāo),如行人、車輛等,對(duì)于在復(fù)雜動(dòng)態(tài)場(chǎng)景中的應(yīng)用這是至關(guān)重要的。
融合激光+視覺
激光SLAM和視覺SLAM各擅勝場(chǎng),單獨(dú)使用都有其局限性,而融合使用則可能具有巨大的取長補(bǔ)短的潛力。例如,視覺在紋理豐富的動(dòng)態(tài)環(huán)境中穩(wěn)定工作,并能為激光SLAM提供非常準(zhǔn)確的點(diǎn)云匹配,而激光雷達(dá)提供的精確方向和距離信息在正確匹配的點(diǎn)云上會(huì)發(fā)揮更大的威力。而在光照嚴(yán)重不足或紋理缺失的環(huán)境中,激光SLAM的定位工作使得視覺可以借助不多的信息進(jìn)行場(chǎng)景記錄。
SLAM與SFM的區(qū)別與聯(lián)系
SFM即Structure From Motion
傳統(tǒng)三維重建,這是一門計(jì)算機(jī)視覺學(xué)科的分支, 特點(diǎn)是把數(shù)據(jù)采集回來,然后離線處理。常見應(yīng)用就是重建某建筑物的3d地圖。
區(qū)別:
SFM是vision方向的叫法,而SLAM是robotics方向的叫法。
SLAM所謂的Mapping, SFM叫structure;SLAM所謂的Location, SFM方向叫camera pose。
從出發(fā)點(diǎn)考慮,SFM主要是要完成3D reconstuction,而SLAM主要是要完成localization
從方法論的角度上考慮, SFM不要求prediction的,real-time是不要求的。但是對(duì)于SLAM而言prediction是必須的,SLAM的終極目標(biāo)是real-time navigation。
SLAM要求實(shí)時(shí),數(shù)據(jù)是線性有序的,無法一次獲得所有圖像,部分SLAM算法會(huì)丟失過去的部分信息;基于圖像的SFM不要求實(shí)時(shí),數(shù)據(jù)是無序的,可以一次輸入所有圖像,利用所有信息。
SLAM是個(gè)動(dòng)態(tài)問題,會(huì)涉及到濾波,運(yùn)動(dòng)學(xué)相關(guān)的知識(shí),而SFM主要涉及的還是圖像處理的知識(shí)。
聯(lián)系:
基本理論是一致的,都是多視角幾何;
傳統(tǒng)方法都需要做特征值提取與匹配;
都需要優(yōu)化投影誤差;
回環(huán)檢測(cè)和SfM的全局注冊(cè)方法是同一件事情。
02代表性的SLAM算法
?VINS-Mono MONO SLAM https://github.com/HKUST-Aerial-Robotics/VINS-Mono
?ORB-SLAM2 RGBD SLAM https://github.com/raulmur/ORB_SLAM2
?LOAM Laser SLAM https://github.com/laboshinl/loam_velodyne
?MaskFusion Semantic SLAM https://github.com/martinruenz/maskfusion
?BundleFusion Dense 3D Reconstruction https://github.com/niessner/BundleFusion
一、VINS-Mono
論文解讀
近年來的發(fā)展趨勢(shì)為用低成本慣性測(cè)量單元(IMU)輔助單目視覺系統(tǒng)。
單目視覺-慣性系統(tǒng)(VINS)的主要優(yōu)點(diǎn)是具有可觀測(cè)的度量尺度,以及翻滾角(roll)和俯仰角(pitch)。這讓需要有尺度的狀態(tài)估計(jì)的導(dǎo)航任務(wù)成為可能。
IMU測(cè)量值的積分可以顯著提高運(yùn)動(dòng)跟蹤性能,彌補(bǔ)光照變化、缺少紋理的區(qū)域或運(yùn)動(dòng)模糊的視覺軌跡損失的差距。
原文的解決方案的核心是一個(gè)魯棒的基于緊耦合的滑動(dòng)窗非線性優(yōu)化的單目視覺慣性里程計(jì)(VIO)。
1、一個(gè)魯棒的初始化過程,它能夠從未知的初始狀態(tài)引導(dǎo)系統(tǒng)。
2、一個(gè)緊耦合、基于優(yōu)化的單目視覺慣性里程計(jì),具有相機(jī)-IMU外部校準(zhǔn)和IMU偏置估計(jì)。
3、在線回環(huán)檢測(cè)與緊耦合重定位。
4、四自由度全局位姿圖優(yōu)化。
5、用于無人機(jī)導(dǎo)航、大規(guī)模定位和移動(dòng)AR應(yīng)用的實(shí)時(shí)性能演示。
6、完全集成于ros的pc版本以及可在iphone 6或更高版本上運(yùn)行的IOS版本的開源代碼。
源碼解析
Visual-Inertial融合定位算法。
VINS-Mono主要包含兩個(gè)節(jié)點(diǎn): 前端節(jié)點(diǎn)feature_tracker_node和后端節(jié)點(diǎn)estimator_node。
前端節(jié)點(diǎn)處理Measurement Preprocessing中的Feature Detection and Tracking, 其他幾個(gè)部分(IMU preintegration, initialization, LocalBA, Loop closure)都是在estimator_node中處理。
二、ORB-SLAM2
論文解讀
ORB-SLAM2是基于單目,雙目和RGB-D相機(jī)的一套完整的SLAM方案。在實(shí)時(shí)和標(biāo)準(zhǔn)的CPU的前提下能夠進(jìn)行重新定位和回環(huán)檢測(cè),以及地圖的重用。在實(shí)驗(yàn)當(dāng)中,我們關(guān)心的是在大場(chǎng)景中建立可用的地圖和長期的定位。與此前的SLAM方案進(jìn)行對(duì)比,在大多數(shù)的情況下,ORB-SLAM2展現(xiàn)出一樣好的精確程度。
視覺SLAM僅僅通過一個(gè)單目相機(jī)就能夠完成。單目相機(jī)也是最便宜也是最小巧的傳感器設(shè)備。然而深度信息無法從單目相機(jī)中觀測(cè)到,地圖的尺度和預(yù)測(cè)軌跡是未知的。此外,由于不能從第一幀當(dāng)中進(jìn)行三角測(cè)量化,單目視覺SLAM系統(tǒng)的啟動(dòng)往往需要多個(gè)視角或者濾波技術(shù)才能產(chǎn)生一個(gè)初始化的地圖。最后,單目SLAM可能會(huì)造成尺度漂移,以及在探索的過程中執(zhí)行純旋轉(zhuǎn)的時(shí)候可能會(huì)失敗。通過使用一個(gè)雙目或者RGB-D相機(jī)將會(huì)解決這些問題,并且能夠成為一種更加有效的視覺SLAM的解決方案。
在這篇文章當(dāng)中,在單目ORB-SLAM[1]的基礎(chǔ)上提出ORB-SLAM2,有以下貢獻(xiàn):
這是首個(gè)基于單目,雙目和RGB-D相機(jī)的開源SLAM方案,這個(gè)方案包括,回環(huán)檢測(cè),地圖重用和重定位。
我們的RGB-D結(jié)果說明,光速法平差優(yōu)化(BA)比ICP或者光度和深度誤差最小方法的更加精確。
通過匹配遠(yuǎn)處和近處的雙目匹配的點(diǎn)和單目觀測(cè),我們的雙目的結(jié)果比直接使用雙目系統(tǒng)更加精確。
針對(duì)無法建圖的情況,提出了一個(gè)輕量級(jí)的定位模式 ,能夠更加有效的重用地圖。
系統(tǒng)框架展示:
三、LOAM
論文解讀
《LOAM:Lidar Odometry and Mapping in Realtime》
LOAM是激光雷達(dá)slam中鼎鼎有名的,一套基于線面特征的前端框架。
使用一個(gè)三維空間中運(yùn)動(dòng)的兩軸激光雷達(dá)來構(gòu)建實(shí)時(shí)激光里程計(jì)。
提出可以同時(shí)獲得低漂移和低復(fù)雜度計(jì)算,并且不需要高精度的測(cè)距和慣性測(cè)量。
核心思想是分割同時(shí)定位和建圖的復(fù)雜問題,尋求通過兩個(gè)算法同時(shí)優(yōu)化大量變量。:
一個(gè)是執(zhí)行高頻率的里程計(jì)但是低精度的運(yùn)動(dòng)估計(jì),另一個(gè)算法在一個(gè)數(shù)量級(jí)低的頻率執(zhí)行匹配和注冊(cè)點(diǎn)云信息。將這兩個(gè)算法結(jié)合就獲得高精度、實(shí)時(shí)性的激光里程計(jì)。
使用以6自由度運(yùn)動(dòng)的2軸雷達(dá)的距離測(cè)量值。
難點(diǎn):不同時(shí)間接收到的距離測(cè)量值以及運(yùn)動(dòng)估計(jì)的誤差會(huì)導(dǎo)致點(diǎn)云的誤匹配。
以高頻率但低保真度執(zhí)行測(cè)距法以估計(jì)激光雷達(dá)的速度+以較低的數(shù)量級(jí)頻率運(yùn)行,以進(jìn)行點(diǎn)云的精確匹配和配準(zhǔn)
結(jié)果表明,該方法可以在最先進(jìn)的離線批處理方法水平上實(shí)現(xiàn)準(zhǔn)確性。
主要貢獻(xiàn): 是把同時(shí)定位與建圖(SLAM)技術(shù)分為兩部分,一個(gè)是高頻率(10HZ)低精度的里程計(jì)odometry過程,另一個(gè)是低頻率(1HZ)高精度的建圖mapping過程,二者結(jié)合可實(shí)現(xiàn)低漂移、低計(jì)算量、高精度的SLAM。
Lidar Odometry:分為特征點(diǎn)提取Feature Point Extraction和特征點(diǎn)關(guān)聯(lián) Finding Feature Point Correspondence兩部分。
特征點(diǎn)提取:在激光雷達(dá)每一次sweep中,根據(jù)曲率對(duì)點(diǎn)進(jìn)行排序,作為評(píng)價(jià)特征點(diǎn)局部表面光滑性的標(biāo)準(zhǔn)。曲率最大的為邊緣點(diǎn),曲率最小的為平面點(diǎn),每個(gè)局部提取2個(gè)邊緣點(diǎn)和4個(gè)平面點(diǎn)。
特征點(diǎn)關(guān)聯(lián):使用scan-to-scan方式,分為邊緣點(diǎn)匹配和平面點(diǎn)匹配兩部分。計(jì)算點(diǎn)到直線的距離和點(diǎn)到平面的距離。
姿態(tài)解算:根據(jù)匹配的特征點(diǎn)云估計(jì)接收端位姿。
Lidar Mapping:低頻率建圖,前面獲得相鄰幀的姿態(tài)變換,接下來要和全局地圖進(jìn)行匹配,將其加入到全局地圖中。
源碼解析
LOAM源碼主要由四個(gè)節(jié)點(diǎn)構(gòu)成,分別完成特征點(diǎn)提取,高頻低精度odom, 低頻高精度odom, 雙頻odom融合的功能,每個(gè)節(jié)點(diǎn)以rosnode的形式存在, 也就是說是獨(dú)立的進(jìn)程,進(jìn)程間通過rostopic傳遞點(diǎn)云, odom等數(shù)據(jù)。實(shí)際上, 四個(gè)節(jié)點(diǎn)的執(zhí)行順序完全是串行的,很容易改成單進(jìn)程的版本。
四、MaskFusion
-與Mask-RCNN的關(guān)聯(lián)(有使用到)。
多個(gè)運(yùn)動(dòng)目標(biāo)進(jìn)行實(shí)時(shí)識(shí)別、跟蹤和重構(gòu)。
一個(gè)實(shí)時(shí)的、對(duì)象感知的、語義的和動(dòng)態(tài)的RGB-D SLAM系統(tǒng), 超越傳統(tǒng)的輸出靜態(tài)場(chǎng)景的純幾何地圖的系統(tǒng)。
盡管取得了這些進(jìn)步,SLAM方法及其在增強(qiáng)現(xiàn)實(shí)中的應(yīng)用在兩個(gè)領(lǐng)域中仍處于非常初級(jí)的階段。
大多數(shù)SLAM方法依賴于這樣一種假設(shè),即環(huán)境大多是靜態(tài)的,移動(dòng)的對(duì)象最多只能被檢測(cè)為異常值并被忽略。可以處理任意動(dòng)態(tài)和非剛性的場(chǎng)景仍然是一個(gè)開放的挑戰(zhàn)。
大多數(shù)SLAM系統(tǒng)提供的輸出是一個(gè)純粹的環(huán)境幾何圖。近期才出現(xiàn)添加語義信息的工作,并且識(shí)別主要是限于少數(shù)已知的對(duì)象實(shí)例的三維模型可提前得知,或每個(gè)3 D地圖點(diǎn)劃分成一組固定的語義類別沒有區(qū)分對(duì)象實(shí)例。
貢獻(xiàn):
識(shí)別、檢測(cè)、跟蹤和重構(gòu)多個(gè)運(yùn)動(dòng)的剛性對(duì)象,同時(shí)可以精確地分割每個(gè)實(shí)例并為其分配一個(gè)語義標(biāo)簽。
聯(lián)合的輸出:
(i)Mask- RCNN,這是一個(gè)強(qiáng)大的基于圖像的實(shí)例級(jí)分割算法,可以預(yù)測(cè)80個(gè)對(duì)象類的對(duì)象類別標(biāo)簽;
(ii)一種基于幾何的分割算法,這將根據(jù)深度和表面法線線索生成一個(gè)對(duì)象邊緣映射,以增加目標(biāo)掩碼中對(duì)象邊界的準(zhǔn)確性。
該系統(tǒng)利用語義場(chǎng)景理解來映射和跟蹤多個(gè)目標(biāo)。在從二維圖像數(shù)據(jù)中提取語義標(biāo)簽的同時(shí),系統(tǒng)為每個(gè)對(duì)象實(shí)例和背景分別建立了獨(dú)立的三維模型。
它在識(shí)別、重構(gòu)和跟蹤三個(gè)主要問題上存在局限性。
在識(shí)別方面,MaskFusion只能識(shí)別經(jīng)過MaskRCNN訓(xùn)練的類中的對(duì)象(目前MS-COCO數(shù)據(jù)集的80個(gè)類),不考慮對(duì)象標(biāo)簽分類錯(cuò)誤。雖然MaskFusion可以處理一些非剛性物體的存在,例如人類,但是通過將它們從地圖上移除,跟蹤和重構(gòu)僅限于剛性物體。在沒有三維模型的情況下,跟蹤幾何信息較少的小目標(biāo)會(huì)產(chǎn)生誤差。
五、BundleFusion
BundleFusion_ Real-time Globally Consistent 3D Reconstruction 3D實(shí)時(shí)重建。
實(shí)時(shí)、高質(zhì)量、大規(guī)模場(chǎng)景的3D掃描是混合現(xiàn)實(shí)和機(jī)器人應(yīng)用的關(guān)鍵。
然而,可擴(kuò)展性帶來了姿態(tài)估計(jì)漂移的挑戰(zhàn),在累積模型中引入了嚴(yán)重的錯(cuò)誤。
這種方法通常需要數(shù)小時(shí)的離線處理才能全局地糾正模型錯(cuò)誤。
最近的在線方法顯示了引人注目的結(jié)果,但存在以下問題:
(1)需要幾分鐘的時(shí)間來進(jìn)行在線糾正,阻止了真正的實(shí)時(shí)使用;
(2)幀對(duì)幀(或幀對(duì)模型)位姿估計(jì)過于脆弱,導(dǎo)致跟蹤失敗較多;
(3)只支持非結(jié)構(gòu)化的基于點(diǎn)的表示,這限制了掃描的質(zhì)量和適用性。
我們系統(tǒng)地解決這些問題與一個(gè)新穎的,實(shí)時(shí)的,端到端重建框架。
其核心是一種魯棒位姿估計(jì)策略,通過考慮RGB-D輸入的完整歷史,用一種有效的分層方法對(duì)全局相機(jī)位姿集的每幀進(jìn)行優(yōu)化。
我們消除了對(duì)時(shí)間跟蹤的嚴(yán)重依賴,并不斷地對(duì)全局優(yōu)化的幀進(jìn)行定位。提出了一個(gè)可并行優(yōu)化框架,該框架采用基于稀疏特征和密集的幾何與光度匹配的對(duì)應(yīng)。
我們的方法實(shí)時(shí)估計(jì)全局優(yōu)化(即束調(diào)整BA)姿態(tài),支持從總體跟蹤失敗中恢復(fù)(即重定位)的魯棒跟蹤,并在一個(gè)單一框架內(nèi)實(shí)時(shí)重新估計(jì)3D模型以確保全局一致性。
我們的方法在質(zhì)量上優(yōu)于最先進(jìn)的在線系統(tǒng),但以前所未有的速度和掃描完整性。提出的框架導(dǎo)致了一個(gè)全面的針對(duì)大型室內(nèi)環(huán)境的在線掃描解決方案,易用并且能得到高質(zhì)量的結(jié)果。
編輯:lyn
-
傳感器
+關(guān)注
關(guān)注
2564文章
52634瀏覽量
763989 -
SLAM
+關(guān)注
關(guān)注
24文章
435瀏覽量
32333 -
激光雷達(dá)
+關(guān)注
關(guān)注
971文章
4197瀏覽量
192016
原文標(biāo)題:SLAM快速入門
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
功率器件熱設(shè)計(jì)基礎(chǔ)知識(shí)
PCB繪制基礎(chǔ)知識(shí)

FPGA基礎(chǔ)知識(shí)及設(shè)計(jì)和執(zhí)行FPGA應(yīng)用所需的工具

TWL6030氣體監(jiān)測(cè)基礎(chǔ)知識(shí)

Verilog HDL的基礎(chǔ)知識(shí)

TI電池監(jiān)控器IC的HDQ通信基礎(chǔ)知識(shí)

在TI SoC上集成AUTOSAR:基礎(chǔ)知識(shí)

負(fù)載開關(guān)基礎(chǔ)知識(shí)

全新的半導(dǎo)體基礎(chǔ)知識(shí)

超聲波傳感基礎(chǔ)知識(shí)

評(píng)論