Le Robot 2007

Le 3 mars 2007:

Description des balises

Le rôle des balises : Autour de l’aire de jeu sont disposées des supports qui peuvent accueillir des balises. Chaque équipe en a trois à sa disposition, et leurs positions sont fixes. Le rôle de ces balises est d’aider le robot à se repérer sur le plateau, elles sont donc bien entendu en interaction avec un système embarqué sur le robot. L’utilisation de cet outil est facultative, mais il semble évident que connaître la position à tout instant constitue un atout puissant. Il est décrit ci-dessous les balises que nous allons réaliser cette année.

Le principe est simple : un laser tourne au dessus du robot à la manière d’un gyrophare. Chaque fois qu’il pointe en direction d’une balise, constituée d’un miroir, celle-ci réfléchit la lumière sur des capteurs (photodiodes) situés sur le robot, au voisinage de la source laser. Ces capteurs repèrent alors qu’il y a effectivement une balise dans cette direction.

On garde ensuite en mémoire cette direction. En pratique, le moteur étant un moteur pas à pas, c’est un nombre de pas qui sera mémorisé. On obtient ainsi la mesure des trois angles a, ß et ?. Les positions des trois balises étant fixes et connues, on peut remonter aux coordonnées du robot, et l’objectif est atteint !

On peut de plus déterminer l’orientation du robot en choisissant une balise de référence (sur le schéma celle de droite), et en mesurant l’angle ? indiqué sur la figure (angle entre la droite laser-Balise et l’axe « proue-poupe » du robot).

Sans rentrer dans le détail technique de la réalisation (programmation, élaboration des circuits,…), il reste des paramètres à prendre en compte avant de se lancer dans la conception proprement dite. Problèmes d’ordre géométrique ou dus à l’environnement dans lequel le robot évoluera par exemple, qui font appel presque au bon sens plus qu’à de réels connaissances en physique ou en électronique. Ce sujet est traité dans le paragraphe ci-dessous, à la suite duquel est fourni un schéma présentant l’allure de notre balise finale, car tous ces facteurs orientent la démarche à suivre.

1. La technique utilisée présuppose que, lors de la réception d’un signal, nous savons identifier laquelle des trois balises est détectée. Le robot restant à « l’intérieur » des trois balises, celles-ci croiseront le faisceau toujours dans le même ordre. Il suffit donc d’orienter le laser exactement de la même manière à chaque début de match, par exemple aligné sur l’avant du robot. D’une part la première balise repérée (celle qui croise pour la première fois le faisceau) devient alors invariante, de même pour la deuxième, la troisième, etc…, et on les identifie ainsi ; d’autre part à la fin de chaque tour on sait que l’on est aligné sur l’avant du robot, ce qui permet d’avoir une mesure directe de ?.

2. Il est possible que, pour une raison quelconque, une balise ne soit pas détectée. Par exemple en cas d’obstruction par le robot adverse. Il faut, afin de prévenir ce risque qui pourrait tout dérégler, définir un angle limite au bout duquel, si rien n’est détecté, le système passerait directement à la balise suivante.

3. De la même manière, afin de limiter l’influence éventuelle de certaines matières réfléchissantes, on peut définir un angle minimum entre deux balises.

4. Sur place, plusieurs équipes s’affronteront en même temps dans un grand hall. Il y aura probablement d’importants éclairages de tous types, sans compter les technologies multiples utilisées par les autres compétiteurs. Le bruit électromagnétique risque d’être très important. Il est donc absolument nécessaire de savoir reconnaître notre propre signal parmi tous ces leurres. Outre un simple filtre optique placé devant les photodiodes, qui ne laissera passer que la fréquence du laser utilisé, il nous faut coder notre signal. L’émission du laser ne sera donc pas continue ; elle sera modulée par une alimentation créneau (0V – 3V) à 660Hz. Cela permet au moins de s’affranchir des néons classiques qui éclairent à une fréquence de 100Hz. Il faudra ensuite filtrer le signal reçu par les photodiodes.

5. L’émission a déjà été réalisée lors du projet d’électronique, mais la réception était un filtre « passe-haut » qui n’était pas du tout assez sélectif. A priori, nous installerons une détection synchrone.

6. Il est nécessaire que, quelque soit la position du robot, les balises réfléchissantes renvoient la lumière en direction du robot. Cela est possible avec des miroirs cylindriques (en noir sur le dessin). En effet, le faisceau laser passera à chaque fois par la direction radiale de ces miroirs.

7. La théorie présentée comprend deux conditions implicites : le robot doit rester immobile pendant la détection des trois balises, et le robot ne doit pas opérer de rotation (virage), sous peine de décaler la rotation du laser et de fausser les angles. En pratique, ces conditions ne peuvent en aucun cas être rigoureusement remplies. Pour palier ce problème, il suffit que la vitesse du robot soit négligeable devant la vitesse de rotation du laser. Cela ne pose pas de difficultés, étant donné la rapidité des phénomènes optiques et électroniques, les calculs n’étant pas très lourd ; et de plus le robot évoluera dans un espace limité, qui ne lui permettra pas d’atteindre des vitesse importantes. Finalement, ce problème n’en était pas un.

8. Si ces miroirs sont rigoureusement verticaux, du fait de la très faible divergence des lasers, il sera impossible de récupérer la lumière réfléchie. On leur donnera donc une légère inclinaison afin qu’ils renvoient la lumière un peu au-dessus (ou dessous) de la source laser. Un panneau de photodiode aux dimensions soigneusement calculées permettra de récupérer la lumière quelque soit la distance du robot aux miroirs. Une solution équivalente consiste à incliner légèrement le faisceau laser. Le choix définitif n’est pas encore arrêté.

On ne peut faire passer aucun fil de l’extérieur vers le système en rotation (et l’axe de rotation du moteur n’est pas troué). Ainsi, afin de communiquer les informations, on disposera un bandeau de cuivre sur la plaque tournante avec un contacteur relié au robot. Mais la sortie de ce type de contact risque de ne pas reproduire fidèlement l’entrée. C’est pourquoi l’émission pulsée et la réception suivie du traitement (à savoir du filtrage,…) du signal lumineux seront faits sur cette plaque, et il ne sera transmis à la bande de cuivre qu’une brève impulsion électrique. Si le poids n’est pas trop élevé et que le moteur le supporte, l’alimentation des montages d’émission et de réception sera aussi embarquée sur la plaque tournante, ce qui évitera la multiplication des bandes de cuivre.

Voici un schéma de notre balise finale :

Le 13 février 2007:

Nous avons enfin nos nouveaux locaux, opérationnels depuis fin janvier ! Nous devons les partager avec le club électronique de l'ENSERG mais nous devrions néanmoins avoir suffisament de place pour nos activités. Nous avons donc construit la table cette semaine, il ne reste plus que les finitions à faire. Concernant le robot :

Asservissement

Depuis la dernière fois nous avons dû déménager nos locaux, ce qui nous a empêcher de travailler plusieurs semaines. À l'heure actuelle tout a été rangé, et nous sommes enfin dans un environement favorable au développement de l'asservissement des roues du robot. Conformément à nos projets initiaux, nous avons continué à développer un système de communication entre la carte d'asservissement et un ordinateur. Actuellement nous avons réalisé une carte comprenant un microcontroleur de type PIC 18F4520, et 4 modules de mémoire de 128 Ko chacun. Le microcontroleur est programmé pour mesurer et enregistrer la vitesse instantanée d'un moteur à l'aide d'un codeur incrémental. Ces données peuvent ensuite être envoyées à un PC à travers le port série à l'aide du protocole RS232. La mémoire présente sur la carte devrait permettre de mémoriser pendant une durée équivalente à un match, la vitesse du moteur. Nous avons de plus réalisé un programme informatique pour afficher et exploiter ces données sous forme graphique. Tout ce temps que nous passons sur le développement d'un système d'acquisition de la vitesse instantanée d'un moteur n'a pas pour seul objectif d'apprécier l'efficacité de l'asservissement à l'aide de graphiques, mais bien de réaliser des mesures précises sur le système pour ajuster au mieux les paramètres de l'asservissement, et ainsi s'assurer que les performances de l'asservissement seront maximales. Le montage actuel nécessite néanmoins encore quelques petites mises au point avant de pouvoir l'utiliser en pratique. Bientôt nous pourrons entrer dans le vif du sujet et continuer et optimiser un premier programme d'asservissement que nous avons réalisé. Celui-ci réalise l'asservissement d'un unique moteur.

Mécanique

Notre travail est divisé en deux parties : la réalisation des prototypes correspondants aux différentes fonctions du robot et la construction de sa base. Le déménagement du local nous a fait perdre beaucoup de temps car, faute de matériel à notre disposition, nous n'avons pas pu commencer le prototype.

Monte-charge : Une des fonctions du robot est de monter le déchet le plus haut possible afin de pouvoir l'éjecter dans la poubelle appropriée. Le monte-charge a pour but de réaliser cette fonction le plus simplement possible. Pour la construction du prototype, nous avons déjà mis en place les quatre colonnes du monte-charge et placé deux pignons sur chacune. Nous avons également récupéré des chaînes que nous allons placer (à l'aide d'un dériver pour ajuster la longueur) sur le prototype. Il ne nous restera alors qu'à relier certains pignons à l'axe du moteur afin de pouvoir faire fonctionner le monte-charge.

Ejecteur : Nous sommes revenus à l'une des idées de départ : la tapette à souris. Nous avons placé une tapette à souris sur un plan inclinable. Nous y avons accroché un fil relié à une poulis, elle-même placée sur l'axe d'un moteur. Lors des premiers essais, le moteur n'avait pas la puissance nécessaire pour remonter la tapette. Cependant, un moteur légèrement plus puissant devrait faire l'affaire car le moteur utilisé réussissait toutefois à maintenir la tapette une fois celle-ci remontée. De plus, notre cahier des charges en ce qui concerne la distance d'éjection est largement rempli avec ce système. A noter qu'une fois la tapette remontée, il n'y a qu'à couper l'alimentation, l'axe du moteur tournant alors librement.

Construction de la base : Nous avons récupéré une ancienne base, les dimensions correspondant à ce que nous recherchions. Nous avons percé cette base afin de pouvoir très prochainement y placer les premiers éléments.



Le 25 novembre 2006:

Cette année, bien que nous n'ayons pas encore de locaux (peut-être pas avant noël !), nous avons déjà commencé à réfléchir aux caractéristiques du robot et à la stratégie générale que nous emploirons.

Stratégie

La stratégie générale est pour l'instant de parcourir une trajectoire pseudo aléatoire (le robot se dirige aléatoirement tout en connaissant sa position et en ayant une connaissance de son environnement). Lorsque le robot rencontre un déchet, il commence par détecter s'il s'agit d'une pile, d'une bouteille ou d'une canette. Nous avons décidé -dans un premier temps- de ne pas nous occuper des piles, ainsi le robot relache t'il toutes les piles qu'il rencontre. Si le déchet n'est pas une pile, le robot le soulève et va jusqu'à la poubelle appropriée dans le coin de la table, puis il l'y envoie. Il repart ensuite parcourir le terrain à la recherche de nouveaux objets.

Nous avons donc délibéremment choisi de simplifier la stratégie générale cette année et de consacrer nos efforts sur l'asservissement et l'obtention d'un premier prototype fonctionnel assez tôt.

 

Mécanique

Après un brainstorming, nous avons convenu d'une esquisse de solution pour le traitement des déchets : lorsque ceux-ci se présentent devant le robot, ils y entrent en se positionant dans l'axe, puis vont se caler contre la butée arrière. Si le déchet est une pile debout, celle-ci est renversée et le robot n'en tient pas compte ; s'il s'agit d'une bouteille ou d'une canette, le robot le détecte. Une griffe vient alors prendre le déchet et le monter jusqu'a environ la moitié de la hauteur du robot, tout en l'inclinant légerement vers le haut. Lorsque le robot est suffisament près de la poubelle et correctement orienté, il envoie le déchet : nous pensions tout d'abord à un système de ressort pour l'envoi des déchets, mais la complexité de la tension d'un ressort par un moteur, la dépense d'énergie, l'aléa possible, nous on fait changer de mode d'envoi, qui n'est pas encore clairement défini.

 

Balises

Asservissement

Le groupe asservissement est en charge de mettre en place un système permettant de commander des moteurs faisant avancer le robot, de la façon la plus précise et la plus rapide. Le schéma global du fonctionement de l'asservissement des roues du robots choisi pour notre robot cette année est assez classique : il s'agit de mettre en place un asservissement de type numérique à l'aide d'un microcontrôleur de type PIC. Dans un premier temps, il est question de réaliser un asservissement assez basique, en ne gérant qu'une roue à la fois (l'informatique aura pour charge de diriger le robot convenablement), puis, nous comptons améliorer ce système pour prendre en compte les deux roues à la fois dans l'asservissement. L'asservissement répondra alors à deux paramètres : la distance à parcourir, et l'angle que le robot doit avoir par rapport à un bord de l'aire de jeu. Pour le moment nous avons relativement bien avancé (compte tenu du manque cruel de moyens). Nous nous sommes déjà familiarisé avec les PIC, et avec les principales fonctionnalitées qu'ils proposent. Entre autres, nous pouvons déjà communiquer avec un programme informatique, ce qui permettra dans un futur proche d'étudier le comportement réel des moteurs suivant le signal qu'on lui fournit.

Capteurs

Octobre 2006

On avait pensé à utiliser 3 types de capteurs différents pour le robot:

1. Capteur de couleur pour différencier les canettes et les bouteilles.
2. Capteur de présence sous forme d'interrupteur.
3. Détecteur de choc conçu à partir d'accéleromètre à être réalisé en projet d'électronique.

Le projet d'électronique ayant déjà commencé, on a déjà fait les schémas pour le détecteur de choc et on commence bientot a tester les circuits.

Novembre 2006

On décide d'utiliser des capteurs a induction pour différencier les canettes des bouteilles. Mais cette idée est très vide abandonnée car on pense que les champs dans l'environnement du robot lui-meme(moteur...etc) risque de perturber le fonctionnement.
On pense maintenant utiliser des émetteurs et récepteurs IR pour déterminer la longueur des objets et les différencier.Solution à venir rapidement.