50.4.2 Multiplicative quaternion filtering (MEKF)

Search IconIcon to open search

See also: Which orientation parametrisation to choose?
Source: Markley 2014

Main idea is to use

  • the quaternion as a global rotation representation

  • a three component state vector as the local representation of rotation errors $$ \begin{aligned} \mathbf{q}\text{tr} &= \delta\mathbf{q} (\delta\mathbf{\theta}) \otimes \mathbf{\hat{q}}\
    \mathbf{R}(\mathbf{q}
    \text{tr}) &= \mathbf{R} (\delta\mathbf{\theta}) \mathbf{R} (\mathbf{\hat{q}}) \end{aligned}$$

  • each term $(\mathbf{q}_\text{tr},~\delta\mathbf{q},~ \mathbf{\hat{q}})$ is a normalised unit quaternion

  • Any of the  rotation error representations  can be used to calculate delta_theta, which is part of the error state of the MEKF.