From 9c616fcf63b850babc6a8d76f59a7d6f918c42db Mon Sep 17 00:00:00 2001 From: Matthias Grob Date: Mon, 13 Jun 2022 10:19:08 +0200 Subject: [PATCH] HACK to enable actuators in HITL Mixers get loaded on normal output modules the first actuator_outputs instance gets sent to the simulator. No lockdown but the rest of HIL stays. --- ROMFS/px4fmu_common/init.d/rc.interface | 11 +---------- .../Arming/ArmStateMachine/ArmStateMachine.cpp | 3 +-- src/modules/commander/Commander.cpp | 6 ++---- 3 files changed, 4 insertions(+), 16 deletions(-) diff --git a/ROMFS/px4fmu_common/init.d/rc.interface b/ROMFS/px4fmu_common/init.d/rc.interface index fee6ad252c..55ecde2968 100644 --- a/ROMFS/px4fmu_common/init.d/rc.interface +++ b/ROMFS/px4fmu_common/init.d/rc.interface @@ -188,16 +188,7 @@ then if [ $MIXER_AUX_FILE != none ] then - # Append aux mixer to main device. - if param greater SYS_HITL 0 - then - if mixer append ${OUTPUT_DEV} ${MIXER_AUX_FILE} - then - echo "INFO [init] Mixer: ${MIXER_AUX_FILE} appended to ${OUTPUT_DEV}" - else - echo "ERROR [init] Failed appending mixer: ${MIXER_AUX_FILE}" - fi - fi + # Enable actuators in HITL if [ -e $OUTPUT_AUX_DEV -a $OUTPUT_MODE != hil ] then if mixer load ${OUTPUT_AUX_DEV} ${MIXER_AUX_FILE} diff --git a/src/modules/commander/Arming/ArmStateMachine/ArmStateMachine.cpp b/src/modules/commander/Arming/ArmStateMachine/ArmStateMachine.cpp index 70c06166bd..c5a5d1d2a5 100644 --- a/src/modules/commander/Arming/ArmStateMachine/ArmStateMachine.cpp +++ b/src/modules/commander/Arming/ArmStateMachine/ArmStateMachine.cpp @@ -127,8 +127,7 @@ transition_result_t ArmStateMachine::arming_state_transition(vehicle_status_s &s } if (hil_enabled) { - /* enforce lockdown in HIL */ - armed.lockdown = true; + // Enable actuators in HITL status_flags.system_sensors_initialized = true; /* recover from a prearm fail */ diff --git a/src/modules/commander/Commander.cpp b/src/modules/commander/Commander.cpp index d51ea0aeb2..52142f8f0a 100644 --- a/src/modules/commander/Commander.cpp +++ b/src/modules/commander/Commander.cpp @@ -2429,10 +2429,8 @@ Commander::run() bool auto_disarm = _actuator_armed.manual_lockdown; // auto disarm if locked down to avoid user confusion - // skipped in HITL where lockdown is enabled for safety - if (_vehicle_status.hil_state != vehicle_status_s::HIL_STATE_ON) { - auto_disarm |= _actuator_armed.lockdown; - } + // Enable actuators in HITL + auto_disarm |= _armed.lockdown; _auto_disarm_killed.set_state_and_update(auto_disarm, hrt_absolute_time());