Robot control
Hierarchical quadratic programming
Definition
Hierarchical quadratic programming solves several quadratic optimisation tasks in strict priority order, so a lower-priority robot task cannot degrade the best attainable result of a higher-priority one. It is widely used to resolve competing whole-body motion and constraint objectives.
Also known as: HQP, Hierarchical QP
Updated
Strict priorities between optimisation tasks
A quadratic program can choose joint velocities, accelerations, torques, or contact forces subject to linear equalities and inequalities. Hierarchical quadratic programming groups such objectives into priority levels. Each level is solved without allowing later levels to worsen the optimum already achieved by an earlier level.
This differs from putting every objective into one weighted sum. Weights trade errors against each other, and a sufficiently large low-priority error can influence a nominally important task. A strict hierarchy preserves lexicographic priority, subject to the formulation and numerical tolerance.
Whole-body motion under constraints
A humanoid hierarchy might place rigid-contact consistency, actuator limits, and balance constraints above hand tracking, then use posture as a final preference. Equality tasks can request a desired end-effector acceleration. Inequalities can impose joint, torque, friction, or collision bounds.
Escande, Mansard and Wieber developed a solver for ordered least-squares problems with equality and inequality constraints and applied it to constrained humanoid motion generation. Herzog and colleagues report real torque-controlled humanoid experiments using cascaded quadratic programs for hierarchical inverse dynamics and momentum control. Those results support that implementation and test platform, not every HQP controller.
HQP is a method that can implement whole-body control; it is not the whole-body control objective itself. Null-space projection can also preserve priorities for some equality tasks. HQP provides a direct way to include inequalities and changing active constraints.
Feasibility, models, and transitions
A hierarchy cannot make an impossible top-level constraint feasible. Designers need suitable slack variables, constraint relaxation, or a controlled failure mode when contacts, limits, and task demands conflict. Poor scaling or nearly dependent constraints can also make the numerical problem ill-conditioned.
The solution is only as accurate as the robot model, state estimate, contact assumptions, and task Jacobians. Adding, removing, or reprioritising a task can produce a discontinuous command unless the controller manages transitions. Real-time use also depends on problem size, solver behaviour as constraints activate, and a reliable fallback when an iteration exceeds its deadline.
Sources
Related terms
Whole-body control
Whole-body control coordinates a robot’s joints and contacts to satisfy several motion and force objectives together. In humanoids, it commonly combines balance, foot motion, hand tasks, and posture subject to physical constraints.
Operational-space control
Operational-space control formulates a robot’s motion and force behavior in task coordinates, such as the position and orientation of its hand, while accounting for the robot’s dynamics. Secondary joint objectives can be coordinated with the primary task.
Inverse dynamics
Inverse dynamics calculates the joint forces or torques required for specified joint positions, velocities, and accelerations under a dynamics model. The result also depends on gravity and specified external loading.
Null space
The null space of a matrix is the set of vectors it maps to zero. For a robot task Jacobian, it contains joint velocities that produce no instantaneous motion in the specified task coordinates.