Class SlidingWindowCovarianceProvider
Defined in File sliding_window_covariance_provider.h
Inheritance Relationships
Base Type
public adi_imu::ImuCovarianceInterface(Class ImuCovarianceInterface)
Class Documentation
-
class SlidingWindowCovarianceProvider : public adi_imu::ImuCovarianceInterface
Computes covariances over a sliding window of recent samples.
This provider maintains a fixed-size window of samples and continuously updates the covariance estimate. Useful for adaptive covariance that responds to changing sensor noise characteristics.
Public Functions
-
explicit SlidingWindowCovarianceProvider(size_t window_size = DEFAULT_WINDOW_SIZE, size_t min_samples = DEFAULT_MIN_SAMPLES, double min_variance = DEFAULT_MIN_VARIANCE, MotionDetector motion_detector = MotionDetector())
Construct sliding window covariance estimator.
- Parameters:
window_size – Number of samples to keep in window.
min_samples – Minimum samples before covariance is valid.
min_variance – Minimum variance floor.
motion_detector – Optional motion detector for stationary filtering.
-
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.
-
explicit SlidingWindowCovarianceProvider(size_t window_size = DEFAULT_WINDOW_SIZE, size_t min_samples = DEFAULT_MIN_SAMPLES, double min_variance = DEFAULT_MIN_VARIANCE, MotionDetector motion_detector = MotionDetector())