在上篇中,讲解了分别从角速度计、加速度计、磁力计估计姿态的方法。本篇文章讲解他们的融合,对误差的处理,以及标定实验。
融合
这一部分在文章中称为filter。
在上一篇文章中,我们能够通过角速度计的读数 ω \omega ω,加速度计或磁力计的读数 d S d_S dS在每个采样间隔更新姿态四元数 q q q:
q t + 1 = q t + 1 2 q t × ω t Δ t q_{t+1} = q_{t} + \frac{1}{2}q_t \times \omega_t \Delta t qt+1=qt+21qt×ωtΔt
q t + 1 = q t − μ ∇ f ∣ ∣ ∇ f ∣ ∣ q_{t+1}=q_t - \mu \frac{\nabla f}{||\nabla f||} qt+1=qt−μ∣∣∇f∣∣∇f
其中 f f f是姿态拟合误差,可以通过当前姿态 q q q和读数 d S d_S dS计算得到。
两者融合有:
q t + 1 = q t + 1 2 q t × ω t Δ t − β ∇ f ∣ ∣ ∇ f ∣ ∣ Δ t q_{t+1} = q_{t} + \frac{1}{2}q_t \times \omega_t \Delta t - \beta \frac{\nabla f}{||\nabla f||}\Delta_t qt+1=qt+21qt×ωtΔt−β∣∣∇f∣∣∇fΔt
增量由两部分构成:
第一部分 1 2 q t × ω t \frac{1}{2}q_t \times \omega_t 21qt×ωt为通过角速度计获取的结果。
如果角速度计是完美的,则只需这部分即可。
第二部分 ∇ f ∣ ∣ ∇ f ∣ ∣ \frac{\nabla f}{||\nabla f||} ∣∣∇f∣∣∇f为通过加速度计/磁力计获取的结果。其权重 β \beta β表示角速度计的误差。
如果误差为0,则不需要此项;否则,因为角速度计不完美,当前姿态 q q q有误差,导致拟合误差 f f f没有达到极小, ∇ f \nabla f