Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/267479224

Complete Dynamic Modeling of a Stewart Platform Using the Generalized


Momentum Approach

Article · January 2011


DOI: 10.1007/978-90-481-9884-9_25

CITATIONS READS
7 385

2 authors, including:

António M. Lopes
University of Porto
337 PUBLICATIONS 5,197 CITATIONS

SEE PROFILE

All content following this page was uploaded by António M. Lopes on 15 December 2015.

The user has requested enhancement of the downloaded file.


Complete Dynamic Modeling of a Stewart
Platform Using the Generalized Momentum
Approach

António Mendes Lopes1 and E. J. Solteiro Pires2


1
Unidade de Integração de Sistemas e Processos Automatizados,
Faculdade de Engenharia, Universidade do Porto,
Rua Dr. Roberto Frias, 4200-465, Porto, Portugal
aml@fe.up.pt
2
Centro de Investigação e de Tecnologias Agro-Ambientais e Biológicas,
Dep. de Engenharias, Universidade de Trás-os-Montes e Alto Douro,
Quinta de Prados, 5000–911 Vila Real, Portugal
epires@utad.pt

Dynamic modeling is of great importance regarding computer simulation and


advanced control of parallel manipulators.
Dynamic modeling of parallel manipulators presents an inherent complex-
ity, mainly due to system closed-loop structure and kinematic constraints.
In this paper an approach based on the manipulator generalized momen-
tum is explored and applied to the dynamic modeling of a Stewart platform.
The generalized momentum is used to compute the kinetic component of the
generalized force acting on each manipulator rigid body. Analytic expres-
sions for the rigid bodies’ inertia and Coriolis and centripetal terms matrices
are obtained, which can be added, as they are expressed in the same frame.
Gravitational part of the generalized force is obtained using the manipulator
potential energy.

1 Introduction
The dynamic model of a parallel manipulator operated in free space can be
mathematically represented, in the Cartesian space, by a system of nonlinear
differential equations that may be written in matrix form as:

I(x).ẍ + V(x, ẋ).ẋ + G(x) = f (1)


I(x) being the inertia matrix, V(x, ẋ) the Coriolis and centripetal terms ma-
trix, G(x) a vector of gravitational generalized forces, x the generalized po-
sition of the moving platform (end-effector) and f the controlled generalized
force applied on the end-effector. Thus,
2 António Mendes Lopes and E. J. Solteiro Pires

f = JT (x).τ (2)
where τ is the generalized force developed by the actuators and J(x) is a
jacobian matrix.
The dynamic model of parallel manipulators is usually developed using
the Newton-Euler or the Lagrange methods. Do and Yang [1] and Reboulet
and Berthomieu [2] use the Newton-Euler method on the dynamic modeling
of a Stewart platform. Ji [3] presents a study on the influence of leg inertia
on the dynamic model of a Stewart platform. Dasgupta and Mruthyunjaya [4]
used the Newton-Euler approach to develop a closed-form dynamic model of
the Stewart platform. This method was also used by Khalil and Ibrahim [5],
Riebe and Ulbrich [6], and Guo and Li [7], among others.
On the other hand, Nguyen and Pooran [8] use the Lagrange method to
model a Stewart platform, modeling the legs as point masses. Lebret et al.
[9] follow an approach similar to the one used by Nguyen and Pooran [8].
Lagrange’s method was also used by Gregório and Parenti-Castelli [10] and
Caccavale et al. [11], for example.
Unfortunately the dynamic models obtained from these classical ap-
proaches usually present high computational loads. Therefore, alternative
methods have been searched, namely the ones based on the principle of virtual
work [12, 13], screw theory [14], and the generalized momentum approach [15].
In this paper the authors present a new approach to the dynamic modeling
of a six degrees-of-freedom (dof) Stewart platform: the use of the generalized
momentum concept.

2 Stewart Platform Kinematic Structure


A Stewart platform comprises a fixed platform (base) and a moving (payload)
platform, linked together by six independent, identical, open kinematic chains
(Figure 1). Each chain (leg) comprises a cylinder and a piston (or spindle) that
are connected together by a prismatic joint, li . The upper end of each leg is
connected to the moving platform by a spherical joint whereas the lower end
is connected to the fixed base by a universal joint. Points Bi and Pi are the
connecting points to the base and moving platforms, respectively. They are
located at the vertices of two semi-regular hexagons.
For kinematic modeling purposes, two frames, {P} and {B}, are attached
to the moving and base platforms, respectively. The generalized position of
frame {P} relative to frame {B} may be represented by the vector:
h iT
B T B T
xP |B|E = [xp yp zp ψp θp ϕp ] = xP (pos)|B B xTP (o)|E (3)

where B xP (pos)|B = [xp yp zp ]T is the position of the origin of frame {P}


relative to frame {B}, and B xP (o)|E = [ψp θp ϕp ]T defines an Euler angles
system representing orientation of frame {P} relative to {B}.
Dynamic Modeling of a Stewart Platform 3

Fig. 1. Stewart platform kinematic structure.

The velocity kinematics is represented by the Euler angles jacobian matrix,


JE , or the kinematic jacobian, JC . These jacobians relate the velocities of the
active joints (actuators) to the generalized velocity of the moving platform:
B 

l̇ = JE .B ẋP |B|E = JE . B P (pos)|B (4)
ẋP (o)|E
B 
B ẋP (pos)|B
l̇ = JC . ẋP |B = JC . B (5)
ωP |B
where,
h iT
l̇ = l˙1 l˙2 . . . l˙6 (6)

B
ωP |B = JA .B ẋP (o)|E (7)
 
0 −SψP CθP CψP
JA =  0 CψP CθP SψP  (8)
1 0 −SθP
Vectors B ẋP (pos)|B ≡B vP |B and B ωP |B represent the linear and angular
velocity of the moving platform relative to {B}, and B ẋP (o)|E represents the
Euler angles time derivative.

3 Dynamic Modeling Using the Generalized Momentum


3.1 Moving Platform Modeling

The linear momentum of the manipulator moving platform, written in frame


{B}, may be obtained from the following expression:

QP |B = mp .B vP |B = IP (tra) .B vP |B (9)
4 António Mendes Lopes and E. J. Solteiro Pires

IP (tra) is the translational inertia matrix of the moving platform,

IP (tra) = diag([mP mP mP ]) (10)


mP being its mass.
The angular momentum, also written in frame {B}, is:

HP |B = IP (rot)|B .B ωP |B (11)
IP (rot)|B represents the rotational inertia matrix of the moving platform, ex-
pressed in the base frame {B}. The rotational inertia matrix of the moving
platform, expressed in frame {P}, may be written as:

IP (rot)|P = diag([IPxx IPyy IPzz ]) (12)


This inertia matrix can be written in frame {B} using the following transfor-
mation:

IP (rot)|B =B RP .IP (rot)|P .B RTP (13)


The generalized momentum of the moving platform, expressed in frame
{B}, can be obtained from the simultaneous use of equations (9) and (11):
  B 
I 0 v
qP |B = P (tra) . B P |B (14)
0 IP (rot)|B ωP |B
The combination of equations (7) and (11) results into:

HP |B = IP (rot)|B .JA .B ẋP (o)|E (15)


Accordingly, equation (14) may be rewritten as:
     B 
I 0 ℑ 0 v
qP |B = P (tra) . . B P |B (16)
0 IP (rot)|B 0 JA ẋP (o)|E

qP |B = IP |B .T.B ẋP |B|E (17)


T being a matrix transformation defined by:

T = diag([ℑ JA ]) (18)
The time derivative of equation (17) results into:

P d
IP |B .T .B ẋP |B|E + IP |B .T.B ẍP |B|E

fP (kin)|B = q̇P |B = (19)
dt
P
fP (kin)|B is the kinetic component of the generalized force acting on {P}, due
to the moving platform motion, expressed in frame {B}. The corresponding
actuating forces, τP (kin) , may be computed from the following relation:
Dynamic Modeling of a Stewart Platform 5

Fig. 2. Position of the centre of mass of the cylinder i.

τP (kin)|B = J−T P
C . fP (kin)|B (20)
where
h iT
P P
fP (kin)|B = FTP (kin)|B P
MTP (kin)|B (21)

Vector P FP (kin)|B represents the force vector acting on the centre of mass of
the moving platform, and P MP (kin)|B represents the moment vector acting
on the moving platform, expressed in the base frame, {B}.
From equation (19) it can be concluded that two matrices playing the roles
of the inertia matrix and the Coriolis and centripetal terms matrix are:

IP |B .T (22)

d 
IP |B .T (23)
dt

3.2 Cylinder Modeling

If the centre of mass of each cylinder is located at a constant distance, bC ,


from the cylinder to base platform connecting point, Bi , (Figure 2), then its
position relative to frame {B} is:
B
pCi |B = bC .l̂i + bi (24)
where,
li li
l̂i = = (25)
kli k li

li =B xP (pos)|B +P pi|B − bi (26)


B
The linear velocity of the cylinder centre of mass, ṗCi |B , relative to {B}
and expressed in the same frame, may be computed as:
B
ṗCi |B =B ωli |B × bC .l̂i (27)
B
where ωli |B represents the leg angular velocity, which can be found from:
6 António Mendes Lopes and E. J. Solteiro Pires

B
ωli |B × li =B vP |B +B ωP |B ×P pi|B (28)
As the leg (both the cylinder and piston) cannot rotate along its own axis,
the angular velocity along l̂i is always zero, and vectors li and B ωli |B are
always perpendicular. This enables equation (28) to be rewritten as:

B 1 B
vP |B +B ωP |B ×P pi|B
 
ω li | B = . li × (29)
lTi .li
or,
B 
v
B
ω li | B = JDi . B P |B (30)
ωP |B
where jacobian JDi is given by:
h i
JDi = ˜l̄i ˜l̄i .P p̃Ti|B (31)

li
l̄i = (32)
lTi .li
and, for a given vector a = [ax ay az ]T ,
 
0 −az ay
ã =  az 0 −ax  (33)
−ay ax 0
On the other hand, equation (27) can be rewritten as:
B 
B vP |B
ṗCi |B = JBi . B (34)
ωP |B
where JBi the jacobian is given by:
T T
h i
JBi = bC .˜l̂i .˜l̄i bC .˜l̂i .˜l̄i .P p̃T (35)
i|B

The linear momentum of each cylinder, QCi |B , can be represented in frame


{B} as (36) where mC is the cylinder mass.

QCi |B = mc .B ṗCi |B (36)


Introducing jacobian JBi and matrix transformation T in the previous
equation results into:

QCi |B = mc .JBi .T.B ẋP |B|E (37)


The kinetic component of the force applied to the cylinder, due to its
translation, and expressed in {B} can be obtained from the time derivative of
equation (37):
Dynamic Modeling of a Stewart Platform 7

Ci d
(JBi .T) .B ẋP |B|E + mc .JBi .T.B ẍP |B|E
fCi (kin)(tra)|B = Q̇Ci |B = mc .
dt
(38)
When equation (38) is multiplied by JTBi , the kinetic component of the
force applied to {P} due to each cylinder translation is obtained in frame
{B}:

P
fCi (kin)(tra)|B = JTBi .Ci fCi (kin)(tra)|B
d
= mc .JTBi . dt (JBi .T) .B ẋP |B|E + mc .JTBi .JBi .T.B ẍP |B|E
(39)
The inertia matrix and the Coriolis and centripetal terms matrix of the
translating cylinder being:

mc .JTBi .JBi .T (40)

d
mc .JTBi .
(JBi .T) (41)
dt
These matrices represent the inertia matrix and the Coriolis and cen-
tripetal terms matrix of a virtual moving platform that is equivalent to each
translating cylinder.
On the other hand, the angular momentum of each cylinder can be repre-
sented in frame {B} by:

HCi |B = ICi (rot)|B .B ωli |B (42)


It is convenient to express the inertia matrix of the rotating cylinder in a
frame fixed to the cylinder itself, {Ci } ≡ {xCi , yCi , zCi }. So,

ICi (rot)|B =B RCi .ICi (rot)|Ci .B RTCi (43)


where B RCi is the orientation matrix of each cylinder frame, {Ci }, relative
to base frame, {B}.
Cylinder frames were chosen in the following way: axis xCi coincides with
the leg axis and points towards Pi , axis yCi is perpendicular to xCi and always
parallel to the base plane, this condition being possible given the existence
of a universal joint at Bi , that negates any rotation along its own axis; axis
zCi completes the referential following the right hand rule, and its projection
along axis zB is always positive. Thus, matrix B RCi becomes:
B
 
RCi = xCi yCi zCi (44)
where

xCi = l̂i (45)


8 António Mendes Lopes and E. J. Solteiro Pires

h liy
iT
l
yCi = − √l2 +l2 √l2ix+l2 0 (46)
ix iy ix iy

zCi = xCi × yCi (47)


So, the inertia matrices of the cylinders can be written as (48) where ICxx ,
ICyy and ICzz are the cylinders moments of inertia expressed in its own frame.

ICi (rot)|Ci = diag([ICxx ICyy ICzz ]) (48)


Introducing jacobian JDi and matrix transformation T in equation (42)
results into:

HCi |B = ICi (rot)|B .JDi .T.B ẋP |B|E (49)


The kinetic component of the generalized force applied to the cylinder, due
to its rotation and expressed in {B} can be obtained from the time derivative
of equation (49):

Ci
fCi (kin)(rot)|B = ḢCi |B
d
ICi (rot)|B .JDi .T .B ẋP |B|E +ICi (rot)|B .JDi .T.B ẍP |B|E

= dt
(50)
When equation (50) is pre-multiplied by JTDi the kinetic component of
the generalized force applied to {P} due to each cylinder rotation is obtained
in frame {B}:
P
fCi (kin)(rot)|B = JTDi .Ci fCi (kin)(rot)|B
d
= JTDi . dt ICi (rot)|B .JDi .T .B ẋP |B|E +

(51)
JTDi .ICi (rot)|B .JDi .T.B ẍP |B|E
The inertia matrix and the Coriolis and centripetal terms matrix of the
rotating cylinder may be written as:

JTDi .ICi (rot)|B .JDi .T (52)

d
JTDi .

ICi (rot)|B .JDi .T (53)
dt

3.3 Piston Modeling

If the centre of mass of each piston is located at a constant distance, bS ,


from the piston to moving platform connecting point, Pi , (Figure 3), then its
position relative to frame {B} is:
B
pSi |B = −bS .l̂i +B pi|B +B xP (pos)|B (54)
Dynamic Modeling of a Stewart Platform 9

Fig. 3. Position of the centre of mass of the piston i.

The linear velocity of the piston centre of mass, B ṗSi |B , relative to {B}
and expressed in the same frame, may be computed as:
 
B
ṗSi |B = l̇i +B ωli |B × −bS .l̂i (55)
B 
v
B
ṗSi |B = JGi . B P |B (56)
ωP |B
where the jacobian JGi is given by:

˜T ˜T
   
JGi = I − bS .l̂i .˜l̄i I − bS .l̂i .˜l̄i .P p̃Ti|B (57)

The linear momentum of each piston, QSi |B , can be represented in frame


{B} as:

QSi |B = mS .B ṗSi |B (58)


where mS is the piston mass.
Introducing jacobian JGi and matrix transformation T in the previous
equation results into:

QSi |B = mS .JGi .T.B ẋP |B|E (59)


Kinetic component of the force applied to the piston, due to its translation,
expressed in {B}, is obtained by the time derivative of equation (59):

Si d
(JBi .T) .B ẋP |B|E + mS .JBi .T.B ẍP |B|E
fSi (kin)(tra)|B = Q̇Si |B = mS .
dt
(60)
When equation (60) is multiplied by JTGi , the kinetic component of the
force applied to {P} due to each piston translation is obtained in frame {B}:

P
fSi (kin)(tra)|B = JTGi .Si fSi (kin)(tra)|B
d
= mS .JTGi dt (JGi .T) .B ẋP |B|E + mS .JTGi .JGi .T.B ẍP |B|E
(61)
10 António Mendes Lopes and E. J. Solteiro Pires

The inertia matrix and the Coriolis and centripetal terms matrix of the
translating piston are:

mS .JTGi .JGi .T (62)

d
mS .JTGi
(JGi .T) (63)
dt
On the other hand, the angular momentum of each piston can be repre-
sented in frame {B} by (65) and (65), where B RSi is the orientation matrix
of each piston frame, {Si }, relative to the base frame, {B}.

HSi |B = ISi (rot)|B .B ωli |B (64)

ISi (rot)|B =B RSi .ISi (rot)|Si .B RTSi (65)


As the relative motion between cylinder and piston is a pure translation,
{Si } can be chosen parallel to {Ci } and, therefore, B RSi =B RCi .
So, the inertia matrices of the pistons can be written as (66) where ISxx ,
ISyy and ISzz are the pistons moments of inertia expressed in its own frame.
 
ISi (rot)|Si = diag ISxx ISyy ISzz (66)
Introducing jacobian JDi and matrix transformation T in equation (64)
results into:

HSi |B = ISi (rot)|B .JDi .T.B ẋP |B|E (67)


The kinetic component of the generalized force applied to the piston, due
to its rotation and expressed in {B} can be obtained from the time derivative
of equation (67):

Si
fSi (kin)(rot)|B = ḢSi |B
d
ISi (rot)|B .JDi .T .B ẋP |B|E + ISi (rot)|B .JDi .T.B ẍP |B|E

= dt
(68)
Pre-multiplied by JTDi , the kinetic component of the generalized force ap-
plied to {P} due to each piston rotation is obtained in frame {B}:
P
fSi (kin)(rot)|B = JTDi .Si fSi (kin)(rot)|B
d
= JTDi . dt ISi (rot)|B .JDi .T .B ẋP |B|E +

(69)
JTDi .ISi (rot)|B .JDi .T.B ẍP |B|E
The inertia matrix and the Coriolis and centripetal terms matrix of the
rotating piston will be:

JTDi .ISi (rot)|B .JDi .T (70)


Dynamic Modeling of a Stewart Platform 11

d
JTDi .

ISi (rot)|B .JDi .T (71)
dt
It should be noted that rigid bodies’ inertia and Coriolis and centripetal
terms matrices can be added, as they are expressed in the same frame.

3.4 Dynamic Model Gravitational Components

Given a general frame {x, y, z}, with z ≡ −ĝ , the potential energy of a rigid
body is given by (72) where mc is the body mass, g is the modulus of the
gravitational acceleration and zc the distance, along z, from the frame origin
to the body centre of mass.

Pc = mc .g.zc (72)
The gravitational components of the generalized forces acting on {P} can
be obtained from the potential energy of the bodies that compose the system:
 
∂Pp B xP |B|E
P
fP (gra)|B|E = (73)
∂ B xP |B|E
 
∂PCi B xP |B|E
P
fCi (gra)|B|E = (74)
∂ B xP |B|E
 
∂PSi B xP |B|E
P
fSi (gra)|B|E = (75)
∂ B xP |B|E
The three vectors P fP (gra)|B|E , P fCi (gra)|B|E and P fSi (gra)|B|E represent the
gravitational components of the generalized forces acting on {P}, expressed
using the Euler angles system, due to the moving platform, each cylinder and
each piston. Therefore, to be added to the kinetic force components, these
vectors must be transformed, to be expressed in frame {B}. This may be done
pre-multiplying the gravitational components force vectors by the matrix:

ℑ J−T
 
diag A (76)

4 Conclusions

In this paper an approach based on the manipulator generalized momentum


was explored and applied to the dynamic modeling of a Stewart platform.
Analytic expressions for the rigid bodies’ inertia and Coriolis and centripetal
terms matrices are obtained, which can be added, as they are expressed in the
same frame. Having these matrices, the kinetic component of the generalized
12 António Mendes Lopes and E. J. Solteiro Pires

force acting on the moving platform may be easily computed. This compo-
nent can be added to the gravitational part of the generalized force, which is
obtained through the manipulator potential energy.

References
1. Do, W., Yang, D.: Inverse dynamic analysis and simulation of a platform type
of robot. Journal of Robotic Systems 5 (1988) 209–227
2. Reboulet, C., Berthomieu, T.: Dynamic models of a six degree of freedom
parallel manipulators. In: IEEE Int. Conf. on Robotics and Automation. (1991)
1153–1157
3. Ji, Z.: Dynamics decomposition for Stewart platforms. ASME Journal of Me-
chanical Design 116 (1994) 67–69
4. Dasgupta, B., Mruthyunjaya, T.: A Newton-Euler formulation for the inverse
dynamics of the Stewart platform manipulator. Mechanism and Machine Theory
34 (1998) 711–725
5. Khalil, W., Ibrahim, O.: General solution for the dynamic modelling of parallel
robots. Journal of Intelligent and Robot Systems 49 (2007) 19–37
6. Riebe, S., Ulbrich, H.: Modelling and online computation of the dynamics of a
parallel kinematic with six degrees-of-freedom. Archive of Applied Mechanics
72 (2003) 817–829
7. Guo, H., Li, H.: Dynamic analysis and simulation of a six degree of freedom
Stewart platform manipulator. Proceedings of the Institution of Mechanical
Engineers, Part C: Journal of Mechanical Engineering Science 220 (2006) 61–
72
8. Nguyen, C., Pooran, F.: Dynamic analysis of a 6 dof CKCM robot end-effector
for dual-arm telerobot systems. Robotics and Autonomous Systems 5 (1989)
377–394
9. G. Lebret, K.L., Lewis, F.: Dynamic analysis and control of a Stewart platform
manipulator. Journal of Robotic Systems 10 (1993) 629–655
10. Gregório, R.D., Parenti-Castelli, V.: Dynamics of a class of parallel wrists.
Journal of Mechanical Design 126 (2004) 436–441
11. Caccavale, F., Siciliano, B., Villani, L.: The tricept robot: Dynamics and
impedance control. IEEE/ASME Transactions on Mechatronics 8 (2003) 263–
268
12. Staicu, S., Liu, X.J., Wang, J.: Inverse dynamics of the half parallel manipulator
with revolute actuators. Nonlinear Dynamics 50 (2007) 1–12
13. Tsai, L.W.: Solving the inverse dynamics of a Stewart-Gough manipulator by
the principle of virtual work. Journal of Mechanical Design 122 (2003) 3–9
14. Gallardo, J., Rico, J., Frisoli, A., Checcacci, D., Bergamasco, M.: Dynamics
of parallel manipulators by means of screw theory. Mechanism and Machine
Theory 38 (2003) 1113–1131
15. Lopes, A.: A computational efficient approach to the dynamic modeling of 6-dof
parallel manipulators. In: Proc. of the ENOC’08. (2008)

View publication stats

You might also like