• Aucun résultat trouvé

Ce chapitre définit comme paramétrer à la fois le timing et le comportement des tâches en superposant des tâches, c’est-à-dire en réalisant les tâches simultanément plutôt que séquen- ciellement, de façon à produire un mouvement plus fluide.

Introduction

A partir du plan symbolique, il est possible de définir une trajectoire implicite à l’aide la fonction de tâches. Il est aussi possible de définir de façon explicite la trajectoire que doit suivre le robot, mais cette méthode rend difficile l’adaptation de la séquence durant son exécution. Afin de pouvoir superposer les tâches, il est nécessaire de modifier la séquence initiale en remplaçant certaines contraintes temporelles par d’autres contraintes liées à la réalisation d’une tâche ou à l’environnement. Ces contraintes ne peuvent pas être mises sous forme symbolique, donc cette opération ne peut pas être gérée durant la phase de planifica- tion. De plus, il est nécessaire de vérifier avant l’exécution que la séquence est réalisable. On introduit donc entre les phases de planification et d’exécution une phase d’optimisation qui réalise la superposition des tâches tout en vérifiant les contraintes.

Séquence de tâches

Une séquence de tâches est un ensemble fini de tâches classées par ordre de réalisation et liées les unes aux autres. On considère qu’une tâche n’apparait qu’une seule fois dans la séquence, et on lui associe trois variables temporelles : un temps d’insertion et un temps de retrait de la pile, tout deux contrôlables, ainsi que le temps de régulation de la tâche, au bout duquel la norme de l’erreur de la tâche est inférieure à une valeur donnée. Ce troisième temps n’est pas contrôlé, car c’est une conséquence de la réalisation de la séquence de tâches. Ces temps permettent d’évaluer les contraintes temporelles définies par la séquence de tâches et les contraintes de régulation : chaque tâche doit être régulée avant d’être retirée de la pile.

Optimisation d’une séquence de tâches

Le but de la phase d’optimisation est d’améliorer le plan de tâches en tirant profit de la re- dondance du robot afin de réaliser un mouvement fluide. Comme il est impossible d’évaluer numériquement la superposition des tâches, on minimise à la place le temps de fin de la séquence, ce qui permet de réduire les temps morts et de forcer la superposition des tâches.

Les paramètres de l’optimisation sont les tâches, qui sont des données symboliques. Afin de pouvoir réaliser une optimisation numérique, il est nécessaire de les convertir en proto- symboles, en leur associant des données numériques. Ainsi, les paramètres de l’optimisation sont les paramètres temporels (temps d’entrée et de sortie de la pile) et le comportement de référence (défini par un gain adaptatif) de chaque tâche.

Les contraintes du problème regroupent les contraintes temporelles liées à la séquence (ordre entre les tâches et régulation des tâches) et les contraintes liées à l’environnement (limites physiques du robot, évitement des collisions. . . ). Une partie seulement de ces con- traintes peuvent être directement calculées à partir du vecteur de paramètres, les autres ne peuvent être déterminées que par une simulation de la séquence de tâches.

Gestion des contraintes semi-infinies

Le problème à optimiser est un problème semi-infini, c’est-à-dire qu’il a un nombre fini de paramètres, mais un nombre infini de contraintes. Ce caractère semi-infini est dû au temps, dans la mesure où les contraintes doivent être vérifiées à tout moment de la simulation.

Les méthodes classiques de gestion des contraintes semi-infinies, comme l’analyse par intervalles ou l’utilisation d’une séquence de problèmes d’optimisation, ne peuvent pas être appliquées à notre problème. La méthode que nous utilisons est basée sur une l’évaluation discrète des contraintes : les contraintes sont évaluées à intervalles de temps fixe, mais aussi lors de la réalisation d’événement discret. Afin d’avoir une évolution continue des contraintes et un nombre constant de contraintes durant l’optimisation, on considère que la valeur d’une contrainte semi-infinie correspond à la valeur maximale obtenue lors de l’exécution de la séquence. De plus, de façon à plus facilement relier la violation d’une contrainte à la tâche responsable et à améliorier la convergence de l’algorithme, un jeu de contraintes semi-infinie est associé à chacune des tâches, et n’est évalué que lorsque cette

tâche est active.

Optimisation via simulation

Le problème à optimiser est continu et sa dérivée est continue par morceaux. Le solveur util- isé est CFSQP, qui, bien que prévu pour résoudre des problèmes de classeC1, retourne pour

notre problème de meilleurs résultats que SolvOpt, un solveur qui résout des problèmes ni linéaires ou continus. La plupart des contraintes ne peuvent pas être calculées directement de façon analytique : la seule façon de les évaluer est de réaliser une simulation de la séquence de tâches. Il y a de fait un dialogue permanent entre le solveur qui choisit le vecteur de paramètres et le simulateur qui évalue les contraintes correspondantes. Deux méthodes sont proposées pour améliorer le processus d’optimisation : une mise à l’échelle des contraintes et la décomposition de la séquence en plus petites séquences indépendantes.

Discussion

La formulation de ce problème d’optimisation présente deux problèmes liés à la continuité de la séquence de tâche. Le premier problème est l’évaluation a posteriori de la contrainte de régulation : l’insertion et le retrait des tâches n’est déterminé que par le timing, ce qui peut conduire à des incohérences dans la séquence de tâches si les tâches ne sont pas régulées avant d’être retirées et donner des valeurs de contraintes incohérantes. Le second problème est lié à la discontinuité de la commande par rapport à l’ordre des événements. Une solution sûre mais trop restrictive serait de fixer l’ordre des événements (c’est-à-dire de travailler avec un plan de tâches totalement ordonné). De ce fait, il n’est pas possible de déterminer quelle séquence de tâche a le petit temps de réalisation avec cet algorithme.

Documents relatifs