Struct ImuErrors

Inheritance Relationships

Base Type

  • public aspn_xtensor::AspnBase

Struct Documentation

struct ImuErrors : public aspn_xtensor::AspnBase

Container for estimated IMU sensor errors.

Generally, the error model followed is that given in Titterton and Weston, 2nd edition, eq 8.4 and 8.5: \( v_{meas} = (1 + e_{scale})v_{true} + e_{misalignment} + e_{bias} + e_{noise} \)

Misalignment errors are currently not represented. Note that care must be taken with signs as many filter formulations do not estimate these values directly, but rather the error-form and these should be negated when assigned to this container.

Public Functions

inline ImuErrors(const Vector3 &accel_biases = zeros(3), const Vector3 &gyro_biases = zeros(3), const Vector3 &accel_scale_factors = zeros(3), const Vector3 &gyro_scale_factors = zeros(3), const aspn_xtensor::TypeTimestamp &time = aspn_xtensor::TypeTimestamp((int64_t)0), AspnMessageType message_type = ASPN_EXTENDED_BEGIN)

Constructor.

Parameters
  • accel_biases – Accel biases in sensor frame, m/s^2.

  • gyro_biases – Gyro biases in sensor frame, rad/s.

  • accel_scale_factors – Sensor frame, unitless.

  • gyro_scale_factors – Sensor frame, unitless.

  • time – Time at which values are valid.

  • message_type – the ASPN message type assigned to ImuErrors. This will likely be specific to the running program. Defaults to ASPN_EXTENDED_BEGIN since ImuErrors extends the set of defined ASPN messages. Note, if this default value is not overridden by a program using NavToolkit, then the type assigned to ImuErrors may conflict with another type used by that program. Users should be careful to ensure that all ASPN message types used by their program have unique types if they are using AspnBase::get_message_type to identify a message type.

Public Members

Vector3 accel_biases

Accel biases in sensor frame, m/s^2, such that \( accel_{meas} = accel_{true} + accel_{bias} \) in the absence of other errors.

Vector3 gyro_biases

Gyro biases in sensor frame, rad/s, such that \( gyro_{meas} = gyro_{true} + gyro_{bias} \) in the absence of other errors.

Vector3 accel_scale_factors

Accel scale factors in sensor frame, unitless, such that \( accel_{meas} = (1 + accel_{scale})accel_{true} \) in the absence of other errors.

Vector3 gyro_scale_factors

Gyro scale factors in sensor frame, unitless, such that \( gyro_{meas} = (1 + gyro_{scale})gyro_{true} \) in the absence of other errors.

aspn_xtensor::TypeTimestamp time_validity

Time at which the IMU errors are considered to be valid.