struct mola::ImuBias
Overview
The estimated biases of one IMU, identified by its sensor label. Providers always fill both covariances (with the prior ones before any measurement).
#include <ImuBiasSource.h> struct ImuBias { // fields std::string sensor_label; mrpt::math::TVector3D gyro = {0, 0, 0}; mrpt::math::TVector3D acc = {0, 0, 0}; mrpt::math::CMatrixDouble33 gyro_cov; mrpt::math::CMatrixDouble33 acc_cov; double gyro_random_walk = 0; double acc_random_walk = 0; mrpt::Clock::time_point timestamp; std::optional<mrpt::Clock::time_point> last_update; };
Fields
std::string sensor_label
Sensor label of the IMU (as in its mrpt::obs::CObservationIMU).
mrpt::math::TVector3D gyro = {0, 0, 0}
Gyroscope bias [rad/s], in the IMU sensor frame: subtract it from the raw angular velocity readings. It includes the Earth rotation.
mrpt::math::TVector3D acc = {0, 0, 0}
Accelerometer bias [m/s^2], in the IMU sensor frame: subtract it from the raw specific force readings.
mrpt::math::CMatrixDouble33 gyro_cov
Covariances of the two biases above [(rad/s)^2] and [(m/s^2)^2]. A large entry means that component is barely known (e.g. the accelerometer bias perpendicular to gravity, which at rest cannot be told from a tilt).
double gyro_random_walk = 0
Random walk densities of the provider’s bias model [rad/s/sqrt(s)] and [m/s^2/sqrt(s)], so consumers can propagate a cached estimate: its covariance grows by density^2 * dt per axis. Zero if unknown.
mrpt::Clock::time_point timestamp
Time the estimate (mean and covariances) refers to.
std::optional<mrpt::Clock::time_point> last_update
Time of the newest measurement used. Unset while the estimate is still the prior (zero biases, prior covariances).