Bobette


Bobette doit trouver une chandelle allumée et l'éteindre dans une maison simulée (2,5 mètres par 2,5 mètres) qui comporte 4 pièces. Ce robot doit donc être capable de reconnaître un environnement physique prédéterminé. Il doit utiliser cetraines caractéristiques physiques de la maison comme la distance des murs et les lignes blanches à l'entrée des pièces, ainsi qu'une boussole digitale pour naviguer. Il est équipé de plusieurs senseurs, tels que senseurs de distance à infrarouge et à ultrasons. Il possède aussi un senseur de lumière et de chaleur pour détecter la flamme de la chandelle.

Bobette est un robot autonome. Une fois activé, il ne requiert aucun contrôle externe. Il utilise l'information fournie par ses senseurs pour se diriger dans son environnement. Bobette contrôle de facon indépendante ses deux moteurs ce qui lui permet de varier sa direction au besoin. Afin de tourner sur lui-même, Bobette fait tourner une roue dans un sens et l'autre roue à la même vitesse dans la direction opposée. Afin d'effectuer un virage à gauche ou droite, Bobette fait tourner une de ses deux roues plus rapidement.

Le programme qui contrôle Bobette est transféré du PC au microcontrôleur par liaison RS232 (port série) pour ensuite être écrit de facon permanente dans la mémoire flash du microcontrôleur. La mémoire flash du microcontrôleur est limitée (8 Ko). Le programme doit donc être relativement simple.

Pour la première version de Bobette, le contrôle se fait à l'aide d'un automate à états finis simple. Certains points de repère sont identifiés et le programme transporte le robot d'un point à l'autre (chaque point étant représenté par un état). Il y a aussi quelques routines qui fonctionnent en parallèle afin d'éviter les obstacles divers.

Bobette (vue de haut)

Voici une liste sommaire des composantes que Bobette utilise dans sa première version:

Chassis Plaques de métal provenant du chassis d'un vieux magnétoscope coupées en forme de cercle (25 cm de diamètre)
2 moteurs 12V 100 RPM Hsiang Neng
Pile 12V 4 Ah
2 roues d'environ 7 cm de diamètre provenant d'un kit Capsella
Une roue à bille placée à l'avant
Moteur recyclé de lecteur de CDROM et hélice pour éteindre la flamme
Eponges
Commutateur
Diverses vis et boulons
Morceaux de Meccano
Senseurs Boussole digitale Vector 2X
3 senseurs de distance infrarouge Sharp GP2D12
Module de détection à ultrasons SRF04
Senseur de distance à infrarouge QRB1114 pour détecter les variations de couleur au sol
Photodiode OP805SL pour détecter la flamme (par intensité lumineuse)
2 thermistors pour détecter la flamme (par différence de chaleur)
Trois boutons poussoirs (pouvant être utilisés pour les pare-choc)
Plaque de contrôle Un plaque de circuit (15 cm X 10 cm)
Régulateur de voltage 5V 7805 1A
Microcontrôleur PIC16F877 4 MHz
Quartz à fréquence de 4 MHz
Circuit intégré spécialisé pour le contrôle de moteurs L293D (pont en "H" quadruple)
Circuit MAX232
Sextuple inverseur SN74LS05
2 boutons poussoirs
Une douzaine de condensateurs
Une douzaine de résistances
Un LED pour indiquer la présence de tension dans le circuit
Fusible 4A
Un connecteur de prise téléphonique (permet la communication en série entre le robot et un PC)
Une douzaine de connecteurs pour relier les senseurs à la plaque
Plaque environnementale 2 amplificateurs opérationels LM741CN (un pour la température et un pour la détection sonore)
Minuterie 567 (détection sonore)
2 potentiomètre 100K
LED pour indiquer la détection de différence de chaleur
Diode 1N4004
MOSFET BS170 pour activer le moteur de l'éventail
Une demi-douzaine de condensateurs
Une dizaine de résistance
2 connecteurs
Plaque d'interface LCD Afficheur LCD 2 lignes par 20 caractères
Bascule D avec reset SN74LS174
Potentiomètre 20K
Diode
Condensateur
Résistance 1K

Détails de Bobette

Plaque de commande Plaque environnementale
Sonar entre éponges

Observations

Voici une série d'observations sur la conception de ce robot.

Bobette (vue du dessous)
Bobette (vue du dessous)

Compétitions

Trinity College (2002)

Bobette a participé à la compétition du Trinity College au Connecticut en avril 2002. Il a réussi à se qualifier lors de la première journée dans la division sénior. Cinquante des soixante robots inscrits dans la catégorie sénior se sont qualifiés pour la compétition. Pour se qualifer, il fallait démontrer que le robot était capable de détecter et d'éteindre une chandelle dans une salle de notre choix. Cette tâche s'est avérée plus ardue que je l'avais anticipée. Il m'a fallu prêt de sept heures pour finalement démontrer au juge que Bobette était capable de relever le défi!

Bobette au Trinity College

Durant la compétition, chaque robot effectuait trois essais. Bobette n'a pu éteindre la chandelle, mais s'est tout de même classé trente-et-unième. Dans les deux premiers essais, la chandelle se trouvait dans la salle la plus éloignée. Bobette s'est rendu à cette salle dans les deux cas, mais a percuté un mur dans les deux cas. Durant le troisième essai, Bobette a percuté un mur à mi-chemin entre la deuxième et la troisième salle et n'a pu poursuivre sa route.

Eastern Canadian Robot Games (2002)

Voici une liste des modifications effectuées pour la compétition du ECRG qui a eu lieu à Toronto en octobre 2002:

Les résultats de cette compétition ont été beaucoup plus encourageants. La séance de calibration a été beaucoup moins fastidieuse qu'à Hartford. Il a fallu élevé le senseur de lumière, ajuster le seuil de tolérance du senseur de lignes blanches, corriger un ou deux petits problèmes de programmation et le robot était prêt à relever le défi. Il existait encore certains problèmes de navigation qui empêchaient le robot de poursuivre son trajet de temps-à-autre et qu'il faudra résoudre pour les compétitions futures. Aussi, le fait qu'il fallu élever la senseur de lumière a mené à un autre problème: le senseur était parfois bloqué par l'hélice du ventilateur.

Bobette a réussi à éteindre la chandelle dans son premier essai dans la troisième salle en 46 secondes. Dans le deuxième essai, Bobette s'est rendu dans la deuxième salle où la chandelle se trouvait, mais n'a pu détecter la présence de la chandelle et a donc continué son chemin vers les autres salles. Dans le troisième essai, Bobette s'est afaissé pitoyablement sur un mur à l'entrée de la porte de la première salle.

Bobette s'est classé quatrième parmi les six participants de la compétition.

Trinity College (2003)

Voici une liste des modifications effectuées pour la compétition d'Hartford qui a eu lieu à en avril 2003:

Bobette a bien fait dans la compétition. La qualification était plus exigeante que l'année précédente, mais Bobette a réussi tout de même à se qualifier au premier essai. Des soixante participants, trente-deux se sont qualifiés dans la catégorie sénior. Bobette a réussi à trouver et éteindre la chandelle à son deuxième essai (dans la salle la plus éloignée). Au troisième essai, Bobette a trouvé la chandelle, mais n'a pas pu l'éteindre à cause d'un problème de réflexion. Il y a encore du travail à faire au niveau de la navigation, mais Bobette se comporte assez bien dans la maison. Bobette s'est classé vingt-troisième dans cette catégorie.

N'eut été du cambriolage de mes outils et composants, la fin de semaine aurait été un succès total.

Projets futurs

Faute de temps, je n'ai pu participé à la compétition de Toronto de l'automne 2003 et ne pense pas participé à la compétition d'Hartford de 2004. Je compte bien me remettre au travail prochainement pour améliorer l'algorithme de navigation et ajuster les problèmes mécaniques les plus embêtants.

Dernière mise-à-jour: Le 14 mars 2004