fix(control_allocator): Apply stopped motors before slew

So transitions between stopped/not stopped respect the slew rate.

 - Remove previous stopped motor handling in publish_actuator_controls
 - Replace with handle_stopped_motors, called in Run() before slew
 - Introduce ApplyNanToActuators in ControlAllocation to stop
 - Refactor ice shedding slightly to fit new structure
This commit is contained in:
Balduin
2026-03-06 11:22:44 +01:00
committed by Balduin
parent 44b2d8f845
commit af3cfaea25
3 changed files with 54 additions and 22 deletions
@@ -145,7 +145,9 @@ private:
void publish_actuator_controls();
float get_ice_shedding_output(hrt_abstime now, bool any_stopped_motor_failed);
void handle_stopped_motors(const hrt_abstime now);
float get_ice_shedding_output(hrt_abstime now);
AllocationMethod _allocation_method_id{AllocationMethod::NONE};
ControlAllocation *_control_allocation[ActuatorEffectiveness::MAX_NUM_MATRICES] {}; ///< class for control allocation calculations