Sébastien Briot

Wisama Khalil

Recursive Symbolic Calculation of the Dynamic Model of Flexible Parallel Robots

This paper presents a symbolic and recursive calculation of the dynamic model of flexible parallel robots. In order to reduce the computational time, it is necessary to minimize the number of operators in the symbolic expression of the model. Some algorithms have been proposed for the rigid case, for parallel robots with lumped springs or for serial robots with distributed flexibilities, but to the best of our knowledge, nothing has been developed for parallel robots with distributed flexibilities. This paper aims at filling this gap. In order to minimize the number of operations, the Newton-Euler principle is used and combined with the principle of virtual powers. The Jacobian matrices defining the kinematic constraints are computed using recursive calculations that decrease the number of operators. The proposed algorithm is used to compute the elastodynamic model of a planar parallel robot. The obtained results, compared with those obtained with commercial softwares, show the validity of the proposed algorithm.

I. INTRODUCTION

The way to obtain the full dynamic model of rigid parallel robots has been deeply analyzed [START_REF] Khalil | General solution for the dynamic modeling of parallel robots[END_REF], [START_REF] Ibrahim | Inverse and direct dynamic models of hybrid robots[END_REF], [START_REF] Moon | Applied dynamics[END_REF], however several open questions still arise for the computation of their elastodynamic model. One of them concerns the reduction of the computational time that is generally huge. To decrease the computational cost, one can either (i) decrease the number of variables (using model reduction methods [START_REF] Craig | Coupling of substructures for dynamic analysis[END_REF], [START_REF] Briot | Reduced elastodynamic modelling of parallel robots for the computation of their natural frequencies[END_REF], [START_REF] Craig | Structural dynamics[END_REF] and truncated series of shape functions [START_REF] Blevins | Formulas for natural frequency and mode shape[END_REF]) or (ii) optimize the symbolic computation of the model to minimize the number of operators (similarly to what has been done for rigid robots [START_REF] Khalil | Modeling, Identification and Control of Robots[END_REF], robots with lumped springs [START_REF] Khalil | Modeling of mechanical systems with lumped elasticity[END_REF] or for serial robots with distributed flexibilities [START_REF] Boyer | An efficient calculation of the flexible manipulator inverse dynamics[END_REF]). It is obvious that both methods can also be combined. However, this paper only focuses on the way to optimize the symbolic computation of the elastodynamic model of parallel robots.

Two main approaches are generally used for computing the elastodynamic model (see [START_REF] Dwivedy | Dynamic analysis of flexible manipulators, a litterature review[END_REF] for a large literature review): (i) lumped modeling [START_REF] Khalil | Modeling of mechanical systems with lumped elasticity[END_REF], [START_REF] Kruszewski | The rigid finite element method[END_REF], [START_REF] Wittbrodt | Dynamics of Flexible Multibody Systems[END_REF] and (ii) modeling using distributed flexibilities [START_REF] Boyer | An efficient calculation of the flexible manipulator inverse dynamics[END_REF], [START_REF] Shabana | Dynamics of Multibody Systems[END_REF], [START_REF] Bauchau | Flexible multibody dynamics[END_REF], [START_REF] Stachera | Derivation and Calculation of the dynamics of Elastic parallel manipulators[END_REF], [START_REF] Rognant | A systematic procedure for the elastodynamic modeling and identification of robot manipulators[END_REF], [START_REF] De Jalon | Kinematic and dynamic simulations of multibody systems[END_REF]. The lumped modeling is generally simpler to apply but tends to decrease the accuracy of the model. In [START_REF] Khalil | Modeling of mechanical systems with lumped elasticity[END_REF], the flexibilities are modeled by one degree of freedom (DOF) springs and a systematic procedure for the symbolic computation of the model is proposed. This procedure allow the minimization This work was supported by the French ANR ARROW (ANR 2011BS3 006 01)

1 S. Briot is with the French CNRS and the Institut de Recherche en Communications et Cybernétique de Nantes (IRCCyN), 44321 Nantes France (Sebastien. Briot of the number of operators in the model. In [START_REF] Wittbrodt | Dynamics of Flexible Multibody Systems[END_REF], springs of higher dimension are used, but it is shown that for obtaining good accuracy, the number of elements must be high, thus leading to larger computational time.

On the contrary, using distributed flexibilities allows the increasing of the model accuracy. But it requires higher skills. In [START_REF] Shabana | Dynamics of Multibody Systems[END_REF], [START_REF] Bauchau | Flexible multibody dynamics[END_REF], [START_REF] Rognant | A systematic procedure for the elastodynamic modeling and identification of robot manipulators[END_REF], [START_REF] De Jalon | Kinematic and dynamic simulations of multibody systems[END_REF], the authors proposed some general methodologies based on the Lagrange principle that can be applied to any system. For taking into account the kinematic dependencies such as in the case of close-loop mechanisms, some Jacobian matrices are used. In [START_REF] Stachera | Derivation and Calculation of the dynamics of Elastic parallel manipulators[END_REF], the authors combine the Lagrange principle and the principle of virtual works for derivating the elastodynamic model of parallel robots. However, the main drawback of such general methodologies is that they are not specifically designed for parallel robots and that they do not allow the minimization of the number of operators for the symbolic computation of the model. To the best of our knowledge, a systematic procedure to compute the elastodynamic model (using distributed flexibilities) of parallel robot with a minimum numbers of operators has never been proposed.

The present work aims at filling this gap. In order to minimize the number of operations, the Newton Euler (NE) principle (which is known to reduce the number of operators [START_REF] Khalil | Modeling, Identification and Control of Robots[END_REF], [START_REF] Boyer | Commande des robots manipulateurs, ch. Modélisation et commande des robots souples[END_REF]) is used and combined with the principle of virtual powers (PVP). The Jacobian matrices defined in the PVP are computed using recursive algorithms that decrease the number of operators. For computing the full elastodynamic model of parallel robots, the method proposed in [START_REF] Khalil | General solution for the dynamic modeling of parallel robots[END_REF], [START_REF] Ibrahim | Inverse and direct dynamic models of hybrid robots[END_REF] for rigid robots and in [START_REF] Stachera | Derivation and Calculation of the dynamics of Elastic parallel manipulators[END_REF] for flexible robots is used. This method proposes to:

1) convert the parallel robot into a virtual system defined by (i) a tree-structure robot composed of the kinematic chains of the actual robot for which all joints (passive and active) are considered actuated plus (ii) a free body (the platform which is considered as rigid) (Fig. 1), 2) compute the elastodynamic model of this new virtual system, 3) finally, close the loops by using the PVP. This method is effective, systematic and can be applied to any parallel robots.

The paper is organized as follows. In Section 2, the computation of the generalized NE model of a flexible free body is recalled. Then, in Section 3, the elastodynamic model of the virtual tree structure is developed. Section 4 shows the computation of the elastodynamic model of the actual parallel robot. Section 5 presents some illustrative example. Finally, in Section 6, conclusions are drawn. M j (M 0j )

C 2,1 C 3,1 C m1,1 C m1-1,1 C 1,n C 2,n C 3,n C mn,n C mn-1,n C 1,k C 2,k C 3,k C mk,k C mk-1,k C 1,2 C 2,2 C 3,2 C m2,2 C m2-1,2 (a) Kinematic chain j
M 0j B 0j
B j (B 0j )

A 0j =A j R g R j (t) v j (A j )  j (A j )   dk j (M 0j )q ek j k=1 N j

II. RECALL ON THE GENERALIZED NEWTON-EULER MODEL OF A FLEXIBLE FREE BODY

This section aims at making some brief recall on the way to obtain the generalized NE model of a flexible free body. For further development, the reader is referred to [START_REF] Boyer | An efficient calculation of the flexible manipulator inverse dynamics[END_REF], [START_REF] Boyer | Commande des robots manipulateurs, ch. Modélisation et commande des robots souples[END_REF].

A. Kinematics of a flexible free body

The twist of any free flexible body j at any point M j (Fig. 2(a)) can always be expressed as:

v j (M j ) ω j (M j ) = t j + ω j (A j ) × r j (M j ) 0 + v ej (M j ) ω ej (M j ) (1)
where

t j = v T j (A j ), ω T j (A j )
T is the twist of the local frame fixed on the body j expressed at point A j , v j (A j ) and ω j (A j ) being the translational and rotational velocities, respectively, r j (M j ) is position vector of point M j (of the deformed body) with respect to the local frame, v ej (M j ) and ω ej (M j ) are the translational and rotational velocities due to the body elasticity that can be parameterized as truncated series of Rayleigh-Ritz shape functions:

v ej (M j ) ω ej (M j ) = Φ dj (M 0j ) Φ rj (M 0j ) qej = Φ j (M 0j ) qej (2)
with

Φ d,r j = φ d,r1j , • • • , φ d,rNj j , φ dkj (M 0j
) and φ rkj (M 0j ) being the k-th shape functions for the displacement and the rotation of the flexible body expressed at point M 0j , respectively, and qej = qe1j , • • • , qeNj j T , qekj being the k-th elastic generalized velocity of the body and N j the number of considered shape functions. It should be noted that the vector r j (M j ) of ( 1) can be expressed as:

r j (M j ) = r j (M 0j ) + Φ dj (M 0j )q ej (3)
where r j (M 0j ) is the position of the point M 0j with respect to the local frame and q ej = q e1j , • • • , q eNj j T are the elastic generalized coordinates of the body.

Equations ( 1) to ( 3) define the kinematic model of the flexible free body j. This model is thus parameterized by the following set of variables:

• t j that are the Euler variables characterizing the rigid displacement of the body j at the origin of the local frame, • q ej that are the Lagrange variables characterizing the elastic displacement of the body j. Thus, the kinematics model of a flexible free body is parameterized by 3N j supplementary variables (q ej , qej and qej ) and 6N j shape functions compared with the rigid free body case.

It should be mentioned that this description can be applied to both robot segments and joints, as along as all the shape functions can be defined.

B. Generalized Newton-Euler model of a flexible free body

Skipping all mathematical derivations and referring the reader to [START_REF] Boyer | An efficient calculation of the flexible manipulator inverse dynamics[END_REF], the generalized NE model of a flexible free body can be obtained via the application of the PVP. This model is known to reduce the number of operators and takes the form:

  ∆f cj ∆c cj ∆s cj   =    m j I d3 MS T j MS dej MS j I j MS rej MS T dej MS T rej M eej      γ j (A j ) α j (A j ) qej   +   f inj c inj s inj   +   0 0 K eej q ej   +   f gj c gj s gj   = M j ṫj qej + c j (4)
where

• m j the total mass of the body j • I dk is the k × k Identity matrix,

• I j is the 3 × 3 total inertia matrix of the body j,

• MS j is the 3 × 3 matrix containing the first moments of inertia of the body j, • M eej is the N j × N j elastic mass matrix of the body j, • MS dej and MS rej are 3 × N j matrices,

• ṫj = γ j (A j ) T , α j (A j ) T T is the acceleration screw of frame j expressed at point A j with γ j (A j ) and α j (A j ) the translational and rotational accelerations of the local frame fixed on the body j at point A j , respectively, • f inj and c inj are vectors of the inertial force and torques, respectively, • s inj is the vector of the generalized elastic forces, • f gj and c gj are vectors of the gravity force and torques plus the other external forces, respectively,

• s gj is the vector of the generalized elastic forces due to gravity, • K eej the stiffness matrix of the body j, • M j is the global mass matrix of the body j, • c j is the global vector of the centrifugal, Coriolis, gravity and elastic forces of the body j,

• ∆f cj = f cj -f cj+1 and ∆c cj = c cj -c cj+1 -r j (A j+1 )×
f cj+1 are the total sum of forces and torques transmitted by the joints, f cj and c cj being the reaction forces and torques in joint j, respectively,

• ∆s cj = -Φ T dj (B 0j )f cj+1 -Φ T rj (B 0j
)c cj+1 is the total sum of the elastic generalized forces transmitted by the joints. For limiting the size of the paper, the expressions of these terms are not given here. However, the reader can refer to [START_REF] Boyer | An efficient calculation of the flexible manipulator inverse dynamics[END_REF] for more details.

III. COMPUTATION OF THE ELASTODYNAMIC

MODEL FOR THE VIRTUAL SYSTEM Let us consider a parallel robot composed of one rigid fixed base (denoted as the element 0), one rigid moving platform and n legs, each leg being a serial kinematic chain composed of m i -1 elements linked by m i joints (revolute, prismatic or even fixed joints -i = 1, ..., n) (Fig. 1(a)). The actuated variables are denoted by q a and the leg passive variables by q p . The platform coordinates are denoted as x p . The size n a of q a must be equal or superior to the number of degrees of freedom (DOF) of the parallel robot. The number of shape functions by element is denoted as N ij (j = 1, ..., m i -1). As a result, there are n e = n i=1 mi-1 j=1 N ij elastic variables grouped in the vector q e . All the active, passive and elastic variables are grouped into the vector q t = q T a , q T p , q T e T .

A. Application of the principle of virtual powers

Considering the link j of leg i (denoted in the following as the element ij), the PVP states that:

t * T ij q * T eij ∆f T cij ∆c T cij ∆s T cij T = q * T t τ tij 0 ne (5)
where the symbol * stands for a virtual velocity, τ tij is the vector of the virtual input torques of the tree structure (Fig. 1(b)) due to the movement of the link ij and 0 ne a null vector of dimension n e . The twist t * ij and generalized elastic velocities q * eij are linked to the generalized velocities q * t by the relation:

t ij qeij = J ij qt (6)
where J ij is the Jacobian matrix of the element ij whose expression will be given in the following section.

Eq. ( 5) can thus be rewritten as:

q * T t J T ij ∆f T cij ∆c T cij ∆s T cij T = q * T t τ tij 0 ne (7)
which lead to, for any virtual velocity q * t :

τ tij 0 ne = J T ij ∆f T cij ∆c T cij ∆s T cij T (8)
Thus, now considering all the links of the robot, it comes that

τ t = i,j τ tij 0 ne = i,j J T ij   ∆f cij ∆c cij ∆s cij   = i,j J T ij M ij ṫij qeij + c ij (9)
where τ t is the vector of the tree-structure input efforts.

In the next section, recursive algorithms for the computation of the vectors t ij , ṫij and of the Jacobian matrices J ij are developed.

B. Recursive computation of the velocities and Jacobian matrices

Let us consider the Fig. 2 describing the displacement of the element j. From (1), it comes that

v j (B j ) ω j (B j ) = t j + ω j (A j ) × r j (B j ) 0 + v ej (B j ) ω ej (B j ) (10)
If an element j + 1 is linked at B j by an actuated joint moving at a velocity qj+1 (Fig. 2(b) -if the joint is a fixed joint, qj+1 = 0), it comes that:

t j+1 = v j (B j ) ω j (B j ) + qj+1 a j+1 (11)
where a j+1 is the unit twist describing the motion of the actuator [START_REF] Khalil | Modeling, Identification and Control of Robots[END_REF]. As a result, for the element ij of the global robot, it can be demonstrated that (in the following expressions, the preceding superscript indicate the frame in which the vector expression is given) [START_REF] Boyer | An efficient calculation of the flexible manipulator inverse dynamics[END_REF]:

ij t ij = ij T i(j-1) i(j-1) t i(j-1) + ij R i(j-1) Φ i(j-1) (A ij ) qe i(j-1) + qij ij a ij (12)
which can also be written as:

ij t ij = J tij qt (13)
with

J tij = ij T i(j-1) J t i(j-1) + Φ qeij + A ij (14)
where

Φ qeij = 0 • • • ij R i(j-1) Φ i(j-1) (A ij ) • • • 0 A ij = 0 • • • ij a ij • • • 0 (15)
In the matrix Φ qeij , the term ij R i(j-1) Φ i(j-1) (A ij ) is located at the columns corresponding to the variables qe i(j-1) and, for the matrix A ij , the term ij a ij is located at the column corresponding to the variable qij .

In the previous expressions, matrix Φ i(j-1) is the matrix containing all shape functions for the element i(j -1) and:

ij R i(j-1) = ij Rot i(j-1) 0 0 ij Rot i(j-1) ij T i(j-1) = ij R i(j-1) I d6 - 0 i(j-1) ri(j-1) (A ij ) 0 0 ( 16
)
where ij Rot i(j-1) is the rotation matrix between frames ij and i(j -1), i(j-1) ri(j-1) (A ij ) is the cross product matrix associated with the vector i(j-1) r i(j-1) (A ij ), i.e the position of point A ij in the frame i(j -1).

Finally, the global Jacobian matrix J ij of ( 6) can be computed as:

J ij = J tij O qeij (17)
where O qeij is defined such that

qeij = O qeij qe

C. Recursive computation of the accelerations

Differentiating [START_REF] Boyer | An efficient calculation of the flexible manipulator inverse dynamics[END_REF], it can be shown that [START_REF] Boyer | An efficient calculation of the flexible manipulator inverse dynamics[END_REF]:

ij ṫij = ij T i(j-1) i(j-1) ṫi(j-1) + qij j a ij + ij h ij + ij R i(j-1) Φ i(j-1) (A ij )q e i(j-1) (18)
where the expression of ij h ij is given in [START_REF] Boyer | An efficient calculation of the flexible manipulator inverse dynamics[END_REF].

Eq. ( 18) can be then put into the form:

ij ṫij = J tij qt + ij g ij (19)
with ij g ij = ij h ij + ij T i(j-1) i(j-1) p i(j-1) (20)
initialized with i0 p i0 = 0 if the base is fixed. Thus,

ij ṫij qeij = J tij O qeij qt + ij g ij 0 = J ij qt + ij g s ij (21)

D. Elastodynamic model of the virtual system

Introducing (21) into (9) leads to:

τ t 0 ne = i,j J T ij M ij J ij qt + c s ij ( 22
)
where

c s ij = J T ij c ij + M ij ij g s ij ( 23
)
The NE equations for the rigid moving platform are given by [START_REF] Ibrahim | Inverse and direct dynamic models of hybrid robots[END_REF]:

f p = M p ṫp + c p ( 24
)
where f p are the platform reaction forces expressed at the platform local frame origin, M p is the platform mass matrix, ṫp is the platform acceleration screw and c p the centrifugal, Coriolis, gravity effects and external efforts applied on the platform.

Finally, the global elastodynamic model of the virtual structure can be put into the form:

  τ t 0 ne f p   = i,j J T ij M ij J ij M p qt ṫp + c s ij c p = M s t qt ṫp + c s t ( 25
)
Adding the contributions of the motor inertia and friction effects [START_REF] Khalil | Modeling, Identification and Control of Robots[END_REF]:

  τ t 0 ne f p   = M s t qt ṫp + c s t + I t 0 0 0 qt ṫp + F v qt 0 + F s sign ( qt ) 0 = M t qt ṫp + c t (26)
where I t (F v , F s , resp.) is a diagonal matrix whose jth element corresponds to the value of the inertia (viscous and Coulomb friction coefficients, resp.) of joint j (the jth element is equal to zero if it corresponds to an elastic coordinate).

IV. COMPUTATION OF THE ELASTODYNAMIC MODEL OF PARALLEL ROBOTS

To compute the elastodynamic model of the actual parallel robot, the loops must be closed by using the PVP. This is developed in the next section.

A. Application of the principle of virtual powers

Considering the actual robot, the PVP states that:

qT * t t T * p   τ t 0 ne f p   = qT * a qT * e τ 0 ne (27)
where t p is the platform twist and τ the actual actuator input efforts. The velocities t p and qt are linked to the actual generalized velocities q = qT a , qT e T by the relation:

qT t t T p T = J q (28)
where J is the global Jacobian matrix of the robot whose expression will be given in the following section. Introducing (28) into (27) leads to

qT * a qT * e J T   τ t 0 ne f p   = qT * a qT * e τ 0 ne (29)
or also, for any q * a and q * e , τ

0 ne = J T τ T t 0 T ne f T p T (30)

B. Computation of the passive joints and platform velocities and of the global Jacobian matrix

The global Jacobian matrix can be computed using the following method:

1) Express, in the based frame, the twist 0 t imi of the virtual end-effector of each serial kinematic chain (points C mi,i in Fig. 1(a)) as a function of qt using (12-14); 0 t imi = J ti qt 2) Express, in the based frame, the twist 0 t imi of the virtual end-effector of each serial kinematic chain as a function of t p ; 0 t imi = J pi t p 3) Then assemble the two expressions and rearrange it in order to obtain the global Jacobian matrix J such as:

   0 t 1m1 . . . 0 t nmn    = J p t p = J t qt = J ta J tp J te   qa qp qe   (31)
If the robot is isostatic, (31) can be rewritten as:

-J tp J p qp t p = J ta J te qa qe (32)
or also:

qp t p = -J tp J p -1 J ta J te qa qe = J s 11 J s 12 J s 21 J s 22 qa qe (33)
The case where the robot is overconstrained is not detailed here for reasons of text compactness, but a method similar to the one proposed in [START_REF] Germain | An efficient method for the natural frequency computation of parallel robots[END_REF] can be used.

Finally,

qt t p =     qa qp qe t p     =     I 0 J s 11 J s 12 0 I J s 21 J s 22     qa qe = J q (34)

C. Computation of the passive joints and platform accelerations

Differentiating (31) with respect to time and using (19) leads to:

J p ṫp + Jp t p = J t qt + 0 g T 1m1 , • • • , 0 g T nmn T = J t qt + g tot (35)
Rearranging leads to:

qp ṫp = J s q + -J tp J p -1 g tot -Jp t p = J s q + b 1 b 2 (36) Finally:
qt ṫp = Jq + 0 b T 1 0 b T 2 T = Jq + b (37)

D. Elastodynamic model of the actual parallel robot

Introducing (37) into (30) leads to

τ 0 ne = J T M t Jq + J T (c t M t b) = Mq + c (38)
which is the full elastodynamic model of the parallel robot.

E. Discussion

In order to finally obtain the symbolic equations for the model with the minimum number of operations, the following method is used. First, the rigid kinematics of each element are modeled using the modified Denavit-Hartenberg notations [START_REF] Khalil | Modeling, Identification and Control of Robots[END_REF]. If the link ij into consideration is flexible, 3N ij supplementary elastic variables are introduced (q ei j , qeij and qeij ) in combination with 6N ij shape functions. Then, the previously developed equations are used. For each computation, the elements of a vector or a matrix containing at least one mathematical operation are replaced by an intermediate variable. This variable is written in an output file which contained the model. The elements that do not contain any operations are not modified. The obtained vectors

x 0 y 0 z 0 A 1 A 2 P(x,y) q 1 q 4 q 2 q 3 q 5
Fig. 3. The PRRRP mechanism.

and matrices are propagated in the subsequent equations. Consequently, at the end, the dynamic model is obtained as a set of intermediate variables. Those that have no effect on the desired output (τ and qe in the case of the inverse model, qa and qe for the direct model) can be eliminated by scanning the intermediate variables from the end to the beginning. With this procedure, it is also possible to know the exact number of operators necessary for the computation of the model. This algorithm has been successfully implemented with Mathematica and is used in the next section for computing the elastodynamic model of a flexible planar parallel robot.

V. ILLUSTRATIVE EXAMPLE

To illustrate the previous equations, a flexible planar PRRRP mechanism is modelled (Fig. 3 -R stands for a passive revolute joint and P for an active prismatic joint). Its two actuated prismatic pairs are parallel. Its modified Denavit-Hartenberg parameters are given in Table I, where l = A 1 P = A 2 P and d is the distance between the two prismatic axes. A mass of 1 kg is added on the end-effector (body 3, whose origin is point P ) and each actuator mass is equal to 1 kg. The gravity is directed along z 0 . The friction effects are not introduced into the model. The beams are modelled as planar three dimension finite elements [START_REF] Shabana | Dynamics of Multibody Systems[END_REF] (one element, i.e. three elastic coordinates by beam). Their cross sections are full squares of edge length equal to 2 mm and the used material is aluminum. Of course, with only two beams, the model accuracy with respect to the reality will be low. However, the aim of this example if to cross validate our model with commercial softwares.

a(j) µ ji σ ji γ ji b ji α ji d ji θ ji r ji 1 0 1 1 0 0 0 0 0 q 1 2 1 0 0 0 0 π/2 0 q 2 0 3 2 0 0 0 0 0 l = 0.4m q 3 0 4 0 1 1 0 0 0 a = 0.6m 0 q 4 5 4 0 0 0 0 π/2 0 q 5 0
The model is thus calculated with Mathematica applying the proposed methods and then solved using Matlab/Simulink. First, the six natural frequencies of the robot are computed and compared for five different robot configurations with the commercial software RDM6 (software able to compute the structure natural frequencies [21]). As the two prismatic axes are parallel, the robot configuration can be defined by only one parameter, here q 4 (q 1 is set to 0). The results are shown in Table II. The error is inferior to 0.1 %: the accuracy of natural frequency computation is very good compared with RDM6.

Then, the full model is compared with a model designed with ADAMS/Flex in which the beams are modelled via a series of discrete flexible links (15 elements by beam). A movement during 0.75s between the intial and final configurations q 10 = q 40 = 0 and q 1f = 0.1m, q 4f = 0.2m is achieved using a bang-bang acceleration profile [START_REF] Khalil | Modeling, Identification and Control of Robots[END_REF]. The full model is composed of 521 '+' or '-' operators, and of 611 '*' or '/' and runs in about 100 seconds (about 20 min for ADAMS) on a processor Pentium 2.7GHz (8Go of RAM). The resulting velocity of the end-effector is drawn in Fig. 4. It can be observed that the two models give similar results. The observed differences are due to the different approaches used in the beam modelling and to the differences between the ADAMS and Matlab solvers.

VI. CONCLUSIONS

This paper has presented a symbolic and recursive calculation of the dynamic model of flexible parallel robots. In order to reduce the computational time, the number of operators during the symbolic calculation of the model has been minimized. In order to achieve this goal, the Newton-Euler principle was used and combined with the principle of virtual powers. The Jacobian matrices defining the kinematic constraints have been computed using some recursions that decrease the number of operators. Using such method, both link and joint flexibilities can be taken into account.

The proposed algorithm was used to compute the elastodynamic model of a planar parallel robot. The obtained model has been compared with models obtained with commercial softwares and the obtained results have shown its validity.

Fig. 1 .

 1 Fig. 1. A general parallel robot.

BFig. 2 .

 2 Fig. 2. Schematics of the flexible elements into consideration.

  j

Fig. 4 .

 4 Fig. 4. Velocity of the robot end-effector (black curve: computed model; grey curve: ADAMS model).

  @irccyn.ec-nantes.fr)

	2 W.	Khalil	is	with	the	LUNAM,	Ecole	Centrale
	de	Nantes	and	the	IRCCyN,	44321	Nantes	France
	(Wisama.

Khalil@irccyn.ec-nantes.fr)

TABLE II COMPARISON

 II OF NATURAL FREQUENCIES OF THE PRRRP MECHANISM COMPUTED WITH THE PROPOSED MODEL AND RDM6.

						q4 (m)
	(Hz)			-0.5	-0.25	0	0.25	0.5
			RDM6	31.416	31.454	31.452	31.454	31.416
	f1		model	31.414	31.454	31.454	31.454	31.414
			% error	0.006	0.000	0.006	0.000	0.006
			RDM6	31.457	31.462	31.452	31.462	31.457
	f2		model	31.455	31.455	31.455	31.455	31.455
			% error	0.006	0.022	0.010	0.022	0.006
			RDM6	40.777	109.650	124.390	109.650	40.777
	f3		model	40.799	109.664	124.389	109.664	40.799
			% error	0.054	0.013	0.001	0.013	0.054
			RDM6	144.150	144.050	140.750	144.050	144.150
	f4		model	144.139	144.041	140.757	144.041	144.139
			% error	0.008	0.006	0.005	0.006	0.008
			RDM6	144.190	144.220	144.210	144.220	144.190
	f5		model	144.181	144.201	144.225	144.201	144.181
			% error	0.006	0.013	0.010	0.013	0.006
			RDM6	183.600	152.960	144.480	152.960	183.600
	f6		model	183.588	152.949	144.496	152.949	183.588
			% error	0.007	0.007	0.011	0.007	0.007
	0.12	x (m/s) .
	0.1
	0.08
	0.06
	0.04
	0.02
	0
	-0.02 0	0.2 0.4 0.6 0.8	1
				Time (s)


Off-line dynamic identification requires the use of a model linear in relation to the robot dynamic parameters and the use of linear least squares technique to calculate the parameters. Most of time, the used model is the Inverse Dynamic Identification Model (IDIM). However, the computation of its symbolic expressions is extremely tedious. In order to simplify the procedure, the use of the Power Identification Model (PIM), which is dramatically simpler to obtain and that contains exactly the same dynamic parameters as the IDIM, was previously proposed. However, even if the identification of the PIM parameters for a 2 degrees-offreedom (DOF) planar serial robot was successful, its fails to work for 6 DOF industrial robots. This paper discloses the reasons of this failure and presents a methodology for the identification of the robot dynamic parameters using the PIM. The method is experimentally validated on an industrial 6 DOF Stäubli TX-40 robot.

I. INTRODUCTION

EVERAL schemes have been proposed in the literature to identify the dynamic parameters of robots [START_REF] Gautier | Identification of robots dynamics[END_REF]- [START_REF] Lu | Experimental determination of dynamic parameters of robotic arms[END_REF]. Most of the dynamic identification methods have the following common features: -the use of a model linear in relation to the dynamic parameters, -the construction of an over-determined linear system of equations obtained by sampling the model while the robot is tracking some trajectories in closed-loop control, -the estimation of the parameter values using least squares techniques (LS). The experimental works have been carried out either on prototypes in laboratories or on industrial robots and have shown the benefits in terms of accuracy in many cases.

To carry out the identification of the dynamic parameters, the Inverse Dynamic Identification Model (IDIM) is usually used. However, the computation of its symbolic expressions is extremely tedious. In order to simplify the procedure, the use of the Power Identification Model (PIM), which is dramatically simpler to obtain and that contains exactly the same dynamic parameters as the IDIM, was previously proposed in [START_REF] Gautier | Dynamic identification of robots with power model[END_REF]. The PIM was used by one of the authors of Manuscript received September 17, 2012. This work has been partially funded by the French ANR project ARROW (ANR 2011 BS3 006 01).

M. Gautier is with the IRCCyN and with the LUNAM, University of Nantes, 44321 Nantes France (phone: +33(0)240376960; fax: +33(0)240376930; e-mail: Maxime.Gautier@irccyn.ec-nantes.fr).

S. Briot is with the French CNRS and the IRCCyN, 44321 Nantes France (e-mail: Sebastien.Briot@irccyn.ec-nantes.fr).

the present paper for the identification of the dynamic parameters of 2 degrees-of-freedom (DOF) planar serial robot [START_REF] Gautier | Dynamic identification of robots with power model[END_REF] but its application to a 6-DOF serial industrial robot was not successful and the results never published.

The reasons of this failure are disclosed in this paper. It will be shown that the PIM is much more sensitive to the choice of the exciting trajectories than the IDIM. In order to show the effectiveness of the PIM for the identification of inertial parameters of 6 DOF serial robots, the method is experimentally validated on an industrial Stäubli TX-40 robot and compared with the usual IDIM procedure.

The paper is organized as follows: sections 2 and 3 make some brief recalls on the computation of the IDIM and PIM. Section 4 discloses the identification procedure. Section 5 presents the experimental validations. Finally, section 6 gives the conclusion.

II. THE USUAL INVERSE DYNAMIC MODELS

The inverse dynamic model (IDM) of a rigid robot composed of n moving links calculates the    n 1 motor torque vector idm τ , as a function of the generalized coordinates and their derivatives. It can be obtained from the Newton-Euler or the Lagrange equations [START_REF] Khalil | Modeling, identification and control of robots[END_REF], [START_REF] Featherstone | Dynamics[END_REF]. It is given by the following relation: = ( ) + ( , )

idm τ M q q N q q   (1)
where q , q  and q  are respectively the    n 1 vectors of generalized joint positions, velocities and accelerations, ( ) M q is the    n n robot inertia matrix, and ( , )

N q q  is the    n 1 vector of centrifugal, Coriolis, gravitational and friction forces/torques.

It is known that the dynamic model of any manipulator with n actuators can be linearly written in term of a  

1 n  vector of standard parameters st  [1], [4], [5]: ( ) ( )     idm st st st
q,q,q, IDM q,q,q    

(2) where: ...

T T T n T st st st st        
 . For rigid robots, there are 14 standard parameters by link and joint. For the joint and link j, these parameters can be regrouped into the (14×1) vector j st  [5]:

       (3)
where:

j j j j j j
XX , XY , XZ , YY , YZ , ZZ are the 6 components of the inertia matrix of link j at the origin of frame j . The identifiable parameters are the base parameters which are the minimum number of dynamic parameters from which the dynamic model can be calculated. They are obtained from the standard inertial parameters by regrouping some of them by means of linear relations [START_REF] Mayeda | Base parameters of manipulator dynamic models[END_REF], which can be determined for the serial robots using simple closed-form rules [START_REF] Gautier | Direct calculation of minimum set of inertial parameters of serial robots[END_REF], [START_REF] Khalil | Modeling, identification and control of robots[END_REF], or by numerical method based on the QR decomposition [START_REF] Gautier | Numerical calculation of the base inertial parameters[END_REF].

The minimal dynamic model can be written using the b n base dynamic parameters  as follows:

( )

   idm IDM q,q,q   (4)
where IDM is a subset of independent columns of st IDM which defines the identifiable parameters. (4) takes the following block-triangular form:

                                                                1 1,1 1,2 1,n 1 1,n 1 2 2,2 2,n 1 2,n 2 n 1 n 1,n 1 n 1,n n 1 n n,n n D D D D 0 D D D 0 0 D D 0 0 0 D            (5)
where  i is the input torque of actuator i, j  the base dynamic parameters of the joint j and D ij the row vector of matrix IDM corresponding to the actuator i and the parameters j

 (i, j = 1, …, n).
Because of perturbations due to noise measurement and modelling errors, the actual force/torque  differs from idm τ by an error, e , such that: ( )

       idm e IDM q,q,q e   ( 6
)
where  is calculated with the drive chain relations:

1 1 0 0 0 0 0 0 n n v g v g v g                           (7) v  is the ( ) n n
 matrix of the actual motor current references of the current amplifiers ( j v  corresponds to actuator j) and g  is the ( 1) n  vector of the joint drive gains ( j g  corresponds to actuator j) that is given by a priori manufacturer's data or identified [START_REF] Corke | In situ measurement of robot motor electrical constants[END_REF] [START_REF] Gautier | Global Identification of Drive Gains Parameters of Robots Using a Known Payload[END_REF]. Equation ( 6) represents the Inverse Dynamic Identification Model (IDIM).

III. THE POWER MODEL

In order to decrease the complexity of computing the symbolic expressions for the identification process, a model based on the energy has been proposed [START_REF] Gautier | Dynamic identification of robots with power model[END_REF], [START_REF] Reyes | Experimental Evaluation of Identifiation Schemes on Direct Drive Robot[END_REF] for the identification of a 2 DOF planar serial robot. This model can be obtained by calculating the power P pm of the system:

       T pm f d P H q, q q dt   (8)
where  

H q,q  is the total energy of the system calculated using the recursive equations proposed in [START_REF] Khalil | Modeling, identification and control of robots[END_REF] and  f being the vector of the friction torques, i.e.

   

     T f f 1 f 2 f n , ,..., ,      fj j j j j offj
Fv q Fs si gn( q )  

.

The relation ( 8) can be expressed as a linear form with respect to the base dynamic parameters of the robot:

                                1 2 1 2 n pm n d d P h q,q h ,h ,...,h dh dt dt   (10)
where   h q,q  is the    b 1 n jacobian matrix of the energy with respect to the base dynamic parameters, dh the    b 1 n jacobian matrix of the power with respect to the base dynamic parameters and j h the vector of matrix h corresponding to the parameters j

 (j = 1, …, n).
It must be mentioned here that, due the serial architecture of industrial robots, the vector j h depends on joint velocities 1 q  to j q  only and  j h 0 (as well as j h , j dh being the vector of matrix dh corresponding to j  ) if joints 1 to j are fixed. This intrinsic property of matrices h and dh is crucial for the following of the paper. Because of perturbations due to noise measurement and modelling errors, the robot power P differs from pm P by an error, e , such that:

     pm P P e dh e ( 11
)
where P is calculated with:

  T P q  (12) (11) represents the Power Identification Model (PIM).
The PIM is a scalar equation whose symbolic expressions are easier to derive than the vector expressions of the IDIM.

IV. THE IDENTIFICATION PROCEDURE

A. Identification of the dynamic parameters

The off-line identification of the base dynamic parameters  is considered, given measured or estimated off-line data for τ or P and   q, q, q   , collected while the robot is tracking some planned trajectories.

For the IDIM, ( ) q, q, q   in (6) are estimated with ( ) ˆq, q, q   , respectively, obtained by band-pass filtering the measure of q [START_REF] Gautier | Dynamic identification of robots with power model[END_REF]. For the PIM, ( ) q, q  and matrix dh in [START_REF] Mayeda | Base parameters of manipulator dynamic models[END_REF] are estimated with ( ) q, q  and d h , respectively, obtained by band-pass filtering the measure of q and values of  

h q,q  .
The principle is to sample the identification models ( 6) or [START_REF] Gautier | Numerical calculation of the base inertial parameters[END_REF]



(for the PIM). Similarly, W concatenates either all matrices IDM of (4) (for the IDIM) or all matrices dh of (11) (for the PIM).

Using the base parameters and tracking "exciting" reference trajectories, a well-conditioned matrix W is obtained. The LS solution χ of ( 14) is given by:

    1 T T χ W W W Y W Y     (15)
Standard deviations i   , are estimated assuming that W is a deterministic matrix and  , is a zero-mean additive independent Gaussian noise, with a covariance matrix C  , such that:

T 2 ( ) r C E ρρ I      (16)
E is the expectation operator and I r , the ( ) r r  identity matrix. An unbiased estimation of the standard deviation

  is: 2 2 ( ) Ŷ -W r b      (17)
The covariance matrix of the estimation error is given by:

T 2 T 1 [( )( ) ] ( ) ˆˆĈ E χ χ χ χ W W         . ( ) i 2 ˆĈ i,i      is the i th diagonal coefficient of ˆĈ  (18)
The relative standard deviation ri %   is given by:

100 ri i ˆˆi %       , for i  ≠ 0 ( 19
)
The ordinary LS (OLS) can be improved by taking into account different standard deviations on equations errors [START_REF] Gautier | Dynamic identification of robots with power model[END_REF]. In the case of the IDIM, each equation of joint j in ( 14) is weighted with the inverse of the standard deviation of the error calculated from OLS solution of the equations of joint j, in order to obtain the following system of equations that conserves the block-triangular form of (5):

1 1 1,1 1,2 1,n 1 1,n 1 τ τ τ τ 2 2 2 ,2 2 ,n 1 2 ,n 2 τ τ τ n 1 n 1 n 1,n 1 n 1,n n 1 τ τ n n n, n n τ Y ( τ ) W W W W χ Y ( τ ) 0 W W W χ Y Y (τ ) 0 0 W W χ Y ( τ ) 0 0 0 W χ                                                                              (20)
where j j Y ( τ )  regroups the sampled and filtered values of the joint j input torques and j ,k W  regroups the sampled and filtered values of vectors D j,k of (5).

For the PIM, the observation matrix has no blocktriangular form:

χ χ Y ( P ) W W W W W χ χ                                (21)
where P pm Y ( P ) regroups the sampled and filtered values of the power pm P and k P W regroups the sampled and filtered values of vectors k dh of (10). Furthermore, for both the IDIM and PIM, if the data collected on different trajectories are concatenated in [START_REF] Reyes | Experimental Evaluation of Identifiation Schemes on Direct Drive Robot[END_REF], the equations corresponding to one given trajectory can be weighted using the same procedure, and that for all the concerned trajectories.

This weighting operation normalises the errors in ( 14) and gives the weighted LS (IDIM-WLS or PIM-WLS) estimation of the parameters.

B. Discussion about the exciting reference trajectories

Due to the intrinsic nature of serial industrial robots, the inertial parameters of the last joints (especially, those of the wrist) are the most difficult to identify. Indeed, the wrist elements are lighter and if their corresponding inertial parameters are melt in the same equation with those of the first joints, they will be poorly identified.

This problem is partially solved when using the IDIM procedure thanks to the block-triangular structure of the observation matrix shown in (20). The LS solution of (20) minimizes the squared norm of the error   :

2 2 1 1 , 1 1 1 , n n τ τ 2 2 n 1 n 1,n 1 n 1 n 1,n n n n,n n τ τ τ Y W χ ... W χ ... Y W χ W χ Y W χ                     (22)
where the term , etc. Considering now the PIM, it can be directly observed that the observation matrix of (21) doesn't have a blocktriangular form and that the squared norm of the error P

       j j , j j j , n n j τ τ Y W χ ... W
 is:      2 2 1 1 n n P P P P Y W χ ... W χ (23)
As the wrist links are lighter, the contribution of the wrist actuators to the total robot power is quite small with regards to the shoulder power, i.e. for a 6 DOF robot,

W χ W χ W χ W χ W χ W χ     
. Thus, the LS solution of (21) may lead to a poor estimation of the wrist parameters.

Minimizing (23) using the PIM-WLS procedure should be compared with the IDIM-WLS procedure using only the joint 1 data in (22), i.e. the squared norm of the error for joint 1,

       2 2 1 1 1,1 1 1,n n τ τ Y W χ ... W χ . ( 24
)
This result will be shown in the next section. This problem can be avoided by creating a block-triangular regressor thanks to the use of optimal experimental trajectories. Using the property of matrices dh mentioned in section III for a n-DOF industrial serial robot, the blocktriangular form of W can be obtained by carrying out at least n different types of trajectories that cancels some terms of W: 1. Trajectories with all joints moving altogether 2. Trajectories with joint 1 fixed (  1 q 0  ), all the other joints (from 2 to n) moving altogether 3. Trajectories with joints 1 and 2 fixed (  

1 2 q q 0  
), all the other joints (from 3 to n) moving altogether … n. Trajectories with joints 1 to n-1 fixed (   1 2 q q ...

     n 1 q 0 
), joint n moving only. Using these trajectories, the observation matrix built with the PIM takes block-triangular form. In the next section, the PIM-WLS identification procedure is compared with the IDIM-WLS procedure in order to show its efficiency.

V. CASE STUDY

A. Description of the TX 40 kinematics

The Stäubli TX-40 robot (Fig. 1) has a serial structure with six rotational joints. Its kinematics is defined using the modified Denavit and Hartenberg notation (MDH) [START_REF] Khalil | A new geometric notation for open and closed loop robots[END_REF]. In this notation, the link j fixed frame is defined such that the j z axis is taken along joint j axis and the j x axis is along the common normal between j z and j 1 z  (Fig. 1). The geometric parameters defining the robot frames are given in Table 1. The payload is denoted as the link 7. The parameter 0 j   , means that joint j is rotational, j  and j d parameterize the angle and distance between j 1 z  and j z along j 1 x  , respectively, whereas j  and j r parameterize the angle and distance between j 1 x  and j x along j z , respectively. For link 7, 2 j   means that the link 7 is fixed on the link 6. Since all the joints are rotational then j  is the position variable q j of joint j . The TX-40 robot is characterized by a coupling between the joints 5 and 6 such that:  is the velocity of the rotor of motor j, j q  is the velocity of joint j, N j is the transmission gain ratio of axis j, τ cj is the motor torque of joint j, taking into account the coupling effect on the motor side, τ rj is the electro-magnetic torque of motor j. The coupling between joints 5 and 6 also adds the effect of the inertia of rotor 6 and new viscous and Coulomb friction parameters Fvm 6 and Fcm 6 , to both τ c5 and τ c6 .

                   5 5 5 6 6 6 6 qr N 45 0 q qr N 32 N 32 q     ,                           
It is possible to write: sign( ) Ia q Fvm q Fcm q q q      where τ j already contains the terms   j j j j j j ( Ia q Fv q Fc sign( q ))   

, for j=5 and 6 respectively, with   Ia N Ja (26)

Ja j is the moment of inertia of rotor j.

(26) is introduced into (4), [START_REF] Gautier | Dynamic identification of robots with power model[END_REF] to obtain the IDIM and PIM.

B. Identification results

In this section, the identification procedure using PIM is compared with the usual method using IDIM. Three cases will be tested: -Case 1: the robot dynamic parameters are identified with usual IDIM-WLS, using a single exciting trajectory with all joints moving simultaneously; -Case 2: the robot dynamic parameters are identified with usual IDIM-WLS, using optimal trajectories presented in section IV.B; -Case 3: the robot dynamic parameters are identified with PIM-WLS using the same trajectory as for Case 1; -Case 4: the robot dynamic parameters are identified with PIM-WLS using the same trajectory as for Case 2. Some small parameters remain poorly identifiable because they have no significant contribution in the joint torques. These parameters have no significant estimations and can be cancelled in order to simplify the dynamic model. Thus parameters such that the relative standard deviation   ri % is too high are cancelled to keep a set of essential parameters of a simplified dynamic model with a good accuracy [START_REF] Pham | Essential parameters of robots[END_REF]. The essential parameters are calculated using an iterative  its relative value (%). %e i1 is the relative difference (%) between the parameters identified in Case 1 and those identified with the PIM-WLS. %e i2 is the relative difference (in %) between the parameters identified in Case 2 and those identified with the PIM-WLS.

  , MZ are the 3 components of the first moment of link j , j M is the mass of link j , j Ia is a total inertia moment for rotor and gears of actuator j .

Fig. 1 .

 1 Fig. 1. Link frames of the TX-40 robot

  χ is the norm of the error on the estimation of the joint j torque. Thus, minimizing the squared norm of   is a stepwise coupled minimization of each squared norm of error j

Dynamic Parameter Identification of a 6 DOF Industrial Robot using Power Model

	j st	j XX XY XZ YY YZ ZZ MX MY MZ M Ia Fv Fc j j j j j j j j j j j j off	j	T
		Maxime Gautier and Sébastien Briot
	S

TABLE I GEOMETRIC

 I PARAMETERS OF THE TX-40 ROBOT WITH THE PAYLOAD j

Here, for all identification procedures, r  is fixed to 20. The obtained results are shown in Table 2. The parameters with the subscript R stand for the regrouped parameters [START_REF] Gautier | Direct calculation of minimum set of inertial parameters of serial robots[END_REF]. The results show that, in general, the parameters identified with PIM-WLS and optimized trajectories (Case 4) are closer to the parameters identified with IDIM-WLS (Cases 1 and 2). Some difference exists, but the parameters that have the largest differences %e ij are those that have the largest relative standard deviation. It can also be observed that a larger number of parameters can be estimated when IDIM-WLS uses the trajectories optimized for PIM-WLS (Case 2), compared with the IDIM-WLS results obtained with a single trajectory (Case 1).

Table 3 presents the mean of the relative differences %e ij between the parameter values estimated with PIM-WLS and IDIM-WLS. For the parameters estimated in Case 4, the mean of the difference with respect to those estimated in Cases 1 and 2 is stable and about 22%. For the parameters estimated in Case 3, this value is from 6 times higher.

The relative error norm that gives an estimation of the quality of the identification procedure is also shown in the Table 3. Both PIM-WLS methods have a good identification quality, i.e. the identified parameters well estimate the robot power. However, only the IDIM-WLS and PIM-WLS procedure with optimized trajectories can correctly estimate the input torques (Fig. 2, 3 and4; the reconstructed torques for Case 1 are not shown because the curves are very similar to those of Case 2), even if IDIM-WLS shows better results.

Finally, a last IDIM-WLS procedure is carried out to identify the robot parameters using the equation of joint 1 only (denoted as Case 5). The relative norm of error for each case of identification is shown in Table 4. The results show that, as mentioned in section IV.B., the torques are poorly reconstructed using both PIM-WLS with a single trajectory and IDIM-WLS with the equations of joint 1 only, i.e. without the use of a block-triangular observation matrix.

Moreover, the quality of reconstruction is twice better with IDIM-WLS than with PIM-WLS. This can partially be explained by the fact that vector Y P in (21) is correlated with the observation matrix W P as they both depend of the estimated values of q  in which there is noise. A possible solution to this problem is to adapt the procedure DIDIM [START_REF] Gautier | DIDIM: A New Method for the Dynamic Identification of Robots from only Torque Data[END_REF] to the PIM, as this procedure uses simulated values (without noise) of q  . This is part of our future work.

VI. CONCLUSION

This paper dealt with the identification of robot inertial parameters using the power model. This method uses a model with symbolic expressions dramatically simpler to compute than those of the usual inverse dynamic identification model, was formerly applied for the identification of the dynamic parameters of a planar 2-DOF serial robot but failed when applied to a 6-DOF serial industrial robot. The causes of this failure are disclosed in the present paper. It is shown that it is necessary to create a block-triangular observation matrix via the use of optimized trajectories in order to correctly identify the wrist inertial parameters. If not, the identification fails to find the parameters that are able to correctly estimate the actuator torques. The method has been experimentally validated on a Stäubli TX-40 robot and the results shown that this method is efficient for identifying the dynamic parameters of a 6 DOF industrial robot.


Minimal Representation for the Control of Gough-Stewart Platforms via Leg Observation Considering a Hidden Robot Model

Sébastien Briot 1 and Philippe Martinet 2

Abstract-This paper presents new insights about the sensorbased control of Gough-Stewart (GS) platforms. Previous works have shown that it was possible to control the GS platform by observing its legs directions instead of using the encoders values or the measurement of the platform pose. It was demonstrated that observing only three legs directions was enough for the control but no physical explanations were given. Moreover, sometimes, the GS platform was not converging to the desired pose and the reasons of these divergences were not disclosed.

This paper aims at answering to this two opened problems. It is shown that observing three leg directions involves controlling the displacement of a hidden robot whose models differs from those of the usual GS platform. This robot has assembly modes and singular configurations different from those of the GS platform. This involves that the legs to observe should be chosen carefully in order to avoid inaccuracy problems. In this sense, the accuracy analysis of the new robot is performed to show the importance of the leg selection. All these results are validated on a GS platform simulator created using ADAMS/Controls and interfaced with Matlab/Simulink.

I. INTRODUCTION

Parallel robots are claimed to have superior skills than serial robots: they can reach high-speeds, show high-dynamic performances and achieve good repeatability [START_REF] Merlet | Parallel Robots[END_REF]. However, their control is troublesome because of the complex mechanical structure, highly coupled joint motions due to the closedloop kinematic chains and many factors such as clearances in passive joints, assembly errors, etc., which degrade stability and accuracy.

There exists a large amount of work on the control of parallel mechanisms (see [START_REF] Merlet | [END_REF] for a long list of references). In the focus of attention, Cartesian control is naturally achieved through the use of the inverse differential kinematic model which transforms Cartesian velocities into joint velocities. It is noticeable that the inverse differential kinematic model of parallel mechanisms does not only depend on the joint configuration (as for serial mechanisms) but also on the endeffector pose. Consequently, one needs to be able to estimate or measure the latter.

In this sense, recent research works have proved that vision is an effective way to estimate the end-effector pose. The most common approach consists of the direct observation of the end-effector pose [START_REF] Espiau | A new approach to visual servoing in robotics[END_REF], [START_REF] Horaud | Visually guided object grasping[END_REF], [START_REF] Martinet | Vision based control law using 3d visual features[END_REF]. However, observing the end-effector of a parallel mechanism by vision may be incompatible with its application. For instance, it is not wise to imagine observing the end-effector of a machine-tool. On the opposite, it is generally not a problem to observe the legs of the mechanism which are most often designed with slim and rectilinear legs [START_REF] Merlet | [END_REF].

A first step in this direction was made in [START_REF] Andreff | Vision-based control of a gough-stewart parallel mechanism using legs observation[END_REF] were vision was used to derive a visual servoing scheme based on the observation of a Gough-Stewart (GS) parallel robot [START_REF] Gough | Universal tyre test machine[END_REF]. In that method, the legs direction were chosen as visual primitives and control was derived based on their reconstruction from the image. In this work, it has also been shown that the GS platform can be controlled using the observation of only three leg directions (arbitrarily chosen among its six legs). However, in some cases, the GS platform do not converge to the desired end-effector pose (even if the observed leg directions did).

Since these first works, it has been proven that the leg direction observation can be used for calibration [START_REF] Andreff | Visually servoing a gough-stewart parallel robot allows for reduced and linear kinematic calibration[END_REF] and computed torque control schemes [START_REF] Ozgur | Dynamic control of the quattro robot by the leg edgels[END_REF]. But, two questions are still not answered:

1) why is it possible to control the GS platform using the observation of only three leg directions? 2) why does the end-effector not systematically converge to the desired pose, even if the observed leg directions do? This paper aims at answering to these two fundamental questions. In this sense, it is divided as follows: the next section makes some brief recalls on the servoing using leg observation for parallel robots. Section III introduces a new robot model that intrinsically arise from this way of controlling the GS platform. The robot architecture is described as well as its singularities that are different from those of the GS platform. In section IV, the accuracy analysis of this new robot is performed. It is shown that the accuracy directly depends on the legs chosen for the control. Section V presents simulation results and, finally, in section VI, conclusions are drawn.

II. RECALLS ON CONTROL USING LEG OBSERVATION

This part aims at presenting brief recalls on the servoing of the GS platform using leg observation.

A. Kinematics of the GS platform

Consider the GS platform in Fig. 1. It has six UPS legs of varying length q i , i ∈ 1...6, (in the remainder of the paper, U (U, resp.), P (P, resp.) and S will stand for passive (active, resp.) universal, prismatic and spherical joints, respectively) attached to the base by U joints located in points A i and to the moving platform (end-effector) by S joints located in points B i . The inverse kinematic model is given by: ∀i ∈ 1...6,

q 2 i = ---→ A i B i T ---→ A i B i (1)
expressing that q i is the length of vector ---→

A i B i , i.e. ---→ A i B i = q i u i , or also A i + q i u i = B i (2)
where u i is the unit vector of the line passing through points A i and B i .

From [START_REF] Merlet | Parallel Robots[END_REF], the inverse Jacobian of the GS platform, relating the end-effector twist τ e to the joint velocities is given by

q = J inv e τ e , with J inv e =       u T 1 --→ CB 1 × u 1 T . . . . . . u T 6 --→ CB 6 × u 6 T       (3)
where C is the center of the end-effector reference frame R e .

B. Kinematics of the GS platform using leg observation

The approach presented in [START_REF] Andreff | Vision-based control of a gough-stewart parallel mechanism using legs observation[END_REF] proposed to estimate the vectors u i using a camera. The estimation of u i is not disclosed in this paper. For more information, the reader should refer to the previously cited work. If this camera is fixed on the ground, then the reference frame associated to it is, without loss of generality, the base frame R b . As a result, the kinematics of the GS platform do not express as simply as in the end-effector embedded camera case. Indeed, expressed in the base frame, (3) becomes:

b J inv e =       b u T 1 ----→ b C b B 1 × b u 1 T . . . . . . b u T 6 ----→ b C b B 6 × b u 6 T       (4)
where

----→ b C b B i = b R e e B i
, with b R e the rotation matrix between the base and end-effector frames and e B i the position of point B i in the end-effector frame. Hence, it is necessary to estimate the end-effector orientation with respect to the base frame which is uncommon.

An alternate formulation was proposed in [START_REF] Andreff | Vision-based control of a gough-stewart parallel mechanism using legs observation[END_REF], which is well suited to visual servoing using leg observation. It consists in considering the mechanism in its dual operating mode: the end-effector is fixed and the base moves with respect to it (Fig. 2). Thus, we are interested in the inverse Jacobian relating the base twist b τ b expressed in the base frame to the joint velocities.

A i B i u i x y z x y z R e R b A i B i u i x y z x y z R b R e
By analogy with (4), i.e. by permutation of the roles of B i and A i and of R e and R b (Fig. 2), one obtains the visionbased kinematics of the GS platform expressed in the base frame [START_REF] Andreff | Vision-based control of a gough-stewart parallel mechanism using legs observation[END_REF]:

q = b J inv b b τ b , with b J inv b = -    b u T 1 b h 1 b h T 1 . . . . . . b u T 6 b h 6 b h T 6    (5)
where

b h i b h i = b A i × b u i = b B i × b u i .

C. Control scheme and interaction matrix

Visual servoing is based on the so-called interaction matrix L T [START_REF] Chaumette | La commande des robots manipulateurs[END_REF] which relates the instantaneous relative motion T c = c τ c -c τ s between the camera and the scene, to the time derivative of the vector s of all the visual primitives that are used through:

ṡ = L T (s) T c (6)
where c τ c and c τ s are respectively the kinematic screw of the camera and the scene, both expressed in R c , i.e. the camera frame.

Then, one achieves exponential decay of an error e(s, s d ) between the current primitive vector s and the desired one s d using a proportional linearizing and decoupling control scheme of the form:

T c = λ LT + (s) e(s, s d ) (7)
where T c is used as a pseudo-control variable and the upperscript + corresponds to the matrix pseudo-inverse. The visual primitives being unit vectors, it is theoretically more elegant to use the geodesic error rather than the standard vector difference. Consequently, the error grounding the proposed control law will be:

e i = b u i × b u di (8)
where b u di is the desired value of b u i . It is then necessary to relate the base twist b τ b to the derivative of b u i with respect to time. From [START_REF] Andreff | Vision-based control of a gough-stewart parallel mechanism using legs observation[END_REF], it comes that:

b ui = M T i b τ b (9)
M T i = -

1 q i I 3 -b u i b u T i I 3 -b A i + q i b u i × (10)
where [...] × is the antisymetric matrix associated to a 3D vector [START_REF] Martinet | Vision based control law using 3d visual features[END_REF].

It can be proven that matrix M i is of dimension 2 [START_REF] Andreff | Vision-based control of a gough-stewart parallel mechanism using legs observation[END_REF]. As a result, a minimum of three independent legs is necessary to control the end-effector pose. An interaction matrix M T can then obtained by stacking the matrices M T i of k legs (k = 3...6).

Finally, a control is chosen a control such that E, the vector stacking the errors e i associated to of k legs (k = 3...6), decreases exponentially, i.e. such that

Ė = -λE (11)
Then, introducing

N T i = -b u di × M T i
, the combination of ( 8), ( 9) and ( 11)

gives b τ b = -λN T + E ( 12
)
where N T can be obtained by obtained by stacking the matrices N T i of k legs (k = 3...6). This expression can be transformed into the control joint velocities using ( 5):

q = -λ b J inv b N T + E (13)
In the next section, it is shown that observing the displacement of the leg directions b u i is intrinsically equivalent to controlling another robot, different from the GS platform.

III. DESCRIPTION OF THE HIDDEN ROBOT MODEL

A. Description of the hidden robot architecture

In the classical control approach, the encoders measure the motion of the actuator. In the previously described control approach [START_REF] Martinet | Vision based control law using 3d visual features[END_REF], the leg directions are observed. So, in a reciprocal manner, one could wonder to what kind of virtual actuators this observation corresponds.

For answering to this question, let us analyse the leg i (Fig. 1(b)). Its unit vector b u i can obviously be parameterized by two independent coordinates that can be the angles defined by the U joint rotations. Thus, b u i is a measure of the U joint displacements. As a result, the U joint is the virtual actuator we were looking for. Observing the directions of the leg remains not to control the displacement of a UPS leg but of a virtual UPS leg with the same geometric properties as the real leg.

It is well known in the parallel robot community that a 3-UPS robot (Fig. 3(a)) is fully-actuated. Therefore, this is the reason why it is possible to control the GS platform by observing the displacements of three of its six legs. This is equivalent to actuate a virtual 3-UPS robot with the same geometric properties as the GS platform (same attachment points, leg length, U and S joint orientations), but with assembly modes and singular configurations that differ from those of the GS platform. They should be studied in order to avoid control problems.

A 1 B 1 C u 1 A 2 B 2 u 2 A 3 B 3 u 3 P 1 P 2 P 3 P 4 (a) schematics A 1 B 1 C u 1 A 2 B 2 u 2 A 3 B 3 u 3 P 1 P 2 P 3 P 4 (b)

B. Forward geometric analysis

Cross multiplying the right part of (2) by b u i leads to:

b u i × b A i + q i b u i = b u i × b A i = b u i × b B i (14)
which are the equations to solve for obtaining the symbolic expressions for the 3-UPS robot forward geometric model. However, solving this problem is tedious and, for reasons of paper compactness, will not be developed here. Instead of this, a geometric and qualitative approach is used in order to better understand the forward geometric problem of this robot.

Without loss of generality, let us consider that we analyze the 3-UPS robot depicted at Fig. 3(a). If the leg 3 is disassembled at point B 3 , as there are only four actuators for controlling the six robot mobilities, the platform gains two degrees-of-freedom. The gained motion is called a spatial Cardanic motion [START_REF] Tischler | A spatial extension of cardanic movement: its geometry and some derived mechanisms[END_REF]. This motion is defined by the fact that the points B 1 and B 2 are constrained to move on the lines of which directions are given by b u 1 and b u 2 , respectively, and the platform is free to rotate around the line B 1 B 2 . As demonstrated in [START_REF] Tischler | A spatial extension of cardanic movement: its geometry and some derived mechanisms[END_REF], the surface described by point B 3 is an octic surface, i.e. an algebraic surface of degree eight.

As B 3 also belongs to leg 3, this point is constrained to move on a line defined by the direction b u 3 of the passive prismatic joint. As shown in [START_REF] Tischler | A spatial extension of cardanic movement: its geometry and some derived mechanisms[END_REF], a line and an octic surface can have up to eight real intersection points. As a result, the 3-UPS robot can have up to eight assembly modes. Let us recall here that, in the general case, the GS platform can have up to 40 assembly modes [START_REF] Merlet | Parallel Robots[END_REF] that are different from those of the 3-UPS robot.

The existence of these assembly modes explains the second question presented in the introduction, i.e. the non systematic convergence of the end-effector to the desired pose, even if the observed leg directions do. A numerical example of this phenomenon will be presented in the section V.

C. Singularity analysis

Three types of singular configurations may appear for robots with six degrees of freedom [START_REF] Gosselin | Singularity analysis of closed-loop kinematic chains[END_REF]:

1) the Type 1 singularities where the robot loses of at least one degree of freedom; 2) the Type 2 singularities where there is the apparition of some uncontrollable motions. These singularities are the worst type parallel robots can meet because, in their neighborhood, the platform accuracy considerably decreases; 3) the Type 3 singularities, where both Type 1 and Type 2 singularities encounter. The singular configurations of the 3-UPS-like robot have been deeply studied in the past [START_REF] Ben-Horin | Singularity analysis of a class of parallel robots based on grassmanncayley algebra[END_REF], [START_REF] Caro | Singularity analysis of a six-dof parallel manipulator using grassmann-cayley algebra and grobner bases[END_REF]. Type 1 singularities appear if one leg length q i is equal to 0 (this is the same condition for the GS platform). In this case, the leg i can no more produce a motion in the directions normal to b u i . Type 2 singularities appear when the planes P 1 , P 2 , P 3 (whose normal directions are defined by the vectors b u 1 , b u 2 and b u 3 , respectively) and the plane P 4 (passing through the points B 1 , B 2 and B 3 ) intersect in one point (that can be at infinity) (Fig. 3(b)).

Obviously, the singularity loci vary depending on the leg chosen for the GS platform control. Therefore, it is extremely important, for having the best performances of the controller, to make an optimal selection of the three legs to observe. This is the topic of the next section.

Finally, it should be mentioned that the singularities of the 3-UPS robot are not physical singularities, in the sense that they do not leads to uncontrollable free motions of the platform. However, they are representation singularities due to the mapping from the Cartesian space to the leg direction space [START_REF] Ma | Architecture singularities of parallel manipulators[END_REF].

IV. SELECTION OF THE CONTROLLED LEGS

Several indices can be used for characterizing the neighborhood of singularities (e.g. the condition number, the dexterity [START_REF] Merlet | Jacobian, manipulability, condition number, and accuracy of parallel robots[END_REF], the pressure angle [START_REF] Arakelian | Increase of singularity-free zones in the workspace of parallel manipulators using mechanisms of variable structure[END_REF], etc.). Here, as generally, the visual servoing is used for improving the robot accuracy, it is proposed to use it as an index for the characterization of singularity proximity.

A. Accuracy analysis

From 9, and using the first order approximation of the forward geometric model [START_REF] Merlet | Jacobian, manipulability, condition number, and accuracy of parallel robots[END_REF], it is possible to write

δp = M T + δu ( 15
)
where δp = [δx T , δω T ] T is the platform pose error composed of the positioning error δx and the orientation error δω, δu is the error on the observation of the leg direction, and M T + is the pseudo-inverse of the matrix M T that can be obtained by stacking the matrices M T i of the three observed legs. Obviously, this matrix is the Jacobian matrix of the equivalent 3-UPS robot and, as a result, will degenerate near the singularity configurations presented in section III.C. It should be mentioned here that it is decided to use a simple model for computing the robot accuracy, but any other more complicated models can be used (e.g. models that take into account flexibilities [START_REF] Pashkevich | Stiffness analysis of overconstrained parallel manipulators[END_REF], clearances [START_REF] Binaud | The kinematic sensitivity of robotic manipulators to joint clearances[END_REF], etc.). However, this simple model is enough for our demonstration. In the remainder of the paper, the GS platform of DeltaLab is studied (Fig. 1). This robot has the following characteristics: For this mechanism, and for an error δu i defined such that the vector b u i is contained in a cone of axis b u i0 and of half angle φ i ( b u i0 is the nominal value of b u i and, in what follows, φ i is taken equal to 0.01 deg. for each leg direction), let us compute the maximal positioning error when only three of its six legs are observed. Twenty different combinations are possible. However, the value of the error for only two of them (when legs 1,2,5 and 1,3,5 are observed) is plotted at Fig. 4. On Fig. 4(a), it is possible to note that the maximal error varies very quickly, especially near the singularity loci. On Fig. 4(b), things are different. The variation of the accuracy is very smooth. Thus, it can be concluded that the selection of the legs to observe is crucial for the final pose accuracy.

b A 2k = R b     cos k π 3 -α sin k π 3 -α 0     , b A 2k+1 = R b     cos k π 3 + α sin k π 3 + α 0     b B 2k = Re     cos (2k + 1) π 3 -β sin (2k + 1) π 3 -β 0     , b B 2k+1 = Re     cos (2k + 1) π 3 + β sin (2k + 1) π 3 + β 0     where k ∈ {0, 1, 2}, R b = 0.27m, R e = 0.

B. Discussion

The previous section showed the importance of the legs chosen for the control scheme. Several questions naturally arise here. The first one concerns the number of legs to observe. In terms of accuracy, it is obvious that observing four, five or six legs, i.e. adding measurement redundancy, will improve the pose accuracy of the robot. However, increasing the number of legs to observe leads to an increase of the computational time and may be applied with difficulty when high sampling periods are required. Thus, a compromise must be found between the sampling period and the computational time for any given application.

The second question is about the selection of the legs to observe. With only three legs among six to observe, as mentioned above, twenty different 3-UPS robots can be defined. What is thus the best virtual robot model to use?

If the control law proposed in section II is applied, it is first necessary to guaranty that, for the used set of legs:

• obviously, the legs must be observable during the whole robot displacement. • the initial and final robot configurations must be included in the same assembly mode of the virtual 3-UPS robot. If not, the controller will not be able to converge to the desired end-effector pose, even if the observed leg directions do. In this last case, the problem can be solved by applying special trajectories that cross Type 2 singularities [START_REF] Briot | Optimal force generation of parallel manipulators for passing through the singular positions[END_REF] or encircle a cusp point [START_REF] Zein | Non-singular assembly-mode changing motions for 3-rpr parallel manipulators[END_REF].

Then, if accuracy is needed, the leg selection must guaranty the best final accuracy. To achieve this goal, the following procedure can be used:

1) knowing the six leg orientations at the initial and final GS platform configurations, compute the solutions of the forward geometric model of the twenty 3-UPS robots, 2) find, using a procedure similar to the one proposed in [START_REF] Bonev | Working and assembly modes of the agile eye[END_REF] for all virtual 3-UPS robots, the solutions of the forward geometric model that belong to the same assembly modes; if, for one given virtual robot, initial and final platform configurations do not belong to the same assembly mode, discard it; if it does not exist any 3-UPS robot for which initial and final configurations belong to the same assembly mode, the displacement is not feasible, except if special trajectories are planned as mentioned previously, 3) for all remaining virtual 3-UPS robots, knowing the observation error δu, compute the positionning error using [START_REF] Ma | Architecture singularities of parallel manipulators[END_REF]; retain the set of legs that guaranty the best accuracy; 4) test the controller (in simulation) with the retained set of legs; if there is no problem of convergence and that the legs are observable during the whole displacement, the problem is solved; if not, discard this set of leg and redo point 3; if it does not exist any 3-UPS robot for which initial and final configurations belong to the same assembly mode, the displacement is not feasible, except if special trajectories are planned as mentioned previously.

Obviously, this methodology can be extended when four or five legs are observed. One should also be aware that instead of given the initial and final robot configurations to the controller, it is better to define a trajectory between these two points in order to avoid crossing singularities inadvertently.

Finally, it is considered in this paper that the sensor measurement space is the same as the leg direction space. However, for example using a camera, the legs directions are not directly measured but rebuilt from the observation of the legs limbs projection in the 2D camera space [START_REF] Andreff | Vision-based control of a gough-stewart parallel mechanism using legs observation[END_REF]. Thus, for the leg reconstruction, the mapping between the camera space and the real 3D space is involved, and it is not free of singularities (see [START_REF] Michel | Singularities in the determination of the situation of a robot effector from the perspective view of 3 points[END_REF] for an example of mapping singularities). In the neighboorhood of mapping singularities, the robot accuracy will also tend to decrease. As a result, this mapping should be considered in the accuracy computation and in the selection of the legs to observe.

V. SIMULATION RESULTS

In this section, simulations are performed on an Adams mockup of the DeltaLab GS platform. This virtual mockup is connected to Matlab/Simulink via the module Adams/Controls. The controller presented in section II is applied with a value of λ assigned to 5. The legs ranges are not considered to show the theoretical behaviour of the robot.

In the first simulations, the initial platform pose is equal to {x = 0m, y = 0m, z = 0.3m, q r1 = 1, q r2 = 0, q r3 = 0, q r4 = 0} and the final platform pose is set to {x = -0.1m, y = 0.1m, z = 0.3m, q r1 = 1, q r2 = 0, q r3 = 0, q r4 = 0} where q r1 , q r2 , q r3 , q r4 are the quaternions characterizing the platform rotations between R e and R b [START_REF] Khalil | Modeling, Identification and Control of Robots[END_REF]. For going from the initial point to the final ones, two sets of observed legs directions are tested: {1, 2, 4} and {2, 3, 6}. The results for the convergence of the legs directions are presented in Fig. 5. It can be shown that when the legs {2, 3, 6} are observed, all leg directions converge to 0. For the other case, the non observed legs do not reach their desired pose. Looking at the platform pose computed by ADAMS, the robot reach the configuration {x = -0.066m, y = 0.090m, z = 0.239m, q r1 = -0.931, q r2 = 0.290, q r3 = 0.101, q r4 = 0.197} (Fig 6). Solving the forward geometric problem using ( 14) at the final desired robot configuration for legs {1, 2, 4}, it can be demonstrated that two real assembly modes exist that are {x = -0.1m, y = 0.1m, z = 0.3m, q r1 = 1, q r2 = 0, q r3 = 0, q r4 = 0} and {x = -0.066m, y = 0.090m, z = 0.239m, q r1 = -0.931, q r2 = 0.290, q r3 = 0.101, q r4 = 0.197}. This validates the theory presented in section III.B. In the second simulation, the final point is changed to {x = 0m, y = -0.06m, z = 0.4m, q r1 = 1, q r2 = 0, q r3 = 0, q r4 = 0} and a random noise of 0.01 deg is added on the simulated measure of the leg directions. To show the importance of the leg selection on the robot accuracy, it is decided to control the robot displacement using three different sets of legs: (i) legs {1, 2, 5}, (ii) legs {1, 3, 5} and (iii) all legs. The results (Fig. 7) show that, as presented in Fig. 4, the final platform pose accuracy is better when legs {1, 2, 5} are observed (around 0.3 mm) than with legs {1, 3, 5} (around 1.7 mm). When all legs are observed, the final pose error is much lower than when only three legs are observed. But, as mentioned in the previous section, the computational time is higher.

VI. CONCLUSIONS

This paper presented new insights about the sensor-based control of GS platforms. It has been shown that observing the leg directions of the GS platform involves controlling the displacement of a hidden robot which is based on UPS legs instead of UPS legs. If only three legs are observed, the new equivalent robot becomes a 3-UPS which has six fully-controlled DOFs. Its has been demonstrated that this robot has up to eight assembly modes that are different from those of the GS platform. Its conditions of singularities have been presented. It has been shown that the legs to observe should be chosen carefully in order to avoid inaccuracy problems. Thus, the accuracy analysis of the new robot has been performed to show the importance of the leg selection.

All these results have been validated on a GS platform simulator created using ADAMS/Controls and interfaced with Matlab/Simulink. The proposed approach can be extended for the control of GS platforms and other types of robots in the image space. This is part of our future works in this field.

Fig. 1 .

 1 Fig. 1. A GS platform from DeltaLab.

Fig. 2 .

 2 Fig. 2. Duality between the mobile end-effector mode and the fixed endeffector mode.

  example of a Type 2 singularity: the platform get an uncontrollable rotation around B 1 B 2 .

Fig. 3 .

 3 Fig. 3. A 3-UPS robot.

Fig. 4 .

 4 Fig. 4. Maximal pose error (in mm) for z = 0.4 m when the platform is at zero orientation.

  195m, α=4.25 deg. and β=5.885 deg. Moreover, the legs range are [0.345 m, 0.485 m].

Fig. 5 .Fig. 6 .

 56 Fig. 5. Error on each leg e T i e i .

Fig. 7 .

 7 Fig. 7. Simulated platform pose error (in mm).

ACKNOWLEDGEMENTS

This work was supported by the French ANR ARROW (ANR 2011BS3 006 01). The authors would also like to thank Nicolas Bouton from the IFMA (Institut Pascal) of Clermont-Ferrand for its great help in using Adams/Controls.