WebRobot - Description

Présentation
Le WebRobot est construit à partir d'un kit LEGO Robotic Invention System. Le robot est contrôlé par un ordinateur PC sous Windows 98 grâce à un émetteur infra-rouge connecté au port série du PC. Cet émetteur est embarqué sur le robot grâce à un câble de 10 mètres.
Un second câble transmet au robot le courant électrique (9 volts sous 1 ampère) pour alimenter le robot LEGO et la caméra video (les phares sont aliméentés par une pile de 4,5 volts embarquée car le câble ne fournit pas assez de puissance pour les alimenter). Ce câble permet au robot de transmettre l'image video de la caméra embarquée vers la carte d'acquisition video du PC et de recevoir les sons générés par le synthétiseur vocal du PC. Le robot peut donc "parler" ou plutôt répéter les phrases écrites par la personne qui prend le contrôle du robot.
 
Mécanique
Le robot utilise trois moteurs LEGO. Un moteur pour les deux roues de gauche et un autre moteur pour les deux roues de droite. Il fonctionne à la manière d'un tank. Pour aller en marche avant, les deux moteurs tournent en marche avant. Pour tourner, l'un des moteurs est mis en marche avant et l'autre est mis en marche arrière. Le troisième moteur est utilisé pour orienter la caméra vers le bas ou vers le haut. Un système de levier permet de faire évoluer la caméra de bas en haut à l'infini si le moteur reste en marche (la caméra ne se bloque jamais en bout de course mais repart dans l'autre sens).

Les lampes s'allument et s'éteignent en fonction de la position de la caméra. Si la caméra évolue normalement (c'est à dire qu'elle monte quand on appuie sur le bouton "haut") cela signifie que les phares sont éteints. Si elle évolue "à contre" (c'est à dire qu'elle descend quand on appuie sur le bouton "haut") cela signifie que les phares sont allumés. Ce système relativement compliqué est dû à la limitation du nombre de sorties contrôlables du robot LEGO. Il ne possède que trois "sorties" utilisées par les trois moteurs.

Quand les 2 leviers métalliques se touchent, les phares s'allument...
Mouvement de la caméra et contrôle des phares

Le robot se déplace grâce à deux "pieds" enclipsés en porte-à-faux sur les roues. Cela lui donne une démarche instable assez amusante à regarder.
Le gobelet argenté qui se trouve sur le devant du robot est un cylindre de carton au milieu duquel se trouve un petit haut-parleur permettant au robot de parler. Le carton sert à amplifier le son du haut-parleur.
Deux pare-chocs situés devant et derrière le robot lui permettent de s'arrêter au contact d'un obstacle. Un capteur de choc est relié à chacun des pare-chocs. Ces deux capteurs sont reliés au robot LEGO à deux de ses trois "entrées" disponibles. Ils sont contrôlés directement par le robot (et non par le PC) grâce à un programme RCX écrit en NQC (proche du langage C). Le robot peut donc être contrôlé à la fois par le programme embarqué (détection des collisions) et par le PC. La priorité est donné au programme embarqué.
 
Programmation
Le PC fait office de serveur internet.
Cependant, le PC étant connecté à internet par le câble (NoosNet), son adresse IP est susceptible de changer. Pour contrer ce problème, le PC envoie tous les jours son adresse IP sur le site en créant dynamiquement une page HTML qui redirige les visiteurs sur la page actuelle "index.htm" qui se trouve sur le PC dans le dossier contenant la page à exécuter par défaut.

La retransmission des images se fait par l'un des différents systèmes testés : Applet Java (sans streaming), Applet Java IVista (avec streaming), Real Player (streaming) ou Windows Media Player (streaming). Chaque système vidéo possède ses avantages et ses inconvénients (voir la page principale).

Pour contrôler le robot, il faut se connecter sur le site internet : www.andreani.net/robot. Un écran de contrôle apparaît alors à l'écran avec une vue vidéo de ce que voit le robot. Cliquez ici pour voir une photo de l'écran de contrôle. Des boutons permettent de donner des ordres (commandes) au robot. Les commandes disponibles sont : avancer d'un pas, reculer d'un pas, tourner d'un pas à gauche, tourner d'un pas à droite, stopper, prononcer vocalement une phrase que l'on vient d'écrire, faire monter la caméra vers le haut, la faire descendre, arrêter le mouvement de la caméra.

Pour diriger le robot, une application serveur spécifique a été écrite en Visual Basic. Cette application tourne sur le PC qui est relié au robot par un fil. Elle scrute sur un port spécifique du PC les entrées internet correspondant à une commande. Si la commande est valide (AVANT, GAUCHE, PRONONCER BONJOUR, etc.) elle est envoyée au robot et exécutée.
Le serveur utilise deux ActiveX Microsoft :
Le Winsok Control pour la partie Client-Serveur.
L'Agent Microsoft pour la synthèse vocale TTS (Text-To-Speech).
 
Les commandes au robot sont envoyées par n'importe quel navigateur internet qui suppporte les applets Java. L'interface comporte une image video et plusieurs boutons permettant de commander le robot. Chaque bouton est une applet Java qui émet sa commande vers l'adresse IP d'où l'applet à été téléchargée (le PC) et sur un port spécifique (le même que celui qui est scruté par le serveur). Les applets Java ont été développés par Olivier Petilon.

 
Photos
Cliquez sur les photos ci-dessous pour les agrandir :


Important
1) Les phares fonctionnant sur piles, il est important de les éteindre avant de quitter le site. Les phares sont contrôlés par le biais de la caméra. Vérifiez que lorsque vous cliquez sur le bouton "Haut" de la caméra, celle-ci monte. Si c'est le cas, les phares sont éteints. Par contre, si lorsque vous cliquez sur le bouton "Haut" de la caméra, celle-ci descend, c'est que les phares sont allumés. Pour les éteindre, il faut ré-appuyer sur le bouton "Haut" de la caméra jusqu'à ce qu'elle finisse par monter ! De nuit, il est facile de savoir si les phares sont éteints ou non, mais de jour, le seul moyen de les éteindre (s'ils ont été allumés par erreur) est de s'assurer que la caméra monte quand on appuie sur le bouton "Haut" puis de cliquer tout de suite sur le bouton "x" pour stopper la caméra (sinon elle risque de refaire un demi-tour et de rallumer les phares !).
 
2) "NoosNet" limite la quantité de données émises par un PC relié au câble internet. Donc, envoyer des images du robot vers un navigateur internet risque de me faire dépasser le forfait autorisé de 250 Mo par mois. Pour cette raison, le site n'est ouvert que le soir à partir de 19 heures en général...


Retour