Forward Kinematics: A robotics classic

Robotics
Math
Authors

Alireza Azimi

Veronika Ivanytska

Published

June 28, 2025

Modified

June 28, 2025

Introduction

Have you ever tried to pinpoint the exact position of your hand in 3D space just by looking at it? It’s not so easy! In robotics, knowing the precise location of an end-effector—like a robot’s hand—is essential for tasks such as picking up objects or assembling parts. This is where forward kinematics come in: it’s the mathematical process that allows us to calculate the position and orientation of a robot’s end-effector based on its joint angles and link lengths.

But how do we actually perform these calculations? One of the most widely used methods is the Denavit-Hartenberg (DH) transformation. By inputting the robot’s joint angles and link dimensions, the DH transformation gives us the exact cartesian coordinates and orientation of the end-effector in space. This powerful technique forms the foundation for controlling and programming robotic arms in real-world applications.

Denavit-Hartenberg (DH) Transformation

\[ T_i^{i+1} = \begin{bmatrix} \cos\theta_i & -\sin\theta_i \cos\alpha_i & \sin\theta_i \sin\alpha_i & a_i \cos\theta_i \\ \sin\theta_i & \cos\theta_i \cos\alpha_i & -\cos\theta_i \sin\alpha_i & a_i \sin\theta_i \\ 0 & \sin\alpha_i & \cos\alpha_i & d_i \\ 0 & 0 & 0 & 1 \end{bmatrix} \]

Where the parameters are as follows:

  • \(\theta_i\): Joint angle — rotation about the \((z_{i-1})\) axis
  • \(d_i\): Link offset — translation along the \((z_{i-1})\) axis
  • \(a_i\): Link length — translation along the \((x_i)\) axis
  • \(\alpha_i\): Link twist — rotation about the \((x_i)\) axis

\(T_0^{1}\) represents a transformation between frame 0 (the base) and frame 1 which is connected through link 1.

Explore

A good exercise would be to extend the tranformation to 3 dimensions. Have fun!