0% found this document useful (0 votes)
12 views21 pages

Lecture - 3 - Examples

The document discusses robot kinematics and describes how to assign coordinate frames for robot links using the Denavit-Hartenberg convention. It provides examples of applying the DH parameters to define the coordinate frames for common robot configurations, including a two-link planar manipulator, three-link cylindrical robot, and robot with spherical wrist.

Uploaded by

Haronicle
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views21 pages

Lecture - 3 - Examples

The document discusses robot kinematics and describes how to assign coordinate frames for robot links using the Denavit-Hartenberg convention. It provides examples of applying the DH parameters to define the coordinate frames for common robot configurations, including a two-link planar manipulator, three-link cylindrical robot, and robot with spherical wrist.

Uploaded by

Haronicle
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

Robot Kinematics

Examples
Assigning coordinate frames
1. Choose zi as axis of rotation for joint i+1
– z0 is axis of rotation for joint 1, z1 is axis of rotation for joint 2, etc
– If joint i+1 is revolute, zi is the axis of rotation of joint i+1
– If joint i+1 is prismatic, zi is the axis of translation for joint i+1
Assigning coordinate frames
2. Assign base frame
– Can be any point along z0
3. Chose x0, y0 to follow the right-handed convention
4. Now start an iterative process to define frame i with respect to frame i-1
– Consider three cases for the relationship of zi-1 and zi:
i. zi-1 and zi are non-coplanar
ii. zi-1 and zi intersect
zi-1 and zi are coplanar
iii. zi-1 and zi are parallel
Assigning coordinate frames
i. zi-1 and zi are non-coplanar
– There is a unique shortest distance between the two axes
– Choose this line segment to be xi
• oi is at the intersection of zi and xi
– Choose yi by right-handed convention
iii. zi-1 and zi intersect
– Choose xi to be normal to the plane defined by zi and zi-1
• oi is at the intersection of zi and xi
– Choose yi by right-handed convention
v. zi-1 and zi are parallel
– Infinitely many normals of equal length between zi and zi-1
– Free to choose oi anywhere along zi, however if we choose xi to be along
the normal that intersects at oi-1, the resulting di will be zero
– Choose yi by right-handed convention
Assigning tool frame

• The previous assignments are valid up to frame n-1


– The tool frame assignment is most often defined by the axes n, s, a:
• a is the approach direction
• s is the ‘sliding’ direction (direction along which the grippers open/close)
• n is the normal direction to a and s
Physical basis for DH parameters
θ i : angle from Xi-1 to Xi about Zi-1
ai : distance from intersection of Zi-1 & Xi to Oi along Xi
d i : distance from Oi-1 to intersection of Zi-1 & Xi along Zi-1
α i : angle from Zi-1 to Zi about Xi

positive convention:
Transformation between i-1

l 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:
i −1
Ti = T ( zi −1 , d i ) R( zi −1 , θ i )T ( xi , ai ) R( xi , α i )

⎡Cθ i − Cα i Sθ i Sα i Sθ i ai Cθ i ⎤ ⎡ r11 r12 r13 dx ⎤


⎢ Sθ Cα i Cθ i − Sα i Cθ i ai Sθ i ⎥⎥ ⎢⎢r21 r22 r23 d y ⎥⎥
⎢ i =
⎢ 0 Sα i Cα i d i ⎥ ⎢ r31 r32 r33 dz ⎥
⎢ ⎥ ⎢ ⎥
⎣ 0 0 0 1 ⎦ ⎣0 0 0 1⎦
Example 1: two-link planar manipulator
• 2DOF: need to assign three coordinate frames
1. Choose z0 axis (axis of rotation for joint 1, base frame)
2. Choose z1 axis (axis of rotation for joint 2)
3. Choose z2 axis (tool frame)
• This is arbitrary for this case since we have described no wrist/gripper
• Instead, define z2 as parallel to z1 and z0 (for consistency)
4. Choose xi axes
• All zi’s are parallel
• Therefore choose xi to intersect oi-1
Example 1: two-link planar manipulator
• Now define DH parameters
– First, define the constant parameters ai, αi
– Second, define the variable parameters θi, di
link ai αi di θi
1 a1 0 0 θ1
2 a2 0 0 θ2
– The αi terms are 0 because all zi are parallel
– Therefore only θi are variable
⎡c1 − s1 0 a1c1 ⎤ ⎡c 2 − s2 0 a2c 2 ⎤
⎢s c1 0 a1s1 ⎥⎥ ⎢s c2 0 a2s2 ⎥⎥
A1 = ⎢ 1 , A2 = ⎢ 2
⎢0 0 1 0 ⎥ ⎢0 0 1 0 ⎥
⎢ ⎥ ⎢ ⎥
⎣0 0 0 1 ⎦ ⎣0 0 0 1 ⎦
T10 = A1
⎡c12 − s12 0 a1c1 + a2c12 ⎤
⎢s c12 0 a1s1 + a2s12 ⎥⎥
T2 = A1A2 = ⎢ 12
0
⎢0 0 1 0 ⎥
⎢ ⎥
⎣0 0 0 1 ⎦
Example 2: three-link cylindrical robot
• 3DOF: need to assign four coordinate frames
1. Choose z0 axis (axis of rotation for joint 1, base frame)
2. Choose z1 axis (axis of translation for joint 2)
3. Choose z2 axis (axis of translation for joint 3)
4. Choose z3 axis (tool frame)
• This is again arbitrary for this case since we have described no wrist/gripper
• Instead, define z3 as parallel to z2
Example 2: three-link cylindrical robot
• Now define DH parameters
– First, define the constant parameters ai, αi
– Second, define the variable parameters θi, di

link ai αi di θi
1 0 0 d1 θ1
2 0 -90 d2 0
3 0 0 d3 0

⎡c1 − s1 0 0⎤ ⎡1 0 0 0⎤ ⎡1 0 0 0⎤
⎢s c1 0 0 ⎥⎥ ⎢0 0 1 0 ⎥⎥ ⎢0 1 0 0 ⎥⎥
A1 = ⎢ 1 , A2 = ⎢ , A3 = ⎢
⎢0 0 1 d1 ⎥ ⎢0 − 1 0 d2 ⎥ ⎢0 0 1 d3 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣0 0 0 1⎦ ⎣0 0 0 1⎦ ⎣0 0 0 1⎦

⎡c1 0 − s1 − s1d 3 ⎤
⎢s 0 c c d ⎥
0 1 1 1 3
T3 = A1A2 A3 = ⎢ ⎥
⎢ 0 − 1 0 d1 + d 2 ⎥
⎢ ⎥
⎣0 0 0 1 ⎦
Example 3: spherical wrist
• 3DOF: need to assign four coordinate frames
– yaw, pitch, roll (θ4, θ5, θ6) all intersecting at one point o (wrist center)
Example 3: spherical wrist

• Now define DH parameters link ai αi di θi


– First, define the constant parameters ai, αi 4 0 -90 0 θ4
– Second, define the variable parameters θi, di
5 0 90 0 θ5
6 0 0 d6 θ6
⎡c 4 0 − s4 0⎤ ⎡c5 0 − s5 0⎤ ⎡c 6 − s6 0 0⎤
⎢s 0 c4 0⎥⎥ ⎢s 0 c5 0⎥⎥ ⎢s c6 0 0 ⎥⎥
A1 = ⎢ 4 , A2 = ⎢ 5 , A3 = ⎢ 6
⎢0 −1 0 0⎥ ⎢0 −1 0 0⎥ ⎢0 0 1 d6 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣0 0 0 1⎦ ⎣0 0 0 1⎦ ⎣0 0 0 1⎦

⎡c 4c5c 6 − s4s6 − c 4c 5s6 − s 4c 6 c 4 s5 c 4 s5 d 6 ⎤


⎢s c c + c s − s 4 c 5 s6 + c 4 c 6 s 4 s5 s4s5d 6 ⎥⎥
T6 = A4 A5 A6 = ⎢ 4 5 6
3 4 6

⎢ − s5 c 6 s5 c 6 c5 c5d 6 ⎥
⎢ ⎥
⎣ 0 0 0 1 ⎦
Example 4: cylindrical robot with spherical wrist
• 6DOF: need to assign seven coordinate frames
– But we already did this for the previous two examples, so we can fill in the
table of DH parameters:

link ai αi di θi
1 0 0 d1 θ1
2 0 -90 d2 0
3 0 0 d3 0
o3, o4, o5 are all at 4 0 -90 0 θ4
the same point oc
5 0 90 0 θ5
6 0 0 d6 θ6
Example 4: cylindrical robot with spherical wrist

• Note that z3 (axis for joint 4) is collinear with z2 (axis for joint 3), thus we
can make the following combination:
r11 = c1c 4c5c 6 − c1s 4s6 + s1s5c 6
⎡ r11 r12 r13 dx ⎤
⎢r r r23 d y ⎥⎥ r21 = s1c 4c5c 6 − s1s 4s6 − c1s5c 6
T6 = T3 T6 = ⎢ 21 22
0 0 3
r31 = −s 4c5c 6 − c 4s6
⎢ r31 r32 r33 dz ⎥
⎢ ⎥ r12 = −c1c 4c5s6 − c1s 4c 6 − s1s5c 6
⎣0 0 0 1⎦
r22 = −s1c 4c5s6 − s1s 4s6 + c1s5c 6
r32 = s4c5c 6 − c 4c 6
r13 = c1c 4s5 − s1c5
r23 = s1c 4s5 + c1c5
r33 = −s 4s5
d x = c1c 4s5d 6 − s1c5d 6 − s1d 3
d y = s1c 4s5d 6 + c1c5d 6 + c1d 3
d z = −s 4s5d 6 + d1 + d 2
Example 5: the Stanford manipulator
• 6DOF: need to assign seven coordinate frames:
1. Choose z0 axis (axis of rotation for joint 1, base frame)
2. Choose z1-z5 axes (axes of rotation/translation for joints 2-6)
3. Choose xi axes
4. Choose tool frame
5. Fill in table of DH parameters:
Example 5: the Stanford manipulator
• Now determine the individual homogeneous transformations:

⎡c1 0 − s1 0⎤ ⎡c2 0 s2 0⎤
⎢s 0 c1 0⎥⎥ ⎢s 0 − c2 0 ⎥⎥
link ai αi di θi A1 = ⎢ 1 , A2 = ⎢ 2 ,
⎢0 −1 0 0⎥ ⎢0 1 0 d2 ⎥
1 0 -90 0 θ1 ⎢ ⎥ ⎢ ⎥
⎣0 0 0 1⎦ ⎣0 0 0 1⎦
2 0 90 d2 θ2 ⎡1 0 0 0⎤ ⎡c4 0 − s4 0⎤
⎢0 1 0 0 ⎥⎥ ⎢s 0 c4 0⎥⎥
3 0 0 d3 0 A3 = ⎢ , A4 = ⎢ 4 ,
⎢0 0 1 d3 ⎥ ⎢0 −1 0 0⎥
⎢ ⎥ ⎢ ⎥
4 0 -90 0 θ4 ⎣0 0 0 1⎦ ⎣0 0 0 1⎦

5 0 90 0 θ5 ⎡c5 0 s5 0⎤ ⎡c6 − s6 0 0 ⎤
⎢s 0 − c5 0⎥⎥ ⎢s c6 0 0 ⎥⎥
6 0 0 d6 θ6 A5 = ⎢ 5 , A6 = ⎢ 6
⎢0 −1 0 0⎥ ⎢0 0 1 d6 ⎥
⎢ ⎥ ⎢ ⎥
⎣0 0 0 1⎦ ⎣0 0 0 1⎦
Example 5: the Stanford manipulator

• Finally, combine to give the complete description of the forward


kinematics:

r11 = c1[c 2 (c 4c5c 6 − s4s6 ) − s2s5c 6 ] − d 2 (s4c5c 6 + c 4s6 )


r21 = s1[c 2 (c 4c5c 6 − s 4s6 ) − s2s5c 6 ] + c1 (s 4c5c 6 + c 4s6 )
r31 = −s2 (c 4c5c 6 − s4s6 ) − c 2s5c 6
r12 = c1[− c 2 (c 4c5s6 + s 4c 6 ) + s2s5s6 ] − s1 (− s4c5s6 + c 4c 6 )
⎡ r11 r12 r13 dx ⎤ r22 = −s1[− c 2 (c 4c5s6 − s4c 6 ) − s2s5s6 ] + c1 (− s4c5s6 + c 4s6 )
⎢r r22 r23 d y ⎥⎥ r32 = s2 (c 4c5s6 + s 4c 6 ) + c 2s5s6
T6 = A1 ⋅ ⋅ ⋅ A6 = ⎢ 21
0
⎢r31 r32 r33 dz ⎥ r13 = c1 (c 2c 4s5 + s2c5 ) − s1s4s5
⎢ ⎥
⎣0 0 0 1⎦ r23 = s1 (c 2c 4s5 + s2c5 ) + c1s 4s5
r33 = −s2c 4s5 + c 2c5
d x = c1s2d 3 − s1d 2 + d 6 (c1c 2c 4s5 + c1c5s2 − s1s 4s5 )
d y = s1s2d 3 + c1d 2 + d 6 (c1s4s5 + c 2c 4s1s5 + c5s1s2 )
d z = c 2d 3 + d 6 (c 2c5 − c 4s2s5 )
Example 6: the SCARA manipulator
• 4DOF: need to assign five coordinate frames:
1. Choose z0 axis (axis of rotation for joint 1, base frame)
2. Choose z1-z3 axes (axes of rotation/translation for joints 2-4)
3. Choose xi axes
4. Choose tool frame
5. Fill in table of DH parameters:
Example 6: the SCARA manipulator
• Now determine the individual homogeneous transformations:

⎡c1 − s1 0 a1c1 ⎤ ⎡c2 s 2 0 a 2 c2 ⎤


link ai αi di θi ⎢s c1 0 a1s1 ⎥⎥ ⎢s − c 0 a2 s2 ⎥⎥
A1 = ⎢ 1 , A2 = ⎢ 2 2
,
1 a1 0 0 θ1 ⎢0 0 1 0 ⎥ ⎢0 0 −1 0 ⎥
⎢ ⎥ ⎢ ⎥
⎣0 0 0 1 ⎦ ⎣0 0 0 1 ⎦
2 a2 180 0 θ2
⎡1 0 0 0⎤ ⎡c4 − s 4 0 0 ⎤
3 0 0 d3 0 ⎢0 1 0 0 ⎥⎥ ⎢s
4 c4 0 0 ⎥⎥
A3 = ⎢ , A4 = ⎢
4 0 0 d4 θ4 ⎢0 0 1 d3 ⎥ ⎢0 0 1 d4 ⎥
⎢ ⎥ ⎢ ⎥
⎣0 0 0 1⎦ ⎣0 0 0 1⎦

⎡c12 c 4 + s12 s4 − c12 s4 + s12 c 4 0 a1c1 + a2c12 ⎤


⎢s c − c s − s12 s4 − c12 c 4 0 a1s1 + a2s12 ⎥⎥
T4 = A1 ⋅ ⋅ ⋅ A4 = ⎢ 12 4
0 12 4

⎢ 0 0 − 1 − d3 − d 4 ⎥
⎢ ⎥
⎣ 0 0 0 1 ⎦
Q
u
e
s
t
i
o
n
s

You might also like