Walter the Waiter

Azi a fost UBBots 2014. Și în final am terminat cu Walter. A fost super fain și interesant, dar în ultima lună am tras destul de tare, lucram până seara târziu, și astea pe lângă facultate și serviciu (și prezentări și articole și interviuri) și s-au cam adunat toate.

Aseară pe la vreo 7-8 am decis să ne retragem, pentru că nici rotițele noastre, nici ale lui Walter nu mai mergeau (lui i s-au descărcat bateriile, noi pur și simplu nu dormisem destul :)))), și urma să venim azi cu 2 ore mai repede și să terminăm ultimul bug care o mai rămas (de care știam :-")

Fiecare membrul al echipei noastre a făcut asta într-o măsură mai mare sau mai mică și dimineață pe la 8-ish am fost la FSEGA, gata să rupem totul. Doar că ne-am dat seama că mai avem câteva chestii de făcut în afară de acel bug: să punem laptopul meu pe robot, să controlăm cumva laptopul meu de pe laptopul lui Dan și să facem un pic de cable management (că firele zburau în toate direcțiile).

Sebi, expertul nostru în Linux, a început să lucreze la partea de conectare la X prin SSH, VNC, și alte acronime obscure, ca până la urmă se ajungem să folosim TeamViewer. Prin internet. Prin conexiunea de wireless de la FSEGA. Că prin IP direct nu mergea.

În paralel, am început să atașăm o husă de laptop de Walter și ne-am dat seama că unele cabluri trebuiesc trase altfel că așa nu ajung. Și că Brick-ul Lego trebuie atașat mai cu moț ca să încapă toate chestiile și să și fie stabil.

Între timp au început să apară sponsorii/fotografii, am dat un inteviu la ceva tele­viz­iune (Digi TV parcă, dar nu țin minte sigur) și am prezentat celor de la Bosch ce face robotul nostru.

Nu am mai apucat să ne ocupăm mult de bugul acela, doar am ajustat ceva viteze, dar în prezen­tările care le-am făcut dimineață a mers foart bine Walter.

Și apoi a început distracția: prezen­tările. Noi eram a 6a echipă (numai bine să poată ajunge niște prieteni de la adunare :D), așa că am scos bateriile și toate cele și le-am pus la încărcat să nu avem surprize în timpul prezen­tării. Prezen­tările dinaintea noastră au mers destul de bine, au fost câteva „hickup”-uri minore, dar în mare s-au derulat fără probleme.

Și apoi am început noi. Am urcat pe scenă să vorbim despre robot, iar apoi am început demo-ul. Sau am fi vrut să îl începem. După ce Sebi o pornit robotul, TeamViewer/rețeaua o picat, așa că nu mai vedeam chestiile de debugging de la Walter. Din ceva motiv a făcut ture în plus la găsirea mesei. Când cu chiu cu vai a ajuns la masă, nu se mișca brațul. Una din bateriile pe care le-am pus la loc ieșise. După vreo 5 minute de fail, domnul profesor a zis să prezinte următoarea echipă și noi să prezentăm după ce găsim buba.

Într-un final ne-am dat seama că una din probleme a fost că a mai ieșit un fir care era destul de ascuns. După ce a prezentat următoarea echipă am mai avut și noi demoul nostru, și de data asta lucrurile mergeau destul de bine, până când Walter a vrut să servească oamenii. Noi testasem cu puțini oameni până atunci, și deși ne-am gândit că poate vom avea probleme când va fi sala plină, speram să scăpăm de problemă orientând camera în sus. Aparent nu am ridicat-o suficient în sus. A cam luat-o razna Walter acolo și tot oscila între care față să o servească și a avut nevoie de un pic de ajutor să termine „tura”.

După ce s-au terminat prezen­tările și s-a mai aerisit sala am continuat să îl rulăm pe Walter și am mers ok-ish. A venit și reprezen­tat­ul SDL și i-am prezentat și lui mai detaliat ce facem, ce algoritmi folosim și cum ia decizii Walter.

Apoi premierea: am luat premii de la SDL și Bosch. Unul din premii constă într-un zbor deasupra Clujului :D

Privind în urmă, văd două chestii pe care ar fi trebuit să le facem altfel. Nu trebuia să lăsăm cable management-ul pe ultima zi (aka contează mult chestiile care leagă lucrurile „im­por­tan­te” la un loc). Alte echipe s-au ocupat de asta mai dinainte and it served them well. Așa noi am făcut multe chestii în 5 minute, de sta­bil­i­tate dubioasă și am mușcat-o. O altă chestie care ar fi fost bine să o avem era ceva metodă de a face smoke testuri separate la fiecare componentă. Prin asta mă refer la ceva scripturi super simple pentru fiecare motor (Lynx, Nxt, iRobot) și senzor (Arduino, Webcam și Nxt) prin care să verificăm că merg, care să facă mișcări elementare prin care să ne dăm seama în 5 secunde dacă merge piesa respectivă sau nu. Cum era acuma situația, până să ne putem da seama că Lynx-ul nu era conectat, au trecut 30 de secunde până să ajungă la masă, și dupaia nu știam dacă problema e de la webcam, de la Lynx sau dacă o crăpat ceva în program.

Deși mă așteptam să ne descurcăm un pic mai bine, totuși sunt mulțumitor Domnului pentru cum a decurs prezentarea de azi, cu tot cu crăpatul din prezentare.

Mi-a făcut plăcere să lucrez cu colegii mei de echipă, Dan Haiduc, Paul Țiței, Călin Florea și Sebi Orțan. Ne-am distrat împreună și am învățat multe chestii faine.