0.3.0
Loading...
Searching...
No Matches
IMU Integrator (local-navigation frame)

Local-navigation frame mechanization

Attitude

Propagation of direction cosine matrix with time

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-DCM}
  \mathbf{\dotup{C}}_b^n = \mathbf{C}_b^n \boldsymbol{\Omega}_{nb}^b
\end{equation}

where

  • $ \boldsymbol{\Omega}_{nb}^b $ is the skew symmetric form of $ \boldsymbol{\omega}_{nb}^b $, the body rate with respect to the navigation frame

see

  • [47] Titterton, ch. 3.5.3, eq. 3.28, p. 32
  • [24] Jekeli, ch. 4.3.4, eq. 4.104, p. 130
  • [17] Groves, ch. 5.4.1, eq. 5.39, p. 176

The body rate with respect to the navigation frame $ \boldsymbol{\omega}_{nb}^b $ can be expressed as

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-omega-nb}
  \boldsymbol{\omega}_{nb}^b = \boldsymbol{\omega}_{ib}^b - \mathbf{C}_n^b [\boldsymbol{\omega}_{ie}^n + \boldsymbol{\omega}_{en}^n]
\end{equation}

this together with the skew-symmetric matrix transformation (see [17] Groves, ch. 2.3.1, eq. 2.51, p. 45)

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-skew-symmetric-matrix-transform}
  \mathbf{\Omega}_{\beta\alpha}^\delta = \mathbf{C}_\gamma^\delta \mathbf{\Omega}_{\beta\alpha}^\gamma \mathbf{C}_\delta^\gamma
\end{equation}

leads to the skew symmetric form of \eqref{eq:eq-ImuIntegrator-Mechanization-n-Attitude-DCM}

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-DCM-full}
  \mathbf{\dotup{C}}_b^n = \mathbf{C}_b^n \boldsymbol{\Omega}_{ib}^b - (\boldsymbol{\Omega}_{ie}^n + \boldsymbol{\Omega}_{en}^n) \mathbf{C}_b^n
\end{equation}

Propagation of Euler angles with time

The gimbal angles $ R $ (roll), $ P $ (pitch), $ Y $ (yaw) are related to the body rates as follows:

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-Euler-relation}
  \begin{bmatrix} \omega_{nb,x}^b \\ \omega_{nb,y}^b \\ \omega_{nb,z}^b \end{bmatrix}
      = \begin{bmatrix} \dotup{R} \\ 0 \\ 0 \end{bmatrix}
        + \mathbf{C_3} \begin{bmatrix} 0 \\ \dotup{P} \\ 0 \end{bmatrix}
        + \mathbf{C_3} \mathbf{C_2} \begin{bmatrix} 0 \\ 0 \\ \dotup{Y} \end{bmatrix}
\end{equation}

where

  • $ \mathbf{C_3} = \begin{bmatrix} 1 &     0    &    0    \\
                                     0 &  \cos{R} & \sin{R} \\
                                     0 & -\sin{R} & \cos{R} \end{bmatrix} $ is the rotation $ R $ about the x-axis (see [47] Titterton, ch. 3.6.3.2, eq. 3.46, p. 41)
  • $ \mathbf{C_2} = \begin{bmatrix} \cos{P} & 0 & -\sin{P} \\
                                        0    & 1 &     0    \\
                                     \sin{P} & 0 &  \cos{P} \end{bmatrix} $ is the rotation $ P $ about the y-axis (see [47] Titterton, ch. 3.6.3.2, eq. 3.45, p. 41)
  • $ \boldsymbol{\omega}_{nb}^b = \begin{pmatrix} \omega_{nb,x}^b & \omega_{nb,y}^b & \omega_{nb,z}^b \end{pmatrix}^T $ is the body rate with respect to the navigation frame, expressed in the body frame

This can be rearranged into:

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-Euler}
\begin{aligned}
  \dotup{R} &= (\omega_{nb,y}^b \sin{R} + \omega_{nb,z}^b \cos{R}) \tan{P} + \omega_{nb,x}^b \\
  \dotup{P} &= \omega_{nb,y}^b \cos{R} - \omega_{nb,z}^b \sin{R} \\
  \dotup{Y} &= (\omega_{nb,y}^b \sin{R} + \omega_{nb,z}^b \cos{R}) \sec{P} \\
\end{aligned}
\end{equation}

see

  • [47] Titterton, ch. 3.6.3.3, eq. 3.52, p. 42
  • [14] Gleason, ch. 6.2.3.1, eq. 6.7, p. 153 (top left term in eq. 6.8 should be $ \cos{\theta} $ instead of $ 1 $)

Propagation of quaternion with time

The quaternion $ \mathbf{q} = a + \mathbf{i} b + \mathbf{j} c + \mathbf{k} d $ propagates as (see [47] Titterton, ch. 3.6.4.3, eq. 3.60-3.62, p. 44)

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-Quaternion-base}
  \mathbf{\dotup{q}}_b^n = 0.5 \mathbf{q}_b^n \cdot \mathbf{p}_{nb}^b
\end{equation}

where $ \mathbf{p}_{nb}^b = \begin{pmatrix} \boldsymbol{\omega}_{nb}^b & 0 \end{pmatrix}^T = \begin{pmatrix} \omega_{nb,x}^b & \omega_{nb,y}^b & \omega_{nb,z}^b & 0 \end{pmatrix}^T $

This can be written in matrix form as

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-Quaternion-base-matrix}
  \mathbf{\dotup{q}}_b^n
      = \begin{bmatrix} \dotup{b} \\ \dotup{c} \\ \dotup{d} \\  \dotup{a} \end{bmatrix}
      = 0.5 \begin{bmatrix}  a & -d &  c & b \\
                             d &  a & -b & c \\
                            -c &  b &  a & d \\
                            -b & -c & -d & a \end{bmatrix}
            \begin{bmatrix} \omega_{nb,x}^b \\ \omega_{nb,y}^b \\ \omega_{nb,z}^b \\ 0 \end{bmatrix}
\end{equation}

that is

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-Quaternion-components}
\begin{aligned}
  \dotup{b} &=  0.5 (a \omega_{nb,x}^b - d \omega_{nb,y}^b + c \omega_{nb,z}^b) &=  0.5 (+         0 \cdot b + \omega_{nb,z}^b c - \omega_{nb,y}^b d + \omega_{nb,x}^b a) \\
  \dotup{c} &=  0.5 (d \omega_{nb,x}^b + a \omega_{nb,y}^b - b \omega_{nb,z}^b) &=  0.5 (- \omega_{nb,z}^b b +         0 \cdot c + \omega_{nb,x}^b d + \omega_{nb,y}^b a) \\
  \dotup{d} &= -0.5 (c \omega_{nb,x}^b - b \omega_{nb,y}^b - a \omega_{nb,z}^b) &=  0.5 (+ \omega_{nb,y}^b b - \omega_{nb,x}^b c +         0 \cdot d + \omega_{nb,z}^b a) \\
  \dotup{a} &= -0.5 (b \omega_{nb,x}^b + c \omega_{nb,y}^b + d \omega_{nb,z}^b) &=  0.5 (- \omega_{nb,x}^b b - \omega_{nb,y}^b c - \omega_{nb,z}^b d +         0 \cdot a) \\
\end{aligned}
\end{equation}

and this can be written in matrix form again as

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-Quaternion-matrix-Titterton}
  \mathbf{\dotup{q}}_b^n
      = \begin{bmatrix} \dotup{b} \\ \dotup{c} \\ \dotup{d} \\ \dotup{a} \end{bmatrix}
      = \frac{1}{2} \begin{bmatrix}        0         &  \omega_{nb,z}^b & -\omega_{nb,y}^b & \omega_{nb,x}^b \\
                                    -\omega_{nb,z}^b &        0         &  \omega_{nb,x}^b & \omega_{nb,y}^b \\
                                     \omega_{nb,y}^b & -\omega_{nb,x}^b &        0         & \omega_{nb,z}^b \\
                                    -\omega_{nb,x}^b & -\omega_{nb,y}^b & -\omega_{nb,z}^b &        0        \end{bmatrix}
                    \begin{bmatrix} b \\ c \\ d \\ a \end{bmatrix}
\end{equation}

see

  • [47] Titterton, ch. 11.2.5, eq. 11.33-11.35, p. 319

Velocity

The derivative of the velocity in local-navigation coordinates can be expressed as

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Velocity}
  \boldsymbol{\dotup{v}}^n
      = \overbrace{\boldsymbol{f}^n}^{\hidewidth\text{measured}\hidewidth}
        -\ \underbrace{(2 \boldsymbol{\omega}_{ie}^n + \boldsymbol{\omega}_{en}^n) \times \boldsymbol{v}^n}_{\text{coriolis acceleration}}
        +\ \overbrace{\boldsymbol{\gamma}^n}^{\hidewidth\text{gravitation}\hidewidth}
        -\ \mathbf{C}_e^n \cdot \underbrace{\left(\boldsymbol{\omega}_{ie}^e \times [ \boldsymbol{\omega}_{ie}^e \times \mathbf{x}^e ] \right)}_{\text{centrifugal acceleration}}
\end{equation}

where

  • $ \boldsymbol{v}^n = \begin{pmatrix} v_N & v_E & v_D \end{pmatrix}^T $ is the velocity with respect to the Earth in local-navigation frame coordinates,
  • $ \boldsymbol{f}^n = \begin{pmatrix} f_N & f_E & f_D \end{pmatrix}^T $ is the specific force vector as measured by a triad of accelerometers and resolved into local-navigation frame coordinates
  • $ \boldsymbol{\omega}_{ie}^n $ is the turn rate of the Earth expressed in local-navigation frame coordinates
  • $ \boldsymbol{\omega}_{en}^n $ is the turn rate of the local frame with respect to the Earth-fixed frame, called the transport rate, expressed in local-navigation frame coordinates
  • $ \boldsymbol{\gamma}^n $ the local gravitation vector (caused by effects of mass attraction)

see

  • [47] Titterton, ch. 3.5.3, eq. 3.27, p. 32
  • [24] Jekeli, ch. 4.3.4, eq. 4.88, p. 127
  • [17] Groves, ch. 5.4.3, eq. 5.53, p. 179

Position

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Position}
\begin{aligned}
  \dotup{\phi}    &= \frac{v_N}{R_N + h} \\
  \dotup{\lambda} &= \frac{v_E}{(R_E + h) \cos{\phi}} \\
  \dotup{h}       &= -v_D
\end{aligned}
\end{equation}

where

  • $ \begin{pmatrix} \phi & \lambda & h \end{pmatrix}^T $ is the latitude, longitude and altitude above the ellipsoid,
  • $ R_N $ is the North/South (meridian) earth radius,
  • $ R_E $ is the East/West (prime vertical) earth radius

see

  • [47] Titterton, ch. 3.7, eq. 3.81,3.85,3.86, p. 48ff
  • [24] Jekeli, ch. 4.3.4, eq. 4.97, p. 128
  • [17] Groves, ch. 2.4.2, eq. 2.111, p. 61

Appendix

Quaternion propagation comparison

Different books have different forms of the quaternion propagation, therefore this shall be discussed here.

Titterton

The matrix form for the propagation is (see [47] Titterton, ch. 11.2.5, eq. 11.33-11.35, p. 319)

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-Quaternion-matrix-Titterton-2}
  \mathbf{\dotup{q}}_b^n
      = \begin{bmatrix} \dotup{a} \\ \dotup{b} \\ \dotup{c} \\ \dotup{d} \end{bmatrix}
      = \frac{1}{2} \begin{bmatrix}        0        & -\omega_{nb,x}^b & -\omega_{nb,y}^b & -\omega_{nb,z}^b \\
                                    \omega_{nb,x}^b &        0         &  \omega_{nb,z}^b & -\omega_{nb,y}^b \\
                                    \omega_{nb,y}^b & -\omega_{nb,z}^b &        0         &  \omega_{nb,x}^b \\
                                    \omega_{nb,z}^b &  \omega_{nb,y}^b & -\omega_{nb,x}^b &        0         \end{bmatrix}
                    \begin{bmatrix} a \\ b \\ c \\ d \end{bmatrix}
\end{equation}

which can be converted into a direction cosine matrix with

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-Quaternion-DCM-Titterton}
  \mathbf{C}_b^n = \begin{bmatrix} (a^2 + b^2 - c^2 - d^2) &       2(bc - ad)        &       2(bd + ac)        \\
                                         2(bc + ad)        & (a^2 - b^2 + c^2 - d^2) &       2(cd - ab)        \\
                                         2(bd - ac)        &       2(cd + ab)        & (a^2 - b^2 - c^2 + d^2) \end{bmatrix}
\end{equation}

the quaternion is defined as (see [47] Titterton, ch. 3.6.4.2, eq. 3.57, p. 43)

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-Quaternion-rotation-Titterton}
  \mathbf{r}^n = \mathbf{q} \mathbf{r}^b \mathbf{q}^* \Rightarrow \mathbf{q} = \mathbf{q}_b^n
\end{equation}

Jekeli

Jekeli defines the equations from the body frame to an arbitrary frame, which in our case is the n-frame. Therefore his equations become ([24] Jekeli, ch. 4.2.3.1, eq. 4.20, p. 114)

\begin{equation} \label{eq:q-ImuIntegrator-Mechanization-n-Attitude-DCM-Jekeli}
\begin{aligned}
   \mathbf{\dotup{C}}_b^a &= \mathbf{C}_b^a \boldsymbol{\Omega}_{ab}^b \\
   \mathbf{\dotup{C}}_b^n &= \mathbf{C}_b^n \boldsymbol{\Omega}_{nb}^b
\end{aligned}
\end{equation}

The quaternion is defined by Jekeli over the direction cosine matrix which is ([24] Jekeli, ch. 4.2.3.1, eq. 4.22, p. 114)

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-Quaternion-DCM-Jekeli}
\begin{aligned}
  \mathbf{C}_b^n &= \begin{bmatrix} (a^2 + b^2 - c^2 - d^2) &       2(bc + ad)        &       2(bd - ac)        \\
                                          2(bc - ad)        & (a^2 - b^2 + c^2 - d^2) &       2(cd + ab)        \\
                                          2(bd + ac)        &       2(cd - ab)        & (a^2 - b^2 - c^2 + d^2) \end{bmatrix} \\
                 &= \begin{bmatrix} ((a^*)^2 + (-b^*)^2 - (-c^*)^2 - (-d^*)^2) &       2((-b^*)(-c^*) + (a^*)(-d^*))        &       2((-b^*)(-d^*) - (a^*)(-c^*))        \\
                                          2((-b^*)(-c^*) - (a^*)(-d^*))        & ((a^*)^2 - (-b^*)^2 + (-c^*)^2 - (-d^*)^2) &       2((-c^*)(-d^*) + (a^*)(-b^*))        \\
                                          2((-b^*)(-d^*) + (a^*)(-c^*))        &       2((-c^*)(-d^*) - (a^*)(-b^*))        & ((a^*)^2 - (-b^*)^2 - (-c^*)^2 + (-d^*)^2) \end{bmatrix} \\
                 &= \begin{bmatrix} ((a^*)^2 + (b^*)^2 - (c^*)^2 - (d^*)^2) &          2(b^* c^* - a^* d^*)           &          2(b^* d^* + a^* c^*)           \\
                                             2(b^* c^* + a^* d^*)           & ((a^*)^2 - (b^*)^2 + (c^*)^2 - (d^*)^2) &          2(c^* d^* - a^* b^*)           \\
                                             2(b^* d^* - a^* c^*)           &          2(c^* d^* + a^* b^*)           & ((a^*)^2 - (b^*)^2 - (c^*)^2 + (d^*)^2) \end{bmatrix} \\
\end{aligned}
\end{equation}

Comparing Jekeli's DCM \eqref{eq:eq-ImuIntegrator-Mechanization-n-Attitude-Quaternion-DCM-Jekeli} with Titterton's \eqref{eq:eq-ImuIntegrator-Mechanization-n-Attitude-Quaternion-DCM-Titterton} , it can easily be shown, that the quaternion is the complex conjugate (see [24] Jekeli, ch. 4.2.3.1, eq. 4.21,4.23, p. 114f)

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-Quaternion-matrix-Jekeli}
  \mathbf{\dotup{q}}
      = \begin{bmatrix} \dotup{a} \\ \dotup{b} \\ \dotup{c} \\ \dotup{d} \end{bmatrix}
      = \frac{1}{2} \begin{bmatrix}     0     &  \omega_{nb,x}^b &  \omega_{nb,y}^b &  \omega_{nb,z}^b \\
                                    -\omega_{nb,x}^b &     0     &  \omega_{nb,z}^b & -\omega_{nb,y}^b \\
                                    -\omega_{nb,y}^b & -\omega_{nb,z}^b &     0     &  \omega_{nb,x}^b \\
                                    -\omega_{nb,z}^b &  \omega_{nb,y}^b & -\omega_{nb,x}^b &     0     \end{bmatrix}
                    \begin{bmatrix} a \\ b \\ c \\ d \end{bmatrix}
\end{equation}

Replacing the complex conjugated quaternion leads to the same equation as Titterton's \eqref{eq:eq-ImuIntegrator-Mechanization-n-Attitude-Quaternion-matrix-Titterton-2}

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-Quaternion-matrix-Jekeli-conjugated}
\begin{aligned}
  \mathbf{\dotup{q}}_b^n
      &= \begin{bmatrix} \dotup{a}^* \\ -\dotup{b}^* \\ -\dotup{c}^* \\ -\dotup{d}^* \end{bmatrix}
       = \frac{1}{2} \begin{bmatrix}     0     &  \omega_{nb,x}^b &  \omega_{nb,y}^b &  \omega_{nb,z}^b \\
                                     -\omega_{nb,x}^b &     0     &  \omega_{nb,z}^b & -\omega_{nb,y}^b \\
                                     -\omega_{nb,y}^b & -\omega_{nb,z}^b &     0     &  \omega_{nb,x}^b \\
                                     -\omega_{nb,z}^b &  \omega_{nb,y}^b & -\omega_{nb,x}^b &     0     \end{bmatrix}
                     \begin{bmatrix} a^* \\ -b^* \\ -c^* \\ -d^* \end{bmatrix} \\
      &= \begin{bmatrix} \dotup{a}^* \\ -\dotup{b}^* \\ -\dotup{c}^* \\ -\dotup{d}^* \end{bmatrix}
       = \frac{1}{2} \begin{bmatrix}     0     & -\omega_{nb,x}^b & -\omega_{nb,y}^b & -\omega_{nb,z}^b \\
                                     -\omega_{nb,x}^b &     0     & -\omega_{nb,z}^b &  \omega_{nb,y}^b \\
                                     -\omega_{nb,y}^b &  \omega_{nb,z}^b &     0     & -\omega_{nb,x}^b \\
                                     -\omega_{nb,z}^b & -\omega_{nb,y}^b &  \omega_{nb,x}^b &     0     \end{bmatrix}
                     \begin{bmatrix} a^* \\ b^* \\ c^* \\ d^* \end{bmatrix} \\
      &= \begin{bmatrix} \dotup{a}^* \\ \dotup{b}^* \\ \dotup{c}^* \\ \dotup{d}^* \end{bmatrix}
       = \frac{1}{2} \begin{bmatrix}     0     & -\omega_{nb,x}^b & -\omega_{nb,y}^b & -\omega_{nb,z}^b \\
                                      \omega_{nb,x}^b &     0     &  \omega_{nb,z}^b & -\omega_{nb,y}^b \\
                                      \omega_{nb,y}^b & -\omega_{nb,z}^b &     0     &  \omega_{nb,x}^b \\
                                      \omega_{nb,z}^b &  \omega_{nb,y}^b & -\omega_{nb,x}^b &     0     \end{bmatrix}
                     \begin{bmatrix} a^* \\ b^* \\ c^* \\ d^* \end{bmatrix}
\end{aligned}
\end{equation}

Groves

Groves defines his Quaternion update in two arbitrary frames ([17] Groves, Appendix E, ch. E.6.2, eq. E.32, p. E-12)

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-Quaternion-Groves-E32}
  \mathbf{\dotup{q}}_\beta^\alpha
      = \begin{bmatrix} \dotup{a} \\ \dotup{b} \\ \dotup{c} \\ \dotup{d} \end{bmatrix}
      = \frac{1}{2} \begin{bmatrix}               0               & -\omega_{\beta\alpha,x}^\alpha & -\omega_{\beta\alpha,y}^\alpha & -\omega_{\beta\alpha,z}^\alpha \\
                                    \omega_{\beta\alpha,x}^\alpha &                0               &  \omega_{\beta\alpha,z}^\alpha & -\omega_{\beta\alpha,y}^\alpha \\
                                    \omega_{\beta\alpha,y}^\alpha & -\omega_{\beta\alpha,z}^\alpha &                0               &  \omega_{\beta\alpha,x}^\alpha \\
                                    \omega_{\beta\alpha,z}^\alpha &  \omega_{\beta\alpha,y}^\alpha & -\omega_{\beta\alpha,x}^\alpha &                0               \end{bmatrix}
        \mathbf{q}_\beta^\alpha
      = \frac{1}{2} \begin{bmatrix}              0               & -\omega_{\beta\alpha,x}^\beta & -\omega_{\beta\alpha,y}^\beta & -\omega_{\beta\alpha,z}^\beta \\
                                    \omega_{\beta\alpha,x}^\beta &               0               & -\omega_{\beta\alpha,z}^\beta &  \omega_{\beta\alpha,y}^\beta \\
                                    \omega_{\beta\alpha,y}^\beta &  \omega_{\beta\alpha,z}^\beta &               0               & -\omega_{\beta\alpha,x}^\beta \\
                                    \omega_{\beta\alpha,z}^\beta & -\omega_{\beta\alpha,y}^\beta &  \omega_{\beta\alpha,x}^\beta &               0               \end{bmatrix}
        \mathbf{q}_\beta^\alpha
\end{equation}

This can be expresed for the body rate with respect to the navigation frame in body frame coordinates $ \boldsymbol{\omega}_{nb}^b $

\begin{equation} \label{eq:eq-ImuIntegrator-Mechanization-n-Attitude-Quaternion-Groves-E32-bn}
  \mathbf{\dotup{q}}_n^b
      = \begin{bmatrix} \dotup{a} \\ \dotup{b} \\ \dotup{c} \\ \dotup{d} \end{bmatrix}
      = \frac{1}{2} \begin{bmatrix}        0        & -\omega_{nb,x}^b & -\omega_{nb,y}^b & -\omega_{nb,z}^b \\
                                    \omega_{nb,x}^b &         0        &  \omega_{nb,z}^b & -\omega_{nb,y}^b \\
                                    \omega_{nb,y}^b & -\omega_{nb,z}^b &         0        &  \omega_{nb,x}^b \\
                                    \omega_{nb,z}^b &  \omega_{nb,y}^b & -\omega_{nb,x}^b &         0        \end{bmatrix}
        \mathbf{q}_n^b
\end{equation}

which is the same as Titterton and Jekeli