VIO概述 On-Manifold Preintegration for Real-Time Visual--Inertial Odometry

目前的研究方向能夠總結爲在濾波算法中實現高精度,在優化算法中追求實時性.當加入IMU後,研究方向分爲鬆耦合和緊耦合,鬆耦合分別單獨計算出IMU測量獲得的狀態和視覺里程計獲得的狀態而後融合,緊耦合則將IMU測量和視覺約束信息放在一個非線性優化函數中去優化.緊耦合的框架使得IMU數據能夠對視覺里程計進行矯正,同時視覺里程計信息也能夠矯正IMU的零偏,所以通常認爲緊耦合的定位精度較高.我的認爲鬆耦合和濾波融合的方法相似,緊耦合則主要基於非線性優化.算法

IMU融合後能夠處理視覺失效的狀況,例如光照變化,遮擋,模糊,快速運動;同時視覺也能夠對IMU的本質偏差零偏(漂移)進行很好的估計.app

視覺和IMU融合目前主要基於三類方法,在設計時,主要考慮精確度和計算量的平衡.框架

1. 濾波

  • 狀態向量只包含當前狀態.因爲線性化偏差和計算能力的限制,一般只能構建不多的landmark/mappoint.或者建立structureless的狀態向量(將landmark/mappoint邊緣化),典型表明爲MSCKF.
  • 邊緣化是將舊狀態融合進當前狀態的先驗中,濾波方法主要的缺陷也就存在於邊緣化過程當中:首先當前測量的structure信息須要延遲處理,下降當前狀態的更新精度,其次邊緣化對線性化近似和外點(outlier)都比較敏感,容易形成濾波器狀態失準.(這裏有不少坑,還不太理解).

2. Fixed-Lag Smoothing

  • 也就是滑動窗口優化(Sliding Window Optimization).狀態向量包含隨時間滑動的窗口內多個狀態.可是也須要將舊狀態邊緣化到高斯先驗中.所以在濾波算法中存在的邊緣化問題,這裏都存在.
  • 可是因爲採用了多個狀態的窗口,狀態估計更精確,同時能夠創建魯棒的優化代價函數,下降外點對狀態估計的影響.
  • 狀態向量中能夠加入測量的structure,可是太多strcuture會形成高斯先驗矩陣是稠密的,一般會想辦法減小structure的數量.

3. Full Smoothing

  • 也就是batch non-linear least-squares或者全局優化,狀態向量包含全部相機位姿和strcuture信息,作大規模的非線性優化.顯然是最精確的方法,雖然說稀疏性下降了計算量,可是依然比濾波大.主要工做集中於下降計算量.
  • 能夠採用只優化關鍵幀,以及將優化放在獨立線程中.
  • 最新的研究採用因子圖,增量式地根據測量更新部分狀態,典型表明爲iSAM.
  • 當引入IMU後,因爲IMU頻率一般在100Hz-1kHz量級,沒法每次IMU測量都更新狀態向量.一般的作法是在關鍵幀之間對IMU進行積分,初始狀態由上一幀狀態提供,根據IMU的微分運動方程,積分出當前狀態,再將視覺測量引入更新.
  • 然而,因爲優化過程當中上一幀的狀態是會變化的,這樣積分的初始狀態改變了,須要從新算積分,爲了不每一次優化調整後都須要重複計算IMU積分,利用預積分preintegration將相對運動約束再參數化

 

參考:less

1. https://bitbucket.org/gtborg/gtsam函數

2. https://arxiv.org/abs/1512.02363優化

相關文章
相關標籤/搜索