lundi 1 novembre 2010

Fribot 2010 : Escape from Alcatraz

Nous avons reformé une équipe pour Fribot, Thibaud et moi sommes toujours de la partie et Nico viens nous rejoindre comme mécano. 
Notons aussi cette année que les boutiques LEGO et Playmobil Peek et Poke (http://www.peeketpoke.eu) nous ont fournis des T-Shirts ainsi qu'une aide financière pour l'hébergement sur place. Encore merci Peeketpoke.

Fribot est un challenge qui se déroule sur une journée, on arrive le matin les mains dans les poches, on nous présente le concours et on a jusqu'en début d'après midi pour construire et programmer un robot à l'aide d'un kit Mindstorms NXT et d'un PC équipé de Lejos.

Le site de Fribot : http://www.fribot.org

La vidéo de présentation : 



Ce samedi matin nous étions 16 équipes de 3-4 personnes à découvrir le challenge...

Cet article a été en partie écrit par Nico71 du forum Setechnic (principalement les textes avant et après les photos). J'ai écrit le reste. Nico est aussi l'auteur de toutes les photos et vidéos et je me suis chargé du montage.

Le challenge était au rendez vous. Au programme, déplacement, évitement, suivis de ligne, saisis d'objet, lecture de code morse, pente et j'en passe !

Présentation de la piste

Le thème cette année était "Alcatraz", la célèbre prison. Le but du robot était donc de s'évader. Tout d'abord voici la piste de test : 

Image

Chaque équipe commence soit dans le coin en bas à droite ou en bas à gauche. Le but est de sortir de la cellule à un instant donné, cette instant c'est une panne de lumière que le robot doit détecter (capteur lumineux direction vers le ciel). Le robot à deux sorties possibles, une seule a une panne d'électricité.


Image



Apres avoir pris la bonne sortie, il doit éviter les gardiens qui tourne en rond sur une ligne, symbolisé par le smiley sur le piste de test. Mais les voici en vrai sur la piste : 

Image



Voici des vues de la table de la compétition :

Image
Image



Les robots doivent ensuite se diriger vers le bout de la table, là ou il y a les tunnels ainsi que le dispositif de clé et serrure : 

Image



Le robot doit alors venir saisir la clé magnétique entre les deux tunnels du coté adversaires (les robots doivent donc se croiser), cette clé est dans le mur entre les deux tunnels et se présente sous la forme d'une tige diamètre 8mm avec un bout aimantée. Pour bien prendre la clé, vous remarquerez des marques au sol qui permettent de faire du suivi de ligne (marque noire et blanche).

Après avoir saisi la clé, le robot doit actionner la serrure qui se présente sous la forme d'un trou sur le bloc de la zone centrale avec un interupteur au fond (bouton poussoir) :


Image



Après avoir actionné ce bouton, les portes de tunnel s'ouvrent (visibles sur la photo plus haut), hélas un des tunnels est efondré ! Ce qui est symbolisé par une barre qui empéche le robot de passer : 

Image



C'est pourquoi le robot doit s'avoir quel tunnel est effondré. Et c'est ici que fribot nous a vraiment surpris : dés que le robot a tiré la clé du mur (donc avant d'avoir actionné la serrure), un projecteur de lumière (un complice du prisonnier qui s'évade) envoie un code morse pour indiquer au robot quel tunnel est bouché. Le projecteur pointe vers la zone de la clé, le robot doit donc lire le code avec le capteur lumineux en l'air. Le code envoyé est une lettre, C pour centre et M pour mur qui correspond au tunnel effondré (le C en morse donne _._. et le M _ _ ).

Ensuite le robot doit sortir par le bon tunnel.


Image



Quelques précisions sur la notation 
La notation se faisait au temps, entre le passage des gardiens (juste après) et la sortie du tunnel (plots de couleur foncés). Si le robot ne sortait pas du tunnel, le temps par défaut était de 5min. Si on sortait du tunnel on comptabilise le temps (en moyenne, on sort en 2-3min). Pour départager les équipes qui ne sortaient pas des tunnels (surtout aux qualifications), un système de points bonus et pénalités en secondes modifiaient le temps. 

Par exemple : 
Sortir de la cellule en premier : -2s
sortir en deuxième : -1s
sortir par la mauvaise porte de cellule : +10s
Prendre sa clé en premier : -3s
Prendre sa clé en deuxième : -5s
Mettre la clé dans la serrure en premier : -20s
En deuxième : -15s
Sortir de alcatraz en premier : -2s

On voit tout de suite que si une équipe prend la clé et l'autre non, la différence est de 20s, si les deux la prennent, la différence est de 5s. Sortir vite de la cellule et surtout ne pas se tromper de porte est primordiale. Peu d'équipes sont sortis d'alcatraz. Aux qualifications, ce qui nous a sauvé souvent c'est le fait de sortir en premier (on était très rapide sur la détection de la panne) et de prendre la clé en premier. Notre stratégie était clairement oriéntée "vitesse " ce qui nous a causé quelques défaites quand il fallait de la précision (nous y reviendrons).

Pour conclure, petit récapitulatif des actions à effectuer :
-sortir de sa cellule par la bonne porte
-éviter le gardien (ne pas rentrer dedans sinon les déplacements sont faux)
-aller chercher la clé du coté adversaire et la ressortir de son logement (croisement des robots)
-lire le code morse ou aller mettre la clé dans le serrure
-revenir lire le code morse ou aller vers la serrure
-choisir le bon tunnel et passer entre les balises de sortie.


Le challenge était donc plus complexe que l'année dernière :ordi: Vous remarquerez aussi que la table était encore plus belle :)



---------------------------------
On avait le maximum de point possible aux qualifications, une autre équipe aussi qu'on a rencontré à la petite finale. L'ambiance était superbe, les suisses sont des personnes super sympa, on avait des coachs qui passaient nous voir, on discutait avec les organisateurs, on avait le bar aussi, le public, d'autres stands de technologies (je détaillerais), bref c'était vraiment super, c'est une journée formidable autour des technologies et du lego.

--------------------------------
Voici maintenant notre robot : 

Image
Image

3 moteurs, 2 pour les roues, 1 pour l'outil. Un capteur US à l'arrière, un capteur de lumière à l'avant monté sur pivot.

Avant de passer à la vidéo, ce petit robot à une histoire. D'abord, pendant le show de présentation, on apprend que la hauteur de la serrure pourra être variable, cad descendre de 3cm. La hauteur de clé reste à la même hauteur. Cette idée de la part des organisateurs était pour faire une challenge mécanique, donc d'avoir un outil à hauteur variable.

On commence à réfléchir et on se dit, on a un capteur de lumière, il faut qu'il puisse faire du suivi de ligne (donc regarder par terre) et aussi en l'air (départ et code morse) donc on doit le monter sur pivot. On décide d'intégrer la variation de hauteur directement dans la première construction, avec un moteur de disponible, les deux mouvements doivent être liés. 

Mais avant de faire ceci, on se dit que le bras du haut avec l'aimant ne doit pas gêner le capteur quand il regarde en l'air (le capteur doit être au centre et l'outil aussi), donc il faut prévoir un mécanisme pour que le bras se replie devant le capteur. Pas simple mais bon, Nico dit "faisable" alors il construit.

 
Image

Mais la bonne blague c'est que, dans le NXT il n'y a qu'un capteur de lumière, jusqu'à là normale, mais dans la boite qu'on avait, il y en avait 2 ! On se documente auprès des autres équipes, puis auprès des coachs, non c'est normal, il y a deux capteurs justement un pour regarder en l'air et un autre par terre !

Le robot étant déjà construit et la calibration faite, on décide ne pas le démonter et donc 
on se retrouve à être la seule équipe sur les 16 équipes à n'avoir qu'un seul capteur de lumière. Le challenge mécanique était donc de faire un bras à hauteur variable mais pas qu'il puisse se retracter ou même un capteur rotatif, on s'est retrouvé avec le robot avec la mécanique la plus fouillée :petuncable: Et nous n'en sommes pas peu fier parce que les gens autour nous complimentaient souvent sur ce mécanisme et les visiteurs aussi qui appréciaient de voir ça :) 

On avait aussi un des robots les plus compacts. Mais trêves de bavardages, voici pourquoi les gens aimaient notre robot : 





Nico : Pour vous expliquer, j'ai d'abord pensez à un bête système parallélogramme pour régler la hauteur, ensuite j'ai commencé à asymétriser le système pour lui donner des comportements non linéaire, et finalement, on arrive avec un parallélogramme avec une bielle plus courte que l'autre et une fixée plus en arrière, c'est exactement ce que j'avais expérimenté sur ma supercar décapotable pour la capote.


Image
Image
Image

Donc au final, un système compliqué (mais simpliste) qui permet d'économiser un capteur mais surtout qui offre une bonne cinématique aux spectateurs :petuncable:


Voici une vidéo montrant tous ce que doit faire le robot :





---------------------------------

Vous avez vu la piste, le challenge et le robot. Voici maintenant ce qu'il s'est passé Samedi...

à 8h00 le show commence, la vidéo d'introduction passe sur grand écran puis le terrain est dévoilé. Première surprise : Le thème Alcatraz est fort.
L'an dernier la piste était noire avec quelques objets de formes simples (rectangles, cylindres). Cette année la piste est imprimée, on voit l'intérieur des cellules, la pelouse de la prison. Les objets suggèrent mieux la simulation : Les tunnels, gardiens (robots NXT).
C'est certain l'organisation à fait très fort et a pris des risques car il y a de nombreux actionneurs et lumières programmés : Ouverture des tunnels, envoi du code morse, défaillance du système d'alarme. Ces systèmes demandent une grande fiabilité pour assurer le concours toute une journée.

Frédéric Noyer, le président nous dévoile comment s'évader d'Alcatraz, il enchaîne les explications et nous nous rendons compte de la complexité du concours. Quand il a terminé je ne me souviens même plus du début de son explication... 
Nous notons que le capteur de lumière sera utilisé pour détecter les signaux envoyés par les projecteurs (orienté en haut) puis pour le suivi de ligne (orienté en bas). Nous notons aussi que l'endroit ou l'on prend la clé est à la même hauteur que la serrure mais qu'en finale la serrure sera plus basse de 3cm.


Nous voici lâchés dans les stands avec un pc et la boite de LEGO NXT éducation, cette année j'ai apporté un clavier AZERTY (en suisse c'est QWERTZ) qui nous facilite la programmation.
On donne les contraintes robotique à Nico : 
- Robot compact pour faciliter les manœuvres et limiter les risques de collisions :P (expérience Fribot 2009)
- Capteur de lumière orientable et bras aimant réglable en hauteur avec le même moteur :petuncable: 
- Un maximum de poids sur l'essieu moteur.
- 2 heures pour le réaliser :nunu: 

Pendant ce temps avec Thibaud nous commençons le programme. La première chose est de détecter le départ et la bonne sortie de la cellule.
Avant le début du match les 2 zones de la cellule sont éclairés, nous démarrons le robot, puis les deux zones sont éteintes puis rallumées.
Ensuite, après un temps variable une zone s'éteint : C'est par cette "porte" qu'il faut sortir :think: 
Nous décidons de l'emplacement du robot au début du match (sur la première zone) Nico nous ferra un système de calage très pratique (visible sur la première vidéo) qui positionne précisément le robot à 40cm du bord X et 25cm du bord Y.
Notre programme attend d'abord l'extinction puis l'allumage de la zone. Ensuite il faut attendre l'extinction de l'un des projecteur... notre robot va faire des aller/retour d'une zone à l'autre jusqu'à trouver une zone éteinte. Finalement ce code est assez simple :

//attente de l'extinction
while(ls.readNormalizedValue()> lumiere) Delay.msDelay(100);
//attente de l'allumage
while(ls.readNormalizedValue() < lumiere) Delay.msDelay(100);
//aller et retour en attendant l'extinction d'une des deux cellules
float sens = 1f;
while(ls.readNormalizedValue()>=lumiere)
{
pilot.travel(36f * sens); //
sens = -sens; // va en A ou B
}



Les seuils de niveau de lumière "éclairé" et "éteint" ont été mesurés plus tard sur la piste, quand le robot était terminé.
Nous avons ensuite effectués les essais avec une lampe de poche pour déclencher le robot. ça marche mais ce n'est pas idéal pour tester toutes les combinaisons...

Ensuite le robot doit passer sans percuter le gardien, c'est un robot gardien aveugle qui ne donne pas l'alerte si on lui passe devant, il faut juste l'éviter. Le gardien se déplace lentement en suivant un ovale dessiné au sol.
Notre robot se situe à un bout de l'ovale et notre stratégie est d'attendre si le gardien est devant nous et de passer sinon. Nous différencions s'il est proche ou loin afin de savoir s'il va dans un sens ou dans l'autre (partie de l'ovale la plus proche ou la plus loin) ce qui nous permet d'attendre plus longtemps s'il s'approche, le temps qu'il reparte.
Nous avons passé du temps sur cette partie, à se demander s'il ne valait pas mieux essayer de longer un mur en dehors de la trajectoire du gardien ou passer entre les deux gardiens. Ce n'est pas évident d'éviter un robot qui arrive perpendiculairement :ouch: 

S'en suit une série de déplacements pour rejoindre la ligne à suivre pour prendre la clé. 

Si vous avez tout lu, vous pouvez regarder la vidéo qui suit ;) en HD depuis youtube. Filmé par Nico, monté par moi.






---------------------------------

Les premières phases de tests sont hésitantes, il faut d'abord dire au programme quelle est la roue droite et gauche et lui dire dans quel sens les roues doivent tourner pour que le robot avance. L'avant de notre robot c'est les yeux (capteur ultrasons). Nous utilisons la fonction rotate(90) qui fait tourner le robot mais à droite ou à gauche ? encore un test à vérifier.
Le suivi de ligne est géré facilement, on avance en modulant la puissance des moteurs pour rester à la limite ligne noire/ligne blanche. On roule ainsi pendant 4 secondes en marche arrière. Avant cela le robot aura baissé le bras et le capteur de lumière.
Un ou deux réglage des puissances moteurs pour arriver à 40% et 70% qui font rouler le robot vite et bien pour arriver pile poil sur la clé :

Motor.A.setPower(0);
Motor.C.setPower(0);
Motor.A.forward();
Motor.C.forward();
while(time.elapsed()
  {
  if ( ls.readNormalizedValue() > ligneBlanche ) // on tourne à gauche
    {
    Motor.A.setPower(70);
    Motor.C.setPower(40);
    }
  else // on tourne à droite
    {
    Motor.A.setPower(40);
    Motor.C.setPower(70);
    }
  }


Jusque là nous avions utilisé les commandes de navigation de Lejos qui permettaient au programme de connaître sa position sur la table. Après le suivi de ligne avec la commande des moteurs directement en puissance le robot est "perdu". Il existe heureusement une commande pour dire au robot ou il se trouve et ça tombe bien car nous savons ou se trouve le robot : Devant la clé.
Nous courrons donc sur la piste poser le robot devant la clé et mesurer ses coordonnées X et Y.
La commande setPosition(x,y,heading) demande un 3éme paramètre : heading : C'est l'orientation du robot. Nous avons d'ailleurs déjà utilisé cette fonction au début car le robot commence le match en (40,25,0).
Après le "setPosision" nous allons vers la serrure pour y mettre la clé. A partir de là notre vie à basculé dans l'incompréhension : Le robot est parti du côté opposé :think: problème de heading :non: problème de rotate dans le mauvais sens :pfff: rien n'y fait, nous passons du PC à la piste de nombreuses fois mais à aucun moment le robot va vers la serrure. Il est 14h30, une charmante hôtesse nous a déjà prévenu 10 minutes avant, puis 5 minutes avant et maintenant il faut aller se présenter à la première manche de qualification :whine: 

Voici le film de quelques essais et de la première qualif :



Après cela nous retournons rapidement aux stands : Il faut régler les problèmes parce que là notre robot ne fait pas grand chose et il reste 1h10 avant la manche suivante :gasp:
---------------------------------


Quelques photos de la journée. Tout d'abord les équipes au travail : 

Image

A l'étage le bar pour se rafraichir et manger quelques choses, avec retransmission des commentaires du matchs en cours !

Image

L'équipe à l'oeuvre : 


Image


--------------------------------
Comme vous l'avez vu sur la vidéo, le robot tourne avant de tirer la clé. C'est un miracle que la clé soit resté accrochée au robot. :col:


On repart sur nos problèmes : On arrive pas à rejoindre la serrure qui n'est pourtant pas loin :ouch: 
Cela dit il faut être positif : Le robot sait sortir par la bonne porte et éviter le gardien, il sait prendre la clé et le plus important : Nous avons gagné la première manche de qualif (grâce à la clé je crois). 8) mais ça on ne le sait pas encore.
Pendant les tests qui suivent on doit aussi valider le départ depuis la cellule de droite pour le prochain match. Au niveau du programme c'est assez simple car la piste est symétrique. Nous avons une variable qui inverse les moteurs droite et gauche, le robot fait le même parcours mais toutes ses rotations sont inversés en miroir.
Mais voilà, dans ce sens le robot avance trop loin pour rejoindre la ligne blanche/noire qui mène à la clé :muh?: les problèmes s'accumulent :whine: 
Un scénario déjà vu arrive alors : Dans 10 minutes c'est à vous, ... dans 5 minutes (avec l'accent : Dans ciiiinnnnques minutes)... Bon je retire 5 ou 10cm d'avance au mouvement juste avant d'apporter le robot sur la piste dans un dernier espoir qu'il attrape la ligne :pamafote: 
Voici cette deuxième qualification en vidéo :



Bon, c'est pire que la première. Mais notez que l'autre robot est sorti de sa cellule par la mauvaise porte ce qui nous place vainqueur. :reflechi: 
On voit aussi que finalement le robot parcourait la bonne distance pour atteindre la ligne, si je ne lui avais pas retirer qq centimètres à parcourir :ouch: 
Il nous reste 1h10 avant la prochaine manche pour faire quelque chose qui marche mieux. J'avoue que là on étaient pas fier.

Concernant la sortie des cellules , la différence avec quelques autres équipes était que nous avions un algorithme, alors que d'autre ce contentait d'attendre un certains temps de mesurer la lumiere puis de sortir. D'autres sortaient juste sans ce soucier de la lumiere... on a donc vu toutes les manieres de sortir. Comme la partie commutation des lumières était aléatoire (c'est un opérateur humains qui faisait la séquence et "choisissait" la cellule à éteindre), notre algorithme nous assurait de sortir au bon moment et du bon côté et du coup de ne pas avoir de malus de sortie trop tôt ou par la mauvaise porte.
---------------------------------


Nous avons corrigé le passage du départ à la ligne noire/blanche pour ne plus percuter l'îlot central.


Ensuite nous nous sommes concentrés sur la suite, et comme la piste de test était très occupée nous avons testé uniquement la fin du programme : Depuis le suivi de ligne. Notre objectif : Aller de la prise de la clé jusqu'à la serrure et y insérer la clé. Le robot extrêmement têtu ne voulait pas aller en direction de la serrure.
Quand tu es face à un engrenage qui marche pas tu vois ou ça déconne. Ben quand c'est dans le programme, c'est beaucoup moins visible. Parfois c'est totalement invisible. Sachant qu'il y a environ 256000 octets, comment savoir lequel est le mauvais ? :cry: 

Voici cette dernière manche de qualification, qui nous réserve de bonnes et de mauvaises surprises :






Comme vous le voyez :
- Notre adversaire a apparemment baissé les bras avec humour, cela aurait pu être dangereux pour notre robot.
- Notre robot n'en fait qu'à sa tête et cette fois-ci il est allé trop loin pour attraper la ligne à suivre.

Un peu plus tard nous constatons que nous avons 6 points pour avoir gagné les 3 manches de qualifs : Une seule autre équipe a réussi à faire 6 points.
Le courage revient : nous sommes parmi les meilleurs.

Nous décidons enfin d'aller nous caler contre le mur avant de suivre la ligne, ainsi le robot sera bien en face de la ligne pour l'attraper avec le capteur.
Le robot semble bien parti pour prendre la clé et l'enfoncer dans la serrure, il faut maintenant se préoccuper de décoder le code morse pour savoir quel est le bon tunnel.

DECODAGE DU MORSE :
Voici un petit algorithme sympa à faire, le signal envoyé est soit un M soit un C et nous indique le tunnel côté Mur ou côté Centre du terrain.
Le M c'est "_ _"
Le C c'est "_ . _ ."
Le signal est envoyé continuellement : _ _ _ _ _ _ ou _ . _ . _ . _ . _ . _ .
Nico est allé mesurer la durée d'un long et d'un court : le long fait plus de 1,5 secondes.
Alors voilà l'idée : Le robot mesure la durée du signal : moins de 1,5 secondes c'est un C sinon il effectue une 2éme mesure : moins de 1,5 secondes c'est un C sinon c'est un M.
Il y a aussi une tempo de 5 secondes qui fait quitter la fonction au cas ou le capteur ne détecte pas la lumière. Dans ce cas le robot prendra le tunnel du centre : Une chance sur deux.

Voici le programme :
timout.reset();
while(ls.readNormalizedValue()> morseSueil) 
    { // On attend le noir
    Delay.msDelay(100);
    if ( timout.elapsed()> 5000) return(true);
    }
while(ls.readNormalizedValue() < morseSueil)
    { // On attend le blanc
    Delay.msDelay(100);
    if ( timout.elapsed()> 5000) return(true);
    }

watch.reset();
while(ls.readNormalizedValue()> morseSueil)
    { // On attend le noir
    Delay.msDelay(100);
    LCD.clearDisplay(); if ( timout.elapsed()> 5000) return(true);
    }
if(watch.elapsed() < 1500) return true;

while(ls.readNormalizedValue() < morseSueil)
    { // On attend le blanc
    Delay.msDelay(100);
    LCD.clearDisplay(); if ( timout.elapsed()> 5000) return(true);
    }
watch.reset();
while(ls.readNormalizedValue()> morseSueil)
    { // On attend le noir
    Delay.msDelay(100);
    LCD.clearDisplay(); if ( timout.elapsed()> 5000) return(true);
    }
if(watch.elapsed() < 1500) return true;
return false;


--------------------------------
Nous attaquons les quarts de finale, c'est à dire que le match est éliminatoire.





La vidéo se passe presque de commentaires...



- Notre robot est rapide à détecter la bonne porte et met un vent à Omnibot sur ce point.
- Je suis toujours inquiet au début du match car il y a des flash puissants qui pourraient perturber la détection du spot allumé et surtout le cycle de départ allumé, éteint, allumé ou pas.
- Voici Omnibot qui ne nous voit pas et qui nous rentre dedans. Il n'y a aucune pénalité, le match est rejoué une fois.
- Pour le 2éme match les robots sortent par l'autre porte, ce qui fait qu'Omnibot arrive avant nous au point d'impact. Sur le coup je n'ai pas capté mais c'est bien notre algorithme d'évitement qui fonctionne : Notre robot à laissé 1cm devant pour qu'Omnibot passe ! 8) 
- Ensuite on va contre le mur se recaler puis on attrape enfin cette ligne qui doit nous mener à la clé. Sauf que l'éclairage ambiant ne correspond plus. Je dis qu'il ne correspond plus car cela fonctionnait à la 1ére manche de qualif :/ On note qu'Omnibot ne fait pas mieux : Il tourne en rond :/ 
- Nous l'emportons car nous avons été les plus rapides :D en avant pour la 1/2 finale.



--------------------------------

Vous êtes prêts pour les 1/2 finales ? nous pas trop... :/ cela ressemble à une loterie...


Nous modifions le seuil lumineux de détection de la ligne blanche, un test et c'est reparti.





Ce que je veux dire, si vous regardez la vidéo : C'est le robot prépositionné devant la bonne porte qui gagne :lol: 


Ici SkyTeam gagne le match et va en finale parce qu'elle est la première à sortir de la cellule.

---------------------------------

Comme vous l'avez vu, notre robot suit la ligne et au dernier moment, quand il devrait attraper la "clé" avec son bras aimanté, il ne suit plus la ligne. :ouch: 


Ces deux petits centimètres à la fin participent à notre défaite. Là j'estime que nous n'avons pas eu de chance, d'une part le départ se fait en notre défaveur car nous sommes positionnés en face de la mauvaise sortie, d'autre part le robot suit parfaitement la ligne et fait un écart au moment le plus important. :pamafote: 

On repart aux stands et j'estime à tord que nous n'avons pas eu de chance avec le suivi de ligne. 
Il reste un match à jouer : La petite finale contre Lamageddon.
Vous allez voir ensuite que l'écart du robot n'est pas lié à la chance mais à un seuil mal réglé (circonstances atténuantes car nous n'avons pas les moyens de vérifier le seuil sur le piste) donc je me trompe. Dans la petite finale notre robot fait le même écart. Nous gagnons tout de même la petite finale car nous sommes les plus rapides à sortir (ou nous avons de la chance ?). Nous voilà 3éme de Fribot, déception, joie, frustration, satisfaction, tout se mélange...

Le jury à besoin de tester son matériel et nous propose de rejouer la petite finale pour le fun, nous acceptons et j'en profite pour modifier le seuil du suivi de ligne à l'aveuglette. Vous verrez que le robot suit bien la ligne mais pas assez longtemps, il recule juste avant d'attraper la clé :ouch: Je n'en peux plus de cette maudite clé. 

Voici la vidéo avec la petite finale, la deuxième petite finale, suivi de la finale et du début de la remise des prix.








Voici le logo de notre équipe dessiné par Philippe qui pour des raisons professionnelles n'a pu participer cette année : 

Image


Je conclus ici cette édition 2010 de Fribot et au nom de l'équipe Steambot je remercie particulièrement les organisateurs, Peek, Poke et Zsara du forum Setechnic qui a prêté un NXT à Nico pour l'entraînement.

Quelques photos de la remise des prix ;) :

D'abord du chocolat pour une équipe, les 4ème je crois :

Image
Image

Les premiers avec leur lot PSP :
Image

Les seconds avec les lot dock Itouch :
Image

Et votre équipe préféré : 
Image

Aucun commentaire:

Enregistrer un commentaire

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.