SuiveurLigne2012-1 : Différence entre versions

De Wiki de bureau d'études PeiP
(… de la programmation)
(Introduction)
Ligne 3 : Ligne 3 :
 
''/* Attentions aux coquilles et autres fautes d'orthographe et de grammaire */''
 
''/* 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. L’objectif est tout d’abord de réaliser un robot en Lego Mindstorm capable de suivre une ligne continue ou non au sol et s’arrêter lorsqu’il perçoit un obstacle. C’est le robot suiveur de ligne.
+
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 le 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  … ==
 
== Les premiers pas  … ==

Version du 2 mars 2013 à 17:28

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 le 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 toute chose, il a fallu concevoir le robot. La base de la structure a été réalisée avec le modèle de construction du manuel Lego; intégrant 3 cerveaux /* Ils ne réfléchissent pas trop tout de même*/ moteurs et un boîtier NXT. Enfin, pour que le robot puisse s’imprégner de 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.

(photos à venir) /* oui, en effet */

Du travail est encore à faire concernant la conception du robot, l’emplacement pour la fox board est prévu mais celle-ci n’est pas encore parfaitement bien stable (voir photo). Concernant les capteurs, il sera surement utile d’en rajouter d’autres. Par contre, la base du robot comprend 3 cerveaux-moteurs hors seul deux suffiraient. En outre, à l’usage j’ai pu constater 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. Par exemple, je lui imposais de s’arrêter s’il détecte un objet à 10 cm ou reculer s’il détectait du bleu. /* Parler des algorithmes utilisés, parce que là, ça confine au bla-bla */ 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 dont j’ai quelques bases. Malheureusement, j’ai beaucoup de difficultés à trouver les fonctions du logiciel et je ne suis pas parvenue à faire fonctionner les capteurs. Finalement, j’ai pris conscience que j’en avais effectué plus avec le logiciel Lego Mindstrom. Les séances de cours passant rapidement, il m’a donc fallu retourner sur ce logiciel. Même si 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