aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/modules/commander/state_machine_helper.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/modules/commander/state_machine_helper.cpp b/src/modules/commander/state_machine_helper.cpp
index 844e8f2ab..73fdb0940 100644
--- a/src/modules/commander/state_machine_helper.cpp
+++ b/src/modules/commander/state_machine_helper.cpp
@@ -140,6 +140,11 @@ arming_state_transition(struct vehicle_status_s *status, ///< current vehicle s
prearm_ret = OK;
status->condition_system_sensors_initialized = true;
+ /* recover from a prearm fail */
+ if (status->arming_state == vehicle_status_s::ARMING_STATE_STANDBY_ERROR) {
+ status->arming_state = vehicle_status_s::ARMING_STATE_STANDBY;
+ }
+
} else {
armed->lockdown = false;
}
@@ -211,8 +216,10 @@ arming_state_transition(struct vehicle_status_s *status, ///< current vehicle s
valid_transition = true;
}
- // Sensors need to be initialized for STANDBY state
- if (new_arming_state == vehicle_status_s::ARMING_STATE_STANDBY && !status->condition_system_sensors_initialized) {
+ // Sensors need to be initialized for STANDBY state, except for HIL
+ if ((status->hil_state != vehicle_status_s::HIL_STATE_ON) &&
+ (new_arming_state == vehicle_status_s::ARMING_STATE_STANDBY) &&
+ (!status->condition_system_sensors_initialized)) {
mavlink_and_console_log_critical(mavlink_fd, "Not ready to fly: Sensors need inspection");
feedback_provided = true;
valid_transition = false;