L'an dernier je me suis présenté
et vous ai expliqué mon intérêt pour la programmation, en particulier
celle des robots. Grâce à l'aide du département STIC du CNRS j'avais
pu acheter LIFO1, la première mascotte robotisée du LIFO et m'initier avec
vous à ce type de programmation lors d'un stand à la Fête de la Science.
Le voici quand il était tout neuf en septembre 2002. J'ai décidé de lui donner la forme dite "Roverbot" dans la documentation Mindstorms. C'est un robot promeneur du genre de ceux qu'on envoie sur la planète Mars. On le voit près d'un ordinateur car il a besoin de programmes qu'on écrit sur l'ordinateur avant de les télécharger dans son ordinateur de bord, la grosse brique RCX de couleur jaune qui lui sert aussi de corps.
LIFO1 s'est mis à parcourir nos sols lisses et pas trop poussiéreux, ce qui
lui plaisait bien. Il a appris à tourner autour du coffre à outils qui lui
sert de maison, à rebondir sur les obstacles grâce à ses antennes,
à mémoriser les derniers rebonds pour ne pas boucler tout le temps dans un
coin de mur, et tout ça me semblait assez encourageant.
Certains le trouvaient triste alors on lui a posé des
yeux décoratifs avec des pièces LEGO.
Mais les yeux ne tiennent pas en place lors des chocs alors je ne les
mets plus. Ce robot fait partie d'une expérience de laboratoire, il n'est
pas un jouet, un peu de sérieux !
Les robots sont comme nous, ils ont un corps (mécanique) et un esprit
(logiciel) et il faut que les deux fonctionnent bien ensemble. Les
progrès de LIFO1 semblaient un peu bloqués quand il s'est mis à
s'intéresser aux fils électriques, nombreux sur les sols du labo, aux
moquettes et aux rideaux quand il vient chez moi. Les fils
électriques le bloquaient parfois sous une table ou pire,
s'enroulaient autour de ses antennes ce qui le paralysait vite fait.
Les moquettes ralentissent ses virages et les rideaux le bloquaient en
l'empêchant de reculer ou d'avancer correctement. Le problème
des fils électriques a été bien réglé quand j'ai décidé de lui poser de
plus grandes roues avec leurs pneus à crampons. Dans cette version,
j'aime bien l'appeler un "Groverbot" car il est plus haut sur roues que
le roverbot de base. Ca marche très bien et il peut franchir la plupart
des fils, du moment qu'il n'y enroule pas ses antennes ... Les grandes
roues fonctionnent en fait si bien que l'été dernier on lui a fait faire
quelques longues promenades dans la pelouse et il a adoré.
Avec un programme toujours
assez simple il a franchi les bosses, contourné une fourmilière et s'est
même égaré une fois sous la table de jardin entre les pieds des
adultes. Une petite fille a voulu lui verser du Coca sur le dos mais là
j'ai eu peur et je lui ai demandé de rentrer à la maison c'est-à-dire dans
son coffre. Depuis ce temps il a un peu peur du plein air et préfère le
sol du laboratoire. Pas grave, on retournera bien dehors l'été prochain !
Le problème des rideaux a lui été réglé par l'intelligence. Ce qui se
passe le plus souvent c'est que les roues se prennent dans le rideau sans
que rien ne touche les antennes. Alors LIFO1 ne pense pas qu'il y a
d'obstacle et rêve en fait qu'il avance librement sur un beau sol
lisse (je vous rappelle que les petits robots rêvent de sols lisses
comme les adultes humains rêvent de plages). Je lui ai donc décidé
un compteur de mouvements qui accumule la durée des périodes où il avance
sans contact sur les antennes. Si cette durée est trop longue il se secoue
et recule de toutes ses forces. Une fois le programme de promenade amélioré
comme ça et téléchargé dans sa brique RCX, LIFO1 n'avant plus de mal à
sortir de ces situations, sans changer le reste de ses balades. Bravo!
Le problème des moquettes quant à lui est plus difficile. Quand on écrit
le programme de promenade, on indique des virages en nombre de secondes.
Par exemple s'il y a contact sur l'antenne gauche on recule une seconde
et on tourne à droite 1,5 secondes. Sur un beau sol lisse de labo cela
donne presque un quart de tour à droite. Mais sur une moquette il y a plus
de friction et les 1,5 secondes ne font qu'un tout petit virage, pas très
utile pour éviter les obstacles ... Il faut donc réajuster les paramètres
du programme selon chaque surface de sol, pas très pratique. On pense que
la solution serait que le robot puisse avoir une notion de l'espace, qu'il
sache s'il tourne beaucoup, un peu, ou au moins qu'il sente les obstacles
par des détecteurs de distance.
Pour ça, j'espère bien me servir des robots encore plus sophistiqués de
chez Wany , piste à
suivre l'an prochain ?
Voilà donc où j'en suis avec mes robots: meilleures roues, antennes
améliorées, mémoire des événements pour ne pas bloquer dans les coins
de murs, compteur pour ne pas rouler immobile dans les rideaux, quelques
centaines d'heures et de douzaines de piles R6 d'expérience et un robot
LIFO1 parfaitement heureux parmi nous. Quand son petit frère LIFO2 est
né cette année, il a tout de suite pris la forme d'un Groverbot et pris
les programmes améliorés de cette année. C'est l'avantage d'être
un robot, on hérite instantanément de tout ce que nos ainés savent.
Comme les robots LEGO sont munis d'émetteurs-récepteurs infrarouge,
j'avais envie de faire interagir LIFO1 et LIFO2. Mais j'ai découvert
que le faisceau infrarouge est très large alors c'est difficile de s'en
servir pour se guider vers l'autre robot. Pour le moment je n'ai donc
appris qu'à faire réagir un robot à un signal de l'autre s'il ne lui
tourne pas le dos. Ce n'est pas grand chose. Il faudra que je consulte
les documents Mindstorms, s'il y en a, parce qu'actuellement l'infrarouge
ne sert pas à grand chose. Dommage.
A la Fête de la Science 2003 nous avons présenté les progrès de
LIFO1, son petit frère LIFO2, et un nouveau
stand s'est joint à nous pour apprendre aux enfants et adolescents à
compter en binaire comme les ordinateurs. On a aussi distribué un glossaire de l'informatique pour que le
public cesse d'avoir peur du jargon informatique et que les jeunes
puissent impressionner leurs amis avec CAML, HTML, Tera-Flop et autres
termes un peu ésotériques. Il y avait aussi, comme en 2002, le stand
Réalité Virtuelle et Calcul Haute Performance du LIFO.
Bon alors il me reste beaucoup de progrès à faire, avant ma retraite en 2026, pour que mes robots puissent remplir leur mission d'exploration du sous-sol du bâtiment ... J'y travaille. Il y a l'idée d'avoir des détecteurs de distance ou une notion de l'espace. Mais pour le logiciel on pourra aussi faire un peu mieux si on sort de la programmation "visuelle" pure que LEGO nous fait faire avec son logiciel. Autre piste à suivre.
En attendant, apprenez tous l'informatique, si possible apprenez à programmer ou encore mieux, choisissez un des nombreux metiers de l'informatique, pourquoi pas en recherche! J'aurai besoin de votre aide durant les dernières années de mon projet ...
A bientôt !
Gaétan Hains
P.S. En octobre 2003, le stand d'à côté était tenu par le Professeur de science économique Anne Lavigne (directrice du LEO) qui m'a très bien expliqué et démontré avec formules à l'appui que le montant de ma retraite ne serait pas très alléchant. Alors il se pourrait bien que je travaille au-delà de 2026 dans mes vieux jours. Venez me rejoindre pour programmer les super-robots que j'aurai alors ...