Sunteți pe pagina 1din 12

Lucrarea 6 – 6 ore

Aplicaţii ale robotului Pioneer 2 DX8


Evitarea Obstacolelor
Ȋn robotica mobilă, unul dintre domeniile majore de interes este modalitatea de a controla
mişcările robotului, făcându-l să se deplaseze fără a lovi obstacolele. De câte ori dorim ca un
robot să facă ceva, indiferent că este o simplă mişcare de translaţie sau curaţirea unei camere,
comportamentul robotului este componenta care răspunde la întrebarea Ce? din întrebarea Ce
face robotul nostru? Distingem de obicei două tipuri de comportament al roboţilor: reactiv şi
deliberativ. Pe scurt, comportamentul deliberativ necesită un grad ridicat de inteligenţă
deoarece încearcă să înţeleagă mediul înconjurător. Acest lucru face robotul să se mişte încet
şi să fie predispus greşelilor atunci când se modifică structura terenului. Atuul acestui
raţionamentului deliberativ este planificarea, ceea ce necesită o cunoaştere detaliată a
mediului înconjurator şi foloseşte aceste informaţii pentru prezicerea diferitelor acţiuni pe care
le are de executat. Un robot ce are capacitatea să îşi evalueze acţiunile înainte să acţioneze
este capabil să îşi optimizeze comportamentul şi datorită faptului că algoritmul este complet şi
optim, să aleagă totdeauna cea mai bună soluţie. Dezavantajul major al raţionamentului
deliberativ este că orice modificare a mediului înconjurător din momentul în care informaţia a
fost obţinută până când se execută o sarcină conduce la erori de comportament. Datorită
faptului că majoritatea mediilor înconjurătoare din viaţa reală sunt foarte dinamice, este
periculos ca robotul să se bazeze pe informaţii care nu sunt actualizate. Sistemul reactiv pe de
altă parte nu încearcă să înţeleagă nimic, pur şi simplu reacţionează la informaţiile primite de
senzori. Ideea comportamentului reactiv este că robotului îi lipsesc caracteristici funcţionale
precum percepţia, abilitatea de a învăţa şi planifica. Acest tip de comportament nu este
influenţat de timp, spaţiu sau natura obiectelor. El reacţionează identic, pe baza informaţiilor
primite indiferent ce ora a zilei este, unde este situat şi nu va face diferenţa între un scaun şi o
persoană. Prin urmare sistemul reactiv este foarte rapid dar îi lipseşte abilitatea de planificare
şi evaluarea acţiunilor înainte de execuţie. Comportamentul animalelor este des folosit ca bază
de studiu pentru comportamentul reactiv al roboţilor. Ca şi exemplu este mişcarea unei
broscuțe pe langă diferitele obstacole către ţintă (o cutie cu râme). Această mişcare a fost
folosită ca inspiraţie nu ca şi replică identică. Sistemul reactiv al roboţilor este construit pe
câteva nivele de comportament, care atunci când interacţionează cu mediul, împreună
formează un sistem mai complex şi mai inteligent decât luate individual. Un singur sistem luat
individual nu este de prea mare ajutor robotului. Dacă singurul lucru pe care îl face este
evitarea obstacolelor, cel mai simplu ar fi sa stea nemişcat. Pentru a forma un sistem complex
este nevoie ca diferite sisteme să interacţioneze. Ce tipuri de sistem folosim împreună cu
modalitatea lor de interacţiune definesc arhitectura robotului. Putem distinge 3 tipuri de
arhitecturi: bazate pe comportament, ierarhice şi hibride. Ȋn fiecare sistem robotic mobil,
abiliatea de a evita obstacole este crucială. Robotul trebuie să prezinte încredere că îşi va
îndeplini sarcinile fără a fi un pericol pentru el sau pentru persoanele din jurul său [4]. Multe
metode de realizare a acestei sarcini au fost supuse analizei. Idei precum studierea în detaliu a
fiecărei hărţi până la lipsa planificării. În mod normal nici una din cele două extreme nu este
de ales. De preferat este o metodă sigură prin care se realizează diferite sarcini într-un mediu
dinamic. Una din metodele clasice este ca ţinta să emită o forţa de atracţie şi obstacolele să
emită o forţă de respingere. Lăsând robotul să fie atras de forţa emisă de ţintă şi respins de
obstacole se atinge scopul dorit. Principala problemă în această metodă este că în unele zone
forţele se anulează sau îşi diminuează semnificativ intensitatea situaţie în care robotul se
opreşte, fiind incapabil să se mişte în oricare direcţie. O altă situaţie de luat în considerare în
evitarea obstacolelor este dinamica robotului. La roboţii lenţi aceasta nu prezintă o problemă
dar la roboţii cu o viteză crescută, trebuie luată în consideraţie. Robotul nu se poate opri
instant, el decelerează până se opreşte. O metoda care ia în calcul dinamica se numeşte
Dynamic Window Approach (DWA). Calculează vitezele pe care robotul le poate atinge şi o
alege pe aceea cu ajutorul căreia robotul îşi atinge ţinta. Metoda este pur funcţională adică nu
percepe lumea înconjurătoare decât prin ceea ce senzorii detectează la un moment anume.
Dezavantajul este că nu se poate planifica nimic iar robotul poate rămâne blocat în
configuraţia obstacolelor. Problema se poate rezolva combinând DWA cu o hartă a mediului
înconjurător. Această metodă se numeste Global Dynamic Window Approach(Abordare
Dinamică Globală).

Sistemul senzorial
Undele ultrasonore sunt vibraţii mecanice ale unui material solid, lichid sau gazos. Ele
reprezintă un caz particular al undelor acustice. Intervalul de frecvenţe pentru undele
ultrasonice este 15KHz-150KHz, fiind superior spectrului acustic şi inferior domeniului
hipersunetelor [5].
Ce este senzorul? Senzorii sunt elemente de automatizare, care sesizează şi transformă
mărimea de măsurat (de ieşire a procesului) într-un semnal mai convenabil, de obicei de altă
natură [2]. Ȋn dese rânduri este folosită sintagma senzori şi traductoare, în cadrul căreia fie
pun pe picior de egalitate senzorul şi traductorul, utilizând alternativ sau preferenţial, unul
dintre termeni, fie considereă că unul reprezintă o categorie ierarhică superioară, incluzându-l
pe celălalt [12]. Termenul senzor are ca origine cuvantul latin sensus, care este tradus ca simț
şi înainte de a fi adoptat de domeniul tehnic a fost şi este folosit pentru a desemna capacitatea
organelor de simţ ale oamenilor şi organismelor vii de a aduna şi procesa informaţii din
mediul înconjurător şi a le trimite spre creier. Cea mai veche tehnică de măsurare sonică
folosită de oameni este număratul secundelor dintre momentul în care se observa un fulger şi
momentul în care se aude tunetul pentru a afla cât de apropiată este furtuna. Ideea exploatării
acestei metode de măsură a dus la dezvoltarea senzorilor ultrasonici.
Principiul de funcţionare al senzorilor ultrasonici constă în emiterea de impulsuri sonore
scurte, de înaltă frecvenţă, la intervale de timp regulate. Aceste unde se propagă în aer cu
viteza sunetului. Dacă lovesc un obiect ele sunt reflectate înapoi ca semnal de ecou către
senzor (fig. 1). Măsurarea distanţei se bazează pe diferenţa din momentul de timp la care s-a
transmis impulsul sonic şi momentul la care acesta se detectează, având în vedere viteza
sunetului şi folosind formula din fizica pentru spaţiu:
D=V ×T [1]

Fig 1 Situarea emiţătorului şi receptorului din senzorul de proximitate, faţă de obstacol

Pioneer 2 vine echipat cu senzori ultrasonici atât pe partea frontală cât şi în spate fiecare
cu câte 8 traductoare care oferă detecţia obiectelor, informaţii despre distanţa faţă de acestea şi
navigarea pe lângă obstacole. Locaţia senzorilor este identică în ambele situaţii, câte unul pe
fiecare parte şi 6 situaţi frontal la intervale de câte 20 de grade (fig..2). Ȋmpreună furnizează
informaţii de pe o rază de 360 de grade.
Figura 2 Poziția senzorilor la robotul Pioneer 2

Semnalul de distanţă măsurată de sonare este cuprins în intervalul 15-300 cm sau 15-400
cm, depinzând de versiunea robotului. Deviaţia senzorilor faţă de axa de simetrie a robotului
este următoarea S0=90 o, S1=50o , S2=30o , S3=10o , S4=−10o , S5=−30o , S6=−50o , S7=−90 o.
Caracteristicile de directivitate nu au fost incluse în manualul de utilizare. De regulă,
directivitatea senzorilor ultrasonici depinde de puterea emiţătorului şi capacitatea
amplificatorului de receptie, de dimensiunea obstacolului, de reflectivitatea suprafeţei şi de
orientarea sa. Pot exista situaţii neobişnuite, când un obiect aflat în faţa unui senzor nu poate
fi detectat, cum are fi de exemplu o oglindă orientată înclinat faţa de axa normală la suprafaţa
sonarului. Ȋn cazul evitării obstacolelor, dacă aceasta situatie este întalnită, cei 8 senzori se
completeaza reciproc. Când acest caz este întâlnit, senzorul are o perioadă de orbire, precum
radarul în cazul detecţiei aşa ziselor avione invizibile. Frecvenţa de emisie a senzorilor este de
25 Hz (40 ms pe senzor). Există o distanţă minimă, sub care sonarul nu detectează nici un
obstacol, distanţă care se înscrie în limita indicată de producător, aproximativ 10-15 cm. Acest
fapt este datorat pulsului minim emis şi vitezei de propagare prin aer a undelor acustice [3].
Formula de calculul pentru această distanţă este:
V ×T
dm= [2]
2
unde v este viteza sunetului iar T este durata impulsului de emisie al sonarului. Distanţa
maximă de detecţie este foarte aproape de 400 cm. Ȋn general această limită este impusă din
construcţie, pentru a evita incertitudinea care apare prin nedetectarea obstacolelor la distanţe
mari, datorată semnalului reflectat slab. Deschiderea unghiulară este de 200 centrată pe
normala sonarului. Obiectul ţintă are o poziţie unghiulară şi o laţime necunoscută dar o mare
parte din el se află în interiorul deschiderii unghiulare. Datorită acestui fapt, informaţiile de la
mai mulţi senzori trebuie să se completeze reciproc iar în unele cazuri robotul trebuie să
efectueze mişcări de rotaţie pentru a culege semnale din mai multe direcţii.
Viteza sunetului în aerul uscat, să spunem 15℃ este de 340 [m/s] sau 0.034 [cm/us]
valori care au fost obţinute cu ajutorul formulei:
m cm 1S
340 ×100 × 6 =0.034 cm/µs [3]
s m 10 µs
Putem exprima şi timpul, în microsecunde, necesar semnalului pentru a parcurge un
centimetru, care are valoarea de 29.41 µs/cm, cu formula:
1 100000 µs 1m
× × =29.41 µs/cm [4]
340 m/ s 1s 100 cm
În aer, ca şi în alte gaze, viteza sunetului depinde de temperatură, presiune cât şi
umiditate. La 0℃ viteza sunetului este mai scăzută, de respectiv 331 [m/s] pe când la 20℃
aproximativ 343.4 [m/s]. Făcând abstracţie de presiunea atmosferică şi umiditate, care au un
impact redus asupra vitezei sunetului, formula următoare permite calculul vitezei de
propagare a sunetelor în funcţie de temperatură, pentru un domeniu de temperaturi în jurul
valorii de 0℃ [3].
C aer= (331.4 +0.607∗t ) ms−1 [5]
Ȋn cazul celor mai comuni senzori pentru roboţi mobili, ultrasonici, laser sau IR,
informaţia care este transmisă către robot este distanţa către cel mai apropiat obstacol
detectabil, într-o anumită direcţie. Această informaţie este folosită pentru a ajuta robotul să
navigheze direct. Se poate construi totuşi un algoritm după cum urmează: mergi catre obiectiv
dar nu mai aproape de 1 m de oricare obstacol [4]. Există câteva probleme cu această soluţie.
Una din ele este că senzorii nu au o detecţie perfectă şi datorita acestui fapt vor transmite
informatii eronate din cand in cand. Dacă utilizatorul doreşte să preia controlul asupra
robotului poate să facă acest lucru prin intermediul programului Teleoperare. Temenul de
teleoperare înseamnă a controla acţiunile unui robot de la distanţă. În cazul în care
dispozitivul are această abilitate, el se numeşte telerobot. Sistemul de teleoperare este
considerat master/slave, unde operatorul uman execută diferite sarcini prin intermediul
roboţilor. Pentru modelele mai noi de Pioneer 2 (după anul 2000) s-a prevăzut un joystick
pentru teleoperare, pe când modelele vechi, cum este şi cazul de faţă, se pot controla din
taste(fig.3).

Figura 3 Evitarea obstacolelor de către robotul Pioneer 2 DX8 prin teleoperare

După acţionarea butonului de START, robotul se află în starea Asteaptă Comanda. După
ce se primeşte comanda de mişcare, motoarele şi senzorii se activează. Robotul începe
deplasarea pe direcţia înainte până detectează un obstacol. Dacă distanţa la care se află cel mai
apropiat obstacol este mai mare de 50 cm, robotul continuă deplasarea. Când pragul de 50 cm
a fost atins, sistemul de comandă al robotului transmite informaţia către sistemul de acţionare
care modifică direcţia de deplasare spre stânga sau spre dreapta în funcţie de poziţia
obstacolului. Dacă sistemul senzorial nu detectează nici un obstacol, robotul îşi continuă
deplasarea (fig. 4).

Programul ARIA
ARIA este un program scris în limbajul C++ pentru toţi roboţii construiţi de ActiveMedia
Robotics (fig.3.5). Prin intermediul său se controlează viteza robotului, direcţia şi alţi
parametrii de mişcare fie prin comenzi simple sau printr-o infrastructură mai complexă. De
asemenea estimarea de poziţie, informaţii de la senzori şi toate datele de operare trimise de
platforma robotului sunt procesate de acest program. ARIA oferă opţiunea de integrare a unor
dispozitive I/O digitale, analogice sau seriale precum un braţ robotic, o cameră pentru
transmiterea de imagini şi un laser pentru aflarea distanţelor. O varietate de opţiuni utile
pentru roboţi se găsesc implementate în ARIA, precum recunoaşterea vocală, redarea efectului
de sunet, funcţii matematice etc. Programul este structurat pe diferite nivele de complexitate
de la simplul control prin teleoperare al robotului până la autonomie. Metoda prin care sunt
transmise şi recepţionate datele de la şi către server trebuie specificată. Dacă se doreşte
testarea unui anumit program pe un simulator, înainte de a fi copiat în microcontrolerul
robotului, cea mai bună cale este conectarea la un subprogram numit ArSimpleConnector.
Acest subprogram are ca instrucţiune principală conectarea la un simulator în cazul în care
unul este detectat, în caz contrar se efectuează conexiunea cu robotul prin portul serial. O
parte a programului de control asupra robotului este disponibilă prin programul Mathlab,
Simulink şi C. Am descăract programul ARIA, MobileSim şi ServerDemo gratuit de pe site-ul
www.mobilerobots.com ultimă variantă de ARIA fiind 2.9.4. Softul trebuie instalat pe ambele
dispozitive, robot şi calculatorul unde se doreşte compilarea, testarea sau execuţia
programelor. ARIA a fost gândit să funcţioneze ca o punte de comunicaţie între serverul
integrat al robotului şi calculator. Funcţia încorporată ArRobot are rolul de portal de
comunicaţie şi de colectare de informaţii de sine stătătoare cum ar fi poziţia (x,y) şi
viteza(translaţie şi rotaţie) [9]. Aceste informaţii sunt trimise de către robot către calculator la
fiecare 50 sau 100 ms.

Figura 4 Organigrama stărilor robotului Pioneer 2 DX


Figura 5 Arhitectura programului ARIA

Programarea
Evitarea de obstacole este una din cele mai importante probleme care se pun la
proiectarea şi realizarea unui robot mobil. Fără această capabilitate, mişcarea robotilor ar fi
restrictivă şi fragilă. Un robot mobil trebuie construit şi programat astfel încât să fie capabil să
efectueze mişcari rapide, controlate şi să fie destul de inteligent pentru a expora şi negocia
obstacolele în modul cel mai eficient [11]. A evita obstacolele înseamnă detectarea acestora şi
oprirea sau schimbarea direcţiei de deplasare a roboţilor mobili, cu scopul de a evita
coliziunile. Termenul Evitarea obstacolelor descrie un set de tehnici software, care permit
maşinilor mobile să-şi ajusteze traiectoria şi viteza în funcţie de mediul înconjurător [11].
Evitarea obstacolelor este o forma de deplasare complexa, în acest sens au fost create două
programe dedicate acestui scop. Primul este Wander mode (), program ce nu necesită
alcatuirea unei hărţi a încăperii şi a obstacolelor prezente. Robotul se deplasează şi ia decizii
pe baza informaţiilor primate de la senzori. Programul se încarcă în memoria robotului cu
ajutorul Microsoft Visual Studio. După realizarea conexiunii, meniul principal al robotului
arată totalitatea programelor active. Pentru lansarea programului se apasă tasta W în meniul
de conexiune cu robotul. Prezint în pagina urmatoare codul pentru programul Wander.
void wander(double speed, ArRobot *thisRobot)
{
int rand1; //Stabileşte dacă se schimbă direcţia
int rand2; //Stabileşte unghiul de virare
int rand3; //Stabileşte direcţia de virare
int dir; //Direcţia de virare
srand(static cast<unsigned>(time(0))); //Setarea vitezei
rand1 = (rand()%2); //Selectarea unui număr între 0 şi 1
if (rand1 == 0) //1 in 2 chance of turning
{
rand2 = (rand()%10); //Selectarea unui număr între 0 şi 9
rand3 = (rand()%2); //Selectarea unui număr între 0 şi 1
switch(rand3) //Stabileşte direcţia de mers bazată pe rand3
{
case 0:dir = -1;break; //Schimbarea direcţiei către dreapta
case 1:dir = 1;break; //Schimbarea direcţiei către stânga
}
else
{
dir = 0; //Nu se schimbă direcţia
rand2 = 0;
}
thisRobot->setRotVel(rand2*10*dir/2); //Selectarea vitezei de rotaţie
thisRobot->setVel(speed); //Selectarea vitezei de translaţie

Al doilea program pentru evitarea obsatcolelor este Obstacle avoidance mode care
pentru a fi implementat necesită o planificare anterioară a traseului de urmat precum şi
programul Mapper3Basic (fig. 3.6).
Problema planificării mişcarii unui robot mobil este aceea a găsirii unei mişcari pentru
un robot care trebuie să se deplaseze de la o configuraţie dată, la o destinaţie stabilită, într-un
mediu care să conţină o mulţime de obstacole prestabilite, astfel încât robotul să nu intre în
coliziune cu nici unul dintre acestea. Obstacolele nu sunt totdeanuna statice iar robotul nu
poate fi modelat ca un singur obiect rigid, precum în cazul problemei de baza a planificării
[8]. Este de la sine înteles că un robot care se mişca printre obstacole mobile este capabil de
performanţe mult mai mari şi de o serie de sarcini mult mai complexe. Ablitatea ocolirii
obstacolelor în mişcare este indispensabilă pentru orice robot real.
Codul pentru evitarea obstacolelor este următorul:
void obstacleAvoid(double minAng, double driveSpeed, ArRobot
*thisRobot)
{
double avoidAngle; //Unghiul de schimbare a direcţiei
if (minAng ≥ 0 && minAng < 46 ) //Dacă obstacolul este la stânga
{
cout << "TURNING RIGHT!\n";
avoidAngle = -30.0; //Virează dreapta
}
if (minAng > −46 && < 0) //Dacă obstacolul este la dreapta
{
cout << "TURNING LEFT!\n";
avoidAngle = 30.0; //Virează la stânga
}
thisRobot.setRotVel(avoidAngle); //Viteza de rotaţie
thisRobot.setVel(driveSpeed); //Viteza de translaţie
}

Figura 6 Exemplu de hartă pentru navigaţie realizată de ActiveMedia Robotics

Microsoft Visual Studio


Ingineria progrămarii este un domeniu al informaticii care realizează o abordare
sistematică a dezvoltării, operării, întreţinerii şi a eventualei retrageri a unui produs software
de pe piaţă [6]. Pentru ca programele mai sus menţionate să fie compilate şi transferate
robotului este necesară instalarea programului Microsoft Visual Studio. Producătorul
recomandă versiunea 2013. Visual Studio este un mediu de dezvoltare integrat de la
Microsoft. Acesta poate fi folosit pentru a crea aplicaţii de tip consolă şi aplicaţii cu interfaţă
grafică pentru toate platformele suportate de Windows. Visual Studio oferă editor,
debugger/compilator şi mediu de proiectare pentru mai multe limbaje de programare. Pentru a
crea un nou proiect trebuie să se respecte următorii paşi: Se acţionează butonul START, se
intră în opţiunea All Programs> Visual Studio 2013> se lansează executabilul. Din pagina de
start a programului (Start page) selectam New Project sau din meniul File>New Project. În
cadrul ferestrei New Project se selectează Visual C++ şi Win32 iar în final Win32 Console
Application. Se specifică titlul proiectului în dreptul căsuţei Name, urmată de selectarea
locaţiei şi apăsarea butonului de OK. Nu este recomandată salvarea proiectelor pe dive-ul C
datorită riscului de pierdere a datelor în cazul apariţiei unei probleme. Pentru pasul următor se
deschide fereastra Win32 Application Wizzard selectăm Application Wizzard sau mai simplu
butonul Next. Selectând oricare dintre opţiuni se ajunge în fereastra Settings. Odată deschisă
fereastra se bifează opţiunea Console Application, se bifează şi opţiunea Empty Project şi se
debifează opţiunea Security Development Lifecycle. După ce s-au efectuat setările mai sus
menţioneate se apasă butonul de Finish. În cazul apariţiei unei ferestre de avertizare se
bifează opţiunea Do not prompt me again şi apoi Ok. În momentul de faţă a fost creată o
structură vidă de conţinut a proiectului iar codul sursă trebuie creat sau adăugat, împreună cu
librăriile necesare controlării roboţilor Pioneer. Este recomandat să se încarce fişierul cu
extensia .cpp ce se doreşte a fi încărcat în proiect în subfolderul proiectului cu acelaşi nume
înainte de adaugarea lui direct în programul principal. Numele fişierului cu extensia .cpp nu
trebuie să fie identic cu numele proiectului. Pentru adăugarea unui cod deja existent în proiect,
în fereastra Solution Explorer se execută comanda click dreapta pe folderul Source Files apoi
Add>Existing Item. Dacă programul existent a fost încărcat corect în subfolderul
programului, va fi afişat în fereastra Add Existing Item.
Un cod nou se crează accesând prin click dreapta opţiunea Source File din fereastra
Solution Explorer apoi click pe Add item. În fereastra Add New Item, se accesează opţiunea
C++ File(.cpp) pentru a se crea un fisier C++, se denumeşte la alegere şi se apasă Add.
Următorul pas este configurarea proiectului pentru a găsi librăriile ARIA. Se execută click
dreapta pe Project Name aflat în fereastra Solution Explorer si se selectează opţiunea
Properties din meniu. Fereastra NewProject Properties se deschide şi se va accesa
Configuration Properties>C/C++ şi fie se tastează sau se adaugă programul existent.
În fereastra Configuration Properties>C/C++>General>Additional Include Directories se
adaugă C:\Program Files\MobileRobots\ARIA\include. Pentru pasul următor se deschide
aceeaşi fereastră Configuration Properties > Linker > General > Additional Library
Directories şi se inserează C:\Program Files\MobileRobots\ARIA\lib. În final se introduce
AriaDebugVC12.lib în aceeaşi fereastră. Proiectul este creat, configurat şi gata de compilare
(fig. 7).
Figura 7 Adăugarea unui program în ARIA

Transmiterea de imagini
Robotul Pioneer 2 a venit echipat cu o cameră Sony PTZ EVI D-30 (fig 3.8). Prescurtarea
PTZ provine de la Pan, Tilt, Zoom ceea ce corespunde mişcării pe axa x, pe axa y şi
posibilitatea de mărire şi micşorare a imaginii. Utilizatorul are posibilitatea să controleze
aceste mişcari după ce a fost realizată conexiunea cu calculatorul şi a fost selectat programul
corespunzător. La camerele standard, faţă opţiunea PTZ, câmpul vizual este definit în
momentul instalării fără posibilitatea reglării ulterioare, pe când la acest tip de cameră se
poate controla poziţia obiectivului şi după instalarea mecanică. Conexinea camerei cu placa de
baza a robotului se face prin decupajul din platforma superioară iar cablul de transmisie a
datelor este un RS 232C ce se conectează la portul auxiliar 1. Atât conectorii video cât şi
audio sunt de tip RCA. Opţional se poate ataşa un microfon cu mufa de conexiune de 3.5mm.
Pentru funcţionare, camera are nevoie de 12V.
Cele două metode de interacţiune cu camera robotului sunt prin programul ARIA şi prin
MobileEyes. În programul ARIA, camera se poate folosi doar când robotul este static.
După ce a fost instalată fizic, camera trebuie iniţializată. În Visual Basic se scrie,
compilează şi transferă programul:
ArRobot(robot); //Iniţializare robot
ArSonyD30 ptz(&robot); //Iniţializare ptz şi transfer către robot
bool ptzInitialized; //Verificare iniţializare
ptzInitialized = ptz.init(); //Iniţializare ptz
ArUtil::sleep(4000);
Figura 8 Localizarea mufelor de conexiune şi a butoanelor camerei Sony EVI D-30

În spatele camerei, găsim o serie de mufe de conexiune care fac posibilă utilizarea
multifuncţională a dispozitivului. Imaginile pot fi transmise pe un televizor, video sau
calculator folosind sistemul wireless video.
După ce s-a efectuat conexiunea, robotul se află în modul teleoperare, care permite
utilizatorului să controleze robotul după cum doreşte. Pentru a selecta modul Camera, se
apasă tasta C iar din meniul apărut se alege opţiunea 1, la pasul final se alege portul auxiliar 1.
Cu ajutorul tastelor se controlează camera prin deplasări de câte 30 pe axa y şi câte 50 pe axa
x. Pentru auto centrare se foloseşte Space. Din tastele x şi y se măreşte sau micşorează
imaginea. Factorul de mărire este de 12X atăt în mod manual căt şi automat. Rotirea camerei
este posibilă până la 2000 iar înclinaţia maximă este de 500. Rezoluţia camerei în modul
NTSC este de 768 x 494 pixeli iar în modul PAL 753 X 585 pixeli. Consumul camerei este de
11 W.
Dispozitivul de cuplaj cu sarcina(DCS) nu este atins de lumina în mod direct,
fasciculul de lumina trece iniţial prin lentilă sau sistemul de lentile. Acest lucru oferă doi
parametrii importanţi: distanţa focală şi deschiderea diafragmei. Acest DCS este un registru cu
deplasare analogic ce permite transportul semnalelor analogice prin mai multe etape
successive, sub controlul unui semnal de ceas. Principala utilizare a acestor dispozitive o
constituie senzorii de imagine folosiţi în scanere, aparate foto digitale, în telescope şi în alte
dispositive de captat imagini. Un senzor DCS cum este al camerei Sony este format dintr–un
tablou de diode fotosensibile care captează datele imaginii şi un tablou de memorare cere le
preia, atunci când este cuplat la tabloul de diode [14].
Camera are încorporat un microcomputer care memorează poziţia după fiecare
deplasare. În cazul în care ledul din drapta obiectivului este roşu intermitent memorarea
poziţiei nu a avut loc, în acest caz se apasă butonul de Reset. Datorită puterii de procesare
avansată, camera poate fi setată să distingă anumite culori şi luminuozităţi şi are opţiunea
urmăririi obiectelor cu aceste proprietăţi folosindu-se funcţiile Urmărire automată şi
Detectarea mişcărilor. Funcţia Detectarea mişcarilor analizează diferenţa între imaginea de
referinţă şi imaginea actuală. Tehnologia convenţională din spatele acestei funcţii foloseşte
luminuozitatea semnalului video. Camera Sony D-30 foloseşte atât culoarea cât şi
luminuozitatea fapt ce permite detectarea unui obiect ce se confundă cu mediul înconjurător.
Schimbarile de luminuozitate sunt monitorizate constant şi datele despre imaginea de referinţă
ajustate. Utilizatorul are la dispoziţie două arii de detecţie rectangulare, de orice dimensiune şi
în orice poziţie a ecranului. Odată ce mişcarea a fost detectată, în oricare din ferestrele de
căutare, un semnal de alarmă este emis, care spre exemplu poate porni o înregistrare. Acest
mod este versatil datorită abilităţii de ajustare a culorilor, a luminuozităţii şi a ariei de detecţie.
Urmărirea automată memorează în cadranul de selectare anumite culori ale obiectelor
şi controlează mişcările camerei cu ajutorul motoarelor de înclinaţie şi rotire. Camera are 3
moduri de urmărire: primul mod este mişcarea chenarului de selecţie cât timp camera este
fixă, al doilea mod este mişcarea camerei iar cel de-al treilea este urmărirea obiectului de
cameră şi chenar.

Transmiţătorul Video Eagle VTX2400


Încă de la descoperire, tehnologia wireless a fost folosită pentru a conecta distanţe
semnificative. Datorită acestui fapt a fost şi este principala opţiune pentru comunicaţia pe
distanţe mari. Avantajul principal în folosirea acestui sistem cu robotul Pioneer 2 este
libertatea de mişcare, datorită absentei unui cablu. În momentul primirii robotului în custodie,
din sistemul integral a ramas doar video transmiţătorul Eagle VTX2400 care transmite pe o
frecvenţă de 2.4 GHz atât semnal NTSC cât şi PAL (fig 9). Transmiţănd pe o frecvenţă înaltă,
se evită banda de 900 Mhz care este foarte aglomerată datorită telefoanelor şi altor dispozitive
audio/video. Dezavantajul acestei frecvenţe este interferenţa cu dispozitivele bluetooth.
Calitatea superioară se datorează lăţimii de banda FM spre deosebire de modulaţia AM.
Distanţa maximă a semnalului este de 100 de metri.
Figura 9 Transmiţătorul wireless Eagle VTX2400

Ledul indicator al canalului curent are 3 stări. Aprindere intermitentă la un interval de 1s


reprezintă modul Asteptare al dispozitivului. Aprinderea la intervalul de 500 ms sugereaza
stabilizarea canalului iar intervalul de 100ms avertizează asupra condiţiei bateriei. Conexiunea
video se realizează printr-o mufa BNC tată, tensiunea de varf fiind de de 1V. În interiorul
transmiţăorului, la capătul conectorului se afla o rezistenţă de 75 Ω. Alimentarea cu 12 V a
transmiţătorului se face de la bateria robotului iar curentul absorbit este de 200mA. Pentru
schimbarea canalului se apasă o singură dată butonul Toggle/StandBy şi se selectează
numarul dorit. Concomitent se va efectua aceeaşi modificare şi la receptor. Receptorul a fost
achiziţionat separat, fiind altă marcă decât originalul, dar recepţionând tot pe 2.4 GHz. Pentru
alimentare a fost folosit un alimentator universal cu tensiune reglabilă. 8V este teniunea de
funcţionare. Asemenea transmiţătorului, receptorul are şi el tot 4 canale selectabile.
Conexiunea cu televizorul se face printr-un cablu RCA audio/video.

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