Direct Kinematics: Robotics 1
Direct Kinematics: Robotics 1
Direct Kinematics: Robotics 1
Direct kinematics
Prof. Alessandro De Luca
Robotics 1
study of ...
geometric and timing aspects of robot motion,
without reference to the causes producing it
robot seen as ...
an (open) kinematic chain of rigid bodies
interconnected by (revolute or prismatic) joints
Robotics 1
Motivations
!
functional aspects
!
!
operational aspects
task execution
(actuation by motors)
Robotics 1
trajectory planning
programming
motion control
3
Kinematics
q = (q1,,qn)
!
q = f -1(r)
r = (r1,,rm)
choice of parameterization q
!
!
INVERSE
TASK
(Cartesian)
space
DIRECT
choice of parameterization r
!
Robotics 1
q4
q1
q3
e.g., the relative angle
between a link and the
following one
!
r = (r1,,rm)
e.g., it describes the
pose of frame RFE
pointing in space
positioning in the plane
m=3
!
!
Robotics 1
RFE
m=2
!
qn
orientation in space
positioning and orientation in the plane
5
SCARA
(RRP)
Cartesian or
gantry
(PPP)
cylindric
(RPP)
articulated or
anthropomorphic
(RRR)
polar or
spherical
(RRP)
Robotics 1
r = fr(q)
!
Robotics 1
geometric/by inspection
systematic: assigning frames attached to the robot
links and using homogeneous transformation matrices
py
l2
l1
"
q2
q1
px
q1
q=
q2
n=2
px
r = py
"
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
joint i+1
link i-1
link 1
joint 1
link 0
(base)
joint i-1
revolute
Robotics 1
link i
joint i
joint n
link n
(end effector)
prismatic
9
axis of joint i
90
A
%$
# i$
90
B
common normal
(axis of link i)
Robotics 1
with sign
(pos/neg)!
10
link i-1
link i
D
C
axis of link i-1
axis of link i
&i
'$
Robotics 1
with sign
(pos/neg)!
11
joint axis
i
link i-1
link i
frame RFi is
attached to link i
zi-1
xi-1
di
Oi-1
joint axis
i+1
ai
zi
Oi
&i
#i
xi
common normal
to joint axes
i and i+1
12
Denavit-Hartenberg parameters
axis of joint
i
axis of joint
i-1
link i
link i-1
D
zi-1
xi-1
di
Oi-1
!
!
!
!
!
!
ai
axis of joint
i+1
zi
Oi
&i
#i
xi
13
video
https://www.youtube.com/watch?v=rA9tm0gTln8
!
note: the authors of this video use r in place of a, and do not add subscripts!
Robotics 1
14
Robotics 1
Homogeneous transformation
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
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
prismatic joint ) qi = di
Robotics 1
0 0
always a
constant matrix
16
Denavit-Hartenberg matrix
J. Denavit and R.S. Hartenberg, A kinematic notation for lower-pair mechanisms based on matrices,
Trans. ASME J. Applied Mechanics, 23: 215221, 1955
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
s#i s&i
-s#i c&i
c#i
aic&i
ais&i
di
17
RFE
description internal
to the robot using
product 0A1(q1) 1A2(q2)n-1An(qn)
q = (q1,,qn)
slide s
zE
xE
z0
approach a
normal n
RF0
RFB
y0
x0
description external
to the robot using
BTE
BT
E
R p
000 1
nsa p
000 1
r = (r1,,rm)
r = fr(q)
Robotics 1
18
q3
q1
q2
q4
all parallel
(or coincident)
twists # i = 0
or %
J2 elbow
J3 prismatic
J4 revolute
J1 shoulder
Robotics 1
20
a1
Robotics 1
a2
a3 = 0
21
Step 3: frames
z1
x1
z2 = z3
x2
x4
z0
x3
z4 = a axis
(approach)
x0
Robotics 1
y0
22
z1
x1
z2 = z3
x2
x3
x4
z0
x0
Robotics 1
z4
y0
# i$
ai
di
&i
a1
d1
q1
a2
q2
q3
d4
q4
note that:
d1 and d4 could be set = 0
here, it is d4 < 0
23
0 a1c&1
0 a1s&1
1
d1
0
1
c&2 - s&2
c&2
1A (q ) = s&2
2 2
0
0
0
0
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
0
0
1
0
0
0
d3
1
s&4
-c&4
0
0
0
0
-1
0
0
0
d4
1
24
c12 -s12
0A (q ,q ,q ) = s12 c12
3 1 2 3
0
0
0
0
0
0
1
0
c4
3A (q ) = s4
4 4
0
0
0
0
-1
0
R(q1,q2,q4)=[ n s a ]
s4
-c4
0
0
c124 s124 0
0
BT = 0A (q ,q ,q ,q ) = s124 -c124
E
4 1 2 3 4
0
0
-1
(BT0 = 4TE = I)
0
0
0
Robotics 1
a1c1+ a2c12
a1s1+ a2s12
d1+q3
1
0
0
d4
1
p = p(q1,q2,q3)
a1c1+ a2c12
a1s1+ a2s12
d1+q3+d4
1
25
c124 s124 0
0
0A (q ,q ,q ,q ) = s124 -c124
4 1 2 3 4
0
0
-1
0
0
0
extract #z
from
R(q1,q2,q4)
Robotics 1
a1c1+ a2c12
a1s1+ a2s12
d1+q3+d4
1
px
a1c1+ a2c12
r = py = fr(q) = a1s1+ a2s12 IR4
pz
d1+q3+d4
#z
q1+q2+q4
take
p(q1,q2,q3)
as such
26
Stanford manipulator
!
shoulder offset
one possible DH assignment of
frames is shown
determine the associated
!
!
Robotics 1
DH parameters table
homogeneous transformation
matrices
direct kinematics
numerically (Matlab)
symbolically (Mathematica,
Maple, Symbolic Manipulation
Toolbox of Matlab, )
27
ai
di
-!/2
d1>0
q1=0
!/2
d2>0
q2=0
q3>0
-!/2
-!/2
q4=0
!/2
q5=-!/2
d6>0
q6=0
28
top view
!
determine
!
!
!
Robotics 1
available at
DIAG Robotics Lab
29
KUKA LWR 4+
!
determine
!
!
!
front
Robotics 1
front view
back
side view
30
Appendix:
Modified DH convention
!
classical % c# i
i"1
' s# i
Ai = '
0
'
& 0
"c$ i s# i
c$ i c# i
s$ i
0
s$ i s# i
"s$ i c# i
c$ i
0
ai c# i (
ai s# i *
di *
*
1 )
planar 2R
example
y1
y0
x2
x1
x0
modified %
i"1
Aimod
c# i
'c$ i"1 s# i
='
s$ s#
' i"1 i
& 0
Robotics 1
"s# i
c$ i"1 c# i
s$ i"1 c# i
0
0
ai"1 (
"s$ i"1 "di s$ i"1 *
c$ i"1
di c$ i"1 *
*
0
1 )
y1
y0
y2
x2
x1
x0
31