Professional Documents
Culture Documents
The Stewart platform is a six-axis parallel robot manipulator with a force-to-weight ratio
and positioning accuracy far exceeding that of a conventional serial-link arm. Its stiffness and accuracy approach that of a machine tool yet its workspace dexterity approaches that of a conventional manipulator. In this article, we study the dynamic
equations of the Stewart platform manipulator. Our derivation is closed to that of
Nguyen and Pooran because the dynamics are not explicitly given but are in a step-bystep algorithm. However, we give some insight into the structure and properties of these
equations: We obtain compact expressions of some coefficients. These expressions
should be interesting from a control point of view. A stiffness control scheme is designed for milling application. Some path-planning notions are discussed that take into
account singularity positions and the required task. The objective is to make the milling
station into a semiautonomous robotic tool needing some operator interaction but having some intelligence of its own. It should interface naturally with part delivery and
other higher-level tasks. 0 1993 John Wiley & Sons, Inc.
630
1. INTRODUCTION
631
serial robot arm. The same remark can be made about the study of the direct
and inverse Ja~obian.~,
As far as the dynamics are concerned, some articles*.9show the complexity
of this study. In the first, a Newton-Euler approach is used. In the second, the
Lagrange formulation is used. In this research, we also use Lagrange formulation. However, we are more interested in the structure and properties of the
dynamics. Indeed, our aim here is to give more insight into the different coefficient of the dynamic equations and more precisely into the inertia matrix [M(q)
in (4)j. We will show how it is related to the Jacobians defined in Liu et al.OThe
reason for this development is that a good knowledge of these terms is useful
for the study of adequate control schemes. For example, only a particular
factorization of the Coriolis and centrifugal terms [V(q,$ in (4)]leads to the
well-known skew-symmetric relation used in the proof of the convergence of
several robust and adaptive
In the same way, we hope that the description of the matrix M(q) will allow us to use some concepts like imaginary
robot developed by Gu and Loh.I4 This theory is based on a factorization of
the inertia matrix using Jacobians.
As a manufacturing manipulator, the Stewart platform has great potential to
be applied for the automation of many light machining applications such as
surface finishing, edge finishing, routing, and profile milling. New manipulator
applications to manufacturing processes requiring high-force and -power output such as combined assembly pressing are also possible. Therefore, in section
4 the potential applications of the Stewart platform in the manufacturing industry are discussed. As a special application, we will study the stiffness control in
the milling process.
The milling machine is one of the most important machining tools used in
todays manufacturing industry. It can be used to process either the tools or the
parts. Due to its ability to quickly cut material and accurately follow contours,
the milling machine is used to machine small pieces such as helical gear or
632
2. NOTATIONS
1
K = K(q,Q) = 2 QTM(q)Q
(1)
P = P(q)
(2)
633
The inertia matrix M(q) is directly given by the expression of the kinetic
energy K(q,$. The gravity term is obtained from the potential energy P(q) by
G(q) = aP(q)/aq. However, the Coriolis and centrifugal term (V(q,$ E Rn)is
not so easy to express.
v(q,qIk =
e (e
j
C,qi)C
fork = 1,
. . . ,6
with
This is the most practical expression to compute the Coriolis and centrifugal
term V(q,q) for a numerical application. But, for a theoretical study the description of Koditschek" is also interesting:
Here, U Mis a matrix obtained from M(q) and 4 by the following relation, where
@ represents the Kronecker product:
with
634
Remark 1
The equivalence of the two descriptions can be understood from the relations
In our study, we will use the following notations to modelize the parallel
Y,Z) at the center (0)
of
robot. Referring to Figure 1, fix an inertial frame (X,
the lower platform with the Z-axis pointing vertically upward. Fix another
moving coordinate system (x,y,z) at the center of gravity of the upper platform
with the z-axis normal to the platform, pointing outward. In the sequel, these
two coordinate systems are called the BASE or fixed frame (ff) and the TOP or
moving from (mf). The physical dimensions of the lower and upper platforms
and the coordinates of their vertices in terms of the BASE frame or the TOP
frame are shown in Figure 2.
To specify the configuration of the 6-dof Stewart platform, six independent
position-orientation variables are needed. Denote the location of the origin of
-4
1
X
635
the TOP frame with respect to the BASE frame [ p x , p y , p z l T .The orientation is
not defined by the standard Euler angles but by rotating the TOP frame first
about the fixed X-axis by a degrees, then about the fixed Y-axis by p degrees,
and finally about the z-axis by y degrees (Fig. 3). All angles are measured in the
right-handed sense. We will denote Rx(a), Ry(p), and R,(y) the three matrices
that represent these basic rotations.
0
CP
0 SP
1 0 R,(y)
cy
-sy
-sp 0 cp
(13)
This definition of orientation not only gives us a clear physical meaning but
also avoids violating the one-to-one relationship between the system configuration and the value of Xpp0,
which may cause the Jacobian matrix to lose its rank
even if the system is not in a singular position (see ref. 10).
Thus, the position and orientation of the upper platform is specified by the
= [px,p~,pz,a,p,yI~.
Cartesian coordinates XP-(,
Other notations will be introduced in the text. Just note that to make clearer
the reading we will differentiate a vector from a scalar by adding an arrow and
(u
will denote the scalar product of two vectors u' and v' either by u' * v' or iTv'
will be the module of 6).
3. DYNAMIC EQUATIONS OF THE STEWART PLATFORM
636
equations
M(X,.,-,)X,,-,
+ Vm(Xp-,,X,,-,)Xp-,
+ G(X,-,) = J*(X,,-,)T
(14)
The notations are the same than in eq. (4); we just replace the joint coordiand as a consequence replace the
nates q by the Cartesian coordinates X,,-()
torque T by the force J *(X,,-,)T. T = V; ,fi,A ,f4 ,fs ,fs]*, where is the force
applied in the actuator of the leg Legi. Note that the Jacobian (J) that is
introduced here, and more generally for parallel robots, is the classical inverse Jacobian (of serial robot). This explains why we have here J * and not
J-*, as is the case for serial robots.
In the following, we divide the robot into two subsystems: the upper platform
and the six legs. We compute the kinetic energy and the potential energy for
both of these subsystems and then derive the global dynamic equations.
3.1. Kinetic and Potential Energies
3.1.1. Kinetic and Potential Energies of the Upper Platform
0
0
mass m u .
tensor of inertia in the moving frame !l(d).
angular velocity in the fixed frame f l u p ( ~ )
Kinetic energy of the upper platform. The kinetic energy (Kup)can be divided into two terms:
0
Rotational energy. Energy of the body due to the rotation around its center
of mass:
O(,,f)
[:I
0
y , the
637
angular velocity
fiUp(fi)of
or
([
fiup(ff,
0 SP
CP
-sp
0 cp
['
0 Ca
-sa
0 Sa
ca
0 0 0
(18)
Kupbt)
I:[ [
ci
IxC2y
+ fyS2y
( f x - fy)CaCySy
(1, - ly)CaCySy
0
-fzs2a]
IZ
[i]
(19)
Finally, we can write the total kinetic energy of the upper platform in a compact
form as follows:
Result 1
or
K,, =
2
mu
m,
m,
638
Result 2
Pup= mug p z
= [0 0
mug 0 0 O]Xp-o
(21)
m,/
639
The velocity
where
+ 1)/2
(i
i/2
if i is odd
if i is even
Note that
Kinetic energy of the legs. Because a leg is just modeled by one point, one
can write
Note that
obtains
((v,
Ci)CJT(VC -
(vq- GJC;)
= 0; thus,
640
Let us denote
hi =
(-L;i + mI + m2
Then:
Result 3
1)/2
where
if i is odd
if i is even
(29)
Remember that
qTis the velocity of the end of the leg, *;tij corresponds to the speed of the
= dL;/dt. As a consequence,
elongation of the leg, that is;it:*
divided into two parts with a physical meaning as follows:
KL,
can be
The kinetic energy due to the rotation around the fix point B; of the leg (if
one supposes that the length of the leg is constant), given by
The kinetic energy due to the elongation (or the translation motion) of the
leg (if one supposes that the direction of the leg is constant), given by
Let us now give a compact expression for the kinetic energy of the six legs. For
this, note that one can write
hi
hi 0
0
hi
(33)
64 1
Hence
T
(34)
where
hi
+ h,
0
0
hj
+ hz
hi
+ h2
h3
w=
+ h4
0
0
h3
+ h,
h3
+ h,
h5 +
h6
h5 + h,
(35)
and
k l O O O
O k 2 O O
O O k 3 O
K=
with
1
[ki = hi -
(ml m2
+ m2
)2
Let us now introduce the Jacobians JI and J2 (see Appendix A or ref. 10. for
details). One can write
642
Result 4
h i 0 0 0 0 0
O h 2 0 0 0 0
561
0 1 0 0 0 0
O O h J O O O
and K2 =
m2 ) 2
0 0 0 hq 0 0
mi + m2
-0
hs
1 0 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0-
~ o o o o lo]
0 0 0 0 h 6-
(40)
where
h.=
'
(-+i
Li
ml
+ m2
Z7; = pz
+ 2 . mj.fi)
and
j = (i t 1)/2
if i is odd
j = i/2
if i is even
643
Result 5
with
Remark 4.
mj(,f,
is given by the geometry of the platform.
JT(Xp-,,)F
More precisely
From the expressions of the kinetic energies of the platform and the legs, we
directly have an expression of the coefficient M(XP-J. Vm(Xp-,, Xp-J will be
obtained from relations ( 5 ) and (6) [or from (8)]. The gravity term G(X,-,) has
to be calculated from the potential energy.
Although it is not difficult to obtain an explicit expression for Mu,,Vmbp,
and
G,, (see Appendix B), it is impossible to obtain explicitly MLegs, VmLlsr
and
G L ~Even
~ ~ with
. a symbolic package like Mathematica, the expressions are too
complicated to obtain! In this case, a step-by-step formulation must be used.
3.2.7. Terms Mu,, Vmup,and G,,
See Appendix B.
3.2.2. Terms MLegs,
VmLwa,
and GLegs
MLegsij
2C
m=l
n=l
[J2mi ( M m n
p=l
JlprnKppJlpn)
Jznj]
i=l,.
j = 1,.
. . ,6
. . ,6
(43)
644
. . . , 6:
( d J ~ ~ i / a X ~ -or~ (aJ2nj/aXp-o(k,)
(k))
are not difficult to obtain from the expression of J2 given in Appendix A.
Wmn f 0 only i f m = n. In this case, if one takes i = 1 for 1 In 5 3, i = 3 for
4 In 5 6, and i = 5 f o r 7 9 n 5 9
645
Note that to get (46), (47), and (48) we need the expression of (aLnlaXp-o(k))
for
n, k = I , . , . , 6. These terms can be obtained from J I and JZ by
q.(,,,f)...)
where
646
To obtain the dynamic equations, we use a combination of direct and stepby-step Lagrangian formulations: direct formulation for the platform and stepby-step formulation for the legs.
The expressions for Mu,, V,",, and G,, are explicitly given in Appendix B.
The algorithm for computing MLegs, VmLCEv
and G L are~ summarized
~ ~
below.
Algorithm for the computation of the terms M L ~Vmkp,,
~ ~ , and GLegs
1. Compute the inverse kinematics (see Appendix A for the theoretical expression)-This gives the length of the legs: L ; , i = 1, . . . , 6 . Note that
it also includes (see Appendix A the calculation of the terms
( p = 1,
. . . 3), and ZT,, j = 1, . . . 3).
2. Compute the Jacobian J I (see Appendix A for the theoretical expression)-This needs the results of the previous step (Li, i = 1, . . . 6 and
B i T , , j = 1, . . . 3).
3. Compute the Jacobian J2 (see Appendix A for the theoretical expression).
4. Compute the matrices W and 06 [see relations (35) and (36)l-This needs
the values of Li (i = 1, . . . , 6).
5 . Compute the Jacobian J = J IJ2 to obtain (dLn/aXp-o(k))
n = 1, . . . ,6, k =
1, . . . , 6 [see relation (49)l.
6. Compute the components of the tensors (dJ2mi/dXp-o(k)),(dW,,,,/dXp-o(k)),
(dK,,,,/dXp-o~~$,
and (dJ~,,~/dX~-~~,k~)
to calculate the other tensor defined by
(d(mLegs;j)/dXp-o(k))
[relations (461, (47), (48), and (4511.
7. Compute the Chrisroeffeel symbols Cijk with relation (6).
8. Compute the coefficients MLegs, V,,
and GLegs [see relations (43), (9,
and (SO)].
m.(p)
Remark and Conclusion. Note that steps 1 to 4 are sufficient to obtain MLegs.
Step 5 has to be added to obtain GLegs.But most of the computer time will be
In fact, these last
dedicated to 6 and 7, that is, for the computations of VmLIEI.
steps will probably not be necessary. As pointed out by Reboulet and Berthomieu* or Nguyen and P ~ o r a nfor
, ~ most applications the contribution of the
Coriolis and centrifugal term is small and may usually be neglected.
As a conclusion of this section, we have to say that our study is close to that
of Nguyen and P ~ o r a n However,
.~
our contribution here is result 4, which
gives a compact expression of the inertia matrix MLegsin terms of the Jacobians
JI and J2. The interest of this result is essentially theoretical. Indeed, we think
that such an expression will allow us to develop some special control approach,
similar to the one described in Gu and L0h,14where the matrix of inertia (M)
needs to be written in terms of some Jacobians.
Work in this direction as well as simulation of the dynamic equations will
have to be done to make possible the application in the milling process proposed in the next section.
647
648
(xo~~@zo*%so~7d
Let R(a,, Po, yo) E R3') be the constant rotation matrix from the task space to
the base space (Fig. 5). Then, it is easy to express the transformation from task
space to base space by
Let (el, e2, 03) be the yaw-pitch-roll angles about the x-, y-, and z-axes. Then,
the yaw-pitch-roll matrix in task space can be written as
cos O2 cos O3 sin 8, sin O2 cos e3 - cos
cos 82 sin O3 sin el sin 62 sin O3
-sin 02
sin f13
+ cos 8, cos O3
+ sin 8, sin e3
cos el cos e2
Og
ael
where no, 0 8 , and a6 represent the normal vector, sliding vector, and approach
vector, respectively. It can be shown that any rotation movement in the task
649
space (el, 02,63) can be transformed to the rotation movement in the base frame
( a , @, y ) by using the "equivalent transformation matrix"
Comparing both sides of (52) term by term gives the rotation angles in base
frame expressed in terms of the rotation movement in task space by
where R j is the ith column of the rotation maxtrix R and (a . b) represents the
dot product of two vectors a and b. Thus, any position/orientation changes in
task space can be transformed to the base space using
XY l
where Jh E Rhx6is the Jacobian between the task space and the reference
(world) frame. We assume that Jh is nonsingular.
To model the situation of contact between the cutter and the environment
(e.g., the part), another term F,.must be added into the dynamic equations (9) to
yield
MX,-,,
+ VJX,
-,,, xp-,,)xp-,,
+ G(x,-,J = F - J ~ F , .
(57)
650
between the cutter and the part. Controlling the variation rate of the forces is
equivalent to controlling the stiffness of the spring. Let F, be
k , o o o o d
0 kt 0 0
F, =
O O k , O
0 0 0 k, 0 0
0
1:
- xo
0 0 Y - Yu
O O z - zu
0 0 k, 0
-0 0 0 0 0 k,
[ 0"1
K,
(58)
XI
= (x, ,y o , zo) is a vector of the commanded, nominal contact position in task
space, xT = (x, y, z) is the tip position of the cutter in task space, and k,
represents the stiffness constant. Figure 6 shows a 1-D spring in the z-direction.
Before the cutter makes contact with the part, only position control is needed
to command the mobile platform (holding the part) to follow the desired posiAs long as the cutter is in contact
tiodorientation trajectories Xp-oand Xp-o.
with the part, stiffness control must be included to force the velocity of the
mobile platform in Cartesian space to go to zero while maintaining the desired
cutting forces Fcd in task space.
Because the contact force is modeled as a 3-D spring as shown in (58). we
may express the desired force in task space as
651
where P,. is the force error defined by F,.d - F,.. Taking into account models (58)
and (59), (60) can be written as
u(X,,-,, , F,) = 21 XpT-oMXp-,,
.
["i [*,
"1
"ITK,
(61)
Differentiating (61) with respect time along with the dynamic eq. (57) yieldsi6
F - G(X,-,)
Jh'K,
K,
(62)
Note that in (62) we already use the skew-symmetric property of the dynamics
(see Sections 2 and 3). If the generalized control force F is selected as
The result of (64)can only guarantee that the Cartesian velocity of the mobile
platform goes to zero and hence the Cartesian acceleration goes to 2er0.I~
However, checking with the closed-loop system may find that at steady state
652
synthesized by
Li
Fori= 1,.
F(X,-,)
. .,6
Li = BiTj = OTj - OBi
where
j = (i + 1)/2
= it2
if i is odd
if i is even
and G T J is
~ given by the geometry of the platform.
653
Jacoblans
E:
j:
L3
with
where
where
1)/2
if i is odd
if i is even
and
v1
platform and if u = -u2] then S(u) =
[:i2
-v3
V2
.v3
matrix of order 3.
Explicit expressions for J1 and Jz are given in Liu et d.Io
654
M,
with
655