文章目录
基于误差状态卡尔曼滤波器的四元数运动学
7 使用全局角度误差的ESKF
我们将在本章中探讨在全局参考(系)中定义角度误差的含义,这与我们迄今为止使用的局部(参考系)定义相反。我们回顾了第5章和第6章的发展情况,并详细介绍了针对新定义进行更改的章节。
角速度误差 δ θ \delta \boldsymbol\theta δθ的全局定义,意味着一个左手系的组件,即
q t = δ q ⊗ q = q { δ θ } ⊗ q . \mathbf{q}_t = \delta \mathbf{q} \otimes \mathbf{q} = \mathbf{q}\{\ \delta \boldsymbol\theta\} \otimes \mathbf{q} ~~. qt=δq⊗q=q{
δθ}⊗q .
为了完整性起见,我们在连续时间内保持角速率向量 ω \boldsymbol\omega ω的局部定义,即 q ˙ = 1 2 q ⊗ ω \dot \mathbf{q} = \frac{1}{2} \mathbf{q} \otimes \boldsymbol\omega q˙=21q⊗ω,因此在离散时间内保持 q ← q ⊗ q { ω Δ t } \mathbf{q} \leftarrow \mathbf{q} \otimes \mathbf{q} \{\boldsymbol\omega \Delta t\} q←q⊗q{ ωΔt},而不管角度误差是全局定义的。之所以如此是为了方便起见,因为陀螺仪提供的角速率的测量值在本体框架中,即局部的。
7.1 持续时间的系统运动学
7.1.1 真实和标称状态运动学
真实和标称状态运动学不涉及到误差,它们的方程没有变化。
7.1.2 误差状态运动学
我们从写误差状态运动学方程开始,然后进行评论和证明。
δ p ˙ = δ v (294a) \delta \dot \mathbf{p} =\delta \mathbf{v}\tag{294a} δp˙=δv(294a)
δ v ˙ = − [ R ( a m − b a b ) ] × δ θ − R δ a b + δ g − R a n (294b) \dot{\delta \mathbf{v}} = -[\mathbf{R}(\mathbf{a}_m - b\mathbf{a}_{b})]_\times \delta \boldsymbol\theta - \mathbf{R} \delta \mathbf{a}_b + \delta \mathbf{g} - \mathbf{R a}_n \tag{294b} δv˙=−[R(am−bab)]×δθ−Rδab+δg−Ran(294b)
δ θ ˙ = − R δ ω b − R ω n (294c) \dot{\delta \boldsymbol\theta} = - \mathbf{R} \delta \boldsymbol\omega_b - \mathbf{R} \boldsymbol\omega_n \tag{294c} δθ˙=−Rδωb−Rωn(294c)
δ a ˙ b = a w (294d) \delta \dot \mathbf{a}_{b} = \mathbf{a}_w \tag{294d} δa˙b=aw(294d)
δ ω ˙ b = ω w (294e) \delta \dot \boldsymbol\omega_{b} = \boldsymbol\omega_w \tag{294e} δω˙b=ωw(294e)
δ g ˙ = 0 . (294f) \delta \dot \mathbf{g} = 0~. \tag{294f} δg˙=0 .(294f)
【注,在式(294b)中写的是 [ R ( a m − b a b ) ] × [\mathbf{R}(\mathbf{a}_m - b\mathbf{a}_{b})]_\times [R(am−bab)]×,噪声 a b \mathbf{a}_{b} ab多了一个系数 b b b,感觉有点突兀,文章中也没有解释 b b b的含义,我有点怀疑是作者笔误(因为后面的证明结果式(299)中,并没有这个系数),但查看了其它几个文章版本,都是这么写的,又不像是作者笔误,这里存疑】
其中,再次重申,所有的方程中除了 δ v ˙ \dot{\delta \mathbf{v}} δv˙和 δ θ ˙ \dot{\delta \boldsymbol\theta} δθ˙都微不足道,重要的方程将在下面进一步展开。
方程(294b):线速度误差 我们希望确定速度误差的动力学 δ θ ˙ \dot{\delta \boldsymbol\theta} δθ˙。我们从如下关系开始
R t = ( I + [ δ θ ] × ) R + O ( ∣ ∣ δ θ ∣ ∣ 2 ) (295) \mathbf{R}_t = (\mathbf{I} + [\delta \boldsymbol\theta]_\times)\mathbf{R} + O(||\delta \boldsymbol\theta||^2) \tag{295} Rt=(I+[δθ]×)R+O(∣∣δθ∣∣2)(295)
v ˙ = R a B + g , (296) \dot\mathbf{v} = \mathbf{R} \mathbf{a}_\mathcal{B} + \mathbf{g}~,\tag{296} v˙=RaB+g ,(296)
其中,式(295)是使用全局定义的误差的 R t \mathbf{R}_t Rt的小信号近似值,且在(296)中,我们引入了 a B \mathbf{a}_\mathcal{B} aB和 δ a B \delta \mathbf{a}_\mathcal{B} δaB作为(240)和(241)中定义的本体系中的大信号和小信号加速度,就像我们对局部定义的情况所做的那样。
我们继续写 v ˙ t \dot\mathbf{v}_t v˙t的表达式(234b),它以两种不同形式(左右展开)表示,其中项 O ( ∣ ∣ δ θ ∣ ∣ 2 ) O(||\delta \boldsymbol\theta||^2) O(∣∣δθ∣∣2)忽略,
v ˙ + δ v = v ˙ t = ( I + [ δ θ ] × ) R ( a B + δ a B ) + g + δ g \dot \mathbf{v} + \delta \mathbf{v} = {\color{red} \dot \mathbf{v}_t} = (\mathbf{I} + [\delta \boldsymbol\theta]_\times) \mathbf{R}(\mathbf{a}_\mathcal{B} + \delta \mathbf{a}_\mathcal{B}) + \mathbf{g} + \delta \mathbf{g} v˙+δv=v˙t=(I+[δθ]×)R(aB+δaB)+g+δg
R a B + g + δ v ˙ = v ˙ t = R a B + R δ a B + [ δ θ ] × R a B + [ δ θ ] × R δ a B + g + δ g \mathbf{R}\mathbf{a}_\mathcal{B} + \mathbf{g} + \dot{\delta \mathbf{v}}= {\color{red} \dot \mathbf{v}_t} = \mathbf{R}\mathbf{a}_\mathcal{B} + \mathbf{R}\delta \mathbf{a}_\mathcal{B} + [\delta \boldsymbol\theta]_\times\mathbf{R}\mathbf{a}_\mathcal{B} + [\delta \boldsymbol\theta]_\times \mathbf{R}\delta \mathbf{a}_\mathcal{B} + \mathbf{g} + \delta \mathbf{g} RaB+g+δv˙=v˙t=RaB+RδaB+[δθ]×RaB+[δθ]×RδaB+g+δg
左右两边消掉 R a B + g \mathbf{R}\mathbf{a}_\mathcal{B} + \mathbf{g} RaB+g项有
δ v ˙ = R δ a B + [ δ θ ] × R ( a B + δ a B ) + δ g (297) \dot{\delta \mathbf{v}} = \mathbf{R}\delta \mathbf{a}_\mathcal{B} + [\delta \boldsymbol\theta]_\times\mathbf{R}(\mathbf{a}_\mathcal{B} + \delta \mathbf{a}_\mathcal{B}) + \delta \mathbf{g} \tag{297} δv˙=RδaB+[δθ]×R(aB+δaB)+δg(297