Vous êtes sur la page 1sur 24

.

Cours de Robotique Avancée


Redondance et Optimisation

Ph. Bidaud

Université Pierre et Marie Curie - Paris 6


Master Sciences de l’Ingénieur
Objectifs du cours

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 :

1. Les systèmes de manipulation redondants cinématiquement

2. Les systèmes non-hôlonomes

3. Les systèmes à architecture parallèle

4. Les systèmes de manipulation coordonnée avec des liaisons unilatérales

On recouvre l’essentiel des problèmatiques auxquelles on est confronté dans le cadre de


la manipulation dextre, la préhension articulée, la locomotion à roues et à pattes, etc ...

Plan du cours

1. Cinématique des systèmes redondants.

2. Dynamique des systèmes redondants et containts

3. Cinématique et statique des systèmes parallèles et de manipulation coordonnée

4. Stabilité des contacts unilatéraux

5. Les quantificateurs de performance

6. Méthodes d’optimisation multi-critères

2
Contents
1 Introduction 4

2 Cinématique des systèmes redondants 4


2.1 Générateur du mouvement, noyau et leurs compléments orthogonaux et
réciproques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Définition de la redondance cinématique . . . . . . . . . . . . . . . . . . 5
2.3 Analyse du problème de la redondance cinématique . . . . . . . . . . . . 6
2.4 Définition d’un modèle géomètrique inverse . . . . . . . . . . . . . . . . . 6
2.4.1 Solution par la Jacobienne transposée . . . . . . . . . . . . . . . . 9
2.4.2 Solution par la pseudo-inverse de Moore Penrose . . . . . . . . . . 10
2.5 Homogénéı̈sation de J pour le calcul de la pseudo-inverse . . . . . . . . . 12
2.6 Méthodes de détermination des mouvements internes . . . . . . . . . . . 13
2.6.1 Vecteurs du noyau de J . . . . . . . . . . . . . . . . . . . . . . . 13
2.6.2 Tâche secondaire dans l’espace articulaire . . . . . . . . . . . . . 14
2.6.3 Tâche secondaire dans l’espace cartésien . . . . . . . . . . . . . . 15
2.6.4 Autre formulation de la tâche secondaire . . . . . . . . . . . . . . 18
2.7 Augmentation de l’espace opérationnel . . . . . . . . . . . . . . . . . . . 19
2.8 Utilisation de méthodes d’optimisation . . . . . . . . . . . . . . . . . . . 21
2.8.1 Multiplicateurs de Lagrange . . . . . . . . . . . . . . . . . . . . . 21
2.8.2 Programmation linéaire . . . . . . . . . . . . . . . . . . . . . . . 21
2.9 Détermination des configurations singulières dans les manipulateurs re-
dondants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.10 Passage des singularités . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

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.

2 Cinématique des systèmes redondants


2.1 Générateur du mouvement, noyau et leurs compléments
orthogonaux et réciproques
La relation entre l’espace des vitesses généralisées et des vitesses opérationnelles est une
application linéaire dont J est la matrice associée. Le produit J q̇ peut être vu comme
une combinaison linéaire des vecteur-colonnes de J. Aussi, on peut définir :
1. Le générateur de l’application définit l’ensemble des vitesses transmissibles par le
système. n o
R(J) = Ẋ ∈ Rm /∃q̇ ∈ Rn Ẋ = J q̇

2. Le complément orthogonal à R(J) constitue l’ensemble des vitesses non-transmissibles.


n o
R(J)⊥ = Ẋ ∈ Rm /∃Ẋ 0 ∈ R(J) Ẋ t Ẋ 0 = 0

3. Le complément réciproque à R(J) définit les actions naturellement transmissibles


n o
R(J)R = Ḟ ∈ Rm /∃Ẋ ∈ R(J) F t Ẋ = 0

4
4. Le noyau de l’application constitue l’ensemble des articulaires internes.

N (J) = {q̇ ∈ Rn /J q̇ = 0}

5. Le complément orthogonal est l’ensemble des vitesses articulaires qui engendre un


mouvement de l’effecteur.
n o
N (J)⊥ = q̇ ∈ Rn /∃q̇ 0 ∈ N (J) q̇ t q̇ 0 = 0

6. Le complément réciproque au noyau est l’ensemble des couples articulaires qui


produisent une puissance nulle dans le mouvement interne.
n o
N (J)R = τ ∈ Rn /∃q̇ 0 ∈ N (J) τ t q̇ 0 = 0

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 1.

Figure 1: Illustration de la dualité vitesse/effort

2.2 Définition de la redondance cinématique


La redondance d’un système mécanique peut être définie du point de vue cinématique.
Lorsque m la dimension de l’espace des déplacements du système, ou si tous les déplacements
ne sont pas imposés par la tâche le nombre de contraintes imposées sur le mouvements
du corps ”‘manipulé”’ est égal à la mobilité cinématique du système, alors la matrice

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))

2.3 Analyse du problème de la redondance cinématique


Pour le manipulateur de 3P de la figure 2, si seule la trajectoire du point P est imposée,
le degré de redondance est 1. La Jacobienne de ce manipulateur est :

Figure 2: Manipulateur redondant 3P

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

2.4 Définition d’un modèle géomètrique inverse


Si on considère 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 pour
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 das ce cas sous-déterminé. Il existe par conséquent
une infinité de configurations articulaire 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. Si on considère que la performance en question est représentée par une fonction
scalaire continue notée W (q) en fonction des paramètres généralisés q. On peut con-
sidérer la résolution du problème géométrique inverse à partir d’une part par le 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
ou en partitionnant les m premières lignes et les n − m suivantes :
t
Jm hm
  
λ= (1)
Jn−m hn−m

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

En substituant dans les n − m équations, on a :


−1
Jn−m Jm hm − hn−m = 0

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

Le problème géomètrique inverse pour un système redondant consiste alors à résoudre le


système :

F (q) = 0
Zh = 0 (2)

Ces dernières équations permettent de détemininer complètement les variables articu-


laires.
Pour illustrer cette méthode nous utiliserons l’exemple de la figure 2.4. Le point P
de ce système de type PR doit se déplacer selon un axe vertical situé à x de l’origine
tout en évitant un obstacle situé à d du 2nd segment.
Le modèle géométrique direct se réduit à :

x = r1 + aCθ2 (3)

La Jacobienne transposée est J t = ( 1 , −aSθ2 ). La redondance du système r = 1.


La distance à l’obstacle est (x − r1 )Sθ2 = dSθ2 . Le problèmme géométrique inverse peut
être posé comme :
−Sθ2 1
   
+λ = 0
dCθ2 aSθ2
r1 + aCθ2 − x = 0 (4)

où encore, à l’aide de la matrice Z :


−Sθ2
 
( −aSθ2 ,1) = 0
dCθ2
r1 + aCθ2 − x = 0 (5)

8
Figure 4: Illustration du traitement de la redondance par une méthode géométrique

2.4.1 Solution par la Jacobienne transposée


La commande cinématique d’un système (ici considéré comme arborescent) peut être
réalisée en utilisant directement la jacobienne inverse. Le problème de la redondance est
alors résolu en considérant qu’un torseur de force FExt est appliqué à l’effecteur, cette
dernière cherchant à l’amener sur la position désirée Xd (voir illustration figure 4)

Figure 5: Illustration du principe de commande par Jacobienne inverse

Si cette action extérieure est considérée comme réalisée à travers une raideur :

FExt = K(Xd − X) = K e

avec K une matrice positive et symétrique d’ élasticité, on peut déterminer la solution q̇


par :
q̇ = J t Ke

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

qui pour Xd = cte vérifie :


Φ̇(e) = −et KJJ t Ke < 0
ce qui montre que la convergence vers zéro de la solution est assurée.

2.4.2 Solution par la pseudo-inverse de Moore Penrose


On peut imposer une contrainte supplémentaire pour obtenir une solution, par exemple
chercher une solution q˙p de norme Euclidienne minimale telle que :
2 2
J q˙p − Ẋ = minq̇∈Rn J q̇ − Ẋ

L’unique solution est donnée par :


q˙p = J + Ẋ
où J + est la pseudo-inverse de J. Elle produit une solution minimale pour kq̇k2 (aux
moindres carrés) pour Ẋ désiré. (Fonction pinv() de Matlab )
Le calcul de la pseudo-inverse de J peut être réalisé si rg(J) = m par :

J+ = J t (J J t )−1

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, 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

Alors, la pseudo-inverse de Moore-Penrose est :


1
J + = V Σ+ U t = vi uti
X
σ
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 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 (∗)

En post-multipliant par M −1 J t , ce système se transforme en :

q̇ t J t = λt (JM −1 J t )

Les multiplicateurs λ sont donc tels que :

λt = Ẋ t (JM −1 J t )−1

En reportant dans (∗), on trouve :

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.

2.5 Homogénéı̈sation de J pour le calcul de la pseudo-inverse


Les termes de JJ t peuvent ne pas être homogènes en dimension. Considérons par exemple
le robot plan PPR dont la Jacobienne serait :
 
0 0 1
J =  1 0 −dSθ3 
 

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 
 

dCθ3 −d2 Sθ3 Cθ3 (1 + dSθ3 dCθ3 )


Ces composantes sont inhomogènes en dimension.
D’une manière générale, si un système comporte de liaisons de rotation et de translation,
2
kq̇k2 = q̇ t q̇ conduira à une somme de termes inhomogènes. De même le calcul de Ẋ =

Ẋ t Ẋ est le résultat du produit orthogonal entre torseurs et dépendra du point ou la


vitesse est exprimée et des unités des longueurs.
A titre d’exemple, en considérant le robot de la figure 5, Pour palier ce problème, une

Figure 6: Manipulateur PRR pour illustration des problèmes d’inhomogoneı̈té

solution consiste à normer les vecteurs Ẋ et q̇ en utilisant par exemple une longueur
caractéristique.

ẊN orm = diag[1, 1, 1, 1/L1 , 1/L1 , 1/L1 ]Ẋ = Nv Ẋ

q̇N orm = diag[a11 , . . . , ann ]q̇ = Nq q̇


avec aii = 1 pour les liaisons rotoı̈des et aii = 1/L2 . La pseudo inverse pondérée de J
est alors égale à :
JN+orm = [Nv JNq−1 ]+

2.6 Méthodes de détermination des mouvements internes


2.6.1 Vecteurs du noyau de J
On peut déterminer un ensemble de vecteurs orthogonaux qui forment une base du noyau
de J(q). Cette base est de dimension n − r. Elle peut être constituée des vecteurs vi
i = r, n issus d’une décomposition en valeurs singulières de J(q) et tel que :

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

Ainsi, la solution homogène q̇h peut s’exprimer :


X
q̇h = N (J)ẋN = x˙N i vi
i=1,n−r

- 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̇

Pour l’exemple du système 3P on a :

JN = ( −1/2 0 1/2 )

2.6.2 Tâche secondaire dans l’espace articulaire


Une méthode consiste à projeter une tâche secondaire sur le noyau de la Jacobienne en
utilisant le projecteur orthogonal (Id − J + J)

q̇h = (Id − J + J) q̇op


| {z }
PN (J)

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

- α > 0 conduit à une croissance de φ


- α < 0 conduit à une décroissance de φ
Un exemple de fonction φ pour l’éloignement aux butées est :
X qi − qi moy 2
φ(q) = ( )
i=1,n ∆qi

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

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 :
Fatt = −k∇φ(q) = k(q(t) − qd )
Un exemple de champ attractif pour un système 2R est donné sur la figure 6 Un potentiel

Figure 7: Illustration d’un champ attractif

réplusif borné à la distance d0 est le suivant :


1 i 1 1
φirep (q) = krep ( i − )2 si di (q) ≤ d0 ; φirep (q) = 0 si di (q) > d0
2 d (q) d0
Un exemple est donné sur la figure 7
On illustre l’effet du projecteur orthogonal à partir de l’exemple représenté sur la
figure 8 qui considère le problème suivant :
δq1
 
( δx ) = ( −l1 Sθ1 − l2 Sθ12 ; −l2 Sθ12 )
δq2
Le système est une fois redondant vis-à-vis de la tâche. Il est clair que la tâche secondaire
n’est réalisée que partiellement. Par ailleurs, on montre que ce mouvement interne
sans action dissipative peut conduire à un mouvement oscillatoire. Aussi, un terme
d’amortissement peut être introduit pour stabiliser le mouvement.

15
Figure 8: Illustration d’un champ attractif

Figure 9: Illustration de la partition de l’espace des solutions

16
2.6.3 Tâche secondaire dans l’espace cartésien
Si on introduit une tache primaire :

Ẋ1 = J1 q̇ (1)

et une tâche secondaire :


Ẋ2 = J2 q̇ (2)
comme pour un évitement d’obstacle (voir illustration 9)
De (1) on tire :

Figure 10: Illustration de l’évitement d’un obstacle

q̇ = J1+ Ẋ1 + (Id − J1+ J1 )Z1


où Z1 est un vecteur quelconque de Rn .
en substituant dans (2) :

Ẋ2 = J2 J1+ Ẋ1 + J2 (Id − J1+ J1 ) Z1


| {z }
Je2

On détermine alors Z1 comme :

Z1 = Je2+ (Ẋ2 − J2 J1+ Ẋ1 ) − (Id − Je2+ Je2 )Z2

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 )

Compte-tenu des propriétés de la pseudo-inverse, le terme :

(Id − J1+ J1 )Je2+ = (Id − J1+ J1 )(J2 (Id − J1+ J1 ))+

17
se réduit à :
(J2 (Id − J1+ J1 ))+ = Je2+
d’où la solution pour q̇ :

q̇ = J1+ Ẋ1 + Je2+ (Ẋ2 − J2 J1+ Ẋ1 )

La formulation générale de la solution est :

q̇ = J1+ Ẋ1 + Je2+ (Ẋ2 − J2 J1+ Ẋ1 ) + (Id − J2+ J2 )Z2

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.

Figure 11: Illustration de la formulation dans l’espace cartésien

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)

2.6.4 Autre formulation de la tâche secondaire


Pour éviter les singularités algorithmiques une formulation alternative conduit à déterminer
la solution pour la tâche secondaire puis à la projeter sur le noyau de J1 . La solution est
alors déterminée par :
q̇ = J1+ Ẋ1 + PN (J1 ) (J2+ Ẋ2 )
Pour des systèmes hautement redondant, on peut imaginer que les tâches soient en
cascade et la soultion déterminée par :

q̇ = J1+ Ẋ1 + PN (J1 ) (J2+ Ẋ2 + P(N (J1 )∩N (J2 )) Z2 )

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

Figure 13: Illustration de l’utilisation d’une tâche secondaire cartésienne

2.7 Augmentation de l’espace opérationnel


Une autre solution consiste à étendre l’espace opérationnel en ajoutant un objectif
complémentaire à celui de la tâche principal Ẋ qui introduirait rg(J) = n − m con-
traites sur le mouvement. Ces contraintes supplémentaires peuvent être choisies pour

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.

Figure 14: Augmentation de la Jacobienne pour la coordination posture/tâche

X
 
Xe =
Xc

la matrice Jacobienne correspondante devient elle aussi étendue :

J(q)
 
Je (q) =
A(q)

Si le rang de Je (q) est r = m = n, alors on résoud le problème cinématique inverse


comme :
q̇ = Je−1 (q)Ẋe
Une matrice Jacobienne pour le nombre de contraintes ninimum est donné par :

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

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 .

2.8 Utilisation de méthodes d’optimisation


La résolution du problème cinématique inverse peut être réalisée à l’aide de méthode
d’optimisation.

2.8.1 Multiplicateurs de Lagrange


Le méthode des multiplicateurs de Lagrange peut être également exploitée. Le problème
sera alors posé sous la forme :

W (q) J q̇ 0
    
=
Jt 0 λ Ẋ

La résolution de ce système d’équation linéaire se fait en particulier à l’aide d’une


décomposition LU .

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 δ

sous les contraintes linéaires :

δX = Jδq
−δ < δq < δ
δ > 0 (6)

Le vecteur K peut être vu comme le vecteur des raideurs articulaires.

l’algorithme du simplexe (Fonction matlab simplex2p ) est pratiquement toujours


plus performant pour résoudre un LP. Les méthodes de point intérieur sont qui perme-
ttent d’évoluer à l’intérieur du polytope des contraintes sont également des méthodes
performantes.

2.9 Détermination des configurations singulières dans les ma-


nipulateurs redondants
Un manipulateur série non-redondant se trouve dans une configuration singulière lorsque
rg(J) < d (dimension de l’espace de tâche). On détermine les configurations singulières
algébriquement en considérant les conditions sur q conduisant à :

det(J) = 0

Pour un manipulateur redondant, le système se trouvera dans une configuration singulière


lorsque le rang de JJ t est modifié. Cependant, une approche algébrique peut être rendue
délicate (voire impossible) du fait de la complexité des termes de JJ t . On peut utiliser
la méthode ”‘géométrique”’ suivante.
On cherche à déterminer le torseur réciproque $R tel que :

$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

det(J Sub ) = det($2 , $3 , $4 ) = 0 si θ3 = 0


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)
R Sub
$ est aussi réciproque à $1 si :
Sub
$R .$1 = 0

La condition supplémentaire est θ2 = π/2 + kπ

2.10 Passage des singularités


Dans une configuration singulière J(q) n’est plus de rang plein. Sa pseudo-inverse J +
n’st pas définie dans une telle configuration. Aussi, on utilise la pseudo-inverse pondérée
qui est définie de la manière suivante.
Plutôt que de chercher la solution à Ẋ = J q̇ telle que min kq̇k, on détermine q̇ qui
minimise : 2
2
J q̇ − Ẋ + λ2 kq̇k

où λ est une constante non-nulle.


Cette quantité est équivalent à :
J Ẋ 2
   
I λ q̇

d 0
La solution aux moindres carrés est donnée par :
t 
J J J Ẋ
    
q̇ =
Id λ Id λ a Id λ 0

23
que nous pouvons ré-écrire comme :

(J t J + λ2 Id )q̇a = J t Ẋ

On montre que (J t J + λ2 Id ) est non-singulière. En effet, J ∈ Rm×n et λ2 Id ∈ Rn×n et


J
 
son rang est n. Aussi, le rang de = n. La solution aux moindres carrés amortie
Id λ
(Damped Least Square - DLS dans laquelle λ est le facteur d’amortissement) est :

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.

(JJ t + λ2 Id ) = (U ΣV t )(V ΣU t ) + λ2 Id = U Σ2 U t + λ2 Id = U (Σ2 + λ2 Id )U t

Aussi:
J t (JJ t + λ2 Id ) = V Σ(Σ2 + λ2 Id )−1 U t = V EU t
| {z }
E

E ∈ Rm×n est une matrice diagonale :


σi
E = diag(eii ) avec eii =
σi2 + λ2

La pseudo-inverse pondérée se calcule de la manière suivante :


σi
J+ = vi uti
X
2 2
i=1,k σi +λ

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

Vous aimerez peut-être aussi