IMU残差函数及雅可比公式推导(一)

第一部分:残差函数
约定符号:
IMU的真实值: ω b , a b \omega^b,a^b ωb,ab
IMU的测量值: ω ~ b , a ~ b \tilde{\omega}^b,\tilde{a}^b ω~b,a~b
某个时刻 t t t,二者的关系:
ω ~ t b t = ω t b t + b t g + n t g a ~ t b t = a t b t + b t a + n t a = q b t w ( a t w + g w ) + b t a + n t a \begin{aligned} \tilde{\omega}^{b_t}_t &=\omega^{b_t}_t+b^g_t+n^g_t \\ \tilde{a}^{b_t}_t &=a^{b_t}_t+b^a_t+n^a_t \\ &= q_{b_tw}(a^w_t+g^w)+b^a_t+n^a_t \end{aligned} ω~tbta~tbt=ωtbt+btg+ntg=atbt+bta+nta=qbtw(atw+gw)+bta+nta
ps. IMU机体系即 b b b系, w w w系表示世界坐标系。
不考虑高斯白噪声项,有:
ω t b t ≈ ω ~ t b t − b t g a t w ≈ q w b t ( a ~ t b t − b t a ) − g w a t b t ≈ a ~ t b t − b t a \begin{aligned} \omega^{b_t}_t &\approx \tilde{\omega}^{b_t}_t -b^g_t \\ a^w_t &\approx q_{wb_t} (\tilde{a}^{b_t}_t - b^a_t)- g^w\\ a^{b_t}_t &\approx \tilde{a}^{b_t}_t - b^a_t \end{aligned} ωtbtatwatbtω~tbtbtgqwbt(a~tbtbta)gwa~tbtbta
考虑高斯白噪声项,有:
ω t b t = ω ~ t b t − b t g − n t g a t w = q w b t ( a ~ t b t − b t a − n t a ) − g w a t b t = a ~ t b t − b t a − n t a \begin{aligned} \omega^{b_t}_t &= \tilde{\omega}^{b_t}_t -b^g_t -n^g_t\\ a^w_t &= q_{wb_t} (\tilde{a}^{b_t}_t - b^a_t-n^a_t)- g^w\\ a^{b_t}_t &= \tilde{a}^{b_t}_t - b^a_t-n^a_t \end{aligned} ωtbtatwatbt=ω~tbtbtgntg=qwbt(a~tbtbtanta)gw=a~tbtbtanta
【注意】:此处考虑与不考虑高斯噪声,记为了同一个符号


P(ose),V(elocity),Q(uaternion)某一时刻 t t t的导数为:
p ˙ w b t = v t w v ˙ t w = a t w q ˙ w b t = q w b t ⊗ [ 0 1 2 ω t b t ] \begin{aligned} \dot{p}_{w b_t} &=v^w_t \\ \dot{v}^w_t &=a^w_t \\ \dot{q}_{w b_t}&= {q}_{w b_t}\otimes \begin{bmatrix} 0 \\ \frac{1}{2}\omega^{b_t}_t \end{bmatrix} \end{aligned} p˙wbtv˙twq˙wbt=vtw=atw=qwbt[021ωtbt]
那么,已知第 i i i帧的姿态、位置(相对于世界坐标系),根据IMU的输出,可以递推求得第 j j j帧的姿态、位置(相对于世界坐标系):
p w b j = p w b i + v i w Δ t + ∫ ∫ t ∈ [ i , j ] a t w d t 2 v j w = v i w + ∫ t ∈ [ i , j ] a t w d t q w b j = ∫ t ∈ [ i , j ] q w b t ⊗ [ 0 1 2 ω t b t ] d t \begin{aligned} {p}_{w b_j} &= {p}_{w b_i}+v^w_i\Delta t +\int \int_{t \in[i,j]}{a^w_t}dt^2 \\ {v}^w_j &=v^w_i+ \int_{t \in[i,j]}{a^w_t}dt \\ {q}_{w b_j}&= \int_{t \in [i,j]} {q}_{w b_t}\otimes \begin{bmatrix} 0 \\ \frac{1}{2}\omega^{b_t}_t \end{bmatrix}dt \end{aligned} pwbjvjwqwbj=pwbi+viwΔt+t[i,j]atwdt2=viw+t[i,j]atwdt=t[i,j]qwbt[021ωtbt]dt
【问题】姿态的积分?
另一种求得第 j j j帧的姿态、位置:
应用 q w b t = q w b i ⊗ q b i b t {q}_{w b_t}= {q}_{w b_i}\otimes {q}_{b_i b_t} qwbt=qwbiqbibt,转而去求相对于第 i i i帧,第 j j j帧的姿态、位置变化。
p w b j = p w b i + v i w Δ t − 1 2 g w Δ t 2 + q w b i ∫ ∫ t ∈ [ i , j ] ( q b i b t a t b t ) d t 2 v j w = v i w − g w Δ t + q w b i ∫ t ∈ [ i , j ] ( q b i b t a t b t ) d t q w b j = q w b i ⊗ ∫ t ∈ [ i , j ] q b i b t ⊗ [ 0 1 2 ω t b t ] d t \begin{aligned} {p}_{w b_j} &= {p}_{w b_i}+v^w_i\Delta t -\frac{1}{2}g^w\Delta t^2 + {q}_{w b_i} \int \int_{t \in[i,j]} ({q}_{b_i b_t}{a^{b_t}_t}) dt^2 \\ {v}^w_j &=v^w_i-g^w\Delta t +{q}_{w b_i} \int_{t \in[i,j]} ({q}_{b_i b_t}{a^{b_t}_t}) dt \\ {q}_{w b_j}&={q}_{w b_i}\otimes \int_{t \in [i,j]} {q}_{b_i b_t}\otimes \begin{bmatrix} 0 \\ \frac{1}{2}\omega^{b_t}_t \end{bmatrix}dt \end{aligned} pwbjvjwqwbj=pwbi+viwΔt21gwΔt2+qwbit[i,j](qbibtatbt)dt2=viwgwΔt+qwbit[i,j](qbibtatbt)dt=qwbit[i,j]qbibt[021ωtbt]dt
【注】四元数之间的乘、四元数与矢量之间的乘
第二种积分的好处在于,即使优化过程使得第 i i i帧的姿态、位置发生变化,即 q w b i q_{wb_i} qwbi p w b i p_{wb_i} pwbi变化,但积分部分并不变化!!
IMU预积分以第 i i i帧为参考,将一段时间 t ∈ [ i , j ] t\in [i,j] t[i,j]的IMU数据积分起来,为了简化表达,定义三个符号(表示预积分量):
α b i b j = ∫ ∫ t ∈ [ i , j ] ( q b i b t a t b t ) d t 2 β b i b j = ∫ t ∈ [ i , j ] ( q b i b t a t b t ) d t q b i b j = ∫ t ∈ [ i , j ] q b i b t ⊗ [ 0 1 2 ω t b t ] d t \begin{aligned} \alpha_{b_ib_j} &= \int \int_{t \in[i,j]} ({q}_{b_i b_t}{a^{b_t}_t}) dt^2 \\ \beta_{b_ib_j} &= \int_{t \in[i,j]} ({q}_{b_i b_t}{a^{b_t}_t}) dt \\ q_{b_ib_j} &= \int_{t \in [i,j]} {q}_{b_i b_t}\otimes \begin{bmatrix} 0 \\ \frac{1}{2}\omega^{b_t}_t \end{bmatrix}dt \end{aligned} αbibjβbibjqbibj=t[i,j](qbibtatbt)dt2=t[i,j](qbibtatbt)dt=t[i,j]qbibt[021ωtbt]dt
【注】在纯惯导里,第三项被称为姿态变化四元数。
综上,整理一下(用新符号表示第 j j j帧的姿态、位置):
[ p w b j v j w q w b j b j a b j g ] = [ p w b i + v i w Δ t − 1 2 g w Δ t 2 + q w b i α b i b j v i w − g w Δ t + q w b i β b i b j q w b i ⊗ q b i b j b i a b i g ] \begin{aligned} \begin{bmatrix} p_{wb_j} \\ v^w_j \\ q_{wb_j} \\ b^a_j \\ b^g_j \end{bmatrix} = \begin{bmatrix} {p}_{w b_i}+v^w_i\Delta t -\frac{1}{2}g^w\Delta t^2 + {q}_{w b_i} \alpha_{b_ib_j} \\ v^w_i-g^w\Delta t +{q}_{w b_i} \beta_{b_ib_j}\\ {q}_{w b_i}\otimes q_{b_ib_j} \\ b^a_i \\ b^g_i \end{bmatrix} \end{aligned} pwbjvjwqwbjbjabjg=pwbi+viwΔt21gwΔt2+qwbiαbibjviwgwΔt+qwbiβbibjqwbiqbibjbiabig


【注意】预积分量,既可以预测(即以递推形式得到)【记为】 α ^ b i b j , β ^ b i b j , q ^ b i b j , \hat{\alpha}_{b_ib_j}, \hat{\beta}_{b_ib_j}, \hat{q}_{b_ib_j}, α^bibj,β^bibj,q^bibj,,又可以被观测(即通过IMU数据的积分得到)【仍记为】 α b i b j , β b i b j , q b i b j , {\alpha}_{b_ib_j}, {\beta}_{b_ib_j}, {q}_{b_ib_j}, αbibj,βbibj,qbibj,,因此使用二者的差值构造IMU的残差函数:
r b = [ r p r v r q r b a r b g ] = [ α ^ b i b j − α b i b j β ^ b i b j − β b i b j 1 2 [ q ^ b j b i ⊗ q b i b j ] x y z b j a − b i a b j g − b i g ] \begin{aligned} r_b= \begin{bmatrix} r_p \\ r_v \\ r_q \\ r_{b_a} \\ r_{b_g} \end{bmatrix} = \begin{bmatrix} \hat{\alpha}_{b_ib_j} -{\alpha}_{b_ib_j} \\ \hat{\beta}_{b_ib_j} - {\beta}_{b_ib_j}\\ \frac{1}{2}[\hat{q}_{b_jb_i} \otimes {q}_{b_ib_j}]_{xyz} \\ b^a_j - b^a_i \\ b^g_j - b^g_i \end{bmatrix} \end{aligned} rb=rprvrqrbarbg=α^bibjαbibjβ^bibjβbibj21[q^bjbiqbibj]xyzbjabiabjgbig
其中,
[ α ^ b i b j β ^ b i b j q ^ b j b i ] = [ q b i w ( p w b j − p w b i − v i w Δ t + 1 2 g w Δ t 2 ) q b i w ( v j w − v i w + g w Δ t ) q b j w ⊗ q w b i ] \begin{aligned} \begin{bmatrix} \hat \alpha_{b_ib_j} \\ \hat \beta_{b_ib_j} \\ \hat q_{b_jb_i} \end{bmatrix} = \begin{bmatrix} {q}_{ b_i w} (p_{wb_j}- {p}_{w b_i} - v^w_i\Delta t +\frac{1}{2}g^w\Delta t^2) \\ {q}_{b_iw} (v^w_j - v^w_i + g^w\Delta t )\\ {q}_{ b_j w}\otimes q_{wb_i} \end{bmatrix} \end{aligned} α^bibjβ^bibjq^bjbi=qbiw(pwbjpwbiviwΔt+21gwΔt2)qbiw(vjwviw+gwΔt)qbjwqwbi



一个IMU量测数据的噪声强度通过Allan方差能够标定,现在我们更关心:目前我们使用的预积分量(一段时间内,即第 i i i帧到第 j j j帧多个IMU数据的积分结果)的方差。
【补充性质】:已知两个随机变量之间的线性关系 y = A x y=Ax y=Ax,若有 x ∈ N ( 0 , Σ x ) x\in N(0,\Sigma_x) xN(0,Σx),则可推导得 y ∈ N ( 0 , Σ y ) y\in N(0,\Sigma_y) yN(0,Σy)
μ y = E ( A x ) = A μ x = 0 \mu_y=E(Ax)=A\mu_x=0 μy=E(Ax)=Aμx=0
Σ y = E ( ( A x ) ( A x ) T ) = E ( A x x T A T ) = A Σ x A T \begin{aligned} \Sigma_y &=E((Ax)(Ax)^T)\\ &= E(Axx^TA^T)\\ &= A\Sigma_xA^T \end{aligned} Σy=E((Ax)(Ax)T)=E(AxxTAT)=AΣxAT

如果,我们回答上述问题,需要明确任一IMU采样时刻 k k k到下一时刻 k + 1 k+1 k+1之间的随机变量,以及线性关系:
时刻 k + 1 k+1 k+1的随机变量记为: η k + 1 = [ δ α b k + 1 b k + 1 ′ , δ θ b k + 1 b k + 1 ′ , δ β b k + 1 b k + 1 ′ , δ b b k + 1 a , δ b b k + 1 g ] T \eta_{k+1}=[\delta \alpha_{b_{k+1}b'_{k+1}},\delta \theta_ {b_{k+1}b'_{k+1}},\delta \beta_{b_{k+1}b'_{k+1}},\delta b^a_{b_{k+1}},\delta b^g_{b_{k+1}}]^T ηk+1=[δαbk+1bk+1,δθbk+1bk+1,δβbk+1bk+1,δbbk+1a,δbbk+1g]T
时刻 k k k的随机变量记为: η k = [ δ α b k b k ′ , δ θ b k b k ′ , δ β b k b k ′ , δ b b k a , δ b b k g ] T \eta_{k}=[\delta \alpha_{b_{k}b'_{k}},\delta \theta_ {b_{k}b'_{k}},\delta \beta_{b_{k}b'_{k}},\delta b^a_{b_{k}},\delta b^g_{b_{k}}]^T ηk=[δαbkbk,δθbkbk,δβbkbk,δbbka,δbbkg]T
噪声项: n k = [ n k a , n k g , n k + 1 a , n k + 1 g , n b k a , n b k g ] T n_{k}=[n^a_k,n^g_k,n^a_{k+1},n^g_{k+1},n_{b^a_k},n_{b^g_k}]^T nk=[nka,nkg,nk+1a,nk+1g,nbka,nbkg]T
三者之间的关系: η k + 1 = F η k + G n k \eta_{k+1}=F\eta_{k}+Gn_k ηk+1=Fηk+Gnk
η k ∈ N ( 0 , Σ η k ) \eta_k\in N(0,\Sigma_{\eta_k}) ηkN(0,Σηk) n k ∈ N ( 0 , Σ n k ) n_k\in N(0,\Sigma_{n_k}) nkN(0,Σnk),则 η k + 1 ∈ N ( 0 , Σ η k + 1 ) \eta_{k+1}\in N(0,\Sigma_{\eta_{k+1}}) ηk+1N(0,Σηk+1)。其中,
Σ η k + 1 = F Σ η k F T + G Σ n k G T \Sigma_{\eta_{k+1}}=F\Sigma_{\eta_{k}}F^T+G\Sigma_{n_{k}}G^T Σηk+1=FΣηkFT+GΣnkGT


待求取的是 δ α b k + 1 b k + 1 ′ \delta \alpha_{b_{k+1}b'_{k+1}} δαbk+1bk+1等和 δ α b k b k ′ \delta \alpha_{b_{k}b'_{k}} δαbkbk等之间的关系,
目前根据预积分连续形式得到的离散形式可以反应: α b i b k + 1 ′ \alpha_{b_{i}b'_{k+1}} αbibk+1等和 α b i b k ′ \alpha_{b_{i}b'_{k}} αbibk之间的关系,即:
已知,
α b i b j = ∫ ∫ t ∈ [ i , j ] ( q b i b t a t b t ) d t 2 β b i b j = ∫ t ∈ [ i , j ] ( q b i b t a t b t ) d t q b i b j = ∫ t ∈ [ i , j ] q b i b t ⊗ [ 0 1 2 ω t b t ] d t \begin{aligned} \alpha_{b_ib_j} &= \int \int_{t \in[i,j]} ({q}_{b_i b_t}{a^{b_t}_t}) dt^2 \\ \beta_{b_ib_j} &= \int_{t \in[i,j]} ({q}_{b_i b_t}{a^{b_t}_t}) dt \\ q_{b_ib_j} &= \int_{t \in [i,j]} {q}_{b_i b_t}\otimes \begin{bmatrix} 0 \\ \frac{1}{2}\omega^{b_t}_t \end{bmatrix}dt \end{aligned} αbibjβbibjqbibj=t[i,j](qbibtatbt)dt2=t[i,j](qbibtatbt)dt=t[i,j]qbibt[021ωtbt]dt
则:
α b i b k + 1 = α b i b k + β b i b k δ t + 1 2 a δ t 2 β b i b k + 1 = β b i b k + a δ t q b i b k + 1 = q b i b k ⊗ [ 0 1 2 ω δ t ] \begin{aligned} \alpha_{b_ib_{k+1}} &= \alpha_{b_ib_{k}} + \beta_{b_ib_k}\delta t +\frac{1}{2}a\delta t^2\\ \beta_{b_ib_{k+1}} &= \beta_{b_ib_{k}} +a\delta t \\ q_{b_ib_{k+1}} &= q_{b_ib_{k}}\otimes \begin{bmatrix} 0 \\ \frac{1}{2}\omega \delta t \end{bmatrix} \end{aligned} αbibk+1βbibk+1qbibk+1=αbibk+βbibkδt+21aδt2=βbibk+aδt=qbibk[021ωδt]
使用中值积分法(考虑高斯噪声):
ω = 1 2 ( ω k b k + ω k + 1 b k + 1 ) = 1 2 [ ( ω ~ k b k − b k g − n k g ) + ( ω ~ k + 1 b k + 1 − b k + 1 g − n k + 1 g ) ] a = 1 2 ( a k b k + a k + 1 b k + 1 ) = 1 2 [ ( q w b k ( a ~ k b k − b k a − n k a ) − g w ) + ( q w b k + 1 ( a ~ k + 1 b k + 1 − b k + 1 a − n k + 1 a ) − g w ) ] \begin{aligned} \omega &= \frac{1}{2}(\omega^{b_k}_k+\omega^{b_{k+1}}_{k+1}) \\ &= \frac{1}{2}[(\tilde{\omega}^{b_k}_k -b^g_k -n^g_k)+(\tilde{\omega}^{b_{k+1}}_{k+1} -b^g_{k+1} -n^g_{k+1})]\\ a &= \frac{1}{2}(a^{b_k}_k+a^{b_{k+1}}_{k+1}) \\ &=\frac{1}{2}[(q_{wb_k} (\tilde{a}^{b_k}_k - b^a_k-n^a_k)- g^w)+(q_{wb_{k+1}} (\tilde{a}^{b_{k+1}}_{k+1} - b^a_{k+1}-n^a_{k+1})- g^w)] \end{aligned} ωa=21(ωkbk+ωk+1bk+1)=21[(ω~kbkbkgnkg)+(ω~k+1bk+1bk+1gnk+1g)]=21(akbk+ak+1bk+1)=21[(qwbk(a~kbkbkanka)gw)+(qwbk+1(a~k+1bk+1bk+1ank+1a)gw)]
注意此处,1.噪声项可加可减,使用加;2.预积分时 g w g^w gw被提到了积分之外;3.预积分相对于 b i b_i bi系,故可写为:
ω = 1 2 [ ( ω ~ k b k − b k g + n k g ) + ( ω ~ k + 1 b k + 1 − b k + 1 g + n k + 1 g ) ] a = 1 2 [ q b i b k ( a ~ k b k − b k a + n k a ) + q b i b k + 1 ( a ~ k + 1 b k + 1 − b k + 1 a + n k + 1 a ) ] \begin{aligned} \omega &= \frac{1}{2}[(\tilde{\omega}^{b_k}_k -b^g_k +n^g_k)+(\tilde{\omega}^{b_{k+1}}_{k+1}-b^g_{k+1} +n^g_{k+1})]\\ a &=\frac{1}{2}[q_{b_ib_k} (\tilde{a}^{b_k}_k - b^a_k+n^a_k)+q_{b_ib_{k+1}} (\tilde{a}^{b_{k+1}}_{k+1}- b^a_{k+1}+n^a_{k+1})] \end{aligned} ωa=21[(ω~kbkbkg+nkg)+(ω~k+1bk+1bk+1g+nk+1g)]=21[qbibk(a~kbkbka+nka)+qbibk+1(a~k+1bk+1bk+1a+nk+1a)]

其中,
b k + 1 a = b k a + n b k a δ t b k + 1 g = b k g + n b k g δ t b^a_{k+1}=b^a_k+n_{b^a_k}\delta t \\ b^g_{k+1}=b^g_k+n_{b^g_k}\delta t bk+1a=bka+nbkaδtbk+1g=bkg+nbkgδt


至此,和上一节视觉雅可比公式的推导类似了:即求
F = ∂ [ α b i b k + 1 ′ , θ b i b k + 1 ′ , β b i b k + 1 ′ , b b k + 1 a , b b k + 1 g ] T ∂ [ δ α b k b k ′ , δ θ b k b k ′ , δ β b k b k ′ , δ b b k a , δ b b k g ] T F=\frac{ \partial [\alpha_{b_{i}b'_{k+1}},\theta_ {b_{i}b'_{k+1}},\beta_{b_{i}b'_{k+1}},b^a_{b_{k+1}},b^g_{b_{k+1}}]^T} { \partial [\delta \alpha_{b_{k}b'_{k}},\delta \theta_ {b_{k}b'_{k}},\delta \beta_{b_{k}b'_{k}},\delta b^a_{b_{k}},\delta b^g_{b_{k}}]^T} F=[δαbkbk,δθbkbk,δβbkbk,δbbka,δbbkg]T[αbibk+1,θbibk+1,βbibk+1,bbk+1a,bbk+1g]T

G = ∂ [ α b i b k + 1 ′ , θ b i b k + 1 ′ , β b i b k + 1 ′ , b b k + 1 a , b b k + 1 g ] T ∂ [ n k a , n k g , n k + 1 a , n k + 1 g , n b k a , n b k g ] T G=\frac{ \partial [\alpha_{b_{i}b'_{k+1}},\theta_ {b_{i}b'_{k+1}},\beta_{b_{i}b'_{k+1}},b^a_{b_{k+1}},b^g_{b_{k+1}}]^T} { \partial [n^a_k,n^g_k,n^a_{k+1},n^g_{k+1},n_{b^a_k},n_{b^g_k}]^T} G=[nka,nkg,nk+1a,nk+1g,nbka,nbkg]T[αbibk+1,θbibk+1,βbibk+1,bbk+1a,bbk+1g]T
可以看出来,这里共有 5 × 5 × 2 = 50 5\times 5 \times 2=50 5×5×2=50个小块,故以F.1.1 ~ F.1.5 ~ … F.5.5 ~ … G.5.5顺序依次求解。

残差函数已经得到,下面明确需要对哪些状态求雅可比?

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值