You are on page 1of 27

Robotics 1

Direct kinematics
Prof. Alessandro De Luca

Robotics 1

Kinematics of robot manipulators


!!

study of geometric and time properties of the motion of robotic structures, without reference to the causes producing it robot seen as (open) kinematic chain of rigid bodies interconnected by (revolute or prismatic) joints

!!

Robotics 1

Motivations
!!

functional aspects
!! !!

definition of robot workspace calibration task definition and performance

!!

operational aspects

task execution (actuation by motors)

two different spaces related by kinematic (and dynamic) maps


!! !! !!

trajectory planning programming motion control


3

Robotics 1

formulation and parameterizations r = f(q)


JOINT space DIRECT INVERSE TASK (Cartesian) space

Kinematics

q = (q1,,qn)
!!
!! !!

q = f -1(r)

r = (r1,,rm)

choice of parameterization q
unambiguous and minimal characterization of the robot configuration n = # degrees of freedom (dof) = # robot joints (rotational or translational) compact description of positional and/or orientation (pose) components of interest to the required task m ! 6, and usually m ! n (but this is not strictly needed)
4

!!

choice of parameterization r
!!

!!

Robotics 1

Open kinematic chains


q2 q1 q3
e.g., the relative angle between a link and the following one
!!

q4

qn

RFE

r = (r1,,rm)
e.g., it describes the pose of frame RFE

m=2
!! !!

pointing in space positioning in the plane orientation in space positioning and orientation in the plane
5

!!

m=3
!! !!

Robotics 1

Classification by kinematic type


(first 3 dofs)
SCARA (RRP)

cartesian or gantry (PPP)

cylindric (RPP) articulated or anthropomorphic (RRR) polar or spherical (RRP) P = 1-dof translational (prismatic) joint R = 1-dof rotational (revolute) joint

Robotics 1

Direct kinematic map


!!

the structure of the direct kinematics function depends from the chosen r

r = fr(q)
!!

methods for computing fr(q)


!! !!

geometric/by inspection systematic: assigning frames attached to the robot links and using homogeneous transformation matrices

Robotics 1

Example: direct kinematics of 2R arm


y

py l1

"

l2 q1

q1 q= q2 px r = py "

n=2

q2 px

m=3

px = l1 cos q1 + l2 cos(q1+q2) py = l1 sin q1 + l2 sin(q1+q2) " = q1+ q2


for more general cases we need a method!
Robotics 1 8

Numbering links and joints


joint 2 link 1 joint 1 link 0 (base) joint i-1 joint i link i-1 joint i+1 link i joint n link n (end effector)

revolute
Robotics 1

prismatic
9

Relation between joint axes


axis of joint i 90 A %$ axis of joint i+1

# i$

90 B common normal (axis of link i)


with sign (pos/neg)!
10

a i = distance AB between joint axes (always well defined) # i = twist angle between joint axes
[projected on a plane % orthogonal to the link axis]
Robotics 1

Relation between link axes


link i-1 axis of joint i

link i D C axis of link i-1 axis of link i '$


with sign (pos/neg)!
11

&i

d i = distance CD (a variable if joint i is prismatic) & i = angle (a variable if joint i is revolute) between link axes
[projected on a plane ' orthogonal to the joint axis]
Robotics 1

Frame assignment by Denavit-Hartenberg (DH)


joint axis i-1 link i-1 joint axis i link i frame RFi is attached to link i joint axis i+1

di Oi-1

zi-1 xi-1

ai &i

zi Oi

#i xi

axis around which the link rotates or along which the link slides
Robotics 1

common normal to joint axes i and i+1


12

Denavit-Hartenberg parameters
axis of joint i-1 link i-1 D ! axis of joint i link i axis of joint i+1

di Oi-1
!! !! !! !! !! !!

zi-1 xi-1

ai &i

zi Oi

#i xi

unit vector zi along axis of joint i+1 unit vector xi along the common normal to joint i and i+1 axes (i ( i+1) ai = distance DOi positive if oriented as xi (constant = length of link i) di = distance Oi-1D positive if oriented as zi-1 (variable if joint i is PRISMATIC) #i = twist angle between zi-1 and zi around xi (constant) &i = angle between xi-1 and xi around zi-i (variable if joint i is REVOLUTE)
Robotics 1 13

Ambiguities in defining DH frames


!! !!

!!

!!

frame0: origin and x0 axis are arbitrary framen: zn axis is not specified (but xn must be orthogonal to and intersect zn-1) when zi-1 and zi are parallel, the common normal is not uniquely defined (Oi can be chosen arbitrarily along zi) when zi-1 and zi are incident, the positive direction of xi can be chosen at will (however, we often take xi = zi-1 ! zi)
14

Robotics 1

between DH frames (from framei-1 to framei)


!!

Homogeneous transformation

roto-translation around and along zi-1


1 0 0 0 0 1 0 0 0 0 1 di = 0 0 0 1 c&i -s&i 0 0 s&i c&i 0 0 0 0 1 di 0 0 0 1

c&i -s&i 0 0 s&i c&i 0 0 i-1A (q ) = i i 0 0 1 0 0 0 0 1 rotational joint ) qi = &i


!!

prismatic joint ) qi = di

roto-translation around and along xi


1 0 0 ai 0 c#i -s#i 0 iA = i 0 s#i c#i 0
always a constant matrix
15

Robotics 1

0 0

Denavit-Hartenberg matrix

c&i s&i i-1A (q ) = i-1A (q ) iA = i i i i i 0 0

-c#i s&i c#i c&i s#i 0

s#i s&i aic&i -s#i c&i ais&i c#i di 0 1

compact notation: c = cos, s = sin

Robotics 1

16

Direct kinematics of manipulators


description internal to the robot
using: ! product 0A1(q1) 1A2(q2)n-1An(qn) ! q=(q1,,qn)

yE zE xE

slide s approach a normal n

z0 y0 x0
BT E

RFB

external description using ! r = (r1,,rm) n-1An(qn) nTE ! BTE= R p = nsa p 000 1 000 1

BT 0A (q ) 1A (q ) 0 1 1 2 2

r = fr(q)
Robotics 1

alternative descriptions of robot direct kinematics

17

Example: SCARA robot

q3

q2 q1 q4

Robotics 1

18

Step 1: joint axes

all parallel (or coincident)

twists # i = 0 or % J1 shoulder J2 elbow

J3 prismatic J4 revolute

Robotics 1

19

Step 2: link axes

the vertical heights of the link axes are arbitrary (for the time being)

a1

a2

a3 = 0

Robotics 1

20

Step 3: frames

z1 yi axes for i > 0 are not shown x1 z2 = z3 x2 x4 z0 x0


Robotics 1

(and not needed; they form right-handed frames)

x3 z4 = a axis
(approach)

y0
21

Step 4: DH parameters table

i
z1 x1 z2 = z3 x2 x4 z0 x0
Robotics 1

# i$ 0 0 0 %

ai a1 a2 0 0

di d1 0 q3 d4

&i q1 q2 0 q4

1 2 3 4

x3 z4

y0

note: d1 and d4 could have been chosen = 0 ! moreover, here it is d4 < 0 !!


22

Step 5: transformation matrices


c&1 - s&1 c&1 0A (q )= s&1 1 1 0 0 0 0 c&2 - s&2 c&2 1A (q )= s&2 2 2 0 0 0 0 0 a1c&1 0 a1s&1 1 d1 0 1 0 a2c&2 0 a2s&2 1 0 0 1 1 2A (q )= 0 3 3 0 0 c&4 3A (q )= s&4 4 4 0 0 0 1 0 0 s&4 -c&4 0 0 0 0 1 0 0 0 -1 0 0 0 d3 1 0 0 d4 1
23

q = (q1, q2, q3, q4) = (&1, &2, d3, &4)


Robotics 1

Step 6: direct kinematics


c12 -s12 0A (q ,q ,q )= s12 c12 3 1 2 3 0 0 0 0 c4 3A (q )= s4 4 4 0 0
R(q1,q2,q4)=[ n s a ]

0 0 1 0 0 0 -1 0

a1c1+ a2c12 a1s1+ a2s12 d1+q3 1 0 0 d4 1 a1c1+ a2c12 a1s1+ a2s12 p = p(q1,q2,q3) d1+q3+d4 1
24

s4 -c4 0 0

c124 s124 0 0 0A (q ,q ,q ,q )= s124 -c124 4 1 2 3 4 0 0 -1 0 0 0

Robotics 1

Exercise: Stanford manipulator


!!

6-dof: 2R-1P-3R (spherical wrist)


!! !!

!!

shoulder offset one possible DH assignment of frames is shown determine the associated
!! !!

!!

DH parameters table homogeneous transformation matrices direct kinematics

!!

write a program for computing the direct kinematics


!! !!

numerical (Matlab) symbolic (SM toolbox Matlab, Maple, Mathematica, )


25

Robotics 1

DH table for Stanford manipulator


!!

6-dof: 2R-1P-3R (spherical wrist)

i 1 2 3 4 5 6

i -!/2 !/2 0 -!/2 !/2 0

ai 0 0 0 0 0 0

di d1>0 d2>0 q3>0 0 0 d6>0

i q1=0 q2=0 -!/2 q4=0 q5=-!/2 q6=0

joint variables are in red, with their current value in the shown configuration
Robotics 1 26

Exercise: KUKA KR5 Sixx R650


!!

6R (offsets at shoulder and elbow, spherical wrist)

top view
!!

determine
!! !! !!

side view (from an observer in V)

frames and table of DH parameters homogeneous transformation matrices direct kinematics

available at DIAG Robotics Lab


27

Robotics 1

You might also like