The mathematics of robot motion: how joint configurations map to end-effector poses, how to solve for desired positions, and where robots lose dexterity.
Kinematics is the branch of mechanics that studies the motion of bodies without considering the forces that cause the motion. In robotics, kinematics focuses on the geometric relationship between the links and joints of a robot and the resulting position, velocity, and acceleration of the end-effector (the tool or gripper at the tip of the arm).
Every robot controller needs kinematics. When you command a robot arm to move its gripper to a specific location in space, the controller must solve an inverse kinematics problem: determine what joint angles produce the desired end-effector pose. When the robot reports its current joint angles, forward kinematics computes where the end-effector actually is. Without kinematics, you cannot plan paths, avoid obstacles, or coordinate multiple robots.
An n-DOF serial robot chain has n joints and n+1 links. The total degrees of freedom determine the dimension of the configuration space (C-space), which is the space of all possible joint configurations.
Before diving into kinematics equations, we need tools to represent position and orientation in 3D space.
A 3x3 rotation matrix R belongs to the Special Orthogonal group SO(3). It satisfies R^T R = I and det(R) = 1. Rotation matrices are used to describe the orientation of one coordinate frame relative to another.
Elementary rotations about the x, y, z axes can be composed to represent any orientation. The order of multiplication matters because rotations are not commutative.
Three angles that parameterize a rotation. Common conventions include ZYZ (used in many industrial robots), ZYX (roll-pitch-yaw, used in aerospace), and XYZ. Euler angles are intuitive but suffer from gimbal lock: when two rotation axes align, one degree of freedom is lost.
Unit quaternions q = (w, x, y, z) with |q| = 1 provide a singularity-free representation of rotations. They are compact (4 numbers vs 9 for a matrix), and interpolation between orientations (SLERP) is smooth and efficient. Widely used in game engines and modern robotics software.
A 4x4 matrix T in SE(3) combines rotation and translation into a single compact representation:
Composing transformations is simple matrix multiplication: T_02 = T_01 * T_12 gives the pose of frame 2 relative to frame 0. This is the foundation of forward kinematics.
Any rotation can be described by an axis (unit vector omega) and an angle theta. Related to rotation matrices via Rodrigues' formula: R = I + sin(theta) [omega]_x + (1 - cos(theta)) [omega]_x^2, where [omega]_x is the 3x3 skew-symmetric matrix of omega. The axis-angle form connects naturally to the product of exponentials formulation.
Forward kinematics maps joint variables to the end-effector pose. For a serial chain of n joints, the end-effector pose is computed by multiplying the transformation matrices of each link:
Each T_{i-1,i} depends on the joint variable q_i (an angle for revolute joints, a displacement for prismatic joints) and the fixed geometric parameters of the link.
The Denavit-Hartenberg (DH) convention, introduced by Jacques Denavit and Richard Hartenberg in 1955, provides a systematic method for assigning coordinate frames to robot links. It reduces the description of each link to exactly four parameters.
| Parameter | Symbol | Description |
|---|---|---|
| Link length | a_i | Distance along x_i from z_{i-1} to z_i (always positive or zero) |
| Link twist | alpha_i | Angle about x_i from z_{i-1} to z_i |
| Link offset | d_i | Distance along z_{i-1} from x_{i-1} to x_i |
| Joint angle | theta_i | Angle about z_{i-1} from x_{i-1} to x_i |
For a revolute joint, theta_i is the joint variable (varies during motion); the other three are fixed geometric constants. For a prismatic joint, d_i is the joint variable.
Each link's transformation is computed as:
T_{i-1,i} = [ cos(theta) -sin(theta)*cos(alpha) sin(theta)*sin(alpha) a*cos(theta) ]
[ sin(theta) cos(theta)*cos(alpha) -cos(theta)*sin(alpha) a*sin(theta) ]
[ 0 sin(alpha) cos(alpha) d ]
[ 0 0 0 1 ]
An alternative convention by John Craig places the coordinate frame at the proximal end of the link rather than the distal end. The transformation order becomes Rot_x(alpha_{i-1}) * Trans_x(a_{i-1}) * Rot_z(theta_i) * Trans_z(d_i). Both conventions are widely used; consistency is what matters. Industrial robots from ABB, KUKA, and FANUC typically use the standard (distal) convention in their documentation.
| Joint i | theta_i | d_i | a_i | alpha_i |
|---|---|---|---|---|
| 1 | theta_1 (var) | 0 | L1 | 0 |
| 2 | theta_2 (var) | 0 | L2 | 0 |
The forward kinematics gives: x = L1*cos(theta_1) + L2*cos(theta_1 + theta_2), y = L1*sin(theta_1) + L2*sin(theta_1 + theta_2). This is the simplest non-trivial example and is a standard homework problem in every robotics course.
An alternative to DH parameters, the Product of Exponentials formulation is based on Lie group theory and the exponential map from se(3) to SE(3). Popularized by Murray, Li, and Sastry (1994) and the Modern Robotics textbook by Lynch and Park.
Each joint is described by a screw axis S_i = (omega_i, v_i) in the home (zero) configuration. The forward kinematics is:
where M is the end-effector pose at the home configuration (all joints at zero), and e^{[S_i]*q_i} is the matrix exponential of the 4x4 twist matrix [S_i] scaled by the joint variable q_i.
For a revolute joint with screw axis S = (omega, v) and joint angle theta:
where e^{[omega]*theta} is computed by Rodrigues' formula. This formulation is used in Drake, Pinocchio, and other modern robotics libraries.
Inverse kinematics (IK) is the problem of finding joint variables q = (q_1, ..., q_n) such that FK(q) = T_desired. This is fundamentally harder than forward kinematics because the mapping is generally many-to-one (multiple joint configurations can produce the same end-effector pose), and solutions may not exist if the desired pose is outside the workspace.
For robots with specific geometric structures, IK can be solved in closed form using trigonometric identities. This is fast, exact, and enumerates all solutions. Pieper's theorem (1968) states that a 6-DOF robot with three consecutive revolute joint axes intersecting at a point (a spherical wrist) always admits a closed-form IK solution.
When closed-form solutions are not available (redundant robots, non-standard geometries), numerical methods iteratively converge to a solution.
A 6-DOF robot can have up to 16 IK solutions for a given end-effector pose. In practice, elbow-up/elbow-down and wrist-flip configurations are the main solution branches. Redundant robots (7+ DOF) have infinitely many solutions, forming a self-motion manifold.
The Jacobian matrix J(q) maps joint velocities to end-effector velocities. It is the fundamental tool for differential kinematics, force analysis, singularity detection, and numerical IK.
For a serial chain, each column J_i of the Jacobian corresponds to joint i:
These quantities are extracted directly from the intermediate transformation matrices T_0i computed during forward kinematics.
By the principle of virtual work, the Jacobian transpose maps end-effector forces/torques to joint torques:
This is used in force control, impedance control, and computing the load a robot can support at a given configuration.
Yoshikawa's manipulability measure w = sqrt(det(J * J^T)) quantifies how well the robot can move in all directions at a given configuration. When w = 0, the robot is at a singularity. The manipulability ellipsoid (eigenvalues/eigenvectors of J * J^T) visualizes directional dexterity.
The workspace is the set of all positions (and orientations) the end-effector can reach. Understanding workspace geometry is essential for robot design and task planning.
For a 2-link planar arm with link lengths L1 and L2 (L1 > L2), the reachable workspace is an annulus (ring) with inner radius |L1 - L2| and outer radius L1 + L2. For a 6-DOF anthropomorphic arm (like the PUMA 560 or KUKA KR series), the workspace is roughly a hollow sphere, with exclusion zones caused by joint limits, self-collisions, and singularity surfaces.
A singularity is a configuration where the robot loses one or more degrees of freedom of motion. Mathematically, it occurs when the Jacobian loses rank: rank(J(q)) < min(m, n), where m is the task dimension (typically 6) and n is the number of joints.
The simplest non-trivial robot arm. Two revolute joints, both in the xy-plane.
Forward Kinematics:
Inverse Kinematics (geometric): Using the law of cosines:
Jacobian:
J = [ -L1*sin(q1) - L2*sin(q1+q2) -L2*sin(q1+q2) ]
[ L1*cos(q1) + L2*cos(q1+q2) L2*cos(q1+q2) ]
The determinant det(J) = L1*L2*sin(q2). Singularity occurs at q2 = 0 (arm fully extended) or q2 = pi (arm folded back).
The Selective Compliance Assembly Robot Arm has 2 revolute joints for planar positioning, 1 prismatic joint for vertical motion, and 1 revolute joint for orientation. Popular for pick-and-place and PCB assembly.
| Joint | Type | theta | d | a | alpha |
|---|---|---|---|---|---|
| 1 | R | q1 | 0 | L1 | 0 |
| 2 | R | q2 | 0 | L2 | pi |
| 3 | P | 0 | q3 | 0 | 0 |
| 4 | R | q4 | 0 | 0 | 0 |
The SCARA's workspace is a cylindrical shell. IK decouples cleanly: q1 and q2 determine xy position (same as 2-link planar), q3 determines z height, q4 determines end-effector rotation.
The Unimation PUMA 560 is one of the most studied robots in history. It has 6 revolute joints with a spherical wrist (joints 4, 5, 6 axes intersect). DH parameters (standard convention):
| Joint | theta | d | a | alpha |
|---|---|---|---|---|
| 1 | q1 | 0 | 0 | -90deg |
| 2 | q2 | 0 | 431.8mm | 0 |
| 3 | q3 | 149.1mm | -20.3mm | 90deg |
| 4 | q4 | 433.1mm | 0 | -90deg |
| 5 | q5 | 0 | 0 | 90deg |
| 6 | q6 | 0 | 0 | 0 |
IK is solved by position-orientation decoupling: joints 1-3 position the wrist center, joints 4-6 orient the end-effector. The PUMA 560 has up to 8 IK solutions (2 shoulder x 2 elbow x 2 wrist configurations). Paul, Shimano, and Mayer published the complete closed-form solution in 1981.
The KUKA LBR iiwa has 7 revolute joints, making it kinematically redundant (7 joints for a 6-DOF task). The extra DOF enables null-space motion: the robot can change its elbow position without moving the end-effector. This is exploited for obstacle avoidance, singularity avoidance, joint limit avoidance, and optimizing manipulability during task execution.
ABB, FANUC, KUKA, and Yaskawa robots use optimized IK solvers for welding, painting, and assembly. Cycle times under 1 second require microsecond-level IK computation. Offline programming tools (RobotStudio, KUKA.Sim) rely on FK/IK for path planning.
The Intuitive Surgical da Vinci system uses kinematic models of its 7-DOF instruments for teleoperation mapping. Wrist kinematics must be solved in real-time to map surgeon hand motions to instrument tip motions through a remote center of motion constraint.
IK is fundamental in character animation. Pixar, DreamWorks, and game engines (Unity, Unreal) use CCD, FABRIK, and analytical IK for skeletal animation. Foot placement on uneven terrain, hand reaching, and gaze direction all require real-time IK.
Boston Dynamics' Spot and Atlas use kinematics to compute foot placements, body poses, and swing trajectories. Each leg is a serial chain; whole-body IK coordinates all four (or two) legs plus the torso to maintain balance and traverse terrain.
The Canadarm2 on the ISS is a 7-DOF manipulator that uses kinematics for berthing spacecraft and maintaining the station. Its redundancy enables obstacle avoidance in the cluttered station environment. Latency-tolerant IK accounts for communication delays.
Kinematic models of the human arm (7-DOF) and leg (6-DOF) are used to design prosthetic limbs and powered exoskeletons. IK ensures natural-looking motion patterns. Ekso Bionics and ReWalk use kinematic models for gait generation.
Free textbook with rigorous treatment of kinematics using the PoE formulation. Chapters 4-6 cover FK, velocity kinematics, and IK. Companion Coursera course available.
Graduate-level textbook. Chapters 2-3 cover DH parameters, FK, IK, and differential kinematics in detail. The Jacobian treatment is particularly thorough.
The original treatment of robotics using Lie groups and the product of exponentials. Chapters 2-3. Free PDF available from the authors.
"A Kinematic Notation for Lower-Pair Mechanisms Based on Matrices." The original paper introducing DH parameters. Published in ASME Journal of Applied Mechanics.
Introduced the manipulability measure w = sqrt(det(J*J^T)) and the manipulability ellipsoid. Fundamental for workspace quality analysis and robot design optimization.
Oussama Khatib's course with video lectures. Lectures 2-8 cover kinematics, Jacobians, and IK in detail. The best video resource for learning robot kinematics.