Sunteți pe pagina 1din 51

UNIVERSITATEA POLITEHNICA DIN BUCURETI FACULTATEA DE AUTOMATIC I CALCULATOARE DEPARTAMENTUL CALCULATOARE

PROIECT DE DIPLOM
Robot autonom pentru competiia Eurobot 2011

Coordonatori tiinifici Prof. dr. ing. Radu Vrbnescu Conf. dr. ing. Rzvan Rughini

Absolvent Matei ene

BUCURETI
2011

Robot autonom pentru competiia Eurobot 2011

Cuprins

Introducere ........................................................................................................................................................ 1 1. Competiia Eurobot ...................................................................................................................................... 1 1.1. Tematica Eurobot 2011 ..................................................................................................................... 5 1.2. Sistemul de balize .............................................................................................................................. 7 1.3. Proba de omologare .......................................................................................................................... 8 1.4. Soluiile concurenilor ..................................................................................................................... 10 2. Prezentarea soluiei.................................................................................................................................... 11 2.1. Etapele dezvoltrii soluiei .............................................................................................................. 13 2.2. Mecanismul de manipulare a pieselor ............................................................................................ 17 2.3. Sistemul de poziionare pe mas .................................................................................................... 19 2.4. Sistemul de evitare a adversarului .................................................................................................. 22 2.5. Strategia .......................................................................................................................................... 23 2.6. Caracterul inovativ .......................................................................................................................... 23 3. Hardware .................................................................................................................................................... 24 3.1. Descriere mecanic ......................................................................................................................... 24 3.1.1. Gheara ............................................................................................................................... 24 3.1.2. Mecanismull de ridicare .................................................................................................... 27 3.1.3. Carcasa .............................................................................................................................. 27 3.1.4. Blocul motor ...................................................................................................................... 28 3.1.5. Sistemul de detecie a adversarului .................................................................................. 29 3.2. Descriere electronic ....................................................................................................................... 29 3.2.1. Sursa de energie ................................................................................................................ 29 3.2.2. Motoarele de deplasare .................................................................................................... 30 3.2.3. Motoarele mecanismului de manipulare a pieselor .......................................................... 31 3.2.4. Senzori ............................................................................................................................... 32 3.2.5. Placa de conectare a senzorilor ......................................................................................... 35 3.2.6. Placa de achiziie de date .................................................................................................. 36 3.2.7. Placa de adaptare USB RS232 ......................................................................................... 37 4. Software...................................................................................................................................................... 38 4.1. Sistemul de I/O ................................................................................................................................ 38 4.2. Interfaa sistemului de deplasare .................................................................................................... 39 4.3. Interfaa mecanismului de manipulare a pieselor........................................................................... 40 4.4. Sistemul de achiziie de date ........................................................................................................... 42 4.5. Computer vision: detecia adversarului .......................................................................................... 43 4.6. Computer vision: sistemul de balize fixe ......................................................................................... 44 4.7. Poziionarea pe mas ...................................................................................................................... 46 4.8. Programul de control i strategie .................................................................................................... 46 Rezultate. Concluzii. Mulumiri....................................................................................................................... 48 Bibliografie ....................................................................................................................................................... 49 Anexe ............................................................................................................................................................... 51

MATEI ENE

Introducere
Apariia roboilor a fost determinat de dorina noastr de a ne automatiza sarcinile cotidiene. Ideea este consemnat nc din operele filozofilor antici [1], dar primele implementri pe scar larg au fost posibile numai dup invenia primului motor, n urm cu 3 secole. n prezent, exist peste 8,6 milioane de roboi la nivel mondial [2]. Fie c sunt construii pentru mediul industrial sau pentru sarcini personale, majoritatea sunt gndii pentru a funciona n condiii precizate sau cu variaii controlate ntre anumite limite. Aceti roboi nu au capacitatea s se adapteze dac sunt scoi din context. Un robot care opereaz ntr-un mediu aflat n continu schimbare are nevoie de asistena unui operator uman care s-i indice aciunile corecte. Este vorba despre o colaborare, n cadrul creia omul observ caracteristicile mediului, iar robotul primete comenzi n concordan cu acestea. Din pcate, sub aceast form, sistemul are o utilitate limitat, eficiena fiind dat de timpul de rspuns al operatorului. Pentru a depi bariera trebuie s cretem gradul de autonomie al robotului, adugandu-i capabilitile de achiziie i interpretare a datelor din ambient. Proiectul de fa i propune s evidenieze etapele necesare realizrii unui robot complet autonom, avnd ca studiu de caz competiia Eurobot 2011. Aplicaia practic a presupus construcia i programarea unui robot care se deplaseaz pe o mas n form de tabl de ah cu scopul de a plasa ct mai multe piese pe ptratele de culoare proprie. Concursul se desfoar anual la nivel european, iar formatul bine definit i numrul mare de participani faciliteaz evidenierea punctelor tari i slabe ale soluiilor propuse. n capitolele ce urmeaz voi descrie structura robotului, etapele construciei i dezvoltrii sale i rezultatele obinute.

Capitolul 1

Competiia Eurobot
Eurobot este o competiie internaional dedicat tinerilor pasionai de robotic. Prima ediie a avut loc in 1998, cnd proaspta format asociaie Eurobot a transformat cupa de robotic a Franei (care se desfura nc din 1993) ntr-un eveniment la nivel european. Concursul se este organizat anual i gzduit de una din rile din Europa. Se accept ca o echip s aib membri de diferite naionaliti, atta timp ct reprezint o singur ar. Mai mult, regulamentul prevede ca, n cazul n care exist mai mult de 3 echipe candidate pentru o anumit ar, s se organizeze o etap naional pentru departajare. Participanii trebuie s construiasc roboi complet autonomi care s realizeze o sarcin, conform tematicii stabilite de reguli [3]. Cu toate c aceasta se schimb de la an la an, formatul competiiei rmne acelai: o rund dureaz 90 de secunde, timp n care doi roboi adversari evolueaz pe masa de joc cu scopul de a obine ct mai multe puncte la final. Inclusiv dimensiunile mesei rmn aceleai ntre ediii: 3 m x 2,1 m. Spiritul competiiei este acela de fair-play, de aceea roboii nu au voie s se loveasc sau s se ncurce n mod intenionat. Pentru a exemplifica, voi face n continuare un scurt sumar al temelor din ultimii ani:
2

Robot autonom pentru competiia Eurobot 2011

2007. Robot Recycling Rally

n acest an, misiunea roboilor era s colecteze deeuri reciclabile. Dozele de aluminiu, sticlele de plastic i bateriile puse n containerele corespunztoare aduceau puncte echipei. A fost prima ediie la care a participat o echip din partea facultii noastre. Am obinut locul 1 pe ar i locul 23 n Europa.

Fig. 1. Masa de joc de la ediia 2007

2008. Mission to Mars

Tematica acestei ediii era o expediie pe Marte, unde roboii primeau puncte pentru colectarea mostrelor de sol. Acestea erau reprezentate de bile colorate i trebuiau depozitate n containerele de pe margine. Mai mult, pe mas erau i bile albe care repezentau ghea. Deoarece mostrele se conserv mai bine la temparaturi sczute, se acordau puncte n plus pentru strngerea combinaiilor ghea + sol. n acest an, echipa facultii s-a clasat pe locul 3 la faza naional i pe 43 la faza internaional.
Fig. 2. Masa de joc de la ediia 2008

MATEI ENE

2009. Temples of Atlantis


De aceast dat, roboii trebuiau s adune piese de lemn (pucuri i grinzi) cu care s construiasc turnuri ct mai nalte pe zonele maronii. Fa de ediiile anterioare, zonele destinaie erau comune i roboii puteau colabora. Echipa noastr a participat cu 2 roboi, ns nici unul dintre ei nu s-a clasat ntre primele locuri pe ar.
Fig. 3. Masa de joc de la ediia 2009

2010. Feed the World

Dup o pauz de un an, au revenit n scen clasicele containere. Scopul era culegerea i depozitarea a ct mai multor fructe i legume. Recolta era constituit din porumbi (cilindri albi), roii (bile roii uoare) i portocale (bile portocalii grele). Cilindrii negri reprezentau porumbi stricai i erau fixai de mas pentru a fi imposibil de cules. De data aceasta am trecut de faza naional pe locul 2 i am obinut locul 45 n Europa.
Fig. 4. Masa de joc de la ediia 2010

Robot autonom pentru competiia Eurobot 2011

1.1.

Tematica Eurobot 2011

Anul acesta tema poart numele ChessUP! i are un specific diferit celor din anii precedeni. S-a renunat la containere i la ideea de a aduna i sorta diversele obiecte de pe mas. De data aceasta zona de lucru este i zon de punctare i avem de-a face cu un joc de ah adaptat pentru roboi. Roboii pornesc din zonele de start vopsite n culoarea echipei (rou n stnga i albastru n dreapta). Se obin puncte prin plasarea pieselor galbene n ptratele de culoare proprie din tabla de ah 6x6 desenat n centrul mesei. O parte din piese sunt aezate iniial pe punctele de intersecie dintre ptrate, dar majoritatea se gsesc pe zonele verzi. Culorile echipelor i configuraia mesei se stabilesc la nceputul rundei, prin tragerea la sori a unor cartonae, ns roboii nu primesc nici o informaie legat de rezultatul extragerii.

Fig. 5. Masa de joc de la ediia 2011

O schimbare fa de ceilali ani reprezint faptul c toate piesele sunt neutre. Cu alte cuvinte, un robot poate fura piesele plasate de adversar, modificnd scorul chiar i n ultima clip. Unele dintre ptrate sunt marcate cu un punct negru n centru. Ocuparea acestora aduce puncte bonus echipei. Deasemenea, exist ptrate protejate, aflate pe latur opus zonelor de start. Acestea sunt singurele de pe care adversarul nu are voie s fure piese, deci pot oferi un ctig garantat pn la sfrit. Exist 3 tipuri de piese, ilustrate n fig. 6 n ordinea valorii. Pionii sunt cilindri cu diametrul de 200 mm i nlimea de 50 mm. Regii i reginele au baza identic cu un pion i acoperit pe lateral cu un cod de bare de 5 caractere, pentru identificare (KING- , respectiv QUEEN; liniua a fost adugat pentru a compensa diferena de lungime). Ornamentul de deasupra poate varia, cu condiia s se ncadreze ntr-un cilindru cu diametrul de 160 mm i nalimea de 180 mm. Se observ c dimensiunile pieselor sunt mult mai mari fa de ediiile anterioare.
5

MATEI ENE

Fig. 6. Piesele de joc

Piesele sunt prevzute cu magnei i se pot construi turnuri stivuindu-le. Un turn valid este format dintr-unul sau doi pioni i un rege sau o regin n vrf. Valorea crete proporional cu nlimea i este mai mare dect suma valorilor individuale ale pieselor. Totui, regulamentul interzice roboilor s construiasc atunci cnd se afl n zona verde. O ultim modalitate de a ctiga puncte este prin realizarea aa-numitei funny configuration. Aceasta presupune ca, la finalul rundei, robotul s duc un pion n baza proprie pe care s se urce, astfel nct nici o component a sa s nu ating masa. Punctele se numr doar la sfritul rundei. Dup expirarea celor 90 de secunde, se scad eventualele penalizri pentru nclcarea regulilor i ctig echipa cu scorul cel mai mare. La acest punctaj se adaug bonusul pentru victorie/egal/nfrngere i totalul se trece n clasament. Regulamentul menioneaz c n cazul n care ambele echipe obin scorul 0 (sau negativ), situaia nu este una de egalitate ci o dubl nfrngere (ambele echipe primesc bonusul de nfrni). Punctajele sunt date n urmtorul tabel: Pies / Aciune Pion Regin Rege Turn de 2 piese Turn de 3 piese Ptrat bonus Funny configuration Victorie Egal nfrngere Valoare 10p 20p 30p 2 x valoarea piesei din vrf 3 x valoarea piesei din vrf 30p 50p 40p 20p pentru fiecare echip 10p

Tabel 1. Punctajele acordate roboilor

Robot autonom pentru competiia Eurobot 2011

1.2.

Sistemul de balize

ntr-un joc de strategie, poziia pe mas a robotului propriu i a adversarului sunt informaii eseniale. Pentru aceasta, echipele pot opta s foloseasc un sistem de balize. Pe marginea mesei sunt prevzui cte 3 supori pe care se pot instala balize fixe: 2 dintre acetia se afl n colurile limii adiacente bazei proprii, iar cellalt n mijlocul laturii opuse (fig. 7). Suporii sunt nite platforme acoperite cu velcro, aflate la nlimea de 350 mm fa de mas. Balizele fixe pot s conin orice fel de senzori, cu urmtoarele condiii:

Fig. 7. Poziiile suporilor pentru balizele fixe

s se ncadreze ntr-un paralelipiped de 80 mm x 80 mm x 160 mm. s aib surs proprie de energie (deci nu se pot alimenta de la priz). s nu fie conectate prin fire la robot. Totui, este permis un fir de legtur ntre ele (de exemplu, pentru sinconizare sau alimentare). s aib baza acoperit cu velcro, pentru fixare (partea complementar celei de pe supori) s respecte condiiile de siguran (pentru participani, roboi i integritatea mesei). Pe lng aceste balize fixe, se pot folosi i 2 balize mobile: una pe robotul propriu i una pe adversar. Acestea trebuie s se ncadreze ntr-un cub cu latura de 80 mm i trebuiesc montate la nlimea de 350 mm, respectiv 430 mm (practic, peste baliza proprie a adversarului). Aa cum rezult i din fig. 8, aceste poziii i faptul c balizele fixe sunt de dou ori mai nalte dect cele mobile prmit comunicaii simultane fr obstacole. Chiar i n cazul nefericit, n care poziia adversarului este pe direcia uneia dintre balizele de pe margine, calea este liber ctre celelalte dou.

Fig. 8. Poziiile balizelor mobile 7

MATEI ENE

Indiferent dac o echip folosete sau nu balize, dac adversarii solicit, trebuie ca robotul s aib disponibil o suprafa acoperit cu velcro la nlimea de 430 mm fa de suprafaa de joc. n caz contrar, runda nu se va juca ci se va considera victorie pentru echipa advers. Cteva exemple de sisteme de balize pe care am avut ocazia s le observ la ediiile din anii precedeni se bazau pe: msurarea distanei prin diferena de vitez n transmisia a 2 semnale, de exemplu ntre sunet i lumin (unde infraroii i ultrasonice) un emitor de semnal, plasat pe robot, care se rotete cu vitez constant. Receptorii din balizele de pe margine calculeaz distana, msurnd timpul scurs ntre 2 recepii. prelucrare video

Totui, majoritatea echipelor nu folosesc balize, bazndu-se exclusiv pe metode de localizare relativ (de exemplu encoderele incrementale montate pe axele motoarelor de micare).

1.3.

Proba de omologare

Pentru ca robotul s poat lua parte la concursul propriu-zis, trebuie mai nti s treac o prob de omologare. Aici se verific dac echipa a respectat toate prevederile din regulament, mai exact: a) Robotul trebuie s fie echipat cu un buton rou de urgen, care, la apsare, s ntrerup complet alimentarea. b) Robotul trebuie s se ncadreze n limitele de dimensiune prevzute n regulament. La pornire, perimetrul su convex nu trebuie s depeasc 1200 mm, iar n timpul competiiei, 1400 mm (fig. 9). Verificarea se face nfurndu-l cu o sfoar sau folie marcat.

Fig. 9. Constrngerile de dimensiune ale roboilor

Robot autonom pentru competiia Eurobot 2011

Deasemenea, nlimea sa trebuie s fie de maxim 350 mm (fig. 8). Doar butonul rou i baliza proprie, respectiv platforma rezervat balizei adversarului, pot depi aceast limit. Anul acesta a aprut o nou precizare legat de transparena robotului, pentru a se evita situaia n care adversarul nu-i poate detecta prezena. Mai exact, se recomand ca proiecia robotului s aib o lime de cel puin 180 mm (fig. 8), indiferent de unghiul de observare i s fie suficient de opac (cu alte cuvinte s nu aib caviti pronunate). c) Tot pentru a evita confuzia, nu este permis ca robotul s fie vopsit n culori care apar pe masa de joc sau pe piese. Excepie face culoarea negru, n care sunt vopsite marginile mesei, acestea fiind, oricum, obstacole ce trebuiesc evitate. d) Pornirea, la nceputul rundei de concurs, se face prin tragerea unei sfori, fr ca vreun membru al echipei s ating robotul. Acest lucru se ntmpl pentru a evita tentativele de a tria, deoarece n acest moment s-a stabilit configuraia mesei. e) Robotul trebuie s se opreasc singur la expirarea celor 90 de secunde ale rundei. f) O condiie esenial de participare este implementarea unui sistem de evitare a obstacolelor, pentru a proteja adversarul. Verificarea se face folosind o machet din lemn, care este pus n drumul robotului. Aceasta va avea prevzut suportul pentru baliz, dac echipa solicit acest lucru.

g) A doua condiie de participare este competitivitatea. Robotul trebuie s fie capabil s nscrie minim 1 punct jucnd singur pe mas. h) Dac robotul folosete un sistem de balize, trebuie demonstrat utilitatea acestuia pentru a se evita tentativele de fraud (de exemplu: baliza pentru adversar are greutate excesiv sau bruiaz semnale). i) Robotul nu trebuie s fac aciuni care distrug masa, care pun n pericol participanii sau adversarul i nu trebuie s se dezmembreze n timpul rundelor. Sursele de energie nu trebuie s fie periculoase sau de natur biologic. Nu se permit tensiuni mai mari de 48 V, dect n dispozitive comerciale, certificate i nemodificate. Folosirea laserelor i a acumulatorilor de tip Litiu-Polimer au meniuni speciale n regulament [3]. Competiia are o pronunat latur educativ, participanii fiind ncurajai s comunice i s schimbe idei. De aceea, fiecare echip trebuie s ntocmeasc un poster tehnic i un film de prezentare, n care s descrie robotul i etapele de planificare i dezvoltare care au fost parcurse.

j)

n cazul n care, robotul sufer modificri n timpul concursului, sau arbitrii constat neregulariti (de exemplu: sistemul de evitare a adversarului nu funcioneaz corect), este necesar o nou prob de omologare. Condiiile probei ar trebui ndeplinite fr probleme de orice robot competitiv. Totui, la ediiile precedente, n medie un sfert dintre participani nu au trecut cu succes de aceasta.

MATEI ENE

1.4.

Soluiile concurenilor

n continuare, voi prezenta cteva dintre soluiile echipelor care au participat la ediia de anul acesta a competiiei Eurobot. Fiecare robot se difereniaz de ceilali prin concept, construcie sau software, de aceea am ncercat s fac o clasificare dup sistemul folosit pentru manipularea pieselor. Dimensiunile acestora sunt comparabile cu cele ale roboilor i au limitat posibilitile la doar cteva, multe echipe abordnd soluii asemntoare. Totui, dup cum vom vedea, au fost i idei unice. 1) O ghear frontal cu sistem de ridicare Exclusiv sau n combinaie cu alte sisteme, majoritatea roboilor au fost echipai cu gheare pentru manipularea pieselor. Cele dou brae ale ghearei sunt, de cele mai multe ori, controlate prin servomotoare. Pentru construcia turnurilor, echipele au prevzut un sistem asemntor unui lift, care fie ridic gheara, fie acioneaz independent de aceasta. La etapa naional a Eurobot, am avut ocazia s studiez robotul echipei EA BEARS [4], din Sibiu. Pentru prinderea piesei, acesta folosete o ghear acionat de 2 servomotoare, iar, pentru ridicare, fiecare bra este prins pe un urub vertical, rotit cu ajutorul unui motor de curent continuu. Robotul proiecteaz fascicule laser asupra obiectelor din jur pentru a calcula distanele fa de acestea. Ali doi roboi, aparinnd echipelor Gambit i Scholars Mate [5] din Elveia, au adus o modificare interesant strategiei cu o ghear frontal. Acetia dispun de un compartiment n spatele ghearei, unde se pot stoca pioni sau turnuri parial construite, pentru a le finaliza mai trziu. 2) Dou gheare independente Echipa Coffee Machine, din Frana, a fost printre primele care a publicat filmri cu robotul lor [6], n iarna anului trecut. Cu aceast ocazie, conceptul cu 2 gheare independente, una n faa i celalt n spatele robotului, a ctigat popularitate. Pe lng capacitatea crescut de stocare a pieselor, un alt avantaj const n exploatarea poziiei ptratelor bonus din centrul mesei. Robotul, ncrcat cu 2 turnuri, se plaseaz n ptratul advers dintre zonele bonus i mpinge rapid turnurile pe acestea. Campionii europeni din ultimii ani, echipa RCVA, din Frana, a construit tot un robot cu dou gheare [7]. ns acestea nu sunt simetrice: celei din spate i lipsete mecanismul de ridicare, fiind folosit doar pentru a ine turnurile construite de gheara din fa. 3) Magnei i pompe de vacuum Cu toate c regulamentul nu garanteaz c este ntotdeauna posibil, unele echipe s-au folosit de magneii ncorporai n piese pentru a le manipula. Altele, au folosit ventuze i pompe de vacuum pentru a-i lipi piesele de brae. Echipa belgian OS Inraci are un robot scund, de tip portal [8]. Spaiul dintre cele dou roi de micare este deschis, permind pionilor s treac dintr-o parte n alta. Acetia sunt analizai i dac nu sunt plasai pe ptratul corect, sunt agai cu ajutorul unor magnei retractabili. Datorit greutii i lipsei magneilor pe partea de sus, regii i reginele sunt abordai cu ajutorul unei perechi de ventuze cu pompe de vid. Robotul nu are prevzut sistem de ridicare, echipa propunndu-i doar s ocupe cu piese ct mai multe ptrate de pe tabla de ah.

10

Robot autonom pentru competiia Eurobot 2011

4)

Idei inedite

Echipa UNICT, din Italia, a construit un robot [9] care dispune de toate elementele prezentate mai sus. n fa are o ghear cu sistem de ridicare pentru regi i regine, pe laterale sunt nu mai puin de 4 brae retractabile cu magnei pentru prinderea pionilor, iar n spate e prevzut o ventuz cu pomp de vacuum pentru piesele din zona verde. Toate acestea fac ca robotul s dispun de o capacitate impresionant de stocare a pieselor, iar construcia turnurilor se ntmpl rapid, la faa locului. O alt idee original vine din partea echipei elveiene CRH. Pentru prinderea pieselor, ei au venit cu un mecanism inspirat din natur. L-au denumit sistemul cameleon [10] i este constituit dintr-un bra metalic retractabil, plasat n faa robotului. ntr-adevr rapiditatea micrii sale amintete de stilul de vntoare al unui cameleon. Pionii sunt stivuii n interiorul robotului, iar regii sau reginele, se opresc pe masca frontal, care se mic pe vertical. De departe, cei mai excentrici roboi au fost multipozii echipelor Team 1000, respectiv XD, din Frana. Design-ul celor de la XD [11] amintete de romanul Rzboiul lumilor, de H.G. Wells. Cele 4 picioare articulate cu servomotoare se deplaseaz printre piesele de pe mas cu ajutorul roilor siliconice de pe tlpi. Sub corpul robotului se gsete un sprijin cu care se poate aeza pe pioni. Strategia echipei este realizarea funny configuration, numrndu-se printre puinele care reuesc acest lucru. Ideea original le-a adus premiul de creativitate la cupa Franei, iar comitetul naional le-a acordat ansa de a reprezenta ara la etapa european de la Astrakhan, Rusia. n aceast trecere n revist, am amintit doar o mic parte dintre soluiile echipelor participante. Chiar dac tema concursului a fost destul de restrictiv, ideile inedite nu au fost mpiedicate s apar. Pe lng caracteriul educativ, finalele naionale i cea european au i o latur de divertisment, fiind menite s atrag publicul larg ctre domeniul roboticii. Acestea se bucur de apariii n pres i de emisiuni de televiziune dedicate. Mai mult, echipele cu tradiie au cluburi de fani i susintori, care-i nsoesc la concursuri.

Capitolul 2

Prezentarea soluiei
Spre deosebire de ultimele 4 ediii ale concursului, anul acesta nu mai exist garania c punctajul acumulat pe parcursul rundei se va pstra pn la final. O strategie fix, dar bine pus la punct, s-ar putea s nu mai fie suficient pentru obinerea unuia dintre primele 3 locuri pe ar i calificarea la faza european. Mai mult, dimensiunile neobinuit de mari ale pieselor au transformat ntr-o adevrat provocare simpla ncadrare n limitele de gabarit prevzute de regulament. n timpul primelor edine de planificare, am stabilit urmtoarea list de condiii pentru proiectarea robotului: 1) Structur modular, cu posibilitate de nlocuire i adugare de componente. Indiferent ct de bun este ideea care a stat la baza design-ului, aceasta devine inutil, dac robotul nu reuete s treac de proba de omologare. Pornind de la aceast premis, am decis s proiectez o structur care suport adugarea de module, pe parcurs. Cu alte cuvinte, odat ce am
11

MATEI ENE

obinut un nucleu care ndeplinete cerinele minimale, i se vor putea aduga funcionaliti pentru mrirea competitivitii, n limita timpului rmas. O alt lecie pe care am nvat-o din experienele precedente este necesitatea componentelor de rezerv. La etapa european din anul trecut, ni s-a defectat una din plcile electronice eseniale, chiar n noaptea dinaintea primei etape de calificri. Timpul de remediere necesar ne-a costat puncte preioase, deoarece am intrat n concurs abia n a treia rund. Robotul de anul acesta trebuie s permit accesul uor la toate componentele pentru o nlocuire rapid. 2) Surse redundante de date. n timpul multor meciuri, roboii se blocheaz sau iau deciziile greite datorit unor valori eronate de la senzori. Cel mai grav este cnd aceste erori intervin la sistemele vitale: de poziionare pe mas i de detecie a adversarului. Existena mai multor surse de informaie pentru acelai eveniment, mpreun cu o ierarhie de credibilitate a acestora, poate preveni multe dintre situaiile neprevzute. 3) Sistem de manipulare a pieselor simplu i uor de controlat. Micrile complexe implic existena multor motoare, care trebuiesc sincronizate cu precizie. Un sistem simplu de manipulare a pieseleor este mai robust i mai rapid de dezvoltat. Mai mult, componentele pe care le am la dispoziie sunt din clasa hobby, iar acumularea erorilor poate produce rezultate nedorite, chiar i dup cteva zeci de secunde de funcionare. 4) Sistem de poziionare pe mas tolerant la erorile de deplasare. Deplasarea robotului de-al ungul unei linii drepte sau rotaia sa la unghiuri precise sunt rezultate eseniale, dar greu de obinut. Chiar dac se reuete sincronizarea motoarelor pe baza unui algoritm de control, intervenia factorilor precum construcia roilor sau distribuia greutii vor destabiliza sistemul. Metodele de poziionare relativ au dezavantajul acumulrii nemrginite a erorilor cu trecerea timpului, de aceea m-am decis s ncerc realizarea unui sistem de poziionare absolut, bazat pe balize. 5) Sistem de evitare a adversarului att pentru micrile nainte ct i napoi Dup plasarea unei piese pe un ptrat, robotul este de cele mai multe ori nevoit s se deplaseze cu spatele. Mai mult, pentru a oferi siguran, un sistem de evitare trebuie s in cont c adversarul nu se afl ntotdeauna perfect n faa sau n spatele robotului propriu. Trebuie luate n considerare i poziiile pe diagonal (n codificarea cu puncte cardinale: NE, NW, SE, SW), sau sub un anumit unghi intermediar. 6) ncadrarea ntr-un buget restrns, provenit din surse proprii Aceasta este partea mai trist a listei de condiii. Pentru a avea un robot competitiv, majoritatea echipelor apeleaz la componente i tehnologii de prelucrare care cresc gradul de precizie. Bugetul pe care acetia l au la dispoziie se ridic la mii sau zeci de mii de euro. Totui, lipsa acestor beneficii i a mijloacelor materiale necesare face cu att mai motivant provocarea. Cutarea de soluii la ndemn pentru diversele probleme care apar n construcia roboilor au fcut din participrile la concurs din ultimii 3 ani, adevrate experiene educative.

12

Robot autonom pentru competiia Eurobot 2011

2.1.

Etapele dezvoltrii soluiei

Proiectarea robotului a fost un proces iterativ, cu o durat mai lung dect construcia efectiv. Am studiat, pe rnd, mai multe variante, diferenele dintre ele fiind modul de abordare a pieselor de joc sau soluionarea unor deficiene descoperite. Tabelul 2 reprezint un sumar al etapelor parcurse n cele aproximativ 6 luni de lucru: Dat 1 15 15 22 22 30 1 20 20 Dec 8 8 28 1 15 15 30 1 7 7 14 14 21 21 Apr. 4 4 11 11 18 18 31 1 7 8 15 15 30 Etap Studiu reguli. Idei. Proiectare varianta 1. Analiz deficiene. Proiectare varianta 2. Confecionare piese. Vopsire mas de joc. Srbtori de iarn. Sesiune de examene. Prototip varianta 2. Teste de micare. Analiz deficiene. Proiectare varianta 3. Construirea ghearei. Sistemul de ridicare a ghearei. Construirea carcasei. Asamblare componente. Construire i montare senzori. Computer vision: detecie adversar, simulare sistem balize. Software. Teste. Competiii. Asamblare robot folosit pe post de adversar. Software. Teste. Pregtire proiect de diplom.
Tabel 2. Calendarul etapelor de dezvoltare a robotului.

Noi Noi Noi Dec Feb Feb Mar Mar Apr Apr Apr Mai Mai Mai Mai Iun Iun Iun

La prima vedere, s-ar putea spune c timpul acordat proiectrii primelor dou versiuni i a prototipului a fost irosit. Fr aceste etape, ns, n-a fi putut ajunge la o varianta final care s funcioneze. n cutrea soluiilor pentru diverse probleme, am contactat diverse companii i organizaii pentru sprijin material sau profesional: Microsoft. Noul lor dispozitiv periferic pentru consola Xbox 360, Kinect, ar fi fost util n testele de detecie a adversarului i de cartografiere a mesei [12]. PandaBoard. Este o plac de dezvoltare cu procesor ARM dual-core, 1 GB de RAM i multe interfee de comunicaie (USB, I2C, Serial, Ethernet, VGA, etc) [13]. Datorit puterii de procesare i dimensiunilor mici, ar fi fost nlocuitorul ideal pentru netbook-ul pe care l-am ncorporat n robot. TURCK Industrial Automation. Mi-au oferit sprijin prin consultri i mprumutul unor senzori de calitate industrial: un encoder incremental i 2 senzori fotoelectrici cu mod TEACH [14]. n continuare, voi descrie cele 3 versiuni ale robotului pe care le-am proiectat, urmnd ca n subcapitolele urmtoare s fie detaliate toate subsistemele variantei finale.
13

MATEI ENE

a) Prima variant
Pentru construirea turnurilor robotul are nevoie de o modalitate de a prinde piesele i de a le ridica. Prima idee pe care am studiat-o (fig. 10) este inspirat dup structura robotului cu care am participat la ediia de anul trecut. Cele 2 brae mobile dirijeaz piesele ctre o platform. Aceasta se poate ridica cu ajutorul unui mecanism cu 4 scripei: 2 sunt prini pe extremitile sale laterale, iar ceilali 2 pe tavanul robotului (fig. 11). Prin aceti scripei circul un cablu cu un capt fixat de carcas, iar cellat prins pe un mosor. Rotaia unui motor de curent continuu determin nfurarea sau desfurarea cablului, imprimnd micarea dorit. Pentru a menine platforma paralel cu masa, pe lateralele ei sunt montate dou cursoare care gliseaz prin ghidajele verticale. Raportul de transmisie al sistemului de ridcare este de 4:1. Deplasarea pe mas se face cu ajutorul celor dou roi din spate. Bilele omnidirecionale din fa asigur puncte de sprijin, fr a influena micarea. Se poate opta i pentru montarea roilor la mijlocul robotului, dar n acest caz este necesar montarea a nc 2 bile i n partea din spate. n plus, condiia de coplanaritate pentru cele 6 puncte de sprijin este dificil de satisfcut.

Fig. 10. Prima variant a robotului

Fig. 11. Detaliu mecanism prima variant

Din discuii i simularea micrilor pe modelul 3D, am identificat urmtoarele dezavantaje: Greutatea ncrcturii (200 1500 g) se exercit asupra prii din fa a robotului (mai exact, asupra bilelor de sprijin). Acest lucru produce modificarea centrului de greutate al ntregului sistem i pierderea din aderena roilor, conducnd la dereglri n deplasarea pe mas. Cursorul care circul pe una din glisiere se poate bloca, ducnd la destabilizarea sau chiar rsturnarea turnului ncrcat. Efecte similare punctului precedent pot aprea i la micri brute ale robotului. Lungimea i micarea braelor sunt limitate de constrngerile de perimetru
14

Robot autonom pentru competiia Eurobot 2011

b) A doua variant
A doua variant reprezint o abordare total diferit fa de prima. Este vorba despre un robot portal, prevzut cu dou perechi de ui rotative [12], care va ncerca s mute ct mai multe piese pe ptratele proprii. Piesa int va ptrunde n incint, dirijat de plugul format prin deschiderea uilor n form de V. Prin nchiderea uilor se creeaz un spaiu controlat, n care piesa captiv i zona mesei pot fi analizate cu precizie, fr perturbaii cauzate de factorii externi (iluminare, zgomote, etc). Eliberarea se face prin simpla deschidere a uilor, robotul putnd s plece mai departe n direcia dorit. Pentru a respecta regula de transparen, ct i constrngerile de gabarit, nu se vor deschide niciodat concomitent ambele perechi de ui. Sistemul necesit utilizarea a 4 servomotoare, cte unul pentru fiecare u. O alternativ simplificatoare pe care am avut-o n vedere este nlocuirea acestora cu 2 jaluzele orizontale cu tambur, controlate de motoare. Toate componentele electronice sunt montate n cele dou picioare laterale, iar legtura ntre ele se poate face prin cabluri prinse de tavan, n interior. Chiar dac proiectul nu include nici un mecanism de stivuire, acesta se poate aduga ulterior n spaiul destinat pieselor (v. condiia 1 din lista de la nceputul capitolului). nc de la nceput am avut temeri legate de stabilitatea robotului, avnd n vedere lipsa pereilor din fa i din spate. Totui, simplitatea i elegana soluiei m-au determinat s construiesc un prototip din placaj (fig. 13).

Fig. 12. A doua variant a robotului

Fig. 13. Prototipul realizat pentru varianta 2

Primele teste de micare au confirmat temerile iniiale. Rotaiile robotului, chiar i fr ncrctur, fceau ca distana dintre roi s varieze sub aciunea forei centrifuge cu efecte vizibile i dificil de compensat din software. Din nefericire, nlimea maxim a turnului, foarte apropiat de cea a robotului (330 mm fa de 350 mm), nu permite ranforsarea structurii. Deficienele importante m-au determinat s renun i la aceast idee, ns nu complet. Dup cum vom vedea n continuare, varianta final a robotului va mprumuta din concluziile i prile bune ale acestor dou ncercri.
15

MATEI ENE

c) Varianta final
Design-ul care a fost pus n practic (fig 14 i 15), aduce mecanismul primei variante n carcasa celei de-a doua. Desigur, ambele concepte au suferit modificri: Carcasa Am renunat la cele dou plane nclinate ale acoperiului, optnd pentru un paralelogram cu dimensiunile foarte apropiate de limitele din reguli. Pentru rigidizare a fost mecesar adugarea peretelui din spate i a celui de jos. Am desfiinat pereii interiori pentru un acces uor la componente. N-a mai fost nevoie de ui, dar ideea plugului mi s-a prut util, de accea am construit pereii frontali n form de V. Mecanismul Cele dou brae folosite pentru prinderea pieselor trebuie s execute micri simetrice. Pentru un control mai uor, am decis articularea lor la mijloc. Deasemenea, sistemul de ridicare pe baz de scripei a fost nlocuit cu un urub vertical. Toate acestea au adus mbuntiri structurii mecanismului, fr a sacrifica independena celor dou micri (pe orizontal i vertical). Deficiena cea mai mare a primei variante era instabilitatea provocat de greutatea suplimentar a pieselor crate. De data aceasta, mecanismul este montat pe peretele din spate, astfel nct sarcina s se descarce integral asupra roilor, sporind aderena robotului pe mas.

Fig. 14. Modelul 3D al variantei finale

Fig. 15. Varianta final a robotului

Funcionarea mecanismului este descris n subcapitolul urmtor, iar structura detaliat a acestuia i a carcasei, n capitolul 3.

16

Robot autonom pentru competiia Eurobot 2011

2.2.

Mecanismul de manipulare a pieselor

Manipularea pieselor se face cu ajutorul unei gheare frontale cu braele articulate la mijloc. Fiecare bra este prins pe o piuli cilindric, montat pe filetul unui urub orizontal (fig. 16). Pentru a obine micarea dorit, urubul are filet n sens anti-orar pe jumtatea dreapt i filet n sens orar pe jumtatea stng (fig. 16 medalion). Aadar, rotaia motorul de curent continuu care antreneaz urubul, va determina apropierea sau deprtarea piulielor (n funcie de sensul de rotaie). Se observ c micarea braelor este opus micrii piulielor (foarfec ntoars). n aceast soluie constructiv, se obine o vitez dubl de apropiere, respectiv deprtare, a braelor, dearece ambele piulie particip la micare. Exist un raport favorabil, de multiplicare, ntre lungimea braului dintre articulaia median i axul piuliei, respectiv din articulaia median i centrul concavitii ghearei. Motorul este prevzut cu encoder incremental (un senzor Hall montat pe ax) cu 360 impulsuri/rotaie complet (1 implus/grad). Chiar dac acesta ofer precizie suficient pentru determinarea capeteleor de curs, pentru siguran, am prevzut i nite microntreruptoare (v. punctul 2 din lista de condiii de la nceputul capitolului). Unul dintre butoane este montat pe exteriorul ghearei, n partea stng (privit din faa robotului), i limiteaz micarea la atingerea poziiei de extindere maxim. Alte dou butoane sunt montate pe interiorul ghearei, n apropierea vrfului (unul pe stnga i cellalt pe dreapta; fig 18.D). Acestea se apas la contactul cu piesa, semnalnd atingerea poziiei de apropiere maxim a braelor.

Fig. 16. Mecanismul de strngere a ghearei (medalion: detaliu urub orizontal) 17

MATEI ENE

urubul are filetul cu pasul de 0,5 mm (distana dintre dou spire), dar faptul c piuliele se mic simultan determin o vitez de apropiere/deprtare 1 mm/rotaie. Motorul EMG30 [15] are o turaie maxim de 200 RPM, deci cursa total a piulielor, de 9 mm (v. capitolul 3), se parcurge n aproximativ 2,5 secunde. Pentru construcia turnurilor, ntreg subansamblul prezentat mai devreme este suspendat pe piulia unui urub vertical, de data aceasta cu acelai filet de la un capt la cellalt (fig. 17). Acesta este rotit de un motor identic cu cel al urubului orizontal, micarea ridicnd sau cobornd gheara. Am prevzut butaone i pentru detectarea capetelor de curs ale acestei micri, pentru a avea o surs de date suplimentar celei oferite de encoder. Butonul pentru ridicare este montat pe suportul motorului vertical i este apsat de ctre jugul montajului de pe piuli (desenat cu alb n medalionul fig. 17). Cellalt buton, care determin captul de curs la coborre, este fixat pe peretele exterior al casetei urubului orizontal i este apsat prin contactul cu carcasa.

Fig. 17. Mecanismul de ridicare a ghearei (medalion: detaliu montaj urub vertical)

urubul vertical are pasul de 1,5 mm, iar cursa piuliei este de 60 mm (am lsat o marj de 10 mm peste nlimea unui pion). Avnd n vedere turaia motorului, de 200 RPM, o micare complet pe vertical dureaz aproximativ 12 secunde. Pe lng micarea de ridicare, pentru construcie, robotul mai are nevoie de urmtoarele informaii:

18

Robot autonom pentru competiia Eurobot 2011

Dac piesa a intrat complet n interiorul robotului n acest scop, am montat cte un buton n apropierea articulaiei, pe fiecare bra al ghearei (fig. 18.A). Cnd piesa apas mcar unul dintre aceste butoane, nseamn c a ajuns ntr-o poziie n care poate fi prins corect, fr riscul de a o scpa. Ce tip de pies se afl n ghear Pentru a obine aceast informaie, am profitat de faptul c regii i reginele au cod de bare pe suprafaa lateral. Nu prezint interes s distingem ntre cele dou piese importante, de aceea am folosit un senzor de culoare (fig. 18.B) cu care determin dac piesa are laterala galben sau nu. Dac a intrat sau nu un pion sub piesele ridicate Am montat un senzor SHARP [16] pe peretele interior din dreapta carcasei (fig. 18.C). Acesta folosete raze infraroii pentru a calcula distana fa de obiectele din fa. n aplicaia mea este folosit pe post de senzor de prezen, asemntor razelor laser din sistemele de securitate bancar.

Fig. 18. Senzorii de pe ghear: A. Butoane prezen pies n interiorul robotului, B. Sezor culoare, C. Senzor prezen pion, cnd ghear este ridicat, D. Palpator dreapta nchidere ghear

2.3.

Sistemul de poziionare pe mas

Majoritatea echipelor participante la Eurobot se bazeaz pe odometrie (cu ajutorul encoderelor incrementale) pentru a calcula poziia robotului pe mas. Cu alte cuvinte, locaia curent se determin cunoscnd-o pe cea anterioar i deplasamentul fiecrei roi. Aceast metod are dezavantajul c erorile se cumuleaz fr limit superioar, cu trecerea timpului. Motoarele cu encoder, EMG30 [15], pe care leam folosit la deplasarea robotului de anul trecut, nu ncap n spaiul rmas n jurul ghearei. Aadar am fost nevoit s apelez la colegii din ED303, care mi-au mprumutat o pereche de motoare GHM-16, fr encoder, de pe rover-ul lor de la Lynxmotion.
19

Fig. 19. Vedere de sus a colului din dreapta spate interior

MATEI ENE

Chiar i aa, a fost nevoie s ajustez puin exteriorul braelor (fig. 19) pentru ca totul s aib loc. Datorit acestor condiionri, a trebuit s caut alte metode pentru sistemul de poziionare. O prim idee a fost folosirea senzorului din mouse-ul optic pentru a calcula deplasarea robotului. Avantajele pe care le-am identificat la aceast abordare au fost: Independena fa de motoare. Dac roata derapeaz, micarea motorului nu se transform integral n deplasare a robotului. n aceast situaie, un encoder montat pe axul motor va nregistra greit citiri. Mouse-ul urmrete podeaua, deci este imun la aceste erori. Hardware-ul este deja fcut, singurul efort fiind de programare Din pcate, aa cum au artat i testele, precizia mouse-ului este insuficient pentru aceast aplicaie. ntr-adevr, micarea cursorului pe ecran este un proces n bucl nchis, utilizatorul fiind cel care face reglajul. Mai mult, micrile cursorului sunt influenate de un factor de acceleraie, iar ncercrile mele de a dezactiva complet acest comportament au euat. n timpul cutrilor, am gsit un articol [18] care prezint o metod de odometrie apropiat de principiul mouse-ului optic. Autorii au folosit o camer ndreptat spre podea pentru a calcula deplasarea robotului. Cutnd un loc unde se poate pune camera, am avut o alt idee: s montez senzori de culoare pe fundul carcasei. Prin informaiile de la acetia, pot reconstitui o imagine aproximativ a zonei de pe masa de joc pe care se afl robotul la un moment dat. Masa de joc de la concursul de anul acesta favorizeaz aceast abordare, culorile albastru i rou alternnd pe tabla de ah. Ptratele de pe mas au dimensiunile apropiate de cele ale robotului (latura de 350 mm, iar carcasa are proiecia un dreptunghi de 280 mm x 320 mm), astfel nct ghidarea dup marginile acestora nu produce erori prea mari. Un raionament simplu arat c 4 senzori, fiecare montat n unul din coluri, nu sunt suficieni pentru a acoperi toate cazurile. De exemplu, n situaia din fig. 20 robotul va considera c se afl pe un ptrat albastru, ns plasarea pieselor pe acest zon nu-i va aduce nici un punct. Pentru siguran, am montat n total 7 senzori: 4 n coluri i 3 pe mijlocul laturilor disponibile (fig. 21).

Fig. 20. Ambiguitate cu 4 senzori de culoare

Fig. 21. Poziiile senzorilor de culoare de pe fundul carcasei

20

Robot autonom pentru competiia Eurobot 2011

Tema de anul acesta confer o importan deosebit poziiei adversarului. Pe lng obligaia de a-l evita dac se afl pe direcia de deplasare a robotului, de data aceasta trebuie monitorizat tot timpul fiindc de aciunile sale depinde punctajul propriu. n acest scop, am gndit un sistem de balize care s ofere informaii despre configuraia mesei: att poziiile roboilor ct i ale pieselor. Este vorba de montarea unor camere video n cele 3 poziii prevzute pe extremitile mesei. Acestea vor identifica obiectele i le vor calcula poziiile prin triangulaie. Piesele pot fi recunoscute dup culoarea galben, deoarece regulamentul garanteaz c roboii nu vor fi vopsii cu aceast nuan. Pentru identificarea roboilor, o prim idee care mi-a venit a fost desenarea unor markere vizuale pe balizele mobile. Totui, cu ajutorul informaiilor de la senzorii de culoare, putem determina zona n care se afl robotul propriu, poziia adversarului rezultnd prin excludere. Sistemul de balize fixe are nevoie de performane sporite de procesare i de o modalitate de a transmite datele robotului. Rspunsul acestor cerine a fost folosirea a 3 smartphone-uri care vor efectua prelucrarea imaginilor utiliznd biblioteca OpenCV [19] [20] i vor comunica ntre ele i cu netbook-ul din robot printr-o reea wireless. Suporii pentru smartphone-uri, redai n fig. 22, trebuie s ofere posibilitatea reglrii nclinrii pentru a calibra sistemul nainte de concurs . Aceast operaie se poate face prin slbirea piuliei fluture de la baz (vizibil la suportul din dreapta din fig. 22) i strngerea la loc dup ce s-a obinut poziia dorit (asemntor unei lmpi de birou).

Fig. 22. Suporii construii petru smartphone-urile folosite pe post de balize fixe

Imaginile de la camere sunt influenate de condiiile de iluminare ale mesei. Pentru a nelege i a testa algoritmii de triangulaie video, am folosit imagini simulate. n acest scop, am modelat masa de joc i camerele n Blender [21]. O descriere detaliat a metodei i a rezultatelor obinute se gsete n capitolul 4.
21

MATEI ENE

2.4.

Sistemul de evitare a adversarului

Informaiile de la sistemului de balize fixe fac inutil existena unui sistem dedicat poziiei adversarului. Totui, complexitatea sa i faptul c nu am putut mprumuta cele 3 smartphone-uri numai pentru perioada competiiei, m-au determinat s caut i soluii alternative (v. punctul 2 din lista de condiii de la nceputul capitolului). Alternativa pe care am proiectat-o se bazeaz tot pe prelucrare de imagine. Mai exact, o camer montat pe acoperiul robotului va identifica baliza de pe adversar (fig. 23) i-i va estima distana. Am ales s colorez aceast baliz complet n roz deoarece nuana nu se gsete nicieri pe mas i nu este frecvent ntlnit pe tavanele ncperilor. n cazul n care mediul unde se desfoar concursul nu este favorabil , aveam pregtite i alte culori (cyan). i implementarea acestui sistem a avut mai multe iteraii:

Fig. 23. Baliza de pe adversar

a) Prima variant a fost fcut n criz de timp (v. calendarul etapelor de la nceputul capitolului) i este o camer ndreptat pe direcia nainte a robotului (fig. 24). Identificarea balizei se face prin filtrarea obiectelor dup culoare, alegndu-l pe cel mai mare. Cnd dimensiunea ariei depete o anumit valoare, se consider c adversarul este foarte aproape i trebuie evitat. b) Varianta final a fost proiectat dup concurs. Am modificat sistemul prin folosirea unei oglinzi conice prins pe tavan (fig. 25). nlimea la care se gsete baliza pe adversar este cu 80 mm mai mare dect cea a balizei proprii. Astfel, camera va vedea reflexia acesteia pe marginea oglinzii, indiferent de orientare. Vederea de ansamblu este important pentru micrile cu spatele ale robotului (v. condiia 5 din lista de la nceputul capitolului).

Fig. 24. Prima variant a balizei de evitare a adversarului

Fig. 25. Varianta final a balizei de evitare a adversarului

Tranziia dintre cele dou variante a necesitat doar schimbri hardware, algoritmul de segmentare fiind acelai. N-am mai folosit platforma cu 4 picioare, deoarece montajul a fost fcut dup concurs. Cu mici modificri, acest sistem se poate utiliza i anii urmtori. Pentru detalii de funcionare, algoritm i rezultate se va consulta capitolul 4.
22

Robot autonom pentru competiia Eurobot 2011

2.5.

Strategia

nainte de a discuta strategia, a dori s amintesc faptul c strngerea ghearei dureaz mult mai puin dect ridicarea ei (2,5 fa de 12 secunde). Runda de concurs de doar 90 de secunde nu va permite robotului s execute foarte multe operaii de construcie. Pe mas sunt disponibili doar 2 regi i 2 regine, deci indiferent de performane, nu se pot realiza mai mult de 4 turnuri. Toate aceste condiii contureaz o strategie axat pe ocuparea ct mai multor ptrate cu pioni, iar eventualele operaii de construcie trebuiesc executate concomitent cu deplasarea robotului, pentru a economisi timp. Ptratele bonus trebuiesc ocupate mai nti, ns cu pioni i nu cu turnuri. Importana lor va atrage atenia adversarului, de aceea nu trebuie s i se dea ocazia de a fura construcii valoroase. Ptratul bonus din apropierea zonelor protejate poate oferi siguran sporit, deoarece scoaterea pieselor din col este dificil. Nici zonele protejate nu trebuiesc neglijate, dar ocuparea lor cu altceva dect pioni nu este profitabil. Pe lng preocuprile de a puncta, robotul trebuie s aloce timp patrulrii zonelor importante. Astfel, poate profita de piesele plasate de adversar, n acelai timp asigurndu-se c piesele sale sunt mai greu de furat. Algoritmul de determinare a urmtoarei aciuni nu este complicat. Dac robotul are o viziune de ansamblu asupra mesei (prin utilizarea sistemului de balize fixe), un simplu greedy poate oferi rezultate bune. n caz contrar, trebuie stabilit manual mprirea rundei ntre explorare i exploatare, robotul schimbndu-i comportamentul n funcie de aceast intenie.

2.6.

Caracterul inovativ

Prin comparaie cu soluiile studiate, att la concursul de anul acesta, ct i la ediiile precedente, robotul descris n aceast lucrare aduce urmtoarele elemente de noutate: 1. Sistem de manipulare a pieselor controlat prin doar 2 motoare de curent continuu. 2. Detecia prezenei adversarului n vecintatea robotului se face indiferent de orientare. 3. Conceptul sistemului de balize fixe, cu viziune global asupra configuraiei mesei. Acesta poate fi folosit independent de tema concursului, singurele modificri necesare fiind stabilirea caracteristicilor distincitve dup care pot fi recunoscute diversele elemente 4. Orientarea pe mas n funcie de culorile zonei pe care se afl robotul. Erorile sunt mult mai mici fa de metodele bazate pe encodere. Pentru a profita de avantajele lor, cele dou metode se pot chiar combina. 5. Asigurarea surselor redundate de date pentru evenimentele importante: a) senzorii de culoare i balizele fixe pentru poziia robotului b) encoderele motoarelor i butoanele pentru capetele de curs ale micrilor ghearei c) sistemul cu oglind conic i balizele fixe pentru poziia adversarului 6. Comunicaia pe magistrala I2C efectuat prin intermediul portului VGA al netbook-ului. 7. n fine, ncadrarea ntr-un buget sub 1000 RON. Mai exact, sumele cheltuite au fost: 140 EUR pentru driver-ul Sabertooth 2x5. 150 RON pentru acumulatori aprox. 150 RON pentru celelalte componente electronice
23

MATEI ENE

Capitolul 3

Hardware
Acest capitol analizeaz n detaliu componentele hardware ale robotului. Prima parte este o descriere mecanic, concentrat n special n jurul dispozitivului de manipulare a pieselor. A doua parte analizeaz componentele electronice i modul lor de interconectare. Subiectul central aici este sistemul de senzori.

3.1.

Descrierea mecanic

Construcia robotului a nceput n luna martie, cu gheara i mecanismul su de ridicare. Acestea au determinat apoi forma carcasei i poziiile celorlalte componente. Dintre materialele folosite predomin alama (pentru componentele mobile), aluminiul (componentele care nu sunt supuse la efort) i oelul. Este primul an n care construiesc un robot cu carcas i componente metalice, de aceea ajutorul tatlui meu la prelucrri a fost indispensabil. Execuia a fost precedat de proiectarea componentelor cu programul de modelare 3D, SolidWorks. Acesta are i capabiliti de simulare a micrilor care m-au ajutat la identificarea anumitor probleme nc din faza de design (v. descrierea primei variante a proiectului robotului, din capitolul 2). Sigur c nu am putut proiecta ntregul robot de la nceput; modelul a fost realizat n etape, n paralel cu construcia. n continuare voi descrie subansamblele, n ordinea cronologic a construciei.

3.1.1. Gheara
Gheara este format din dou brae simetrice articulate. n poziia nchis aceasta copiaz forma pieselor, de aceea mi-a fost util s construiesc mai nti o machet din carton (fig. 26). Dup ce am obinut forma dorit, am transpus cu uurin conturul pe foaia de tabl din care urma s fie croit varianta final.

Fig. 26. Macheta din carton a ghearei 24

Robot autonom pentru competiia Eurobot 2011

Cu ajutorul machetei am putut determina i cursa micrii pe care o va efectua gheara. Aa cum rezult din fig. 27, n poziia deschis cele dou piulie sunt apropiate, cu distaa dintre axe de 63 mm, n timp ce n poziia nchis acestea sunt deprtate la 72 mm. Rezult o curs total de 9 mm de-a lungul urubului orizontal. Faptul c piuliele se apropie/deprteaz simultan, njumtete cursa efectiv la 4,5 mm. Cunoscnd pasul urubului, de 0,5 mm, avem nevoie de 9 rotaii pentru extinderea/contracia ghearei.

Fig. 27. Cursa micrii ghearei

Un bra al ghearei are o structur spaial cu dou elemente de form asemntoare unei seceri. Acestea sunt croite din tabl i unite prin distanieri de plastic, de genul celor folosii pentru plcile electronice. Elementul inferior este ndoit n apropierea articulaiei, pentru a ajunge n contact cu solul cnd gheara este compet cobort. n acelai timp, se observ c acesta este mai lat dect cell superior i are marginea interioar ascuit pentru a intra sub pies la strngere. Am urmrit astfel s profit de faptul c piesele au marginile teite (2 mm x 45), pentru a nu risca alunecarea lor din ghear n timpul micrilor. Articulaia este un distanier de alam cu guri filetate la capete, prins de brae cu dou uruburi M6. Tot din alam sunt i piuliele de pe urubul orizontal pe care sunt prinse braele ghearei. Montajul este redat n fig. 28.

Fig. 28. Montajul componentelor ghearei 25

MATEI ENE

Pentru a monta gheara pe urubul orizontal i, mai trziu pe cel vertical, am prevzut o caset de tabl, n form de U. urubul este susinut de dou buce de alam, prinse pe lateralele casetei. Buca din dreapta are rol dublu, deoarece prin intermediul ei se face i ataarea motorului de urub. Axul motorului intr ntr-un canal prevzut n captul urubului i este fixat cu ajutorul unui tift filetat. Caseta are un capac superior prevzut cu canale n care culiseaz bolurile piulielor de micare. Pe partea dinspre peretele din spate al robotului sunt montai doi supori cu bile de rulment ncasetate. Scopul acestor bile este de a preveni frecarea casetei de perete la micrile pe vertical (fig. 29). Acest ntreg subansamblu este suspendat de piulia urubului vertical prin intermediul a dou urechi metalice. Acestea sunt prinse, n partea de jos, de caseta ghearei. n partea de sus se observ o pies din aluminiu n form de jug (de culoare alb n fig. 30), care intermediaz prinderea urechilor de piuli. Jugul are rol de distanier, pentru a mpiedica urechile s loveasc urubul sau suporii acestuia la micrile de ridicare/coborre (fig. 30). n plus, acesta permite ghearei s oscileze pe direcia fa-spate, absorbind eventualele imprefeciuni ale peretelui carcasei. Greutatea pieselor inute n ghear se va opune acestor oscilaii, pstrnd contactul mecanismului cu peretele, pe bile. Astfel am eliminat riscul ca sistemul s se blocheze pe timpul micrii pe vertical, pastrndu-l, n acelai timp, n echilibru. Dac robotul ar avea greutatea distribuit uniform, atunci mecanismul ar putea permite executarea operaiei funny configuration. Pentru asta, sunt necesari 2 pioni suprapui. Dac gheara este strans pe pionul de deasupra, prin coborrea ei, robotul se va ridica de pe mas, sprijinindu-se pe pionul de jos. Manevra este ns riscant i necesit o modalitate de a fixa mecanismul n poziie vertical pe perioada desfurrii sale (v. paragraful anterior).

Fig. 29. Montajul pentru prinderea ghearei pe urubul orizontal

Fig. 30. Montajul pentru prinderea ghearei pe urubul vertical

26

Robot autonom pentru competiia Eurobot 2011

3.1.2. Mecanismul de ridicare


Subansamblul de ridicare este prins de peretele din spate al carcasei prin doi supori/lagre de aluminiu. urubul vertical este montat pe acetia prin dou buce de alam. Pentru a reduce frecrile, urubul pivoteaz n lagrul de jos pe o bil de rulment introdus n buc. Prinderea motorului se face prin buca de sus, ntr-un mod similar urubului orizontal. Dup cum se observ n fig. 31, spre deosebire de buca de jos, care este prins de suport cu o piuli, cea de jos este lsat liber pentru a nu se opune eventualelor oscilaii ale motorului, n timpul micrii. Piulia care circul pe vertical are dou guri M6 pe feele laterale. Acestea corespund gurilor din urechile metalice i piesa n form de jug din fig. 30, i au fost prevzute pentru fixarea ghearei. O curs complet are 60 mm. Cunoscnd pasul urubului, de 1,5 mm, rezult c avem nevoie de 40 de rotaii pentru ridicarea/coborrea ghearei.

3.1.3. Carcasa
Cu excepia tavanului, carcasa este construit dintr-o masc de main de splat Albalux (fig. 32). Pereii laterali sunt confecionai din aceeai foaie, ndoit la abkant. Pereii de jos i sus au fost croii separat i prini cu nituri pop (dup ce tentativa de a-i suda a euat). Peretele de jos a fost decupat dup forma ghearei, pentru a-i permite s ating solul la poziia cobort. Tot aici au fost fcute decupri pentru roi, bilele de sprijin i cei 7 senzori de culoare. Distana dintre sol i fundul robotului este de numai 3 mm, pentru a nu permite luminii ambientale s influeneze senzorii de culoare. Cu toate acestea, testele au artat c nu este suficient, i am fost nevoit s lipesc band de cauciuc pe margine, pentru o izolare i mai bun (fig. 33 jos). Nici tavanul nu a scpat neperforat. A fost nevoie de guri pentru: butonul rou, firul camerei pentru detecia adversarului, aerisirea i cablul de alimentare al netbook-ului (fig. 33 sus). Prinderea componentelor am fcut-o cu uruburi M3. Excepie fac netbook-ul i bateria, pentru care a fost nevoie s construiesc supori speciali, din plastic. Deasemenea, pentru a evita dezordinea, am trecut traseele firelor prin baghete de plastic (cele n care se ambaleaz circuitele integrate) prinse pe pereii carcasei. Am avut cteva bti de cap la montarea senzorului de culoare de pe mijlocul laturii din spate, fiindc se afl sub mecanism. Soluia a fost tragerea firelor pe exteriorul carcasei pn ce depesc zona casetei de susinere a ghearei. Carcasa a fost iniial vopsit alb, ns numeroasele prelucrri i guri de montaj au lsat amprente inestetice. La final, am acoperit-o cu autocolant albastru pentru a-i da un aspect frumos.
Fig. 31. Montajul mecanismului de ridicare 27

MATEI ENE

Fig. 32. Construcia carcasei

Fig. 33. Exteriorul feelor de sus i jos ale carcasei

3.1.4. Blocul motor


Robotul are 4 puncte de contact cu masa: 2 n spate, pe roi, i 2 n fa, pe bile omnidirecionale. Pentru a pstra coplanaritatea, distana dintre suporii bilelor i carcas poate fi ajustat prin numrul de aibe folosite pe post de distanieri. Motoarele sunt prinse de fundul carcasei prin intermediul unor colare metalice (fig. 34). Axele motoarelor ies n exteriorul carcasei prin nite guri date n pereii laterali, pentru a avea garania c rmn aliniate. Nu am avut roi care s se potriveasc cu motoarele, de aceea a trebuit s confecionez o pereche. Acestea au fost executate pe strung i au corpul din plastic, buca de montaj din aluminiu i pe post de pneuri am folosit 2 curele de transmisie, dinate, de cauciuc.

Fig. 34. Blocul motor 28

Robot autonom pentru competiia Eurobot 2011

3.1.5. Sistemul de detecie a adversarului


Pentru detecia adversarului am folosit o oglind conic mprumutat din laboratorul ED304. Aceasta are diametrul bazei de 80 mm i unghiul la vrf de 120 (fig. 35) i este prins de acoperiul robotului printr-un urub M4. Suportul camerei ndreptate spre oglind este confecionat din aluminiu. Datorit nlimii necesare pentru a cuprinde ntrega imagine, sistemul nu respect Fig. 35. Dimensiunile oglinzii folosite dimensiunile specificate n reguli (cub cu latura de 80 pentru detecia adversarului mm). Acest lucru nu m-a afectat, fiindc am definitivat sistemul dup perioada competiiei. Pentru anii viitori, dimensiunile se pot aduce n limitele admise, fie prin modificarea oglinzii, fie, mai simplu, prin utilizarea unei camere cu unghi de vedere mai larg.

3.2.

Descrierea electronic

Fig. 36 ilustreaz modul de interconectare al componentelor din robot. Unitatea de comand este un netbook cu procesor Intel Atom 1,6 GHz i 1 GB RAM. Pe acesta ruleaz sistemul de operare Ubuntu Linux, care permite folosirea oricrui limbaj pentru programarea robotului. La pornire, netbook-ul creeaz o reea wireless Ad-Hoc nesecurizat, cu numele Robot. Pentru configurri se poate deschide o conexiune ssh n linie de comand, sau cu suportul de desenare a ferestrelor activat (opiunea X va rezerva o sesiune pe server-ul X Window System). Comunicaia cu perifericele se face pe magistrala USB, respectiv I2C. Datorit dimensiunilor laptop-ului, am fost nevoit s-l montez lipit de tavanul carcasei, lsnd inaccesibile dou din cele 3 porturi USB. Pentru a compensa lipsa acestora, am folosit un Hub USB 2.0 cu 4 porturi. Conexiunea I2C se realizeaz prin portul VGA [22], fapt pe care-l voi detalia n subcapitolele urmtoare.

3.2.1. Sursa de energie


n timp ce laptopul folosete bateria proprie, toate celelalte componente sunt alimentate dintr-un acumulator cu plumb-acid sigilat, de 12V i 2200 mAh [23]. Am ales acest model datorit dimensiunilor sale; celelalte variante fie nu puteau debita suficient curent, fie ar fi stnjenit mecanismul cu ghear. Cele dou borne sunt conectate prin butonul de urgen la contactele de distribuie. n poziia apsat, butonul deconecteaz bateria de sistem i robotul se oprete, n timp ce la eliberare, legturile se restabilesc. Din acest motiv, folosesc butonul pentru a porni sau opri robotul i n mod obinuit.

29

MATEI ENE

Fig. 36. Diagrama electronic a robotului

3.2.2. Motoarele de deplasare


Pentru micarea robotului pe mas am folosit o pereche de motoare de pe rover-ul 4WD de la Lynxmotion [17]. Acestea se controleaz cu tensiuni ntre 0 i 12 V, ating turaia maxim de 200 RPM i pot consuma pn la 2 A. Driver-ul de pe rover, Sabertooth 2x10 R/C [24], a fost gndit pentru vehiculele radiocomandate. Acesta primete comenzi pe 2 canale analogice, iar reprezentanii Dimension Engineering mi-au comunicat c l pot controla prin semnale PWM cu frecvena de 50 Hz i perioada ntre 1000 us (full reverse) i 2000 us (full forward). ncercrile mele de a genera semnale de comand cu microcontroller-ul Atmega16, au ntmpinat dificulti. Prima dintre ele a fost gsirea valorii pentru oprire, care a necesitat multe
30

Robot autonom pentru competiia Eurobot 2011

tatonri (orice valoare cu puin mai mic sau mai mare fcea motoarele s se mite). ns cel mai important neajuns era lipsa oricrui mecanism de sincronizare ntre motoare, pentru mersul nainte sau ntoarcerile pe loc. Vehiculele telecomandate nu au nevoie de aa ceva, reglajul fiind fcut de ctre utilizator. n concluzie, am decis c este nevoie de o variant mai capabil a driver-ului. Cu sprijinul financiar al colegului i prietenului meu, Andrei Avram, am achziionat driver-ul Sabertooth 2x5 [25]. Acesta are multe moduri de operare, ns cele care prezint interes pentru aplicaia mea sunt Simplified Serial i Packetized Serial. Am preferat s-l folosesc pe cel de-al doilea fiindc are opiuni pentru operarea sincronizat a motoarelor. Comunicaia se realizeaz prin interfaa serial n modul 8N1 (cuvnt de 8 bii, fr paritate, 1 bit de stop), fr flow control, iar viteza fie se determin dinamic (Packetized Serial), fie se specific prin configuraia comutatoarelor DIP de pe plac (Simplified Serial). Netbook-ul nu are interfa serial, de aceea am avut nevoie de un convertor USB RS232 (v. subcapitolul 3.2.7). Driver-ul primete comenzi fr s ofere feedback, de aceea este nevoie doar de firul de transmisie (TX). Canalul de recepie are un rol special: cnd este conectat la 0V, driver-ul oprete motoarele i i ncheie funcionarea. Productorii recomand ca acesta s fie cuplat la butonul de urgen.

3.2.3. Motoarele mecanismului de manipulare a pieselor


Mecanismul cu ghear i cel de ridicare sunt puse n micare de motoarele recuperate de pe robotul de anul trecut. Acestea dispun de encodere incrementale (2 senzori Hall montai pe axul motor) cu 360 de impulsuri la fiecare rotaie complet (rezoluie de 1 grad). Precizia este mai mult dect suficient pentru controlul rotaiilor celor dou uruburi cu piulie de micare. Driver-ul MD23 [26] folosit pentru comanda motoarelor are capabiliti pentru: Citirea encoder-ului fiecrui motor Citirea curentului consumat de fiecare motor Citirea nivelului bateriei Partajarea magistralei cu mai multe dispozitive, difereniate prin adres

Comunicaia se realizeaz pe magistrala I2C (Inter-Integrated Circuit) i se bazeaz pe scrierea sau citirea regitrilor pui la dispoziie de driver. Netbook-ul nu are o interfa de dedicat acestei magistrale, ns am putut realiza legtura prin pinii DDC ai plcii video [22]. Acetia se folosesc de obicei pentru a negocia parametrii imaginii (rezoluie, palet de culori, etc.) ntre placa video i monitor, ns sunt, n esen, o interfaa I2C complet funcional. Din pcate nu toi productorii permit accesul sitemului de operare la aceast facilitate, ns, cu puin noroc, netbook-ul nu s-a numrat printre cazurile nefericite. Realizarea legturii electrice presupune doar lipirea firelor conform fig. 37., fr a fi nevoie de alte componente. Pinul +5V DC, nu este necesar, deoarece ambele dispozitive au surs de alimentare, ns pentru o comunicaie corect trebuie fcut legtura ntre mase (GND).
Fig. 37. Pinii DDC de pe portul VGA 31

MATEI ENE

3.2.4. Senzori
Robotul dispune de urmtorii senzori: a) Encoderele celor 2 motoare ale mecanismului de manipulare Micrile ghearei trebuiesc limitate pentru a evita contactul cu elementele carcasei. Encoderele motoarelor care efectueaz aceste micri sunt o bun surs de informaie n acest scop. Montajul dintre urub i motor este ferm; spre deosebire de roile de deplasare, aici nu exist riscul deraprilor (micrea motorului se trasmite integral asupra urubului). Encoderele nregistreaz 360 de impulsuri la o rotaie complet. Am stabilit n capitolele anterioare c sunt necesare 9 rotaii pentru strngerea sau extinderea complet a ghearei i 40 de rotaii pentru ridicare/coborre. Deci, pentru micarea pe orizontal avem 3240 impulsuri, iar pe vertical 14400. n apropierea punctelor de oprire, motoarele sunt decelerate, pentru a diminua pe ct posibil efectele ineriei. b) 8 butoane Unul dintre acestea este montat pe acoperi i l-am folosit n timpul testelor pentru a comunica cu robotul. Dup montarea senzorilor de culoare, i-am gsit nc o utilitate: la nceputul rundei, robotul trebuie s nvee nuanele de rou i albastru de pe ptratele mesei. Aceasta presupune deplasri manuale pe diferite zone ale mesei. Pentru a simplifica aceast operaie, am programat robotul s atepte apsarea butonului pentru a ncepe citirile. Celelalte 7 butoane sunt montate pe ghear ca o surs suplimentar de date pentru capetele de curs. Acestea se apas n contact cu piesa sau carcasa, anunnd robotul c trebuie s opreasc micarea.

Fig. 38. Poziiile butoanelor pentru micarea orizontal 32

Fig. 39. Poziiile butoanelor pentru micarea vertical

Robot autonom pentru competiia Eurobot 2011

Rolurile i poziiile butoanelor sunt dup cum urmeaz: Pentru detectarea prezenei piesei, 2 butoane sunt montate n apropierea articulaiei ghearei, cte unul pe fiecare bra (fig. 38.1). Gheara se va nchide dac oricare dintre acestea se apas Gheara s-a strns complet cnd ambele butoane din vrfurile braelor sunt apsate pe pies (fig 38.2) Gheara s-a extins complet cnd butonul de pe lateralul ei face contact cu opritorul de plastic montat pe carcas (fig. 38.3) La coborrearea complet a ghearei, butonul montat pe caseta sa va face contact cu latura de jos a carcasei (fig 39.5) Pentru ridicare, am montat un buton pe suportul de sus al urubului vertical. Acesta va fi apsat de piuli sau de piesa n form de jug (fig. 39.6).

c) 1 senzor de prezen cu infraroii Cnd gheara este ridicat pentru construcie, este nevoie de un senzor care s detecteze ptrunderea pionului sub turn. Aceast sarcin revine senzorului de distan SHARP, montat pe peretele lateral dreapta al carcasei. n mod normal, acesta va simi peretele opus, ns la ptrunderea pionului, valoarea sa se va schimba brusc. d) 8 senzori de culoare Dintre acetia, 7 sunt montai pe fundul robotului pentru a oferi informaii despre culoarea zonei de pe mas pe care se afl robotul, iar unul este montat pe ghear i difereniaz ntre pioni i piesele importante (regi/regine). Datorit bugetului restrns i a numrului mare de senzori necesari, am fost nevoit s-i construiesc singur. Un senzor este format dintr-un led RGB i o fotorezisten (fig. 40). Led-ul RGB, conine, de fapt, 3 surse de lumin, pentru fiecare din cele 3 culori primare (rou, verde, albastru). Astfel, prin aprinderea lor la diferite intensiti se poate obine orice nuan. Fotorezistena este, un rezistor care-i modific valoarea n funcie de intensitatea luminii care cade asupra sa.

Fig. 40. Componentele senzorului de culoare 33

Fig. 41.Montajul senzorului de culoare

MATEI ENE

Funcionarea senzorului se bazeaz pe faptul c obiectele pe care le percepem ca avnd o anumit culoare reflect predominant acea component a spectrului. Aadar, pentru a distinge ntre o suprafa roie i una albastr, vom aprinde led-ul, pe rnd cu ambele nuane pe ambele suprafee i vom msura intensitatea reflexiei prin valoarea fotorezistenei. Suprafaa albastr va absorbi lumina roie, dnd o valoare mare rezistenei, i va reflecta lumina albastr, rezultnd ntr-o valoare mic pe rezisten. Pentru suprafaa roie, comportamentul este inversat. Orientarea led-ului i distana dintre el i fotorezisten sunt parametri importani. De aceea, am prins cele dou componente ntr-un suport de plastic. Led-ul este orientat la 45 fa de vertical i distanat de fotorezisten la 6 mm (v. fig. 42). Pentru a evita ca razele s ajung direct de la led pe ea, fotorezistena este montat pe faa suportului, n timp ce led-ul este ngropat n plastic.

Fig. 42. Poziia componentelor senzorului

Pentru msurarea fotorezistenei, am format un divizor rezistiv cu un rezistor de valoare cunoscut (2,2 K), i am msurat tensiunea de la mijloc printr-o intrare analogic a microcontrollerului Atmega16. Senzorul de pe ghear face diferena ntre pioni i celelalte piese stabilind dac culoarea suprafeei laterale este galben sau nu (regii i reginele au cod de bare). e) 1 jumper pentru pornire Acesta nu este un senzor propriu-zis, ci este folosit pentru pornirea robotului la startul rundei de concurs. Jumper-ul este legat cu o sfoar i montat iniial pe 2 pini de pe acoperiul robotului. La pornirea programului, robotul ateapt eliberarea contactului, prin tragerea sforii.

34

Robot autonom pentru competiia Eurobot 2011

3.2.5. Placa de conectare a senzorilor


Un numr mare de senzori implic un numr mare de fire de legtur, de aceea a fost nevoie de o plac intermediar, unde se conecteaz toate acestea, mpreun cu celelalte componente necesare. Circuitul este realizat pe plac de test (fig. 43). Alimentarea se face de la baterie prin intermediul un stabilizator de 5V (circuit integrat 7805 [27]). Fiecare canal al led-urilor RGB [28] are nevoie de rezisten n serie, pentru limitarea curentului. Canalul rou are tensiunea proprie mai mic dect a celor albastru i verde, de aceea a necesitat o rezisten cu valoare dubl (150 fa de 75 ). Aprinderea tuturor led-urilor trebuie s se ntmple simultan, de aceea canalele de aceeai culoare ale tuturor led-urilor sunt legate printr-un tranzistor NPN la mas (2N2222 [30]). Tranzistorii au n baz cte o rezisten de 10 K i sunt legai la cte un pin microcontroller-ului (deci n total 3 pini de control al ledurilor, cte unul pentru fiecare canal de culoare). Fotorezistenele [29] sunt legate n divizori cu rezistori de 2,2 K. Microcontroller-ul msoar tensiunea dintre cele dou rezistene prin pinii ADC. Senzorul SHARP este, deasemenea, citit prin ADC, ns cele 8 intrri analogice ale Atmega sunt deja ocupate de fotorezistene. Acesta partajeaz primul pin ADC cu una dintre fotorezistene, prin intermediul unui multiplexor (74HC4051 [31]). Astfel am adugat nc 7 posibile intrri analogice celor 8 native. Firele senzorilor se conecteaz pe plac prin headere de pini, pentru a fi demontate uor, dac este cazul.

Fig. 43. Placa de conectare a senzorilor: vedere de sus (stnga) i de jos (dreapta)

35

MATEI ENE

3.2.6. Placa de achiziie de date


Citirea senzorilor i raportarea rezultatelor se face printr-o placa cu microcontroller Atmega16 [33] realizat la laboratorul cursului de Proiectarea cu Microprocesoare. Microcontroller-ul funcioneaz cu un cristal extern de 16 MHz i este alimentat de la baterie printr-un stabilizator de 5V (7805). Interfaa RS232 are nivelele de tensiune ajustate la intervalul 0-5V de ctre un circuit MAX232 [33]. Pe lng componentele necesare funcionrii, placa mai are 2 led-uri (unul legat la alimentare i cellalt programabil) i un buton (care este dublat de butonul de pe acoperiul robotului, pentru a-l face mai accesibil). Pinii utilizai sunt urmtorii: Cei 8 pini de ADC citesc fotorezistenele senzorilor de culoare. Primul pin este partajat de 2 senzori (o fotorezisten i senzorul SHARP), deci citirea trebuie precedat de alegerea canalului corespunztor al multiplexorului extern. 8 pini cu rezistenele de pull-up activate pentru cele 8 butoane nc un pin cu rezisten de pull-up pentru jumper-ul de start 3 pini de aprindere a celor 3 canale de culoare ale led-urilor RGB 1 pin de selecie pentru multiplexorul de pe ADC 2 pini pentru comunicaia pe serial cu netbook-ul (9600 baud, 8N1, fr flow control). n fig. 44 este ilustrat PCB-ul plci, iar n Anexe se gsete schematic-ul. Aceastea au fost realizate n Eagle de membrii echipei laboratorului de Proiectarea cu Microprocesoare. Le-am inclus pentru referin, cu acordul lor.

Fig. 44. Placa de achiziie de date cu Atmega16 36

Robot autonom pentru competiia Eurobot 2011

3.2.7. Placa de adaptare USB RS232


Laptop-ul nu are interfa serial, de aceea a fost nevoie de o plac de adaptare, care s-i permit s comunice cu componentele (driver-ul Sabertooth 2x5 i placa de achiziie) prin USB. Am folosit varianta FT2232D a chip-ului FTDI [34]. Aceasta ofer suport pentru dou interfee seriale prin aceeai conexiune USB; un lucru util avnd n vedere c 2 din cele 3 mufe ale laptop-ului nu sunt accesibile din cauza carcasei. Cele 2 interfee seriale au ieiri prin headere de pini, pentru a permite conectarea oricrui dispozitiv. Intrarea este o muf USB de tip A, aceasta fiind mai uor de lipit dect varianta B (pinii sunt mai distanai). Deasemenea, lipirea chip-ului FTDI a ridicat cteva probleme datorit picioruelor foarte apropiate (a fost nevoie de mai multe ncercri, crora le-a czut victim unul din cele 2 chip-uri cumprate). Placa are 4 led-uri: cte 2 pentru fiecare interfa serial. Acestea sunt conectate la pinii de recepie i transmisie, feedback-ul vizual generat de fluxul de date fiind util n depanare. PCB-ul plcii este redat n fig. 45, iar schematic-ul n Anexe. Aceasta poate fi folosit i la roboii din anii urmtori, sau la alte aplicaii care necesit interfaarea cu laptop-ul.

Fig. 45. Placa de conversie USB RS232 cu chip-ul FT2232D

37

MATEI ENE

Capitolul 4

Software
Folosirea netbook-ului cu Linux ca unitate de comand a dat o mare flexibilitate n alegerea modalitilor de programare. Am optat pentru o structur orientat pe obiect, pentru a putea refolosi codul i n anii urmtori sau la alte proiecte nrudite. Codul este scris n C++, fiindc, dup prerea mea limbajul este de nivel destul de jos pentru a fi aproape de sistemul de operare, de interfeele de comunicaie i de driver-ele dispozitivelor. n aceali timp este de nivel destul de nalt pentru a produce obiecte i metode uor de neles pentru cei care nu sunt familiarizai cu subiectul. Chiar dac unele teste le-am fcut n Java sau Python, n final totul a fost migrat la C++ pentru un control mai bun al resurselor partajate i pentru evitarea folosirii mecanismelor de comunicare inter-proces. Regulile proceduriii de compilare se gestioneaz printr-un Makefile centralizat, care se afl n rdcina proiectului. Rezultatul acestei operaii este o bibliotec de tip shared object, numit librobot.so. Orice program compilat mpreun cu aceasta va avea acces la funciile de control ale robotului. Dezvoltarea software-ului s-a ntmplat n tandem cu dezvoltarea hardware-ului fiindc fiecare component a necesitat teste. Perifericele refolosite de la robotul de anul trecut aveau interfeele scrise n C i am profitat de ocazie pentru a le face orientate pe obiect. Codul surs i toate celelalte resurse digitale pe care le-am creat n timpul dezvoltrii proiectului de diplom se gsesc pe CD-ul ataat lucrrii. Acestea au fost publicate, pentru referin, i pe server-ul de version control (n prezent Trac + Mercurial) al echipei de roboi din laboratorul ED304 (http://www.ed304.cs.pub.ro/trac), ns, din pcate, accesul la acesta nu este fcut public. n subcapitolele urmtoare voi detalia structura software-ului, pornind de jos (clasele pentru operaii de I/O i de interfaare a componentelor) n sus (procesare video, soft de control i strategie).

4.1.

Sistemul de I/O

Un lucru plcut n utilizarea sistemelor de operare Linux este faptul c totul este un fiier. Aceast uniformitate mi-a fost de mare ajutor n scrierea claselor care se ocup de comunicaie, fiindc toate operaiile se reduc la primitivele open, close, read i write. Clasa IO_Connection implementeaz operaiile de baz, de deschidere de fiier (cu flag-urile specificate prin parametru), citire i scriere. Acestea se execut asupra unicului cmp al clasei: filedescriptorul ctre fiierul de interes. IO_Connection are urmtorii fii: Serial_Connection, care implementeaz o conexiune serial. Singura diferen fa de IO_Connection sunt este flag-ul specific O_NOCTTY. Pentru a pstra simplitatea, clasa nu seteaz parametrii conexiunii, acetia putnd fi configurai din linie de comand (folosind stty), nainte de rularea programului. Un exemplu de instruciune stty des utilizat este: stty F /dev/ttyUSB0 9600 raw unde /dev/tty* este fiierul device int, 9600 este baud-ul, iar raw precizez c nu se folosete flow control (modul 8N1 este cel implicit, deci nu este nevoie s fie configurat).
38

Robot autonom pentru competiia Eurobot 2011

I2C_Connection, care reprezint o conexiune pe magistrala I2C. Aa cum am precizat i mai devreme, netbook-ul nu are o interfa I2C nativ, ns aceasta se poate obine prin pinii DDC ai plcii video. Pentru a avea acces la aceast interfa este necesar instalarea pachetului i2c-tools [35], care conine modului de kernel i2c-dev. La ncrcare, acesta creeaz cte un fiier cu numele de forma /dev/i2c-* (numere de ordine ncepnd cu 0) pentru fiecare magistral I2C prezent n sistem. Numrul magistralei DDC poate varia de la o versiune a pachetului la alta, de exemplu anul trecut aceasta era /dev/i2c-0, dar ncepnd cu Ubuntu 11.04, aceasta a devenit /dev/i2c-3. Pe lng desciderea fiierului, iniializarea conexiunii mai necesit i un apel ioctl I2C_SLAVE pentru precizarea adresei device-ului cu care se dorete comunicarea (pe magistral poate exista un singur master dar mai muli slaves, difereniai prin adres). Comunicaia pe I2C se bazeaz pe citiri i scrieri de regitri. Astfel, pentru citire, se trimite un octet care reprezint adresa registrului dorit i se ateapt rspunsul (un alt octet care reprezint valoarea). Pentru scrierea unui registru, se trimit 2 octei: adresa registrului i valoarea. Network_Connection, care realizeaz transmisia de mesaje pe reea, indiferent dac este vorba de Ethernet, Wireless sau loopback. Secretul st n faptul c i sockeii inet sunt, de fapt, file descriptori. Singura diferen fa de IO_Connection este iniializarea, cnd trebuie s se stabileasc o conexiune (TCP n aceast implementare). Fiierele surs se gsesc n directorul io/, relativ la rdcina proiectului.

4.2.

Interfaa sistemului de deplasare

Driver-ul Sabertooth 2x5, folosit pentru comanda motoarelor de deplasare, are 4 moduri de operare: 2 n care primesc semnale analogice i 2 n care comunicaia are loc pe interfaa serial. Pentru aplicaia mea sunt utile doar ultimele dou, pe care le voi prezenta n continuare (informaiile despre celelalte se gsesc n manual [25]). n modul Simplified Serial comanda are lungimea unui octet (0-255). Primul bit specific motorul, iar ceilali 7 dau puterea i sensul de rotaie. Cu alte cuvinte, valorile de la 1 (full reverse) la 127 (full forward), controleaz motorul 1 (64 pentru stop), iar cele de la 192 (full reverse) la 255 (full forward) controleaz motorul 2 (128 pentru stop). Modul Packetized Serial ofer mai multe funcionaliti, dar necesit mai mult efort de programare. O prim diferen fa de modul precedent este c baudrate-ul la care se desfoara comunicaia nu se mai configureaz din comutatoarele DIP de pe plac, ci se determin dinamic, prin trimiterea octetului de start (170 n baza 10, 0xAA n hexa sau 10101010 n binar). Pachetele sunt formate din 4 octei: (fig. 46)

Fig. 46. Structura pachetelor n modul Packetized Serial al driver-ului Sabertooth 2x5

39

MATEI ENE

Octetul de adres se folosete pentru a diferenia ntre drivere, n cazul n care se conecteaz mai multe pe aceeai interfa serial Checksum-ul se calculeaz prin suma fr semn a primilor 3 octei urmat de operaia AND pe bii cu masca 0111111 (n binar). Comanda i octetul de date au, mpreun, urmtoarele semnificaii Comand 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Data 0 127: 0 stop, 127 putere maxim 0 127: 0 stop, 127 putere maxim 0 120: o unitate nseamn 0,2 V 0 120: o unitate nseamn 0,2 V 0 127: 0 stop, 127 putere maxim 0 127: 0 stop, 127 putere maxim 0 127: 0 full reverse, 64 stop, 127 full forward 0 127: 0 full reverse, 64 stop, 127 full forward 0 127: 0 stop, 127 putere maxim 0 127: 0 stop, 127 putere maxim 0 127: 0 dezactivat, 127 ntoarcere pe loc 0 127: 0 dezactivat, 127 ntoarcere pe loc 0 127: 0 full reverse, 64 stop, 127 full forward 0 127: 0 max left, 64 dezactivat, 127 max right Semnficaie Motor 1 forward Motor 1 backward Min battery voltage Max battery voltage Motor 2 forward Motor 2 backward Motor 1 drive Motor 2 drive Forward Backward Turn right Turn left Drive straight Turn

Tabel 3. Descrierea comenzilor driver-ului Sabertooth 2x5 n modul Packetized Serial

Pragurile de tensiune definesc limitele normale de alimentare. O valoare sub sau peste acest interval va duce la nchiderea automat a driver-ului. Linia ngroat din tabelul 3 delimiteaz comenzile de control individual de cele de control sincron (mixed) al motoarelor. Comenzile de tip mixed au dou componente care definesc micarea rezultat: drive i turn. Drive specific puterea de referin, iar turn diferena dorit ntre vitezele lor. Aadar, iniial trebuie specificate ambele componente pentru ca micarea s aib loc. Testele au artat c pentru turn minim, motoarele se vor nvrti cu aceeai vitez, direct proporional cu drive, i robotul va merge drept, n timp ce pentru turn maxim, acestea vor executa o ntoarcere pe loc, rotindu-se tot cu o vitez direct proporional cu drive. Clasa Saberooth_Driver se ocup de detaliile comunicaiei cu driver-ul, n timp ce Sabertooth_Motors conine metode pentru micrile uzuale (control individual al motoarelor, mers drept, rotaii pe loc sau cu un anumit coeficient). Fiierele surs se gsesc n directorul components/sabertooth/, relativ la rdcina proiectului.

4.3.

Interfaa mecanismului de manipulare a pieselor

Interfaa driver-ului MD23 [26], folosit pentru controlul motoarelor dispozitivului cu ghear, este compus din 2 clase. Ca i n cazul motoarelor de deplasare, clasa MD23_Driver se ocup de
40

Robot autonom pentru competiia Eurobot 2011

aspectele specifice comunicaiei cu placa, n timp ce MD23_Motors reprezint o abstractizare, oferind metode pentru micrile uzuale. Driver-ul pune la dispoziie urmtorii regitri: Adres 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Descriere Viteza motor 1 Viteza motor 2/Viteza rotaie Encoder 1A Encoder 1B Encoder 1C Encoder 1D Encoder 2A Encoder 2B Encoder 2C Encoder 2D Nivel baterie Curent motor 1 Curent motor 2 Versiune Rat de accelerare Mod Comand
Tabel 4. Descrierea regitrilor driver-ului MD23

Acces R/W R/W R R R R R R R R R R R R R/W R/W R/W

Sunt definite 4 moduri de operare: primele dou sunt pentru controlul individual al motoarelor, iar celelalte pentru micri sinconizate. Modurile din aceeai categorie difer doar prin faptul c accept valori cu sau fr semn pentru vitezele motoarelor (0 255 sau -127 +127). Rata de acceleraie este un coeficient care afecteaz modul de tranziie dintre 2 viteze. Valorile encoderelor se obin prin alipirea valorilor din cei 4 regitri corespunztori. Comenzile posibile au urmtoarele semnificaii: Comand 32 48 49 50 51 160 170 165 Aciune Resetare encodere la 0 Dezactiveaz/activeaz algoritmul de meninere a vitezei motoarelor Dezactiveaz/activeaz comportamentul de oprire dup 2 secunde de inactivitate Secvena de octei necesar n procesul de schmbare a adresei I2C

Tabel 5. Descrierea operaiilor suportate de driver-ului MD23

41

MATEI ENE

Chiar dac unele dintre ele n-au fost folosite pn acum toate aceste funcii au fost implementate n clasa MD23_Driver n sperana c vor fi utile pe viitor. Fiierele se gsesc n directorul components/md23/, relativ la rdcina proiectului.

4.4.

Sistemul de achiziie de date

Microcontroller-ul Atmega16 de pe placa de achiziie de date este programat n C, utiliznd biblioteca de funcii specifice din pachetul avr-libc. Compilatorul folosit este avr-gcc, programul final fiind transferat n memoria flash a Atmega cu avrdude prin intermediul programatorului AVR ISP mkII. Procesul descris mai sus este gestionat cu ajutorul unui Makefile. Acesta are reguli definite, att pentru compilare (make build, care este i regula implicit), ct i pentru transfer (make flash, pentru care sunt necesare priviliegii de root). La punerea sub tensiune, microcontroller-ul intr n secvena de iniializare, la finalul creia se aprind toate led-urile RGB pe culoarea alb. n acest moment se ateapt nceperea procedurii de nvare pentru senzorii de culoare, care presupune: a) Poziionarea robotului complet pe un ptrat rou, plasarea unui pion lipit de senzorul de pe ghear i apsarea butonului b) Robotul va comuta led-urile pe culoarea rou i le va menine aa o perioad. n acest timp se iau 2000 de citiri de pe fotorezistene i se reine media aritmetic n vectorul de valori de referin (cte o intrare pentru fiecare senzor n parte). c) Se execut paii a i b pentru culoarea albastru. n acest moment nvarea s-a ncheiat, iar robotul va comuta led-urile conform secvenei: rou off albastru off. Fiecare pas dureaz 40 ms, timp n care valoarea pe fotorezisten se stabilizeaz i poate fi citit. Se observ c nu se repet secvena de nvare i pentru culoarea verde. Aceasta nu prezint interes, fiind asimilat, mpreun cu negrul, categoriei ce nu este rou sau albastru. Dup ncheierea acestei etape, placa va satisface 3 tipuri de cereri pe serial: 1. La primirea caracterului r, va trimite valorile de referin nvate, cte 3 pe o linie, separate de spaii (R G B pentru fiecare senzor, ns valoarea pentru verde va fi 0 peste tot). Aceast comand este folosit pentru depanare. 2. La primirea caracterului s, va trimite valorile tuturor senzorilor ntr-un pachet de 5 octei: Primii 3 codific senzorii de culoare. Pentru senzorul cu numrul i, culoarea se compune lund bitul i din fiecare din cei 3 octei, primul fiind pentru R, al doilea pentru G i al treilea pentru B. Deci 111 va fi alb, 110 galben, 100 rou, etc. Senzorul 0 este cel de pe ghear i va avea valorile yellow sau black, semnificnd pion sau altceva. Ceilali pot avea doar valorile red, blue sau black, indicnd culoarea de pe mas din dreptul lor. Fiecare bit al octetului 4 reprezint starea unuia dintre butoane (1 pentru apsat i 0 pentru liber).

42

Robot autonom pentru competiia Eurobot 2011

Urmtorul octet are doar primii 2 bii folosii (restul sunt tot timpul 0). Primul arat starea jumper-ului (1 prezent, 0 absent), iar al doilea provine de la senzorul de prezen (1 pentru pies n interior i 0 altfel). 3. Pentru orice alt caracter, microcontroller-ul va ntoarce valorile neprocesate ale senzorilor. Mesajul este folosit tot pentru depanare. De partea cealalt a baricadei, am definit clasa Atmega. Aceasta va realiza comunicaia cu microcontroller-ul, oferind rezultatele senzorilor ntr-o manier prietenoas (culorile vor fi caractere de forma R,B,N,Y, iar butoanele, jumperul i senzorul de prezen au valori de tip bool). Fiierele se gsesc n directorul components/atmega/, relativ la rdcina proiectului.

4.5.

Computer vision: detecia adversarului

Detecia adversarului se face prin prelucrarea imaginilor oglinzii conice de pe acoperiul robotului, surprinse de un webcam. Ideea este de a identifica poziia balizei de culoare roz, n cazul n care aceasta apare n imagine. Diferena de nivel de 80 mm dintre baliza proprie i cea de pe adversar faciliteaz observarea ei la o distan suficient de mare. Procesarea se face cu ajutorul bibliotecii OpenCV versiunea 2.2 i are urmtoarele etape: 1. Aplicarea unei mti, a crei form este dat de punctele cu distanele ntre 2 limite prestabilite fa de vrful oglinzii (fig. 47 i 48). Baliza nu va aprea niciodat n zonele care se elimin la acest pas i, cu aceast ocazie, se filtreaz posibilele zgomote din vecintatea vrfului. 2. Trecerea imaginii din spaiul de culoare RGB n HSV 3. Separarea canalului Hue (fig. 47) 4. Eliminarea pixelilor cu valori deprtate de vecintatea culorii roz, determinat experimental ca fiind 150-200 (fig. 48). 5. Filtrarea zgomotului prin aplicarea unui algoritm de eroziune (aplicat de 7 ori), urmat de expansiune (de acelai numr de ori). Acest procedeu va elimina structurile de dimensiuni mici sau disparate, lsndu-le doar pe cele compacte, de dimensiuni suficient de mari. Imaginea balizei are aceste proprieti i va rezista filtrrii (fig. 49).

Fig. 47. Canalul Hue al imagini oglinziii 43

Fig. 48. Nuanele din vecintatea culorii roz

MATEI ENE

Fig. 49. Imaginea dup filtrare

Fig. 50. Detecia balizei de pe adversar

6. Identificarea contururilor regiunilor din imagine i alegerea celui cu aria cea mai mare, dar peste o valoare de prag. 7. Calcularea dreptunghiului ncadrator, de arie minim. Este vorba despre bounding box i nu rectangle; diferena este c primul nu este constrns de condiia de paralelism a laturilor cu marginile imaginii. n fig. 50 am trasat cu roz, peste imaginea iniial, conturul obinut n urma pailor de mai sus. Celelalte dou cercuri delimiteaz zona n care se face cutarea (de forma mtii), iar cu verde am marcat vrful oglinzii care a fost considerat n calcule. Trebuie s precizez c pentru dimensiunile imaginilor prezentate mai sus, procesarea dureaz mult, iar rezultatul nu este utilizabil (au fost fcute pentru claritate). n mod normal, se iau imagini de 160x120 pixeli, pentru care algoritmul se desfoar insesizabil de repede, pstrnd acurateea (imaginile mari conin mult informaie redundant). Fiierele se gsesc n directorul components/camera/, relativ la rdcina proiectului.

4.6.

Computer vision: sistemul de balize fixe

Sistemul de balize fixe, plasate n poziiile prestabilite de pe marginea mesei, este menit s ofere o imagine de ansamblu asupra configuraiei pieselor i poziiilor celor doi roboi. Ideea de la care am pornit este folosirea unor camere video cu care s identific obiectele i s le calculez poziiile prin triangulaie. Datorit cerinelor crescute de procesare i necesitii unei modaliti de comunicare fr fir, soluia ideal pare a fi folosirea a 3 smartphone-uri. Din pcate, nu am putut face rost de aceste dispozitive pentru teste i, datorit riscului crescut de a eua (zgomote, diferene de iluminare, etc) i complexitii, nu am acordat foarte mult timp acestei pri. n concluzie, acest sistem nu a fost finalizat pn n momentul de fa. Totui, am obinut rezultate promitoare ale metodei pe imagini simulate. n acest scop am realizat un model al mesei de joc n programul Blender i am definit cele 3 camere. Imaginile astfel obinute au trecut prin urmtorii pai:

44

Robot autonom pentru competiia Eurobot 2011

1. Aplicarea transformrii perspective inverse. 2. Realizarea unei segmentri pe baz de culoare, asemntor pailor 2-4 de la sistemul de evitare a adversarului, ns de data aceasta pentru culoarea galben. 3. ntre imaginile binare astfel obinute, luate dou cte dou, se aplic operaia I logic. 4. ntre noile imagini astfel obinute se face SAU logic. Raioamentul din spatele acestei secvene de pai este obinearea unei imagini cu toi pixelii galbeni vzui de mcar 2 dintre camere. Efectele acestor pai sunt ilustrai de imaginile din fig. 51.a.

Fig. 51.a. Etapele algoritmului-prototip de triangulaie video

45

MATEI ENE

Rezultatul final, ca uramre a operaiilor logice ntre cele 3 imagini, este cel din fig. 51.b. Chiar dac imaginile simulate nu prezint zgomot, este nevoie de unele mbuntiri mai bun pentru ca metoda s reziste pe cazul real. Totui, rezultatele arat promitor.

Fig. 51.b. Rezultatul algoritmului-prototip de triangulaie video

4.7.

Poziionarea pe mas

n lipsa unui sistem care s ofere informaii globale despre poziia robotului, am ncecat s fac aproximri utiliznd cei 7 senzori de culoare montai pe fundul robotului. Cunoscnd poziia anterioar a robotului i intenia sa pentru micarea urmtoare, se poate determina zona de poziii posibile pentru starea urmtoare. Pornim de la premisa c deplasarea robotului are abateri. n cazul deplasrii pe o linie dreapt, poziiile candidat se afl pe un sector de cerc centrat n punctul anterior i simetric faa de direcia de deplasare. Unghiul de deschidere i raza acestul sector depind de viteza de deplasare i severitatea abaterilor la deplasare (deci se determin experimental). Considerm c orientarea robotului, n cazul n care a ajuns ntr-un punct din aceast zon, este pe direcia segmentului dintre acesta i poziia anterioar (deci este univoc determinat de punctul ales). n cazul unei rotaii, zona are forma unui cerc centrat n poziia anterioar. Deoarece acest cerc are raza mic, vom presupune c robotul execut fr abateri rotaia pe loc. Rmne doar de stabilit orientarea sa curent. Prin discretizarea spaiului mesei cu o unitate de 1 cm i avnd citirile curente ale senzorilor de culoare, vom filtra poziiile, respectiv orientrile candidat, pe baza acestora i vom alege una dintre cele rmase dup un anumit criteriu (de exemplu, apropierea de poziia iniial).

4.8.

Programul de control i strategie

Am proiectat o structur software care s permit modificarea uoar a strategiei robotului (fig. 52) i separarea ei de partea de achiziie de date (senzori) i comenzi (motoare). Este vorba despre un program cu fire de execuie specializate pe sarcini. nainte de a le descrie, s trecem n revist structurile de date. Este vorba despre o stiv de aciuni, ordonate dup valoarea asociat (scor) i o mulime de reguli, care descrie strategia. O regul este un obiect cu dou metode: match - calculeaz un scor pe baza strii robotului, care arat ct de potrivit este aplicarea regulii la pasul curent (se va alege regula cu scorul cel mai mare) action, care opereaza modifcri asupra stivei de aciuni.
46

Robot autonom pentru competiia Eurobot 2011

Fig. 52. Fluxul de date n soft-ul de strategie

Exist un fir de execuie care este responsabil cu actualizarea acestor dou structuri. Responsabilul de reguli face alegerea cea mai potrivit pentru a fi aplicat la pasul curent i aplic modificrile asupra stivei de aciuni, apelnd metoda action. Responsabilul de execuie extrage aciunea din vrful stivei i o execut. Aceasta poate fi de forma: mergi nainte o anumita distan, rotete-te la un anumit unghi, ateapt un anumit timp, prinde piesa, etc. Achiziia de date este efectuat de 2 fire specializate. Primul urmrete camera pentru detecia adversarului, iar cel de-al doilea solicit informaii despre senzori de la placa cu Atmega. Un al treilea fir de execuie centralizeaz datele i actualizaeaz starea robotului. Unul din dezavantajele acestei structuri este necesitatea mecanismelor de sincronizare ntre fire. O planificare eronat poate crea erori dificil de depanat.

Rezultate. Concluzii. Mulumiri.

Din pcate nu am reuit s finalizez robotul la timp pentru faza naional a Eurobot. Chiar i aa, rezultatele pe care le-am obinut pe parcurs au fost n majoritate pozitive i mi-au oferit satisfacie. Printre acestea a dori s amintesc: Design-ul i construcia mecanismului de manipulare a pieselor, care s-a dovedit a fi funcional i uor de controlat electric Proiectarea i execuia majoritii plcilor electronice necesare Conectarea i interpretarea unui numr mare de senzori Realizarea senzorilor de culoare
47

MATEI ENE

Interfaarea, att la nivel hardware, ct i software a unui numr mare de componente periferice interconectate prin diverse tipuri de magistrale de date Proiectarea unui sistem inovativ de detecie a prezenei robotului advers, prin identificarea reflexiei sale pe o oglind conic, utiliznd tehnici de prelucrare video. n acelai timp, sunt contient c soluia poate fi mbuntit, att prin concept, ct i prin execuie. Printr-o organizare mai bun a timpului, prin formarea unei echipe de lucru i, mai ales, prin comunicare, proiectul ar fi putut cpta proporii i mai mari. Ultimii 3 ani, care s-au scurs de la primul meu contact cu construcia de roboi, au fost poate cea mai bogat perioad din punct de vedere al cunotinelor i deprinderilor dobndite. n final, a dori s le mulumesc tuturor celor care m-au susinut pe parcursurl ultimelor 8 luni: Domnului profesor Radu Vrbnescu pentru formarea i coordonarea echipei de robotic din sala ED304. Lui Andrei Avram (Yeti) pentru pasiunea cu care se implic n organizarea echipei, pentru sprijinul moral i material pe care mi l-a acordat pentru realizarea proiectului Tatlui meu, pentru sprijinul profesional i ajutorul la prelucrrile mecanice i, n special, companiei TURCK Industrial Automation pentru mprumutul celor 3 senzori de calitate industrial

48

Robot autonom pentru competiia Eurobot 2011

BIBLIOGRAFIE
[1] Aristotel, Politica, Cartea I, Cap. IV, Proiectul Gutenberg, 2009 http://www.gutenberg.org/files/6762/6762-h/6762-h.htm#2HCH0004 [2] Raportul departamentului statistic al International Federation of Robots, 2010 http://www.worldrobotics.org [3] Regulile competiiei Eurobot Chessup!, 2011 http://www.eurobot.org/commonfiles/docs/2011/E2011_Rules-EN.pdf [4] Robotul echipei EA BEARS din Sibiu, Finala naional Romnia, Eurobot 2011 http://www.youtube.com/watch?v=D193i66AMj0 [5] Runda de concurs Scholars Mate vs Gambit, Finala naional Elveia, Eurobot 2011 http://www.youtube.com/watch?v=FrbGMa5v2yo [6] Robotul echipei Coffee Machine, Frana, Eurobot 2011 http://www.coffee-machine.fr/ http://www.youtube.com/watch?v=fjv6TzFWiYU [7] Robotul echipei RCVA, Frana, Eurobot 2011 http://www.rcva.fr/ http://www.youtube.com/watch?v=3mrykxg8JXY [8] Robotul echipei OS Inraci, Belgia, Eurobot 2011 http://www.youtube.com/watch?v=SD6jKEcUsHQ [9] Robotul echipei UNICT, Italia, Eurobot 2011 http://eurobot.dmi.unict.it/ http://www.youtube.com/watch?v=gGsEMf2ZgRE [10] Robotul echipei CRH, Elveia, Eurobot 2011 http://www.youtube.com/watch?v=HMBAUZnVqV0 [11] Robotul echipei XD, Frana, Eurobot 2011 http://www.xevel.fr http://www.youtube.com/watch?v=d6KM5RNmMbQ [12] E. Ackerman, Top 10 Robot Kinect Hacks, IEEE Spectrum, Martie 2011 http://spectrum.ieee.org/automaton/robotics/diy/top-10-robotic-kinect-hacks [13] PandaBoard Reference http://pandaboard.org/content/resources/references [14] TURCK Industrial Automation Encoders http://pdb.turck.de/media/_ro/Anlagen/d101885.pdf Photoelectric sensors http://info.bannerengineering.com/xpedio/groups/public/documents/literature/31100_03.pdf [15] EMG30 Motor Specification, Robot Electronics UK http://www.robot-electronics.co.uk/htm/emg30.htm [16] SHARP 2YOA21 Infrared Distance Measuring Sensor Datasheet http://sharp-world.com/products/device/lineup/data/pdf/datasheet/gp2y0a21yk_e.pdf [17] Lynxmotion 12V Motor, 200 RPM, 30:1 Gear Box http://lynxmotion.com/images/data/ghm16.pdf [18] T. Kazik, A.H. Gktogan, Visual Odometry Based on the Fourier-Mellin Transform for a Rover Using a Monocular Ground-Facing Camera, 2006 http://students.asl.ethz.ch/upl_pdf/278-report.pdf?aslsid=631d48213c67e45015c2e5810f42985e [19] G. Bradsky, A. Kaehler, Learning OpenCV. Computer Vision with the OpenCV Library, OReilly, 2008 49

MATEI ENE [20] OpenCV C++ Online Reference http://opencv.willowgarage.com/documentation/cpp/index.html [21] Blender Online Documentation http://wiki.blender.org/ 2 [22] P. Burgess, The 25 I C Adapter, 2008 http://www.paintyourdragon.com/?p=43 [23] Specificaii acumulator Well 12V 2200 mAh http://well.ro/download.ashx?item=b%5cbat-lead-03-w.pdf&desc=true [24] Sabertooth 2x10 R/C Dual Motor Driver, Dimension Engineering http://www.dimensionengineering.com/Sabertooth2X10RC.htm [25] Manualul driver-ului Sabertooth 2x5, Dimension Engineering, 2007 http://dimensionengineering.com/datasheets/Sabertooth2x5.pdf [26] Manualul driver-ului MD23, Robot Electronics UK http://www.robot-electronics.co.uk/htm/md23tech.htm [27] Datasheet 7805, 5V regulator http://www.datasheetcatalog.org/datasheets/228/390068_DS.pdf [28] Datasheet Sharlight RGB led http://home.comet.bg/datasheets/LED%20Visible/SLR-050RGB40.pdf [29] Datasheet VT93N1 Photoresistor http://www.conexelectronic.ro/download.php?filePath=dXBsL3Byb2R1Y3QvcGRmLzEwNTAwNC5wZGY [30] Datasheet 2N2222 NPN Transitor http://www.stanford.edu/class/ee133/datasheets/2n2222.pdf [31] Datasheet 74HC4051, 8 channel multiplexer/demultiplexer http://www.datasheetcatalog.org/datasheets/120/107571_DS.pdf [32] Datasheet Atmega16, Atmel http://www.atmel.com/dyn/resources/prod_documents/doc2466.pdf [33] Datasheet MAX232, Maxim http://www.datasheetcatalog.org/datasheet/maxim/MAX220-MAX249.pdf [34] Datasheet FT2232D, Future Technology Devices Internation Ltd. http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT2232D.pdf [35] Wiki-ul de dezvoltare al pachetului i2c-tools pentru distribuiile de Linux http://www.lm-sensors.org/wiki/I2CTools

50

S-ar putea să vă placă și