# DH Matrix to homogeneous transformation matrix for each joint

Given a DH matrix for a set of joints, how would you convert the data into homogeneous transformation matrices for each joint? I've looked online, but can't find a good tutorial.

## 3 Answers

Thumbnail image: In addition to the answer posted by Gouda, I would like to point out that there are different versions of D-H parameter convention. Gotta be careful which one you refer to. Also, in the computation, only 2 cylindrical motions are needed to define the homogeneous matrix, meaning you can combine the translation and rotation along the same axis: $$\begin{bmatrix} c_{\theta_i} & -s_{\theta_i} & 0 & 0 \\ s_{\theta_i} & c_{\theta_i} & 0 & 0\\ 0 & 0 & 1 & d_i\\ 0 & 0 & 0 & 1 \end{bmatrix}\begin{bmatrix} 1 & 0 & 0 & a_i\\ 0 & c_{\alpha_i} & -s_{\alpha_i} & 0 \\ 0 & s_{\alpha_i} & c_{\alpha_i} & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}$$ In other words, DH paramters work as if it is a 4-DoF serial robot with two cylindrical joints. This is not a nice way to parameterize the relative location of ith joint axis w.r.t. (i-1)th (singularity exists). Multiplying with four matrices is just a waster of time.

You should read this paper: "Lipkin 2005: A Note on Denavit-Hartenberg Notation in Robotics". It explains the 3 main DH parameter conventions and how they differ.