DenavitHartenberg Parameters
Author: Rachid Manseur, ECE Dept. UWF
Robot manipulators are a sequence of links
articulated at joints. To analyze the motion of robot manipulators, reference
frames are attached to each link starting at frame F_{o}, attached to the fixed link, all the
way to frame F_{n}, attached to the robot endeffector
(assuming the robot has n joints). The process followed in assigning frames to
links is based on the DenavitHartenberg parameters.
Given two consecutive link frames on a robot
manipulator, frames F_{i1} and F_{i},
frame F_{i} will be uniquely determined from
frame F_{i1} by use of the parameters d_{i},
a_{i}, a_{i}, and q_{i} illustrated in Figure 1.
Figure1: DHParameters 
Rules & Definitions

Notes:
The
rules and guidelines given here simplify the kinematic
modeling and analysis of robot manipulators:
The
reference vector z of a linkframe is always on a joint axis.
The parameter d_{i} is algebraic and may be negative. It is
constant if joint i is
revolute and variable when joint i is translational.
The parameter a_{i} is always constant and positive.
a _{i}
is always chosen positive with the smallest possible magnitude.
q _{i}
is variable when joint i is revolute, and constant
when joint i is translational. When joint i is translational, q_{i} is constant and determined by the structure of the
robot.
d_{i} is variable when joint i is translational,
and constant when joint i is revolute.
Robot Manipulator Modeling.
A mathematical description for robot manipulators is usually given as a table
of DHparameters. The table contains one row of four parameters for each link
frame. The DenavitHartenberg parameters allow one
reference frame to be located exactly with respect to the preceding link frame.
To understand how these four parameters can exactly locate a frame, consider,
for example, that a frame B is determined from a Frame A by the four DH
parameters d, a, a, and q.
This situation is illustrated in Figure 2.

Starting from frame A, frame B
can be found by following the 4 steps outlined here: 1. From the origin of frame A,
move a distance d on the z_{A} axis. Note that d can be positive or
negative. 2. Determine the direction of x_{B}
by rotating vector x_{A}
by an angle q about z_{A}. 3. Move a distance a in the
direction of vector x_{B}.
The position reached is the origin of Frame B. At this point vector x_{B} is
determined as well. 4. Rotate the vector z_{A}
about x_{B}
by an angle a to determine the unit vector z_{B}. 
Special cases:
If
joint axes z_{i1} and z_{i}
intersect, parameter a_{i} is zero.
If the common perpendicular to z_{i1} and z_{i}
intersects z_{i1} at the origin of frame F_{i1}, then d_{i} is zero.
If joint axes z_{i1} and z_{i} are
parallel, angle a_{i} is zero.
EndFrames:
The
base frame, F_{o},
can always be located on joint axis z_{o} at
the intersection point with the common perpendicular to axis z_{1}.
Therefore, parameter d_{1} can always be chosen as zero.
The endeffector frame, F_{n} (for
an nDOF robot), is the only frame that does not have to be located on a joint
axis. It is attached to the endeffector and can
always be chosen such that parameters d_{n},
a_{n}, and a_{n} are zero if
joint n is revolute or parameters q_{n}, a_{n}, and a_{n} are zero if joint n is translational.
Return
to the Main Robot Modeling Page
This page was developed by :
Dr. Rachid Manseur,
Associate Professor of Electrical Engineering
Robotics and Image Analysis
Electrical and
Computer Engineering
University of West
Florida
Last modified
in Aug. 2001