Fiche Projet 4 février 2011
Projet Robot
Labyrinthe Ligne
I.U.T. de Nîmes
frederic.giamarchi@iut-nimes.fr
Ce document est destiaux étudiants et aux amateurs de robots suiveur de ligne. Réaliser un robot suiveur de
ligne est une étape nécessaire dans la découverte de la robotique. Pour progresser avec la même base mobile et sur le
même thème, on peut toujours augmenter la vitesse, ajouter des raccourcis faire des priorités face à un adversaire. Mais
il existe aussi une autre activité tout aussi ludique : résoudre un labyrinthe dessiné par un tracé au sol.
Dans ce document, nous ne nous intéresserons pas à l’aspect matériel, mais uniquement aux méthodes de
résolution du défi.
IUT de Nîmes : Départ GE2I Projet Line Maze Robot.doc 1
I. Généralités
La structure générale de ce type de robot comporte
trois fonctions principales. Les capteurs qui lisent la
position des lignes, le contrôleur qui traite les
informations et l’interface moteurs qui crée les
déplacements élémentaires.
Figure 1 : Synoptique d’un robot suiveur de ligne
A ces trois fonctions indispensables, on peut
ajouter les fonctions de distribution des tensions
d’alimentations et de gestion d’une interface avec un
PC pour programmer le µC et déverminer le
programme.
II. Robot suiveur de ligne
Les robots suiveur de ligne utilisent des capteurs
de réflexion, placés sous le robot à l’avant et parfois
aussi à l’arrière. Leur position et leur nombre dépend
du tracé, de sa complexité et de la vitesse souhaitée du
robot.
Utilisation d’un ou deux capteurs
Trop peu de capteurs ne permettent pas de détecter
des pertes de piste ou des croisements.
Utilisation de trois capteurs
A partir de trois capteurs, il est possible de détecter
les voies sans issues même d’obtenir une certaine
vitesse avec des angles droits.
La mémorisation des diverses configurations du
tracé permettent une réflexion plus précise de la
stratégie à élaborer sur un robot Labyrinthe ligne.
III. Les tracés du labyrinthe
Deux types de labyrinthes peuvent être propos
dans les tournois de robotique. On part toujours du T
pour arriver au cercle noir.
Figure 2 : Tracé simple
Le tracé de la figure 2 est considéré somme simple
car il n’y a pas de boucle. On utilisera un algorithme de
type main gauche ou main droite pour le résoudre.
Figure 3 : Tracé complexe avec des boucles
Le tracé de la figure 3 est plus complexe à
résoudre. Plusieurs boucles plus ou moins imbriquées
proposent plusieurs chemins pour atteindre le cercle
noir. Dans tous les cas, rifier le règlement du tournoi
pour connaitre le type de tracé propo[1].
IV. Algorithme de type main gauche
Cet algorithme consiste à choisir le chemin de
gauche lorsque l’on arrive à une intersection. S’il n’y a
pas de chemin à gauche, alors on va tout droit. Si on
applique cette méthode sur la figure 2, cela donne : à
gauche à la 1ère intersection, à nouveau à gauche à la
2ème intersection, demi-tour au bout de la ligne, tout
droit à l’intersection, puis virage à droite et encore à
Fiche Projet Projet Robot Labyrinthe Ligne
IUT de Nîmes : Départ GE2I Décodage RC5.doc 2
gauche à la 3ème intersection, encore à gauche à la 4ème
et arrivée sur le cercle noir.
L’algorithme de type main droite étant identique
sur le principe, nous avons choisi de ne pas le traiter.
Dans le cas de ce tracé, il aurait pris plus de temps.
V. Algorithme avec mémorisation et
optimisation
La plupart des compétitions de ce type autorise
deux ou trois essais afin de trouver le chemin le plus
court pour être le plus rapide à résoudre le labyrinthe. Il
faut donc utiliser un algorithme qui cherche le plus
court chemin et le mémorise [2].
Principe général
L’algorithme de base est celui de type main gauche
ou main droite avec mémorisation de l’ensemble des
intersections et des voies sans issues. On fait un
premier passage classique et le deuxième passage
conduit directement à l’arrivée.
Premier passage avec mémorisation
Chaque situation critique est enregistrée,
intersection et voie sans issue. Le premier tracé est
mémorisé dans une chaine de caractères. Les virages à
droite ou à gauche obligatoires ne sont pas mémorisés.
Nous allons appliquer cette méthode sur la figure
2, avec un algorithme de type main droite. On recueille
la chaine de caractère suivante :
Chemin = "AUDDDUDUDDUA"
"A" pour avancer tout droit.
"U" pour faire demi-tour.
"D" pour tourner à droite.
"G" pour tourner à gauche.
Supprimer les voies sans issues
L’idée de base consiste à supprimer les voies sans
issue. Mentalement, on voit apparaitre le chemin
menant à l’arrivée. Le caractère U est typique d’une
erreur de chemin, il impose une modification de la
chaine de caractère.
Optimisation
La chaine de caractères est optimisée au fur à
mesure de la progression du mobile ou à la fin du
premier passage. L’optimisation consiste à détecter des
suites de caractères typiques dans la chaine et de les
remplacer par d’autres.
"AUD" est remplacé par "G"
Chemin = "GDDUDUDDUA"
"DUD" est remplacé par "A"
Chemin = "GDAUDDUA"
Chemin = "GDGDUA"
"DUA" est remplacé par "G"
Chemin = "GDGG"
Deuxième passage gagnant
Lors du deuxième passage, le robot lit sa mémoire
pour agir à chaque intersection dans le bon sens.
En reprenant le principe avec un algorithme de
main gauche, on obtiendrait d’autres simplifications
qui aboutiraient au même résultat.
VI. Le cas des tracés avec boucles
Les algorithmes pour traiter le cas de tracés avec
boucles sont plus complexes à mettre en place. Lorsque
nous aurons réussi à implémenter cette première
solution, nous essayerons de réfléchir à ce nouveau
défi.
Références
[1] glement Robot labyrinthe Ligne, Tournoi
national de robotique http://www.robot-sumo.fr
[2] A line-maze solving algorithm
http://www.richardvannoy.info/line-maze.php
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !