Robot control

Differential inverse kinematics

Definition

Differential inverse kinematics computes generalized velocities that produce a desired end-effector or task-space velocity through the robot Jacobian. It solves a local velocity problem rather than a full pose problem over a finite motion.

Also known as: Differential IK, Velocity-level inverse kinematics, Velocity inverse kinematics

Updated

Map task velocity to joint velocity

The robot Jacobian relates generalized velocity to the spatial velocity of an end effector or another point. Differential inverse kinematics reverses that local relationship. A basic solver uses a pseudoinverse, while a constrained formulation solves an optimization problem for the next velocity.

Drake's differential inverse-kinematics documentation describes a program that tracks a desired spatial velocity while enforcing joint-position, velocity, and acceleration limits. It can also use motion in the Jacobian's null space to keep joints near a preferred posture.

This is useful for joystick control, Cartesian servoing, and converting a stream of target poses into smooth joint commands. Re-solving at each control step lets the command respond to the current configuration.

Local motion rather than a global pose solution

Conventional inverse kinematics asks for a configuration that satisfies pose or geometric constraints. Differential IK asks for an instantaneous velocity that moves in a desired task-space direction. Integrating those velocities can approach a pose, but accumulated error and the chosen update rule affect the result.

It also differs from inverse dynamics, which computes forces or torques using a dynamic model. Differential IK is kinematic unless a separate controller adds dynamic constraints.

Singularities and integration error matter

Near a kinematic singularity, a modest task velocity can require very large joint velocities. Damping or velocity scaling can reduce that problem but also introduces tracking error. Conflicting task and joint-limit constraints can make the requested motion infeasible.

Because the computation is local, a sequence of feasible steps can still drift into a poor posture or dead end. Collision constraints, posture objectives, and longer-horizon planning may be needed. Drake's documented formulation can return no solution or a stuck status, which should be handled explicitly by the surrounding control system.

Sources