Open Source Robotics

A curated collection of high-quality open source robotics projects, tools, and software to propel the robotics community forward.

Task-Priority Inverse Kinematics

  • Also called: hierarchical inverse kinematics, prioritized inverse kinematics
  • Category: Foundations & spatial maths › Kinematics
  • Tags: inverse-kinematics, redundancy-resolution, whole-body-control, optimization, humanoids

Inverse kinematics for redundant robots in which tasks are ranked, and each lower-priority task is solved only in the motions that leave higher-priority tasks unaffected.

Definition

Task-priority inverse kinematics resolves the motion of a redundant robot when it must meet several goals at once, such as keeping balance, placing a hand, holding a gaze direction and staying near a comfortable posture. The tasks are ordered by importance. The highest-priority task is solved first, typically by a pseudo-inverse of its Jacobian; the next task is then solved only within the null space of the first, the set of joint motions that do not disturb it, and so on down the list. A lower-priority task is achieved as well as possible without ever degrading a higher one. Nakamura, Hanafusa and Yoshikawa formalized this idea in 1987, and Siciliano and Slotine gave a widely used recursive formulation for any number of tasks in 1991.

In its classic form, the method works at the velocity level: q̇ = J₁⁺ ẋ₁ + N₁ (J₂N₁)⁺ (ẋ₂ − J₂J₁⁺ẋ₁) and so on, where N₁ projects onto the null space of task 1. Two practical issues arise. When two tasks conflict, the projected Jacobian of the lower task can become singular even though neither task is singular alone, and damping is needed to keep joint velocities bounded. And joint limits, collision avoidance and contact forces are inequalities, which pure null-space projection handles poorly.

Modern solvers therefore pose each priority level as a quadratic program, solved in sequence or with a dedicated hierarchical QP solver, so that equality and inequality tasks can appear at any level. This is the basis of the stack-of-tasks approach and of libraries such as OpenSoT and CartesI/O. A common alternative is weighted, or soft-priority, inverse kinematics, which sums all tasks in one cost with different weights; it is simpler and smoother but lets tasks trade off against each other instead of enforcing strict precedence.

Why it matters

Humanoids, quadrupeds with arms and mobile manipulators have many more joints than any single task needs. Task-priority inverse kinematics makes it explicit which goals must never be violated and which can give way, which is central to whole-body motion on such robots.

Key applications

  • Whole-body motion of humanoid and legged robots
  • Mobile manipulation with base and arm moving together
  • Redundant arms that must avoid joint limits and obstacles while tracking a tool path
  • Teleoperation and motion retargeting onto robots with different kinematics
  • Trajectory tracking for wheeled-legged robots

In practice

On a wheeled-legged quadruped, a motion planner produces trajectories for the body, the wheels and the feet. To track them on the robot, the team builds a stack of tasks: at the top, joint position and velocity limits as inequality constraints; next, the contact points of the wheels that must stay on the ground; then the body pose; and last a posture task that pulls the joints toward a nominal configuration. A hierarchical QP solver runs this stack at each control cycle and outputs joint references for the low-level controllers. When the body cannot reach a commanded height without lifting a wheel, the solver keeps the wheel on the ground and lets the body task fall short, which the team sees as a tracking error rather than a slipping wheel.

Common misconceptions

  • Lower-priority tasks are ignored — they are met as closely as possible within the motions left free by higher tasks
  • Weighted inverse kinematics gives the same result — weights let tasks trade off, while strict priorities never let a lower task disturb a higher one
  • The method avoids all singularities — conflicts between tasks create algorithmic singularities that require damping or reordering
  • Null-space projection handles joint limits on its own — inequalities need extra treatment, which is why hierarchical quadratic programs are widely used

Who should know this

  • Whole-body control engineers for humanoids and legged robots
  • Mobile manipulation developers
  • Motion planning and teleoperation engineers
  • Robotics students studying redundancy resolution

Related technologies

  • OpenSoT
  • CartesI/O
  • Stack of Tasks
  • Hierarchical Quadratic Programming
  • Damped Least Squares

Related terms

  • Inverse Kinematics
  • Jacobian
  • Whole-Body Control
  • Operational Space Control
  • Loco-Manipulation
  • Humanoid Robot

Related projects

  • Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
  • GEAR-SONIC: NVIDIA's whole-body controller for the Unitree G1, trained to track any human motion
  • GTSAM: Factor-graph optimization library powering many modern SLAM backends
  • ASAP: Sim-to-real framework for agile humanoid whole-body skills using delta action models
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization

This website requires JavaScript to function properly. Please enable JavaScript to explore our collection of open source robotics projects.