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
Related terms
Inverse kinematics
Inverse kinematics finds joint positions that produce a desired robot end-effector position, orientation, or other geometric task. A target can have multiple solutions, no solution, or a continuous family of solutions.
Robot Jacobian
A robot Jacobian is a configuration-dependent matrix that maps joint velocities to a chosen task velocity, often an end-effector twist. It describes the local relationship between joint motion and task motion.
Kinematic singularity
A kinematic singularity is a robot configuration where the task Jacobian has lower rank than the maximum it can attain for that mechanism and task. At that configuration the robot loses one or more instantaneous task-motion directions.
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.