你了解牛氣沖天的SLAM技術嗎?
SLAM概述
SLAM:SimultaneousLocalizationandMapping,即時定位與地圖構建技術。它指的是:機器人從未知環(huán)境的未知地點出發(fā),在運動過程中通過重復觀測到的環(huán)境特征定位自身位置和姿態(tài),再根據(jù)自身位置構建周圍環(huán)境的增量式地圖,從而達到同時定位和地圖構建的目的。
SLAM技術的發(fā)展推動了定位(Localization)、跟蹤(Tracking)以及路徑規(guī)劃(PathPlanning)技術的發(fā)展,進而對無人機、無人駕駛、機器人等熱門研究領域產生重大影響。
我們來看看SLAM技術都在哪些領域發(fā)揮作用吧。
圖1SLAM應用領域
VR/AR方面:輔助增強視覺效果。SLAM技術能夠構建視覺效果更為真實的地圖,從而針對當前視角渲染虛擬物體的疊加效果,使之更真實沒有違和感。VR/AR代表性產品中微軟Hololens、谷歌ProjectTango以及MagicLeap都應用了SLAM作為視覺增強手段。
無人機領域及機器人定位導航領域:地圖建模。SLAM可以快速構建局部3D地圖,并與地理信息系統(tǒng)(GIS)、視覺對象識別技術相結合,可以輔助無人機識別路障并自動避障規(guī)劃路徑,還可以輔助機器人執(zhí)行路徑規(guī)劃、自主探索、導航等任務。曾經刷爆美國朋友圈的Hovercamera無人機,正是應用SLAM技術。國內的科沃斯、塔米掃地機通過用SLAM算法結合激光雷達或者攝像頭的方法,讓掃地機可以高效繪制室內地圖,智能分析和規(guī)劃掃地環(huán)境,從而成功讓自己步入了智能導航的陣列。
無人駕駛領域:視覺里程計。SLAM技術可以提供視覺里程計功能,并與GPS等其他定位方式相融合,從而滿足無人駕駛精準定位的需求。例如,應用了基于激光雷達技術LidarSlam的Google無人駕駛車以及牛津大學MobileRoboticsGroup11年改裝的無人駕駛汽車野貓(Wildcat)均已成功路測。
SLAM框架
自從上世紀80年代SLAM概念的提出到現(xiàn)在,SLAM技術已經走過了30多年的歷史。SLAM技術采用的硬件、算法也在“與時俱進”,SLAM技術框架逐漸豐富。在硬件方面,SLAM系統(tǒng)使用的傳感器從早期的聲吶,逐漸演變到后來的2D/3D激光雷達,再到單目、雙目攝像機,RGBD、ToF等深度攝像機,以及與慣性測量單元(IMU)等傳感器的融合。在軟件算法方面,也從開始的基于濾波器的方法,如擴展卡爾曼濾波器(EKF)、粒子濾波器(PF)等,向基于優(yōu)化的方法轉變。
SLAM系統(tǒng)一般分為五個模塊,系統(tǒng)框架如圖2所示,包括:
- 傳感器數(shù)據(jù):主要用于采集實際環(huán)境中的各類型原始數(shù)據(jù)。包括激光掃描數(shù)據(jù)、視頻圖像數(shù)據(jù)、點云數(shù)據(jù)等。
- 視覺里程計:主要用于不同時刻間移動目標相對位置的估算。包括特征匹配、直接配準等算法的應用。
- 后端:主要用于優(yōu)化視覺里程計帶來的累計誤差。包括濾波器、圖優(yōu)化等算法應用。
- 建圖:用于三維地圖構建。
- 回環(huán)檢測:主要用于空間累積誤差消除
圖2SLAM系統(tǒng)框架
其工作流程大致為:
傳感器讀取數(shù)據(jù)后,視覺里程計估計兩個時刻的相對運動(Ego-motion),后端處理視覺里程計估計結果的累積誤差,建圖則根據(jù)前端與后端得到的運動軌跡來建立三維地圖[1],回環(huán)檢測考慮了同一場景不同時刻的圖像,提供了空間上約束來消除累積誤差。
SLAM技術的發(fā)展
依據(jù)傳感器的特點不同,SLAM技術也分為激光和視覺兩個技術路線,其特點如圖4所示。
- 激光雷達傳感器
激光雷達利用激光在同一空間參考系下獲取物體表面每個采樣點的空間坐標,可得到一系列表達目標空間分布和目標表面特性的海量點的集合。由于激光雷達距離測量比較準確,誤差模型簡單,在強光直射以外的環(huán)境中運行穩(wěn)定,因此點云的處理也比較容易。同時,點云信息本身包含直接的幾何關系,使得機器人的路徑規(guī)劃和導航變得直觀。激光SLAM理論研究也相對成熟,落地產品更豐富。
- 視覺傳感器
早期的視覺SLAM基于濾波理論,其非線性的誤差模型和巨大的計算量成為了它實用落地的障礙。近年來,隨著具有稀疏性的非線性優(yōu)化理論(BundleAdjustment)以及相機技術、計算性能的進步,實時運行的視覺SLAM已經不再是夢想。
圖3SLAM兩大類傳感器
圖4SLAM兩大傳感器特點
1、激光雷達SLAM發(fā)展
基于激光雷達的SLAM(LidarSLAM)采用2D或3D激光雷達(也叫單線或多線激光雷達)。在室內機器人(如掃地機器人)上,一般使用2D激光雷達,在無人駕駛領域,一般使用3D激光雷達。
現(xiàn)任Udacity創(chuàng)始人CEO、前Google副總裁、谷歌無人車領導者SebastianThrun在他2005年的經典著作《ProbabilisticRobotics》一書中詳細闡述了利用2D激光雷達基于概率方法進行地圖構建和定位的理論基礎,并闡述了基于RBPF(Rao-blackwellizedparticlefilter)粒子濾波器的FastSLAM方法,成為后來2D激光雷達建圖的標準方法之一GMapping的基礎,該算法也被集成到機器人操作系統(tǒng)(RobotOperationSystem,ROS)中。2013年,對ROS中的幾種2DSLAM的算法HectorSLAM,KartoSLAM,CoreSLAM,LagoSLAM和GMapping做了比較評估[2]。2016年,Google開源其激光雷達SLAM算法庫Cartographer,它與GMapping相比,能夠有效處理閉環(huán),達到了較好的效果。
2、視覺SLAM發(fā)展
現(xiàn)在主流的視覺SLAM系統(tǒng)的特性主要體現(xiàn)在前端和后端,如圖5所示。
前端對應視覺里程計,主要用于數(shù)據(jù)關聯(lián),研究幀與幀之間變換關系,完成實時的位姿跟蹤,對輸入的圖像進行處理,計算姿態(tài)變化。由于與后端還存在反饋,因此也檢測并處理閉環(huán),當有慣性測量單元(IMU)信息時,還可以參與融合計算。
后端主要對前端的輸出結果進行優(yōu)化,利用濾波理論,如擴展卡爾曼濾波(EKF)、粒子濾波(PF)等優(yōu)化理論進行樹或圖的優(yōu)化,得到最優(yōu)的位姿估計和地圖。
圖5典型SLAM的前端和后端
2007年,第一個成功基于單目攝像頭的純視覺SLAM系統(tǒng)MonoSLAM[3]誕生。同年,Murray和Klein提出了實時SLAM系統(tǒng)PTAM(ParallelTrackingandMapping)[4],PTAM實現(xiàn)了架構創(chuàng)新,它將姿態(tài)跟蹤(Tracking)和建圖(Mapping)兩個線程分開并行進行,這在當時是一個創(chuàng)舉,第一次讓大家覺得對地圖的優(yōu)化可以整合到實時計算中。這種設計為后來的實時SLAM(如ORB-SLAM)所效仿,成為了現(xiàn)代SLAM系統(tǒng)的標配。
圖6PTAM系統(tǒng)與EKF-SLAM系統(tǒng)產生結果對比
2015年,Mur-Artal等提出了開源的單目ORB-SLAM[6],并于2016年拓展為支持雙目和RGBD傳感器的ORB-SLAM2[7],它是目前支持傳感器最全且性能最好的視覺SLAM系統(tǒng)之一,也是所有在KITTI數(shù)據(jù)集上提交結果的開源系統(tǒng)中排名最靠前的一個[8]。
如圖7所示,ORB-SLAM主要分為三個線程進行,即跟蹤(Tracking)、建圖(LocalMapping)和閉環(huán)檢測(LoopClosing)。跟蹤部分是主要是從圖像中提取ORB特征,根據(jù)上一幀進行姿態(tài)估計,或者進行通過全局重定位初始化位姿,然后跟蹤已經重建的局部地圖,優(yōu)化位姿,再根據(jù)一些規(guī)則確定新的關鍵幀。建圖部分主要完成局部地圖構建。包括對關鍵幀的插入,驗證最近生成的地圖點并進行篩選,然后生成新的地圖點,使用局部捆集調整(LocalBA),最后再對插入的關鍵幀進行篩選,去除多余的關鍵幀。閉環(huán)檢測部分主要分為兩個過程,分別是閉環(huán)探測和閉環(huán)校正。閉環(huán)檢測先使用二進制詞典匹配檢測(WOB)進行探測,然后通過Sim3算法計算相似變換。閉環(huán)校正,主要是閉環(huán)融合和EssentialGraph的圖優(yōu)化。由于ORB-SLAM系統(tǒng)是基于特征點的SLAM系統(tǒng),故其能夠實時計算出相機的軌線,并生成場景的稀疏三維重建結果。
圖7ORB-SLAM2的三線程結構
2016年,TUM機器視覺組的Engel等人又提出了DSO系統(tǒng)[9],該系統(tǒng)是一種新的基于直接法和稀疏法的視覺里程計,它將最小化光度誤差模型和模型參數(shù)聯(lián)合優(yōu)化方法相結合。為了滿足實時性,不對圖像進行光滑處理,而是對整個圖像均勻采樣(如圖8)。該系統(tǒng)在TUMmonoVO、EuRoCMAV和ICL-NUIM三個數(shù)據(jù)集上進行了測試,達到了很高的跟蹤精度和魯棒性。
圖8DSO系統(tǒng)
2017年,香港科技大學的沈紹劼老師課題組提出了融合慣性測量單元(IMU)和視覺信息的VINS系統(tǒng)[10],同時開源手機和Linux兩個版本的代碼,這是首個直接開源手機平臺代碼的視覺IMU融合SLAM系統(tǒng)。這個系統(tǒng)可以運行在iOS設備上,為手機端的增強現(xiàn)實應用提供精確的定位功能,同時該系統(tǒng)也在應用在了無人機控制上,并取得了較好的效果。
SLAM未來展望
SLAM前20年(1986-2004)可稱之為“古典年代”。古典年代時期,引入了SLAM概率論推導方法,包括基于擴展卡爾曼濾波、粒子濾波和最大似然估計;這里的第一個挑戰(zhàn)是效率和數(shù)據(jù)關聯(lián)的魯棒性問題。
接下來的年代,我們稱之為“算法分析”年代(2004-2015),在算法分析的年代,有許多SLAM基本特性的研究,包括可觀測性,收斂性和一致性。在這一時期,研究者們理解了稀疏特征在高效SLAM解決方案中的重要角色,開發(fā)了主要開源SLAM庫。
現(xiàn)在我們正進入SLAM的第三個時代,從魯棒性覺醒的時代,它具有以下特征:
1.魯棒性能:這一時期SLAM系統(tǒng)在任意環(huán)境總運行的失效率較低;系統(tǒng)具有失效保護機制且具有自動調整的功能可以根據(jù)應用場景自動選擇系統(tǒng)參數(shù);
2.高層次的理解力:SLAM系統(tǒng)已經除了基本的幾何重建還能夠在更高層次上理解環(huán)境信息(比如,語義、可供性、高層幾何意義、物理意義等);
3.資源敏感:SLAM系統(tǒng)可以進行裁剪以滿足現(xiàn)有傳感器和計算資源,也可以根據(jù)現(xiàn)有資源調整計算負載;
4.對任務驅動的判斷:SLAM系統(tǒng)可以自適應地表示地圖,其復雜度可以根據(jù)機器人執(zhí)行的任務而改變。
地理信息在視頻監(jiān)控中有著廣泛的應用,傳統(tǒng)的二維地理信息數(shù)據(jù)無法與平安城市監(jiān)控系統(tǒng)的業(yè)務數(shù)據(jù)進行有效的集成和關聯(lián),無法提供深層次數(shù)據(jù)服務,已經不能適應城市發(fā)展的需要與人民對優(yōu)質生活的要求。若將SLAM三維稠密地圖構建用于視頻監(jiān)控領域,可以更好地實現(xiàn)對監(jiān)控攝像頭的搜索定位和視頻決策與分析。在三維地圖內模擬云臺操作也可直接查看三維內效果和視頻效果,這便于在三維地圖內進行可視調整,調試出最佳監(jiān)控點位,便于攝像頭的安裝及后期維護。
參考文獻:
[1]S?renRiisgaardandMortenRufusBlas:SLAMforDummies,ATutorialApproachtoSimultaneousLocalizationandMapping
[2]JoaoMachadoSantos,DavidPortugalandRuiP.Rocha.AnEvaluationof2DSLAMTechniquesAvailableinRobotOperatingSystem
[3]AJDavison,IDReid,NDMolton.MonoSLAM:Real-timesinglecameraSLAM.IEEETransactionsonPatternAnalysisandMachineIntelligence,June2007
[4]KleinG,MurrayD.ParalleltrackingandmappingforsmallARworkspaces.ProceedingsofIEEEandACMInternationalSymposiumonMixedandAugmentedReality.2007
[5]KleinG,MurrayD.Paralleltrackingandmappingonacameraphone.ProceedingsofIEEEandACMInternationalSymposiumonMixedandAugmentedReality.2009
[6]Mur-ArtalR,MontielJMM,TardosJD.ORB-SLAM:aversatileandaccuratemonocularSLAMsystem.IEEETransactionsonRobotics,2015,31(5):1147-1163
[7]RaúlMur-Artal,andJuanD.Tardós.ORB-SLAM2:anOpen-SourceSLAMSystemforMonocular,StereoandRGB-DCameras.ArXivpreprintarXiv:1610.06475,2016
[8]http://www.cvlibs.net/datasets/kitti/eval_odometry.php
[9]JakobEngelandVladlenKoltunandDanielCremers.DirectSparseOdometry.IEEETRANSACTIONSONPATTERNANALYSISANDMACHINEINTELLIGENCE.2017
[10]PeiliangLi,TongQin,BotaoHu,FengyuanZhuandShaojieShen.MonocularVisual-InertialStateEstimationforMobileAugmentedReality.ISMAR2017
【本文為51CTO專欄作者“中國保密協(xié)會科學技術分會”原創(chuàng)稿件,轉載請聯(lián)系原作者】