Denavit-Hartenberg Convention
•Number the joints from 1 to n starting with the base and ending with
the end-effector.
•Establish the base coordinate system. Establish a right-handed
orthonormal coordinate system at the supporting base
with axis lying along the axis of motion of joint 1.
•Establish joint axis. Align the Z
i
with the axis of motion (rotary or
sliding) of joint i+1.
•Establish the origin of the ith coordinate system. Locate the origin
of the ith coordinate at the intersection of the Z
i
& Z
i-1
or at the
intersection of common normal between the Z
i
& Z
i-1
axes and the Z
i
axis.
•Establish X
i
axis. Establish or along the
common normal between the Z
i-1
& Z
i
axes when they are parallel.
•Establish Y
i
axis. Assign to complete the
right-handed coordinate system.
•Find the link and joint parameters
),,(
000
ZYX
iiiii
ZZZZX ´´±=
-- 11
/)(
iiiii
XZXZY ´´+= /)(
0Z
Example I
• 3 Revolute Joints
a
0
a
1
Z
0
X
0
Y
0
Z
3
X
2
Y
1
X
1
Y
2
d
2
Z
1
X
3
3O
2
O
1
O
0
O
Z
2
Joint 1
Joint 2
Joint 3
Link 1 Link 2
Link Coordinate Frames
•Assign Link Coordinate Frames:
–To describe the geometry of robot motion, we assign a Cartesian
coordinate frame (O
i
, X
i
,Y
i
,Z
i
) to each link, as follows:
•establish a right-handed orthonormal coordinate frame O
0
at
the supporting base with Z
0
lying along joint 1 motion axis.
•the Z
i
axis is directed along the axis of motion of joint (i + 1),
that is, link (i + 1) rotates about or translates along Z
i
;
Link 1 Link 2
a
0
a
1
Z
0
X
0
Y
0
Z
3
X
2
Y
1
X
1
Y
2
d
2
Z
1
X
3
3
O
2
O
1
O
0
O
Z
2
Joint 1
Joint 2
Joint 3
Link Coordinate Frames
–Locate the origin of the ith coordinate at the intersection
of the Z
i
& Z
i-1
or at the intersection of common normal
between the Z
i
& Z
i-1
axes and the Z
i
axis.
–the X
i
axis lies along the common normal from the Z
i-1
axis to the Z
i
axis , (if Z
i-1
is parallel
to Z
i
, then X
i
is specified arbitrarily, subject only to X
i
being perpendicular to Z
i
);
iiiii
ZZZZX ´´±=
-- 11
/)(
a
0
a
1
Z
0
X
0
Y
0
Z
3
X
2
Y
1
X
1
Y
2
d
2
Z
1
X
3
3
O
2
O
1
O
0
O
Z
2
Joint 1
Joint 2
Joint 3
Link Coordinate Frames
–Assign to complete the right-
handed coordinate system.
•The hand coordinate frame is specified by the geometry
of the end-effector. Normally, establish Z
n
along the
direction of Z
n-1
axis and pointing away from the robot;
establish X
n
such that it is normal to both Z
n-1
and Z
n
axes.
Assign Y
n
to complete the right-handed coordinate
system.
iiiii XZXZY ´´+= /)(
nO
a
0
a
1
Z
0
X
0
Y
0
Z
3
X
2
Y
1
X
1
Y
2
d
2
Z
1
X
3
3
O
2
O
1
O
0
O
Z
2
Joint 1
Joint 2
Joint 3
Link and Joint Parameters
•Joint angle : the angle of rotation from the X
i-1
axis to the
X
i
axis about the Z
i-1
axis. It is the joint variable if joint i is
rotary.
•Joint distance : the distance from the origin of the (i-1)
coordinate system to the intersection of the Z
i-1
axis and
the X
i
axis along the Z
i-1
axis. It is the joint variable if joint i
is prismatic.
•Link length : the distance from the intersection of the Z
i-1
axis and the X
i
axis to the origin of the ith coordinate
system along the X
i
axis.
•Link twist angle : the angle of rotation from the Z
i-1
axis to
the Z
i axis about the X
i axis.
i
q
i
d
i
a
i
a
Example I
Joint i ai ai di qi
1 0 a0 0 q0
2 -90 a1 0 q1
3 0 0 d2 q2
D-H Link Parameter Table
: rotation angle from X
i-1
to X
i
about Z
i-1
i
q
: distance from origin of (i-1) coordinate to intersection of Z
i-1
& X
i
along Z
i-1
: distance from intersection of Z
i-1
& X
i
to origin of i coordinate along X
i
i
d
: rotation angle from Z
i-1
to Z
i
about X
i
i
a
ia
a
0
a
1
Z
0
X
0
Y
0
Z
3
X
2
Y
1
X
1
Y
2
d
2
Z
1
X
3
3O
2
O
1
O
0
O
Z
2
Joint 1
Joint 2
Joint 3
Example II: PUMA 260
iiiii ZZZZX ´´±=
-- 11 /)(
iiiii XZXZY ´´+= /)(
1q
2
q
3
q
4q
5
q
6
q
0Z
1Z
2Z
3Z
4Z
5Z
1O
2O
3O
5O
4O
6O
1X
1Y
2X
2Y
3X
3Y
4X
4Y
5X
5
Y
6X
6
Y
6
Z
1.Number the joints
2.Establish base frame
3.Establish joint axis Zi
4.Locate origin, (intersect.
of Zi & Zi-1) OR (intersect
of common normal & Zi )
5.Establish Xi,Yi
PUMA 260
t
Link Parameters
1q
2
q
3
q
4q
5
q
6
q
0Z
1Z
2Z
3Z
4Z
5Z
1O
2O
3O
5O
4O
6O
1X
1Y
2X
2Y
3X
3Y
4X
4Y
5X
5
Y
6X
6
Y
6
Z
: angle from Z
i-1
to Z
i
about X
i
: distance from intersection
of Z
i-1
& X
i
to Oi along X
i
Joint distance : distance from Oi-1 to intersection of Z
i-1 & X
i along Z
i-1
: angle from X
i-1
to X
i
about Z
i-1
i
q
ia
i
a
i
d
t006
00905
80-904
0
0903
802
130-901
J
i
q
1
q
4
q
2
q
3
q
6
q
5
q
i
a
i
a
i
d
-l
Transformation between i-1 and i
•Four successive elementary transformations
are required to relate the i-th coordinate frame
to the (i-1)-th coordinate frame:
–Rotate about the Z
i-1
axis an angle of q
i
to align the
X
i-1
axis with the X
i
axis.
–Translate along the Z
i-1
axis a distance of d
i
, to bring
X
i-1
and X
i
axes into coincidence.
–Translate along the X
i
axis a distance of a
i
to bring
the two origins O
i-1
and O
i
as well as the X axis into
coincidence.
–Rotate about the X
i
axis an angle of α
i
( in the right-
handed sense), to bring the two coordinates into
coincidence.
Transformation between i-1 and i
•D-H transformation matrix for adjacent coordinate
frames, i and i-1.
–The position and orientation of the i-th frame coordinate
can be expressed in the (i-1)th frame by the following
homogeneous transformation matrix:
ú
ú
ú
ú
û
ù
ê
ê
ê
ê
ë
é
-
-
=
---
1000
0
),(),(),(),(
111
iii
iiiiiii
iiiiiii
iiiiiiii
i
i
dCS
SaCSCCS
CaSSSCC
xRaxTzRdzTT
aa
qqaqaq
qqaqaq
aq
Source coordinate
Reference
Coordinate
Kinematic Equations
•Forward Kinematics
–Given joint variables
–End-effector position & orientation
•Homogeneous matrix
–specifies the location of the ith coordinate frame w.r.t.
the base coordinate system
–chain product of successive coordinate transformation
matrices of
ú
û
ù
ê
ë
é
=ú
û
ù
ê
ë
é
=
=
-
100010
000
1
2
1
1
00
nnn
n
n
n
PasnPR
TTTT
),,(
21 n
qqqq =
),,,,,( yqfzyxY=
i
iT
1-
n
T
0
Orientation
matrix
Position
vector
Kinematics Equations
•Other representations
–reference from, tool frame
–Yaw-Pitch-Roll representation for orientation
tool
n
n
ref
tool
ref
HTBT
0
0
=
yqf ,,, xyz
RRRT=
ú
ú
ú
ú
û
ù
ê
ê
ê
ê
ë
é -
=
1000
0100
00
00
ff
ff
CS
SC
ú
ú
ú
ú
û
ù
ê
ê
ê
ê
ë
é
-
1000
00
0010
00
qq
qq
CS
SC
ú
ú
ú
ú
û
ù
ê
ê
ê
ê
ë
é
-
1000
00
00
0001
yy
yy
CS
SC
Solving forward kinematics
•Forward kinematics
ú
ú
ú
ú
ú
ú
ú
ú
û
ù
ê
ê
ê
ê
ê
ê
ê
ê
ë
é
Þ
ú
ú
ú
ú
ú
ú
ú
ú
û
ù
ê
ê
ê
ê
ê
ê
ê
ê
ë
é
j
q
f
q
q
q
q
q
q
z
y
x
p
p
p
6
5
4
3
2
1
ú
ú
ú
ú
û
ù
ê
ê
ê
ê
ë
é
=
1000
zzzz
yyyy
xxxx
pasn
pasn
pasn
T
• Transformation Matrix
Solving forward kinematics
•Yaw-Pitch-Roll representation for orientation
ú
ú
ú
ú
û
ù
ê
ê
ê
ê
ë
é
-
-+
+-
=
1000
0
z
y
x
n
pCCSCS
pSCCSSCCSSSCS
pSSCSCCSSSCCC
T
yqyqq
yfyqfyfyqfqf
yfyqfyfyqfJf
ú
ú
ú
ú
û
ù
ê
ê
ê
ê
ë
é
=
1000
0
zzzz
yyyy
xxxx
n
pasn
pasn
pasn
T
)(sin
1
zn-=
-
q
)
cos
(cos
1
q
y
za
-
=
)
cos
(cos
1
q
f
x
n
-
=
Problem?Solution is inconsistent and ill-
conditioned!!
atan2(y,x)
x
y
ï
ï
î
ï
ï
í
ì
-+££-
---££-
+-££
++££
==
yandxfor
yandxfor
yandxfor
yandxfor
xya
090
90180
18090
900
),(2tan
q
q
q
q
q