Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Ph. Bidaud
Ce cours aborde les méthodes utilisées en Robotique pour traiter des problèmes
d’analyse et de commande de systèmes complexes. Les systèmes complexes considérés
ici sont :
Plan du cours
2
Contents
1 Introduction 4
3
1 Introduction
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.
Une autre dimension dans la complexité des systèmes est induite par le fait des con-
traintes imposées par des liaisons non-holonomes ou par des cycles cinématiques multiples
dans le mécanisme. Nous considérerons les problèmes de modélisation et de commande
de systèmes non-holonomes, de systèmes parallèles ainsi que de systèmes présentant des
liaisons par contact de pour lesquels la persistance de la liaison doit être maintenue.
Nous introduirons un certain nombre de moyens pour quantifier les performances
cinématiques et dynamiques de ces systèmes et nous envisagerons leur utilisation dans
leur commande (lorsqu’ils concernent des variables de commande) ou leur conception
(lorsqu’ils portent sur des paramètres structurels).
Enfin, nous reviendrons sur plusieurs techniques d’optimisation particulièrement adaptées
au traitement des problèmes exposés. Nous introduirons également des techniques adaptées
au multi-critère.
4
4. Le noyau de l’application constitue l’ensemble des articulaires internes.
N (J) = {q̇ ∈ Rn /J q̇ = 0}
5
jacobienne J du système est hors singulatités une matrice carrée. la solution au problème
cinématique inverse Ẋ = J q̇ (ou différentiel inverse dX = Jdq ) est donnée par :
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))
1 0 1
Jv =
0 1 0
Une base de R(J) est :
1 0
R(J) =
0 1
Une base de N (J) est :
−1
N (J) = 0
1
dim(N (J)) 6= 0 traduit le fait qu’il existe une possibilité de mouvement interne comme
l’illustre la figure 3. Le complément orthogonal au (N (J))⊥ constitue le sous-espace
des mouvements articulaires réalisant le mouvement δX avec le minimum d’amplitude
δq. Plusieurs méthodes sont envisageables pour résoudre la redondance. Les méthodes
utilisant le modèle cinématique sont les plus générales.
6
Figure 3: Illustration du mouvement interne
7
On peut à partir de ce système de n équations auquel serait joint les m équations issues
du modèle géomtrique direct déterminer l’ensemble des incunnues (les m multiplicateurs
de Lagrange et les n variables articulaires.
On peut également, en s’aidant des m premières équations du système (1) de résoudre
les m multiplicateurs de Lagrange.
−1
λ = Jm hm
Zh = 0
F (q) = 0
Zh = 0 (2)
x = r1 + aCθ2 (3)
8
Figure 4: Illustration du traitement de la redondance par une méthode géométrique
Si cette action extérieure est considérée comme réalisée à travers une raideur :
FExt = K(Xd − X) = K e
9
Cette méthode présente l’intérêt de traiter directement du problème de la redondance et
des singularités. La solution obtenue est non-exacte mais stable. En effet, le potentiel
élastique du système Φ(e) est tel que Φ(e) > 0∀e 6= 0 et Φ(0) = 0:
1
Φ(e) = et Ke
2
En différentiant par rapport au temps Φ(e) on trouve :
1 1
Φ̇(e) = e˙t Ke + et K ė = et K ė
2 2
et K(Ẋd − Ẋ) = et K Ẋd − et KJ q̇
Le choix de q̇ = J t Ke conduit à :
et K Ẋd − et KJJ t Ke
J+ = J t (J J t )−1
D’une manière plus générale, si J ∈ Rm×n est de rang r, elle admet une décomposition
en valeurs singulières (Fonction svd() de Matlab ) qui est:
J = U ΣV t = σi ui vit
X
i=1,r
10
Pour l’exemple du manipulateur PPP, on a :
0.7071 0 −0.7071
1 0 1.4142 0 0
Jv = 0 1.0000 0
0 1 0 1.0000 0
0.7071 0 0.7071
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 propriétés
suivantes :
JJ + J = J
J + JJ + = J +
(JJ + )t = (J + J)
(J + J)t = (JJ + )
et
+
(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 )
• 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
11
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
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
12
Les composantes de JJ t sont :
1 −dSθ3 dCθ3
t 2 2 2
JJ = −dSθ3 (1 + d S θ3 ) −d Sθ3 Cθ3
solution consiste à normer les vecteurs Ẋ et q̇ en utilisant par exemple une longueur
caractéristique.
J(q)vi = 0 i = r, n
13
On vérifie bien pour l’exemple du manipulateur 3P que :
−1
1 0 1 0
0 =
0 1 0 0
1
ẋ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
14
avec ∆qi = (qimax − qimin )
Un autre exemple de fonction φ est celui qui reflète le conditionnement de la matrice
Jacobienne (voir chapitre quantification des performances).
q
φ(q) = det(JJ t )
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
15
Figure 8: Illustration d’un champ attractif
16
2.6.3 Tâche secondaire dans l’espace cartésien
Si on introduit une tache primaire :
Ẋ1 = J1 q̇ (1)
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 )
17
se réduit à :
(J2 (Id − J1+ J1 ))+ = Je2+
d’où la solution pour q̇ :
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 10.
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 11)
18
Figure 12: Illustration d’une singularité algorithmique
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 12
19
former un système A(q)q̇ = 0. Sur l’exemple de la figure 13 on peut choisir de faire que
le centre de masse généralisée reste sur l’axe de y.
Le vecteur opérationnel se trouve ainsi augmenté d’un certain nombre de contraintes.
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
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
VR
J = U ΣV t = U [ΣR , 0]
VNt
20
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̇
X J
∂
∇g
N1 ∂q
∇g N1
. =
. q̇
.
.
∂g
∇gNn−m ∂q
∇g Nn−m
La partie augmentée des colonnes de Je pour obtenir une matrice carrée est formée par
deux termes :
∂ ∂ t ∂ni t ∂
∇gNi = (ni ∇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
Ẋ
q̇ = Je−1 (q)
−α∇gN
∂
On pourra alors omettre le terme ∂qj
∇g dans Je .
W (q) J q̇ 0
=
Jt 0 λ Ẋ
21
2.8.2 Programmation linéaire
Dès lors où l’on veut prendre en compte dans la résolution des contraintes d’inégalité
(comme les bornes sur les vitesses articulaires). On peut, lors de la programmation
linéaire, chercher à minimiser la fonction objectif :
L(δ) = K t δ
δX = Jδq
−δ < δq < δ
δ > 0 (6)
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
22
On montre dans ce qui suit comment cette technique s’applique à un système PRRR
plan (voir figure 2.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 02 ∧ z3 0
23
que nous pouvons ré-écrire comme :
(J t J + λ2 Id )q̇a = J t Ẋ
q̇a = (J t J + λ2 Id )−1 J t Ẋ
(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
24