Common Coordinate Transformations
Common Coordinate Transformations
transformations
Frame assignments using DH
conventions
Coordinate Transformations
End-effector
Z Base
Supply
Table
Goal
X Y
Coordinate Transformations
End-effector
Base
Supply
Goal
Table
Coordinate Transformations
Robot forward
kinematic model
Relative Pose between 2 links
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)
DH Frame assignment
Frame {i} moves with link i when joint i is actuated
Zi axis is along joint axis i+1
Zi is axis of actuation for joint i+1
Zi
Link i-1
Link i+1
Link i
Zi-1
DH convention: Assign Z axes
Use actuation as a guide
Prismatic joint slides along zi
Revolute joint rotates around zi
Establish base frame {0}:
Nearly arbitrary
Usually, xi points
from frame i-1 to
i
zi-1 Xi
zi
DH convention: x axis
zi-1 zi
DH convention: x axisz
If joint axes zi-1 and zi intersect, xi i
is normal to the plane containing
the axes
xi = (zi-1 zi )
link i
zi-1
Xi
DH convention: Origin non-coplanar Z
Origin of frame {i} is placed at intersection of joint axis and link
axis
zi
xi
DH convention: y axis
Yi is chosen to make a right hand frame
Zi
xi points from Yi
frame i-1 to i
xi
DH convention: Origin parallel Z
zi and zi-1 are parallel
Origin is intersection of xi with zi
zi-1 zi
xi
DH convention: x axis - parallel Z
zi and zi-1 are parallel
Origin is intersection of xi with zi
Yi is chosen to make a right hand frame
yi
zi-1 zi
xi
DH convention: origin
If joint axes intersect, the origin of
frame {i} is usually placed at
intersection of the joint axes
zi
zi-1
link i
xi
DH convention: y axis
Yi is chosen to make a
right hand frame
zi
zi-1 yi
link i
xi
Link Parameters ai+1
Zi
Zi
Zi-1
Zi+1
Link i
ai
ai+1
ai
Joint Parameters
qi
di+1
qi+1
di
qi
Original DH
-1
Zi
Zi+2
zi yi
Frame is placed at
xi proximal end of link
R
Link 2
Link 1 Link 3
joint 2 joint 3
L1 L2
DH Example
Zi is axis of actuation for joint i+1
q2 q3
Z1 Z2
DH Example:
Z0 and Z1 are not co-planar:
x0 is the common normal
Z0
q1
x1 x2 x3
x0
q2 q3
Z1 Z3
Z2
DH Example:
Z0 and Z1 are not co-planar:
x0 is the common normal
Z0
q1
x1 x2 x3
x0
q2 q3
Z1 Z3
Z2
q1
x1 x2 x3
x0
q2 q3
Z1 Z3
Z2
Z0 x3
z3
q2 q3
x2
x1
q1 Z2
x0
Z1
x1 x2 x3
a1 x0
Z1 Z3
Z2
DH Example:
Build table
R
Z0
L1 L2
q1
x1 x2 x3
a1 x0
q2 q3
Z1 Z3
Z2
Link Var q d a a
1 q1 q1 0 90o R
2 q2 q2 0 0 L1
3 q3 q3 0 0 L2
DH Example:
Link Var q d a a
1 q1 q1 0 90o R
2 q2 q2 0 0 L1
3 q3 q3 0 0 L2
DH Example:
z0
DH Example: x3
z3
q2 q3
x2
x1
q1 z2
x0
z1
Origin of {1}
w.r.t. {0}
z0
DH Example: x3
z3
q2 q3
x2
x1
q1 z2
x0
z1
Origin of {2}
w.r.t. {1}
z0
DH Example: x3
z3
q2 q3
x2
x1
q1 z2
x0
z1
Origin of {3}
w.r.t. {2}
DH Example:
where
DH Example: alternate end-effector frame
Zi is axis of actuation for joint i+1
Z0 Z0 and Z1 are not co-planar
Z1 and Z2 are parallel
q1
q3 Pick this z3
q2
Z1 Z2
DH Example: alternate end-effector frame
Z0
y2
q1
x1
x2
a1 x0
Z3
q2 q3
Z1 Z2
Would need to
rotate about y2
here!
DH Example: alternate end-effector frame
Z0
x2
q1
x1
x2
a1 x0
Z3
q2 q3
Z1
Solution: Add offset to
rotation about z2
(q3+90o )
DH Example: alternate end-effector frame
Z0
x2
L2 x3
q1
x1
x2
a1 x0
Z3
q2 q3
Z1 Z2
Now can rotate
about x to align
z2 and z3
DH Example: alternate end-effector frame
Link Var q d a a
1 q1 q1 0 90o R
2 q2 q2 0 0 L1
3 q3 q3 +90o 0 90o 0
e - L2
DH Example: alternate end-effector frame
x3
R
Z0
x2
L1 L2 Z3
q1
x1
x2
a1 x0
q2 q3
Z1 Z2
Link Var q d a a
1 q1 q1 0 90o R
2 q2 q2 0 0 L1
3 q3 q3 +90o 0 90o 0
DH Example: alternate end-effector frame
x3
R
Z0
x2
L1 L2 Z3
q1
x1
x2
a1 x0
Z3
q2 q3
Z1 Z2
DH Example: alternate end-effector frame
x3
R
Z0
x2
L1 L2 Z3
q1
x1
x2
a1 x0
Z3
q2 q3
Z1 Z2
DH Example: alternate end-effector frame
x3
R
Z0
x2
L1 L2 Z3
q1
x1
x2
a1 x0
Z3
q2 q3
Z1 Z2