DH Parameters PDF
DH Parameters PDF
DH Parameters PDF
Prof. Y D Patel
A D Patel Institute of Technology
Mechanical Engineering Department
Objective:
To drive a method to compute the
position and orientation of the
manipulator’s end-effector relative to the
base of the manipulator as a function of
the joint variables.
Degrees of Freedom
The degrees of freedom of a rigid body is defined as
the number of independent movements it has.
The number of :
• Independent position
variables needed to locate all
parts of the mechanism,
• Different ways in which a
robot arm can move,
• Joints
DOF of a Rigid Body
In a plane
In space
Degrees of Freedom
3 position
3D Space = 6 DOF
3 orientation
In robotics:
DOF = number of independently driven joints
positioning accuracy
As DOF computational complexity
cost
flexibility
power transmission is
more difficult
Robot Links and Joints
A manipulator may be thought of as a set of
bodies (links) connected in a chain by joints.
Revolute Joint
1 DOF ( Variable - q)
2
3
1 4
Axis i-1
ai-1
Joint Parameters
A joint axis is established at the connection of two links.
This joint will have two normals connected to it one
for each of the links.
Axis i-1
qi di
ai-1
Link and Joint Parameters
4 parameters are associated with each link. You
can align the two axis using these parameters.
Link parameters:
a0 the length of the link.
an the twist angle between the joint axes.
Joint parameters:
qn the angle between the links.
dn the distance between the links
Link Connection Description:
For Revolute Joints: a, a, and d.
are all fixed, then “qi” is the.
Joint Variable.
a0= an=0.0
Joint n+1
Link n-1
zn
zn+1
zn-1 xn
yn-1
dn an
an-1 yn an xn+1
xn-1 yn+1
Affixing Frames to Links
Note: assign link frames so as to cause as many link
parameters as possible to become zero!
Axis i-1 qi
di
ai-1
General Transformation Between
Two Bodies
In D-H convention, a general transformation
between two bodies is defined as the product
of four basic transformations:
# α a d θ
1 0 L1 0 θ1
2 0 L2 0 θ2
zi to be the axis of actuation for joint i + 1. Thus, z0 is the axis of actuation for
joint 1, z1 is the axis of actuation for joint 2, etc.
Example (1):
c1 s1 0 l1c1 c2 s2 0 l 2 c2
s c1 0 l1s1 s c2 0 l2 s2
0
T 1
. 1
T 2
.
1
0 0 1 0
2
0 0 1 0
0 0 0 1 0 0 0 1
Example (1):
c12 s12 0 l1c1 l2 c12
s c12 0 l1s1 l2 s12
B
T 0
T 12
W 2
0 0 1 0
0 0 0 1
Example (2): Y2
Z0 Z1
3 Revolute Joints
X2 d1
X0 X1
Y0 Y1
Denavit-Hartenberg Link
a0 a1 Parameter Table
i a(i-1) a(i-1) di qi
Notice that the table has two uses:
1) To describe the robot with its 0 0 0 0 q0
variables and parameters.
2) To describe some state of the 1 0 a0 0 q1
robot by having a numerical values
for the variables. 2 -90 a1 d1 q2
Example (2):
Z3
Z0 Z1
Joint 3
Y0 O3 X3
Y1
d1
Joint 0
O0 X0 O1 X1 O2 X2 Y3
Joint 1 Joint 2
Y2
a0 a1
Link ai ai di qi
1 0 a0 0 q0
2 -90 a1 0 q1
3 0 0 d1 q2
Example cosθ 0 sinθ 0 0 a0 cos q 0
0 a0 sin q 0
1 sinθ 0 cosθ 0
T 0
0 0 1 0
0 0 0 1
Joint i ai ai di qi
cosθ1 0 sin q1 a1 cos q1
1 0 a0 0 q0 cos q1 a1 sin q1
2 sinθ1 0
T 1
0 1 0 0
2 -90 a1 0 q1
0 0 0 1
3 0 0 d1 q2
cosθ 2 sinθ 2 0 0
sinq 2 cosq 2 0 0
T 23
0 0 1 d1
0 0 0 1
Example (2)
Cq i Ca i Sq i Sa i Sq i ai Cq i
Sq Ca i Cq i Sa i Cq i ai Sq i
Ti i 1 i
0 Sa i Ca i di
0 0 0 1
Link 1 Link 3
joint 2 joint 3
L1 L2
DH Example: “academic manipulator”
q2 q3
Z1 Z2
q1
x1 x2 x3
x0
q2 q3
Z1 Z2 Z3
DH Example: “academic manipulator”
Z0 and Z1 are not co-planar:
Z0 x0 is the common normal
q1
x1 x2 x3
x0
q2 q3
Z1 Z2 Z3
q1
x1 x2 x3
x0
q2 q3
Z1 Z2 Z3
R
Z0
L1 L2
x1 x2 x3
a1 x0
Z1 Z2 Z3
q2 q3
Z1 Z2 Z3
Link a a d q
1 90o R 0 q1
2 0 L1 0 q2
3 0 L2 0 q3
DH Example: “academic manipulator”
Link a a d q
1 90o R 0 q1
2 0 L1 0 q2
3 0 L2 0 q3
DH Example: “academic manipulator”
DH Example: “academic manipulator”
z0 x3
z3
q2 q3
x2
x1
q1 z2
x0
z1
x1 axis expressed y1 axis expressed z1 axis expressed
wrt {0} wrt {0} wrt {0}
Origin of {1}
w.r.t. {0}
DH Example: “academic manipulator”
z0 x3
z3
q2 q3
x2
x1
q1 z2
x0
z1
x2 axis expressed y2 axis expressed z2 axis expressed
wrt {1} wrt {1} wrt {1}
Origin of {2}
w.r.t. {1}
DH Example: “academic manipulator”
z0 x3
z3
q2 q3
x2
x1
q1 z2
x0
z1
x3 axis expressed y3 axis expressed z3 axis expressed
wrt {2} wrt {2} wrt {2}
Origin of {3}
w.r.t. {2}
DH Example: “academic manipulator”
where
Example (4):SCARA Robot
DH Parameters
# α a d θ
1 0 a1 0 θ1
2 π a2 0 θ2
0
3 0 0 d3
θ3
4 0 0 d4
Example (4): SCARA Robot
d4
x4
x3
a3 z4
y3 x6
x5
y5 z6
Spherical joint
Wrist Configurations
Wrist assembly is attached to end-of-arm
End effector is attached to wrist assembly
Function of wrist assembly is to orient end effector
Body-and-arm determines global position of end
effector
Two or three degrees of freedom:
Roll
Pitch
Yaw
Notation :RRT
Example: Puma 560
Different Configuration
Link Coordinate Parameters
PUMA 560 robot arm link coordinate parameters
q3 Pick this z3
Z1 q2 Z2
DH Example: “academic manipulator” –
alternate end-effector frame
Z0
y2
q1
x1 x2
a1 x0
Z3
q2 q3
Z1 Z2
Would need
to rotate
about y2
here!
DH Example: “academic manipulator” –
alternate end-effector frame
q3 Pick this z3
Z1 q2 Z2
DH Example: “academic manipulator” –
alternate end-effector frame
Z0
y2
q1
x1 x2
a1 x0
Z3
q2 q3
Z1 Z2
Would need
to rotate
about y2
here!
DH Example: “academic manipulator” –
alternate end-effector frame
Z0
x’2
q1
x1 x2
a1 x0
Z3
q2 q3
Z1
Solution: Add
“offset” to rotation
about z2
(q +90o )
DH Example: “academic manipulator” –
alternate end-effector frame
Z0
x’2
L2 x3
q1
x1 x2
a1 x0
Z3
q2 q3
Z1 Z2
Now can
rotate about
x’ to align z2
and z3
DH Example: “academic manipulator” –
alternate end-effector frame
Link Var q d a a
1 q1 q1 0 90o R
2 q2 q2 0 0 L1
3 q3 q3 +90o 0 90o 0
e - L2
DH Example: “academic manipulator” –
alternate end-effector frame
x3
Z0 R
x’2
L1 L2 Z3
q1
x1 x2
a1 x0
q2 q3
Z1 Z2
Link Var q d a a
1 q1 q1 0 90o R
2 q2 q2 0 0 L1
3 q3 q3 +90o 0 90o 0
DH Example: “academic manipulator” –
alternate end-effector frame x 3
Z0 R
x’2
L1 L2 Z3
q1
x1 x2
a1 x0
Z3
q2 q3
Z1 Z2
DH Example: “academic manipulator” –
alternate end-effector frame
x3
Z0 R
x’2
L1 L2 Z3
q1
x1 x2
a1 x0
Z3
q2 q3
Z1 Z2
DH Example: “academic manipulator” –
alternate end-effector frame
x3
Z0 R
x’2
L1 L2 Z3
q1
x1 x2
a1 x0
Z3
q2 q3
Z1 Z2
DH Example: “academic manipulator” –
alternate end-effector frame
q3 Pick this z3
Z1 q2 Z2
DH Example: “academic manipulator” –
alternate end-effector frame
Z0
y2
q1
x1 x2
a1 x0
Z3
q2 q3
Z1 Z2
Would need
to rotate
about y2
here!
DH Example: “academic manipulator” –
alternate end-effector frame
Z0
x’2
q1
x1 x2
a1 x0
Z3
q2 q3
Z1
Solution: Add
“offset” to rotation
about z2
(q +90o )
DH Example: “academic manipulator” –
alternate end-effector frame
Z0
x’2
L2 x3
q1
x1 x2
a1 x0
Z3
q2 q3
Z1 Z2
Now can
rotate about
x’ to align z2
and z3
DH Example: “academic manipulator” –
alternate end-effector frame
Link Var q d a a
1 q1 q1 0 90o R
2 q2 q2 0 0 L1
3 q3 q3 +90o 0 90o 0
e - L2
DH Example: “academic manipulator” –
alternate end-effector frame
x3
Z0 R
x’2
L1 L2 Z3
q1
x1 x2
a1 x0
q2 q3
Z1 Z2
Link Var q d a a
1 q1 q1 0 90o R
2 q2 q2 0 0 L1
3 q3 q3 +90o 0 90o 0
DH Example: “academic manipulator” –
alternate end-effector frame
x3
Z0 R
x’2
L1 L2 Z3
q1
x1 x2
a1 x0
Z3
q2 q3
Z1 Z2
DH Example: “academic manipulator” –
alternate end-effector frame
x3
Z0 R
x’2
L1 L2 Z3
q1
x1 x2
a1 x0
Z3
q2 q3
Z1 Z2
DH Example: “academic manipulator” –
alternate end-effector frame
x3
Z0 R
x’2
L1 L2 Z3
q1
x1 x2
a1 x0
Z3
q2 q3
Z1 Z2
DH Example: “academic manipulator” –
alternate end-effector frame
Z0
x’2
q1
x1 x2
a1 x0
Z3
q2 q3
Z1
Solution: Add
“offset” to rotation
about z2
(q +90o )
DH Example: “academic manipulator” –
alternate end-effector frame
Z0
x’2
L2 x3
q1
x1 x2
a1 x0
Z3
q2 q3
Z1 Z2
Now can
rotate about
x’ to align z2
and z3
DH Example: “academic manipulator” –
alternate end-effector frame
Link Var q d a a
1 q1 q1 0 90o R
2 q2 q2 0 0 L1
3 q3 q3 +90o 0 90o 0
e - L2
DH Example: “academic manipulator” –
alternate end-effector frame
x3
Z0 R
x’2
L1 L2 Z3
q1
x1 x2
a1 x0
q2 q3
Z1 Z2
Link Var q d a a
1 q1 q1 0 90o R
2 q2 q2 0 0 L1
3 q3 q3 +90o 0 90o 0
DH Example: “academic manipulator” –
alternate end-effector frame
x3
Z0 R
x’2
L1 L2 Z3
q1
x1 x2
a1 x0
Z3
q2 q3
Z1 Z2
DH Example: “academic manipulator” –
alternate end-effector frame
x3
Z0 R
x’2
L1 L2 Z3
q1
x1 x2
a1 x0
Z3
q2 q3
Z1 Z2
DH Example: “academic manipulator” –
alternate end-effector frame
x3
Z0 R
x’2
L1 L2 Z3
q1
x1 x2
a1 x0
Z3
q2 q3
Z1 Z2
The Tool Transform
A robot will be frequently picking up objects or tools.
Standard practice is to to add an extra homogeneous
transformation that relates the frame of the object or
tool to a fixed frame in the end-effector.
Kinematic Calibration
How one knows the DH parameters?
Certainly when robots are built, there are design
specifications. Yet due to manufacturing tolerances,
these nominal parameters will not be exact.
The process of kinematic calibration determines
these nominal parameters experimentally.
Kinematic calibration is typically accomplished
with an external metrology system, although
alternatives that do not require a metrology system
exist.
Example Problem:
You are have a three link arm that starts out aligned in the x-axis.
Each link has lengths l1, l2, l3, respectively. You tell the first one to move by 1
, and so on as the diagram suggests. Find the Homogeneous matrix to get the
position of the yellow dot in the X0Y0 frame.
Y3
3
Y2 2 X3 3
2 X2
i-1
Visual Approach - “A way to visualize
the link parameter a(i-1) is to imagine
an expanding cylinder whose axis is the
Z(i-1) axis - when the cylinder just
touches the joint axis i the radius of the
cylinder is equal to a(i-1).”
(Manipulator Kinematics)
DH convention: Assign Z axes
Use actuation as a guide
Prismatic – joint slides along zi
Revolute – joint rotates around zi
Establish base frame {0}:
Nearly arbitrary
Usually, xi
points from
frame i-1 to i
zi-1 Xi
zi
DH convention: x axis
• zi and zi-1 are parallel
• Infinitely many common normals
• Pick one to be the “link” axis
• Choose normal that passes through origin of
frame {i-1} pointing toward zi
• Origin is intersection of xi with zi
Xi
zi-1 zi
DH convention: x axis
zi
If joint axes zi-1 and zi
intersect, xi is normal to
the plane containing the
axes
xi = (zi-1 zi )
zi-1
link i
Xi
DH convention: Origin non-coplanar Z
Origin of frame {i} is placed at intersection of joint
axis and link axis
zi
xi
DH convention: y axis
• Yi is chosen to make a right hand frame
Zi
xi points Yi
from frame
i-1 to i xi
DH convention: Origin parallel Z
• zi and zi-1 are parallel
• Origin is intersection of xi with zi
zi-1 zi
xi
DH convention: x axis - parallel Z
• zi and zi-1 are parallel
• Origin is intersection of xi with zi
• Yi is chosen to make a right hand frame
zi-1 yi
zi
xi
DH convention: origin
If joint axes intersect, the
origin of frame {i} is
usually placed at
intersection of the joint
axes
zi
zi-1
link i
xi
DH convention: y axis
Yi is chosen to make a
right hand frame
zi
zi-1 yi
link i
xi
Next Course
Inverse Kinematics
Summary: Robot Forward
Kinematics Analysis
1. Identify robot dimensions and understand its geometry.
2. Number Links and Joints.
Base = Link 0
1st Joint = Joint 1
3. Identify Joint Axes, type and direction of positive motions.
4. Draw Common Normals (CNs) and find their intersections
with joint axes. Define two points:
AN = intersection of Axis N with CN to Axis N+1
BN = intersection of Axis N with CN to Axis N-1
5. Assign Link Frames.
Origin of Frame N is at AN
ZN points along Axis N.
XN points along CN to BN+1.
YN completes a right handed coordinate system.
Q:What if there is no CN because the axes intersect?
A:Then choose XN to be normal to ZN and ZN+1.
Q:What if there is no unique CN because ZN and ZN+1 are parallel
A:Then choose one. Typically, you can simplify subsequent
analysis by choosing a CN which intersects BN.
6. Derive the Denavit Hartenburg Parameters
with respect to
the link parameters for each link.
= distance from AN to BN+1
= distance from ZN to ZN+1 along XN
= “link length”
= angle between Axis N and Axis N+1 about
CN
= angle between ZN and ZN+1 about XN
= “link twist”