At each control step, WBC builds and solves an optimisation problem whose decision variables are typically joint accelerations, contact forces and joint torques. (1) A set of tasks is defined, each as an operational-space function (e.g. center-of-mass position, torso orientation, hand position), expressed via a task Jacobian and a desired acceleration. (2) Tasks are assigned priorities or weights: in the strict-hierarchy approach lower-priority tasks are solved in the null space of higher-priority tasks (null-space projection), while in hierarchical QP successive QPs are solved in a cascade. (3) Constraints include the dynamics equations (M·q̈ + h = Sᵀ·τ + Jcᵀ·f), friction cones and contact unilaterality, and torque and position limits. (4) The QP solver computes optimal joint torques that are sent to the actuators. Formulating tasks in operational space stems from Khatib's operational space formulation, and null-space projection ensures dynamic consistency between priorities.
Humanoid and legged robots have a large number of degrees of freedom, are redundant, and must simultaneously pursue conflicting objectives (balance, locomotion, manipulation) while maintaining contacts and physical limits. Controlling individual joints or limbs in isolation guarantees neither whole-system consistency nor stability. WBC solves the problem of consistent, simultaneous coordination of all DoF with task prioritisation and hard constraints.
A set of tasks (balance, locomotion, manipulation, posture) ordered by strict hierarchy or weighted; determines which objectives take precedence in case of conflict.
The full rigid-body dynamics model (M·q̈ + h = Sᵀ·τ + Jcᵀ·f) used as a hard constraint in the optimisation.
Khatib's formalism expressing dynamics and control in the task space (e.g. hand, center of mass) via task Jacobians and operational-space inertia.
Official
Contact unilaterality and friction-cone constraints (often linearised to pyramids) ensuring ground-reaction forces are feasible.
Official
A quadratic-programming solver (or a cascade of QPs in hierarchical QP) computing optimal torques/forces satisfying tasks and constraints at each loop step.
Official
A mechanism exploiting robot redundancy: lower-priority tasks are projected into the null space of higher-priority tasks, guaranteeing a strict priority hierarchy.
Official
Conflicting tasks and constraints (contact, limits) can make the QP infeasible, yielding no solution at a control step.
At high control rates the QP solve time must fit within the step budget; overruns destabilise the robot.
Errors in mass, inertia, friction or contact-geometry models translate into tracking errors and loss of balance.
Activating or deactivating tasks and changing contacts can cause step changes in torques.
Khatib introduces the operational space formulation — the foundation for task-space control and later WBC.
Khatib and colleagues formalise whole-body control for human-like robots.
Sentis and Khatib present the synthesis of whole-body behaviors through hierarchical control of behavioral primitives.
Escande, Mansard and Wieber demonstrate hierarchical quadratic programming for fast, online humanoid motion generation — key to modern QP-based WBC.
Kuindersma et al. describe optimisation-based locomotion, estimation and control for the Atlas humanoid — a mature hardware deployment of WBC.
Proliferation of learned whole-body control policies and combining WBC with RL and MPC in commercial humanoids.
Time complexity: O(n³) na krok sterowania.
WBC loop frequency (typically hundreds of Hz up to 1 kHz); affects stability and responsiveness.
Number and ordering of priority levels (strict hierarchy vs. weights in a single QP).
Weights in weighted WBC (soft priorities) determining the trade-off between tasks.
Number of sides of the pyramid linearising the friction cone; accuracy vs. QP cost trade-off.
Regularisation of variables (e.g. torque minimisation) ensuring a well-conditioned QP.
WBC runs as a real-time control loop on the onboard CPU; QP solvers are optimised for CPU vectorisation and low latency.
The optimisation formulation itself is hardware-independent; solver and platform choice depend on real-time requirements.