Kinematics – Frame Assignment using Denavit-Hartenberg Convention Professor Nicola Ferrier ME Room 2246, 265-8793 ferrier@engr.wisc.edu
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
Manipulator Forward Kinematics Motion is composition of elementary motions for each link End-effector Base
Relative Pose between 2 links
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 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. z0 is along joint axis 1 Original: any point on z0 for origin Modified DH: {0} is defined to be completely co-incident with the reference system {1}, when the variable joint parameter, d1 or q1 , 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 zi-1 and zi: Not-coplanar Parallel Intersect
zi-1 and zi are not-coplanar DH convention: x axis zi-1 and zi are not-coplanar Common normal to axes is the “link” axis Intersection with zi is origin Usually, xi points from frame i-1 to i zi-1 Xi zi
DH convention: x axis zi and zi-1 are parallel zi-1 zi Infinitely many common normals Pick one to be the “link” axis Choose normal that passes through origin of frame {i-1} pointing toward zi Origin is intersection of xi with zi Xi zi-1 zi
DH convention: x axis zi zi-1 If joint axes zi-1 and zi intersect, xi is normal to the plane containing the axes xi = (zi-1 zi ) zi-1 link i Xi
DH convention: Origin non-coplanar Z Origin of frame {i} is placed at intersection of joint axis and link axis zi xi
Yi is chosen to make a right hand frame DH convention: y axis Yi is chosen to make a right hand frame Zi xi points from frame i-1 to i Yi 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 zi zi-1 If joint axes intersect, the origin of frame {i} is usually placed at intersection of the joint axes zi zi-1 link i xi
Yi is chosen to make a right hand frame DH convention: y axis Yi is chosen to make a right hand frame zi zi-1 yi link i xi
End-Effector Frame Frame to which the gripper is attached Z4 Ze Xe Sometimes {n} is used denoted by {e} (or {n+1} in many texts) Often simple translation along Xn axis Z4 Ze Xe
End-Effector Frame Frame to which the gripper is attached – Often: Z4 denoted by {e} (or {n+1} in many texts) Often simple translation along Xn axis Often: Origin between grippers Z points outward (approach) Y points along pinch direction (sliding) X points normal Z4 ye xe ze
Link Parameters ai+1 Zi Z’i Zi-1 Zi+1 Link i ai ai+1 ai
Joint Parameters i di+1 i+1 di i
Original DH Frame is placed at distal end of link xi screw motion -1 Frame is placed at distal end of link xi screw motion zi-1 screw motion
DH Frames and Parameters
Robot Revolute Joint DH
Prismatic Joint DH
Described by 4 parameters: Link Transformations Described by 4 parameters: ai : twist ai : link length di : joint offset qi : joint angle Joint variable is di or qi Build Table with values for each link: Link Var d a 1 1 90o L1 2 d2
Described by 4 parameters: Link Transformations Described by 4 parameters: ai : twist ai : link length di : joint offset qi : joint angle Joint variable is di or qi Link Transformation is zi-1 screw motion xiscrew motion
Ai = A-matrices contains only one variable or Equation 3.10 in Spong, Hutchinson, Vidyasagar
! Original DH Frame is placed at distal end of link zi-1 screw motion xi screw motion
! Modified DH xi zi yi Zi+1 Zi Zi+2 Frame is placed at proximal end of link xi-1 screw motion zi screw motion
Modified DH – text figure
DH Example: “academic manipulator” 3 revolute joints Shown in home position joint 1 R Link 2 Link 3 Link 1 joint 2 joint 3 L1 L2
DH Example: “academic manipulator” Zi is axis of actuation for joint i+1 Z0 Z0 and Z1 are not co-planar Z1 and Z2 are parallel 1 3 2 Z1 Z2
DH Example: “academic manipulator” Z0 and Z1 are not co-planar: x0 is the common normal Z0 1 x1 x2 x3 x0 3 2 Z1 Z3 Z2
DH Example: “academic manipulator” Z0 and Z1 are not co-planar: x0 is the common normal Z0 1 x1 x2 x3 x0 3 2 Z1 Z3 Z2 Z1 and Z2 are parallel : x1 is selected as the common normal that lies along the center of the link
DH Example: “academic manipulator” Z0 and Z1 are not co-planar: x0 is the common normal Z0 1 x1 x2 x3 x0 3 2 Z1 Z3 Z2 Z2 and Z3 are parallel : x2 is selected as the common normal that lies along the center of the link
DH Example: “academic manipulator” Shown with joints in non-zero positions Z0 x3 z3 2 3 x2 x1 Z2 1 x0 Z1 Observe that frame i moves with link i
DH Example: “academic manipulator” Link lengths given 1 = 90o (rotate by 90o around x0 to align Z0 and Z1) R Z0 L1 L2 x1 x2 x3 1 x0 Z1 Z3 Z2
DH Example: “academic manipulator” Build table R Z0 L1 L2 1 x1 x2 x3 1 x0 3 2 Z1 Z3 Z2 Link Var d a 1 1 90o R 2 2 L1 3 3 L2
DH Example: “academic manipulator” Link Var d a 1 1 90o R 2 2 L1 3 3 L2
DH Example: “academic manipulator”
DH Example: “academic manipulator” z1 z0 z2 1 2 3 x0 x1 x2 z3 x3 x1 axis expressed wrt {0} y1 axis expressed wrt {0} z1 axis expressed wrt {0} Origin of {1} w.r.t. {0}
DH Example: “academic manipulator” z1 z0 z2 1 2 3 x0 x1 x2 z3 x3 x2 axis expressed wrt {1} y2 axis expressed wrt {1} z2 axis expressed wrt {1} Origin of {2} w.r.t. {1}
DH Example: “academic manipulator” z1 z0 z2 1 2 3 x0 x1 x2 z3 x3 x3 axis expressed wrt {2} y3 axis expressed wrt {2} z3 axis expressed wrt {2} Origin of {3} w.r.t. {2}
DH Example: “academic manipulator” where
DH Example: “academic manipulator” – 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 1 Pick this z3 3 2 Z1 Z2
DH Example: “academic manipulator” – alternate end-effector frame Z0 y2 1 x1 x2 1 x0 Z3 3 2 Z1 Z2 Would need to rotate about y2 here!
DH Example: “academic manipulator” – alternate end-effector frame Z0 x’2 1 x1 x2 1 x0 Z3 3 2 Z1 Solution: Add “offset” to rotation about z2 (q3+90o )
DH Example: “academic manipulator” – alternate end-effector frame Z0 x’2 L2 x3 1 x1 x2 1 x0 Z3 3 2 Z1 Z2 Now can rotate about x’ to align z2 and z3
DH Example: “academic manipulator” – alternate end-effector frame Link Var d a 1 1 90o R 2 2 L1 3 3 3 +90o e - L2
DH Example: “academic manipulator” – alternate end-effector frame Z0 x’2 L1 L2 Z3 1 x1 x2 1 x0 3 2 Z1 Z2 Link Var d a 1 1 90o R 2 2 L1 3 3 3 +90o
DH Example: “academic manipulator” – alternate end-effector frame Z0 x’2 L1 L2 Z3 1 x1 x2 1 x0 Z3 3 2 Z1 Z2
DH Example: “academic manipulator” – alternate end-effector frame Z0 x’2 L1 L2 Z3 1 x1 x2 1 x0 Z3 3 2 Z1 Z2
DH Example: “academic manipulator” – alternate end-effector frame Z0 x’2 L1 L2 Z3 1 x1 x2 1 x0 Z3 3 2 Z1 Z2