Am fost la primul Campionat de Fotbal Robotic din București

0

Când m-am dus sâmbăta asta să văd campionatul de fotbal robotic, într-unul din holurile Politehnicii, mi-am amintit cum jucam eu și colegii mei fotbal în clasa I. Eu stăteam în poartă, goalkeeper-ul advers în poarta lui, iar restul jucătorilor din ambele echipe erau adunați buluc în jurul mingii, încâlciți ca la Twister, și încercau să găsească împleticit un culoar spre una din porți. Treceau mult chin și stângăcie în coordonarea individuală sau în echipă până când una din părți reușea să înscrie.

 

Foto: Pagina de Facebook inventeaza.ro

 

de Ionuț Dulămiță

 

Similar, unii dintre roboții fotbaliști proiectați de Centrul de Creație Tehnică pentru Tineret “inventeaza.ro” se roteau în gol, ca Mutu pe cocaină, alții se loveau de perete și-și dădeau singuri knock-out, unii își placau propriii coechipieri ca la hochei, alții ciupeau mingea ca apoi să treacă pe lângă ea. Era o adevărată luptă cu coordonarea. Marea diferență este că roboții funcționau oarecum orbește, după un algoritm prestabilit, și cu toate astea își găseau mai ușor drumul spre poartă decât noi într-a-ntâia și înscriau mult mai des decât o făceam noi în timp real. Studenții de la Polithenică i-au programat să funcționeze în echipă. De altfel, asta a fost marea provocare și ineditul Campionatului de Fotbal Robotic din București: punerea laolaltă a mai multor roboți autonomi, dar cu un scop comun, acela de a juca împreună și de a înscrie. Până acum, susțin organizatorii, s-au mai organizat doar competiții cu roboți individuali care șutau la poartă, nu era vorba de o echipă.

Centrul de Creație Tehnică pentru Tineret “inventeaza.ro”, un ONG înființat de oameni pasionați de robotică, electronică și programare, a organizat timp de cinci săptămâni sesiuni de workshop și de coaching cu 60 de studenți de profil. Aceștia au învățat programare în C++ sau Python și apoi au dezvoltat singuri, în echipe, algoritmii prin care să facă roboții să comunice și să joace pe teren. La început, au învățat cum să miște un singur robot: “cum să-i miște roțile, cum să-l facă să se învârtă sau să urmărească mingea ș.a.m.d.”, spune Mădălina Iorga, PR-ul organizației. “Ulterior, i-am învățat care sunt elementele de bază în a face doi roboți să se coordoneze. Tocmai acesta e și farmecul jocului de fotbal robotic”.

 

 

De la distanță, roboții care s-au întrecut sâmbătă după-masă arată ca niște mici cutii de carton. Au formă pătrată (așa i-au conceput cercetătorii de la Universitatea din Plymouth) și fac parte din clasa MiroSot, omologată de Federația Internațională de Fotbal Robotic. Cei care au participat la campionatul din București au fost dezvoltați de echipa “inventeaza.ro” și au jucat câte trei într-o echipă: un portar și doi colegi care apărau sau atacau, placând uneori adversarii. După cum mi-a explicat Alexandru Gheorghe, student la Automatică și Informatică Aplicată, care a participat voluntar la asamblarea jucătorilor, roboții înglobau un microcontoller Arduino (“creierul” lor), o baterie LiPo reîncărcabilă, de 100 de miliamperi, un modul wireless și două rotițe pentru deplasare instalate de o parte și de alta a corpului, activate de câte un motoraș. Pe lângă aceste componente de bază, mai aveau încorporate un mic difuzor ce alerta sonor dacă se consuma prea mult din baterie și două plăcuțe, una sus și una jos, care serveau pe post de scuturi la coliziune. Pe cea de sus erau lipite stickere cu linii de culori diferite, după care o cameră web identifica echipa în care jucau roboții.

Camera cu pricina era instalată pe un suport din lemn, deasupra suprafeței de joc (cu o dimensiune de 220 cm x 180 cm și o margine de protecție înaltă de 5 cm și groasă de 2,5), și transmitea coordonate în timp real printr-un sistem de tracking video. Fiecare robot, care nu poate depăși dimensiuna de 7,8 cm și greutatea de 650 g, avea desemnat propriul IP și prelua coordonate din timpul meciului prin modulul său wireless. Aceste coordonate transmise în timp real acționau algoritmul prestabilit de echipa umană, formată din patru studenți. Agoritmul cu pricina reprezintă de fapt strategia de joc a echipei, care s-a bazat mult pe probabilități ale situațiilor de joc, mai ales că nu se cunoaștea planul de atac al adversarilor.

 

 

“Fiecare echipă a primit niște coordonate [înainte de campionat], cum ar fi dimensiunile terenului, suprafața pe care se pot mișca, după care a imprimat [roboților] o anumită viteză și s-a gândit că dacă mingea e poziționată în punctul x, cum face să ducă robotul acolo și ce face celălalt robot coechipier în funcție de ce ar putea face echipa adversă?”, spune Mădălina Iorga. “Îți alegi niște coordonate în funcție de care stabilești niște algoritmi și nu are cum să meargă totul perfect, pentru că nu știi ce algoritm a ales echipa adversă. Când se spune start joc, se pornește scriptul respectiv și roboții încep să facă ceea ce au fost programați să facă”. Echipele înscrise în campionat au trebuit să calculeze înainte de meciuri distanța și unghiul față de minge în toate punctele în care aceasta s-ar putea afla pe teren, încercând să anticipeze și mișcările adversarilor. În ciuda situațiilor în care roboții jucători se deplasau pe bâjbâite după minge, era spectaculos să vezi cum unii din ei se redresau și împingeau balonul prompt, ca un mic transportor de marfă, în poarta adversă.

 

 

“Robotul nu simte mingea, trebuie ghidat înspre ea”, spune unul din membrii echipei 3-1, care a câștigat cu 5 la 4 meciul de calificare, dar a pierdut în semifinale în fața competitorilor de la FC Bitu’. Direcția de deplasare se stabilește prin imprimarea unei anumite viteze pe fiecare roată, care antrenează cele două motorașe. “În funcție de viteza imprimată, putem face robotul să meargă drept, să meargă într-un anumit unghi, să facă arc de cerc etc.”, spune o coechipieră. 3-1 a avut probleme la partea de rotire a roboților jucători, crucială pentru schimbarea direcției de mers în căutarea mingii. “Robotul trebuia să meargă tot timpul cu fața spre minge și, ca să poată să se deplaseze cu fața [când mingea se afla în spatele său], trebuia să se rotească. Chestia asta ne-a dat multe erori, nu făcea rotirea prea bine, nu știam ce viteză să-i dăm”, spun membrii echipei. Cu toate astea, ei au avut o tactică imbatabilă în meciul de calificare pentru semifinale. Unul din roboții lor era programat să se deplaseze în fața mingii și în fața porții adverse pentru a-i face culoar liber celui de-al doilea, care înainta lângă el, ghidând mingea spre poartă și spre gol. “Am dat trei goluri doar așa, echipa adversă nu a putut să remedieze. Portarul lor se mișca stânga-dreapta, dar noi am avut viteză mai mare mare decât el, nu a simțit mingea”.

 

 

Dacă tot vorbim de portari, aceștia fusesră programați fie să se miște stânga-dreapta pe linia porții, fie în diagonală, fie să se rotească în careu, fie să stea locului. Norocul și neprevăzutul au dat naștere unor situații de joc neașteptate, dar și unor probleme tehnice. Cum precizam mai sus, unii roboți se loveau de perete sau între ei și rămâneau blocați, alții pierdeau contactul cu camera (semnalat printr-un led). Dacă nu își “reveneau” în 10 secunde, se striga stop joc, roboții erau recalibrați și așezați în pozițiile de dinaintea întreruperii meciului. Acesta era, de altfel, singurul moment în care putea interveni în joc factorul uman, în afară de începutul meciului, când studenții își așezau jucătorii în pozițiile prestabilite. Maxim trei coechipieri umani stăteau în jurul terenului și interveneau doar atunci când era nevoie să repună roboții în joc; dacă existau accidentări – dezlipirea unor fire sau probleme cu bateria, de exemplu -, le luau locul rezervele. Un alt membru uman al echipei stătea în fața unui laptop și nu făcea decât să ruleze algoritmul când se striga start joc.

 

 

Întreruperile de joc erau decise de un arbitru care stătea la o masă între adeversarii ce rulau scripturile și care urmărea ce se petrece pe camera web. Acesta semnala și faulturile, care apăreau atunci când roboții se izbeau între ei și nu urmăreau mingea. În caz de fault, potrivit regulamentului, arbitrul poate să nu oprească jocul dacă echipa faultată deține mingea. Durata unui joc este de 10 minute, împărțită în două reprize a câte 5 minute. Între reprize există o pauză de 5 minute, iar pe parcursul întreruperilor, ceasul de joc este oprit. Cât timp jocul este în desfășurare, participanții umani nu au voie sa interacționeze in nici un fel cu computerul de joc. Este obligatoriu ca sistemul (computerul de joc și roboții) să comunice independent în timpul partidei. În caz contrar, echipa nesupusă este descalificată (pentru mai multe detalii, puteți accesa regulamentul de joc).

Organizatorii spun că au ales această clasă de roboți pentru că sunt mai ușor de controlat. “Sunt și unii mult mai mari, dar mai greu de controlat. Sunt bipezi și aceia cad, iar odată ce au căzut, se ridică foarte, foarte greu”, spune Alexandru Gheorghe. În plus, această categorie necesită și mult mai multă muncă de programare. “Mai sunt și alții mai mici decât aceștia, doar că sunt foarte greu de construit pentru că sunt foarte mici, au vreo 3 centimetri. Cei pe care i-am ales sunt și rezistenți, au și viteză, sunt cei mai OK”.

Campionatul de fobal robotic de sâmbătă a reunit în jur de 40 de studenți, împărțiți în nouă echipe, care au reușit să se prezinte cu o echipă robotică funcțională, verificată înainte de concurs. Finala a fost câștigată de FC Bitu’, care s-a impus în fața celor de la Firless. “Noi vrem să facem din astea o tradiție și să creștem numărul de echipe participante, poate și clasa la care se organizează acest campionat”, spune Mădălina Iorga. Până atunci, stundenții vor învăța să-și programeze mai bine roboții și strategia de atac. Acum au învățat doar elementele de bază, în cadrul programului de educație derulat de “inventeaza.ro”.


Leave A Reply

Advertisment ad adsense adlogger