Sunteți pe pagina 1din 172

Universitatea Transilvania din Braov

coala Doctoral Interdisciplinar


Departamentul: Autovehicule rutiere i Transporturi



Ing. Alina Ninett PANFIR





TEZ DE DOCTORAT




Conductor tiinific
Prof. univ. dr. ing. Gheorghe-Leonte MOGAN




BRAOV, 2014




Investete n oameni!

FONDUL SOCIAL EUROPEAN
Programul Operaional Sectorial Dezvoltarea Resurselor Umane 2007 2013
Axa prioritar 1 Educaie i formare profesional n sprijinul creterii economice i dezvoltrii societii bazate
pe cunoatere
Domeniul major de intervenie 1.5. Programe doctorale i post-doctorale n sprijinul cercetrii
Titlul proiectului: Burse doctorale pentru dezvoltare durabila BD-DD
Numrul de identificare al contractului: POSDRU/107/1.5/S/76945
Beneficiar: Universitatea Transilvania din Braov


Ing. Alina Ninett PANFIR


TEZ DE DOCTORAT
TITLU (romn): Sistem inteligent de cooperare a roboilor mobili
pitori n medii industriale
TITLU (engleza): Intelligent mobile walking robots cooperation
system in industrial environments

Domeniul de doctorat: Inginerie Industrial

Comisia de analiz a tezei:
Prof. univ. dr. ing. Anghel CHIRU Preedinte, Universitatea Transilvania din Braov
Prof. univ. dr.ing. Gheorghe MOGAN Conductor tiinific, Univ. Transilvania din Braov
Prof. univ. dr. ing. Adrian PSL Referent oficial, Universitatea Tehnic din Cluj Napoca
Conf. dr. mat. Mircea POPOVICI Referent oficial, Universitatea Ovidius din Constana
Prof. univ. dr. ing. Doru TALAB Referent oficial, Universitatea Transilvania din Braov


Data susinerii: 24/01/2014




CUPRI NS




PREFA 15
1. INTRODUCERE 17
1.2 Necesitatea i justificarea temei 17
1.3 Obiectivele cercetrii 18
1.4 Metodologia i etapele cercetrii 18
1.5 Structura i coninutul tezei de doctorat 20

2. COOPERAREA I COMUNICAREA ROBOILOR MOBILI. STADIUL
ACTUAL 24
2.1 Aspecte generale privind cooperarea n cadrul echipelor de roboi mobili 24
2.1.1 Comunicarea, cooperarea i interaciunea n cadrul echipelor de roboi
mobili 26
2.1.1.1 Cooperarea roboilor mobili 26
2.1.1.2 Comunicarea roboilor mobili 27
2.1.1.2.1 Comunicarea neexplicit fr senzori 27
2.1.1.2.2 Comunicarea neexplicit prin senzori 27
2.1.1.2.3 Comunicarea explicit 28
2.1.1.3 Interaciunile roboilor mobili 28
2.1.1.3.1 Interaciunile robot-mediu 28
2.1.1.3.2 Interaciunile om-robot 30
2.1.1.3.3 Interaciunile robot-robot 31
2.2 Aspecte privind integrarea echipelor de roboi n medii industriale 33
2.2.1 Funciile i integrarea sistemelor de cooperare cu roboii n mediile
industriale 33
2.2.2 Sisteme de cooperare cu roboi 35
2.2.3 Arhitecturi reprezentative de sisteme de cooperare existente 36
Cuprins

6

2.2.3.1 Structurile sistemelor de cooperare cu roboi 36
2.2.3.2 Sisteme de cooperare cu roboi reprezentative 37
2.2.3.3 Aspecte privind modelarea i nvarea 38
2.2.3.4 Conflictele de resurse din cadrul unei echipe de roboi 39
2.3 Structura i programarea roboilor pitori 40
2.3.1 Structurile roboilor mobili 41
2.3.2 Mediile de programare a RP de tip Nao 43
2.4 Concluzii 46

3. MODELAREA I NVAREA SECVENELOR DE MANIPULARE
I DEPLASARE A OBIECETLOR CU ROBOI PITORI 47
3.1 Aspecte generale. 47
3.2 Modelarea mediilor de lucru i a sarcinilor de manipulare 48
3.2.1 Descrierea mediilor de lucru 48
3.2.2 Descrierea operaiilor de manipulare 49
3.3 Manipularea obiectelor de ctre RP 50
3.3.1 Localizarea obiectelor de manipulat 50
3.3.2 Determinarea distanei robot-obiect 53
3.4 Deplasarea robotului pn la obiect 55
3.5 Manipularea local a obiectelor cu RP 57
3.5.1 Capabilitile de micare ale RP de tip Nao 57
3.5.2 Definirea secvenelor elementare de manipulare 58
3.5.2.1 nvarea secvenelor elementare de manipulare local 58
3.5.2.2 nvarea secvenelor elementare de manipulare n micare 60
3.5.3 Testarea i simularea algoritmilor de manipulare i deplasare a
obiectelor 62
3.6 Concluzii 64

4. PLANIFICAREA OPERAIILOR I SARCINILOR DE MANIPULARE I
DEPLASARE 65
4.1 Aspecte generale 65
Cuprins

7

4.2 Operaii, sarcini i faze 66
4.2.1 Tipuri de operaii, sarcini i faze 66
4.2.2 Operaii, sarcini i faze de manipulare cu RP 69
4.3 Descrierea operaiilor, sarcinilor i fazelor 70
4.4 Algoritmul de planificare a operaiilor i sarcinilor 73
4.5 Testarea i simularea algoritmului de planificare 74
4.6 Concluzii 76

5. SISTEM INTELIGENT DE COOPERARE A ROBOILOR PITORI 77
5.1 Aspecte generale 77
5.2 Sisteme inteligente de aciune n medii industriale 77
5.3 Structura funcional a sistemului de cooperare a roboilor pitori, NaoCoop 80
5.3.1 Structura i funcionarea proceselor offline 82
5.3.2 Structura i funcionarea proceselor online 82
5.3.2.1 Interfeele grafice ale sistemului 82
5.3.2.1.1 Interfaa grafic utilizator 83
5.3.2.1.2 Interfaa grafic de editare a bazei de date 83
5.3.2.2 Sistemul de comand i control al echipei de RP 84
5.3.2.2.1 Baza de date 84
5.3.2.2.2 Modulul pentru definirea entitilor 86
5.3.2.2.3 Modulul pentru accesul la baza de date 86
5.3.2.2.4 Modulul de comunicare cu robotul Nao 87
5.3.2.2.5 Clasa principal a RP 88
5.3.2.3 Controlerele roboilor pitori 89
5.3.2.4 Blocul de comunicare i sincronizare 90
5.3.2.4.1 Modulul de comunicare cu robotul Nao 90
5.3.2.4.2 Comunicarea RP prin transmiterea de mesaje client-
server 90
5.3.2.4.3 Comunicarea vocal a RP 92
5.4 Execuia operaiilor i testri n mediul de lucru virtual 94
Cuprins

8

5.5 Concluzii 96

6. TESTE I EXPERIMENTE CU SISTEMUL NaoCoop 98
6.1 Introducere 98
6.2 Dezvoltarea mediului de lucru 99
6.3 Definirea operaiilor pentru experimente 100
6.4 Elaborarea programului de experimente 101
6.5 Realizarea experimentelor de cooperare pentru manipulare 101
6.6 Procesarea rezultatelor experimentelor de cooperare 103
6.7 Comentarii asupra rezultatelor experimentelor 105
6.8 Concluzii 106

7. CONCLUZII, CONTRIBUII PROPRII, DISEMINAREA
REZULTATELOR I DIRECII DE CERCETARE VIITOARE 108
7.1 Concluzii finale 108
7.2 Contribuii proprii 109
7.3 Valorificarea rezultatelor cercetrii 110
7.3.1 Lucrri publicate 110
7.3.2 Participri la conferine 111
7.3.3 Participri la contracte de cercetare i dezvoltare 111
7.3.4 Stagiu extern 111
7.4 Direcii de cercetare viitoare 112

BIBLIOGRAFIE 113
ANEXE 135
Anexa 1. Subprogramul pentru accesarea nregistrrilor din baza de date 136
Anexa 2. Subprogramul pentru gsirea unui NaoMark 141
Anexa 3. Subprogramul pentru deplasarea robotului ctre NaoMark 150
Anexa 4. Subprogramul modulului de comunicare i sincronizarea a RP 155
Anexa 5. Subprogramul pentru manipularea obiectelor 158
Cuprins

9

Anexa 6. Subprogramul pentru execuia operaiilor 166

REZUMAT

169
CV (lb. roman) 170
CV (lb. englez) 171
DECLARAIE DE AUTENTICITATE 172




LI STA FIGURI LOR

Fig. 1.1 Schema bloc funcional a sistemului de cooperare dezvoltat i implementat 19

Fig. 2.1 Roboi industriali: a- fix UNIMATE; b-mobili pitori Nao 24
Fig. 2.2 Schema bloc de decizie a alocrii unei echipe de roboi 25
Fig. 2.3 Conceptul de cooperare a sistemului robotic ACTRESS [Asama, 1989] 26
Fig. 2.4 Schema interaciunilor roboi-mediu 28
Fig. 2.5 Diagrama Venn a interaciunilor robot-robot, robot-mediu 29
Fig. 2.6 Schema percepiei mediului de un robotul pitor 29
Fig. 2.7 Interaciunea robot-robot prin voce 32
Fig. 2.8 Sistem HRI. 33
Fig. 2.9 Structura general a unui sistem de cooperare cu roboi 34
Fig. 2.10 Schema general a unui sistem centralizat pe un robot 35
Fig. 2.11 Schema general a unui sistem multirobot 35
Fig. 2.12 Arhitecturile sistemelor multi-robot: a - centralizat; b - distribuit 37
Fig. 2.13 Procese industriale reprezentative de cooperare a roboilor mobili a-
prindere; b- rearanjare; c- manipulare; d- asamblare

38
Fig. 2.14 Nivele ierarhice de conducere i programare [Ivnescu, 1994] 40
Fig. 2.15 Modele de roboi mobili a - cu enile; b - cu picioare; c- cu roi 42
Fig. 2.16 Structura hardware a robotului pitor Nao 43
Fig. 2.17 Arhitectura sofware a robotului Nao 44
Fig. 2.18 Blocurile componente ale softwareului principal NAOqi 45

Fig. 3.1 Procese de manipulare: a - manual( intervenie direct; b automat (intervenie
indirect)

47
Fig. 3.2 Structura general a unui mediu de lucru [Panfir, 2012b] 48
Fig. 3.3 Procesul de manipulare a unui obiect cu RP 49
Fig. 3.4 Poziionarea i orientarea RP i a obiectelor n mediul de lucru 50
Fig. 3.5 Markere de localizare 51
Fig. 3.6 Procesul de identificare Vision cu markeri 51
Fig. 3.7 Imaginea markerului recepionat de sistemul vision 52
Fig. 3.8 Schema logic a algoritmului de localizare 52
Fig. 3.9 Programarea grafic a procesului de localizare n mediul de lucru 53
Fig. 3.10 Principiul general al vederii stereo 54
Fig. 3.11 Schema de calcul a distanei 54
Fig. 3.12 Deplasarea robotului pn la obiect 55
Fig. 3.13 Schema bloc a algoritmului de deplasare pn la obiect 56
Fig. 3.14 Parametrii geometrici ai cuplelor robotului Nao 57
Fig. 3.15 Prinderea unui obiect de sus n jos 58

Cuprins


11

Fig. 3.16 Prinderea din stnga a obiectelor 60
Fig. 3.17 Ridicarea unui obiect n timpul micrii 60
Fig. 3.18 Apropierea unui obiect n timpul deplasrii 61
Fig. 3.19 nvarea micrii de prindere de jos n sus 62
Fig. 3.20 Scenariul de operare pentru testare n mediul real 63
Fig. 3.21 Scen virtual de manipulare 63

Fig. 4.1 Structura general a unui sistem de cooperare cu roboi n echip 65
Fig. 4.2 Etapele generale de lucru ale echipei 66
Fig. 4.3 Structura general a unei operaii 67
Fig. 4.4 Structura operaiei OP6 68
Fig. 4.5 Schema de sarcini elementare componente pentru o operaie a roboilor Nao 69
Fig. 4.6 Structura operaiei de manipulare a barelor lungi (l >1,5 m) 70
Fig. 4.7 Schema general de planificare a unei operaii 73
Fig. 4.8 Schema logic a procesului de execuie a unei operaii 75
Fig. 4.9 Scenariul de simulare a operaiei de manipulare a unui bare de ctre doi RP 76

Fig. 5.1 Modele funcionale ale agenilor inteligeni: a - reflexive; b - bazai pe model;
c - bazai pe scop; d - bazai pe utilitate

78
Fig. 5.2 Modelul funcional al agenilor inteligeni bazai pe nvare 79
Fig. 5.3 Schema de pricipiu a unui sistem inteligent 80
Fig. 5.4 Arhitectura general a sistemul inteligent NaoCoop 81
Fig. 5.5 Autentificarea utilizatorului 82
Fig. 5.6 Interfaa pentru inginer de cunotiine 83
Fig. 5.7 Interfaa pentru operator 83
Fig. 5.8 Pagina de setare a roboilor 83
Fig. 5.9 Pagina de setare a datelor de intrare 83
Fig. 5.10 Arhitectura sistemului de comand i control al echipei de RP 84
Fig. 5.11 Structura bazei de date 85
Fig. 5.12 Librria pentru definirea entitilor, NaoCoopObjects 86
Fig. 5.13 Blocul pentru accesul la baza de date: NaoCoopDataAccess 87
Fig.5.14 Librria de comunicare cu robotul Nao (NaoCoopLib) 88
Fig. 5.15 Automatul finit al clasei NaoCoopRobot pentru manipulare unui obiect de
ctre doi RP

88
Fig. 5.16 Module sofware de baz a roboilor Nao 89
Fig. 5.17 Roboi Nao simulai n mediul Webots 91
Fig. 5.18 Conectarea roboilor Nao din Chroregraphe 91
Fig. 5.19 Arhitectura comunicri prin infrarou vs prin transfer de date 92
Fig. 5.20 Interfaa aplicaiei de comunicare prin transfer de date 92
Fig. 5.21 Schema de sincronizare a RP 93
Fig. 5.22 Modulul de recunoatere vocal 94
Cuprins

12

Fig. 5.23 Aplicaia NaoCoopFormsApp 94
Fig. 5.24 Fereastra Executions a sistemului NaoCoop 95
Fig. 5.25 Selectarea roboilor executani 95
Fig. 5.26 Fereastra de execuie 96
Fig. 5.27 Fiierul text cu evoluia mesajelor de informare 96

Fig. 6.1 Etapele procesului de realizare a experimentelor 98
Fig. 6.2 Mediul de lucru pentru experimente de cooperare a roboilor Nao 99
Fig.6.3 Reprezentarea spaiului de lucru al experimentului de cooperare pentru
manipularea unei bare lungi n: a NAOsim; b - Webots

99
Fig. 6.4 Scenariul de lucru asociat operaiilor pentru experimente 100
Fig. 6.5 Secvene din traectoriile operaiei OP1 101
Fig. 6.6 Secvene din traectoriile operaiei OP2 102
Fig. 6.7 Feedback-ul primit constant i n timp real de la roboi n interfaa aplicaiei
NaoCoop

102
Fig. 6.8 Timpii nregistrai pentru indeplinirea cu succes a operaiei OP1 103
Fig. 6.9 Timpii nregistrai pentru ndeplinirea cu succes a operaiei OP2 104














LI STA TABELELOR

Tab. 2.1 Caracteristicile echipelor de roboi mobili pitori 34

Tab. 3.1 Parametrii geometrici asociai cuplelor RP Nao 58
Tab. 3.2 Micri (secvene) elementare de manipulare locale (SL1..p) 59
Tab. 3.3 Micri (secvene) elementare de manipulare n micare (SM1...q) 61

Tab. 4.1 Operaii n medii industriale executabile de RP 67

Tab. 5.1 Blocurile componente ale bazei de date 84
Tab. 5.2 Paii comunicrii prin voce 93

Tab. 6.1 Rezultatele obinute la executarea operaiei OP1 103
Tab. 6.2 Rezultatele obinute la executarea operaiei OP2 104




15

PREFA

Statisticile din ultimii ani privind numrul de roboi utilizai, att n mediile industriale
ct i n cele neindustriale, arat sugestiv creteri majore, ducnd la concluzia c roboii au
ajuns sisteme indispensabile funcionrii societilor de producie i servicii actuale. ntlnii
att n procesele de producie ct i n alte arii de interes precum transporturi, divertisment,
medicin, comunicaii, sau agricultur, roboii contribuie la mbuntirea performanelor de
intervenie, dar i de raionare n vederea lurii deciziilor.
Roboii actuali sunt nvai cum s lucreze, s se autodepeasc i s relaioneze
pentru a forma adevrate comuniti. Dorina ca acetia s copieze i s reproduc n proporie
ct mai mare comportamentul uman este redat n numrul mare de lucrri i experimente
dezvoltate n ultima perioad de timp.
Ca rspuns la nevoia efecturii mai rapide i mai exacte a unor operaii complexe i la
eliminarea pericolelor ntlnite n procesele de producie actuale s-au dezvoltat echipe de
roboi care coopereaz pentru ndeplinirea sarcinilor de lucru. Odat cu evoluia operailor
care trebuie rezolvate n mod semi-automat i automat, echipele de roboi se diversific. Ideea
de a dezvolta un sistem robotic colaborativ pentru efectuarea de sarcini complexe n medii
industriale semi-structurate, nu este nou, dar realizarea acesteia a ntmpinat o serie de
probleme cum ar fi: integrarea echipamentelor hardware, folosirea unui sistem senzorial
capabil s trimit la unitatea de procesare semnale despre mediul de lucru, folosirea unei surse
de energie care s asigure o funcionare continu pe o durat de timp determinat, evitarea
obstacolelor n timpul micrilor roboilor, sincronizarea sarcinilor executate de roboi,
asigurarea unei interaciuni robot-robot ct mai naturale, limitarea situaiilor nesigure, etc.
Pentru a soluiona problemele menionate mai sus, se propune implementarea n
practic a atributului specific uman de cooperare. Spre deosebire de sistemele de roboi
mobili care au fost programai s execute sarcini independent unul de cellalt, dar care n cele
din urm a dus la ndeplinirea unor operaii simple, roboii capabili de a executa sarcini prin
cooperare nu mai sunt limitai la execuia doar de sarcini simple, ci pot participa la activiti
complexe, care necesit flexibilitate mrit i adaptare. Continund pe ideea de cooperare n
echip, cele mai folosite metode de cooperare aplicate n domeniul roboticii presupun
comunicarea direct, prin voce sau prin semnale n infrarou sau wireless. Aceste tehnici sunt
aplicate n aceast lucrare i sunt folosite pentru a rezolva problema de manipulare a
obiectelor care nu pot fi manipulate de ctre un singur robot, situaii des ntlnite n procesele
tehnologice.
Pentru verificarea algoritmilor de cooperare realizai n timpul cercetrii efectuate s-a
ales folosirea mediilor virtuale (Webots, NAOsim). Simularea scenariilor n mediile virtuale
prezint numeroase avantaje, n comparaie cu testarea direct a algoritmilor implementai n
mediul real. Utilizarea mediilor de testare virtual reduc ansele de accident, elimin
numeroasele costuri legate de folosirea unor echipamente costisitoare, reduce timpul de
testare, crete numrul de utilizatori care pot opera sistemul cooperativ, iar interaciunea om-
echip este cvasi apropiat de realitate. n urma avantajelor prezentate mai sus, n cadrul
testelor realizate, au fost concepute i implementate scenarii de cooperare cu roboi mobili
pitori Nao n diferite medii virtuale.
Din punct de vedere al interaciunii om-echip de roboi n lucrare se evideniaz
relaiile care apar ntre operatorii umani i echipa de roboi, n timpul colaborrii lor directe.
n cazul n care un operator uman dorete s lucreze cu o echip de roboi mobili, dezvoltarea
unei interaciuni ct mai naturale, uoare i mai satisfctoare pentru operator este o
necesitate, mbuntirea acesteia duce la creterea productivitii muncii, mai ales n
execuia unor operaii complexe directe n timp real. n domeniul roboticii au fost efectuate
cercetri intense n ceea ce privete folosirea de interfee alternative de interaciune a
Prefa

16

operatorului cu robotul/echipa de roboi. n aceast lucrare sunt concepute diferite interfee de
control a echipei de roboi, ca tehnici de interaciune om-echip adecvate sistemului de
cooperare dezvoltat.
Sistemul dezvoltat n cadrul acestei lucrri permite realizarea unei comunicaii simple
i necostisitoare care s permit cooperarea a doi roboi pitori (cu posibilitatea de extindere
ctre o echip format din mai muli roboi) n vederea ndeplinirii unor sarcini complexe.
Timpul de rspuns rapid al sistemului i modul de interaciune a roboilor echipei permit
dezvoltarea cu succes de aplicaii pentru monitorizarea, manipularea, deplasarea de obiecte
sau chiar asamblarea unor componente n mediul industrial.

Doresc s mulumesc conductorului tiinific, profesorul universitar Gheorghe-Leonte
Mogan, pentru sprijinul acordat continuu pe tot parcursul stagiului doctoral. Sunt, de
asemenea, profund ndatorat colegilor de cercetare Informatic Virtual i Robotic, pentru
suportul acordat n ultimii 3 ani. Nu n ultimul rnd, mulumesc familiei mele pentru sigurana
i nelegerea oferite pn n acest moment al vieii, precum i celorlalte persoane dragi din
viaa mea.

Ianuarie, 2014

Drd. ing. Alina Ninett PANFIR



17

1. INTRODUCERE

1.1 ASPECTE GENERALE
Odat cu apariia i evoluia roboilor, aplicaiile din lumea real care pot fi soluionate
prin sisteme robotizate au devenit din ce n ce mai complexe i provocatoare. Multe dintre
aceste aplicaii au loc n medii dinamice care necesit capaciti distribuite de funcionare, de
spaiu i/sau de timp. n astfel de aplicaii sunt utilizai roboi care s execute lucrrile care
sunt periculoase pentru oameni, plictisitoare, grele sau dificile. Cei mai muli roboi folosii
pentru aceste tipuri de sarcini se regsesc n diverse domenii, precum cel auto, medical,
industrial, social etc., existnd astzi un numr de peste un milion de roboi care lucreaz n
aplicaii practice.
Multe cercetri din ultimii ani care au tratat aplicaii robotice au abordat problemele
legate de echipele de roboi autonomi i cooperarea multi-roboi; ns se poate spune c
tehnologiile actuale n robotic sunt nc departe de a atinge cerinele impuse de aplicaiile
complexe (manipulare, transport sau monitorizare) ntlnite n mediile industriale.
Complexitatea proiectrii unei cooperrii sigure i precise n cadrul unei echipe de
roboi mobili este principalul motiv din cauza cruia astfel de aplicaii nc sunt n plin
dezvoltare, nefiind nc rezolvate n totalitate. Bond i Gasser descriu n lucrarea [Bond,
1998] problemele de baz ale directivei privitoare la sistemele multi-robot, printre care se
enumer urmtoarele:
Cum se poate formula, descrie, descompune sau aloca probleme i sarcinile ntr-un
grup de ageni inteligeni?
Cum se poate permite agenilor s comunice i s interacioneze?
Cum se asigur c agenii acioneaz coerent n aciunile lor?
Cum se poate permite agenilor s recunoasc i s reconcilieze conflictele?
Studiile prezentate n continuare, aduc contribuii la concepia i implementarea unui
sistem de cooperare cu roboi cu algoritmi originali de cooperare, planificare i control, n
scopul folosirii echipelor de roboilor mobili ca sisteme inteligente care opereaz n mediile
industriale.

1.2 NECESITATEA I JUSTI FI CAREA TEMEI
Necesitatea tematicii tezei de doctorat vine din nevoia de cretere a productivitii i
de uurare a muncii omului prin introducerea unor sisteme robotice mobile flexibile
cooperative, capabile s comunice i s se sincronizeze pentru realizarea de operaii complexe
ntr-un mod ct mai natural i asemntor comportamentului uman. Abordarea acestei teme a
fost determinat i de necesitatea controlului echipelor de roboi pitori (RP) universali care
s execute activitile n mediile industriale la un nivel evoluat, care s nu necesite intervenia
operatorului uman n luarea deciziilor sau gestionarea sarcinilor de ndeplinit.
n prezent, abordarea i utilizarea echipelor de roboi pentru realizarea de activiti n
medii industriale ntmpin o serie de limitri i de probleme nc nesoluionate total precum:
comunicarea ntre agenii echipei, percepia mediului de lucru, interaciunea robot-robot,
planificarea bazat pe sarcini, interaciunea utilizator-echip. Programarea clasic a echipelor
de roboi, inclusiv a celor care cuprind i roboi nu rspunde ntrutotul tendinelor actuale de
integrare a acestora n mediile industriale, care implic execuia de operaii care nu ar putea fi
realizate de un singur robot (de ex. manipularea unei bare foarte lungi i de greutate mare).
Pentru eliminarea dezavantajelor specificate s-a considerat oportun realizarea de
cercetri privind conceperea unor sisteme robotice n echip, cu precdere bazate pe
cooperare, care au la baz comunicri evoluate ale membrilor echipei i a operatorului cu
Capitolul 1

18

echipa, precum i un nivel ridicat de flexibilitate i eficien n execuia operaiilor complexe
impuse. Aceast abordare presupune dezvoltarea de noi algoritmi de cooperare i decizie,
care, prin implementare confer sistemului dezvoltat valene de sistem inteligent.
Ca urmare a justificrilor prezentate, dezvoltarea de cercetri privind cooperarea
roboilor mobili presupune concepia, dezvoltarea, implementarea i testarea de algoritmi
dedicai, precum i studii de simulare i testare privind integrarea n practic bazat pe
posibiliti de comunicare diverse.

1.3 OBIECTIVELE CERCETRII
Obiectivul principal al tezei de doctorat este studiul, concepia, dezvoltarea,
implementarea i testarea unui sistem inteligent de cooperare pentru echipele de RP care
execut activiti complexe n medii industriale.

Obiectivele specifice:
analiza bibliografic asupra cercetrilor teoretice i experimentale n domeniul echipelor
de roboi mobili pitori integrabili n medii industriale precum i a tehnicilor de
cooperare, comunicare i interaciune;
concepia i dezvoltarea unei baze de secvene n care se regsesc toate secvenele
elementare ale roboilor pitori nvate anterior;
concepia i dezvoltarea unei baze de cunotine n care se regsesc toate regulile de
producie necesare modulului de planificare;
concepia, dezvoltarea i implementarea unui sistem inteligent pentru identificarea
operaiei din baz corespunztoare cerinelor operatorului uman i alocarea roboilor
necesari execuiei operaiilor;
concepia i dezvoltarea unui sistem de comunicare bazat pe comunicare vocal a
roboilor mobili n medii industriale;
concepia, dezvoltarea, implementarea i testarea unui subsistem de sincronizare a
roboilor pitori, subsistem necesar n procesul de cooperare;
implementarea unui sistem inteligent de cooperare ;
testarea prin experimente, att n medii virtuale ct i n realitate, a sistemului inteligent
dezvoltat;
integrarea de noi interfee om-echip roboi ca mijloace de comunicare, control i
interaciune a operatorilor umani cu echipa, n timpul proceselor executate n mediul de
lucru.

1.4 METODOLOGIA I ETAPELE CERCETRII
Pornind de la obiectivele impuse prezentate mai sus i de la analiza bibliografic
asupra realizrilor teoretice i experimentale din domeniul roboticii mobile (v. cap. 2), s-a
conceput, dezvoltat i implementat un sistem inteligent integrat (fig. 1.1) n care s-au definit
nc de nceput, locul i rolul cercetrilor realizate, dar i modul de implementare a
rezultatelor acestora n practic. Astfel, n fig. 1.1 se evideniaz blocurile principale
componente ale sistemului NaoCoop dezvoltat: nvarea secvenelor elementare (v. cap. 3)
i Planificarea inteligent (v. cap. 4), ca rezultate principale ale cercetrilor teoretice de
modelare i nvare a roboilor pitori de secvene elementare de manipulare; algoritmizarea
i implementarea planificrii secvenelor n cadrul unei echipe de roboi pitori dotate cu
diferite capaciti care opereaz n medii industriale.
Pentru concepia, dezvoltarea i implementarea unui sistem hard-software nou se
realizeaz cercetri amnunite privind implementarea pe platforme software i hardware
Introducere

19

existente (v. cap.5). n vederea validrii rezultatele cercetrilor teoretice a sistemului
conceput, au fost implementate teste pentru o echip de roboi format din doi roboi Nao (v.
cap.6). Datorit faptului c noul sistem necesit i noi ci de comunicare/control, s-au
dezvoltat i prezentat diferite mijloace i dispozitive alternative de interaciune a roboilor din
echip i a operatorului cu roboii.

Cercetrile realizate n cadrul acestei lucrri au fost direcionate spre creterea
nivelului de inteligen la nivel de echip de roboi pitori, dotai cu diferite caracteristici,
folosii pentru diverse operaii ce au loc n medii industriale i care nu pot fi realizate i
executate de ctre un singur robot. Astfel, se impune ca sistemele de conducere ale acestor
echipe de roboi s fie mbuntite cu un nivel superior de conducere i programare, ceea ce a
presupus dezvoltarea unei interfee evoluate n care cerinele utilizatorului mpreun cu
informaiile stocate ntr-o baz de cunotine ajut la procesele de raionare realizate de
sistemul de inferen dedicat. Sistemul de cooperare dezvoltat n cadrul acestei lucrri
funcioneaz dup 3 trasee distincte:
nvarea secvenelor elementare de ctre roboii echipei, presupune reproducerea
prin demonstraie a diferitelor secvene de manipulare identificate n mediile industriale
(rezultate n urma cercetrilor), simularea i testarea acestora n medii virtuale,
evaluarea/validarea i stocarea rezultatelor n baza de secvene.
Planificarea operaiilor i a sarcinilor const n, alocarea prin raionare a secvenelor
elementare n cadrul echipei de roboi pe baza regulilor de producie din baza de cunotine.
Ca date de intrare ale acestui traseu sunt cerinele utilizatorului pentru a putea identifica din
ECHIPA DE ROBOI
MEDIUL DE LUCRU
NVAREA
SECVENELOR
PLANIFICAREA
FAZELOR, SARCINILOR
I OPERAIILOR
SIMULARE I TESTARE
N MEDII VIRTUALE
BAZA DE CUNOTIINE
SISTEM DE
COMAND I
CONTROL
PLAN DE OPERAII
MODELAREA
SARCINILOR I
OPERAIILOR
Inginer de cunotiine
User
Planificare inteligent
BAZA DE
SECVENE


Fig. 1.1 Schema bloc funcional a sistemului de cooperare dezvoltat i implementat

Capitolul 1

20

cunotine existente, fluxul secvenelor elementare pe care trebuie s i le execute cei doi
roboi sincronizai.
Sistemul de comand i control al echipei de RP reprezint partea central a sistemului
dezvoltat care coordoneaz toate aciunile roboilor conform planului operaiei curente; n
plus, n cadrul acestui subsistem sunt gestionate codurile de eroare i mesajele. n cadrul
acestui sistem a fost dezvoltat i modulul de sincronizare al roboilor pitori, bazat pe un
limbaj de comunicare vocal, pentru a dezvolta o comunicare ct mai natural, asemntoare
comportamentului uman.
n decursul elaborrii tezei de doctorat cercetrile dezvoltate au avut pe de-o parte un
caracter teoretico-aplicativ, prin parcurgerea succesiv a etapelor de cercetare teoretic urmate
de simulri care au demonstrat funcionalitile dorite, i, pe de alt parte, au un caracter
experimental-aplicativ, prin parcurgerea de etape de implementare n cazul situailor practice,
urmnd cercetrile experimentale pentru a valida rezultatele.

1.5 STRUCTURA I CONINUTUL TEZEI DE DOCTORAT

Lucrarea de doctorat este structurat n 7 capitole, conine un numr de 85 figuri, 9
tabele, 233 de referine bibliografice i 6 anexe.
n capitolul 1, I ntroducere, sunt descrise aspecte generale legate de studiul propus n
aceast tez de doctorat. Prima parte a capitolului descrie i justifica tema propus, pornindu-
se de la dorina de facilitare i eficientizare a integrrii echipelor de roboi pitori n mediile
de lucru industriale, prin construirea acestora ca sisteme inteligente, bazate pe cooperare, care
presupune totodat o comunicare i o sincronizare a roboilor, ce conduc la plusuri de
flexibilitate i adaptabilitate. n continuare este definit obiectivul principal al tezei: studiul,
concepia, dezvoltarea i implementarea unui sistem inteligent de cooperare pentru roboi
mobili pitori care execut activiti n medii industriale precum i 8 obiective specifice:
analiza bibliografic asupra cercetrilor teoretice i experimentale n domeniul echipelor de
roboi mobili pitori; concepia i dezvoltarea unei baze de secvene n care se regsesc toate
secvenele elementare ale roboilor pitori nvate anterior; concepia i dezvoltarea unei
baze de cunotine n care se regsesc toate regulile de producie necesare modulului de
planificare; concepia, dezvoltarea i implementarea unui sistem inteligent pentru identificarea
operaiei din baz corespunztoare cerinelor operatorului uman i alocarea roboilor necesari
execuiei operaiilor; concepia i dezvoltarea unui sistem de comunicare care are baz pe o
interaciune vocal a roboilor mobili n medii industriale; concepia, dezvoltarea,
implementarea i testarea unui subsistem de sincronizare a roboilor pitori, subsistem
necesar n procesul de cooperare; implementarea sistemului de cooperare inteligent ; testarea
prin experimente, att n medii virtuale ct i n realitate, a sistemului inteligent dezvoltat;
integrarea de noi interfee om-echip roboi ca mijloace de comunicare, control i
interaciune a operatorilor umani cu echipa, n timpul proceselor executate n mediul de lucru.
n vederea evidenierii etapelor de cercetare, precum i a integrrii rezultatelor ntr-un
ansamblu unitar, este prezentat metodologia i etapele de lucru prin intermediul unei scheme
bloc care st la baza unui nou sistem inteligent de cooperare.
n capitolul 2, Cooperarea roboilor mobili. Stadiul actual, prezint sintetic aspecte
privind cooperarea i comunicarea roboilor mobili, cooperarea om-robot, mediu-robot i
robot-robot, mpreun cu particularitile constructive de conducere i de programare a
acestora, cu referire la roboii pitori Nao aflai n dotarea centrului de cercetare de
Informatic Virtual i Robotic ce au fost utilizai pentru realizarea cercetrilor
experimentale.
n urma analizei critice, s-a constatat c implementarea unui sistem de cooperare bazat
pe comunicarea vocal a agenilor echipei din mediile industriale reprezint un pas nainte
ctre sistemele actuale cele mai dezvoltate de interaciune robot-robot, la care pot fi incluse i
Introducere

21

alte modaliti de comunicare prin unde n infrarou i wireless. La finalul acestui capitol, sunt
delimitate problematicile actuale care necesita a fi rezolvate de aceast cercetare, cu precdere
centrate pe cooperarea roboilor pitori pentru operaii de manipulare i deplasare
Implementarea unui astfel de sistem de cooperare bazat pe interaciunea vocal a
agenilor echipei din mediile industriale reprezint un pas nainte ctre sistemele actuale cele
mai dezvoltate de interaciune robot-robot, la care pot fi incluse i alte modaliti de
interaciune pe lng capacitatea de interaciune n limba englez. Pe baza acestui sistem de
interaciune pot fi apoi realizate cercetri suplimentare, utiliznd diferite module de percepie
a mediului nconjurtor.
La finalul acestui capitol, sunt delimitate problematicile actuale privitor la cooperarea
roboilor mobili care necesit a fi rezolvate de aceast cercetare. n consecina celor
prezentate se evideniaz tendina de concepie i dezvoltare a acestora ca sisteme inteligente,
cu capaciti evoluate de comunicare i de interaciune, care s permit executarea de operaii
complexe compuse din sarcini nvate n prealabil. Implementarea i dezvoltarea de medii
virtuale ofer operatorului posibilitatea de a simula i testa sarcinile programate prin nvare
nainte de a le executa n realitate, precum i concepia i implementarea unor interfee de
interaciune om-echipa.
n capitolul 3, Modelarea i nvarea secvenelor de manipulare i deplasare a
obiectelor cu roboii pitori, sunt prezentate pentru nceput procesele de modelare i nvare
a secvenelor elementare de manipulare local i n micare, deplasarea roboilor n mediul de
lucru i identificarea obiectelor, secvene necesare la construirea operaiilor echipelor de
roboi pitori prezentate n cap 5.
nvarea prin demonstrare a acestor secvene au la baz urmtoarele etape: concepia
structurilor secvenelor, nvarea secvenelor, generarea mediului virtual, testarea i
evaluarea virtual i stocarea n baza de secvene. nvarea roboilor Nao secvene de
manipulare elementare a obiectelor, s-a realizat specific pentru fiecare grup de obiecte de
manipulat n parte, conform mrimi i caracteristicii acestora (greutate, form i poziie). n
ultima parte a capitolului s-au dezvoltat teste pornind de la diferite cazuri de localizare a
obiectelor n mediul de lucru i de manipulare a acestora. Testarea algoritmilor concepui i
dezvoltai s-a realizat i n mediul virtual Webots.
n capitolul 4, Planificarea operaiilor i sarcinilor de manipulare i deplasare se
prezint algoritmul de planificare a operaiilor i sarcinilor de manipulare pentru o echip de
RP care i desfoar activitatea n mediul industrial. Acest algoritm utilizeaz secvene
elementare nvate prin demonstrare. n acest capitol se descrie detaliat modele de operaii de
baz care pot aprea ntr-un mediu industrial general, structura acestora, operaii/sarcini/faze
i secvenele pe care le pot ndeplinii RP. Planificarea i alocarea secvenelor elementare n
echipa de RP are loc dup reguli de producie IF condiie THEN aciune, stabilite pe baza
datelor de intrare primite de la utilizator.
Metodologia de dezvoltare a algoritmului de planificare a unei operaii presupune
parcurgerea succesiv a urmtoarelor etape: analiza cerinelor de intrare primite de la
utilizator; definirea i identificarea operaiei dorite i a numrului de roboi necesari execuiei
acesteia i divizarea operaiei n sarcini, faze i respectiv secvene elementare pe baza
regulilor de producie definite n baza de cunotine.
n capitolul 5, Sistemul inteligent de cooperare a roboilor mobili Naocoop, este
prezentat n prima parte un studiu bibliografic a sistemelor inteligente existente, dup care
este descris sistemul NaoCoop, fiind explicate pe rnd toate blocurile componente ale
proceselor online: interfaa de control user-sitem, baza de date, sistemul de comand i
control, controlerele roboilor Nao i blocul de cooperare i sincronizare. Acest capitol
rspunde obiectivelor specifice ale tezei de concepie, modelare, algoritmizare i
implementare a unui sistem inteligent de cooperare a RP. Interfaa prietenoas de care dispune
utilizatorul/inginerul de cunotine permite i conducerea echipei de RP de la distan. Baza
Capitolul 1

22

de date conine toate informaiile necesare pentru a efectua operaii complexe, iar sistemul de
comand i control al echipei de RP reprezint partea central a sistemului NaoCoop care
coordoneaz toate aciunile roboilor conform planului operaiei curente.
Avantajul sistemului implementat n aceast tez este reprezentat de uurina cu care o
echip de roboi este comandat de un utilizator, modul de interpretare a sarcinilor i
naturaleea de execuie a operaiei de ctre echipa de roboi printr-o comunicare vocal.
n capitolul 6, Teste i experimente cu sistemul NaoCoop, sunt concepute i realizate,
n coresponden cu cercetrile teoretice, experimente de manipulare pentru testarea
sistemului de cooperare dezvoltat precum i a rezultatelor obinute cu acesta. Pentru
experimentele de cooperare au fost parcurse urmtoarele etape: dezvoltarea mediului de lucru
pentru experimente, definirea operaiilor pentru experimente, elaborarea programului de
experimente, realizarea experimentelor i analiza rezultatelor obinute.
Pentru testarea sistemului NaoCoop, operaii complexe de manipulare a obiectelor de
dimensiuni mari i grele au fost realizate. S-a optat n urma testrii, pentru o comunicare
vocal ntre roboii echipei pentru transmiterea de informaii unul altuia. Dezavantajul major
al transmiterii informaiilor/cererilor prin infrarou ntre roboi constatat n urma acestor teste,
este faptul ca exist posibilitatea ca datele s nu se transmit i s se piard este mare i
programarea acestora se face ntr-un mod mai greoi.
n cea de a doua parte a capitolului 6 a fost conceput i implementat un experiment
pentru evaluarea calitii sistemului NaoCoop i a interaciunii om-echip n medii reale de
funcionare. Rezultatele experimentelor efectuate sunt consecina procesrii datelor colectate
de la 15 subieci cu ajutorul unui chestionar care conine date legate de utilizator (informaii
biologice i de pregtire), de specificul experimentului (percepia cooperri roboilor i a
interaciunii utilizatorului cu aplicaia/roboii) i de evaluare a calitii acesteia. n urma
procesrii i analizei rspunsurilor, rezult faptul c interaciunile om-echip i robot-robot
sunt comparate cu cele reale i foarte naturale, de unde i justificarea tendinelor actuale de
implementare a acestor sisteme.
Pe parcursul experimentelor reale au fost depistate printr-o monitorizare detaliata a
deplasrii roboilor n mediul de lucru, o serie de neconcordane ntre mediul virtual dezvoltat
i cel real, care au condus la modificarea i adaptarea programrii execuiei secvenelor de
ctre roboi n medii i condiii care nu sunt ideale. Implementarea n mediul real, pe echipa
de roboi Nao, valideaz eficiena i avantajele sistemului conceput, dezvoltat i implementat.
n capitolul 7, Concluzii, contribuii proprii, valorificarea rezultatelor i direcii noi
de cercetare, sunt prezentate concluziile finale, contribuiile originale proprii, diseminarea
rezultatelor tiinifice obinute n urma studiului (reprezentate prin lista de lucrri publicate,
participarea la conferine internaionale i implicarea n cadrul contractelor de cercetare),
precum i direcii viitoare de cercetare. Printre cele mai importante contribuii proprii se
enumer urmtoarele:
- Analiza critic a studiilor teoretice i experimentale din testarea de specialitate
privind funciile i modulul de integrare a echipelor de roboi mobili n medii
industriale, precum i stadiul actual al cercetrilor n domeniul cooperrii roboilor
i a echipelor de roboi.
- Concepia, dezvoltarea i implementarea unui algoritm de deplasare cu calibrare a
roboilor pitori n medii industriale.
- Conceperea unei baze de secvene elementare prin nvarea roboilor pitori prin
demonstrare.
- Concepia, dezvoltarea i implementarea sistemului inteligent NaoCoop, care are
la baz algoritmul de cooperare prin sincronizare bazat pe comunicare vocal.
Introducere

23

- Metodologia de dezvoltare a unui sistem de simulare i testare n medii virtuale a
funcionrii algoritmilor sistemului NaoCoop.
- Concepia, dezvoltarea i implementarea unui algoritm de planificare inteligent a
operaiilor i sarcinilor de manipulare a unei echipe de roboi pitori pe baza
regulilor de producie stocate n baza de cunotine.
- Concepia, dezvoltarea i implementarea unor interfee grafice bazate pe
arhitecturi care integreaz toate componentele sistemului, nregistreaz i
prelucreaz datele aflate n baza de date , pentru o conducere a echipelor de roboi
n timp real.
- Dezvoltarea, concepia i implementarea unei metode de sincronizare a roboilor
pitori ce are la baz un algoritm de recunoatere vocal.
- Programe i metodologii de experimentare pentru evaluarea i validarea sistemului
inteligent de cooperare elaborat i a rezultatelor teoretice obinute.
- Metoda de evaluare a performanelor sistemului NaoCoop i a interaciunii om-
echip la executarea unor operaii complexe n medii industriale.
- Concepia, dezvoltarea i implementarea unei interfee om-echip de roboi bazat
pe o arhitectur care unete toate componentele sistemului;
- Dezvoltarea unei metode de sincronizare a roboilor pitori ce are la baz un
algoritm de recunoatere vocal implementat.
- Programe i metodologii de experimentare pentru evaluarea i validarea sistemului
inteligent de cooperare elaborat i a rezultatelor teoretice obinute.
n urma studiilor realizate, n finalul acestui capitol, se evideniaz trei direcii viitoare
de continuare a cercetrii i anume: cooperarea roboilor prin mai multe tipuri de comunicri
imbricate n acelai sistem precum: conducerea unei echipe de roboi pentru cooperare,
format din diferite modele i tipuri de roboi, cu diferite capaciti; dezvoltarea de scenarii
pentru realizarea de operaii complexe n care exist obstacole mobile i creterea
complexitii operailor echipei de roboi; studii privind interfee multimodale de comunicare
om-roboi corelate cu noile tendine de programare cognitiv a roboilor.




2. COOPERAREA ROBOILOR MOBILI. STADIUL
ACTUAL

Cercetrile tiinifice iniiate n jurul anilor 1920 privind mainriile sub denumirea de
automate (termen care provine din limba greac automatos, ce nseamn a se mica singur)
au constituit nceputul fundamentrii roboticii. La acea vreme automatele nu puteau executa
dect cte un singur obiectiv/sarcin, fiind constrnse de caracteristicile acestora i de
structura lor. Odat cu apariia i evoluia roboilor ca automate evoluate, cercetrile n
domeniu s-au dezvoltat atat n mbuntirea continu a performanelor sistemelor hardware
(electrice, mecanice i hidraulice), ct i a celor software (programele de control i
conducere). Din prima generaie de roboi mobili aprui, se evideniaz sistemul Elmer i
Elsie construit de William Grey n anul 1948, format dintr-un grup de triciclete care se puteau
ndrepta spre o surs de lumin recunoscnd obiectele.
Anul naterii propriu-zis a robotului industrial, este marcat de apariia robotului
industrial fix UNIMATE (fig. 2.1,a) n anul 1956, dezvoltat de ctre cercettorii George
Devol mpreun cu Joseph Engelberger, robot implementat mai nti pentru montarea de
iconoscoape pentru televizoare, urmnd apoi altele n industria automobil. Apariia robotului
industrial a rezultat n urma existenei anumitor limitri n flexibilitatea gradului de
intervenie a omului n procesele de producie. n ultimii ani, evoluia roboilor ce acioneaz
n medii industriale, ct i n domenii nemanufacturiere cu spaii de aciune mari s-a
concretizat prin implementri de roboi mobili (fig. 2.1,b).




















2.1 ASPECTE GENERALE PRI VI ND LUCRUL ECHI PA
ROBOILOR MOBI LI
n ultimul secol s-a observat un interes crescut pentru domeniul de cercetare a
sistemelor compuse din roboi mobili care coopereaz. Muli cercettori au dezvoltat i nc
dezvolt studii i aplicaii de cooperare a roboilor din echipe cu dorina de a putea reproduce
ntr-un final comportamentul uman, fr a fi necesar intervenia operatorului n luarea
deciziilor.
Echipele de roboi mobili au aprut ca rezultat firesc a unor limitri legate de
complexitatea operaiilor ce puteau fii executate, de flexibilitatea redus pe care o permiteau
sistemele robotice vechi i datorit limitrilor legate de gradul de intervenie al omului n

a b
Fig 2.1 Roboi industriali: a - fix UNIMATE; b -mobili pitori Nao

Cooperarea roboilor mobili. Stadiul actual

25


procesele de producie. Studiile privind dezvoltarea echipelor de roboi pitori au fost
determinate de urmtoarele cerine:
complexitatea mrit a sarcinilor de realizat, deseori imposibil de executat de un singur
robot;
obinerea de performane mai bune (costuri reduse i/sau timpi optimi) dect n cazul
folosirii unui singur robot mobil;
posibilitatea de implementare cu uurin a aplicaiilor complexe.
Cooperarea (fig. 2.2) mai multor ageni presupune comportamentul de a opera
mpreun pentru a participa la elaborarea unei opere sau la realizarea unei sarcini; a colabora;
a conlucra. Diferite definiii ale termenului de cooperare se regsesc n literatura de
specialitate:
a. cooperarea este o form de interaciune ntre agenii unei echipe, de obicei, bazat pe
comunicare [Kovacs, 2011];
b. cooperarea reprezint comportamentul de colaborare, ndreptat spre un scop/rezultat,
n care exist un interes comun sau o recompens pentru agenii echipei [Balakirsky, 2007];
c. cooperarea pentru realizarea unui lucru mpreun de ctre roboii unei echipe cu
scopul crerii unui rezultat mbuntit, cum ar fi creterea performanei sau economisirea
timpului [Gifford,2008];
Operaie
Se poate
executa de ctre
un singur
robot?
Execut
sarcinile
DA
Alocare
roboi
NU
Execut
sarcina 1
Execut
sarcina 2
Execut
sarcina N
Stop
Cooperare

Fig 2.2 Schema bloc de decizie a alocrii unei echipe de roboi

Din definiiile identificate n lucrrile de specialitate se evideniaz o gama larg de
posibile perspective motivante pentru analizarea i studierea cooperrii n cadrul echipelor
de roboi mobili. De exemplu, definiia de la punctul (a) reflect o concentrare asupra tipurilor
de comunicri, informaii i resurse care se pot identifica n cadrul unei cooperri ntr-o
echip de roboi i totodat de studii legate de problemele cum ar fi corectitudinea i tolerana
la erori. Definiia de la punctul (b) descrie cooperarea, ca fiind o descompunere a sarcinilor n
vederea executrii unei operaii comune, punndu-se accentul pe alocarea sarcinilor, precum
i alte probleme de inteligen artificial distribuit, de exemplu, nvare sau raionare. n
cele din urm, definiia (c) reflect o preocupare cu msuri cuantificate de cooperare avnd ca
rezultat final o mbuntire a timpului pentru a finaliza cu succes o activitate propus. Astfel,
n aceste definiii se identific trei importante fundamente care se vor regsi n lucrare i n
jurul crora se nvrte ntregul topic al lucrrii: operaia/sarcina/faza/secvena, mecanismul de
cooperare, precum i performana sistemului.
n prezent, exist diverse tehnologii ce permit ca echipele de roboi pitori s fie
controlate de la distan. Termenul de telerobotic este frecvent folosit pentru a desemna
aplicaii bazate pe controlul web, cum ar fi, aplicaiile de teleoperare care pot fi executate n
interior, sau s fie lansate ntr-un browser web. Tot ce au aceste aplicaii n comun este faptul
c, atta timp ct maina utilizatorului are un browser compatibil, se permite accesul la
aplicaie prin internet [Zub, 2010]. n ultimii ani sistemele bazate pe aplicaii web au crescut
Capitolul 2

26


ntr-un mod prin care principalele faciliti robotizate au dezvoltat aplicaii care permit
accesul la cel puin unul dintre roboi printr-o interfa web [D. Lopez, 2009].
O abordare similar, n controlul roboilor folosind o interfa web, a fost prezentat
de ctre Gilbert n lucrarea [Gilbert, 2001; Panfir, 2011], sistemul oferind unei persoane cu
handicap capacitatea de a descrie sarcinile pe care un robot ar trebui s le desfoare n
apartamentul su, diferena fiind simplitatea sarcinilor care sunt transmise unui robot i faptul
c nu permit roboilor s coopereze n realizarea de sarcini mai complexe.
Ideea de roboi cooperani pare s fi ctigat interesul oamenilor de tiin n ultima
vreme, mai multe lucrri fiind scrise pe aceast tem, [Kiener, 2010; Jing Li, 2011]. Jing Li a
dezvoltat algoritmul multi-scop Q-learning care permite echipelor de roboi s coopereze prin
nvare. Cooperarea ntr-o echip de roboi, de exemplu, ntr-o aplicaie de fotbal, este prin
complexitatea ei o provocare pentru cei care trateaz acest domeniu [Atkinson, 2009; Lau,
2011]. Aspecte privind cooperarea se regsesc de asemenea n lucrri de specialitate privitor
la controlul roboilor [Chen, 1997; Barberd, 2011] sau controlul unei echipe de roboi folosind
interfee web [Jankoch, 2008]. Aceast tem nu a fost dezvoltat ntr-un singur domeniu,
acoperind un numr mare de domenii: industrial [Zubia, 2010; Doulgeri, 2006], educaional
[D. Fabri, 2004; Hiraishi, 1998] i social [Minamide, 2007]. Alocarea sarcinilor ntr-o echip
de roboi a fost i este un subiect tratat de muli oameni de tiin [Dahl, 2009; Elango, 2011],
fiecare dorind s rezolve aceast problem prin dezvoltarea de modele matematice dedicate.
Spre deosebire de lucrrile menionate mai sus, care evideniaz noi interfee web cu
tehnologie de ultim or [Jan Koch, 2009; Javier Zubia, 2010; Panfir, 2012c] sau care se
refer la ntrzierile care pot aprea n timpul comunicrii prin intermediul internetului
[Madrigal, 2007] alte lucrri se concentreaz pe problemele legate de coordonare i
comunicare, care pot aprea ntr-un sistem multi-agent [Marin, 2005], dei n unele cazuri se
rezum la realizarea unor sarcini simple [Saqueira, 2005].

2.1.1 COMUNICAREA, COOPERAREA I INTERACIUNEA
N CADRUL ECHI PELOR DE ROBOI MOBILI
2.1.1.1 COOPERAREA ROBOILOR MOBILI

Definiia cooperrii roboilor n cadrul unei echipe, mbinnd cele trei cerine
menionate mai sus presupune : un comportament interactiv pentru ndeplinirea cu succes a
unor operaii complexe sub conducerea unui sistem de comand i control care se bazeaz pe

Fig 2.3 Conceptul de cooperare a sistemului robotic ACTRESS [Asama, 1989]

Cooperarea roboilor mobili. Stadiul actual

27


modulele de comunicare i sincronizare a roboilor echipei, ce asigur realizarea operaiei
cu succes i totodat o cretere a utilitii i a performanei ntregului sistem. nc din anii
70, aspectul de comunicare, cooperare i interaciunile dintre ageni n cadrul unui sistem au
fost activ studiate, comunitatea de cercetare n robotic devenind foarte activ n studiul
sistemelor robotice bazate pe cooperare ncepnd cu anul 1980. Se identific un numr mare
de proiecte complexe i inovative precum CEBOT [Fukuda, 1990; Cai, 1995], SWARM
[Beni, 1988], ACTRESS [Asama, 1989] (Fig 2.3), GOFER [Caloud, 1990], SCS [Quentin,
2011]. Sistemul cooperativ TED, dezvoltat de ctre Vijay Kumar i echipa acestuia de
cercetare, reprezint o echip de roboi aerieni cooperativi care, spre deosebire de dronele
aeriene fr pilot, sunt mult mai mici i funcioneaz autonom, demonstrnd a fi o echip
foarte agila i precis, n care roboii roiesc, se percep ntre ei i formeaz echipe ad-hoc,
fiind utilizai pentru construcii i urmrirea dezastrelor. Aceste sisteme, datorita complexitii
lor, a pericolelor ce pot aprea n timpul implementrii i a dificultii de tratare a tuturor
ipotezelor conceptuale au fost iniial dezvoltate n medii virtuale de simulare (fig. 2.3),
urmnd apoi implementrile fizice care s dovedeasc i testeze rezultatele simulrii
[Bianchini, 2010].

2.1.1.2 COMUNI CAREA ROBOILOR MOBILI

Structura de comunicare n cadrul unei echipe determin modurile posibile de
interaciune ntre ageni. Dudek propune n lucrarea [Dudek, 1993] o taxonomie mai detaliat
a structurilor de comunicare a roboilor mobili i caracterizeaz comunicarea n trei tipuri
majore dup interaciunile ce pot aprea ntre agenii echipei: comunicarea neexplicit fr
senzori, comunicarea neexplicit prin senzori i comunicare explicit.

2.1.1.2.1 COMUNICARE NEEXPLICIT FR SENZORI

Acest tip de comunicare, care se dovedete a fi i cel mai simplu, este ns i cel mai
limitat, deoarece comunicarea are loc numai atunci cnd roboii interacioneaz prin contact
direct ntre ei i cu obiectele din mediu. Astfel, cooperarea se poate realiza prin ncercri
multiple care implic cutarea situaiilor programate din aproape n aproape. Aceast
modalitate a fost numit de unii cercettori i "cooperare fr comunicare". Sisteme care au
aceast form de comunicare sunt prezentate n lucrrile [Gross, 1998; Beckers, 1994; Arkin,
1992; Steels, 1990; Tung, 1994].

2.2.1.2.2 COMUNICARE NEEXPLICIT PRIN SENZORI

Comunicarea prin senzori se folosete de rezultatele senzorilor roboilor sau din mediul
de lucru, fr a exista o comunicare direct, astfel c toate datele primite de la senzori sunt
stocate ntr-o baz comun la care au acces agenii echipei, pentru a putea fi folosite i
interpretate de acetia. Acest tip de comunicare se bazeaz pe capacitatea agenilor de a
distinge ntre ali ageni care fac parte din grup i alte obiecte din mediu de operare
[Mataric,1994]. Din cauza limitrilor hardware, aceast comunicare a fost de multe ori
simulat folosind comunicaii radio, infrarou sau wireless. Cu toate acestea, mai multe
lucrri recente ncearc s pun n aplicare comunicarea prin detectare, bazata pe senzori
[Kuniyoshi, 1994a; Kuniyoshi, 1994b; Sugie,1995; Dames, 2012; Kumar, 2004; Kantor,
2003].




Capitolul 2

28


2.2.1.2.3 COMUNICAREA EXPLICIT

Cea de a treia form de comunicare implic o interaciune explicit cu ali ageni, prin
mesaje direcionate sau difuzate, (adic beneficiarul mesajului poate s fie cunoscut sau
necunoscut). Arhitecturile care permit aceast form de comunicare sunt similare reelelor de
comunicaii, de exemplu, n lucrarea [Wang, 1994] un protocol de acces media (similar cu cel
de Ethernet) este utilizat pentru comunicarea inter-robot. n lucrarea [Aguero, 2005] este
descris un protocol ad-hoc de rutare pentru comunicare numit Pera pentru roboii mobili care
au capaciti reduse de comunicaii. Astfel roboii care folosesc acest protocol pot trimite
mesaje altor roboi sau hosturi care nu sunt direct conectate la reea, prin rutarea mesajelor,
prin intermediul roboilor pe care ruleaz acest protocol Pera. n lucrarea [Gage,1993] sunt
descrise metodele de comunicare pentru mai muli roboi, meninnd o varietate de sisteme,
canalele de difuzare (n cazul n care un mesaj este trimis la toi ceilali roboi din sistem),
reflexia modulat (n cazul n care un master trimite un semnal laser celorlali roboi din
echip i acetia interpreteaz rspunsul pe baza reflexiei). Exist, de asemenea, mecanisme
de comunicare explicit concepute special pentru sistemele multiple de roboi n lucrrile
[Arai,1993; Lewis, 1992; Drgoul,1993; Goss,1992]. Structuri de comunicri explicite pot fi
gsite i n lucrarea [Yoshida, 1994], care analizeaz dimensiunile optime pentru un grup n
care se dorete o comunicare local i ntrzierile de comunicare care pot aprea.

2.1.1.3 INTERACIUNILE ROBOILOR MOBILI

2.1.1.3.1 INTERACIUNILE ROBOT-MEDIU

Metodele de interaciune a robotului cu mediul n care i execut activitatea, bazat pe
capacitatea acestuia de percepere a mediului de lucru au i capacitatea de a aciona asupra
obiectelor n conformitate cu deciziile luate de ctre sistemul de conducere (fig.2.4).
Mediul de lucru n cazul general este un perimetru, n cele mai multe cazuri nchis, care
conine diverse obiecte (fixe sau mobile), instalaii tehnologice, operatori umani i ali ageni
(roboi fici, mobili).

Sistem de conducere
Sistem
senzorial
Sistem mecanic
Instalaii Obiecte
Percepie
Ali ageni
Operatorul uman
Sistem de conducere
Sistem
senzorial
Sistem mecanic
Comunicare
Percepie Aciune Aciune Percepie
Mediul de lucru
ROBOT1
ROBOT2


Fig. 2.4 Schema interaciunilor roboi-mediu
Cooperarea roboilor mobili. Stadiul actual

29


Interaciunea bazat pe percepie
i a aciune, const n comunicarea
(schimbul de informaie) ntre roboi
sau ntre roboi i mediu. Acestea au la
baz dou sisteme: cel senzorial extern
care permite determinarea strii
mediului n care este situat robotul,
respectiv cel de aciune ce permite
robotului s efectueze sarcini (fig. 2.5).
Conform lui Ge [Ge, 2006] percepia
mediului are loc la nivel de procesare a
datelor primite de robot de la senzori
sau camere video, n urma crora sunt
generate informaii despre poziii,
culori, distane sau dimensiuni etc.
Datorit introducerii n ultimul
timp a sistemelor video i audio
[Moreno, 2009; Botterill, 2011] mult
mai performante, s-a ajuns la nivele superioare de percepie, similare cu cele umane, aa cum
este i n cazul roboilor Nao. Practic, procesul de percepie a informaiilor din mediu de ctre
un robot pitor presupune extragerea datelor, prelucrarea acestora utiliznd modele
matematice care le transform n informaii de un nivel superior i apoi evalueaz starea n
care se afl robotul relativ la ceilali roboi din echip, dup care trimite rspunsuri celuilalt
robot din echip. (fig. 2.6).
Modayil propune n lucrarea [Modayil, 2008] o metod care se bazeaz pe interaciunea
dintre roboi i mediu i presupune nvarea localizrii roboilor folosind senzorii proprii,
tipul de activitate pe care acetia o realizeaz prin comparaia cu starea anterioar a robotului.
Studiul interaciunilor dintre roboi i mediu cu ajutorul senzorilor permite urmrirea n timp
real a obiectelor n micare [Jung, 2010], activitile umane [Panangadan, 2010], intelor, ct
i mediul n care acioneaz prin anumii senzori vision dedicai [Zhang, 2010].
n urma unui studiu amnunit s-a constatat c prin percepie-aciune se permite
Robot
Robot
Mediu
Voce,
Gesturi-Mimic
Vedere
Urmrire
Interaciune real
Interaciune
virtual
Sonar
Lidar
Senzori
Fig. 2.5 Diagrama Venn a interaciunilor
robot-robot robot-mediu
Date
Date
Date
Informaii
Mediu Robot pitor
Percepie
MSURTORI
Controler/
Sistem de
conducere
Model
matematic 1
Model
matematic 2
Model
matematic N
Senzor 1
Senzor 1
Senzor N
Stare global
extern

Fig. 2.6 Schema percepiei mediului de un robotul pitor
Capitolul 2

30


localizarea, realizarea harilor mediului, detectarea i urmrirea diferitelor obiecte aflate n
cmpul senzorilor robotului. Majoritatea cercetrilor actuale sunt legate de modelele de
nvare folosite pentru procesarea datelor de la senzori, n diferite condiii i scenarii de
operare [Senthilkumar, 2012]. Datorit faptului ca exista o multitudine de tipuri i modele de
senzori cu care sunt dotai roboii pitori, scenariile de percepie au fost adaptate conform
acestora, motiv pentru care definirea unei structuri generale de percepie pentru roboii mobili
este imposibil de realizat.

2.2.1.3.2 INTERACIUNILE OM-ROBOT

Acest model de interaciune are la baza interfee om-main prin care se realizeaz
comunicarea dintre om i robot prin diferite medii [Gold, 2007; Steinfeld, 2006; Koojimans,
2007; Brooks, 2007; Breuer, 2011].
Modelele de interfee care se utilizeaz n interaciunea om-robot sunt similare cu
simurile omului: vocale (auz), haptice (atingere) i vision pentru interpretarea gesturilor i a
mimicii (vedere). De menionat, mai sunt i interfeele de tip Brain Computer Interface (BCI)
i interfeele multi-modale care nglobeaz mai multe tipuri de interfee ntr-un sistem
integrat.
n lucrrile [Karray, 2008; Steinfeld, 2006; Koojimans, 2007] sunt prezentate diferite
tendine i direcii viitoare de dezvoltare precum: interfee inteligente, adaptive i active, i
interaciunile multi-modale. Se observ c tendina n acest domeniu este de a obine interfee
ct mai naturale i mai uor de utilizat de ctre operatorul uman. Modelarea acestor interfee
se face ntr-un mod strns corelat cu capacitile de care dispun roboii. Rolul unei astfel de
interfee este de a permite operatorului accesul ct mai facil i eficient la funcionalitatea
roboilor. Ca o concluzie, n urma celor precizate mai sus, se poate meniona faptul c
designul interfeelor om-robot, depinde de caracteristicile robotului i de uurina de a fi
utilizat de ctre operatori. Pentru a avea o colaborare om-robot ct mai eficient, robotul
trebuie s aib capacitatea de a recunoate intenia omului, lucru dezvoltat i exemplificat
ntr-o serie de lucrri [Fong, 2002; Aarno, 2007; Holzapfel, 2007].
O serie de lucrri actuale, din diferite domenii, utilizeaz astfel de interfee pentru
interaciunea oamenilor cu roboi precum: roboi care joac rolul de ghizi pentru oameni n
medii n care roboii dein informaii relevante pentru turiti [Vogiatzis, 2008;Trulls, 2011;
Xu, 2012]; roboi care utilizeaz capacitile de a imita modul de comunicare uman
[Stiefelhagen, 2004] prin diferite artificii specifice interaciunii umane, precum ntrzierea
rspunsului i efectul de coabitare [Shiwa, 2009].
Interaciunea om-robot prin gesturi folosete semnele, mimica, expresiile faciale i
limbajul corporal, ns datorit nivelului de informaie mic, care poate fi comunicat prin acest
canal de comunicare non verbal, acest tip de interaciune este utilizat destul de rar. [Frintop,
2010,Burger, 2012].
n multe cazuri utilizarea interaciunii prin gesturi de ctre robot, se realizeaz pentru a
sublinia comunicarea diferitelor mesaje ctre operatorul uman [Kobayashi, 2009].
Interaciunea prin gesturi se dovedete a fi un canal de comunicare bilateral care i permite
robotului s recunoasc gesturile operatorului uman, dar totodat i permite i robotului s se
exprime cu ajutorul gesturilor [Begley, 2008].
Studiile aprofundate asupra comunicrii i interaciunii dintre om-robot [Kanda, 2003;
Brooks, 2007; Aarno, 2007] au demonstrat c utiliznd acest tip de interaciune mpreun cu
alte metode de interaciune, rezult un aspect benefic pentru operatorul uman, naturaleea
interaciunii fiind mai bun, iar acurateea recunoaterii inteniei utilizatorului fiind
mbuntit.
Interaciunea haptic este des utilizat n cadrul sistemelor de teleoperare, spre
exemplu n cazul roboilor chirurgi, care ar fii imposibil de controlat fr interfeele haptice,
Cooperarea roboilor mobili. Stadiul actual

31


cu ajutorul crora are loc transferul micrilor de la chirurg la robotul care realizeaz operaia
[Fai, 2005; Salter, 2006]. Interfeele haptice se dovedesc a fi extrem de utile pentru a controla
de la distan roboii de intervenie i inspecie a dispozitivelor explozive sau a roboilor ce
opereaz n medii nucleare.
n lucrarea [Argall, 2010], se prezint o interaciune haptic om-robot n care puncteaz
importana deteciei atingerii umane de ctre robot, prin folosirea unor tipuri de dispozitive
tactile, pentru controlul n siguran a roboilor de ctre oameni. n cadrul aceste interaciuni
se pot structura trei metode de interaciune fizic om-robot n funcie de modul de contact:
contact care intervine n execuia sarcinilor robotului, contact care ajut la execuia acestora
i contact care contribuie la mbuntirea comportamentului robotului.
Interaciunea de tip BCI prezentat n lucrrile de specialitate [Postelnicu, 2011;
Postelnicu, 2012] s-a constatat a fi superioar interfeelor clasice de tip mouse/tastatur sau
joystick prin care au fost realizate anumite sarcini de parcurgere a unor trasee virtuale. n
contrast cu avantajele aduse persoanelor cu dezabiliti, acest model de interfa prezint totui
i dezavantaje: dificultatea transmiterii unei cantiti mari de informaie, necesitatea existenei
unui context foarte clar de operare, flexibilitatea redus a sistemului pentru mai muli operatori,
lipsa naturaleei interaciunii fa de alte metode de interaciune, canal de comunicare
unilateral. Aplicarea acestor modele de interaciune se dovedete a fi limitat fa de celelalte
tipuri de interfee vocale, multi-modale, haptice sau cele prin gesturi, datorit faptului c pentru
operatorii obinuii este necesar depirea unui set nsemnat de probleme.
Interaciunea multi-modal folosete cel puin dou din interfeele prezentate mai sus.
Acest tip de interaciune a fost des utilizat n programarea interactiv a roboilor care
utilizeaz o combinare a interaciunii multi-modale mpreun cu programarea prin
demonstraie i controlul multi-modal al unui robot. Programarea interactiv permite i un
control uor al roboilor de ctre utilizatori non-experi [Iba, 2004; Stiefelhagen, 2004].
Interaciunea multi-modal a fost utilizat i n medii domestice, cu ajutorul crora roboii au
fost comandai prin comenzi vocale n limba japonez, care se dovedete a fi capabil n
recunoaterea gesturilor [Oka, 2009; Oka, 2011]. Un alt robot mobil autonom folosit n
mediile domenstice este descris n lucrarea [Breuer, 2011], care prezint o interaciune multi-
modal cu caracteristicile urmtoare: recunoaterea gesturilor i a expresiilor faciale, detecia
i urmrirea oamenilor cu ajutorul unui sistem lidar, localizarea oamenilor, recunoatere i
sintez vocal n limba englez O interfa multi-modal care mbin recunoaterea vocal i
a gesturilor ambelor mini pentru interaciunea natural cu utilizatorii umani este descris n
lucrarea [Burger, 2012].

2.2.1.3.3 INTERACIUNILE ROBOT-ROBOT

Interaciunea robot-robot, se refer fie la interaciunea robotului cu ali ageni (roboi)
din echip, mobili sau fici sau fie cu alte instalaii industriale aflate n mediul de operare a
robotului [Gil, 2010; Senthilkumar, 2012; Antonelli, 2010]. Modelele de interaciune robot-
robot au la baz comunicarea roboilor (fig. 2.4) care se caracterizeaz prin existena unui
protocol comun de comunicare situat deasupra celui de transfer de date, care face parte din
categoria interaciunilor de tip server-client specifice reelelor de calculatoare.
Aceast modalitate de comunicare este preferat datorita faptului c, att roboii ct i
agentul conin, cel puin un calculator de proces care are la rndul lui o interfa de reea cu
sau fr fire; n cele din urm, comunicarea cea mai eficient ntre aceste tipuri de entiti are
loc prin transferul de pachete de date prin intermediul reelei.
Cu ajutorul protocolului este descris modul de reprezentare al informaiei transferate
mpreun cu modul de codare i decodare a acesteia [Chen, 2013]. O alt metod n care este
ntlnit interaciunea ntre roboi n mediul de operare (cooperarea ntre roboi) sunt echipele
de roboi care particip la cupa de fotbal RoboCup este descris n lucrarea [Farinelli, 2010].
Capitolul 2

32


Metoda propusa de Farinelli utilizeaz un algoritm distribuit care ajut la calculul satisfaciei
ndeplinirii fiecrui scop pentru fiecare robot n parte component al echipei. n lucrarea
[Varghese, 2010] este descris proiectarea i dezvoltarea unui model matematic al unui sistem
de tip roi de roboi mobili bazat pe primitive macroscopice.
Comunicarea vocal robot-robot spre deosebire de ale metode de comunicare are
avantajul major de a permite un flux de informaii suficient pentru a comunica rapid, folosind
un vocabular restrns care este legat de funcionalitatea de baz a robotului, conform
modelelor de comunicare vocal om-robot prezentate n multe lucrri [Boulebtateche, 2005;
Medicherla, 2007; Ozdemircan, 2008; Topoleanu, 2009; Gorostiza, 2011; Kyriacou, 2004].
Aceast metod de comunicare este cea mai natural, ntruct reprezint transpunerea
comportamentului de interaciune vocal a oamenilor n mediul robotic. n ciuda acestor
avantaje, exist i dezavantaje datorit interfeelor actuale, care pentru anumii roboi nu sunt
suficient de performante pentru a fi compatibile pentru comunicarea verbal inter-uman din
punct de vedere al eficienei i rapiditii.
Comunicarea vocal dintre doi roboi presupune utilizarea unei interfee vocale format
din dou subsisteme: cel de recunoatere vocal, necesar pentru interpretarea informaiilor
vocale transmise de cellalt robot i respectiv subsistemul de sintez vocal, care are rolul de
a genera un rspuns pentru ceilali roboi ai echipei (fig. 2.7).

Robot
Robot
Interfa vocal
Recunoatere
vocal
Sintez vocal
Mesaj
Rspuns
Mesaj
Comand
voce voce
Fig. 2.7 Interaciunea robot-robot prin voce

Chiar dac recunoaterea i sinteza vocal, procesarea limbajului natural, dar i
nvarea limbajului sunt domenii care au fost tratate de cercettori de-a lungul timpului
aplicarea acestora n domeniul roboticii nu a avut loc dect n ultimele dou decenii. Odat cu
dezvoltarea echipelor de roboi care s coopereze ntre ei, aceast modalitate de comunicare
bazat pe limbajul vorbit a nceput s se dezvolte spre direcii i perspective inovative, legate
de studiul izolat al sistemelor de recunoatere, sintez i procesare a limbajului dedicate
[Topoleanu, 2011].
De obicei, interfeele de comunicare vocal sunt realizate folosind diverse librrii
speciale de recunoatere i sintez vocal. Aceste interfee au posibilitatea, n general, de a
recunoate un numr limitat de limbi de circulaie internaional, limba englez fiind cea mai
bine reprezentat, motivul se datoreaz istoriei ndelungate a cercetrii n domeniul
recunoaterii i a sintezei.
Din dorina de a spori naturaleea comunicrii i de a mbunti capacitatea robotului
de a nelege comenzile, modelul de interaciunea vocal ncearc s i fac loc ct mai mult
n orice tip de aplicaii robotice care au i alte sisteme de interaciune, formnd n acest fel
sisteme cu mai multe modaliti de comunicare, numite sisteme de comunicare multi-modale.



Cooperarea roboilor mobili. Stadiul actual

33


2.2 ASPECTE PRI VI ND I NTEGRAREA ECHI PELOR DE
ROBOI N MEDII INDUSTRIALE
Mediul industrial este definit ca
fiind locaia de producie caracterizat n
principal printr-un ansamblu de activiti de
transport, de manipulare i de procesare de
materiale, avnd ca rezultat anumite tipuri
de produse i/sau dezvoltarea anumitor
procese tehnologice sau servicii. n mediile
industriale numrul de roboi fie ei fici sau
mobili introdui n ultimii ani a crescut
foarte mult, din dorina de a fi dezvoltate
sisteme robotizate complet autonome. Ca
urmare a dinamicii de peste 50 ani, robotica
n mediile industriale se ndreapt spre
dezvoltarea unor sisteme cooperative, din
ce n ce mai complexe, cu interaciui robot-
robot (RRI Robot-Robot Interaction) i cu interaciuni om-robot (HRI Human-Robot
Interaction) evoluate (fig.2.8) [Kanda, 2003; Fai, 2005; Brooks, 2007; Monje, 2011; Karray,
2008; Giuliani 2010, Argall, 2010]. Spre deosebire de alte medii, cum ar fii cele urbane,
subacvatice, agricole, forestiere etc., mediile industriale sunt caracterizate de cerine specifice
riguroase, n ceea ce privete: structura (numrul de parametri care variaz trebuie s fie ct
mai mic), nivelul de securitate ( programatorul trebuie s acorde o atenie mai mare n cazul
sistemelor HRI dect n cazul celor RRI), necesitatea unor sisteme senzoriale externe i/sau
auxiliare (care ajut la identificarea poziiei, obstacolelor fixe sau mobile etc.). Interaciunile
i comunicarea dintre oameni i roboi a dus cu timpul la apariia sistemelor de comunicare
robot- robot i om-robot integrate, fiind folosite i ca tehnici de mbuntire a sistemelor HRI
[Kanda,2004; Fong, 2002; Xu, 2011; Xu, 2012].

2.2.1 FUNCIILE I I NTEGRAREA ECHI PELOR DE ROBOI N
MEDI I LE I NDUSTRI ALE
n general, funciile unui sistem de cooperare al roboilor mobili pitori din mediul
industrial sunt [Niulescu, 2001]: de navigare n mediul de operare; de manipulare
(apucare/eliberare, deplasare i poziionare a unui obiect n spaiul de operare); de percepie i
analiz, robotul culege informaii despre mediul n care se afl, despre starea sa sau despre
starea altor roboi din procesul tehnologic, dup care face o analiz a acestora n corelaie cu
cele impuse de programator; de comunicare/cooperare, prin schimbul informaiilor percepute
i analizate dintre om-robot, mediu-robot i/sau robot-robot; de nvare a aciunilor,
presupune nvarea unor secvene prin repetare/copiere/demonstrare care vor ajuta la
mbuntirea sistemului [Boboc, 2013b]; de raionare i decizie, bazat pe cunotine definite
anterior.
Sistemele de roboi care coopereaz dezvolt activiti n medii industriale n
urmtoarele scopuri: transportul obiectelor, pieselor sau dispozitivelor n diferite puncte i
locaii; monitorizarea produciei i a fluxului tehnologic; asamblarea/mpachetarea de produse
sau pri componente ale acestora, prin aezarea i fixarea acestora conform structurii de
funcionalitate; execuia de sarcini de procesare din procesul tehnologic i inspecia n vederea
identificrii i msurrii caracteristicilor unor piese (forme, culori, dimensiuni, greuti).
Scopul proiectrii, dezvoltrii i implementrii echipelor de roboi (fici sau mobili) a constat

Fig. 2.8 Sistem HRI

Capitolul 2

34


n prima perioad n mrirea eficienei aciunilor asupra mediilor tehnologice prin creterea
vitezei i a preciziei de execuie [Mogan, 2009] i apoi n nlocuirea ntr-un numr ct mai
mare a operatorilor umani care lucreaz n astfel de medii care frecvent pot fi periculoase,
austere i nu n ultimul rnd extrem de nocive.
n fig. 2.9 este prezentat schema general a unui sistem de cooperare a roboilor
dintr-un mediu industrial n care sunt evideniate principalele blocuri componente i
interaciunile dintre acestea.


Fig 2.9 Structura general a unui sistem de cooperare cu roboi

Un sistem de cooperare a roboilor mobili este definit ca o familie de ageni care
lucreaz mpreun pentru realizarea unui scop comun (execuia unei operaii complexe) unde
este nevoie de o interaciune strns ntre toi partenerii echipei prin accesul comun la
informaii i schimbul continuu de date ntre acetia [Farley, 1998].
Datorita faptului ca mediile industriale sunt medii dinamice i complexe, ce presupune
c interaciunile dintre roboi-mediu-utilaje i oameni pot conduce la situaii conflictuale care
ns nu pot fii tratate i soluionate de ctre sistemele clasice bazate pe secvene certe, apare
nevoia de a trece la sisteme inteligente bazate pe tehnicile inteligenei artificiale, cu precdere
pe cele de percepere, nvare i raionare (tab. 2.1).
Tab. 2.1 Caracteristicile echipelor de roboi mobili pitori

Pragul de
autonomie
Funciile realizate Interaciunea echipei de roboi cu
operatorul uman
Neautonom Percepie, comunicare i
execuie
Operatorul uman intervine n luarea
oricrei decizii, prin analiza proprie,
n urma crora trimite comenzile
necesare robotului spre execuie
Autonomie
semi-automata
Percepie, analiz i execuie Operatorul uman intervine n luarea
unei decizii n urma analizei primite
de la robot
Autonomie pariala Percepie, analiz, decizie i
execuie
Operaiile simple sunt executate fr
intervenia operatorului

Autonomie totala
Percepie, analiz,
percepere, raionare, nvare
decizie i execuie
Operaiile complexe sunt executate
fr intervenia operatorului.- sistem
expert
Cooperarea roboilor mobili. Stadiul actual

35


Este important de specificat faptul c odat cu creterea nivelului de autonomie, crete
i complexitatea sistemului de control al robotului mobil.

2.2.2 SISTEME DE COOPERARE CU ROBOI
Avnd n vedere un grup de roboi, un mediu de lucru i o sarcin de executat, se pune
ntrebarea/problema urmtoare: n ce condiii i cum ar trebui s coopereze roboii pentru
execuia sarcinii?. n multe exemple practice de cooperare s-au abordat doar unele aspecte
ale acestei probleme, axele majore de cercetare n acest domeniu nc nu au fost abordate
structural [Chen,1994; Donald,1994].
Pentru realizarea unui comportament de cooperare bazat pe o infrastructur i
arhitectur de grup se impune
studiul conceptelor de
eterogenitate/omogenitate a
roboilor, capacitate a roboilor s
recunoasc i s poat
interaciona ntre ei, i structura
subsistemului de comunicare.
Pentru ca mai muli roboi s
lucreze ntr-un spaiu comun,
pentru a manipula diverse obiecte
mpreun i, eventual, pentru a
comunica unul cu cellalt, este
nevoie i de un mecanism de
rezolvare a conflictelor de
resurse.
Controlul cooperrii, este o problem-cheie pentru sistemele multi-robot n multe
aplicaii practice. n multe lucrri aceast problem de coordonare a unui set de roboi mobili
a fost tratat i mbuntit de la un an la altul. n lucrarea [Farinelli, 2010] pentru rezolvarea
eficient a problemei de coordonare se prezint o abordare care se bazeaz pe calculul
distribuit de a msura satisfacia fiecrui agent (agent Satisfaction). n urma planificrii
individuale a sarcinilor de ctre roboi
Capacitile de comunicare de care dispun majoritatea roboilor duc la conceptul de
sistem multirobot (multiagent).
Un astfel de sistem se definete
ca fiind o reea distribuit de
ageni, care lucreaz mpreun
pentru ndeplinirea anumitor
sarcini comune, care sunt
imposibil de realizat individual
de fiecare agent n parte [Mas,
2012].
nainte de apariia
sistemelor multirobot, au aprut
sistemele de conducere
centralizate/bazate pe un singur
robot (single-agent
sistem)[Stone, 1997]. Sistemele
de acest gen se caracterizeaz
prin faptul c un singur agent ia
toate deciziile, iar restul agenilor
Robot
Obiective
Aciuni
Cunotiine
Robot
Robot
COMENZI
EFECTORI
SENZORI
Mediul de
operare
Fig 2.10 Schema general a unui sistem centralizat pe un
robot
Robot
Obiective
Aciuni
Cunotiine
Efectori
Senzori
Mediul de
operare
Obiective
Aciuni
Cunotiine
Obiective
Aciuni
Cunotiine
Robot
R
o
b
o
t
INFORMAII
Senzori
Senzori
Efectori
Efectori
Fig 2.11 Schema general a unui sistem multirobot

Capitolul 2

36


se comport ca i clieni. Cu toate c, aceste sisteme ar trebui s fie mult mai eficiente i mai
simple dect cele multiagent, n cazul operaiilor complexe se ntmpla a fii chiar invers.
Dezavantajul sistemelor centralizate pe un singur agent (fig. 2.10) este c agentul
dominant (masterul) devine o entitate independent, cu propriile sale aciuni, obiective i
cunotine, care va considera c oricare ali ageni din mediul respectiv de operare fac parte
din mediul nconjurtor.
Sistemele multirobot (fig 2.11), difer de cele centralizate pe un singur robot, prin faptul
c roboii i modeleaz obiectivele, aciunile i comportamentul n funcie de ceilali ageni
componeni ai sistemului. Toate interaciunile (comunicrile) prin care se schimb informaii
ntre roboi sunt separate de mediul de lucru. Datorit modalitii prin care ali roboi
componeni ai sistemului pot afecta mediul n care opereaz n moduri imprevizibile,
sistemele multirobot pot fi privite ca avnd un comportament dinamic. n cadrul sistemelor
multirobot, pot exista roboi care au capaciti de a comunica cu ali roboi ntr-un mod direct,
dar respectiv exist i ageni care nu pot comunica dect indirect [VanLehn,1991].

2.2.3 ARHI TECTURI REPREZENTATI VE DE SI STEME DE
COOPERARE EXISTENE
Arhitectura de grup a unui sistem robotic de cooperare asigur infrastructura, n care
sunt puse n aplicare comportamentele colective i determin capacitile i limitrile
sistemului. Caracteristicile cheie arhitecturale ale unui grup de roboi sunt legate de
centralizare/descentralizare, difereniere, precum i abilitatea de a modela ali ageni.

2.2.3.1 STRUCTURILE SISTEMELOR DE COOPERARE CU ROBOI

Arhitecturile sistemelor de cooperare cu roboi pot fi centralizate sau descentralizate, iar
n cazul n care este descentralizat, pot fi ierarhice sau distribuite [Navarro, 2011; Lopez,
2011]. Arhitecturile centralizate utilizeaz principiul organizrii informaiei culese de senzorii
roboilor la un nod central unde se realizeaz conducerea i controlul tuturor roboilor
sistemului [Hofmeister,2011] (fig. 2.12a). Aceste sisteme prezint dezavantajul major al
pierderii comunicrii cu nodul de informaie i conduce la nefuncionalitatea total a
sistemului. Datorit acestui dezavantaj, cercetarea sistemelor cu arhitectura distribuit este
mult mai dezvoltat, ntruct acestea sunt concepute pentru a permite un control al sistemului
multi-robot pe baza comunicrii paralele ntre toi roboii (fig. 2.12b) [Turpin, 2012; Hsieh,
2008 ; Wang ,2007; Svaco,2011]. Exist dou tipuri de arhitecturi descentralizate: arhitecturi
distribuite, n care toi agenii sunt egali n ceea ce privete controlul, i arhitecturi ierarhice,
care sunt centralizate local. n lucrarea [Carpin, 2009] este prezentat un studiu experimental al
arhitecturii distribuite a roboilor mobili de-a lungul unor ci pre-determinate, n care este
folosit un algoritm de programare aleatoriu a prioritilor, dar i metode de programare a
prioritii exacte sau aleatorii.
n lucrarea [Siagian, 2011] se prezint arhitectura bazat pe utilizarea unui tip de robot
BeoBot care deine o putere de procesare ridicat datorit unui cluster de procesare cu 16
nuclee de 2.2 GHz. Autorii testeaz puterea de procesare a mai multor roboi pentru mai
multe sarcini de localizare, scanare i recunoatere de obiecte.
n prezent, paradigma dominant este abordarea descentralizat. Este unanim susinut c
arhitecturile descentralizate, au mai multe avantaje clare fa de arhitecturile centralizate,
inclusiv toleran la erori, exploatarea natural a paralelismului, fiabilitii i scalabilitii
[Arkin ,1992; Steels,1994; Mataric,1994]. n practic, multe sisteme nu sunt conforme cu o
structur centralizat/distribuita strict, de exemplu, multe arhitecturi mari distribuite
utilizeaz ageni "lider". Exist unele arhitecturi centralizate/descentralizate hibride n care
Cooperarea roboilor mobili. Stadiul actual

37


exist un planificator central care exercit controlul la nivel nalt peste cea mai mare parte a
agenilor autonomi, [Aguilar,1995; Causse,1995; Lueth,1994; Noreils, 1993].

Server de
control
centralizat
Robot
2
Robot
3
Robot
4
Robot
5
Robot
N
Robot
1
Robot
mobil
1
Robot
mobil
2
Robot
mobil
N
Robot
mobil
3
a b


Fig. 2.12 Arhitecturile sistemelor multi-robot: a - centralizat; b - distribuit

Echipele de roboi pot fi omogene, dac caracteristicile roboilor sunt identice i
eterogene n caz contrar. n general, eterogenitatea introduce complexitate mrit deoarece
alocarea sarcinilor devine mai dificil i se impune modelare a mai multor tipuri de roboi
[Howard,2006]. Cercettorul Parker dezvolt n lucrrile [Parker, 1994; Parker 2004]
conceptul de acoperire a sarcinii, care msoar capacitatea unui membru al echipei de a
realiza o anumit sarcin. Acest parametru este un indice al cererii de cooperare atunci cnd
sarcina de acoperire este mare i sarcinile pot fi realizate fr cooperare, n caz contrar
cooperarea este necesar. Sarcina de acoperire este maxim n grupuri omogene, i scade pe
msura ce grupurile devin eterogene (de exemplu, n limita n care un singur robot din grup
poate ndeplini numai el o anumit sarcin dat). Literatura de specialitate este dominat n
prezent de lucrri care presupun grupurile omogene de roboi [Ayanian, 2010]. Cu toate
acestea, unele arhitecturi notabile se ocup de eterogenitate, de exemplu, ACTRESS i
ALLIANCE [Parker, 1995; Parker, 1998].

2.2.3.2 SI STEME DE COOPERARE CU ROBOI REPREZENTATI VE

n cazul sistemelor de cooperare a roboilor industriale (fig.2.13) pot aprea conflicte
de resurse, care pot fi rezolvate prin introducerea, de exemplu, a unor reguli de navigare,
stabilirea prioritilor, sau a arhitecturii de comunicare. Dintr-un alt punct de vedere,
planificarea traseurilor trebuie s fie efectuat lund n considerare roboii participani i
totodat i mediul n care opereaz [Turpin, 2013; Michael,2009; Batarlien, 2007]. Regulile
de navigare sunt utilizate n mod obinuit pentru a reduce costurile de planificare, pentru
evitarea coliziunilor [Kitts,2009] i a blocajelor [Brooks,1986; Schulman ,2013]. n
experimentele descrise n lucrrile care folosesc abordare bazat pe comportament, roboii nu
se limiteaz la reelele rutiere [Fink, 2009; Wang, 2012].
Multe lucrri au abordat problema manipulrii (Fig. 2.13) obiectelor, de mpingere a
unei cutii [Mataric,1995], accentul fiind pus pe alocarea sarcinilor, tolerana la erori i
consolidarea nvarii [Khatib,1996]. n contrast, n lucrrile [Donald ,1994 ;Yamashita
,2001] se studiaz protocoale n cazul mpingerii a dou cutii, n ceea ce privete comunicarea
lor intrinseca i cerintele hardware, prin conceptul de invariani de informare. Manipularea
prin cooperare de obiecte de mari dimensiuni este deosebit de interesant, n unele cazuri se
poate realiza fr ca roboii executani s tie unii de existena celorlali [Sen ,1994;
Tung,1993]. n alte lucrri din clasa de deplasare prin mpingere a obiectelor sunt prezentate
n [Fink, 2011; Cheng, 2008; Michael, 2009; Michael, 2011 ; Berman, 2011].
Capitolul 2

38


n zootehnie au fost implementate sisteme de cooperare cu roboi cu sarcina de cutare
a hranei animalelor [Berman, 2010; Cheng,2009; Doty,1993]. Aceast sarcina a fost studiat
frecvent deoarece, ea poate fi efectuat de ctre fiecare robot n parte (pentru o cretere a
performanei) i se dovedete a fi extrem de interesant ca urmare a implementrii
comportamentelor biologice pentru sistemele de cooperare cu roboi.
O mare varietate de tehnici au fost aplicate, variind de la simple sinergii (micri n
esena aleatorii), care au ca rezultat colectarea ntmpltoare de obiecte [Beckers,1994] la
algoritmi compleci, n care roboii formeaz lanuri prin care obiectele sunt transmise de la
unul la altul ctre punctul final [Melinger ,2010]. Beckers definete simergia ca fiind
"producerea unui anumit comportament ntre ageni, ca i consecina efectelor produse n
mediul local de comportamente precedente". Aceasta este de fapt o form de "cooperare fr
comunicare", care a fost obiectul de nceput a ctorva soluii de cutare a hranei.
Printre domeniile de activitate interesante care au fost tratate n literatura de
specialitate, se numr i sistemele de salvare [Balakirsky,2007; Kleiner,2006; Birk,2005;
Kantor, 2003] sistemelor de securitate [Everett,1993], de detectare a minelor i garda
[Franklin ,1995], sisteme de cautare, identificare i localizare a intelor [Hsieh,2007;
Charrow,2012], sisteme structurale de sprijin robotizate (de exemplu, pstrarea structurii
stabile, n caz de cutremur) [Hackwood ,1994], sisteme pentru realizarea harilor [Hsieh,2007;
Michael,2012], sisteme de entertainment sau ghidare [Vogiatzis, 2008] echipe pentru
curenie [Bhattacharya, 2011], precum i asamblarea de obiecte [Lindsey,2011].

2.2.3.3 ASPECTE PRI VI ND MODELAREA I NVAREA

Modelarea inteniilor, convingerilor, aciunilor, capacitilor i strilor agenilor care
coopereaz poate duce la o eficien mrit a proceselor. Cerinele de comunicare pot fi, de
asemenea, reduse dac fiecare robot are capacitatea de a modela ali roboi. Modelarea altor
ageni implic mai mult dect o comunicare implicit prin sistemul su de percepie. n
robotica de cooperare, modelarea unui agent a fost explorata mai n detaliu, n contextul

Fig. 2.13 Procese industriale reprezentative de cooperare a roboilor mobili a - prindere;
b - rearanjare; c - manipulare; d - asamblare


Cooperarea roboilor mobili. Stadiul actual

39


manipulrii obiectelor de dimensiuni mari. Multe soluii au exploatat faptul c obiectul poate
servi ca mijloc comun prin care agenii se pot modela reciproc. Cel de al doilea protocol de
mpingere a cutiilor din lucrarea [Donald ,1994] poate realiza "cooperare fr comunicare"
din moment ce obiectul de manipulat funcioneaz, de asemenea, ca un "canal de
comunicare", care este mprtit de ctre roboi; alte lucrri valorific acelai concept pentru
a obine legi de control, distribuite, care se bazeaz doar pe msurile locale de for, cuplu,
orientare, sau distan, de exemplu: nu este necesar nici o comunicare explicit (conform
lucrrilor [Stilwell,1993; Hashimoto,1993]). ntr-un task de transport folosind doi roboi,
cercettorii Fukuda i Sekiyama [Fukuda,1994] folosesc un model probabilistic al celuilalt
agent. Cnd un prag de risc este depit, un agent comunic cu partenerul su pentru a
menine coordonarea.
n lucrrile [Donald, 1993a; Donald, 1993b], teoria invarianilor informaiei este
folosit pentru a demonstra c, capacitile hardware suplimentare pot fi adugate n scopul de
a deduce aciunile altui agent, reducnd astfel cerinele de comunicare. Acest lucru este n
contrast cu cele prezentate n lucrarea [Sen ,1994], n cazul n care roboii pot realiza sarcina
de a mpinge o cutie, dar nu au cunotin unul de cellalt. Pentru o sarcin mult mai
complex, care implic amplasarea a cinci birouri, un grup omogen de patru roboi se
folosete de un aparat de fotografiat din tavan pentru a obine informaiile despre poziii, fr
ca acetia s comunice ntre ei [Sugie,1995]. Fiecare robot se bazeaz pe modelarea altor
ageni pentru a detecta conflictele de trasee i poziiile birourilor, i pentru a schimba
planurile n funcie de necesitate.
n vederea obinerii valorilor corecte pentru parametrii de control care conduc la
comportamentul de cooperare dorit, este necesar pentru sistemele cu mai muli roboi, ca
acetia s fie capabili s nvee valorile parametrilor de control, n scopul de a optimiza
performanele lor n efectuarea unei sarcini, i s se adapteze la schimbrile mediului.
nvarea [Barto,1983; Kaelbling,1993] folosit n robotica de cooperare, Mataric [Mataric,
1994a ; Mataric, 1994b] propune o reformulare a paradigmei de consolidare a comportrii cu
un nivel mai ridicat de abstractizare (condiii i funciile recompens eterogene) pentru a
permite roboilor s aib un comportament ct mai natural. n lucrarea [Parker ,1998] se
utilizeaz algoritmi de consolidare standard, pentru a mbunti performana agenilor
cooperani din arhitectura L-ALLIANCE de a nva cum s estimeze mai bine performanele
altor ageni. n lucrarea [Sen,1994] se folosete consolidarea de nvare ntr-un sistem de doi
roboi n activitatea de mpingere a cutiei i n lucrarea [Yanco,1992] se aplic nvarea
consolidat pentru a cunoate un limbaj artificial, simplu al unui robot. Alte lucrri relevante
n nvarea consolidat n cazul sistemelor multiagent se includ n [Whitehead,1991;
Tan,1993; Littman, 1994; Dugulean, 2009; Dugulean, 2010].

2.2.3.4 CONFLI CTELE DE RESURSE DI N CADRUL UNEI ECHI PE DE
ROBOI

Atunci cnd o resurs unic indivizibil este solicitat de ctre mai muli roboi , apare
conflictul de resurse. Aceast problem a fost studiat sub multe nfiri, n special
problema excluderii mutuale n algoritmi distribuii i n probleme de acces multiplu n reele
de calculatoare. In cazul echipelor de roboi, conflictul de resurse apare atunci cnd exist
nevoia de a mpari spaiu, de a manipula obiecte, sau comunicare media. Puine lucrri s-au
ocupat n mod special cu mprirea obiectelor sau mprirea de comunicare mass-media (de
exemplu, schimbul de comunicare mass-media este de obicei realizat folosind tehnici foarte
simple - LAN wireless sau difuzare pe un canal de radio frecven; [Wang,1994;
Yoshida,1995a; Yoshida,1995b] au considerat unele probleme n (mprirea canalelor de
comunicaii). Prin urmare, pentru aplicaii industrial este relevant problema mpririi
spaiului, care a fost studiat n principal, prin intermediul planificrii drumului multiple-
Capitolul 2

40


robot ("controlul traficului", formularea de mai sus), precum i a problemelor de evitarea
coliziunii i impas.
ntr-un sistem multi-robot, fiecare robot poate concepe o cale care poate fi luat n
considerare de ceilali roboi i de mediul nconjurtor la nivel global, prin intermediul
configurrii spaiu-timp, modelele explicite ale altor ageni, sau alte tehnici. n lucrarea
[Rude,1994] se consider problema de trecere a unei intersecii, evenimentul se transpune n
cadrul local de coordonate spaiu-timp ale unui robot, actualizeaz iterativ cadrul local i
obiectele sale; evalueaz riscul de coliziune; i genereaz o cale modificat, n funcie de
riscul de coliziune. Astfel, roboii sunt adesea limitai la ci, sau drumuri prescrise, cu reguli
i limbaje utilizate pentru a evita coliziuni i blocaje [Caloud, 1990; Asama, 1991;
Dugulean, 2009a ].
Grossman n lucrarea [Grossman,1998] clasific instanele problemelor de control ale
traficului n trei tipuri: drumuri restricionate, mai multe posibiliti de drumuri cu opiunea
roboilor de a selecta autonom ntre ele i mai multe posibiliti de drumuri cu controlul
centralizat al traficului. Cnd roboii individuali dein drumuri unice de la un punct la altul
nici un conflict nu este posibil, atunci cnd exist cunotine globale i control centralizat,
este uor de prevenit un conflict.

2.3 STRUCTURA I PROGRAMAREA ROBOILOR PITORI

ntruct, limbajele de programare permit programarea robotului de ctre un operator
uman pot fi denumite interfee om-robot. Limbajul de programare reprezint modalitatea de
interaciune de nivel inferior a
operatorului cu robotul, permind
exploatarea funciilor robotului.
Interfeele de programare nu sunt
dezvoltate pentru a putea fi folosite de
utilizatori obinuii, ci doar de ctre
programatori cu pregtire specific, care
dezvolt interfee de nivel nalt [Biggs,
2003]. Cea mai uzuala metod de
programare a roboilor, se realizeaz prin
intermediul unui limbaj de programare
specific folosind interfeele clasice
tastatur i mouse [Ducasse, 2005;
Whitbrook, 2010].
Pentru descrierea sarcinilor care
urmeaz s fie executate de un robot
mobil, se utilizeaz programe, prin
intermediul crora output-ul este
convertit de sistemul de comand i
control n aciuni ale acestuia ce urmeaz
s le efectueze n mediul de operare.
Aceast programare se caracterizeaz
prinr-un limbaj cu funcii dedicate, de
descriere a cerinelor, legate indirect sau
direct de sarcinile de executat. Programul
robot, reprezint rezultatul procesului de
programare, un program direct
executabil, care conine instruciuni
generale (de calcul matematic, de control
Adaugare date
Prelucrarea acestora
Ieiri date
Adaugare date
Prelucrarea acestora
Ieiri date
Adaugare date
Prelucrarea acestora
Ieiri date
Robot
Mediul de operare
A A A
Programe
Programe
Nivelul operator
(0)
Nivelul identificare
obiecte
(1)
Nivelul strategic
(2)
Nivelul tactic
(3)
Nivelul executiv
(4)
Fig. 2.14 Nivele ierarhice de conducere i
programare [Ivnescu, 1994]

Cooperarea roboilor mobili. Stadiul actual

41


al programului etc.) i dedicate ( de comand a micrii ncheieturii, braului, de citire a
informaiilor de la senzori, de interpretare i recunoatere a unor imagini etc.).
O clasificare a sistemelor de programare, a fost fcut de Lozano-Perez nc din anul
1983, care evideniaz 3 categorii de programare a roboilor: programarea cablat,
programarea prin instruire i textual [Lozano Perez, 1983].
Programarea cablat, reprezint cea mai rigid i mai rar folosit, datorit
aplicabilitii acesteia numai pentru probleme simple. Funcionarea a unei astfel de programe
presupune existena unor circuite electrice permanente dezvoltate n prealabil, care n timpul
execuiei de ctre robot a serviciilor, acestea vor fi accesate de ctre acesta, ca urmare a
acionrii unor ntreruptoare (butoane) de ctre operator.
Programarea prin instruire se poate realiza att online (direct), cu un dispozitiv de
interaciune cu structura robotului, sau offline (indirect), utilizndu-se medii virtuale.
Programarea prin instruire direct, online, se realizeaz cu ajutorul unor dispozitive de
instruire, coninnd butoane, ntreruptoare, manete, joystick-uri, cu ajutorul crora robotul
este modelat i nvat (instruit), prin memorarea poziiilor relative ale elementelor cuplelor
motoare s execute diferite sarcini. Dup acest pas de instruire se trece la modul de lucru n
regim operaional unde are loc execuia sarcinii pentru care a fost programat(play back).
Programarea offline folosete anumite medii virtuale CAD/CAM, n urma cruia programul
obinut offline se instaleaz pe robot i dup eventuale calibrri (ajustri) se ruleaz n regim
de lucru.
Programarea textual a roboilor, cea utilizat i pentru programarea roboilor Nao, se
realizeaz offline, cu ajutorul diferitelor limbaje de programare la nivel procesor disponibile,
evoluate (C/C++/C#, Java, Matlab, etc.) i/sau cu macro-limbaje [Boboc, 2013a]. Limbajele
de programare ale roboilor sunt de fapt limbaje de calculator care au la baz un interpretor
capabil s execute instruciunile secvenial n timp real i/sau un compilator pentru
transpunerea acestora n cod main.
Att programarea textual, ct i cea prin instruire se pot realiza i prin comenzi
vocale, prin intermediul unor interfee dedicate de recunoatere i sintez a vorbirii.
Pe lng aceste tipuri de programare ntlnite n clasificarea lui Lozano-Perez, s-au
adugat n ultimele doua decenii i programarea prin tehnicile inteligenei artificiale, precum
programarea bazat pe demonstrare [Argall, 2009 Aleotti, 2010; Lopes, 2006;], programarea
cognitiv [Bentivegna, 2004] sau programarea de tip comportamental [Arkin, 2000].
Ivnescu prezint n lucrarea [Ivnescu, 1994] nivelele ierarhice de conducere i
programare a roboilor structurate astfel(Fig. 2.14) : nivelul inferior- cel operator, nivelul de
recunoatere, nivelul strategic, nivelul tactic i nivelul superior executiv.

2.3.1 STRUCTURI LE ROBOILOR MOBI LI

Pentru realizarea funciei de deplasare n medii de lucru, roboii mobili au diferite
configuraii:
a. Roboi cu enile (fig.2.15,a), care au mobilitii extrem de mari, dar un numr restrns
de grade de libertate utile.
b. Roboii cu picioare (fig.2.15,b), care au mobilitate superioar celorlali, permindu-i
s treac uor peste obstacole.
c. Roboi cu roi (fig.2.15,c), care au o stabilitate mrit (stabilitatea este mai mare cu ct
crete numrul de roi)
Capitolul 2

42


a b c
Fig 2.15 Modele de roboi mobili a - cu enile; b - cu picioare; c - cu roi

Pe lng aceste structuri, exist i roboi hibrizi cu structuri mixte. n cele ce urmeaz
se prezint detaliat roboii pitori (cu picioare), care au urmtoarele caracteristici:
se pot deplasa att pe teren accidentat ct i pe teren moale;
consumul de energie necesar este redus;
vitez de deplasare relativ sczut;
permis s depeasc obstacolele cu uurin;
contactul cu solul se realizeaz ntr-un mod discontinuu, piciorul avnd posibilitatea
de a selecta punctul de contact;
cu ajutorul picioarelor, robotul are posibilitatea perceperii contactului cu solul.
Un dezavantaj major a acestor roboi este reprezentat de complexitatea controlului
mersului roboilor, care se datoreaz numrului ridicat al gradelor de mobilitate de care
dispun.
n fig. 2.16 se prezint, robotul pitor Nao, aflat n dotarea laboratorului de cercetare
de Realitate Virtual i Robotic din cadrul Universitii Transilvania din Braov, pe care s-au
dezvoltat cercetrile experimentale prezentate n aceast lucrare.
Robotul pitor Nao este un robot umanoid programabil, care are o nlime de 57cm,
caracterizat prin urmtoarele caracteristici:
25 de grade de mobilitate asociate la cuple acionate electric;
reele de senzori, inclusiv 2 camere video, 4 microfoane, telemetru sonar, 2
emitori i receptoare IR, 9 senzori tactili i 8 senzori de presiune;
diverse dispozitive de comunicare, inclusiv sintetizator de voce, lumini LED i 2
difuzoare de nalt fidelitate Intel ATOM 1,6 GHz CPU (poziionate n cap), pe
care ruleaz un kernel Linux, CPU al doilea (situat n trunchi), 27,6-Watt/or
baterie care ofer minim1,5 ore de autonomie, n funcie de utilizare.
Pentru deplasare robotul Nao utilizeaz un model dinamic de mers pe jos i de
programare ptratic. Acesta este stabilizat cu ajutorul feedback-ului comun de la senzori.
Acest lucru face ca mersul pe jos sa fie robust i rezistent la perturbaii mici, iar oscilaiile
trupului n planurile frontal i lateral s fie reduse. Nao poate merge pe o varietate de
suprafee, cum ar fi covoare, gresie i podele din lemn.
Conducerea robotului Nao pentru micarea corpului se bazeaz pe cinematica invers
generalizat, care stau la baza determinrii coordonatelor de acionare, controlului cuplelor,
echilibrului corpului, redundanei i prioritilor de activitate. Acest lucru nseamn c, atunci
cnd i se solicit robotului lui Nao s extind braul, el se apleac, deoarece braele sale i
articulaiile picioarelor sunt luate n considerare.
Sistemul de vedere al robotului Nao are dou camere video care pot s urmreasc i
s recunoasc imagini. Nao vede folosind dou camere 920 pixeli, care pot capta pn la 30
de imagini pe secund. Prima camer video, situat pe frunte, scaneaz la orizont, n timp ce a
doua situat la nivelul gurii scaneaz mprejurimile imediate. Softwareul dedicat permite
stocarea de imagini i fluxuri video.
Cooperarea roboilor mobili. Stadiul actual

43


Nao conine un set de
algoritmi pentru detectarea i
recunoaterea chipurilor i
formelor. Acesta poate s
recunoasc cine este cel ce
vorbete cu el/ea sau s
gseasc o minge, iar n cele
din urm, obiecte mai
complexe. Aceti algoritmi
au fost special dezvoltai
pentru a folosi un minim de
resurse procesor.
Sistemul audio al
robotului Nao utilizeaz
patru microfoane pentru a
capta sunetele i
recunoaterea acestora i
poate s comunice n 8 limbi.
Acest robot este astfel
dezvoltat pentru a permite
identificarea direciei
sunetelor. Pentru a produce
rezultate solide i utile n acelai timp, sursa de localizare de sunete se bazeaz pe o abordare
cunoscut sub numele de "diferen de fus orar de sosire". Atunci cnd o surs din apropiere
emite un sunet, fiecare dintre cele patru microfoane Nao primete unde sonore, la o diferen
de timp. De exemplu, dac cineva vorbete la Nao pe partea stng, unda sonor
corespunztoare ajunge prima dat la microfoanele din stnga, apoi la cele din fa i spate la
cteva milisecunde mai trziu, i n cele din urm la microfonul din dreapta. Aceste diferene,
cunoscute sub numele de diferen de fus orar (DTI), sunt prelucrate matematic pentru a
determina locaia sursei care emite. Aceast caracteristic este disponibil ca un modul
sofware numit Naoqi ALAudio Source Localization.
Pe lng camere video i microfoane, Nao este echipat i cu senzori poziionai pe
partea de sus a capului su n trei seciuni i pe minile sale. Se pot transmite astfel robotului
Nao informaii prin atingere [Tingting,2012], spre exemplu: apsare o dat nseamn
nchidere, sau folosirea de senzori ca o serie de butoane pentru a declana o aciune asociat.
Sistemul evideniaz cu lumini LED care indic tipul de contact.
Roboii Nao au capacitatea de a se conecta la ethernet sau wi-fi la reele ce ofer o
gam larg de posibiliti. Aceti roboi se pot pilota folosind orice calculator care se afl n
reea, cu controlerele acestora. Robotul Nao poate comunica cu alte dispozitive care accept
domeniul infrarou. Exist de asemenea, posibilitatea de a configura roboii pentru a utiliza
conexiunea n infrarou pentru a controla i alte aparate. n plus, Nao poate primi instruciuni
de la distan. Totodat, roboii Nao pot comunica direct ntre ei fie prin infrarou sau a unei
conexiuni wi-fi.

2.3.2 MEDI I LE DE PROGRAMARE A RP DE TI P NAO
Dintr-o multitudine de medii de programare a roboilor mobili existente momentan, n
continuare este prezentat cel utilizat i implementat pe robotul mobil Nao, care este controlat
cu ajutorul arhitecturii de tipul server-client. Toate motoarele i microcontrolerele ce compun
acest robot, au la baz module program dedicate (nivel inferior), la nivel maina de
conducere, pentru navigarea i orientarea n mediul de operare, controlul senzorilor,
SENZORI TACTILI
MINI
BAR DE PROTECIE (X2)
CAMERE( X2)
ARTICULAIA
GENUNCHIULUI
ARTICULAIA
OLDULUI
SONAR (x4)
ARTICULAIA GTULUI
MICROFOANE
BATERIE
ARTICULAIA
GLEZNEI
SENZOR
TACTIL
NCHEIETURA

INFRAROU
BUTON PORNIRE/ OPRIRE
ARTICULAIA
COTULUI
DIFUZOARE (x2)
ARTICULAIA
UMRULUI

Fig. 2.16 Structura hardware a robotului pitor Nao

Capitolul 2

44


managementul parametrilor interni etc. Pachetul software pus la dispoziie de compania
productoare Aldebaran Robotics, asigur controlul la nivel superior, pentru evitarea
obstacolelor, navigarea i acionarea braelor i picioarelor.
n fig. 2.17 se prezint librria cu modulele de control a robotului umanoid Nao ce
conine: programul pentru microcontrolere Naoqi; programul care permite generarea i
editarea micrilor n mod interactiv, Choregraphe; programul Monitor dedicat feedback-
urilor elementare de la robot i accesul la setrile camerelor i programele de testare virtual
Naosim i Webots.

Choregraphe
NAOqi
NaoSim
Webots
Monitor
Programare textual Demo
MEDII VIRTUALE DE
TESTARE
Ethernet
to serial
Ethernet
to serial

Fig. 2.17 Arhitectura software a robotului Nao

Choregraphe, proiectat i dezvoltat de ctre Aldebaran Robotics, este software-ul de
programare care permite utilizatorilor Nao sa creeze i s editeze micrile i
comportamentele ntr-un mod interactiv. Reprezint totodat i o interfa intuitiv grafic,
construit dintr-o bibliotec standard de comportamente i funcii avansate de programare
necesare satisfacerii nevoilor att nceptorilor, ct i experilor.
n Choregraphe se pot compune comportamente prin simpla copiere a bibliotecilor sau
de a crea cutii personalizate i a le memora ca biblioteci personale. Comportamentele pre-
programate sunt uor de configurat, dar cu ajutorul editorului Curve Editor se ofer
posibilitatea de a edita aceste micri sau, prin scrierea lor n script Python, C++ sau C#.
Combinnd aceste abordri se creeaz oportuniti vaste de programare Nao, cu sau far a
intra n complexitatea codului. Choregraphe nelege Urbi i limbajul Python, astfel nct s
poat apela direct module C/ C++/ C# dezvoltate separat. Acesta este dotat cu multe exemple
detaliate pentru a simplifica procesul de nvare, colecia de module pentru Choregraphe
fiind pus la dispoziie sub forma de cod C++ sau Python.
NAOqi (Fig. 2.18) este softwareul principal care ruleaz pe robotul Nao i l
controleaz. Programarea roboilor Nao se concentreaz n jurul modulelor. n cadrul
modulelor Naoqi exist mai multe module standard disponibile (fig. 2.18), cum ar fi
ALMotion, pentru deplasarea robotului, ALMemory, pentru stocarea de datelor etc. n plus, se
pot crea propriile module, comunicarea ntre ele se face folosind proxy-uri, obiecte care
permit apelarea funciilor i respectiv parametrii din alte module. Alt concept important al
acestui sofware este brokerul, care este un executabil, ruleaz n robot, ascult pe un anumit
port comenzile primite (cum ar fi un server). Brokerii ncrc o list de module de la pornire,
i apoi gestiona procedura de comunicare. n mod implicit, robotul ncepe cu brokerul
Cooperarea roboilor mobili. Stadiul actual

45


"MainBroker", care ascult pe portul 9559, i ncarc lista de module gsite n autoload.ini. n
plus, se poate crea i propriul broker.
Modulul ALMotion pune la dispoziie subprograme care asigur micarea robotului
Nao. Cu ajutorul acestui modul sunt implementate reflexe ale roboilor cum ar fi evitarea
coliziunilor automat, ocolirea obstacolelor etc. Acest modul ofer, de asemenea, accesul la
informaii utile despre componentele hardware ale robotului, cum ar fi numrul de articulaii,
numele lor, limitele, senzorii disponibili etc. Acesta conine patru module pentru controlul:
- rigiditii ncheieturilor (n principiu motorul on-off), metoda Stiffness control
- poziia articulaiilor (interpolare, control reactiv), metoda Joint control
- mersului (distana i controlul vitezei, poziia curent, etc.), metoda Locomotion
control
- robotului n spaiul de lucru (cinematica invers, constrngeri ale corpului), metoda
Cartesian control.
Monitorul este un subprogram dedicat pentru a oferi feedbackuri de la camerele video
ale robotului i accesul la setrile acestora. Arhitectura modular permite ncrcarea de
pluginuri n diferite widgeturi mobile, fiecare dintre ele fiind conectate la robotul conform
cerinelor utilizatorului. Sunt disponibile trei pluginuri: camera viewer, memory viewer i
laser monitor doar pentru roboii Nao cu laser.
NAOsim este un simulator dezvoltat pentru a permite utilizatorilor s testeze
algoritmii n medii virtuale. Aplicaia de testare permite modificarea mediului n funcie de
cerina de editare i apoi inserarea obiectelor de diferite forme i greuti n mediu simulat.
Webots este de asemenea tot un simulator dezvoltat pentru testarea algoritmilor, dar
spre deosebire de Naosim, permite introducerea n sistem pentru testare a mai multor roboi
Nao. Acesta este software-ul adecvat pentru aplicaii de cercetare, deoarece reprezint un loc
sigur pentru a testa programele nainte de a le transpune n lumea real.
NAOqi
Fiiere de configurare a
robotului
Devices.xml
DCM.xml
Alte
Module
-MANAGERUL-
MODULUL DE
COMUNICARE
(DCM)
M
o
d
u
l
u
l
A
L
M
e
m
o
r
y
Componentele
capului (UP)
robotului
NAOqi
Broker
Placa de baz a
robotului
Alte dispozitive
Unitatea
principala a
robotului
valorile
senzorilor
Comenzi la
electromotoare
Actualizarea
senzorilor
electomotoarelor
USB
Interfa
I2C

Fig 2.18 Blocurile componente ale sofwareului principal Naoqi


Capitolul 2

46


2.4 CONCLUZI I
n acest capitol, au fost prezentate sintetic aspecte privind stadiul actual al cooperrii i
comunicrii roboilor mobili i interaciunile om-robot, mediu-robot i robot-robot, mpreun
cu particularitile roboilor umanoizi Nao aflai n dotarea departamentului Departamentului
de Informatic Virtual i Robotic, ce au fost folosii pentru realizarea cercetrilor
experimentale din aceast tez.
n urma analizei bibliografice privind cooperarea roboilor mobili pitori, cercetarea i
dezvoltarea unei noi modaliti de comunicare robot-robot pentru ndeplinirea operaiilor
complexe care sunt imposibil de realizat de ctre un singur robot dintr-o echip, s-a constatat
c dezvoltarea echipelor de roboi pitori n medii industriale au nceput s se dezvolte din ce
n ce mai mult, n ideea de a se dezvolta sisteme autonome care au la baz atributul uman de
cooperare.
Comunicarea robot-robot prin intermediul limbajului vorbit, ofer multe posibiliti
foarte utile n operarea i programarea roboilor. Structurile de comunicare au la baz un
sistem de conducere hibrid, care utilizeaz limbajul vorbit la nivelul controlului deliberativ.
La nivelul conducerii deliberative sunt implementate modele specifice pentru realizarea
comunicrii prin limbaje vorbite. Comunicarea vocal robot-robot, devine o prioritate n
domeniul cercetrilor de cooperare a roboilor ntruct acest aspect nc nu a fost cercetat i
dezvoltat n detaliu.
Dezvoltarea unui sistem inteligent de cooperare, bazat pe interaciunea vocal a unei
echipe de roboi mobili asisteni n mediile industriale, reprezint un pas nainte ctre
sistemele actuale, cele mai dezvoltate de interaciunea robot-robot, la care pot fi incluse i alte
modaliti de interaciune pe lng capacitatea de interaciune n limba englez. Pe baza
acestui sistem de interaciune pot fi apoi realizate cercetri suplimentare, utiliznd diferite
module de percepie a mediului nconjurtor.
n concluzie, n urma analizei stadiului actual al cercetrilor privitor la cooperarea
roboilor mobili, se evideniaz tendina de dezvoltare a acestora ca sisteme inteligente, cu
capaciti evoluate de comunicare i de interaciune. n consecin, s-au elaborat obiectivele i
metodologia de cercetare prezentate n subcapitolele 1.3 i, respectiv, 1.4.







3. MODELAREA I NVAREA SECVENELOR DE
MANIPULARE I DEPLASARE A OBIECTELOR CU
ROBOI MOBILI PITORI

3.1 ASPECTE GENERALE

Activitatea de manipulare a obiectelor dateaz de la apariia tehnicilor care implicau
construcii mecanice, fiind extins cu timpul n multe alte activiti, fie ele industriale sau nu,
care implic interaciunea omului cu obiecte/materiale. Manipularea se definete ca fiind o
activitate complex care presupune apucarea, deplasarea unui obiect/material i eliberarea
acestuia [Bell ,2010]. Distana care trebuie parcurs n timpul manipulrii depinde de mediul de
lucru, tipul obiectului i echipamentele utilizate. Manipularea n sine const n urmtorul ir de
aciuni: apucarea (preluarea obiectului), deplasarea (pe orizontal sau pe vertical) i eliberarea
(acestuia n punctul final) [Mocan,2005; Panfir, 2013b]. Toate aceste aciuni se pot efectua
ntr-un mod eficient i sigur prin utilizarea unor echipamente i dispozitive specifice.
Una din definiiile unanim acceptate cu mult timp n urm de ctre American Materials
Handling Society are forma urmtoare: manipularea materialelor este arta i tiina referitoare
la deplasarea, ambalarea i depozitarea obiectelor de orice form.
ntruct n zilele de azi, o societate avansat n domeniul industrial este asociat cu
sisteme de automatizare flexibil i robotizarea proceselor industriale, n care manipulatoarele
i roboii au un rol determinat, folosirea acestora pentru manipularea obiectelor era inevitabil
[Mas, 2010]. Evoluia roboilor n ultima perioad de timp a condus la roboi mobili extrem
de flexibili ,cu multe grade de mobilitate, aa cum sunt i roboii pitori Nao, care prin
implementrile posibile asigur avantaje, att economice ct i sociale, precum: reproducerea
perfect a activitilor umane, creterea productivitii, eliminarea accidentelor de munc i
mbuntirea calitii lucrrilor [Alpopi, 2002; Panfir, 2013a].
Din punct de vedere al interaciunii operatorului uman cu obiectul, exist dou procese
de manipulare a obiectelor: manual (fig. 3.1,a) i automat (fig. 3.1,b).
Procesele de manipulare manual presupun intervenie direct a omului asupra
obiectului (de regul cu mna), care la rndul lui este n interaciune cu sistemul tehnic.
Procesele de manipulare automat gradul de interaciune direct a omului n proces se elimin
datorit interpunerii unui sistem tehnic automat. Procesele de manipulare automat [Avci,
2008; Diankov0, 2008] n ultimul timp nlocuiesc n proporie de 90% procesele cu
manipulare manual.
Manipularea obiectelor/materialelor manual s-a dovedit c nu este doar monoton i
OBIECTUL DE
MANIPULAT
OBIECTUL DE
MANIPULAT
Factorul uman
Sistem tehnic
neautomat
Sistem tehnic
automat
Factorul uman
a
b

Fig. 3.1. Procese de manipulare: a - manual (intervenie direct);b - automat (intervenie
indirect)

Capitolul 3

48


obositoare, acesta implic i aspecte legate de sigurana fizic a operatorilor. Pe de alt parte,
timpul care poate fi economisit prin automatizare conduce la creterea productivitii. n acest
context, roboii fici i mobili sunt utilizai din ce n ce mai mult pentru manipularea
obiectelor/materialelor n mediile de lucru. Pentru manipularea obiectelor cu gabarit depit
se pot folosi echipe de roboi mobili. O serie de lucrri de specialitate abordeaz problema
manipulrii cu roboi a obiectelor n medii industriale [Bingul, 2005] i unele pun accentul pe
evitarea obstacolelor n cazul manipulrii [Perdereau, 2002; Zhang, 2007; Zhang, 2009;
Dugulean, 2011b].

3.2 MODELAREA MEDIILOR DE LUCRU I A SARCINILOR DE
MANI PULARE

3.2.1 DESCRI EREA MEDI I LOR DE LUCRU
n mediile industriale de producie exist numeroase celule care implic procese
tehnologice cu manipulare i deplasare a unor repere (materiale) ntre diverse utilaje, depozite
intermediare, benzi transportoare etc. n fig. 3.2 se prezint structura general a unui mediu
industrial de producie compus din staii de lucru S
1
, S
2
,...S
n
, depozitele intermediare D
1
,
D
2
,...D
m
, intrrile I
1
, I
2
,...I
p
i ieirile E
1
, E
2
,...E
q
. Staiile de lucru sunt uniti distincte unde se
efectueaz operaii tehnologice (de manufacturare, de vopsire, de curire etc.), de asamblare
nedemontabil (sudare, lipire), asamblare demontabil (prin nurubare, presare etc.), de
mpachetare etc.
Depozitele intermediare materializate prin mese, stelaje, rafturi etc. asigur poziionri
temporare ale pieselor i subansamblelor cerute de fluxul tehnologic. Intrrile i ieirile sunt
subsisteme de alimentare/evacuare (conveioare, benzi transportoare etc.) prin care se introduc
n celula tehnologic pri componente i se elimin produse finite. Pentru manipularea i
deplasarea pieselor sau subansamblelor din celula tehnologic se pot folosi unul sau mai muli
STAIE DE
LUCRU
S1
DEPOZI
T D2
DEPOZIT D1
DEPOZIT
Dm
DEPOZIT D3
STAIE DE LUCRU
Sn
STAIE DE
LUCRU
S2
STAIE DE LUCRU S3
ADMINISTRATOR/
USER
RP1
RPi
RP2
Ieire Eq
Ieire
E2
Intrare Iq
Traseu planificat
Fig. 3.2 Structura general a unui mediu de lucru [Panfir, 2012b]

Modelarea manipulrii obiectelor cu roboi mobili pitori

49

roboi pitori (RP
1
, RP
2
,....RP
X
). n cadrul aplicaiilor de manipulare i deplasare din aceast
lucrare se vor utiliza doi RP de tip NAO (RP1 i RP2).
Obiectele/materialele preluate de pe dispozitivele de intrare de ctre unul sau doi RP
au un traseu planificat de trecere pe la staiile de lucru conform procesului tehnologic impus.
Prin fiecare intrare se introduc n mediul de lucru obiecte de diferite forme i greuti
preliminar fiind grupate dup tipul obiectelor: voluminoase i grele, voluminoase i uoare,
mici i grele, mici i uoare, de tip bar sau cu forme neregulate etc. Depozitele din mediul de
lucru sunt concepute astfel nct, n cazul n care unitile de lucru sunt ocupate n momentul
n care un nou obiect ajunge la int, acesta s fie depozitat pn atunci cnd unitatea
respectiv se elibereaz. Ieirile din spaiul de lucru sunt create suficient de late, astfel nct
orice produs care a ajuns n starea final s poat fii scos din celul. RP prezeni n mediul de
lucru au poziii iniiale bine stabilite i trasee planificate offline, astfel nct fluxul tehnologic
a unui obiect/material s se realizeze n condiii optime.
3.2.2 DESCRI EREA OPERAIILOR DE MANIPULARE
n vederea manipulrii cu RP, preliminar, obiectul este aezat ntr-o locaie fix (punct
iniial) n care s poat fi apucat cu minile robotului i deplasat n alt locaie (punct final).
Procesul de manipulare a unui obiect ntr-un mediu de lucru industrial n cazul general
poate fi compus din trei etape (fig. 3.3):
a. Prima etap, de manipulare local iniial, presupune apucarea obiectului cu o
mn sau cu ambele mini, urmat de deplasarea acestuia n spaiul de operare
asociat braelor robotului fr modificarea poziiei acestuia.
b. A doua etap, de manipulare n micare, presupune deplasarea obiectului n mediul
de lucru ca urmare a micrii acestuia cu braele n timp ce robotul este n micare.
Deplasare obiect cu
braele n micarea RP
Deplasare cu
braele
Apucare
(prindere)
Identificarea
obiectului
Deplasare RP la
obiect
LOCALIZARE-
POZIIONARE
MANIPULARE
LOCAL INIIAL
MANIPULARE
LOCAL FINAL
MANIPULARE N
MICARE
0
I

RP
(poziia iniial)
OBIECT
(punct iniial)
OBIECT
(punct final)
Eliberare
Deplasare cu
braele
Traseu robot cu obiect
Traseu robot fr
obiect

Fig. 3.3 Procesul de manipulare a unui obiect cu RP

Capitolul 3

50


Y
Punct
final
0
Yo
Xo
0
I
Xo
Y
o

Xo3
Yo1
f
(Xo, Yo,)
Obiect 1
Obiect 2
Obiect 3
(Xo1, Yo1,o1)
(Xo3, Yo3,o3)
(Xo2, Yo2,o2)
Xo2 Xo1 Xf
Yf
Yo2
Yo3
RP1
Fig. 3.4 Poziionarea i orientarea RP i a obiectelor n
mediul de lucru


c. A treia etap, de manipulare local final, presupune deplasarea obiectului cu o
mn sau cu ambele mini n spaiul de operare robot, urmat de eliberarea acestuia
n punctul final.
n cazul distanelor de deplasare mici, comparabile cu lungimea braelor robotului,
etapa b de manipulare n micare poate lipsi i procesul de manipulare se va reduce la
manipularea local cu preluarea (apucarea) obiectului, deplasarea doar cu braele i aezarea
(eliberarea) acestuia n alt punct.
n majoritatea cazurilor de manipulare a obiectelor cu RP poziiile iniiale ale acestora
nu sunt ns identice cu poziiile iniiale ale obiectelor de manipulat (fig.3.3). Astfel, pentru
derularea procesului de manipulare, se impune o etap preliminar de localizare-poziionare,
ce presupune detectarea i precizarea poziiei (distanei) obiectului fa de RP urmat de
deplasarea acestuia pn la obiectul de manipulat.

3.3 MANIPULAREA OBIECTELOR DE CTRE ROBOII
PITORI

3.3.1 LOCALI ZAREA OBI ECTELOR DE MANI PULAT

Pentru a realiza eficient sarcini ntr-un mediu dinamic, un RP trebuie s fie capabil s
detecteze obiectele din mediul su de aciune i s le identifice [Belongie, 2002;
Malisiewicz,2011]. Un robot care are capabilitatea s recunoasc obiectele n mediul de lucru
i s rein informaii i date despre acestea, duce la dezvoltarea unei hri [Meger, 2008]. n
lucrarea [Shubina, 2010] este prezentat o soluie i o aplicaie practic care ajut la
localizarea unui obiect ntr-un spaiu n mare parte necunoscut de ctre un robot mobil,
utiliznd un mecanism de urmrire vizual care ajut la optimizarea procesele de cutare a
obiectelor. Urmrirea micrii obiectelor n timp real de ctre robotul mobil este prezentat
de [Jung, 2010] care propune i evalueaz un set de algoritmi de urmrire a micrilor
multiple folosind o camer video mono-ocular i un detector de distan cu laser. Problemele
cheie soluionate: compensarea micrii robotului pentru a detecta micri externe a acestuia
i rezolvarea zgomotului pentru a permite o urmrire robust a micrilor. O alt metod de
urmrire a intelor mobile aflate n mediul nconjurtor robotului folosete modele pentru
recunoaterea att a intelor, ct i a fundalului bazate pe sistem vision [Zhang, 2010].
Localizarea obiectelor n mediul de lucru de ctre RP reprezint procesul cu ajutorul
cruia este detectat poziia i
determinat distana pn la
acesta. n cazul n care se
dorete elaborarea unui
program de deplasare/navigare
a robotului n mediu de lucru,
problema localizrii este
esenial. Pentru localizarea
robotului Nao s-a definit un
sistem de coordonate (fig. 3.4)
asociat robotului reprezentat
printr-un vector v= [x, y, ],
unde x i y reprezint
coordonatele carteziene ale
centrului robotului i este
unghiul de orientare.
Calea/traseul unui robot n
Modelarea manipulrii obiectelor cu roboi mobili pitori

51



Fig. 3.5 Markere de localizare


mediul de lucru implic cunoaterea
valorilor coordonatelor unui numr de
vectori asociai punctelor de atins.
Pentru experimentele dezvoltate
cu RP de tip Nao n cadrul acestei
lucrri, localizarea obiectelor n mediul
de lucru s-a realizat cu ajutorul unor
markeri de tip Naomarks (fig.3.5).
Markeri Nao sunt discuri circulare care
au n interiorul lor un set de arii
(sectoare) triunghiulare poziionate
unghiular diferit. Roboii Nao dispun de un algoritm implementat ca program distinct, care
detecteaz aceste markere i returneaz informaii despre acestea. Acest algoritm detecteaz
forma prin mprirea discurilor n funcie de dimensiunile ariilor detectate din cadrul
markerului. Diferena dintre markere este dat de poziia unghiular a triunghiurilor.
Aceste markere pot fi amplasate n locaii diferite n mediul de lucru. Odat marker-ul
detectat de ctre robot se obin i informaii cu privire la locaia acestuia n mediul de lucru i
cel mai important lucru, distana robotului pn la marker. Localizarea makerilor folosete
modulul vision.
Ca urmare a testelor efectuate s-a constatat c este posibil detectarea tuturor obiectelor
n mediul de lucru atta timp ct pe acestea se gsesc amplasai markerii specifi. Acetia pot fi
amplasai n orice poziie i orientare n raport cu direcia de micare a robotului. Detectarea
cu o precizie mai bun presupune amplasarea mai multor markeri pe suprafaa aceluiai
obiect. Procesul de detectare a obiectelor de ctre roboii Nao se realizeaz parcurgnd
urmtoarele faze:
a. Scanarea mediului de lucru prin rotirea robotului i a capului acestuia.
b. Detectarea marker-ului cu ajutorul camerelor video ale robotului i preluarea
informaiilor (fig. 3.6) legate de codul marker-ului (marcat n partea din stnga sus),
unghiurile (pentru camera de sus), (pentru camera de jos), unghiul (de
orientare), poziia (sus-jos, stnga-dreapta) i forma acestuia (sizeX, sizeY).
c. Procesarea informaiilor captate de la camerele video pentru determinarea distanei
de la robot la marker i unghiul de orientare necesar la sosire.
n figura 3.7 este prezentat imaginea markerului identificat de ctre sistemul vision.
Atunci cnd se ajunge la faza c, toate informaiile culese despre obiectul de manipulat sunt
transmise pentru calculul distanei robot-obiect i pentru a ncepe aciunea de deplasare.
RP1
Returneaz informaii
Procesare
Controler
robot
Obiect
CV1
CV2


Fig. 3.6 Procesul de identificare Vision cu markeri

Capitolul 3

52


Algoritmul FindNaoMark (fig. 3.8)
realizeaz localizarea obiectelor n mediul
de lucru, cutnd markerul prin pai
succesivi ntr-un cmp circular cu
deschiderea de 360
o
. Procesul de localizare
pornete cu iniializarea robotului, ridicarea
acestuia n poziia de mers i alocarea n
memorie a codului markerului. n cazul n
care n timpul scanrii mediului de lucru
markerul este identificat de ctre sistemul
vision, se va evalua poziia i orientarea
robotului, dup care se trimit informaiile
preluate mai departe, pentru calcularea
distanei pn la obiect. n caz contrar, cnd
marker-ul nu este identificat se continu
cutarea, dar nu nainte de a se testa dac este atins starea final, n care robotul s-a rotit deja
cu 360
o
. n cazul n care nu s-a atins starea final, se reia algoritmul de cutare dup ce
robotul se rotete cu 90
o
grade la stnga.
n timpul cutrii
obiectelor n mediul de lucru
de ctre robot, acesta
efectueaz o deplasare a
capului de la dreapta la stnga
i de la stnga la dreapta, de
sus n jos, efectund astfel o
micare care i permite
localizarea obiectelor chiar
daca acestea se afla pe jos, la
nlimea camerelor sau mai
sus. n cazul n care marker-ul
cutat nu este identificat,
algoritmul se oprete i revine
cu un mesaj de atenionare
(fig. 3.8). Aceast succesiune,
prezentat la nivel de meta-
limbaj n alg. 3.1 este
transpus n mediul Visual
Studio (anexa 2).




Alg. 3.1 Funcia de localizare a markerelor (FindNaoMark)

function robot= FindNoaMark (markID, robotIP, robotPort, marksize)
{
< Validare parametrii intrare >
< Iniializarea parametrii funciei i cei ai robotului [robotIP, robotPort] >
< WHILE (totalul rotaiei robotului < 360grade) AND (Marker-ul nu a fost gsit) >
{
< Calculeaz parametrii strii curente >


Fig. 3.7 Imaginea markerului recepionat de
sistemul vision
Start
Inializarea
RP
Cutare
marker
Marker
identificat?
Total rotaie
< 360 grade
ntoarcere
90grade stnga
Identificarea
poziiei RP
Evaluarea
distanei
Marker
neidentificat
Sfrit
NU
NU
DA
DA


Fig. 3.8 Schema logic a algoritmului de localizare

Modelarea manipulrii obiectelor cu roboi mobili pitori

53

< ncepe cutarea marker-ului >
Se ncepe cu deplasarea
capului de la dreapta la stnga la nivelul ochilor robotului
capului de la stnga la dreapta la un nivel superior nivelului ochilor robotului
capului de la dreapta la stnga la un nivel inferior nivelului ochilor robotului

< IF markID nu a fost identificat >
{
<ntoarce stnga 90 grade>
<Calculare stare curent>
}
< ELSE >
{
< Soluie >
< Se oprete din cutare>
< Trimite mesaj sistemului c a fost identificat >
< Culege informaiile legate de coordonatele markID-ului i
cu funcia de la Alg.4.1 se calculeaz distana robotului
pn la acesta folosind marksize>
< MarkID identificat>
}
}
< IF MarkID nu a fost identificat >
< Returneaz un mesaj de eroare >
}


Algoritmul de detectare a markerilor conform schemei logice din fig. 3.8 i funciei
FindNaoMark (alg. 3.1) a fost implementat i n mediul de programare grafic Choregraph
(fig. 3.9), utiliznd blocuri predefinite, blocuri nou create i blocuri existente modificate
conform procesului.


Fig. 3.9 Programarea grafic a procesului de localizare n mediul de lucru
3.3.2 DETERMINARE DISTANEI ROBOT- OBI ECT
Pentru reconstruirea spaiului tridimensional adiacent robotului s-a folosit un sistem de
vedere stereo binocular clasic cu dou camere video poziionate fix pe faa RP. Acest
sistem permite corelarea imaginilor de la cele dou camere i realizeaz toate calculele
necesare reconstruciei tridimensionale bazat pe un model al geometriei camerelor.
Capitolul 3

54


Metoda clasic de
realizare a vederii stereo
utilizeaz dou camere
video, aezate la o anumit
distan cunoscut una de
cealalt. n fig. 3.10 este
prezentat principiul general
al vederii stereo, care const
n capturarea simultan a dou
imagini ale obiectului/intei
de la fiecare camer video.
Punctul O este centrul
marker-ului pn la care
urmeaz s se determine
distana D. Punctele C
U
i C
D
reprezint centrele de
proiecie ale celor doua camere video ale robotului. Dac s-ar lua n considerare doar poziia
imaginii punctului O din planul imagine al camerei de sus (C
U
), atunci punctul O s-ar afla la o
distan nedefinit de pe segmentul OC
U
i astfel se impune luarea n considerare i a imaginii
camerei de jos (C
D
). Odat identificat poziia punctului O n planul imagine al camerei din
partea de jos, se identific punctul de intersecie al celor dou direcii i apoi prin calcul se
determin distana la care se afl obiectul O.
Metoda descris mai sus poart numele de metoda triangulaiei (fig. 3.11) i s-a
aplicat pentru calculul distanei de la robotul pitor la poziia obiectelor din mediul de lucru.
Notnd cu d
o
distana dintre cele dou camere a robotului (de sus i de jos), cu ,
unghiurile direciilor camerelor video, c
d
i c
u
distana de la camera de sus, respectiv camera
de jos pn la obiect i cu D, distana dintre punctul O i linia pe care sunt aezate camerele,
din relaiile,

, (3.1)

( ) (3.2)

rezult distana de la camera de jos pn la
obiect,

, (3.3)

Cunoscnd distana d
o
i unghiurile
i determinate n urma procesului de
localizare (fig. 3.6) din relaiile (3.2) i (3.3)
se obine relaia de calcul a distanei,

(3.4)




CU
CD
O

Fig. 3.10 Principiul general al vederii stereo


cu
cd
CU
CD
do

O
X
Y
D

Fig. 3.11 Schema de calcul a distanei

Modelarea manipulrii obiectelor cu roboi mobili pitori

55

3.4 DEPLASAREA ROBOTULUI PN LA OBI ECT
Deplasarea robotului pn la obiect odat ce acesta a fost localizat se face dup o
traiectorie liniar.
n cazul distanelor mari (mai mari de 0,5 m) din cauza alunecrilor de pire, jocurilor
mecanice i instabiliti sistemului de comand i control apar deviaii de la traiectoria liniar
a robotului. Din cauza acestor abateri pot aprea deviaii de poziionare inadmisibile pentru
operaii de manipulare. Astfel, se impune corecia pe parcursul deplasrii, n vederea revenirii
la traiectorie liniar impus (fig. 3.12). n urma coreciilor, traiectoria programat se
transform ntr-un zig-zag, care prezint abateri mult reduse. n consecin procesul de
deplasare a RP pn la int se poate realiza bazat pe dou metode diferite , una pentru
distane mai mici de 0,5m, iar cea de-a doua pentru cele mai mari.
Metoda de deplasare 1 (cu calibrare iniial) a robotului pn la int, folosete o
funcie robot care dispune de un apel de blocare, ceea ce nseamn c execuia (deplasarea) se
va face fr oprire pn la int. Dup ce robotul msoar distana pn la punctul final, el
ncepe deplasarea la coordonatele detectate, fr a fi capabil de a actualiza coordonatele intei
pe parcursul deplasrii. n urma testelor de deplasare efectuate pentru distane diferite i
evalurii preciziei de atingere a intei s-a obinut pentru deplasri pe distan de 0,5m erori de
poziionare de maxim 2 cm care pentru operaiile de manipulare sunt acceptabile. n cazul
acestei metode, actualizarea poziiei este posibil numai n cazul n care robotul se oprete
pentru un moment, fapt ce ncetinete deplasarea robotului.
Metoda de deplasare 2 (cu recalibrri pe parcurs) (fig. 3.12), folosete un modul ce
funcioneaz similar cu cel de la metoda1 cu deosebirea c n acest caz i se permite robotului
s actualizeze poziia intei n timpul deplasrii. n plus, n acest caz este folosit o proprietate
care permite un mers mai lent atunci cnd se apropie de obiect, astfel nct poziia s poat fi
msurat ct mai precis. Metod este apelat n aplicaie des, astfel nct datele msurate s
fie suficient de precise pentru a merge exact la punctul int.
ntregul algoritm de deplasare a roboilor a fost integrat n funcia GotoNaomark,
care realizeaz deplasarea pn la 50 cm distan de obiectul identificat n mediul de lucru.
Algoritmul de deplasare pornete cu iniierea unei noi iteraii i apelarea funciei
FindNaomark. n urma rulrii acestei funcii, n cazul identificrii unui obiect se continu cu
urmtorul pas care presupune deplasarea
propriu-zis a robotului. Odat ce
distana i direcia pn la Naomark este
cunoscut de robot, dar nu nainte de a
testa dac este atins starea final (n
care robotul se afla la 50 cm de obiect),
se recalculeaz traiectoria robotului Nao
de deplasare dup care robotul ncepe s
se deplaseze.
n cazul n care nu se
nregistreaz nici un obiect, algoritmul
se oprete i revine cu un mesaj
(fig.3.13.). Aceast succesiune,
prezentat la nivel de meta-limbaj n
alg. 3.2 este programat n mediul
Visual Studio (anexa 3).
(XR, YR)
(Xn, Yn, n)
Traiectorie
intermediar
Traiectorie
programat
Recalibrarea traiectoriei
Obiect
Poziie final

Fig. 3.12 Deplasarea robotului pn la obiect

Capitolul 3

56



Alg. 3.2 Algoritmul GotoNaomark

function robot= GotoNaomark (markID, robotIP, robotPort, marksize, stopDistance,
advanceDistance)
{
< WHILE (user cancel)>
{
< Apelarea funciei FindNaomark >

<IF markID identificat >
{
< Validare parametrii intrare >
< Iniializarea parametrii funciei i cei ai robotului >

< Citete din memorie datele legate de poziia markID-ului >
< Alinierea cu marker-ul>
< Calcularea distanei pn la obiect>
<IF distana de deplasare D>0,5m)>
<IF distana robotului pn la markID <= stopDistance)>
{
Break while;
}
ELSE
{
< Avanseaza spre markID cu o distan egal cu advanceDistance >
}
}
ELSE {< Deplasare pe traectorie final> }
}
}
Start
Distana de
deplasare
D > 0,5m
Deplasare pe traectorie
liniar intermediar
Obiectul nu a fost
gsit
Deplasare pe traectorie
final
Sfrit
Obiect identificat?
(Findnaomark)
Calculeaz distana
pn la obiect
DA NU
NU
DA
Fig. 3.13 Schema bloc a algoritmului de deplasare pn la obiect


Modelarea manipulrii obiectelor cu roboi mobili pitori

57


3.5 MANIPULAREA LOCAL A OBI ECTELOR CU RP

3.5.1 CAPABILITILE DE MICARE ALE RP NAO

n vederea construirii secvenelor elementare de manipulare a fost nevoie de
cunoaterea n prealabil a micrilor ce le compun. Astfel, fiecare sarcina elementar a RP are
o structur similar, fiind compus dintr-un numr de faze, care la rndul lor sunt compuse
din secvene nvate. Numrul fazelor i a secvenelor componente difer n funcie de
complexitatea sarcinilor i a operaiilor de realizat.
Pentru definirea i nvarea secvenelor elementare de manipulare se impune
cunoaterea gradelor de mobilitate ale cuplelor robotului (fig. 3.14) precum i a valorilor
limitelor unghiurilor acestora. Roboii Nao au 26 grade de mobilitate, dintre care 2 pentru cap,
12 pentru mini (6 pentru umr, 4 pentru cot, 2 pentru mn) i 12 pentru picioare (6 pentru
old, 4 pentru genunchi, 2 pentru glezn). n tab 3.1 se prezint valorile ale unghiurilor
cuplelor robotului.
Realizarea secvenelor elementare de manipulare implic micri a mai multor cuple
robot. Planificarea i programarea micrilor componente ale secvenelor elementare avnd n
vedere numrul mare de cuple cinematice (grade de mobilitate) participante este anevoioas i
n cazul micrilor complexe chiar imposibil de realizat.
n cadrul acestei lucrri s-a optat pentru varianta nvrii prin demonstrare a
secvenelor elementare, urmat de planificarea fazelor, sarcinilor i operaiilor compuse din
secvene elementare nvate anterior (anexa 5).

SR
ER
EY
WY
H
HP
HY
AR
AP
KP
HP
HR
HYP
SP

Fig. 3.14 Parametrii geometrici ai cuplelor robotului Nao


Capitolul 3

58



Tab.3.1 Parametrii geometrici asociai cuplelor RP Nao
Parametrul Denumirea parametrului
Limite [min,
maxim][]

SP

SR

EY

ER

WY

HP

HR

HP

HR

KP


HYP

AP

AR


unghiul de nclinare a umrului (ShoulderPitch )
unghiul de rotire a umrulu (ShoulderRoll )
unghiul de deviere a cotului (ElbowYaw)
unghiul de rotire a cotului (ElbowRoll)
unghiul de deviere ncheieturii minii (WristYaw)
unghiurile degetelor minii (Hand)

unghiul de nclinare a capului (HeadPitch)
unghiul de rotire a capului (HeadRoll)

unghiul de nclinare a oldului (HipPitch)
unghiul de rotire a oldului (HipRoll)
unghiul de nclinare a genunchiului (KneePitch)
unghiul de nclinare a bazinului (HipYawPitch)
unghiul de nclinare a gleznei (AnklyPitch)
unghiul de rotire a gleznei (AnklyRoll)


[ -119,5; 119,5 ]
[ -0,5 ; 94,5 ]
[ -119,5; 119,5 ]
[ 0,5 ; 89,5 ]
[ -104,5; 104,5 ]
[ 0 ; 1 ]

[ -119,5; 119,5 ]
[ -25,7 ; 18,9 ]

[ -101,6; 27,7 ]
[ -42,3 ; 25,8 ]
[ -5,3 ; -121,0 ]
[ -119,5; 119,5 ]
[ -68,0 ; 53,4 ]
[ -22,3 ; 45,0 ]

3.5.2 DEFINIREA SECVENELOR ELEMENTARE DE
MANI PULARE

3.5.2.1 NVAREA SECVENELOR ELEMENTARE DE MANIPULARE
LOCAL

Procesul de nvare a unei secvene elementare are loc prin conducerea cuplelor
robotului prin intermediul unui panel, joystick, tastaturi sau mouse, dup o traiectorie impus
i memorarea valorilor unghiurilor cuplelor a tuturor punctelor traiectoriei parcurse. nvarea
secvenelor de manipulare elementare a obiectelor cu roboii Nao, s-a realizat pentru fiecare
grup de obiecte de manipulat n parte, conform mrimilor i caracteristicilor acestora
(greutate, form i poziie). De exemplu n cazul manipulrii unei bare groase i scurt,
H=45
cm
D=4cm
H=35
cm
D=5.5cm


Fig. 3.15 Prinderea unui obiect de sus n jos

Modelarea manipulrii obiectelor cu roboi mobili pitori

59

robotul va fi nvat pentru micarea de prindere a barei de jos n sus i pentru
ridicarea/coborrea acesteia.
nvarea secvenelor elementare cu roboi offline presupune i optimizarea micrilor
de manipulare prin care se urmrete s se apropie de naturaleea celor umane. n tab. 3.2 se
prezint secvenele de manipulare local nvate de roboii Nao.

Tab. 3.2 Micri (secvene) elementare de manipulare locale (SL1..p)
Cod Denumire Descriere
SL1 Apucare din fa de jos n sus
Se poate utiliza atunci cnd obiectul este
poziionat pe un suport care permite
prinderea acestui de jos n sus
SL2 Apucare din fa de sus n jos
Se utilizeaz atunci cnd obiectul nu este
poziionat pe un suport care s permit
prinderea acestui de jos n sus
SL3 Apucare din stnga din interior
Se utilizeaz atunci cnd spaiul de lucru nu
permite prinderea obiectului din fa sau din
partea dreapt i acesta se afl poziionat
suport care permite apucarea din interior
SL4 Apucare din stnga din exterior
Se utilizeaz atunci cnd spaiul de lucru nu
permite prinderea obiectului din fa i
acesta este nu se afl pe un suport care s
permit apucarea din interior
SL5 Apucare din dreapta de jos n sus
Se utilizeaz atunci cnd prinderea
obiectului se poate realiza doar din partea
dreapt a robotului atunci cnd acesta se afl
pe un suport.
SL6
Apucare din dreapta de sus n
sus
Se utilizeaz atunci cnd prinderea
obiectului se poate realiza doar din partea
dreapt a robotului atunci dar cnd acesta nu
se afl suport care s permit apucarea de jos
n sus
SL7 Ridicare din fa
Se utilizeaz atunci cnd obiectul nu dispune
de mnere pe prile laterale i ridicarea se
face pe brae
SL8 Ridicare din lateral
Se utilizeaz atunci cnd obiectul are mnere
pe prile laterale
SL9 Flexare/poziionare prindere jos
Se utilizeaz atunci cnd obiectul de
manipulat este poziionat mai jos de braele
robotului.
SL10 Rotire stnga bazin
Se utilizeaz atunci cnd nu se dorete
deplasarea robotului ci doar rotirea lui ctre
stnga
SL11 Rotire dreapta bazin
Se utilizeaz atunci cnd nu se dorete
deplasarea robotului ci doar rotirea lui ctre
dreapta
SL12 Rotire cap
Se utilizeaz atunci cnd e nevoie de
monitorizare

Capitolul 3

60


Valorile unghiurilor cuplelor (exprimate n radiani) pentru cazul prinderii unei bare cu
diametrul de 4cm de sus n jos sunt (pentru mana stng, pentru cea dreapt se iau valorile
prin simetrie):
SP
= 1,1219;
SR
= 0,23577;
EY
= -0,640911;
ER
= -1,66816;
WY
=
1,614222;
WY
= 0,557111;
H
= 0,731223.
n funcie de parametrul
de intrare care indic
diametrul obiectului de
manipulat unghiul de prindere
al minii (
H
) variaz direct
proporional cu aceast
valoare i se ntinde pe o plaj
de la 0 (pentru cel mai mic
diametru) pn la 1 (obiecte
cu diametrul de 5cm). Pe
lng parametrul ce indic
diametrul obiectului de
manipulat se specific
nlimea la care se afl
obiectul relativ la podea.
nlimile la care pot fi
amplasate obiectele pot avea
valori de la 0cm (planul solului) pn la aproximativ 60cm. n acest caz unghiul de nclinare a
genunchiului i cel de rotire i nclinare a oldului se modific ntre [-119,5; 119,5 ].
Pentru manipularea obiectelor amplasate la nlimi cu H<=35cm , roboii au fost
nvai s flexeze genunchii pentru a putea prinde bara de sus n jos. Valorile unghiurilor
cuplelor pentru cazul H=35cm sunt urmtoarele:
HP
= 0;
HR
= 0;
HYP
= -0,4361111;
KP
=
1,6572222;
AP
= -1,1862222;
AR
= 0 exprimate n rad.
n fig. 3.16 este prezentat simularea pentru prinderea unor obiecte pe partea stng
aflate la diverse nlimi. Ca i n cazul precedent i aceast secven depinde de cei doi
parametrii de intrare: nlimea la care se afl obiectul relativ la podea i diametrul acestuia.
Astfel n cazul n care d=5cm i H=45cm valorile unghiurilor exprimate n rad sunt
SP
=
0,3659;
SR
= 0,16534;
EY
= -1,240661;
ER
= -0,668166;
WY
= -1,334982;
WY
= 0 ;
H
= 1;

HP
= 0,1776;
HR
= 0;
HYP
= -0,3354211;
KP
= 1,35755432;
AP
= -1,0861112;
AR
= 0,1.

3.5.1.2 NVAREA SECVENELOR ELEMENTARE DE MANIPULARE N
MICARE

Dac numrul de secvene elementare dezvoltate i nvate de roboii pitori pentru
manipularea local este mare, n
cazul manipulrii n micare
numrul acestora este redus doar
la cele locale de micare, dar i la
secvene de micare ale robotului.
Astfel, printre secvenele de
manipulare n micare nvate de
RP Nao se prezint urmtoarele:
SM1-ridicarea obiectelor din fa
(fig. 3.17); SM2- ridicarea
obiectelor pe partea dreapt; SM3-
ridicarea obiectelor pe partea
H=35cm
H=45cm
d=5cm d= 2cm

Fig. 3.16 Prinderea din stng a obiectelor


Fig. 3.17 Ridicarea unui obiect n timpul micrii
Modelarea manipulrii obiectelor cu roboi mobili pitori

61

stng; SM4- coborrea obiectelor din fa; SM5 - coborrea obiectelor pe partea dreapt;
SM6 - coborrea obiectelor pe partea stng; SM7 - apropierea obiectelor din fa; SM8 -
ndeprtarea obiectelor de corp din fa.

Fig. 3.18 Apropierea unui obiect n timpul deplasrii

Tab. 3.3 Micri (secvene) elementare de manipulare n micare (SM1...q)
Cod Denumire Descriere
SM1
Ridicarea obiectelor din fa
n micare
Se utilizeaz atunci cnd se dorete ridicarea
obiectului n mers din fa.
SM2
Ridicarea obiectelor pe partea
dreapt
Se utilizeaz atunci cnd se dorete ridicarea
obiectului n mers de pe partea dreapt.
SM3
Ridicarea obiectelor pe partea
stng
Se utilizeaz atunci cnd se dorete ridicarea
obiectului n mers de pe partea stng.
SM4 Coborrea obiectelor din fa;
Se utilizeaz atunci cnd se dorete coborrea
obiectului n mers i obiectul se afl n fa.
SM5
Coborrea obiectelor pe
partea dreapt;
Se utilizeaz atunci cnd se dorete coborrea
obiectului n mers i obiectul se afl transportat pe
partea dreapt.
SM6
Coborrea obiectelor pe
partea stng;
Se utilizeaz atunci cnd se dorete coborrea
obiectului n mers i obiectul se transportat pe
partea stng.
SM7 Apropiere n micare din fa
Se utilizeaz atunci cnd se dorete apropierea
obiectului n mers i obiectul se afl n fa.
SM8
Apropiere n micare din
lateral
Se utilizeaz atunci cnd se dorete apropierea
obiectului n mers i obiectul se afl transportat
prin lateral.
SM9
ndeprtarea obiectelor din
fa
Se utilizeaz atunci cnd se dorete ndeprtarea
obiectelor din fa
SM10 mpingere
Se poate utiliza atunci cnd spaiul de lucru nu e
limitat pe orizontal sau vertical.
Capitolul 3

62


SM11 Rotire robot
Se utilizeaz atunci cnd se dorete rotirea
robotului cu diferite obiecte.

3.5.3 TESTAREA I SIMULAREA ALGORITMILOR DE
MANIPULARE I DEPLASARE A OBIECTELOR
n fig. 3.19 este prezentat simularea pentru prinderea unui obiect de jos n sus a unei
bare n mediul Choregraph. n acest caz parametrii unghiurilor cuplelor braelor primesc
urmtoarele valori (exprimate n rad):
SP
= 1.3659;
SR
= 0.12734;
EY
= -1.440911;
ER
= -
0.96816;
WY
= -1.814222;
WY
= 0.
Valorile tuturor unghiurilor impuse de secvenele de manipulare a unui obiect sunt
preluate din mediul Choregraph (fig. 3.19), mediu care ne permite controlul, verificarea i
corectarea unghiurilor robotului Nao n orice poziie. Odat simulate i verificate secvenele
de micare, se stocheaz valorile unghiurilor cuplelor n baza de secvene de unde pot fi
folosite de fiecare dat cnd este nevoie (n structura diferitelor sarcini). n urma nvrii
tuturor acestor sarcini elementare, n baza de date proprie fiecrui robot se construiete un
tabel care conine informaii i notaii ale sarcinilor stocate (tab.3.2 i tab. 3.2).
Pentru a verifica eficacitatea algoritmilor propui pentru localizarea obiectelor i pentru
deplasare a roboilor Nao n mediul de lucru, au fost implementate diferite scenarii. Toi
algoritmii dezvoltai, de manipulare, deplasare sau localizare se asociaz cu secvene
elementare, care dup ce au fost testate n mediul virtual, au fost salvate n baza de secvene
comun, n vederea folosirii acestora pentru operaii viitoare. Pentru efectuarea testelor, au
fost stabilite urmtoarele personalizri: spaiul de lucru sub form de dreptunghi i markere cu
diametrul de 9,5cm cu numere: 64, 102, 104 i 96 poziionate la diferite nlimi i diferite
distane de robot.
Datorit faptului c n mediul virtual introducerea de makere nu a fost posibil, toate
testele algoritmului de localizare s-au realizat direct n mediul real, conform scenariului din
fig. 3.20. Dup cum se observ n aceast figur, poziia iniial a robotului relativ la marker
poate fi oricare, ns trebuie sa fie poziionat n raza robotului de detectare, adic nu mai
departe de 3m. Datorit complexitii algoritmului dezvoltat, se sigur oferit posibilitatea de
poziionare a marker-ului de la podea pn la o nlime de 1m.
Pentru testarea algoritmilor de manipulare i deplasare a roboilor, scenariile au fost
acelai ca n cazul celor de nvate, deoarece datele primite (coordonatele marker-ului) n
urma identificrii obiectelor din spaiul de lucru au devenit date de intrare pentru deplasare.
Astfel odat cunoscui aceti parametrii roboii ncep s se deplaseze la punctele fixe date. n
urma testelor realizate s-a verificat c roboii nu ajung la destinaie conform coordonatelor
date i s-au fcut evaluri de precizie de poziionare.

Modelarea manipulrii obiectelor cu roboi mobili pitori

63



Fig. 3.19 nvarea micrii de prindere de jos n sus


Fig. 3.20 Scenariu de operare pentru testare n mediul real
n fig. 3.21 se prezint scena virtual, inclusiv cu robotul virtual Nao din mediul
Webots de simulare i testare a secvenelor de manipulare nvate. n aceast scen se
observ bara de manipulat (definit conform caracteristicilor de lungime, greutate i densitate)
care este poziionat pe un suport paralelipipedic. Punctele de interesez pentru poziionarea
robotului n poziia dorit sunt preluate de robot din baza de secvene.
Condiia de lucru impetuos necesar ca aceti algoritmi sa funcioneze la capacitate
maxim a fost ca lumina din mediul de lucru sa fie suficient de puternic, astfel nct markeri
sa fie identificai de fiecare dat ct mai rapid i corect.
Odat simulate i verificate secvenele de micare, se stocheaz valorile unghiurilor
cuplelor n baza de secvene de unde pot fi folosite de fiecare dat cnd este nevoie (n
structura diferitelor sarcini). n urma nvrii tuturor acestor sarcini elementare, n baza de
date proprie fiecrui robot se construiete un tabel care conine informaii i notaii ale
sarcinilor stocate.

Capitolul 3

64




Fig. 3.21 Scen virtual de manipulare

3.6 CONCLUZI I
n acest capitol se prezint procesele de concepie i nvare a secvenelor elementare
de manipulare, deplasare i localizare a obiectelor de ctre RP n mediul de lucru, necesare
pentru construirea operaiilor unei echipe de roboi.
Toate secvenele elementare nvate de ctre roboi prin tehnica demonstrativ i
stocate ntr-o baz de secvene, stau la baza dezvoltrii de operaii complexe pe care roboii le
execut prin cooperare. Tehnica de nvare abordat a fost corelat i dezvoltat conform
caracteristicilor roboilor pitori Nao astfel:
- pentru sarcinile de localizare a obiectelor s-a optat pentru utilizarea markerilor Nao;
- pentru sarcinile de manipulare s-au construit faze formate din secvene elementare
nvate ale robotului;
- roboii au fost nvai micri elementare care au fost stocate n baza de secvene
pentru a putea fi folosite la planificare;
- pentru sarcinile de deplasare pn la obiectul de manipulat s-au conceput i dezvoltat
funcii de calcul a distanei (GotoNaomark);
Modelul de nvare a roboilor Nao traseele obiectelor manipulate este sigur deoarece
ia n considerare factori geometrici de apropiere (setai anterior) pentru evitarea coliziunilor i
n plus au fost testate i corectate n medii virtuale dedicate. n timpul proceselor de nvare a
secvenelor de manipulare au fost urmrite secven cu secven deplasrile braelor, viteza
acestora i nivelul de apropiere de elementele adiacente (supori, robot, obiecte etc.).
n cadrul ultimei etape s-au dezvoltat teste pornind de la diferite cazuri de localizare a
obiectelor n mediul de lucru i de manipulare a acestora. Testarea algoritmilor concepui i
dezvoltai s-a realizat i n mediul virtual Webots. n urma testelor realizate n mediul real
unele micri i poziii au fost corectate prin modificarea secvenelor nvate, pentru a obine
o precizie ct mai mare la manipularea obiectelor n mediul de lucru de ctre RP.
Pentru vizualizarea, simularea i testarea funcionrii ntregului sistem propus pentru
operaii complexe compuse din secvene elementare de manipulare dezvoltate n cap.3, n
cap.6 sunt prezentate experimente realizate n mediul real.

Modelarea manipulrii obiectelor cu roboi mobili pitori

65






UTILIZATOR
PLANIFICAREA
SARCINILOR/
OPERAIILOR
ALOCAREA
ECHIPEI
SISTEM DE
COMAND I
CONTROL
ECHIP DE
ROBOI
Fig. 4.1 Structura
general a unui sistem de
cooperare cu roboi n
echip

4. PLANIFICAREA OPERAIILOR I SARCINILOR DE
MANI PULARE

4.1.1 ASPECTE GENERALE

n vedere realizrii sistemelor de control multi-robot este nevoie de o perspectiv
global asupra mediului n care acioneaz roboii echipei i o unificare a metodelor de luare a
deciziei i de gestionare, respectiv de mprire a execuiei sarcinilor ntre roboi [Jolly, 2010;
Nanjanath, 2010; Zhu, 2011]. Pentru controlul acestor sisteme sunt necesare mecanisme
complexe de alocare a sarcinilor ntre agenii (fig. 4.1) ce alctuiesc echipa [Elango, 2011],
ns i o arhitectur sau o structur de control riguros definit [Navarro, 2011; Lopez, 2011].
Dorina unei flexibiliti ct mai ridicate i a unor cicluri de producie scurte n mediul
industrial a dus la dezvoltarea unor sisteme de roboi cooperativi [Arai, 2002; Farinelli, 2004].
Sistemele robotizate n main s-au dovedit a fi din ce n ce mai dificil de
programat/controlat, din cauza complexitii lor care se afl n continu cretere. Provocri,
precum planificarea sau setarea unor astfel de sisteme au necesitat coordonri a execuiilor i
cooperri supravegheate. Prin urmare, s-a dovedit c o transpunere a strategiilor de planificare
clasice pentru sistemele robotice n echip nu acoper totalitatea i complexitatea aspectelor
care apar n aceste sisteme.
Planificarea sarcinilor unui robot (Robot Task Planning) se regsete n multiple
lucrri prezentat ca fiind o sintez a aciunilor de operare pentru a ndeplini cu succes un
scop impus de o problem dat [Wei, 2003; Yao, 2007; Panfir, 2012b]. n literatura de
specialitate se identific dou tipuri de planificare a sarcinilor: prin modelare (Model Based
Planing) i bazat pe cazuri (Case Baesd Planing).
Primul tip de planificare [Walsh, 2010; Lee, 2007] utilizeaz modele deterministe
ntruct domeniul real al aplicaiei are un numr de stri infinit, ceea ce face imposibil ca
acestea s fie cuprinse ntr-un model complet, se folosete
modelarea cu ipoteze. Chiar dac acest tip folosete algoritmi
numerici exaci, n unele cazuri reprezentarea ajunge s fie
imprecis i chiar s se ajun la rezultate cu erori semnificative.
Cel de al doilea tip de planificare [Spalzzi, 2001; Ontanon, 2010]
bazat pe cazuri utilizeaz pentru rezolvarea unor noi probleme
sau generarea de noi cazuri, planurile anterioare stocate ntr-o
baz de cunotine proprie, care sunt refolosite i eventual
modificate. Scopul planificrii este acela de a genera o succesiune
de sarcini, aciuni i faze ntr-un spaiu dat cu o anumit predicie
a rezultatului sau organizarea sarcinilor ntr-o anumit ordine sau
dup o anumit regul pentru a ndeplini operaia dat sau pentru a
optimiza funciile de utilizate [Jung, 2004;].
Planificarea operaiilor presupune parametrizarea
n raport cu datele de intrare a funciilor de luare de hotrri legate
de numrul de roboi necesari i a secvenelor de executat
dezvoltate anterior cu algoritmi dedicai. Pe baza parametrilor de
intrare introdui de ctre utilizator se determin operaia care
corespunde acestor cerine, numrul de roboi necesari i tipul
acestora pentru executarea acesteia.
De obicei, planificarea sarcinilor pentru o echip de roboi
este un proces complex ce se realizeaz offline prin care se
determin un flux de secvene elementare care conecteaz starea

Planificarea operaiilor i sarcinilor de manipulare

67

iniial i final a robotului pentru a executa sarcini n mediul de lucru. Pentru configurarea
operaiilor complexe ce implic roboi cu diferite capaciti care opereaz n cooperare cu ali
roboi n echip, generarea unui plan al sarcinilor este uneori greoaie.
Sistemele de planificare au la baz un program (planificator/agent inteligent) care
opereaz cu date legate de domeniul problemei, interconexiunile intermediare, intrrile i
ieirile impuse. Ieirile planificatorului sunt sintetizate n sincronizri/numr de roboi/ sarcini
componente care trebuie implementate prin sistemul de control. n definiia unui planificator
se ntlnete noiunea de: domeniul problemei care nglobeaz colecia ntreag de situaii pe
care planificatorul le analizeaz, dup care se selecteaz cele care conduc la ndeplinirea
scopului propus.
n cazul n care se dorete rezolvarea unei operaii cu ajutorul unei echipe de roboi,
este recomandat modelarea cazului iniial n mediul real, i apoi gsirea unei soluii practice.
De exemplu, dac se dorete manipularea unei bare lungi, operaie care nu poate fii executat
de un singur robot din cauza gabaritului mare, o situaie similar i n cazul oamenilor, pentru
nceput se impune identificarea unei persoane poate executa operaia. Pentru a se rezolva
aceast problem exist mai multe abordri: fie toi oamenii din ncpere vor fii ntrebai pe
rnd dac sunt disponibili pentru a ajuta la aceast operaie, fie s-ar striga foarte tare Care
este disponibil pentru operaie de manipulare? astfel nct toate persoanele prezente s aud.
Oricare dintre aceste abordri constituie situaii reale, i au ajutat n construirea unui algoritm
de planificare pentru roboi n echip. Printre aceste translatri din lumea reala n lumea
roboilor i invers, se pot gsi diverse metode de pornire n schiarea algoritmilor de nvare,
planificare i execuie a sarcinilor.
Pentru execuia unei sarcini (fig. 4.2) un robot din cadrul unei echipe funcioneaz pe
baza unui ciclu de tip percepie-analiz-aciune [Klumpp, 2012].
Acest ciclu permite unui robot s funcioneze i s interacioneze n mod inteligent cu
ali roboi i cu mediul de operare, mediu care poate fi unul cunoscut total sau parial. Pe baza
informaiilor din mediul de operare i de la roboii cu care coopereaz, sistemul de comanda
construiete un raionament i apoi trimite comenzi robotului s le execute. Astfel, conform
ciclului din fig.4.2, prima etap lansat de primirea unui mesaj (fie el scris sau verbal)
presupune percepia mediului nconjurtor prin identificarea i localizarea obiectelor i a
celorlali roboi. Etapa de analiz presupune procese de decizie i control la nivelul
controlerului sistemului, care trimite mesaje de execuie a comenzilor roboilor. Ultima etapa
presupune executarea comenzilor, de asemenea corelate de funcii ale controlerului robotului.

4.2 OPERAII, SARCINI I FAZE
4.2.1 TIPURI DE OPERAII, SARCINI I FAZE
Conceptul de sarcin (T1,T2...Tn) poate fi aplicat unei mari varieti de operaii
(OP1,OP2...OPn), dezvoltnd descrieri ierarhice ale acestora, la nivel de detaliere diferit, n
funcie de contextul analizei.Sarcini se descompun n alte subsarcini componente numite faze.
PERCEPIE ANALIZ ACIUNE

Fig. 4.2 Etapele principale de lucru n echip


Capitolul 4

68

Conceptul de sarcin poate fi aplicat unei mari varieti de operaii. Structur ierarhic
a unei operaii (OP1, OP2..OPn) prezentat n fig 4.3, ofer o imagine de ansamblu asupra
compunerii acesteia din sarcini (T1, T2..Tn), faze (F11, F12Fmn) i secvene. Fazele ce
compun sarcinile sunt o succesiune de secvene elementare locale (SL1, SL2...SLp) sau n
micare (SM1, SM2...SMq) nvate anterior i stocate n baza de secvene.
Dac succesiunea mai multor sarcini duc la formarea operaiilor, iar fazele sunt
reprezentate prin succesiuni de una sau mai multe secvene, se poate deduce c operaia este o
succesiune de secvene nvate anterior, care sunt planificate pentru execuie dup algoritmi
dezvoltai offline. n tab 4.1 sunt prezentate operaii de baz care pot aprea ntr-un mediu
industrial general, cele mai comune care sunt efectuate n scopul de a realiza monitorizare,
transport, manipulare sau procesare. Operaiile au fost analizate, mprite i grupate n
vederea apropierii de modul n care oamenii le efectueaz.

Tab 4.1 Operaii n medii industriale executabile de RP

Categorii de sarcini Sarcini variate
Percepie
Identificarea obiectelor n mediul de lucru
Identificarea intrrilor/ieirilor n mediul industrial
Monitorizarea proceselor
Transport
(deplasare)
Transportarea piesei la blocul de asamblare, procesare sau
mpachetare
Manipulare
Manipularea local
Manipularea n micare
Procesare
Asamblarea unui produs,finisarea, ambalarea etc
OPERAIA
OP1
SARCINA 1
T1
SARCINA 2
T2
SARCINA n
Tn
Faza F11
Faza F12
Faza F13
Faza F21
Faza F22
Faza Fn1
Faza Fnm
Secvena SL1
Secvena SL9
Secvena SM2
Secvena SL11
Secvena SM1
Secvena SL1
Secvena SM3
Secvena SMn
Secvena SL7
Secvena SLm

Fig. 4.3 Structura general a unei operaii

Planificarea operaiilor i sarcinilor de manipulare

69


Fiecare RP dezvolt o list cu toate secvenele componente a unei operaii de executat
la un anumit moment de timp. n fig. 4.4 este prezentat structura general a operaiei
complexe OP6 (operaia de manipulare i deplasare a unui obiect cu masa <2kg de ctre un
singur RP).
Toate secvenele, fazele i sarcinile ce in de rezolvarea operaiei complexe sunt
rezolvate de ctre roboi, utilizatorul nefiind nevoit s intervin n timpul desfurrii
execuiei. Toate secvenele elementare componente a operaiilor sunt nvate anterior de
roboii Nao prin demonstrare i stocate n baza de secvene. Prin combinarea secvenelor
Apucare de jos n sus (SL1)
Ridicare jos n sus (SL3)
F11
Deplasare (SM1)
Apropiere obiect (SM7)
F12
Rotire (SM8)
Coborre (SL3)
F22
Poziionare maini pentru
mpingere (SL8)
mpingere (SM7)
Eliberare (SL11)
Apucare de jos n sus (SL1)
Ridicare jos n sus (SL3)
Coborre (SL3)
Eliberare (SL11)
F21
OP6
T1
T2
T3
T4
F41
F42
Deplasare
prin mpingere
Eliberare obiect
de jos n sus
Manipulare
local de jos n
sus
Manipulare cu
rotire
T3
T1
T2
T4
(Xi,Yi,i)
(Xf,Yf,f)
Date iniiale
Cerine finale
Punct iniial
Punct final

Fig. 4.4 Structura operaiei OP6

Capitolul 4

70

elementare se obin fazele, care prin combinare conduc la sarcini, care la rndul lor formeaz
operaii.
Operaiile executabile de RP n medii industriale sunt:
- Operaii care implic utilizarea unui singur robot: transportul unei piese de lucru
uoare de la punctul de intrare n producie la depozit (compus din deplasare i manipulare);
identificarea finalizrii unei piese uoare i transportul acesteia de la un punct la altul (compus
din monitorizare i deplasare).
- Operaii care implic utilizarea de doi sau mai muli roboi mobili pentru realizarea
operaiei. Acest caz apare atunci cnd n urma deciziei luate de ctre sistemul de comand
reiese faptul c operaia nu poate fi ndeplinit cu succes de ctre un singur robot, sau din
diverse alte motive pe care utilizatorul le poate specifica online.

4.2.2 OPERAII I SARCINI DE MANIPULARE CU RP

Fiecare RP membru a unei echipe primete o list cu toate sarcinile ca succesiuni de
secvene elementare pe care trebuie s le execute, dintr-o baz de secvene n care pot fi
adugate sau terse i alte secvene n funcie de necesiti.
Secvenele se pot executa de ctre un robot n dou feluri: fie simultan (n paralel) de
ctre roboi independent sau n echip, fie secvenial (unul dup altul). Atta timp ct o
sarcin se execut, exist posibilitatea de a porni o alt sarcin cu condiia ca aceste sarcini s
nu depind una de cealalt i s poat fii executate simultan fr a exista conflicte. n sistemul
implementat majoritatea sarcinile trebuiesc executate ntr-o anumit ordine impus i
planificat robotului de la nceput, astfel c o nou secven component a operaiei trebuie s
atepte finalizarea precedentei nainte de a intra n execuie. Acest lucru se datoreaz faptului
c secvenele elementare sunt total dependente unele de celelalte (de modificrile secvenei
precedente alteia), astfel spre exemplu: robotul nu poate s prind o bar dac nu a ajuns la
ea, adic secvena precedent care presupune deplasarea pn la bar nu a fost finalizat.
n fig. 4.5 este prezentat fluxul operaional cu toate sarcinile componente (T1.. T6) ale
NAO 1
NAO 2
T2
T2
T1
T1
(XR1,YR1)
(XR2,YR2)
T3+ sincronizare
T4 T4
T5+ sincronizare
T6
T6

Fig 4.5 Schema de sarcini elementare componente pentru o operaie a roboilor Nao


Planificarea operaiilor i sarcinilor de manipulare

71

unei operaii complexe executat de ctre doi roboi pitori NAO care coopereaz pentru a
manipula un obiect sub forma unui bare de lungime mare. ntreaga operaie este alctuit n
principal din ase sarcini diferite. Prima sarcin (T1) reprezint detectarea obiectului de
manipulat n mediul de lucru, presupune localizarea naomark-ului specific fiecrui obiect n
parte i trimiterea coordonatelor necesare urmtoarei sarcini. Deplasarea pn la obiectul de
manipulat se realizeaz n al doilea task (T2). n a treia sarcin (T3), are loc manipularea
(prinderea i ridicarea) obiectului. A patra sarcin (T4) const n deplasarea roboilor ntr-un
mod sincron pentru a muta obiectul la standul de ambalare. Cea de a cincea sarcin (T5) este
parte n cazul n care roboii elibereaz obiectul n punctul destinat. Sarcina final (T6)
presupune revenirea roboilor la poziia iniial.
n figura 4.6 se prezint structura unei operaii complexe care cuprinde urmatoarele
componente: sarcini, faze i secvene. Pentru compunerea operaiei de manipulare a barelor
lungi se identific urmtoarele dou tipuri de sarcini executate de ctre roboi i anume:
sarcini independente (T1, T2 i T6) i sarcini sincronizate/ simultane (T3, T4 i T5). Fiecare
faz (F11, F15F43) care ajut la formare unei sarcini, este la rndul ei compus dintr-o
serie de secvene elementare. De exemplu faza32: Prinderea barei, care este compus din
urmtoarele patru secvene: Secvena 31: Ridicarea din poziia de manipulare a barei ;
Secvena 32: ntinderea braelor; Secvena 33: Mutarea nainte a braului stng de 5 cm ;
Secvena 34: nchiderea braului stng. Aceste secvene au fost nvate de ctre roboi i
stocate; prin combinarea lor se obin faze, sarcini i operaii.

Operaia Manipularea barelor lungi
Identificarea
obiectului de
manipulat
Deplasare pn la
obiect
Manipularea
obiectului (n mod
sincron)
Deplasarea obiectului
pn la standul de
depozitare
Eliberarea obiectului
( n mod sincron)
ntoarcerea la poziiile
iniiale
T1 T2 T3 T4 T5 T6
Ridicarea din poziia
iniial
ncepe cutarea prin
deplasarea capului/ a
ntregului corp
Extragerea
coordonatelor obiectului
Prelucrarea datelor
Conform datelor
primite de la Task1
ncepe deplasarea
Alinierea corpului la
fiecare 30cm cu
Markerul
Deplasarea pn la o
distana de 10cm de
Naomark
Deplasare n stnga/
respectiv dreapta barei
Aezare n poziie de
manipulare a barei
Apuc bara
(n mod sincron)
Ridic bara
(n mod sincron)
Aezare n poziie de
mers
Deplasare 3m pn la
stand (n mod sincron)
Oprire la punctul final
ndoirea genunchilor
(n mod sincron)
Eliberarea obiectului
(n mod sincron)
ntoarcerea robotului
la un unghi de 90grade
Deplasarea pn la
poziiile iniiale
Oprirea motoarelor
robotilor/sleep robot
Identificarea NaoMark-
ului corespunztor ob
Faza 11
Faza 12
Faza 13
Faza 14
Faza 15
Faza 21
Faza 22
Faza 23
Faza 24
Faza 31
Faza 32
Faza 33
Faza 41
Faza 42
Faza 43
Faza 51
Faza 52
Faza 61
Faza 62
Faza 63

Fig 4.6 Structura operaiei de manipulare a barelor lungi (l >1,5 m)

4.3 DESCRIEREA OPERAIILOR, SARCINILOR I FAZELOR
Pentru studiile din aceast lucrare prin care se propune dezvoltarea unui sistem
inteligent de cooperare a RP n vederea execuiei de operaii complexe de manipulare i
deplasare, au fost definite trei operaii:
- OP1 - de manipulare cu un singur RP, presupune manipularea local iniial, deplasarea

Capitolul 4

72

obiectului cu robotul (eventual cu manipulare n micare): date intrare despre obiect:
masa< 2kg, form bar, lungimea 1m; date intrare despre micare: prindere, deplasare,
coborre, eliberare.
- OP2 - manipulare cu doi RP, presupune manipulare local iniial, deplasarea i manipulare
local final prin secvene elementare executate simultan de cei doi RP: date intrare
despre obiect: masa>= 2kg i < 4.5kg, form bar, lungimea 2,5m; date intrare despre
micare: prindere, deplasare, coborre i eliberare.
- OP3 - deplasare prin mpingere cu un singur robot RP, presupune poziionarea i orientarea
iniial, deplasarea prin mpingere i poziionare i orientarea final: date intrare
despre obiect: masa < 3.5kg, form circular; date intrare despre micare: poziionare,
orientare, mpingere, deplasare.
Fiecare robot pitor component al echipei, dispune de o serie de caracteristici i
funcii, pe baza crora s-au construit secvene elementare, iar pentru identificarea acestora n
baza de secvene au fost salvate corespunztor versiunilor roboilor (V25, V35, V45 etc.) care
le pot executa. De exemplu pentru trei modele de roboi pitori Nao care pot face parte din
echipe de roboi aceste versiuni sunt:
- versiunea V25- reprezint robotul Nao care poate executa sarcini de manipulare i
monitorizare
- versiunea V35- reprezint robotul Nao care poate executa toate sarcinile elementare
mai puin sarcina de sincronizare necesar cooperrii n echipele de roboi
- versiunea V45- reprezint robotul Nao care poate executa toate sarcinile elementare,
inclusiv sarcina de sincronizare necesar cooperrii n echipele de roboi
Datele de intrare care se regsesc n definiia unei operaii ajut la construirea i
identificarea operaiile asociate parametrilor de intrare introduse de user atunci cnd deschide
aplicaia client, unde:
-masa este o cerin de tip numeric (real) i frecvent se refer la limita maxim..
- deplasare este o cerin de tip Boolean (adevrat sau fals) care arat c este nevoie
ca obiectul s fie deplasat (transportat).
-forma este o cerin de tip text care permite i recunoate anumite forme predefinite
precum: circular, trapezoidal, bar, neregulat, cutie, paralelipipedic etc i determin
forma obiectului de manipulate.
-poziiile i orientrile iniiale i finale ale obiectului sunt cerine de tip numeric.
n partea de planificare a operaiilor are loc luarea deciziilor i interpretarea datelor de
intrare legate de scopul dorit. Principiul de planificare se bazeaz pe ideea de interpretare i
de analiz a datelor de intrare, n funcie de care se decide dac operaia poate fi executat de
ctre un singur robot sau de ctre mai muli. n urma deciziei luate, operaia este descompus
n sarcini, faze i secvene componente. Apelnd la secvenele existente n baza de secvene,
una cte una, sunt interogai roboii pentru a afla care sunt disponibili, dup care este trimis
operaia spre execuie. Urmtorul pas este confirmarea realizrii cu succes a sarcinii propuse.
Odat ce rspunsul primit este afirmativ, i se trimite robotului urmtoarea secven spre
execuie, n caz contrar, se reia sarcina pn cnd este executat cu succes, acest flux
repetndu-se pn cnd toate secvenele componente ale operaiei sunt efectuate.
Aplicaiile dezvoltate permit adugarea i editarea oricnd cerine de intrare noi i
bineineles tergerea acestora. Pentru testarea funcionalitii blocului de planificare a unei
operaii, s-a ales tipuri de cerine reprezentative corespunztoare operaiilor de manipulare
asociate cu mediul industrial simulat:
- Masa obiectului (kg) de manipulat, exprimat printr-o valoare pozitiv real;
- Volumul obiectului (m
3
) de manipulat, exprimat printr-o valoare real;
- Forma obiectului (forme geometrice) de manipulat, exprimat printr-o valoare de tip
alfanumeric;

Planificarea operaiilor i sarcinilor de manipulare

73

- Poziia i orientarea iniiale, coordonatele reale x
i
, yi i orientarea i (fig. 4.4)
exprimate prin valori reale;
- Poziia i orientarea finale, coordonatele reale x
f
, y
f
i orientarea
f
(fig. 4.4)
exprimate prin valori reale
n urma analizei valorilor coordonatelor iniiale i finale n funcie de dimensiunile
braelor roboilor se determin tipurile de manipulri (local iniial, local final, n micare)
precum i necesitatea micrilor de deplasare cu RP a obiectului n spaiul de lucru. Astfel, n
funcie de coordonatele carteziene se determin distana dintre poziia iniial i cea final,

(

, (4.1)

n cazul n care aceast distan este mai mic dect cursa minii unui robot, se
impune manipulare local iniial i final. Aceast situaie se descrie cu regula de producie
IF d 15cm THEN manipulare local iniial & manipulare local final. Dac aceast
situaie nu este ndeplinit se impune ca cele dou manipulri iniial i final s fie separate
de o deplasare a obiectului de ctre RP. Descrierea acestei situaii se face cu regula de
producie: IF d>15cm THEN manipulare local iniial & deplasare & manipulare local
final. Pe de alt parte, diferenele dintre unghiurile de orientare iniial
i
i final
f
implic
micri de rotire a obiectului, fapt descris prin regula IF
f
-
i
0 THEN rotire pe loc cu
unghiul
f
-
i
.
Atunci cnd o operaie este descompus n sarcini, planificatorul stabilete regula care
guverneaz aceast secveniere sau selectarea subsarcinilor. Unele sarcini, faze sau secvene
se realizeaz serial dup reguli simple de execuie, de tipul: realizeaz sarcina T1, apoi T2,
apoi T3 etc., altele implic realizarea a dou sau mai multe sarcini n sistem concurent. n
cazul altor operaii, se poate stabili o ordine a prioritilor, chiar dac nu exist o secven
predeterminat a lor pentru realizarea acestora. Pentru operaii care implic mai multe sarcini
concurente dependente s-a conceput un algoritm decizional bazat pe regula IF T1 THEN T2,
pentru a nu lsa nceperea execuiei T2 n cazul n care n urma examinrii din punct de
vedere al erorilor sau omisiunilor sarcina T1 nu a fost ndeplinit cu succes. Acest lucru a fost
implementat n tez, prin descrierea pailor ierarhiei, ceea ce avertizeaz de fiecare dat sau
cnd este cazul asupra faptului c n execuia operaiei exist erori semnificative.
Planificarea i alocarea secvenelor elementare n echipa de RP are loc dup reguli de
producie cu o structur IF condiie THEN aciune, stabilite pe baza datelor de intrare. Astfel
generarea unui plan de execuie necesar sistemului de comand i control se bazeaz pe
nlnuirea logic a unui set de regulilor de producie, n care aciunile rezultate n urma unor
condiii s devin noi condiii pentru alte seturi de reguli de producie din sistem. Regulile de
producie s-au dezvoltat corelat i cu datelor de intrare (parametrii):
IF nlimea la care se afl obiectul este H>=35cm THEN apucare de jos n sus;
IF nlimea la care se afl obiectul este H<35cm THEN apucare de sus n jos;
IF obiect cu prindere n lateral stnga cu H>=30cm THEN apucare din stnga
interior;
IF obiect cu prindere n lateral stnga cu H<30cm THEN apucare din stnga
exterior;
IF poziia final i apucare de jos n sus THEN coborre din fa;
IF obiect circular i spaiul de lucru nelimitat THEN mpingere.
Scrierea alocrii secvenelor elementare se face tot prin reguli de producie de forma:
IF apucare de jos n sus THEN secvena SL1;
IF apucare de sus n jos THEN secvena SL2;
IF apucare din stnga interior THEN secvena SL3;

Capitolul 4

74

IF apucare din stnga exterior THEN secvena SL4;
IF coborre din fa THEN secvena SL5;
IF ridicare din lateral THEN secvena SL8;
IF ridicarea din fa n micare THEN secvena SM1;
IF coborrea pe partea dreapt n micare THEN secvena SM5;
IF ndeprtarea obiectelor n micare THEN secvena SM9;
IF mpingere din fa THEN secvena SM10;
IF rotire THEN secvena SM11.
Selectarea numrului de roboi executani pentru o operaie impus are loc de
asemenea pe baza unor reguli de producie.
IF forma =bar i l=1,5m i masa>=1kg THEN se aloc doi roboi pentru execuie;
IF forma =bar i l=1,5m i masa<1kg THEN se aloc un robot pentru execuie;
IF forma =cutie i l=2m i masa>=3kg THEN se aloc doi roboi pentru execuie;
IF forma =cutie i l=2m i masa<3kg THEN se aloc un robot pentru execuie;
Regulile de producie stocate n baza de cunotine sunt utilizate de modulul de
raionare pentru generarea planurilor de execuie.

4.4 ALGORITMUL DE PLANIFICARE A OPERAIILOR I
SARCNI LOR
Nevoia implementrii unui modul inteligent de planificare a operaiilor i sarcinilor a
decurs din considerentele urmtoare [***a]:
Pentru minimizarea timpului de execuie a unei operaii, sarcinile componente trebuie
s fie pe ct posibil independente una fa de cealalt. Procedeul se numete procesare
asincron i n cazul sistemului dezvoltat n cadrul acestei lucrri acesta a fost aplicat la
descrierea secvenelor innd cont de urmtoarele:
- sarcinile s poat fi detectate atunci cnd ajung n strile de eec sau reuit ca apoi
aceast informaie s fie folosit ca i condiie pentru execuia altor secvene; acestea
trebuie organizate ntr-un mod robust.
- procesare ct mai eficient a mesajelor; sarcinile trebuie astfel adaptate nct
transmiterea i recepionarea mesajelor s se fac ntr-un mod ct mai lizibil.
Managementul operaiilor reprezint procesul de gestionare a activitilor sarcinilor
Cerine de intrare
Analiza
cerinelor de
intrare
Definire
operaie
Divizarea
operaiei
Selectare roboi
Alocarea
sarcinilor
T1 T2 Tn
Divizarea
sarcinilor
F11 F12 F2n
Divizarea fazelor
SLp SMq
Fig.4.7 Schema general de planificare a unei operaii



Planificarea operaiilor i sarcinilor de manipulare

75

componente prin tot ciclul lor de via, ceea ce implic planificarea, testarea i raportarea.
Schema bloc a procesului de planificare a unei operaii n cadrul unei echipe de RP este
prezentat n fig.4.7. Planificarea operaiilor se realizeaz de ctre modulul inteligent de
planificare i const n planificarea i coordonarea secvenelor fiecrui robot bazat pe regulile
de producie din baza de cunotine, cu scopul de a obine fluxul secvenelor elementare de
executat. Rezultatul planificrii nu este altceva dect o sum de secvene elementare nvate
de roboi anterior cu parametrii personalizai n funcie de operaia de executat.
Procesul de planificare este descris print-un proces iterativ alctuit din urmtorii patru
pai (fig. 4.2): a. analiza cerinelor de intrare primite de la utilizator; b. definirea i
identificarea operaiei dorite i a numrului de roboi necesari execuiei acesteia; c. divizarea
operaiei n sarcini, faze i respectiv secvene elementare pe baza regulilor de producie din n
baza de cunotine; d. alocarea secvenelor elementare roboilor executani pentru a ncepe
executarea fluxului tehnologic.
La baza operaiilor complexe stau secvene elementare enumerate anterior, care
compun sarcini i/sau faze ce pot fi ndeplinite fie de ctre acelai robot sau de muli roboi ce
alctuiesc echipa.
Planificarea operaiilor de manipulare a obiectelor de ctre doi roboi pitori a fost
ghidat i a respectat urmtoarele reguli generale care au condus la creterea eficienei
manipulrii i la optimizarea fluxului tehnologic:
Eliminarea obstacolele, fie ele fixe sau mobile din zonele de manipulare, deplasare
etc.
Traseele obiectelor au fost planificate sub form de linii drepte, evitndu-se pe ct
posibil revenirea i micrile ocolitoare.
Exploatarea formei obiectului de manipulat acolo unde este posibil; de exemplu
pentru cutiile voluminoase i grele, dar nefragile au fost nvate secvene elementare
dedicate pentru mpingere, rotire etc.
Traseele obiectelor n mediul de lucru au fost dispus pe un singur nivel, eliminndu-
se astfel sincronizarea roboilor pentru manipularea de obiecte i transportul acestora
ntre etaje.
Deplasarea obiectele voluminoase/grele a fost planificat nct s se realizeze pe
distane ct mai scurte, pentru a evita suprasolicitarea motoarelor roboilor, punctul
de final fiind ct mai aproape posibil de cel iniial.
Au fost aplicate principiile economiei de micare, evitndu-se manipularea,
transportul i deplasrile inutile.
Adaptarea capabilitilor echipamentelor utilizate pentru manipularea obiectelor la
operaiile impuse.
S-a evitat utilizarea echipamentelor eterogene (de diferite tipuri, dimensiuni i
mrci), datorit dificultii de comunicare ntre acestea.

4.5 TESTAREA I SIMULAREA ALGORITMULUI DE
PLANI FI CARE
Fiecare robot component al unei echipe deine informaii legate de operaia i sarcinile
sale (faze i secvene) care sunt active la anumite momente de timp cerute de fluxul
tehnologic. Astfel, odat cu primirea unei noi comenzi de executat, robotul i poate modific
starea intern sau poate executa o nou secven.

Capitolul 4

76

n fig. 4.8 se
prezint schema bloc a
procesului de execuie a
unei operaii. Dup
stabilirea planului de
operaie pe baza
cerinelor i restriciilor
venite de la user se
ncepe execuia
secvenelor componente.
Dup ce o secvena a
fost executat, starea
robotului va fi de
ateptare pn la sosirea
urmtoarei secvene. Cu
ajutorul strii interne a
secvenei se verific
dac aceasta este activ
sau dac a fost executat.
Odat ce aceasta s-a
executat, starea intern
ne indic dac acesta s-a
finalizat cu succes sau a
euat n activitatea sa.
Odat ce secvena este
executat cu succes,
acesta este eliminat din
comportamentul
agentului, iar n caz
contrar se ncerc
reluarea execuiei
secvenei de trei ori. Dac n urma celor trei pai secvena nu primete statusul de succes,
atunci utilizatorul primete mesaj de eroare c operaia nu s-a executat cu succes. Utiliznd un
astfel de planificator, doar o singur secven se poate executa la un anumit moment dat, fiind
necesar verificarea strii secvenei pentru a tii cnd se poate trece la urmtoarea.
Pentru a verifica eficacitatea algoritmului de planificare propus, au fost implementate
diferite scenarii (un exemplu fiind cel din Fig. 4.9), folosind pentru vizualizare o interfa
grafic dezvoltat n mediul de programare Webots. n final s-au realizat teste de
implementare i validare a algoritmului propus n medii reale.
n urma testelor efectuate, reiese faptul c algoritmul de planificare a sarcinilor,
respectiv a operaiilor n cadrul unei echipe de RP soluioneaz cu uurin situaiile de
manipulare impuse. Dei nu sunt cele mai scurte, traseele de manipulare sau deplasare
obinute permit o operaie sigur, n timpi redui, a roboilor pitori fr a intra n situaii de
blocaj n ceea ce privete cooperarea roboilor.


DA
Stop
Secven activ
Eroare de
execuie?
Sistem de planificare
inteligent
Mesaj de
eroare
Baza cu planuri de
operaii
Planul de operaie
Execuie euat
de 3 ori?
NU
Execuie secven
Secven
final?
DA
DA
NU
NU
User
Cerine i
restricii
Fig. 4.8 Schema logic a procesului de execuie a unei operaii


Planificarea operaiilor i sarcinilor de manipulare

77


Fig. 4.9 Scenariul de simulare a operaiei de manipulare a unui bare de ctre doi RP

4.6 CONCLUZI I
n cadrul acestui capitol se prezint algoritmul de planificare a operaiilor i sarcinilor
de manipulare pentru o echip de RP care i desfoar activitatea ntr-un mediu industrial.
Algoritmul de planificare dezvoltat utilizeaz secvenele elementare nvate prin demonstrare
stocate ntr-o baza de secvene comun. n acest capitol au fost prezentate detaliat modele de
operaii de baz care pot aprea ntr-un mediu industrial, structura acestora,
operaii/sarcini/faze i secvene pe care le pot ndeplinii RP ce fac parte din echip. Pentru
detalierea noiunilor de operaie, sarcin, faz i secven a fost prezentat un exemplu de
operaie complexa, aa cum este ea interpretat de sistem, compus i planificat. Planificarea
i alocarea secvenelor elementare n echipa de RP are loc dup reguli de producie, stabilite
pe baza datelor de intrare impuse de utilizator.
Metodologia de dezvoltare a algoritmului de planificare a unei operaii presupune
parcurgerea succesiv a urmtoarelor etape: analiza cerinelor de intrare primite de la
utilizator; definirea i identificarea operaiei dorite i a numrului de roboi necesari execuiei
acesteia; divizarea operaiei n sarcini, faze i respectiv secvene elementare pe baza regulilor
de producie definite n baza de cunotine; alocarea sarcinilor roboilor executani pentru a fi
executate.





5. SISTEM INTELIGENT DE COOPERARE A ROBOILOR
PITORI

5.1 ASPECTE GENERALE

Noiunea de agent inteligent nu este nou, ea apare pentru prima dat n anul 1970 n
lucrrile lui Nicholas Negraponte i n 1984 n cele ale lui Alan Kai [Negraponte,1970;
Kai,1984]. i ali cercettori, cum ar fi Marvin Misky, Rodney Brooks, Burgard, Feigenbaum,
Russell i Norvig au studiat problemele legate de ageni, modelarea acestora i au evideniat
diferite tipuri de clase i de comportamente [Feigenbaum,2003; Burgard, 2000].Modele
reprezentative a agenilor inteligeni elementari definite de Meystel i Albus sunt artate n
fig. 5.1. Agentul inteligent reprezint componenta de baz a unui sistem complex, care
percepe mediul su nconjurtor cu ajutorul senzorilor i acioneaz autonom n funcie de
acesta, prin intermediul efectorilor pentru ndeplinirea unei funcii date [Wooldrige, 2002]. O
definiie cuprinztoare conform lui [Ferber, 1999] are urmtorul enun: Agentul inteligent
este o entitate real sau abstract capabil de a aciona asupra ei nii i asupra mediului su,
care dispune de o reprezentare parial a acestui mediu, care poate comunica cu ali ageni
ntr-un mediu multi-agent i al crui comportament este consecina observaiilor sale,
cunotinelor sale i interaciunilor cu ali ageni.
Sistemele inteligente implementate n medii industriale prezint o serie de avantaje:
1) Crete disponibilitatea accesului la aplicaii diverse, n ideea n care expertiza devine
accesibil de pe oricare resurse hardware.
2) Reducerea costului, innd cont de preurile sczute ale unor astfel de sisteme.
3) Crete calitatea proceselor tehnologice.
4) Ajut la eliminarea sau chiar reducerea pericolelor, n ideea n care aceste sisteme pot fi
folosite n medii periculoase pentru om, atunci cnd sunt ncorporate n sisteme adecvate (de
exemplu, n sistemele de comand ale roboilor industriali).
5) Durat de via foarte lung i fiind n continu ascensiune sunt mereu mbuntite i
updatate la noile tehnologii care apar.
6) Rapiditate, n sensul c pe sisteme software i hardware adecvate se pot obine performane
de timp mai bune dect cele ale experilor umani.

5.2 SISTEME INTELIGENTE DE ACIUNE N MEDII
I NDUSTRI ALE

n funcie de tipologia aplicaiilor industriale dar i al proceselor, de informaia creat
explicit i mai apoi folosit de ctre agent n cadrul deciziei, exist numeroase tipuri de ageni
inteligeni. Acetia se difereniaz ntre ei prin modalitatea de considerare a percepiilor,
aciunilor, scopurilor i a nivelului de inteligen i capabiliti. De exemplu, Russel i Norvig
[Russel, 2003] evideniaz cinci modele de ageni inteligeni: ageni care se bazeaz pe
reflexe simple, ageni care se bazeaz pe scop, ageni care se bazeaz pe model, ageni care se
bazeaz pe utilitate, ageni care se bazeaz pe nvare.
Agenii bazai pe reflexe simple (reflex agent) (fig. 5.1,a) se caracterizeaz prin
rspunsul imediat la o secven de intrare, realizeaz conexiuni ntre situaia pe care el o
percepe i o anumit aciune. Aceste conexiuni sunt memorate de ctre agent sub forma unor
reguli condiie-aciune (if percepie(condiie) then aciune). Acest agent dispune de un
program foarte simplu, care este dezvoltat astfel nct s caute ntotdeauna o regul a crei
parte de condiie s se potriveasc situaiei curente (aa cum este ea definit de ctre

Sistem inteligent de cooperare a roboilor pitori

79

percepie), dup care efectueaz aciunea asociat acestei reguli. Pentru aceti ageni mediul
n care lucreaz trebuie s fie total observabil.
Agenii bazai pe model (model-based agent) (fig. 5.1,b), lucreaz ntr-un mediu de
operare care trebuie s fie parial observabil. Starea sa intern este dat de un model teoretic
care ofer informaii despre partea din mediul real pe care agentul nu poate s o observe,
precum i despre percepiile i aciunile anterioare. Pentru modificarea strii interne este
nevoie ca programul de care dispune agentul s includ dou tipuri de informaii: informaii
despre modul n care lumea evolueaz n mod independent fa de agent i informaii cu
privire la modul n care aciunile acestuia afecteaz mediul. Acest tip de agent acioneaz pe
baza modelului structurii mediului creat dup un algoritm dedicat.
Agenii bazai pe scop (goal-based agents) (fig. 5.1,c), au la baz acionarea n sensul
ndeplinirii scopului propus. Cunoaterea strii curente nu reprezint ntotdeauna metoda
suficient pentru a se putea selecta o aciune corect. n unele cazuri, agentul inteligent are
nevoie de informaie care s descrie atingerea scopului impus. Programul de care dispune
agentul combin aceast informaie cu informaia despre rezultatele aciunilor sale, ca n urma
acestora s aleg aciunile care conduc la scopul propus.
Agenii bazai pe utilitate (utility-based agents) (fig. 5.1,d) au aprut datorit faptului
c nu este suficient ntotdeauna cunoaterea scopului, pentru a se putea genera cea mai bun
strategie posibil. Datorit faptului c singura funcie a scopului impus este de a determina
deosebirile ntre strile care sunt considerate favorabile i cele nefavorabile, asocierea unei
msuri de performan fiecrui scop va permite compararea strilor, din punct de vedere al
utilitii pe care acestea o prezint din punctul de vedere al agentului. Astfel, funcia de
utilitate permite agentului s ia decizii n cazul scopurilor conflictuale.
Senzori
Mijloace de aciune
Reguli
condiie-aciune
Agent
inteligent
M
e
d
i
u
l

d
e

l
u
c
r
u
Aciune
Senzori
Mijloace de aciune
Reguli
condiie-aciune
Agent
inteligent
M
e
d
i
u
l

d
e

l
u
c
r
u
Structura
mediului
Senzori
Mijloace de aciune
Planificarea scopului
Agent
inteligent
M
e
d
i
u
l

d
e

l
u
c
r
u
Aciune
Structura mediului
Senzori
Mijloace de aciune
Planificarea scopului
Agent
inteligent
M
e
d
i
u
l

d
e

l
u
c
r
u
Aciune
Structura mediului
Sistemul de utilitate
a
b
c
d
Fig. 5.1 Modele funcionale ale agenilor inteligeni: a - reflexive; b - bazai pe model; c - bazai pe
scop; d - bazai pe utilitate


Capitolul 5

80

Agenii bazai pe nvare (learning agents) (fig 5.2) sunt acei ageni inteligeni care
opereaz n medii de lucru necunoscute, bazndu-se doar pe anumite cunotine iniiale
(nvate anterior). Aciunile sunt selectate prin procese de raionare bazate pe cunotine, pe
percepie i pe experienele accumulate prin nvare. Performanele atinse de agent sunt
continuu evaluate prin compararea cu performanele impuse de dezvoltator, dup care sunt
stocate n baza de cunotine. Aceti ageni sunt caracterizai printr-o autonomie ridicat,
deoarece iau n considerare comportamentele anterioare stocate n memorie, n urma crora
identific i evalueaz mbuntirile obinute n urma nvrii.
n sintez, prin sistem inteligent (expert) se nelege un sistem software care prelund
cunotinele unui expert i nmagazinndu-le ntr-o baz de cunotiinte proprie, poate rezolva
probleme complexe dintr-un anumit domeniu de expertiz [Beetz, 2010; Butil, 2013].Deci
sistemul expert [Feigenbaum,2003] este un program de calculator care folosete cunotine i
proceduri de raionament pentru a rezolva probleme complexe, necesit n mod obinuit
pentru a obine o soluie corect cunotinele unui expert uman n domeniu [Beetz, 2010].
n fig. 5.3 este prezentat schema principial a unui sistem inteligent/expert.
Utilizatorul furnizeaz cunotine iniiale specifice problemei ce se dorete a fi rezolvat i
primete rezultate sub forma expertizei, adica a soluiei pe care sistemul o indic referitor la
problema precizat prin datele de intrare.
Componentele principale ale sistemului inteligent sunt: baza de cunotiine, motorul
de inferen, interfaa cu utilizatorul si modulul explicativ.
Baza de cunotine (Knowledge Base) este o component de baz a unui sistem
inteligent care ajut la stocarea informaiilor (fapte, reguli, soluii de rezolvare) specifice
domeniului de aplicaie, preluate de la experii umani sau din alte surse.
Motorul de inferen (Inference Engine) este o component program care conine
reguli i elemente de control, cu ajutorul cruia se exploreaz baza de cunotine n vederea
efecturii de raionamente pentru obinerea de soluii, recomandri sau concluzii n condiiile
unor restricii impuse.
Interfaa cu utilizatorul permite dialogul cu utilizatorii n timpul sesiunilor de
consultare i interogare, precum i accesul acestora la cunotinele din baz pentru adugarea
i/sau actualizarea acesteia.
Senzori
Baz de date/
cunotiine
Agent inteligent
dezvoltat
M
e
d
i
u
l

d
e

l
u
c
r
u
Aciune
Motor de
inferen
Sistem de nvare a
sarcinilor elementare
Performane impuse
de dezvoltator
Cunotiine ale
experilor umani
Mijloace de aciune

Fig. 5.2 Modelul funcional al agenilor inteligeni bazai pe nvare

Sistem inteligent de cooperare a roboilor pitori

81


Modulul explicativ reprezint blocul cu rolul de a explica utilizatorilor att
cunotinele pe care le are sistemul, ct i modurilor de raionare de care dispune acesta pentru
obinerea soluiilor n cadrul sesiunilor de consultare.
Sistemele expert sunt utilizate frecvent pe de-o parte datorit capacitilor acestora de
a procesa un volum imens de cunotine i date (care ar fi foarte anevoios de procesat de
operatorii umani), i pe de alt parte, datorit posibilitilor de reprezentare i stocare
structurat a expertizelor operatorilor umani astfel eliminndu-se dependenele de prezen a
acestora, dar i facilitatea dezvoltrii ulterioare a acestora.

5.3 STRUCTURA FUNCIONAL A SISTEMULUI DE
COOPERARE A ROBOILOR PITORI, NaoCoop

Cercetrile privind sistemele de cooperare a roboilor mobili au nceput n jurul anilor
1980, o atenie mrit fiind acordat problemei de coordonare i cooperare a roboilor n
cadrul echipelor [Burgard, 2000; Gerkey, 2002; Lawton, 2003; Yulan, 2012a; Wang, 2008a;
Wang, 2008b].
Sistemele multi-robot sunt definite ca grupuri de roboi care opereaz n acelai mediu,
pentru a realiza un set de sarcini, mpreun sau independent. Cercetrile pe aceast tem, n
care diverse echipe de roboi trebuie s realizeze operaii complexe n colaborare, n ultimul
timp au nceput s ctige popularitate.
Interesul de a dezvolta un sistem de cooperare a roboilor n care sarcinile sunt alocate
de ctre un agent inteligent a aprut datorit necesitilor impuse de procesele industriale
complexe. Beneficiul folosirii unui planificator de sarcini centralizat (agent inteligent) este dat
de faptul c permite luarea unei decizii n locul roboilor privind din perspectiva unei echipe.
n acest scop, sistemul poate lua o decizie mai potrivit nainte ca anumite aciuni s aib loc.
n acest lucrare se propune un nou concept de distribuie a sarcinilor n cadrul unei echipe,
BAZ DE DATE / CUNOTIINE
MODUL
EXPLICATIV
MODUL DE
ACHIZIIE A
CUNOTIINTELOR
INTERFA OPERATOR
MOTOR DE
INFEREN
(RAIONARE)
UTILIZATOR
Colecteaz
cunotiine
Efectueaz
raionamente
Explic
raionamentele


Fig. 5.3. Schema de pricipiu a unui sistem inteligent


Capitolul 5

82

sarcini care compun operaii complexe, n funcie de disponibilitatea i caracteristicile
roboilor, precum i n funcie de sarcinile care pot fi executate de fiecare robot n parte.
n fig. 5.4 se prezint arhitectura sistemului inteligent NaoCoop dezvoltat care conine
procese offline (prezentate detaliat n cap 3) i procesele online. Blocurile componente
proceselor online sunt: sistemul de comand i control, controlerele roboilor, baza de date,
blocul de comunicare i sincronizare, interfaa grafic utilizator-sistem i roboii echipei.
Baza de date, conine toate informaiile cuantificabile necesare pentru ca sistemul s
funcioneze: tipurile roboilor i caracteristicile lor, codurile planurilor de operaii. Aceasta
conine, de asemenea, informaii statice privind capabilitile roboilor, i informaii dinamice,
cum ar fi strile n care se afl n anumite momente roboii i informaiile necesare pentru
funcionarea corect a sistemului.
Interfaa grafic utilizator este componenta care permite comunicarea cu operatorul i
accesarea informaiilor din baza de date ntr-o form standard. Aceast interfa face posibil
accesul utilizatorului la informaiile despre roboi, respectiv despre echip, la planurile de
operaii curente, editarea, adugarea sau tergerea acestora [Panfir, 2012a].
Sistemul de comand i control al echipei de RP reprezint partea central a sistemului
NaoCoop care coordoneaz toate aciunile roboilor conform planului operaiei curente; n
plus, n cadrul acestui subsistem sunt gestionate codurile de eroare i procesele de
sincronizare.
Echipa de roboi pitori RP1 i RP2 realizeaz aciuni independent sau n echip sub
BAZA DE CUNOTIINE
PLANIFICAREA
INTELIGENT A
OPERAIILOR
BAZ CU PLANURI DE
OPERAII
CONTROLER RP2 CONTROLER RP1
NVAREA SECVENELOR
ELEMENTARE
BAZ DE SECVENE
ELEMENTARE
SIMULAREA I TESTAREA
N MEDIUL DE LUCRU
VIRTUAL
BLOC DE COMUNICARE I
SINCRONIZARE
SISTEM DE COMAND I CONTROL AL
ECHIPEI DE RP
M
O
D
E
L
A
R
E
A

O
P
E
R
A

I
I
L
O
R
I
N
T
E
R
F
A


G
R
A
F
I
C


U
T
I
L
I
Z
A
T
O
R
BAZA DE DATE
MEDIUL DE LUCRU
Inginer de
cunotiine
Operator
Inginer de
cunotiine
RP1 RP2
P
R
O
C
E
S
E

O
N
L
I
N
E
P
R
O
C
E
S
E

O
F
F
L
I
N
E
Fig. 5.4 Arhitectura general a sistemul inteligent NaoCoop


Sistem inteligent de cooperare a roboilor pitori

83

controlul i comanda controlerelor proprii care gestioneaz funciile la nivelul motoarelor de
acionare, a blocului de comunicaie i senzorilor externi.

5.3.1 STRUCTURA I FUNCIONAREA PROCESELOR OFFLINE

Toate blocurile componente din procesele offline: modelarea operaiilor, planificarea
operaiilor n urma creia a rezultat baza cu planuri de operaii, nvarea secvenelor
elementare simulate i testate au fost descrise detaliat n capitolele 3 i 4. nvarea
secvenelor s-a realizat prin demonstrare i simulare, secvene care apoi au fost stocate n baza
de secvene elementare distincte. Planificarea inteligent a operaiilor s-a realizat pe baza
regulilor de producie de forma IF condiie THEN aciune, reguli stocate ntr-o baz de
cunotine comun roboilor. n urma combinrii mai multor reguli de producie pe baza
cerinelor utilizatorului i ale mediului de lucru s-a format o baza cu planurile de operaii, care
devin intrri pentru sistemul de comand i control din procesele online. Toate secvenele
nvate ce stau la baza planurilor de operaii au fost simulate i testate n mediul de lucru
virtual.

5.3.2 STRUCTURA I FUNCIONAREA PROCESELOR ONLINE

5.3.2.1 I NTERFEELE GRAFI CE ALE SISTEMULUI

Interfaa grafic a utilizatorilor
pentru aplicaia NaoCoop a fost
implementat folosind standardul Model
View ViewModel (MVVM) specializat
pentru interfee care faciliteaz o separare
clar a dezvoltrii interfeei grafice de
dezvoltare de logic business sau de logic
back end. ViewModel-ul din MVVM este
un convertor valoare n sensul c acesta
este responsabil pentru expunerea
obiectele de date din Model n aa fel nct
aceste obiecte s fie uor de administrat i
de accesat de View.
Aplicaia NaoCoopApp dispune de
dou funcionaliti majore i anume:
prima este folosit pentru editarea bazei de
date folosind librria
NaoCoopDataAccess, iar cea de a doua
este folosit pentru executarea operaiilor
folosind librria NaoCoopLib.
n sistemul NaoCoop exist dou tipuri de utilizatori: operatori/utilizatori i ingineri
de cunotine. La pornirea aplicaiei NaoCoopApp operatorul este nevoit s se autentifice (fig.
5.5), iar n urma tipului su, se va afia meniul corespunztor astfel nct acesta va avea acces
la pagina de execuii, iar inginerul de cunotine va avea acces att la execuii ct i la paginile
de editare a datelor din baza de date, a cunotinelor din baza de cunotine i a secvenelor
din baza de secvene.




Fig. 5.5 Autentificarea utilizatorului


Capitolul 5

84

5.3.2.1.1 INTEFAA GRAFIC UTILIZATOR

Interfaa operatorului (fig. 5.6) permite: accesarea paginii cu ajutorul unei parole,
introducerea caracteristicilor pe baza crora se face selecia operaiei corespunztoare din
baz, vizualizarea progresului fiecrei sarcini care compune o operaiune n curs de
desfurare.
Interfaa inginerului de cunotine (fig. 5.7) permite: accesarea paginii utiliznd o
parol, editarea/tergerea i adugarea de noi roboi n echipa Robot, caracteristicile, sarcinile,
strile sale, care se pot executa i, de asemenea, poate comanda echipa de roboi care sunt sub
administrarea lui prin trimiterea de cereri i nu n ultimul rnd permite nvarea de noi
secvene elementare atunci cnd este nevoie.
5.3.2.1.2 INTEFAA GRAFIC DE EDITARE A BAZEI DE DATE
Inginerul de cunotine este capabil s actualizeze informaiile din baza de date folosind
paginile din grupul Settings Robots (fig. 5.8), Robot Versions, Requirements (fig. 5.9),
Operations, State sau Tasks. Fiecare pagin din cadrul grupului Settings dispune de dou
butoane, unul pentru modificarea datelor, iar cellalt pentru salvarea modificrilor dorite
(Refresh, Save). nregistrrile din baza de date sunt ncadrate ntr-un grid care are
capabilitatea de a adaug, modifica sau terge rnduri.



Fig. 5.6 Interfaa pentru inginer de cunotine Fig. 5.7 Interfaa pentru operator



Fig. 5.8 Pagina de setare a roboilor Fig. 5.9 Pagina de setare a datelor de intrare



Sistem inteligent de cooperare a roboilor pitori

85

5.3.2.2 SISTEMUL DE COMAND I CONTROL AL ECHIPEI DE RP

n figura 5.10 se prezint arhitectura sistemului de comand i control al echipei de RP
compus din urmtoarele module: modulul de accesare la baza de date, modulul de comunicare
cu robotul i modulul cu toate entitile folosite. Toate modulele componente ale sistemul de
comand i control au fost dezvoltate n mediul de programare .NET (limbajul C#) i grupate
ntr-un programul principal numit NaoCoopApp. Cu ajutorul acestuia am realizat cooperarea
roboilor bazat pe comunicarea explicit, prin voce, care interacioneaz cu celelalte blocuri.
Modulele componente folosesc librria dll comun NaoCoopLib. Aceast librrie
definete logica robotului care prin intermediul interfeei de programare (API) NAOqi.Net
trimite comenzile ctre controlerul robotului Nao pentru a putea fi executate. NaoCoopLib
este librria comun prin care se efectueaz orice operaie a robotului. Acesta are ca referin
kitul de dezvoltare software (SDK) .Net pentru sistemul NAOqi.

Modulul de legtur
ntre robot i aplicaie
(NAOqi.Net)
NaoCoopDb
NaoCoopDataAccess
Modulul de comunicare
cu robotul
(NaoCoopLib)
Modulul cu toate
entitile folosite
(NaoCoopObjects)

Fig. 5.10 Arhitectura sistemului de comand i control al echipei de RP


5.3.2.2.1 BAZA DE DATE

Baza baza de date de tip NaoCoopDb reprezint Microsoft SQL n care sunt stocate
informaiile legate de sistemul dezvoltat NaoCoop ce are o structur de 7 blocuri principale i
7 blocuri de legtur, dezvoltat n Microsoft SQL pentru robustee, simplitate i
disponibilitate. Baza de date, conine astfel toate legturile grafice necesare pentru ca sistemul
implementat s funcioneze la capacitate maxim (tab. 5.1).

Tab 5.1 Blocurile componente ale bazei de date
Nume Descriere
dbo.ExecutionRobots Bloc de legtur ntre execuii i roboi.
dbo.Executions Bloc ce conine detalii despre execuiile operaiilor.

Capitolul 5

86

dbo.OperationRequirements Bloc de legtur ntre cerine i operaii.
dbo.OperationRobots Bloc ce conine date despre roboii necesari unei operaii.
dbo.OperationRobotStates Bloc de legtur ntre OperationRobots i States.
dbo.Operations

Blocul Operations conine date despre operaiile suportate n
NaoCoop.
dbo.Requirements Bloc ce conine cerine generale definite n sistemul NaoCoop.
dbo.Robots Stocheaz date despre roboii disponibili.
dbo.RobotVersions Bloc ce conine versiuni ale roboilor Nao.
dbo.States Bloc ce conine strile suportate de roboi din sistemul
NaoCoop.
dbo.StateTasks Blocul de legtur ntre States (stri) i Tasks (sarcini).
dbo.Tasks Bloc ce conine sarcinile suportate de sistemul NaoCoop.
dbo.TaskSettings Bloc ce conine setri ale task-urilor.
dbo.Users Bloc ce conine informaii despre utilizatorii sistemului
NaoCoop.


Fig.5.11 Structura bazei de date

Sistem inteligent de cooperare a roboilor pitori

87

Descrierea detaliat a tuturor blocurilor existente n baza de date utilizat de sistemul
conceput se regsesc n anexa 4.

5.3.2.2.2 MODULUL PENTRU DEFINIREA ENTITILOR

n modulul (librria) NaoCoopObjects sunt definite entitile folosite de sistemul
NaoCoop. Aceste entiti sunt exprimate n clase (fig 5.12) i folosite de toate blocurile
aplicaiei.


Fig. 5.12 Librria pentru definirea entitilor, NaoCoopObjects

5.3.2.2.3 MODULUL PENTRU ACCESUL LA BAZA DE DATE

NaoCoopDataAccess este blocul care asigur accesul la baza de date prin componenta
framework-ului .Net numit LINQ to SQL (anexa 1). n LINQ la SQL, modelul de date a unei
baze de date relaionale este mapat la un model de obiecte exprimat n limbajul de programare
utilizat. Atunci cnd aplicaia ruleaz, LINQ to SQL traduce modelul de obiecte n interogri
SQL i le trimite la baza de date pentru execuie. Cnd se primete rspunsul, LINQ to SQL l
transform napoi n obiecte.
Layer-ul LINQ to SQL nu este ns expus public, NaoCoopDataAccess dispune de
clase manager care primesc ca i parametru sau returneaz obiectele definite n
NaoCoopObject. Pentru fiecare tabel sau tip de operaie exist cte o clas manager (fig. 5.13)
care are ca i metode:
GetRecordByID: primete ca i parametru un ID de tip Guid i returneaz obiectul
din baza de date cu acel ID.
GetRecords: returneaz ntreaga colecie de nregistrri din tabelul bazei de date
aferent managerului.

Capitolul 5

88

SaveRecord: primete ca i parametru un obiect definit n NaoCoopObject pe care
l transform n obiect LINQ to SQL i l trimite la baza de date pentru stocare
(inserare sau actualizare).
DeleteRecord: primete ca i parametru un obiect definit n NaoCoopObject i
terge din baza de date nregistrarea aferent acestui obiect.


Fig. 5.13 Blocul pentru accesul la baza de date: NaoCoopDataAccess

5.3.2.2.4 MODULUL DE COMUNICARE CU ROBOTUL NAO

NaoCoopLib (fig5.14) este modulul comun prin care se efectueaz orice operaie a
robotului. Are ca referin kitul de dezvoltare software (SDK) .Net pentru sistemul NAOqi.
Blocul este capabil s transforme din obiectul Operation definit n NaoCoopObject n mai
multe obiecte interne NaoCoopRobot i apoi s execute comenzi direct pe robotul fizic Nao.


Sistem inteligent de cooperare a roboilor pitori

89


Fig. 5.14 Librria de comunicare cu robotul Nao ( NaoCoopLib)
5.3.2.2.5 CLASA PRINCIPAL A RP

NaoCoopRobot este clasa principala care definete obiectul robotului (toate aciunile
i strile acestuia). Aceast clas se iniializeaz o dat pentru fiecare robot primind ca
parametrii datele robotului (ip, port). Clasa dispune de un automat finit care se genereaz n
mod dinamic n funcie de strile i sarcinile definite n obiectul Robot al librriei
NaoCoopObjects (anexa 6).
Un automat finit normal sau o "main cu un numr finit de stri" este un model de
Robotul este
initializat
WalkToCheckpoint
AtCheckpoint
Robotul se afla la
principalul
punct de control.
Stop
AtGrabLocationA
Robotul se afla la
punctul A (stanga) de
ridicare a obiectului.
AtGrabLocationB
Robotul se afla la
punctul B (dreapta) de
ridicare a obiectului.
InLiftPosition
Robotul se afla
in pozitia de ridicare
a obiectului.
Lift
InWalkPosition
Robotul se afla
in pozitie de
transportare
a obiectului.
Proces
terminat
WalkWithObject
GoToGrabLocationA
GoToGrabLocationB
GoToLiftPosition
GoToLiftPosition
Comenzi care se execut
ntr-un mod sincron ntre
cei doi roboi.
Fig.5.15 Automatul finit al clasei NaoCoopRobot pentru manipulare a unui
obiect de ctre doi RP


Capitolul 5

90

comportament compus din stri, tranziii i aciuni. O stare stocheaz informaii despre trecut,
adic reflect schimbrile intrrii de la iniializarea sistemului pn n momentul de fa.
Automatul finit n cazul de fa [Yulan, 2012b] este folosit pentru monitorizarea strilor i
aciunilor robotului (fig. 5.15). O tranziie indic o schimbare de stare i este descris de o
condiie care este nevoie s fie ndeplinit pentru a declana tranziia. O aciune este o
descriere a unei activiti ce urmeaz a fi executat la un anumit moment.
Strile specificate n fig. 5.15 pentru execuia unei operaii, reprezint strile ntlnite
de ctre un robot n traseul acestuia de parcurgere a unei operaii complexe, fie c aceasta este
executat de ctre un singur robot sau n cooperare cu altul. Pentru operaiile executate prin
cooperarea a doi roboi, apar noi stri specifice acestora impuse de fluxul operaiei. Exemple
de stri identificate n automatul finit al unui robot pitor Nao sunt: Initialized- robotul este
iniializat; AtCheckpoint- robotul a ajuns la punctual de control(naomark-ul de pe cutie);
AtGrabLocation- robotul a ajuns la locaia de ridicare a obiectului; InLiftPosition- robotul se
afl n poziia de ridicare a obiectului; InWalkPosition- robotul se afl n poziia de
transportare a obiectului; Terminated- robotul a ncheiat execuia.
Comenzile (NaoCommand) trimise robotului Nao pentru a executa cu succes o
operaie de manipulare a unui obiect sunt:
1. Walk to checkpoint, comanda de deplasare a robotului pn la obiect.
2. GoToGrabLocation, comanda de deplasare a robotului ctre poziia de ridicare a
obiectului (stnga sau dreapta).
3a. GoToLiftPosition synch, robotul se pune n poziia de ridicare a obiectului cu
sincronizare.
3b. GoToLiftPosition no synch, robotul se pune n poziia de ridicare a obiectului fr
sincronizare.
4. Lif, robotul curent se sincronizeaz cu cellalt robot i mpreun, ridic simultan
obiectul.
5. WalkWithObject, robotul curent este sincronizat cu un alt robot pentru deplasarea
obiectului.

5.3.2.3 CONTROLERELE ROBOILOR PITORI
Roboii Nao au n structura lor procesoare Intel Atom de 1.6 GHz ce dispun de
urmtoarele module software de baz ce ruleaz la nivel de controler (fig.5.16):
- Software ncorporat, care ruleaz pe placa de baz (controler-ul) situat n capul
robotului, cu sistemul de operare al robotului OpenNAO; acesta este de tip GNU/Linux
embedded bazat pe Gentoo i dezvoltat special pentru roboii pitori.
- NAOqi este software-ul principal care controleaz robotul i crearea de
RP
OpenNao
NAOqi
Choregraphe
Monitor
Windows/Linux/Mac

Fig. 5.16 Module sofware de baz a roboilor Nao

Sistem inteligent de cooperare a roboilor pitori

91

comportamente bazat pe module i metode dezvoltate specifice. Acest software se poate rula,
de asemenea, pe alt computer, n scopul de a testa codul implementat pe un robot virtual.
Softwareul desktop (Choregraphe, Monitor) ruleaz pe un calculator gazd i permite
programarea i controlul de la distan al robotului. Modulul Choregraphe este un limbaj de
programare vizual care permite crearea de animaii i simulri, monitorizarea i controlul
robotului. Softul Monitor este dedicat pentru vizualizarea feedbackului elementar de la robot
i un acces simplu la setrile camerelor video.

5.3.2.4 BLOCUL DE COMUNICARE I SINCRONIZARE

Ca i un om, robotul poate fii pn la un punct autonom, fiind capabil de a lua decizii
bazate pe situaia curent n care se afl. Din dorina de a fii ct mai asemntori cu oamenii
i n ceea ce privete cooperarea propriu-zis, nsuirea comunicrii verbale ntre acetia a fost
inevitabil. Astfel aceast capacitate de a comunica prin cuvinte, propoziii i fraze a fost
transpus i roboilor Nao. Ei au fost programai s comunice prin trimitere i recepie de
mesaje. Ca i oamenii, roboii Nao i pot pune ntrebri unul altuia, pot rspunde sau spune
ce nu au neles, pot trimite sarcini de executat, pot negocia unul cu cellalt, totul
ntmplndu-se la nivel de interpretare a mesajului primit.

5.3.2.4.1 MODELUL GENERAL DE COMUNICARE

Pentru a coopera, roboii trebuie s comunice, iar pentru a comunica acetia trebuie s
i trimit mesaje. Pentru comunicare este necesar s se foloseasc acelai limbaj, care s
conin un set comun de mesaje, care s permit roboilor participani s le neleag.
Mesajul reprezint unitatea de baz a comunicrii putnd fi alctuit fie din cuvinte
scrise sau rostite, imagini, muzic, zgomote, semnale, simboluri, culori, gesturi, etc.
Complexitatea unui mesaj poate s difere de la caz la caz, acestea putnd fi formate din
informaii simple, sau din liste complete de informaii rezultate n urma unor aciuni.
Schimbul de mesaje n cadrul sistemului NaoCoop se realizeaz cu precdere printr-o
comunicare oral.
Protocolul de comunicare reprezint setul de reguli pe baza cruia roboii pot s
comunice, reguli care impun ceea ce poate fi trimis, cum poate fi trimis, i respectiv, ceea ce
se ateapt ca rspuns. Pentru a putea comunica, indiferent de tipul robotului echipei, att
emitorul ct i receptorul trebuie s utilizeze acelai protocol de comunicare pentru ca
fiecare s neleag ce spune cellalt.

5.3.2.4.2 COMUNICAREA RP PRIN TRANSMITEREA DE MESAJE CLIENT-
SERVER

Pentru simularea comunicrii prin transfer de mesaje s-a utilizat softul Webots care
ofer posibilitatea simulrii n lumi virtuale. Mediul software Naosim nu oferea posibilitatea
simulrii mai multor roboi n acelai timp, ns se pot deschide mai multe instane ale
acestuia astfel nct se pot coordona roboii din lumea virtual (fig. 5.17). Conectarea
roboilor la calculatorul gazd se realizeaz prin protocolul TCP/IP, fiind adresai prin IP i
PORT. Accesul la roboii Nao este posibil att de pe maina de calcul local ct i din reea.


Capitolul 5

92

n fig. 5.18 se prezint
adresele celor 4 roboi simulai n
lumea virtual creat, ntr-o
imagine extras din softul
Choreographe. Datorit faptului
c toi sunt simulai pe aceeai
main, roboii au aceleai adrese
IP difereniindu-se prin numrul
portului pe care l ascult.
Datorit faptului c
modulul/funcia ALInfrared este
disponibil numai pe robot ci nu i
pe maina local pentru simulare,
a fost implementat o clas
asemntoare ca mod de
funcionare cu ALInfrared (clas
specific roboilor Nao) pe care
s o putem folosi la simulare. n
figura 5.19 prin linii ntrerupte este reprezentat arhitectura implementat pentru aplicaiile
din aceast lucrare, iar prin linii continue arhitectura modulului ALInfrared instalat pe robot.
n mod normal, roboii
pot comunica ntre ei n
mod independent de
alte resurse prin
intermediul funciilor
IR Send i IR Get.
Unul dintre roboi
trimite date prin
metoda IR Send iar
cellalt le primete i le
interpreteaz prin
metoda IR Get.
Pentru o comunicare
mai eficient s-a folosit
un server de mesagerie.
Prin intermediul
interfeei unui robot
pleac o comand sub
form de mesaj ctre server, de unde este redirecionat ctre toi roboii conectai la acest
sistem. Acetia din urm primesc mesajul, l interpreteaz, dup care execut comanda
primit.
n fig. 5.20 este prezentat interfaa realizat n limbajul C# pentru a comanda un
robot i pentru a trimite mesaje altora. Aceast interfa conine: seciunea de conectare la
robot, este compus din cmpurile IP, Port, butonul Connect i statusul conexiunii
(Connected, Addr. not found, Not connected); seciunea de comand a robotului care are n
componen un cmp de tip select ncrcat cu tipurile de aciuni pe care le cunoate robotul,
butonul de trimitere a comenzii (Act) i statusul aciunii robotului (Ready, Acting... Done);
seciunea de trimitere a comenzilor ctre ceilali roboi (asemntor IR) este asemntoare cu
seciunea precedent, numai c de aceast dat destinatarii sunt toi ceilali roboi.



Fig. 5.17 Roboi Nao simulai n mediul Webots



Fig. 5.18 Conectarea roboilor Nao din Chroregraphe


Sistem inteligent de cooperare a roboilor pitori

93















Fig.5.19 Arhitectura comunicri prin infrarou vs prin transfer de date

5.3.2.4.3 COMUNICAREA VOCAL A RP

Comenzile de ridicare, coborre i deplasare a obiectelor trebuie executate simultan de
ambii roboi. Pentru a facilita acest lucru se impune sincronizarea roboilor prin comenzi
vocale folosind modulele de vorbire (ALTextToSpeech) i de recunoatere a vorbirii
(ALSpeechRecognition).
Modulul ALSpeechRecognition confer robotului abilitatea de a recunoate cuvinte
predefinite sau fraze n mai multe limbi (englez, francez, italian etc.).
ALSpeechRecognition se bazeaz pe tehnologii complexe de recunoatere a vorbirii furnizate
de: Acapela GROUP pentru NAO versiunea 3.x i NUANCE pentru versiunea 4.
n tab 5.2 sunt prezentai paii principiului de funcionare a recunoaterii vocale a
cuvintelor/expresiilor de comunicare ntre roboii Nao.

















NAO NAO
Instant Messenger
IR Get IR
IR IR Get
Ac Ac
Ac
Ac
Send
Command
Send
Command


Fig. 5.20 Interfaa aplicaiei de comunicare prin transfer de date


Capitolul 5

94


Variabila WordRecognized este o list bidimensional i este organizat dup cum
urmeaz: [[fraza_1, precizie_1], [fraza_2, precizie_2], ..., [fraza_n, precizie_n]]; unde fraza_i
este una din frazele predefinite i precizie_i o estimare
a probabilitii ca aceast expresie este ntr-adevr ceea
ce a fost pronunat de ctre vorbitor.
Valorile ncrcate n variabila WordRecognized
sunt ordonate descresctor n funcie de precizie astfel
nct fraza cea mai probabil este pe primul loc.
Comenzile care compun sarcinile de manipulare
a unei echipe compus din doi roboi cum ar fi ridicarea
i deplasarea obiectului trebuiesc executate simultan de
ambii roboi participani la aceast operaie de
cooperare.
Partea de sincronizare a roboilor n mediile de
lucru a fost i este un subiect tratat i analizat n multe
lucrri de specialitate precum [Yasuda, 2012; Sanhoury,
2012]. Sincronizare prin comunicare verbal a fost
dezvoltat i n aceast lucrare pentru o rapiditate mai
mare i o simulare ct mai natural a comportamentului
uman. Pentru a sincronizeze s-au folosit comenzi vocale
care au la baz modulele de vorbire (ALTextToSpeech)
i de recunoatere a vorbirii (ALSpeechRecognition).
n fig. 5.21 este prezentat schema de
sincronizare a RP. n funcie de ordinea n care roboii
ajung n poziia de ridicare a obiectului se va stabili
robotul master (care va da comanda de start) i robotul
slave (care va asculta comanda i va confirma).
Neavnd posibilitatea de a apela la evenimentele
generate de recunoatere a vorbirii (acestea nefiind
implementate n API-ul pentru NAOqi C#) s-a
dezvoltat o funcie care monitoriz periodic memoria
robotului (mai precis variabila SpeechDetected) la un
interval de 500 de milisecunde controlat prin aplicaie.
n fig. 5.22 se prezint schema logic de detecie i
recunoatere a cuvintelor necesare comunicrii vocale
ntre roboii RP (modulul de recunoatere vocal). Cnd
Tab. 5.2 Paii comunicrii prin voce
Nr. Descriere
I.
nainte de nceperea comunicrii, ALSpeechRecognition alimenteaz cu o list
de fraze care s fie recunoscute
II.
Dup nceperea comunicrii, ALSpeechRecognition stocheaz n variabila
SpeechDetected, un parametru de tip boolean care specific dac vorbitorul
este auzit sau nu
III.
n cazul n care un vorbitor este auzit, cuvntul care are precizia cea mai mare
din lista setat iniial este plasat n variabila WordRecognized
Start
Modul de
recunoatere
vocal
Cuvnt=ready
Da
Trimite robot ului
cuvntul Start
pent ru a fi
pronunat
Nu
Cuvnt=start
Nu
Trimite robot ului
cuvntul Ready
pent ru a fi
pronunat
Da
Trimite robot ului
cuvntul Ok
pent ru a fi
pronunat
Ateapt numarul
de secunde pana la
urmatorul multiplu
de 5
Executa comanda
de ridicare
Stop
Modul de
recunoatere
vocal
Fig. 5.21 Schema de sincronizare a
RP


Sistem inteligent de cooperare a roboilor pitori

95

valoarea variabilei SpeechDetected devine true funcia dezvoltat
citete din nou n memoria robotului, dar de aceast dat n
variabila WordRecognized i extrage primul cuvnt detectat
mpreun cu precizia aferent lui. Valoarea implicit pe care
precizia cuvntului trebuie sa o depeasc este 0.3 dar i aceasta
poate fi controlat prin setrile aplicaiei. Dac ntr-adevr
cuvntul detectat este foarte probabil sa fie cel pronunat de
vorbitor clasa va trimite mai departe acest cuvnt aplicaiei.
Ajuns n poziia de ridicare a obiectului robotul va
pronuna cuvntul ready i i va iniializa modulul pentru
recunoaterea vorbirii pentru viitoarele comenzi. Primul robot
ajuns n poziia de ridicare se va atepta s detecteze cuvntul
ready iar dup ce este detectat el va pronuna comanda start i va
atepta confirmarea (prin detectarea cuvntului ok).
Al doilea robot ajuns n poziia de ridicare va pronuna
cuvntul ready i va atepta comanda start, iar dupa ce aceast
comand a fost detectat va pronuna cuvntul ok pentru
confirmare.
Procesarea cuvintelor prin modulul de detectare nu este
instantanee aadar pentru garantarea executrii simultane a
comenzii de ridicare procesul fiecrui robot va nghea pn cnd
numrul secundelor orei curente va ajunge la urmtorul multiplu
de 5 (anexa 4).



5.4 EXECUIA OPERAIILOR I TESTRI N MEDII DE LUCRU
VI RTUALE
n vederea implementrii eficiente a proceselor de manipulare i deplasare n mediile
de lucru reale s-a conceput i dezvoltat un mediu de lucru virtual care a permis testarea i
corectarea etap cu etap a lucrului cu sistemul NaoCoop. n fig 5.23 este prezentat fereastra
principal a aplicaiei printe
de testare a operaiei de
manipulare a unui obiect de
ctre doi roboi care permite
controlarea unuia din roboi i
pornirea aplicaiei consol.
n fereastra principal a
aplicaiei se evideniaz
urmtoarele module: Master
Robot, conine setrile pentru
conectarea la robotul principal
i butoanele de comand pentru
pornire/oprire a robotului; Slave
Robot: conine setrile pentru
conectarea la robotul secundar
i butonul pentru pornire a
aplicaiei consol
NaoCoopConsoleApplication.


Fig 5.23 Aplicaia NaoCoopFormsApp
Monitorizeaz
variabila
SpeechDetected din
memoria robotului
Precizie>=0.3
Citete prima fraz
din memoria
WordRecognized
SpeechDetected
=true
Cuvnt de
identificat
Returneaz
cuvntul
Fig. 5.22 Modulul de
recunoatere vocal

Capitolul 5

96

Rularea aplicaiei va porni automat robotul secundar, oprirea fcndu-se din linia de comand
a aplicaiei.
General Settings se specific setrile generale pentru roboi: Mark ID: indic ID-ul
NaoMark-ului la care robotul trebuie s ajung; Mark Size, indic mrimea NaoMark-ului de
mai sus n metri; Master Robot Grab Location, indic locaia (stnga sau dreapta) de apucare
a obiectului pentru robotul principal; Slave Robot Grab Location, indic locaia (stnga sau
dreapta) de apucare a obiectului pentru robotul secundar.
Debug Settings seciune este vizibil n modul debug ce conine setri avansate pentru
execuia robotului; Start State, indic starea de start a robotului; Stop Distance, indic distana
de NaoMark la care robotul ar trebui sa se opreasc; Advance Distance, indic distana cu
care robotul avanseaz spre NaoMark; Grab Location (x,y), indic distana pe x i y pe care
robotul trebuie s o parcurg pn ajunge n punctul de ridicare al obiectului.
Status permite evidenierea strii de execuie a robotului.
Pentru executarea operaiilor utilizatorul folosete pagina Executions (fig. 5.24)
Aceast pagin conine iniial
un chestionar generat dinamic
n funcie de nregistrrile din
tabelul Requirements al bazei
de date. Pentru fiecare cerin
din baza de date se va afia un
cmp text n care userul
introduce o valoare n funcie
de datele problemei. Dup
completarea tuturor
cmpurilor de cerine n
funcie de valorile acestora,
aplicaia va afia operaiile
care ndeplinesc datele de
intrare sub form de butoane.
Pentru executarea
secvenelor asociate operaiei
gsite n urma completrii
formularului cu date de intrare
utilizatorul folosete butonul
aferent operaiei dup care se
va afia o fereastra (fig. 5.25)
n care se permite s selecteze
ce roboii. Roboii afiai n
aceast fereastr provin din
tabela Robots din baza de date
i se pot edita de ctre
inginerul de cunotine n
sectiunea Settings.
Operaia, mpreun cu
selecia de roboi vor fi validate
de ctre modulul NaoCoopLib.
Dac se gsesc erori la validare
(numrul de roboi sau versiunile lor nu coincid cu cerinele operaiei) atunci userul va fi
nevoit s selecteze din nou roboii. Daca nu sunt erori de validare atunci se afieaz fereastra
de execuii (fig. 5.26).


Fig.5.25 Selectarea roboilor executani

Fig. 5.24 Fereastra Executions a sistemului NaoCoop


Sistem inteligent de cooperare a roboilor pitori

97

Aceast fereastr conine informaii despre operaia curent (nume i status), despre
roboi (nume, ip, port, status, starea curent, comanda n execuie). Execuia poate fi pornit
sau oprit prin butoanele de execuie, aciuni ce vor afecta direct starea roboilor (pornirea
unei execuii va lansa automat secvenele i roboi afereni).


Fig. 5.26 Fereastra de execuie
Statusul operaiei, statusul robotului, starea curent i comanda n execuie se
actualizeaz n timp real n funcie de evoluia strilor, folosind evenimentele din librria
NaoCoopLib. Fiecare modificare n automatul finit al robotului este salvat ntr-un fiier text
(fig. 5.27).



Fig. 5.27 Fiierul text cu evoluia mesajelor de informare

5.5 CONCLUZI I
Acest capitol rspunde obiectivelor specifice ale tezei de concepie, modelare,
algoritmizare i implementare a unui sistem inteligent de cooperare a RP. Sunt prezentate pe
rnd toate procesele online ale sistemului NaoCoop cuprinznd modulele de cooperare i de
sincronizare a roboilor din cadrul echipei ce execut operaii n mediul industrial.

Capitolul 5

98

Scopul sistemului inteligent dezvoltat const n executarea unei operaii complexe de
manipulare de ctre o echip de roboi care coopereaz pentru ndeplinirea cu succes a
acesteia. Sistemul implementat dispune de o interfa simpl i prietenoas, prin care
utilizatorul/inginerul de cunotine poate controla echipa de RP. Fiecare robot component al
echipei este dezvoltat avnd propriul su set elementar de secvene elementare pe care le
poate executa. Atunci cnd se constat ca un singur robot pitor nu este n msur s execute
operaia independent (motivul pentru care acest sistem a fost construit) sunt utilizai doi roboi
pentru o execuie cooperativ, folosind o baz de date, o baz de secvene i o baz de planuri
de operaii ca suport.
Baza de date conine toate informaiile necesare pentru a efectua operaii complexe.
Baza de secvene cuprinde toate secvenele elementare nvate de roboi offline. Baza de
planuri de operaii conine lista tuturor planurilor rezultate n urma planificrii secvenelor
elementare nvate n funcie de operaia cerut. Sistemul dezvoltat permite i controlul de la
distan a echipei de RP din mediul industrial.








6. TESTE I EXPERIMENTE CU SISTEMUL NaoCoop

6.1 I NTRODUCERE

n vederea testrii performanelor rezultatelor sistemului inteligent de cooperare
NaoCoop descris n detaliu n cap. 5, au fost efectuate experimente n mediul real utiliznd o
echip format din doi roboi pitori NAO. Pentru pregtirea roboilor i a mediului de lucru
pentru experimente au fost realizate urmtoarele: ncrcarea bateriilor roboilor, punerea n
funciune a sistemului wireless, delimitarea zonei de lucru i generarea acesteia.
Scopul experimentelor de cooperare prezentate n acest capitol const n efectuarea
unei analize detaliate asupra modului de manipulare i
deplasare prin cooperare a roboilor NAO, precum i
evaluarea performanelor de execuie a operaiilor compuse
din secvene elementare nvate i salvate n baza de
secvene. Fluxul de realizare a experimentelor de cooperare
prezentat n fig. 6.1. conine 5 pai. Primul pas presupune
dezvoltarea mediului de lucru pentru experimente ce urmeaz
a fi realizate n vederea validri algoritmilor sistemului
dezvoltat. Urmtorul pas const n definirea operaiilor pentru
experimente. n continuare, la pasul trei are loc elaborarea
programului de experimente; la pasul 4 se realizeaz
experimentele propuse. Procesarea rezultatelor experimentelor
obinute cu echipa de roboi pitori Nao are loc la pasul 5.
n vederea unei analize ct mai detaliate a modului de
cooperare pentru manipularea de diferite obiecte a sistemului
NaoCoop n mediile de lucru, au fost concepute scene de lucru
n care s-au realizat multiple teste ce au pus accent pe diferite
aspecte ale cooperri roboilor, modul de planificare a
sarcinilor, precizia atingerii intelor, timpul necesar pentru
parcurgerea i realizare unor operaii. n prealabil pentru
testarea sistemului i evidenierea cu o precizie ct mai bun a
derulrii experimentelor, precum i a performanelor obinute, s-a dezvoltat o replic a scenei
reale de lucru n mediul virtual Webots.
Pentru realizarea experimentelor au fost urmate i respectate urmtoarele aspecte
specifice:
a. fiecare robot existent adugat n echip trebuia s fi fost nregistrat n baza de date
cu toate datele aferente acestuia (caracteristici, sarcini, secvene care le poate executa);
b. pentru fiecare robot al echipei s-au nvat secvene elementare stocate n baza de
secvene;
c. toate datele necesare fluxurilor de execuie a operailor au fost nregistrate anterior;
d. operaiile complexe cerute sunt formate din secvene nvate anterior, n caz
contrar utilizatorul este avertizat c operaia dorit are secvene elementare necunoscute nc
de roboi.
Pentru aplicarea modulului de planificare a manipulrii obiectelor n cele mai bune
condiii s-a inut cont de urmtoarele aspecte:
- mediul de lucru pentru experimente este special construit n laborator;
- s-a evitat amplasarea obiectelor de manipulat direct pe podea;
- s-au respectat principiile legate de economia de micare;
- s-a ncercat pe ct posibil planificarea i monitorizarea operaiilor pe durata
deplasrii;



















Fig. 6.1 Etapele procesului de
realizare a experimentelor

Dezvoltarea mediului de
lucru pentru experimente
Definirea operaiilor
pentru experimente
Elaborarea programului
de experimente
Realizarea experimentelor
Procesarea rezultatelor

Capitolul 6

100

- s-au utilizat RP umanoizi Nao pentru a reduce limea culoarelor de acces i astfel s-
a exploatat n mod optim volumul mediului de lucru.

6.2 DEZVOLTAREA MEDI ULUI DE LUCRU

Spaiul de lucru (fig. 6.2) pentru realizarea experimentelor are o lungime de 4,3 m i
lime de 5 m i se afl n laboratorul centrului de cercetare de Robotic i Realitate virtual
al Universitii Transilvania din Braov.



Fig. 6.2 Mediul de lucru pentru experimente de cooperare a roboilor Nao


a

b
Fig. 6.3 Reprezentarea spaiului de lucru al experimentului de cooperare pentru manipularea unei
bare lungi n: a - NAOsim, b - Webots(b)

Teste i experimente cu sistemul NaoCoop

101

Punctele de deplasare pan la obiectul de manipulat sunt calculate n urma identificrii
Naomark-ului specific fiecrui obiect n parte (numrul 112 pentru bar i numrul 64 pentru
obiectul de tip cutie, care reprezint punctul de mijloc al obiectului de manipulat) i sunt
msurate raportndu-se la poziia actual a robotului, fiind trimise ca i coordonate fixe
acestora pentru deplasare. Scena virtual (fig. 6.3) asociat scenei reale, reprezint o interfaa
de lucru ntre sistemul dezvoltat i mediul real creat pentru nvarea diverselor secvene de
manipulare i testare de sarcini concrete.
Scenariul de testare simulat n condiii de laborator este prezentat i in capitolul 3.

6.3 DEFINIREA OPERAIILOR PENTRU EXPERIMENTE
Pentru testarea sistemului de cooperare NaoCoop s-a optat pentru dou operaii
complexe de manipulare a obiectelor n mediul de lucru, operaii care nu se pot executa de
ctre un singur robot pitor: OP1, manipularea unei bare lungi i OP2, mpingerea unui corp
voluminos.
Aceste operaiile constau n manipularea obiectelor de ctre echipa de doi RP i
deplasarea acestora n diferite puncte finale aflate la distane de 3m, respectiv 6 m relativ la
poziia iniial a obiectului. Aa cum au fost prezentate operaiile n cap. 4, acestea sunt n
final sume de secvene elementare nvate anterior de roboii Nao i stocate n baza de
secvene. Scenariul poziionrii roboilor i obiectelor n planul unei operaii este prezentat n
fig. 6.4.
Obiect de
manipulat
Punct final 2
(6m)
Punct final 1
(3m)
RP1
RP2
D1
D2
(0,0,0)
(3,1,20)
(6,1,5)


Fig. 6.4 Scenariul de lucru asociat operaiilor pentru experimente

n urma procesului de planificare a operaiilor cu algoritmul prezentat n cap. 4 au
rezultat urmtoarele planuri i succesiuni de secvene elementare:
- OP1: SL9 - poziionarea pentru manipulare a unei bare cu diametrul de 5cm aflat la
nlimea de 25 cm, SL1 - prinderea obiectului de jos n sus (manipulare local iniial), SM1-
deplasarea cu obiectul (manipulare n micare) i SL13 - eliberarea obiectului (manipulare
local final).
- OP2: SL14 - poziionarea pentru manipulare a unei cutii prin mpingere, SM10-
deplasarea cutiei prin mpingere (manipulare n micare) i SL10 - rotirea robotului
(orientarea robotului).

Capitolul 6

102

nainte de fiecare proces de manipulare conform planului rezultat are loc identificarea
obiectului de manipulat n mediul de lucru i deplasarea pn la acesta conform algoritmului
dezvoltat prezentat n cap. 3.

6.4 ELABORAREA PROGRAMULUI DE EXPERI MENTE
n cadrul programului experimentelor au fost stabilite regulile de msurare a timpilor
execuiei operaiilor (de la plecarea roboilor din punctul iniial pn la finalizarea execuiei
operaiei), marcarea punctelor iniiale i finale (punctele n care trebuie s ajung echipa de
roboi cu obiectul). Programul de experimente const n testarea i msurarea timpilor
realizai de echipa de roboi pitori Nao pentru ndeplinirea cu succes a operaiilor complexe.
Astfel pentru msurarea timpilor de execuie a operaiilor de manipulare s-a pornit
cronometrul odat cu nceperea localizrii obiectului n mediul de lucru de ctre primul robot
Nao din echip, i pn la atingerea intei (punctului final). Punctele iniiale ale roboilor i
punctele finale ale obiectelor de manipulat au fost marcate pentru o identificare mai uoar la
repetarea testelor. n cadrul programului s-a hotrt un numr de 12-15 repetiii ale
experimentelor pentru fiecare situaie n parte (cnd obiectul este deplasat 3 m-punct final 1
sau 6 m-punct final 2).

6.5 REALI ZAREA EXPERI MENTELOR DE COOPERARE
PENTRU MANI PULARE

Roboii Nao sunt deplasai n poziii diferite, n funcie de obiectele de manipulat,
conform programului, innd cont de centrele de greutate ale obiectelor. Pentru fiecare dintre
cele 2 obiecte de forme i greuti diferite au fost efectuate 15, respectiv 12 teste de
manipulare. n fig. 6.5 i fig. 6.6 sunt prezentate secvene din micrile efectuate pentru
manipularea celor 2 obiecte de tip bar i respectiv de tip cutie.



Fig 6.5 Secvene din traectoriile operaiei OP1

Teste i experimente cu sistemul NaoCoop

103


n fig. 6.6 se prezint secvene ale celuilalt experiment ce presupune cooperarea
roboilor Nao pentru manipularea unei cutii de dimensiuni mari prin mpingere.



Fig. 6.6 Secvene din traiectoriile operaiei OP2

Pentru derularea experimentelor s-a inut cont de planul de experiment stabilit, astfel
c RP1 i RP2 au plecat din poziiile iniiale marcate, obiectul de manipulat s-a identificat
prin marker-ul poziionat n centrul acestuia, iar punctul final a fost de asemenea marcat pe
duumea pentru a se putea interpreta precizia de atingere a intei.
Rezultatele obinute n urma testrii sistemul dezvoltat subliniaz simplitatea de a crea
operaii care sunt trimise spre execuie echipei de roboi. Execuia curat i simpl de
funcionare, precum i feedback constant primit de la roboii echipei de ctre utilizator au fost
punctele de interes apreciate ale aplicaiei. Feedback-ul primit de un utilizator de la echipa de
roboi comandat se realizeaz n timp real i este prezentat n fig.6.7. Utilizatorul primete
informaii legate de statusul i starea curent a robotului i comanda executat la un anumit
moment de timp.



Fig. 6.7 Feedback-ul primit constant i n timp real de la roboi n interfaa aplicaiei NaoCoop

Capitolul 6

104


6.6 PROCESAREA REZULTATELOR EXPERI MENTELOR DE
COOPERARE
n timpul experimentelor au fost urmrite secven cu secven deplasrile roboilor la
punctul de identificare a obiectului de
manipulat, precizia de atingere a intei,
manipularea pieselor/obiectelor n mod
sincron, deplasarea acestora i toi paii
intermediari. Pe parcursul experimentelor nu
s-au evideniat coliziuni cu obstacolele din
mediu i nici pierderi de semnale nregistrate
ntre sistem i roboi. Implementarea n
mediul real i rezultatele prezentate nu au
nregistrat eecuri, experimentele
confirmnd robusteea algoritmilor i a
sistemului conceput, validnd astfel
rezultatele prezentate teoretic.
n tab. 6.1 sunt prezentai timpii
nregistrai de echipa de roboi ce duce la
ndeplinire operaia complex de depozitare
a unui obiect de forma unor bare lungi. Au
fost sintetizate rezultatele corespunztoare
celor dou cazuri n care obiectul de
manipulat a fost depozitat la distane de 3 m,
respectiv 6 m de la punctul iniial. S-a
observat c n cazul depozitelor obiectelor
aflate la distane mai mari de 4m, precizia de
atingere a punctului final de ctre roboii Nao se nregistrau erori de poziionare (plaja de
eroare fiind de +/- 10 cm, eroare nu ntotdeauna acceptabil pentru operaii de manipulare,
deoarece obiectul trebuie s ajung cu o precizie mai mare n punctul final pentru a putea fi
preluat pentru urmtoarea operaie), motiv pentru care a fost nevoie de corecii n sistemul de
comand i control pentru reducerea acestor erori.



Fig.6.8 Timpii nregistrai pentru ndeplinirea cu succes a operaiei OP1

0
1
2
3
4
5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
T
i
m
p

Test
Timp (min) Timp (min)
Tab. 6.1 Rezultatele obinute la executarea
operaiei OP1
Nr. test
Timp (min)
3m
Timp (min)
6m
1 3,45 4.14
2 3,55 4.22
3 3,29 4,00
4 3,29 4,05
5 3,36 4.10
6 3,28 3,58
7 4,01 4,37
8 4,02 4,35
9 3,27 4,32
10 3,33 4,01
11 3,29 4,01
12 3,31 4,03
13 3,55 4,24
14 3,40 4,26
15 4,00 4,36



Teste i experimente cu sistemul NaoCoop

105

Pe lng coreciile aferente fiecrei operaii s-au stabilit i limitri ale distanelor
pentru manipularea prin cooperare. Conform datelor din tab.6.1 variaiile timpilor pentru
ndeplinirea cu succes a sarcinii complexe de manipulare a unei bare de dimensiuni mari sunt
prezentate n graficele din fig. 6.8.
n urma efecturii celor 15 teste de manipulare pentru obiectul de tip bar de 1,5 m,
rezult valoarea timpului mediu pentru ndeplinirea sarcinii de 3,49 minute pentru deplasarea
sa pn la punctul aflat la 3 m distan.
n tab. 6.2 sunt prezentai timpii nregistrai n care echipa de roboi execut operaia
complex de manipulare prin mpingere a obiectului 2 sub forma unei cutii mari. Pentru acest
experiment au fost tratate de asemenea sintetizate rezultatele celor dou cazuri n care
obiectul de manipulat a trebuit mpins o
distan de 3 m, respectiv 6 m, metri
msurai relativ la punctul iniial al
obiectului de manipulat. S-a observat c n
acest experiment, precizia de atingere a intei
(punctului) finale pentru distane mai mari de
3 m de ctre roboii Nao nregistrau erori mai
mici (plaja de eroare fiind de +/- 3-5 cm) fapt
pentru care nu a fost nevoie de corecii n
sistemul de comand i control.
Conform datelor din tab.6.2 variaiile
timpilor pentru ndeplinirea cu succes a
sarcinii complexe de manipulare a unei cutii
mari i grele sunt prezentate n graficul din
fig. 6.9.
n urma efecturii celor 12 teste de
manipulare pentru obiectul2, rezult valoarea
timpului mediu pentru ndeplinirea sarcinii
de 2,49 min (n cazul deplasrii pe orizontal
a cutiei pe o distan de 3 m).



Fig.6.9 Timpii nregistrai pentru ndeplinirea cu succes a operaiei OP2



0
0.5
1
1.5
2
2.5
3
3.5
1 2 3 4 5 6 7 8 9 10 11 12
T
i
m
p

(
m
i
n
)

Test
Timp (min) Timp (min)
Tab. 6.2 Rezultatele obinute la executarea
operaiei OP2
Nr. test
Timp (min)
3m
Timp (min)
6m
1 2,25 2,45
2 2,38 2,57
3 2,44 3,00
4 2,50 3,07
5 2,55 3,11
6 2,30 2,51
7 3,02 3,22
8 3,05 3,21
9 2,53 3,14
10 2,37 3,02
11 3,07 3,28
12 3,10 3,28



Capitolul 6

106

6.7 COMENTARI I ASUPRA REZULTATELOR
EXPERI MENTELOR
n urma finalizrii experimentelor se observ eficiena sistemului dezvoltat i
avantajele care vin odat cu implementarea acestuia. Idei noi pentru aplicaii viitoare n ceea
ce privete controlul unei echipe de roboi pentru a efectua operaii complexe au fost deduse
i n urma experimentelor.
Pe parcursul experimentelor s-au urmrit i aspecte de optimizare a cii roboilor pn
la int, influena obstacolelor fixe, precum i a altor factori externi ce au fost luai n
considerare, fiecare scenariu fiind tratat n mod diferit.
Sistemul implementat permite extinderea sa de la un sistem simplu, la unul extrem de
complex, n funcie de nevoile individuale, de roboii disponibili i caracteristicile acestora.

Tab. 6.3 Structura chestionarului



Seciune ntrebare Rspuns
Date
biografice
1.Vrst? 22 ani 3;
23 ani 3;
29 ani 2;
30 ani 2;
23 ani 2;
28 ani 1;
42 ani 1;
45 ani 1;

2.Sexul? M 67% F 33%

3.Ct de des utilizai calculatorul? 8.80 (1 nu l-am utilizat niciodat; 10
il utilizez n fiecare zi)

4.Ct de des interacionai cu roboi/ echipe de
roboi?
5.50 (1 nu am interacionat niciodat;
10 interacionez n fiecare zi)

5.Ct de familiarizat suntei cu tehnologiile de
SI?
5.90 (1 nu am auzit niciodat; 10
foarte familiarizat)

Date
specifice
6.Ct de repede se mic robotii din echipa? 6.30 (1 foarte ncet; 10 foarte
repede)
7.Ct de exacte sunt braele roboilor n
culegerea/prinderea/plasarea obiectelor int?
9.15 (1 foarte inexact; 10 foarte
exact)

8.Ct de des ai observat o sincronizare sigura
ntre roboi?

9.20 (1 niciodat; 10 tot timpul)
Evaluarea
calitii
10.Ct de naturale vi s-au prut experimentele
de cooperare a roboilor?
9.30 (1 foarte nenaturale; 10 foarte
naturale)
11.Ct de dificil vi s-a prut interaciunea cu
echipa de roboi?

12.Ct de interesant vi s-a prut interaciunea
cu echipa de roboi?
8.60 (1 dificila; 10 simplista)


8.90 (1 neinteresant; 10 -
interesant)


13.Ce lipsete aplicaiei pentru a fi mai uor
de interacionat cu echipa?
-

Teste i experimente cu sistemul NaoCoop

107

Experimentele de mai sus au fost executate de 15 operatori din diferite domenii
(studeni, doctoranzi i personal administrativ), care dup finalizarea acestora au completat un
chestionar ce st la baza culegerii informaiilor legate de interaciunea utilizator-echipa.
Chestionarul conine 13 ntrebri structurate pe 3 grupe si anume:
-Seciunea de informaii biografice, care conine ntrebri referitoare la datele
biologice i la cunotinele tehnice ale subiecilor.
-Seciunea de informaii specifice aplicaiei, conine ntrebri legate de particularitile
sistemului NaoCoop din timpul experimentului de manipulare.
-Seciunea de evaluare a calitii interaciunii, conine un set ntrebri care ncearc s
determine nivelul de dificultate i nelegere a aplicaiei care comanda robotii din mediul real.
Pentru analiza la rspunsurile la ntrebrile din chestionar s-a optat pentru selectare
unei note de la 1 la 10, cu specificaia pentru fiecare ntrebare n parte a notei
corespunztoare. n Tab. 6.3 sunt prezentate rezultatele obinute prin testarea a 10 de studeni,
3 doctoranzi i 2 persoane din personalul administrativ al universitii.
Conform datelor centralizate pentru ntrebarea 8, evaluarea sincronizrii RP a primit o
not de 9,2. Raportat la aceast valoare, rezultatul de la 8,70 de la ntrebarea 9 arat faptul c
folosirea acestui sistem NaoCoop reprezint o metod bun de interaciune a utilizatorilor cu
echipa i de control a acesteia. Marea majoritatea subiecilor au apreciat interaciunea cu
echipa de roboi real ca fiind nu foarte complicat (8,6). Interesul mrit asupra aplicaiei
NaoCoop este dat de nota ridicat obinut la ntrebarea 12 (8,90). ntreg sistemul este
perceput drept foarte natural (9,30), datorit sincronizrii roboilor participani ai acestuia
(9,20). Principalul punct slab al sistemului NaoCoop dezvoltat este evideniat folosind
ntrebarea 6, cu nota 6,30 , care reprezint viteza i rapiditatea algoritmului n execuia
sarcinilor complexe.

6.8 CONCLUZI I
n acest capitol sunt prezentate procesele de generare a scenelor de lucru pentru
experimentele de cooperare n vederea manipulrii obiectelor n mediile reale cu o echip
format din doi roboi Nao i n final analiza rezultatelor obinute.
Pentru experimentele realizate n medii reale, a fost nevoie de o pregtire adecvat a
mediului de lucru privind poziionarea obiectelor (la puncte fixe), ndeprtarea obstacolelor i
o pregtire a roboilor privind interfaarea cu sistemul de comand de cooperare dezvoltat.
Pentru cazul cooperrii n mediul de lucru cu ajutorul comunicrii wireless (directe) i
a comunicrii prin transmiterea de date prin mesaje, s-a constatat un timp de sincronizare a
roboilor cu aproximativ 30% mai mic n cazul comunicrii prin wireless; acesta a condus la o
scdere semnificativ a duratei execuiei operaiei cu aproximativ 15%. Dezavantajul major
constatat n urma acestor teste, este faptul c utiliznd comunicarea prin transfer de date,
acestea se transmit mai greu i programarea acestora se face mai anevoios.
Timpii nregistrai de echipa de roboi pentru ndeplinirea operaiilor complexe testate
au fost sintetizai i interpretai, astfel c pentru obiectele de manipulat ce au fost depozitate la
distane de 6 m s-a observat c precizia de atingere a intei finale nregistra erori de +/- 10cm,
eroare nu ntotdeauna acceptabil pentru operaii de manipulare prin cooperare. n acest caz a
fost nevoie de corecii n sistemul de comand i control i limitri ale distanei pentru
manipulare. Pentru cazul distanelor mai mici de 6 m s-a observat o precizia de atingere a
intei finale mai bun, cu o abatere de +/- 3-5 cm, n acest caz nefiind nevoie de corecii n
sistemul de comand i control.
n cadrul experimentelor de manipulare bazate pe cooperarea roboilor a fost urmrit
att traseul i deplasarea roboilor pn la obiectul de manipulat, ct i nivelul de apropiere de

Capitolul 6

108

acesta, sincronizarea ntre acetia i procesul de manipulare. Pe parcursul acestor experimente
nu au avut loc coliziuni cu obstacole din mediul de operare, implementarea n mediile reale
validnd soluiile teoretice propuse.


7. CONCLUZII, CONTRIBUII PROPRII,
DISEMINAREA REZULTATELOR I DIRECII DE
CERCETARE N VIITOR

7.1 CONCLUZI I FI NALE

ntrebarea principal la care prezenta lucrare rspunde este: Cum se poate mbuntii
lucrul n echip a roboilor pitori n mediile industriale? nc de la nceput, roboii mobili
pitori au fost concepui s execute n mediile industriale, sarcini de la cele mai simple la
cele mai complexe ntr-un mod repetitiv. Folosirea echipelor de roboilor pitori n mediile
industriale, n procese complexe de transport local, manipulare i monitorizare, raportat la
echipe de roboi fici, aduce un plus de utilitate prin acoperirea unor spaii de lucru mai mari,
precum i prin creterea adaptabilitii, flexibilitii i complexitii. Echipele de roboi
pitori sunt integrate n mediile industriale pentru diferite operaii: manipularea i transportul
local de piese/obiecte/scule, asamblarea/mpachetarea de produse, execuia de operaii
tehnologice, inspecia i monitorizarea sistemelor i proceselor etc.
Dei resursele hardware ale roboilor pitori au atins n ultimii ani un nivel nalt n
ceea ce privete performana i fiabilitatea, din studiile literaturii de specialitate reiese faptul
c partea software este nc limitat de performanele sczute privind flexibilitatea,
portabilitatea, comunicabilitatea i inteligena. Astfel, actual se impune dezvoltarea de nivele
superioare ale sistemelor inteligente existente de comunicare/cooperare a roboilor n cadrul
echipelor din care fac parte, precum i noi interfee de comunicare cu operatorul uman.
n urma analizei stadiului actual al cercetrilor de implementare i adaptare a echipelor
de roboi pitori n activiti din mediile industriale, se evideniaz tendina de dezvoltare a
acestora ca sisteme inteligente, cu capaciti evoluate de cooperare, planificare i interaciune
cu operatorul.
Prin cercetrile dezvoltate n cadrul acestei teze s-a pus n eviden posibilitatea
realizrii unei comunicaii simple i necostisitoare care s permit includerea celor doi roboi
n cadrul unor sarcini de cooperare. Timpul de rspuns i modul de interaciune permit
dezvoltarea cu succes de aplicaii de transfer direct de obiecte sau asamblarea unor
componente n cadrul unor spaii de lucru diverse.
Prezenta cercetare a condus la un sistem inteligent de cooperare ce ajut la
coordonarea unei echipe de roboi pitori pentru execuia de operaii complexe ce au loc n
mediile industriale, cu algoritmii de sincronizare, nvare, decizie, planificare i selectare
evaluate. La baza generrii operaiilor complexe au stat secvenele elementare care au fost
nvate de ctre roboii pitori prin tehnica demonstrativ i stocate n baz de secvene.
Tehnica de nvare abordat a fost corelat i dezvoltat conform caracteristicilor roboilor
pitori Nao astfel: pentru sarcinile de localizare a obiectelor s-a optat pentru utilizarea
markerilor Nao; pentru sarcinile de manipulare s-au construit faze formate din secvene
elementare nvate preliminar; pentru sarcinile de deplasare s-au conceput i dezvoltat funcii
de calcul a distanei (GotoNaomark). Toate sarcinile, fazele i respectiv secvenele elementare
componente ale unei operaii complexe au fost descrise cu reguli de producie cu structura IF
condiie THEN aciune, stabilite pe baza datelor de intrare (cerinelor) impuse de utilizator i
stocate ntr-o baza de cunotine.
n cadrul sistemului NaoCoop au fost dezvoltate i dou module: de comunicare i de
sincronizare a roboilor pitori din cadrul echipei ce execut operaii n mediul industrial. Din
Capitolul 7

110


dorina de a fii ct mai asemntori cu oamenii n ceea ce privete cooperarea propriu-zis,
nsuirea comunicrii verbale ntre RP a fost inevitabil. Astfel aceast capacitate de a
comunica prin cuvinte, propoziii i fraze a fost transpus i n sistemul NaoCoop, roboii
fiind programai s comunice prin trimitere i recepie de mesaje, mesaje interpretate printr-un
modul de recunoatere vocal.
Pentru un control simplu al echipei de roboi, sistemul dispune i de o interfa simpl
i prietenoas, prin care i se permite utilizatorului/inginerului de cunotine accesul la
informaiile despre roboi, respectiv despre echip, la planurile de operaii curente, editarea,
adugarea sau tergerea acestora.
Sistemul conceput i dezvoltat funcioneaz dup principiul n care dac se constat ca
un singur robot pitor nu este n msur s execute operaia independent sunt utilizai doi
roboi pentru o execuie prin cooperare, folosind o baz de date, o baz de secvene i o baz
de planuri de operaii ca suport.
Baza de date conine toate informaiile necesare pentru a efectua operaii complexe.
Baza de secvene cuprinde toate secvenele elementare nvate prin demonstrare offline. Baza
de planuri de operaii conine lista tuturor planurilor rezultate n urma planificrii secvenelor
elementare nvate n funcie de operaia cerut.
Performanele sistemului inteligent de cooperare NaoCoop au fost testate prin
experimente de cooperare n vederea manipulrii obiectelor n mediul virtual i cel real,
utiliznd o echip format din doi roboi pitori de tip Nao, iar rezultatele au fost analizate i
interpretate. Astfel s-a observat c pentru obiectele de manipulat ce au fost depozitate la
distane de 6 m, precizia de atingere a intei finale de ctre roboi nregistrau erori de
poziionare de +/- 10cm, eroare nu ntotdeauna acceptabil pentru operaii de manipulare prin
cooperare. n acest caz a fost nevoie de corecii n sistemul de comand i control al
sistemului i de limitri de distane pentru manipularea prin cooperare. Pentru cazul
distanelor mai mici de 6 m s-a observat o precizie de atingere a intei finale mai bune, cu o
abatere de +/- 3-5 cm, n acest caz nefiind nevoie de corecii n sistemul de comand i
control. Pe parcursul experimentelor din mediul real nu au avut loc coliziuni cu obstacole din
mediul de operare, implementarea construit validnd soluiile teoretice propuse.

7.2 CONTRIBUII PROPRII

Prezenta teza de doctorat are un profund caracter inovativ, aducnd o serie de
contribuii originale privind conceperea, implementarea i testarea unui sistem inteligent de
cooperare a unei echipe de roboi pitori pentru operaii n medii industriale. Pornind de la o
metodologie de cercetare judicioas urmrind ndeplinirea scopului i obiectivelor propuse, n
urma cercetrilor efectuate precum i a rezultatelor obinute se prezint urmtoarele
contribuii proprii:

1. Analiza critic a studiilor teoretice i experimentale din testarea de specialitate privind
funciile i modulul de integrare a echipelor de roboi mobili n medii industriale,
precum i stadiul actual al cercetrilor n domeniul cooperrii roboilor i a echipelor
de roboi.
2. Concepia, dezvoltarea i implementarea unui algoritm de deplasare cu recalibrarea pe
traseu a roboilor pitori n medii industriale.
3. Conceperea unei baze de secvene elementare prin nvarea prin demonstrare a
roboilor pitori.
Concluzii

111

4. Concepia, dezvoltarea i implementarea sistemului inteligent NaoCoop, care are la
baz algoritmului de cooperare i de sincronizare bazat pe comunicare vocal.
5. Metodologia de dezvoltare a unui sistem de simulare i testare n medii virtuale a
funcionrii algoritmilor sistemului NaoCoop.
6. Concepia, dezvoltarea i implementarea unui algoritm de planificare inteligent a
operaiilor i sarcinilor de manipulare a unei echipe de roboi pitori pe baza regulilor
de producie stocate n baza de cunotine.
7. Concepia, dezvoltarea i implementarea unor interfee grafice bazate pe arhitecturi
care integreaz toate componentele sistemului, nregistreaz i prelucreaz datele
aflate n baza de date, pentru conducerea echipelor de roboi n timp real.
8. Dezvoltarea, concepia i implementarea unei metode de sincronizare a roboilor
pitori ce are la baz un algoritm de recunoatere vocal.
9. Programe i metodologii de experimentare pentru evaluarea i validarea sistemului
inteligent de cooperare elaborat i a rezultatelor teoretice obinute.
10. Metoda de evaluare a performanelor sistemului NaoCoop i a interaciunii om-echip
la executarea unor operaii complexe n medii industriale.

7.3 VALORIFICAREA REZULTATELOR CERCETRII

7.3.1 LUCRRI PUBLICATE

n perioada de realizare a prezentei teze de doctorat, autoarea a elaborat 11 lucrri
tiinifice ( 6 prim autor i 5 coautor) publicate n jurnale i buletine de conferine, dup cum
urmeaz:

Conferine cu proceedings ISI

1. Panfir, A.N, Covaci, A., Postelnicu, C.C; Mogan, Gh., Control Interfaces for a
Collaborative System Using LabView Package, DoCEIS 2012, pp 33-40, 2012.

2. Panfir, A.N, Covaci, A., Postelnicu, C.C, Mogan Gh., An Intelligent Tasks
Planning System for Industrial Mobile Robots, MTM & Robotics 2012 Mechanical
Transmissions (MTM) and the International Conference on Robotics
(Robotics12), Clermont-Ferrand, France, 6-8 iunie, pp 308-315, 2012

3. Panfir, A.N, Boboc, R. G., Mogan, Gh., NAO Robots collaboration for object
manipulation, Optirob 2013 Applied Mechanics and Materials vol. 332, pp 218-
223, 2013.

4. Panfir, A.N., Boboc, R. G., Mogan Gh., Intelligent Mobile Robots Cooperation
within a Tasks Oriented Environment, CINTI 2013, Budapest, Hungary, 2013.

5. Panfir, A. N, Butil E., Boboc, R., Mogan, Gh., Controlling humanoid NAO
robots using a web interface, 3rd World Conference on Information Sciences
(WCIT-2012) , Barcelona, Spain. 14-16 Noiembrie, 2012.

Capitolul 7

112


6. Covaci, A, Panfir, A.N., Postelnicu, C.C, Talaba D., A Virtual Reality Simulator
for Basketball Free-Throw Skills Development, DoCEIS 2012,pp 105-112, 2012.

7. Postelnicu, C.C, Covaci, A, Panfir, A.N., Talaba D., Evaluation of a P300-Based
Interface for Smart Home Control , DoCEIS 2012, pp 179-186, 2012.

8. Butil, E.V., Panfir, A.N., Mogan Gh., Expert System for Coupling Selection,
Optirob 2013 Applied Mechanics and Materials Vol. 332, pp 314-318, 2013.

9. Boboc, R. G., Toma, M., Moga, H., Panfir, A.N., Talaba D., An Omnidirectional
System for Navigation in Virtual Environments, DoCEIS 2013, Caparica,
Lisabona, Portugal, pp. 192-199, 2013.

10. Boboc, R. G., Panfir, A.N., Talaba D., Learning New Skills by a Humanoid Robot
through Imitation, CINTI 2013, Budapest, Hungary, 2013.

Conferine cu proceedings BDI

11. Panfir, A.N, Covaci, A., Mogan, G., Mobile robots communication system using
LabView Package, ADEMS11 , Acta Technica Napocensis, Series Applied
Mathematics and MechanicsCluj-Napoca, Romania, 21-23 Septembrie, 2011.

7.3.2 PARTICIPRI LA CONFERINE
n perioada elaborrii tezei de doctorat autoarea a prezentat lucrri tiiifice n cadrul
urmtoarelor conferine:
1. International Conference on Robotics (Robotics 2010), Cluj-Napoca, Romnia, 23-25
Septembrie, 2010.
2. Doctoral Conference on Computing, Electrical and Industrial Systems Conference
(DoCEIS12), Caparica, Portugalia, 26-28 Februarie, 2012.
3. International Conference on Robotics (Robotics 2012), Clermont-Ferrand, Frana, 6-8
Iunie, 2012
4. 3rd World Conference on Information Sciences (WCIT-2012) , Barcelona, Spain. 14-16
Noiembrie, 2012.
5. International Conference on Biomechanics, Neurorehabilitation, Mechanical
Engineering, Manufacturing Systems, Robotics and Aerospace: Optimization of the
Engineering Systems (OPTIROB2013), Constana, Romnia, 20-23 Iunie, 2013.

7.3.3 PARTICIPRI LA CONTRACTE DE CERCETARE I
DEZVOLTARE
n perioada studiilor doctorale autoarea a participat ca membru n cadrul contractelor
POSDRU/107/1.5/S/76945 i PNII-IDEI 775/2010.

7.3.4 STAGI U EXTERN
n perioada studiilor doctorale autorul a participat la un stagiu extern de patru luni n
cadrul institutului de cercetare Fraunhofer Institute for Manufacturing Engineering and
Concluzii

113

Automation (Institutul IPA- Stuttgart) din Germania ntre 01.03.2012 i 30.06.2012 sub
ndrumarea cercettorului ing. Bubeck Alexander.



7.4 DIRECII DE CERCETARE VIITOARE

Cercetrile realizate, precum i rezultatele teoretice, experimentale i practice obinute,
integrate ntr-o structur logic de obinere de sisteme inteligente, acoper doar parial
diversitatea problemelor evideniate n urma stadiului actual prezentat. Astfel, n urma
studiilor realizate, precum i a rezultatelor obinute n cadrul acestei lucrri, se evideniaz
trei direcii principale de continuare a acestora:
- Conducerea unei echipe de roboi pentru cooperare, format din diferite modele i
tipuri de roboi, cu diferite capaciti.
- Dezvoltarea de scenarii pentru realizarea de operaii complexe n care exist
obstacole mobile i creterea complexitii operailor echipei de roboi.
- Studii privind interfee multimodale de comunicare om-roboi corelate cu noile
tendine de programare cognitiv a roboilor.




BI BLI OGRAFI E



1. [Aguilar, 1995] L. Aguilar, R. Alami, S. Fleury, M. Herrb, F. Ingrand, and F.
Robert. Ten autonomous mobile robots (and even more). In
IEEE/RSJ IROS, page 260267, 1995.
2. [Aleotti, 2010] Aleotti, J., Caselli, S., Interactive teaching of task-oriented robot
grasps, Robotics and Autonomous Systems, vol. 58, pag. 539-550,
2010.
3. [Alpopi,2002] Cristina ALPOPI. Creativitate si inovare. Cap.5. Elemente de
automatizare, cibernetizare i robotizare a proceselor
tehnologice,Bucuresti : Editura ASE , 2002.
4. [Arai, 2002] Arai, T., Pagello, E., Parker, L., E., Guest editorial advances in
multirobot systems. , Robotics and Automation, IEEE Transactions
on, Vol. 18, No. 5. pp. 655-661, 2002
5. [Arai,1993] T. Arai and J. Ota. Motion planning of multiple robots. In
IEEE/RSJ IROS, pages 17611768, 1992.
6. [Argall, 2009] Argall, B. D., Chernova, S., Veloso, M., Browning, B., A survey of
robot learning from demonstration, Robotics and Autonomous
Systems, vol. 57, pag. 469-483, 2009.
7. [Argall, 2010] Argall, B. D., Billard, A. G., A survey of Tactile Human Robot
Interactions, Robotics and Autonomous Systems, Vol. 58(10), pp.
1159-1176, Elsevier B.V., doi:10.1016/j.robot.2010.07.002, 2010
8. [Arkin, 1992] R. C. Arkin. Cooperation without communication: Multiagent
schema-based robot navigation. Journal of Robotic Systems,
9(3):351364, 1992.
9. [Arkin, 1998] Arkin, R. C., Behavior-Based Robotics, Cambridge, MA, USA,
MIT Press, 1998.
10. [Arkin, 2000] Arkin, R. C., Stoytchev, A., Combining deliberation, reactivity, and
motivation in the context of a behavior-based robot architecture,
Proceedings 2001 IEEE International Symposium on
Computational Intelligence in Robotics and Automation, IEEE
2000, pag. 290-295, 2000.
Bibliografie

115

11. [Asama, 1989] H. Asama, A. Matsumoto, and Y. Ishida. Design of an autonomous
and distributed robot system: ACTRESS. In IEEE/RSJ IROS, pages
283290, 1989.
12. [Asama, 1991] H. Asama, M. K. Habib, I. Endo, K. Ozaki, A. Matsumoto, and Y.
Ishida. Functional distribution among multiple mobile robots in an
autonomous and decentralized robot system. In IEEE ICRA, pages
19216, 1991.
13. [Atkinson, 2009] J. Atkinson and D. Rojas, On-the-fly generation of multi-robot team
formation strategies based on game conditions, Expert Systems
with Applications, vol. 36, pp. 6082-6090, 2009.
14. [Ayanian,2010] N. Ayanian and V. Kumar (2010) Decentralized Feedback
Controllers for Multi-Agent Teams in Environments with Obstacles.
IEEE Transactions on Robotics.
15. [Aylett, 1998] R. Aylett and D. Barnes. A multi-robot architecture for planetary
rovers. In Proceedings of the 5th ESA Workshop on Advanced
Space Technologies for Robotics and Automation, 1998
16. [Balakirsky, 2007] S. Balakirsky, S. Carpin, A. Kleiner, M. Lewis, A. Visser, J. Wang,
et al., Towards heterogeneous robot teams for disaster mitigation:
Results and performance metrics from RoboCup rescue, Journal of
Field Robotics, vol. 24, pp. 943-967, 2007.
17. [Barberd, 2011] Barberd, H. M., Izquierdo, M. A. Z, Skarmeta, A. F. G.: Web-
based Supervisory Control of Mobile Robots. Robot and Human
Interactive Communication. In Proceedings of the 10th IEEE
International Workshop, pp. 256-261 (2011)
18. [Barto ,1983] A.G. Barto, R.S. Sutton, and C.J.C.H. Watkins. Learning and
sequential decision making. In M. Gabriel and J. Moore, editors,
Learning and Computational Neuroscience: Foundations of
Adaptive Networks, pages 539603. MIT Press, 1983.
19. [Batarlien, 2007] Batarlien, N., Baublys, A. 2007. Mobile Solutions in Road
Transport. In: Transport, 22 (1), 55-60.
20. [Beckers,1994 ] R. Beckers, O. E. Holland, and J. L. Deneubourg. From local
actions to global tasks: Stigmergy and collective robotics. In Proc.
A-Life IV. MIT Press, 1994.
21. [Begley, 2008] Begley, S. M., Gesture Recognition and Mimicking in a Humanoid
Robot, MSc Thesis, Vanderbilt University, Nashville, Tennessee,
USA, 2008
Bibliografie

116

22. [Bell, 2010] M. Bell, Flexible object manipulation. PhD thesis, Dartmouth
College, Hanover, New Hampshire,2010.
23. [Belongie , 2002] S. Belongie, J. Malik, and J. Puzicha, Shape matching and object
recognition using shape contexts, Pattern Analysis and Machine
Intelligence, IEEE Transactions on, vol. 24, no. 4,pp. 509522,
2002.
24. [Beni,1988] G. Beni. The concept of cellular robotic system. In IEEE
Internationl , 1988.
25. [Bentivegna, 2004] Bentivegna, D. C., Learning from Observation Using Primitives,
Georgia Institute of Technology, 2004.
26. [Berman , 2010] S. Berman , Q. Lindsey , M. S. Sakar , V. Kumar and S. Pratt Study
of group food retrieval by ants as a model of multi-robot collective
transport strategies. In Robotics Science and Systems. Zaragoza,
Spain, June, 2010
27. [Berman, 2011] Spring Berman , Quentin Lindsey , Mahmut Selman Sakar , Vijay
Kumar and Stephen C. Pratt Experimental study and modeling of
group retrieval in ants as an approach to collective transport in
swarm robotic systems. Proceedings of the IEEE, 2011.
28. [Bhattacharya ,2011] Subhrajit Bhattacharya , Hordur Heidarsson , Gaurav S.
Sukhatme and Vijay Kumar Cooperative Control of Autonomous
Surface Vehicles for Oil Skimming and Cleanup. In Proceedings of
IEEE International Conference on Robotics and Automation
(ICRA). 9-13 May, 2011
29. [Bianchini, 2010] Bianchini, D., Montanelli, S., Aiello, C., Baldoni, R., Bolchini, C.,
Bonomi, S., Castano, S., et al., Emergent Semantics and
Cooperation in Multi-knowledge Communities: the ESTEEM
Approach, World Wide Web, Vol. 13(1-2), pp. 331. doi:
10.1007/s11280-009-0080-6, 2010.
30. [Biggs, 2003] Biggs, G., MacDonald, B., A survey of robot programming
languages, Proceedings of the Australasian Conference on Robotics
and Automation, CSIRO, 2003.
31. [Bingul, 2005] Bingul, Z., Ertunc, H. M., Oysu, C., Applying Neural Network to
Inverse Kinematic Problem for 6R Robot Manipulator with Offset
Wrist, Adaptive and Natural Computing Algorithms, pag. 112-115,
2005.
32. [Birk ,2005] Birk, A., Carpin, S., Chonnaparamutt, W., Jucikas, V.,Bastani, H.,
Delchev, I., Krivulev, I., Lee, S., Markov, S., & Pfeil, A. The iub
Bibliografie

117

2005 rescue robot team. In Robocup 2005: Robot Soccer World
Cup IX, Osaka, Japan, 2005
33. [Boboc, 2013a] Boboc, R. G.; Panfir, A.N.; Talaba D. Learning New Skills by a
Humanoid Robot through Imitation, CINTI 2013, Budapest,
Hungary, 2013.
34. [Boboc, 2013b] Boboc, R. G.; Panfir, A.N.; Talaba D. Learning New Skills by a
Humanoid Robot through Imitation, CINTI 2013, Budapest,
Hungary, 2013.
35. [Bond,1988] Alan Bond and Less Gasser., Eds., Readings in Distributed Articial
Intelligence. Morgan Kaufmann. 1988.
36. [Botterill, 2011] Botterill, T., Mills, S., Green, R., Bag-of-Words-Driven, Single-
Camera Simultaneous Localization and Mapping, Journal of Field
Robotics, Wiley Periodicals Inc., Vol. 28(2), pp. 204-226,
doi:10.1002/rob , 2011
37. [Boulebtateche, 2005] Boulebtateche, B., Fezari, M., Bedda, M., A voice Guiding System
for Autonomous Robots, Asian Journal of information Technology,
Vol. 4(12), pp. 1201-1207, 2005
38. [Breuer, 2011] Breuer, T., Giorgana, G. R., Ronny, M., Hochgeschwender, N.,
Holz, D., Hegger, F., Jin, Z., et al., Johnny: An Autonomous
Service Robot for Domestic Environments, Journal of Intelligent
and Robotic Systems, Springer, Vol.66(2), pp. 245-272,
doi:10.1007/s10846-011-9608-y, 2011
39. [Brooks, 2007] Brooks, A. G., Coordinating Human-Robot Communication, PhD
Thesis, Massachusetts Institute of Technology, 2007
40. [Brooks,1986] R. A. Brooks. A robust layered control system for a mobile robot.
IEEE Journal of Robotics and Automation, RA-2(1):1423, 1986.
41. [Burgard, 2000] Burgard, W. et al. 2000. Collaborative Multi-Robot Exploration.
Proc. IEEE International Conference on Robotics and Automation
(ICRA), San Francisco CA, 2000.
42. [Burger, 2012] Burger, B., Ferran, I., Lerasle, F., Infantes, G., Two-handed
gesture recognition and fusion with speech to command a robot,
Autonomous Robots, Vol. 32, pp. 129-147, doi:10.1007/s10514-
011-9263-y, 2012
43. [Butil, 2013] Butil, E.V., Panfir, A.N., Mogan G. Expert System for Coupling
Selection, Optirob 2013 Applied Mechanics and Materials Vol. 332,
pp 314-318, 2013.
Bibliografie

118

44. [Cai, 1995] A.-H. Cai, T. Fukuda, F. Arai, T. Ueyama, and A. Sakai.
Hierarchical control architecture for cellular robotic system. In
IEEE ICRA, pages 11911196, 1995.
45. [Caloud, 1990] P. Caloud, W. Choi, J.-C. Latombe, C. L. Pape, and M. Yim. Indoor
automation with many mobile robots. In Proceedings of the
International Workshop on Intelligent Robotics and Systems
(IROS), 1990
46. [Carpin, 2009] Carpin, S., Pagello, E., An experimental study of distributed robot
coordination, Robotics and Autonomous Systems, Elsevier, Vol.
57, pp. 129133 , doi: 10.1016/j.robot.2008.07.001, 2009
47. [Causse ,1995] O. Causse and L.H. Pampagnin. Management of a multi-robot
system in a public environment. In IEEE/RSJ IROS, pages 246
252, 1995.
48. [Charrow ,2012] Benjamin Charrow , Nathan Michael and Vijay Kumar
Cooperative Multi-Robot Estimation and Control for Radio Source
Localization. In Proc. of the Intl. Sym. on Experimental Robotics.
Quebec, Canada, iunie, 2012
49. [Chen, 1997] T. M. Chen, and R. C. Luo, Remote Supervisory Control of An
Autonomous Mobile Robot Via World Wide Web, IEEE
International Symposium Industrial Electronics. ISIE '97., vol. 1,
1997, pp. 60-64.
50. [Chen, 2013] Y.-J. Chen, K.-S. Hwang, and W.-C. Jiang, Policy sharing between
multiple mobile robots using decision trees, Information Sciences,
vol. 234, pp. 112-120, 2013.
51. [Chen,1994] Q. Chen and J. Y. S. Luh. Distributed motion coordination of
multiple robots. In IEEE/RSJ IROS, pages 14931500, 1994.
52. [Cheng ,2008] P. Cheng , J. Fink and V. Kumar Abstractions and Algorithms for
Cooperative Multiple Robot Planar Manipulation. In Robotics:
Science and Systems, 2008.
53. [Cheng ,2009] P. Cheng , J. Fink and V. Kumar Cooperative Towing with Multiple
Robots. ASME Transactions: Journal of Mechanisms and Robotics,
2009.
54. [D. Lpez, 2009] D. Lpez, R. Cedazo, F. M. Snchez, and J. M. Sebastin, Ciclope
Robot: Web-Based System to Remote Program an Embedded Real-
Time System, IEEE Transaction on Industrial electronics, vol. 56,
no. 12, 2009, pp. 4791-4797.
Bibliografie

119

55. [Dahl, 2009] Torbjorn S. Dahl , Maja Mataric and Gaurav S. Sukhatmeb. Multi-
robot task allocation through vacancy chain scheduling. Robotics
and Autonomous Systems 57 , 674-687, 2009.
56. [Dames, 2012] Philip Dames , Dinesh Thakur , Mac Schwager and Vijay Kumar
Adaptive Information Gathering Using Visual Sensors. In
Workshop on Stochastic Geometry in SLAM at the International
Conference on Robotics and Automation. Saint Paul, MN, USA,
mai, 2012.
57. [Diankov, 2008] R. Diankov and J. Kuffner, Openrave: A planning architecture for
autonomous robotics, Robotics Institute, Pittsburgh, PA, Tech. Rep.
CMU-RI-TR-08-34, p. 79, 2008.
58. [Donald ,1994] B. R. Donald, J. Jennings, and D. Rus. Analyzing teams of
cooperating mobile robots. In IEEE ICRA, pages 18961903, 1994.
59. [Donald, 1993a] B. R. Donald. Information invariants in robotics: I. state,
communication, and side-effects. In IEEE ICRA, pages 276283,
1993.
60. [Donald, 1993b] B. R. Donald. Information invariants in robotics: II. sensors and
computation. In IEEE ICRA, volume 3, pages 28490, 1993.
61. [Doty ,1993] K. L. Doty and R. E. Van Aken. Swarm robot materials handling
paradigm for a manufacturing workcell. In IEEE ICRA, volume 1,
pages 778782, 1993.
62. [Doulgeri, 2006] Z.Doulgeri, and T. Matiakis, A Web Telerobotic System to Teach
Industrial Robot Path Planning and Control, IEEE Transactions on
Education, vol.49, 2006, pp. 263-270.
63. [Drgoul ,1993] A. Drgoul and J. Ferber. From tom thumb to the dockers: Some
experiments with foraging robots. In Proc. Simulation of Adaptive
Behavior, 1993.
64. [Ducasse, 2005] Ducasse, S., Board, E., Anglin, S., Appleman, D., Buckingham, E.,
Cornell, G., Davis, T., et al., Squeak, Learn Programming with
Robots, p. 362, ISBN1590594916, Apress, 2005
65. [Dudek, 1993] G. Dudek, M. Jenkin, E. Milios, and D. Wilkes. A taxonomy for
swarm robots. In Proceedings of the IEEE/RSJ International
conference on Intelligent Robotics
66. [Dugulean, 2009a] Dugulean, M., Towards Development Of Brain-Computer-Based
Human-Robot Interaction, Proceedings of DAAAM 2009
Conference, Viena, Austria, 2009.
Bibliografie

120

67. [Dugulean, 2009b] Dugulean, M., An Approach to Solving Kinematics Models and
Motion Planning for Manipulators with Mobile Base, Proceedings
of RAAD 2009 Conference, Braov, Romnia, 2009.
68. [Dugulean, 2010a] Dugulean, M., Mogan, G., Using Eye Blinking in an EOG-Based
Human-Robot Interaction, Proceedings of DoCEIS'10 Conference,
Lisabona, Portugalia, 2010.
69. [Dugulean, 2011a] Dugulean, M., Barbuceanu F., Evaluating Human-Robot
Interaction during a Manipulation Experiment Conducted in
Immersive Virtual Reality, Procedings of Human-Computer
Interaction, HCII11, USA, 2011.
70. [Dugulean, 2011b] Dugulean, M., Barbuceanu, F., Teirelbar, A.; Mogan, G., Obstacle
avoidance of redundant manipulators using neural networks based
reinforcement learning, Journal of Robotics and Computer
Integrated Manufacturing USA, acceptat pentru publicare la 15
Iulie, 2011.
71. [Elango, 2011] Elango, M.,Nachiappan, S., Tiwari, M.K., Balancing task
allocation in multi-robot systems using K-means clustering and
auction based mechanisms,Expert Systems with Applications,
Elsevier, Vol. 38, pp. 6486-6491, doi:10.1016/j.eswa.2010.11.097,
2011
72. [Everett, 1993] H. Everett, G.A. Gilbreath, T.A. Heath-Pastore, and R.T. Laird.
Coordinated control of multiple security robots. Mobile Robots
VIII, 2058:292305, 1993.
73. [Fabri, 2004] D. Fabri, C. Falsetti, S. Ramazzotti, and T. Leo, Robot Control
Designer Education on the Web, IEEE International Conference on
Robotics and Automation, vol. 2, 2004, pp. 1364-1369.
74. [Fai, 2005] Fai, Y. C., Amin, S. H. M., Fisal, N., Su, E. L. M., Development
and Evaluation of Various Modes of Human Robot Interface for
Mobile Robot, Proceeding of the 9th International Conference on
Mechatronics Technology, 2005
75. [Farinelli, 2004] Farinelli, A., Iocchi, L., Nardi, D., Multirobot systems: a
classification focused on coordination. In: IEEE Transactions on
Systems, Man, and Cybernetics, Part B 34(5): 2015-2028 (2004)
76. [Farinelli, 2010] Farinelli, A., Fjii, H., Tomoyasu, N., Takahashi, M., DAngelo, A.,
Pagello, E., Cooperative control through objective acheivement ,
Robotics and Autonomous Systems, Elsevier, Vol. 58, pp. 910-920,
doi: 10.1016/j.robot.2010.03.012, 2010
Bibliografie

121

77. [Farley, 1998] Farley M., JavaTM Distributed Computting, OReilly Media, ISBN
1-56592-206-9, Sebastopol, USA, 1998
78. [Feigenbaum,2003 ] Feigenbaum, Edward A. Some challenges and grand challenges for
computational intelligence. Journal of the ACM 50 (1): 3240.
doi:10.1145/602382.602400, 2003
79. [Fink ,2009] J. Fink , N. Michael , S. Kim and V. Kumar , Planning and control
for cooperative manipulation and transportation with aerial robots.
In International Symposium on Robotics Research. September. (R.
Siegwart, Eds.) Springer Verlag.
80. [Fink ,2011] Jonathan Fink , Nathan Michael , Soonkyum Kim and Vijay
Kumar , Planning and Control for Cooperative Manipulation and
Transportation with Aerial Robots. The International Journal of
Robotics Research, 30(3), 2011.
81. [Fong, 2002] Fong, T., Thorpe, C., Baur, C., Collaboration, dialogue and human-
robot Interaction, 10th International Symposium on Robotics
Research, 2002
82. [Franklin ,1995] D.E. Franklin, A.B. Kahng, and M.A. Lewis. Distributed sensing
and probing with multiple search agents: toward system-level
landmine detection solutions. In Detection Technologies for Mines
and Minelike Targets, Proceedings of SPIE, Vol.2496, pages 698
709, 1995.
83. [Fukuda ,1990] T. Fukuda, Y. Kawauchi, and H. Asama. Analysis and evaluation of
cellular robotics (CEBOT) as a distributed intelligent system by
communication amount. In IEEE/RSJ IROS, pages 827834, 1990.
84. [Fukuda ,1994] T. Fukuda and K. Sekiyama. Communication reduction with risk
estimate for multiple robotic system. In IEEE ICRA, pages 2864
2869, 1994.
85. [Gage,1993] D. Gage. How to communicate to zillions of robots. In Mobile
Robots VIII, SPIE, pages 250257, 1993.
86. [Ge, 2006] Ge, S. S., & Lewis, F. L., Autonomous Mobile Robots Sensing,
Control, Decision Making and Applications, Control Engineering,
p. 698, ISBN9780849337482, CRC Press Taylor Francis Group,
2006
87. [Gerkey, 2002] Gerkey, B. and M.J. Mataric. 2002. Pusher-watcher: An Approach
to Fault-Tollerant Tightly-Coupled Robot Coordination. Proc. of
the IEEE International Conference on Robotics and Automation
(ICRA2002), Washington DC
Bibliografie

122

88. [Gil, 2010] Gil, A., Reinoso, O., Ballesta, M., Juli, M., Multi-robot visual
SLAM using a Rao-Blackwellized particle filter, Robotics and
Autonomous Systems, Elsevier, Vol. 58, pp. 6880 , doi:
10.1016/j.robot.2009.07.026, 2010
89. [Gilbert, 2001] Gilbert Pradel and Olivier Comfaits , A Framework for a Web
based Supervisory Control of Mobile Robots. IEEE
International Worksop on Robot and Human Interactive
Communication 0-7803-7222-0/ 2001 IEEE,244-259, 2001.
90. [Giuliani, 2010] Giuliani, M., Lenz, C., Mller, T., Rickert, M., Knoll, A., Design
Principles for Safety in Human-Robot Interaction, International
Journal of Social Robotics, Springer, Vol. 2(3), pp. 253-274,
doi:10.1007/s12369-010-0052-0, 2010
91. [Gold, 2007] Gold, K., Fasel, I., Torrey, C., Freier, N.G., Young researchers'
views on the current and future state of HRI, ACM/IEEE
International Conference on Human-Robot Interaction, pp. 357
364, ISBN: 978-1-59593-617-2, 2007
92. [Gorostiza, 2011] Gorostiza, J. F., Salichs, M. a., End-user programming of a social
robot by dialog, Robotics and Autonomous Systems, Elsevier, Vol.
59(12), pp. 1102-1114, doi:10.1016/j.robot.2011.07.009, 2011
93. [Goss ,1992] S. Goss and J. Deneubourg. Harvesting by a group of robots. In
Proc. European Conference on Artificial Life, 1992.
94. [Grossman ,1998] D. Grossman. Traffic control of multiple robot vehicles. IEEE
Journal of Robotics and Automation, 4:491497, 1988.
95. [Hackwood ,1994] S. Ma, S. Hackwood, and G. Beni. Multi-agent supporting systems
(MASS): Control with centralized estimator of disturbance. In
IEEE/RSJ IROS, pages 679686, 1994.
96. [Hashimoto ,1993] M. Hashimoto and F. Oba. Dynamic control approach for motion
coordination of multiple wheeled mobile robots transporting a
single object. In IEEE/RSJ IROS, pages 19441951, 1993.
97. [Hofmeister, 2011] Marius Hofmeister, Marcel Kronfeld and Andreas Zell ,
Cooperative Visual Mapping in a Heterogeneous Team of Mobile
Robots Robotics and Automation (ICRA),page 1491-1496. IEEE,
2011.
98. [Holzapfel, 2007] Holzapfel, H., Schaaf, T., Ekenel, H. K., Waibel, A., A Robot learns
to know people - First Contacts of a Robot, Proceedings of the 29th
annual German conference on Artificial intelligence, 2007.
Bibliografie

123

99. [Howard, 2006] A. Howard, L. E. Parker, and G. S. Sukhatme, Experiments with a
large heterogeneous mobile robot team: Exploration, mapping,
deployment and detection, Int. Journal of Robotics Research, vol.
25, no. 5, pp. 431-447, May 2006.
100. [Hsieh ,2008] M. Ani Hsieh , Vijay Kumar and Luiz Chaimowicz Decentralized
controllers for shape generation with robotic swarms. Robotica,
26(5):691-701, 2008.
101. [Hsieh, 2007] M. A. Hsieh, A. Cowley, J. F. Keller, L. Chaimowicz, B.
Grocholsky, V. Kumar, et al., Adaptive teams of autonomous aerial
and ground robots for situational awareness, Journal of Field
Robotics, vol. 24, pp. 991-1014, 2007.
102. [Iba, 2004] Iba, S., Interactive Multi-Modal Robot Programming, PhD Thesis,
Robotics Institute, Carnegie Mellon University, 2004
103. [Jing Li, 2011] Jing Li , Zhaohan Sheng and KwanChew Ng, Multi-goal Q-
learning of cooperative teams. Expert Systems with Applications
38 , 15651574, 2011.
104. [Jolly, 2010] Jolly, K.G., Kumar, R.S., Vijayakumar, R., Intelligent task planning
and action selection of a mobile robot in a multi-agent system
through a fuzzy neural network approach, Engineering Applications
of Artificial Intelligence, Elsevier, Vol. 23, pp. 923933 , doi:
10.1016/j.engappai.2010.04.001, 2010.
105. [Jung, 2004] Yuchul Jung, Young K.Hwang, Manjai Lee,Case-Based Reasoning
Approach to Task Planning of Home-Service Robots, Icat 2004
106. [Jung, 2010] Jung, B., Sukhatme, G.S., Real-time Motion Tracking from a
Mobile Robot, International Journal of Social Robotics, Springer,
Vol. 2, pp. 6378, doi: 10.1007/s12369-009-0038-y, 2010
107. [Kaelbling, 1993] L. P. Kaelbling. Learning in Embedded Systems. MIT Press, 1993.
108. [Kanda, 2003] Kanda, T., A Constructive Approach for Communication Robots,
PhD Thesis, 2003
109. [Kantor , 2003] G. Kantor , S. Singh , R. Peterson , D. Rus , A. Das , V. Kumar , G.
Pereira and J. Spletzer, Distributed Search and Rescue with Robot
and Sensor Teams. In Proceedings of the 4th International
Conference on Field and Service Robotics. Japan, July, 2003.
110. [Karray, 2008] Karray, F., Alemzadeh, M., Saleh, J.A., Arab, M.N., Human-
computer interaction Overview on state of the art, International
Journal on Smart Sensing and Intelligent Systems, Vol. 1(1), pp.
137-159, 2008.
Bibliografie

124

111. [Kiener, 2010] J. Kiener and O. von Stryk, Towards cooperation of heterogeneous,
autonomous robots: A case study of humanoid and wheeled robots,
Robotics and Autonomous Systems, vol. 58, pp. 921-929, 2010.
112. [Kiener, 2010] J. Kiener, and O. Von Stryk, Towards cooperation of
heterogeneous, autonomous robots: A case study of humanoid and
wheeled robots, in Robotics and Autonomous Systems, vol. 58, no.
7, 2010, pp. 921-929.
113. [Kitts, 2009] C. Kitts, K. Stanhouse, and P. Chindaphorn, Cluster space collision
avoidance for mobile two-robot systems, Intelligent Robots and
Systems, IEEE/RSJ International Conference on, pp. 19411948,
Oct 2009.
114. [Kleiner ,2006] Kleiner, A. & Ziparo, V. Robocuprescue simulation league team
rescuerobots freiburg (Germany). In Robocup 2006: Robot Soccer
World Cup X, Bremen,Germany. (Proceedings CD-ROM), 2006.
115. [Klumpp, 2012] Klumpp, M. ; Sandhaus, G. , Dynamic Scheduling In Logistics with
Agent-Based Simulation, The 2012 European Simulation and
Modelling Conference, Conference Proceedings October 22-24,
2012 at FOM University, Essen, Germany, p. 329-336, 2012.
116. [Kobayashi, 2009] Kobayashi, K., Yamada, S., Making a Mobile Robot to Express its
Mind by Motion Overlap, Advances in Human-Robot Interaction,
pp. 342-356, INTECH, 2009.
117. [Kooijmans, 2007] Kooijmans, T., Kanda, T., Bartneck, C., Ishiguro, H., Hagita, N.,
Accelerating Robot Development through Integral Analysis of
Human-Robot Interaction, IEEE Transactions on Robotics, Vol.
23(5), pp. 1001-1012, 2007.
118. [Kovcs, 2011] T. Kovcs, A. Psztor, and Z. Istenes, A multi-robot exploration
algorithm based on a static Bluetooth communication chain,
Robotics and Autonomous Systems, vol. 59, pp. 530-542, 2011.
119. [Kumar, 2004] V. Kumar , M. Mintz , B. Grocholsky and F. Zhang, Cooperative
Control for Localization of Mobile Sensor Networks. In
Cooperative Control, Lecture Notes in Control and Information
Sciences. Springer Verlag, 2004.
120. [Kuniyoshi,1994a] Y. Kuniyoshi, N. Kita, S. Rougeaux, S. Sakane, M. Ishii, and M.
Kakikura. Cooperation by observation- the framework and basic
task patterns. In IEEE ICRA, pages 767774, 1994.
Bibliografie

125

121. [Kuniyoshi,1994b] Y. Kuniyoshi, J. Riekki, M. Ishii, S. Rougeaux, N. Kita, S. Sakane,
and M. Kakikura. Vision-based behaviors for multi-robot
cooperation. In IEEE/RSJ IROS, pages 925931, 1994.
122. [Kyriacou, 2004] Kyriacou, T., Vision-Based Urban Navigation Procedures for
Verbally Instructed Robots, PhD Thesis, School of Computing,
Communications and Electronics Faculty of Technology,
University of Plymouth, 2004.
123. [Lawton, 2003] Lawton, J.R. , A Decentralized Approach to Formation Maneuvers.
IEEE Transactions on Robotics and Automation, Vol 19, No 6,
933941, 2003.
124. [Lee, 2007] Lee, W., Ryu, H., Yang, G., Kim, H., Park, Y., Bang, S., Design
guidelines for map-based human-robot interfaces: A colocated
workspace perspective, International Journal of Industrial
ergonomics, Elsevier, Vol. 37, pp. 589-604, doi:
10.1016/j.ergon.2007.03.004, 2007.
125. [Lewis,1992] M.A. Lewis and G.A. Bekey. The behavioral selforganization of
nanorobots using local rules. In IEEE/RSJ IROS, pages 1333
1338, 1992.
126. [Littman , 1994] M. Littman. Markov games as a framework for multiagent
reinforcement learning. In Proceedings of the International
Machine Learning Conference, pages 157163, 1994.
127. [Lopes, 2006] Lopes, M., A Developmental Roadmap for Learning by Imitation in
Robots, Universidade Tcnica de Lisboa Instituto Superior Tcnico,
2006.
128. [Lopez, 2011] Lopez, J., Perez, D., Zalam, E., A framework for building mobile
single and multi-robot applications, Robotics and Autonomous
Systems, Elsevier, Vol. 59, pp. 151-162, doi:
10.1016/j.robot.2011.01.004, 2011
129. [Lozano-Perez, 1983] Lozano-Perez, T., Spatial planning: A configuration space
approach, IEEE Transactions on Computers, vol. 32 (2), pag. 108-
120, 1983.
130. [Lueth ,1994] T.C. Lueth and T. Laengle. Task description, decomposition and
allocation in a distributed autonomous multi-agent robot system. In
IEEE/RSJ IROS, pages 15161523, 1994.
131. [Madrigal, 2007] J.-A. Fernndez-Madrigal, C. Galindo, E. Cruz-Martn, A. Cruz-
Martn, and J. Gonzlez . Automatic Regulation of the Information
Flow in the Control Loops of a Web Teleoperated Robot. IEEE
Bibliografie

126

International Conference on Robotics and Automation Roma, Italy,
10-14 April 2007,3496-3501, 2007.
132. [Malisiewicz, 2011] T. Malisiewicz, A. Gupta, and A. A. Efros, Ensemble of exemplar-
svms for object detection and beyond, in Computer Vision (ICCV),
2011 IEEE International Conference on, pp. 8996, IEEE, 2011.
133. [Marn, 2005] Ral Marn, Pedro J. Sanz, P. Nebot, and R.Wirz, A Multimodal
Interface to Control a Robot Arm via the Web: A Case Study on
Remote Programming.IEEE Transaction on Industrial electronics,
vol.52, no.6, December,1506-1520 Robot Path Planning and
Control. IEEE TRANSACTIONS ON EDUCATION, VOL. 49,
NO. 2, MAY 2006, 263-270.
134. [Marin, 2005] R. J. Marn, P. J. Sanz, P. Nebot, and R. Wirz, A Multimodal
Interface to Control a Robot Arm via the Web: A Case Study on
Remote Programming, IEEE Transaction on Industrial Electronics,
vol. 52, no. 6, 2005, pp. 1506-1520.
135. [Mas, 2010] Mas and C. Kitts, Multi-robot object manipulation using cluster
Advanced Intelligent Mechatronics, IEEE/ASME International
Conference on - in press, 2010.
136. [Mas, 2012] Mas I, Kitts C, Object manipulation using cooperative mobile
multi-robot systems. Lecture Notes in Engineering and Computer
Science: Proceedings of the world congress on engineering and
computer science 2012. WCECS 2012:324329, 2012.
137. [Mataric ,1994b] M. Mataric. Reward functions for accelerated learning. In
Proceedings of the International Machine Learning Conference,
pages 181189, 1994.
138. [Mataric, 1994] Mataric, M., Interaction and Intelligent Behavior, Massachusetts
Institute Of Technology, 1994.
139. [Mataric, 1995] Mataric M, Nilsson M, Simsarian K , Cooperative multi-robot box-
pushing. Intelligent robots and systems. IEEE/RSJ international
conference on, In, pp 556561, 1995.
140. [Mataric,1994a] M. Mataric. Interaction and Intelligent Behavior. PhD thesis, MIT,
EECS, May 1994.
141. [Medicherla, 2007] Medicherla, H., Sekmen, A., Humanrobot interaction via voice-
controllable intelligent user interface, Robotica, Cambridge
University Press, Vol. 25(5), pp. 521-527,
doi:10.1017/S0263574707003414, 2007.
Bibliografie

127

142. [Meger, 2008] Meger, D., Forssn, P.-E., Lai, K., Helmer, S., McCann, S.,
Southey, T., Baumann, M., et al., Curious George: An attentive
semantic robot, Robotics and Autonomous Systems, Springer, Vol.
56(6), pp. 503-511, doi:10.1016/j.robot.2008.03.008, 2008.
143. [Melinger ,2010] D. Melinger, M. Shomin, N. Michael and V. Kumar, Cooperative
Grasping and Transport using Multiple Quadrotors. In 10th
International Symposium on Distributed Autonomous Robots.
Lausanne, Switzerland, November. Springer, 2010.
144. [Michael , 2011] N. Michael , J. Fink and V. Kumar Cooperative Manipulation and
Transportation with Aerial Robots. Autonomous Robots, 30(1):73-
86, 2011.
145. [Michael ,2012] N. Michael , S. Shen , K. Mohta , Y. Mulgaonkar , V. Kumar, K.
Nagatani , Y. Okada , S. Kiribayashi , K. Otake , K. Yoshida , K.
Ohno , E. Takeuchi and S. Tadokoro, Collaborative Mapping of an
Earthquake-Damaged Building via Ground and Aerial Robots. J.
Field Robotics, 29(5):832-841, 2012.
146. [Michael, 2009] N. Michael , J. Fink and V. Kumar Cooperative manipulation and
transportation with aerial robots. In Robotics Science and Systems.
Seattle, Washington, June, 2009.
147. [Minamide, 2007] A. Minamide, K. Takemata, N. Naoe, and P. S. Hoon,
Development of a Long-Distance-Controlled Robot System Using
the Web for International Exchange, IEEE International Workshop
on Digital Game and Intelligent Toy Enhanced Learning, 2007, pp.
188-190.
148. [Mocan,2005] Mocan, M. Logistica. Cap. 4. Dimensionarea sistemelor logistice.
p. 90, Buletinul tiintific al UPT, Tomul 50 (64), 2005, Fascicola
1,2 , ISSN 1224-6050.
149. [Mogan, 2009] Mogan, Gh., Aron, C., Robot fine motion during assembly
processes, Proceedings of DAAAM'09 International Conference,
pag. 1491-1492, Viena, 2009.
150. [Monje, 2011] Monje, C.A., Pierro, P., Balaguer, C., A new approach on human
robot collaboration with humanoid robot RH-2, Robotica,
Cambridge University Press, Vol. 29(6), pp. 949-957, doi:
10.1017/S026357471100018X, 2011.
151. [Moreno, 2009] Moreno, F.A., Blanco, J.L., Gonzalez, J., Stereo vision specific
models for particle filter-based SLAM, Robotics and Autonomous
Systems, Elsevier, Vol. 57(9), pp. 955-970,
doi:10.1016/j.robot.2009.03.002, 2009.
Bibliografie

128

152. [N. Lau ,2011] N. Lau, L. S. Lopes, G. Corrente, N. Filipe, and R. Sequeira, Robot
team coordination using dynamic role and positioning assignment
and role based setplays, in Mechatronics, vol. 21, no. 2, 2011, pp.
445454.
153. [Nanjanath, 2010] Nanjanath, M., Gini, M., Repeated auctions for robust task
execution by a robot team, Robotics and Autonomous Systems,
Elsevier, Vol. 58(7), pp. 900-909, doi: 10.1016/j.robot.2010.03.011,
2010.
154. [Navarro, 2011] Navarro, I., Mata, F., A framework for the collective movement of
mobile robots based on distributed decisions, Robotics and
Autonomous Systems, Elsevier, Vol. 59(10), pp. 685-697, doi:
10.1016/j.robot.2011.05.001, 2011.
155. [Niulescu, 2001] Niulescu, M., Consideratii privind planificarea traiectoriei
robotilor mobili, 2001.
156. [Noreils ,1993] F. R. Noreils. Toward a robot architecture integrating cooperation
between mobile robots: Application to indoor environment. The
International Journal of Robotics Research, 12(1), February 1993.
157. [Oka, 2009] Oka, Tetsushi, Abe, T., Sugita, K., Yokota, M., RUNA: a
multimodal command language for home robot users, Artificial
Life and Robotics, Springer, Vol. 13(2), pp. 455-459.
doi:10.1007/s10015-008-0603-8, 2009.
158. [Oka, 2011] Oka, Takahasi, Matsumoto, H., Kibayashi, R., A multimodal
language to communicate with life-supporting robots through a
touch screen and a speech interface, Artificial Life and Robotics,
Springer, Vol. 16, pp. 292-296, doi: 10.1007/s10015-011-0924-x,
2011.
159. [Ontanon, 2007] Ontanon , S., Mishra, K., Sugandtg, K., and Ram, A. , Case-based
planning and execution for real-time strategy games. In
Proceedings of ICCBR-2007, pp. 164178, 2007.
160. [Ozdemircan, 2008] zdermican, M. Z., Robot control with voice command.
Architecture, Department of Computer Engineering,Yildiz
Technical University, 2008.
161. [Panangadan, 2010] Panangadan, A., Matari, M., Sukhatme, G.S., Tracking and
Modeling of Human Activity Using Laser
Rangefinders,International Journal of Social Robotics, Springer,
Vol. 2, pp. 95107 , doi: 10.1007/s12369-009-0043-1, 2010.
Bibliografie

129

162. [Panfir, 2011] Panfir, A.N; Covaci, A.; Mogan, G. Mobile robots communication
system using LabView Package, Adems11 , publicat n revista Acta
Technica Napocensis, Series Applied Mathematics and
MechanicsCluj-Napoca, Romania, 21-23 Septembrie, 2011.
163. [Panfir, 2012a] Panfir, A.N; Covaci, A.; Postelnicu, C.C; Mogan G. Control
Interfaces for a Collaborative System Using LabView Package,
DoCEIS 2012, pp 33-40, 2012.
164. [Panfir, 2012b] Panfir, A.N; Covaci, A.; Postelnicu, C.C; Mogan G. An Intelligent
Tasks Planning System for Industrial Mobile Robots, MTM &
Robotics 2012 Mechanical Transmissions (MTM) and the
International Conference on Robotics (Robotics12), Clermont-
Ferrand, France, 6-8 iunie, pp 308-315, 2012
165. [Panfir, 2012c] Panfir, A. N; Butil E.; Boboc, R.; Mogan, G; Controlling
humanoid NAO robots using a web interface, 3rd World Conference
on Information Sciences (WCIT-2012) , Barcelona, Spain. 14-16
Noiembrie, 2012.
166. [Panfir, 2013a] Panfir, A.N.; Boboc, R. G.; Mogan G. NAO Robots collaboration
for object manipulation, Optirob 2013 Applied Mechanics and
Materials Vol. 332, pp 218-223, 2013.
167. [Panfir, 2013b] Panfir, A.N.; Boboc, R. G.; Mogan G. Intelligent Mobile Robots
Cooperation within a Tasks Oriented Environment, CINTI 2013,
Budapest, Hungary, 2013.
168. [Parker ,1994] L. E. Parker. Heterogeneous Multi-Robot Cooperation. PhD thesis,
MIT EECS Dept., February 1994.
169. [Parker, 1995] Parker, L. E.. L-ALLIANCE: A Mechanism for adaptive action
selection in heterogeneous Multi-Robot teams, ORNL/TM-13000
1995.
170. [Parker, 1998] L.E. Parker. ALLIANCE: architecture for fault tolerant multi-robot
cooperation. In Proceedings of IEEE Transactions on Robotics and
Automation, Vol. 14, No. 2, 220-240, 1998.
171. [Parker, 2004] L. E. Parker, B. Kannan, F. Tang, and M. Bailey, Tightly-coupled
navigation assistance in heterogeneous multi-robot teams, in
Proceedings of IEEE/RSJ Int. Conference on Intelligent Robots and
Systems (IROS), vol. 1, Sendai, Japan, September 2004, pp. 1016-
1022.
172. [Perdereau, 2002] Perdereau, V., Real-time control of redundant robotic manipulators
for mobile obstacle avoidance, Robotics and Autonomous Systems,
vol. 41, pag. 41-59, 2002.
Bibliografie

130

173. [Postelnicu, 2011] Postelnicu, C., Grbacia, F., Dugulean, M., Talab, D., EOG-Based
Teleoperation of a Mobile Robot, Proceedings of ICFCC 2011
Conference, Iai, Romnia, 2011.
174. [Postelnicu, 2012] Postelnicu, C.C; Covaci, A; Panfir, A.N.; Talaba D. Evaluation of
a P300-Based Interface for Smart Home Control , DoCEIS 2012, pp
179-186, 2012.
175. [Quentin, 2011] Quentin Lindsey, Daniel Mellinger and Vijay Kumar Construction
of Cubic Structures with Quadrotor Teams, Robotics: Science and
Systems VII, vol. 7 , pp. 177-185, 2011
176. [Russell, 2003] Russell, S.J., Norvig, P., Artificial Intelligence: A Modern
Approach, 2nd ed., New Jersey: Prentice-Hall, 2003.
177. [Salter, 2006] Salter, T., Dautenhahn, K., Boekhorst, R., Learning about natural
human-robot interaction styles, Robotics and Autonomous Systems,
Elsevier, Vol. 54, pp. 127-134, doi:10.1016/j.robot.2005.09.022,
2006
178. [Sanhoury, 2012] I. M. H. Sanhoury, S. H. M. Amin, and A. R. Husain, Switching
Between Formation in a Moving Shape for Multi-Robots via
Synchronization Approach, Procedia Engineering, vol. 41, pp. 678-
684, 2012.
179. [Schulman, 2013] J. Schulman, J. Ho, A. Lee, I. Awwal, H. Bradlow, and P. Abbeel,
Finding locally optimal, collision-free trajectories with sequential
convex optimization, in Proc. Robotics: Science and Systems, 2013.
180. [Sen ,1994] S. Sen, M. Sekaran, and J. Hale. Learning to coordinate without
sharing information. In Proc. AAAI, pages 426431, 1994.
181. [Senthilkumar, 2012] Senthilkumar, K. S., Bharadwaj, K. ,Multi-robot exploration
and terrain coverage in an unknown environment, Robotics and
Autonomous Systems, Elsevier, Vol. 60(1), pp. 123-132, doi:
10.1016/j.robot.2011.09.005, 2012.
182. [Sequeira, 2005] Joao Sequeira and M. Isabel Ribeiro. Robot team control: A
geometric approach. Robotics and Autonomous Systems 53 , 59
71, 2005.
183. [Shiwa, 2009] Shiwa, T., Kanda, T., Imai, M., Ishiguro, H., Hagita, N., How
Quickly Should a Communication Robot Respond
Delaying Strategies and Habituation Effects, International Journal
of Social Robotics, Springer, Vol. 1(2), pp. 141-155,
doi:10.1007/s12369-009-0012-8, 2009.
Bibliografie

131

184. [Shubina, 2010] Shubina, K., Tsotsos, J.K., Visual search for an object in a 3D
environment using a mobile robot , Computer Vision and Image
Understanding, Elsevier, Vol. 114 , pp. 535547 , doi:
10.1016/j.cviu.2009.06.010, 2010.
185. [Siagian, 2011] C. Siagian, C.-K. Chang, R. Voorhies, and L. Itti, Beobot 2.0:
Cluster architecture for mobile robotics, Journal of Field Robotics,
vol. 28, pp. 278-302, 2011.
186. [Spalzzi, 2001] Spalzzi, L., A Survey on Case-Based Planning. Artificial
Intelligence Review, 16(1), 2001.
187. [Steels ,1990] L. Steels. Cooperation between distributed agents through self-
organization. In European Workshop on Modelling Autonomous
Agents in a Multi-Agent World, pages 175195, 1990.
188. [Steels,1994] L. Steels. A case study in the behavior-oriented design of
autonomous agents. In Proc. Simulation of Adaptive Behavior,
1994.
189. [Steinfeld, 2006] Steinfeld, A., Fong, T., Kaber, D., Lewis, M., Scholtz, J., Schultz
A., Goodrich M., Common metrics for human-robot interaction,
International Conference on Human-Robot Interaction HRI, 2006.
190. [Stiefelhagen, 2004] Stiefelhagen, R., Fogen, C., Gieselmann, P., Holzapfel, H., Nickel,
K., Waibel, A., Natural human-robot interaction using speech,
head pose and gestures, IEEE/RSJ International Conference on
Intelligent Robots and Systems (IROS), Vol. 3, pp. 2422-2427, doi:
10.1109/IROS.2004.1389771, 2004.
191. [Stilwell, 2003] D. J. Stilwell and J. S. Bay. Toward the development of a material
transport system using swarms of ant-like robots. In IEEE ICRA,
volume 6, pages 766771, 1993.
192. [Stone, 1997] Peter Stone, Manuela Veloso, Multiagent systems: A survey
from a machine learning perspective, Computer Science
Department,Carnegie Mellon University, USA, 1997
193. [Sugie,1995] H. Sugie, Y. Inagaki, S. Ono, H. Aisu, and T. Unemi. Placing
objects with multiple mobile robots mutual help using intention
inference. In IEEE ICRA, pages 21812186, 1995.
194. [Svaco, 2011] Svaco, M., Sekoranja, B.,Bojan: Autonomous Planning Fremework
for Distibuted Multiagent Robotic Systems. In: Doctoral Conference
on Computing, Electrical and Industrial Systems, DoCEIS 2011,
Costa de Caparica, Portugal, February 21-23, 2011. Proceedings
Springer 2011, ISBN 978-3-642-19169-5
Bibliografie

132

195. [Tan ,1993] M. Tan., Multi-agent reinforcement learning: independent vs.
cooperative agents. In Proceedings of the International Machine
Learning Conference, 1993.
196. [Tingting, 2012] Tingting Liu ; Sch. of Control Sci. & Eng., Shandong Univ., Jinan,
China ; Meng, M.Q.-H. Study on cooperation between humanoid
robot Nao and Barrett WAM ,Robotics and Biomimetics (ROBIO),
2012 pp 980 983
197. [Topoleanu, 2009] Topoleanu, T.S., Mogan, G., Aspects Concerning Mobile Robot
Control Using Vocal Commands, Proceedings of 2nd International
Conference on Advanced Engineering in Mechanical Systems, Cluj,
Romania, 2009
198. [Trulls, 2011] Trulls, E., Murtra, A. C., Ferrer, G., Vasquez, D., Mirats-tur, J. M.,
& Sanfeliu, A., Autonomous Navigation for Mobile Service Robots
in Urban Pedestrian Environments, Journal of Field Robotics,
Wiley Periodicals Inc , Vol. 26, doi:10.1002/rob20386, 2011
199. [Tung ,1993] B. Tung and L. Kleinrock. Distributed control methods. In
Proceedings of the 2nd International Symposium on High
Performance Distr ibuted Computing, pages 206215, 1993.
200. [Tung ,1994] Y-C. Tung. Distributed Control Using Finite State Automata. PhD
thesis, UCLA Computer Science Department, 1994. 22 Cao, et al.
201. [Turpin ,2013] M. Turpin , N. Michael and V. Kumar, Computationally efficient
trajectory planning and task assignment for large teams of
unlabeled robots. In Submitted. May, 2013.
202. [Turpin, 2012] Turpin, M. , Michael, N. and Kumar, V. , Decentralized formation
control with variable shapes for aerial robots. In Proc. of the IEEE
Int. Conf. on Robotics and Automation. St. Paul, MN, May, 2012.
203. [VanLehn,1991] VanLehn, editor. Architectures for Intelligence: The 22nd
Carnegie Mellon Symposium on Cognition. Lawrence Erlbaum
Associates, 1991.
204. [Varghese, 2010] Varghese, B., Mckee, G., A mathematical model, implementation
and study of a swarm system, Robotics and Autonomous Systems,
Elsevier, Vol. 58(3), pp. 287-294, doi: 10.1016/j.robot.2009.08.006,
2010.
205. [Vogiatzis, 2008] Vogiatzis, D., Spyropoulos, C. D., Konstantopoulos, S., Karkaletsis,
V., Kasap, Z., Matheson, C., & Deroo, O., An Affective Robot
Guide to Museums, Proceedings of the 4th International Workshop
on Human-Computer Conversation, 2008.
Bibliografie

133

206. [Walsh, 2010] Thomas J. Walsh, Sergiu Goschin, Michael L. Littman. Integrating
Sample-Based Planning and Model-Based Reinforcement Learning.
n Proceedings of AAAI'2010, 2010.
207. [Wang, 2007] Wang Z, Takano Y, Hirata Y, Kosuge K , Decentralized
cooperative object transportation by multiple mobile robots with a
pushing leader. Distrib Auton Rob Sys 6:453462. doi:10.1007-
978-4-431-35873-2-44, 2007.
208. [Wang, 2008a] W. Wang, H. Zhang, G. Zong, and J. Zhang, Force cooperation in a
reconfigurable field multirobot system, Journal of Field Robotics,
vol. 25, pp. 922-938, 2008.
209. [Wang, 2008b] Y. Wang and C. W. de Silva, A machine-learning approach to
multi-robot coordination, Engineering Applications of Artificial
Intelligence, vol. 21, pp. 470-484, 2008.
210. [Wang, 2012] Wang, J., Xin, M., Distributed optimal cooperative tracking control
of multiple autonomous robots, Robotics and Autonomous Systems,
Vol. 60(4), pp. 572-583, doi:10.1016/j.robot.2011.12.002, Elsevier,
2012
211. [Wang,1994] J. Wang and S. Premvuti. Resource sharing in distributed robotic
systems based on a wireless medium access protocol (CSMA/CD-
W). In IEEE/RSJ IROS, pages 784791, 1994.
212. [Wei, 2003] Wei, W., Neuro-fuzzy and model-based motion control for mobile
manipulator among dynamic obstacles, Science in China Series F:
Information Sciences, vol. 46, pag. 14-30, 2003.
213. [Whitbrook, 2010] Whitbrook A.,Programming mobile robots with ARIA and Player A
Guide to C++ Object Oriented Control, p. 124, ISBN 978-1-84882-
863-6, Springer, 2010.
214. [Whitehead , 1991] S. Whitehead. A complexity analysis of cooperative mechanisms in
reinforcement learning. In Proc. AAAI, pages 607613, 1991.
215. [Wooldrige, 2002] M. Wooldrige. An Introduction to MultiAgent Systems, John
Wiley&Sons, Ch.11, p.243-266, 2002.
216. [Xu, 2011] Xu, Y., Ohmoto, Y., Ueda, K., Komatsu, T., Okadome, T., Kamei,
K., Okada, S., et al., Active adaptation in human-agent
collaborative interaction, Journal of Intelligent Information
Systems, Vol. 37(1), pp. 23-38, doi: 10.1007/s10844-010-0135-2,
2010.
217. [Xu, 2012] Xu, Y., Ohmoto, Y., Okada, S., Ueda, K., Komatsu, T., Okadome,
T., Kamei, K., et al., Formation conditions of mutual adaptation in
Bibliografie

134

human-agent collaborative interaction, Applied Intelligence,
Springer, Vol. 36(1), pp. 208-228, doi: 10.1007/s10489-010-0255-
y, 2012.
218. [Yamashita, 2001] Yamashita A, Ota J, Arai T, Ichikawa K, Kamata K, Asama H,
Cooperative manipulation and transportation of a large object by
multiple mobile robots. In: Asama H, Inoue H (eds) Intelligent
autonomous vehicles, pp 375380, 2001.
219. [Yanco ,1992] H. Yanco and L. Stein. An adaptive communication protocol for
cooperating mobile robots. In Proc. Simulation of Adaptive
Behavior, pages 478485, 1992.
220. [Yao, 2007] Yao, Z., Gupta, K., Path planning with general end-effector
constraints, Robotics and Autonomous Systems, vol. 55, pag. 316-
327, 2007.
221. [Yasuda, 2012] G. i. Yasuda, Modeling and Distributed Implementation of
Synchronization and Coordination in Multi-Robot Systems,
Procedia Engineering, vol. 41, pp. 1051-1057, 2012.
222. [Yoshida ,1995a] E. Yoshida, M. Yamamota, T. Arai, J. Ota, and D. Kurabayashi. A
design method of local communication area in multiple mobile
robot system. In IEEE ICRA, pages 25672572, 1995.
223. [Yoshida ,1995b] E. Yoshida, M. Yamamoto, T. Arai, J. Ota, and D. Kurabayashi. A
design method of local communication range in multiple mobile
robot system. In IEEE/RSJ IROS, pages 274279, 1995.
224. [Yoshida,1994] E. Yoshida, T. Arai, J. Ota, and T. Miki. Effect of grouping in
local communication system of multiple mobile robots. In IEEE/RSJ
IROS, pages 808815, 1994.
225. [Yulan, 2012a] H. Yulan, Z. Qisong, Q. Lijuan, and X. Pengfei, Research on Multi-
Robot Cooperation Capture Based on Virtual Reality Technology,
Procedia Engineering, vol. 29, pp. 3507-3512, 2012.
226. [Yulan, 2012b] H. Yulan, Z. Qisong, and X. Pengfei, Study on Multi-Robot
Cooperation Stalking Using Finite State Machine, Procedia
Engineering, vol. 29, pp. 3502-3506, 2012.
227. [Zhang, 2007] Zhang, Y., Ma, S., Minimum-Energy Redundancy Resolution of
Robot Manipulators Unified by Quadratic Programming and its
Online Solution, Proceedings of the IEEE International Conference
on Mechatronics and Automation, pag. 3232-3237, 2007.
228. [Zhang, 2009] Zhang, Y., et. al., More Illustrative Investigation on Window-
Shaped Obstacle Avoidance of Robot Manipulators Using a
Bibliografie

135

Simplified LVI-Based Primal-Dual Neural Network, Proceedings of
the IEEE International Conference on Mechatronics and
Automation, pag. 4240-4245, 2009.
229. [Zhang, 2010] Zhang, X., Liu, H., & Li, X., Target tracking for mobile robot
platforms via object matching and background anti-matching,
Robotics and Autonomous Systems, Vol. 58(11), pp. 1197-1206,
Elsevier B.V. doi:10.1016/j.robot.2010.08.002, 2010.
230. [Zhu, 2011] Zhu W, Choi S, A closed-loop bid adjustment approach to dynamic
task allocation of robots. Eng Lett 19(4):279288 space control, in
Proceedings of the 20th ASME Annual Conference on Information
Storage and Processing Systems, June 2011.
231. [Zub, 2010] Javier Garca Zuba and Ivan Trueba Parra. WEB 2.0 Control
architecture for industrial robots.IEEE Emerging Technologies and
Factory Automation (ETFA), 13-16 Sept. 20101.
232. [Zue Doulgeri, 2006] Z. Doulgeri, and T. Matiakis, A Web Telerobotic System to
Teach Industrial Robot Path Planning and Control, IEEE
Transactions on Education, vol.49, 2006, pp. 263-270. Symposium
on Intelligent Control, pages 5762, 1988.
233. [***a] http://www.ni.com/robotics/industrial/
























ANEXE

Anexe

137

Anexa 1: NaoCoopDataAccess - Clasa de baza pentru accesarea
inregistrarilor din baza de date

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data.Linq;
using System.Linq;
using System.Reflection;
using System.Text;
using NaoCoopDataAccess.Interfaces;

namespace NaoCoopDataAccess.Managers
{
public abstract class RecordsManagerBase<T> : ManagerBase, IRecordManager<T>
where T : NaoCoopObjects.Classes.NaoCoopObject // NaoCoop object
{

/// <summary>
/// Constructor
/// </summary>
/// <param name="connectionString"></param>
public RecordsManagerBase(string connectionString)
: base(connectionString)
{
}

#region Virtual
/// <summary>
/// Gets the db record by id
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
protected virtual NaoCoopObjects.Interfaces.INaoCoopObject
GetDbRecordByID(Guid id, bool throwExceptionIfNotFound = true)
{
foreach (NaoCoopObjects.Interfaces.INaoCoopObject record in Records)
{
if (record.ID.Equals(id))
{
return record;
}
}
if (!throwExceptionIfNotFound)
{
return null;
}
else
{
throw new Exception(string.Format("Record with ID '{0}' not found in
table '{1}'.", id, Records.ToString()));
}
}

/// <summary>
/// Gets the nao object from the database by ID
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public virtual T GetRecordByID(Guid id)
{
Anexe

138

var dbObj = GetDbRecordByID(id);
return (T)ConvertDbObjToNaoObj(dbObj, typeof(T));
}

/// <summary>
/// Gets all nao objects from the database
/// </summary>
/// <returns></returns>
public virtual IEnumerable<T> GetRecords()
{
ResetContext();
foreach (var dbRecord in Records)
{
T naoObject = (T)Activator.CreateInstance(typeof(T),
((NaoCoopObjects.Interfaces.INaoCoopObject)dbRecord).ID);
CopyDbObjectToNaoObject(dbRecord, naoObject);
yield return naoObject;
}
}

/// <summary>
/// Deletes the record from the database
/// </summary>
/// <param name="record"></param>
public virtual void DeleteRecord(T record)
{
if (record == null)
{
return;
}

var dbObj = GetDbRecordByID(record.ID, throwExceptionIfNotFound: false);
if (dbObj != null)
{
Records.DeleteOnSubmit(dbObj);
Records.Context.SubmitChanges();
}
}

/// <summary>
/// Saves the record in the database
/// </summary>
/// <param name="record"></param>
public virtual void SaveRecord(T record)
{
SaveRecord(record, null);
}

internal virtual void SaveRecord(T record, params object[] parentRecords)
{
if (record == null)
{
return;
}

// check if objects exist in the database
var dbObj = GetDbRecordByID(record.ID, throwExceptionIfNotFound: false);
if (dbObj == null)
{
dbObj =
(NaoCoopObjects.Interfaces.INaoCoopObject)Activator.CreateInstance(Records.ElementType
);
Anexe

139

Records.InsertOnSubmit(dbObj);
}
// copy nao coop member values to db object
CopyNaoObjectToDbObject(record, dbObj);
if (parentRecords != null)
{
foreach (var parentRecord in parentRecords)
{
// set the parent record id
var destinationProperty =
dbObj.GetType().GetProperty(string.Format("FK_{0}ID", parentRecord.GetType().Name));
if (destinationProperty != null)
{
destinationProperty.SetValue(dbObj,
((NaoCoopObjects.Interfaces.INaoCoopObject)parentRecord).ID, null);
}
}
}

Records.Context.SubmitChanges();
}
#endregion

#region Abstract
/// <summary>
/// Gets the records table
/// </summary>
protected abstract ITable Records
{
get;
}
#endregion

#region DB TO NAO
/// <summary>
/// Creates a Nao Object from a Db Object
/// </summary>
/// <param name="dbObj"></param>
/// <param name="naoObjType"></param>
/// <returns></returns>
protected static object
ConvertDbObjToNaoObj(NaoCoopObjects.Interfaces.INaoCoopObject dbObj, Type naoObjType)
{
if (dbObj == null)
{
return null;
}

var naoObject = Activator.CreateInstance(naoObjType, dbObj.ID);

CopyDbObjectToNaoObject(dbObj, naoObject);

return naoObject;
}

/// <summary>
/// Copies the db object members to nao object members
/// </summary>
/// <param name="source">db object</param>
/// <param name="destination">nao object</param>
protected static void CopyDbObjectToNaoObject(object source, object
destination)
Anexe

140

{
var properties = destination.GetType().GetProperties(BindingFlags.Public |
BindingFlags.Instance);

foreach (var property in properties)
{
if (property.Name != "ID") // id property of nao objects are not
settable
{
var value =
source.GetType().GetProperty(property.Name).GetValue(source, null);
var argType = default(Type);
if
(property.PropertyType.GetInterfaces().Contains(typeof(NaoCoopObjects.Interfaces.INaoC
oopObject)))
{// nao coop element
// get destination type
property.SetValue(destination,
ConvertDbObjToNaoObj((NaoCoopObjects.Interfaces.INaoCoopObject)value,
property.PropertyType), null);
}
else if (property.PropertyType.IsGenericType &&
(argType =
property.PropertyType.GetGenericArguments()[0]).GetInterfaces().Contains(typeof(NaoCoo
pObjects.Interfaces.INaoCoopObject)))
{// list of nao coop elements
// list of nao coop objects are always created but sometimes
empty
// get the actual list and clear it before adding new elements
var destinationList =
destination.GetType().GetProperty(property.Name).GetValue(destination, null) as IList;
if (destinationList != null && argType != null)
{
foreach (var dbObj in (IEnumerable)value)
{

destinationList.Add(ConvertDbObjToNaoObj((NaoCoopObjects.Interfaces.INaoCoopObject)dbO
bj, argType));
}
}
}
else
{
property.SetValue(destination, value, null);
}
}
}
}
#endregion

#region NAO TO DB
protected static void CopyNaoObjectToDbObject(object source, object
destination)
{
// get the properties of the Nao Object, the Db Object has more properties
which we don't want to set
var properties = source.GetType().GetProperties(BindingFlags.Public |
BindingFlags.Instance);

foreach (var property in properties)
{
var value = property.GetValue(source, null);
Anexe

141

var argType = default(Type);
if
(property.PropertyType.GetInterfaces().Contains(typeof(NaoCoopObjects.Interfaces.INaoC
oopObject)))
{// nao coop element
// set the FK
var destinationProperty =
destination.GetType().GetProperty(string.Format("FK_{0}ID", property.Name));
if (destinationProperty != null)
{
Guid? destinationPropertyValue = value != null ?
((NaoCoopObjects.Interfaces.INaoCoopObject)value).ID : default(Guid?);
destinationProperty.SetValue(destination,
destinationPropertyValue, null);
}
}
else if (property.PropertyType.IsGenericType &&
(argType =
property.PropertyType.GetGenericArguments()[0]).GetInterfaces().Contains(typeof(NaoCoo
pObjects.Interfaces.INaoCoopObject)))
{// nothing to do for lists, they will be saved in higher level
}
else
{

destination.GetType().GetProperty(property.Name).SetValue(destination, value, null);
}
}
}
#endregion

}
}










Anexe

142

Anexa 2: NaoCoopLib Clasa executor pentru gasirea unui
NaoMark

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Aldebaran.Proxies;
using System.ComponentModel;
using System.Collections;
using NaoCoopLib.Helpers;
using System.Diagnostics;
using System.Threading;
using NaoCoopLib.Enums;

namespace NaoCoopLib.Executers
{
/// <summary>
/// Util class to search for nao mark
/// </summary>
public class FindNaoMark : IDisposable
{
#region Constants
public const float DEFAULT_ROTATION_AMOUNT = (float)Math.PI / 2;
public const float DEFAULT_MAX_ROTATION = (float)(Math.PI * 2);
public const float DEFAULT_HEAD_PITCH_STEP_AMOUNT = 0.17f;
public const float DEFAULT_HEAD_YAW_STEP_AMOUNT = (float)Math.PI / 4;
public const float DEFAULT_MAX_HEAD_YAW = ((float)Math.PI / 4) +
((float)Math.PI / 8);
private const string SUBSCRIBER_NAME = "FindNaoMark_Subscriber";
#endregion

#region Members
BackgroundWorker _findMarkWorker;
NaoConnectionHelper _connection;
#endregion

#region Properties
/// <summary>
/// Gets the mark id
/// </summary>
public int MarkID
{
get;
private set;
}

/// <summary>
/// Gets the rotation amount between two mark scans
/// </summary>
public float RotationAmount
{
get;
set;
}

/// <summary>
/// Gets the maximum robot rotation
/// </summary>
public float MaxRotation
Anexe

143

{
get;
set;
}

/// <summary>
/// Gets the head pitch step angle
/// </summary>
public float HeadPitchStepAmount
{
get;
set;
}

/// <summary>
/// Gets the head yaw step amount
/// </summary>
public float HeadYawStepAmount
{
get;
set;
}

/// <summary>
/// Gets the max head yaw
/// </summary>
public float MaxHeadYaw
{
get;
set;
}

/// <summary>
/// Gets the start look direction
/// </summary>
public LookDirection StartLookDirection
{
get;
set;
}
#endregion

#region Events
public event EventHandler<FindMarkEventArgs> NaoMarkDetected;
#endregion

#region Constructors
/// <summary>
/// Constructor
/// </summary>
/// <param name="markID">The mark id</param>
/// <param name="robotIP">The robot ip</param>
/// <param name="robotPort">The robot port</param>
/// <param name="rotationAmount">Rotation amount</param>
/// <param name="maxRotation">Max rotation</param>
/// <param name="headPitchStepAmount">Head pitch step amount</param>
/// <param name="headYawStepAmount">Head yaw step amount</param>
/// <param name="maxHeadYaw">Max head yaw</param>
/// <param name="startLookDirection">Start look direction</param>
public FindNaoMark(int markID, string robotIP, int robotPort,
float rotationAmount = DEFAULT_ROTATION_AMOUNT,
float maxRotation = DEFAULT_MAX_ROTATION,
Anexe

144

float headPitchStepAmount = DEFAULT_HEAD_PITCH_STEP_AMOUNT,
float headYawStepAmount = DEFAULT_HEAD_YAW_STEP_AMOUNT,
float maxHeadYaw = DEFAULT_MAX_HEAD_YAW,
LookDirection startLookDirection = LookDirection.Left)
: this (markID, new NaoConnectionHelper(robotIP, robotPort),
rotationAmount, maxRotation, headPitchStepAmount, headYawStepAmount, maxHeadYaw,
startLookDirection)
{
}

public FindNaoMark(int markID, NaoConnectionHelper connection,
float rotationAmount = DEFAULT_ROTATION_AMOUNT,
float maxRotation = DEFAULT_MAX_ROTATION,
float headPitchStepAmount = DEFAULT_HEAD_PITCH_STEP_AMOUNT,
float headYawStepAmount = DEFAULT_HEAD_YAW_STEP_AMOUNT,
float maxHeadYaw = DEFAULT_MAX_HEAD_YAW,
LookDirection startLookDirection = LookDirection.Left)
{
if (!connection.TestConnection(string.Empty))
{
throw new ArgumentException("Could not connect to the robot!");
}

this._connection = connection;
this.RotationAmount = rotationAmount;
this.MaxRotation = maxRotation;
this.HeadPitchStepAmount = headPitchStepAmount;
this.MarkID = markID;
this.HeadYawStepAmount = headYawStepAmount;
this.MaxHeadYaw = maxHeadYaw;
this.StartLookDirection = startLookDirection;

// initialize background worker
_findMarkWorker = new BackgroundWorker();
_findMarkWorker.DoWork += new DoWorkEventHandler(_findMarkWorker_DoWork);
_findMarkWorker.WorkerSupportsCancellation = true;
_findMarkWorker.RunWorkerCompleted += new
RunWorkerCompletedEventHandler(_findMarkWorker_RunWorkerCompleted);
}
#endregion

#region Event Handlers
/// <summary>
/// Worked completed event handler.
/// Will fire NaoMarkDetected event in case the robot found one of the mark he
is looking for.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void _findMarkWorker_RunWorkerCompleted(object sender,
RunWorkerCompletedEventArgs e)
{
if (e.Error == null && this.NaoMarkDetected!=null)
{
var result = e.Result as KeyValuePair<int, ArrayList>?;
if (result != null)
{
this.NaoMarkDetected(this, new FindMarkEventArgs(result.Value.Key,
result.Value.Value));
}
}
}
Anexe

145


/// <summary>
/// Do work event handler.
/// Turns until the robot sees a mark.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void _findMarkWorker_DoWork(object sender, DoWorkEventArgs e)
{
// reset the actual rotation
var actualRotation = 0f;

//init robot
InitRobotPosition();

// create a LandMarkDetectionProxy to start looking for marks
using (var landMarkDetectionProxy =
_connection.GetProxy<LandMarkDetectionProxy>())
{
landMarkDetectionProxy.subscribe(SUBSCRIBER_NAME, 100, -1f);

// create a MemoryProxy to read landmark information
using (var memProxy = _connection.GetProxy<MemoryProxy>())
{
// use one motion proxy
using (var motionProxy = _connection.GetProxy<MotionProxy>())
{
do
{// turn the robot 360 degrees
//// check for marks in a new thread while turning the
robot's head
//Thread checkForMarks = new Thread(delegate()
// {

// Thread.Sleep(500);
// });

var methodID = LookForMarks(motionProxy);

while (motionProxy.isRunning(methodID))
{
// get the LandmarkDetected memory
var landMarkMemory =
memProxy.getData("LandmarkDetected") as ArrayList;

if (_findMarkWorker.CancellationPending ||
(!landMarkMemory.IsNullOrEmpty() &&
(int)((ArrayList)((ArrayList)((ArrayList)((ArrayList)landMarkMemory)[1])[0])[1])[0] ==
MarkID))
{
motionProxy.stop(methodID);

if (!_findMarkWorker.CancellationPending)
{
// save the result
e.Result = new KeyValuePair<int,
ArrayList>(MarkID, ((ArrayList)((ArrayList)((ArrayList)landMarkMemory)[1])[0]));
}
}
}

}
Anexe

146

while (e.Result == null
&& !_findMarkWorker.CancellationPending && Rotate(motionProxy, ref actualRotation));
}
}

landMarkDetectionProxy.unsubscribe(SUBSCRIBER_NAME);
}

}

private void InitRobotPosition()
{
// init robot
using (var poseProxy = _connection.GetProxy<RobotPoseProxy>())
{
var curPositionAndTime = poseProxy.getActualPoseAndTime() as
ArrayList;
string curPositionStr = curPositionAndTime[0].ToString();
NAOPositions curPosition;
if (Enum.TryParse<NAOPositions>(curPositionStr, true, out
curPosition))
{
if (curPosition != NAOPositions.Stand)
{
using (var postureProxy =
_connection.GetProxy<RobotPostureProxy>())
{
var ret =
postureProxy.goToPosture(NAOPostures.Stand.ToString(), 0.5f);
if (ret == false)
{
throw new Exception("Could not initialize robot
posture.");
}
}
}

}
}
}

private int LookForMarks(MotionProxy motionProxy)
{
List<string> names = new List<string>();
List<float[]> times = new List<float[]>();
List<float[]> keys = new List<float[]>();

var time = 2f;

MotionHelper.MoveHead(motionProxy, 0f, 0f, true);
// relative
names.Add("HeadPitch");
times.Add(new[] { 2f, 4f, 9f, 19f, 21f, 26f, 28f,
38f, 43f});
keys.Add(new[] { 0.5f, 0f, 0f, 0f, 0.25f, 0.25f, 0.5f,
0.5f, 0f });

names.Add("HeadYaw");
times.Add(new[] { 2f, 4f, 9f, 19f, 21f, 26f, 28f,
38f, 43f});
keys.Add(new[] { 0f, 0f, -1f, 1f, 1f, -1f, -1f,
1f, 0f});
Anexe

147



var methodID = motionProxy.post.angleInterpolation(names, keys, times,
false);

return methodID;
}

/// <summary>
/// Method that reads the LandmarkDetected memory and extracts the landmarks
info into a dictionary
/// </summary>
/// <param name="memProxy"></param>
/// <returns></returns>
private Dictionary<int, ArrayList> TryGetLandMark(MemoryProxy memProxy)
{
Dictionary<int, ArrayList> ret = null;
try
{
// get the LandmarkDetected memory
var landMarkMemory = memProxy.getData("LandmarkDetected") as
ArrayList;

if (landMarkMemory != null)
{
var landMarks =
LandMarkHelper.Instance.GetLandMarksInfo(landMarkMemory) as ArrayList;
if (landMarks!=null)
{
ret = new Dictionary<int, ArrayList>();
foreach (var landMark in landMarks)
{
var landMarkArr = landMark as ArrayList;
if (landMarkArr != null)
{
int? markId =
LandMarkHelper.Instance.GetMarkID(landMarkArr) as int?;
if (markId.HasValue)
{
ret.Add(markId.Value, landMarkArr);
}
}
}
}
}
}
catch (Exception ex)
{
Debug.WriteLine("Coult get marks. " + ex.ToString());
}
return ret;
}

/// <summary>
/// Aligns the robot with the landmark
/// </summary>
/// <param name="motionProxy"></param>
/// <param name="markInfo"></param>
private void AlignWithMark(MotionProxy motionProxy, ArrayList markInfo)
{
// get mark shape infor
var shapeInfo = LandMarkHelper.Instance.GetShapeInfo(markInfo);
Anexe

148


// get current yaw position
var currentYawPosition = motionProxy.getAngles("HeadYaw", true);
if (!currentYawPosition.IsNullOrEmpty() && shapeInfo[1] != null)
{
// move pitch to landmark
MotionHelper.MoveHead(motionProxy, shapeInfo[2] as float?, null,
false);
// calculate robot rotation
var rotation = currentYawPosition[0] + (float)shapeInfo[1];
motionProxy.moveTo(0f, 0f, rotation);
// reset yaw
MotionHelper.MoveHead(motionProxy, null, 0f, true);
}
}

public enum LookDirection
{
Left,
Right
}

/// <summary>
/// Makes the robot look left and right
/// </summary>
/// <param name="motionProxy"></param>
/// <returns></returns>
private bool LookAround(MotionProxy motionProxy,LookDirection
startLookDirection, ref LookDirection currentLookDirection)
{
// get initial head yaw position
var initialHeadYawPositionArray = motionProxy.getAngles("HeadYaw", true);

if (initialHeadYawPositionArray.IsNullOrEmpty())
{
// should not happen
return false;
}

var initialHeadYawPosition = initialHeadYawPositionArray[0];
float maxHeadYaw, step;
float marginOfError = 0.01f;
var maxReached = false;
var directionChanged = currentLookDirection != startLookDirection;

if (currentLookDirection == LookDirection.Left)
{
maxHeadYaw = this.MaxHeadYaw;
step = this.HeadYawStepAmount;
// check if it's the last movement and ajust the step if it is
if (step + initialHeadYawPosition >= maxHeadYaw)
{
step = maxHeadYaw - initialHeadYawPosition;
}
// if it reached the maximum value we need to change the direction and
update the step
if (step - marginOfError <= 0)
{
maxReached = true;
step = -this.HeadYawStepAmount;
}
}
Anexe

149

else
{
// if it's the right direction we need to have negative values for max
and step angles
maxHeadYaw = -this.MaxHeadYaw;
step = -this.HeadYawStepAmount;
// check if it's the last movement and ajust the step if it is
if (step + initialHeadYawPosition <= maxHeadYaw)
{
step = maxHeadYaw - initialHeadYawPosition;
}
// if it reached the maximum value we need to change the direction and
update the step
if (step + marginOfError >= 0)
{
maxReached = true;
step = this.HeadYawStepAmount;
}
}

if (maxReached && directionChanged)
{
// no more movement allowed
// reset head yaw position to 0
MotionHelper.MoveHead(motionProxy, null, 0f, true);
return false;
}
else
{
MotionHelper.MoveHead(motionProxy, null, step, maxReached);
if (maxReached)
{
currentLookDirection = currentLookDirection ==
LookDirection.Left ? LookDirection.Right : LookDirection.Left;
}
return true;
}
}


private bool LookDown(MotionProxy motionProxy)
{
// get initial head pitch position
var initialHeadPitchPosition = motionProxy.getAngles("HeadPitch", true);

MotionHelper.MoveHead(motionProxy, this.HeadPitchStepAmount, null, false);

// get current pitch position
var currentHeadPitchPosition = motionProxy.getAngles("HeadPitch", true);

// return true if the current position changed
if (!initialHeadPitchPosition.IsNullOrEmpty()
&& !currentHeadPitchPosition.IsNullOrEmpty() &&
initialHeadPitchPosition[0] != currentHeadPitchPosition[0])
{
return true;
}
else
{
// reset pitch position
MotionHelper.MoveHead(motionProxy, 0f, null, true);
return false;
Anexe

150

}
}

private bool Rotate(MotionProxy motionProxy, ref float actualRotation)
{
if (actualRotation > this.MaxRotation)
{
return false;
}

motionProxy.moveInit();
motionProxy.moveTo(0f, 0f, this.RotationAmount);
actualRotation += this.RotationAmount;

return true;
}
#endregion

#region Public Methods
/// <summary>
/// Starts robot search operation
/// </summary>
public void StartSearching()
{
_findMarkWorker.RunWorkerAsync();
}

/// <summary>
/// Stops searching
/// </summary>
public void StopSearching()
{
_findMarkWorker.CancelAsync();
}

/// <summary>
/// Disposes the current object
/// </summary>
public void Dispose()
{
if (_findMarkWorker.IsBusy)
{
_findMarkWorker.CancelAsync();
}
_findMarkWorker.Dispose();

try
{
// make sure we unsubribe to the landmark detection
using (var speechRecognitionProxy =
_connection.GetProxy<SpeechRecognitionProxy>())
{
speechRecognitionProxy.unsubscribe(SUBSCRIBER_NAME);
}
}
catch { }
}
#endregion
}
}

Anexe

151

Anexa 3: NaoCoopLib Clasa executor pentru deplasarea robotului
ctre NaoMark

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using NaoCoopLib.Helpers;
using System.Collections;
using System.Threading;
using NaoCoopLib.Types;
using Aldebaran.Proxies;

namespace NaoCoopLib.Executers
{
public class WalkToNaoMark : IDisposable
{
#region Members
BackgroundWorker _walkWorker = new BackgroundWorker();
NaoConnectionHelper _robotConnectionHelper = new NaoConnectionHelper();
ArrayList _detectedMark = null;
object _lockObject = new object();
#endregion

#region Properties
/// <summary>
/// Gets the checkpoint mark information
/// </summary>
public WalkToLandMarkInfo MarkInfo
{
get;
private set;
}

/// <summary>
/// Gets the start looking direction
/// </summary>
public FindNaoMark.LookDirection StartLookDirection
{
get;
private set;
}

/// <summary>
/// Returns true if robot is busy
/// </summary>
public bool IsBusy
{
get
{
return _walkWorker.IsBusy;
}
}
#endregion

#region Events
public event EventHandler<EventArgs> WalkCompleted;
#endregion

Anexe

152

#region Constructor
/// <summary>
/// Constructor
/// </summary>
/// <param name="robotIP">Robot ip</param>
/// <param name="robotPort">Robot port</param>
/// <param name="markInfo">Checkpoint mark information</param>
/// <param name="startLookDirection">Start look direction</param>
public WalkToNaoMark(string robotIP, int robotPort, WalkToLandMarkInfo
markInfo,
FindNaoMark.LookDirection startLookDirection =
FindNaoMark.LookDirection.Left) :
this(new NaoConnectionHelper(robotIP, robotPort), markInfo,
startLookDirection)
{
}

/// <summary>
/// Constructor
/// </summary>
/// <param name="connection">Robot connection</param>
/// <param name="markInfo">Checkpoint mark information</param>
/// <param name="startLookDirection">Start look direction</param>
public WalkToNaoMark(NaoConnectionHelper connection, WalkToLandMarkInfo
markInfo,
FindNaoMark.LookDirection startLookDirection =
FindNaoMark.LookDirection.Left)
{
this.MarkInfo = markInfo;
this.StartLookDirection = startLookDirection;
this._robotConnectionHelper = connection;

if (!_robotConnectionHelper.TestConnection(string.Empty))
{
throw new ArgumentException("Could not connect to the robot!");
}

_walkWorker.DoWork += new DoWorkEventHandler(_walkWorker_DoWork);
_walkWorker.WorkerSupportsCancellation = true;
_walkWorker.RunWorkerCompleted += new
RunWorkerCompletedEventHandler(_walkWorker_RunWorkerCompleted);
}
#endregion

#region Event Handlers
/// <summary>
/// Walk do work event handler
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void _walkWorker_DoWork(object sender, DoWorkEventArgs e)
{
// set the initial head yaw step and head pitch step amount to default but
update it as it gets near to the mark
var headYawStepAmount = FindNaoMark.DEFAULT_HEAD_YAW_STEP_AMOUNT;
var headPitchStepAmount = FindNaoMark.DEFAULT_HEAD_PITCH_STEP_AMOUNT;

while (!_walkWorker.CancellationPending)
{
// clear previous detected mark
_detectedMark = null;

Anexe

153

// find mark
FindNaoMark findMark = new FindNaoMark(this.MarkInfo.MarkID,
this._robotConnectionHelper, headPitchStepAmount: headPitchStepAmount,
headYawStepAmount: headYawStepAmount, startLookDirection: this.StartLookDirection);
findMark.NaoMarkDetected += new
EventHandler<FindMarkEventArgs>(findMark_NaoMarkDetected);
findMark.StartSearching();

// wait until mark is detected
while (!_walkWorker.CancellationPending)
{
lock (_lockObject)
{
if (_detectedMark != null)
{
break;
}
}
Thread.Sleep(500);
}

// stop searching for mark
findMark.StopSearching();
findMark.Dispose();

if (!_walkWorker.CancellationPending)
{
// get camera transform
Transform cameraTransform = null;
using (var motionProxy =
_robotConnectionHelper.GetProxy<MotionProxy>())
{
cameraTransform = new
Transform(motionProxy.getTransform("CameraTop", 2, true) as List<float>);

// get mark position
var markPosition =
LandMarkHelper.Instance.GetLandMarkPosition(_detectedMark, this.MarkInfo.MarkSize,
cameraTransform);

// align with mark
AlignWithMark(motionProxy, _detectedMark);

// stop if close to mark
if (markPosition.x - 0.01 <= this.MarkInfo.StopDistance)
{
break;
}
else
{
if (markPosition.x <= 0.4)
{
headPitchStepAmount =
FindNaoMark.DEFAULT_HEAD_PITCH_STEP_AMOUNT / 4;
headYawStepAmount =
FindNaoMark.DEFAULT_HEAD_YAW_STEP_AMOUNT / 4;
}
else if (markPosition.x <= 0.6)
{
headPitchStepAmount =
FindNaoMark.DEFAULT_HEAD_PITCH_STEP_AMOUNT / 2;
headYawStepAmount =
Anexe

154

FindNaoMark.DEFAULT_HEAD_YAW_STEP_AMOUNT / 2;
}
else if (markPosition.x <= 0.8)
{
headPitchStepAmount = 3 *
FindNaoMark.DEFAULT_HEAD_PITCH_STEP_AMOUNT / 4;
headYawStepAmount = 3 *
FindNaoMark.DEFAULT_HEAD_YAW_STEP_AMOUNT / 4;
}
// advance on x
var advance = markPosition.x -
this.MarkInfo.AdvanceDistance <= this.MarkInfo.StopDistance ? markPosition.x -
this.MarkInfo.StopDistance : this.MarkInfo.AdvanceDistance;
motionProxy.moveTo(advance, 0f, 0f);
}
}
}
}
}

/// <summary>
/// Aligns the robot with the landmark
/// </summary>
/// <param name="motionProxy"></param>
/// <param name="markInfo"></param>
private void AlignWithMark(MotionProxy motionProxy, ArrayList markInfo)
{
// get mark shape infor
var shapeInfo = LandMarkHelper.Instance.GetShapeInfo(markInfo);

// get current yaw position
var currentYawPosition = motionProxy.getAngles("HeadYaw", true);
if (!currentYawPosition.IsNullOrEmpty() && shapeInfo[1] != null)
{
// move pitch to landmark
MotionHelper.MoveHead(motionProxy, shapeInfo[2] as float?, null,
false);
// calculate robot rotation
var rotation = currentYawPosition[0] + (float)shapeInfo[1];
motionProxy.moveTo(0f, 0f, rotation);
// reset yaw
MotionHelper.MoveHead(motionProxy, null, 0f, true);
}
}

/// <summary>
/// NaoMark detected event handler
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void findMark_NaoMarkDetected(object sender, FindMarkEventArgs e)
{
lock (_lockObject)
{
_detectedMark = e.MarkData;
}
}

/// <summary>
/// Walk completed event hanlder
/// </summary>
/// <param name="sender"></param>
Anexe

155

/// <param name="e"></param>
void _walkWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs
e)
{
if (this.WalkCompleted != null)
{
this.WalkCompleted(this, null);
}
}
#endregion

#region Public Methods
/// <summary>
/// Starts robots execution
/// </summary>
public void StartWalking()
{
_walkWorker.RunWorkerAsync();
}

/// <summary>
/// Stops the thread until walking is completed
/// </summary>
public void WaitUntilWalkingIsComplete()
{
while (_walkWorker.IsBusy)
{
Thread.Sleep(10);
}
}

/// <summary>
/// Stops robot execution
/// </summary>
public void StopWalking()
{
_walkWorker.CancelAsync();
}

/// <summary>
/// Disposes the current object
/// </summary>
public void Dispose()
{
if (_walkWorker.IsBusy)
{
_walkWorker.CancelAsync();
_walkWorker.Dispose();
}
}
#endregion
}
}







Anexe

156


Anexa 4: NaoCoopLib Clasa pentru sincronizarea roboilor

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using Aldebaran.Proxies;
using NaoCoopLib.Helpers;

namespace NaoCoopLib.Executers
{
/// <summary>
/// Enum containing the robot commands in the synchronization process
/// </summary>
public enum SynchronizationCommand
{
Ready,
Start,
Ok
}

/// <summary>
/// Robot synchronization executer class
/// </summary>
public class RobotSynchronization : ExecuterBase
{
#region Members
SpeechRecognition _speechRecognition;
bool _synchronized = false;
#endregion

#region Constructors
/// <summary>
/// Constructor
/// </summary>
/// <param name="ip">The robot ip</param>
/// <param name="port">The robot port</param>
public RobotSynchronization(string ip, int port)
: this(new NaoConnectionHelper(ip, port))
{
}

/// <summary>
/// Constructor
/// </summary>
/// <param name="connection">The robot connection object</param>
public RobotSynchronization(NaoConnectionHelper connection)
: base(connection)
{
// initialize members
_speechRecognition = new SpeechRecognition(connection.IP,
connection.Port);
_speechRecognition.WordRecognized += _speechRecognition_WordRecognized;
}


#endregion

#region Public
Anexe

157

/// <summary>
/// Starts robot synchronization
/// </summary>
/// <returns></returns>
public bool SynchronizeRobot()
{
this._synchronized = false;
this.Say(SynchronizationCommand.Ready.ToString());
this._speechRecognition.StartListening(new List<string>() { "Ready", "Ok",
"Start" });
while (!this._synchronized)
{
Thread.Sleep(10);
}
this._speechRecognition.StopListening();

// confirmation received, sleep to the first x5 seconds
TimeSpan span = new TimeSpan(DateTime.Now.Ticks);
var toSleep = ((60 - span.Seconds) % 5) * 1000 - span.Milliseconds;
if (toSleep <= 0) toSleep = 5000;
var totalSleep = 0;
while (this._synchronized && totalSleep < toSleep)
{
Thread.Sleep(10);
totalSleep += 10;
}
return this._synchronized;
}

/// <summary>
/// Cancells robot synchronization
/// </summary>
public void CancelSynchronization()
{
this._speechRecognition.StopListening();
this._synchronized = false;
}

/// <summary>
/// Disposes the current executer
/// </summary>
public override void Dispose()
{
this._speechRecognition.StopListening();
this._speechRecognition.Dispose();
}
#endregion

#region Private
/// <summary>
/// Word recognized event handler
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void _speechRecognition_WordRecognized(object sender,
SpeechRecognitionEventArgs e)
{
SynchronizationCommand command = SynchronizationCommand.Ok;
if (Enum.TryParse<SynchronizationCommand>(e.Word, out command))
{
switch (command)
{
Anexe

158

case SynchronizationCommand.Ready:
// sent by slave robot, means it is in lift position
// send the start command and wait for confirmation
this.Say(SynchronizationCommand.Start.ToString());
break;
case SynchronizationCommand.Start:
// sent by master robot
// send the confirmation and set the synchronized variable to
true
this.Say(SynchronizationCommand.Ok.ToString());
// allow time for the command to be received
Thread.Sleep(1000);
goto case SynchronizationCommand.Ok;
case SynchronizationCommand.Ok:
this._synchronized = true;
break;
}
}
}

/// <summary>
/// Makes robot say the specified word
/// </summary>
/// <param name="word"></param>
void Say(string word)
{
using (var tts = _connection.GetProxy<TextToSpeechProxy>())
{
tts.say(word);
}
}
#endregion

}
}















Anexe

159

Anexa 5: NaoCoopLib Clasa pentru manipularea obiectelor

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using log4net;
using log4net.Repository.Hierarchy;
using NaoCoopLib.Enums;
using NaoCoopLib.Types;
using NaoCoopObjects.Classes;

namespace NaoCoopLib
{
#region ExecutionRobotStateChangedEventArgs
public class ExecutionRobotStateChangedEventArgs : EventArgs
{
public Guid ID
{
get;
private set;
}

public string NewState
{
get;
private set;
}

public string ExecutingCommand
{
get;
private set;
}

public string RobotStatus
{
get;
private set;
}

public ExecutionRobotStateChangedEventArgs(Guid id, string newState, string
executingCommand, string robotStatus)
{
this.ID = id;
this.NewState = newState;
this.ExecutingCommand = executingCommand;
this.RobotStatus = robotStatus;
}
}
#endregion

/// <summary>
/// Class used to manipulate robot executions
/// </summary>
public class NaoCoopRobotExecutionEngine
{
#region Properties
/// <summary>
/// Gets the current execution list
/// </summary>
Anexe

160

public Dictionary<Execution, List<NaoCoopRobot>> CurrentExecutionList
{
get;
private set;
}

/// <summary>
/// Gets the logger
/// </summary>
public ILog Logger
{
get;
private set;
}
#endregion

#region Events
/// <summary>
/// Triggered when a robot state changed
/// </summary>
public event EventHandler<ExecutionRobotStateChangedEventArgs>
RobotStateChanged;
/// <summary>
/// Triggered when an execution status changed
/// </summary>
public event EventHandler ExecutionStatusChanged;
#endregion

#region Constructor
/// <summary>
/// Constructor
/// </summary>
/// <param name="logger">the application logger</param>
public NaoCoopRobotExecutionEngine(ILog logger)
{
this.CurrentExecutionList = new Dictionary<Execution,
List<NaoCoopRobot>>();
this.Logger = logger;
}
#endregion

#region Methods

#region Validation
/// <summary>
/// Validates the NaoCoopObject Execution.
/// Throws exception on errors.
/// </summary>
/// <param name="execution">The NaoCoopObject Execution object to be
validated</param>
public void ValidateExecution(Execution execution)
{
this.ValidateExecution(execution, null);
}

private void ValidateExecution(Execution execution, List<NaoCoopRobot>
naoRobots)
{
if (execution == null || execution.Operation == null ||
execution.ExecutionRobots.Count == 0)
{
throw new ArgumentException("Invalid execution: missing execution,
Anexe

161

operation or execution robots!");
}

if (naoRobots == null)
{
naoRobots = new List<NaoCoopRobot>();
}

#region Validate Robots
// validate the number of robots
if (execution.Operation.OperationRobots.Count !=
execution.ExecutionRobots.Count)
{
throw new Exception("The number of operation robots does not match the
number of execution robots!");
}

var validatedRobots = new Dictionary<ExecutionRobot, OperationRobot>();
// validate operation robots with execution robots
foreach (var operationRobot in execution.Operation.OperationRobots)
{
// check if operation robot version matches at lease one
foreach (var executionRobot in
execution.ExecutionRobots.Except(validatedRobots.Keys))
{
if
(operationRobot.RobotVersion.Equals(executionRobot.Robot.RobotVersion))
{
validatedRobots.Add(executionRobot, operationRobot);
break;
}
}
}

if (execution.ExecutionRobots.Except(validatedRobots.Keys).Count() != 0)
{
throw new Exception("The execution robots provided do not match the
operation robots requirements!");
}
#endregion

#region Validate States and Tasks
foreach (var robot in validatedRobots)
{
NaoCoopRobot naoRobot = new NaoCoopRobot(robot.Key.Robot.IP,
robot.Key.Robot.Port, this.Logger, robot.Key.ID);
naoRobots.Add(naoRobot);
foreach (var robotState in
robot.Value.OperationRobotStates.OrderBy(s=>s.Order))
{
NaoState naoState;
if (Enum.TryParse<NaoState>(robotState.State.Type, out naoState))
{
naoRobot.StateCommands.Add(naoState, new
OrderedDictionary<NaoCommand, Dictionary<string, string>>());
foreach (var stateTask in
robotState.State.StateTasks.OrderBy(t => t.Order))
{
NaoCommand naoCommand;
if (Enum.TryParse<NaoCommand>(stateTask.Task.Type, out
naoCommand))
{
Anexe

162

naoRobot.StateCommands[naoState].Add(naoCommand, new
Dictionary<string, string>());
foreach (var setting in stateTask.Task.Settings)
{
if
(naoRobot.StateCommands[naoState][naoCommand].ContainsKey(setting.Name))
{

naoRobot.StateCommands[naoState][naoCommand][setting.Name] = setting.Value;
}
else
{

naoRobot.StateCommands[naoState][naoCommand].Add(setting.Name, setting.Value);
}
}
}
else
{
// invalid task specified
throw new Exception(string.Format("The specified task
'{0}' of type '{1}' is not supported. Supported tasks: {2}", stateTask.Task.Name,
stateTask.Task.Type, string.Join(", ", Enum.GetNames(typeof(NaoCommand)))));
}
}
}
else
{
// invalid state specified
throw new Exception(string.Format("The specified state '{0}'
of type '{1}' is not supported. Supported states: {2}", robotState.State.Name,
robotState.State.Type, string.Join(", ", Enum.GetNames(typeof(NaoState)))));
}
}
}
#endregion
}
#endregion

/// <summary>
/// Starts an execution and all of its robots
/// </summary>
/// <param name="execution"></param>
public void Start(Execution execution)
{
Start(execution, execution.ExecutionRobots.Select(r => r.ID).ToArray());
}

/// <summary>
/// Stars the specified robots of the specified execution
/// </summary>
/// <param name="execution">The execution to start</param>
/// <param name="robotIDs">The robots of the execution to start</param>
public void Start(Execution execution, params Guid[] robotIDs)
{
// check if execution is already started
var currentExecution = this.CurrentExecutionList.Keys.FirstOrDefault(e =>
e.ID.Equals(execution.ID));
if (currentExecution != null && currentExecution.Status !=
ExecutionStatus.Started)
{
// invalid call, the start should be called on the new execution or on
Anexe

163

a started execution for a specified robot
throw new Exception("Invalid call.");
}

if (currentExecution==null)
{
// call the validate method to generate the nao robot object
var naoCoopRobots = new List<NaoCoopRobot>();
// validate execution
this.ValidateExecution(execution, naoCoopRobots);
// subscribe to state changed for each robot
foreach (var robot in naoCoopRobots)
{
//robot.RobotStateChanged += robot_RobotStateChanged;
robot.RobotExecutingCommandChanged += robot_RobotStateChanged;
}
// add it to the list
this.CurrentExecutionList.Add(execution, naoCoopRobots);
// update status and start execution
execution.Status = ExecutionStatus.Started;
if (ExecutionStatusChanged != null)
{
ExecutionStatusChanged(execution, null);
}
execution.DateStarted = DateTime.Now;
}

if (robotIDs != null)
{
foreach (var robotId in robotIDs)
{
var robot = this.CurrentExecutionList[execution].FirstOrDefault(r
=> r.ID.Equals(robotId));
if (robot != null)
{
robot.Start();
}
}
}
}

void robot_RobotStateChanged(object sender, EventArgs ea)
{
var robot = sender as NaoCoopRobot;

// find which execution this robot belongs to
var execution = CurrentExecutionList.FirstOrDefault(e =>
e.Value.FirstOrDefault(r => r == robot) != null);

if (!execution.Equals(default(KeyValuePair<Execution,
List<NaoCoopRobot>>)))
{
// fire robot state changed event
if (RobotStateChanged != null)
{
RobotStateChanged(execution.Key, new
ExecutionRobotStateChangedEventArgs(robot.ID, robot.CurrentState.ToString(),
robot.CurrentExecutingCommand.ToString(), robot.Status.ToString()));
}

// check if all robots finished
if (execution.Value.All(r => r.Status == RobotStatus.Finished))
Anexe

164

{
execution.Key.Status = ExecutionStatus.Completed;
execution.Key.DateEnded = DateTime.Now;

// remove the execution from the list and fire event
CurrentExecutionList.Remove(execution.Key);

if (ExecutionStatusChanged != null)
{
ExecutionStatusChanged(execution.Key, null);
}
}
}
}

/// <summary>
/// Pauses an execution
/// </summary>
/// <param name="execution">The execution to pause</param>
public void Pause(Execution execution)
{
Pause(execution, execution.ExecutionRobots.Select(r => r.ID).ToArray());
}

/// <summary>
/// Pauses the specified robots of the specified execution
/// </summary>
/// <param name="execution">The execution to pause</param>
/// <param name="robotIDs">The robots of the execution to pause</param>
public void Pause(Execution execution, params Guid[] robotIDs)
{
// check if execution is already started
var currentExecution = this.CurrentExecutionList.Keys.FirstOrDefault(e =>
e.ID.Equals(execution.ID));
if (currentExecution == null || currentExecution.Status !=
ExecutionStatus.Started)
{
throw new Exception("Missing or invalid execution status!");
}

if (robotIDs != null)
{
foreach (var robotId in robotIDs)
{
var robot =
this.CurrentExecutionList[currentExecution].FirstOrDefault(r => r.ID.Equals(robotId));
if (robot != null)
{
robot.Pause();
}
}
}

// change the state to paused only if all robots are paused
if (this.CurrentExecutionList[currentExecution].All(r => r.Status ==
RobotStatus.Paused))
{
currentExecution.Status = ExecutionStatus.Paused;
if (ExecutionStatusChanged != null)
{
ExecutionStatusChanged(execution, null);
}
Anexe

165

}
}

/// <summary>
/// Resumes and execution and all of its robots
/// </summary>
/// <param name="execution">The execution to resume</param>
public void Resume(Execution execution)
{
Resume(execution, execution.ExecutionRobots.Select(r => r.ID).ToArray());
}

/// <summary>
/// Resumes the sepcified robots of the specified execution
/// </summary>
/// <param name="execution">The execution to resume</param>
/// <param name="robotIDs">The robots of the execution to resume</param>
public void Resume(Execution execution, params Guid[] robotIDs)
{
// check if execution is already started
var currentExecution = this.CurrentExecutionList.Keys.FirstOrDefault(e =>
e.ID.Equals(execution.ID));
if (currentExecution == null)
{
throw new Exception("Missing or invalid execution!");
}

if (robotIDs != null)
{
foreach (var robotId in robotIDs)
{
var robot =
this.CurrentExecutionList[currentExecution].FirstOrDefault(r => r.ID.Equals(robotId));
if (robot != null && robot.Status == RobotStatus.Paused)
{
robot.Resume();
}
}
}

// change the state to resumed if there is at least one robot running
if (this.CurrentExecutionList[currentExecution].Any(r => r.Status ==
RobotStatus.Running))
{
currentExecution.Status = ExecutionStatus.Started;
if (ExecutionStatusChanged != null)
{
ExecutionStatusChanged(execution, null);
}
}
}

/// <summary>
/// Stops an execution and all of is robots
/// </summary>
/// <param name="execution">The execution to stop</param>
public void Stop(Execution execution)
{
var currentExecution = this.CurrentExecutionList.Keys.FirstOrDefault(e =>
e.ID.Equals(execution.ID));
if (currentExecution == null)
{
Anexe

166

throw new Exception("Execution does not exist!");
}

// refresh the execution from the loaded variable
currentExecution = execution;

// stop and dispose each robot object
foreach (var robot in this.CurrentExecutionList[execution])
{
robot.Stop();
robot.Dispose();
}

// update date and status
execution.Status = ExecutionStatus.Failed; // manually stopped
if (ExecutionStatusChanged != null)
{
ExecutionStatusChanged(execution, null);
}
execution.DateEnded = DateTime.Now;
}
#endregion
}
}







Anexe

167

Anexa 6: NaoCoopLib Clasa pentru executarea comenzilor

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Aldebaran.Proxies;
using NaoCoopLib.Enums;
using NaoCoopLib.Executers;
using NaoCoopLib.Helpers;
using NaoCoopLib.Types;

namespace NaoCoopLib
{
/// <summary>
/// Internal class for executing commands
/// </summary>
internal class NaoCoopCommandExecutionEngine : IDisposable
{
#region Members
RobotSynchronization _robotSynch;
WalkToNaoMark _walkToNaoMark;
ObjectHandlingExecuter _objectHandlingExecuter;
NaoConnectionHelper _connection;
#endregion

#region Constructor
/// <summary>
/// Constructor
/// </summary>
/// <param name="connection">Connection object</param>
public NaoCoopCommandExecutionEngine(NaoConnectionHelper connection)
{
this._connection = connection;
this._robotSynch = new RobotSynchronization(connection);
this._objectHandlingExecuter = new ObjectHandlingExecuter(connection);
}

#endregion

#region Methods
#region Public
/// <summary>
/// Executes the specified command
/// </summary>
/// <param name="command"></param>
/// <param name="commandParameters"></param>
public void Execute(NaoCommand command, Dictionary<string, string>
commandParameters)
{
switch (command)
{
case NaoCommand.GoToGrabLocation:
GoToGrabLocation();
break;
case NaoCommand.GoToLiftPosition:
break;
case NaoCommand.SynchRobot:
break;
case NaoCommand.WalkToCheckpoint:
Anexe

168

break;
case NaoCommand.WalkWithObject:
break;
}
System.Threading.Thread.Sleep(1000);
}

/// <summary>
/// Pauses the specified command
/// </summary>
/// <param name="command"></param>
public void Pause(NaoCommand command)
{
switch (command)
{
case NaoCommand.GoToGrabLocation:
if (this._walkToNaoMark != null)
{
this._walkToNaoMark.StopWalking();
}
break;
case NaoCommand.WalkWithObject:
_objectHandlingExecuter.StopWalking();
break;
case NaoCommand.SynchRobot:
this._robotSynch.CancelSynchronization();
break;
}
}

/// <summary>
/// Disposes the specified command
/// </summary>
public void Dispose()
{
if (_robotSynch != null)
{
_robotSynch.Dispose();
}
_connection = null;
if (_objectHandlingExecuter != null)
{
_objectHandlingExecuter.Dispose();
}
if (_walkToNaoMark != null)
{
_walkToNaoMark.Dispose();
}
}
#endregion

#region Private
private void GoToGrabLocation()
{
GrabLocationInfo locationInfo = new
GrabLocationInfo(Enums.GrabLocation.A);
this._objectHandlingExecuter.GoToGrabLocation(locationInfo);
}

private void WalkToMark()
{
WalkToLandMarkInfo walkToMark = new WalkToLandMarkInfo(0, 0);
Anexe

169

if (this._walkToNaoMark != null)
{
this._walkToNaoMark.StopWalking();
this._walkToNaoMark.Dispose();
}
this._walkToNaoMark = new WalkToNaoMark(this._connection, walkToMark);
this._walkToNaoMark.StartWalking();
this._walkToNaoMark.WaitUntilWalkingIsComplete();
this.Say("Checkpoint");
}

private void GoToLiftPosition()
{
this._objectHandlingExecuter.GoToLiftPosition();
}

private void SynchronizeRobot()
{
this._robotSynch.SynchronizeRobot();
}

private void WalkWithObject()
{
this._objectHandlingExecuter.WalkWithObject();
}

private void LiftObject()
{
if (this._robotSynch.SynchronizeRobot())
{
this._objectHandlingExecuter.LiftObject();
}
}

private void Say(string word)
{
using (var tts = _connection.GetProxy<TextToSpeechProxy>())
{
tts.say(word);
}
}
#endregion

#endregion


}
}



REZUMAT

Prezenta tez de doctorat are ca scop mbuntirea lucrului n echipele de roboi
pitori ce i execut activitile n mediile industriale, fiind propus n acest sens
implementarea i folosirea atributului uman de cooperare. Este conceput, dezvoltat i
implementat un sistem inteligent de cooperare pentru roboii mobili pitori din medii
industriale specific operaiilor de manipulare, care au la baz tehnici de nvare a secvenelor
componente i algoritmi de planificare a acestora. Tehnica elaborat pentru planificarea
secvenelor elementare nvate folosete reguli de producie stocate n baza de cunotiine
pentru a soluiona problema de alocare a secvenelor n cadrul unei echipe de roboi pitori
ce lucreaz prin cooperare pentru execuia unei operaii complexe. Algoritmul de nvare al
acestui sistem a fost corelat i dezvoltat conform caracteristicilor roboilor pitori astfel c
pentru secvenele de manipulare s-a optat pentru tehnica de nvare prin demonstrare. Sunt
dezvoltate de asemenea dou module de comunicare i de sincronizare a roboilor pitori din
cadrul echipei ce execut operaii n mediul industrial. n lucrare este prezentat o interfa de
control a sistemului dezvoltat care permite operatorului s trimit cereri la echipa de roboi,
care are ca scop transmiterea de informaii la sistemul de comand i control al echipei de
roboi. n scopul validrii, funcionarea sistemului inteligent a fost testat pentru cazuri
specifice de manipulare a obiectelor att n mediul virtual, ct i cel real, utiliznd o echip
format din doi roboi pitori Nao, iar rezultatele au fost analizate i interpretate.


ABSTRACT

This thesis aims to improve walking robots working in teams that perform their activities in
industrial environments , highlighting the implementation and use of the "cooperation"
human attribute. It is designed and implemented an intelligent system of cooperation for
mobile robots from industrial environments, handling operations that are based on learning
techniques of sequence components and their scheduling algorithms. The technique
developed for learned elementary planning sequences is using production rules stored in the
database and solves the problem of sequence allocation in a team of walking robots
cooperating to execute complex operations. The learning algorithm of this system was
developed according to the characteristics of the walking robots thus for the manipulation
sequences the chosen technique to be used was the technique of learning by demonstration.
Also, two modules are developed: communication and synchronization of walking robots on
the team that performs operations in the industrial environment. The thesis also presents a
user interface that controls the developed system and allows the operator to send requests to
the team of robots. In order to validate the intelligent system specific cases of manipulating
objects were tested in both virtual and the real environments, using a team of two Nao robots,
and the results were analyzed and interpreted.



Curriculum Vitae


Nume: ALINA NINETT PANFIR
Data i locul naterii: 17 Mai 1985, Braov, jud. Braov
Naionalitate: Romn
Adres: Calea Bucureti, nr. 46, Braov, Romnia
E-mail: alina.panfir@unitbv.ro; aly_ninett@yahoo.com


Studii:
Octombrie, 2010 Septembrie, 2013, Universitatea Transilvania din Braov, Facultatea
de Design de Produs i Mediu, Centrul de Cercetare: Informatic Virtual Industrial i
Robotic (D10): Program de cercetare tiinific, Titlul tezei de doctorat Sistem
inteligent de cooperare a roboilor mobili pitori n medii industriale.
Octombrie, 2005 Iunie, 2009, Universitatea Transilvania din Braov, Facultatea de
Inginerie Electric i tiina Calculatoarelor, Secia Telecomunicaii.
Septembrie 2000 Iunie, 2004 Colegiul Naional de Informatic Grigore Moisil,
Braov

Experien profesional:
August 2013- prezent, programator, Waters Romnia, Braov.
2006 - 2011 , Administrator de resurse umane, S.C. VALCAB S.R.L., Braov.

Cunotine n domeniul tiintelor inginereti i al calculatoarelor:
Limbaje de programare: .NET (C#), C/C++, Java, PHP, HTML/CSS
Proiectare i simulare: Matlab Simulink, Webots, Labview
Programe editare: Microsoft Office, Photoshop

Activitate tiinific:
11 lucrri n proceedings-uri ISI i IEEE (10 indexate ISI, 1 indexat BDI) ale unor
conferine internaionale (6 ca prim autor)
participare la conferine internaionale n Portugalia, Spania,Frana i Romania
stagiu de cercetare n cadrul institutului Fraunhofer, Stuttgart, Germania

Limbi strine:
Englez avansat
Spaniol mediu
Francez nceptor










Curriculum Vitae


Name: ALINA NINETT PANFIR
Date and birth place: 17 May 1985, Braov
Nationality: Romanian
Adress: Calea Bucureti, nr. 46, Braov, Romnia
E-mail: alina.panfir@unitbv.ro; aly_ninett@yahoo.com


Studies:
October 2010 - September, 2013, Transilvania University of Brasov, Faculty of Product
Design and Environment, Research Center: Virtual Industrial Informatics and Robotics
(D10): Program of scientific research. Thesis title: Intelligent mobile robots cooperation
system in industrial environments.
October 2004 - July, 2009, Transivalia University of Brasov, Electrical Engineering and
Computer Science Faculty, Bachelor Degree: Telecommunication
September 2000 June, 2004 National College of Informatics Grigore Moisil, Braov

Professional experience:
August 2013 - Present, developer ,Waters Romania, Braov.
2006 - 2011 , administrator, S.C. VALCAB S.R.L., Braov.

Engineering and computer science skills:
Programming Languages: .NET (C#), C/C++, Java, PHP, HTML/CSS
Design and Simulation: Matlab Simulink, Webots, Labview
Editing Software: Office, Photoshop

Publications:
11 proceedings papers (10 indexed ISI, 1 indexed in International Databases) at
international conferences (6 first author)
participation at international conferences in Portugal, France, Spain and Romania
research internship within Franhopher Institute, Suttgart, Germany

Languages:
English advanced
Spanish medium
French beginner

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