0.2.0
|
Inertial Measurement Integrator. More...
Classes | |
struct | Measurement |
Inertial Measurement. More... | |
Public Types | |
enum class | IntegrationAlgorithm { SingleStepRungeKutta1 , SingleStepRungeKutta2 , SingleStepHeun2 , SingleStepRungeKutta3 , SingleStepHeun3 , SingleStepRungeKutta4 , MultiStepRK3 , MultiStepRK4 , COUNT } |
Available Integration Algorithms. More... | |
enum class | IntegrationFrame : int { ECEF , NED } |
Available Integration Frames. More... | |
Public Member Functions | |
void | applySensorBiasesIncrements (const Eigen::Vector3d &p_deltaBiasAcceleration, const Eigen::Vector3d &p_deltaBiasAngularRate) |
Sets the sensor biases increment. | |
void | applyStateErrors_e (const Eigen::Vector3d &e_positionError, const Eigen::Vector3d &e_velocityError, const Eigen::Vector3d &e_attitudeError_b) |
Apply the errors to the latest state. | |
void | applyStateErrors_n (const Eigen::Vector3d &lla_positionError, const Eigen::Vector3d &n_velocityError, const Eigen::Vector3d &n_attitudeError_b) |
Apply the errors to the latest state. | |
std::shared_ptr< PosVelAtt > | calcInertialSolution (const InsTime &obsTime, const Eigen::Vector3d &p_acceleration, const Eigen::Vector3d &p_angularRate, const ImuPos &imuPos) |
Calculates the inertial navigation solution. | |
std::shared_ptr< PosVelAtt > | calcInertialSolutionDelta (const InsTime &obsTime, const double &dt, Eigen::Vector3d p_deltaVelocity, Eigen::Vector3d p_deltaTheta, Eigen::Vector3d p_acceleration, Eigen::Vector3d p_angularRate, const ImuPos &imuPos) |
Calculates the inertial navigation solution. | |
IntegrationFrame | getIntegrationFrame () const |
Returns the selected integration frame. | |
std::optional< std::reference_wrapper< const PosVelAtt > > | getLatestState () const |
Get the latest state if it exists. | |
const ScrollingBuffer< Measurement > & | getMeasurements () const |
Get the measurements buffer. | |
bool | hasInitialPosition () const |
Checks if an initial position is set. | |
std::optional< Eigen::Vector3d > | p_calcCurrentAcceleration () const |
Calculate the current acceleration, if measurements area available. | |
std::optional< Eigen::Vector3d > | p_calcCurrentAngularRate () const |
Calculate the current angular rate, if measurements area available. | |
const Eigen::Vector3d & | p_getLastAccelerationBias () const |
Return the last acceleration bias in platform frame coordinates in [m/s^2]. | |
const Eigen::Vector3d & | p_getLastAngularRateBias () const |
Return the last angular rate bias in platform frame coordinates in [rad/s]. | |
void | reset () |
Clears all internal data. | |
void | setInitialState (const PosVelAtt &state) |
Sets the initial state. | |
void | setState (const PosVelAtt &state) |
Pushes the state to the list of states. | |
void | setTotalSensorBiases (const Eigen::Vector3d &p_biasAcceleration, const Eigen::Vector3d &p_biasAngularRate) |
Sets the sensor biases total values. | |
Inertial Measurement Integrator.
|
strong |
Available Integration Algorithms.
|
strong |
void NAV::InertialIntegrator::applySensorBiasesIncrements | ( | const Eigen::Vector3d & | p_deltaBiasAcceleration, |
const Eigen::Vector3d & | p_deltaBiasAngularRate ) |
Sets the sensor biases increment.
[in] | p_deltaBiasAcceleration | Acceleration bias increment in platform frame coordinates in [m/s^2] |
[in] | p_deltaBiasAngularRate | Angular rate bias increment in platform frame coordinates in [rad/s] |
void NAV::InertialIntegrator::applyStateErrors_e | ( | const Eigen::Vector3d & | e_positionError, |
const Eigen::Vector3d & | e_velocityError, | ||
const Eigen::Vector3d & | e_attitudeError_b ) |
Apply the errors to the latest state.
[in] | e_positionError | δr_e The position error in e frame coordinates in [m] |
[in] | e_velocityError | δ𝐯_e The velocity error in e frame coordinates in [m/s] |
[in] | e_attitudeError_b | δ𝛙_eb_e The attitude error in e frame coordinates in [rad] |
void NAV::InertialIntegrator::applyStateErrors_n | ( | const Eigen::Vector3d & | lla_positionError, |
const Eigen::Vector3d & | n_velocityError, | ||
const Eigen::Vector3d & | n_attitudeError_b ) |
Apply the errors to the latest state.
[in] | lla_positionError | δ𝐩_n = [δ𝜙 δλ δ𝘩] The position error (latitude, longitude, altitude) in [rad, rad, m] |
[in] | n_velocityError | δ𝐯_n The velocity error in n frame coordinates in [m/s] |
[in] | n_attitudeError_b | δ𝛙_nb_n The attitude error in n frame coordinates in [rad] |
std::shared_ptr< PosVelAtt > NAV::InertialIntegrator::calcInertialSolution | ( | const InsTime & | obsTime, |
const Eigen::Vector3d & | p_acceleration, | ||
const Eigen::Vector3d & | p_angularRate, | ||
const ImuPos & | imuPos ) |
Calculates the inertial navigation solution.
[in] | obsTime | Time of the observation |
[in] | p_acceleration | Acceleration in platform frame coordinates in [m/s^2] |
[in] | p_angularRate | Angular rate in platform frame coordinates in [rad/s] |
[in] | imuPos | IMU platform frame position with respect to body frame |
std::shared_ptr< PosVelAtt > NAV::InertialIntegrator::calcInertialSolutionDelta | ( | const InsTime & | obsTime, |
const double & | dt, | ||
Eigen::Vector3d | p_deltaVelocity, | ||
Eigen::Vector3d | p_deltaTheta, | ||
Eigen::Vector3d | p_acceleration, | ||
Eigen::Vector3d | p_angularRate, | ||
const ImuPos & | imuPos ) |
Calculates the inertial navigation solution.
[in] | obsTime | Time of the observation |
[in] | dt | Delte Time over which the deltaVelocity and deltaTheta were measured |
[in] | p_deltaVelocity | Integrated Acceleration in platform frame coordinates in [m/s] |
[in] | p_deltaTheta | Integrated Angular rate in platform frame coordinates in [rad] |
[in] | p_acceleration | Acceleration in platform frame coordinates in [m/s^2] |
[in] | p_angularRate | Angular rate in platform frame coordinates in [rad/s] |
[in] | imuPos | IMU platform frame position with respect to body frame |
void NAV::InertialIntegrator::setInitialState | ( | const PosVelAtt & | state | ) |
Sets the initial state.
[in] | state | State to set |
void NAV::InertialIntegrator::setState | ( | const PosVelAtt & | state | ) |
Pushes the state to the list of states.
[in] | state | State to set |
void NAV::InertialIntegrator::setTotalSensorBiases | ( | const Eigen::Vector3d & | p_biasAcceleration, |
const Eigen::Vector3d & | p_biasAngularRate ) |
Sets the sensor biases total values.
[in] | p_biasAcceleration | Acceleration bias in platform frame coordinates in [m/s^2] |
[in] | p_biasAngularRate | Angular rate bias in platform frame coordinates in [rad/s] |