Reconstrucție scenă 3D cu OpenCV

O idee care mie mi s-a părut foarte tare și pe care am susținut-o până cu o zi înainte de RobotX a fost folosirea unor camere video (camere de telefoane mobile, spre exemplu ;) ) pe cele trei locuri de baliză care sunt disponibile unei echipe la Eurobot, pentru a determina permanent unde sunt obiectele poziționate pe masă. Am mai scris despre ideea asta aici.

Ideea mi s-a părut bună pentru că (1) masa este colorată optim din punct de vedere al contrastului pentru a face computer vision pe ce iese din camere, (2) telefoane mobile ar avea suficientă putere de procesare, camere suficient de bune și un factor de formă ideal pentru ce aveam noi nevoie.

Deși până la urmă soluția nu a putut fi folosită cu Pufoșenia, pentru că nu am avut vreme să o definitivăm, niște rezultate tot am obținut, și poate pot părea interesante. Continuă să citești Reconstrucție scenă 3D cu OpenCV

Eurobot – etapa națională

Nu știu dacă mai trebuie să spun ce este Eurobot, cei mai mulți dintre voi care mă cunoașteți ați auzit povestea: e un concurs anual de robotică autonomă în care doi roboți concurează unul împotriva celuilalt pe o masă de 3 x 2 metri, fără să se încurce unul pe celălalt, și au 90 de secunde pentru a îndeplini o sarcină. Roboții sunt perfect autonomi (aka nu sunt telecomandați). Detalii aici.

Tema de anul ăsta se numește Feed the World, și pe scurt trebuie să găsești și să transporți roșii (bile roșii), portocale (bile … portocalii, mai grele decât roșiile), și știuleți de porbum (cilindri albi și negri – cei negri sunt stricați și nu pot fi culeși).

Am început lucrul pentru robot din timp anul ăsta, dar după primele întâlniri a devenit clar că aveam probleme. Micvs încărcat de ore, Dan, plecat în Germania să îi facă pe ăia mai deștepți, eu, printre altele, cu probleme cu banii … Acum câteva săptămâni am reluat treaba. Împreună cu Dan, Micvs, Adi, Matei, Mircea și Sergiu, am făcut de toate, mecanică, electronică, programare, grafică, măturat pe jos :). În ultimele săptămâni am pus toți osul la robotul pentru anul ăsta. Am avut tot felul de probleme, și în ultima săptămână aproape că nu am dormit deloc. Ca de obicei, în ultima seara înainte de concurs, toată lumea era în laborator.

Petronela, robotul nostru, era gândit să facă lucruri mărețe și precise. Pe măsură ce ultimele ore și minute până la concurs treceau, am renunțat pe rând la mai multe subsisteme (adica în termeni plastici i-am făcut o lobotomie :D). La ora 9:15 eram prezenți la concurs.

La etapa națională care a fost vineri, 14 mai, în corpul AN, au venit cam 10 echipe, din care 6 de la Sibiu, noi din UPB împreună cu colegii de la RobotiqueFF de la Fils, niște baieți e la Iași și o echipă de la Oradea.

Omologările (pentru că roboții trebuie să demonstreze că corespund regulilor înainte să intre în concurs) s-au terminat la ora 14, noi am fost a 4-a echipă omologată din cele 5 care au rămas în total. Chiar înainte de omologarea oficială am dat de câteva probleme destul de serioase (one of them caused by me :|), totuși, le-am depășit.

Au urmat apoi meciurile, fiecare cu fiecare, deci 4 meciuri. În primul nu am reușit să marcăm, dar am plecat din zona de start, deci am luat 50 de puncte. În al doilea am reușit și am marcat două bile roșii, și am câștigat meciul, deci am strâns ceva puncte. Echipele de la Sibiu erau foarte bine pregătite, și ne depășeau lejer. Al treilea meci l-am ratat cu totul, ne-am blocat într-o margine. A fost un moment destul de trist și ne cam pierdusem speranța, dar, în al patrulea meci, Petronela a fost în formă și s-a dat cumva peste cap și a împins două bile și un porumb alb în zona de marcare, ceea ce ne-a clasat direct minim pe locul III, la o distanță (infimă dar existentă) de celălalte două echipe mai „mici”. Apoi, una din echipele de la Sibiu nu a reușit să marcheze „cu poarta goală” și ne-am dus direct pe II. Iuhuuu :)

O să încerc să povestesc despre robot altă dată, ce are prin el și de ce e deștept. Ce e important acum este că Petronela și echipa OVP participă la finalele Eurobot 2010, care vor avea loc la 30 de km de Zurich, în Elveția, peste două săptămâni! :D

Sper să revin cu filmulețe de la meciuri, și cu poze de la Ioana, care a fost și ea în vizită.

Update: poze de la Ioana.

Petronela bucăți mici miercuri noaptea
Petronela joi dimineața
Echipa OVP 2010
Mai sus eram forat serioși. Noi de fapt suntem așa

First robot meeting

Azi am reușit în sfârșit să mă adun cu colegii mei de echipă pentru robot să vorbim de planurile pentru măreața noastă intrare în competiția Eurobot. Deja ar fi a patra participare la rând, dar performanțele noastre nu au crescut cu creșterea experienței, ci, dimpotrivă, au scăzut, iar anul trecut nu am reușit să trecem nici de faza națională :P

Anul ăsta însă suntem hotărâți să facem treaba cât se poate de bine, și să ne mișcam mai din timp și să facem cel mai super robot ever build by man. Poate :) Mă simt foarte motivat să lucrez la robotu ăsta, nu știu de ce, am un feeling că suntem suficient de pregătiți, măcar pentru top16. Acuma noi cu planurile totdeauna am stat bine, cu implementarea, mai puțin :)

Săptămâna viitoare îmi propun să re-inaugurez http://ed304.cs.pub.ro, să începem din nou echipele de roboți pentru competițiile de la Vienna, Eurobot, dar și pentru Barcelona, unde anul ăsta va fi prima noastră participare.

rect2952

Licență

Da, da, am reușit (cu greu) să scap de restanțe, și acum am voie să intru în licență acum în vară. De lunea trecută lucrez aproape nonstop, deși lucrul la proiectul ăsta l-am început undeva prin februarie.

Proiectul meu este realizarea unei platforme mobile pentru dezvoltarea de roboți autonomi. Adică o bază de la care să poți pleca mai departe să îți faci robotul.

Ieri am reușit să termin asamblarea, m-am muncit destul de mult, dar a ieșit ca în planuri, cu mici variații :) O să pun poze mâine, azi n-am mai ajuns la școală că o plouat și mi-am luat vacanță.

Până acum am făcut o punte H cu relee pentru controlul motorului principal, cu care am avut o grămadă de probleme și încă nu i-am rezolvat toate hibele, și am scris un driver în Java pentru controlul robotului prin adaptorul serial 2 wireless pe care îl avem. Bine, driver-ul mai dă mici rateuri, dar sunt fixable, cred :). Planul e să scriu drivere pentru mai multe limbaje de programare, să fie așa, ca un api către robotul ăsta. A, și am mai scris driver-ul pentru LCD, în mare. Adică mai treuie aranjat un pic :).

Poze cu placa pentru puntea H, în diferite stagii de dezvoltare:

După aplicarea foliei Press and Peel
După aplicarea foliei Press and Peel
După corodare și după muuulte găuri
După corodare și după muuulte găuri
Placa completă, cu toate piesele pe ea
Placa completă, cu toate piesele pe ea
Testare :)
Testare :)

Cumpărături în București, experiențe personale

A venit vremea să ne ocupăm și de Eurobot, și pentru că anul acesta vrem un robot solid, făcut bine, avem nevoie de niște materiale de construcție mai tari ca plasticul și scotch-ul dublu adeziv (deși, sunt convins că scotch-ul va rămâne permanent în inventarul echipei noastre :) ). Pentru pereți și carcasă, am vrut inițial să folosim plexiglas, dar Dan a venit cu o idee mai bună, și anume să folosim policarbonat. Policarbonat-ul este un material special, foarte rezistent, din care sunt făcute, spre exemplu, CD-urile. Policarbonatul celular se folosește acum mai peste tot – unii îl folosesc peste poarta de fier forjat să nu vadă trecătorii în curte, alții îl folosesc la uși la baie, și în unele locuri a luat locul tablei ondulate. E un material relativ ușor, foarte rezistent și mai ușor de prelucrat decât metalul.

Există și o variantă mai rigidă de policarbonat, policarbonatul compact, care e exact ca plexiglas-ul, doar că e ceva mai rezistent. Aici, cu policarbonatul compact începe povestea mea despre o zi de cumpărături prin București. Prima firmă pe care am găsit-o care vinde așa ceva (pentru că la Brico nu este) era în Pantelimon. Ce-am zis (ce zic toți albaiulienii despre Pantelimon, sunt convins) – blocuri, băieți de cartier … Dar pentru că blocuri și băiețași am mai văzut, am luat echipa și pe la ora 12 jumate am plecat spre ceea ce noi credeam că este un depozit.

Dan se uitase în prealabil pe hartă, și cu o scurtă escală la Eroilor am luat troleu 69 spre Pantelimon. La nici 3 stații de la Eroilor se urcă vreo 10 – 15 aurolaci, care încep să se înghesuie în spatele mașinii spre față. Că se înghesuiau era o chestie, dar mirosea prin tot troleu a prelandez (nu știu daca așa miroase aurolacu ăla ce-l bagă-n ei, da era some strong shit). Ne-am dat jos (noi și tot restu lumii) undeva pe la Foișorul de Foc, toți cu expresii de-alea de genu ”ai uitat unde mergem? la ce să te aștepți la altceva?”. Am luat altceva (85, parcă) până în Baicului.

Eu vedeam Baicului așa, ca un ”hood” din filmele cu gangsta. În schimb, când am ajuns acolo, aproape imediat ne-a cuprins așa sentimentul apăsător că ceva nu este în regulă cu locul ăla. Am mers spre strada cu depozitul, am trecut peste o cale ferată, dar nu ne simțeam deloc în mijlocul unui oraș mare, și apoi, am luat-o la dreapta pe o străduță de am ajuns direct la sat. Străduța noastră se termina direct în ALTĂ cale ferată. La 1km în stânga și în dreapta se vedeau blocurile mari ,trademark Bucureși. Dar noi eram la țară: case cu acareturi de tot felul, dintre care una cu un etaj și o scară exterioară înghesuită cumva acolo, cu numele depozitului pe care îl căutam noi pe ea.

Tot locul, toată treaba era extrem de spookie. Dar aveam adresa, aveam numele firmei, se potrivea, și ne-am făcut curaj și am intrat. Oamenii de fapt chiar aveau acolo depozit, și, într-un final, am reușit să înțelegem că de fapt materialul ăsta nu-i doar foarte mișto, ci și foarte scump (cam 3 milioane metru pătrat la 6mm grosime), dar le-am povestit oamenilor că suntem robotiști și ne-au vândut o fâșie de policarbonat cu reducere specială de studenți.

Necazul a fost că nu ne așteptam să fie așa scump și nu aveam bani. Am cerut indicații către cel mai aproape bancomat, și am luat-o în direcția aproximativă indicată. Am mai întrebat la un magazin la colțul străzii (care evident ne-a dat alte indicații), și am ajuns destul de repede in the middle of nowhere, printre niște blocuri semipărăsite, niște străzi goale și gri, mărginite de aceeași cale ferată. Eram toți așa, cu urechile ciulite și parcă cu ochii în toate părțile, aveam sentimentul ăla ciudat că ceva nu este de loc în regulă și că noi nu prea căutam bine ce căutam pe unde eram (și nu mă refer la bancomate). Am întâlnit o singură persoană pe strada, am întrebat de bancomate și ne-o zis ca nu se există așa ceva în fundul de lume unde eram. Până la urmă am luat o mașină (cred că tot la inspirația lui Dan) și am ajuns undeva la Doamna Ghica, de unde am scos banii, și ne-am întors cu același autobuz de unde am plecat, să plătim.

De menționat că la Doamna Ghica am văzut un câine, maidanez, de-ăsta de nici o rasă, care era cel puțin de două ori mai mare decât orice câine maidanez am văzut vreodată, îmi ajungea undeva la șold. Întorși să dam banii, pe strada rurală pe care era depozitul, unul din vecini ținea de un câine să nu scape din curte, un câine iarăși, imens. La ușa din spate a depozitului stătea de gardă, evident, un alt câine imens. Am luat placa, am zis mulțam și am băgat urgent talpă până la mașina care ne-a adus în „cartierul minunat”.

Cine a numit Bucureștiul Micul Paris, n-a fost decât pe Victoriei în zilele ei bune. Am fost la Paris, și nu-i așa. La un moment dat eu ziceam că Bucureștiul că seamănă cu Istambul-ul, sau mă rog, cu cum îmi imaginez eu Istambulul pentru că n-am fost încă pe-acolo, dar ce-am văzut joi nu seamănă cu nimic. Este doar ”o realitate crudă” din inima capitalei României și sper să nu mai am drum în capătul ăla de lume prea curând.