From c072d758982d3c4992de2712a51091da7b9cb241 Mon Sep 17 00:00:00 2001 From: Silvan Fuhrer Date: Sat, 2 May 2020 17:06:08 +0200 Subject: [PATCH] Airspeed Selector: do not run it within the first 2s after system boot This is to prevent a wrong (false positive) failure detection of the airspeed shortly after system boot due to delays in driver and/or estimator startup (seen in SITL). Signed-off-by: Silvan Fuhrer --- .../airspeed_selector/airspeed_selector_main.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/modules/airspeed_selector/airspeed_selector_main.cpp b/src/modules/airspeed_selector/airspeed_selector_main.cpp index a0d37091058f..f229b5abe2e1 100644 --- a/src/modules/airspeed_selector/airspeed_selector_main.cpp +++ b/src/modules/airspeed_selector/airspeed_selector_main.cpp @@ -263,6 +263,14 @@ AirspeedModule::check_for_connected_airspeed_sensors() void AirspeedModule::Run() { + _time_now_usec = hrt_absolute_time(); //hrt time of the current cycle + + /* do not run the airspeed selector until 2s after system boot, as data from airspeed sensor + and estimator may not be valid yet*/ + if (_time_now_usec < 2_s) { + return; + } + perf_begin(_perf_elapsed); if (!_initialized) { @@ -276,7 +284,7 @@ AirspeedModule::Run() update_params(); } - _time_now_usec = hrt_absolute_time(); //hrt time of the current cycle + bool armed = (_vehicle_status.arming_state == vehicle_status_s::ARMING_STATE_ARMED);