Class StaticCovarianceProvider

Inheritance Relationships

Base Type

Class Documentation

class StaticCovarianceProvider : public adi_imu::ImuCovarianceInterface

Provides fixed/static covariance values from configuration. Use this when covariance values are known from datasheet specifications or prior calibration. No runtime computatino is performed.

Public Functions

StaticCovarianceProvider(const Vec3 &accel_variance, const Vec3 &gyro_variance)

Construct diagonal covariance values. Measurements are not intercorrelated.

Parameters:
  • accel_variance – Variance for each accelerometer axis (m/s^2)^2

  • gyro_variance – Variance for each gyroscope axis (rad/s)^2.

StaticCovarianceProvider(const CovarianceMatrix &accel_cov, const CovarianceMatrix &gyro_cov)

Construct with full covariance matrices.

Parameters:
  • accel_cov – Full 3x3 accelerometer covariance matrix

  • gyro_cov – Full 3x3 gyroscope covariance matrix

virtual void addSample(const Vec3 &accel, const Vec3 &gyro) override

Process a new IMU sample for covariance estimation.

Parameters:
  • accel – Linear acceleration sample (m/s^2)

  • gyro – Angular velocity sample (rad/s)

virtual bool isReady() const override

Check if covariance estimation is ready (calibration complete).

Returns:

true if covariance values are valid and ready to use.

virtual CovarianceMatrix getAccelCovariance() const override

Get the linear acceleration covariance matrix.

Returns:

3x3 covariance matrix row-major order.

virtual CovarianceMatrix getGyroCovariance() const override

Get the angular velocity covariance matrix.

Returns:

3x3 covariance matrix row-major order.

virtual void reset() override

Reset the covariance extimator to initial state.

virtual double getCalibrationProgress() const override

Get the current calibration progress (0.0 to 1.0).

Returns:

Progress ratio, 1.0 when calibration is complete.

Public Static Attributes

static constexpr double DEFAULT_STATIC_ACCEL_COVARIANCE = 0.01
static constexpr double DEFAULT_STATIC_GYRO_COVARIANCE = 0.001