42 #include <mathlib/mathlib.h> 57 void update(uint64_t time_now);
72 uint64_t &time_meas_rejected,
bool &reinit_filter);
81 wind_var[0] =
_P(0, 0);
82 wind_var[1] =
_P(1, 1);
float _tas_innov
true airspeed innovation
Adapter / shim layer for system calls needed by ECL.
uint64_t _time_last_update
timestamp of last covariance prediction
void update(uint64_t time_now)
bool check_if_meas_is_rejected(uint64_t time_now, float innov, float innov_var, uint8_t gate_size, uint64_t &time_meas_rejected, bool &reinit_filter)
void get_wind(float wind[2])
uint64_t _time_last_airspeed_fuse
timestamp of last airspeed fusion
void get_wind_var(float wind_var[2])
float get_beta_innov_var()
void fuse_beta(uint64_t time_now, const matrix::Vector3f &velI, const matrix::Quatf &q_att)
uint8_t _beta_gate
sideslip fusion gate size
float _enforced_airspeed_scale
by default we want to estimate the true airspeed scale factor (see enforce_airspeed_scale(...) )
float _tas_innov_var
true airspeed innovation variance
void set_tas_scale_p_noise(float tas_scale_sigma)
void set_beta_noise(float beta_var)
void set_beta_gate(uint8_t gate_size)
void set_tas_noise(float tas_sigma)
bool _initialised
True: filter has been initialised.
float _tas_scale_p_var
true airspeed scale process noise variance
uint64_t _time_rejected_tas
timestamp of when true airspeed measurements have consistently started to be rejected ...
float _beta_innov
sideslip innovation
float _tas_var
true airspeed measurement noise variance
float _wind_p_var
wind process noise variance
WindEstimator & operator=(const WindEstimator &)=delete
void fuse_airspeed(uint64_t time_now, float true_airspeed, const matrix::Vector3f &velI, const matrix::Vector2f &velIvar)
float _beta_var
sideslip measurement noise variance
void enforce_airspeed_scale(float scale)
uint64_t _time_rejected_beta
timestamp of when sideslip measurements have consistently started to be rejected
uint8_t _tas_gate
airspeed fusion gate size
bool initialise(const matrix::Vector3f &velI, const matrix::Vector2f &velIvar, const float tas_meas)
void set_tas_gate(uint8_t gate_size)
float get_tas_innov_var()
void set_wind_p_noise(float wind_sigma)
bool get_wind_estimator_reset()
float _beta_innov_var
sideslip innovation variance
matrix::Matrix3f _P
state covariance matrix
matrix::Vector3f _state
state vector
uint64_t _time_last_beta_fuse
timestamp of last sideslip fusion
bool _wind_estimator_reset
wind estimator was reset in this cycle