Projet Robot Labyrinthe Ligne - Pages Perso
Transcription
Projet Robot Labyrinthe Ligne - Pages Perso
Fiche Projet 4 février 2011 Projet Robot Labyrinthe Ligne I.U.T. de Nîmes [email protected] Ce document est destiné aux é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. La mémorisation des diverses configurations du I. Généralités tracé permettent une réflexion plus précise de la stratégie à élaborer sur un robot Labyrinthe ligne. La structure générale de ce type de robot comporte trois fonctions principales. Les capteurs qui lisent la III. Les tracés du labyrinthe position des lignes, le contrôleur qui traite les informations et l’interface moteurs qui crée les Deux types de labyrinthes peuvent être proposés déplacements élémentaires. 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 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. IUT de Nîmes : Départ GE2I 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, vérifier le règlement du tournoi pour connaitre le type de tracé proposé [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 à Projet Line Maze Robot.doc 1 Fiche Projet Projet Robot Labyrinthe Ligne 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]. 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. 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. Références [1] Rè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 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" IUT de Nîmes : Départ GE2I Décodage RC5.doc 2