robotics//drone//multirotor//control allocation

Control allocation is the step that distributes the forces and torques a controller asks for among the actuators that can produce them, choosing one split when several would do and a new one when an actuator weakens or dies, and it is what keeps a multirotor, a ship with several thrusters or an aircraft with redundant control surfaces flying through a failure. The controller says what the vehicle needs; allocation decides who delivers it.


Control allocation is the step that distributes the forces and torques a controller asks for among the actuators that can produce them, choosing one split when several would do and a new one when an actuator weakens or dies, and it is what keeps a multirotor, a ship with several thrusters or an aircraft with redundant control surfaces flying through a failure. The controller says what the vehicle needs; allocation decides who delivers it.

The relation is a matrix. If vvv collects what the controller wants (total thrust and three torques for a drone) and uuu the actuator commands, then

v=B diag⁡(η) u,0≤ηi≤1,v=B\,\operatorname{diag}(\eta)\,u,\qquad 0\le\eta_i\le1,v=Bdiag(η)u,0≤ηi​≤1,

where BBB holds the frame's geometry and ηi\eta_iηi​ the effectiveness of actuator iii (1 when healthy, 0.7 for a motor delivering 70 %, 0 when it is gone). With exactly as many actuators as axes and all of them healthy, BBB is square and allocation is the fixed motor mixer. With more actuators, many uuu give the same vvv, and the allocator picks one that respects the limits and spreads the effort; when an ηi\eta_iηi​ drops, it must find out and recompute.

Redundancy decides what a failure costs. A hexacopter that loses a motor still has five to share four tasks, and it redistributes thrust and keeps flying (how much margin is left depends on the arrangement of spin directions). A quadcopter has no spare: four motors are the minimum for thrust, roll, pitch and yaw, so with one gone it can only stay up by giving up yaw and spinning on itself while it keeps controlling tilt and height, as Mueller and D'Andrea showed in 2014. Most products settle for less: a degraded mode, return home or land.

Finding the weak motor is an estimation problem. Adaptive motor-loss compensation estimates each ηi\eta_iηi​ online, from the gap between commanded and observed rotation (a recursive least squares in the spirit of the self-tuning regulator), and then commands deliberately asymmetric thrusts. A plain LQR with a motor at 70 % keeps the drone stable but drifting; the same LQR fed with the estimate brings the position error back down.

It is reconfiguration for actuators. Fault-tolerant control calls this the active route: detect, isolate, redistribute. Its passive cousin, a robust controller that tolerates a weak motor unaware, works only for the losses it was designed for.

The code that reallocates after a failure is the code that runs least, and it hides the most bugs. It is trusted only after fault injection in simulation and on the bench, with a motor cut at the worst moment.

Whether a split exists at all is a rank question on B diag⁡(η)B,\operatorname{diag}(\eta)Bdiag(η), the actuator side of controllability.