Quaternion process noise in EKF

30 Views Asked by At

I'm learning about Extended Kalman Filters for position and orientation estimation and I found the documentation for the OpenIMU project to be a good resource because it shows a step-by-step derivation that I haven't seen elsewhere.

I'm now working through the Quaternion State-Transition Model page and there are a few things I don't quite understand in the derivation of the process noise covariance matrix.

It says that the quaternion process-noise vector is $$\vec{w}_{q,k-1} = -{{dt} \over {2}} \cdot \Omega_{noise,k-1} \cdot \vec{q}_{k-1}$$ This makes sense to me given the preceding derivation, but then in the next step this is rewritten as $$\vec{w}_{q,k-1} = -{{dt} \over {2}} \cdot \Xi_{k-1} \cdot \vec{\omega}_{noise}^{B}$$ with $$\Xi_{k-1} \equiv \begin{bmatrix} { \begin{array}{c} {-\vec{q}_{v}^{T}} \\ {q_0 \cdot I_3 + \begin{bmatrix} {\vec{q}_{v} \times} \end{bmatrix}} \end{array} } \end{bmatrix}$$ where $\begin{bmatrix} {\vec{q}_{v} \times} \end{bmatrix}$ is "the cross-product matrix".

My questions are: how is this equation derived, what is this $\Xi_{k-1}$ matrix and what is a cross-product matrix?


I don't know if this is relevant but I found that the equation given earlier for the quaternion state transition $$\vec{q}_{k} = { \begin{bmatrix} { I_4 + {{dt} \over {2}} \cdot \Omega_{true,k-1} } \end{bmatrix} } \cdot {\vec{q}}_{k-1}$$ is equivalent to pre-multiplying the previous state ${\vec{q}}_{k-1}$ with a quaternion with elements $$[x, y, z, w] = \Bigg[\frac{dt}{2}\omega_{true,x}^B, \frac{dt}{2}\omega_{true,y}^B, \frac{dt}{2}\omega_{true,z}^B, 1\Bigg]$$

Maybe something similar is used here?