SLAM優秀開源工程最全彙總

AIRX全新技術專欄 -- [SLAM]

整理了AIRX團隊平時學習SLAM的一些開源工程、書籍、論文項目等。

1、Cartographer

Cartographer是一個系統,可跨多個平臺和傳感器配置以2D和3D形式提供實時同時定位和製圖(SLAM)。

https://github.com/cartographer-project/cartographer

2、Openvslam

 

一個通用的視覺SLAM框架。OpenVSLAM是單眼,立體聲和RGBD視覺SLAM系統。值得注意的功能是:

  • 它與各種類型的相機型號兼容,並且可以輕鬆地針對其他相機型號進行定製。

  • 可以存儲和加載創建的地圖,然後OpenVSLAM可以基於預構建的地圖本地化新圖像。

  • 該系統是完全模塊化的。它是通過使用易於理解的API將幾個功能封裝在單獨的組件中而設計的。

OpenVSLAM基於具有稀疏功能的間接SLAM算法,例如ORB-SLAM,ProSLAM和UcoSLAM。OpenVSLAM值得注意的功能之一是該系統可以處理各種類型的攝像機模型,例如透視,魚眼和等角矩形。如果需要,用戶可以輕鬆實現額外的相機模型(例如雙魚眼,折反射)。例如,上面顯示了使用等矩形相機模型(例如RICOH THETA系列,insta360系列等)的可視SLAM算法。

https://github.com/xdspacelab/openvslam

3、Mvision

機器人視覺 移動機器人 VS-SLAM ORB-SLAM2 深度學習目標檢測 yolov3 行爲檢測 opencv PCL 機器學習 無人駕駛

https://github.com/Ewenwan/MVision

4、Recent_slam_research

Track Advancement of SLAM 跟蹤SLAM前沿動態【2020 version】

https://github.com/YiChenCityU/Recent_SLAM_Research

5、G2o

g2o是用於優化基於圖形的非線性誤差函數的開源C ++框架。g2o被設計爲易於擴展到各種各樣的問題,通常可以在幾行代碼中指定一個新問題。當前的實現爲SLAM和BA的多個變體提供瞭解決方案。

機器人技術和計算機視覺中的許多問題都涉及最小化可以表示爲圖形的非線性誤差函數。典型實例是同時定位和映射(SLAM)或捆綁包調整(BA)。這些問題的總體目標是找到能最大程度解釋受高斯噪聲影響的一組測量值的參數或狀態變量的配置。g2o是用於解決此類非線性最小二乘問題的開源C ++框架。g2o被設計爲易於擴展到各種各樣的問題,通常可以在幾行代碼中指定一個新問題。當前的實現爲SLAM和BA的多個變體提供瞭解決方案。對於特定的問題,g2o的性能可與最新方法的實現相媲美。

https://github.com/RainerKuemmerle/g2o

6、Awesome Visual Slam

基於視覺的SLAM /視覺Odometry的開源項目,博客和論文列表

https://github.com/tzutalin/awesome-visual-slam

7、Maplab

一個開放的視覺-慣性映射框架。這是一個用C ++編寫的開放式,面向研究的視覺慣性映射框架,用於創建,處理和操縱多會話地圖。一方面,可以將maplab視爲現成的視覺慣性製圖和定位系統。另一方面,maplab爲研究社區提供了多會話映射工具的集合,這些工具包括地圖合併,視覺慣性批處理優化和循環閉合。此外,它還包括一個在線前端ROVIOLI,它可以創建視覺慣性圖,還可以跟蹤本地化圖中的無漂移姿態。

https://github.com/ethz-asl/maplab

8、Elasticfusion

實時密集視覺SLAM系統。實時密集可視SLAM系統,能夠捕獲使用RGB-D攝像機探索的房間尺度環境的綜合密集全局一致的基於surfelf的地圖。

https://github.com/mp3guy/ElasticFusion

9、Evo

用於評估里程錶和SLAM的Python軟件包。該軟件包提供可執行文件和一個小型庫,用於處理,評估和比較測距法和SLAM算法的軌跡輸出。

https://github.com/MichaelGrupp/evo

10、Mrpt

移動機器人編程工具包(MRPT)。移動機器人編程工具包(MRPT)提供了面向移動機器人和計算機視覺研究人員的c++庫。庫包括SLAM解決方案、3D(6D)幾何、SE(2)/SE(3)李羣、點、地標、姿態和地圖上的概率密度函數(pdf)、貝葉斯推理(卡爾曼濾波、粒子濾波)、圖像處理、避障等。MRPT還提供了用於立體相機校準、數據集檢查等的GUI應用程序。

https://github.com/MRPT/mrpt

11、Loam_velodyne

激光里程錶和製圖(Loam)是一種使用3D激光雷達進行狀態估計和製圖的實時方法。

https://github.com/laboshinl/loam_velodyne

12、LeGO-LOAM

經過地面優化的激光雷達里程錶和可變地形映射。該項目包含用於ROS兼容UGV的輕型且經過地面優化的激光雷達測距和製圖(LeGO-LOAM)系統的代碼。系統從Velodyne VLP-16激光雷達(水平放置)和可選的IMU數據中輸入點雲作爲輸入。它實時輸出6D姿態估計。

https://github.com/RobustFieldAutonomyLab/LeGO-LOAM

13、Hdl_graph_slam

hdl_graph_slam是使用3D LIDAR的實時6DOF SLAM的開源ROS軟件包。它基於3D Graph SLAM,以及基於NDT掃描匹配的測距法估計和環路檢測。它還支持多種圖形約束,例如GPS,IMU加速度(重力矢量),IMU方向(磁傳感器)和地板(在點雲中檢測到)。我們已經在室內和室外環境中使用Velodyne(HDL32e,VLP16)和RoboSense(16通道)傳感器測試了此封裝。

https://github.com/koide3/hdl_graph_slam

14、Gms Feature Matcher

GMS:基於網格的運動統計,用於快速、超健壯的特徵對應(CVPR 17和IJCV 19)

https://github.com/JiawangBian/GMS-Feature-Matcher

15、Kintinuous

實時大規模密集視覺SLAM系統。僅使用一種低成本的商品RGB-D傳感器,就可以實時在數百米範圍內實時生成高質量的全局一致點和網格重建。

https://github.com/mp3guy/Kintinuous

16、Kimera Vio

 

具有SLAM功能和3D網格生成的視覺慣性里程錶。

https://github.com/MIT-SPARK/Kimera-VIO

17、Open_vins

一個用於視覺-慣性導航研究的開源平臺。OpenVINS項目包含一些核心計算機視覺代碼以及基於過濾器的最新視覺慣性估計器。核心濾波器是擴展卡爾曼濾波器,將慣性信息與稀疏的視覺特徵軌跡融合在一起。這些視覺特徵軌跡是利用多狀態約束卡爾曼濾波器(MSCKF)滑動窗口公式融合而成的,該公式允許3D特徵更新狀態估計,而無需直接估計濾波器中的特徵狀態。受到基於圖的優化系統的啓發,所包含的過濾器具有模塊化功能,可通過適當的基於類型的狀態系統方便地進行協方差管理。

https://github.com/rpng/open_vins

18、Xivo

XIVO是用於視覺慣性測距/映射的開源庫。XIVO在存儲的數據(此處來自RealSense D435i傳感器)或實時流上以140FPS的速度運行,延遲時間約爲1-7ms,具體取決於硬件。它以來自經過校準的攝像機的視頻幀和來自IMU的慣性測量爲輸入,並輸出具有攝像機特性屬性和6 DOF姿態的稀疏點雲。它執行攝像機和IMU之間的相對姿態的自動校準以及時間戳對齊。

https://github.com/ucla-vision/xivo

19、Lio Mapping

緊密耦合3D激光雷達慣性測距法和製圖(LIO映射)的實現。

https://github.com/hyye/lio-mapping

20、Dynslam

動態環境中同時定位和製圖的碩士論文。分別從其中重建靜態環境和動態對象,例如汽車。這是一個用C ++編寫的密集SLAM系統。它基於InfiniTAM構建,增加了對立體聲輸入,室外操作以及單獨的動態對象(例如汽車)重建的支持。

https://github.com/AndreiBarsan/DynSLAM

21、Co Fusion

多目標的實時分割、跟蹤和融合。這是一種密集的SLAM系統,它以RGB-D圖像的實時流作爲輸入並將場景分爲不同的對象。使用多種模型擬合方法,其中每個對象可以獨立於背景移動,並且仍然有效地跟蹤其形狀,並且僅使用與該對象標籤關聯的像素信息隨時間融合其形狀。先前處理動態場景的嘗試通常將移動區域視爲機器人不感興趣的異常值,因此不對它們的形狀建模或隨時間推移跟蹤其運動。相比之下,我們使機器人能夠維護每個分割對象的3D模型,並通過融合不斷改進它們。結果,我們的系統具有使機器人能夠在對象級別維護場景描述的好處,這可能允許與其工作環境進行交互。即使是動態場景。

https://github.com/martinruenz/co-fusion

22、Cube_slam

Monocular 3D Object Detection and SLAM

https://github.com/shichaoy/cube_slam

23、Dynaslam

DynaSLAM是在單目,立體聲和RGB-D設置的動態環境中具有強大功能的SLAM系統。

https://github.com/BertaBescos/DynaSLAM

24、MaskFusion

實時識別、跟蹤和重建多個移動對象。MaskFusion是一種實時的,可感知對象的,語義和動態RGB-D SLAM系統,它超越了僅輸出僅幾何圖的傳統系統-MaskFusion可以識別,分段並將語義類標籤分配給對象中的不同對象場景,同時跟蹤和重建它們,即使它們獨立於攝像機移動也是如此。當RGB-D相機掃描混亂的場景時,基於圖像的實例級語義分割會創建語義對象蒙版,從而實現實時對象識別以及爲世界地圖創建對象級表示。與以前的基於識別的SLAM系統不同,MaskFusion不需要先驗知識或已知的模型即可識別並可以處理多個獨立運動。MaskFusion充分利用了使用實例級語義分割來使語義標籤融合到對象感知映射中的優勢。我們展示了增強現實應用程序,這些應用程序展示了MaskFusion輸出的地圖的獨特功能:實例感知,語義和動態。

https://github.com/martinruenz/maskfusion

25、Comma2k19

用於融合姿態估計器和映射算法的開發和驗證的駕駛數據集。comma.ai展示了comma2k19,這是加利福尼亞州280高速公路上通勤時間超過33小時的數據集。這意味着在加利福尼亞州聖何塞和舊金山之間20公里的高速公路上行駛的2019年路段各長1分鐘。comma2k19是完全可複製且可伸縮的數據集。數據是使用逗號EON收集的,逗號EON的傳感器類似於任何現代智能手機,包括路面攝像頭,手機GPS,溫度計和9軸IMU。

https://github.com/commaai/comma2k19

26、G2opy

SLAM圖優化框架g2o的Python綁定。

https://github.com/uoip/g2opy

27、Vio Doc

主流VIO論文推導及代碼解析

  • VINS

  • MSCKF

  • ICE-BA

  • ROVIO

https://github.com/StevenCui/VIO-Doc

28、Stereo_ptam

Python實現的SLAM算法Stereo-PTAM。

https://github.com/uoip/stereo_ptam

 

29、Semantic_slam

用手持RGB-D攝像機在ROS中實現實時語義slam。語義SLAM可以僅使用手持RGB-D攝像機(例如Asus xtion)實時生成基於3D體素的語義圖。我們使用ORB_SLAM2作爲SLAM後端,即CNN(PSPNet)來產生語義預測並將語義信息融合到octomap中。請注意,我們的系統也可以配置爲生成不帶語義信息的rgb octomap。

https://github.com/floatlazer/semantic_slam

30、Interactive_slam

Interactive_slam是基於開源3D LIDAR的映射框架。與現有的自動SLAM軟件包相反,我們旨在開發一種半自動框架,該框架使用戶能夠以最少的人工來交互且直觀地糾正製圖失敗(例如,里程錶損壞,迴路錯誤檢測,地圖變形等)。該框架提供了幾種地圖校正功能:

  • [手動和自動]循環關閉

  • [手冊]基於平面的地圖校正

  • [手冊]多個地圖合併

  • [自動]姿勢邊緣細化

https://github.com/SMRT-AIST/interactive_slam

31、Awesome Slam

主要總結了GitHub上與SLAM / VO相關的很棒的存儲庫,包括PC端,移動端的存儲庫以及一些對學習者友好的教程。

https://github.com/YoujieXia/Awesome-SLAM

32、Recent Stars 2020

SLAM,姿勢/對象跟蹤,深度/視差/流估計,3D圖形等相關論文和代碼。

https://github.com/Vincentqyw/Recent-Stars-2020

33、Orb_slam_2_ros

這是用於單目,立體聲和RGB-D攝像機的ORB-SLAM2實時SLAM庫的ROS實現,可計算攝像機的軌跡和稀疏的3D重建(在具有真實比例的立體聲和RGB-D情況下)。它能夠實時檢測環路並重新定位攝像機。

https://github.com/appliedAI-Initiative/orb_slam_2_ros

34、Camlasercalibratool

攝像機和二維激光的外部標定。這是一個基於 ROS 的單線激光和相機外參數自動標定代碼。標定原理如下圖所示,相機通過二維碼估計標定板平面在相機座標系下的平面方程,由於激光點雲落在平面上,將點雲通過激光座標系到相機座標系的外參數 $ T_{cl} $ 轉換到相機座標系,構建點到平面的距離作爲誤差,使用非線性最小二乘進行求解。

 

https://github.com/MegviiRobot/CamLaserCalibraTool

35、Easy_slam_tutorial

首箇中文的簡單從零開始實現視覺SLAM理論與實踐教程,使用Python實現。包括:ORB特徵點提取,對極幾何,視覺里程計後端優化,實時三維重建地圖。A easy SLAM practical tutorial (Python).圖像處理、otsu二值化。

https://github.com/varyshare/easy_slam_tutorial

36、Orb Slam2 Based Ar On Android

這是一個基於ORB-SLAM2和OpenGL的Android增強現實應用,它可以很好地工作在戶外和室內環境中。

https://github.com/muziyongshixin/ORB-SLAM2-based-AR-on-Android

37、Visual Gps Slam

這是作者碩士論文關於視覺SLAM與GPS融合的研究報告。它包含了研究論文,代碼和其他有趣的數據。

https://github.com/GSORF/Visual-GPS-SLAM

38、Orb_slam_2_ros

python實現3D可視化庫Pangolin。

https://github.com/uoip/pangolin

39、Vi_orb_slam2

基於ORB-SLAM2的單目/立體視覺慣性ORB-SLAM。

https://github.com/YoujieXia/VI_ORB_SLAM2

40、Deep Learning Interview Book

深度學習面試寶典(含數學、機器學習、深度學習、計算機視覺、自然語言處理和SLAM等方向)

 

https://github.com/amusi/Deep-Learning-Interview-Book

關於更多機器學習、人工智能、增強現實資源和技術乾貨,可以關注公衆號:AIRX社區,共同學習,一起進步!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章