# Forward kinematics

An articulated six DOF robotic arm uses forward kinematics to position the gripper.
The forward kinematics equations define the trajectory of the end-effector of a PUMA robot reaching for parts.

Forward kinematics refers to the use of the kinematic equations of a robot to compute the position of the end-effector from specified values for the joint parameters.[1] The kinematics equations of the robot are used in robotics, computer games, and animation. The reverse process that computes the joint parameters that achieve a specified position of the end-effector is known as inverse kinematics.

## Kinematics equations

The kinematics equations for the series chain of a robot are obtained using a rigid transformation [Z] to characterize the relative movement allowed at each joint and separate rigid transformation [X] to define the dimensions of each link. The result is a sequence of rigid transformations alternating joint and link transformations from the base of the chain to its end link, which is equated to the specified position for the end link,

$[T] = [Z_1][X_1][Z_2][X_2]\ldots[X_{n-1}][Z_n],\!$

where [T] is the transformation locating the end-link. These equations are called the kinematics equations of the serial chain.[2]

In 1955, Jacques Denavit and Richard Hartenberg introduced a convention for the definition of the joint matrices [Z] and link matrices [X] to standardize the coordinate frame for spatial linkages.[3][4] This convention positions the joint frame so that it consists of a screw displacement along the Z-axis

$[Z_i] = \operatorname{Trans}_{Z_{i}}(d_i) \operatorname{Rot}_{Z_{i}}(\theta_i),$

and it positions the link frame so it consists of a screw displacement along the X-axis,

$[X_i]=\operatorname{Trans}_{X_i}(a_{i,i+1})\operatorname{Rot}_{X_i}(\alpha_{i,i+1}).$

Using this notation, each transformation-link goes along a serial chain robot, and can be described by the coordinate transformation,

${}^{i-1}T_{i} = [Z_i][X_i] = \operatorname{Trans}_{Z_{i}}(d_i) \operatorname{Rot}_{Z_{i}}(\theta_i) \operatorname{Trans}_{X_i}(a_{i,i+1}) \operatorname{Rot}_{X_i}(\alpha_{i,i+1}),$

where θi, di, αi,i+1 and ai,i+1 are known as the Denavit-Hartenberg parameters.

### Kinematics equations revisited

The kinematics equations of a serial chain of n links, with joint parameters θi are given by[5]

$[T] = {}^{0}T_n = \prod_{i=1}^n {}^{i - 1}T_i(\theta_i),$

where ${}^{i - 1}T_i(\theta_i)$ is the transformation matrix from the frame of link $i$ to link $i-1$. In robotics, these are conventionally described by Denavit–Hartenberg parameters.[6]

### Denavit-Hartenberg matrix

The matrices associated with these operations are:

$\operatorname{Trans}_{Z_{i}}(d_i) = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & d_i \\ 0 & 0 & 0 & 1 \end{bmatrix}, \quad \operatorname{Rot}_{Z_{i}}(\theta_i) = \begin{bmatrix} \cos\theta_i & -\sin\theta_i & 0 & 0 \\ \sin\theta_i & \cos\theta_i & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}.$

Similarly,

$\operatorname{Trans}_{X_i}(a_{i,i+1}) = \begin{bmatrix} 1 & 0 & 0 & a_{i,i+1} \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix},\quad \operatorname{Rot}_{X_i}(\alpha_{i,i+1}) = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & \cos\alpha_{i,i+1} & -\sin\alpha_{i,i+1} & 0 \\ 0 & \sin\alpha_{i,i+1} & \cos\alpha_{i,i+1} & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}.$

The use of the Denavit-Hartenberg convention yields the link transformation matrix, [i-1Ti] as

$\operatorname{}^{i-1}T_i = \begin{bmatrix} \cos\theta_i & -\sin\theta_i \cos\alpha_{i,i+1} & \sin\theta_i \sin\alpha_{i,i+1} & a_{i,i+1} \cos\theta_i \\ \sin\theta_i & \cos\theta_i \cos\alpha_{i,i+1} & -\cos\theta_i \sin\alpha_{i,i+1} & a_{i,i+1} \sin\theta_i \\ 0 & \sin\alpha_{i,i+1} & \cos\alpha_{i,i+1} & d_i \\ 0 & 0 & 0 & 1 \end{bmatrix},$

known as the Denavit-Hartenberg matrix.