• Aucun résultat trouvé

flbx(1+X2) b f lx flbyY X b f lx flbxXY b f ly flby(1+Y2) b f ly

Pour que les valeurs propres de la matrice précédente soient positives, il faut et il sut que sa trace et son déterminant soient positifs. Or:

trace(BLR( bB cLR)+) = fb lx(1+X2) b f lx +flby(1+Y2) b f ly det(BLR( bB cLR)+) = f2lbxlby(1+X2+Y2) b f2lxly

Une condition nécessaire et susante de stabilité asymptotique locale est donc:

f, bf ,lx, blx,ly,by > 0

2

Comme précédemment, cette étude montre qu'il est tout à fait possible de xer LcR tout en assurant la stabilité de la boucle de commande. Notons toutefois que le calcul de LcR à chaque itération serait également très simple à implémenter.

A.2.3 Interaction

Alors que les mouvements de rotation n'inuencent pas les caractéristiques de l'image globale, les mouvements de translation de l'eecteur induisent des mouvements dans l'image embarquée. Plus précisément, le mouvement de la projection de la cible xe est relié à la commande en translation par:

˙ sR=  −1/z 0 X/z 0 −1/z Y/z  R0 | {z } LRT V

zest la profondeur de la cible xe dans le repère de la caméra locale etR0 est la rotation entre ce repère et le repère de commande en translation. Pour estimerLdRT, nous xonsXb

etYb à leur valeur désirée0etbzà une valeur constantez∗.R0est calculé grâce à l'odométrie du robot.

A.3 Coopération

À présent, nous souhaitons faire coopérer les tâches de rotation et de translation dans un schéma de commande unié. D'après la modélisation précédente, le jacobien de la tâche globale est: b L = LcT 0 d LRT LcR ! = Lcd c Le ! }déporté }embarqué

Lorsque l'on utilise la commande (A.2) où bLprésente un terme de couplage (LdRT 6= 0), on observe des comportements indésirables dans l'image (voir gure A.3) avec, éventuellement,

176 A.3 Coopération

une perte des amers siLb n'est pas parfaitement estimé. Ces craintes ont pu être vériées au cours d'expérimentations; c'est pourquoi nous souhaitons conserver le maximum d'in-dépendance dans la commande des tâches. De plus, si l'ind'in-dépendance est préservée, la stabilité de la tâche globale sera assurée tant que chacune d'elles reste stable.

-a- Caméra déportée -b- Caméra embarquée

0 10 20 30 40 50 60 70 −0.03 0 0.03 Commande en translation temps (s) vitesse (m/s) V x V y V z 0 10 20 30 40 50 60 70 −8 −6 −4 −2 0 2 4 Commande en rotation temps (s) vitesse (deg/s) x y z 0 10 20 30 40 50 60 70 −100 −80 −60 −40 −20 0

20 Erreurs dans l’image

temps (s) X G−X G * (pixels) Y G−Y G * (pixels) S−S* (pixels2) 0 10 20 30 40 50 60 70 −100 −50 0 50 100 150 200 250

Erreurs dans l’image

temps (s) di s tance (p ixe ls ) X−X* Y−Y*

Trajectoire du cdg dans l’image deportee Trajectoire de suivi dans l’image embarquee

Fig.A.3  Commande couplée

En revanche, xer LdRT = 0 introduit une imprécision de modélisation qui conduit à des erreurs de suivi (gure A.4-b), parfois nommées erreurs de traînage. Le problème est d'autant plus dangereux que les amers peuvent, là encore, sortir de l'image. An de supprimer cette erreur de suivi tout en conservant l'indépendance, nous nous proposons de comparer deux classes de méthodes: des méthodes basées sur une estimation de la

Asservissement visuel et coopération 177

perturbation et une méthode introduisant la notion de redondance de tâches.

A.3.1 Estimation de la perturbation

La translation de l'eecteur peut être vue comme une perturbation inconnue agissant sur les caractéristiques embarquées. À cause de cette perturbation inconnue sur sR, l'équa-tion (A.1) n'est plus valide puisque sR ne dépend plus de la seule position du robot mais également du temps: sR(r,t). Ce qui se dérive en:

˙ sR= ∂sR ∂r dr dt + ∂sR ∂t = LRΩ + ∂sR ∂t

Si l'on souhaite assurer une décroissance exponentielle de sR− sR∗, la commande corres-pondante est donnée par [Chaumette 93]:

Ω =−λRLcR+ (sR− sR∗) | {z } loi de commande classique − cLR+∂sdR ∂t | {z } compensation de l'erreur de traînage (A.11)

où l'on reconnaît un terme de commande classique identique à (A.2) et un terme lié à la compensation de l'erreur. Il faut donc estimer la part des variations de l'image due à la perturbation, c'est-à-dire∂s\R/∂t. Plusieurs techniques peuvent permettre de réaliser cette estimation:

Odométrie:

Si l'on a accès à l'odométrie du robot,V peut être mesurée et l'estimation est donnée par\(∂sR

∂t ) = LRTV. Malheureusement, peu de robots peuvent se permettre une mesure précise de leurs mouvements de translation. Les robots mobiles ont, par exemple, une odométrie en translation peu able.

Estimation itérative :

Cette méthode nous vient directement de la théorie de la com-mande et consiste à insérer un intégrateur dans la boucle de comcom-mande. L'intégration est réalisée par le schéma itératif suivant:

(∂sdR

∂t )k+1 = (

d

∂sR

∂t )k+ µ(sRk− sR∗) (A.12) oùµest un gain de compensation. Nous pouvons vérier que, lorsque la stationnarité est atteinte, c'est-à-dire pour

(∂sdR

∂t )k+1 = (

d

∂sR

∂t )k

alors sRk = sR, l'erreur de traînage est compensée.

Observation/Prédiction:

Une autre méthode consiste à comparer la vitesse observée dans l'image et la vitesse prédite à partir de la commande précédente. La diérence de ces deux termes doit correspondre à la variation due à la perturbation. À l'instant

k, l'estimation est: \  ∂sR ∂t  k = sRk ∆t |{z} observation sRk/k−1 ∆t | {z } prédiction

178 A.3 Coopération

sRk/k−1= sRk−1+ LRk−1∆t. Donc: \  ∂sR ∂t  k = sRk− sRk−1 ∆t − LRk−1 (A.13) À l'instantk, la connaissance dek−1 peut être obtenue soit en supposant quek−1

est la commande précédente, soit en la mesurant. Cette dernière technique est celle que nous avons implémentée puisque la première suppose un temps de réponse idéal du système2.

L'estimation donnée par (A.13) serait parfaite si les données n'étaient pas bruitées. Puisque ce schéma n'est pas itératif, il ne ltre pas le bruit sur les mesures de sRet

. Pour le ltrer, nous pouvons utiliser soit un simple ltre avec facteur d'oubli:

\ (∂sR

∂t )k= α.(sRk− sRk−1

∆t − LR.Ωk−1) + (1− α).(\∂sR

∂t )(k−1) (A.14)

αest le facteur d'oubli, soit un ltre de Kalman comme celui proposé dans [Chau-mette 93]. Évidemment, cette technique implique que l'on connaisse une approxima-tion du modèle d'évoluapproxima-tion de ∂sR

∂t mais il est bien connu que le ltre de Kalman est assez robuste vis-à-vis de cette modélisation. Nous avons choisi un modèle à vitesse constante et bruit corrélé.

Un atout important des techniques d'observation/prédiction est qu'elles fonctionnent également pour le suivi de cibles mobiles. Dans ce cas, on ne fait pas de diérence entre la perturbation due à la translation de l'eecteur et celle due au mouvement de la cible, mais ceci n'inuence pas le comportement du système.

A.3.2 Redondance de tâches

Une autre méthode est de considérer la tâche de suivi en rotation comme tâche principale. Puisqu'elle ne contraint pas tous les degrés de liberté du robot, nous pouvons utiliser le formalisme de la redondance de l'approche fonction de tâche [Samson 91,Espiau 92]. Une tâche secondairegs peut alors être réalisée conjointement en régulant la fonction de tâche:

e = W+(sR− sR∗) + (I − W+W )α2gsT

W est une matrice de rang plein telle que KerW =Ker cLesi on noteLce= [ dLRT LcR]. La matriceI − W+W est donc un opérateur de projection sur le noyau deLce. Cela signie que la réalisation de la tâche secondaire n'aura pas d'eet sur la tâche principale tant que

c

Le est une bonne approximation de Le.

Dans notre cas, le jacobien de la tâche principale Le = (LRT LR) est de rang plein donc nous pouvons poser W = cLe. De plus, la tâche secondaire est une tâche de position-nement dans l'image déportée:

gs= C(sT − sT)

2. Il est important de noter que les mouvements de rotation sont toujours plus faciles à mesurer préci-sément que les mouvements de translation.

Asservissement visuel et coopération 179

Cest une matrice de combinaison. Par application de la commandeT =−λe, l'évolution de sT lorsque sRa convergé est donnée par:

˙

sT =−λα2Ld(I − cLe+Lce)C(sT − s T)

Une condition nécessaire à la décroissance exponentielle de sT est que

C = (cLd(I − cLe+Lce))+

En conclusion, la fonction de tâche s'écrit:

e = cLe+(sR− sR∗) + (I − cLe+Lce)(cLd(I − cLe+Lce))+α2(sT − sT∗)