Cours Robotique 2014 PDF
Cours Robotique 2014 PDF
Cours Robotique 2014 PDF
Cours de
Plan du cours
6. Transmission des efforts - Equilibre des systèmes, Principes des travaux virtuels et
applications.
8. Résolution des modèles inverses - Cinématique inverse des chaı̂nes séries, algo-
rithmes de commande en position.
10. Dynamique des systèmes : Modèle dynamique inverse des systèmes séries en mou-
vement libre, Modèle dynamique cartésien, Modèle dynamique des systèmes con-
traints.
2
Contents
1 Introduction 6
1.1 Les Systèmes Mécaniques Robotisés . . . . . . . . . . . . . . . . . . . . . 6
1.2 Composants fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Structure d’un SM commandé . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Technologie des constituants . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 Exemples de problèmes considérés dans le cours . . . . . . . . . . . . . . 8
2 Elements de mathématique 10
2.1 Algèbre des matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Vecteurs, torseurs et fonctions vectorielles . . . . . . . . . . . . . . . . . 15
2.3 Systèmes d’équations linéaires . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4 Notions de groupe et d’algèbre des groupes . . . . . . . . . . . . . . . . 21
3 Repérage et Mécanismes 24
3.1 Repérage d’un corps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2 Les liaisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3 Paramétrage d’un système . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.4 Représentation topologique d’un système mécanique Σ . . . . . . . . . . 42
3.5 Mobilité des mécanismes . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5 Résolution du PGI 55
5.1 Systèmes séries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.2 Systèmes parallèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.3 Identification des paramètres géométriques . . . . . . . . . . . . . . . . . 64
5.3.1 Etalonnage des robots séries . . . . . . . . . . . . . . . . . . . . . 64
5.3.2 Etalonnage des robots parallèles . . . . . . . . . . . . . . . . . . . 66
6 Modèle cinématique 67
6.1 Mouvement d’un point . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.2 Vitesse d’un solide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.3 Composition de mouvements relatifs . . . . . . . . . . . . . . . . . . . . 70
6.4 Système de torseurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.5 Modèle cinématique direct . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3
8 Analyse de la transmission cinématique 86
8.1 Singularités dans les chaı̂nes séries . . . . . . . . . . . . . . . . . . . . . . 86
8.2 Singularités dans les chaı̂nes fermées . . . . . . . . . . . . . . . . . . . . 87
8.3 Singularités dans les chaı̂nes parallèles . . . . . . . . . . . . . . . . . . . 89
4
15.4.1 Solution par la Jacobienne transposée . . . . . . . . . . . . . . . . 126
15.4.2 Solution par la pseudo-inverse de Moore Penrose . . . . . . . . . . 128
15.5 Homogénéı̈sation de J pour le calcul de la pseudo-inverse . . . . . . . . . 131
15.6 Méthodes de détermination des mouvements internes . . . . . . . . . . . 132
15.6.1 Vecteurs du noyau de J . . . . . . . . . . . . . . . . . . . . . . . 132
15.6.2 Tâche secondaire dans l’espace articulaire . . . . . . . . . . . . . 133
15.6.3 Tâche secondaire dans l’espace cartésien . . . . . . . . . . . . . . 134
15.6.4 Autre formulation de la tâche secondaire . . . . . . . . . . . . . . 137
15.7 Augmentation de l’espace opérationnel . . . . . . . . . . . . . . . . . . . 138
15.8 Utilisation de méthodes d’optimisation . . . . . . . . . . . . . . . . . . . 140
15.8.1 Multiplicateurs de Lagrange . . . . . . . . . . . . . . . . . . . . . 140
15.8.2 Programmation linéaire . . . . . . . . . . . . . . . . . . . . . . . 140
15.9 Détermination des configurations singulières dans les manipulateurs re-
dondants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
15.10Passage des singularités . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
5
1 Introduction
1.1 Les Systèmes Mécaniques Robotisés
Les systèmes robotiques intéressent de très nombreux domaines civils et militaires. Les
grands champs d’application de la robotique sont :
1. La production manufacturière (usinage, assemblage, soudure, polissage, formage,
etc . . .)
2. Les interventions en milieux hostiles (sous-marin, nucléaire, exploration planétaire,
etc . . .)
3. Les systèmes de transport des biens et des personnes (véhicules intelligents, robots
mobiles, etc . . .)
4. L’aide et l’assistance aux personnes (robots personnels, aides techniques, etc . . .)
5. Les nombreux domaines de la santé (chirurgie, ré-éducation, etc . . .)
6. Le ludique (robots jouets )
Ils prennent des formes très diverses du point de vue de leur structure mécanique et de
leur commande. Plusieurs types de robots ”‘génériques”’ sont illustrés sur les figures qui
suivent.
Figure 1: Robot humanoide - Robot série de type SCARA - Robot série anthropomorphe
6
Figure 3: Main articulée - Robot chien - Robot hexapode
• Mécanismes: Corps rigides articulés par des liaisons mécaniques selon différentes
topologies.
7
Figure 4: Architecture générale d’un système robotique
4. Modèle cinématique
7. Commande dynamique
8. Génération de trajectoires
8
Figure 5: Architecture de commande d’un robot industriel
9
.
2 Elements de mathématique
2.1 Algèbre des matrices
• Matrices
Une matrice à m lignes et n colonnes (m × n) est un tableau rectangulaire de m lignes
et n colonnes regroupant les coefficients d’une application linéaire. Une matrice A peut
être écrite sous la forme :
a11 a12 . . . a1n
a a22 . . . a2n
21
A = (aij ) =
... ... ...
am1 am2 . . . amn
• Transposée d’une matrice
La transposée d’une matrice A (m × n) est une matice notée At (n × m) et telle que:
10
• Matrices diagonales
Une matrice A telle que ses aij = 0 si i 6= j est une matrice diagonale. On note une telle
matrice :
A = diag ( a11 a22 , . . . )
Une matrice identité (Id ) est une matrice diagonale avec comme éléments non-nuls 1.
• Matrices symétriques
Une matrice est symétrique si elle est égale à sa transposée:
A = At
A = −At
AAt = At A = Id
Propriétés: det(A) = ±1, les valeurs propres sont λ1 = 1, λ2,3 = e±iθ , le vecteur propre
associé à λ1 = 1 est l’axe de rotation.
Les matrices de changement de base sont un exemple de matrices orthogonales.
Si p = xp x1 + yp y1 + zp z1 et P = Xp x0 + Yp y0 + Zp z0
Xp (x1 .x0 ) (y1 .x0 ) (z1 .x0 ) xp
Y = (x .y ) (y .y ) (z1 0 yp
.y )
p 1 0 1 0
Zp (x1 .z0 ) (y1 .z0 ) (z1 .z0 ) zp
P =Ap
Les vecteurs-colonnes de A sont orthogonaux et unitaires.
• Déterminant d’une matrice
Le déterminant d’une matrice n × n est le scalaire défini par :
a11 a12 . . . ann
... ... . . . . . .
|A| =
... ... . . . . . .
a an2 . . . ann
n1
11
- Cij : est le cofacteur de l’élément aij ≡ mineur d’ordre (n − 1) obtenu en supprimant
la ligne i et la colonne j dans | A |.
• Norme d’une matrice
La norme la plus usuelle pour les matrices est la norme de Frobénius définie comme :
s X X
kAk = a2ij
i=1,m j=1,n
AA−1 = A−1 A = Id
A+
g A = Id ∈ R
n×n
AA+
d = Id ∈ R
m×m
La pseudo-inverse donne une solution approchée à un système linéaire au sens des moin-
dres carrés :
Les solutions à un système d’équations linéaires :
Ax=b
12
- si n > m, la solution x = A+ b est telle que min kxk2
La pseudo-inverse a la propriété qui est que pour un vecteur z arbitraire:
A(1d − A+ A)z = 0
A = SDS −1
AS = SD ; S −1 AS = D
Exemple :
2 1
A= λ1 = 1 λ2 = 3
1 2
1 1 1 0 1/2 −1/2
A=
−1 1 0 3 1/2 1/2
√ √
Si on divise S par 2 (et multiplie S −1 par 2) .
√ √ √ √
1/ √2 1/√2 1 0 2/2 −√ 2/2
A= √
−1/ 2 1/ 2 0 3 2/2 2/2
Si A est symétrique, S −1 = S t
• Décomposition LU
La décomposition LU est une méthode de décomposition d’une matrice en une matrice
triangulaire inférieure L et une matrice triangulaire supérieure U. Cette décomposition
est utilisée pour l’inversion de matrices.
Si A une matrice inversible, la matrice A peut être décomposée comme :
A = LU
1
l21 1
L = .. ..
. ...
.
ln1 ln2 ··· 1
et
A = LLt T
13
La matrice L est en quelque sorte une racine carrée de A. Cette décomposition permet
notamment de calculer la matrice inverse A−1 .
A v = σu et At u = σv
A = U ΣV t
t
A = Um×m Σm×n Vn×n
Σ1r×r 0 V1t |r × n
A = [U1 , U2 ]
0 0 V2t |r × (n − r)
σi ui vit
X
A=
i=1,r
kAuk kAuk
σmax = max σmin = min
u6=0 kuk u6=0 kuk
A+ = V Σ+ U t = V1 Σ+ U1t
14
avec :
Σ−1
" #
+ 1 r×r 0
Σ =
0 0
• Exponentielle d’une matrice
L’exponentielle d’une matrice carrée est définie comme :
n=∞
X An A2 An
exp(A) = =1+A+ + ... +
n=0 n! 2! n!
∂A d q
Ȧ = ≡ matrice(m × n × k)
∂ q dt
x = (x1 , x2 , . . . , xn )t
15
→ Un vecteur lié est un couple formé par un point P ∈ E et un vecteur (libre) u ∈ V.
→ Un vecteur glissant (P, u) est l’ensemble des vecteurs liés (Q, u) définis par P Q =
λu, λ ∈ R. C’est une classe d’équivalence de vecteurs liés.
• Un système de vecteurs est dit linéairement indépendant si:
X
λi ui = 0 λi ∈ R entraı̂ne λi = 0 ∀i
i=1,n
• Un système de vecteurs liés est un ensemble fini de vecteurs liés (P1 , u1 ), (P2 , u2 ), . . . (Pn , un ).
Cet ensemble de vecteurs défini un champ de vecteurs liés.
• Moment d’un vecteur
Le moment d’un vecteur lié (P, u) est le champ vectoriel défini par:
Q −→ MQ = QP ∧ u
Le moment ne change pas si l’on remplace (P, u) par un autre vecteur lié appartenant
au même vecteur glissant par exemple (P 0 , u) :
MQ (P 0 , u) = (QP + P P 0 ) ∧ u = MQ (P, u)
Cette relation définit un champ vectoriel particulier qui est dit champ de moments
• Résultante et Moment résultant
On appelle résultante d’un système de vecteurs liés le vecteur libre :
X
R= ui
i=1,n
16
• Produit vectoriel
Le produit vectoriel de 2 vecteurs de dimension 3 dont les composantes dans la base
(i, j, k) sont : a = (a1 , a2 , a3 )t b = (b1 , b2 , b3 )t est un vecteur c orthogonal au plan formé
par les vecteurs a, b et défini par :
i j k
c = a ∧ b = a1 a2 a3 = (a2 b3 − a3 b2 )i + (a3 b1 − a1 b3 )j + (a1 b2 − a2 b1 )k
b1 b2 b3
Il peut être aussi représenté par :
0 −a3 a2 b1
a ∧ b = ( a2 b3 − a3 b2 a3 b1 − a1 b3 a1 b2 − a2 b1 ) = a3
0 −a1 b2 = âb
−a2 a1 0 b3
â est une matrice antisymétrique :
ât = −â
Notons que si a et b sont linéairement dépendant a ∧ b = âb = 0
Le double produit vectoriel s’écrit :
a ∧ (b ∧ c) = (a.c)b − (a.b)c
• Produit mixte
Le produit mixte entre 3 vecteurs est le scalaire défini comme :
(a, b, c) = a.(b ∧ c)
(a, b, c) 6= 0
• Torseurs
Un torseur T de l’espace physique de dimension 3 est formé par un couple (R, MP )
(vecteur; champ vectoriel antisymétrique).
MP répond à la loi :
∀P, Q ∈ E 3 MP = MQ + P Q ∧ R
∃ un point H tel que : R ∧ MH = 0
R ∧ MO
OH = + kR k ∈ kR
R2
17
→ droite axe central du torseur.
→ pour k = 0, OH0 = R∧M R2
O
vo = v k + v ⊥ = λv + OH ∧ ω
mo = mk + m⊥ = λf + OH ∧ f
• Torseurs particuliers:
→ Un glisseur est un torseur qui admet comme représentant un vecteur glissant (l’invariant
scalaire est nul)
G(R, MQ ) R = u; MQ = QP ∧ u
si (kP, u) est un vecteur lié.
→ Un couple est un torseur de résultante nulle
C(0, M )
Un couple peut être représenté par deux vecteurs liés (P1 , R1 ) (P2 , −R1 )
R1 = R2 ; ∀A ∈ E 3 M1A = M2A
• Somme
La somme de 2 torseurs est un torseur :
• Produit réciproque
Le produit réciproque (comoment) de 2 torseurs est le scalaire (indépendant du point où
on le calcule):
T1 • T2 = R1 .M2A + R2 .M1A
• Dérivation vectorielle
La dérivée du vecteur OM (t) fixe dans Bi est le vecteur :
18
La dérivée de la fonction vectorielle u(t) par rapport à Bi , Bj étant mobile par rapport
à Bi .
d(i) u(t) d(j) u(t) (i)
= + ωj ∧ u(t)
dt dt
• Différentiation d’une fonction scalaire
La dérivée de la fonction y = f (x) est :
f (x) − f (x0 )
f 0 (x0 ) = limx→x0
x − x0
La différentielle de la fonction f (x) est :
df (x) = f 0 (x)dx
f = f (q1 , . . . , qn , t)
f1 = f1 (q1 , . . . , qn )
19
f2 = f2 (q1 , . . . , qn )
... = ....................
fm = fm (q1 , . . . , qn )
t
Si on note F = (f1 , f2 , . . . , fm ) , par différentiation de F par rapport à t on a:
dF ∂Fdq
=
dt ∂q dt
où: ∂f1 ∂f1 ∂f1
∂q1 ∂q2
... ∂qn
∂f ∂f2 ∂f2
∂F
2 ...
= ∂q1 ∂q2 ∂qn
∂q ... ... ... ...
∂fm ∂fm ∂fm
∂q1 ∂q2
... ∂qn
20
2.4 Notions de groupe et d’algèbre des groupes
• Définition d’un groupe
Un groupe est un ensemble G muni d’une opération interne (◦), c’est à dire une opération
linéaire de G × G → G telle que l’image de deux de ces éléments (g1 , g2 ) est (g1 ◦ g2 ).
Cette opération doit présenter les propriétés suivantes :
1. associativité : ∀g1 , g2 , g3 : (g1 ◦ g2 ) ◦ g3 = g1 ◦ (g2 ◦ g3 )
• Groupes de Lie
21
Les algèbres de Lie sont naturellement associées aux groupes de Lie. Si G est un groupe
de Lie et eg son élément neutre, alors l’espace tangent en eg à G est une algèbre de Lie
G. Réciproquement, on peut sous certaines conditions reconstruire un groupe de Lie en
partant de son algèbre de Lie.
On montre que l’algèbre de Lie des générateurs de transformations infinitésimales
peut être associé aux transformations finies des solides. Ainsi des sous-groupes de
déplacements peuvent être à partir de la fonction exponentielle des algèbres de Lie des
torseurs.
Les relations établies à travers un ensemble de théorèmes entre un groupe de Lie et
son algèbre constitue un point essentiel. Elles permettent des déductions qui, partant
de propriété des groupes ou de sous-groupes, permettent d’aboutir à des propriétés de
son algèbre ou des sous-algèbres à travers le calcul différentiel. A l’inverse, il est beau-
coup plus difficile de d’établir par intégration des propriétés (globales) sur les groupes
en remontant à partir de l’algèbre (de propriétés locales).
• Représentation adjointe
Un outil important pour létude des algèbres de Lie est la notion de représentation par la
donnée d’un espace vectoriel et d’un morphisme de groupe. Tout groupe de Lie connexe G
admet une représentation naturelle, appelée représentation adjointe dont l’introduction
est liée à la définition de son algèbre de Lie Le goupe de Lie G a ainsi sa représentation
dans son propre algèbre qui est définie par l’application :
AdG (h) = [g, h] = G h G−1
L’action adjointe de SO(3) sur son propre algèbre so(3) se calcule comme 1 :
ω̂ 0 = Rω̂Rt
avec :
0 −ωz ωy
ω̂ = ωz 0 ωx
−ωy ωx 0
Si la matrice de rotation R est prise sous la forme :
t
r1
t
R= r2
r3t
On peut alors calculer facilement :
Rω̂Rt = R ( ω ∧ r1 | ω ∧ r2 | ω ∧ r3 ) = Rω
L’action adjointe de SE(3) sur son propre algèbre se(3) est définie à partir de
l’opérateur tangent à la trajectoire comme :
0
ω̂ v R d ω̂ v Rt −Rt d Rω̂Rt R v − Rω̂Rt d
= =
0 0 0 1 0 0 0 1 0 0
1
SO(3) et so(3) sont comme SE(3) et se(3) sont définis plus loin
22
On peut également définir cette action sur les composantes du torseur associé :
0
ω ω R 0 ω
= Ad(T ) = ˆ
v v dR R v
• Représentation coadjointe
De la représentation adjointe Ad on déduit naturellement une représentation de G dans
l’espace dual g ∗ . Par définition, cette représentation coadjointe de G dans g ∗ est une
application linéaire définie par :
L’action coadjointe de SE(3) sur le dual de l’algèbre de Lie se(3) (noté se(3)∗ ) est définie
à l’aide de l’opérateur Ad∗G sur les composantes d’un torseur :
0
w ω Rt dˆ Rt ω
= Ad∗G (T ) = t
v v 0 R v
23
3 Repérage et Mécanismes
3.1 Repérage d’un corps
Pour introduire le repérage d’un corps, on lui attache un repère RS .
→ un repère R∫ est formé par une origine Os et une base B(xs , ys , zs ).
→ un paramétrage peut être introduit sous par un vecteur position O0 OS et une représentation
de l’orientation de la base ( soit au total 6 paramètres indépendants, 3 dans le plan)
→ Les coordonnées dans R0 d’un point P = (xP , yP , zP )t de S sont:
XP xP
YP = R yP + O0 OS
ZP zP
XP x0 .xS x0 .yS x0 .zS xP x0 .O0 OS
YP = y0 .xS y0 .yS y0 .zS yP + y0 .O0 OS
24
SO(n) est un groupe algébrique. SO(3) est le groupe des rotations dans R3 .
- L’élément neutre est la matrice identité Id ∈ R3×3 .
- L’inverse R−1 = Rt
- L’opération de multiplication dans ce groupe est asociative : (R1 R2 )R3 = R1 (R2 R3 )
La configuration angulaire d’un corps en mouvement libre dans l’espace peut être
définie par une unique matrice de rotation R ∈ SO(3). Sa trajectoire en rotation sur
l’intervalle [0, T ] est une courbe R(t) ∈ SO(3) pour t = [0, T ]
R(u ∧ v) = Ru ∧ Rv ∀u, v ∈ R3
SO(2) est le groupe des rotations planes. Il est isomorphe au cercle S1, formé des
nombres complexes de module 1, muni de la multiplication. Cet isomorphisme lie le
nombre complexe ei·φ = cos(φ) + i · sin(φ) à la matrice orthogonale
cos(φ) − sin(φ)
Rφ =
sin(φ) cos(φ)
Un vecteur V de composantes [x; y] a pour transformé le vecteur V 0 de composantes
(x0 ; y 0 ) que l’on peut calculer avec :
0
x cos φ − sin φ x
=
y0 sin φ cos φ y
On a :
x0 = x cos φ − y sin φ
y 0 = x sin φ + y cos φ
Ce changement de coordonnées peut être écrit avec des nombres complexes :
ou encore :
x0 + i y 0 = e iφ
(x + i y) = e iφ
·c
• Représentation de la rotation dans l’espace
→ Rotation simple
Pour une rotation d’angle α autour de z (Rz0 ,α ):
25
Figure 7: Rotation simple
x1 .x0 y1 .x0 z1 .x0
on peut construire : R01 = [x01 |y01 |z01 ] = x1 .y0 y1 .y0 z1 .y0
Les composantes des vecteurs-colonnes x01 , y01 et z01 vérifient 6 relations scalaires:
2 2 2
r1j + r2j + r3j = 1 j = 1, 2, 3
26
Aussi, la dimension de SO(3) est 3.
t
Inversement : P1 = R01 P0
On vérifie que :
Rz,φ+θ = Rz,φ Rz,θ
Rz,0 = Id
→ Composition de rotations finies dans l’espace
Si on fait subir au vecteur OP (noté Pi dans le repère Ri ) deux rotations successives à
partir des repères courants, on a :
P1 = R12 P2
→ Angles d’Euler
3 rotations consécutives autour de 3 axes mobiles qui coincident au départ avec R1 .
- une rotation d’angle φ autour de z1 ≡ z2 (Rz1 ,φ ). La matrice de passage du repère R1
27
Figure 10: Composition de rotations autour d’axes de repères mobiles
au repère R2 est :
Cφ −Sφ 0
R12 Sφ
= Cφ 0
0 0 1
- une rotation d’angle θ autour de l’axe x2 ≡ x3 (Rx2 ,φ ). La matrice de passage du repère
R2 au repère R3 est :
1 0 0
R23 = 0 Cθ −Sθ
0 Sθ Cθ
- une rotation d’angle ψ autour de z3 ≡ z4 (Rz3 ,φ ). La matrice de passage du repère R3
au repère R4 est :
Cψ −Sψ 0
R34 = Sψ Cψ 0
0 0 1
La matrice de rotation qui définie le passage de la configuration angulaire de S après ces
3 rotations % par rapport à R1 est :
(CφCψ − SφCθSψ) (−CφSψ − SφCθCψ) (SφSθ)
R14 = Rz1 ,φ Rx2 ,φ Rz3 ,φ = R12 R23 R34 = (SφCψ + CφCθSψ) (−SφSψ + CφCθCψ) (−CφSθ)
SθSψ SθCψ Cθ
tan−1 (u/v)
si v > 0
−1
x = atan2(u, v) = tan (u/v) + πsign(u) si v < 0
π/2sign(v) si v = 0
Ainsi, si θ 6= 0 et θ 6= π on a :
q
2 2
θ = atan2( r31 , r32 , r33 )
ψ = atan2(r31 , r32 )
φ = atan2(r13 , r23 )
28
Si θ = 0 ou si θ = π, alors :
(ψ + φ) = atan2(r11 , r21 )
Les angles de Bryant sont une variante des angles d’Euler. Cependant il s’agit de
rotations autour d’axes fixes.
→ Rotations autour d’axes fixes
Un autre paramétrage possible de la rotation d’un corps conduit à introduire 3 rotations
autour des axes d’un repère fixe. Pour composer les rotations on effectue alors une pré-
multiplication des matrices de rotation. Si on considère l’exemple de la figure ci-dessous
où on fait subir au vecteur OP (noté Pi dans le repère Ri ) deux rotations successives φ
et θpar rapport aux axes y0 et z0 du repère R0 , on a :
P0 = Ry0 ,φ P1 = R01 P1
P1 = Ry0 ,−φ Rz0 ,θ Ry0 ,φ P2
Alors :
P0 = Ry0 ,φ [Ry0 ,−φ Rz0 ,θ Ry0 ,φ ]P2 = R12 R01 P2
Ainsi, la composition des rotation de Roulis-Tangage-Lacet (Roll-Pitch-Yaw sur la fig-
ure), conduit à :
29
Figure 12: Représentation d’une rotation par un axe+angle
det(RX − λX) = 0
(λ − 1)(λ2 − λ(tr(R) − 1) + 1) = 0
On note e le vecteur propre associé à la valeur propre λ1 = 1, les points de l’axe L sont
tels que :
L=ke k∈R
Les deux autres vecteurs propres forment le plan π perpendiculaire à l’axe de rotation.
L’angle de rotation φ est :
1
φ = (arcos(tr(R) − 1))
2
→ Formule de Cayley:
La formule de Cayley permet de définir les composantes du vecteur e.
e = ( e1 , e2 , e3 )t
Les ei sont les paramètres de Rodrigues. Elle peuvent être mis sous forme d’une matrice
anti-symétrique E = ê.
30
La formule de Caley est obtenue en considérant la conservation des distances dans la
transformation de P en P 0 , on a :
P 0 − P = RP − P = (R − 1)P
P 0 + P = RP + P = (R + 1)P
Si (R + 1) est non-singulière, alors :
P = (R + 1)−1 (P 0 + P )
E = (R − 1)(R + 1)−1
Inversement si (1 − E) non-singulière:
E(R + 1) = (R − 1)
ER+E−R+1=0
(1 + E) = (1 − E)R
R = (1 − E)−1 (1 + E)
On vérifie que le vecteur e est un vecteur de l’axe de rotation en considérant que les
points de coordonnées X qui restent invariants dans la rotation :
RX = (1 − E)−1 (1 + E)X = X
OP 0 = OQ + QP 0
31
avec :
- OQ = (p.s) s
- QP 0 = cosφ QP + sinφ QP 00
- QP 00 = s ∧ (QO + OP ) = s ∧ p = S p
- QP = −s ∧ QP 00 = −s ∧ (s ∧ p) = −S 2 p
−sy sx 0
A partir de cette représentation d’une rotation, on introduit les quaternions de norme 1
qui constituent une forme compacte de paramètrage des rotations. Cette représentation
est particulièrement bien adaptée à l’interpolation en rotation par sa simplicité (on ma-
nipule des vecteurs de dimension 4) et par le fait que, contrairement à l’interpolation sur
les représentations par des systèmes d’angles, les propriétés de R sont conservées (pas
besoin de refaire la normalisation et l’orthogonalisation des matrices !).
Un quaternion de rotation est sous la forme d’un élément de R4 q = (q1 , q2 , q3 , q4 )t et
est tel que kqk = 1 (3 paramètres indépendants) avec :
q0 (cos(φ/2)
q s sin(φ/2)
q = 1 = x
q2 sy sin(φ/2)
q3 sz sin(φ/2)
On l’écrit également sous la forme d’un couple formé du réel a et du vecteur ~v de R3
dont les coordonnées sont (b, c, d).
q = (a , ~v )
• le produit scalaire de deux quaternions : q1 •q2 = (a1 , ~v1 )•(a2 , ~v2 ) = a1 ·a2 +~v1 ·~v2
√ √ 1 1
• la norme d’un quaternion : kqk = q•q = q.q̄ = (q.q̄) 2 = (a2 + ~v · ~v ) 2 =
1
(a2 + k~v k2 ) 2
32
La tranformation d’un vecteur ~u en ~u0 par une rotation définie par le quaternion q s’écrit
:
~u0 = q · ~u · q̄
La matrice de rotation correspondant à ce quaternion q = (q0 , q1 , q2 , q3 ) est :
(q0 q0 + q1 q1 − q2 q2 − q3 q3 ) 2(q1 q2 − q0 q3 ) 2(q1 q3 + q0 q2 )
q3
→ Coordonnées exponentielles d’une rotation :
Pour une rotation θ autour de l’axe de vecteur unitaire s, on a :
ω̂ = θŝ
On vérifie que e[θŝ] est bien une matrice de rotation ([eθŝ ]−1 = [eθŝ ]t ) et det[eθŝ ] = +1.
33
• Transformations homogènes:
Un déplacement n’est pas une transformation linéaire (ce n’est pas une fonction additive).
Par exemple:
D(x + y) = x + y + d 6= D(x) + D(y)
→ 6 ∃ une matrice associée à D.
Un point P peut être représenté par ses coordonnées homogènes écrites usuellement
comme (x, y, z, w) (un vecteur de dimension n + 1 pour pour un point de E 3 ). Ces
coordonnées homogènes peuvent être utilisées pour appliquer des transformations à un
point 3D telles que les changements de déplacements, les rotations, les translations, les
homothéties, les projections. Ces transformations sont alors représentées sous la forme
d’une matrice 4×4. Si w = 1, les coordonnées du point P notées (XP , YP , ZP , 1) après un
déplacement D dans Rn+1 seront liées aux coordonnées (xp , yp , zp , 1) de ce même point
avant déplacment par la relation :
XP xp
Y R3×3 d3×1 yp
P
=
ZP 0 1 zp
1 1
P R d p P p
= =T
1 0 1 1 1 1
Les déplacements dans Rn forment un groupe, appelé groupe des déplacements Euclidiens
(noté SE(n) : Special Euclidan Group). Un élément T de SE(n) est défini par une
rotation R ∈ SO(n) et une translation d ∈ Rn .
Rn×n dn×1
SE(n) = T = ; R ∈ SO(n) ; p ∈ Rn
0 1
g = (R, d) p ∈ Rn g(p) = R p + d
34
→ la dimension de l’espace des configurations d = 3, 6 ≡ dimension du groupe des
déplacements SE(2), SE(3).
• Composition de 2 déplacements
35
• les liaisons dépendantes du temps (rhéonomes) (∂h/∂t 6= 0) : h(q, q̇, t) = 0
L’éventuelle dépendance par rapport au temps d’une liaison vient nécessairement
d’obstacles mobiles dont la position connue a priori dépend explicitement du temps
.
• Liaisons holonomes
A titre d’exemple de liaison holonome, nous considérons le cas des liaisons de rotation
et de translation dans le plan.
- Liaison de rotation (dans le plan):
Oi + R0i Pi − Oj − R0j Pj = 0
ou encore sous une forme matricielle :
Oix Cθi −Sθi Pix Oj x Cθj −Sθj Pj x 0
+ − + =
Oiy Sθi Cθi Piy Oj y Sθj Cθj Pj y 0
h1 : θi − θj − c = 0
36
avec : (Pi − Pj )R0 = (Oi + R0i Pi − Oj − R0j Pj )
et :(Pi − Qi )R0 = R0i (Pi − Qi )
Ces relations scalaires reflètent les contraintes mécaniques imposées sur le déplacement
relatif des 2 corps liés par la liaison.
Pour une liaison d’indice i, le nombre de ces contraintes (satisfaites par les efforts
d’interaction entre les corps) est noté ui . ui représente donc également la dimension du
torseur des efforts d’interaction entre par exemple les corps k et l (ui = dim(Ts (Sk /Sl )).
De plus, si la liaison est parfaite (non-dissipative), le mouvement relatif entre les
corps k et l peut être défini par un torseur complémentaire réciproque Tc (Sk /Sl ) à ce
dernier et donc tel que :
Ts (Sk /Sl ) • Tc (Sk /Sl ) = 0
ki = dim(Tc (Sk /Sl )) désigne le degré de la liaison. (i.e. nombre de degrés de liberté).
h(q, t) ≥ 0
37
un sous-groupe de SE(n). Une liste de ces sous-groupes figure dans le tableau ci-dessous.
Si le sous-groupe G1 est contenu dans le sous-groupe G2 , la relation est indiquée comme :
E identité
D(u) Translation de vecteur u
R(A, u ) Rotation autour de l’axe u passant par A
H(A, u , p) Vissage d’axe u passant par A
T (P l) Translation parallèle au plan P l
C(A,u) Mouvement cylindrique suivant u passant par A
T Translation dans l’espace
S(A) Rotation sphérique autour du point A
D Déplacement général dans l’espace
G1 ⊂ G2
R(A, e) ⊂ C(A, e)
R(A, e) ⊂ S(A)
H(A, e, p) ⊂ C(A, e)
Pour une chaı̂ne cinématique série dans laquelle les solides i, i + 1, i + 2, . . . , i + j sont
reliés par les liaisons k = i, i + 1, i + 2, . . . , i + j − 1, en considérant le mouvement relatif
de la liaisons k décrit par le sous-groupe Gk , le déplacement relatif des solides i et i+j est
décrit par le sous-groupe Bii+j ( généré par la liaison équivalente ) obtenu par le produit
des déplacements relatifs introduits par les laisions.
i+j−1
Bii+j =
Y
Gk
i
Pour des mécanismes parallèles comme ceux représentés sur la figure 17, la dimension
du générateur du mouvement relatif de la plate-forme mobile (SP ) par rapport au corps
fixe (S0 ) qui sont reliées par N chemins séries est:
• Liaisons non-holonomes
Lorsqu’en plus des conditions géométriques de contact les solides sont astreints à k
38
Figure 17: Mécanismes parallèles équivalents cinématiquement
39
conditions cinénatiques, on parle alors de l’existence de liaisons non-holonomes. Elles
sont de la forme :
f (q, q̇, t) = 0
Une liaison non-holonome nécessite une liaison holonome traduisant le contact. Un
exemple typique de liaison non-holonome est celui d’une roue qui roule sans glisser sur
un plan. La vitesse de glissement dans R0 du point IS1 dans le mouvement relatif de S2
par rapport à S1 est:
U̇ = I˙t − I˙t
S1 U̇ ∈ plan tangent
S2
θ̇
Les k relations de contraintes peuvent alors être mises sous la forme d’un système
d’équations différentielles ordinaires :
A(q)q̇ = 0
Un tel système est dit pfaffien puisqu’il est constitué dun ensemble fini de formes dérivées
(différentielles) de degré 1.
Les mouvements compatibles avec les contraintes sont tels que :
A N (A) = 0
ici :
cos θ 0
N (A) = sin θ
0
0 1
Les dérivées par rapport au temps des paramètres de configuration q de la roue peuvent
s’exprimer en fonction des pseudo-vitesses indépendantes :
q̇1 cos θ 0
u1
q̇2 = sin θ 0 u1 , u2 ∈ R
u2
q̇3 0 1
Ces contraintes peuvent être représentées dans l’espace des configurations de la roue (voir
figure 19).
Une liaison est dite non-holonomes si les k contraintes cinématiques ne sont pas
intégrables (transformables en contraintes géométriques). L’intégrabilité des contraintes
se traduit par le fait qu’il existe des fonctions scalaires fi telles que :
d fi (q(t)) X ∂fi (q(t)) ∂fi (q)
= q̇j = q̇ = A(q(t))q̇ = 0
dt j=1,k ∂qj ∂q
40
Figure 19: Représentation de l’espace des configurations
Pour un solide unique, l’ensemble des positions se déduit par une isométrie, c’est à dire
par un déplacement. Dans l’espace physique de dimension 3, le groupe des déplacements
(SE(3)) est de dimension 6 (respectivement 2 pour SE(2). L’ensemble des positions est
en bijection avec ce groupe.
• Paramètres d’un système Σ = S1 , S2 , . . . , Sb :
Paramétrer Σ, c’est associer à toutes ses configurations une famille de paramètres q. La
dimension de l’espace des configurations est pour un système de b − 1 solides en mouve-
ments libres (1 solide est souvent considéré comme fixe sauf dans le cas particulier des
systèmes humanoı̈des par exemple) dans :
- l’espace (SE(3)) → dim(q) = 6(b − 1)
- le plan (SE(2)) → dim(q) = 3(b − 1)
Pour un système de b solides à n liaisons holônomes indépendantes, la dimension du
sous-espace des configurations est dans :
- l’espace (SE(3)) → dim(q) = 6(b − 1) − i=1,n ui
P
La dimension de l’espace des configurations d’un système holonome est égal à sa mobilité:
X
m = d ∗ (b − 1) − ui
i=1,n
41
l’ensenble des corps du système par rapport à n’importe quel corps du système (pas un
corps particulier !!).
• Exemple de l’Hexarobot
42
sommets induits par la relation “est accessible à partir de”.
Notons que la connectivité des corps se représente très directement par une matrice
d’adjacence dont les composantes non-nulles peuvent également servir à différentier les
types de liaison.
• Topologies particulières :
Un très grand nombre de systèmes robotiques, les systèmes de manipulation robotisés
notamment, forment des structures acycliques (arborescentes) que nous désignerons par
systèmes séries.
D’autres structures particulières prennent la formes de chemins disposés en parallèles
(pouvant comporter des cycles internes) entre deux sommets particuliers (deux pôles).
Nous les désignerons par systèmes parallèles.
43
A(q)q̇ = 0 résultant de la présence de cycles cinématiques).
• Interprétation
- m, l’indice de mobilité est un entier relatif. Il ne reflète que la topologie du système
et représente le nombre de paramètres à priori nécessaires pour fixer la configuration de
tous les corps du mécanisme relativement les uns les autres. Celle mobilité peut être
répartie comme l’illustre l’exemple de la figure 22.
• Hyperstatisme
X
h = −d(b − 1) + ui = −Es + Is
i=1,n
m+h=0
mr = Ic − rg(Ec )
La mobilité d’un mécanisme peut être augmentée (d’un ou de plusieurs degrés) du fait de
particularités géométriques entre les axes géométriques des liaisons. Cette modification
44
peut être permanente ou ”‘locale”’.
La mobilité réelle du mécanisme représenté sur la figure ?? est par exemple gale à 3
alors que sa mobilité générale est nulle. Les particularités géométiques entre les axes des
laisions (les axes des liaisons de chaque chemin sont prallèles) libèrent des contraintes.
On interprète les singularités comme des points stationnaires dans la transmission des
mouvements articulaires.
De façon analogue, l’hyperstaticité réelle d’un mécanisme est :
hr = Is − rg(Es )
45
4 Modèle géométrique des systèmes
4.1 Paramétrage de la transformation entre 2 corps adjacents
Plusieurs types de paramétrage peuvent être utilisés pour décrire la géométrie des systèmes
séries. Le paramétrage selon la convention introduite par Denavit et Hartenberg est le
plus répandu. Il existe des variantes de ce paramétrage. Celle que nous suivrons est dite
convention de Denavit Hartenberg (DH) modifiée.
• Convention de DH modifiée
→ Les liaisons de Si définissent 2 axes dans Ri (∆i , ∆i+1 )
Le repère Ri associé au solide Si est défini de la manière suivante :
Ri−1 → Rint
i−1 → Ri
D(di , αi ) D(ri , θi )
Ti−1,i = Ti−1,int Tint,i
1 0 0 di Cθi −Sθi 0 0
0 Cα
i −Sαi 0 Sθ Cθi 0 0
Ti−1,int = Tint,i = i
0 Sαi Cαi 0 0 0 1 ri
0 0 0 1 0 0 0 1
Cθi −Sθi 0 di
Cα Sθ
i i Cαi Cθi −Sαi −ri Sαi
Ti−1,i =
Sαi Sθi Sαi Cθi Cαi ri Cαi
0 0 0 1
46
→ Récapitulatif:
- Ri est lié à Si
- zi est colinéaire à ∆i
- xi−1 est la ⊥ commune à zi−1 et zi
- yi−1 = zi−1 ∧ xi−1
- αi : angle mesuré autour de xi−1 entre zi−1 et zi
- di distance mesurée selon xi−1 entre zi−1 et zi
- θi : angle mesuré autour de zi entre xi−1 et xi
- ri : distance mesurée selon zi entre xi−1 et xi
• Convention de DH originaux
De la même manière que pour la définition des DH modifiés, le repère Ri est associé au
solide Si . L’axe zi est placé selon l’axe géométrique ∆i de la liaison i et xi est la perpen-
diculaire à zi et zi+1 selon laquelle on mesure la distance entre les 2 axes des liaisons di .
L’angle αi formé entre les 2 axes est mesuré autour de xi . θi est l’angle mesuré autour
de zi entre xi−1 et xi et ri est la distance mesurée selon zi entre xi−1 et xi
Notons que le paramètre di est dans cette convention le paramètre ri de la convention
précédente et que ai−1 est le paramètre di des DH modifiés. L’angle αi−1 remplace l’angle
αi .
La transformation Ri−1 → Ri est alors définie par la matrice :
0 0 0 1
47
quand θn = rn = 0
- On prend comme référence des paramètres variables (θi , ri ) telle que θi = ri = 0 puis
on fait un changement de variable pour revenir sur la référence matérielle:
→ Sur l’exemple :
di θi ri αi
0 θ1 0 0
a θ2 r2 -90
a θ3 0 90
T0h (φ, θ, ψ, XOh , YOh , ZOh ) = T01 (q1 ) T12 (q2 ) T23 (q3 ) . . . T(n−1)n (qn )Tnh (ctes)
48
Figure 28: Composition des transformations élémentaires
0 0 0 1 0 0 0 1
• Utilisation du MGD dans la commande de manipulateurs.
• Application au 3R plan
→ Tableau des paramètres de DH
di θi ri αi
0 θ1 0 0
a1 θ2 0 0
a2 θ3 0 0
49
Figure 30: Repères de DH associés au 3R Plan
T0h (XP , YP , Φ) = T01 (θ1 )T12 (θ2 )T23 (θ3 )T3h (a3 )
50
di 0 0 d3 = D 3 d4 = 0 0 0
αi 0 -90 0 -90 90 -90
ri 0 0 r3 r4 = RL4 0 0
θi θ1 θ2 θ3 θ4 θ5 θ6
ai−1 0 0 a2 a3 = 0 0 0
αi−1 0 -90 0 -90 90 -90
di 0 0 d3 d4 0 0
θi θ1 θ2 θ3 θ4 θ5 θ6
relations de contrainte entre les paramètres géométriques pour procéder à une réduction
du paramétrage notamment.
• Principe : On procède à une coupure virtuelle sur l’un des corps du mécanisme.
• Equation de structure:
Y
T(i−1),i = T0,(n+1)
i=1,(n+1)
• Exemple
0 0 1 0
−1 0 0 0
T01 (q1 ) T12 (q2 ) T23 (q3 ) T34 (q4 ) = T04 (ctes) =
0 −1 0 0
0 0 0 1
51
Figure 33: Exemple du mécanisme bielle-manivelle
0 0 0 1 0 0 0 1 0 0 0 1
→ Si x est la variable de commande, les relations de contrainte donnent :
x2 + a2 − l12 − l22 q
C2 = S2 = ± 1 − C22 ⇒ θ2 = atan2(S2 , C2 )
2 l1 l2
(l1 + l2 C2 )x + l2 S2 a (l1 + l2 C2 )a − l2 S2 x
C1 = 2 2
S1 = ⇒ θ1 = atan2(S1 , C1 )
x +a x 2 + a2
→ Plusieurs configurations possibles (i.e modes d’assemblage)
52
Figure 35: Exemple de la plate-forme de Gough-Stewart
R6h 06 Oh
j
IciT6h=
0 1
Pour chaque cycle du mécanisme :
j j j
= Tfk0 k k
Y Y
T0h T(i−1),i T6h T(i−1),i T6h
i=1,6 i=1,6
→ Les mécanismes en chaı̂ne parallèle avec liaisons passives n’ont pas de modèle géométrique
direct analytique. De plus les solutions sont généralement multiples
→ Justification sur le 3 × 3R plan. Si la position des acticulations actives (supposées sur
les axes des liaisons passant par les points 0i ) étant donnée, les points Ai sont fixes. On
peut considérer le mécanisme 4-barres A1B1B2A2 . La barre B1 B2 décrit une trajectoire
de couplage qui est décrite par un polynome de degré 16. On montre que l’intersection
de cette courbe avec le cercle que peut décrire la barre A3 B3 a 6 solutions.
53
La résolution du problème géométrique direct des manipulateurs parallèles est généralement
appropriée au système considéré. Nous donnons l’exemple du 3RPR plan 37. Pour ce
manipulateur, le modèle géométrique direct peut être établi à partir des équations de
structure (en position)suivantes :
ρ21 = x2 + y 2
ρ22 = (x + l2 Cφ − A2x )2 + (y + l2 Sφ − A2y )2
ρ23 = (x + l3 C(φ + β) − A3x )2 + (y + l3 S(φ + β) − A3y )2
En placant le point A2 tel que A2y et en retranchant l’équation (1) aux équations (2) et
(3), on obtient le système de deux équations suivant :
Rx + Sy + Q = 0
Ux + V y + W = 0
avec :
R = 2l2 Cφ − 2A2x
S = 2l2 Sφ
Q = −2A2x l2 Cφ + l22 + A22x − ρ22 + ρ21
U = 2l3 C(φ + β) − 2A3x
V = 2l3 S(φ + β) − 2A3y
W = −2A3y l3 S(φ + β) − 2A3x l3 C(φ + β) + l32 + A23x − ρ23 + ρ21 + A23y
54
En substituant ces expressions pour x et y dans la première équation (ρ21 = x2 + y 2 ),
et en remplacant les fonctions sin et cos par leur expression en fonction de la tangente
de t = tan(φ/2), on obtient un polynôme de degré 6 en t. Si RV − SU est non-
nul, en reportant dans les expressions de x et y, on résoud complètement le problème
géométrique direct pour ce système plan. Si RV − SU = 0, dans ce cas le manipulateur
est dit dégénéré. Il faut alors adapter la méthode de résolution.
Pour des plates-formes de Gough-Stewart (voir figure 35), une méthode pour résoudre
le problème géométrique direct est consiste à utiliser des techniques d’élimination algébrique
comme l’élimination dyalitique dont les principes sont exposés dans la section suivante.
Un exemple d’application de cette méthode à ce problème est développées dans : For-
ward kinematics of the general 6-6 Stewart platform using algebraic elimination, T-Y.
Lee, J-K. Shim, Mechanism and Machine Theory, Vol 36 (2001)
L’ensemble des 40 solutions au problème peuvent être alors déterminées.
Lorsqu’il n’existe pas de problème de convergence, des algorithmes d’optimisation
comme l’algorithme de Newton-Raphson peuvent être utiliser à partir de la fonction
coût : X h i2
F (q) = kbi − OP + R0P tk2 − ρ2i )
i=1,6
La solution la plus proche de la configuration courante peut ainsi être obtenue en temps-
réel.
5 Résolution du PGI
• Problème à résoudre : déterminer les valeurs des paramètres articulaires (qi ) pour
obtenir une configuration absolue donnée de l’effecteur T̄0h .
• Principe : ce problème est abordé avec les équations de structure du mécanisme.
R̄0h d¯0h
Y
T(i−1),i Tnh = T̄0h =
i=1,n
0 1
55
à partir de ces 12 équations, on résoud les qi , i = 1, n.
→ Seules 6 équations parmi les 12 sont indépendantes
0 0 0 1 0 0 0 1 0 0 0 1
C123 −S123 0 (l1 C1 + l2 C12 ) Cφ −Sφ 0 XP 1 0 0 −d
S C123 0 (l1 S1 + l2 S12 ) Sφ Cφ 0 YP 0 1
0 0
123
=
0 0 1 0 0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1 0 0 0 1
X03 = l1 C1 + l2 C12
Y03 = l1 S1 + l2 S12
Cφ = C123
56
X 2 +Y 2 −(l2 +l2 )
→ Résolution de θ2 C2 = 03 2l031 l2 1 2
Pour qu’une solution existe X023 + Y023 ≤ (l1 + l2 )2
θ2 = atan2(S2 , C2 )
→ Résolution de θ1
X03 = l1 C1 + l2 C1 C2 − l2 S1 S2 = k1 C1 − k2 S1
Y03 = l1 S1 + l2 S1 C2 + l2 C1 S2 = k1 S1 + k2 C1
θ3 = φ − θ2 − θ1
→ Autre méthode de résolution :
1−tg(θ/2)2 2t
On utilise les identitées cosθ = 1+tg 2 (θ/2) et sinθ = 1+tg 2 (θ/2) dans les équations: Exemple
pour θ1 :
2Y03 ± (4Y023 − 4X023 + A2 )1/2
θ1 = 2atan
2(X03 + A)
• Remarques à partir de l’exemple
- pour résoudre le problème d’ensemble, on décompose en sous-problèmes
- il peut exister plusieurs solutions (modes d’assemblage) au PGI,
- la configuration demandée doit être à l’intérieur du domaine accessible,
- le nombre de modes d’assemblage maxi pour un 6R est de 16.
• Méthode de Pieper
Pour un manipulateur ”analytique” à 6 liaisons (pour simplification R6 ≡ Rh ), on
exploite plusieurs formes de 6= formes de l’équation de structure pour isoler, au mieux,
les différentes variables.
Par exemple, le membre de gauche de (*) ne fait intervenir que q1 . On peut chercher à
déterminer l’expression de q1 en identifiant l’une des composantes de la matrice figurant
au membre de gauche avec un terme constant de la matrice du memebre de droite. On
progresse ensuite dans la résolution, variable après variable, en utilisant l’équation de
structure appropriés.
57
• Résolution des équations typiques
Dans la résolution des variables articualires qi , on aboutit généralement pour des systèmes
analytiques à des équations du type de celles ci-dessous :
Equation du type (1)
xSθi + yCθi = z
Si z = 0 θi = atan2(−y, x) et θi0 = atan2(y, −x)
Si z 6= 0
yCθi = z − xSθi
y 2 (1 − S 2 θi ) = z 2 − 2zxSθi + x2 S 2 θi
S 2 θi (x2 + y 2 ) − Sθi (2xz) + (z 2 − y 2 ) = 0
√
xz±y x2 +y 2 −z 2
On résoud l’équation du second degré en Sθi : Sθi = x2 +y 2
Idem pour Cθi
θi = atan2(Sθi , Cθi )
Equations du type (2)
xCθi + yCθij = z1
xSθi + ySθij = z2
(z12 + z22 − x2 − y 2 )
Cθj =
2xy
Sθj = ±(1 − C 2 θj )1/2
θj est donné par :
θj = atan2(Sθj , Cθj )
La résolution de θi peut se faire en développant les fonctions sin et cos. On obtient :
58
On peut alors entreprendre la résolution comme celle d’un système de 2 équations à 2
inconnues
→ Equation de structure
04 = (0, 0, 0, 1)t
C1 −S1 0 0 C2 −S2 0 0
S1 C1 0 0 0 0 −1 0
T01 =
T12 =
0 0 1 0 S2 C2 0 0
0 0 0 1 0 0 0 1
C3 −S3 0 D3 C4 −S4 0 0
S3 C3 0 0 0 0 1 RL4
T23 =
T34 =
0 0 1 0 −S4 −C4 0 0
0 0 0 1 0 0 0 1
C5 −S5 0 0 C6 −S6 0 0
0 0 −1 0 0 0 1 0
T45 = T56 =
S5 C5 0 0 −S6 −C6 0 0
0 0 0 1 0 0 0 1
→ Résolution de θ1 , θ2 , θ3 pour la mise en position.
04x 0
0 0
4y
= T01 T12 T23 T34
04z 0
1 1
59
→ Résolution de θ1 :
04x 0
0 0
−1 4y
T01 = T12 T23 T34
04z 0
1 1
Par identification de la seconde composante on trouve :
1 1
en utilisant les 2 premières équations :
θ3 = atan2(S3, C3)
sz nz az Fz Gz Hz
−C4Hz − S4Hx = 0
ce qui conduit à :
θ4 = atan2(Hz , −Hx ) θ40 = θ4 + 180
à partir des l’éléments (1, 3) et (3, 3), on obtient:
−S5 = C4Hx − S4 Hz C5 = Hy
60
Figure 38: Singularités du robot PUMA
−g(xk )
xk+1 = xk −
g 0 (xk )
→ Application au PGI :
La formulation multidimensionnelle de la méthode de Newton pour résoudre le PGI
est la suivante. On cherche la configuration definie par q qui vérifie les contraintes
61
géométriques de position et d’orientation de l’effecteur. Il s’agit donc de résoudre un
système d’équations suivant :
f1 (q) + x1 = 0
... ... ... (1)
f6 (q) + x6 = 0
1. Choisir les produits des puissances qui constituent les inconnues. Par exemple les
produits des puissances dans xz 2 + 6xy + 3yz + 4z + 1 = 0 sont xz 2 , xy, yz, z, 1
2. Introduire une inconnue dans les coefficients du polynôme qui devient la variable
6. Remplacer la variable trouvée dans le système initial et réitérer avec une autre
variable
Exemple :
e11 x21 + e12 x22 + e13 x1 x2 + e14 x1 + e15 x2 + e16 = 0
e21 x21 + e22 x22 + e23 x1 x2 + e24 x1 + e25 x2 + e26 = 0
les eij étant des coefficients constants.
En considérant que les puissances de x2 font partie des coefficients, le système d’équations
précédent se réécrit :
Ax21 + Bx1 + C = 0
A0 x21 + B 0 x1 + C 0 = 0
62
avec : A = e11 , B = e13 x1 + e14 et C = e12 x22 + e15 x2 + e16
et A0 = e21 , B 0 = e23 x1 + e24 et C = e22 x22 + e25 x2 + e26
Les produits des puissances sont x21 , x1 et 1 et les équations initiales s’expriment sous la
forme d’un système linéaire de ces produits. On génére des équations supplémentaires
pour rendre ce système carré en multipliant par exemple les équations par x1 . Ainsi on
aboutit au système : 3
0 A B C x1
0 A0 B 0 C 0 x2
1
=0
A B C 0 x1
A0 B 0 C 0 0 1
Ce système d’équations peut se mettre sous la forme matricielle suivante :
AY = 0
Puisque l’une des inconnues est l’unité, ce système n’adamet pas la solution banale
(x = 0). Pour que ce système homogène ait des solutions, il faut que detA = 0. Cette
condition conduit ici à un polynome en x du 4ème degré dont les racines sont les solutions
de l’équation. L’application de cette méthode au problème géométrique inverse des
robots manipulateurs de geométrie générale et particulière est détaillée dans l’article en
annexe : Inverse kinematics of six degree of freedom general and special manipulators
using symbolic computation, C. Mavroidis, F.B. Ouezdou, Ph. Bidaud, Robotica, vol 12,
1994. A titre d’exemple, on développe ici la procédure pour un manipulateur 6R général.
On s’appuie pour cela sur l’équation de structure écrité sous la forme suivante :
−1 −1 −1
T23 T34 T45 = T12 T01 T0h T56
Tfj0 j j
Y
T(i−1)i T6h = Tf h
i=1,6
j j j
Y
T(i−1),i = T0,f Tf,h Th,6
i=1,6
Une résolution identique à celle des systèmes séries seraient envisageables si toutes les
articulations (actives et passives) étaient munies de capteurs de position. Cependant en
général pour des raisons évidentes ce n’est pas le cas.
La résolution du problème géométrique direct d’un manipulateur parallèle peut être
envisagée sous une forme analytique ou numérique. Généralement la méthode est appro-
priée au système considéré. Il n’existe pas de méthode générale.
63
Pour traiter du cas des plates-formes de Stewart-Gough, la formulation la plus fréquemment
utilisée pour obtenir la forme analytique de la solution exploite les équations de contrainte
en position de chacun des chemins entre S0 et SP produitent par un chemin cinématique.
Sur l’exemple de la figure ??, Pour j = 1, ..., 6, on a l’équation de structure en position
:
0 0
0 0
Tfj0 j j
Y
T(i−1)i T6h = Tf h
0 0
i=1,6
1 1
ce qui conduit à l’équation vectorielle :
qui élevée au carré permet de déterminer les qi des actionneurs linéaires de ce type de
plate-forme : q
qi = ± (Ofj 0 + O6hj
− df h )2
64
On formule généralement le problème de l’étalonnage sous la forme suivante :
f (q, X, ηr ) = 0
où :
- X représente le vecteur des paramètres définissant position et orientation de l’effecteur,
- q est le vecteur des paramètres généralisés du système,
- ηr le vecteur des paramètres géométriques réels (à déterminer) qui minimise l’erreur
sur le modèle.
L’objet de l’étalonnage est de déterminer la valeur des paramètres géométriques η
qui minimise l’erreur sur le modèle. Il s’agit d’un problème d’optimisation non-linéaire
qui peut être abordé par exemple à l’aide d’une méthode des moindres-carrés.
La linéarisation par un développement de Taylor au premier ordre en η du modèle
précédent conduit à :
∆y(q, X, η) = Φ(q, η)∆η
avec :
- ∆y, l’erreur observée sur la configuration de l’effecteur,
- η, le vecteur des valeurs nominales de paramètres géométriques,
- ∆η = ηr − η le vecteur des erreurs des paramètres géométriques,
- Φ est la matrice Jacobienne dérivée de la fonction f par rapport aux paramètres
géométriques η.
Pour estimer ∆η, on place le manipulateur dans un certain nombre de configurations
1 2 k
q , q , q ceci pour former un système d’équations surdéterminé.
∆Y = W (Q, η)∆η
∆y 1 Φ(q 1 , η)
∆y 2 Φ(q 2 , η)
avec : ∆Y = W = , W est dite matrice d’observation du système.
... ...
∆y k Φ(q k , η)
Son rang doit être supérieur au nombre de paramètres géométriques à identifier.
La résolution de ce système d’équations conduit à :
∆η = W + (Q, η)∆Y
On procède à plusieurs itérations successives jusqu’à ce que l’erreur ∆η devienne suffisam-
ment faible. Pour chaque itération on procède à une mise à jour des valeurs paramètres
géométriques.
Notons que le conditionnement de W renseigne sur l’observabilité des paramètres
du système lors de l’identification. Un conditionnement proche de 1 conduit à de bons
résultats. Lorsque le conditionnement est trop élévé (ex > 1000), le modèle linéarisé ne
converge plus et il faut utiliser des métodes d’optimisation non-linéaire.
Si on considère la description géométrique du robot faite à l’aide des paramètres de
Denavit-Hartenberg modifiés, les petits déplacements produits sur l’effecteur relatifs à
chacun des paramètres sont :
xi−1 0 zi 0
φαi = φdi = φθi = φdi =
−xi−1 ∧ POi−1 xi−1 −zi ∧ POi zi
65
La prise en compte d’une erreur due à une rotation autour de l’axe yi−1 de paramètre βi
de valeur nominale 0 est parfois introduite lorsque l’axe de l’articulation i est parallèle
à celui de l’axe i − 1. Le vecteur déplacement correspondant est :
yi−1
φαi =
−yi−1 ∧ Oi−1 P
66
6 Modèle cinématique
6.1 Mouvement d’un point
Le mouvement d’un point ≡ séquence continue de positions occupées au cours du temps
décrivant une trajectoire. A chaque instant t correspond une position M (t) et une valeur
de s(t) l’arc Mg0M .
L’application t → s(t) est la loi horaire du mouvement du point M .
La vitesse de M à l’instant t dans R est définie par le vecteur:
67
Si les dérivées par rapport à R0 des vecteurs x1 , y1 , z1 sont représentées dans R1 :
d(0)
x1 = ax1 + by1 + cz1
dt
d(0)
z1 = gx1 + hy1 + iz1
dt
a d g mx
d d d
mx (x1 ) + my (y1 ) + mz (z1 ) = b e h my
dt dt dt
c f i mz
Puisque la base est orthonormée, on a:
g −f 0
0 −r +q
ω̂ = Ω01 =
r 0 −p
−q p 0
ω01 = vect(Ω01 ) = px1 + qy1 + rz1
ω01 : vecteur taux de rotation instantanée
On vérifie que :
D : R0 → R1
la configuration de R1 variant en fonction du temps t.
La position de P ∈ R1 dans R0 est :
68
−1
Ṗ0 (t) = Ṫ01 (q, t) T01 P0 (t)
• Pour un mouvement de rotation pure
t
Ṗ0 = Ṙ01 R01 P0
→ ṘRt est une matrice anti-symétrique.
RRt = 1
−sinθ −cosθ 0
dR ∂ Rd θ
= = θ̇ cosθ
−sinθ 0
dt ∂θ dt
0 0 0
0 −1 0
t
ṘR = θ̇ 1 0 0
0 0 0
D’une manière générale, si la vitesse de rotation ω = (ωx , ωy , ωz )t :
0 −ωz ωy
t
ṘR = ω̂ = ωz 0 −ωx
−ωy ωx 0
69
−1
La matrice 4 × 4 Ṫ01 T01 représente l’opérateur tangent à la trajectoire et constitue
l’algèbre de Lie se(3) associé à SE(3).
0 −ωz ωy v00 x
t
Ṙ01 R01 d˙01 − Ṙ01 R01
t
d01 ω̂01 ˙
d01 − ω01 d01 ω 0 −ωx v00 y ω̂ v
−1
Ṫ01 T01 = = = z =
0 0 0 0 −ωy ωx 0 v00 z 0 0
0 0 0 0
(0)
d˙01 − ω01 d01 représente la vitesse du point 00 lié à R1 (v00 ∈Rt )
1
ω̂01 et v00 définissent le champs des vitesses de R1 .
Les composantes vectorielles (ω01 , v00 ) sont les éléments de réduction du torseur des
vitesses.
La vitesse en chaque point P est obtenue par :
vP x Px
v ω̂01 v00 Py
Py
=
vP z 0 0 Pz
0 1
t t
ω̂02 = Ṙ01 R01 + R01 Ṙ12 R12
ω̂02 = ω̂01 + ω̂12 ≡ ω02 = ω01 + ω12
• Extension à un nombre n de repères:
(0)
(vP ∈Ri )(i−1)
X X
vP ∈Rn = ω0n = ωi−1,i
n n
70
• Transformation de coordonnées
Considérons comme donné l’opérateur tangent à la trajectoire du point P ∈ R1 dans
le mouvement de R1 par rapport à R0 . L’action adjointe de T23 sur l’élément de se(3)
ŵ12 vO2
est :
0 0
t t t t
R23 d23 ŵ12 vO2 R23 R23 d23 R23 ŵ12 R23 −R23 ŵ12 R23 d23 + R23 vO2
=
0 1 0 0 0 1 0 0
t
- R23 ŵ12 R23 = ŵ13 est la matrice du pré-produit vectoriel de w12 dans la base B3 .
• Torseur géométrique
Un torseur S peut être exprimé en fonction d’un torseur géométrique $
SP = (S, λS + P O ∧ S)
SP = kSk(s, λs + P O ∧ s)
SP = kSk(s, λs + sP ) = kSk(s, s∗P ) = kSk$ = kSk(u, v, w, l∗ , m∗ , n∗ )t
→ glisseur : SP = kSk(s, sP ), s, sP sont les coordonnées vectorielles d’une droite, soit 4
composantes scalaires indépendantes.
- u2 + v 2 + w2 = 1
- u.l + v.m + w.n = 0
→ couple : SP = kλSk(0, s)
• Produit réciproque (ou le comoment) de 2 torseurs:
Le produit réciproque de 2 torseurs est le nombre défini par :
En notant :
- α12 angle entre les 2 axes,
- d12 distance entre les 2 axes.
Remarques :
- $1 .$2 = 0 si d12 = 0 et cosα12 = 0 ou si λ1 = −λ2 et sinα12 = 0
- le produit réciproque est invariant dans une transformation Euclidienne
- la forme quadratique peut être négative, ce n’est donc pas un produit scalaire
- si $1 est un distributeur de vitesse et $2 un torseur de force le produit est homogène à
une puissance.
71
• l’ensemble des torseurs réciproques à un sous-ensemble T 0 de T , noté T R est défini
comme:
T R = {$R ∈ T R ; ∀$ ∈ T 0 ; $R .$ = 0}
• Relation sur les dimensions:
q̇1
q̇2
q̇3
TC (Sn /S0 ) = q̇1 $1 + q̇2 $2 + . . . + q̇n $n = [$1 , $2 , . . . , $n ]
.
.
q̇n
72
→ Formulation algébrique
En notant TC (Sn /S0 ) = (ωx , ωy , ωz , vx , vy , vz )t
ωx u1 u2 . . . un
ωy v1 v2 . . . vn q̇1
ωz
= w1 w2 . . . wn q̇2
v l∗ l2∗ . . . ln∗
. . .
x 1
∗
vy m1 m∗2 ∗
. . . mn q̇n
Ẋ = J6×n (q)q̇
Jω
Ẋ = q̇
Jv
→ Dérivation de l’équation de structure
Rappelons que l’équation de structure d’une chaı̂ne série s’écrit comme :
Y
T0n = Ti−1,i
i=1,n
X ∂Ti−1,i −1 −1
Ṗ0 = q̇i T0,i−1 T T P0
i=1,n ∂qi i−1,i 0,i−1
(i−1) (i−1)
!
ω̂i vOi−1
q̇i ∂T∂q
i−1,i −1
Ti−1,i
= représente l’opérateur tangent à la trajectoire dans le
i 0 0
mouvement relatif de Si par rapport à Si−1 .
−1
La prémultiplication par T0,i−1 et la post-multiplication par T0,i−1 permet d’exprimer la
vitesse angulaire relative de Ri par rapport à Ri−1 dans la base B0 ainsi que la vitesse
du point coincident O0 ∈ Rn par rapport à R0
→ Dérivation du modèle géométrique
73
d x2 ∂ f2 ∂ f2 ∂ f2
= q̇1 + q̇2 + . . . + q̇n
dt ∂q1 ∂q2 ∂qn
... = ...
d xm ∂ fm ∂ fm ∂ fm
= q̇1 + q̇2 + . . . + q̇n
dt ∂q1 ∂q2 ∂qn
∂ f1 ∂ f1 ∂ f1
ẋ1
... q̇1
∂∂qf12 ∂q2 ∂qn
ẋ ∂ f2 ∂ f2 q̇2
2 ...
= ∂q1 ∂q2 ∂qn .
... ..
... ... ... ...
∂ fm ∂ fm ∂ fm
ẋm ∂q ∂q2
... ∂qn q̇n
1
• Accélération absolue
L’accélération de l’effecteur par exemple peut être obtenue comme :
˙ q̇
Ẍ = J(q) q̈ + J(q)
Jv z1 z2 ... zn
J= =
Jω z1 ∧ a1 z2 ∧ a2 . . . z n ∧ an
avec ai = 0i P
• Modèle variationel
→ on considère un petit déplacement δq (du premier ordre par rapport aux dimensions
du système) autour d’une configuration q0 = 0 licite avec les liaisons
→ on cherche à déterminer le déplacement δX qui lui correspond.
→ linéarisation de X = F (q) autour de la configuration q = q0
∂F
F̃ (q) = F (q0 ) + δq + . . .
∂q
∂F
δq = δX
∂q
74
Jδq = δX
- δX : champ de déplacement relatif à la variation δq
- rapporté à la variation de temps δt → δX
δt
= J δq
δt
≡ Ẋ = J q̇
• Modèle cinématique des chaı̂nes fermées:
→ par dérivation de l’équation de contraintes
75
variable de sortie (ex. θ4 ) en utilisant une méthode de réduction des variables passives.
En dissociant variables d’entrée, passives et de sortie, l’équation cinématique de fermeture
se ré-écrit comme :
Hs(nc ×ns ) q̇s + Hp (nc ×(n−ns )) q̇p + He(nc ×(n−nc )) q̇e = 0
En utilisant une matrice Od telle que :
Opt Hp = 0
La matrice Op constitue le complément orthogonal à Hp . Elle peut être déterminée
en utilisant une orthogonalisation de Gramm-Schmidt par exemple. En multipliant
l’équation cinématique de fermeture par la matrice Opt on a la relation entrée/sortie
:
Opt Hs(nc ×ns ) q̇s + Opt He(nc ×(n−nc )) q̇e = 0
→ Loi entrée/sortie (seconde méthode):
On peut aussi utiliser une méthode d’élimination fondée sur l’utilisation d’un torseur
réciproque :
θ̇1 $1 + θ̇2 $2 + ṙ3 $3 = θ̇4 $4
On cherche pour cela un torseur $R 1 tel que :
$R 1 .$2 = 0
$R 1 .$3 = 0
On trouve que $R 1 = (−S12 , C12 , −r3 ). Ce torseur géométrique peut être assimilé à une
force passant par O2 et orthogonal à la direction de l’axe de la liaison de translation.
• Modèle cinématique des systèmes parallèles
La méthode de détermination du modèle cinématique des robots parallèles développée
dans ce qui suit utilise le principe des torseurs réciproques proposé ci-dessus.
→ Modèle cinématique direct du chemin 0 j 0 :
qij $ji = Ω$
X
i=1,m
76
j
→ Si $ji sont linéairement indépendants, on détermine $R i :
j
$R i .$jk = 0, k 6= i pour k = 1, ..., 6 (a)
On répète pour toutes les liaisons actives pour obtenir le modèle cinématique sous la
forme canonique:
˜
B q̇ = DẊ
˜ = (v , v , v , ω , ω , ω )t
Ẋ x y z x y z
j
- B est une matrice diagonale regroupant les termes $R i .$ji .
R1 1
$ 1 .$1 0 0 0 0 0
R1 1
0 $ 2 .$1 0 0 0 0
B=
. . . . . .
RN N
0 0 0 0 0 $ g .$g
Figure 41: Schéma cinématique d’un système parallèle plan à 3 chemins RPR
comme variables actives les actionneurs linéaires de chaque chemin. Pour chaque chemin
j on a l’équation de chaı̂ne ouverte suivante :
77
En notant les composantes des vecteurs OP Bj et Bj Aj dans RP
aj Uj
OP Bj = bj
etBj Aj = Vj
0 0
j
Pour éliminer les variables, on utilisera le torseur réciproque $R 2 tel que :
j
$R 2 .$jk = 0, pour k = 1, 3
et qui est :
j
$R 2 = ( Cθ1j , Sθ1j , aj Cθ1j )t
Ce torseur peut être interprété physiquement comme l’action transmise par le chemin j
sur SP par l’actionneur de la liaison active considérée.
Le système étant symétrique, on obtient donc directement le modèle cinématique qui
prend la forme suivante :
Les lignes de la matrice D sont les actions transmises par les actionneurs sur SP pour
commander son mouvement.
Pour le système plan pris comme exemple, le mouvement de SP sera complètement com-
mandable si les 3 actions (les 3 forces) soient linéairement indépendantes.
vBj = vOP + Bj OP ∧ ω
vBj = vOP + Bd
j OP ω
vBj = (Id , Bd ˜
j OP )Ẋ = Ej Ẋ
On peut éliminer les variables passives dans le cas où les actionneurs linéaires sont reliés
à SP et SO par des liaisons de rotation d’axes concourants en Aj et Bj en consédérant
que la vitesse du point Bj par rapport à RO s’écrit :
78
En projetant cette équation sur l’axe z2j , on a :
vOP
ṙ2j = (z2j , OP Bj ∧ z2j )
ω
On retrouve le même résultat que précédemment. L’une et l’autre des 2 méthodes sont
utilisables pour obtenir les modèles cinématiques des plate-formes de Gouth-Stewart.
→ Dans le cas particulier où la liaison en Bj est une liaison de type rotule (ou
équivalente comme pour l’exemple du préhenseur articulé de la figure 42. Seule la vitesse
linéaire produite par le chemin j est alors transmise sur SP , on a :
vBj = Jvj q̇ j
q̇ 1
Jv1 0 0 E1
2 ˜
0 Jv2 0 q̇ = E2 Ẋ
0 0 Jv3 q̇ 3 E3
79
7 Transmission des efforts
• Problème : On a souvent à établir les relations entre les différents efforts extérieurs
s’exercant sur Σ. Ces relations servent en particulier à déterminer les commandes à
appliquer dans les articulations d’un système pour compenser les effets de gravité ou les
actions à appliquer par l’effecteur sur l’environnement. Pour ce faire nous utiliserons le
principe des travaux virtuels.
80
∂M ∂M ∂M X ∂ M
δM = δq1 + δq2 + . . . + δqn = δqi
∂q1 ∂q2 ∂qn i=1,n ∂qi
→ Pour un système Σ le déplacement virtuel compatible avec les liaisons d’un solide
de configuration X(q).
dX ∂ Xdq
=
dt ∂q dt
∂X
dX = dq
∂q
Si δq ≡ dq :
∂X
δX = δq = Jδq
∂q
→ Exemple du 2R plan :
δΦ 1 1
δθ1 δθ1
δX = δPx0 = −l1 Sθ1 − l2 Sθ12 −l2 Sθ12 =J
δθ2 δθ2
δPy0 l1 Cθ1 + l2 Cθ12 l2 Cθ12
δWe,i = T̃C (Si ).TS (Si ) = (δθ, δPx0 , δPy0 ).(Fx0 , Fy0 , Mz0 ) = Mz0 δθ + Fx0 δPx0 + Fy0 δPy0
81
• Travail d’un système de forces extérieures
Le travail d’une famille de forces (Pj , Fj ) appliquée à Si s’écrit :
δWe , i = F1,i .δP1,i + F2,i .δP2,i + . . . + Fnf ,i .δPnf ,i
X X X
δWe , i = Fj,i .δPj,i = Fj,i .δOi + Fj,i .(Pj,i Oi ∧ δΦi ) = R.δOi + M(Oi ) .δΦi
j=1,nf j=1,nf j=1,nf
→ Travail des forces généralisées pour Σ paramétré par q, avec δq = (δq1 , . . . , δqn )t
82
Figure 43: Travail des interefforts de liaison
l2
C2 + P2y0 ( Cθ12 ) + Fx0 (−l2 Sθ12 ) + Fy0 (l2 Cθ12 ) = 0
2
Sous forme matricelle :
l1
C1 ( Cθ 1) (l1 Cθ1 + l22 Cθ12 ) P1y0 (−l1 Sθ1 − l2 Sθ12 ) (l1 Cθ1 + l2 Cθ12 ) Fx0
=− 2 +
C2 0 ( l22 Cθ12 ) P2y0 (−l2 Sθ12 ) (l2 Cθ12 ) F y0
δWi , Σ = δWl , 1/2 = (Fx , Fy , Fz , Mx , My , Mz )(δΦx , δΦy , δΦz , δO0 x , δO0 y , δO0 z )t
Dans un mouvement réel (ou virtuel licite avec les contraites) δWl , Σ = 0 ∀δq
δWl1/2 = Mz .δΦz = 0
• Equilibre d’un solide
→ Pour un solide isolé (Σ = Si ) :
δW, i = δWe , i + δWl , i = δWe , i = 0
83
Figure 44: Equilibre d’une prise
F1/S + F2/S = −P
OP P1 ∧ F1/S + OP P2 ∧ F2/S = 0
f
−1 0 1
1 0 0
f2
0 1 0 1 = P
f3
0 −r 0 r 0
f4
84
G f = −Fext
→ δWl 6= 0 dans un δq non-licite.
Un système de solides Σ = (S1 , . . . , S(b−1) ) est en équilibre si les forces extérieures sont
équilibrées. X X
δWe , Σ = Fj .δPj + Cj .δΦj
j=1,nf j=1,nc
∂Pj ∂Φj
δPj = δq ; δΦj = δq
∂q ∂q
∂Pj ∂Φj
Fjt Cjt
X X
δWe , Σ = [ + ]δq
j=1,nf ∂q j=1,nc ∂q
δWe , Σ = Qte δq = 0
Le PTV est vrai ∀δqi ce qui entraı̂ne :
Qi δqi = 0 ∀δqi = 1, n
C = −Jvt Fext
→ Application au système bielle-manivelle (Sans masse - Commande C1 - Sortie F )
C1 δθ1 − F δO3 = 0
C1 δθ1 − F (−l1 Sθ1 δθ1 − l2 Sθ12 δθ2 ) = 0
C1 = F (−l1 Sθ1 + l2 tgθ12 Cθ1 )
85
Figure 46: Transmission des efforts dans un mécanisme en chaı̂ne fermée
Ẋ = Jv q̇
vx0 −Sθ(l12 ) −Sθ(l2 ) θ̇1
= θ̇1 $1 + θ̇2 $2 =
vy0 Cθ(l12 ) Cθ(l2 ) R0 θ̇2
vx2 0 0 θ̇1
=
vy2 l12 l2 R2 θ̇2
vx0
= −tan(θ)
vy0
86
→ Les 2 composantes de la vitesse dans R0 sont liées, une composante dans R2 est
nulle.
→ La matrice Jv n’est plus régulière. Les vecteurs-colonnes ne sont pas linéairement
indépendantes: rg(Jv ) = 1
6 ∃ de solution à q̇ pour Ẋ arbitraire
→ θ̇1 $1 + θ̇2 $2 = 0 avec θ̇1 , θ̇2 non tous nuls.
→ Si T = {$1 , $2 }, ∃T R = {$R ∈ T R /∀$ ∈ T ; $.$R = 0}, dim(T R ) = 1
→ ∃ un torseur statique $R qui ne fait pas travailler les liaisons
Détermination : $R = (u, v)t
−Sθl12 u + Cθl12 v = 0
−Sθl2 u + Cθl2 v = 0
u = Cθ v = Sθ
→ A partir de la loi de transmission des forces : τ = −J t Fext
87
Figure 48: Exemple de chaı̂ne fermée simple
x = 0 et θ12 = π/2 + kπ
Dans cette configuration, le rang des équations cinématiques de contrainte rg(Cq ) est
diminué rg(Cq ) = 2, (mc = Ic − rg(Cq )). Ici, la mobilité du mécanisme est augmentée
d’une unité. La matrice Cq devient :
1 1 1 0
Cq =
0 −l2 Sθ12 0 −1
0 0 0 0
θ̇3
1 1 1 θ̇1 0
0 −l2 Sθ12 0 θ̇2 = 1 ( ẋ )
x l2 Cθ12 0 θ̇3 0
→ (n−p) torseurs deviennent linéairement dépendants, les p torseurs étant indépendants.
Les amplitudes des p torseurs deviennent nulles. Apparaı̂ssent alors les configurations
stationnaires.
Pour déterminer l’ensemble des configurations stationnaires, il convient de considérer les
cas suivants :
88
3. rg([$1 $3 $3 ]) < 3 alors θ̇2 = 0 → x = 0
x l2 Cθ12 0 0
en multipliant par $R t
1 = (Cθ12 , Sθ12 , 0) , on obtient :
89
Figure 49: Manipulateur 3 × 3R placé dans une configuration stationnaire et une config-
uration incertaine
rg(Ẋ, J1 , J2 , , . . . , Jr ) = r
90
• Par utilisation d’une élimination de Gauss (LU decomposation) :
Ẋ = J θ̇ = L U θ̇
En posant :
y = U θ̇
On calcule par substitution y à partir de :
Ẋ = L y
puis θ̇
• Autre forme de résolution (m = d)
X
q̇i $i = Ω$
i=1,6
B q̇ = D˜Ẋ
- B est une matrice diagonale regroupant les termes $R i .$i .
R
$ 1 .$1 0 0 0 0 0
0 $R 2 .$2 0 0 0 0
B=
. . . . . .
0 0 0 0 0 $R 6 .$6
- D, est de dimension (6 × 6), ses coefficients sont 6 torseurs réciproques:
t t
D = ( ($R
1)
t
($R
2)
t
. . ($R
6) )
$k .$R i = 0 k = 1, .., 6 k 6= i; x2 + y 2 + z 2 = 1
91
(a) Si $⊥ i 6= 0: ($⊥ i ) = (−1)i+1 ∆i
(b) Si 2 des torseurs sont linéairement dépendants, $⊥ i = 0.
Dans (x, y, z, x, y, z), $⊥
1 orthogonal à ($2 , $3 , $4 , $5 , $6 , ) :
x y z x y z
u2 v2 w2 l2 m2 n2
u3 v3 w1 l3 m3 n3
$⊥
1 =
u
4 v4 w4 l4 m4 n4
u5 v5 w5 l5 m5 n5
u v6 w6 l6 m6 n6
6
q̇p
J = ( Jp m×m Js(m)×(n−m) ) q̇ =
q̇s
→ Les q̇s sont des variables secondaires fixées arbitrairement: q̇p = Jp−1 (Ẋ − Js q̇s )
→ Exemple du 3R plan en ne considérant que la vitesse linéaire de P :
−(l1 Sθ1 + l2 Sθ12 + l3 Sθ123 ) −(l2 Sθ12 + l3 Sθ123 ) θ̇1 vx0 −l3 Sθ123
= −θ̇3
(l1 Cθ1 + l2 Cθ12 + l3 Cθ123 ) (l2 Cθ12 + l3 Cθ123 ) θ̇2 vy0 l3 Cθ123
92
Figure 50: Manipulateur 3P
→ Exemple du 3P plan :
ṙ1 1/2 0
vx0
ṙ2 = 0 1
vy0
ṙ3 p 1/2 0
+ σi
vi uti
X
JSV D = 2 2
i=1,r σi +λ
93
Elle peut être utilisée pour optimiser un objectif secondaire.
→ Le vecteur z peut être calculé comme le gradient d’une fonction coût g(q) (définie
positive et dépendante de q): ∂g
∂q1
.
..
z = α
∂g
∂qn
e = Xd − X = Xd − F (q)
94
10 Analyse de la transmission des efforts
G f = −Fext
→ Résolution numérique:
Si le système est de Cramer (m équations à n inconnues) G−1 existe:
f = G−1 (−Fext )
1 X
fj = − Aij Fexti
detG i=1,m=n=d
→ Résolution analytique:
X
fi $̄i = −Fext $̄
i=1,6
$̄.$̄R
i
fi = −Fext
$̄i .$̄R
i
→ Pour un système de corps:
τ = −J t Fext
Fext = −G f
La solution générale est déterminée comme:
fg = fp + fh
- fp : solution particulière
- fh : solution homogène, solution à Gfh = 0
→ Exemple:
f
0 −1 0 1
1
f
0 1 0 1 2 = 0
f3
−r 0 r 0
f4
95
Figure 51: Exemple d’une prise plane par 2 contacts ponctuels avec frottement
f1 1
f 0
2
= k
f3 1
f4 h 0
→ Une solution particulière de norme Euclidienne de f minimun est donnée par :
f1 1/2 0 0
0
f
2
0 1/2 −1/2r
= P
f3 −1/2 0 0
0
f4 p 0 1/2 1/2r
fp = Gt (GGt )−1 (−Fext )
→ Une solution homogène peut être ajoutée en utilisant la projection orthogonale
(Id − G+ G)
Remarque : Autre méthode de calcul de fh .
fh = (Id − G+ G)z
1/2 0 1/2 0 z1
0 0 0 0 z2
fh =
1/2 0 1/2 0 z3
0 0 0 0 z4
96
11 Dynamique des systèmes
(0) d(0)
γM = vM = M̈ (t) = ẍM x0 + ÿM y0 + z̈M z0
dt
d(0)
P̈0 = [ω̂01 (P0 − d01 ) + d˙01 ]
dt
→ Accélération angulaire :
d(0)
ω̂˙ 01 = t
(Ṙ01 R01 )
dt
0 −1 0
→ Mouvement de rotation plan : ω̂˙ 01 = θ̈ 1 0 0 → ω̇01 = θ̈z0
0 0 0
→ Mouvement de rotation paramétré par les angles d’Euler:
−θ̇ψ̇Sθ
On montre également que le champ des accélérations d’un solide peut s’exprimer à
partir de la dérivation du torseur cinématique représenté géométriquement à l’aide
d’un torseur unitaire.
97
11.3 Composition des accélérations
Si le point P est un mobile dans R1
(P̈0 )R0 = (Ö1 )R0 + (ω̇01 ∧ P1 )R0 + (ω01 ∧ (ω01 ∧ P1 ))R0 + (2ω01 ∧ Ṗ1 )R0 + (P̈1 )R0
(0) (0) (1)
γP ∈R2 = γP ∈R1 + γc + γP ∈R2
m(P) : P → R+
→ S = P1 ∪ P2 avec P1 ∩ P2 =6 ◦
Z Z
m(P1 )OG1 = OP dm m(P2 )OG2 = OP dm
P ∈P1 P ∈P2
1
OG = (m(P1 )OG1 + m(P2 OG2 )
m(P1 ) + m(P2 )
• Intégration selon la loi de masse
L’intégration par rapport à la loi de masse de certains champs vectoriels servent à
98
définir des grandeurs cinétiques:
→ Soit le champ vectoriel u donné sur S, l’intégrale % la masse est J :
Z Z
J (u, ρ, S) = u(P )ρ(P )dP = u(P )dm
P ∈S P ∈S
Un tenseur peut être représenté par ses composantes dans une base. Si QP =
(x, y, z)t et u = (ux , uy , uz )t dans RS :
0 −z y 0 −z y ux
QP ∧ (QP ∧ u) = z 0 −x z 0 −x uy
−y x 0 −y x 0 uz
−(z 2 + y 2 )
xy xz ux
2 2
= xy −(z + x ) yz uy
xz yz −(x2 + y 2 ) uz
• Matrice IQ associée au tenseur d’inertie JQ (matrice d’inertie):
2
+ y 2 )dm R P ∈S −xydm
R
−xzdm
R R
PR∈S (z R P ∈S
2 2
IQ = RP ∈S −xy dm (z + x ) dm −yz dm
∈S
PR R P ∈S 2 2
P ∈S −xz dm P ∈S −yz dm P ∈S (x + y ) dm
Ixx Ixy Ixz
= Ixy Iyy Iyz
99
Si QG = (a, b, c)t , et k QG k2 = d2 la matrice d’inertie est :
11.5 Cinétique
• Torseur cinétique
→ Définition:
Le torseur cinétique de S dans son mouvement par rapport à R0 en Q est :
Z Z
(0) (0) (0) (0) (0)
CS = [QS = vP dm, σQ = (QP ∧ vP ) dm]
P ∈S P ∈S
→ Expression de la résultante:
Z
m(S) OG = OP dm
P ∈S
→ Expression du moment :
Si Q est un point de l’espace, G le centre d’inertie de S et B un point lié à S.
Z Z
(0) (0)
σQ = (QP ∧ vP dm) = (QP ∧ (vB + ω0S ∧ BP )) dm
P ∈S P ∈S
(0) (0)
σQ = QG ∧ m(S) vB + QB ∧ (ω0S ∧ m(S) BG) + JB (ω0S )
→ Simplifications :
(0) (0)
si Q = B ∈ S : σB = BG ∧ m(S) vB + JB (ω0S )
ω0S
(0)
sous forme matricielle : (σB ) = ( IB m(S) ∆(BG) )
vB
100
(0)
si Q = B = G ∈ S : σG = JG (ω0S )
(0)
sous forme matricielle : (σG ) = ( IG ) ( ω0S )
(0)
si A ∈ R0 : σA = JA (ω0S )
• Torseur dynamique
Le torseur dynamique de S dans son mouvement par rapport à R0 en Q est :
Z Z
(0) (0) (0) (0) (0)
DS = [AS = γP dm ; δQ = (QP ∧ γP ) dm]
P ∈S P ∈S
→ Expression de la résultante:
101
(0)
si B = G : 2TS = m(S) kvG k2 + ω0S .JG (ω0S )
I 0 ω0S
(0)
2TS = ( ω0S , vG ) G
0 m(S) Id vG
(0)
si B ∈ R0 : 2TS = ω0S .IB ω0S
→ Energie cinétique pour Σ
X 1 X t
T = Ti = Ẋ Mi Ẋi
i=1,n 2 i=1,n i
ω0i
= Ẋi = Ji q̇; Ji = [$1 , $2 , ....., $i , 0, ..., 0] $k = 0 k > i, n
vGi
→ Energie cinétique de Si :
1
Ti = q̇ t Jit Mi Ji q̇
2
→ Energie cinétique du système :
1
Ti ≡ q̇ t M (q)q̇
X
T =
i=1,n 2
12 Modèle dynamique
• Objet : Relier les grandeurs caractérisant le mouvement des corps doués d’une
répartition de masse aux efforts s’exercant sur les corps pour déterminer les équations
du mouvement.
102
Cette relation conduit à 2 relatons vectorielle :
→ Equation de résultante: Théorème de la résultante dynamique (équation de
Newton):
(0) d(0) (0)
m(S) γG = (m(S) vG ) = Rext/Σ
dt
→ Equation de moment : Théorème du moment dynamique (équation d’Euler):
d(0) (0)
(0)
(σ ) = MB ext/Σ
δB =
dt B
Les projections dans une base de ces équations vectorielles (équations différentielles
du second ordre) constituent les équations du mouvement du solide Si évoluant dans
un espace de dimension d = 3, 6.
En développant les équations de Newton-Euler pour le corps Si , on trouve :
m(Si ) γGi = R(ext/Si )
d(0) d(0)
(IGi ω0i ) = (R0i IGi i R0i
t
ω0i ) = IG0 i ω̇0i + Ṙ0i IGi i R0i t
ω0i + R0i IGi i Ṙ0i
t
ω0i
dt dt
= IG0 i ω̇0i + ω̂0i IGi i ω0i + IGi i ω̂0i
t
ω0i = IG0 i ω̇0i + ω̂0i IG0 i ω0i = MGi (ext/Si )
Ces équations peuvent être mises sous la forme matricielle:
!
m(S) Id 0 γGi 0 vGi R(ext/Si )
+ =
0 IG0 i ω˙0i ω̂0i IGi i ω0i MGi (ext/Si )
MSi Ẍi + CSi (Xi , Ẋi ) + NSi (Xi ) = F(ext/Si )
NSi (Xi ) représentant les forces extérieures de gravité et F(ext/Si ) regroupant les
autres forces extérieures.
→ Exemple d’application au robot Segway :
103
(0) (0) (1)
(γG2 )R0 = (γO1 )R0 + (γG2 )R0
−θ¨2
0 0
d
ω̂˙ 02 t ¨
= (Ṙ02 R02 ) = θ2 0 0
dt
0 0 0
vG2x0 1 (l Sθ2 ) ṙ1
vG2 = =
vG2y0 0 (−l Cθ2 ) θ̇2
γG2x0 r̈1 − (l Cθ2 θ̇22 + l Sθ2 θ¨2 )
γG2 = =
γG2y0 (−l Sθ2 θ̇22 + l Cθ2 θ¨2 )
En substituant dans les équations du mouvement:
104
Pour une liaison de rotation, on a l’équation du mouvement relative à qk :
X h (0) i
τi = δOk (Si ).zi − Ok Gi ∧ mi g.zi
i=k,n
h i
τi = MOi k − MOg k .zi
Un résultat équivalent peut être obtenu par l’application du principe des travaux
virtuels.
Un exemple typique d’utilisation des TG en robotique est donné par la détermination
des conditions de non-pivotement d’un robot humanoı̈de. On cherche en effet à
faire que le moment au point de contact pied/sol selon l’axe t perpendiculaire à la
normale soit tel que : h i
MCi (Σ) − MCg (Σ) .t = 0
105
• Pour un système de k solides paramétré par n paramètres qi .
Le travail virtuel des forces d’inertie s’exercant sur Σ est :
X X (0) ∂ Gi X (0) ∂ Φi
δWj , Σ = Wj , i = ( [m(Si ) γGi . δq] + [δA . δq])
i=1,k i=1,k ∂q i=1,k ∂q
→ Application au 2R plan
En ne considérant que les effets de la gravité dans les actions extérieures, on a :
106
• Pour un solide S, T = 12 Ẋ t M Ẋ:
∂T d ∂T
= M Ẋ ( ) = M Ẍ + Ṁ Ẋ
∂ Ẋ dt ∂ Ẋ
∂T 1 ∂M Ẋ t
= ( ) Ẋ
∂X 2 ∂X
L’équation du mouvement du solide S est donc :
1 ∂M Ẋ t ∂U
M Ẍ + Ṁ Ẋ − ( ) Ẋ + =Q
2 ∂X ∂X
• Energie potentielle:
mi g t GO
X X
U= Ui = i
i=1,n i=1,n
d ∂T X X
( )= Mij q̈j + Ṁij q̇j
dt ∂ q̇i j=1,n j=1,n
107
∂T ∂ 1 X X 1 X X ∂Mjk
= ( Mjk q̇j q̇k ) = q̇j q̇k
∂qi ∂qi 2 j=1,n k=1,n 2 j=1,n k=1,n ∂qi
• Equations du mouvement de Σ:
X X X ∂Mij 1 ∂Mjk ∂U
τi = Mij q̈j + ( q̇j q̇k − q̇j q̇k ) +
j=1,n j=1,n k=1,n ∂qk 2 ∂qi ∂qi
X X X ∂U
τi = Mij q̈j + Hijk q̇j q̇k +
j=1,n j=1,n k=1,n ∂qi
∂M
où : Hijk = 12 ( ∂M ij
∂qk
+ ∂M ik
∂qj
− ∂qjk
i
)
• Système d’équations différentielles du second ordre composé des forces d’inertie,
des forces de Coriolis et centrifuge et les forces dérivant d’un potentiel.
• Equations du mouvement sous une forme vectorielle:
Lt Lq̈(t) = τ̄
Lt x = τ̄ Lq̈(t) = x
| {z }
q(t) se calcule par intégration numérique :
Z t+h
qit+h = qit + q̇i dt
t
Z t+h
q̇it+h = q̇it + q̈i dt
t
On remplace ensuite les intégrales par des formules dı́ntégration comme les formules
dÁdams-Moulton ou d’autres comme la formule de Newmark.
108
12.6 Modèle dynamique cartésien
On peut procéder à un changement de variables pour écrire les relation entre forces
généralisées et forces cartésiennes. On peut ainsi voir la dynamique de l’ensemble
du système comme rapportée à un objet ”‘virtuel”’ qui aurait instantanément les
mêmes propriétés de masse que celles de l’ensemble du système.
t
τ = J t Fc → Fc = (J −1 ) τ
Mx Ẍ + Cx + Nx = Fc
t
- Mx = (J −1 ) M (q)(J −1 ),
t ˙ q̇,
- Cx = (J −1 ) C(q, q̇) − Mx J(q)
−1 t
- Nx = (J ) N (q).
109
Figure 52: Robot réalisant une tâche en interaction avec l’environnement
• Interprétation des λj :
Les λj peuvent s’interpréter comme les amplitudes relatives des forces de contrainte
selon les directions dans lesquelles le système ne peut se déplacer (i.e les forces
appliquées par le système pour qu’il reste en contact avec la surface de contrainte)
τic =
X
λj Aij i = 1, n
j=1,k
110
d ∂L ∂L
τ= ( ) − ( ) − Jct fc (4)
dt ∂ q̇ ∂q
d ∂L ∂L
τ + τc = ( ) − ( ) (5)
dt ∂ q̇ ∂q
Jc est ici la Jacobienne des contacts.
Aq̈ + Ȧq̇ = 0
AM −1 (τ − C − N ) + AM −1 At λ + Ȧq̇ = 0
si les contraintes sont indépendantes (c’est à dire si la matrice A est de rang plein):
A(q)S(q) = 0
u représente le vecteur des variables de contrôle qui ne sont pas forcément des
entrées du système, raison pour laquelle on parle de quasi-vitesses ou encore de
pseudo-vitesses. On peut réduire le modèle dynamique pour l’exprimer en fonction
des quasi-vitesses :
τ = M (q)q̈ + C(q, q̇) + N (q) − At λ
En multipliant par S(q)t , on obtient la forme suivant :
Sachant que :
q̈ = S(q)u̇ + Ṡ(q)u
En reportant dans l’équation précédente, on a :
111
de contraintes cinématiques, ces dernières entrainent des instabilités numériques
pouvant amener à la divergence de la solution. Il existe des techniques pour éviter
ces instabilités lors de la résolution. Elles consistent principalement à transformer
le système déquations différentielles algébriques (EDA) en un système déquations
différentielles ordinaires (EDO). Pour assurer la stabilité asymptoptique des con-
traintes, la méthode de Baumgarte propose de remplacer les contraintes géométriques
par une expression équivalente fonction des accélérations. Cette technique, que lon
appelle régularisation des contraintes, sappuie sur la vérification exacte des con-
traintes cinématiques. Elle conduit à une nouvelle expression pour représenter les
contraintes cinématiques dans le système déquations de la dynamique initial qui
est alors transformé sous la forme qui ne fait intervenir que les accélérations.
112
13 Génération de mouvement
Le problème de la génération de mouvement dans la commande d’un robot dépend
du type d’application considéré. Dans un certain nombre de cas, la trajectoire à
suivre peut être définie a priori et n’est pas modifiée lors de son exécution. Dans
d’autres cas, on utilise un capteur pour définir de façon continue la trajectoire à
partir de mesures faites sur l’environnement de travail.
Dans le premier cas, la génération de mouvement détermine donc à partir d’une
configuration initiale comment se rendre à une configuration finale en passant par
des configurations intermédiaires comme illustré sur la figure 53. Elle fournit donc
à chaque période d’échantillonage de la commande les consignes en position soit
dans l’espace opérationnel, soit dans l’espace articulaire.
L’avantage de la première méthode est qu’elle autorise un contrôle de la trajectoire
d e l’effecteur directement dans l’espace géométrique. Elle est mieux adaptée à la
mise en oeuvre de capteurs pour l’adaptation de la trajectoire. La seconde planifie
le mouvement dans l’espace des variables de contrôle. Aussi les contraintes relatives
aux vitesses, accélérations, couples peuvent être directement prises en compte.
Dans ce qui suit, on considère que le système est asservi en position comme montré
sur la figure 13.
q(t) = qi + r(t)(qf − qi )
q(t) = qf + [1 − r(t)](qf − qi )
113
Figure 54: Schéma de principe d’un asservissement en position
(qf − qi ) t
q(t) = q̇ t + qi = + qi
tf
Cette loi introduit des discontinuités de vitesse.
→ Interpolation polynomiale
Pour satisfaire les contraintes :
q(0) = qi q(tf ) = qf
q̇(0) = qi = 0 q̇(tf ) = 0
on peut utiliser un polynôme cubique :
q(t) = a0 + a1 t + a2 t2 + a3 t3
a0 = q 0
114
a1 = q̇0
3 2 1
a2 = 2
(qf − q0 ) − q̇0 − q̇f
tf tf tf
−2 1
a3 = 3
(qf − q0 ) + 2 (qf + q̇0 )
tf tf
→ Pour satisfaire une continuité C2 (en accélération), la courbe à choisir est une
courbe polynomiale de degré 5.
0P = f (s)
115
Figure 55: Définition de trajectoires cartésiennes
dP d2 OP
1
t= n = d2 OP b=t∧n
ds k ds2 k ds2
R = [t; n; b]
dt
k k = K = 1/ρ
ds
db
T =k k
ds
Relations de Serret-Frenet :
dt/ds 0 K 0 t
dn/ds = −K 0 T n
db/ds 0 −T 0 b
Si la loi de temps s(t) est donnée, on a :
d OP d s
vP = Ṗ = = ṡt
ds dt
dt 1
γP = P̈ = s̈t + = s̈t + ṡ2 n
dt ρ
116
Une trajectoire rectiligne entre Pi et Pf est décrite paramètriquement par :
(Pf − Pi )
P (t) = Pi + s(t) (0 ≤ t ≤ tf )
kPf − Pi k
La vitesse et l’accélération sont :
ṡ
Ṗ = ṡt = (Pf − Pi )
kPf − Pi k
s̈
P̈ = s̈t = (Pf − Pi )
kPf − Pi k
Les dérivées par rapport au temps des vecteurs du repère de Frenet sont :
dt dt
= ṡ = ṡK n
dt ds
dn dn
= ṡ = −ṡK t + ṡT b
dt ds
db db
= ṡ = −ṡT n
dt ds
On détermine la vitesse angulaire du repère de Frenet en considérant que :
dt dn db
≡ ω ∧ t = −∆(t)ω ≡ ω ∧ n = −∆(n)ω ≡ ω ∧ t = −∆(b)ω
dt dt dt
et on montre que :
ṡK n
1
ω = [∆(t) ∆(n) ∆(b)] −ṡK t + ṡT b
2
−ṡT n
La vitesse angulaire peut aussi s’écrire en fonction du vecteur de Darboux :
ω = ṡ(T t + K b) = ṡδ
d’où :
i t f
Rif (φ, s) = (R0h ) R0h
Pour Rif on peut déterminer l’angle et l’axe de la rotation sachant que :
1 1
φ = [arcos(trR − 1)] = arcos(r11 + r22 + r33 − 1)
2 2
r − r23
1 32
s= r13 − r31
2sinθ
r21 − r12
117
Le mouvement de rotation peut être interpolé à l’aide de la fonction r(t) par :
t i
R0h = R0h Rif (r(t)φ, s)
t f
R0h = R0h Rif (−(1 − r(t))φ, s)
Le mouvement de rotation à réaliser peut aussi être obtenu à partir d’une interpo-
lation sur les quaternions qui représentent les différentes configurations angulaires.
118
14 Commande des mouvements
119
Z
τc = Kp (qd − q) + Kv (q̇d − q̇) + Ki (qd − q)dt
0,t
120
14.3 Commandes cartésiennes
La correction de la position ou du mouvement est faite dans l’espace opérationnel
• Commande en position par un correcteur PD avec compensation de gravité :
121
15 Cinématique des systèmes redondants
Les systèmes robotiques présentent généralement un degré de complexité qui impose
de reconsidérer les techniques de modélisation et de commande de leur comportement.
L’une des dimensions particulières dans la complexité des systèmes est liée au nombre
de leur degré de liberté qui peut induire une redondance/abondance vis-à-vis des tâches
à réaliser.
L’exploitation de la redondance cinématique est le premier des points que nous ex-
aminerons. Cette redondance peut notamment servir à optimiser par la commande le
comportement du système du point de vue de certaines de ses performances. Ce problème
peut être abordé d’un point de vue cinématique ou dynamique selon le type contrôle bas-
niveau mis en oeuvre sur le système. Dans ce qui suit nous considérerons des commandes
de type cinématique.
N (J) = {q̇ ∈ Rn /J q̇ = 0}
122
On montre également que :
R(J)⊥ = N (J t )
N (J)⊥ = R(J t )
Cette dualité entre la vitesses et efforts est illustrée sur la figure 58.
q̇ = J −1 Ẋ
Pour simplifier les choses, on considérera que la mobilité du mécanisme est directement n
le nombre de liaisons et que le nombre de contraintes est directement égal à la dimension
du groupe des déplacements dans lequel le système évolue (noté d).
Dès lors où le manipulateur est redondant devant la tâche (n > d ou plus généralement
rg(J) > d) alors le problème est sous-déterminé. Il existe une infinité de solutions au
problème cinématique inverse. Le degré de redondance cinématique du système devant
la tâche est :
r = n − dim(R(J)) = dim(N (J))
123
15.3 Analyse du problème de la redondance cinématique
Pour le manipulateur de 3P de la figure 59, si seule la trajectoire du point P est imposée,
le degré de redondance est 1. La Jacobienne de ce manipulateur est :
1 0 1
Jv =
0 1 0
124
15.4 Définition d’un modèle géomètrique inverse
Si on considère que le système est sous asservissement articulaire, l’une des solutions pour
aborder la commande des mouvements est d’utiliser le modèle géométrique inverse afin
de définir les consignes articulaires à partir de la définition de la trajectoire en position
et orientation de l’objet manipulé. Cependant, dans le cas où le système est redondant,
le problème géométrique inverse est dans ce cas sous-déterminé. Il existe par conséquent
une infinité de configurations articulaires pour atteindre une tâche donnée.
Pour traiter la redondance, une solution consiste à introduire des relations supplémentaires
pour traduire un objectif secondaire qui est par exemple d’optimiser une performance
locale. La performance en question peut être représentée par une fonction scalaire con-
tinue notée W (q) en fonction des paramètres généralisés q. On peut alors considérer la
résolution du problème géométrique inverse à partir d’une part du modèle géomètrique
direct X = f (q) et d’autre part par r équations algébriques traduisant un optimum de
la fonction.
La recherche d’un optimum pour W (q) peut être vu comme un problème d’optimisation
sous les contraintes F (q) = (f (q) − X). Ce type de problème peut être abordé à
l’aide des multiplicateurs de Lagrange. Le problème équivaut à minimiser le Lagrangien
L(q) = W (q) + λt F (q), λ ∈ Rm=d étant le vecteur des multiplicateurs de Lagrange.
Ainsi, la solution vérifie à la fois la solution au modèle géométrique et minimise W (q).
Les points stationnaires sont tels que la différentielle de L(q) soit nulle :
!t
∂ L(q) ∂ W (q) ∂ F (q)
= + λ=0
∂q ∂q ∂q
∂ F (q)
- ∂q
∈ Rm×n est la matrice Jacobienne.
∂ W (q)
- ∂q
= ∇W (q) = h ∈ Rn est le vecteur gradient de la fonction W (q)
L’équation précédente peut être ré-écrite :
J tλ + h = 0
125
Ces r équations peuvent se mettre sous la forme matricielle :
−1
( Jn−m Jm , In−m ) h = 0
−1
où encore en notant Z = ( Jn−m Jm , In−m )
Zh = 0
F (q) = 0
Zh = 0 (7)
x = r1 + aCθ2 (8)
−Sθ2 1
+λ = 0
dCθ2 aSθ2
r1 + aCθ2 − x = 0 (9)
−Sθ2
( −aSθ2 ,1) = 0
dCθ2
r1 + aCθ2 − x = 0 (10)
FExt = K(Xd − X) = K e
126
Figure 61: Illustration du traitement de la redondance par une méthode géométrique
127
Le choix de q̇ = J t Ke conduit à :
et K Ẋd − et KJJ t Ke
Cette solution, dite aux moindres carrés, est donnée si J est de rang plein en lignes par :
q̇a = (J t J)−1 J t Ẋ
2
La démonstration est simple. Si ρ =
J q̇ − Ẋ
, alors :
q˙a = J + Ẋ
J + est aussi dite pseudo-inverse de J dans la mesure où il s’agit pas d’une véritable
inverse. En effet, J + J = In mais JJ + 6= Im .
Pour un système compatible (cela signifie qu’une solution existe). Une solution minimale
pour kq̇k2 (aux moindres carrés) pour Ẋ désiré est obtenue à l’aide de la pseudo inverse.
Si J est de rang plein en lignes (rg(J) = m) :
J + = J t (J J t )−1
128
Pour l’exemple du manipulateur PPP, la pseudo-inverse de Jv est :
1/2 0
Jv+ = 0 1
1/2 0
D’une manière plus générale, si J ∈ Rm×n est de rang r, alors il existe une décomposition
de rang maximal de J sous la forme du produit de 2 matrices F ∈ Rm×r et G ∈ Rr×n .
J =F G
Cette factorisation peut être obtenue par une forme de Smith. Alors,
F + = Gt (F t AGt )−1 F t
En pratique, la factorisation la plus générale et la plus utilisée (car plus robuste d’un
point de vue numérique) est la Décomposition en Valeurs Singulières (que l’on désigne
souvent par son acronyme anglo-saxon ”SVD”, pour ”Singular Value Decomposition”).
Une telle décomposition en valeurs singulières est produite par la fonction svd() de
Matlab. Cette décomposition est absolument générale. Elle est valide si r = inf (m, n)
(c’est à dire, si J est de rang plein) mais également si r < m < n. Dans ce dernier cas,
on utilise une forme dite réduite de la SVD.
D’une manière générale, J pourra être décomposée sous la forme (voir cours NSR 12):
J = U ΣV t = σi ui vit
X
i=1,r
i=1,r σi
avec :
1 1
Σ+ = diag( , . . . , , 0, . . . 0)
σ1 σr
où σ1 , . . . σr sont les valeurs singulières de J.
Si rg(J) = r = m < n (rang maximal) alors J + = J t (JJ t )−1
Si rg(J) = r = m = n alors J + = J −1
Indifférement des conditions sur le rang de J, cette pseudo-inverse satisfait les 4 pro-
priétés suivantes :
JJ + J = J
J + JJ + = J +
129
(JJ + )t = (J + J)
(J + J)t = (JJ + )
Par ailleurs :
+
(J + ) = J
t +
(J + ) = (J t )
+
(J + ) = (J t J) J t
t +
(J + ) = J t (JJ t )
Par ailleurs :
- si rg(J) = m = n, alors : A+ = A−1
- si rg(J) = m < n, alors : AA+ = Id (A+ A 6= Id )
- si rg(J) = n < m, alors : A+ A = Id (AA+ 6= Id )
La Décomposition en Valeurs Singulières peut s’interpréter géométriquement de diverses
façons. En considérant J comme la matrice d’une application d Rn dans Rm , si nous
considérons l’ensemble des vecteurs de longueur unité, leurs extrémités forment la sphère
unité (voir illustration ci-dessous 63) de dimension n. On montre que les transformées
de ces vecteurs par J forment un ellipsoı̈de de dimension r dont les directions des axes
principaux sont données par les colonnes de U (et leurs antécédents par les colonnes de
V ). Les longueurs des demi-axes principaux sont les valeurs singulières non nulles de J
• Remarque : La quantité qui est optimisée dans une solution purement cinématique
est :
C = q̇ t q̇
Cette quantité n’a pas forcément de sens physique. Aussi, la pseudo-inverse peut être
pondérée pour optimiser par exemple l’énergie cinétique développée dans le mouvement.
Cette dernière s’écrit :
1
T = q̇ t M (q)q̇
2
M (q) est symétrique et inversible.
Le problème de la minimisation de T dans le mouvement Ẋ = J q̇ peut être posé comme
un problème d’optimisation sous contraintes.
1
min T = q̇ t M (q)q̇
2
130
tel que : Ẋ = J q̇
Une solution classique à ce type de problème peut être déterminée à l’aide des multipli-
cateurs de Lagrange λ, la contrainte étant alors intégrée à la fonction à minimiser sous
la forme :
1
T 0 = q̇ t M (q)q̇ + λt (Ẋ − J q̇)
2
Les multiplicateurs λ peuvent ici être interprétés physiquement comme les quantités de
mouvement à appliquer pour satisfaire Ẋ − J q̇ = 0.
Les paramètres de Lagrange peuvent être déterminés en cherchant les solutions à :
∂T 0
=0
∂ q̇
Ceci conduit au système de n équations suivant:
q̇ t M − λt J = 0 (∗)
q̇ t J t = λt (JM −1 J t )
λt = Ẋ t (JM −1 J t )−1
q̇ = M −1 J t (JM −1 J t )−1 Ẋ
+
q̇ = JM Ẋ
+
JM est la pseudo-inverse de J pondérée par la matrice d’énergie cinétique du système.
0 1 dCθ3
131
Figure 64: Manipulateur PRR pour illustration des problèmes d’inhomogoneı̈té
2
kq̇k2 = q̇ t q̇ conduira à une somme de termes inhomogènes. De même le calcul de
Ẋ
=
132
- N (J) ∈ R(n×n−r) est la matrice de regroupant les vecteurs du noyau,
- ẋN ∈ Rn−r est le vecteur des amplitudes des vitesses compatibles avec le mouvement
interne (pseudo-vitesses). On peut exprimer le mouvement interne ẋN comme :
ẋN = V + q̇ = JN q̇
JN = ( −1/2 0 1/2 )
De manière plus générale, en algèbre linéaire, une projection orthogonale est un pro-
jecteur tel que les deux sous-espaces sont orthogonaux. Le projecteur a pour effet de
supprimer la composante qui influence δX. On a donc :
J q̇h = 0
Le vecteur q̇op ∈ Rn , qui est a priori quelconque, peut servir à optimiser une performance
locale. Il peut être alors déterminer comme :
∂φ
∂q1
.
q̇op = α∇φ = α
.
∂φ
∂qn
On peut aussi construire une fonction φ pour générer un champ de forces (attractives et
répulsives) sur le système.
φirep (q)
X
φ(q) = φatt (q) +
i=1,n
133
ici en considérant un seul potentiel attractif pontuel et un ensemble de n potentiels
répulsifs. Le potentiel attractif peut être :
1 1
φatt (q) = kd2 = k(q(t) − qd )2
2 2
La force qui serait ainsi créée pour ”‘attirer”’ les système vers qd est :
Un exemple de champ attractif pour un système 2R est donné sur la figure 65 Un potentiel
Ẋ1 = J1 q̇ (1)
134
Figure 66: Illustration d’un champ attractif
135
et une tâche secondaire :
Ẋ2 = J2 q̇ (2)
comme pour un évitement d’obstacle (voir illustration 68)
De (1) on tire :
d’où : h i
q̇ = J1+ Ẋ1 + (Id − J1+ J1 ) Je2+ (Ẋ2 − J2 J1+ Ẋ1 ) − (Id − Je2+ Je2 )Z2
Si on ne cherche pas à utiliser les mouvements internes (Z2 = 0):
h i
q̇ = J1+ Ẋ1 + (Id − J1+ J1 ) Je2+ (Ẋ2 − J2 J1+ Ẋ1 )
se réduit à :
(J2 (Id − J1+ J1 ))+ = Je2+
d’où la solution pour q̇ :
136
La formulation générale de la solution est :
Le mouvement défini par Z2 peut alors être réalisé sans interférence avec les 2 premières
tâches. L’interprétation de cette solution est donnée sur la figure 69.
Cette méthode permet de réaliser les différentes tâches lorsque celles-ci sont compat-
ibles. Elle conduit a une singulatité algorithmique lorsque les noyaux sont voisins. Le
point d’intersection est alors tel qu’il induit de très grandes vitesses articulaires (voir
figure 70)
Le vecteur Z2 est ici projeté sur l’intersection des noyaux de J1 et de J2 pour ne perturber
aucune des deux tâches. L’illsutration de la méthode est donnée sur la figure 71
137
Figure 70: Illustration d’une singularité algorithmique
X
Xe =
Xc
J(q)
Je (q) =
A(q)
J(q)
Je (q) =
JN (q)
Pour éviter d’avoir à fixer le nombre de contraintes requis pour former un système carré
(on peut aussi envisager de former un système sur-déterminé), une alternative qui peut
être préférée consiste à exprimer un objectif secondaire qui serait d’annuler le gradient
138
Figure 71: Illustration de l’utilisation d’une tâche secondaire cartésienne
d’une fonction scalaire g(q) et à le projeter sur le N (J). Le vecteur opérationnel est ainsi
: !
X
Xe =
∇gN = N (J)t ∂g∂q
= N (J)t ∇g
La matrice N (J) constituant les vecteurs du noyau de J se détermine notamment à l’aide
d’un SVD : t
t VR
J = U ΣV = U [ΣR , 0]
VNt
N (J)t = VNt = (n1 , n2 , . . . , nn−m )t
En notant ∇gNi = nti ∇g les composantes augmentées de Xe , on a :
Xe = Je q̇
139
X J
∂
∇g ∂q ∇gN1
N1
. =
. q̇
.
.
∂g
∇gNn−m ∂q
∇gNn−m
La partie augmentée des colonnes de Je pour obtenir une matrice carrée est formée par
deux termes :
∂ ∂ ∂ni t ∂
∇gNi = (nti ∇g) = ∇g + nti ∇g
∂qj ∂qj ∂qj ∂qj
Si l’objectif est d’obtenir un gradient de g nul, on aura donc comme précédemment :
Ẋ
q̇ = Je−1 (q)
0
On peut aussi imposer seulement une descente du gradient et on aura alors :
Ẋ
q̇ = Je−1 (q)
−α∇gN
∂
On pourra alors omettre le terme ∂qj
∇g dans Je .
L(δ) = K t δ
δX = Jδq
140
−δ < δq < δ
δ > 0 (11)
det(J) = 0
$R .$i = 0 ∀i = 1, n
Pour cela, on commence par rechercher les conditions sur $R pour qu’il soit réciproque
à un sous-système :
n o
τcsub = $i ∈ τc , i ∈ {1, . . . , n} ,
X
i=d
Après avoir placé le système dans cette configuration singulière, on cherche ensuite à
identifier les conditions supplémentaires pour que le $R soit également réciproque aux
torseurs cinématiques ”‘redondants”’ à partir des équations :
$R .$j = 0 ∀j = 1, n et j 6= i
On montre dans ce qui suit comment cette technique s’applique à un système PRRR
plan (voir figure 15.9)
La jacobienne écrite en O4 de ce système est :
0 z2 z3 z4
J = [$1 , $2 , $3 , $4 ] =
z1 04 02 ∧ z2 04 03 ∧ z3 0
141
En reportant dans J Sub on a :
1 1 1
J Sub = −l12 Sθ2
−l2 Sθ2 0
l12 Cθ2 l2 Cθ2 0
Sub
$R = (Cθ2 , Sθ2 , 0)
Sub
$R est aussi réciproque à $1 si :
Sub
$R .$1 = 0
La condition supplémentaire est θ2 = π/2 + kπ
142
(J t J + λ2 Id )−1 J t = J t (JJ t + λ2 Id )
La solution se ré-écrit :
q̇a = J t (JJ t + λ2 Id )Ẋ
Cette solution est celle donnée par la méthode de Levenberg-Marquardt qui peut être
vue comme une interpolation entre une méthode de Gauss et de descente de gradient.
La valeur du facteur λ peut varier en fonction du résidus.
Une décompostion en valeurs singulières permet de comprendre comment agit la DLS
par rapport à la SVD.
Aussi:
J t (JJ t + λ2 Id ) = V Σ(Σ2 + λ2 Id )−1 U t = V EU t
| {z }
E
Détermination de λ : σ2σ+λi
2 → 0 quand σi → 0 λ doit donc être pris très grand pour
i
maintenir les vitesses angulaires près de la singularité.
Inversement, loin des singularités λ doit rester tel que σi >> λ alors les composantes
σi
σ 2 +λ2
≈ σ1i
i
143