• Aucun résultat trouvé

Algorithme pour déterminer en ligne les gains à appliquer

5.4 Considérations sur la longueur des pas à effectuer

5.4.3 Algorithme pour déterminer en ligne les gains à appliquer

Compte tenu du fait que l’animat ne peut déterminer les gains à appliquer aux composantes radiale et tangentielle nous avons eu recours à des méthodes itératives qui tentent d’obtenir par itérations successives des valeurs de gain raisonnables.

5.4.3.1 Solution pragmatique figée

Une première solution est le réglage manuel du gain « en dur » dans le simulateur ou le pro-gramme contrôlant le robot. L’expérimentateur doit régler le gain en fonction de l’environnement, le plus simple étant par essai et erreur. Cette solution a l’avantage de la simplicité. Son inconvénient est qu’elle n’est efficace que dans un type d’environnement donné. Si le robot se trouve dans un environ-nement beaucoup plus grand avec le même gain, il perdra beaucoup de temps à faire des petits pas. Si l’animat se trouve dans un environnement beaucoup plus petit avec le même gain, il va se heurter aux obstacles car il fera des pas trop grands.

5.4.3.2 Solution adaptative : ralentir sur les courbes

L’idée principale de la solution adaptative que nous avons conçue est de trouver un critère prag-matique pour déterminer quelle est une longueur de pas raisonnable par ajustements successifs.

Au début d’une trajectoire, nous partons d’un gain qui produit une longueur de pas raisonnable, comme par exemple la longueur du robot. Nous prenons pour critère de changement de taille de pas la régularité de la trajectoire. L’idée est que si l’animat va toujours tout droit à chaque pas, il est probablement possible d’augmenter la taille du pas pour aller plus vite. En revanche, si la trajectoire fait des zigzags, il semble prudent de réduire la taille du pas pour régulariser la trajectoire.

Plus formellement, nous mesurons et désignons par α l’angle entre deux segments successifs de la trajectoire de l’animat. Nous appelons cette valeur la tortuosité locale. En effet, α = 0 à un instant donné correspond à faire deux pas dans la même direction exactement, alors que plus α est grand,

plus le trajet est tortueux. Dans le cas extrême, α = 180, l’animat fait exactement un demi-tour entre

un pas et le suivant.

Nous souhaitons que le gain augmente pour une trajectoire droite, et diminue en cas de trajectoire

l’ani-5.4. CONSIDÉRATIONS SUR LA LONGUEUR DES PAS À EFFECTUER 143

FIG. 5.12: Ajustement automatique du gain en fonction de la régularité de la trajectoire. La flèche à gauche représente un déplacement. De sa pointe partent d’autres flèches correspondant à des virages d’angles variés. Leur longueur est proportionnelle au gain appliqué quand l’animat fait un virage de l’angle représenté. L’idée principale est que, si l’animat avance plutôt en ligne droite, le gain doit croître. Au contraire, si l’animat fait des virages à chaque pas, le gain doit décroître. On modifie le gain à chaque pas d’un facteur dépendant de l’angle entre un pas et le suivant. La courbe représente le lieu des sommets des flèches. Les flèches épaisses correspondent à l’angle neutre choisi (ici 50) qui, par définition, aboutit à un gain de 1.

mat tourne exactement de cet angle, alors le gain ne variera pas. À chaque pas que fait l’animat, nous multiplions le gain par le facteur suivant :

exp(cos(α) − cos(αn))

Ainsi, nous prédisons, et observons effectivement en simulation, que la trajectoire s’adapte bien à la taille d’un environnement donné sans avoir besoin d’introduire une pré-connaissance de l’environ-nement.

Nous avons choisi de prendre αn = 50 après quelques essais simulés. Ce choix permet

un facteur d’amplification maximum de exp(1 − cos(αn)) = 1.43, et un facteur minimum de

exp(−1 − cos(αn)) = 0.19. C’est le cas représenté en figure5.12. Ainsi, la longueur des pas croît exponentiellement assez vite si la trajectoire est très rectiligne, mais peut décroître exponentiellement très vite lorsque c’est nécessaire.

Si on choisit un angle neutre trop faible, l’animat a trop tendance à freiner. Notamment, quand l’animat est presque arrivé au but et fait des petits ajustements, ceux-ci ont des directions variées et tendent à faire s’arrêter l’animat en un point non optimal alors qu’une meilleure précision est encore possible. Si on choisit un angle neutre trop grand, le gain devient vite trop grand, la trajectoire devient chaotique et la performance moindre.

On peut se donner une distance minimum à parcourir, par exemple une fraction de la taille de l’animat, pour éviter de le voir piétiner surtout en fin de trajectoire.

But M

N

FIG. 5.13: Ajustement automatique du gain. Après chaque pas, l’animat peut comparer les nou-velles (en N) parallaxes (flèches courbes) avec les anciennes (en M). Il peut ainsi estimer la proportion de parallaxes qui a été réduite suite à ce déplacement. S’il constate que la proportion est trop faible (l’animat fait des pas trop courts, ou bien les amers sont tous très lointains), il peut augmenter le gain pour faire de plus grands pas. Inversement, s’il constate que la proportion est trop forte (par exemple, au moins une parallaxe a changé de sens au cours d’un déplacement), il est bon de diminuer le gain.

Nous avons utilisé avec succès cette solution adaptative en simulation. Elle a un défaut toute-fois : que la valeur du gain ne converge pas. Le gain est toujours remis en question et fluctuant. Par ailleurs, nous avons trouvé que la marge était faible entre des valeurs de l’angle neutre trop petites et trop grandes. Nous ne sommes pas convaincu que cette méthode fonctionnerait bien dans d’autres environnements.

5.4.3.3 Ajuster la proportion de réduction des parallaxes

Cette solution utilise une idée différente : mesurer l’effet de son déplacement sur les parallaxes, et ajuster la taille des pas pour que cet effet soit dans une proportion adéquate.

L’animat fait un pas dans la direction indiquée par le modèle. Il considère pour chaque amer i la

proportion fide la parallaxe DiBut→M qui a été réduite en faisant ce pas. On ne tient pas compte dans

5.4. CONSIDÉRATIONS SUR LA LONGUEUR DES PAS À EFFECTUER 145 de mesure. fi = − D M →N i DiBut→M

Cette proportion peut aller de 0 si la parallaxe n’a pas changé (le pas était beaucoup trop petit pour mesurer une modification, ou bien le pas était dans la direction de l’objet ou dans la direction opposée) à 1 (on est directement arrivé à annuler cette parallaxe), voire plus (on a dépassé en un pas l’écart qu’on devait corriger, il y a donc un écart dans l’autre sens désormais). On considère la

plus grande des proportions fmax, car elle correspond (si on fait l’hypothèse d’un monde statique)

à un objet proche, comme dans la stratégie d’évitement d’obstacle par équilibrage du flux optique

expérimentée par Duchon [DUC 96].

Alors on augmente ou on diminue γ de façon à rapprocher f de la proportion k souhaitée. On peut

par exemple multiplier γ par k/f , ou bien appliquer γ(t + 1) = γ(t)0.9∗ (k/f )0.1pour lisser un peu

les variations qui peuvent apparaître. Ainsi on ajuste la taille des pas de sorte que chaque pas tende à corriger une proportion k constante de la parallaxe qui varie le plus vite à ce moment. Ainsi, l’animat avance vite quand il est loin du but et de tout obstacle ; et il ralentit quand il passe près d’un obstacle, ou arrive près du but.

Cette méthode a l’avantage de ne pas dépendre de la forme de la trajectoire mais uniquement de l’effet observé visuellement. Nous pensons qu’elle est plus stable et moins sensible à la valeur précise du paramètre.

Par ailleurs, alors que cette section cherchait à résoudre un problème lié au cas discret, cette méthode est applicable et nous semble intéressante pour le cas continu.

5.4.3.4 Conclusion sur le gain

Le problème que nous cherchons à résoudre dans cette section ne se pose véritablement que si un animat évolue dans des environnements où sa distance aux amers varie beaucoup au cours du temps. Sinon, un gain constant ad-hoc suffit, et c’est ce dernier cas qui nous concernait dans nos expériences. La première méthode (gain fixe) permet à la navigation de fonctionner pour un environnement donné, à condition que l’expérimentateur règle le gain.

La seconde apporte l’indépendance par rapport à la taille de l’environnement. Elle remplace tou-tefois la recherche du paramètre gain fixé par le réglage d’un autre paramètre, l’angle neutre.

La dernière méthode, qui tente d’ajuster la proportion de parallaxes corrigée en un pas, nous semble la plus intéressante. Toutefois, nous n’avons pu la tester faute de temps.