Académique Documents
Professionnel Documents
Culture Documents
Dipartimento di Elettronica e
Informazione
Politecnico di Milano
email: restelli@elet.polimi.it
tel: 02-2399-4015
Robot Kinematics
Robotica
for Computer Engineering students
A.A. 2007/2008
Study of Motion
Kinematics studies the relation between the independent
variables of the joints and the Cartesian positions reached
by the robot
Dynamics studies the equations that characterize the
robot motion (speed and acceleration)
Trajectories computation consists of determining a way
provide a robot for the sequence of points (or joint
variables) to move from one point to another (kinematics)
with suitable speeds and accelerations (dynamics)
Control aims at performing trajectories that are similar to
those computed
Kinematics
Two types of kinematics:
Forward kinematics (angles to position):
what are you given:
the length of each link
the angle of each joint
The quest:
what is the position of the end of the robotic arm?
Solution:
Geometric approach
easier in simple situations
Algebraic approach
involves coordinate
transformations
The quest
Y3
3
Y2
X3
X2\
Solution
H = Rz(1) * Tx1(l1) * Rz(2) * Tx2(l2) * Rz(3)
1
X1
Y0
X0
Forward Kinematics
With more than 3 joints and with kinematic chains that do
not lay on the plane the geometric method is too difficult
We need a systematic method:
represent the open kinematic chain with the same formalism
find algebraic solutions
using homogeneous coordinates
Denavit-Hartenberg Notation
The Parameters
1) ai
Technical definition: is the length of the perpendicular
between the joint axes. The joint axes is the axes around
which revolution takes place which are the Z(i-1) and Zi axes.
These two axes can be viewed as lines in space. The
common perpendicular is the shortest line between the two
axis-lines and is perpendicular to both axis-lines.
The Parameters
1) ai
Visual approach: A way to visualize the link parameter ai is
to imagine an expanding cylinder whose axis is the Z(i-1) axis
- when the cylinder just touches the joint axis i the radius of
the cylinder is equal to ai (Manipulator Kinematics)
9
The Parameters
1) ai
Its Usually on the Diagram Approach: If the diagram
already specifies the various coordinate frames, then the
common perpendicular is usually the X(i-1) axis. So ai is just
the displacement along the X(i-1) to move from the i-1 frame
to the i frame.
If the link is prismatic, then ai is a variable
10
The Parameters
1) i
Technical Definition: Amount of rotation around the
common perpendicular so that the joint axes are parallel.
i.e. How much you have to rotate around the X(i-1) axis so that
the Z(i-1) is pointing in the same direction as the Zi axis.
Positive rotation follows the right hand rule.
11
The Parameters
1) di
Technical Definition: The displacement along the Zi axis
needed to align the a(i-1) common perpendicular to the ai
common perpendicular.
In other words, displacement along the Zi to align the X(i-1)
and Xi axes.
12
The Parameters
1) i
Technical Definition: Amount of rotation around the Zi axis
needed to align the X(i-1) axis with the Xi axis.
13
cos i sin i
sin i cosi
0
0
0
0
0 0
0 0
1 di
0 1
][
1
0
0
ai
0 cos i sin i 0
0 sin i cos i 0
0
0
0
1
Just like the Homogeneous Matrix, the DenavitHartenberg Matrix is a transformation matrix from one
coordinate frame to the next. Using a series of D-H
Matrix multiplications and the D-H Parameter table,
the final result is a transformation matrix from some
frame to your initial frame.
14
15
16
17
Transformation Matrix A
The transformations required to pass from reference frame
i-1 to reference frame i w.r.t. joint i-1 are:
Rotate X(i-1) by i around Z(i-1), to align it with Xi: Rot(Z(i-1),i)
Translate the origin of reference frame i-1 by di along Z(i-1),
to overlap X(i-1) and Xi: Transl(0,0,di)
Translate the origin of reference frame i-1 by ai along Xi, to
place it at the origin of reference frame i:
Transl(ai,0,0)
Rotate Z(i-1) around Xi by i to overlap the two reference
frames i-1 and i: Rot(Xi,i)
Ai-1,ii-1 = Transl(0,0,di)*Rot(Z(i-1),i)*Transl(ai,0,0)*Rot(Xi,i)
19
Transformation Matrix A
Revolute joint
Prismatic joint
]
20
Transformation Matrix T
Aim: given a point in the mobile system, we want its
coordinates in the fixed system
T = A0,60 = A0,10 A1,21 A2,32 A3,43 A4,54 A5,65
Pi-1 = Ai-1,ii-1 Pi
xi
T=
0
yi
0
zi
0
][
pi
Ri
=
1
0
pi
1
21
RR Manipulator
Workspace: internal area
of a sphere
Initial part of a spherical or
a hinged robot
Link
1
2
1
2
90
0
cos1
sin1
T = A 00,1A 11,2=
0
0
a
0
l2
d
d1
0
][
0 sin1
0 cos 2 sin 2
0 cos1 0 sin2 cos 2
1
0
d1
0
0
0
0
0
0
1
0 l 2cos 2
0 l 2sin2
1
0
0
1
22
Planar RR Manipulator
Workspace: circle area
Possible part of a SCARA
robot
Link
1
2
1
2
0
0
a
l1
l2
cos1 sin1
sin1 cos1
T = A 00,1A 11,2=
0
0
0
0
d
0
0
][
1
0
0
0
0
1
0
0
0 l 2cos 2
0 l 2sin 2
1
0
0
1
23
RT Manipulator
Workspace: circle area
Possible part of a cylindric
robot
Link
1
2
90
0
a
0
0
cos1
sin1
0
1
T = A 0,1A 1,2=
0
0
d
d1
d2
][ ]
0 sin1
0 1 0
0 cos1 0 0 1
1
0
d1 0 0
0
0
1 0 0
0 0
0 0
1 d2
0 1
24
TR Manipulator
Workspace: round
cornered rectangle
Link
1
2
0
2
90
0
1
0
0
1
T = A 0,1A 1,2=
0
0
a
0
l2
d
d1
0
][
0 0 0 cos 2 sin 2
0 1 0 sin2 cos 2
1 0 d1
0
0
0 0 1
0
0
0 l 2cos 2
0 l 2sin2
1
0
0
1
25
TT Manipulator
Workspace: rectangle
Possible part of a
Cartesian robot
Link
1
2
0
0
90
0
1
0
0
1
T = A 0,1A 1,2=
0
0
a
0
0
d
d1
d2
][ ]
0 0 0 1 0
0 1 0 0 1
1 0 d1 0 0
0 0 1 0 0
0 0
0 0
1 d2
0 1
26
Hand Orientation
We use the Euler's angles...
R=Rot z ,Rot u ,Rot w ,=
cos cos sin cos sin cos sin sin cos cos sin sin
= sin cos cos cos sin sin sin cos cos cos cos sin
sin sin
sin cos
cos
xi
0
yi
0
zi
0
][
pi
R
= i
1
0
n x o x ax
Ri= n y oy a y
n z oz a z
pi
1
]
27
=cos
[ ]
[ ]
a y
sin
0 90 , for X Y
=atan2 y , x= 90 180 , for X Y
180 90 , for X Y
90 0 , for X Y
}
29
nx
1
R z , n y
nz
ox a x
o y a y =R u ,R w ,
o z az
[ ] [
[ ] [
sin
cos
= tan
=tan1
sin
cos
[ ]
ax
=atan2a x ,a y
a y
o x cos o y sin
n x cos n y sin
=tan1
a x sin a y cos
=atan2a x sina y cos ,a z
az
30
nx o x ax
1
n y o y a y R w ,=R z ,R u ,
nz oz a z
=tan
=tan
[ ] [
[ ] [
sin
cos
= tan
=tan1
sin
cos
[]
nz
=atan2n z ,o z
oz
n y cos o y sin
n x cos o x sin
=tan1
n z sin oz cos
= atan2nz sin o z cos ,a z
az
31
32
(x , y)
y
=arctan
x
S= x 2 y2
33
xx yx
xy yy
xz yz
0 0
][
zx px
nx o x a x d x
z y px
n o y a y dx
= y
zz p x
n z oz a z d x
0 1
0 0 0 1
34
l2
l1
(x , y)
Algebraic methods
trigonometric equations
37
x 2 y2 =l 21 l 22 2l 1 l 2 cos2
x y l 1 l 2
2=arccos
: REDUNDANT
2 l1 l2
l1
l2 (x , y)
1 =arcsin
l 2 sin 2
2
x y
l2
(x , y)
1+2
l1
1
x y l 1 l 2
2 =arccos
: REDUNDANT
2 l1 l2
yl 2 cos2 l 1 x l 2 sin 2
l 1 l 2 cos2 2 l 2 sin 2 2
39
40
41
][
ox a x
oy a y
oz az
0 0
px
py
pz
1
Select px e py
p y l 2sen 1 cos 2
py
1
=
1 =tan
p x l 2cos 1 cos 2
px
Pre-multiply by (A0,10)-1
p xcos 1 p ysin 1
p z d 1
l 2cos 2
l 2sin 2
2=tan
p z d 1
p xcos 1 p ysin 1
43
1
0
T=
0
0
][
nx
0 0
0
0 1 d 2
n
= y
1 0
d1
nz
0 0
1
0
ox a x
oy a y
oz az
0 0
px
py
pz
1
Select py
d 2 = p y
Select pz
d 1= pz
44
Iterative Solutions
For robots with coupled geometries the closed form
solution may not exist => iterative solutions
m equations with n unknowns
it starts with an initial estimation
compute T matrix and error w.r.t. Cartesian values
update the estimate to reduce the error
indefinite execution time to get a definite error or indefinite
error to get a definite execution time
iterative methods may fail to find all the solutions to IK
46
Static Precision
Accuracy
difference between desired position and actually reached
position
less tolerance => higher accuracy
Repeatability
the variance of the reached position while repeating the
same command
important when the robot is programmed on the field
Spatial resolution
the minimum distance that can be measured or commanded
it depends by the resolution of the internal sensors
47
Manipulator Performances
Maximum payload
the maximum weight that can be carried by a robot at low
speed while keeping the accuracy
the nominal payload is measured at maximum speed while
keeping the accuracy
the payload is any weight put on the wrist
Maximum speed
the maximum velocity at which the robot end can be moved
while extended
Cycle time
The cycle time is the time required to execute a standard
cycle of pick-and-place of 12 inches
For industrial robots ~ 1s
48