同步定位和地圖構(gòu)建(SLAM)是移動(dòng)機(jī)器人環(huán)境感知和導(dǎo)航過程中的重要任務(wù),一直是計(jì)算機(jī)視覺和機(jī)器人學(xué)領(lǐng)域中的研究熱點(diǎn)。隨著移動(dòng)機(jī)器人技術(shù)和視覺技術(shù)的發(fā)展和應(yīng)用,近年來涌現(xiàn)出了一大批優(yōu)秀的研究,各式各樣的SLAM系統(tǒng)先后被提出,主要包括單目、多目、多傳感器融合等基于不同傳感器類型的SLAM系統(tǒng)(深度相機(jī)、激光、立體視覺和融合慣性導(dǎo)航等方法),還包括基于不同原理的關(guān)鍵點(diǎn)法、(半)直接法、稀疏法稠密法等SLAM系統(tǒng)(可分為基于關(guān)鍵點(diǎn)法、直接法和半直接法)以及基于學(xué)習(xí)的SLAM系統(tǒng)。
SLAM可以為移動(dòng)機(jī)器人導(dǎo)航、室內(nèi)定位和室內(nèi)地圖的構(gòu)建提供強(qiáng)大的技術(shù)支撐,比如機(jī)器人、無人機(jī)(UAV),自動(dòng)駕駛汽車以及虛擬和增強(qiáng)現(xiàn)實(shí)。
雖然SLAM領(lǐng)域發(fā)展迅速,缺乏統(tǒng)一的結(jié)構(gòu)框架來整合SLAM的各個(gè)子系統(tǒng),大多數(shù)研究人員專注于他們自己的SLAM系統(tǒng)的理論和實(shí)現(xiàn),使得這一領(lǐng)域的代碼復(fù)用和工程實(shí)踐進(jìn)展較慢,很多研究人員依然受到了重復(fù)造輪子的困擾,這阻礙了SLAM技術(shù)迭代發(fā)展和工業(yè)化的實(shí)際應(yīng)用。 此外,對(duì)算法的基準(zhǔn)評(píng)估和魯棒性分析也是研究過程中的重要內(nèi)容,亟待研究人員們達(dá)成共識(shí)攜手前行。
為了整合這一領(lǐng)域的最新研究、構(gòu)建SLAM領(lǐng)域的通用化框架系統(tǒng),本文的作者們提出了一個(gè)名為GSLAM的新型SLAM平臺(tái),它不僅能提供算法評(píng)估功能,而且還能為研究人員提供許多有用的算法快速開發(fā)工具包。其核心貢獻(xiàn)在于提供了一個(gè)通用、跨平臺(tái)和完全開源(可用于研究和商業(yè)用途)的SLAM交互程序,旨在將數(shù)據(jù)集輸入、SLAM配置、可視化和應(yīng)用的交互在統(tǒng)一框架中實(shí)現(xiàn)。同時(shí),這一框架還友好地支持了ROS風(fēng)格使用機(jī)制,使得廣泛的機(jī)器人研究人員可以很容易的上手進(jìn)行操作。
GSLAM核心工作是提供了通用的SLAM界面和框架。為了在使用不同數(shù)據(jù)集、SLAM算法和應(yīng)用的時(shí)候獲得更好的體驗(yàn),界面設(shè)計(jì)輕量級(jí),用到的頭文件僅依賴于C ++ 11標(biāo)準(zhǔn)庫。通過這個(gè)平臺(tái),用戶可以通過插件的形式直接調(diào)用一些常用函數(shù),也可以創(chuàng)建自己定義的函數(shù)。此外,作者還提供了JavaScript和Python接口,來使用基于Web和基于深度學(xué)習(xí)的SLAM應(yīng)用程序 。軟件和界面主要處理三部分信息的交互:
a. 數(shù)據(jù)輸入,包含一些傳感器數(shù)據(jù)及其使用參數(shù);
b. SLAM算法實(shí)現(xiàn),基于事先定義好的通用類,研發(fā)人員可以快速調(diào)用,并修改定義自己的核心算法;
c. 可視化和結(jié)果應(yīng)用,默認(rèn)使用Qt可視化,用戶也可以配置其它框架,以標(biāo)準(zhǔn)格式輸出算法結(jié)果。
圖1 GSLAM的框架圖
其中,數(shù)據(jù)插件集成主流的VO、SLAM數(shù)據(jù)集,包括KITTI,TUM,EuRoC,NPUDrone,CVMono等數(shù)據(jù)集,同時(shí)你也可以構(gòu)建自己的數(shù)據(jù)集插件,將自己的數(shù)據(jù)集集成到這一框架中去。
其中,SLAM算法插件提供了SLAM領(lǐng)域流行的優(yōu)秀算法,包括DSO,ORBSLAM,SVO和TheiaSFM等,這些插件可以直接集成到自己的代碼中,研究人員也可以基于這些插件進(jìn)行進(jìn)一步研究或者貢獻(xiàn)自己的插件。此外Rviz也被集成到了這一框架中進(jìn)行可視化交互,讓用戶可以復(fù)用ros中的技能和知識(shí)。
由于平移、旋轉(zhuǎn)和相似性變換算法是SLAM中最為常用的基礎(chǔ)變換,這一框架也對(duì)這些變換進(jìn)行了高效的實(shí)現(xiàn),表1中的對(duì)比結(jié)果證明了,對(duì)于常用的SO(3)、SE(3)和SIM(3)變換方法,基于GSLAM平臺(tái)的運(yùn)行時(shí)間要比流行的Sophus, TooN 和Ceres更高效。
表1 GSLAM與三大流行的庫的運(yùn)行時(shí)間對(duì)比
作者在GSLAM平臺(tái)中實(shí)現(xiàn)了三個(gè)優(yōu)化模塊作為通用類,以方便研究人員調(diào)用實(shí)現(xiàn)自己的SLAM算法,包括估計(jì)器Estimator、優(yōu)化器Optimizer和字典Vocabulary。
估計(jì)器Estimator,旨在提供一系列的解析求解器,覆蓋通過抽樣一致性算法RANSAC得到的各類情況(如表2所示,包含了2D-2D、2D-3D、3D-3D多種情況),大部分的算法基于開源線性代數(shù)庫Eigen。
優(yōu)化器Optimizer,旨在提供流行的SLAM非線性優(yōu)化問題的統(tǒng)一接口,比如PnP、bundle adjustment和pose graph optimization,一般使用Ceres庫就能解決,當(dāng)然一些高效前沿的算法也提供到了,比如PBA和ICE-BA。
字典Vocabulary,旨在提供用于重定位的高效輕便多線程和SIMD優(yōu)化的詞袋模型,下表展示了GSLAM與其他BoW方法在載入、保存和訓(xùn)練上的效率對(duì)比。這一框架中實(shí)現(xiàn)的各類特征字典模型性能整體優(yōu)于現(xiàn)有詞袋模型的表現(xiàn)。
為了中和測(cè)定這一框架在SLAM領(lǐng)域的性能,研究人員針對(duì)四個(gè)方面在框架內(nèi)對(duì)算法進(jìn)行了性能評(píng)測(cè),下圖中展示了DSO、SVO和ORBSLAM算法運(yùn)行時(shí)每一幀的內(nèi)存使用、分配內(nèi)存數(shù)量、CPU使用和耗時(shí)等詳細(xì)信息。結(jié)果證明SVO占用了最少的內(nèi)存和CPU資源,耗時(shí)最短且很穩(wěn)定,這主要因?yàn)樗皇且粋€(gè)視覺里程計(jì),只需要維持一個(gè)很小的局部地圖,無需進(jìn)行全局的強(qiáng)計(jì)算操作。
DSO、SVO和ORBSLAM計(jì)算性能對(duì)比圖
此外還測(cè)試了三種算法的運(yùn)行軌跡與Groundtruth的對(duì)齊結(jié)果,SVO盡管運(yùn)行速度快但是漂移較嚴(yán)重,ORBSLAM在絕對(duì)位姿誤差A(yù)PE指標(biāo)上準(zhǔn)確率最好。其他指標(biāo)的結(jié)果可以在作者論文的supplementary材料中查閱,或在GSLAM中自行嘗試。
圖 DSO、SVO和ORBSLAM運(yùn)行軌跡對(duì)比圖
這個(gè)高度集成的SLAM框架已經(jīng)在Github上開源,并且配合了詳細(xì)的文檔供大家配合使用。統(tǒng)一的框架有利于研究人員更加專注自己的核心研究,將最先進(jìn)的算法集成模塊,并便于全世界的開發(fā)者一同貢獻(xiàn)自己的力量,促進(jìn)SLAM技術(shù)的快速發(fā)展。
正所謂:
眾人拾柴火焰高,前端后端共繁榮。
定位導(dǎo)航大發(fā)展,優(yōu)化回環(huán)樣樣強(qiáng)!
更多代碼請(qǐng)戳:https://github.com/zdzhaoyong/GSLAM
另外兩位主要研究人員的主頁如下,他們?cè)谌S視覺重建、機(jī)器人等方面有著深入的研究,值得學(xué)習(xí):
https://github.com/bushuhui
https://shibiaoxu.github.io/
-
傳感器
+關(guān)注
關(guān)注
2550文章
51035瀏覽量
753076 -
SLAM
+關(guān)注
關(guān)注
23文章
423瀏覽量
31821 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1208瀏覽量
24689
原文標(biāo)題:GSLAM:一套通用的SLAM框架與基準(zhǔn)
文章出處:【微信號(hào):thejiangmen,微信公眾號(hào):將門創(chuàng)投】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論