You are on page 1of 79

Denavit-Hatenberg Representation

Why DH notation
• Find the homogeneous transformation H
relating the tool frame to the fixed base frame

2
Why DH notation
• A very simple way of modeling robot links and
joints that can be used for any kind of robot
configuration.

• This technique has became the standard way


of representing robots and modeling their
motions.

3
Links and Joints

Links

Joints:

End Effector

Robot Basis
Looking Closely at the T0n Matrix

• To get at the equation set, we will choose to


add a series of coordinate frames to each of
the joint positions
• The frame attached to the 1st joint is labeled 0
– the base frame! – while joint two has Frame
1, etc.
• The last Frame is the end or n Frame
Mechanical Structure and Notations

Revolute Prismatic
Denavit-Hatenberg Parameters

• 6 parameters are required to describe the


position and orientation of a rigid body (3
for rotation and 3 for translation).

• D-H Representation:
– Under some hypotheses, 4 parameters are
sufficient derive the transformation matrices.
Link and Joint Parameters

• Link parameters:

a Link length
 Twist angle.

• Joint parameters:
 Joint angle
d Link offset
DH Parameters:

ai : the distance from Zi-1 to Zi, measured about Xi-1.

di : the distance from Xi-1 to Xi measured along Zi-1.

αi : the angle between Zi-1, and Zi measured about Xi-1.

Θi : the angle between Xi-1 and Xi, measured about Zi-1.

Remark: Choose ai > 0 since it corresponds to the distance; however,


other three parameters could be a number with signs (plus, minus).

10/29/20 Handout 4 9
Link description:
link length and link twist
Axis i

Axis i-1

a i- 1

i-1
Link connections:
link offset, joint angle
Axis i

ai
Axis i-1

i di
Link
i

a i- 1

i-1
Denavit-Hartenberg Parameters
Axis i

ai
Axis i-1

i di
Link
i

a i- 1

i-1
The Denavit-Hartenberg (D-H) Representation

• The appeal of the D-H representation lies in


its algorithmic approach.
• The method begins with a systematic
approach to assigning and labeling an
orthonormal (x,y,z) coordinate system to
each robot joint. It is then possible to relate
one joint to the next and ultimately to
assemble a complete representation of a
robot's geometry.
an
• Link Length (Common Normal)
• Measured from zn to zn+1 along xn
• The Common perpendicular is the shortest distance between two lines
in space.
• Link length: For any two axes in 3D, there exists a mutually
perpendicular to both joint axis. Link lenth (a) is calculated as the
length of line being mutually perpendicular to both joint axes.
• Does not necessarily lie in the physical link.
• If axes intersect then it is zero.
• Not defined for Prismatic, set to zero

z1 z2

a1
n
• Link Twist Angle
• Measured from zn to zn+1 around xn
• Usually a multiple of 90 degrees

z2
z1

x1

1
dn • Link Offset
• Measured from xn-1 to xn along zn
• Joint variable for Prismatic joint
y2
z2
z1
x2

d1

x1

y1
n • Joint Angle
• The angle between xn-1 and xn
• Measured around zn from xn-1 and xn
z2
z1
x2

x1
2

x1 x2

y1
General Transformation Between Two Frames

In D-H convention, a general transformation


between two bodies is defined as the product
of four basic transformations:

• A rotation about the initial z axis by θ,


• A translation along the initial z axis by d,
• A translation along the new x axis by a, and.
• A rotation about the new x axis by α.
Returning to the 4 ‘Frame-Pair’
Operators:
• 1st is  which is an
C os  Sin 0 0
operation of pure  Sin Cos 0 0
rotation about Z or:  
 0 0 1 0
 
 0 0 0 1

1 0 0 0
0 1 0 0
• 2nd is d which is a  
0 0 1 d
translation along Z or:  
0 0 0 1
Returning to the 4 Frame Operators:

• 3rd is a Translation 1 0 0 a
Along X or: 0 1 0 0
 
0 0 1 0
 
0 0 0 1

• 4th is  which is a 1 0 0 0
0 Cos  Sin 0
pure Rotation  
about X or: 0 Sin Cos 0
 
0 0 0 1
The Overall Effect is:

C os  Sin 0 0  1 0 0 0  1 0 0 a  1 0 0 0
 Sin Cos 0 0 0 1 0 0  0 1 0 0  0 Cos Sin 0
Ai      
 0 0 1 0  0 0 1 d  0 0 1 0  0 Sin Cos 0
       
 0 0 0 1  0 0 0 1  0 0 0 1  0 0 0 1
Simplifying this Matrix Product:

C i  S i  C i S i  S i ai  C i 
 S C i  C i C i  S i ai  S i 
 i 
 0 S i C i di 
 
 0 0 0 1 
This matrix is the general transformation
relating each and every frame pairs along a
robot structure
DH Technique
• With the ith joint, a joint variable is qi associated where

All joints are represented by the z-axis.


• If the joint is revolute, the z-axis is in the direction of
rotation as followed by the right hand rule.
• If the joint is prismatic, the z-axis for the joint is along
the direction of the liner movement.
DH Rules
• 1. Z axis is in the direction of the joint axis

• 2. X-axis is perpendicular to both Zn and Zn-1.

• 3. Y-axis follows the right hand rule.

• 4. The Xn axis must intersect the Zn-1 axis.


The D-H Modeling Procedure:
1) Locate & Label the Joint Axes: Z0 to Zn-1
2) Establish the Base Frame. Set Base Origin
anywhere on the Z0 axis. Choose X0 and Y0
conveniently and to form a right hand frame.
3) Locate the origin Oi where the common normal
to Zi-1 and Zi intersects Zi. If Zi intersects Zi-1
locate Oi at this intersection. If Zi-1 and Zi are
parallel, locate Oi at Joint i+1
The D-H Modeling Procedure:
4) Establish Xi along the common normal between
Zi-1 and Zi through Oi, or in the direction Normal to the plane Zi-1 – Zi if
these axes intersect

5) Establish Yi to form a right hand system


Set i = i+1, if i<n loop back to step 3
(Repeat Steps 3 to 5 for I = 1 to I = n-1)
6) Establish the End-Effector (n) frame: OnXnYnZn. Assuming the n-th joint
is revolute, set kn = a along the direction Zn-1. Establish the origin On
conveniently along Zn, typically mounting point of gripper or tool. Set jn
= o in the direction of gripper closure (opening) and set in = n such that
n = oxa. Note if tool is not a simple gripper, set Xn and Yn conveniently to
form a right hand frame.
The D-H Modeling Procedure:
7) Create a table of “Link” parameters:
1) i as angle about Zi-1 between X’s
2) di as distance along Zi-1
3) i as angle about Xi between Z’s
4) ai as distance along Xi
8) Form HTM matrices A1, A2, … An by
substituting , d,  and a into the general
model
9) Form T0n = A1*A2*…*An
Some Issues to remember:
• If you have parallel Z axes, the X axis of the second frame runs
perpendicularly between them
• When working on a revolute joint, the model will be simpler if
the two X directions are in alignment at “Kinematic Home” –
ie. Our model’s starting point
• To achieve this kinematic home, rotate the model about
moveable axes (Zi-1’s) to align X’s
• Kinematic Home is not particularly critical for prismatic joints
• An ideal model will have n+1 frames
• However, additional frames may be necessary – these are
considered ‘Dummy’ frames since they won’t contain joint
axes
Example 1: Two-link planar arm
Two-link planar arm
Link parameters

Hence, the transformation matrix is


Example: 2
3 revolute joints
Shown in home position
joint 1
R
Link 2

Link 1 Link 3

joint 2 joint 3
L1 L2
DH Example: “academic
manipulator”
Zi is axis of actuation for joint i+1
Z0
Z0 and Z1 are not co-planar
1 Z1 and Z2 are parallel

2 3
Z1 Z2
DH Example: “academic
manipulator”
Z0 Z0 and Z1 are not co-planar:
x0 is the common normal
1
x1 x2 x3
x0

2 3
Z1 Z2 Z3
DH Example: “academic
manipulator”
Z0 Z0 and Z1 are not co-planar:
x0 is the common normal
1
x1 x2 x3
x0

2 3
Z1 Z2 Z3

Z1 and Z2 are parallel :


x1 is selected as the common
normal that lies along the
center of the link
DH Example: “academic
manipulator”
Z0

1
x1 x2 x3
x0

2 3
Z1 Z2 Z3

Z2 and Z3 are parallel :


x2 is selected as the common
normal that lies along the
center of the link
DH Example: “academic
manipulator”
Z0 x3
z3
2 3
x2
x1
1 Z2
x0
Shown with joints in non-zero
Z1
positions

Observe that frame i moves with


link i
DH Example: “academic
manipulator”
R
Z0
L1 L2
x1 x2 x3
1 x0

Z1 Z2 Z3
DH Example: “academic manipulator”
Build table
Z0 R
L1 L2
1
x1 x2 x3
1 x0

2 3
Z1 Z2 Z3

Link  d  a
1 1 0 90o R
2 2 0 0 L1
3 3 0 0 L2
DH Example: “academic
manipulator”
Link  d  a
1 1 0 90o R
2 2 0 0 L1
3 3 0 0 L2
DH Example: “academic
manipulator”
DH zExample: “academic
0 x 3
manipulator”
 
z 3
2 3
x2
x1
1 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 zExample: “academic
0 x 3
manipulator”
 
z 3
2 3
x2
x1
1 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 zExample: “academic
0 x 3
manipulator”
 
z 3
2 3
x2
x1
1 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 3: A 3 DOF RRR Robot

Link and Joint Assignment

Link (1) Link (2) Link (3)

Revolute joint <1>

Link (0)

Revolute joint <3>

Revolute joint <2>


Example: A 3 DOF RRR Robot

Frame Assignment

Z1

Y1

X1

Y1

Z1
Example: A 3 DOF RRR Robot

Frame Assignment

Z 0 , Z1

Y2
Y0, Y1
Z2

X0, X1 X2
Z2

Y2
Example: A 3 DOF RRR Robot

Frame Assignment

Z 0 , Z1

Y2 Y3
Y0, Y1
Z3

X0, X1 X2 X3
Z2 Z3

Y3
Example: A 3 DOF RRR Robot

Frame Assignment 1

Z 0 , Z1

Y2 2
Y3 3
Y0, Y1

X0, X1 X2 X3
Z2 Z3
Example: A 3 DOF RRR Robot

Tabulation of D-H parameters


A
B
Z 0 , Z1

Y2 Y3
Y0, Y1

X0, X1 X2 X3
Z2 Z3

0 = (angle from Z0 to Z1 measured along X0) = 0°


a0 = (distance from Z0 to Z1 measured along X0) = 0
d1 = (distance from X0 to X1 measured along Z1)= 0
1 = variable (angle from X0 to X1 measured along Z1)
1 = 0° (at home position) but 1 can change as the arm moves
Example: A 3 DOF RRR Robot

Tabulation of D-H parameters


A
B
Z 0 , Z1

Y2 Y3
Y0, Y1

X0, X1 X2 X3
Z2 Z3

1 = (angle from Z1 to Z2 measured along X1) = 90°


a1 = (distance from Z1 to Z2 measured along X1) = A
d2 = (distance from X1 to X2 measured along Z2) = 0
2 = variable (angle from X1 to X2 measured along Z2)
2 = 0° (at home position) but 2 can change as the arm moves
Example: A 3 DOF RRR Robot

Tabulation of D-H parameters


A
B
Z 0 , Z1

Y2 Y3
Y0, Y1

X0, X1 X2 X3
Z2 Z3

2 = (angle from Z2 to Z3 measured along X2) = 0°


a2 = (distance from Z2 to Z3measured along X2) = B
d3 = (distance from X2 to X3 measured along Z3) = 0
3 = variable (angle from X2 to X3 measured along Z3)
3= 0° (at home position) but 3 can change as the arm moves
Summary of D-H parameters

Link i Twist i Link Link offset Joint angle i


length ai di
1 0 0 0 1

2 90° A 0 2

3 0 B 0 3
Example: A 3 DOF RRR Robot

Tabulation of Transformation Matrices from the D-H table

 cos( i )  sin( i ) 0 ai 1 
cos( ) sin( ) cos( ) cos( )  sin( )  d sin( )
i 1
T   i 1 i i 1 i i 1 i i 1

 sin( i 1 ) sin( i ) sin( i 1 ) cos( i ) cos( i 1 ) d i cos( i 1 ) 
i

 0 0 0 1 
 

 0  0, a0  0, d1  0

cos(1 )  sin(1 ) 0 0
 sin( ) cos( ) 0 0
0
1T   1 1

 0 0 1 0
 0 0 0 1

Example: A 3 DOF RRR Robot

Tabulation of Transformation Matrices from the D-H table

 cos( i )  sin( i ) 0 ai 1 
cos( ) sin( ) cos( ) cos( )  sin( )  d sin( )
i 1
T   i 1 i i 1 i i 1 i i 1

 sin( i 1 ) sin( i ) sin( i 1 ) cos( i ) cos( i 1 ) d i cos( i 1 ) 
i

 0 0 0 1 
 
1  90 , a1  A, d2  0

cos( 2 )  sin( 2 ) 0 A
 0 0 1 0
2T 
1  
 sin( 2 ) cos( 2 ) 0 0
 0 0 0 1 

Example: A 3 DOF RRR Robot

Tabulation of Transformation Matrices from the D-H table

 cos( i )  sin( i ) 0 ai 1 
cos( ) sin( ) cos( ) cos( )  sin( )  d sin( )
i 1
T   i 1 i i 1 i i 1 i i 1

 sin( i 1 ) sin( i ) sin( i 1 ) cos( i ) cos( i 1 ) d i cos( i 1 ) 
i

 0 0 0 1 
 

 2  0, a2  B, d3  0

cos( 3 )  sin( 3 ) 0 B
 sin( ) cos( ) 0 0
2
3T   3 3

 0 0 1 0
 0 0 0 1 

Example: A 3 DOF RRR Robot

Forward Kinematics

cos(1 ) cos( 2 )  cos(1 ) sin( 2 ) sin(1 ) A cos(1 )


 sin( ) cos( )  sin( ) sin( )  cos( ) A sin(1 ) 
0
T  0 1
T T   1 2 1 2 1

sin( 2 ) cos( 2 )
2 1 2
 0 0 
 0 0 0 1 
 

cos( ) cos(   )  cos( ) sin(   ) sin( ) ( A  B cos( )) cos( )


1 2 3 1 2 3 1 2 1

 sin( ) cos(   )  sin( ) sin(   )  cos( ) ( A  B cos( )) sin( ) 


T   T 
0 0
T  
2 1 2 3 1 2 3 1 2 1

 sin(   ) cos(   ) 0 B sin( ) 
3 2 3
2 3 2 3 2
 
 0 0 0 1 
Prismatic Revolute
Example 4
The three links cylindrical

61
Example 4
The three links cylindrical

62
Example 4
The three links cylindrical

63
Example 4
The three links cylindrical

64
Example 5

65
Example 5

66
Example 4
Spherical wrist

67
Example 4
Spherical wrist

68
Example 4
Spherical wrist

69
Example 4
Spherical wrist

70
Example 5
The three links cylindrical with Spherical wrist

71
Example 5
The three links cylindrical with Spherical wrist

0
• T3 given
3
by example 2, and T given by
6
example 3.

72
Example 5
The three links cylindrical with Spherical wrist

73
Example 5
The three links cylindrical
with Spherical wrist

74
A manipulator with 3 DoF where all joints are
revolute has the following coordinate frames
assigned to each link. Determine the A1,A2 and A3
matrices.

You might also like