VINS-Mono和VINS-Mobile是香港科技大學沈劭劼老師開源的單目視覺慣導SLAM方案。2017年發表在《IEEE Transactions on Robotics》。另外,VINS的最新一篇論文獲得了iROS 2018最佳學生論文獎。它是基於優化和滑動窗口的VIO,使用IMU預積分構建緊耦合框架,同時還有自動初始化,在線外參標定,重定位,閉環檢測,以及全局位姿圖優化功能。其中,VINS-Mono基於單目,VINS-Mobile可以運行在iOS系統上。
首先從measurement preprocessing 啟動。從攝像頭拿到圖像,進行特徵點的提取和跟蹤。imu則從兩個連續的圖像幀之間,進行預積分處理。然後則是初始化部分(initialization), 提供了啟動必須的信息, 包括 位姿,速度,重力向量,陀螺儀的bias, 當前位姿的3d特徵, 用於進行非線性優化計算。 重定位模塊,則是 根據特徵點檢測,並結合了imu預積分 進行迴環檢測。位姿估計根據 全局非線性優化和重定位的結果計算得出。
OKVIS
論文在2014年12月首次發表,它由著名的ETH Zurich, Autonomous Systems Lab (蘇黎世聯邦理工學院自動系統實驗室) 開發,它基於圖像和imu緊耦合預估位姿。okvis的輸出的只有6自由度的位姿,沒有迴環檢測,沒有地圖,因此並不是完整的SLAM。測試時經常會出現在相機(含imu)放在桌子上靜止不動,過一段時間,估計的位姿飄走的現象。
okvis使用BRISK演算法來進行特徵點提取,同時okvis支持多個感測器之間的融合, 如多個攝像頭和imu之間的數據融合。okvis的代碼框架清晰,但只限於定位功能這一部分,它包含了緊耦合和多感測器整合,代碼實現清晰優雅。如果對SLAM有了基本的瞭解,並想再進一步學習圖像和imu緊耦合的原理和代碼實現,可以從okvis的代碼入手。
okvis使用BRISK演算法來進行特徵點提取,同時okvis支持多個感測器之間的融合, 如多個攝像頭和imu之間的數據融合。
代碼的目錄結構如下:
├──okvis_apps:SLAM應用的入口
├──okvis_ceres:後端主要代碼,包括估計,誤差處理等
├──okvis_common:common目錄, 如參數讀取等操作
├──okvis_cv:圖像和幀相關操作
├──okvis_frontend:前端代碼, 圖像檢測,三角測量,初始化等等
├──okvis_kinematics:運動檢測相關,如座標轉換,四元數等
├──okvis_matcher:特徵點匹配
├──okvis_multisensor_processing:多感測器同步
├──okvis_time:時間處理
└──okvis_util:其他
Maplab
maplab出現在2018年5月份,它由著名的ETH Zurich, Autonomous Systems Lab (蘇黎世聯邦理工學院自動系統實驗室) 開發。 maplab主要由兩部分組成: ROVIOLI(在線SLAM前端, RObust Visual Inertial Odometry with Localization Integration)。maplab-console(SLAM離線處理)。
ROVIOLI(在線SLAM前端, RObust Visual Inertial Odometry with Localization Integration)。 它實現VIO和定位,它接收圖像與慣性感測器數據作為輸入,輸出6自由度的全局位姿估計,並為maplab離線工具保存數據。 同時可以,根據之前保存下來的地圖,進行重定位。
maplab-console(SLAM離線處理)。 以離線批處理方式在地圖上進行各種演算法處理,支持演算法插件,可以作為新演算法的研究試驗平臺。
單目,雙目對比
單目優勢:
成本低
搭建簡單
劣勢:
1)需要專門初始化
2)尺度問題
在單張圖片裏,無法確定一個物體的真實大小。它可能是一個很大但很遠的物體,也可能是一個很近很小的物體。
3)深度計算存在缺陷
a.3D假圖問題
b.機器學習的樣本問題
雙目優勢:
1) 不需要專門初始化
2) 能夠計算深度
3) 能夠用於室內和室外
劣勢:
1) 標定較為複雜
2) 視差計算比較耗資源,需要GPU/FPGA 或 專門的ASIC晶元 協助
視覺SLAM框架:前端Visual Odometry,後端Optimization,迴環Loop Closing,建圖Mapping
視覺里程計:估計鄰近時刻的相機運動,簡化兩個圖像的相對運動
方法:特徵點法,直接法
後端:從帶有雜訊的數據中估計最優軌跡與地圖,最大後驗概率估計,濾波器,圖優化
迴環檢測:檢測相機是否到達過之前位置,判斷與之前位置的差異,計算圖像間相似性,詞袋模型
建圖:導航、規劃、通訊、交互、可視化,度量地圖、拓撲地圖,稀疏地圖、稠密地圖
-------------------------------------------
掃描二維碼,關注交流學習
推薦閱讀: