Grafice rapide pe Linux

Deși nu ne-am calificat la FRC2010, am învățat mai multe lucruri utile și pentru multe alte feluri de proiecte. Spre exemplu, primeam date de la accelerometrul ala, și le salvam pe un card în microSD. Pentru mine, pe Linux, a fost destul de nasol să fac graficul acceleratie(x) în OOo Calc, pentru că erau foarte multe puncte, și efectiv nu se descurca, și graficul rezultat era greu de aranjat.

Așa că am început să folosim Octave, care este un soft de genul Matlab (evident, opensource și mai puțin dezvoltat ca Matlab), și interfața grafică QtOctave. Am luat datele de la accelerometru, dar și punctele unde am înregistrat noi curbele, și valorile de prag pe care le calculam la fiecare tură. Ce mi-a s-a părut foarte tare a fost că în 20 de minute am făcut un script python cu niște expresii regulate, care spărgea fișierul provenit de la mașină în mai multe seturi de date, și o funcție Octave care să tragă niște grafice după care să ne estimăm noi algoritmul. Practic, din trei clickuri, era gata tot, și și foarte repede.

Octave-ul e doar este o soluție la îndemână pentru învârtit datele, pentru aranjat în matrici. De acolo, de fapt octave-ul folosește gnuplot, care se poate folosi și standalone, și care și el este o super sculă :D

Anyway, toate sculele astea sunt gratis, și, even better, opensource.

Tadaaaaa

EpicFail, cu picături de pozitivitate

Luni a fost preselecția pentru faza pe facultate a Freescale Race Challenge 2010, despre care am mai scris mai demult. Foarte pe scurt, echipele de pe la noi din departament s-au calificat și au trecut mai departe, toate mai puțin a mea :). Ce m-a lovit cel mai tare nu a fost că nu ne-am calificat, ci că nici nu am apucat să arătăm ce știm. Cu programul nostru mașinuța a „murit” în tura de învățare, înainte să facă orice deștept, la o viteză cu care alte echipe au mers destul de bine. Nu știu, cauciucurile, uzura mecanică a motorului, nu știu ce s-a întâmplat. Cert este că nici nu am apucat să concurăm.

Aaaaaanyway :) Am lucrat cu Adi un weekend încheiat la program (30 și ceva de ore cu pauză de budă și de ciorbă de burtă), și alte câteva ore împrăștiate prin decembrie. Am dezvoltat un algoritm destul de deștept de învățare, care parcurgea traseul, îl reducea la un set de curbe, și apoi îl scria pe card într-o formă redus (fișierele de învățare aveau până într-o sută de bytes).

După aia aveam un algoritm de rulare care prima data citea într-un array curbele astea, și verifica daca nu cumva s-a trecut la urmatoarea curbă în funcție de ce facea accelerometrul ala care masura accelerația laterală. Am mai făcut noi un fel de filtru acolo, să se sincronizeze bine pe circuit, și i-am mai zis să accelereze pe o bucată (gen 40 – 50%) din liniile drepte. Am încercat să mai implementăm și o accelerare pe ieșirile din curbă în cazul în care după curbă urma linie dreaptă, dar am renunțat la asta, pentru că era prea târziu.

Duminică după masa devenise aproape imposibil să putem testa extensiv algoritmul, l-am testat cât o fost, și i-am dat send. Ghinion cu tura de învățare.

În cazul în care v-ați întrebat vreodată cum merg mașinuțele astea, uite, o tură de test a lui Matei:

Pe circuit. Ceața aia din poza e cauzată de o altă mașină care a trecut în timp ce făceam poza :)

Freescale Race Challenge 2010 – prezentare

Numa ce m-am întors de la deschiderea concursului Freescale Race Challenge 2010, care a avut loc în A500 de la ora 19:00. Am mai scris despre concursul ăsta și înainte, e ăla cu mașinuțe care merg pe o șină, care trebuie re-inventate pentru a învăța traseul și a se descurca singure (și repede) pe o pistă nouă, necunoscută.

Mașinuțele sunt mod-uri la mașinuțe reale de pistă, pe care se aplică un PCB echipat cu controllere și accelerometre de la Freescale (care vin moka pentru fiecare echipă). Pentru finală, mașinuțele mod-ate vor fi făcute de către echipă.

Se pare că concursul ăsta a generat foarte mult interes, au fost înscrise 96 de echipe de la AC și de la ETTI, pe 46 de locuri câte au propus cei de la Freescale. Prezentarea de azi a avut rolul de a deschide concursul, de a prezenta detalii și regulament, dar mai ales de a ne spune cum se va face preselecția.

Până pe 11 ianuarie, toate echipele trebuie să scrie un cod care să ruleze la preselecție pe mașiuțe mod-ate de cei de la Freescale (adica mașinuțe standard, cu PCB-ul aplicat, fără inovații sau „șmecherii”), iar apoi, după selecția celor 23 de echipe / facultate, până la 1 aprilie echipele selectate vor putea să-și tuneze mașinile pentru competiția pe facultate, apoi pe universitate, și, pentru cei mai iscusiți, pentru faza europeană, unde se vor întâlni cu echipe din Cehia și din Slovacia.

Prezentare reguli FRC2010
Foarte multă lume prezentă la întâlnire - A500 de jumate plină