0.3.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
Functions.hpp File Reference

Inertial Navigation Helper Functions. More...

Go to the source code of this file.

Functions

template<typename Derived >
Derived::Scalar NAV::calcPitchFromStaticAcceleration (const Eigen::MatrixBase< Derived > &b_accel)
 Calculates the pitch angle from a static acceleration measurement.
 
template<typename Derived >
Derived::Scalar NAV::calcPitchFromVelocity (const Eigen::MatrixBase< Derived > &n_velocity)
 Calculates the Pitch angle from the trajectory defined by the given velocity.
 
template<typename Derived >
Derived::Scalar NAV::calcRollFromStaticAcceleration (const Eigen::MatrixBase< Derived > &b_accel)
 Calculates the roll angle from a static acceleration measurement.
 
template<typename Derived >
Derived::Scalar NAV::calcYawFromVelocity (const Eigen::MatrixBase< Derived > &n_velocity)
 Calculates the Yaw angle from the trajectory defined by the given velocity.
 
template<typename DerivedA , typename DerivedB = DerivedA>
Eigen::Vector3< typename DerivedA::Scalar > NAV::e_calcCentrifugalAcceleration (const Eigen::MatrixBase< DerivedA > &e_position, const Eigen::MatrixBase< DerivedB > &e_omega_ie=InsConst::e_omega_ie)
 Calculates the centrifugal acceleration in [m/s^2] (acceleration that makes a body follow a curved path)
 
template<typename DerivedA , typename DerivedB >
Eigen::Vector3< typename DerivedA::Scalar > NAV::e_calcCoriolisAcceleration (const Eigen::MatrixBase< DerivedA > &e_omega_ie, const Eigen::MatrixBase< DerivedB > &e_velocity)
 Calculates the coriolis acceleration in [m/s^2] (acceleration due to motion in rotating reference frame)
 
template<typename DerivedA , typename DerivedB , typename DerivedC >
Eigen::Vector3< typename DerivedA::Scalar > NAV::n_calcCoriolisAcceleration (const Eigen::MatrixBase< DerivedA > &n_omega_ie, const Eigen::MatrixBase< DerivedB > &n_omega_en, const Eigen::MatrixBase< DerivedC > &n_velocity)
 Calculates the coriolis acceleration in [m/s^2] (acceleration due to motion in rotating reference frame)
 
template<typename DerivedA , typename DerivedB >
Eigen::Vector3< typename DerivedA::Scalar > NAV::n_calcTransportRate (const Eigen::MatrixBase< DerivedA > &lla_position, const Eigen::MatrixBase< DerivedB > &n_velocity, const typename DerivedA::Scalar &R_N, const typename DerivedA::Scalar &R_E)
 Calculates the transport rate ω_en_n (rotation rate of the Earth frame relative to the navigation frame)
 

Detailed Description

Inertial Navigation Helper Functions.

Author
T. Topp (topp@.nosp@m.ins..nosp@m.uni-s.nosp@m.tutt.nosp@m.gart..nosp@m.de)
Date
2020-09-02

Function Documentation

◆ calcPitchFromStaticAcceleration()

template<typename Derived >
Derived::Scalar NAV::calcPitchFromStaticAcceleration ( const Eigen::MatrixBase< Derived > & b_accel)
nodiscard

Calculates the pitch angle from a static acceleration measurement.

Parameters
[in]b_accelAcceleration measurement in static condition in [m/s^2]
Returns
The pitch angle in [rad]
Note
See E.-H. Shin (2005) - Estimation Techniques for Low-Cost Inertial Navigation (Chapter 2.6)

◆ calcPitchFromVelocity()

template<typename Derived >
Derived::Scalar NAV::calcPitchFromVelocity ( const Eigen::MatrixBase< Derived > & n_velocity)
nodiscard

Calculates the Pitch angle from the trajectory defined by the given velocity.

(1)P=tan1(vDvN2+vE2)

Parameters
[in]n_velocityVelocity in [m/s] in local-navigation frame coordinates
Returns
Pitch angle in [rad]
Note
See [17] Groves, ch. 6.1.4, eq. 6.17, p. 225

◆ calcRollFromStaticAcceleration()

template<typename Derived >
Derived::Scalar NAV::calcRollFromStaticAcceleration ( const Eigen::MatrixBase< Derived > & b_accel)
nodiscard

Calculates the roll angle from a static acceleration measurement.

Parameters
[in]b_accelAcceleration measurement in static condition in [m/s^2]
Returns
The roll angle in [rad]
Note
See E.-H. Shin (2005) - Estimation Techniques for Low-Cost Inertial Navigation (Chapter 2.6)

◆ calcYawFromVelocity()

template<typename Derived >
Derived::Scalar NAV::calcYawFromVelocity ( const Eigen::MatrixBase< Derived > & n_velocity)
nodiscard

Calculates the Yaw angle from the trajectory defined by the given velocity.

(2)Y=tan1(vEvN)

Parameters
[in]n_velocityVelocity in [m/s] in local-navigation frame coordinates
Returns
Yaw angle in [rad]
Note
See [17] Groves, ch. 6.1.4, eq. 6.14, p. 225

◆ e_calcCentrifugalAcceleration()

template<typename DerivedA , typename DerivedB = DerivedA>
Eigen::Vector3< typename DerivedA::Scalar > NAV::e_calcCentrifugalAcceleration ( const Eigen::MatrixBase< DerivedA > & e_position,
const Eigen::MatrixBase< DerivedB > & e_omega_ie = InsConst::e_omega_ie )
nodiscard

Calculates the centrifugal acceleration in [m/s^2] (acceleration that makes a body follow a curved path)

(3)ωiee×[ωiee×xe]

Parameters
[in]e_positionPosition in coordinates in [m]
[in]e_omega_ieAngular rate of the Earth rotation in [rad/s] in the Earth coordinate frame
Returns
Centrifugal acceleration in the Earth coordinate frame in [m/s^2]

◆ e_calcCoriolisAcceleration()

template<typename DerivedA , typename DerivedB >
Eigen::Vector3< typename DerivedA::Scalar > NAV::e_calcCoriolisAcceleration ( const Eigen::MatrixBase< DerivedA > & e_omega_ie,
const Eigen::MatrixBase< DerivedB > & e_velocity )
nodiscard

Calculates the coriolis acceleration in [m/s^2] (acceleration due to motion in rotating reference frame)

(4)2ωiee×ve

Parameters
[in]e_omega_ieω_ie_e Angular rate of the Earth rotation in [rad/s] in ECEF coordinates
[in]e_velocityVelocity in ECEF frame coordinates in [m/s^2]
Returns
Coriolis acceleration in ECEF coordinates in [m/s^2]

◆ n_calcCoriolisAcceleration()

template<typename DerivedA , typename DerivedB , typename DerivedC >
Eigen::Vector3< typename DerivedA::Scalar > NAV::n_calcCoriolisAcceleration ( const Eigen::MatrixBase< DerivedA > & n_omega_ie,
const Eigen::MatrixBase< DerivedB > & n_omega_en,
const Eigen::MatrixBase< DerivedC > & n_velocity )
nodiscard

Calculates the coriolis acceleration in [m/s^2] (acceleration due to motion in rotating reference frame)

(5)(2ωien+ωenn)×vn

Parameters
[in]n_omega_ieω_ie_n Angular rate of the Earth rotation in [rad/s] in local-navigation coordinates
[in]n_omega_enω_en_n Transport rate in [rad/s] in local-navigation coordinates
[in]n_velocityVelocity in local-navigation frame coordinates in [m/s^2]
Returns
Coriolis acceleration in local-navigation coordinates in [m/s^2]

◆ n_calcTransportRate()

template<typename DerivedA , typename DerivedB >
Eigen::Vector3< typename DerivedA::Scalar > NAV::n_calcTransportRate ( const Eigen::MatrixBase< DerivedA > & lla_position,
const Eigen::MatrixBase< DerivedB > & n_velocity,
const typename DerivedA::Scalar & R_N,
const typename DerivedA::Scalar & R_E )
nodiscard

Calculates the transport rate ω_en_n (rotation rate of the Earth frame relative to the navigation frame)

(6)ωenn=[vERE+hvNRN+hvEtanϕRE+h]T

Parameters
[in]lla_position[𝜙, λ, h] Latitude, Longitude and altitude in [rad, rad, m]
[in]n_velocityVelocity in [m/s], in navigation coordinate
[in]R_NNorth/South (meridian) earth radius [m]
[in]R_EEast/West (prime vertical) earth radius [m]
Returns
ω_en_n Transport Rate in local-navigation coordinates in [rad/s]
Note
See [17] Groves, ch. 5.4.1, eq. 5.44, p. 177
See [14] Gleason, ch. 6.2.3.2, eq. 6.15, p. 155
See [47] Titterton, ch. 3.7.2, eq. 3.87, p. 50 (mistake in denominator 3rd term)