IMU與視覺資訊融合—手寫VIO課程筆記2(下)
VIO殘差函式構建
帶權重(方差)的殘差計算:,其中f(x)服從高斯分佈,協方差為
協方差可以將所有殘差變化到一個統一的無量綱的範圍內,可以將不同殘差進行相加
協方差還能起到一個權重的作用,協方差越小,則它的逆就越大,該測量值就更可信
基於滑動視窗的VIO Bundle Adjustment
為了節約計算量採用滑動視窗形式的Bundle Adjustment, 在 i時刻,滑動視窗內待優化的系統狀態量定義如下:
其中,xi包含i時刻IMU機體的在慣性座標系中的位置,速度,姿態,以及IMU機體座標系中的加速度和角速度的偏置量估計
n,m分別是機體狀態量,路標在滑動視窗裡的起始時刻。
N滑動視窗中關鍵幀數量
M是被滑動視窗內所有關鍵幀觀測到的路標數量
視覺重投影誤差
定義:一個特徵點在歸一化相機座標系下的估計值和觀測值的差
,其中,待估計的狀態量為特徵點的三維空間座標(x,y,z)T,觀測值(u,v)T為特徵在相機歸一化平面的座標。
逆深度引數化:特徵點在歸一化相機座標系與在相機座標系下的座標關係為:
,其中=1/z是逆深度。
VIO中基於逆深度的重投影誤差:特徵點逆深度在第i幀中初始化得到,在第j幀又被觀測到,預測其在第j中的座標為
相機座標系c1→body座標系b1→body座標系b2→相機座標系c2
視覺重投影誤差為:
IMU測量值積分:
上標g表示gyro,a表示acc,w表示在世界座標系world,b表示imu機體座標系body
PVQ對時間的導數為:
,,
從第i時刻的PVQ對IMU的測量值進行積分得到第j時刻的PVQ:(前面第一次筆記已經推導過)
用此種方法 ,每次優化更新後,都需要重新進行積分,計算量大,所以採用預積分的方法
IMU預積分
一個很簡單的公式轉換,就可以將積分模型轉為預積分模型:
那麼,PVQ積分公式中的積分項則變成相對於第i時刻的姿態,而不是相對於世界座標系的姿態
預積分量:預積分量僅僅跟IMU測量值有關,它將一段時間內的IMU資料直接積分起來就得到了預積分量
重新整理得到:
預積分誤差:一段時間內IMU構建的預積分量作為測量值,對兩時刻之間的狀態量進行約束,
其中,位移、速度和偏置都是直接相減得到,第二項是關於四元數的旋轉誤差,其中[]xyz表示只取四元數的虛部(x,y,z)組成的三維向量。
預積分的離散形式
使用mid-point方法,兩個相鄰時刻k到k+1的位姿是用兩個時刻的測量值a,w的平均值來計算
預積分量方差的計算
協方差的傳遞:已知一個變數y = Ax,,則
假設已知相鄰時刻誤差的線性傳遞方程:
誤差的傳遞由兩部分組成:當前時刻的誤差傳遞給下一時刻,當前時刻測量噪聲傳遞給下一時刻。
協方差矩陣可以通過遞推計算得到:,其中是測量噪聲的協方差矩陣,方差從i時刻開始進行遞推, = 0
狀態誤差線性遞推公式的推導
通常對於狀態量之間的遞推關係是非線性的方程,如,其中狀態量為x,u是系統的輸入量
用兩種方法來推導狀態誤差傳遞的線性遞推關係:
一種是基於一階泰勒展開的誤差遞推方程
一種是基於誤差隨時間變化的遞推方程
基於一階泰勒展開的誤差遞推方程
令狀態量為,其中真值為,誤差為,另外輸入量u的噪聲為n
基於泰勒展開的誤差傳遞(應用於EKF的協方差預測):
非線性系統的狀態誤差的線性遞推關係如下:
,其中F是狀態量xk對狀態量xk-1的雅克比矩陣,G是狀態量xk對輸入量uk-1的雅克比矩陣
證明:進行一階泰勒展開有
其中,,所以兩邊可以約掉,即可導上述遞推關係。
基於誤差隨時間變化的遞推方程
如果我們能夠推導狀態誤差隨時間變化的導數關係,比如
則誤差狀態的傳遞方程為:
通過這兩種推導方式可以看出:,
為什麼會要弄誤差隨時間的變化呢?
這是因為VIO系統中已經知道了狀態的導數和狀態之間的轉移矩陣,如我們已經知道了速度和狀態量之間的關係:
那麼就可以推導速度的誤差和狀態誤差之間的關係,再每一項上都加上各自的誤差就有:
由此就可以類推,輕易寫出整個A和B其他方程了。
預積分的誤差遞推公式推導:回顧預積分的誤差遞推公式,注意:這裡白噪聲用符號+,表示噪聲影響狀態量,因為白噪聲的值無法像bias一樣估計,所以沒辦法減去白噪聲
預積分誤差傳遞的形式:用一階泰勒展開的推導方式,我們希望能推匯出誤差的遞推公式
F,G為兩個時刻的協方差傳遞矩陣,表示各時刻的誤差
我們直接給出F,G的最終形式,
其中係數為:
雅克比矩陣F,G的推導
公式簡化約定:為了對求導公式進行簡化,做一些簡單約定,比如求導公式
因為後面那一項與無關。
β對各狀態量的雅克比推導,即F的第三行:
速度預積分量β的遞推計算形式:
f33:對上一時刻速度預積分量的Jacobian
f32:對角度預積分量的Jacobian
速度的預積分量對角度預積分量誤差的Jacobian只跟加速度項有關:
f35:速度預積分量對k時刻角速度的bias的Jacobian
旋轉預積分量的Jacobian,即F第二行
旋轉預積分的遞推公式為:
f22:前一時刻的旋轉誤差如何影響當前旋轉誤差
相關文章
- vio筆記筆記
- 測試課程2視訊
- 資料庫課程作業筆記 - 編寫資料填充資料庫筆記
- 資料庫課程作業筆記 - 編寫 RESTful 路由資料庫筆記REST路由
- 【課程筆記】中科大資訊理論(三)筆記
- 【課程筆記】中科大資訊理論(六)筆記
- 資料庫課程作業筆記 - 編寫控制器資料庫筆記
- 資料庫課程作業筆記 - 編寫公共 Blade 模板資料庫筆記
- 資料庫課程作業筆記 - 編寫模型檔案資料庫筆記模型
- Vue.js 2.0之全家桶系列視訊課程——筆記(五)Vue.js筆記
- Vue.js 2.0之全家桶系列視訊課程——筆記(四)Vue.js筆記
- 網站SEO課程筆記整理版(2)網站筆記
- 資料結構與演算法課程筆記(二)資料結構演算法筆記
- 資料庫課程作業筆記 - 編寫表單驗證資料庫筆記
- 百頁課程筆記,統計物理視角下的深度學習筆記深度學習
- 資料庫課程作業筆記資料庫筆記
- 王德峰視訊哲學課筆記筆記
- 《python運維和開發實戰-高階篇》視訊課程筆記Python運維筆記
- 資料庫課程作業筆記 - 編寫資料庫遷移檔案資料庫筆記
- DApp設計與開發 課程筆記(一)APP筆記
- 《資料庫系統原理》課程筆記資料庫筆記
- 《python運維和開發實戰-高階篇》視訊課程筆記二Python運維筆記
- vuejs 免費視訊課程VueJS
- 物聯網課程筆記筆記
- 會計學課程筆記筆記
- lua課程學習筆記筆記
- 王道C短期課程筆記筆記
- 資料庫課程作業筆記 - 驗收資料庫筆記
- 吳恩達《序列模型》課程筆記(2)– NLP & Word Embeddings吳恩達模型筆記
- 資料採集與融合技術實驗課程作業二
- 資料採集與融合技術實驗課程作業一
- 人工智慧-數學基礎視訊課程-唐宇迪-專題視訊課程人工智慧
- 資料採集與融合技術實踐課作業2
- 達內課程學習筆記筆記
- 機器學習課程筆記機器學習筆記
- 萬物互聯課程筆記筆記
- [Triton課程筆記] 2.2.3 BLS續筆記
- Python基礎課程筆記5Python筆記