From d468ec4e1d509a2ef6e6ca51d9895d1297a57fd7 Mon Sep 17 00:00:00 2001 From: RomanBapst Date: Tue, 17 Jun 2025 09:22:32 +0300 Subject: [PATCH] AirspeedWing: log the airspeed innovation test ratio - if the value exceeds 1, then airspeed checks will trigger - useful to monitoring the check and tuning Signed-off-by: RomanBapst --- msg/AirspeedWind.msg | 1 + src/modules/airspeed_selector/AirspeedValidator.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/msg/AirspeedWind.msg b/msg/AirspeedWind.msg index 6ca513a356..af7040dec7 100644 --- a/msg/AirspeedWind.msg +++ b/msg/AirspeedWind.msg @@ -9,6 +9,7 @@ float32 variance_east # Wind estimate error variance in east / Y direction (m/s float32 tas_innov # True airspeed innovation float32 tas_innov_var # True airspeed innovation variance +float32 tas_innov_integ_test_ratio # Value > 1 indicates that innovation failure check has triggered float32 tas_scale_raw # Estimated true airspeed scale factor (not validated) float32 tas_scale_raw_var # True airspeed scale factor variance diff --git a/src/modules/airspeed_selector/AirspeedValidator.cpp b/src/modules/airspeed_selector/AirspeedValidator.cpp index bbd907ff52..8c32be8369 100644 --- a/src/modules/airspeed_selector/AirspeedValidator.cpp +++ b/src/modules/airspeed_selector/AirspeedValidator.cpp @@ -107,6 +107,8 @@ AirspeedValidator::get_wind_estimator_states(uint64_t timestamp) wind_est.tas_scale_raw = _wind_estimator.get_tas_scale(); wind_est.tas_scale_raw_var = _wind_estimator.get_tas_scale_var(); wind_est.tas_scale_validated = _CAS_scale_validated; + wind_est.tas_innov_integ_test_ratio = _tas_innov_integ_threshold > FLT_EPSILON ? _aspd_innov_integ_state / + _tas_innov_integ_threshold : 0.f; return wind_est; }