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 garde | Comme 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 les 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) du point de départ au but. Le potentiel est
représenté par les courbes de niveau qui sont 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 et Sysquake LE, vous pouvez:
- manipuler les graphiques vous-même, comme vous voulez, avec des graphiques
mis à jour beaucoup plus rapidement;
- implanter vos propres algorithmes de navigation;
- commander directement avec Sysquake des robots mobiles tels que
Khepera;
- utiliser des fonctions telles que l'annulation à plusieurs niveaux, l'impression,
la création de fichiers EPS, etc.
- charger d'autres applications dans des domaines tels que la commande automatique,
le traitement du signal, la physique, les mathématiques, etc.
- développer vos propres applications en écrivant des scripts.
Vous pouvez télécharger
maintenant Sysquake LE!
|