VINS-Mono研究工作整理——目錄與參考
前言:港科大的VINS-Mono作為目前state of the art的開源VIO專案,是研究視覺與IMU融合的必讀演算法,網上的論文解讀與程式碼實現也非常豐富(感謝!)。為更好地進行學習,本人將在學習之餘逐步整理自己對演算法的論文和實現的相關解讀,歡迎大家一起討論。
原文:VINS-Mono A Robust and Versatile Monocular Visual-Inertial State Estimator
VINS程式碼地址:https://github.com/HKUST-Aerial-Robotics/VINS-Mono
PS. 本人蔘考的VINS-Mono是新版本,程式碼結構有所區別,可以在節點圖中看出增加了一個"/pose_graph"節點。
from github:
29 Dec 2017: New features: Add map merge, pose graph reuse, online temporal calibration function, and support rolling shutter camera.
其中 map reuse 可以參考文章:
Relocalization, Global Optimization and Map Merging for Monocular Visual-Inertial SLAM
目錄!(不斷補充)
VINS-Mono論文翻譯
VINS-Mono程式碼解讀——各種資料結構 sensor_msgs measurements
VINS-Mono程式碼解讀——視覺跟蹤 feature_trackers
VINS-Mono理論學習——IMU預積分 Pre-integration
VINS-Mono程式碼解讀——狀態估計器流程 estimator
VINS-Mono程式碼解讀——視覺慣性聯合初始化 initialStructure() visualInitialAlign()
VINS-Mono程式碼解讀——基於滑動視窗的非線性優化 solveOdometry() optimization() slideWindow()
TUM VIO資料集介紹與嘗試
VINS介紹:
VINS是一種具有魯棒性和通用性的單目視覺慣性狀態估計器。
該演算法主要有以下幾個模組:
- 預處理
影象特徵光流跟蹤
IMU資料預積分 - 初始化
純視覺Sfm
Sfm與IMU積分的鬆耦合 - 基於滑動視窗的非線性優化實現緊耦合
- 迴環檢測與重定位
- 四自由度位姿圖優化
rqt_graph
node only
node all
程式碼的檔案目錄
1、ar_demo:一個ar應用demo
2、benchmark_publisher:釋出資料集中參考值
3、camera_model
calib
camera_models:各種相機模型類
chessboard:檢測棋盤格特徵點
gpl
sparse_graph
intrinsic_calib.cc:相機校準模組
4、config:系統配置檔案存放處
5、feature_trackers:
feature_tracker_node.cpp ROS 節點函式,回撥函式
feature_tracker.cpp 影象特徵跟蹤
6、pose_graph:
keyframe.cpp 關鍵幀選取
pose_graph.cpp 位姿圖優化
pose_graph_node.cpp ROS 節點函式
7、support_files:幫助文件
8、vins_estimator
factor:實現IMU、camera等殘差模型
initial:系統初始化,外參標定,SFM
utility:相機視覺化,四元數等資料轉換
estimator.cpp:緊耦合的VIO狀態估計器實現
estimator_node.cpp:ROS 節點函式,回撥函式
feature_manager.cpp:特徵點管理,三角化,關鍵幀等
parameters.cpp:讀取引數
參考筆記:(不斷補充)
VINS技術路線與程式碼詳解 by 五行缺帥wangshuailpp
VINS-Mono 學習筆記 by 童哲航
VINS-Mono 程式碼解讀 by Rain-XIA
VINS-mono詳細解讀 by 極品巧克力
VINS程式碼註釋:
https://github.com/castiel520/VINS-Mono by castiel520
https://github.com/QingSimon/VINS-Mono-code-annotation by QingSimon