Denavit-Hartenberg conventions

Any robotic manipulator can be described using the following components:

Types of joints

Kinematic parameters

Every link can be defined by two parameters, aa and α\alpha. ai1a_{i-1} is the link’s length, given by the distance between two joints along the common perpendicular. The first and last joints have an aa of 0. αi1\alpha_{i-1} is the angle between the zz axes of the joints, measured anti-clockwise around the xx axis.

Every joint also has its own parameters that together describe every unique configuration of the robot. did_{i} is the perpendicular distance between the xx axes of two frames along the zz-axes. θi\theta_{i} is the angle between the common normal of two joints, measured around the zz axes. For revolute joints, θi\theta_{i} is the variable that describes the defines of the joint, and likewise did_{i} for prismatic joints.

imgs/D-H.png

These parameters give us a very convenient mapping to a transformation matrix mapping frame ii to i1i-1

^{i-1}_{i}T&=R_{X}(\alpha_{i-1})\,D_{X}(a_{i-1})\,R_{Z}(\theta_{i})\,D_{Z}(d_{i})\\ &=\begin{bmatrix}c\theta_{i} & -s\theta_{i} & 0 & a_{i-1} \\ s\theta_{i}c\alpha_{i-1} & c\theta_{i}c\alpha_{i-1} & -s\alpha_{i-1} & -s\alpha_{i-1}d_{i} \\ s\theta_{i}s\alpha_{i-1} & c\theta_{i}s\alpha_{i-1} & c\alpha_{i-1} & c\alpha_{i-1}d_{i} \\ 0 & 0 & 0 & 1 \end{bmatrix}\\ \end{align*}$$