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

評論