0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于SLAM基礎(chǔ)知識詳解

新機(jī)器視覺 ? 來源:CSDN技術(shù)社區(qū) ? 作者:Channon ? 2021-04-14 13:36 ? 次閱讀

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)域-視覺里程計。

SLAM框架:

傳感器數(shù)據(jù):主要用于采集實際環(huán)境中的各類型原始數(shù)據(jù)。包括激光掃描數(shù)據(jù)、視頻圖像數(shù)據(jù)、點云數(shù)據(jù)等。

視覺里程計:主要用于不同時刻間移動目標(biāo)相對位置的估算。包括特征匹配、直接配準(zhǔn)等算法的應(yīng)用。

后端:主要用于優(yōu)化視覺里程計帶來的累計誤差。包括濾波器、圖優(yōu)化等算法應(yīng)用。

建圖:用于三維地圖構(gòu)建。

回環(huán)檢測:主要用于空間累積誤差消除

其工作流程大致為:

傳感器讀取數(shù)據(jù)后,視覺里程計估計兩個時刻的相對運動(Ego-motion),后端處理視覺里程計估計結(jié)果的累積誤差,建圖則根據(jù)前端與后端得到的運動軌跡來建立地圖,回環(huán)檢測考慮了同一場景不同時刻的圖像,提供了空間上約束來消除累積誤差。

基于傳感器的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)和普及使得測量更快更準(zhǔn),信息更豐富。激光雷達(dá)采集到的物體信息呈現(xiàn)出一系列分散的、具有準(zhǔn)確角度和距離信息的點,被稱為點云。通常,激光SLAM系統(tǒng)通過對不同時刻兩片點云的匹配與比對,計算激光雷達(dá)相對運動的距離和姿態(tài)的改變,也就完成了對機(jī)器人自身的定位。

激光雷達(dá)測距比較準(zhǔn)確,誤差模型簡單,在強(qiáng)光直射以外的環(huán)境中運行穩(wěn)定,點云的處理也比較容易。同時,點云信息本身包含直接的幾何關(guān)系,使得機(jī)器人的路徑規(guī)劃和導(dǎo)航變得直觀。激光SLAM理論研究也相對成熟,落地產(chǎn)品更豐富。

2.視覺SLAM

眼睛是人類獲取外界信息的主要來源。視覺SLAM也具有類似特點,它可以從環(huán)境中獲取海量的、富于冗余的紋理信息,擁有超強(qiáng)的場景辨識能力。早期的視覺SLAM基于濾波理論,其非線性的誤差模型和巨大的計算量成為了它實用落地的障礙。近年來,隨著具有稀疏性的非線性優(yōu)化理論(Bundle Adjustment)以及相機(jī)技術(shù)、計算性能的進(jìn)步,實時運行的視覺SLAM已經(jīng)不再是夢想。

視覺SLAM的優(yōu)點是它所利用的豐富紋理信息。例如兩塊尺寸相同內(nèi)容卻不同的廣告牌,基于點云的激光SLAM算法無法區(qū)別他們,而視覺則可以輕易分辨。這帶來了重定位、場景分類上無可比擬的巨大優(yōu)勢。同時,視覺信息可以較為容易的被用來跟蹤和預(yù)測場景中的動態(tài)目標(biāo),如行人、車輛等,對于在復(fù)雜動態(tài)場景中的應(yīng)用這是至關(guān)重要的。

融合激光+視覺

激光SLAM和視覺SLAM各擅勝場,單獨使用都有其局限性,而融合使用則可能具有巨大的取長補短的潛力。例如,視覺在紋理豐富的動態(tài)環(huán)境中穩(wěn)定工作,并能為激光SLAM提供非常準(zhǔn)確的點云匹配,而激光雷達(dá)提供的精確方向和距離信息在正確匹配的點云上會發(fā)揮更大的威力。而在光照嚴(yán)重不足或紋理缺失的環(huán)境中,激光SLAM的定位工作使得視覺可以借助不多的信息進(jìn)行場景記錄。

SLAM與SFM的區(qū)別與聯(lián)系

SFM即Structure From Motion

傳統(tǒng)三維重建,這是一門計算機(jī)視覺學(xué)科的分支, 特點是把數(shù)據(jù)采集回來,然后離線處理。常見應(yīng)用就是重建某建筑物的3d地圖。

區(qū)別

SFM是vision方向的叫法,而SLAM是robotics方向的叫法。

SLAM所謂的Mapping, SFM叫structure;SLAM所謂的Location, SFM方向叫camera pose。

從出發(fā)點考慮,SFM主要是要完成3D reconstuction,而SLAM主要是要完成localization

從方法論的角度上考慮, SFM不要求prediction的,real-time是不要求的。但是對于SLAM而言prediction是必須的,SLAM的終極目標(biāo)是real-time navigation。

SLAM要求實時,數(shù)據(jù)是線性有序的,無法一次獲得所有圖像,部分SLAM算法會丟失過去的部分信息;基于圖像的SFM不要求實時,數(shù)據(jù)是無序的,可以一次輸入所有圖像,利用所有信息。

SLAM是個動態(tài)問題,會涉及到濾波,運動學(xué)相關(guān)的知識,而SFM主要涉及的還是圖像處理的知識。

聯(lián)系:

基本理論是一致的,都是多視角幾何;

傳統(tǒng)方法都需要做特征值提取與匹配;

都需要優(yōu)化投影誤差;

回環(huán)檢測和SfM的全局注冊方法是同一件事情。

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ā)展趨勢為用低成本慣性測量單元(IMU)輔助單目視覺系統(tǒng)。

單目視覺-慣性系統(tǒng)(VINS)的主要優(yōu)點是具有可觀測的度量尺度,以及翻滾角(roll)和俯仰角(pitch)。這讓需要有尺度的狀態(tài)估計的導(dǎo)航任務(wù)成為可能。

IMU測量值的積分可以顯著提高運動跟蹤性能,彌補光照變化、缺少紋理的區(qū)域或運動模糊的視覺軌跡損失的差距。

原文的解決方案的核心是一個魯棒的基于緊耦合的滑動窗非線性優(yōu)化的單目視覺慣性里程計(VIO)。

1、一個魯棒的初始化過程,它能夠從未知的初始狀態(tài)引導(dǎo)系統(tǒng)。

2、一個緊耦合、基于優(yōu)化的單目視覺慣性里程計,具有相機(jī)-IMU外部校準(zhǔn)和IMU偏置估計。

3、在線回環(huán)檢測與緊耦合重定位。

4、四自由度全局位姿圖優(yōu)化。

5、用于無人機(jī)導(dǎo)航、大規(guī)模定位和移動AR應(yīng)用的實時性能演示。

6、完全集成于ros的pc版本以及可在iphone 6或更高版本上運行的IOS版本的開源代碼。

源碼解析

Visual-Inertial融合定位算法。

VINS-Mono主要包含兩個節(jié)點: 前端節(jié)點feature_tracker_node和后端節(jié)點estimator_node。

前端節(jié)點處理Measurement Preprocessing中的Feature Detection and Tracking, 其他幾個部分(IMU preintegration, initialization, LocalBA, Loop closure)都是在estimator_node中處理。

二、ORB-SLAM2

論文解讀

ORB-SLAM2是基于單目,雙目和RGB-D相機(jī)的一套完整的SLAM方案。在實時和標(biāo)準(zhǔn)的CPU的前提下能夠進(jìn)行重新定位和回環(huán)檢測,以及地圖的重用。在實驗當(dāng)中,我們關(guān)心的是在大場景中建立可用的地圖和長期的定位。與此前的SLAM方案進(jìn)行對比,在大多數(shù)的情況下,ORB-SLAM2展現(xiàn)出一樣好的精確程度。

視覺SLAM僅僅通過一個單目相機(jī)就能夠完成。單目相機(jī)也是最便宜也是最小巧的傳感器設(shè)備。然而深度信息無法從單目相機(jī)中觀測到,地圖的尺度和預(yù)測軌跡是未知的。此外,由于不能從第一幀當(dāng)中進(jìn)行三角測量化,單目視覺SLAM系統(tǒng)的啟動往往需要多個視角或者濾波技術(shù)才能產(chǎn)生一個初始化的地圖。最后,單目SLAM可能會造成尺度漂移,以及在探索的過程中執(zhí)行純旋轉(zhuǎn)的時候可能會失敗。通過使用一個雙目或者RGB-D相機(jī)將會解決這些問題,并且能夠成為一種更加有效的視覺SLAM的解決方案。

在這篇文章當(dāng)中,在單目ORB-SLAM[1]的基礎(chǔ)上提出ORB-SLAM2,有以下貢獻(xiàn):

這是首個基于單目,雙目和RGB-D相機(jī)的開源SLAM方案,這個方案包括,回環(huán)檢測,地圖重用和重定位。

我們的RGB-D結(jié)果說明,光速法平差優(yōu)化(BA)比ICP或者光度和深度誤差最小方法的更加精確。

通過匹配遠(yuǎn)處和近處的雙目匹配的點和單目觀測,我們的雙目的結(jié)果比直接使用雙目系統(tǒng)更加精確。

針對無法建圖的情況,提出了一個輕量級的定位模式 ,能夠更加有效的重用地圖。

系統(tǒng)框架展示:

a1282fbc-9cde-11eb-8b86-12bb97331649.png

三、LOAM

論文解讀

《LOAM:Lidar Odometry and Mapping in Realtime》

LOAM是激光雷達(dá)slam中鼎鼎有名的,一套基于線面特征的前端框架。

使用一個三維空間中運動的兩軸激光雷達(dá)來構(gòu)建實時激光里程計。

提出可以同時獲得低漂移和低復(fù)雜度計算,并且不需要高精度的測距和慣性測量。

核心思想是分割同時定位和建圖的復(fù)雜問題,尋求通過兩個算法同時優(yōu)化大量變量。:

一個是執(zhí)行高頻率的里程計但是低精度的運動估計,另一個算法在一個數(shù)量級低的頻率執(zhí)行匹配和注冊點云信息。將這兩個算法結(jié)合就獲得高精度、實時性的激光里程計。

使用以6自由度運動的2軸雷達(dá)的距離測量值。

難點:不同時間接收到的距離測量值以及運動估計的誤差會導(dǎo)致點云的誤匹配。

以高頻率但低保真度執(zhí)行測距法以估計激光雷達(dá)的速度+以較低的數(shù)量級頻率運行,以進(jìn)行點云的精確匹配和配準(zhǔn)

結(jié)果表明,該方法可以在最先進(jìn)的離線批處理方法水平上實現(xiàn)準(zhǔn)確性。

主要貢獻(xiàn): 是把同時定位與建圖(SLAM)技術(shù)分為兩部分,一個是高頻率(10HZ)低精度的里程計odometry過程,另一個是低頻率(1HZ)高精度的建圖mapping過程,二者結(jié)合可實現(xiàn)低漂移、低計算量、高精度的SLAM。

Lidar Odometry:分為特征點提取Feature Point Extraction和特征點關(guān)聯(lián) Finding Feature Point Correspondence兩部分。

特征點提取:在激光雷達(dá)每一次sweep中,根據(jù)曲率對點進(jìn)行排序,作為評價特征點局部表面光滑性的標(biāo)準(zhǔn)。曲率最大的為邊緣點,曲率最小的為平面點,每個局部提取2個邊緣點和4個平面點。

特征點關(guān)聯(lián):使用scan-to-scan方式,分為邊緣點匹配和平面點匹配兩部分。計算點到直線的距離和點到平面的距離。

姿態(tài)解算:根據(jù)匹配的特征點云估計接收端位姿。

Lidar Mapping:低頻率建圖,前面獲得相鄰幀的姿態(tài)變換,接下來要和全局地圖進(jìn)行匹配,將其加入到全局地圖中。

源碼解析

LOAM源碼主要由四個節(jié)點構(gòu)成,分別完成特征點提取,高頻低精度odom, 低頻高精度odom, 雙頻odom融合的功能,每個節(jié)點以rosnode的形式存在, 也就是說是獨立的進(jìn)程,進(jìn)程間通過rostopic傳遞點云, odom等數(shù)據(jù)。實際上, 四個節(jié)點的執(zhí)行順序完全是串行的,很容易改成單進(jìn)程的版本。

四、MaskFusion

-與Mask-RCNN的關(guān)聯(lián)(有使用到)。

多個運動目標(biāo)進(jìn)行實時識別、跟蹤和重構(gòu)。

一個實時的、對象感知的、語義的和動態(tài)的RGB-D SLAM系統(tǒng), 超越傳統(tǒng)的輸出靜態(tài)場景的純幾何地圖的系統(tǒng)。

盡管取得了這些進(jìn)步,SLAM方法及其在增強(qiáng)現(xiàn)實中的應(yīng)用在兩個領(lǐng)域中仍處于非常初級的階段。

大多數(shù)SLAM方法依賴于這樣一種假設(shè),即環(huán)境大多是靜態(tài)的,移動的對象最多只能被檢測為異常值并被忽略??梢蕴幚砣我鈩討B(tài)和非剛性的場景仍然是一個開放的挑戰(zhàn)。

大多數(shù)SLAM系統(tǒng)提供的輸出是一個純粹的環(huán)境幾何圖。近期才出現(xiàn)添加語義信息的工作,并且識別主要是限于少數(shù)已知的對象實例的三維模型可提前得知,或每個3 D地圖點劃分成一組固定的語義類別沒有區(qū)分對象實例。

貢獻(xiàn):

識別、檢測、跟蹤和重構(gòu)多個運動的剛性對象,同時可以精確地分割每個實例并為其分配一個語義標(biāo)簽

聯(lián)合的輸出:

(i)Mask- RCNN,這是一個強(qiáng)大的基于圖像的實例級分割算法,可以預(yù)測80個對象類的對象類別標(biāo)簽;

(ii)一種基于幾何的分割算法,這將根據(jù)深度和表面法線線索生成一個對象邊緣映射,以增加目標(biāo)掩碼中對象邊界的準(zhǔn)確性。

該系統(tǒng)利用語義場景理解來映射和跟蹤多個目標(biāo)。在從二維圖像數(shù)據(jù)中提取語義標(biāo)簽的同時,系統(tǒng)為每個對象實例和背景分別建立了獨立的三維模型。

它在識別、重構(gòu)和跟蹤三個主要問題上存在局限性。

在識別方面,MaskFusion只能識別經(jīng)過MaskRCNN訓(xùn)練的類中的對象(目前MS-COCO數(shù)據(jù)集的80個類),不考慮對象標(biāo)簽分類錯誤。雖然MaskFusion可以處理一些非剛性物體的存在,例如人類,但是通過將它們從地圖上移除,跟蹤和重構(gòu)僅限于剛性物體。在沒有三維模型的情況下,跟蹤幾何信息較少的小目標(biāo)會產(chǎn)生誤差。

五、BundleFusion

BundleFusion_ Real-time Globally Consistent 3D Reconstruction 3D實時重建。

實時、高質(zhì)量、大規(guī)模場景的3D掃描是混合現(xiàn)實和機(jī)器人應(yīng)用的關(guān)鍵。

然而,可擴(kuò)展性帶來了姿態(tài)估計漂移的挑戰(zhàn),在累積模型中引入了嚴(yán)重的錯誤。

這種方法通常需要數(shù)小時的離線處理才能全局地糾正模型錯誤。

最近的在線方法顯示了引人注目的結(jié)果,但存在以下問題:

(1)需要幾分鐘的時間來進(jìn)行在線糾正,阻止了真正的實時使用;

(2)幀對幀(或幀對模型)位姿估計過于脆弱,導(dǎo)致跟蹤失敗較多;

(3)只支持非結(jié)構(gòu)化的基于點的表示,這限制了掃描的質(zhì)量和適用性。

我們系統(tǒng)地解決這些問題與一個新穎的,實時的,端到端重建框架。

其核心是一種魯棒位姿估計策略,通過考慮RGB-D輸入的完整歷史,用一種有效的分層方法對全局相機(jī)位姿集的每幀進(jìn)行優(yōu)化。

我們消除了對時間跟蹤的嚴(yán)重依賴,并不斷地對全局優(yōu)化的幀進(jìn)行定位。提出了一個可并行優(yōu)化框架,該框架采用基于稀疏特征和密集的幾何與光度匹配的對應(yīng)。

我們的方法實時估計全局優(yōu)化(即束調(diào)整BA)姿態(tài),支持從總體跟蹤失敗中恢復(fù)(即重定位)的魯棒跟蹤,并在一個單一框架內(nèi)實時重新估計3D模型以確保全局一致性。

我們的方法在質(zhì)量上優(yōu)于最先進(jìn)的在線系統(tǒng),但以前所未有的速度和掃描完整性。提出的框架導(dǎo)致了一個全面的針對大型室內(nèi)環(huán)境的在線掃描解決方案,易用并且能得到高質(zhì)量的結(jié)果。
編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2541

    文章

    49963

    瀏覽量

    747525
  • SLAM
    +關(guān)注

    關(guān)注

    23

    文章

    405

    瀏覽量

    31711
  • 激光雷達(dá)
    +關(guān)注

    關(guān)注

    967

    文章

    3863

    瀏覽量

    188762

原文標(biāo)題:SLAM快速入門

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    C++語言基礎(chǔ)知識

    電子發(fā)燒友網(wǎng)站提供《C++語言基礎(chǔ)知識.pdf》資料免費下載
    發(fā)表于 07-19 10:58 ?6次下載

    FPGA基礎(chǔ)知識介紹

    電子發(fā)燒友網(wǎng)站提供《FPGA基礎(chǔ)知識介紹.pdf》資料免費下載
    發(fā)表于 02-23 09:45 ?24次下載

    鴻蒙開發(fā)【設(shè)備開發(fā)基礎(chǔ)知識

    鴻蒙開發(fā)基礎(chǔ)知識講解
    的頭像 發(fā)表于 01-29 18:44 ?772次閱讀
    鴻蒙開發(fā)【設(shè)備開發(fā)<b class='flag-5'>基礎(chǔ)知識</b>】

    射頻與微波基礎(chǔ)知識

    射頻與微波基礎(chǔ)知識
    的頭像 發(fā)表于 01-16 10:05 ?676次閱讀
    射頻與微波<b class='flag-5'>基礎(chǔ)知識</b>

    電氣技術(shù)基礎(chǔ)知識

    電氣技術(shù)基礎(chǔ)知識
    的頭像 發(fā)表于 12-14 09:11 ?1345次閱讀
    電氣技術(shù)<b class='flag-5'>基礎(chǔ)知識</b>

    電子元器件的基礎(chǔ)知識

    電子元器件的基礎(chǔ)知識
    的頭像 發(fā)表于 12-04 10:42 ?4562次閱讀
    電子元器件的<b class='flag-5'>基礎(chǔ)知識</b>

    端接電阻基礎(chǔ)知識

    電子發(fā)燒友網(wǎng)站提供《端接電阻基礎(chǔ)知識.doc》資料免費下載
    發(fā)表于 11-21 09:31 ?0次下載
    端接電阻<b class='flag-5'>基礎(chǔ)知識</b>

    SPI協(xié)議基礎(chǔ)知識

    電子發(fā)燒友網(wǎng)站提供《SPI協(xié)議基礎(chǔ)知識.pdf》資料免費下載
    發(fā)表于 11-16 10:32 ?1次下載
    SPI協(xié)議<b class='flag-5'>基礎(chǔ)知識</b>

    電池的基礎(chǔ)知識

    電子發(fā)燒友網(wǎng)站提供《電池的基礎(chǔ)知識.doc》資料免費下載
    發(fā)表于 11-15 11:29 ?1次下載
    電池的<b class='flag-5'>基礎(chǔ)知識</b>

    紅外熱成像基礎(chǔ)知識

    電子發(fā)燒友網(wǎng)站提供《紅外熱成像基礎(chǔ)知識.pdf》資料免費下載
    發(fā)表于 11-01 09:44 ?5次下載
    紅外熱成像<b class='flag-5'>基礎(chǔ)知識</b>

    開關(guān)電源基礎(chǔ)知識

    電子發(fā)燒友網(wǎng)站提供《開關(guān)電源基礎(chǔ)知識.ppt》資料免費下載
    發(fā)表于 10-27 14:15 ?50次下載
    開關(guān)電源<b class='flag-5'>基礎(chǔ)知識</b>

    TTL與BJT的基礎(chǔ)知識

    教科書上面在講述TTL工作原理時候,運用到了BJT雙極性三極管的基礎(chǔ)知識,比如:倒置,鉗位,深飽和,飽和壓降。這些基礎(chǔ)知識在教材上并沒有特別明晰的說明。這里對此做了一些自己的思考和整理,歡迎指正。
    的頭像 發(fā)表于 10-21 11:01 ?3154次閱讀
    TTL與BJT的<b class='flag-5'>基礎(chǔ)知識</b>

    電子元器件基礎(chǔ)知識

    電子發(fā)燒友網(wǎng)站提供《電子元器件基礎(chǔ)知識.pdf》資料免費下載
    發(fā)表于 10-20 14:58 ?30次下載
    電子元器件<b class='flag-5'>基礎(chǔ)知識</b>

    汽車電子基礎(chǔ)知識

    電子發(fā)燒友網(wǎng)站提供《汽車電子基礎(chǔ)知識.doc》資料免費下載
    發(fā)表于 10-10 09:48 ?4次下載
    汽車電子<b class='flag-5'>基礎(chǔ)知識</b>

    單片機(jī)基礎(chǔ)知識分享

    電子發(fā)燒友網(wǎng)站提供《單片機(jī)基礎(chǔ)知識分享.pdf》資料免費下載
    發(fā)表于 10-07 11:06 ?2次下載