Introduction to Robotics
Tutorial II
Alfred Bruckstein
Yaniv Altshuler
Denavit-Hartenberg
Reminder
• Specialized description of articulated
figures
• Each joint has only one degree of
freedom
• rotate around its z-axis
• translate along its z-axis
•
Denavit-Hartenberg
Link length ai
The perpendicular distance between the axes of
jointi and jointi+1
•
•
Denavit-Hartenberg
Link twist αi
The angle between the axes of jointi and jointi+1
Angle around xi-axis
•
•
•
Denavit-Hartenberg
Link offset di
The distance between the origins of the coordinate
frames attached to jointi and jointi+1
Measured along the axis of jointi
•
•
•
Denavit-Hartenberg
Link rotation (joint angle) φi
The angle between the link lenghts αi-1 and αi
Angle around zi-axis
•
•
Denavit-Hartenberg
1.Compute the link vector ai and the link length
2.Attach coordinate frames to the joint axes
3.Compute the link twist αi
4.Compute the link offset di
5.Compute the joint angle φi
6.Compute the transformation (i-1)Ti which transforms entities from
linki to linki-1
Denavit-Hartenberg
This transformation is done in several steps :
• Rotate the link twist angle αi-1 around the axis xi
• Translate the link length ai-1 along the axis xi
• Translate the link offset di along the axis zi
• Rotate the joint angle φi around the axis zi
i 1
Ti Rot zi Transzi Transxi Rot xi
Denavit-Hartenberg
1
0
Rot xi
0
0
0
0
cos i
sin i
sin i
cos i
0
0
0
0
0
1
Denavit-Hartenberg
1 0 0
0 1 0
Trans xi
0 0 1
0 0 0
ai
0
0
1
Denavit-Hartenberg
1
0
Trans zi
0
0
0
0
1
0
0
1
0
0
0
0
di
1
Denavit-Hartenberg
cos i
sin
i
Rot zi
0
0
sin i
0
cos i
0
0
1
0
0
0
0
0
1
Denavit-Hartenberg
i 1
Ti Rot zi Transzi Transxi Rot xi
Multiplying the matrices :
cos i
sin
i
i 1
Ti
0
0
sin i cos i
sin i sin i
cos i cos i
cos i sin i
sin i
cos i
0
0
ai cos i
ai sin i
di
1
DH Example
joint 1
R
3 revolute joints
Shown in home position
Link 2
Link 3
Link 1
joint 2
L1
joint 3
L2
DH Example
Shown with joints in non-zero positions
Z0
2
1
x0
x1
x2
3
z3
x3
Z2
Z1
Observe that frame i moves with link i
DH Example
R
Z0
(rotate by 90o around x0 to
align Z0 and Z1)
L2
L1
1
1
1 = 90o
x1
x2
x3
x0
Z1
2
Z2
3
Z3
Link
Var
d
a
1
1
1
0
90o
R
2
2
2
0
0
L1
3
3
3
0
0
L2
DH Example
Link
Var
d
a
1
1
1
0
90o
R
2
2
2
0
0
L1
3
3
3
0
0
L2
DH Example
z0
DH Example
2
x0
1
x1
x2
3
z3
x3
z2
z1
x1 axis expressed
wrt {0}
y1 axis expressed
wrt {0}
z1 axis expressed
wrt {0}
Origin of {1}
w.r.t. {0}
z0
DH Example
2
x0
1
x1
x2
3
z3
x3
z2
z1
x2 axis expressed
wrt {1}
y2 axis expressed
wrt {1}
z2 axis expressed
wrt {1}
Origin of {2}
w.r.t. {1}
z0
DH Example
2
x0
1
x1
x2
3
z3
x3
z2
z1
x3 axis expressed
wrt {2}
y3 axis expressed
wrt {2}
z3 axis expressed
wrt {2}
Origin of {3}
w.r.t. {2}
DH Example
where
Example – the Stanford Arm
Example – the Stanford Arm
Z7
Z6
X7
Z4
Z5
X6
X4
X3
Z3
X5
Z2
Z1
X2
X1
Y1
Example – the Stanford Arm
Z7
Z6
X7
Z4
Z5
X6
i
1
2
3
4
5
6
ai
0
di
d1
i
90°
X4
i
1
X3
Z3
X5
Z2
Z1
X2
X1
Y1
Example – the Stanford Arm
Z7
Z6
X7
Z4
Z5
X6
i
1
2
3
4
5
6
ai
0
0
di
d1
d2
i
90°
90°
X4
i
1
2
X3
Z3
X5
Z2
Z1
X2
X1
Y1
Example – the Stanford Arm
Z7
Z6
X7
Z4
Z5
X6
i
1
2
3
ai
0
0
0
di
d1
d2
d3
i
X4
i
1
2
90°
90°
90° 90°
X3
Z3
X5
Z2
Z1
X2
(var)
4
5
6
X1
Y1
Example – the Stanford Arm
Z7
Z6
X7
Z4
Z5
X6
i
1
2
3
4
5
6
ai
0
0
0
0
di
d1
d2
d3
i
X4
i
1
2
90°
90°
90° 90°
(var)
d4 90°
X3
Z3
X5
Z2
Z1
X2
4
X1
Y1
Example – the Stanford Arm
Z7
Z6
X7
Z4
Z5
X6
i
1
2
3
4
5
6
ai
0
0
0
0
0
di
d1
d2
d3
i
X4
i
1
2
90°
90°
90° 90°
(var)
d4 90°
d5 0°
4
5
X3
Z3
X5
Z2
Z1
X2
X1
Y1
Example – the Stanford Arm
Z7
Z6
X7
Z4
Z5
X6
i
1
2
3
4
5
6
ai
0
0
0
0
0
0
di
d1
d2
d3
i
X4
i
1
2
90°
90°
90° 90°
(var)
d4 90°
d5 0°
d6 0°
4
5
6
X3
Z3
X5
Z2
Z1
X2
X1
Y1
© Copyright 2026 Paperzz