en fr

Navigation de robots mobiles avec Sysquake

Sysquake vous permet de comprendre intuitivement le fonctionnement de stratégies complexes de navigation pour robots mobiles. Pour le montrer, nous choisirons l'approche par champ de potentiel, où les obstacles sont évités parce qu'ils sont entourés par un «potentiel» élevé (similaires à des bosses sur le terrain d'excercice d'un amateur de patins à roulettes) que le robot tend à éviter.

Mise en gardeComme nous le verrons avec Sysquake, la navigation par champ de potentiel a des inconvénients et n'est pas ce que nous choisirions pour des applications réelles. Elle est utilisée ici parce qu'elle est souvent enseignée dans les cours de robotique mobile et qu'elle constitue un très joli exemple pour Sysquake. Aider à comprendre les limitations d'une approche théorique est aussi un domaine où Sysquake excelle.

Un robot mobile est un véhicule autonome muni d'un ordinateur qui lui donne l'intelligence de se déplacer dans son environnement pour accomplir des tâches. La navigation est l'art de faire aller le robot où il doit. Les objectifs principaux de la navigation sont d'aller à un point donnée (le but) tout en évitant les obstacles. De nombreux problèmes doivent être surmontés: le robot doit savoir d'où il part et où il va, il doit connaître sa position au cours de ses déplacements ainsi que celle des obstacles (ce qui est particulièrement difficile quand ceux-ci sont découverts au cours du déplacement ou peuvent bouger eux-mêmes), et enfin il doit déterminer quand il a réellement atteint le but.

Dans notre cas, nous supposerons que les obstacles sont fixes, connus à l'avance, et que le robot connaît avec exactitude sa position. Nous voulons un algorithme qui dise au robot dans quelle direction il doit aller quelle que soit sa position courante.

Une façon simple d'accomplir cette tâche est l'approche dite de navigation par champ de potentiel. Le potentiel d'un point est la grandeur physique liée à l'énergie nécessaire pour l'atteindre. Une région qui a un potentiel plus élevé que l'endroit où vous vous trouvez est difficile à atteindre, parce que vous avez besoin de plus d'énergie. Considérez-la comme l'altitude d'une contrée vallonnée, avec des montagnes et des creux. Prenez par exemple la carte ci-dessous:

Des montagnes virtuelles sont placées autour des obstacles (le disque et la ligne rouges), et un terme additionnel (un vaste bol) est centré autour du but; le robot suit le chemin le plus raide (le gradient, représenté par les petites lignes roses) qui descend du point de départ au but. Le potentiel est représenté par les courbes de niveau, toujours perpendiculaires au gradient. Observez comment les obstacles sont évités et comment le robot atteint le but.

Pas très clair? C'est là que l'interactivité de Sysquake vient à la rescousse. Déplaçons le but avec la souris (sur cette page Web, l'interactivité est remplacée par des animations bien plus grossières):

Observez comment le champ de potentiel est déformé et comment la trajectoire suit toujours le gradient.

Que se passerait-il si un obstacle était déplacé juste entre le point de départ et le but? Avec Sysquake, vous pouvez déplacer la ligne rouge avec la souris et observer immédiatement et en continu comment le champ de potentiel est modifé et ce que la trajectoire devient:

Le robot est piégé dans ce qu'on appelle un minimum local; l'obstacle bloque la route vers le but en créant un autre trou, avec un potentiel plus grand que celui du but, mais duquel le robot ne peut plus s'échaper sans prendre un chemin qui le ferait passer par un potentiel plus élevé. C'est là une des limitations de la navigation par champ de potentiel standard.

Avec Sysquake Pro et Sysquake, vous pouvez:

Vous pouvez télécharger maintenant Sysquake!