50.4.2 Multiplicative quaternion filtering (MEKF)
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.