SuiveurLigne2012-1

De Wiki de bureau d'études PeiP
Révision datée du 2 mars 2013 à 17:48 par Fchevali (discussion | contributions) (… de la programmation)

Introduction

/* Attentions aux coquilles et autres fautes d'orthographe et de grammaire */

A travers cette page, je vais vous présenter les étapes successives de mon travail dans le cadre des bureaux d’études PEIP. Premièrement, l’objectif sera de réaliser un robot en Lego MindStorm capable de suivre un marquage continu ou non. C’est le robot suiveur de ligne.

Toutefois, il existe de multiples procédés pour parvenir à un tel objectif. Afin de les limiter, le robot doit respecter divers directives que voici :

(1) en cas de perte du marquage, tourner dans un sens puis dans l'autre pour tenter de le retrouver avec des angles de plus en plus grands.

(2) si le marquage ne peut pas être retrouvé, se remettre dans la position de la perte initiale et partir tout droit.

(3) se remettre dans l'axe du marquage lorsque ce marquage est retrouvé.

(4) s'arrêter quand un obstacle se présente devant lui et repartir si l'obstacle disparait.

(5) changer de parcours sur commande, c'est à dire emprunter un parcours d'une couleur différente dès qu'il est rencontré.

(6) inverser son sens de parcours.

Les premiers pas …

… de la construction

Avant tout, j'ai monté le robot. La base de la structure a été réalisée avec le modèle de construction du manuel Lego; intégrant 3 /* Ils ne réfléchissent pas trop tout de même*/ moteurs et un boîtier NXT.

Enfin, pour que le robot ait des informations sur son environnement il est nécessaire d’y rajouter des capteurs. Pour débuter, seul deux capteurs m’ont paru les plus appropriés : le capteur de couleur particulièrement utile pour suivre un marquage et le capteur à ultrason pour détecter les obstacles (directive n°4).


Du travail est encore à faire concernant le montage du robot, l’emplacement pour la Fox Board est prévu mais celle-ci n’est pas encore parfaitement stable. Concernant les capteurs, il sera surement utile d’en rajouter d’autres. En outre, la base de la structure comprend 3 moteurs hors seul deux suffiraient. Et à l’usage, j’ai constaté qu’il n’était pas aisé de changer les piles du boîtier NXT.

… de la programmation

Une fois les deux capteurs et le boîtier NXT mis en place, j’ai tenté de faire rouler le robot avec le logiciel Lego MindStorm. Les premiers essais ont été concluants puisque j’ai réussi à mettre en mouvement le robot dans différentes directions et à faire fonctionner les capteurs. Cependant le logiciel ne me semblait pas facile à manipuler pour faire des programmes plus compliqués avec plusieurs boucles notamment. J’ai donc essayé avec le logiciel Bricx Command Center où il est possible de coder avec un langage proche du C. Malheureusement, j’ai beaucoup de difficulté à trouver les fonctions du logiciel et je ne suis pas parvenue à faire fonctionner les capteurs. Finalement, j’en avais effectué plus avec le logiciel Lego MindStrom. Les séances de cours passant rapidement, je suis donc retourné sur ce logiciel. Malgré que je ne le maîtrise pas encore très bien, j’ai décidé de commencer mes programmes pour atteindre les objectifs en espérant apprendre plus efficacement./* idem, il faut être précis */

Comment lui faire suivre un marquage continu ?

S’il a toutefois était simple de faire prendre un marquage droit continu au robot /* Ce n'est évident que si le robot roule parfaitement droit, ce qui est faut si la ligne est suffisamment longue */, il en est pour moi beaucoup moins de lui faire prendre un virage. Deux idées me sont venues : la première qui est d’utiliser deux capteurs de couleurs un droit et un gauche. Dés que la couleur n’est plus détectée par l’un des deux capteurs il va falloir tourner d’un certain angle jusqu’à ce que le capteur qui avait perdu la ligne la perçoive de nouveau. Ceci impose un capteur supplémentaire et des contraintes importantes sur la largeur de la ligne à suivre. La deuxième idée est de lui faire retrouver le marquage qu’il a perdu en effectuant des rotations dans un sens puis dans l’autre. Celle-ci est préférable puisqu’elle peut servir pour les lignes discontinues. '/* Ici il faut aussi être plus précise et présenter par exemple les algorithmes utilisés */

… à suivre