fix(commander): Remove COM_IMB_PROP_ACT (#27260)

and hardcode the default warning. The feature can still be disabled by setting FD_IMB_PROP_THR to zero.
This commit is contained in:
Matthias Grob
2026-04-30 23:40:55 +02:00
committed by GitHub
parent 5e86be131c
commit ffef31fb06
8 changed files with 2 additions and 56 deletions
@@ -111,7 +111,7 @@ void FailureDetectorChecks::checkAndReport(const Context &context, Report &repor
* Check that all propellers are mounted correctly and are not damaged.
*
* <profile name="dev">
* This check can be configured via <param>FD_IMB_PROP_THR</param> and <param>COM_IMB_PROP_ACT</param> parameters.
* This check can be configured via <param>FD_IMB_PROP_THR</param> parameter.
* </profile>
*/
reporter.healthFailure(NavModes::All, health_component_t::system, events::ID("check_failure_detector_imbalanced_prop"),
@@ -179,20 +179,6 @@ parameters:
min: 0.0
max: 25.0
decimal: 1
COM_IMB_PROP_ACT:
description:
short: Imbalanced propeller failsafe mode
long: |-
Action the system takes when an imbalanced propeller is detected by the failure detector.
See also FD_IMB_PROP_THR to set the failure threshold.
type: enum
values:
-1: Disabled
0: Warning
1: Return
2: Land
default: 0
increment: 1
COM_OF_LOSS_T:
description:
short: Offboard connection loss timeout
+1 -28
View File
@@ -126,33 +126,6 @@ FailsafeBase::ActionOptions Failsafe::fromGfActParam(int param_value)
return options;
}
FailsafeBase::ActionOptions Failsafe::fromImbalancedPropActParam(int param_value)
{
ActionOptions options{};
switch (imbalanced_propeller_failsafe_mode(param_value)) {
case imbalanced_propeller_failsafe_mode::Disabled:
default:
options.action = Action::None;
break;
case imbalanced_propeller_failsafe_mode::Warning:
options.action = Action::Warn;
break;
case imbalanced_propeller_failsafe_mode::Return:
options.action = Action::RTL;
options.clear_condition = ClearCondition::OnModeChangeOrDisarm;
break;
case imbalanced_propeller_failsafe_mode::Land:
options.action = Action::Land;
options.clear_condition = ClearCondition::OnModeChangeOrDisarm;
break;
}
return options;
}
FailsafeBase::ActionOptions Failsafe::fromActuatorFailureActParam(int param_value)
{
@@ -672,7 +645,7 @@ void Failsafe::checkStateAndMode(const hrt_abstime &time_us, const State &state,
CHECK_FAILSAFE(status_flags, fd_alt_loss, Action::Warn);
}
CHECK_FAILSAFE(status_flags, fd_imbalanced_prop, fromImbalancedPropActParam(_param_com_imb_prop_act.get()));
CHECK_FAILSAFE(status_flags, fd_imbalanced_prop, Action::Warn);
CHECK_FAILSAFE(status_flags, fd_motor_failure, fromActuatorFailureActParam(_param_com_actuator_failure_act.get()));
@@ -88,13 +88,6 @@ private:
Terminate = 4,
};
enum class imbalanced_propeller_failsafe_mode : int32_t {
Disabled = -1,
Warning = 0,
Return = 1,
Land = 2,
};
enum class geofence_violation_action : int32_t {
None = 0,
Warning = 1,
@@ -169,7 +162,6 @@ private:
static ActionOptions fromNavDllOrRclActParam(int param_value);
static ActionOptions fromGfActParam(int param_value);
static ActionOptions fromImbalancedPropActParam(int param_value);
static ActionOptions fromActuatorFailureActParam(int param_value);
static ActionOptions fromBatteryWarningActParam(int param_value, uint8_t battery_warning);
static ActionOptions fromQuadchuteActParam(int param_value);
@@ -210,7 +202,6 @@ private:
(ParamInt<px4::params::COM_RC_IN_MODE>) _param_com_rc_in_mode,
(ParamInt<px4::params::GF_ACTION>) _param_gf_action,
(ParamFloat<px4::params::COM_SPOOLUP_TIME>) _param_com_spoolup_time,
(ParamInt<px4::params::COM_IMB_PROP_ACT>) _param_com_imb_prop_act,
(ParamFloat<px4::params::COM_LKDOWN_TKO>) _param_com_lkdown_tko,
(ParamInt<px4::params::CBRK_FLIGHTTERM>) _param_cbrk_flightterm,
(ParamInt<px4::params::COM_ACT_FAIL_ACT>) _param_com_actuator_failure_act,