苗 升,劉小雄,黃劍雄,居玉婷,章衛(wèi)國(guó)
(西北工業(yè)大學(xué) 自動(dòng)化學(xué)院,西安 710072)
近年來(lái),隨著無(wú)人機(jī)相關(guān)產(chǎn)業(yè)的大力發(fā)展,其在非國(guó)防和民用等諸多領(lǐng)域扮演著越來(lái)越重要的作用。室內(nèi)場(chǎng)景飛行與感知周圍環(huán)境是旋翼無(wú)人機(jī)經(jīng)常需要面臨的情景,如:室內(nèi)救援、室內(nèi)搜索及環(huán)繞障礙等。在這些復(fù)雜的環(huán)境下旋翼無(wú)人機(jī)常常難以進(jìn)行自我導(dǎo)航,由于信號(hào)被遮擋或者存在缺失,會(huì)導(dǎo)致傳統(tǒng)的GPS導(dǎo)航定位方法失敗。無(wú)人機(jī)具有輕量化的要求,這便使得難以在上面防止過(guò)多過(guò)重的傳感器,而在沒(méi)有先驗(yàn)的地圖信息之下,如何感知未知的周圍環(huán)境和確定自己當(dāng)前的位置和姿態(tài)便是我們首先需要解決的問(wèn)題之一。準(zhǔn)確的位姿的確定對(duì)于無(wú)人機(jī)在以后執(zhí)行高級(jí)任務(wù),如:路徑規(guī)劃、避障穿越、三維重建、目標(biāo)跟蹤等方面具有十分重要的意義。
同時(shí)定位和建圖(SLAM,simultaneous localization and mapping)[1-2]便是解決這個(gè)問(wèn)題目前最受歡迎的方法,它是由Smith[3]和Cheeseman在1986年在IEEE機(jī)器人技術(shù)和自動(dòng)化會(huì)議首次提出的。SLAM研究方法根據(jù)傳感器的不一樣,可以分為基于激光雷達(dá)的SLAM和基于計(jì)算機(jī)視覺(jué)的SLAM。隨著視覺(jué)傳感器的廣泛使用和成本的降低,基于視覺(jué)的SLAM逐漸引起人們的注意,成為目前研究的一大熱點(diǎn),依據(jù)實(shí)際使用的攝像頭不同類型可以分為單目、雙目、RGB-D的SLAM等。
經(jīng)典的SLAM框架包括:前端視覺(jué)里程計(jì)、后端優(yōu)化、建圖、回環(huán)檢測(cè)等4個(gè)主要部分。
SLAM前端又稱為視覺(jué)里程計(jì)(VO,visual odometry),主要分為基于圖像特征變化的特征點(diǎn)法和基于圖像灰度的直接法兩類。前者基于特征點(diǎn),通過(guò)最小化兩幀圖像之間的重投影誤差(bundle adjustment),后者是根據(jù)像素的亮度信息估計(jì)運(yùn)動(dòng)位姿,不需要計(jì)算描述子和關(guān)鍵點(diǎn),在灰度假設(shè)不變的條件下,通過(guò)最小化光度誤差來(lái)求解機(jī)器人的運(yùn)動(dòng)位姿。
在后端優(yōu)化的部分,由于SLAM的運(yùn)動(dòng)方程和觀測(cè)方程都是非線性函數(shù),因而我們主要是采取了非線性優(yōu)化的方法來(lái)優(yōu)化誤差函數(shù),大致可以分為以只考慮k時(shí)刻的狀態(tài)和k-1時(shí)刻狀態(tài)的具有一階馬爾可夫性的擴(kuò)展卡爾曼濾波[4-5]的方法和考慮k時(shí)刻與之前所有狀態(tài)的非線性優(yōu)化的方法。
早期的SLAM最開(kāi)始的應(yīng)用載體是一些地面移動(dòng)機(jī)器人,利用卡爾曼濾波或者粒子濾波去融合輪式里程計(jì)和傳感器的信息。比較早的將SLAM技術(shù)用到無(wú)人機(jī)上是在2003年由Aouof[6]等人,他們將相機(jī)固定在飛機(jī)朝下,控制輸入信息傳遞到飛行器而不再是里程計(jì)。2006年Angeli和Filliat[7]等采用2D的純視覺(jué)SLAM應(yīng)用在飛艇和無(wú)人機(jī)上面。在視覺(jué)處理方面,他們關(guān)聯(lián)了Harries角點(diǎn)檢測(cè)器和SIFT描述子,同時(shí)為了提高地圖的精度,將徑向的畸變系數(shù)也作為了卡爾曼濾波器的參數(shù),實(shí)驗(yàn)結(jié)果表明該2D-SLAM系統(tǒng)可以提供穩(wěn)定的位姿估計(jì)。2014年由Forster等人提出的著名的SVO算法[8]應(yīng)運(yùn)而生,該SLAM算法專門以無(wú)人機(jī)的俯視相機(jī)為目標(biāo)應(yīng)用平臺(tái),舍棄了對(duì)于特征點(diǎn)描述子的計(jì)算,并且在關(guān)鍵點(diǎn)周圍4*4的區(qū)域內(nèi)進(jìn)行塊匹配,因而速度極快且在無(wú)人機(jī)平臺(tái)上實(shí)驗(yàn)效果顯著。
無(wú)人機(jī)的SLAM相關(guān)工作已經(jīng)有很多,除了上述研究成果外,吳顯亮等[9]、王希彬[10]和趙良玉[11]從不同角度對(duì)SLAM技術(shù)進(jìn)行相關(guān)總結(jié)。基于上述研究成果,本文從SLAM的基本結(jié)構(gòu)展開(kāi),討論了SLAM的基本框架、相關(guān)算法以及SLAM領(lǐng)域最新的研究進(jìn)展,并對(duì)未來(lái)SLAM技術(shù)的發(fā)展進(jìn)行了展望。
視覺(jué)的特征是由關(guān)鍵點(diǎn)(Detectors)和描述子(Descriptor)兩部分組成的。被檢測(cè)的對(duì)象一般有點(diǎn)特征,直線特征以及邊緣,輪廓特征等。關(guān)鍵點(diǎn)常常是物體邊界方向突然改變的點(diǎn)或兩個(gè)或多個(gè)邊緣段之間的交點(diǎn)。當(dāng)圖像局部或者全局存在亮度和光照變化的時(shí)候,關(guān)鍵點(diǎn)仍然穩(wěn)定,在SLAM中應(yīng)用較多,故在SLAM的特征提取幾乎提取的都是特征點(diǎn)(Keypoint)。經(jīng)典關(guān)鍵點(diǎn)檢測(cè)器有:Harris角點(diǎn)檢測(cè)器(HARRIS,harris corner detector,) 、SIFT角點(diǎn)檢測(cè)器(SIFT,scale invariant transform)、SURF角點(diǎn)檢測(cè)器(SURF,speed-up robust features)等。現(xiàn)代關(guān)鍵點(diǎn)檢測(cè)器有:FAST角點(diǎn)檢測(cè)(FAST,features from accelerated segment test)、ORB角點(diǎn)檢測(cè)器[12]( ORB,oriented FAST and rotated BRIEF)等。目前效果比較好的特征點(diǎn)是ORB特征點(diǎn),ORB是在FAST關(guān)鍵點(diǎn)的檢測(cè)速度快的基礎(chǔ)之上添加了尺度和旋轉(zhuǎn)的特征,可以稱為“Oriented FAST”——改進(jìn)的FAST角點(diǎn),其快速性可以滿足SLAM實(shí)時(shí)的要求。其尺度性是在構(gòu)建的金字塔的每一層去檢測(cè)角點(diǎn),而旋轉(zhuǎn)不變性是通過(guò)灰度質(zhì)心法去實(shí)現(xiàn)(Intensity Centroid)的。
在圖像中對(duì)于尋找到關(guān)鍵點(diǎn)之后,我們需要一種方法將不同的圖像關(guān)鍵點(diǎn)加以對(duì)比,尋找到其中相似的關(guān)鍵點(diǎn)。描述子作為一種描述關(guān)鍵點(diǎn)周圍的環(huán)境信息被人為設(shè)計(jì)出來(lái)。目前廣泛被應(yīng)用的描述子有基于梯度HOG描述子[13]和二進(jìn)制BRISK描述子[14]。HOG的基本思想是通過(guò)物體在局部圖像鄰域中的強(qiáng)度梯度分布來(lái)描述物體的結(jié)構(gòu),計(jì)算代價(jià)昂貴。實(shí)際工程中,我們采用計(jì)算代價(jià)相對(duì)較少的二進(jìn)制描述子,其核心思想是僅僅依賴強(qiáng)度信息(即圖像本身) ,并將關(guān)鍵點(diǎn)周圍的信息編碼為一串二進(jìn)制數(shù)字。有了關(guān)鍵點(diǎn)周圍的描述子,我們便可以得到我們提取關(guān)鍵點(diǎn)周圍的環(huán)境信息。
得到了帶有描述子的關(guān)鍵點(diǎn),接下來(lái)便可以在不同的圖像之中進(jìn)行特征匹配。計(jì)算關(guān)鍵點(diǎn)描述子的漢明距離(hamming distance),來(lái)表征描述子的相似程度。當(dāng)檢測(cè)到特征點(diǎn)數(shù)量非常大時(shí),快速近似最近鄰(FLANN)算法[15]能夠滿足SLAM 的實(shí)時(shí)性需求。
在SLAM領(lǐng)域,特征點(diǎn)法是比較流行的方法,但提取特征點(diǎn)存在著耗時(shí)長(zhǎng)、圖像信息丟失嚴(yán)重等缺陷。針對(duì)在無(wú)人機(jī)的應(yīng)用領(lǐng)域,一種與特征法相對(duì)應(yīng)的直接法也漸漸地受到了人們地重視。直接法基于灰度不變假設(shè),即認(rèn)為同一個(gè)關(guān)鍵點(diǎn)在兩幅圖片之中,其灰度值應(yīng)該是不會(huì)變化的。在直接法中,我們可以選擇不計(jì)算關(guān)鍵點(diǎn)周圍的描述子而得到其他圖像中的配對(duì)點(diǎn)(半直接法),通過(guò)光流[11]來(lái)跟蹤關(guān)鍵點(diǎn)的運(yùn)動(dòng),從而估計(jì)相機(jī)的運(yùn)動(dòng);或者既不計(jì)算關(guān)鍵點(diǎn)也不計(jì)算描述子(直接法),而是選擇一些有明顯梯度變化的像素(半稠密直接法),或者干脆選擇所有的像素點(diǎn)(稠密直接法)參與計(jì)算,之后根據(jù)最小化光度誤差可以求解位姿。直接法對(duì)于場(chǎng)景的特征信息沒(méi)有要求,只需要場(chǎng)景中存在明暗的變化情況即可。
不管是特征法,還是直接法里面的光流追蹤,我們都可以得到在相鄰圖片中已經(jīng)匹配好的特征點(diǎn)。如何由這相鄰的兩幅圖片求解出相機(jī)的位姿變換是SLAM前端里程計(jì)的核心問(wèn)題。根據(jù)匹配點(diǎn)的維數(shù)可以劃分為:2D—2D、2D—3D、3D—3D三大類問(wèn)題。在SLAM里面,3D點(diǎn)的深度信息可以由RGB-D相機(jī)給出,或者在單目相機(jī)中,可以通過(guò)三角化去恢復(fù)2D點(diǎn)的深度信息。2D-2D可以通過(guò)經(jīng)典的八點(diǎn)法去求解本質(zhì)矩陣E[16],恢復(fù)出旋轉(zhuǎn)信息和平移信息。2D—3D是在SLAM最常見(jiàn)的一種匹配方式,它是在知道關(guān)鍵點(diǎn)的3D空間位置與其在圖像上對(duì)應(yīng)的2D點(diǎn)的像素坐標(biāo)的前提下,去求解此時(shí)的相機(jī)位姿,這便是一個(gè)PnP問(wèn)題。在SLAM中,我們可以利用3對(duì)2D—3D的匹配點(diǎn)信息,恢復(fù)出此時(shí)的相機(jī)位姿。大致的做法,分為兩類,一種是線性化幾何約束的解法,包括EPnP等算法,另一種是基于計(jì)算機(jī)視覺(jué)的非線性的解法,將其轉(zhuǎn)化為一個(gè)BA(bundle adjustment)問(wèn)題。為了保障求解的精度,SLAM主要采取的做法是構(gòu)建最小二乘方法,用ξ表示相機(jī)的位姿,Pi表示第i個(gè)點(diǎn)對(duì)應(yīng)的空間3D坐標(biāo),ui是第i個(gè)點(diǎn)對(duì)應(yīng)的像素2D坐標(biāo):
(1)
通過(guò)不斷調(diào)整相機(jī)的位姿ξ去使3D點(diǎn)重投影到圖片上的2D點(diǎn)f(Pi)與圖片上該對(duì)應(yīng)關(guān)鍵點(diǎn)所在的2D點(diǎn)ui的誤差函數(shù)的二范數(shù)最小,來(lái)達(dá)到優(yōu)化的目的。
前端的視覺(jué)里程計(jì)僅僅可以給出短時(shí)間內(nèi)的軌跡和地圖,隨著時(shí)間的累積,無(wú)人機(jī)的位姿不確定性會(huì)越來(lái)越大,無(wú)法在實(shí)際中進(jìn)行應(yīng)用。因而,后端的優(yōu)化部分就是為了解決在較長(zhǎng)時(shí)間,數(shù)據(jù)量很大的情況下去求解最優(yōu)的軌跡和地圖。按照優(yōu)化的思想大致可以分為基于濾波的方法和基于優(yōu)化的方法。
1.3.1 基于濾波的后端
2007年帝國(guó)理工學(xué)院的A.J.Davison提出了世界上第一個(gè)可以實(shí)時(shí)應(yīng)用的SLAM系統(tǒng)——Mono-SLAM[17],這是第一個(gè)基于EKF方法的實(shí)時(shí)的單目SLAM系統(tǒng),雖然初步解決了實(shí)時(shí)的問(wèn)題,能夠在線創(chuàng)建稀疏的地圖,但是因?yàn)榇嬖谳^大的漂移量,效果不是特別好。Montemerlo[18-19]則分別研究了基于粒子濾波器(PF,particle filter)的FastSLAM的方法。在FastSLAM包含了機(jī)器人定位和特征標(biāo)志位置的兩個(gè)過(guò)程。粒子濾波器中可能的運(yùn)動(dòng)路徑用粒子表示,1個(gè)粒子對(duì)應(yīng)著1種可能,每條路徑的好壞是由觀測(cè)信息計(jì)算得到的粒子權(quán)重進(jìn)行評(píng)價(jià)。在路標(biāo)的估計(jì)當(dāng)中,F(xiàn)astSLAM則采用了傳統(tǒng)的EKF進(jìn)行估計(jì)。Mourikis提出了一種融合IMU和視覺(jué)信息的濾波算法——MSCKF(multi-state constraint Kalman filter)[20],該算法不同于EKF將特征點(diǎn)加入狀態(tài)變量,而是將不同時(shí)刻的相機(jī)位置p和姿態(tài)(四元數(shù)q表示)加入狀態(tài)變量進(jìn)行優(yōu)化更新。由于狀態(tài)變量的維度大幅度的降低,且加入了IMU信息,因而MSCKF可以適用于更劇烈的運(yùn)動(dòng),且魯棒性也有了顯著性的提高。
1.3.2 基于優(yōu)化的后端
2007年,同步追蹤和建圖算法[21](PTAM,parall tracking and mapping)這一非線性優(yōu)化的SLAM首次成功應(yīng)用。該算法由英國(guó)牛津大學(xué)的G.Klein和D.Murry提出并開(kāi)源。PTAM的特點(diǎn)如下:
1)PTAM首次引入了SLAM當(dāng)中的前后端的概念,提出了跟蹤部分是需要實(shí)時(shí)的響應(yīng)數(shù)據(jù),而對(duì)于地圖優(yōu)化的部分則沒(méi)有必要進(jìn)行實(shí)時(shí)的計(jì)算。
2)PTAM引入了關(guān)鍵幀的機(jī)制,減少了需要優(yōu)化的圖像數(shù)量,確保了算法的實(shí)時(shí)性。
3)PTAM是第一個(gè)采用BA非線性優(yōu)化作為后端優(yōu)化的方案,在PTAM提出之后SLAM逐漸轉(zhuǎn)向了非線性優(yōu)化為主導(dǎo)的后端。在PTAM提出之后,后端部分優(yōu)化成為了主流的方法。
此后,研究者們逐漸注意到BA 問(wèn)題系數(shù)矩陣具有一定的稀疏性(即Jacobian 矩陣中只有當(dāng)前待優(yōu)化變量的對(duì)應(yīng)位置處為非零項(xiàng),其余位置均為零),進(jìn)而可基于Schur 消元將無(wú)關(guān)變量邊緣化,實(shí)現(xiàn)BA 中線程方程組的稀疏求解[22]。稀疏化處理雖然可以緩解非線性優(yōu)化的計(jì)算負(fù)擔(dān),但計(jì)算規(guī)模依然會(huì)隨著時(shí)間而累積。OKVIS[23]它是由蘇黎世聯(lián)邦理工大學(xué)S.Leutenegge 等人提出的基于雙目+慣導(dǎo)的視覺(jué)里程計(jì),是一種基于滑動(dòng)窗口的非線性優(yōu)化緊耦合算法。該算法采用滑動(dòng)窗口方法約束優(yōu)化的方法滿足系統(tǒng)的實(shí)時(shí)性要求,但它沒(méi)有重定位和閉環(huán)檢測(cè)等環(huán)節(jié),而且CPU的占有率較高。Vins-mono[24]是香港科技大學(xué)沈劭劼老師開(kāi)源的單目視覺(jué)慣導(dǎo) SLAM 方案,其推薦的平臺(tái)是微小型旋翼無(wú)人機(jī)。該算法也是融合了慣導(dǎo)的單目視覺(jué)系統(tǒng),是目前很出名的無(wú)人機(jī)SLAM算法。該算法采用光流法進(jìn)行特征點(diǎn)的追蹤,IMU以更快的速率進(jìn)行預(yù)積分[25](IMU pre-intergration),把關(guān)鍵幀之間的IMU測(cè)量值積分成相對(duì)運(yùn)動(dòng)的約束,兩者的數(shù)據(jù)進(jìn)行了視覺(jué)慣性聯(lián)合初始化,后端是基于滑動(dòng)窗口的重投影誤差和IMU殘差非線性優(yōu)化和基于詞袋模型的回環(huán)檢測(cè)。
非線性優(yōu)化因?yàn)閿?shù)據(jù)量的巨大,以至于學(xué)者們認(rèn)為該方法在本世紀(jì)初都無(wú)法實(shí)現(xiàn)機(jī)器人的實(shí)時(shí)SLAM,所以減少計(jì)算量就顯得尤為重要。無(wú)人機(jī)的視覺(jué)導(dǎo)航,若我們僅僅關(guān)注無(wú)人機(jī)的定位問(wèn)題,那么在后端的優(yōu)化部分進(jìn)行路標(biāo)點(diǎn)的優(yōu)化便會(huì)耗費(fèi)大量的計(jì)算資源。有論文指出,在BA問(wèn)題中放棄對(duì)于路標(biāo)點(diǎn)的優(yōu)化,而僅僅關(guān)心相機(jī)位姿之間的關(guān)聯(lián),構(gòu)建位姿圖(PG,pose graph)便可以大幅度降低優(yōu)化的規(guī)模[26]。另一種基于概率圖模型的因子圖優(yōu)化(FGO,factor graph optimization)算法也在降低非線性優(yōu)化計(jì)算量也引起了學(xué)者的重視。因子圖是一種求解最大后驗(yàn)概率的概率圖模型[27],這種方法在2008年首次應(yīng)用在SLAM中位姿圖的求解,該團(tuán)隊(duì)研究和開(kāi)發(fā)了因子圖優(yōu)化算法iSAM2[28],并發(fā)表了因子圖算法庫(kù)gtsam[29]。因子圖優(yōu)化的最大優(yōu)勢(shì)在于增量特性:在新的變量因子加入圖模型前,先篩選出與其關(guān)聯(lián)的因子;隨后,只對(duì)受新變量因子影響的關(guān)聯(lián)因子進(jìn)行更新,而保持其余因子不變,如圖4所示。按照這樣的處理思想,我們不必再每次新增加節(jié)點(diǎn)的時(shí)候,對(duì)于整個(gè)圖都進(jìn)行優(yōu)化,節(jié)省了大量的計(jì)算成本。
圖3 因子圖增量特性
圖4 軌跡圖
往往,完整的VSLAM還包括全局優(yōu)化部分。后端優(yōu)化能夠有效地保證估計(jì)精度,而對(duì)于長(zhǎng)時(shí)間運(yùn)行的情況下,系統(tǒng)累積的漂移誤差便會(huì)成為問(wèn)題,因而后端屬于局部?jī)?yōu)化。閉環(huán)檢測(cè)的模塊主要是對(duì)于整個(gè)模塊的位姿圖執(zhí)行優(yōu)化來(lái)消除漂移誤差,如圖1所示,這樣便可以在檢測(cè)到回環(huán)的時(shí)候校正位姿,消除SLAM的累計(jì)誤差,使我們得到全局一致的軌跡和地圖。閉環(huán)檢測(cè)一般可以按以下4步進(jìn)行:
圖1 SLAM的基本框架
1)檢測(cè)回環(huán)發(fā)生;
2)計(jì)算回環(huán)和當(dāng)前幀的運(yùn)動(dòng),理論上T=I(單位陣);
3)驗(yàn)證閉環(huán)成立;
4)閉環(huán)。
全局優(yōu)化中的回環(huán)檢測(cè)很像是一個(gè)分類的問(wèn)題,因而機(jī)器學(xué)習(xí)在這一部分大有作用。回環(huán)檢測(cè)的類型數(shù)量很大,但是每一類的樣本卻很少。因而,回環(huán)檢測(cè)相當(dāng)于是一個(gè)對(duì)“圖像相似性”的學(xué)習(xí),即對(duì)場(chǎng)景的識(shí)別和理解?;丨h(huán)檢測(cè)本身很像是一個(gè)非監(jiān)督的機(jī)器學(xué)習(xí),我們即可以利用詞袋去檢測(cè)回環(huán)發(fā)生,也可以用深度學(xué)習(xí)的方式去檢測(cè)回環(huán)[34]。
建圖(mapping)作為SLAM的主要目標(biāo)之一,對(duì)于無(wú)人機(jī)的導(dǎo)航定位、避障重建及人機(jī)交互等具有重要的意義。常見(jiàn)的地圖可以分為:拓?fù)涞貓D、柵格地圖、路標(biāo)地圖、點(diǎn)云地圖和認(rèn)知地圖。
拓?fù)涞貓D使用關(guān)鍵幀作為地圖的節(jié)點(diǎn),關(guān)鍵幀之間共同的數(shù)據(jù)關(guān)聯(lián)作為地圖的邊,該地圖可以用作路徑規(guī)劃。柵格地圖是將三維空間劃分為獨(dú)立的,均勻的立方體,每個(gè)立方塊代表真實(shí)環(huán)境中的一個(gè)三維空間區(qū)域。立方塊的值表示障礙物的概率。柵格地圖可以用于導(dǎo)航,路徑規(guī)劃等應(yīng)用,并且易于統(tǒng)合其他傳感器的信息,但是隨著時(shí)間的累計(jì)需要的存儲(chǔ)空間也在增加。路標(biāo)地圖也稱為稀疏點(diǎn)云地圖,其可以滿足SLAM的定位需求, ORBSLAM2[30]所創(chuàng)建的便是這種稀疏地圖。點(diǎn)云地圖是一種稠密的地圖,實(shí)際上是環(huán)境中所有物體的3D點(diǎn)的集合。在稠密地圖中,除了特征點(diǎn)的其他3D點(diǎn)可以通過(guò)極線搜索和塊匹配技術(shù)恢復(fù)出它的深度信息。點(diǎn)云地圖需要較大的存儲(chǔ)空間去存儲(chǔ)所有的點(diǎn)云信息,可以用于無(wú)人機(jī)的導(dǎo)航,定位避障和三維重建等任務(wù)。認(rèn)知地圖將語(yǔ)義的概念和地圖中的元素聯(lián)系了起來(lái),使移動(dòng)機(jī)器人可以在語(yǔ)義地圖中更加智能的完成任務(wù),執(zhí)行更加復(fù)雜的行動(dòng)。
圖5 稀疏點(diǎn)云地圖
圖6 前端處理概述圖
圖7 后端優(yōu)化概述圖
已面世的SLAM 方案雖多達(dá)上百種,世界上研究SLAM的研究者也越來(lái)越多。表1給出了目前主流和具有代表性的SLAM 框架,表2給出了世界上著名的研究機(jī)構(gòu)和其方向。
表1 SLAM開(kāi)源框架的基本特點(diǎn)歸納
表2 SLAM世界著名研究機(jī)構(gòu)
相比于單無(wú)人機(jī)的SLAM建圖與定位,多無(wú)人機(jī)協(xié)同建圖定位漸漸也成為了研究者關(guān)注的焦點(diǎn)問(wèn)題。多無(wú)人機(jī)協(xié)同SLAM(C-SLAM, cooperative visual simultaneous localization and mapping)可以提高定位精度并不斷與隊(duì)友共享信息,加速地圖的創(chuàng)建速度,擴(kuò)大建圖的范圍。傳統(tǒng)的CSLAM是各個(gè)無(wú)人機(jī)將信息傳遞給中央的卡爾曼濾波器,但是這樣的SLAM結(jié)構(gòu)將會(huì)對(duì)噪聲信息非常的敏感,影響定位和建圖的精度。Nemra提出一種非線性H∞的濾波方法[31],不對(duì)噪聲信號(hào)統(tǒng)計(jì)并且將線性化的結(jié)果降至最低。通過(guò)作者給出的仿真實(shí)驗(yàn)表明,C-SLAM的xyz3軸位置計(jì)算精度要比一架無(wú)人機(jī)的精度高。Trujillo[32]為每一個(gè)UAV提供了單目相機(jī),測(cè)量每一個(gè)無(wú)人機(jī)之間的相對(duì)距離來(lái)測(cè)量更新EKF以提高系統(tǒng)的精度,并且多無(wú)人機(jī)協(xié)作的系統(tǒng)可觀測(cè)性優(yōu)于單個(gè)無(wú)人機(jī)系統(tǒng)的可觀測(cè)性,減少了地標(biāo)的不確定性。
3.2.1 深度學(xué)習(xí)技術(shù)
隨著深度學(xué)習(xí)的不斷發(fā)展,目前SLAM存在的很多缺陷是可以通過(guò)深度學(xué)習(xí)去解決的。目前已經(jīng)發(fā)表兩者結(jié)合的文章包括,深度學(xué)習(xí)的算法可以用于幀間的估計(jì),SLAM的閉環(huán)檢測(cè)環(huán)節(jié);在建圖方面,結(jié)合深度學(xué)習(xí)可以將圖像和語(yǔ)義進(jìn)行關(guān)聯(lián),構(gòu)建環(huán)境的語(yǔ)義知識(shí)庫(kù),供無(wú)人機(jī)進(jìn)行高級(jí)智能任務(wù)的決策等。DeepVO[33]中,位姿估計(jì)去結(jié)合有監(jiān)督的學(xué)習(xí),能夠通過(guò)深度遞歸神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)(RNN) 隱式地學(xué)習(xí)圖像間的動(dòng)力學(xué)關(guān)系及內(nèi)在聯(lián)系。在特征提取方面,相鄰兩幀圖像在通道上進(jìn)行組合,堆疊成六通道的圖像,然后通過(guò)多層CNN 網(wǎng)絡(luò)對(duì)圖像進(jìn)行提取,將提取的特征輸入到RNN 網(wǎng)絡(luò)中,再輸出位姿。DeepVO舍棄了前端點(diǎn)的跟蹤,后端優(yōu)化等一系列的過(guò)程,提出了端到端的SLAM,節(jié)省了計(jì)算的時(shí)間。清華大學(xué)高翔[34]提出基于無(wú)監(jiān)督學(xué)習(xí)的SDA ( stacked denoising auto-encoder)自動(dòng)編碼器去進(jìn)行回環(huán)檢測(cè),仿真結(jié)果顯示該方法比傳統(tǒng)基于詞袋模型的回環(huán)檢測(cè)有著更強(qiáng)的魯棒性。
3.2.2 語(yǔ)義SLAM
語(yǔ)義建圖時(shí)當(dāng)下比較熱門的研究方向,高智能的無(wú)人機(jī)在未來(lái)執(zhí)行復(fù)雜任務(wù)的時(shí)候,對(duì)于自己所處的環(huán)境信息要有一定的理解。語(yǔ)義地圖,這一既包含空間的路標(biāo)信息又包含環(huán)境語(yǔ)義信息的地圖漸漸引起來(lái)研究者的注意[35]。Davison[36]提出使用卷積神經(jīng)網(wǎng)絡(luò)(CNNs)結(jié)合SLAM系統(tǒng)(ElasticFusion)。經(jīng)驗(yàn)證,該算法在25Hz的RGB-D視頻長(zhǎng)時(shí)間之內(nèi)可以接收2D圖像并且返回每個(gè)像素的分類概率分布,然后遞增的貝葉斯更新模型將跟蹤每個(gè)曲面的分類概率分布,然后使用SLAM系統(tǒng)提供的數(shù)據(jù)關(guān)聯(lián)來(lái)基于CNN的預(yù)測(cè)更新這些概率,最終進(jìn)行語(yǔ)義建圖。對(duì)比單幀CNN 語(yǔ)義的準(zhǔn)確率,該算法融合了額外的觀測(cè)點(diǎn)來(lái)對(duì)于單幀的檢測(cè)率進(jìn)行了改進(jìn)和提高,性能從43.6%提升到48.3%。東南大學(xué)[37]在以LSD-SLAM為基礎(chǔ)與CNNs進(jìn)行了融合,對(duì)于關(guān)鍵幀進(jìn)行了語(yǔ)義分割,從二維圖進(jìn)行語(yǔ)義提取然后映射成三維的語(yǔ)義信息。該方案對(duì)于周圍的環(huán)境沒(méi)有要求,且計(jì)算量也顯著降低。清華大學(xué)在ORBSLAM的基礎(chǔ)之上提出DS-SLAM[38],加入了語(yǔ)義分割的部分,語(yǔ)義分割采用SegNet, 通過(guò)光流法估算圖片的特征點(diǎn)的位置,通過(guò)極線的距離去判斷該物體是否是運(yùn)動(dòng)的物體,并對(duì)動(dòng)態(tài)的物體進(jìn)行分割。
無(wú)人機(jī)在單一傳感器的條件下導(dǎo)航容易受噪聲的影響,效果可能不太理想。VLSAM主要依靠環(huán)境的紋理信息,IMU會(huì)隨著時(shí)間的累計(jì)誤差逐漸增大,GPS的使用則局限于室外開(kāi)闊的條件。若單一使用傳感器則無(wú)人機(jī)的導(dǎo)航實(shí)用性不高,實(shí)際應(yīng)用中經(jīng)常是將二者甚至是三者結(jié)合起來(lái)使用,導(dǎo)航的精度會(huì)得到顯著的提高。
目前的視覺(jué)慣性里程計(jì)(VIO)是在無(wú)人機(jī)是應(yīng)用最多的導(dǎo)航設(shè)備之一,在前面的部分已經(jīng)略有涉及,IMU提高的角速度和加速度在短期內(nèi)的精度很高,但是長(zhǎng)期使用可能會(huì)發(fā)散。SLAM則對(duì)于純旋轉(zhuǎn)或者無(wú)紋理的環(huán)境會(huì)跟丟,但是兩者的結(jié)合優(yōu)勢(shì)互補(bǔ),效果顯著。ROVIO[39]是Bloesch提出的一種將視覺(jué)和IMU進(jìn)行融合的視覺(jué)慣性里程計(jì),該算法將光度誤差放入到迭代卡爾曼濾波進(jìn)行更新。目前VIO的主要融合框架分為松耦合和緊耦合。松耦合是指IMU和SLAM給出各自的信息,通過(guò)一些融合算法,比如EKF,UKF等進(jìn)行兩者的信息融合。相比于松耦合,緊耦合是指IMU狀態(tài)變量和相機(jī)的狀態(tài)放入一個(gè)誤差方程進(jìn)行優(yōu)化。通常情況下,緊耦合具有更好的定位效果。
本文從視覺(jué)SLAM的基本框架開(kāi)始談起,第一部分介紹了前端提取、數(shù)據(jù)關(guān)聯(lián)、后端優(yōu)化、建圖等4個(gè)部分的基礎(chǔ)知識(shí)。第二部分介紹了國(guó)內(nèi)外的著名實(shí)驗(yàn)室和經(jīng)典的SLAM方案。第三部分對(duì)用于UAV平臺(tái)的SLAM研究重點(diǎn)問(wèn)題進(jìn)行了系統(tǒng)的介紹,包括:多無(wú)人機(jī)協(xié)同的SLAM,深度學(xué)習(xí)應(yīng)用于SLAM和語(yǔ)義建圖,以及多傳感器融合的SLAM在無(wú)人機(jī)上面的應(yīng)用。
近年來(lái),多旋翼無(wú)人機(jī)在民用領(lǐng)域和非國(guó)防的領(lǐng)域發(fā)揮著越來(lái)越重要的作用,相機(jī)等傳感器成本價(jià)格的降低也在促進(jìn)這以視覺(jué)為首的SLAM建圖定位技術(shù)的發(fā)展。在未來(lái),無(wú)人機(jī)對(duì)于傳感器有著小型化和輕量化的需求,此外,動(dòng)態(tài)場(chǎng)景下的環(huán)境感知、目標(biāo)跟蹤、語(yǔ)義建圖和復(fù)雜環(huán)境下的避障和救援等都是未來(lái)的研究者需要優(yōu)化和解決的問(wèn)題。研究者還將致力于提高系統(tǒng)的魯棒性和計(jì)算能力才能滿足未來(lái)市場(chǎng)的需求,而這同樣對(duì)于無(wú)人機(jī)搭載的硬件提出了更先進(jìn)的要求。