Documente Academic
Documente Profesional
Documente Cultură
Ravi Balasubramanian
ravib@cmu.edu
Robotics Institute
Carnegie Mellon University
The frame assignment can be done any way, but it makes sense to have a systematic procedure for fixing frames
onto links.
1
2. Identify the common perpendicular between them, or point of intersection. At the point of intersection, or
th
at the point where the common perpendicular meets the i axis, assign the frame origin.
3. ˆ
Assign axis Zi pointing along the joint axis i .
4. ˆ ˆ
Assign axis Xi pointing along the common perpendicular, or if the axes intersect, assign Xi to be normal to
the plane containing the two axes.
5. ˆ
l_1
l_2
a
alpha
( i 1)
2.2 Formula for i T
It is noticed that frame iT can be reached from (i 1)T by executing the following motions all in the moving frame
(Figure 2).
Thus, we have
(i 1)
T (a; a; q; d) = Rot(ai; X(i 1)) Trans(a(i 1); X(i 1)) Rot(qi; Zi) Trans(di; Zi)
i
( i 1) ( i 1)
Now that we have a expression for i T , we can easily compute i T (the 4x4 matrix) by multiplying the
matrices out to get eqn. 3.6 (Craig p84).
2
Z_i
X_i
{i}
theta_i
alpha_(i−1) d_i
Z_(i−1)
{i−1} X_(i−1)
a_(i−1)
ˆ ˆ ˆ
ai = angle between Zi and Zi+1 measured about Xi
ˆ ˆ ˆ
di = distance from Xi 1 to Xi measured along Zi
ˆ ˆ ˆ
qi = angle between Xi 1 and Xi measured about Zi
x = l1c1 + l2c12
y = l1s1 + l2s12 (1)
3
y (x,y)
l_2
theta_2
l_1
theta_1
x
Figure 3: RR Arm
We follow the rules outlined by the convention. Refer to Figure 4. We note the following:
ˆ ˆ
1. Z 1; Z 2 on joint axes 1 and 2 respectively.
ˆ ˆ
2. Z 0 = Z 1
ˆ ˆ ˆ
3. X0 common perpendicular to Z0 and Z1.
ˆ ˆ ˆ
4. X1 common perpendicular to Z1 and Z2.
ˆ ˆ
5. X2 intersects X1.
i a a q d
1
0 T 0 0 q1 0
2
1 T 0 l1 q2 0
4
X_2
Y_0 X_1
l_1 {2} ORG
theta_1
Z_0,Z_1 X_0
Z_2
Figure 4: RR Arm with DH Frames Attached
B
c1 C B
c2 C
@ 0 0 1 0 A @0 0 1 0 A
B c c s s c1s2 s1c2 0 lc C
1 2 1 2 1 1
= 0 s1c2 + c1s2 1
0 0 0 1
B
s1s2 + c1c2 0 l1s1 C
@ 0 0 1 0 A
B c s12 0 l1c1 C
12
= 0 s12 c
0 l s
1
0 0 0 1
12 1 1
B C
@ 0 0 1 0 A
The fourth column of 02T gives the coordinates of 02PORG and is not the same answer as in the plain trigonometry case;
this is because we are considering two different points. This is easily remedied by adding an extra tool frame, FTG
(Figure 5) defined as:
2
T = 0 0 0 1 l 1
T 2
B 0 0 0 1
C
B 0 1 0 0 C
@ 1 0 0 0 A
5
X_2,Z_T
Y_T
X_T
{0},{1} ORG l_2
theta_2
Y_0 X_1
l_1 {2} ORG
theta_1
Z_0,Z_1 X_0
Z_2
Figure 5: RR Arm with DH and Tool Frames Attached
Thus, we get
0 0 2
T T = 2T T T s12
c
B 0 12 l1c1 + l2c12 C
= 0
0
0 c
0
12
s
0
12
l s
11 1
+ l2s12 1 (2)
B C
@ 1 0 0 0 A
Note that the answers match between eqns. (1) and (2).
4 When is DH useful?
Clearly, for a simple mechanism such as the RR arm, using DH is a big overhead as compared to simple trigonome-
try. But for complex mechanisms, DH is far easier to automate. Also, once the frames are fixed and the parameters
identified, it is easy to find the relationship between any two frames on the mechanism. Also, the DH parameters are
an easy way of completely specifying the mechanism. We will see more of DH in future classes.