diff --git a/src/modules/control_allocator/ActuatorEffectiveness/ActuatorEffectivenessCustom.cpp b/src/modules/control_allocator/ActuatorEffectiveness/ActuatorEffectivenessCustom.cpp index ca991b5424..ead2043682 100644 --- a/src/modules/control_allocator/ActuatorEffectiveness/ActuatorEffectivenessCustom.cpp +++ b/src/modules/control_allocator/ActuatorEffectiveness/ActuatorEffectivenessCustom.cpp @@ -48,9 +48,10 @@ ActuatorEffectivenessCustom::getEffectivenessMatrix(Configuration &configuration return false; } - // motors + // Motors _motors.enablePropellerTorque(false); const bool motors_added_successfully = _motors.addActuators(configuration); + _motors_mask = _motors.getMotors(); // Torque const bool torque_added_successfully = _torque.addActuators(configuration); @@ -58,3 +59,9 @@ ActuatorEffectivenessCustom::getEffectivenessMatrix(Configuration &configuration return (motors_added_successfully && torque_added_successfully); } +void ActuatorEffectivenessCustom::updateSetpoint(const matrix::Vector &control_sp, + int matrix_index, ActuatorVector &actuator_sp, const matrix::Vector &actuator_min, + const matrix::Vector &actuator_max) +{ + stopMaskedMotorsWithZeroThrust(_motors_mask, actuator_sp); +} diff --git a/src/modules/control_allocator/ActuatorEffectiveness/ActuatorEffectivenessCustom.hpp b/src/modules/control_allocator/ActuatorEffectiveness/ActuatorEffectivenessCustom.hpp index e06278f08f..0cc1390bd2 100644 --- a/src/modules/control_allocator/ActuatorEffectiveness/ActuatorEffectivenessCustom.hpp +++ b/src/modules/control_allocator/ActuatorEffectiveness/ActuatorEffectivenessCustom.hpp @@ -45,9 +45,15 @@ public: bool getEffectivenessMatrix(Configuration &configuration, EffectivenessUpdateReason external_update) override; + void updateSetpoint(const matrix::Vector &control_sp, int matrix_index, + ActuatorVector &actuator_sp, const matrix::Vector &actuator_min, + const matrix::Vector &actuator_max) override; + const char *name() const override { return "Custom"; } protected: ActuatorEffectivenessRotors _motors; ActuatorEffectivenessControlSurfaces _torque; + + uint32_t _motors_mask{}; };