Вы находитесь на странице: 1из 54

Common coordinate transformations

Frame assignments using DH conventions

Coordinate Transformations End-effector Z Base Supply Table Goal X Y
Coordinate Transformations
End-effector
Z
Base
Supply
Table
Goal
X
Y

Coordinate Transformations

Coordinate Transformations End-effector Supply Table Base Goal

End-effector

Coordinate Transformations End-effector Supply Table Base Goal

Supply

Coordinate Transformations End-effector Supply Table Base Goal

Table

Coordinate Transformations End-effector Supply Table Base Goal
Coordinate Transformations End-effector Supply Table Base Goal

Base

Goal

Coordinate Transformations

Coordinate Transformations Robot forward kinematic model
Coordinate Transformations Robot forward kinematic model
Coordinate Transformations Robot forward kinematic model
Coordinate Transformations Robot forward kinematic model
Coordinate Transformations Robot forward kinematic model

Robot forward

kinematic model

Relative Pose between 2 links

i i-1
i
i-1

Relative Pose between 2 links

Frames can be chosen arbitrarily

Denavit-Hartenberg convention is used to assign frames

described in §3.2.2 of Spong, Hutchinson, Vidyasagar Text

Iterative process (start at base, assign frames for each link from base to end-effector)

Hutchinson, Vidyasagar Text • Iterative process (start at base, assign frames for each link from base

DH Frame assignment

Frame {i} moves with link i when joint i is actuated

Z i axis is along joint axis i+1

Z i Link i+1
Z i
Link i+1
• Link i-1
Link i-1

Z i is axis of actuation for joint i+1

Link i Z i-1
Link i
Z i-1

DH convention: Assign Z axes

Use actuation as a guide

Prismatic joint slides along z i

Revolute joint rotates around z i

Establish base frame {0}:

Nearly arbitrary

Start at base and assign frames 1,…,N

Pick x-axis and origin

y-axis chosen to form a right hand system

Robot Base

Often base is “given” or some fixed point on the work-table is used.

z 0 is along joint axis 1

Original:

any point on z 0 for origin

Modified DH:

{0} is defined to be completely co-incident with the reference system {1}, when the variable joint parameter, d 1 or q 1 , is zero.

DH convention: Assign X axes

Start at base and assign frames 1,…,N

Pick x-axis and origin

y-axis chosen to form a right hand system

Consider 3 cases for z i-1 and z i :

Not-coplanar

Parallel

Intersect

DH convention: x axis

z i-1 and z i are not-coplanar

Common normal to axes is the “link” axis

Intersection with z i is origin i X i z i-1 z i
Intersection with z i is origin
i
X
i
z i-1
z i

Usually, x i points from frame i-1 to

DH convention: x axis

z i and z i-1 are parallel

Infinitely many common normals

• Pick one to be the “link” axis

Choose normal that passes through origin of frame {i-1}

pointing toward z i

Origin is intersection of x i with z i X i
Origin
is intersection of x i with z i
X i

z i-1

that passes through origin of frame {i-1} pointing toward z i Origin is intersection of x
that passes through origin of frame {i-1} pointing toward z i Origin is intersection of x
that passes through origin of frame {i-1} pointing toward z i Origin is intersection of x
that passes through origin of frame {i-1} pointing toward z i Origin is intersection of x

z i

DH convention: x axis

z i

If joint axes z i-1 and z i intersect, x i is normal to the plane containing the axes

x i = (z i-1 z i )

x i =  (z i - 1  z i )
x i =  (z i - 1  z i )
x i =  (z i - 1  z i )
x i =  (z i - 1  z i )
x i =  (z i - 1  z i )
x i =  (z i - 1  z i )

link i

X i

z i-1

DH convention: Origin non-coplanar Z

Origin of frame {i} is placed at intersection of joint axis and link axis

z i x
z i
x

i

DH convention: Origin non-coplanar Z Origin of frame {i} is placed at intersection of joint axis

DH convention: y axis

Y i is chosen to make a right hand frame

Z i Y i x i
Z i
Y i
x i
DH convention: y axis • Y i is chosen to make a right hand frame Z

x i points from frame i-1 to i

DH convention: Origin parallel Z

z i and z i-1 are parallel

Origin is intersection of x i with z i

z i-1 z i
z i-1
z i
parallel Z • z i and z i - 1 are parallel • Origin is intersection
parallel Z • z i and z i - 1 are parallel • Origin is intersection
parallel Z • z i and z i - 1 are parallel • Origin is intersection
parallel Z • z i and z i - 1 are parallel • Origin is intersection

x

i

DH convention: x axis - parallel Z

z i and z i-1 are parallel

Origin is intersection of x i with z i

Yi is chosen to make a right hand frame

y i z i-1 z i
y i
z i-1
z i
parallel • Origin is intersection of x i with z i • Yi is chosen to
parallel • Origin is intersection of x i with z i • Yi is chosen to
parallel • Origin is intersection of x i with z i • Yi is chosen to
parallel • Origin is intersection of x i with z i • Yi is chosen to

x

i

DH convention: origin

z i-1

z i

If joint axes intersect, the origin of frame {i} is usually placed at intersection of the joint axes

i-1 z i If joint axes intersect, the origin of frame {i} is usually placed at
i-1 z i If joint axes intersect, the origin of frame {i} is usually placed at

link i

x i

DH convention: y axis

z i-1

z i

Y i is chosen to make a right hand frame

DH convention: y axis z i-1 z i Y i is chosen to make a right
DH convention: y axis z i-1 z i Y i is chosen to make a right

link i

x i

y i

Link Parameters

Z i-1

Link i

a i

Z

i

a

i

Z’ i

Link Parameters Z i-1 Link i a i Z i a i Z’ i a i+1

a i+1

a i+1

Z i+1

Joint Parameters

Joint Parameters q i d i q i q i+1 d i+1

q i

d i q i
d
i
q
i

q i+1

d i+1

-1
-1

Original DH

Frame is placed at distal end of link

-1 Original DH Frame is placed at distal end of link z i - 1 screw
-1 Original DH Frame is placed at distal end of link z i - 1 screw

z i-1 screw motion

-1 Original DH Frame is placed at distal end of link z i - 1 screw

x i screw motion

DH Frames and Parameters

DH Frames and Parameters

Robot Revolute Joint DH

Robot Revolute Joint DH

Prismatic Joint DH

Prismatic Joint DH

Link Transformations

Described by 4 parameters:

a i : twist

a i : link length

d i : joint offset

q i : joint angle

Joint variable is d i or q i

Build Table with values for each link:

Link

Var

q

d

a

a

1

q

1

q

1

0

90

o

L

1

2

d

2

0

d

2

0

0

Link Transformations

Described by 4 parameters:

a i : twist

a i : link length

d i : joint offset

q i : joint angle

Joint variable is d i or q i

Link Transformation is

: joint angle • Joint variable is d i or q i • Link Transformation is
z i-1 screw motion x screw motion i
z
i-1 screw motion
x
screw motion
i
: joint angle • Joint variable is d i or q i • Link Transformation is

A i =

A i = A-matrices contains only one variable or Equation 3.10 in Spong, Hutchinson, Vidyasagar

A-matrices

A i = A-matrices contains only one variable or Equation 3.10 in Spong, Hutchinson, Vidyasagar

contains only one variable or

A i = A-matrices contains only one variable or Equation 3.10 in Spong, Hutchinson, Vidyasagar
A i = A-matrices contains only one variable or Equation 3.10 in Spong, Hutchinson, Vidyasagar
A i = A-matrices contains only one variable or Equation 3.10 in Spong, Hutchinson, Vidyasagar
A i = A-matrices contains only one variable or Equation 3.10 in Spong, Hutchinson, Vidyasagar

Equation 3.10 in Spong, Hutchinson, Vidyasagar

Original DH

-1 Frame is placed at distal end of link
-1
Frame is placed at distal
end of link
Original DH -1 Frame is placed at distal end of link z i - 1 screw

z i-1 screw motion

x i screw motion

Modified DH Z i+1 Z i Z i+2 z i y i Frame is placed
Modified DH
Z i+1
Z i
Z i+2
z i
y i
Frame is placed at
x i
proximal end of link
Z i+1 Z i Z i+2 z i y i Frame is placed at x i

x i-1 screw motion

z i screw motion

Modified DH text figure

Modified DH – text figure

Link 1

DH Example

3 revolute joints

Shown in home position

joint 1

R Link 2 Link 3 joint 2 joint 3 L 1 L 2
R
Link 2
Link 3
joint 2
joint 3
L 1
L 2

DH Example

Z i is axis of actuation for joint i+1

Z 0

q 1
q 1

Z 1

q 2

Z 0 and Z 1 are not co-planar Z 1 and Z 2 are parallel

for joint i+1 Z 0 q 1 Z 1 q 2 Z 0 and Z 1
for joint i+1 Z 0 q 1 Z 1 q 2 Z 0 and Z 1
q 3
q 3

Z 2

for joint i+1 Z 0 q 1 Z 1 q 2 Z 0 and Z 1

DH Example:

Z 0 and Z 1 are not co-planar: x 0 is the common normal Z
Z 0 and Z 1 are not co-planar:
x 0 is the common normal
Z 0
q 1
x 1
x 2
x 3
x 0

Z

1

q 2

Z 2

q 3

Z

3

DH Example:

Z 0 and Z 1 are not co-planar:

x 0 is the common normal

q 1

Z 0

are not co-planar: x 0 is the common normal q 1 Z 0 x 0 Z

x 0

Z

1

x 1

x 2

0 is the common normal q 1 Z 0 x 0 Z 1 x 1 x

q 2

Z 2

q 3

Z

3

x 3

Z 1 and Z 2 are parallel :

x 1 is selected as the common normal that lies along the center of the link

DH Example:

Z 0 and Z 1 are not co-planar:

x 0 is the common normal

q 1

Z 0

are not co-planar: x 0 is the common normal q 1 Z 0 x 0 Z

x 0

Z

1

x 1

x 2

0 is the common normal q 1 Z 0 x 0 Z 1 x 1 x

q 2

Z 2

q 3

Z

3

x 3

Z 2 and Z 3 are parallel :

x 2 is selected as the common normal that lies along the center of the link

DH Example:

Shown with joints in non-zero positions

Z 0 x z 3 q 2 q 3 x 2 x 1 Z 2
Z 0
x
z 3
q 2
q 3
x 2
x 1
Z 2
q 1
x 0

Z 1

3

Observe that frame i moves with link i

DH Example:

Link lengths given

a 1 = 90 o (rotate by 90 o around x 0 to align R Z 0 and Z 1 )

Z 0 L 1 x 1 1 x 0
Z 0
L 1
x 1
1
x 0

a

Z

1

Z 2

L 2

by 90 o around x 0 to align R Z 0 and Z 1 ) Z

x 2

x 3

by 90 o around x 0 to align R Z 0 and Z 1 ) Z

Z

3

by 90 o around x 0 to align R Z 0 and Z 1 ) Z

DH Example:

Build table

R

Z 0

L 1 q 1 x 1 x 0 1
L 1
q 1
x 1
x 0
1

a

q 2

L 2

Build table R Z 0 L 1 q 1 x 1 x 0 1 a q

x 2

x 3

table R Z 0 L 1 q 1 x 1 x 0 1 a q 2

q 3

Z 0 L 1 q 1 x 1 x 0 1 a q 2 L 2

Z

1

Z

2

Z

3

Link

Var

q

d

a

a

 

1 1

q

q

1

0

90

o

R

 

2 2

q

q

2

0

0

L

1

 

3 3

q

q

3

0

0

L

2

DH Example:

Link

Var

q

d

a

a

1

q

1

q

1

0

90

o

R

2

q

2

q

2

0

0

L

1

3

q

3

q

3

0

0

L

2

q 1 0 90 o R 2 q 2 q 2 0 0 L 1 3

DH Example:

DH Example:
DH Example:
DH Example:

DH Example:

z 0 x z 3 q 2 q 3 x 2 x 1 z 2
z 0
x
z 3
q 2
q 3
x 2
x 1
z 2
q 1
x 0

z 1

3

z 0 x z 3 q 2 q 3 x 2 x 1 z 2 q

x 1 axis expressed wrt {0}

y 1 axis expressed wrt {0}

3 x 1 axis expressed wrt {0} y 1 axis expressed wrt {0} z 1 axis

z 1 axis expressed wrt {0}

3 x 1 axis expressed wrt {0} y 1 axis expressed wrt {0} z 1 axis

Origin of {1}

w.r.t. {0}

3 x 1 axis expressed wrt {0} y 1 axis expressed wrt {0} z 1 axis

DH Example:

z 0 x z 3 q 2 q 3 x 2 x 1 z 2
z 0
x
z 3
q 2
q 3
x 2
x 1
z 2
q 1
x 0

z 1

3

z 0 x z 3 q 2 q 3 x 2 x 1 z 2 q

x 2 axis expressed wrt {1}

y 2 axis expressed wrt {1}

3 x 2 axis expressed wrt {1} y 2 axis expressed wrt {1} z 2 axis

z 2 axis expressed wrt {1}

3 x 2 axis expressed wrt {1} y 2 axis expressed wrt {1} z 2 axis
3 x 2 axis expressed wrt {1} y 2 axis expressed wrt {1} z 2 axis

Origin of {2}

w.r.t. {1}

DH Example:

z 0 x z 3 q 2 q 3 x 2 x 1 z 2
z 0
x
z 3
q 2
q 3
x 2
x 1
z 2
q 1
x 0

3

z 1

z 0 x z 3 q 2 q 3 x 2 x 1 z 2 q

x 3 axis expressed wrt {2}

y 3 axis expressed wrt {2}

1 x 3 axis expressed wrt {2} y 3 axis expressed wrt {2} z 3 axis

z 3 axis expressed wrt {2}

1 x 3 axis expressed wrt {2} y 3 axis expressed wrt {2} z 3 axis
1 x 3 axis expressed wrt {2} y 3 axis expressed wrt {2} z 3 axis

Origin of {3}

w.r.t. {2}

DH Example:

DH Example: where
DH Example: where
DH Example: where

where

DH Example: where
DH Example: where
DH Example: where
DH Example: where

DH Example:alternate end-effector frame

Z i is axis of actuation for joint i+1

Z 0

q 1
q 1

Z 1

q 2

Z 0 and Z 1 are not co-planar Z 1 and Z 2 are parallel

i+1 Z 0 q 1 Z 1 q 2 Z 0 and Z 1 are not
i+1 Z 0 q 1 Z 1 q 2 Z 0 and Z 1 are not
q 3
q 3

Z 2

i+1 Z 0 q 1 Z 1 q 2 Z 0 and Z 1 are not

Pick this z 3

DH Example: alternate end-effector frame

Z 0

y

2

q 1 x 1 x 0 1
q 1
x 1
x 0
1

a

Z 1

q 2

Z 2

x 2 Z 3
x 2
Z
3

q 3

Would need to rotate about y 2 here!
Would need to
rotate about y 2
here!
end-effector frame Z 0 y 2 q 1 x 1 x 0 1 a Z 1

DH Example: alternate end-effector frame

Z 0

x’ 2

q 1 x 1 x 2 x 0 1 Z 3 q 3
q 1
x 1
x 2
x 0
1
Z 3
q 3

a

Z 1

q 2

Solution: Add “offset” to rotation about z 2 (q 3 +90 o )
Solution: Add “offset” to
rotation about z 2
(q 3 +90 o )

DH Example: alternate end-effector frame

Z 0

x’ 2

L x 3 2 q 1 x 1 x 2 a x 0 1 Z
L
x 3
2
q 1
x 1
x 2
a
x 0
1
Z
q 3
q 2
Z 1
Z 2
Now can rotate
about x’ to align
z 2 and z 3

3

DH Example: alternate end-effector frame

Link

Var

q

d

a

a

1

q

1

q

1

0

90

o

R

2

q

2

q

2

0

0

L

1

3

q

3

q 3 +90 o

0

90

o

0

e

-

     

L

2

2 0 0 L 1 3 q 3 q 3 +90 o 0 90 o 0

DH Example: alternate end-effector frame

x 3 R Z 0 x’ 2 L 1 L 2 Z 3 q 1
x 3
R
Z 0
x’ 2
L 1
L 2
Z 3
q 1
x 1
x 2
x 0
1
q 3

a

Z 1

q 2

Z 2

Link

Var

q

d

a

a

 

1 1

q

q

1

0

90

o

R

 

2 2

q

q

2

0

0

L

1

 

3 3

q

q 3 +90 o

0

90

o

0

DH Example: alternate end-effector frame

x 3 R Z 0 x’ 2 L 1 L 2 Z 3 q 1
x 3
R
Z 0
x’ 2
L 1
L 2
Z 3
q 1
x 1
x 2
x 0
1
Z 3
q 3

a

Z 1

q 2

Z 2

Example: alternate end-effector frame x 3 R Z 0 x’ 2 L 1 L 2 Z
Example: alternate end-effector frame x 3 R Z 0 x’ 2 L 1 L 2 Z

DH Example: alternate end-effector frame

x 3 R Z 0 x’ 2 L 1 L 2 Z 3 q 1
x 3
R
Z 0
x’ 2
L 1
L 2
Z 3
q 1
x 1
x 2
x 0
1
Z 3
q 3

a

Z 1

q 2

Z 2

Example: alternate end-effector frame x 3 R Z 0 x’ 2 L 1 L 2 Z

DH Example: alternate end-effector frame

x 3 R Z 0 x’ 2 L 1 L 2 Z 3 q 1
x 3
R
Z 0
x’ 2
L 1
L 2
Z 3
q 1
x 1
x 2
x 0
1
Z 3
q 3

a

Z 1

q 2

Z 2

Example: alternate end-effector frame x 3 R Z 0 x’ 2 L 1 L 2 Z
Example: alternate end-effector frame x 3 R Z 0 x’ 2 L 1 L 2 Z