0.2.0
|
Inertial Navigation Mechanization Functions in local navigation frame. More...
Go to the source code of this file.
Functions | |
template<typename DerivedA , typename DerivedB > | |
Eigen::Vector4< typename DerivedA::Scalar > | NAV::calcTimeDerivativeFor_n_Quat_b (const Eigen::MatrixBase< DerivedA > &b_omega_nb, const Eigen::MatrixBase< DerivedB > &n_Quat_b_coeffs) |
Calculates the time derivative of the quaternion n_Quat_b. | |
template<typename Derived > | |
Eigen::Vector3< typename Derived::Scalar > | NAV::lla_calcTimeDerivativeForPosition (const Eigen::MatrixBase< Derived > &n_velocity, const typename Derived::Scalar &phi, const typename Derived::Scalar &h, const typename Derived::Scalar &R_N, const typename Derived::Scalar &R_E) |
Calculates the time derivative of the curvilinear position. | |
template<typename Scalar , typename = std::enable_if_t<std::is_floating_point_v<Scalar>>> | |
Eigen::Vector< Scalar, 10 > | NAV::n_calcPosVelAttDerivative (const Eigen::Vector< Scalar, 10 > &y, const Eigen::Vector< Scalar, 6 > &z, const PosVelAttDerivativeConstants< Scalar > &c, Scalar=0.0) |
Calculates the derivative of the quaternion, velocity and curvilinear position. | |
template<typename DerivedA , typename DerivedB , typename DerivedC , typename DerivedD > | |
Eigen::Vector3< typename DerivedA::Scalar > | NAV::n_calcTimeDerivativeForVelocity (const Eigen::MatrixBase< DerivedA > &n_measuredForce, const Eigen::MatrixBase< DerivedB > &n_coriolisAcceleration, const Eigen::MatrixBase< DerivedC > &n_gravitation, const Eigen::MatrixBase< DerivedD > &n_centrifugalAcceleration) |
Calculates the time derivative of the velocity in local-navigation frame coordinates. | |
Inertial Navigation Mechanization Functions in local navigation frame.
Eigen::Vector4< typename DerivedA::Scalar > NAV::calcTimeDerivativeFor_n_Quat_b | ( | const Eigen::MatrixBase< DerivedA > & | b_omega_nb, |
const Eigen::MatrixBase< DerivedB > & | n_Quat_b_coeffs ) |
Calculates the time derivative of the quaternion n_Quat_b.
\begin{equation} \label{eq:eq-INS-Mechanization-n_Quat_b-dot} \mathbf{\dot{q}}_b^n = \begin{bmatrix} \dot{w} \\ \dot{x} \\ \dot{y} \\ \dot{z} \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} w \\ x \\ y \\ z \end{bmatrix} \end{equation}
[in] | b_omega_nb | ω_nb_b Body rate with respect to the navigation frame, expressed in the body frame |
[in] | n_Quat_b_coeffs | Coefficients of the quaternion n_Quat_b in order w, x, y, z (q = w + ix + jy + kz) |
Eigen::Vector3< typename Derived::Scalar > NAV::lla_calcTimeDerivativeForPosition | ( | const Eigen::MatrixBase< Derived > & | n_velocity, |
const typename Derived::Scalar & | phi, | ||
const typename Derived::Scalar & | h, | ||
const typename Derived::Scalar & | R_N, | ||
const typename Derived::Scalar & | R_E ) |
Calculates the time derivative of the curvilinear position.
\begin{equation} \label{eq:eq-INS-Mechanization-p_lla-dot} \begin{aligned} \dot{\phi} &= \frac{v_N}{R_N + h} \\ \dot{\lambda} &= \frac{v_E}{(R_E + h) \cos{\phi}} \\ \dot{h} &= -v_D \end{aligned} \end{equation}
[in] | n_velocity | [v_N v_E v_D]^T Velocity with respect to the Earth in local-navigation frame coordinates [m/s] |
[in] | phi | ϕ Latitude [rad] |
[in] | h | Altitude above the ellipsoid [m] |
[in] | R_N | North/South (meridian) earth radius [m] |
[in] | R_E | East/West (prime vertical) earth radius [m] |
Eigen::Vector< Scalar, 10 > NAV::n_calcPosVelAttDerivative | ( | const Eigen::Vector< Scalar, 10 > & | y, |
const Eigen::Vector< Scalar, 6 > & | z, | ||
const PosVelAttDerivativeConstants< Scalar > & | c, | ||
Scalar | = 0.0 ) |
Calculates the derivative of the quaternion, velocity and curvilinear position.
[in] | y | [w, x, y, z, v_N, v_E, v_D, 𝜙, λ, h]^T |
[in] | z | [fx, fy, fz, ωx, ωy, ωz]^T |
[in] | c | Constant values needed to calculate the derivatives |
Eigen::Vector3< typename DerivedA::Scalar > NAV::n_calcTimeDerivativeForVelocity | ( | const Eigen::MatrixBase< DerivedA > & | n_measuredForce, |
const Eigen::MatrixBase< DerivedB > & | n_coriolisAcceleration, | ||
const Eigen::MatrixBase< DerivedC > & | n_gravitation, | ||
const Eigen::MatrixBase< DerivedD > & | n_centrifugalAcceleration ) |
Calculates the time derivative of the velocity in local-navigation frame coordinates.
\begin{equation} \label{eq:eq-INS-Mechanization-v_n-dot} \boldsymbol{\dot{v}}^n = \overbrace{\boldsymbol{f}^n}^{\text{measured}} -\ \underbrace{(2 \boldsymbol{\omega}_{ie}^n + \boldsymbol{\omega}_{en}^n) \times \boldsymbol{v}^n}_{\text{coriolis acceleration}} +\ \overbrace{\mathbf{g}^n}^{\text{gravitation}} -\ \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}
[in] | n_measuredForce | f_n = [f_N f_E f_D]^T Specific force vector as measured by a triad of accelerometers and resolved into local-navigation frame coordinates |
[in] | n_coriolisAcceleration | Coriolis acceleration in local-navigation coordinates in [m/s^2] |
[in] | n_gravitation | Local gravitation vector (caused by effects of mass attraction) in local-navigation frame coordinates [m/s^2] |
[in] | n_centrifugalAcceleration | Centrifugal acceleration in local-navigation coordinates in [m/s^2] |