1. 前言
本博客主要介紹了VINS-Mono中邊緣化的相關知識,由於VINS-Mono中只是提及了邊緣化的策略並沒有提及邊緣化信息傳遞的原理,因此本博客主要參考了崔化坤的《VINS論文推導及代碼解析》和深藍學院的VIO課程。
VINS-Mono的邊緣化與在《SLAM14講》中也有提及邊緣化 (可看博客SLAM學習——後端(二)) 的不同:
- 《SLAM14講》中提及的邊緣化 (G2O邊緣化) 是在計算求解過程中,先消去路標點變量,實現先求解相機位姿,然後再利用求解出來的相機位姿反過來計算路標點的過程,目的是爲了加速求解,並非真的將路標點給邊緣化點。
- VINS-Mono的邊緣化則真正需要邊緣化掉滑動窗口中的最老幀或次新幀,目的是希望不再計算這一幀的位姿或者與其相關的路標點,但是希望保留該幀對窗口內其他幀的約束關係。
2. 舒爾補 (Schur complement) 的應用:邊界概率,條件概率
將矩陣M=[ACBD]變成上三角或者下三角形過程中,會用到舒爾補操作:[I−CA−10I][ACBD]=[A0BΔA] [ACBD][I0−A−1BI]=[AC0ΔA] 其中A爲可逆矩陣,ΔA=D−CA−1B,稱爲A關於M的舒爾補,聯合起來,將M變形成對角矩陣:[I−CA−10I][ACBD][I0−A−1BI]=[A00ΔA] 反過來又能從對角矩陣恢復成矩陣M:[ICA−10I][A00ΔA][I0A−1BI]=[ACBD] 以上變換均建立在矩陣A可逆的前提下,如果矩陣A不可逆而矩陣D可逆,同樣可以進行舒爾補操作將M矩陣變爲上三角或者下三角的形式: [I0−BD−1I][ACBD]=[ΔDC0D] 其中ΔD=A−BD−1C,稱爲D關於M的舒爾補。