Vous êtes sur la page 1sur 129

Modélisation et commande des robots

Michel Llibre
ONERA - DCSD
Robotique MLL-2001

1
Composantes et changement de bases

~V = xA~iA + yA~jA + zA~kA = xB~iB + yB~jB + zB~kB

Composantes :
   
xA xB
   
(V )A =   ; (V ) =  
 yA  B  yB 
zA zB

Changement de base :

(V )A = CAB (V )B (V )B = CBA (V )A

avec :
−1
CAB = CBA
Robotique MLL-2001

2
Propriétés de matrices de changement de base
On démontre facilement que :

h i
CAB = (iB )A ( jB )A (kB )A = [BB ]A
h i
CBA = (iA )B ( jA )B (kA )B = [BA ]B

Les bases sont orthonormées :

−1 T
CAB = CAB = CBA
−1 T
CBA = CBA = CAB
det (CAB ) = ±1

Bases orthonormées directes : det (CAB ) = 1


Robotique MLL-2001

3
Changement de bases successifs


(V )A = CAB (V )B 





(V )B = CBC (V )C
→ CAC = CABCBC
(V )A = CAC (V )C 





(V )A = CABCBC (V )C
Robotique MLL-2001

4
Changement de base d’un tenseur (opérateur)

− →

Opérateur F transformant V en W :

→ −´
³→
W =F V

Composantes et changement de bases :



(W )A = [F ]A (V )A 


−1
(W )B = [F ]B (V )B → (W )A = CBA [F ]B CBA (V )A



CBA (W )A = [F ]B CBA (V )A

D’où :
−1
[F ]A = CAB [F ]B CAB
Robotique MLL-2001

5
Produit vectoriel, tenseur antisymétrique et vecteur adjoint
Opérateur produit vectoriel :
− −
→ → −→ −→ →´
³−
U ×V =W ↔W =U V

(U )A est antisymétrique ∀ la base BA :


   
0 −zA yA xA
  adjonction  
 zA 0 −xA  ↔  yA 
   
−yA xA 0 zA



U est le vecteur adjoint de U .
e , parfois ∗U , parfois U
Notation : U b à la place de U .
Robotique MLL-2001

6
Quelques propriétés remarquables lorsque k~uk = 1

³ ³ →´´
− →

~u × ~u × ~u × V = −~u × V → ue3 = −e
u

Projection sur ~u :
Pu = uuT = 1 + ue2

Projection sur le plan orthogonal à ~u :

Hu = 1 − Pu = 1 − uuT = −e
u2

Rotation d’angle α autour de ~u :

Rα,u = 1 + sin α ue + (1 − cos α) ue2


Robotique MLL-2001

7
L’opérateur rotation



→ →´
³−

W = Rα,u V
→ −
− → → −
− → → ³−
− → − →´ 
W = V + sin α U × V + (1 − cos α) U × U × V
Robotique MLL-2001

→ Rα,u = 1 + sin α ue + (1 − cos α) ue2

8
Paramètres d’Euler α et −

u d’une rotation
 ¡ ¢
¡ ¢ ¡ ¢  sin α ue = 1
R −R T
R = 1
R + R T + 12 R − R T → 2
¡ ¢
2  1 + (1 − cos α)e
u2 = 1
R +R T
2

D’où :
trace (R ) − 1
cos α =
2
 
r32 − r23
 
sin α (u)X = 12  
 r13 − r31 
r21 − r12

Les composantes de ~u sont exprimées dans la même base BX que les composantes
ri j de R .
Robotique MLL-2001

9
Encore l’opérateur rotation
Si on note : 
BB = RAB (BA )  −1
→ RAB = RBA
BA = RBA (BB ) 

Il vient :

[RAB ]A = [RAB ]B = CAB


[RBA ]A = [RBA ]B = CBA

Soit Rα,u tel que RAB = Rα,u . On a :

(u)A = (u)B = ctes quand α varie


Robotique MLL-2001

10
Encore l’opérateur rotation
Composition : produits ordre inverse :

RAC = RBC ◦ RAB → [RAC ]0 = [RBC ]0 [RAB ]0

Mais, en pratique on utilise le produit direct :

[RAC ]A = [RAB ]A [RBC ]B

Commutation aux petits angles (au 1er ordre)


Rα,u ' 1 + α ue 
→ Rβ,v ◦ Rα,u ' Rα,u ◦ Rβ,v ' 1 + α ue + β ve
Rβ,v ' 1 + β ve 

α2 ue2 α3 ue3
e+
Notation à proscrire : Rα,u = 1+α u 2!
+ 3!
+ · · · = eα ue
Robotique MLL-2001

car eβ veeα ue 6= eα ue+β ve

11
Représentation des attitudes par angles d’Euler-Cardan
12 systèmes :

— 6 d’angles d’Euler : RXY X , RXZX , RY XY , RY ZY , RZXZ , et RZY Z


— 6 d’angles de Cardan : RXY Z , RXZY , RY XZ , RY ZX , RZXY , et RZY X

3 matrices de rotation de base notées :


£ ¤
RX (θ) = [Rθ, iA ]A ; RY (θ) = Rθ, jA A ; RZ (θ) = [Rθ, kA ]A
   
1 0 0 cθ 0 sθ
   
RX (θ) = 
 0 cθ −sθ 
 ; RY (θ) = 
 0 1 0  
0 sθ cθ −sθ 0 cθ
 
cθ −sθ 0
 
RZ (θ) =  sθ cθ 0 


Robotique MLL-2001

0 0 1

12
Le système RZXY : l /~k0 , t /~i1 et r /~j2 utilisé en robotique
Robotique MLL-2001

13
Le système RZXY : l,t, r utilisé en robotique
C03 = RZ (l) RX (t) RY (r)
 
cl cr − sl st sr −sl ct cl sr + sl st cr
 
C03 = 
 sl cr + cl st sr cl ct sl sr − cl st cr 
 = (ai j )
−ct sr st ct cr
Réciproquement :
 

 l = Atan2 (−a , a ) 
 l 0 = π+l
 12 22
¡ π π¢ 
t = Arsin (a32 ) , t ∈ − 2 , + 2 et t0 = π − t

 

  0
r = Atan2 (−a31 , a33 ) r = π+r

l et r indéterminés quand a12 = a22 = a31 = a33 = 0, c-a-d quand t = ± π2 .


Robotique MLL-2001

14
Traitement par continuité de la singularité des angles l,t, r
Lorsque :
 
cos (l ± r) 0 ± sin (l ± r)
π  
t = t0 = ± ↔ (ai j ) = 
 sin (l ± r) 0 ∓ cos (l ± r) 

2
0 ±1 0

D’où :

 π

 t = +2
a32 = +1 → S = Atan2 (a21 , a11 ) ;



D = l −r (les anciennes valeurs)
 et l = S+D S−D
2 ; r= 2
 π
 t = −2

a32 = −1 → S = l +r (les anciennes valeurs)



D = Atan2 (a21 , a11 )
Robotique MLL-2001

15
Vitesse de rotation et dérivées des angles l,t, r


→ → −
− → − →
Ω 03 = l˙k0 + t˙ i1 + ṙ j2

D’où :
     
0 cl −sl ct l˙ −ct sr cr 0 l˙
     
(Ω03 )0 =    t˙  ; (Ω03 ) =  st 1   
 0 sl cl ct   3  0   t˙ 
1 0 st ṙ ct cr sr 0 ṙ
Réciproquement :
   st st   sr cr 
l˙ sl −cl 1 − 0
   ct ct   ct ct 
 t˙  =    
   
cl sl 0  (Ω03 )0 = 
 
cr 0 sr  (Ω03 )3
sl cl st st 
ṙ − 0 sr 1 −cr
ct ct ct ct
Robotique MLL-2001

Attention : singularité pour t = ± π2 .

16
Le système classique d’angles d’Euler : RZXZ
ψ : précession, θ : nutation, φ : rotation propre

C03 = RZ (ψ) RX (θ) RZ (φ)


 
cψ cφ − sψ cθ sφ −cψ sφ − sψ cθ cφ sψ sθ
 
C03 = 
 sψ cφ + cψ cθ sφ −sψ sφ + cψ cθ cφ −cψ sθ 
 = (ai j )
sθ sφ sθ cφ cθ
Réciproquement :
 
  0
 ψ = Atan2 (a13 , −a23 )
  ψ = π+ψ

θ = Arcos (a33 ) , θ ∈ (0, π) et θ0 = −θ

 

 
φ = Atan2 (a31 , a32 ) φ0 = π + φ

ψ et φ indéterminés quand a13 = a23 = a31 = a32 = 0, c-a-d quand θ = 0 ou π.


Robotique MLL-2001

17
Vitesse de rotation et dérivées des angles d’Euler

−−→ →
− →
− →

Ω03 = ψ̇ k0 + θ̇ i1 + φ̇ k2

D’où :
     
0 cψ sψ sθ ψ̇ sθ sφ cφ 0 ψ̇
     
(Ω03 )0 = 
 0 sψ −cψ sθ    
  θ̇  ; (Ω03 )3 =  sθ cφ −sφ 0   θ̇ 
 

1 0 cθ φ̇ cθ 0 1 φ̇
Réciproquement :
   cθ cθ  
sφ cφ 
ψ̇ −sψ cψ 1 0
   sθ sθ   sθ sθ 
 θ̇  =    
   cψ sψ 0  (Ω03 )0 =  cφ −sφ 0  (Ω03 )3
 sψ cψ   cθ cθ 
φ̇ − 0 −sφ −cφ 1
sθ sθ sθ sθ
Robotique MLL-2001

Attention : singularité pour θ = 0 ou π.

18
Le système RZY X utilisé en aéronautique
ψ : cap, θ : assiette longitudinale, φ : roulis

C03 = RZ (ψ) RY (θ) RX (φ)


 
cψ cθ cψ sθ sφ − sψ cφ cψ sθ cφ + sψ sφ
 
C03 = 
 sψ cθ sψ sθ sφ + cψ cφ sψ sθ cφ − cψ sφ 
 = (ai j )
−sθ cθ sφ cθ cφ
Réciproquement :
 
  0 = π+ψ
 ψ = Atan2 (a21 , a11 )

¡ π π¢

 ψ
θ = −Arsin (a31 ) , θ ∈ − 2,+2 et θ0 = π − θ

 

  0
φ = Atan2 (a32 , a33 ) φ = π+φ

ψ et φ indéterminés quand a21 = a11 = a32 = a33 = 0, c-a-d quand θ = ± π2 .


Robotique MLL-2001

19
Vitesse de rotation et dérivées des angles aéronautiques


→ →
− →
− →

Ω 03 = ψ̇ k0 + θ̇ j1 + φ̇ i2

D’où :
     
0 −sψ cψ cθ ψ̇ −sθ 0 1 ψ̇
     
(Ω03 )0 = 
 0 cψ sψ cθ    
  θ̇  ; (Ω03 )3 =  cθ sφ cφ 0   θ̇ 
 

1 0 −sθ φ̇ cθ cφ −sφ 0 φ̇
Réciproquement :
   sθ sθ   sφ cφ 
ψ̇ cψ sψ 1 0
   cθ cθ   cθ cθ 
 θ̇  =    
   
−sψ cψ 0  (Ω03 )0 =  0
 
cφ −sφ  (Ω03 )3

cψ sψ sθ sθ
φ̇ 0 1 sφ cφ
cθ cθ cθ cθ
Robotique MLL-2001

Attention : singularité pour θ = ± π2 .

20
Quaternions
Q ∈ H de dimension 4 ;
Partition unique de H en 2 sous-espaces orthogonaux :

1. S de dimension 1 : sous-espace scalaire ou réel


2. V de dimension 3 : sous espace pur ou vectoriel
 
1 01×3
Ne sont autorisés que les changement de base de matrice   avec CAB
03×1 CAB
unitaire.

Produit de quaternion :

 s = s1 s2 − v1 · v2
Q = Q1 Q2 = s + v →
 v = s1 v2 + s2 v1 + v1 × v2
Robotique MLL-2001

La seule opération considérée étant la ×, on peut confondre scalaire et quaternion


scalaire.

21
Table de multiplication des quaternions
Les vecteurs de la base {e, iA , jA , kA } se multiplient en :

Q1 \Q2 e iA jA kA
e e iA jA kA
iA iA −e kA − jA
jA jA −kA −e iA
kA kA jA −iA −e

— ee = e
— iA iA = jA jA = kA kA = −e
— eiA = iA e = iA , e jA = jA e = jA et ekA = kA e = kA
— iA jA = kA = − jA iA , jA kA = iA = −kA jA et kA iA = jA = −iA kA
Robotique MLL-2001

22
Quaternions
Quaternion unité : Q = (1, 0, 0, 0) peut être noté 1.

Quaternion Q∗ conjugué de Q = s + v : Q∗ = s − v

Norme n (Q) d’un quaternion définie par : n (Q) = QQ∗ = s2 + kvk = kQk
2 2

C’est un quaternion scalaire tel que n(Q1 Q2 ) = n(Q1 ) n(Q2 )

Quaternion unitaire tel que n (Q) = 1 ↔ kQk = 1

Quaternion inverse Q−1 défini par QQ−1 = Q−1 Q = 1


QQ∗ ∗ Q∗
1= → Q−1 = 1
n(Q) Q =
n (Q) kQk2
Q unitaire → Q−1 = Q∗

H constitue le corps non commutatif des quaternions de Hamilton


Robotique MLL-2001

ou corps des nombres hyper-complexes.

23
Quaternions : Deux réalisations par matrices réelles 4 × 4
     
s s −x −y −z s x y z
     
 x   −z y   −x −z y 
   x s   s 
Q =   ↔ Mc =   ou Ml =  
 y   y z s −x   −y z s −x 
     
z z −y x s −z −y x s
¡2 ¢2
2 2
det (M) = det (M) = s + x + y + z2 = n2 (Q) = kQk4
Q3 = Q1 Q2 ↔ M3 = M1 M2
Q∗ ↔ M T
Q−1 ↔ M −1 = 1
n(Q) M T car adjointe(M) = n(Q)M T

Q unitaire → M −1 = M T

 Q =M Q
3 c1 2
Q3 = Q1 Q2 → abusivement :
 QT = QT Ml2
Robotique MLL-2001

3 1

24
Quaternions et rotations
e + (1 − cα ) ue2 ↔ Qα,u = cα/2 + sα/2 u alors :
Si Rα,u = 1 + sα u

Rα,u Rβ,v ↔ Qα,u Qβ,v

De plus si v, w ∈ E3 ↔ V = (0 + v) , W = (0 + w) ∈ H alors :

w = Rα,u (v) ↔ W = Qα,uV Q−1


α,u

Toutes les formules sur les matrices de rotation se transposent en quaternion

Faire attention à la correspondance des bases de projection.


Robotique MLL-2001

25
Quaternions et rotations
Conversion quaternion Q = s + v en matrice de rotation :

Rα,u = 1 + 2s ve+ 2 ve2


Conversion matrice de rotation R = (ri j ) en quaternion :


 s2 = 1
 
 4 (1 + r11 + r22 + r33 )
¡ ¢  
 x2 =
s ve = 4 R − R
1 T
4 (1 + r11 − r22 − r33 )
1
¡ ¢ 1 →
ve = 4 R + R − 2 × 1  
 4 (1 − r11 + r22 − r33 )
2 1 1
T
 y2 =


 z2 =
4 (1 − r11 − r22 + r33 )
1
Robotique MLL-2001

26
Quaternions, rotations et changements de base
Si QAB ↔ RAB alors :
 
1 0
∀P ∈ H, (P)A = QcAB (P)B Q−1   (P)B
cAB =
0 CAB

 C = (R ) = (R )
AB AB A AB B
avec
 QcAB = (QAB ) = (QAB )
A B

et en particulier :
   
0 0
(V )A = CAB (V )B ↔   = QcAB   Q−1
cAB
V V
A B
Robotique MLL-2001

27
Vitesse de rotation et dérivée des quaternions
BB = RAB (BA ) : QAB quaternion unitaire associé à RAB
BB animée d’une vitesse derotation ωAB par rapport à la base BA :
ΩAB quaternions pur associé à ωAB
d

dt/A RAB
e AB ◦ RAB ↔ dtd QAB = 12 ΩAB ◦ QAB
/A
³ ´
−1
e AB = dtd RAB ◦ RAB
ω ↔ 12 ΩAB = dtd (QAB ) ◦ Q−1
AB
/A /A

Attention en composantes :
d
dt
e AB ]A [RAB ]A = [RAB ]A [ω
[RAB ]A = [ω e AB ]B
d
dt [QAB ]A = 12 [ΩAB ]A [QAB ]A = 12 [QAB ]A [ΩAB ]B
Robotique MLL-2001

28
Intégration vitesse de rotation
Par angles d’Euler : Problème la configuration singulière

Par matrice ou quaternion :

Ṙ = Ω̃R = Rω̃ ←→ Q̇ = 21 ΩQ = 12 Qω

avec Ω exprimé dans la base fixe et ω dans la base mobile.

Deux approches :

— Traditionnelle : Additive par Runge Kutta d’ordre 4 ou plus


— Spécifique matrice ou quaternion de rotation : Multiplicative
Robotique MLL-2001

29
Intégration additive
(Exemple didactique par Euler ordre 1)

R (t + ∆t) = R (t) + Ṙ∆t

ou

Q (t + ∆t) = Q (t) + Q̇∆t , puis Qu = Q/ kQk

Problème : La normalisation de R est complexe. Solution théorique par SVD :

Si R = UΣV T alors Ru = UV T est la matrice unitaire la plus proche de R au sens des


moindres carrés.
Robotique MLL-2001

30
Intégration multiplicative
Vecteur rotation fini :

(∆θ)0 = Ω∆t ou (∆θ)m = ω∆t

Correction d’Edward :

∆θc = ∆θ + 12
1
∆θ− ∧ ∆θ

Matrice ou quaternion de rotation correspondant :


1
α = k∆θc k et u = ∆θc
α
 
cos α2
R (∆t) = 1+ (sin α) ũ+ (1 − cos α) ũ2 ←→ Q (∆t) =  
α
sin 2u

Intégration :
Robotique MLL-2001

R (t + ∆t) = R0 (∆t) R (t) = R (t) Rm (∆t) ←→ Q (t + ∆t) = Q0 (∆t) Q (t) = Q (t) Qm (∆t)

31
Situations et déplacements
DAB : déplacement (translation et rotation) de RA = (A, BA ) à RB = (B, BB ).
DAB : situation (position et oreintation) de RB relativement à RA

n−
→ o
DAB = AB , RAB

Représentation par matrice homogène 4 × 4 :


 
CAB (AB)A
DAB =  
0 0 0 1

Intérêt :
 ³ ´
 CAC = CABCBC + (AB) 0 0 0
A
DAC = DAB DBC car
 (AC)A = (AB)A 1 +CAB (BC)B
Robotique MLL-2001

32
Mécanismes de type série ou parallèle

Les coordonnées de configuration ou articulaires ou généralisées,

ou les paramètres de configuration ou articulaires :


     
q1 θ1 r1
q=  avec q =   ou q =  
q2 θ2 r2
Robotique MLL-2001

fixent la configuration du mécanisme

33
Mécanisme série
Le modèle géométrique q → X est toujours analytique :

X = G (q) improprement appelé modèle géométrique direct



 x = a cos θ + a cos (θ + θ )
1 1 2
Exemple :
 y = a sin θ1 + a sin (θ1 + θ2 )

Le modèle géométrique X → q est multiforme

La notation q = G−1 (X) est abusive.

q = G−1 (X) improprement appelé modèle géométrique inverse


Robotique MLL-2001

34
Mécanisme série : Exemple d’inversion du modèle
X = G (q)


 l > 2a → pas de solution

  ³ 2 2´ 

 −2a

 
 θ2 = arccos 2a2 l 
 θ 0 = −θ

   2 2

 l ≤ 2a 0 = α − 1 θ0

 θ = α − 1
θ et θ
 p 
 

1 2 2 

1 2 2
 
  
l = x2 + y2 “coude bas” “coude haut”
→ 
 α = Atan2 (y, x) 
  θ = θ0 = π

 l=0→
2 2

  θ1 = θ0 = qcq
: conf. singulière bras replié



  1

  θ = θ0 = 0



 l = 2a →
2 2

  θ1 = θ0 = α
: conf. singulière bras tendu
1

2 “solutions” ou “configurations” ou “postures” ou “aspects”.

Configurations singulières résumées par sin θ2 = 0


Robotique MLL-2001

35
Mécanismes parallèles
Le modèle X → q est toujours analytique :

q = H (X) improprement appelé modèle géométrique inverse


 q
 r = kA Mk = y2 + (x − a )2
Exemple :
1 1
q 1
avec a1 et a2 abscisses de A1 et A2
 r = kA Mk = y2 + (x − a )2
2 2 2

Le modèle géométrique q → X est multiforme

La notation X = H −1 (q) = G (q) est abusive.


Robotique MLL-2001

36
Mécanisme parallèle : Exemple d’inversion du modèle
Deux points M solutions, ∩ des cercles de centre A1 et A2 de rayon r1 et r2 si :

r1 + r2 < |a1 − a2 | → pas de solution


|r1 − r2 | > |a1 − a2 | → pas de solution
 
   r12 +a22 −r22 −a21
 x0 = x
 

x = 2(a −a )
q 

r1 + r2 ≥ |a1 − a2 | 2 1
→ y = r 2 − (x − a )2 et y0 = −y
|r1 − r2 | ≤ |a1 − a2 |   
1 1

 

 “M dessus” “M/ dessous”

r1 + r2 = |a1 − a2 | → M en M/ confondus entre A1 A2


r1 − r2 = |a1 − a2 | → M en M/ confondus après A2
r2 − r1 = |a1 − a2 | → M en M/ confondus avant A1
2 “solutions” ou “configurations” ou “postures” ou “aspects”.
Robotique MLL-2001

Configurations singulières résumées par y = 0

37
Variété de configuration, nappes et variétés singulières
Robotique MLL-2001

38
Mécanismes particuliers
Mécanisme mixte série-parallèle

Mécanismes redondants.
Robotique MLL-2001

39
Modèles différentiels - Modèles statiques - Matrices
Jacobiennes des mécanismes série

δX = J (q) δq ou Ẋ = J (q) q̇
∂G
J (q) = DGq =
∂q

En statique, si le torseur FX est appliqué en M :

FX · δX = Fq · δq → Fq = JT FX

 rang (J) = min(n , n ) = n
q x x
Configuration régulière :
 nq = nx → det (J) 6= 0

 rang (J) < min(n , n ) = n
q x x
Configuration singulière :
Robotique MLL-2001

 nq = nx → det (J) = 0

40
Modèles différentiels - Matrices Jacobiennes des
mécanismes série
Singularité : Les lignes de J son dépendantes. Il ∃ u | uT J = 0.

Si u noyau de JT :


 ∀q̇ , Ẋ = Jq̇ → uT Ẋ le mécanisme ne peut générer de vitesse selon u
 FX = λu , Fq = JT F → Fq = 0 le mécanisme à une rigidité infinie selon u
X

Exemple :
    
ẋ −a (s1 + s1+2 ) −as1+2 θ̇1
 =  
ẏ a (c1 + c1+2 ) ac1+2 θ̇2

det J = a2 sin θ2
Robotique MLL-2001

u est selon OAM quand O, A et M sont alignés.

41
Résumé mécanisme de type série
— La transformation géométrique X = G (q) est analytique
— La transformation q = G−1 (X) n’est définie que pour q ∈ à des sous-espaces
(nappes)

En configuration singulière

— Différents solutions de q = G−1 (X) se rejoignent sur les frontières des nappes qui
sont les domaines singuliers,
— Cinématique : Ẋ ne peut engendrer les directions du noyau JT ,
— Il ∃ des q̇ ∈ au noyau de J tels que Ẋ = 0, même en configuration régulière si
redondant (trajectoires de l’espace de configuration à motricité nulle).
— Statique : Rigidité infinie du mécanisme pour FX selon le noyau de JT .
Robotique MLL-2001

42
Modèles différentiels - Matrices Jacobiennes des
mécanismes parallèle

δq = P (X) δX et q̇ = P (X) Ẋ
∂H ¡ −1 ¢
P (X) = DHX = =J
∂X

En statique, si le torseur FX est appliqué en M :

FX · δX = Fq · δq → FX = PT Fq

 rang (P) = min(n , n ) = n
q x q
Configuration régulière :
 nq = nx → det (P) 6= 0

 rang (P) < min(n , n ) = n
q x q
Configuration singulière :
Robotique MLL-2001

 nq = nx → det (P) = 0

43
Modèles différentiels - Matrices Jacobiennes des
mécanismes parallèle
Singularité : Les colonnes de P son dépendantes. Il ∃ u | Pu = 0.

Si u noyau de P :

 ∀F , F = PT F → uT F = 0 le mécanisme ne peut générer de force selon u
q X q X
 Ẋ = λu , q̇ = PẊ → q̇ = 0 le mécanisme à une souplesse infinie selon u
q q
Exemple : on pose r1 = y2 + (x − a1 ) et r2 = y2 + (x − a2 )2
2

    
δr1 1
(x − a1 ) r11 y δx
 = r 1  
δr2 r2 (x − a2 )
1 1
r2 y δy
y(a2 −a1 )
det P (X) = r1 r2
Robotique MLL-2001

u est selon Oy quant A1 , M, A2 sont alignés (sur Ox).

44
Résume mécanisme de type parallèle
— La transformation géométrique q = H (X) est analytique
— La transformation X = H −1 (q) n’est définie que pour X ∈ à des sous-espaces
(nappes)

En configuration singulière

1. Différentes situations solutions de X = H −1 (q) se rejoignent, sur les frontières


des nappes qui sont les domaines singuliers.

2. Statique : le mécanisme ne peut produire d’efforts FX selon la direction du noyau


de P, il présente une rigidité nulle (souplesse infinie) dans cette direction.

3. Le mécanisme peut contenir des efforts internes Fq selon le noyau PT , qui ne


produisent aucun effort externe FX .

4. Cinématique : les vitesses de configurations q̇ sont liées, assujetties à rester


dans le sous-espace orthogonal au noyau de PT .
Robotique MLL-2001

(3 et 4 vrais même en configuration régulière dans le cas redondant).

45
Nombre de degré de liberté d’un mécanisme
Terme imprécis pouvant désigner :

— nq : nombre d’axes du mécanisme


— nx : dimension de l’espace opérationnel
— nq̇ : dimension de l’espace tangent à la variété de configuration
– nq̇ = nq pour un mécanisme série
– nq̇ = rangP pour un mécanisme parallèle
— nẋ : dimension de l’espace tangent à l’espace opérationnel
– nẋ = nx pour un mécanisme parallèle
– nẋ = rangJ pour un mécanisme série
Robotique MLL-2001

46
Inversion itérative des modèles analytiques
Mécanisme série non redondant (Newton-Ralphson)

Problème : Trouver q tel que Xd = G (q)

— Saturation homothétique des grands écarts initiaux


— k : gain de relaxation variable
– inférieur à 0.5 au début
– augmenté jusqu’à k = 1 lorsque ∆X → 0
Robotique MLL-2001

47
Inversion itérative des modèles analytiques
Mécanisme série redondant :

Idem mais dim (δq) > dim (δX) → trop de d.d.l.

Une infinité de solutions.

Pseudo-inverse de Moore-Penrose (minimise la norme de la solution)


¡ ¢−1
J† = JT JJT

 δq = J† δX
ef f
δq =δqe f f + δqnull avec ¡ ¢
 δqnull = 1 − J† J δq pre f
¡ ¢
T −1
JJ n’existe que si rang(J) = nx , sinon décomposition QRE ou SVD.
Robotique MLL-2001

48
Compléments : Traversabilité des singularités série
A X = Xd correspond une ligne Xd = G (q) dans l’espace de configuration appelée
TMN : trajectoire à motricité nulle (en redondance simple nq = nx + 1, sinon c’est une
surface ou une hypersurface).

A une trajectoire à motricité constante (TMC) du type X = Xd + ut correspond une


surface faite d’une succession de lignes de niveaux (à t donné) qui sont des TMN.

En un point singulier qs où J est singulière, et où uT J = 0, la TMC est stoppée.

Suivant les signes de valeurs propres de la forme quadratique uT δX développée au


2ème ordre en δq on classe la singularité qs en :

col (singularité traversable) ou sommet ou cuvette (singularité intraversable).


Robotique MLL-2001

49
Singularités du mécanisme à 3 brins
Robotique MLL-2001

50
Inversion itérative des modèles analytiques
Mécanisme parallèle non redondant (Newton-Ralphson)

Problème : Trouver X tel que qd = H (X)

— Saturation homothétique des grands écarts initiaux


— k : gain de relaxation variable
– inférieur à 0.5 au début
– augmenté jusqu’à k = 1 lorsque ∆q → 0
Robotique MLL-2001

51
Inversion itérative des modèles analytiques
Mécanisme parallèle redondant :

Idem mais dim (δq) > dim (δX) → trop de contraintes sur X.
° °
Pas de solution a priori. On cherche à minimiser °qd − H (X)° puis kδq − PδXk

Solution des moindres carrés des erreurs :


¡ ¢−1 T
δX = PT P P δq
° d °
Arrêt des itérations lorsqu’on n’arrive plus à faire diminuer l’erreur q − H (X)° .
°
¡ T ¢−1
P P n’existe que si rang(J) = nx , sinon décomposition QRE ou SVD.
Robotique MLL-2001

52
Compléments : Mécanisme parallèle redondant
FX = PT Fq noté FX = AFq

Tension à motricité effective :


ef f
Fq = A† FX

Tension à motricité nulle :


¡ ¢
Fnull
q = 1 − A A µ = NNT µ

avec AN = 0 et NT N = 1
Robotique MLL-2001

53
Modélisation pratique des robots série
Robotique MLL-2001

Structure typique d’un robot de type série

54
Modélisation pratique des robots série
Paramètres caractéristiques :

— Chaîne cinématique simple de N = nq corps Ci simplement articulés entre eux,


— Chaque corps Ci (i = 1 à N ) possède 1 ddl par rapport au corps précédent Ci−1
– soit une translation (articulation prismatique)
– soit une rotation (articulation rotoïde)
selon la direction de vecteur unitaire −

u i.
— qi est la mesure algébrique de la translation le long de −

u i ou de la rotation autour
de −

u i.
— Le dernier corps CN est appelé organe terminal ou porte-outil ou poignet

C0 est le socle fixe sur lequel est articulé le premier corps C1 .


Robotique MLL-2001

55
Modélisation : Méthode parallèle
Repère R0 d’origine Oo arbitraire, configuration origine telle qi = 0 pour i = 1 à N

Trois choix simples :

1. A chaque corps Ci (i = 0 à N ) est associé un repère Ri fixe dans Ci

2. Origine Oi de Ri choisie sur l’axe d’articulation −



ui
— Si translation le long de −

u i (Oi se déplace relativement à Ci−1 )
−−−−→
O−
iest défini par Oi Oi = qi − →
u i (position de Oi en conf. ori.)
— Si rotation autour de →−u i , O−
i est identique à Oi fixe dans Ci−1 .

3. En configuration origine, orientation de Bi (i = 1 à N ) choisie // à la base Bo

Configuration origine ↔ Bi // Bo pour i = 1 à N


Robotique MLL-2001

56
Paramètres géométriques de la modélisation parallèle
6N paramètres définissent le mécanisme :
¡ ¢
— les 3N comp. des vecteurs li = Oi−1 O− i i−1 dans Bi−1 (elles y sont ctes)
— les 3N comp. des vecteurs ui = (ui )i−1 dans Bi−1 (elles y sont ctes)

Remarque :

(ui )i−1 = (ui )i que qi mesure une rotation ou une translation


En configuration origine :

ui = (ui )i−1 = (ui )0


¡ −
¢ ¡ −
¢
li = Oi−1 Oi i−1 = Oi−1 Oi 0
Robotique MLL-2001

57
Situation de Ci par rapport à Ci−1
La situation de Ri par rapport à Ri−1 est donnée par :
 
Ci−1,i (Oi−1 Oi )i−1
Di−1,i =  
0 0 0 1
avec

Cas translation(1) Cas rotation


   
1 li + qi ui Rqi ,ui li
Di−1,i =   Di−1,i =  
0 0 0 1 0 0 0 1
¡ ¢ ¡ ¢ ¡ ¢
(1) car (Oi−1 Oi )i−1 = Oi−1 O−
i i−1 + O−
i Oi i−1 = Oi−1 O−
i i−1 + qi (ui )i−1

Remarque : Di−1,i ne contient qu’une variable qui est qi


Robotique MLL-2001

58
Les 4 paramètres de Denavit et Hartenberg (1955)

— Ri+1 est lié à Ci ,


— ki+1 est selon à ui+1 ,
— Oi+1 ∈ perpendiculaire commune à ui et
ui+1 ,
— ii+1 est selon à ui × ui+1 , sens tel que
— 0 ≤ αi = ∠ii+1 (ki , ki+1 ) ≤ π.
Ri+1 situé / à Ri par les 4 paramètres ai > 0, ri ,
αi et θi .
Robotique MLL-2001

59
Les 4 paramètres de Denavit et Hartenberg (suite)
Situation de Ri+1 par rapport à Ri
 
cθ −sθi cαi sθi sαi ai cθi
 i 
 s −cθi sαi 
 θ cθi cαi ai sθi 
Di,i+1 =  i 
 0 sαi cαi ri 
 
0 0 0 1

Translation : qi = ri Rotation : qi = θi

Inconvénients :

— Décalage d’indice entre Ci et Ri+1


— R1 est le repère fixe lié au socle, pas de Ro .
— Orientations des Ri imposées, difficiles à mémoriser
— Configuration origine imposée (différente de la conf. de définition)
Robotique MLL-2001

60
Le modèle géométrique direct d’un robot série
Modèle de base : Situation de RN relativement au repère fixe R0

D0,N (q1 , q2 , . . . , qN ) = D0,1 (q1 ) D1,2 (q2 ) · · · DN−1,N (qN )

N
∏ Di−1,i est incorrect car ordre des produits non spécifié
i=1
— repère pièce RA défini relativement à R0 par D0A (donné)
— repère outil RM défini relativement à RN par DNM (donné).

Modèle complet : DAM = D−1


0A D0,N DNM

Réciproquement : D0,N = D0A DAM D−1


NM
Robotique MLL-2001

61
Exemple : Le Robot Renault Acma-Cribier RV80
Robotique MLL-2001

62
Exemple : Le Robot Renault Acma-Cribier RV80
Squelette géométrique du RV80 en configuration origine
Robotique MLL-2001

R1 à R6 sont tous parallèles à R0 avec Oz0 verticale ascendante et Oy0 vers l’avant
(norme AFNOR Robotique).

63
Paramètres géométriques du RV80

axes 1 2 3 4 5 6
           
0 1 1 0 1 0
           
ui  0   0   0   1   0   1 
           
1 0 0 0 0 0
           
0 0 0 0 0 0
           
li  0   0   a   a   0   0 
           
b 0 0 0 0 0
Robotique MLL-2001

64
Les six matrices de déplacement du RV80
     
c1 −s1 0 0 1 0 0 0 1 0 0 0
     
   −s2   −s3 
 s1 c1 0 0   0 c2 0   0 c3 a 
D0,1 =   D1,2 =   D2,3 =  
 0 0 1 b   0 s2 c2 0   0 s3 c3 0 
     
0 0 0 1 0 0 0 1 0 0 0 1

     
c4 0 s4 0 1 0 0 0 c6 0 s6 0
     
   −s5   
 0 1 0 a   0 c5 0   0 1 0 0 
D3,4 =   D4,5 =   D5,6 =  
 −s4 0 c4 0   0 s5 c5 0   −s6 0 c6 0 
     
0 0 0 1 0 0 0 1 0 0 0 1
Robotique MLL-2001

65
Le modèle géométrique du RV 80
Situation de R6 relativement à R0 :
 
COP (OP)o
D0,6 = D0,1 D1,2 D2,3 D3,4 D4,5 D5,6 = DOP =  
0 0 0 1

avec O = Oo et P = O6 .
 
−as1 (c2 + c23 )
 
(OP)o =  ac1 (c2 + c23 ) 


b + a (s2 + s23 )
Robotique MLL-2001

66
Le modèle géométrique du RV 80 (suite)
COP = C03C36 = (R1,Z R2+3,X ) (R4,Y R5,X R6,Y )
 
c1 −s1 c23 s1 s23
 
C03 = R1,Z R2+3,X =  s1 c1 c23 −c1 s23 


0 s23 c23
 
c4 c6 − s4 c5 s6 s4 s5 c4 s6 + s4 c5 c6
 
C36 = R4,Y R5,X R6,Y =  s5 s6 c5 −s5 c6 
 
−s4 c6 − c4 c5 s6 c4 s5 −s4 s6 + c4 c5 c6
Robotique MLL-2001

67
Modèle géométrique inverse du RV80 (Calcul des qi )
Si DAM donné (situation de RM / RA ) → DOP donné par :
 
C06 (OP)o
DOP = DOA DAM D−1  
PM =
0 0 0 1

Soit :

[ri j ] = C06 donnés

et :
 
xP
 
 yP  = (OP) donnés
  o

zP
Robotique MLL-2001

68
Robotique MLL-2001
Modèle géométrique inverse du RV80

69
Modèle géométrique inverse du RV80 (suite)
 
x p = −s1YP1
 
On a  y p = c1YP1  avec yP1 = a (c2 + c23 )
 
zP = b + a (s2 + s23 )
D’où :
q
yP1+,− = ± x2p + xP2

— solution “avant” : q1+ = atan2 (−xP , yP ) associé à yP1+


— solution “arrière” : q1− = q1+ + π associé à yP1−
— xP = yP = 0 → q1+ et q1− indéterminés (singularité outil sur tête)
Robotique MLL-2001

70
Modèle géométrique inverse du RV80 (suite)
q
On pose l = kO1 Pk = xP2 + y2P + (zP − b)2
l 2 −2a2
l ≤ 2a → cos q3 = 2a2
(dans ∆ : O1 O3 P)
³ ´
l 2 −2a2
— solution “coude bas” : q3+ = arccos 2a2
— solution “coude haut” : q3− = −q3+
— l = 0 (P situé en O1 ) → q3+ = q3− = π (singularité bras replié)
— l = 2a (O1 , O3 , P alignés) → q3+ = q3− = 0 (singularité bras tendu)
Robotique MLL-2001

71
Modèle géométrique inverse du RV80 (suite)
³−−→ −−→´
On pose β = O1 y1 , O1 P d’où :

β = atan2 (z p − b, yP1 )

2 valeurs suivant ±yP1 .

O1 O3 P isocèle → β = q2 + q23
D’où :

q2 = β − q23

4 valeurs suivant les signes choisis pour yP1 et q3


−1
4 triplets (q1 , q2 , q3 ) → 4 matrices C03 → 4 matrices C36 = C03 C06 .
Robotique MLL-2001

72
Modèle géométrique inverse du RV80 (suite)
Calcul des paramètres q4 , q5 , q6

On pose [ai j ] = C36 . Son expression montre que :


 
 

 q4+ = atan2 (a12 , a32 )  q4− = q4+ + π

q5+ = arccos a22 et q5− = −q5

 

 
q6+ = atan2 (a21 , −a23 ) q6− = q6+ + π
— a22 = 1 → q5+ = q5− = 0 et seule la somme (q4 + q6 ) est définie (singularités
poignet tendu)
— a22 = −1 → q5+ = q5− = π.et seule la différence (q4 − q6 ) est définie (singularités
poignet replié)

Le traitement de cette singularité peut se faire par continuité en maintenant


l’ancienne différence, ou somme, suivant le cas.
Robotique MLL-2001

73
Modèle géométrique inverse du RV80 (suite)
Les huit solutions en configuration régulière

(q1+ , q2 , q3+ , q4+ , q5+ , q6+ ) avant, coude bas, poignet direct
(q1+ , q2 , q3+ , q4− , q5− , q6− ) avant, coude bas, poignet inversé
(q1+ , q2 , q3− , q4+ , q5+ , q6+ ) avant, coude haut, poignet direct
(q1+ , q2 , q3− , q4− , q5− , q6− ) avant, coude haut, poignet inversé
(q1− , q2 , q3+ , q4+ , q5+ , q6+ ) arrière, coude haut, poignet direct
(q1− , q2 , q3+ , q4− , q5− , q6− ) arrière, coude haut, poignet inversé
(q1− , q2 , q3− , q4+ , q5+ , q6+ ) arrière, coude bas, poignet direct
(q1− , q2 , q3− , q4− , q5− , q6− ) arrière, coude bas, poignet inversé

Les q2 sont différents et fonction des choix de q1 et q3 .

Les triplets (q4+ , q5+ , q6+ ) et (q4− , q5− , q6− ) dépendent des triplets (q1 , q2 , q3 ).
Robotique MLL-2001

74
Modèles cinématiques des robots réels
Modèles différentiels δX = J (q) δq ou δq = P (X) δX très peu utilisés
car Ẋ est moins commode que VP et ω

On considère les modèles cinématiques :


   
VP VP
  = (JP )D q̇ et q̇ = (PP )D  
ω ω
D D
    
VP CAB 0 VP
Changement de base :   =  
ω 0 CAB ω
A B
 
CAB 0
D’où (JP )A =   (JP )B
0 CAB
 
T
CAB 0
(PP )A = (PP )B  
Robotique MLL-2001

et
0 T
CAB

75
Modèles cinématiques des robots réels (suite)
Changement de point :
     


ω=ω →
−  VM g
1 MP VP
−→  →   =    

− →
− →

V M = V P + ω × PM ω 0 1 ω

D’où :
   
T
g
1 PM g
1 PM
(JM ) =   (JP ) et (PM ) = (PP )  
0 1 0 1
Robotique MLL-2001

76
Modèles cinématiques des robots série

N N  1 si rotation
~ω = ∑ ~ωi−1,i = ∑ ρi q̇i~ui avec ρi =
i=1 i=1  0 si translation

−→ −−−→ N −−−−→ N −−→


OP = O0 ON = ∑ Oi−1 Oi = ∑ li−1,i
i=1 i=1
h −−→i
d −−→ −−→
N N
~VP = ∑
dt/0 li−1,i = ∑ d
dt/i−1 li−1,i + ~ω0i−1 × li−1,i
i=1 i=1

−−→ ~ i−1
avec li−1,i = li + τi qi~ui , τi = 1 − ρi et ~ω0i−1 = ∑ ρk q̇k~uk
k=1
Permutation des sommations en k et i →
N ³ −→ ´
~VP = ∑ τi~ui + ρi~ui × li,N q̇i
i=1
Robotique MLL-2001

77
Modèles cinématiques des robots série (suite)
 
q̇1
 
 
 q̇2 
    
 .. 
VP v1 v2 ··· vi ··· vN  . 
 =  
 
ω w1 w2 ··· wi ··· wN  q̇i 
 
 .. 
 . 
 
q̇N

 ~v = τ ~u + ρ ~u × −

i i i i i li,N
avec
 ~wi = ρi~ui
Robotique MLL-2001

78
Matrice cinématique du robot RV80
(JP )3 : en P = O4 = O5 = O6 , vitesses en composantes dans B3
 
−a (c2 + c23 ) 0 0 0 0 0
 
 
 0 as3 0 0 0 0 
 
 
 0 a (1 + c3 ) a 0 0 0 
(JP )3 =  
 0 1 1 0 c4 s4 s5 
 
 
 s23 0 0 1 0 c5 
 
c23 0 0 0 −s4 c4 s5
Robotique MLL-2001

79
Déterminant de J et singularités (RV80)
On trouve :
£ ¡ ¢¤
|J| = −a3 (c2 + c23 ) s3 −s5 s24 + c24 = a3 s3 s5 (c2 + c23 ) = a2 yP1 s3 s5

Le déterminant de J s’annule pour :

1. yP1 = 0 : singularité outil sur tête,


2. s3 = 0, soit q3 = 0 ou π : singularité bras tendu ou replié,

3. s5 = 0, soit q5 = 0 ou π : singularité poignet tendu ou replié

On retrouve les singularités de l’inversion du modèle géométrique.


Robotique MLL-2001

80
Inversion itérative des robots de type série
¡ sol ¢
On cherche qsol solution de Ddes
OM =G q
Situation courante DOM = G (q)

Erreur de situation :
−1 des
OM = DOM DMM des → DMM des = DOM DOM
Ddes
³ ´ ³ ´
f
∆A ' 2 CMM des −CMMdes
1 T
M
(∆A )
trace (CMM des ) < 1 → (∆A )M ← k(∆A )M k
M
°¡ ¢ °
° MMdes ° < ε et k(∆A ) k < ε → FIN (q est solution)
M M

Saturation homothétique de l’erreur de situation


 
MMdes
Variation de configuration :q+ ← q+ (JM )−1
M
 
∆A
Robotique MLL-2001

81
Robotique MLL-2001
La plateforme de Stewart (1965) (V.E. Gough 1947)

82
Modèle géométrique de la plateforme de Stewart
Paramètres géométriques donnés :

— (AAi )A : coordonnées dans RA des Ai ,


— (BBi )B : coordonnées dans RB des Bi .

La transformation DAB (situation de RB / RA ) → {li } est analytique

DAB donné → CAB et (AB)A donnés → qi = kAi Bi k avec :

Ai Bi = − (AAi )A + (AB)A +CAB (BBi )B

La transformation {li } → DAB se fait par Newton-Ralphson (cf. plus loin).


Robotique MLL-2001

83
Modèle cinématique d’un robot parallèle

 (AA ) : coordonnées dans R des A
i A A i
Rappel :
 (BBi ) : coordonnées dans RB des Bi
B
³ −−→´ ³−−→ ´
q̇i =~ui · VABi =~ui · VAB + ~ωAB × BBi =~ui · VABi + BBi ×~ui · ~ωAB
~ ~ ~
   
T
q̇1 u T (BB1 × u1 )
   1  
   T T 
 q̇2   u2 (BB2 × u2 )  VAB
D’où     
 ..  =  .. .. 
 .   . .  ωAB
   
q̇N uTN (BBN × uN )T
Robotique MLL-2001

84
Modèle cinématique d’un robot parallèle
 
  f1
 
 et Fq =  .. 

F .
On pose FX =  
MB  
fN
N N −→
En sommant F = ∑ fi ui et MB = ∑ BBi × fi~ui
~
i=1 i=1

On trouve directement FX = PT Fq avec :


 
u1 u2 ··· uN
PT = 
BB1 × u1 BB2 × u2 ··· BBN × uN
Robotique MLL-2001

85
Inversion itérative des robots de type parallèle
¡ ¢
On cherche Dsol
OM solution de q
mes = H Dsol
OM

Conf. courante q = H (DOM ) → Erreur δq = qmes − q

Si max (|δqi |) < ε → FIN (DOM est solution)


δq
Saturation : Si max (|δqi |) > δqlim → δq ← max(|δq
lim
δq
i |)
 
∆M
Erreur de situation :   = (P)−1
0 δq
∆A
0
¡ ¢
Variation de la situation OM+ 0 ← (OM)0 + (∆M)0

 (∆A )
sin α = k∆A k ; (u)0 = sin α0
Si sin α = k∆A k > ε → ¡ ¢
 (RMM + ) = 1 + sin α (ũ) + (1 − cos α) ũ2
0 0 0
³ ´
sinon (RMM + )0 = 1 + ∆f A
0
Robotique MLL-2001

COM+ = (ROM+ )0 ← (RMM+ )0 (ROM )0

86
Les systèmes de transmission
Bielle-manivelle, parallélogrammes, réducteurs, différentiels, ....

Transformation (régulière) supplémentaire entre vitesses ṁ, forces généralisées


motrices Cm et vitesses q̇ et forces généralisées articulaires Cq

m = Ψ (q) ←→ q = Ψ−1 (m)


∂m
R= ∂q → ṁ = Rq̇ ←→ q̇ = R−1 ṁ

Travail élémentaire des forces généralisées motrices : δW = δmT Cm

Par définition :
∂W δmT
Cq = = Cm = RT Cm
∂q ∂q
D’où :

Cq = RT Cm
Robotique MLL-2001

87
Exemple : Robot AKR3000
Robotique MLL-2001

88
Boîte de vitesse du poignet du RV80
Robotique MLL-2001

89
Boucle de courant pour un actionneur électrique

Kc ξc
Couple obtenu : Cm = Cmcom − ṁ
1 + τp 1 + τp
l R kc ke
avec τ = , Kc = voisin de 1 et ξc = négligeable si R >> r
R+r R+r R+r
Robotique MLL-2001

90
Boucle de pression pour un actionneur hydraulique

Kc ξc
Couple obtenu Cm = Cmcom − ṁ
1 + τp 1 + τp
2
avec τ = B(L+l)
v L
, Kc = L+l voisin de 1 et ξc = L+l
S
négligeable si L >> l .

Plus complexe à mettre en oeuvre que dans le cas électrique.


Robotique MLL-2001

91
Modèle dynamique d’un robot
Modélisation dynamique complexe : Deux principales méthodes :

1. Récurrence avant-arrière de Newton-Euler :


— Problème : élimination des réactions inconnues
— Sortie : Forces généralisées en fonction des accélérations
2. Equations de Lagrange
— Problème : Dérivation de l’énergie cinétique
— Sortie : Forces généralisées en fonction des accélérations,
— accélérations en fonction des forces généralisées (après inversion de la
matrice d’inertie).
Robotique MLL-2001

92
Les facteurs du modèle dynamique
Energie cinétique : T = 12 ṁT Am ṁ

Energie potentielle (pesanteur et ressorts d’équilibrage) : UP = UP (m)

Fonction de dissipation de Rayleigh : FV = 12 ṁT FV m ṁ (homogène à la puissance des


forces dissipatives)

Travail élémentaire (< 0) des forces de frottement sec : δWFS = δmT FSm

Travail élémentaire des forces motrices : δWMOT = δmT Cm

Système holonôme → N équations de Lagrange


µ ¶
d ∂T ∂T ∂FV ∂WFS ∂UP ∂WMOT
− + + + = pour i = 1 à N
dt ∂ṁi ∂mi ∂ṁi ∂mi ∂mi ∂mi
Robotique MLL-2001

93
Structure du modèle dynamique (en mi )
³ ´
∂Amik ∂Ami j ∂Am jk
Coefficients de Christoffel : bmi, jk = 1
2 ∂m j + ∂mk − ∂mi

On pose :
N N
Bmi (m, ṁ) = ∑ ∑ bmi, jk ṁ j ṁk
j=1k=1

et
∂FV ∂WFS ∂UP
FV m ṁ = ; FSm = ; Pm = −
∂ṁi ∂mi ∂mi
Il vient : Modèle dynamique matriciel en m :

Am m̈ + Bm (m, ṁ) + FV m ṁ + FSm − Pm = Cm

Modèle compact :

Am m̈ + Sm (m, ṁ) = Cm
Robotique MLL-2001

94
Structure du modèle dynamique (en qi )
On pose :

Aq = RT Am R ; FV q = RT FV m R
FSq = RT FSm ; Pq = RT Pm ; Cq = RT Cm

En posant :
³ ´ N N
∂Aqik ∂Aqi j ∂Aq jk
bqi, jk = 1
2 ∂q j + ∂qk − ∂qi → Bqi (q, q̇) = ∑ ∑ bqi, jk q̇ j q̇k
j=1k=1

Il vient : Modèle dynamique matriciel en q :

Aq q̈ + Bq (q, q̇) + FV q q̇ + FSq − Pq = Cq

Modèle compact :

Aq q̈ + Sq (q, q̇) = Cq
Robotique MLL-2001

95
Commande “dynamique” articulaire
Dynamique articulaire linéaire imposée (2ème ordre) :
¡ des ¢
m̈ = −2zωṁ + ω2 m −m

Commande non-linéaire théorique :


¡ ¢
Cmcom = Am ω2 mdes − m − 2Am zωṁ + Sm (m, ṁ)
Robotique MLL-2001

96
Régulateur proportionnel dérivé à coefficients constants
Simplification extrême conduit à :
³ ´ ¡ ¢
Cmcom = KP m des
− m − KV − F̂V ṁ − P̂m

avec :

— Âm matrice diagonale estimée à partir de Am en configuration moyenne.


— KP = ω2 Âm diagonal
— KV = 2zωÂm diagonal
— F̂V est une valeur estimée de FV en configuration moyenne.
— P̂m est une valeur estimée de Pm en configuration moyenne.
Robotique MLL-2001

97
Stabilité de la commande
Hyp : Constantes de temps mesures et actionneurs négligées,
¡ ¢
com = K mdes − m − K ṁ − P̂
réalisation parfaite de : Cm = Cm P V m

On considère la fonction de Lyapunov :


³¡ ¢T ¡ des ¢ ´
V= m − m K p m − m + ṁ Am ṁ
1
des
2
T

En utilisant l’identité remarquable ṁT Bm (m, ṁ) = 12 ṁT Ȧm ṁ on démontre que :
¡ ¢
dV
dt = −ṁT (KV + FV ) ṁ − ṁT FS + ṁT Pm − P̂m
— −ṁT FS est négatif (frottements secs signes opposés à ṁ)
— −ṁT (KV + FV ) ṁ est négatif (matrices KP et KV positives par hyp.)

Pm = P̂m → dV
dt < 0. Il y a stabilité si compensation parfaite poids et ressorts.
Les forces centrifuges et Coriolis ne sont pas déstabilisantes.
Robotique MLL-2001

98
Commande classique en tension d’un axe de robot
électrique
Boucle de vitesse avec correcteur proportionnel intégral

Boucle de position avec correcteur proportionnel


Robotique MLL-2001

99
Commande classique en tension d’un axe de robot
électrique (suite)
Exemple de réglage de la commande (pour f négligeable) . Paramètres :
rJ
— constante de temps mécanique : τm '
kc ke
l
— constante de temps électrique : τ1 '
r
Réglages initiaux :

cte vit. : τV ≥ 4τ1 


 ṁ 1
cte. int. : τI = τm → =
τm 
 vcom 1 + τV p + τ1 τV p2
gain vit. : kV = ke 

τV
¾
kV m 1
gain pos. : k p = → '
4τV mdes (1 + 2τV p)2 (1 + τ1 p)
Robotique MLL-2001

100
Commande classique en tension d’un axe de robot
électrique (suite)
Les lieux des pôles
Robotique MLL-2001

de la boucle de vitesse (gauche), de la boucle de position (droite)

101
Commande classique en débit d’un axe de robot
hydraulique
Fonction de transfert servo-valve négligée

Boucle de vitesse avec correcteur avance de phase dans le retour.

Boucle de position avec correcteur proportionnel (il faudrait ajouter un terme


intégral).
Robotique MLL-2001

Plus délicat à régler qu’un axe électrique.

102
Commande classique axe de robot hydraulique (suite)

a) Lieu des pôles sans retour tachymétrique


Robotique MLL-2001

b) Lieu des pôles avec retour tachymétrique pur

103
Commande classique axe de robot hydraulique (suite)

a) boucle de vitesse avec avance de phase dans le retour

b) boucle de position correspondante


Robotique MLL-2001

104
Commande prédictive en poursuite articulaire

 pre
Cm = Amdes m̈des + Smdes (mdes , ṁdes )
com pre reg
Cm = Cm +Cm avec ¡ ¢ ¡ ¢
 Cmreg = A des ω2 mdes − m + 2A des zω ṁdes − ṁ
m m
Robotique MLL-2001

105
Commande temps minimal à commutations
Problème : Réaliser en temps minimal une trajectoire paramétrique mdes (u)

sous les contraintes : Cmin ≤ Cm ≤ Cmax

Calcul du modèle dynamique sur la trajectoire (paramétré en u) :



/
ṁ = mu u̇  ³ ´ ³ ´
/ // /
→ Am mu ü + Am mu u̇ + Sm (m, mu u̇) = Cm
m̈ = mu u̇ + mu ü 
// /

D’où les 6 contraintes sur ü :


³ ´ ³ ´ ³ ´
// / / // /
Cmin − Am mu u̇ − Sm (m, mu u̇) ≤ Am mu ü ≤ Cmax − Am mu u̇ − Sm (m, mu u̇)

ré-écrites :

I (u, u̇) ≤ λi ü ≤ S (u, u̇)


Robotique MLL-2001

106
Commande temps minimal à commutations (suite)
Limitations sur l’accélération paramétrique ü

λi = 0 → pas de limite sur ü


 

  Ii


Ui min (u, u̇) = λi

 λ >0→
 i  Ui max (u, u̇) = Si
 λi
λi 6= 0 → Ui min (u, u̇) ≤ ü ≤ Ui max (u, u̇)

  Si


Ui min (u, u̇) = λi

 λ <0→
 i  Ui max (u, u̇) = Ii
λi

D’où :

Umin (u, u̇) = maxi|λi6=0 Ui min (u, u̇) 
→ Umin (u, u̇) ≤ ü ≤ Umax (u, u̇)
Umax (u, u̇) = mini|λi6=0 Ui max (u, u̇) 
Robotique MLL-2001

107
Commande temps minimal à commutations (suite)
Robotique MLL-2001

108
Commande temps minimal à commutations (suite)
Robotique MLL-2001

109
Commande temps minimal à commutations (suite)
Problème : Le calcul des points A1 est très long : Calcul itératif nécessitant
l’intégration de 2 trajectoires à chaque itération.

Accélération de l’algorithme : Recherche des points critiques T sur


U (u, u̇) = Umin (u, u̇) −Umax (u, u̇) = 0 tels que
¡ dU dU ¢T
la pente de la courbe U (normale à d u̇ , du soit tangente aux trajectoires (de pente
d u̇ ü
du = u):
dU dU
d u̇ Umin (u, u̇) + du u̇ =0

D’où l’algorithme :

1) Intégrer traj. directe ini. et traj. rétrograde fin.

2) Si traj. directe ∩ traj. rétrograde fin en région 1 → Fin de l’algorithme.

3) Recherche premier point critique T après ∩ traj. directe avec courbe U = 0.

4) A partir de T intégrer traj. rétrograde antérieure (ü = Umin ) jusqu’à ancienne traj.
Robotique MLL-2001

directe et intégrer nouvelle traj. directe (ü = Umax ) à partir de T.

5) Retour en 2.

110
Commande temps minimal à commutations (suite)
La mise en oeuvre nécessite le calcul

— Pour tout u de :
/
d des d // 2
– m = mdes (u) ; mu = du m (u) ; mu = du 2m
des (u)

/ //
– Am = Am (m) , λ = Am mu ; Am mu
— Pour tout couple (u, u̇) de U = 0 ou de la trajectoire :
/
– Sm (m, mu u̇)
– I (u, u̇) ; S (u, u̇) ;Umin (u, u̇) ;Umax (u, u̇) ;U (u, u̇)

Génération de la courbe U = 0 : Recherche 1er point de U (0, u̇) = 0 (par dicho par ex.)
puis recherche U (u + ∆u, u̇) = 0 (par Newton-Ralphson par ex.) de u = 0 à u f inal .
Robotique MLL-2001

111
Commande cartésienne par guidage en position articulaire
Robotique MLL-2001

112
Commande cartésienne par guidage en vitesse articulaire
¡ ¢
Ẋ com = kP X des − X → q̇com = PẊ com ou q̇com = J−1 Ẋ com

Suppose q tel que det (J) 6= 0


Robotique MLL-2001

113
Commande cartésienne par guidage en vitesse articulaire
(suite)
Erreur de situation :

— ∆X position = ∆M = OMdes − OM
— ∆Xorientation = ∆A :
  
0 −sψ cψ cθ ψdes − ψ
  
– Angles aéro. par ex. : (∆A )B0 = 
 0 cψ sψ cθ   θ − θ 
  des

1 0 −sθ ϕdes − ϕ
Robotique MLL-2001

114
Commande cartésienne par guidage en vitesse articulaire
(suite)
Erreur d’orientation (suite) :

— – Quaternions (QMM des )B = Q0M des Q−1


 0 0M
 = 2 arcsin (kpur (Q des )k) pur(QMMdes )
∆A
MM kpur(QMMdes )k

' 2pur (QMM des )
– Matrices (RMM des )B = R0M des R−1
 0 0M
 = arcsin (vanti (R des )) vanti(RMMdes )
∆A
MM kvanti(RMMdes )k

' vanti (RMM des )
Robotique MLL-2001

115
Commande cartésienne par guidage en vitesse articulaire
(suite)
Saturation homothétique des vitesses cartésiennes commandées

Effectuée indépendamment sur chaque partie VMcom = kP ∆M et Ωcom = kP ∆A

|Ẋicom |
λ = maxi Ẋimax

— Si λ ≤ 1 → Pas de saturation
— Si λ > 1, correction homothétique :

Xicom = λ1 Ẋicom
Robotique MLL-2001

116
Commande “dynamique” cartésienne
Dynamique cartésienne linéaire imposée :

Ẍ = ω2 ∆X − 2zωẊ

Commande non-linéaire théorique :


£ 2 ¡ ¢ ¤
Cqcom
= Aq J −1
ω ∆X − 2zωJ + J q̇ + Sq (q, q̇) (robot série)
˙
£ 2 ¡ −1 −1
¢ ¤
Cq = Aq Pω ∆X + ṖP − 2zPωP
com q̇ + Sq (q, q̇) (robot (parallèle)
Robotique MLL-2001

117
Poursuite cartésienne avec guidage en vitesse articulaire
Robotique MLL-2001

118
Poursuite cartésienne avec découplage cartésien
reg pre
Cqcom = Cq +Cq avec

 C pre = A ¡PẌ des + ṖẊ des ¢ + S ¡qdes , q̇des ¢
q q q
£ ¡ ¢¤ dans le cas d’un robot parallèle
 Cqreg = Aq P ω2 ∆X + 2zω Ẋ des − Ẋ

 C pre = A J −1 ¡Ẍ des − J˙q̇des ¢ + S ¡qdes , q̇des ¢
q q q
£ ¡ ¢¤ dans le cas d’un robot série
 Cqreg = Aq J −1 ω2 ∆X + 2zω Ẋ des − Ẋ
Robotique MLL-2001

119
Poursuite cartésienne avec découplage cartésien
Robotique MLL-2001

120
Principe de la commande en force sur obstacle fixe
Robotique MLL-2001

121
Exemple de correcteur pour une commande en force

p 
1+  ω = 8ω q
F
=Ã ω I ! avec I 9 0
et ω0 = mk
F des p 3
 ωF = 2 ω0
1+ 3
ωF
8
pour kI = 27 ω0 ; kP = 13 ; kV = − f + 2mω0
Robotique MLL-2001

122
Caractérisation des tâches de commande hybride
Partition de l’espace cartésien en axes commandés en position ou en force

Appui plan sur plan ⊥ Oz :


 
 position z  Fzdes
axes bloqués Commande
 rotation x, y  Mx = My = 0
 
 position x, y  V = V =?
x y
axes libres Commande
 rotation z  Ωz =?
Robotique MLL-2001

123
Caractérisation des tâches de commande hybride (suite)
Partition de l’espace cartésien en axes commandés en position ou en force

Insertion axe selon Oz :


 
 position x, y  Fx = Fy = 0
axes bloqués Commande
 rotation x, y  Mx = My = 0
 
 position z  V des
z
axes libres Commande
 rotation z  Ωz =?
Robotique MLL-2001

124
Caractérisation des tâches de commande hybride (suite)
Partition de l’espace cartésien en axes commandés en position ou en force

Vissage selon Oz :
 
 position x, y, z  F =F =F =0
x y z
axes bloqués Commande
 rotation x, y  Mx = My = 0
 
 position −  −
axes libres Commande
 rotation z  Ωdes
z
Robotique MLL-2001

125
Matrices de partition en sous-espaces position et force
Soient p1 , p2 , ... , pP les P directions de l’espace cartésien R6 commandées en
position
h i
On note P = p1 ··· pP la matrice 6 × P et

ΠP = p1 pT1 + · · · + p p pTp = PPT

la matrice 6 × 6 de projection dans le sous-espace commandé en position.

Soient f1 , f2 , ... , fF les directions de l’espace cartésien R6 commandées en force


h i
On note F = f1 ··· fF la matrice 6 × F et

ΠF = f1 f1T + · · · + fF fFT = FFT

la matrice 6 × 6 de projection dans le sous-espace commandé en force

avec P + F = 6 et ΠP + ΠF = 16×6
Robotique MLL-2001

126
Commande hybride par guidage cinématique articulaire

¡ ¢
q̇com = J −1 ΠP ẊP + ΠF ẊF
com com et q̈com = 2zω (q̇com − q̇)
Robotique MLL-2001

127
Commande hybride par guidage cinématique cartésien

¡ com ¢ −1
¡ com ¢
Ẋ com = ΠP ẊPcom + ΠF ẊFcom , Ẍ com = 2zω Ẋ − J q̇ et q̈com =J Ẍ − J q̇
˙
Robotique MLL-2001

128
Robotique MLL-2001 La suspension active pour soufflerie SACSO

129

Vous aimerez peut-être aussi