Modeling of high speed machines using robotics formulation

ABSTRACT : This paper presents a method for the modeling of mechanical systems with ...... mechanical manipulators", Trans. of ASME, J. of Dynamic Systems, ...
116KB taille 3 téléchargements 199 vues
Modeling of high speed machines using robotics formulation W. Khalil, M. Gautier *Institut de Recherche en Communications et Cybernétique de Nantes (IRCCyN), U.M.R. C.N.R.S. 6597 1 rue de la Noë, BP 92101, 44321 Nantes Cedex 03, FRANCE. [email protected] ABSTRACT : This paper presents a method for the modeling of mechanical systems with lumped elasticity. The main applications of the method concern high speed machine tools and robots with elastic joints. The method can provide the kinematic and dynamic models of such systems. To achieve this goal we adapted some well known tools and notations which are widely used for rigid robots. The inverse dynamic model has to be redefined and developed. The example of a two axis linear direct drive high speed machine shows the efficiency of the method. KEY WORDS : Modeling, Robotics, Simulation, Mechatronics, Machine tool.

1.

Introduction

Because of increasing joint speed and acceleration of robots and machine tools, accurate models taking into account elasticity of joints and structure are needed to check their performances (accuracy and rapidity) by simulation and to improve their design and their control. A good compromise between the complexity of a distributed elasticity approach and the simplicity of neglecting the elasticity with a rigid body model is to consider a model with lumped elasticities based on a technology analysis of the different elements of the machine. Figure 1 shows a typical system representing an axis of high-speed tool machine with ball-screw transmission. The goal is to provide a systematic method to model such systems. The originality of this work is to get the different models by the use of well known tools which are widely used in robotics. For instance we use the modified Denavit and Hartenberg method to define the geometry of the system [DEN 55, KHA 86, KHA 99], we calculate the geometric models using the (4x4) transformation matrices [PIE 68, PAU 81], we use the kinematic screw to calculate the kinematic models [REN 80, FEA 83], we use the recursive Newton-Euler method to get the direct and inverse dynamic models [ARM 79, FEA 83, BRA 86, LUH 80, KHA 87] and we make use of the minimum inertial parameters and the customized symbolic calculation to reduce the computation cost of the dynamic models [KHA 87, KHA 97, KHO 86]. kM

ke

me kn

θpv

Jv/4

Jpv θv

θm Γmot Jm

mc kc

M

mn

kp1

xpv

3Jv/4

kcv1

xe mv

ktv

xn

xM

kp1 kcv2

xv

xpm

km

θpm Jpm

Figure 1 : A machine tool axis with lumped elasticities.

2.

Description of the system

The system considered here is composed of rigid bodies connected together by rigid joints ( revolute or prismatic) or elastic joints (torsional or translational spring) .

The modeling techniques and the description method presented here can take into account tree structured chain and closed chain [KHA 86, KHA 99]. To simplify the presentation we will consider in this paper only serial chain. A serial chain is composed of n+1 body denoted as B0, … , Bn and of n joints (elastic and rigid). Body B0 defines the base of the system and Bn defines the terminal body. If a body has more than one degree-of-freedom with respect to its antecedent, it can be represented by a number of bodies equal to the number of degrees of freedom, where the last one is the real body while the other bodies are virtual with zero mass and inertia. The geometric description is based on the following [KHA 86] :  frame Fj is assigned fixed on body Bj, with zj axis is aligned with the axis of joint j or with the elasticity displacement axis j, xj is along the common normal to zj and zj+1.  joint variable j (rigid or elastic) is denoted as qj. The transformation from frame Fj-1 to Fj is expressed as a function of the following parameters : • αj : angle between zj-1 and zj about xj-1, • dj : distance between zj-1 and zj along xj-1, • θj : angle between xj-1 and xj about zj axis, • rj : distance between xj-1 and xj axes along zj axis. The joint variable qj (rigid or elastic) is either θj, or rj, depending whether it is an angle or a distance. It is given as : − θ +σ r q =σ j

j

j

j j

with : • σj = 0 if the variable j is an angle, • σj = 1 if the variable j is a distance, − = 1 – σ . If the frame is fixed we suppose σ = 2, in this case σ − • σ j j j j is not defined. It is to be noted that if j is elastic then : qj = q0j + ∆qj where q0j is the neutral elastic value corresponding to zero force or torque on the joint. The transformation matrix defining frame Fj relative to frame Fj-1 is given as : j-1T = j

j-1T = j

Rot(x, αj) Trans(x, dj) Rot(z, θj) Trans(z, rj)

 jA j-1 jPj-1      0 0 0 1 

[1]

where jAj-1 is the (3x3) matrix giving the orientation of frame j-1 with respect to Fj, and jPj-1 gives the (3x1) vector defining the origin of frame j-1 with respect to frame j.

3.

Geometric and kinematic models

The Direct Geometric Model defines the location (position and orientation) of any body j as a function of joint or elastic variables. It can be represented by the transformation matrix 0Tj as [PAU 81] : 0T

j

= 0T1(q1) 1T2(q2) …

j-1T (q ) j j

[2]

The kinematic model gives the kinematic screw of body j, or frame j, denoted as function of the generalized variables and velocities.

j V as j,

jV j

 jVj  =    jω j 

is the translational velocity of the origin of frame j, ω j the rotational velocity of frame j. The kinematic screw can be calculated by the following recursive relation for j=1,...,n [REN 80, FEA 83]: Vj

j Vj = j Tj-1 j-1 Vj-1 + q. j j aj ja j

[3]

is the (6x1) column matrix given as :

− 0 0 σ ]T jaj =[ 0 0 σ j j

[4]

V0 and ω 0 are equal to zero if the base is fixed. j T is the (6x6) transformation matrix between j-1

screws. It can be calculated as function of the elements of j-1Tj:

 jAj-1 –jAj-1j-1^Pj    jAj-1  03 

j Tj-1 =  

[5]

^ 03 represents the (3x3) zero matrix, and V is the (3x3) skew matrix associated with the vector V.

The second order kinematic model giving the body or frame accelerations can be calculated by differentiating Eq.[3], it is given as : .

jV

j

. .. = j Tj-1j-1 V j-1 + q j j aj + jγ j

[6]

with

 jAj-1[j-1ω j-1x(j-1ω j-1xj-1Pj)]+ 2σj(jω j-1x q. j jaj)   jγ=  j   . –j j σ   j ω j-1x qj aj

[7]

where aj is the unit vector along zj , jaj =[ 0 0 1]T

4.

The dynamic models

This section presents the direct and inverse dynamic models of multi-body systems with lumped elasticity. These models will be calculated as a function of the inertial parameters. To simplify the presentation we neglect the frictions. The dynamic parameters of body j will be represented by the vector Xj such that : Xj= [ XXj XYj XZj YYj YZj ZZj MXj MYj MZj Mj ]T

where, XXj, XYj, XZj, YYj, YZj, ZZj are the elements of jJj (inertia matrix of body j with respect to frame j), MXj, MYj, MZj are the elements of the first moments jMSj of body j around the origin of frame j, and Mj is the mass of body j. Furthermore if the joint j is active, we consider the inertia of the actuator rotor as Iaj.

4.1. The Lagrange dynamic model The general form of the dynamic model can be given as [KHA 99, PAU 81, SPO 87] : .. . Γ = A(q) q + H(q, q )

[8]

. .. q , q , q (nx1) are joint positions, velocities, and accelerations vectors of rigid and elastic variables, . H(q, q ) is the (nx1) vector of Coriolis , centrifugal and gravity forces, A(q) is the inertia matrix of the system, Γ is the (nx1) vector of motor torques (for revolute joints), motor forces (for prismatic joints), and elastic forces or torques (for elastic joints). The calculation of the A and H matrices of Eq.[8] can be done using Lagrange equation exactly as in the case of rigid robots but in the case of elastic joint, the torque will be given by: Γj = - ∆qj Kj

[9]

where Kj is the stiffness of the elastic joint j, The direct dynamic model, which is called also the dynamic simulation model, gives the joint accelerations as a function of the motor torques and forces and the . mechanical system state variables (q, q ) . Using Eq.[8], the joint accelerations can be calculated as : .. . q = A-1 [Γ – H(q, q )]

[10]

The inverse dynamic model calculates the input torques as a function of the joint positions, velocities and accelerations. In the case of a system with elasticity the accelerations of the elastic variables cannot be specified independently. In fact they . are function of the robot state variables (q, q ), the motor torques and the rigid joint accelerations. Thus the acceleration vector is first partitioned to separate the rigid accelerations from the elastic accelerations : ..  q r  Η r   Γr   Arr Are    +    =  He   - K ∆qe   Aer Aee   q.. e  

[11]

From the second row of Eq.[11] we can calculate at first the elastic accelerations, then substituting for it in the first row we can calculate the rigid joint torques.

4.2. Recursive Newton-Euler dynamic model It is proved that the recursive Newton-Euler methods give the most efficient models from the number of operations point of view [KHA 87, KHA 97, KHO 86]. For the direct dynamic model we can generalize the rigid robot algorithm [ARM 79, FEA 83, BRA86] for systems with elasticity just by replacing Γj for the elastic joints

by - ∆qj Kj. It is to be noted that this algorithm does not need to calculate the inverse of the inertia matrix of the robot as given by Eq.[10]. Concerning the recursive inverse dynamic model, the rigid bodies algorithm [LUH 80, KHA 87, KHA 97] cannot be used for systems with elasticity. An algorithm consisting of three recursive calculations will be developed. 4.2.1.

Calculation of the direct dynamic model

The following notations are used : j total forces and moments exerted on body j, fj force exerted on body j, by body j-1, mj moment exerted on body j by body j-1, total forces and moments exerted on body j by body j-1, with j jf j

 j fj    jmj 

=

g acceleration of the gravity, The Newton-Euler equation of a rigid body is given as : .  ω jx(ω jxMSj)  Fj = Jj V j +    ω jx(Jj ω j) 

[12]

 Vj   Fj   , Vj =   , ωj   Mj 

where Fj = 

Jj is the global inertia matrix of body j,

jJ j

^  MjI3 – jMS j  = j ^  MSj jJj

   

[13]

The algorithm is composed of three recursive calculations. The first one from j=1,… ,n calculates the transformation matrices between frames, the angular velocity of the frames and the terms which are function of the velocities in the body accelerations and Newton-Euler equations. Then from body n to body 0 we calculate .. some vectors and inertial matrices which permit to calculate j fj and q j as a function . of j-1 V j-1. Finally from 1 to n we calculate the joint accelerations.

To take into account the acceleration of gravity and that the base is fixed, the . . initial values of the acceleration is supposed as ω 0 = 0 , V 0 = – g . In the following we detail these three steps. i)Forward recursive calculation ( for j = 1, … , n): j In this step we calculate, using Eqs. [1],[3],[5],[7],[14]elements j Tj-1, jω j, jγ j and βj, where:

jβ j

 jω jx(jω jxjMSj)  = –   jω jx(jJj jω j) 

[14]

The equilibrium equations of body j is given as: . j+1 TT j+1fj+1 + jβj j Jj j V j = j fj – j

[15]

where the forces and moments exerted by body j-1 on body j are represented by the wrench j fj . ii)Backward recursive calculation (for j = n, ..., 1) : .. In this step we calculate the joint accelerations q j (rigid and elastic) and the . wrench j fj as a function of j-1 V j-1. In fact for j=n, and since the terminal body is free then n+1 fn+1 = 0, thus using Eq.[6] and Eq.[15] : . .. n J (nT n n-1 n-1 V n-1 + q n n an + nγ n) = nfn + nβn

[16]

Two cases are considered : 1- if joint n is rigid then the projection of nfn on nan : n aT nf = Γ – Ia .. n nqn n n

[17]

where Ian is the rotor inertia of motor n. 2- if joint n is elastic: n aT nfn = – Kn ∆qn j

[18]

The second case can be considered as a special case of the first one, in which Γn = – Kn ∆qn and Ian =0. Thus in the following we just write the equations of the first case. T

Multiplying Eq.[16] by nan we get: . -1 T .. n Tn q n = Hn (– nan nJn (nTn-1 n-1 Vn-1 + nγ n) + Γn + an βn)

[19]

where Hn is given as: Hn = (nanT n Jn nan + Ian)

[20]

.. Substituting for q n from Eq.[19] into Eq.[16], we get:

 nfn   = nK nT n-1 V. n n-1 n-1 + nαn  nm   n

n fn = 

[21]

nKn = n Jn – n Jn n an H-1 naT n Jn n n

[22]

Tn -1 n nαn = nKn nγ n + nJn n an Hn (Γn + n an βn) – βn

[23]

.. Eqs.[19], [21] give q n and nfn as a function of

.

n-1 V

n-1.

In a similar way for j = n-1, we get by the use of Eq.[15]: n-1 J

n-1

.

n-1 V

n-1 = n-1 fn-1 + nTn-1T nfn + n-1 βn-1

[24]

Eq.[24] can be rewritten using Eq.[21] and Eq.[15]: .

n-1 n-2 V n-1 J* n-1 ( Tn-2 n-2 +

.. n-1 q n-1 an-1 + n-1γ n-1) =

T n n-1J* n-1 J n-1 = n-1 + n Tn-1 Kn n Tn-1

n-1 f

n-1 * n-1 + β n-1

[25]

[26]

n-1β*n-1 = n-1βn-1 – nTT nαn n-1

[27]

.. Eq.[27] has the same form as Eq.[16]. We can thus calculate q n-1 and n-1 fn-1 as a . function of n-2 V n-2 . . .. This procedure gives q j and j fj as a function of j-1 V j-1 for j=n-1, ..., 1. The last . . .. . iteration gives q 1 and 1 f1 as a function of 0 V 0 which is known ( ω 0 = 0, V 0 = – g). .. Thus q 1 and 1 f1 can be determined. The third forward iteration will permit to obtain the joints accelerations. In summary this backward iteration calculates : Initialization : j J*j = j Jj, jβ*j = jβj , then for j = n, ..., 1 : T j * j J j aj +

Hj = (j aj

Iaj)

[28]

j Kj = j J*j – j J*j j aj H-1 j aT j J*j j j

[29]

-1 T jαj = j Kj jγ j + j J*j j aj Hj (Γj+ j aj jβ*j) – jβ*j

[30]

If j > 1, calculate also : j-1β∗ j-1 ∗ j T j j-1 = β j-1 – Tj-1 αj

j-1 J*

j-1 =

j T j j j-1 + Tj-1 Kj Tj-1

j-1 J

[31]

[32]

iii)The third forward recursive calculation ( j = 1, ..., n) : .. This step calculates q j and the dynamic wrench j fj using the following equations : .

jV

.

j j-1 j-1 = Tj-1 V j-1

[33]

. -1 T .. j T j * q j = Hj [– j aj j J*j (j V j-1 + jγ j) + Γj + aj β j]

[34]

 j fj   = j K j V. jf =  j j j-1 + jαj  jm   j

[35]

.

jV

. .. j = j V j-1 + j aj q j + jγ j

[36]

Remark : to reduce the computation cost of this procedure we can make use of the iterative symbolic calculation techniques [KHA 87,KHA 97, KHO 87] and of the base inertial parameters [KHA 87,KHA 97, KHO 87, ZOD 96, KHA 17]. 4.2.2.

Calculation of the Inverse dynamic model

This model calculates the motor torques as function of the system state (positions and velocities of the different degrees of freedom) and the accelerations of the rigid degrees of freedom. The classical algorithm of rigid bodies system cannot be used in this case, because the elastic accelerations cannot be specified independently. We propose here a new algorithm to solve this problem. This algorithm consists of three recursive steps: i)the first forward iteration is exactly the same as that of the direct dynamic model. .. ii)The second backward recursive calculation gives the elastic accelerations q j . and j fj as a function of j-1 V j-1. iii)the third is a forward one, it calculates the rigid joint torques and the accelerations of the elastic joints. In the following we will detail the second and third recursive calculations. The second recursive calculation is carried out for j=n,...,1. For j=n, and since the terminal body is free then n+1 fn+1 = 0, thus using Eq.[6] and Eq.[15] : . n Jn (nTn-1 n-1 V

.. n n ) = nfn + nβn n-1 + q n an + γ n

[37]

Two cases are considered : .. 1- if joint n is rigid then q n is given, thus we calculate :

 nfn   = nK nT n-1 V. n n-1 n-1 + nαn  nm   n

n fn = 

[38]

nKn = n Jn

[39]

.. nαn = nKn nγ n - n Jn n an q n – nβn

[40]

.. 2- if joint n is elastic then q n is calculated as a function of Eq.[19] after replacing Γn by – Kn ∆qn :

.

n-1 V

. -1 T T .. q n = Hn (– nan nJn (nTn-1 n-1 Vn-1 + nγ n) - Κ n∆qn + nan nβn)

n-1

: Using

[41]

where Hn is given as : Hn = (n anT n Jn n an )

[42]

.. Substituting for q n from Eq.[41] into Eq.[37], we get :

 nfn   = nK nT n-1 V. n n-1 n-1 + nαn  nm   n

n fn = 

[43]

nKn = n Jn – n Jn n an H-1 naT n Jn n n

[44]

-1 T nαn = n Kn nγ n + n Jn n an Hn (– Kn ∆qn + n an nβn) – nβn

[45]

In a similar manner for j = n-1, we get : . n-1 n-1 V n-1 = n-1 fn-1 + nTn-1T nfn + n-1βn-1

n-1 J

[46]

which can be rewritten using Eq.[6] : .

n-1 J* n-1 n-2 V n-1 ( Tn-2 n-2 +

.. n-1 n-1 f q n-1 an-1 + n-1γ n-1) = n-1 + n-1 β∗n-1

n-1J* n-1 J n T n n n-1 = n-1 + Tn-1 Kn Tn-1

[47]

[48]

n-1β∗n-1 = n-1β∗n-1 – n TT nαn n-1

[49]

This equation has the same form as Eq.[37]. We can thus calculate n-1 fn-1 as a . .. function of n-2 V n-2. By this procedure we get q j (if j is elastic) and j fj as a function . .. of j-1 V j-1 for j=n-1, ..., 1. The last iteration gives q 1 (if joint 1 is elastic) and 1 f1 as . function of 0 V 0 which is known. In summary this forward iteration calculates : Initialisation: j J*j = j Jj, j-1β∗j-1= j-1βj-1, then for j =n, ...,1 : If joint j is elastic : T Hj = (j aj j J*j j aj )

[50]

j Kj = j J*j – j J*j j aj H-1 j aT j J*j j j

[51]

Tj * -1 j * jαj = j Kj jγ j+j J*j j aj Hj (− Kj ∆qj + j aj β j) – β j

[52]

if joint j is rigid :

j Kj = j J*j

[53]

j * j .. j * jαj = j Kj jγ j + J j aj q j – β j

[54]

if j > 1, calculate :

j-1β∗j-1 = j-1β∗j-1 – j TT jαj j-1

[55]

j-1 J*j-1 = j-1 Jj-1 + j TT j Kj j Tj-1 j-1

[56]

.. As for the third recursive calculation (for j = 1, ..., n) it calculates q j for the elastic joints and the motor torques for the rigid joints using the following equation : . . jV j-1 = jTj-1 j-1 V j-1

[57]

 j fj   = j K j V. j fj =  j j-1 + jαj  jm   j

[58]

if j is elastic : . -1 T T .. q j = Hj [– j aj j J*j (j V j-1 + jγ j) - Kj ∆qj + j aj jβ*j]

[59]

. . .. jV j j j = j V j-1 + j aj q j + γ

[60]

if j is rigid : – j jmj)T jaj + Iaj q.. j Γj = (σj jfj + σ

5.

[61]

Example of a two axis high speed machine

As an example, we consider the two axis high speed machine shown in Figure 2. The first axis model represents a single axis composed of a bed, a double linear synchronous motor, a linear scale. It is actuated using two motors which are mounted like a gantry type, but very close side to side on a very rigid structure in order for the gantry to be considered as only one equivalent motor. The second axis is perpendicular to the first one and actuated with a classical brushless motor, a gearbox and a rack and gearwheel. A representation is shown on figure 2.

z12

z11

y0

12

x

Axis Y, 11

D12

L12

x11 z10

q 11

Axis Y, C 10 x10 z

q 10

9

Axis Y, C9 x9

Γ9 =driving force Y

x3 z3 q3

structure q 4

D4 Secondary part

Cart, X

q6

x4

z2

q9

x6

x5

z8

z4

z6

x8 Primary part

z5

q8

x7

q7

x13

q5

z7 Sensor head

D13

x2

x1 q1

q2

Γ5

z13

q 13

=driving force X

z 0 z1

Figure 2 : description of a 2 axes high speed machine The geometric parameters are given in table 1. Each generalized coordinate qj, j=1,… , 13 represents a degree of freedom (dof) such as : j= 1, 2, 3 represent the three elastic degrees of freedom (dof) of the base, j= 4 represents the secondary part elastic dof, j= 5 represents the rigid primary part dof of axis X, j= 6, 7, 8 represent the elastic dof of the cart supporting the axis Y, j= 9 represents the rigid axis Y dof, j= 10, 11 represent the elastic dof of the kinematic chain of axis Y, j= 12 is to define a second frame as j=11, both attached to axis Y, which corresponds to µ12=0 in table 1

x0

j=13 represents the elastic dof of the sensor head's scale, which corresponds to a(6)=a(13)=5 in table 1, defining the body 5 as the anterior body of 13 and body 6. j

a(j)

µ

σj

1 2 3 4 5 6 7 8 9 10 11 12 13

0 1 2 3 4 5 6 7 8 9 10 11 5

1 1 1 1 1 1 1 1 1 1 1 0 1

0 1 1 1 0 0 1 1 1 1 1 2 1

αj

dj

θj

rj

0 -π/2 0 0 0 -π/2 π/2 0 0 0 0 0 0

0 0 0 D4 0 0 0 0 0 0 0 D12 D13

t1 -π/2 0 0 0 t6 π/2 π/2 0 0 0 0 0

0 r2 r3 r4 r5 0 r7 r8 r9 r10 r11 L12 r13

Table 1: Geometric parameters

6.

Conclusion

In this paper we have developed a method to model multi-body systems with lumped elasticity. The main applications of the method concern high speed machine tools and robots with elastic joints. The method can provide the kinematic and dynamic models of such systems. To achieve this goal we adapted some well known tools and notations which are widely used for rigid robots. We show that the direct geometric, the direct kinematic models and direct dynamic model can be adapted with slight modifications. Where as the inverse dynamic model has to be redefined and developed.

7.

References

[ARM 79]Armstrong W.W., "Recursive solution to the equation of motion of an N-links manipulator", Proc. 5th World Congress on Theory of Machines and Mechanisms, p. 1343-1346, 1979. [BRA 86]Brandl H., Johanni R., Otter M., "A very efficient algorithm for the simulation of robots and multibody systems without inversion of the mass matrix", Proc. IFAC Symp. on Theory of Robots, Vienne, p. 365-370, 1986.

[DEN 55]Denavit J., Hartenberg R.S., "A kinematic notation for lower pair mechanism based on matrices", Trans. ASME, J. of Applied Mechanics, Vol. 22, p. 215-221, 1955. [FEA 83]Featherstone R., "Position and velocity transformations between robot end-effector coordinates and joint angles", The Int. J. of Robotics Research, Vol. 2(2), p. 35-45, 1983. [FEA 83]Featherstone R., "The calculation of robot dynamics using articulated-body inertias", The Int. J. of Robotics Research, Vol. 2(3), p. 87-101, 1983. [GAU 91]Gautier M., "Numerical calculation of the base inertial parameters", J. of Robotic Systems, Vol. 8(4), p. 485-506,1991. [KHA 86]Khalil W., Kleinfinger J.-F., "A new geometric notation for open and closed-loop robots", Proc. IEEE Int. Conf. on Robotics and Automation, San Francisco, p. 1174-1180, 1986. [KHA 87]Khalil W., Kleinfinger J.-F., "Minimum operations and minimum parameters of the dynamic model of tree structure robots", IEEE J. of Robotics and Automation, Vol. RA3(6), p. 517-526, 1987. [KHA 94]Khalil W., Bennis F., "Comments on Direct Calculation of Minimum Set of Inertial Parameters of Serial Robots", IEEE Trans. on Rob.& Automation, Vol. RA-10(1), p. 7879, 1994. [KHA 97]Khalil W., Creusot D.,"SYMORO+: a system for the symbolic modelling of robots", Robotica, Vol. 15, p. 153-161, 1997. [KHA 99]Khalil W., Dombre E., "Modélisation, identification et commande des robots", Hermès, PARIS, 1999. [KHO 86]Khosla P.K., "Real-time control and identification of direct drive manipulators", Ph. D. Thesis, Carnegie Mellon , 1986. [LUH 80]Luh J.Y.S., Walker M.W., Paul R.C.P., "On-line computational scheme for mechanical manipulators", Trans. of ASME, J. of Dynamic Systems, Measurement, and Control, Vol. 102(2), p. 69-76, 1980. [PAU 81]Paul R.C.P., Robot manipulators: mathematics, programming and control, MIT Press, Cambridge, 1981. [PIE 68]Pieper D.L., "The kinematics of manipulators under computer control", Ph. D. Thesis, Stanford University, 1968. [REN 80]Renaud M., "Calcul de la matrice jacobienne nécessaire à la commande coordonnée d'un manipulateur", J. of Mechanism and Machine Theory, Vol. 15(1), p. 81-91, 1980. [SPO 87]Spong M.W., "Modeling and control of elastic joint robots", Trans. of the ASME, J. of Dynamic Systems, Measurement, and Control, Vol. 109, p. 310-319, 1987. [ZOD 96] Zodiac,Theory of robots control (C. Canudas de Wit, B. Siciliano, G. Bastin Eds., Springer-Verlag, Berlin, 1996.