VINS 預積分 雅各比矩陣和協方差矩陣推導過程
根據中值積分
ωk+1=2ωk+1+ωk−bωk+1
qk+1=qk⊗[121ωkδt]
ak+1=2qk(ak−bak+na0)+qk+1(ak+1−bak+1+na1)
旋轉角度誤差推導過程
在誤差狀態方程式最重要的部分是對δθk+1部分的推導。
由泰勒公式可得:
δθk+1≈δθk+δθk˙δt
四元數導數的定義和一般形式定義分別爲:
qt˙=21qt⊗ωt
q˙=21q⊗ω
爲了清晰起見,將大信號項和小信號項按角速率分組:
ω≜ωm−ωb
δω≜−δωb−ωn
注:ωm爲觀測到的角速度值,ωb角速度的偏置,ωn 角速度的噪聲。
對於ωt可以寫成兩部分:
ωt=ω+δω=ωm−ωb−δωb−ωn
計算qt˙通過左展開和右展開兩種不同的方法:
qt˙=(qt−1⊗δq)˙=21qt⊗ωt
qt˙=qt−1˙⊗δq+qt−1⊗δq˙=21qt−1⊗δq⊗ωt
⇒21qt−1⊗ωt−1⊗δq+qt−1⊗δq˙=21qt−1⊗δq⊗ωt
⇒2δq˙=δq⊗ωt−ωt−1⊗δq
2δq≈[1δθ]對該公式進行求導得
[0δθ˙]=2δq˙
[0δθt˙]=2δq˙=δq⊗ωt−ωt−1⊗δq
=[q]R(ωt)δq−[q]L(ωt−1)δq
=[0(ωt−ωt−1)−(ωt−ωt−1)T−[ωt+ωt−1]×][121δθt]
=[0δω−δωT−[2ωt+δω]×][121δθt]
根據上式整理得:
δθt˙=δω−[ωt]×δθt−21[δω]×δθt≈−[ωt]×δθt+δω
⇒δθt˙=−[ωt]×δθt+δω
⇒δθ˙=−[ωm−ωb]×δθ−δωb−ωn
⇒δθk˙=−[2ωk+1+ωk−bgk]×δθk−δbgk+2nω0+nω1
將上式代入δθk+1≈δθk+δθk˙δt得:
δθk+1=(I−[2ωk+1+ωk−bgk]×δt)δθk−δbgkδt+2nω0+nω1δt
速度誤差推導過程
δβk+1≈δβk+ak+1δt=δβk+2qk(ak−bak+na0)+qk+1(ak+1−bak+1+na1)δt
即:
δβk+1≈δβk+δβ˙δt
已知有如下關係成立:
Rk=R(I+[δθ]×)+O(∣∣δθ∣∣2)
δβ˙=v˙=RaB+g
對於a(加速度)可以寫成以下兩部分:
aB≜am−ba
δaB≜−δba−na
在慣性系中可以把加速度寫成兩部分的組合:
ak=Rk(aB+δaB)+g
vk˙=v˙+δv˙=R(I+[δθ]×)(aB+δaB)+g
⇒vk˙=RaB+g+δv˙=RaB+RδaB+R[δθ]×aB+R[δθ]×δaB+g
⇒δv˙=R(δaB+[δθ]×aB)+R[δθ]×δaB
消除二階項,並重新組織叉乘([a]×b=−[b]×a):
δv˙=R(δaB−[aB]×δθ)
把已知的公式代入上式中得到:
δv˙=R(−[am−ba]×δθ−δba−na)=−R[am−ba]×δθ−Rδba−Rna
爲了簡化表達,通常假設加速度計噪聲是白色的,不相關的,各向同性的
E[na]=0
E[nanaT]=σa2I
協方差橢球是以原點爲中心的球面,意味着其均值和協方差在旋轉時是不變的。
E[Rna]=RE[na]=0
E[(Rna)(Rna)T]=RE[nanaT]RT=Rσa2IRT=σa2I
重新定義加速度計的噪聲:
Rna→na
則有:
δv˙=R(−[am−ba]×δθ−δba−na)=−R[am−ba]×δθ−Rδba−na
δβk˙=−21qk[ak−bak]×δθk−21qk+1[ak+1−bak+1]×δθk+1
−21(qk+qk+1)δbak−21(qkna0+qk+1na1)
把δθk+1代入上式得:
δβk˙=−21qk[ak−bak]×δθk−21qk+1[ak+1−bak+1]×((I−[2ωk+1+ωk−bgk]×δt)δθk−δbgkδt+2nω0+nω1δt)
−21(qk+qk+1)δbak−21(qkna0+qk+1na1)
把上式代入
δβk+1≈δβk+δβk˙δt
位置誤差推導過程
δαk+1=δαk+δαk˙δt
δβ˙δt表示的是速度的增量,那麼在該速度的增量下的位置的增量爲:
δak˙=21δβk˙δt
=41qk[ak−bak]×δθδt
−41qk+1[ak+1−bak+1]×((I−[2ωk+1+ωk]×δt)δθk−δbgkδt+2nw0+nw1δt)δt
−41(qk+qk+1)δbakδt−41(qkn0+qk+1na1)δt
根據上式可以得到:δαk+1
根據以上的計算結果整理成矩陣形式
⎣⎢⎢⎢⎢⎡δαk+1δθk+1δβk+1δbak+1δbgk+1⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡I0000f01I−[2ωk+1+ωk−bwk]×δtf2100δt0I00−41(qk+qk+1)δt20−21(qk+qk+1)δtI0f04−δtf240I⎦⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎡δαkδθkδβkδbakδbgk⎦⎥⎥⎥⎥⎤
+⎣⎢⎢⎢⎢⎡41qkδt2021qkδt00v0121δtv210041qk+1δt2021qk+1δt00v0321δtv2300000δt00000δt⎦⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎢⎡na0nw0na1nw1nbanbg⎦⎥⎥⎥⎥⎥⎥⎤
其中:
f01=−41qk[ak−bak]×δt2−41qk+1[ak+1−bak]×(I−[2ωk+ωk+1−bgk]×δt)δt2
f21=−21qk[ak−bak]×δt−21qk+1[ak+1−bak]×(I−[2ωk+ωk+1]×δt)δt
f04=41(qk+1[ak+1−bak]×δt2)δt
f24=21(qk+1[ak+1−bak]×δt)δt
v01=−41(qk+1[ak+1−bak]×δt2)21δt
v03=−41(qk+1[ak+1−bak]×δt2)21δt
v21=−21(qk+1[ak+1−bak]×δt2)21δt
v23=−21(qk+1[ak+1−bak]×δt2)21δt
將上個矩陣簡寫爲:
δk+1=Fδk+VQ
最後得到系統的雅各比矩陣Jk+1和協方差矩陣Pk+1
初始值爲:
Jk=I
Pk=0
Jk+1=FJk
Pk+1=FPkFT+VQVT