Dynamic Analysis and Control of a
Stewart Platform Manipulator
G. Lebret, K. Liu,' and F. L. Lewis
Automation & Robotics Research Institute
The University of Texas at Arlington
7300 Jack Newel1 Blvd., S.
Fort Worth, TX 76118
Received May 3, 1992; accepted October 20, 1992
The Stewart platform is a sixaxis parallel robot manipulator with a forcetoweight ratio
and positioning accuracy far exceeding that of a conventional seriallink 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 stepbystep 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 pathplanning 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 higherlevel tasks. 0 1993 John Wiley & Sons, Inc.
*Addressee for all correspondence.
Journal of Robotic Systems 10(5), 629655 (1993).
0 1993 by John Wiley & Sons, Inc.
CCC 07412223/93/050629027
630
Journal of Robotic Systems1 993
1. INTRODUCTION
The Stewart platform manipulator is a parallel kinematic linkage system that
has major mechanical differences from typical serial link robots. In this research, interest focuses on configuration offers the following significant advantages when applied as a manufacturing manipulator: (1) Major components of
actuation forces are usually additive; (2) actuator position errors are not additive.
The Stewart platform manipulator appears simple and refined to the point of
elegance. However, the same closed kinematics that provide mechanical stiffness also present an extremely difficult theoretical problem for forward kinematics analysis. This problem has blocked the development of a practical control algorithm capable of realtime trajectory generation, a necessity for
application of the manipulator.
Much effort has been devoted to finding an efficient algorithm for giving an
accurate kinematic solution since this kind of platform was proposed by
Stewart' in 1965. In Lee and Shah,2 the kinematic behavior of a threelink,
threedegreesoffreedom (do0 platform was investigated. Though this research gave the reader a clear geometric background, the 3dof nature of the
device (two for orientation and one for position) limits its application. In Fichter,3the kinematic behavior of a 6dof Stewart platform was studied. To solve
for the position of the upper platform in terms of the given link lengths, 30
nonlinear algebraic equations must be solved simultaneously. Due to the timeconsuming nature of this procedure, it is impossible to compute the kinematic
solutions online. In Waldron et aL4and Nanua et aI.,s similar efforts have been
made. Instead of solving 30 equations, a 24thorder polynomial4or a 16thorder
polynomial5in a single variable must be solved. Not to mention the computational complexity involved in solving such highorder polynomials, the multiple
solutions alone (there may exist up to 64 solutions) make this a difficult approach to use practically.
Liu et aL6 proposed a simple algorithm that involves solving only three
nonlinear algebraic equations. This algorithm provides not only a simpler kinematics analysis approach but also a relatively simpler approach to deal with the
Jacobian matrix and singularities.
In Liu et aL6and this article interest focuses on the Stewart platform configuration, which consists of a semiregular hexagonal lower platform, an equilateral triangular upper platform, and six identical linear actuators as shown in
Figure 1. The detailed forward and inverse kinematics are in Liu et aL6In this
article, we concentrate our effort upon the dynamics of the Stewart platform
based on our previous work on the kinematics and Jacobian. Then, we present
some potential applications of the Stewart platform manipulator in manufacturing systems.
In general, there exists a duality between parallel robots and serial linkage
robots. For a 6dof Stewart platform, the complexity of the forward kinematics
has to be compared with that of the direct kinematics of the serial robot and, on
the contrary, inverse kinematics are as easy as the forward kinematics of a
Lebret, Liu, and Lewis: Stewart Platform Dynamics Analysis
631
Figure 1. Stewart platform geometry.
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 NewtonEuler 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
wellknown skewsymmetric 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 highforce 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
Journal of Robotic Systems1993
largescale parts such as cylinder heads for an oceangoing freighter. However,
because in general the cutter has only 2 or 3 dof to process a complex work
several configuration adjustments of the cutter, table, and fixture must be made
to let the combination of the movements meet the desired contour. In some
cases, a special fixture must even be designed to meet a specific need.
Another problem in milling is the shock that may occur when teeth on a
cutter make contact with the work. To minimize the effects of shock and give a
smoother cutting action, the cutter holder (the spindle) must be very cumbersome and powerful.
The Stewartplatformbased manipulator (SPBM)has some innate merits
that make it suitable for milling actions. Its link ends are simply supported,
making it far more rigid in proportion to size and weight than any serial link
robot. Furthermore, its links are arranged so that major force components of all
six prismatic joints may add together, yielding a ratio of forceoutputtomanipulatorweight more than one order of magnitude greater than most industrial
robots. The closed kinematic chain and parallel linkage structure not only give
the SPBM great rigidity and a high forcetoweight ratio but also provide the
capability of improved accuracy over serial link robots because the parallel link
positioning errors are distributed, not cumulative.
2. NOTATIONS
To introduce the notations, we first briefly summarize the approach used in
Section 3 to derive the dynamic equations, Then, we describe the different
frames and coordinates needed to modelize the robot.
Procedures using the Lagrange formulation are
1. Calculate the kinetic energy (K)and potential energy (P)as a function of
the generalized coordinate q:
1
K = K(q,Q) = 2 QTM(q)Q
where q E 53" and M E Rnxn
(1)
P = P(q)
where P(q) E 53"
(2)
2. Develop the Lagrange equations using
where 7 is the torque or force to apply to the body.
This finally yields the dynamic equations in the standard form:
Lebret, Liu, and Lewis: Stewart Platform Dynamics Analysis
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.
2.1. Coriolis and Centrifugal Term V(q,a)
Using the Christoffel symbols [Cu&(q);
see ref. 121, V(q,q) can be obtained by
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:
where V,,,(q,q) is an ( n x n ) matrix that can be expressed by
Here, U Mis a matrix obtained from M(q) and 4 by the following relation, where
@ represents the Kronecker product:
with
634
Journal of Robotic Systems1 993
Remark 1
The equivalence of the two descriptions can be understood from the relations
The skewsymmetricproperty commonly used (see refs. 12 and 13) in the
Rroof of the convergence of several control laws is easy to derive from (8):
M  2V,, = UM  U L is a skewsymmetric matrix.
2.2. Frames and Coordinates Associated with the Robot
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 Zaxis pointing vertically upward. Fix another
moving coordinate system (x,y,z) at the center of gravity of the upper platform
with the zaxis 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 6dof Stewart platform, six independent
positionorientation variables are needed. Denote the location of the origin of
4
1
X
Figure 2. Physical dimensions of base and top.
635
Lebret, Liu, and Lewis: Stewart Platform Dynamics Analysis
unity approach vector
Figure 3. Rotation angles.
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 Xaxis by a degrees, then about the fixed Yaxis by p degrees,
and finally about the zaxis by y degrees (Fig. 3). All angles are measured in the
righthanded 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 onetoone 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
As noted in Section 1, there exists a duality between serial and parallel
robots. It appears here in the fact that the dynamic equations are less difficult to
obtain in the Cartesian space than in the joint space. Thus, one seeks the
636
Journai of Robotic Systems1993
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
The characteristics of the upper platform (up) are
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
Translational energy. Energy of the center of mass when one considers
that the entire mass of the platform is concentrated there:
Rotational energy. Energy of the body due to the rotation around its center
of mass:
Let us develop the last expression.
The tensor of inertia O(m has a simple form in the moving frame
O(,,f)
[:I
0
Iy 0 . Given the definition of the angles a, p , and
y , the
637
Lebret, Liu, and Lewis: Stewart Platform Dynamics Analysis
angular velocity
fiUp(fi)of
the upper platform is
(17)
or
([
fiup(ff,
0 SP
CP
sp
0 cp
['
: ," ,"j+," ::]
0 0 0
0 Ca
sa
0 Sa
ca
0 0 0
I[: 3" I!:[)]:
0 0 1
(18)
In the moving frame, it is defined by fiup(mf) = R,(y)TRx(a)rRy(P)r
fiup(fi).Thus,
we obtain
1
Kupbt)
I:[ [
ci
IxC2y
+ fyS2y
( f x  fy)CaCySy
(1,  ly)CaCySy
C2a(lxS2y + ZyC2y) + fzS*a
1zS2a
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,
Potential energy of the upper platform
638
Journal of Robotic Systems1993
Result 2
Pup= mug p z
= [0 0
mug 0 0 O]Xpo
(21)
where g is the gravity
3.1.2. Kinetic and Potential Energies of the Six Legs
A precise study of the dynamics of the legs should require a decomposition
into two parts: the fixed part (to the base) and the moving part (see Fig. 1). And,
we should consider them as two bodies with their own inertia. However, this
will lead to a complex formulation. As a simplified yet still accurate model, we
will consider that each leg can be represented by a moving point (its center of
mass Gi) and assume that the mass is concentrated there. This takes into
account the motion of the center of gravity due to the change in leg actuator
length.
Note the following specification of a leg (Legi i = 1, . . . , 6) The center of
mass GI;of the fixed part is not in the middle of the body due to the great mass
of the DC motor (see Fig. 4). Let us denote by lI and rnl the length and the
mass, respectively, of this part and 6 the distance B,Gli.On the contrary, the
moving part of each actuator is uniform. Its center of mass Gzi is in its middle.
Let us denote 12 and m2 the length and mass, respectively, of this second part.
Denote by Ci the unitary vector that gives the direction of a leg (I;i =
Bi7j)wherej = (i + 1)/2 if i is odd a n d j = i / 2 if i is even). Finally, Li is the
total length of the leg Legi (note that this is a function of the time; its time
derivative will be noted i i ) .
m,/
Figure 4. Leg of the Stewart platform.
Lebret, Liu, and Lewis: Stewart Platform Dynamics Analysis
639
To obtain the kinetic and potential energies of a leg (Legi i = 1 , . . . , 6) we
need to determine the position and velocity of its center of mass Gi:
The velocity
vG,of the center of mass G; is then
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,
after some calculations one
Journal of Robotic Systems1 993
640
Let us denote
hi =
(L;i + mI + m2
Then:
Result 3
1)/2
where
if i is odd
if i is even
(29)
Remark 2. One can also write
Remember that
is the vector that gives the direction of the leg i. Thus, if
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
Lebret, Liu, and Lewis: Stewart Platform Dynamics Analysis
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
Journal of Robotic Systems1 993
Thus, one finally obtains:
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
Potential energy of the legs
Z7; = pz
+ 2 . mj.fi)
and
One can finally write:
j = (i t 1)/2
if i is odd
j = i/2
if i is even
Lebret, Liu, and Lewis: Stewart Platform Dynamics Analysis
643
Result 5
with
Remark 4.
mj(,f,
is given by the geometry of the platform.
3.2. Dynamic Equations
We now have to calculate the terms M(Xp,,),Vfn(Xpo,X p  J , and G(Xp,,)
of eq. (14), i.e.,
XpJXP,)+ G(X,,)
M(Xp,,)Xp,,+ Vfn(XP",
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(XPJ. Vm(Xp,, XpJ 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 stepbystep formulation must be used.
3.2.7. Terms Mu,, Vmup,and G,,
See Appendix B.
3.2.2. Terms MLegs,
VmLwa,
and GLegs
From (381, we know that MLegs = (ml + m2)[JT[kU  J~KJIIJ2l,
where K is a
diagonal matrix. Thus
9
MLegsij
2C
m=l
n=l
[J2mi ( M m n
p=l
JlprnKppJlpn)
Jznj]
i=l,.
j = 1,.
. . ,6
. . ,6
(43)
644
Journal of Robotic Systems1 993
Now, from relation (6) of Section 2, we have
So, we have to calculate (a(mLegsij)laXpo(k))
for i, j , k = 1,
. . . , 6:
( d J ~ ~ i / a X ~ or~ (aJ2nj/aXpo(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
(aJlpn/aXpdk,)or (aJlpmlaXpdk))can be calculated from the expression of
JI given in Appendix A:
Lebret, Liu, and Lewis: Stewart Platform Dynamics Analysis
645
Note that to get (46), (47), and (48) we need the expression of (aLnlaXpo(k))
for
n, k = I , . , . , 6. These terms can be obtained from J I and JZ by
q.(,,,f)...)
The other terms ( m l , m2,
are either information available from the
geometry of the robot or ( a ( p )or Ln.J information that has to be computed.
Note that these last terms are intermediate or final results of the computations
of the inverse kinematic that might be included in the algorithm described
hereafter.
3.2.3. Term GLegs
It is necessary to include the computation of G Lin ~the ~algorithm.
~
Indeed,
one can see from the following expression of GLegs(Xp")that we need
the expressions of (dL2; tlaXp,,(k)), (aLzJaX,,,(k)), (1 /Lit I), (1 lLij)y and
(azTpxpo(k)):
where
646
Journal of Robotic Systems1 993
3.3. Summary of the Calculation of the Dynamics and Algorithm
To obtain the dynamic equations, we use a combination of direct and stepbystep Lagrangian formulations: direct formulation for the platform and stepbystep 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)lThis needs
the values of Li (i = 1, . . . , 6).
5 . Compute the Jacobian J = J IJ2 to obtain (dLn/aXpo(k))
n = 1, . . . ,6, k =
1, . . . , 6 [see relation (49)l.
6. Compute the components of the tensors (dJ2mi/dXpo(k)),(dW,,,,/dXpo(k)),
(dK,,,,/dXpo~~$,
and (dJ~,,~/dX~~~,k~)
to calculate the other tensor defined by
(d(mLegs;j)/dXpo(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.
Lebret, Liu, and Lewis: Stewart Platform Dynamics Analysis
647
4. STIFFNESS CONTROL OF A STEWART
PLATFORMBASED MANIPULATOR
In this section, we will discuss the applications of a Stewartplatformbased
manipulator (SPBM) in manufacturing industry. As an example, we will consider a special casethe stiffness control of SPBM in milling process.
As mentioned in Section 1, the milling machine is a popular machine tool that
can be found in any modern machine shop. A typical milling machine consists
of a swivelling (or nonswivelling) table, which is used to hold the parts to be
machined, and a horizontal or verticalspindle, which is used to hold the
cutter. Usually, the table (holding the part) is fixed during the milling process.
The spindle (with the cutter) can make 2D movement. To machine a complex
part, several adjustments of the configuration of the table and spindle must be
made manually. In some cases, a specially designed fixture or attachment may
even be used.
In milling actions, the cutter is required to be in continuous contact with the
part being machined to exert certain cutting forces along certain directions. It is
known that when the teeth on a cutter make contact with the part, shock or
vibration may be experienced.
The deficiencies of the regular milling process may be remedied by introducing an SPBM into the milling system. Its 6 dof including 3 dof in position and 3
dof in orientation and its precise positioning capacity make it fit for coordinating motion control with the cutter to machine a complex part. More important,
its far greater stiffness and high forcetoweight ratio make it suitable for reducing the shock or vibration during the milling actions, yielding a smoother milling path.
In this research, we propose to mount an SPBM on the machine table. The
SPBM base is fixed to the table and its upper platform holds the part being
machined.
From the discussion of Section 3, it can be seen that the dynamics of an
SPBM is complicated. Further, some parts of the dynamics are not understood
well. This makes controller design difficult. Standard control schemes such as
linearization techniques cannot be easily implemented because of a lack of the
complete knowledge of the dynamics.
However, in the milling process we may take advantage of this particular
application (e.g., the motion of an SPBM is not so fast) to design a simplified
controller. In this controller, a simplified model of an SPBM will be used in
which the Corioliscentrifugal terms are ignored due to the assumption of low
velocities. A possible computedtorque controller for this situation was proposed in Liu et al.
In this research, a good deal of effort has been put into reducing the shock to
a minimum by using stiffness control.
Let (x, y, z) be an orthogonal coordinate system associated with the fixed
task space. Its origin is at the location of (X,, Y,),2,) in terms of the base frame
X  Y  Z and its rotation angles with respect to the base frame are (a,,Po,yo).
648
Journal of Robotic Systems1993
(xo~~@zo*%so~7d
Figure 5. Base frame and task frame.
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 yawpitchroll angles about the x, y, and zaxes. Then,
the yawpitchroll 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 0, cos tI2
cos el sin ez cos O3
+ sin 8, sin e3
cos el sin e2 sin e3  sin 61 cos 83 = [ne
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
Lebret, Liu, and Lewis: Stewart Platform Dynamics Analysis
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)
where F,. E R h x lrepresents a vector of the reaction forces/torques between the
cutter and the environment in task space.
Intuitively. if a mechanism can automatically generate a force that will tend
to return any deflected states to the original, nominal states then that mechanism can be used to solve our problem. An ideal, linear spring will generate a
force that is proportional to the deflection from its nominal position. In this
research, we assume that there are no "twisting" actions occurring in the
cutter and the part; thus, a 3D linear spring can be used to model the contact
650
Journal of Robotic Systems1 993
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 1D spring in the zdirection.
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 Xpoand Xpo.
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 3D spring as shown in (58). we
may express the desired force in task space as
Figure 6. Onedimensional spring model.
651
Lebret, Liu, and Lewis: Stewart Platform Dynamics Analysis
where x: = (xd, Y d , z d ) represents a vector of the "virtual" desired tip position
of the cutter in task space. We call it virtual because it only plays a role in
deriving the controller formulation. It will never be reached.
Define a Lyapunov function candidate"
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 XpToMXp,,
.
["i [*,
"1
"ITK,
(61)
Differentiating (61) with respect time along with the dynamic eq. (57) yieldsi6
F  G(X,,)
Jh'K,
[" (I""]} [:] ["'0"1

K,
(62)
Note that in (62) we already use the skewsymmetric property of the dynamics
(see Sections 2 and 3). If the generalized control force F is selected as
where K E R6x6is a diagnonal, positive, constant matrix, then
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 closedloop system may find that at steady state
Because we assumed that the Jacobian Jh is nonsingular; it is easy to infer a
zero solution of F, from (65).
Note that expression (63) only gives us the "generalized" control input in
Cartesian space. To manipulate the linear actuators, this control input must be
transformed to link space. Another problem is that in (63) measurements of
Xpuand XP<,are necessary. However, in practice it is difficult to measure the
position and velocity of the mobile platform in Cartesian space; only the information in link space is available. Thus, the position and velocity measurements
must be made in link space; then, they will be transformed to Cartesian space
by forward kinematics and Jacobian. The final control input in link space is then
652
Journal of Robotic Systems1 993
synthesized by
There is no need to measure positiodvelocity in task space. That is why we call
xd a virtual desired position vector.
5. CONCLUSION
In this article, we study the dynamics of a Stewart platform manipulator and
its potential applications in manufacturing industry. Although the explicit dynamic formulations cannot be obtained due to the high nonlinearities existing in
the kinematics and the strong coupling among the legs, a feasible dynamic
algorithm is proposed. As a special application of the Stewart platform, the
SPBM milling station is discussed. Applying a simple stiffness control, the
mobile platform (the part) not only follows the preplanned position/orientation
trajectories but also maintains desired forces in certain directions. Two prototype Stewart platforms have been built by the Advanced Controls and Sensors
Group at Automation & Robotics Research Institute (ARRI), the University of
Texas at Arlington. A TMS320C30based realtime control system is being
developed and integrated at ARRI for SPBM control.
This research was supported by Texas Advanced Technology Program under Grant
003656008and Le Ministitre Franais des Maires Etrangtres Francaises, Programme
Lavoisier.
APPENDIX A: INVERSE KINEMATICS AND JACOBIANS6*10
Inverse Klnematlcs
Li
Fori= 1,.
F(X,,)
. .,6
Li = BiTj = OTj  OBi
where OBi (the norm of
m)is given by the geometry of the base and
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.
Lebret, Liu, and Lewis: Stewart Platform Dynamics Analysis
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
And, 13 is the identity
.v3
matrix of order 3.
Explicit expressions for J1 and Jz are given in Liu et d.Io
Journal of Robotic Systems1 993
654
APPENDIX B: UPPER PLATFORM DYNAMICS TERMS
M,
with
Gup= [O 0 mup 0 0 OI*
References
1. D. Stewart, "A platform with six degrees of freedom," Proc. of the Institute for
Mechanical Engineering, London, 1%5, Vol. 180, pp. 371386.
Lebret, Liu, and Lewis: Stewart Platform Dynamics Analysis
655
2. K. M. Lee, and D. K. Shah, Kinematics analysis of a threedegreesoffreedom
inparallel actuated manipulator, IEEE J. of Robotics and Automation, 4, 354360 (1988).
3 . E. F. Fitcher, A Stewart platformbased manipulator: General theory and practical construction, Int. J. of Robotics Research, 157182 (1986)
4. K. J. Waldron, M. Raghavan, and B. Roth, Kinematics of a hybrid seriesparallel
manipulation systems, J. of Dynamic Systems, Measurement, and Control, 111,
21 1221 (1989).
5 . P. Nanua, K. J. Waldron, and V. Murthy, Direct kinematics solution of a Stewart
platform, IEEE Trans. on Robotics and Automation, 6, 438444 (1990).
6. K. Liu, M. Fitzgerald, and F. L. Lewis, (1991 a) Some Issues about Modeling of
the Stewart Platform Manipulator, Proc. Second Int. Symposium on Implicit and
Robust Systems, Warsaw, Poland, pp. 131135.
7. J. P. Merlet, Les Robots Paralleles, Hermes, 1990.
8. C. Reboulet and T. Berthomieu, Dynamic models of a six degree of freedom
parallel manipulators, Proc. of the Con5 K A R 91, Pise, Italy, 11531 157 (1991).
9. C. C. Nguyen and F. J. Pooran, Dynamic analysis of a 6 DOF CKCM robot endeffector for dualarm telerobot systems, Robotics and Autonomous Systems,
377394 (1989).
10. K. Liu, F. L . Lewis, G. Lebret, and D. Taylor, The singularities and dynamics of
a Stewart platform manipulator, J. of Intelligent & Robotic Systems.
I I . D . Koditschek, Natural motion for robot arms, Proc. of the 23rd Conf, on
Decision and Control, Las Vegas, NV, 733735 (1984).
12. M. Spong, and M. Vidyasagar; Robot Dynamics and Control, Wiley, New York,
1989.
13. J. J. Slotine and W. Li, Adaptive manipulator control: a case study, IEEE
Trans. on Automatic Control 33, 9951003 (1988).
14. Y. L. Gu and N. K. Loh, A dynamic modeling and control by utilizing an
imaginary robot, IEEE J . of Robotics and Automation, 532540 (1988).
15. K. Liu, M. Fitzgerald, D. Dawson, and F. L. Lewis, Modeling and control of a
Stewart platform manipulator, Proc. of the Symp. of Control of Systems with
Inexact Dynamic Models, Atlanta, GA, 1991, pp. 8389.
16. F. L. Lewis, C. T. Abdallah, and D. M. Dawson, Control of Robot Manipulators,
New York: Macmillan, 1993.
17. J. J. Craig, Introduction to Robotics, AddisonWesley, Reading, MA, 1989.