Sunteți pe pagina 1din 40

Universitatea Politehnică Bucureşti

Facultatea de Automatică şi Calculatoare


Departamentul de Automatică şi Ingineria Sistemelor

LUCRARE DE LICENŢĂ
Controlul vizual al roboţilor industriali folosind
informaţii de la o singură cameră video

Absolvent
Nedelciu Alina Liliana

Coordonator
SL dr.ing. Florin ANTON

Bucureşti, 2016
CUPRINS

1. Introducere 3
2. Arhitectura unui sistem robot-vedere artificială 5
2.1 Robotul industrial 5
2.2 Sistemul de vedere artificială 7
2.2.1 Reprezentarea numerică a imaginilor 9
2.2.2 Modelul perspectivă al camerei 10
3. Calibrarea camerei 13
4. Calibrarea cameră-robot 16
4.1 Formalismul matematic pentru calculul parametrilor scenei 16
4.2 Cameră staţionară, privind în jos 22
4.2.1 Ghidarea vizuală a robotului de la o cameră staţionară 24
4.3 Cameră mobilă, montată pe braţul robot 26
4.3.1 Ghidarea vizuală a robotului de la o cameră montată pe braţ 27
5. Transformarea referinţelor cameră-robot în referinţe robot-robot 29
5.1 Accesul la o resursa comună 29
5.2 Integrarea unui sistem de transport 32
6. Prezentarea aplicaţiei 37
7. Concluzii şi planuri de viitor 39

2
1. Introducere
În sistemele moderne de fabricaţie, există o nevoie puternică pentru tehnici avansate de
detectare, recunoaştere şi manipulare a obiectelor, şi pentru capacitatea de a realiza operaţiuni
structurate de asamblare în condiţiile în care obiectele vizate se află în mişcare pe o bandă
conveioare. Domeniul roboţilor bazaţi pe vedere artificială, care a fost un subiect de interes în
cercetare timp de aproape patru decenii, a ajuns în prezent într-un punct care permite aplicarea
cu succes a vederii artificiale în sisteme avansate de asamblare precum şi în controlul calităţii
asistat.

Roboţii tradiţionali folosiţi în industrie sunt programaţi să manipuleze obiecte dintr-o


locaţie predefinită, învăţată anterior, iar orice modificare minoră a poziţiei piesei conduce la
eşecul robotului în a prinde obiectul. Introducerea unui sistem de vedere artificială în celulele
de fabricaţie aduce avantaje semnificative. Un rol important în creşterea fiabilităţii şi a
performanţelor sistemelor automatizate flexibile revine sistemelor vizuale. Acestea au în
componenţă o cameră video care captează imaginea, o converteşte în informaţie digitală, apoi
se analizează informaţiile obţinute utilizând un program software pentru automatizarea
deciziilor de control de tip localizare a reperelor, identificarea şi recunoaşterea caracteristicilor
acestora, efectuarea de măsurători în vederea ghidării robotului.

Folosirea roboţilor ghidaţi vizual pentru manipularea eficientă a materialelor, pieselor


şi subansamblelor în cadrul proceselor de fabricaţie reduce multe dintre costurile de producţie
a sectoarelor de fabricaţie, contribuind la creşterea calităţii şi a serviciilor. Avantajul esenţial al
roboţilor ghidaţi vizual constă în adaptabilitatea si flexibilitatea lor fără efectuarea de schimbări
majore la nivelul amplasării echipamentelor sau al fluxurilor materiale. Astfel, se pot executa
operaţii directe de montaj a unor obiecte de dimensiuni variabile, ce se deplasează pe un
conveior. Roboţii ghidaţi vizual pot manipula o varietate de obiecte în ordine aleatorie, pot fi
reprogramaţi pentru a manipula noi repere, pe noi rute de fabricaţie, sau pot manipula, într-o
secvenţă predeterminată, o grupă de piese bine definită. Computerul este cel care asigură
integrarea sistemului de vedere în sistemul global de producţie.

Lucrarea de faţă propune realizarea unui mecanism de referenţiere multirobot, în


contextul în care, din anumite motive, un sistem format din doi sau mai mulţi roboţi necesită
integrarea unui sistem de vedere pentru aplicaţii prin intermediul cărora trebuiesc manipulate
diferite tipuri de obiecte, însă sistemul dispune doar de o singură cameră video.

De exemplu, să presupunem că într-o celulă de fabricaţie dotată cu mai multe posturi de


lucru, sunt transportate pe o bandă obiecte cu diverse forme, iar la fiecare post de lucru, robotul
trebuie să prelucreze un anumit tip de obiect. Problema ar putea fi uşor rezolvată prin integrarea
unui sistem de vedere fiecărui post de lucru, însă uneori, această abordare poate fi costisitoare,
având în vedere faptul că, de cele mai multe ori, integrarea unui sistem vizual poate fi mai
costisitoare decât sistemul robot, iar pe lângă acest lucru, dotarea cu astfel de echipamente la
fiecare post de lucru poate fi nejustificată în raport cu complexitatea aplicaţiilor ce vor fi
implementate.

În acest sens, se doreşte implementarea unui algoritm prin care, având la dispoziţie un
singur post de lucru ce are integrat un sistem de vedere artificială, acesta să efectueze toate
operaţiile de vedere necesare, iar pe baza informaţiilor vizuale rezultate, ceilalţi roboţi din
sistem să poată avea acces la aceastea în vederea realizării operaţiunilor de manipulare.

Lucrările de specialitate au abordat o problemă relativ asemănătoare, însă doar în cazul


aplicaţiilor ce necesită coordonarea şi cooperarea a doi roboţi ce manipulează simultan un

3
obiect. Un exemplu tipic îl reprezintă aplicaţiile în care roboţii asamblează două componente
formând un singur produs. (J. Gudino-Lau, 2006)

Astfel, pentru doi roboţi industriali cooperativi având 6 grade de libertate, o metodă de
de referenţiere prezentată în lucrări de specialitate, este bazată pe o serie de mişcări de „bataie
din palme” între cei doi roboţi, preluând informaţiile de poziţie articulaţiilor corespunzătoare
pentru aceste mişcări. Pe baza acestor date şi prin set de algoritmi de calcul se realizează
referenţierea între cei doi roboţi. Procedura este una simplă, dar eficientă şi fezabilă în domeniul
industrial. (G. Yahui, 2011)

O altă metodă de calibrare a unui sistem de doi roboţi cooperativi propusă este bazată
pe o transformare liniară directă şi două camere video industriale. Fără a cunoaşte informaţiile
de montare a camerelor, metoda propusă foloseşte doar o serie de mişcări de la fiecare
manipulator. Prin detectarea mişcării cu ajutorul camerelor, se pot cunoaşte poziţiile roboţilor
cooperativi în spaţiul de lucru.

Totuşi, problema controlului vizual bazat pe o singură cameră video în cadrul unei
celule de fabricaţie nu a fost abordat în lucrări de specialitate până în momentul de faţă. Astfel,
în continuare, va fi prezentată o metodă ce poate rezolva această problemă.

4
2. Arhitectura unui sistem robot-vedere artificială
În general, un sistem robot-vedere artificială este alcătuit din următoarele elemente:

 Cameră video matriceală;


 Terminal robot;
 Mediu software de analiză a imaginilor – AdeptSight;
 Sistem de iluminare;
 Platforma PC;

2.1 Robotul industrial


În figura 2.1 este prezentată configuraţia unui robot SCARA (Selective Compliant
Articulated Robot Arm) iar figura 1.2 ilustrează spaţiul de lucru asociat. Acest tip de robot are
2 articulaţii de rotaţie şi una de translaţie, fiind articulat în planul 𝑋𝑌. Robotul SCARA permite
realizarea operaţiilor de asamblare, datorită mişcării verticale a celei de-a treia axe (Borangiu,
Dumitrache, & Anton, Programarea roboţilor, 2010). Spaţiul de lucru este de formă cilindrică,
iar controlul în planul 𝑋 − 𝑌 este neliniar. Braţul robotic dispune de un sistem de control de tip
servo pentru a furniza informaţii de poziţie şi viteză în vederea poziţionării articulaţiilor într-un
unghi dorit.
În plus, controller-ul robotului, permite conectatarea de intrări şi ieşiri digitale pentru
achiziţia datelor de la senzori şi precum şi posibilitatea de control a altor echipamente. Robotul
este proiectat pentru acţionarea directă, având un volum mare de lucru şi o sarcină utilă de 9
kilograme. Spaţiul de lucru poate fi extins de la 230 mm la 800 mm, de la baza robotului în
planul 𝑋 − 𝑌, şi 470 mm în direcţia 𝑍, de sus în jos. Acest spaţiu de lucru mare şi capacitatea
de rotaţie permite localizarea obiectelor în locaţii multiple.

Figura 2.1 Structura unui robot SCARA


Controller-ul ce comandă robotul rulează sistemul de operare de timp real 𝑉 + . Acesta
este un sistem software multitasking de control şi un mediu de programare structurată, ce a fost
proiectat a fi utilizat cu roboţi industriali Adept Technology şi sisteme de vedere artificială.
(Borangiu, Dumitrache, & Anton, Programarea roboţilor, 2010)

5
Figura 2.2 Spaţiul de lucru al robotului
Deplasarea robotului în aplicaţiile ce folosesc vederea artificială se bazează pe câteva
sisteme de coordonate cu ajutorul cărora se stabilesc mişcările în spaţiul de lucru. Fiecare sistem
de coordonate are propriul rol şi oferă informaţii individuale în timpul procesului de lucru.
Toate mişcările robotului sunt bazate pe sisteme de coordonate şi pe variabile de tip
transformări. Variabilele de locaţie descriu în mod unic un punct în spaţiul cartezian, împreună
cu orientarea efectorului terminal. Există două tipuri de sisteme de coordonate esenţiale ce vor
fi descrise în continuare.
Sistemul de coordonate World este principalul cadru de referinţă al manipulatorului,
având originea în baza robotului, iar direcţiile axelor fixate în spaţiu. Axa 𝑍 este orientată în
sus prin mijocului coloanei robotului, axa 𝑋 indică înainte, înafara robotului, iar privind robotul
din faţă, axa 𝑌 este orientată de la stânga la dreapta. Dacă în aplicaţie nu este specificat, toate
mişcările vor fi definite relativ la acest cadru. În multe situaţii, nu este suficient ca poziţiile să
fie bazate doar pe sistemul de coordonate World, iar în acest caz poate fi mai uşor de definit o
mişcare relativ la un sistem de coordonate secundar. În acest scop, se folosesc sistemele de
coordonate relative la sistemul World, ceea ce oferă mai multă flexibilitate în comparaţie cu
sistemul de coordonate absolut World.

Figura 2.3 Sistemul de coordonate World

6
O variabilă de locaţie conţine toate informaţiile necesare deplasării robotului. Toate
poziţiile relevante în cadrul unei aplicaţii sunt generate şi stocate în aceste variabile. În
general, variabilele de locaţie sunt descrise de transformări. O transformare identifică în mod
unic o locație (poziţia şi orientarea în spaţiul cartezian) a efectorului terminal şi reprezintă un
set de şase componente: x, y, z, yaw, pitch, roll. Atunci când o transformare este definită, un
sistem de referință local este creat având coordonatele 𝑥, 𝑦, 𝑧 , cu cele 3 axe locale paralele cu
sistemul de coordonate World. Primele 3 componente ale transformării reprezintă poziţia în
spaţiu, iar cele 3 din urmă descriu orientarea efectorului terminal.
În controller-ul robot, transformările sunt reprezentate prin matrici omogene (HTM –
Homogeneous Transformation Matrix), de dimensiune 4 X 4, cu structura:
𝑟11 𝑟12 𝑟13 𝑥
𝑟21 𝑟22 𝑟23 𝑦
𝐻=[ ] (2.1)
𝑟31 𝑟32 𝑟33 𝑧
0 0 0 1
Submatricea de dimensiune 3 × 3 din colţul stânga sus din relaţia 2.1 este componenta
de rotaţie, dată de unghiurile yaw, pitch şi roll, iar submatricea 3 × 1 din dreapta sus reprezintă
componenta de translaţie a matricii de transformare omogenă. Formula de calcul a matricii de
rotaţie descrise de yaw, pitch şi roll este:
𝑟11 𝑟12 𝑟13
𝑅𝑦𝑝𝑟 𝑟
= [ 21 𝑟22 𝑟23 ] = 𝑅𝑍 (𝑦𝑎𝑤) ∙ 𝑅𝑌 (𝑝𝑖𝑡𝑐ℎ) ∙ 𝑅𝑍 (𝑟𝑜𝑙𝑙) (2.2)
𝑟31 𝑟32 𝑟33
unde 𝑅𝑍 , 𝑅𝑌 , 𝑅𝑍 sunt matrici ce descriu rotaţiile elementare date de unghiurile yaw, pitch şi roll:
1 0 0 𝑐 0 𝑠 𝑐 −𝑠 0
𝑅𝑋 (𝛼) = [0 𝑐 −𝑠] , 𝑅𝑌 (𝛼) = [ 0 1 0] , 𝑅𝑋 (𝛼) = [ 𝑠 𝑐 0] (2.3)
0 𝑠 𝑐 −𝑠 0 𝑐 0 0 𝑐1
unde 𝑠 = sin 𝛼 ş𝑖 𝑐 = cos 𝛼.
Atunci când o locaţie este înregistrată, din punct de vedere fizic, ea reprezintă centrul
flanşei de montare a sculei. Practic, mişcarea robotului este bazată pe locaţia flanşei. Atunci
când braţului robot i se va instala un efector terminal, punctul condus este asociat centrului
gripperului. Toate mişcările efecuate în spaţiul de lucru prespun, de fapt, conducerea efectorului
terminal într-o locaţie specificată.

2.2 Sistemul de vedere artificială


Înainte ca un sistem de vedere să poate fi aplicat pentru a gestiona un obiect, este
necesară captarea imagini obiectului, sarcină ce este efectuată de o cameră video. În majoritatea
aplicaţiilor care implică ghidarea vizuală a roboţilor, se folosesc camere video monocrome, dat
fiind faptul că imaginile monocrome furnizează 90% din datele vizuale disponibile în spaţiul
de lucru. (Borangiu, Intelligent Image Processing in Robotics and Manufacturing, 2004)

O cameră video nu numai că poate fi folosită pentru captarea imaginii, dar poate fi, de
asemenea, utilizată pentru a îmbunătăţii abilitatea robotului. Deoarece obiectivul sistemului
robot este de a asista utilizatorul pentru a efectua sarcini într-un mod mai rapid şi mai precis,
sporind capacitatea unui robot convenţional, se extinde astfel şi gama de abilităţi. În plus, prin
7
analiza imaginii, un robot poate depăsi unele erori de orientare şi poziţionare a obiectelor pe
care le gestionează. Din moment ce senzorul vizual este folosit ca să „vadă”, este necesar a se
întelege structura şi funcţia acestuia. De obicei, camera video este compusă din patru părţi de
bază. Fiecare parte efectuează o sarcină diferită în timpul achiziţiei de imaginii, iar apoi sunt
combinate pentru a da naştere unei „vederi” complete. Aceste patru părţi sunt: corpul camerei
video, lentila, cip CCD (Charge Coupled Devices) şi placa de captură video.

Corpul camerei video reprezintă camera în sine, fără echipament, şi este utilizată pentru
vederea artificială. Aceasta este folosită pentru a contrui o secvenţă completă de achiziţie de
imagine. Atunci când lumina pătrunde în camera video şi trece prin lentila montată în faţa
corpului camerei, fiecare element fotosensibil ce se află în interiorul corpului camerei, poate fi
privit ca o capacitate individuală care, în funcţie de intensitatea luminii, acumulează o sarcină
mai mică sau mai mare. După ce au fost create şi înregistrate sarcinile, corpul camerei le va
colecta corespunzător intensităţii luminii ce pătrunde în cameră. Acestea vor fi digitalizate şi
transferate către procesorul pentru generarea imaginii. După fiecare astfel de operaţie completă,
energia furnizată suprafeţei electronice va fi oprită temporar, până când se va face executa o
altă comandă de achiziţie a unei imagini. Practic, corpul video este cel care realizează o secvenţă
de achiziţie pentru procesarea ulterioară.

Achiziţia de imagine este realizată de un dispozitiv ce are în componenţă un cip CCD


realizat din siliciu (Charge Coupled Devices) care constă dintr-o matrice de elemente separate
sensibile la lumină, fiecare dintre acestea reprezentând un singur pixel. Pixelul este cea mai
mică unitate de informaţie pe care sistemul o poate returna procesorului, fiind unitatea de
măsură a unui element al imaginii. Numărul de pixeli pe care un sistem îl procesează poate
determina rezoluţia, care poate afecta timpul de procesare necesar unei analize de imagine.
Atunci când lumina cade pe un element pixel, fie între-un rând de elemente individuale sau la
intersecţia rând-coloană a matricei, sarcina iniţială creşte proporţional cu nivelul de lumină.
Odată ce sarcinile au fost strânse, un fotodetector plasat la sfârşitul fiecărui rând (sau coloană)
a matricei de pixeli numără aceste sarcini şi le converteşte digital. Valoarea digitalizată dintr-o
matrice indică nivelul de lumină receptat de fotodetectori. Valoarea care se află într-o celulă va
indica un nivel de gri sau un număr binar: 0 sau 1.
Se preferă reprezentarea imaginilor cu nivele de gri. De obicei, valorile pixelilor sunt
văzute ca diferite niveluri de gri, care sunt comparate cu o anumită valoare de prag. Dacă
valorile sunt mai mici decât valoarea de prag, atunci respectivi pixeli vor fi văzuţi ca blocuri de
culoare neagră, iar dacă valorile depăşesc valoarea de prag, apar ca blocuri de culoare albă.
Uneori, pentru a reprezenta imaginea mai precis, se pot folosi două astfel de valori de prag. În
acest caz, valorile pixelilor aflate între valorile de prag vor fi blocuri de culoare albă, iar in rest
de culoare neagră.
Deoarece sistemul de vedere este în totalitate dependent de lumina reflectată de către
obiect în vederea achiziţiei imaginii, iluminarea este un factor important ce influenţează un
sistem vizual, iar sursa şi direcţia luminii au efecte asupra reprezentării imaginii. Există mai
multe tipuri de iluminare ce pot fi folosite: lumină difuză, iluminare direcţională, iluminare
structurată, stroboscopică sau în diascopie.
Dupa ce imaginile au fost formate, trebuie ca acestea să fie interpretate în vederea
obţinerii de informaţii necesare ghidării vizuale. Această funcţie este realizată pe PC, prin
intermediul software-ului AdeptSight. Controller-ul robot se conectează la serverul AdeptSight
prin TCP/IP şi poate iniţia operaţiile de vedere, iar rezultatul acestora se obţine prin instrucţiuni
8
𝑉 + . Operaţiile de vedere se definesc folosind un utilitar grafic. După ce au fost efectuate
operaţiile de vedere asupra obiectelor inspectate, informaţia necesară în vederea efectuării unei
sarcini sunt transmise către controller-ul robot.

PC
Camera Controller Robot
(AdeptSIght)

Figura 2.5 Structura sistemul robot-vedere artificială

2.2.1 Reprezentarea numerică a imaginilor

În continuare, este descris modul în care sunt reprezentate imaginile, deoarece constituie
un element important atunci când sunt folosite în scopul recunoaşterii obiectelor.

Prim-planul și fundalul oricărei scene vizuale sunt reprezentate printr-o funcție de


reflexie 2-dimensională continuă a unor cantități analogice: intensitatea luminoasă reflectată în
fiecare punct vizibil în scenă. Cu toate acestea, această reprezentare analogică continuă nu este
adecvată pentru prelucrare, astfel încât trebuie folosită o reprezentare numerică a imaginii.

Imaginile numerice se obţin în urma conversiei analog-numerice, care presupune două


procese. Placa de achiziţie, care conţine convertorul A/D eşantionează semnalul video generat
de către cipul CCD într-o matrice de dimensiune 𝑚 × 𝑛, punând în evidenţă corespondenţa
dintre momentul 𝑡 la care se face conversia şi poziţia (𝑖, 𝑗) corespunzătoare din imagine.
Această funcţie este apoi cuantificată, astfel se asociază fiecărui nivel al mărimii continue o
valoare numerică 𝑃 întreagă care se numeşte nivel de gri.

Figura 2.6. Eşantionarea şi cuatificarea au ca rezultate imaginea numerică – matrice de


dimensiune 𝑛 × 𝑚 pixeli de intensitate 𝑘 ∈ ℤ+ , 𝑘 ≤ 2𝑝 − 1.

Definiţie. Fie 𝑖, 𝑗 două numere întregi cu 1 ≤ 𝑖 ≤ 𝑚 şi 1 ≤ 𝑗 ≤ 𝑛 şi 𝑓(𝑖, 𝑗) o funcţie astfel încât


0 ≤ 𝑓(𝑖, 𝑗) ≤ 𝐿. Matricea 𝐟 de dimensiune 𝑚 × 𝑛 compusă din valori întregi 𝑓(𝑖, 𝑗) se numeşte
imagine numerică:

9
𝑓(1,1) 𝑓(1,2) ⋯ 𝑓(1, 𝑛)
𝑓(2,1) 𝑓(2,2) ⋯ 𝑓(2, 𝑛)
𝐟=[ ] (2.4)
⋯ ⋯ ⋯ ⋯
𝑓(𝑚, 1) 𝑓(𝑚, 2) ⋯ 𝑓(𝑚, 𝑛)

Perechea (𝑖, 𝑗) reprezintă o poziţie din imagine şi este numit pixel.


Elementele 𝑓(𝑖, 𝑗) ale matricii 𝐟 reprezintă intensitatea luminii reflectate într-un număr
de regiuni dreptunghiulare ale imaginii optice. Acestea sunt distribuite echidistant pe 𝑛 linii şi
𝑚 coloane, iar produsul 𝑛 ∙ 𝑚 reprezintă rezoluţia spaţială a lui 𝑓(𝑖, 𝑗).
Numărul 𝑃 de nivele de gri din scala de gri reprezintă rezoluţia de cuantificare a sistemul
de vedere. Scala de gri is delimitată de nivelul negru (căruia îi corespunde valoarea 0) şi de
nivelul alb ( cu valoarea 𝐿 = 2𝑝 − 1), iar fiecare pixel este reprezentat pe 𝑝 biţi (𝑃 = 2𝑝 )
Intensităţile de gri intermediare pot fi atribuite arbitar, ca de exemplu: pentru gri închis
se alocă intervalul (0,0.33𝐿), pentru gri mediu (0.33𝐿, 0.67𝐿), şi pentru gri deschis (0.67𝐿, 𝐿).
(Batchelor & G., 1991)
Majoritatea sistemelor de vedere cuantifică semnalul video pe 256 de nivele de gri în
mod monocrom, adică placa de achiziţie lucrează cu informaţie pe 8 biţi. Presupuând că 𝑃 =
1 + 𝐿 este un întreg, putere a lui 2, astfel, fiecare pixel necesită stocarea a log 2 𝑃 biţi, şi prin
urmare, întreaga imagine digitală monocromă 𝐟 are nevoie de un spaţiu de stocare egal cu 𝑚 ∙
𝑛 ∙ log 2 𝑃 = 𝑚 ∙ 𝑛 ∙ log 2 (1 + 𝐿).
Definiţie. Fie 𝑖, 𝑗, 𝑡ℎ𝑟 trei numere întregi cu 1 ≤ 𝑖 ≤ 𝑚, 1 ≤ 𝑗 ≤ 𝑛 şi 1 ≤ 𝑡ℎ𝑟 ≤ 𝐿 − 1
şi o funcţie de tip boolean 𝑓 𝑏 (𝑖, 𝑗) dupa cum urmează:
0 (𝑛𝑒𝑔𝑟𝑢), 0 ≤ 𝑓(𝑖, 𝑗) ≤ 𝑡ℎ𝑟
𝑓 𝑏 (𝑖, 𝑗) = { (2.5)
1 (𝑎𝑙𝑏), 𝑡ℎ𝑟 ≤ 𝑓(𝑖, 𝑗) ≤ 𝐿
Matricea 𝑓 𝑏 de dimensiune 𝑚 × 𝑛 ce conţine valorile numerice 𝑓 𝑏 (𝑖, 𝑗) se numeşte
imagine binară.
2.2.2 Modelul perspectivă al camerei

După ce imaginile au fost reprezentate, trebuie ca informaţiile ce sunt de interes sa fie


cunoscute. Adică trebuie să fie cunoscută locaţia oricărui punct din imagine în contextul unor
sisteme de coordonate.

Astfel, pentru modelul proiecţiei de perspectivă, se consideră sistemul de coordonate al


camerei (𝑥𝑐 , 𝑦𝑐 , 𝑧𝑐 ) cu originea la o distanţă f (egală cu distanţa focală a lentilei) faţă de planul
imaginii ca în figura 2.7.

Proiecţia de perspectivă se obţine relativ la planul imaginii 𝑝 şi un punct focal 𝑾 prin


proiectarea unui punct 𝑷 de pe obiect la punctul focal 𝑾 şi determinarea punctul de intersecţie
𝑽 dintre dreapta 𝑷𝑾 şi planul proiecţiei 𝑝. Punctul 𝑽𝑎 , având vectorul de poziţie 𝒗𝑎 , este
punctul axial în planul 𝑝 şi:
|𝑎𝑤𝑥 + 𝑏𝑤𝑦 + 𝑐𝑤𝑧 + 𝑑|
𝑑𝑖𝑠𝑡(𝑤, 𝑣𝑎 ) = 𝑑𝑖𝑠𝑡(𝑤, 𝑝) = =𝑓 (2.6)
√𝑎2 + 𝑏 2 + 𝑐 2
unde:
10
(𝑝): 𝑎𝑥 + 𝑏𝑦 + 𝑐𝑧 + 𝑑 = 0 (2.7)
reprezinta ecuaţia planului p
𝑇
̂ = [𝑤 𝑇 1]𝑇 = [𝑤𝑥 𝑤𝑦 𝑤𝑧 1]
𝑤 (2.8)
este vectorul de poziţie al punctului W în coordonate omogene.

Figura 2.7 Sistemul de coordonate al camerei şi planul imaginii


Prin urmare, vectorul de poziţie asociat punctului 𝑽𝑎 în coordonate omogene, este:
𝑎
𝑎𝑤𝑦 + 𝑏𝑤𝑦 + 𝑐𝑤𝑧 + 𝑑 𝑏
𝑣̂𝑎 = 𝑤
̂+ ∙ [𝑐 ] (2.9)
𝑎2 + 𝑏2 + 𝑐 2
0
iar punctul 𝑉 este obţinut ca
𝑝𝑇 𝑢
𝑣 = 𝑝 ∩ 𝑃𝑊 = 𝑢 − 𝑇 ∙ (𝑤 − 𝑢) (2.10)
𝑝 (𝑤 − 𝑢)
Se notează
𝑝𝑇 𝑢
= 𝑔(𝑢) (2.11)
𝑝𝑇 (𝑤 − 𝑢)
Din ecuaţia de mai sus rezultă că 𝑣 nu poate fi exprimat ca o funcţie de 𝑢 liniară într-o
formă explicită HTM, exceptând cazuri particulare.
Se consideră cazul particular cu inclus in spaţiul cartezian X-Y, având punctul focal w,
cu:
̂ = [𝑤 𝑇 1]𝑇 = [0 0 𝑓 1]𝑇
𝑤 (2.13)

Dându-se un punct P, aflat pe suprafaţa obiectului şi descris de reprezentarea:

𝑢̂ = [𝑢𝑇 1]𝑇 = [𝑥 𝑦 𝑧 1]𝑇 (2.14)

punctul perspectivei, V, cu vectorul de poziţie în coordonate omogene


𝑣̂ = [𝑣 𝑇 1]𝑇 = [𝑢 𝑣 𝑤 1]𝑇 (2.15)

11
va avea coordonatele:
𝑥 𝑦
𝑢= 𝑧 ;𝑣 = 𝑧 ;𝑤 = 0 (2.16)
1+ 1+
𝑓 𝑓
Astfel, un punct P de pe suprafaţa obiectului este proiectat în planul 𝑥𝑣𝑖𝑠 , 𝑦𝑣𝑖𝑠 ca un
punct V, cu vectorul de poziţii în coordonate omogene:
𝑥
𝑢 1 0 0 0
𝑦
𝑣] = 1 1 0 1 0 0
𝑣̂ = [𝑤 𝑧 0𝑧 = 𝑧 𝑢̂,  = [0 0 0 0
]
1+ 1+
1 𝑓 1+ 𝑓 0 0 1/𝑓 1
[ 𝑓]
Transformarea de proiecţie  este singulară, a treia linia având numai elemente nule.
Prin aplicare unei transformări de perspectivă unei mulţimi de puncte, definite de
vectorii lor de poziţie, se produce o pierdere a informaţiei, deoarece mulţimea de puncte în
spaţiul cartezian va fi transpusă ca o mulţime de puncte cu vectorii de poziţie în planul imaginii.
Prin urmare, dacă coordonatele unui punct robot (sau obiect) 𝑃 sunt exprimate în raport
cu un cadru de referinţă ataşat (sau cadrul World), trebuie efectuată o transformare între sisteme,
pentru a putea exprima coordonatele punctului în planul imaginii.

12
3. Calibrarea camerei
Camera video fizică este caracterizată de parametrii electrici şi software, iar aceştia pot
fi configuraţi în cadrul mediului software AdeptSight în vederea obţinerii maximului de
informaţie din imaginea achiziţionată. Aceşti parametrii pot fi după cum urmează: parametrii
de limitare a campului de vedere, filtre de arie, detectare de muchii, gain/offset, praguri de
binarizare şi parametrii de accentuare a contururilor. Procedura de configurare a acestor
parametrii implică crearea unei camere virtuale asociată camerei fizice ce va fi folosită în
aplicaţie.

AdeptSight suportă un număr maxim de 4 camere video fizice cărora le pot fi asociate
un număr maxim de 32 de camere virtuale. Fiecare cameră virtuală reprezintă un set indivitual
de comutatoare, de date de calibrare cameră-robot, parametrii sistem, şi o coadă de vedere
artificială (vision queue). O camera fizică poate avea asociate până la 32 de camere virtuale. În
figura 3.1 este ilustrată relaţia dintre camera video fizică şi o cameră virtuală asociată acesteia.
Numărul unei camere fizice este determinat de portul la care este conectată camera respectivă
la placa procesoare VA AVI, în timp ce numărul camerei virtuale (şi camera fizică asociată)
este specificată în timpul calibrării camerei.

Figura 3.1 Relaţia cameră fizică-cameră virtuală


Calibrarea camerei permite trecerea de la cordonate discrete, exprimate în pixeli, la
coordonate reale, exprimate în milimetri (raportul pixel/milimetru). De asemenea, prin acest
proces se corectează distorsiunile introduse de lentilă şi de poziţionarea imperfectă a camerei.
Atunci când camera nu este perfect perpendiculară pe planul de lucru, apar deformări de
perspectivă (liniile paralele din planul de lucru se vor vedea neparalele pe imagine), iar lentila
poate introduce distorsiuni neliniare.
Înainte de a folosi un instrument de vedere, trebuia realizată calibrarea camerei. Pentru
această procedură, se foloseşte o imagine de referinţă, care conţine o grilă de puncte egal
distanţate şi de dimensiuni cunoscute. Paşii ce trebuie respectaţi pentru procedura de calibrare
sunt după cum urmează:
 Se selectează mai întâi camera video fizică ce urmează a fi folosită, după care se
specifică numărul camerei virtuale care îi va fi asociată.
 Se poziţionează grila de puncte în câmpul de vedere al camerei, iar apoi se
achiziţionează o imagine pentru a se verifica că este corect afişată. Trebuie avut în
vedere faptul ca grila de puncte să acopere întreg câmpul de vedere al camerei. În cazul

13
în care acest lucru nu se întâmplă, regiunea de interes se poate ajusta în cadrul ferestrei
ce corespunde sesiunii de calibrare, astfel încât în imagine să se afle doar puncte valide
ce vor fi folosite pentru calibrare. Punctele ce sunt detectate corect vor avea conturul
marcat de culoarea roşie. În figura este ilustrată grila de puncte, înainte de calibrare.

Figura 3.2 Grila de puncte înainte de calibrare

 După ce se asigură faptul că sunt respectate toate aceste aspecte, trebuie specificat pasul
punctelor. Acesta este exprimat în milimetrii şi reprezintă distanţa între centrul a două
puncte. De asemenea, pentru corectarea deformărilor de perspectivă şi a distorsiunilor
produse de lentilă, AdeptSight foloseşte un algoritm implementat ca transformare
matematică neliniară, obţinută prin regresie.
 În continuare, se poate realiza calibrarea propriu zise. În fereastra ulterioară calibrării,
punctele folosite calibrare sunt marcate cu semnul „+” de culoarea galbenă, iar cele
marcate cu semnul „+” de culoarea albastră sunt punctele folosite pentru validarea
calibrării. Acest lucru este ilustrat în figura

Figura 3.3 Grila de puncte după calibrare

14
Din punct de vedere al rezultatelor, parametrii returnaţi de calibrarea camerei sunt:
 factorul de scală pe verticală : milimetru-per-pixel;
 raporul X/Y (raportul înalţime/lătime a unui pixel): se realizează pentru centrul imaginii
( zonă cel mai putin distorsionată) şi se consideră ca raport pentru întreaga imagine,
adică:
𝑥. 𝑠𝑐𝑎𝑙𝑒 = 𝑦. 𝑠𝑐𝑎𝑙𝑒 ∗ 𝑥𝑦. 𝑟𝑎𝑡𝑖𝑜 (factorul de scalare pe orizontală mm/pixel)
𝑦. 𝑠𝑐𝑎𝑙𝑒 = factor de scală pe verticală mm/pixel

15
4. Calibrarea cameră-robot
În vederea ghidării vizuale a roboţilor industriali se definesc patru tipuri de modele
încapsulate în funcţii (Borangiu, Intelligent Image Processing in Robotics and Manufacturing,
2004):

 Funcţii al scenei: acest set de funcţii permite determinarea, stocarea, şi accesarea


modelului de calibrare cameră-robot S_m(cam, R, mount) în vederea localizării şi
măsurării obiectelor în sistemul de coordonate World al robotului.
 Funcţii obiect-scenă: set de funcţii ce permit învăţarea, planificarea şi folosirea de
modele ale obiectelor Fp_m(O). Obiectele O sunt identificate pe baza acestor modele,
în funcţie de trăsăturile fiecărei clase de obiecte.
 Funcţii robot obiect: set de funcţii ce permit definirea, învăţarea şi aplicarea modelelor
de prindere a obiectelor Gs_m(G,O) relativ la transformările date de calibrarea cameră-
robot, în vederea prinderii obiectelor cu ajutorul efectorului terminal într-o manieră
corespunzătoare.
 Funcţii scenă robot: set de funcţii ce permit definirea, integrarea şi verificarea modelelor
de prindere cu evitarea coliziunii FGP_m(G,O).

Obiectivul acestui capitol este definirea parametrilor asociaţii funcţiilor scenei, mai
exact setul de funcţii asociat modelului de calibrare cameră (cam) - robot (R), care ia în
considerare tipul de montaj (mount) al camerei: fixă sau mobilă. De asemenea, un algoritm de
calcul al acestor paramaterii va introdus în secţiunea 4.1.

Înainte de începerea oricărei operaţiuni de ghidare vizuală a robotului, este necesară


stabilirea relaţiei între robot şi camera asociată acestuia. Procedeul determinării parametrilor ce
definesc această relaţie poartă denumirea de calibrare cameră-robot.
Calibrarea cameră-robot face corespondenţa între un punct robot din spaţiul cartezian
(exprimat în milimetrii) şi un punct din planul imaginii (exprimat, de asemenea, în milimetrii)
şi presupune, practic, determinarea parametrilor extrinseci definiţi în secţiunea. Cu alte cuvinte,
calibrarea camera-robot defineşte transformarea relativă care descrie amplasamentul planului
imaginii (𝑥𝑣𝑖𝑠 , 𝑦𝑣𝑖𝑠 ) faţă de originea sistemului de coordonate din baza robotului (𝑥0 , 𝑦0 , 𝑧0 ).
Această transformare este descrisă de o matrice de transformare HTM de dimensiune 4
× 4, similară cu un punct robot şi conţine o rotaţie elementară care are rolul a de asigura
paralelismul între sistemul de coordonate al camerei şi sistemul de coordonate asociat robotului,
şi o translaţie elementară care suprapune originile celor două sisteme de coordonate, astfel încât
acestea să coincidă.
Pentru calibrarea cameră-robot se foloseşte un obiect de probă (un disc circular), care
este deplasat în spaţiul de lucru în poziţii cunoscute de robot, iar apoi localizat pe imagine.
Pentru a realiza acest lucru cu precizie, se foloseşte un cilindru ascuţit, care se pune în gripperul
robotului, iar vârful acestuia trebuie condus în gaura din mijocului discului.

4.1 Formalismul matematic pentru calculul parametrilor scenei


Parametrii scenei fac corespondenţa dintre coordonatele din imagine (𝑥𝑣𝑖𝑠 , 𝑦𝑣𝑖𝑠 ) si
coordonatele World atasate bazei robotului (𝑥0 , 𝑦0 , 𝑧0). Pentru determinarea acestora se
folosesc pe de-o parte datele provenite de la imagine (coordonatele centrului de masă ale
16
obiectului de probă) şi de pe altă parte coordonatele unui punct robot în spaţiul cartezian. Aceşti
parametrii sunt listaţi în continuare, după cum urmează:

 𝑎 - raportul pixel/milimetru de-a lungul axei 𝑥;


 𝑏 - raporul pixel/milimetru de-a lungul axei 𝑦;
 𝛼 - offset-ul pe axa x între planul imaginii şi planul robotului;
 𝛽 - offset-ul pe axa y între planul imaginii şi plaul robotului;
 𝜃 - unghiul determinat de planul imaginii şi plaul robotului.

Pentru a determina parametrii necesari calibrării cameră-robot, vom considera două


sisteme de coordonate carteziene: 𝑥𝑂𝑦 – asociat manipulatorului robotului şi ξO'η – asociat
imaginii.
Cele două sisteme de coordonate sunt considerate paralele cu cadrul de referinţă
(𝑥0 , 𝑦0 , 𝑧0 ) al robotului şi respectiv planului imaginii (𝑥𝑣𝑖𝑠 , 𝑦𝑣𝑖𝑠 ), şi se găsesc în acelaşi plan.
Cu alte cuvinte, 𝑥𝑂𝑦 este cadrul de referinţă al robotului deplasat de-a lungul axei 𝑧0 până când
ajunge în planul imaginii, iar ξO'η coincide cu (𝑥𝑣𝑖𝑠 , 𝑦𝑣𝑖𝑠 ).

Relaţiile care determină transformarea coordonatelor (scalare, rotaţie si translaţie) între


cadrul imaginii şi cadrul robotului sunt incluse în ecuaţia 4.1.

𝑥𝑖 𝑐𝑜𝑠 𝜃 𝑠𝑖𝑛 𝜃 𝑎 0 𝜉𝑖 𝛼
[𝑦 ] = [ ][ ] [ ] + [𝛽 ] (4.1)
𝑖 − 𝑠𝑖𝑛 𝜃 𝑐𝑜𝑠 𝜃 0 𝑏 𝜂𝑖

Figura 4.1 Rotaţia şi translaţia dintre cadrul robotului xOy şi planul imaginii ξO'η
Problema de calibrare a ansamblului cameră-robot este echivalentă cu determinarea
parametrilor scenei 𝜃, 𝑎, 𝑏, 𝛼, 𝛽, dându-se un set de coordonate (𝑥𝑖 , 𝑦𝑖 ) şi (ξ, η). Pentru
moment, presupunem că atât cadrul de referință al robotului și cadrul atașat planului imaginii
au coordonate 𝑍 egale – axele 𝑍 ale acestora coincid.
Folosind notaţiile
∆𝑥𝑖 = 𝑥𝑖+1 − 𝑥𝑖 , ∆ξ𝑖 = ξ𝑖+1 − ξ𝑖 ,
∆𝑦𝑖 = 𝑦𝑖+1 − 𝑦𝑖 , ∆η𝑖 = η𝑖+1 − η𝑖 ,
sistemul transformăriî coordonatelor (4.1) devine
17
∆𝑥𝑖 cos 𝜃 sin 𝜃 𝑎 0 ∆𝜉𝑖 𝛼
[ ]=[ ][ ] [ ] + [𝛽 ] (4.2)
∆𝑦𝑖 − sin 𝜃 cos 𝜃 0 𝑏 ∆𝜂𝑖

Ridicându-se la pătrat şi adunând cele doua ecuaţii ale sistemului (4.2) se obţine ecuaţia:

∆𝑥𝑖2 + ∆𝑦𝑖2 = 𝑎2 ∆ξ2𝑖 + 𝑏 2 ∆η2𝑖

având necunoscutele 𝑎 şi 𝑏 (coeficienţii de scalare de-a lungul axelor de coordonate ale


imaginii). Pentru 𝑛 + 1 seturi de coordonate, sistemul rezultant devine:

∆𝑥12 + ∆𝑦12 ∆ξ12 + ∆η12


∆𝑥22 + ∆𝑦22 = ∆ξ22 + ∆η22 [𝑎2 ] (4.3)
… … 𝑏2
[∆𝑥𝑛2 + ∆𝑦𝑛2 ] [∆ξ2𝑛 + ∆η2𝑛 ]

Notând cu 𝐀 şi 𝐁 matricile din stânga, respectiv din dreapta sistemului de ecuaţii (4.3) acesta
se poate scrie ca
2
𝑩 = 𝑨 [𝑎 2 ] (4.3′ )
𝑏
Rezolvarea acestor ecuaţii duce la
2
[𝑎2 ] = (𝐀𝑇 𝐀)−1 (𝐀𝑇 𝐁), (4.4)
𝑏

sau, prin scrierea explicită:

𝑛 𝑛 −1 𝑛

∑ ∆ξ4𝑖 ∑ ∆ξ2𝑖 ∆η2𝑖 ∑ ∆ξ2𝑖 (∆𝑥𝑖2 + ∆𝑦𝑖2 )


2
[𝑎2 ] = 𝑛
𝑖=1 𝑖=1
𝑛
𝑖=1
𝑛 (4.5)
𝑏
∑ ∆ξ2𝑖 ∆η2𝑖 ∑ ∆η2𝑖 ∑ ∆η2𝑖 (∆𝑥𝑖2 + ∆𝑦𝑖2 )
[ 𝑖=1 𝑖=1 ] [ 𝑖=1 ]

Introducând notaţille 𝑢 = ξ2𝑖 , 𝑣 = η2𝑖 , condiţia de nesingularitate a matricei 𝐀𝑇 𝐀 este


𝑛 𝑛 𝑛 2

∑ 𝑢𝑖2 ∑ 𝑣𝑖2 − (∑ 𝑢𝑖 𝑣𝑖 ) ≠ 0, (4.6)


𝑖=1 𝑖=1 𝑖=1

condiţie ce se reduce la egalitatea următoarelor raporturi:

∆ξ1 ∆ξ2 ∆ξ𝑛


= =⋯= (4.7)
∆η1 ∆η2 ∆η𝑛
Acest lucru înseamnă că cele 𝑛 + 1 puncte trebuie să fie necoliniare. Pentru orice
distribuire a punctelor, sistemul poate fi rezolvat.

După înmulţirea matricilor, sistemul (4.2) devine:

∆𝑥𝑖 𝑎 cos 𝜃 𝑏 sin 𝜃 ∆𝜉𝑖


[ ]=[ ][ ] (4.8)
∆𝑦𝑖 − a sin 𝜃 𝑏 cos 𝜃 ∆𝜂𝑖

18
Asttfel, pentru 𝑛 + 1 sisteme de coordonate, se obţine sistemul supra determinat:

∆𝑥1 ∆𝑥2 ⋯ ∆𝑥𝑛 𝑎 cos 𝜃 𝑏 sin 𝜃 ∆𝜉𝑖


[ ]=[ ][ ] (4.8′ )
∆𝑦2 ∆𝑦2 ⋯ ∆𝑦𝑛 − a sin 𝜃 𝑏 cos 𝜃 ∆𝜂𝑖

Notând cu 𝐂 şi 𝐃 matricile din stânga, respectiv din dreapta sistemului de ecuaţii (4.8),
se obţine:

𝑎 cos 𝜃 𝑏 sin 𝜃 (4.9)


𝐂=[ ] 𝐃,
− a sin 𝜃 𝑏 cos 𝜃

Presupunând că matricea 𝐃𝐂 𝑇 este nesingulară, rezolvând sistemul în sensul celor mai


mici pătrate se obţine:

𝑎 cos 𝜃 𝑏 sin 𝜃
[ ] = 𝐂𝐂 𝑇 (𝐃𝐂 𝑇 )−1 , (4.10)
− a sin 𝜃 𝑏 cos 𝜃

sau, scriind explicit matricile 𝐂 şi 𝐃:


𝑛 𝑛 𝑛 𝑛

∑ ∆𝑥𝑖2 ∑ ∆𝑥𝑖 ∆𝑦𝑖 ∑ ∆ξ𝑖 ∆𝑥𝑖 ∑ ∆ξ𝑖 ∆𝑦𝑖


𝑎 cos 𝜃 𝑏 sin 𝜃 𝑖=1 𝑖=1 𝑖=1 𝑖=1
(4.11)
[ ]= 𝑛 𝑛 𝑛 𝑛
− a sin 𝜃 𝑏 cos 𝜃
∑ ∆𝑥𝑖 ∆𝑦𝑖 ∑ ∆𝑥𝑖2 ∑ ∆η𝑖 ∆𝑥𝑖 ∑ ∆η𝑖 ∆𝑦𝑖
[ 𝑖=1 𝑖=1 ] [ 𝑖=1 𝑖=1 ]
Matricea din stânga obţinută în (4.11) conţine toată informaţia despre scalare şi rotaţia
cadrului ataşat planului imaginii, relativ la cadrul robotului. Deşi aceste informaţii sunt
suficiente pentru a se realiza transformarea dintre coordonatele din imagine şi coordonatele
robotului, este necesară determinarea explicită a coeficienţilor de scalare 𝑎, 𝑏 şi a unghiului de
rotaţie 𝜃 în vederea calibrării robot-obiect şi a măsurări distanţelor.
În continuare, se va detalia procedura de calcul pentru determinarea unghiului de
orientare 𝜃.
Să presupunem că, prin înmulţirea matricilor 𝐂𝐂 𝑇 şi (𝐃𝐂 𝑇 )−1 se obţine următoarea
matrice, 𝐫:
𝑟11 𝑟12 𝑇 𝑇 −1
𝐫 = [𝑟
21 𝑟22 ] = 𝐂𝐂 (𝐃𝐂 ) (4.12)

Problema constă în a găsi cea mai bună aproximare a matricei 𝐫 în raport cu matricea
coeficienților de scalare și de rotație, cea din urmă având forma membrului stâng din ecuaţia
(4.10):
𝑎 cos 𝜃 𝑏 sin 𝜃 𝑟11 𝑟12
[ ] ≅ [𝑟 𝑟22 ] (4.13)
− a sin 𝜃 𝑏 cos 𝜃 21

Astfel, pentru determinarea unghiului de rotaţie, se va impune o valoare minimă sumei


dintre diferenţele pătratelor elementelor corespondente din membrul stâng cu cele din membrul
drept. Notăm această sumă cu 𝑠. Atunci:
𝑠(𝜃) = (𝑟11 − 𝑎 cos 𝜃)2 + (𝑟12 − 𝑏 sin 𝜃)2 + (𝑟21 + a sin 𝜃)2 + (𝑟22 − 𝑏 cos 𝜃)2 (4.14)
Rezultă unghiul 𝜃:
19
𝜃 = arg min 𝑠(𝜃) (4.15)
După calcule, 𝑠(𝜃) devine
2 2 2 2
𝑠(𝜃) = 𝑎2 + 𝑏 2 + 𝑟11 + 𝑟12 + 𝑟21 + 𝑟22 + 2(𝑎𝑟21 − 𝑏𝑟21 ) sin 𝜃 − 2(𝑎𝑟11 + 𝑏𝑟22 ) cos 𝜃 (4.16)
ceea ce presupune minimizarea funcţiei
𝑓(𝜃) = 2(𝑎𝑟21 − 𝑏𝑟21 ) sin 𝜃 − 2(𝑎𝑟11 + 𝑏𝑟22 ) (4.17)
Din condiţia 𝑓 ′ (𝜃) = 0 avem:
−𝑎𝑟21 + 𝑏𝑟12
tan(𝜃) = , 𝑎, 𝑏 cunoscute din (4.5) (4.17)
𝑎𝑟11 + 𝑏𝑟22
Luând minimul local al funcţiei 𝑓(𝜃) (a doua derivată a acesteia trebuie sa fie pozitivă),
se obţin valorile sinusului şi cosinusului pentru unghiul 𝜃:

−𝑎𝑟21 + 𝑏𝑟12
sin(𝜃) = (4.14)
√(𝑎𝑟11 + 𝑏𝑟12 )2 + (𝑎𝑟21 − 𝑏𝑟12 )2

𝑎𝑟11 + 𝑏𝑟22
cos(𝜃) = (4.15)
√(𝑎𝑟11 + 𝑏𝑟12 )2 + (𝑎𝑟21 − 𝑏𝑟12 )2
care determină în mod unic unghiul orientării 𝜃 între sistemul de coordonate al imaginii şi
sistemul de coordonate al robotului în intervalul [0, 2𝜋).
Parametrii scenei, care descriu translaţia între cele două sisteme de coordonate, se
determină prin:
𝑛+1 𝑛+1

∑ 𝑥𝑖 ∑ ξ𝑖
𝑖=1 𝑎 cos 𝜃 𝑏 sin 𝜃 𝑖=1 𝛼
𝑛+1 =[ ] 𝑛+1 + [𝛽 ] ∙ (𝑛 + 1). (4.16)
− a sin 𝜃 𝑏 cos 𝜃
∑ 𝑦𝑖 ∑ η𝑖
[ 𝑖=1 ] [ 𝑖=1 ]

Obţinem:
𝑛+1 𝑛+1

∑ 𝑥𝑖 ∑ ξ𝑖
𝛼 1 𝑖=1 𝑎 cos 𝜃 𝑏 sin 𝜃 𝑖=1
[𝛽 ] = 𝑛+1 −[ ] 𝑛+1 . (4.17)
𝑛+1 − a sin 𝜃 𝑏 cos 𝜃
∑ 𝑦𝑖 ∑ η𝑖
[ 𝑖=1 ] [ 𝑖=1 ]
Astfel, ecuaţiile (4.5), (4.11) şi (4.17) permit calcularea explicită a parametrilor scenei
𝑎, 𝑏, 𝜃, 𝛼 ş𝑖 𝛽 în scopul utilizării lor în transformări cameră-robot.
Algoritmul de calcul pentru metoda prezentată mai sus este structurat după cum
urmează:

20
PAS 1. Actualizarea matricilor A, B, C şi D din ecuaţiile (4.5) şi (4.11), şi a sumelor
din (4.17) folosind cele 4 formule de mai jos (datele de intrare sunt
𝑥𝑘 , 𝑦𝑘 , ξ𝑘 ş𝑖 η𝑘 :

∆ξ4𝑘 ∆ξ2𝑘 ∆η2𝑘


𝐀𝑇𝑘 𝐀 𝑘 = 𝐀𝑇𝑘−1 𝐀 𝑘−1 [ ], (4.18)
∆ξ2𝑘 ∆η2𝑘 ∆η4𝑘

∆ξ2𝑘 (∆𝑥𝑘2 + ∆𝑦𝑘2 )


𝐀𝑇𝑘 𝐁𝑘 = 𝐀𝑇𝑘−1 𝐁𝑘−1 [ ], (4.19)
∆η2𝑘 (∆𝑥𝑘2 + ∆𝑦𝑘2 )

∆𝑥𝑘2 ∆𝑥𝑘 ∆𝑦𝑘


𝐂𝑘 𝐂𝑘𝑇 = 𝑇
𝑪𝑘−1 𝐂𝑘−1 [ ], (4.20)
∆𝑥𝑘 ∆𝑦𝑘 ∆𝑦𝑘2

∆ξ𝑘 ∆𝑥𝑘 ∆ξ𝑘 ∆𝑦𝑘


𝐃𝑘 𝐂𝑘𝑇 = 𝐃𝑘−1 𝐂𝑘−1
𝑇
[ ], (4.21)
∆η𝑘 ∆𝑥𝑘 ∆η𝑘 ∆𝑦𝑘

1. În cazul în care aceasta este prima actualizare, atunci


1.1 Se iniţializează matricile A, B, C şi D cu 0.
1.2 Se iniţializează sumele pentru 𝑥, 𝑦, ξ şi η cu 0.
1.3 Stocarea datelor de intrare în copiile făcute pentru a calcula
diferenţele.

Altfel

1.1 Se calculează diferenţele între datele de la pasul curent şi datele


de la pasul anterior.
1.2 Actualizarea copiilor cu datele calculate.
1.3 Actualizarea matricilor A, B, C şi D

2. Actualizarea sumelor 𝑥𝑘 , 𝑦𝑘 , ξ𝑘 ş𝑖 η𝑘
PAS 2. Determinarea parametrilor scenei folosind formulele (4.4) şi (4.10)
1. Se calculează determinanţii matricelor 𝐀𝑇 𝐀 şi 𝐂𝐂 𝑇 .
2. Dacă determinanţii sunt diferiţi de zero, atunci
2.1 Se determină 𝑎, 𝑏 din ecuaţiile (4.4)
2.2 Se calculează matricea de scalare şi de rotaţie din (4.10)
2.3 Se determină parametrii matricei de translaţie din (4.17)
Altfel
2.1 Afisează un mesaj de eroare (punctele învăţate sunt coliniare)
Luând în calcul faptul că algoritmul foloseşte metoda celor mai mici pătrate pentru
determinarea parametrilor scenei, precizia calibrării va creşte dacă se folosesc multiple seturi
de coordonate 𝑥𝑖 , 𝑦𝑖 şi ξ𝑖 , η𝑖 (puncte imagine şi puncte robot).
În plus, având în vedere că senzorul vizual al robotului poate fi montat în mai multe
moduri, procedura de calibrare cameră-robot diferă în funcţie de situaţie, astfel că în continuare
vor fi descrişi pasii ce trebuie urmaţi în acest scop pentru două configuraţii diferite ale camerei
împreună cu rezultatele calibrării aferente fiecărui caz.

21
4.2 Cameră staţionară, privind în jos
Înainte de începerea sesiuni de calibrare cameră-robot, trebuie să se asigure următoarele
condiţii:

 Modulul High Power trebuie să fie activat, precum şi controller-ul robot, iar
rutina de calibrare electromecanică trebuie executată, în alte cuvinte robotul
trebuie să fie pornit şi gata să primească comenzi.
 Cameră video a fost montată rigid în locaţia sa permanentă, iar procedura de
calibrare individuală a acesteia a fost realizată.
 PC-ul ce rulează software-ul AdeptSight este conectat la controller-ul robot.

AdeptSight permite realizarea calibrării cameră-robot, într-un mod interactiv, printr-o


sesiune offline, având o interfaţă uşor de folosit. Deoarece există mai multe moduri în care
poate fi montată camera, precum şi opţiunea de integrare a unui conveior, software-ul oferă opt
sesiuni diferite de calibrare, în funcţie de configuraţia sistemului. Procedeul de calibrare în
cazul de faţăeste împărţit în două etape după cum urmează:

Etapa 1. În prima etapă, se stabilesc anumite setări, în funcţie de contextul în care se va


face calibrarea.

1.1. Se selectează robotul ce va fi folosit.


1.2. Se specifică numărul camerei virtuale ce va fi asociată camerei video fizice.
1.3. Se alege tipul de montaj al camerei video. În cazul de faţă acesta corespunde
camerei montată într-un punct fix.
1.4. Se specifică faptul că robotul are ataşat un efector terminal, care va manipula
obiectul de probă în timpul calibrării.

1.5. Etapa 2. A doua etapă presupune procedura de calibrare cameră-robot propriu-zisă.

2.1. Se setează parametrii generali cu care robotul va opera: viteza, tipul de mişcare
(liniară în spaţiul cartezian sau interpolată liniar în spaţiul articulaţiilor). Se
preferă mişcarea liniară în spaţiul cartezian.
2.2. Se învaţă un punct în afara câmpului de vedere al camerei, punct în care robotul
se va deplasa atunci când se realizează o achiziţie de imagine. Acest lucru este
necesar deoarece camera este amplasată undeva deasupra robotului, iar acesta
poate obstrucţiona câmpul de vedere al camerei.
2.3. Se defineşte modelul obiectului de probă care este folosit pentru calibrare. Acest
obiect va fi mutat de către robot în spaţiul de lucru în timpul calibrării.
2.4. Se defineşte aria de interes care va fi folosită. De obicei, aceasta corespunde
spaţiului de lucru şi cuprinde întreaga imagine. În cazul în care anumite părţi ale
imaginii depăşesc spaţiul de lucru, se ajustează corespunzător aria de interes
astfel încât, în timpul calibrării, robotul să nu efectueze mişcării în afara spaţiului
de lucru.
2.5. După ce a fost definit modelul obiectului de probă şi aria de interes ajustată,
trebuie ca robotul să înveţe modul de prindere corespunzător respectivului
obiect. În plus, înainte de începerea calibrării trebuie definită transformarea
TOOL. Această este o transformare specială ce are rolul de a descrie gripperul
robot având un offset faţă de centrul flanşei de montare a efectorului terminal al
22
robotului (tool mounting flange – TMF). Practic, rolul ei este de a muta sistemul
de coordonate asociat uneltei (Tool) din flanşa de montare a gripperului (poziţia
implicită) într-o locaţie setată de utilizator. Unui punct robot care este învăţat
luând în considerare transformarea TOOL asociată gripperului cu offset, îi va fi
asociată locaţia centrului acelui gripper, şi nu locaţia centrului flanşei de
montare. De aceea, este necesar să se determine această transformare înainte de
calibrare, încât va influenţa componenta de pe axa 𝑍 a transformării returnate de
calibrarea cameră-robot.
2.6. În continuare, se poate începe calibrarea propriu-zisă. Robotul va efectua
multiple operaţiuni de plasarea obiectului în spaţiul de lucru, achiziţionând o
imagine înainte de fiecare astfel de operaţie. Ca şi sumar al procedurii încheiate,
pe ecran vor fi afişate diferenţele între punctele calculate şi punctele reale
folosite pentru calibrare.

Calibrarea cameră-robot se face o singură dată şi se salvează pe disc. De fiecare dată


când se porneşte robotul, ea trebuie încărcată.

Rezultatul calibrării – legătura dintre planul imaginii (𝑥𝑣𝑖𝑠 , 𝑦𝑣𝑖𝑠 ) şi sistemul de


coordonate al robotului (𝑥0 , 𝑦0 , 𝑧0 ) – este salvat în variabila de tip transformare invariantă în
timp, 𝑡𝑜. 𝑐𝑎𝑚[𝑐𝑎𝑚], unde [𝑐𝑎𝑚] reprezintă numărul camerei virtuale ce reţine datele de
calibrare. Ca şi componente, 𝑡𝑜. 𝑐𝑎𝑚[𝑐𝑎𝑚] conţine poziţia originii planului vederii, exprimată
în coordonate World (𝑥0 , 𝑦0 , 𝑧0 ). Practic, având această transformare, şi dacă se cunosc şi
coordonatele unui obiect în planul imaginii, robotul va ştii să se deplaseze către locaţia acestuia.

În Figura 4.2 este ilustrat contextul calibrării, precum şi transformările asociate


procedurii.

Figura 4.2 Principul de calibrare şi transformările relative asociate


23
Pentru a calcula tranformarea finală ce este necesară pentru ca robotul să poată manipula
obiecte, nu este suficientă determinarea relaţiei cameră-robot şi a transformării TOOL. Pe lângă
acestea, mai trebuie determinate anumite relaţii în scopul ghidării vizuale, ce vor fi descrise în
cele ce urmează.

4.2.1 Ghidarea vizuală a robotului de la o cameră staţionară

Controlul mişcării robotului prespune exprimarea locaţiei efectorului terminal în funcţie


de sistemul de coordonate World al robotului. Această locaţia defineşte practic poziţia robotului
şi va fi folosită în continuare folosind notaţia 𝑥𝑛0 , unde subscriptul 𝑛 reprezintă cel de-al n-ulea
sistem de coordonate – cel ataşat efectorului terminal (şi este dat de numărul de grade de
libertate al robotului) relativ la sistemul de coordonate World (superscriptul 0). Controlul vizual
al unui robot presupune folosirea transformărilor de coordonate pentru a exprima relaţia între
sistemele de coordonate specifice utilizate în mişcarea ghidată vizual. Astfel, dacă presupunem
că prin notaţia 𝑃 𝑓𝑟_𝑗 se exprimă coordonatele punctului 𝑃 relativ la cadrul 𝑓𝑟_𝑗, atunci
coordonatele aceluiaşi punct relativ la un alt cadru, 𝑓𝑟_𝑖, se obţin aplicând regula de
transformare a coordonatelor conform relaţiei 4.22:
𝑓𝑟 𝑓𝑟 𝑓𝑟
𝑷 𝑓𝑟𝑖 = 𝒙𝑓𝑟𝑗𝑖 [𝑷 𝑓𝑟𝑗 ] = 𝑹𝑓𝑟𝑗𝑖 𝑃 + 𝒑𝑓𝑟𝑗𝑖 (4.22)

𝑓𝑟_𝑖 𝑓𝑟_𝑖
Transformarea de coordonate 𝒙𝑓𝑟_𝑗 este exprimată printr-o matrice de rotaţie 𝑹𝑓𝑟_𝑗 şi un
𝑓𝑟_𝑖
vector de translaţie 𝒑𝑓𝑟_𝑗 , aceste două elemente alcătuind matricea de transformare omogenă
4×4:
𝑓𝑟 𝑓𝑟
𝑓𝑟 𝑹 𝑖 𝒑𝑓𝑟𝑗𝑖
𝐻𝑓𝑟𝑗𝑖 = [ 𝑓𝑟𝑗 ] (4.23)
0𝑇 1
În urma calibrării cameră-robot, se cunoaşte transformarea 𝑡𝑜. 𝑐𝑎𝑚[𝑐𝑎𝑚], notată în
0
continuare 𝑥𝑣𝑖𝑠 . De asemenea, în timpul rulării aplicaţiei, va fi calculată şi locaţia sistemului de
coordonate ataşat obiectului (𝑥𝑜𝑏𝑗 , 𝑦𝑜𝑏𝑗 ) relativ la planul imaginii (𝑥𝑣𝑖𝑠 , 𝑦𝑣𝑖𝑠 ) şi aceasta va fi
𝑣𝑖𝑠
definita de către transformarea 𝑣𝑖𝑠. 𝑙𝑜𝑐 şi notată 𝑥𝑜𝑏𝑗 . Considerând aceste două transformări,
atunci coordonatele unui punct 𝑀𝑜𝑏𝑗 din cadrul obiectului pot fi exprimate în coordonate World
folosind regula de compunere a transformărilor (dată prin :) :

0 𝑣𝑖𝑠 0 𝑣𝑖𝑠 0
𝑀0 = 𝑥𝑣𝑖𝑠 [𝑥𝑜𝑏𝑗 [𝑀𝑜𝑏𝑗 ]] = (𝑥𝑣𝑖𝑠 ∶ 𝑥𝑜𝑏𝑗 )[𝑀𝑜𝑏𝑗 ] = 𝑥𝑜𝑏𝑗 [𝑀𝑜𝑏𝑗 ] (4.24)

având matricile de rotaţie şi vectorul de translaţie date de relaţiile:


0 0 𝑣𝑖𝑠
𝑅𝑜𝑏𝑗 = 𝑅𝑣𝑖𝑠 𝑅𝑜𝑏𝑗 , (4.25)

0 0 𝑣𝑖𝑠 0
𝑝𝑜𝑏𝑗 = 𝑅𝑣𝑖𝑠 𝑝𝑜𝑏𝑗 + 𝑝𝑣𝑖𝑠 (4.26)

Se obţine astfel, relaţia între sistemul de coordonate ataşat obiectului şi sistemul de


coordonate World ar robotului, 𝑜𝑏𝑗. 𝑙𝑜𝑐, prin compunerea celor două transformări cunoscute:

𝑜𝑏𝑗. 𝑙𝑜𝑐 = 𝑡𝑜. 𝑐𝑎𝑚[𝑐𝑎𝑚]: 𝑣𝑖𝑠. 𝑙𝑜𝑐 (4.27)

24
Luând în considerare principiile geometrice în ceea ce priveşte procesul de formare al
imaginii, lentila camerei formează o proiecţie 2D în planul imaginii, astfel că informaţia de
adâncime se va pierde. De aceea, pentru manipularea obiectelor, se va introduce o transformare
ce are rolul de a recupera a treia dimensiune ce a fost pierdută în timpul achiziţiei de imagine.
Această transformare relativă denumită în continuare 𝑔𝑟𝑖𝑝. 𝑡𝑟𝑎𝑛𝑠 stabileşte legătura între
sistemul de coordonate ataşat efectorului terminal (𝑥𝑇 , 𝑦𝑇 , 𝑧𝑇 ) şi sistemul de coordonate asociat
obiectului de interes (𝑥𝑜𝑏𝑗 , 𝑦𝑜𝑏𝑗 ).
Transformarea 𝑔𝑟𝑖𝑝. 𝑡𝑟𝑎𝑛𝑠 reprezintă, practic, stilul de prindere al obiectelor de un
anumit tip, indiferent de poziţia şi orientarea acestora în planul imaginii. Pentru a putea defini
modele de prindere trebuie să se realizeze mai intâi recunoaşterea obiectelor. Există două
metode în acest scop:
 Recunoaştere pe baza trăsăturilor
 Recunoaştere cu modele ObjectFinder
Recunoaşterea pe baza trăsăturilor presupune, pentru fiecare clasă de obiecte, alegerea
unui set de trăsături relevante şi care permite diferenţierea lor de restul. Se poate alege aria,
perimetrul, numărul de găuri etc. Aceste trăsături trebuie să fie invariante la rotaţie, pentru ca
obiectul sa fie recunoscut indiferent de orientarea sa. Dacă este necesară recunoaşterea unui
obiect, indiferent de dimensiunea sa, sunt necesare trăsături invariante la scalare. Una din aceste
trăsături este compactitatea (raportul dintre pătratul perimetrului şi arie), care indică cât de
„rotund” este obiectul. Pentru trăsături precum aria şi perimetrul, se poate măsura dimensiunea
obiectului şi astfel se scalează corespunzător mărimile analizate.
ObjectFinder reprezintă un set de algoritmi de recunoaştere evoluaţi, care oferă rezultate
mai bune decât recunoaşterea blob-urilor. Acesta lucrează doar cu imagini grayscale,
nebinarizate. O problemă în folosirea ObjectFinder este faptul că, dacă iluminarea este în
diascopie, va învăţa şi texturile din jurului obiectului, care împiedică recunoaşterea cu precizie.
De aceea, când se foloseşte ObjectFinder, se va defini o arie de interes, adică nu se va procesa
toată imaginea, ci doar partea acesteia care încadrează strâns obiectul. Cu aria de interes astfel
definită, modelul va fi învăţat cu acurateţe.

După ce modele au fost identificate, trebuie realizată şi planificarea acestora. În faza de


planificare, ObjectFinder va indentifica diferenţele între modele şi va alege acele trăsături care
sunt relevante pentru fiecare model şi care duc la diferenţierea acestora. În acestă etapă se vor
construi algoritmi de decizie ce vor fi folosiţi la recunoaştere.

Pentru camera staţionară, relaţia între transformările prezentate (şi ilustrate în figura)
reprezintă şi relaţia folosită pentru ghidarea vizuală a robotului în vederea manipulării
obiectelor şi este calculată în felul următor:

0 𝑜𝑏𝑗 𝑜𝑏𝑗
𝑥𝑛0 = 𝑥𝑣𝑖𝑠 ∶ 𝑥𝑣𝑖𝑠 ∶ 𝑥𝑛 (4.28)

Ceea ce este echivalent cu

𝑝𝑎𝑟𝑡. 𝑙𝑜𝑐 = 𝑡𝑜. 𝑐𝑎𝑚[𝑐𝑎𝑚]: 𝑣𝑖𝑠. 𝑙𝑜𝑐: 𝑔𝑟𝑖𝑝. 𝑡𝑟𝑎𝑛𝑠 (4.29)

25
Figura 4.2 Transformările asociate ghidării vizuale în vederea manipulării obiectelor
Astfel, orice locaţie dată de sistemul de vedere va fi exprimată cu una din relaţiile relaţiile 4.28
sau 4.29.

4.3 Cameră mobilă, montată pe braţul robot


În cazul în care camera este montată pe unul dintre braţele robotului, există câteva
diferenţe în ceea ce priveşte procedura de calibrare, de asemenea şi transformările de
coordonate rezultate în urma calibrării diferă faţă de situaţia camerei montată staţionar.

Există câţiva paşi în plus care se adaugă la procedura de calibrare descrisă în secţiunea
4.2, după cum urmează:
 Se va specifica distanţa dintre camera video şi obiectul de probă
 De asemenea, nu mai este necesar ca punctul în care se află robotul atunci când se
efectuază o achiziţie de imagine să se afle înafara spaţiului lucru, având în vedere
montajul camerei ca acum, câmpul de vedere al camerei nu mai poate fi obstrucţionat
datorita montajului.
Camera poate fi montată în diferite locaţii pe robot. În contextul de faţă, se consideră
camera video montată pe segmentul 2 (link 2) al robotului, conform figurii 4.3, care este şi
segmentul exterior al acestuia. Sistemul de coordonate ataşat acestuia se defineşte în felul
următor:
 Originea este fixată relativ la segmentul exterior, în centrul flanşei de montare, cu
articulaţia 3 aflându-se în poziţia de zero.
 Axa 𝑧2+ indică în jos.
 Axa 𝑥2+ indică în afara articulaţiei 2, ca şi cum ar fi o extensie a acesteia.
 Axa 𝑦2+ este calculată după formula:
(𝑧2 × 𝑥2 )
𝑦2 = (4.30)
||𝑧2 × 𝑥2 ||
astfel încât să respecte regula mâinii drepte.

26
Păstrând aceeaşi idee, sistemul de coordonate World corespunde cu sistemul de
coordonate din bază, adică segmentul 0 al robotului SCARA, iar originea lui este pe axa
corespunzătoare articulaţiei 1 la nivelul bazei. Practic, pentru cazul camerei montate pe braţ, se
împarte conceptual robotul într-o serie de segmente conectate prin articulaţii. Fiecare segment
poate fi considerat ca având propriul sistem de coordonate, după cum am descris anterior.
Atunci când se foloseşte o cameră montată pe braţul manipulatorului, transformarea
𝑡𝑜. 𝑐𝑎𝑚[𝑐𝑎𝑚] rezultată în cadrul calibrării defineşte locaţia planului imaginii (𝑥𝑣𝑖𝑠 , 𝑦𝑣𝑖𝑠 ) în
raport cu sistemul de coordonate al segmentului 𝑠 (𝑥𝑠 , 𝑦𝑠 , 𝑧𝑠 ), 2 ≤ 𝑠 ≤ 𝑛 pe care este montată
camera. Pentru a folosi informaţii provenite de la senzorul vizual, trebuie cunoscută relaţia
între segmentul ce are ataşată camera şi sistemul de coordonate World al robotului, iar în acest
caz ne referim la transformarea 𝑙𝑖𝑛𝑘_2.
Transformea este calculată o singură dată în cadrul calibrării cameră-robot şi, pentru a
o putea folosi, indiferent de locaţiile unde se vor face achiziţii de imagine ulterior, se foloseşte
o anumită configuraţie a articulaţiilor, plecând de la starea curentă a poziţiei efectorului
terminal, efectuând următoarea secvenţă de operaţii:
 Se înlătură transformarea TOOL aplicată gripper-ului, dacă aceasta există;
 Se înlătură orice rotaţie a articulaţiei 4 a robotului;
 Se înlătură orice extensie a punctului condus în flanşa de montare.
Prin aplicarea acestor comenzi, se obţine transformarea 𝑙𝑖𝑛𝑘_2. Cu alte cuvinte,
transformarea sistemului de coordonate aferent segmentului 2 relativ la sistemul de coordonate
World trebuie calculată, în mod invers şi în timp real, preluând informaţiile existente în encoder
referitoare la locaţia efectorului terminal atunci când se realizează achiziţia de imagine, prin
eliminarea oricărei deplasre curentă a articulaţiilor 𝑖, 𝑠 ≤ 𝑖 ≤ 𝑛.
Având în vedere faptul că transformarea cameră-robot se calculează în raport cu
sistemul de coordonate al segmentului 2, atunci când este necesară folosirea acestei
transformări (to.cam in acest caz) , ea trebuie aplicată sistemului de coordinate al segmentului
2, adica adăugată la transformarea 𝑙𝑖𝑛𝑘_2, care face legătura între sistemul de coordonate World
şi sistemul de coordonate al segmentului care are ataşată camera. Valoarea transformării 𝑙𝑖𝑛𝑘_2
trebuie calculată de fiecare dată când se efectuează o achiziţie de imagine, având în vedere că
segmentul îşi va modifica poziţia o dată cu mişcarea robotului.

4.3.1 Ghidarea vizuală a robotului de la o cameră montată pe braţ

Figura 4.3 prezintă toate componentele locaţiei dată de vedere care trebuie compuse, în
timp real pentru a ghida robotul în vederea prinderii unui obiect, din orice punct de achiziţie a
imaginii. Acestea sunt după cum urmează:

 𝑙𝑖𝑛𝑘_2 este calculată după cum a fost menţionat;


 𝑡𝑜_𝑐𝑎𝑚[𝑐𝑎𝑚] este creată o singură dată, în timpul calibrării cameră-robot;
 𝑣𝑖𝑠. 𝑙𝑜𝑐 descrie poziţia obiectului în planul imaginii (𝑥𝑣𝑖𝑠 , 𝑦𝑣𝑖𝑠 );
Compunerea acestora va da ecuaţia de mişcare:

𝑝𝑎𝑟𝑡. 𝑙𝑜𝑐 = 𝑙𝑖𝑛𝑘2 : 𝑡𝑜. 𝑐𝑎𝑚[𝑐𝑎𝑚]𝑣𝑖𝑠. 𝑙𝑜𝑐: 𝑔𝑟𝑖𝑝. 𝑡𝑟𝑎𝑛𝑠 (4.31)

27
Figura 4.3. Componentele transformării pentru ghidarea vizuală folosind o cameră montată
pe braţ

28
5. Transformarea referinţelor cameră-robot în referinţe robot-
robot
Atunci când se doreşte ghidarea vizuală a roboţilor, iar celula de fabricaţie dispune de
o singură cameră video ce poate fi ataşată unui singur robot la un moment dat, este esenţial ca
fiecare manipulator să se deplaseze cu precizie către locaţiile comandate în spaţiul de lucru. În
aceste condiţii, referenţierea fiecărui manipulator relativ la robotul la care este conectată
camera, devine o chestiune importantă la care se adaugă anumite constrângeri ce apar în funcţie
de dispunerea roboţilor în cadrul celulei de fabricaţie. Toate aceste aspecte vor fi dezvoltate pe
larg în continuare.
Astfel, problema fundamentală pentru realizarea calibrării robot-robot este dată de
determinarea relaţiei ce defineşte transformarea între roboţii din sistem, mai exact relaţia între
robotul ce are ataşată camera video şi fiecare dintre roboţii ce nu au în componenţă o cameră.
Practic, orice locaţie din spaţiul de lucru va fi calculată relativ la manipulatorul condiţionat
vizual, pe baza transformării ce urmează a fi determinată.
Există diferite situaţii - în funcţie de structura celulei de fabricaţie - ce trebuie avute în
vedere atunci când se doreşte obţinerea referinţelor robot-robot, procedurile de calibrare robot-
robot variind de la caz la caz. Astfel, se va ţine cont de spaţiul de lucru al roboţilor, care poate
fi comun sau nu, şi de situaţia în care se urmăreşte o bandă transportoare, condiţionată de
recunoaştere vizuală, unde se va realiza prinderea obiectelor în mişcare. În cazul din urmă, este
necesar ca mai întâi să se realizeze o calibrare bandă-robot. Şi acest aspect va fi detaliat în cele
ce urmează.
În continuare, vor fi descrise mecanismele de referenţiere multirobot pentru fiecare
dintre cazurile menţionate mai sus.

5.1 Accesul la o resursă comună


Atunci când roboţii au un spaţiu de lucru comun, o soluţie în scopul determinării
transformării dintre doi roboti este definirea unu sistem de coordonate local, sistem ce va putea
fi accesat de către ambele manipulatoare. Astfel, dacă se consideră doi roboţi, 𝑅1 – robot ce are
ataşată camera video şi 𝑅2 – un alt robot din sistem, sistemul de coordonate local, încadrat în
spaţiul de lucru comun, va fi dat de trei puncte (𝑎, 𝑏, 𝑐), puncte ce reprezintă locaţii ce vor fi
învăţate de fiecare robot. Aceste puncte sunt reprezentate printr-un vector coloană de
dimensiune 3 × 1, de forma [𝑥 𝑦 𝑧]𝑇 .

În raport cu sistemul de coordonate World al fiecărui robot, sistemul nou definit, 𝑓𝑟_𝑟
este calculat după următoarele reguli (Borangiu, Dumitrache, & Anton, Programarea roboţilor,
2010):
- Sistemul are originea în punctul 𝑎;
- Axa 𝑋 este dată de vectorul 𝑎 → 𝑏;
- Planul 𝑋𝑌 este dat de punctele 𝑎, 𝑏 şi 𝑐;
- Direcţia axei 𝑌 se alege în planul (𝑎, 𝑏, 𝑐), fiind perpendiculară pe axa 𝑋 şi având sensul
indicat de către vectorul 𝑎 → 𝑐;
- Axa 𝑍 este dată de produsul vectorial între 𝑋 şi 𝑌, iar sistemul rezultat trebuie să respecte
regula mâinii drepte.

29
Nu este necesar ca vectorii 𝑎 → 𝑏 şi 𝑎 → 𝑐 să fie perpendiculari. Axa 𝑍 este calculată
ca produs vectorial între 𝑎 → 𝑏 şi 𝑎 → 𝑐, iar axa 𝑌 este recalculatăca produs vectorial între 𝑍 şi
𝑋.
Noul sistem de coordonate va fi folosit pentru calculul transformării dintre bazele celor
două manipulatoare.
Sistemul de coordonate astfel obţinut, este reţinut într-o variabilă de tip transformare,
care este definită în controller-ul fiecăruia dintre cei doi roboţi printr-o matrice omogenă.
Raportat la spaţiul de lucru comun al celor doi roboţi, acest sistem constituie un unic set de
puncte din punct de vedere fizic, însă valorile transformării aferente acestuia ce sunt reţinute în
controller-ul roboţilor diferă, ele sunt calcultate relativ la sistemul de coordonate World ale
fiecărui manipulator.
În continuare, se consideră 𝑓𝑟_𝑟𝑅1 – sistemul de coordonate local raportat la sistemul de
coordonate World al robotului 𝑅1 , iar 𝑓𝑟_𝑟𝑅2 – sistemul de coordonate local raportat la sistemul
de coordonate World al robotului 𝑅2 . Este de menţionat faptul că, la calculul sistemului de
coordonate se consideră doar componenta de translaţie a punctelor 𝑎, 𝑏 şi 𝑐, orientarea acestora
fiind ignorată.
În figura de mai jos este ilustrat contextul definirii sistemului de coordonate local,
împreună cu transformările asociate acestuia relativ la sistemul de coordonate World al fiecărui
manipulator.

Figura 5.1 Sistemul de coordonate local, transformările asociate acestuia şi


transformarea între cei doi roboţi
Obiectivul principal al calibrării robot-robot îl reprezintă determinarea matricei
omogene asociate transformării între sistemele de coordonate World ale celor doi roboţi, în
raport cu sistemul de coordonate local ce a fost definit. Astfel, fiind daţi cei doi roboţi 𝑅1 şi 𝑅2 ,
avem sistemele de coordonate World individuale 𝑊1 (𝑋1 , 𝑌1 , 𝑍1 ) şi 𝑊2 (𝑋2 , 𝑌2 , 𝑍2 ). Fie 𝐻21
matricea de transformare omogenă de dimensiune 4 × 4 reprezentând rotaţia şi translaţia între
cele două sisteme de coordonate 𝑊1 şi 𝑊2 . Atunci:
1
𝐻1 = 𝐻21 ∙ 𝐻2 = [𝑅2 𝑇21 ] ∙ 𝐻
2
0 1
30
unde 𝑅21 este o matrice de rotaţie cu dimensiunea 3 × 3, iar 𝑇21 reprezintă un vector de translaţie
având dimensiunea 3 × 1. Aceste două elemente definesc poziţia şi orientarea bazei robotului
𝑅2 relativ la sistemul de coordonate World al robotului 𝑅1 . Practic, cele două sunt
necunoscutele ce trebuiesc determinate în vederea rezolvării problemei de calibrare robot-robot.
Făcând referire la originea sistemului de coordonate local, dată de punctul 𝑎, sunt
𝑅1 𝑅1
cunoscute transformările 𝐻𝑓𝑟_𝑟 şi 𝐻𝑓𝑟_𝑟 , prin intermediul cărora roboţii se pot deplasa în acest
punct. Însă, în acest stadiu, aceştia pot ajunge în punctul 𝑎 având orientări diferite ale
efectoarelor, fapt ce poate influenţa şi poate determina apariţia unor erori în momentul în care
se va realiza referenţierea propriu-zisă, motiv pentru care se va adăuga celor două transformări
o rotaţie în jurul axei Y de 180 de grade, asigurându-se astfel corectitudinea deplasării.
𝑅1
Adăugarea rotaţiei semnifică, de fapt, înmulţirea la dreapta a transformării 𝐻𝑓𝑟_𝑟 , respectiv
𝑅2
𝐻𝑓𝑟_𝑟 cu transformarea corespunzătoare rotaţiei:
𝑅 𝑅
𝐻 ′𝑓𝑟1𝑟 = 𝐻𝑓𝑟1𝑟 ∙ 𝑅𝑌 (180) (5.1)
𝑅 𝑅
𝐻 ′𝑓𝑟2𝑟 = 𝐻𝑓𝑟2𝑟 ∙ 𝑅𝑌 (180) (5.2)

Prin compunerea acestor două transformări, se poate determina relaţia ce stabileşte


rotaţia şi translaţia robotului 𝑅2 faţă de robotul 𝑅1 . Compunerea transformărilor presupune
înmulţirea matricilor omogene asociate acestora, conform regulii triunghiului, mai exact, se
𝑅1 𝑅2
înmulţeşte matricea de transformării 𝐻′𝑓𝑟_𝑟 cu inversa matricei de transformare omogenă 𝐻′𝑓𝑟_𝑟
pentru a obţine matricea tranformării ce corespunde poziţiei şi orientării manipulatorului 𝑅2
relativ la manipulatorul 𝑅1 :
𝑅 𝑅 𝑅 −1
𝐻𝑅21 = 𝐻 ′𝑓𝑟1𝑟 ∙ (𝐻 ′𝑓𝑟2𝑟 ) (5.3)

Figura 5.2 Transformarea ce stabileşte relaţia între sistemele de coordonate World


ale roboţilor
În figura 5.1 este reprezentată transformarea între sistemele de coordonate World ale
celor doi roboţi ce a fost determinată. Având aceasta transformare, împreună cu transformarea
ce descrie mişcarea ghidată vizual a robotului 𝑅1 , prin compunerea lor, robotul 𝑅2 va putea să
se deplaseze către o locaţie indicată de robotul ce are ataşată camera video.

31
Asfel, dacă se consideră referinţele unui punct 𝑀 ca în figura 5.2 determinată cu ajutorul
vederii, în coordonate asociate robotului 𝑅1 , transformarea ce va descrie mişcarea robotului 𝑅2
către punctul M este dată de relaţia:
𝑅 𝑅 0 𝑜𝑏𝑗 𝑜𝑏𝑗
𝑀𝑅21 = 𝐻𝑅21 ∶ 𝑥𝑣𝑖𝑠 ∶ 𝑥𝑣𝑖𝑠 ∶ 𝑥𝑛 (5.4)

5.2 Integrarea unui sistem de transport


Pentru a putea urmări benzile conveior în mişcare în vederea prinderii şi manipulării
obiectelor ce se deplasează pe bandă, sistemul robotul trebuie să îndeplinească următoarele
condiţii:

 Pe bandă trebuie să existe un encoder de poziţie conectat la controller-ul robot;


 Banda trebuie să aibă ataşat un senzor care să semnaleze prezenţa obiectelor;
Înainte de a aborda problema referenţierii robot-robot în contextul urmăriri unei benzi,
trebuie ca mai întâi să se definească calibrarea bandă-robot, în vederea definirii mişcărilor
relative la bandă. Procedura de calibrare în acest caz necesită un pointer prins în gripper şi un
disc de calibrare. Aceasta va fi prezentată în continuare, iar paşii ce trebuie respectaţi sunt după
cum urmează:
 Se selectează encoderul cu care se va lucra (în cazul în care sistemul are mai multe
encodere).
 Se selectează robotul folosit în cazul în care sistemul controlează mai multe
manipulatoare.
 Se poate începe sesiunea de calibrare-bandă robot, care, printr-un set de operaţii de
plasare a pointer-ului robot în vederea indicării poziţiei discului de calibrare de pe
bandă, returnează valorile mai multor variabile necesare calibrării.
Astfel, procedura de calibrare duce la determinarea următoarelor valori: factorul de scalare
pentru encoder şi fereastra de lucru. Factorul de scalare al encoderului este o constantă ce
reprezintă numărul de impulsuri encoder echivalente pentru o schimbare de poziţie a benzii.
Acesta permite măsurarea distanţei parcurse de bandă prin inmulţirea lui cu numărul de
impulsuri primite de la bandă şi se măsoară în milimetru/impuls. Fereastra de lucru este o zonă
reprezentată prin două limite: limita din amonte (upstream) şi limita din aval (downstream).
Prin fereastra de lucru se limitează zona de acces a robotului. Pentru calculul acestor valori:
 Se plasează discul de calibrare în locul care va reprezenta partea cea mai din amonte a
robotului şi se plasează pointer-ul în mijlocul discului, după care se salvează valoarea
locaţiei în care se află robotul. Aici se citeşte şi se înregistrează atât poziţia robotului
cât şi valoarea encoderului.
 În continuare, se ridică pointerul şi se deplasează banda până când discul ajunge în
locaţia ce va defini partea cea mai din aval a benzii.
 Se plasează din nou pointer-ul în mijlocul benzii şi se înregistrează de asemenea şi
valoarea locaţiei în care se află acum robotul. Similar cu învăţarea primei locaţii, şi aici
se citeşte şi se înregistrează poziţia robotului cât şi encoderului.
Astfel, cele două limite vor defini în continuare fereastra de lucru a robotului, iar raportul
dintre distanţa între cele două poziţii şi diferenţa celor două valori citite ale encoder-ului dau
factorul de scalare.

32
În urma calibrării, este determinată transformarea nominală de bandă 𝑏𝑒𝑙𝑡. 𝑛𝑜𝑚 ce specifică
poziţia, orientarea şi direcţia benzii conveior. Acest lucru se realizează prin definirea unui cadru
de referinţă aliniat cu banda după cum urmează (Borangiu, Dumitrache, & Anton, Programarea
roboţilor, 2010):

 Planul 𝑋 − 𝑌 al cadrului de referinţă coincide cu planul benzii


 Axa 𝑋 este paralelă cu direcţia în care se deplasează banda
 Originea sa este dată de un punct fix în spaţiu ales de utilizator. În mod normal,
originea se alege ca fiind mijlocul ferestrei de lucru.
În figura de mai jos sunt prezentate elementele definite necesare pentru a se realiza
mişcări relative la bandă.

Figura 5.3 Elemente caracteristice pentru lucrul cu o bandă conveioare


Transformarea nominală de bandă nu este suficientă pentru definirea mişcărilor relative
la bandă. De aceea, se introduce o variabilă de bandă, denumită simbolic în continuare 𝑏𝑒𝑙𝑡
prin care se specifică relaţia dintre un anumit encoder montat pe bandă, locaţia şi viteza unui
cadru de referinţă ce păstrează o poziţie şi o orientare fixă faţă de bandă (transformarea
nominală). Variabila de bandă este descrisă tot printr-o transformare, variabilă în timp, care
conţine următoarele informaţii:
 Transformarea nominală a benzii definită anterior;
 Numărul encoderului folosit pentru citirea locaţiei instantanee a benzii;
 Factorul de scalare pentru encoder;
 Offsetul encoder care conţine ultima valoare a encoderului necesară pentru
funcţionarea corectă a sistemului. Aceasta este utilizat pentru a stabili locaţia
instantanee a cadrului de referinţă al benzii relativ la locaţia nominală.
 Parametrii ferestrei ce defineşte spaţiul de lucru al robotului de-a lungul benzii.
Pentru a determina locaţia instantanee definită de o variabilă de bandă, sistemul
realizează un calcul echivalent cu multiplicarea unui vector unitate în direcţia X a transformării
nominale cu o distanţă calculată pe baza datelor trimise de către encoder, iar rezultatul se adaugă
la vectorul de poziţie a transformării nominale. (Borangiu, Dumitrache, & Anton, Programarea
roboţilor, 2010). Acest lucru poate fi reprezentat prin relaţiile următoare:

𝑖𝑛𝑠𝑡𝑎𝑛𝑠𝑡𝑋𝑌𝑍 = 𝑛𝑜𝑚𝑖𝑛𝑎𝑙𝑋𝑌𝑍 + (𝑏𝑒𝑙𝑡𝑑𝑖𝑠𝑡 × 𝑋𝑑𝑖𝑟𝑡𝑟𝑎𝑛𝑠𝑓 ) (5.5)


𝑛𝑜𝑚𝑖𝑛

33
Unde:
𝑏𝑒𝑙𝑡𝑑𝑖𝑠𝑡 = (𝑖𝑚𝑝𝑢𝑙𝑠𝑢𝑟𝑖𝑒𝑛𝑐𝑜𝑑𝑒𝑟 − 𝑜𝑓𝑓𝑠𝑒𝑡𝑒𝑛𝑐𝑜𝑑𝑒𝑟 ) × 𝑓𝑎𝑐𝑡𝑜𝑟𝑠𝑐𝑎𝑙𝑎𝑟𝑒 (5.6)
În cazul în care sistemul lucrează cu mai mulţi roboti, calibrarea bandă-robot trebuie
realizată pentru fiecare dintre aceştia. Pot fi asociate mai multe variabile de bandă cu aceeaşi
bandă şi acelaşi encoder, fiind uşor de definit mai multe posturi de lucru pe aceeaşi bandă.
Pentru o cameră staţionară, orientată în jos către banda conveioare, al cărui câmp de
vedere cuprinde întreaga fereastra de lucru definită în spaţiul de lucru al robotului, planul
imaginii poate fi referit după cum este reprezentat în figura 5.4. Pentru urmărirea şi prinderea
unui obiect, se va compune transformarea dată de cu variabila de bandă definită. Compunerea
acestora exprimă locaţia curentă a efectorului terminal relativ la cadru de mişcare instantanee
(𝑥𝑖 , 𝑦𝑖 ). Procedura de urmărire începe imediat ce poziţia instantanee a benzii – dată prin cadrul
(𝑥𝑖 , 𝑦𝑖 ) – a fost iniţializată şi constă în actualizarea periodică a destinaţiei efectorului prin
deplasarea acetuia prin intermediul 𝑥𝑛 cu un număr de impulsuri primite de la encoder în timpul
unei perioadă de eşantionare.

Figura 5.4 Transformările necesare definirii mişcărilor relative la bandă (Borangiu,


Intelligent Image Processing in Robotics and Manufacturing, 2004)
Făcând referire la figura 5.3, planificarea destinaţiei instantanee a robotului prespune,
întro primă fază recunoaşterea obiectului a cărui model a fost definit anterior, iar apoi
localizarea lui prin definirea transformării asociate, 𝑔𝑟𝑖𝑝. 𝑡𝑟𝑎𝑛𝑠. Presupunând că modul de
prindere este definit astfel încât proiecţia centrului efectorului terminal în planul imaginii
coincide cu centrul de masă al obiectului , planul ataşat gripper-ului (𝑥𝑔 , 𝑦𝑔 ) va avea un offset
relativ la sistemul de coordonate al obiectului de-a lungul axei 𝑧0 de 𝑧_𝑜𝑓𝑓 milimetrii şi va fi
rotit cu un unghi 𝑟_𝑜𝑓𝑓 în jurul axei 𝑧0 . Pe baza transformării date de calibrarea cameră-robot,
𝑡𝑜. 𝑐𝑎𝑚[𝑐𝑎𝑚], se poate determina destinaţia curentă a robotului 𝑝𝑎𝑟𝑡. 𝑙𝑜𝑐 (în ipoteza că banda
este oprită) conform relaţiei:
34
𝑝𝑎𝑟𝑡. 𝑙𝑜𝑐 = 𝑡𝑜. 𝑐𝑎𝑚[𝑐𝑎𝑚]: 𝑣𝑖𝑠. 𝑙𝑜𝑐: 𝑔𝑟𝑖𝑝. 𝑡𝑟𝑎𝑛𝑠 (5.7)
Pentru a putea urmării această locaţie în vederea prinderii obiectului în timp ce banda
se deplasează, trebuie ca mişcarea să se realizeze relativ la bandă, ceea ce se poate exprima
astfel prin transformarea compusă 𝑏𝑒𝑙𝑡: 𝑝𝑎𝑟𝑡. 𝑙𝑜𝑐. Urmărirea începe imediat ce variabila de
bandă este iniţializată (specificarea encoderului folosit) şi constă în actualizarea destinaţiei
gripper-ului prin deplasarea acestuia pe axa 𝑥𝑛 , pe baza impulsurilor date de encoder şi
acumulate în timpul unor perioade de eşantionare succesive … , 𝑡𝑘−1 , 𝑡𝑘 , 𝑡𝑘+1 cu ∆𝑡 = 𝑡𝑘+1 −
𝑡𝑘 = 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡:
𝑏𝑒𝑙𝑡: 𝑝𝑎𝑟𝑡. 𝑙𝑜𝑐|𝑡𝑘+1 = 𝑏𝑒𝑙𝑡: 𝑝𝑎𝑟𝑡. 𝑙𝑜𝑐|𝑡𝑘+1 [𝑏𝑒𝑙𝑡𝑑𝑖𝑠𝑡 (∆𝑡)] × 𝑓𝑎𝑐𝑡𝑜𝑟𝑠𝑐𝑎𝑙𝑎𝑟𝑒 (5.8)

Rezultatul reprezintă o transformare variabilă în timp, care va actualiza poziţia de


referinţă a robotului. Acestă referintă sau destinaţie este planificată o singură dată, în momentul
în care obiectul intră în câmpul de vedere al camerei şi se va actualiza la fiecare 8 milisecunde
de către controller-ul robot prin citirea poziţiei curente de la encoderul de bandă, până când
efectorul va realiza segmentul de mişcare necesar în vederea deplasării către locaţia de prindere
a obiectului.
O dată ce robotul executa mişcarea relativ la bandă, efectorul terminal va continua să
urmărească bandă până când o nouă comandă de mişcare către o locaţie independentă de bandă
va fi generată.
În continuare, dacă se consideră un conveior în mişcare, avănd o viteză constantă şi
alimentat cu palete de aceeaşi dimensiune pe care se află diverse obiecte, iar de-a lungul
conveiorului există două posturi de lucru, doar unul dintre aceastea având integrat un sistem de
vedere, problema transformării referinţelor cameră-robot în referinţe robot-robot se bazează tot
pe determinarea transformării între sistemele de coordonate din baza roboţilor. În acest caz, cei
doi roboţi nu mai au un spaţiu de lucru comun, însă se poate considera banda conveioare ca
punct de legătură între ei.
Pentru realizarea referenţierii între manipulatoare, problema în acest caz se rezumă, ca
şi în cazul spaţiului comun de lucru, la determinarea transformării ce stabileşte relaţia între cei
doi roboţi din sistem.
Având cei doi roboţi, 𝑅1 , care are ataşată camera video, şi 𝑅2 , în contextul prezentat
mai sus, pentru determinarea transformării ce defineşte poziţia şi orientarea robotului 𝑅2 relativ
la robotul 𝑅1 trebuie parcurse următoarele etape
 Se realizează calibrarea bandă-robot pentru fiecare dintre cei doi. Aceasta se poate
realiza independent de sistemul de vedere, în cazul robotului 𝑅2 . În urma calibrării se
obţin valorile ce definesc cele două ferestre de lucru şi o transformare nominală pentru
fiecare dintre cei doi roboţi, 𝑏𝑒𝑙𝑡. 𝑛𝑜𝑚1 şi 𝑏𝑒𝑙𝑡. 𝑛𝑜𝑚2 care va indica poziţia centrului
aproximativ al benzii faţă de robot. Având această transformare se poate defini o
variabilă de bandă în vederea stabilirii mişcării relative la bandă, care va avea următorii
parametri:
𝑏𝑒𝑙𝑡1 (𝑏𝑒𝑙𝑡. 𝑛𝑜𝑚1 , 𝑛𝑢𝑚ă𝑟 𝑒𝑛𝑐𝑜𝑑𝑒𝑟, 𝑓𝑎𝑐𝑡𝑜𝑟 𝑑𝑒 𝑠𝑐𝑎𝑙𝑎𝑟𝑒) (5.9)
ce corespunde robotului 𝑅1 şi:
𝑏𝑒𝑙𝑡2 (𝑏𝑒𝑙𝑡. 𝑛𝑜𝑚1 , 𝑛𝑢𝑚ă𝑟 𝑒𝑛𝑐𝑜𝑑𝑒𝑟, 𝑓𝑎𝑐𝑡𝑜𝑟 𝑑𝑒 𝑠𝑐𝑎𝑙𝑎𝑟𝑒) (5.10)

35
asociată robotului 𝑅1 .
 Se deplaseză banda până când paleta ajunge în fereastra de lucru a primului robot şi se
defineşte un sistem de coordonate ataşat paletei. Sistemul de coordonate este dat de trei
puncte 𝑓𝑟_𝑏(𝑎, 𝑏, 𝑐) având originea conform figurii.
 Aceeaşi operaţie se aplică şi pentru cel de-al doilea robot. Sistemul de coordonate se va
învăţa folosind aceleaşi 3 puncte pe paletă ca în cazul primului robot. Prin definirea
acestor sisteme de coordonate se vor obţine transformările ce fac legătura între sistemele
𝑅1
de coordonate World ale roboţilor şi sistemul de coordonate ataşat paletei, 𝐻𝑓𝑟_𝑏 şi
𝑅2
𝐻𝑓𝑟_𝑏 .
 Cum roboţii au ca şi element de legătură conveiorul, distanţa parcusă de bandă din
momentul în care intră în câmpul de vedere al camerei ataşată robotului 𝑅1 şi până când
ajunge în fereastra de lucru a robotului 𝑅2 se determină pe baza datelor furnizate de
encoder.
 Având aceste elemente definite, transformarea dintre sistemele de coordonate World ale
roboţilor va fi cunoscută, iar pe baza ei se pot determina locaţii în spaţiul robotului 𝑅2
pe baza informaţiilor provenite de la robotul 𝑅1 .
În figura 5.5 sunt ilustrate transformările ce compun relaţia între sistemele de
coordonate World ale celor doi roboţi după cum urmează:
𝑅 𝑅 𝑅 −1
𝐻𝑅21 = 𝐻𝑓𝑟1𝑏 ∙ 𝑝𝑜𝑠 −1 ∙ (𝐻 ′𝑓𝑟22 ) (5.11)

Figura 5.5 Transformările ce definesc relaţia între cadrele celor doi roboţi
𝑅
Astfel, pe baza transformărilor 𝐻𝑅21 şi 𝑝𝑎𝑟𝑡. 𝑙𝑜𝑐, ce vor fi adăugate la variabila de bandă
𝑏𝑒𝑙𝑡2 , corespunzătoare robotului 𝑅2 , se vor referenţia coordonatele obiectelor calculate de
robotul 𝑅1 către 𝑅2 .

36
6. Prezentarea aplicaţiei

Structura de control a aplicaţiei se bazează pe o arhitectură de tip client-server. Având


în vedere că robotul 𝑅1 este cel la care este conectată camera video, va fi considerat robotul
server, iar 𝑅2 va avea rolul de robot client. Deoarece robotul 𝑅1 va deţine mereu informaţiile
necesare pentru calcularea referinţelor ce trebuie atinse de robotul 𝑅2 , va fi necesar un schimb
de mesaje, aşa că trebuie realizarea unei comunicaţii TCP/IP pentru trimiterea şi recepţionarea
de mesaje între roboţi.

Având în vedere că partea de comunicaţie este divizată în două părţi, client şi server,
instrucţiunile programului client diferă de cele ale serverului. Astfel, aplicaţiile ce rulează pe
roboţi nu corespund din acest punct de vedere. Pentru stabilirea unei conexiuni de tip server
TCP, un task de tip server 𝑉 + TCP informează driverul local TCP că va accepta toate
conexiunile pe un anumit port. Portul este o adresă pe 16 biţi. Oricărui nod de reţea îi este
permis acum sa se conecteze la server folosind adresa IP a serverului şi portului specificat.

Atunci când un client se conectează la server, îi este atribuit un control de monitorizare


(handle) pe server, cu care va fi identificat. Atunci când se realizează deconectarea de la server,
controlul este eliberat şi poate fi folosit de orice alt client ce doreşte să se conecteze la server.

Pentru a stabili o conexiune, clientul trebuie să cunoască adresa IP şi numărul portului


deschis de server. Atunci când serverul TCP primeşte o cerere, verifică dacă portul clientului
se potriveşte cu cel de pe server. În momentul în care s-au terminat aceste verificări, se
retransmite un mesaj către client. Odată ce conexiunea client-server este stabilită, se poate
începe un schimb de date bidirecţional.

TCP/IP

Figura 6.1 Transmisie de date bidirecţională

37
În scopul referenţierii, este necesară transmiterea către robotul 𝑅2 a anumitor
transformări ce conţin locaţia unui obiect de interes care a fost detectat de către robotul 𝑅1 .
Mai exact, informaţiile de care acesta trebuie să dispună sunt reprezentate de transformările ce
𝑅
compun relaţia ce stabilieşte legătura între coordonatele World ale celor doi roboţi, 𝐻𝑅21 ,data de
relaţiile 5.3 şi 5.11, precum şi transformările date de locaţia obiectului relativ la robotul 𝑅1 ,
𝑝𝑎𝑟𝑡. 𝑙𝑜𝑐, dată de 4.29 sau 4.31.

Aplicaţia ce rulează pe controller-ul robotului 𝑅1 se va executa în mai mulţi paşi: se


verifică în mod continuu daca un obiect care se deplasează pe banda conveioare a intrat în
câmpul de vedere al camerei şi în spaţiul de lucru al robotului cu ajutorul unui senzor ce indică
prezenţa. În momentul în care apare un eveniment de acest tip, vederea este activată iar obiectul
este identificat pe baza unui model predefinit. În continuare, sunt determinate coordonatele
obiectului şi robotul calculează traiectoria pe care ar trebui să o urmeze în vederea prinderii
obiectului, pe baza relaţiei 4.29. Se lansează apoi in execuţie un server pentru comunicaţia cu
robotul 𝑅2 care va aştepta ca robotul client să se conecteze pentru a recepţiona informaţiile.

După stabilirea canalului de comunicaţie, robotul 𝑅1 transmite robotului 𝑅2


coordonatele transformărilor enumerate. Acesta primeşte coordonatele şi le va transmite înapoi
către robotul 𝑅1 pentru a testa corectitudinea datelor primite. Dacă datele transmise corespund
cu cele primite, se continuă, şi pe baza acestora se calculează locatia destinaţie. În caz contrar,
aplicaţia va genera un semnal de eroare, iar roboţii vor înceta mişcarea.

Din punct de vedere al transformărilor, transformările 𝑡𝑜. 𝑐𝑎𝑚[𝑐𝑎𝑚] împreună cu


transformarea 𝑔𝑟𝑖𝑝. 𝑡𝑟𝑎𝑛𝑠 sunt trimise către cel de-al doilea robot, înainte de începerea
mişcării, întrucât ambele sunt determinate în cadrul unor sesiunii offline de calibrare cameră-
robot, respectiv de învăţare a modelelor de prindere a obiectelor.

Transformarea ce dă relaţia între roboţi va fi calculată o singură dată de către robotul


𝑅2 , conform procedeului descris în secţiunea 5.

Având în vedere că transformările rămase, descrise de ecuaţiile 4.29 respectiv 4.31, se


vor modifica, aceste sunt transmise de fiecare dată când după ce se realizează achiziţia de
imagine către robotul 𝑅2 în vederea ghidării vizuale a acestuia.

38
7. Concluzii şi planuri de viitor
Lucrarea de faţă a prezentat procedeele de referenţiere în contextul unui sistem format
din roboţi multipli, având în componenţă o singură cameră video care poate fi ataşată unui
singur robot. Au fost abordate două cazuri principale ce implică problema discutată: contextul
a doi roboţi, având spaţiul lucru comun, precum şi situaţia în care roboţii fac parte dintr-un
sistem ce integrează şi o bandă conveioare, caz în care roboţii pot să nu aibe spaţiu de lucru
comun.

Problema principală în ambele situaţii, a fost determinarea transformării ce stabileşte


relaţia între sistemele de coordonate din baza roboţilor. Întrucât a fost implicat un sistem de
vedere artificială ce a stat la baza recunoaşterii obiectelor în vederea manipulării acestora, a fost
necesară şi realizarea unei calibrări cameră-robot ce a avut ca scop definirea legăturii între
planul imaginii şi sistemul de coordonate al robotului care are ataşată cameră, astfel încât să se
poate cunoaşte referinţele obiectelor pe care robotul le manipulează.

S-a dezvoltat un algoritm prin care, având la dispoziţie un singur post de lucru ce are
integrat sistemul de vedere artificială, prin intermediul lui se realizează toate operaţiile de
vedere necesare, iar pe baza informaţiilor vizuale rezultate, roboţii din sistem ce nu au în
componenţă o cameră video pot efectua operaţiuni de manipulare prin schimbul unor mesaje ce
conţin datele de locaţie necesare în vederea ghidării în cadrul unei celule flexibile de fabricaţie

Metoda propusă este uşor de implementat cu ajutorul limbajului de programare în 𝑉 + şi


poate fi extinsă şi în alte medii de programare ce au opţiunea integrării şi a unei interfeţe grafice,
de exemplu, C#. Adept Technology a dezvoltat numeroase biblioteci ce oferă un suport
considerabil pentru dezvoltarea de aplicaţii, permiţând dezvoltarea unei interfeţe cu utilzatorul,
lucru pe care limbajul 𝑉 + nu îl permite.

39
Listă bibliografică

Batchelor, & G., B. (1991). Intellligent Image Processing in Prolog. Berlin: Springer-Verlag.

Borangiu, T. (2004). Intelligent Image Processing in Robotics and Manufacturing. Bucureşti: Editura
Academiei Române.

Borangiu, T., Dumitrache, A., & Anton, F. D. (2010). Programarea roboţilor. Bucureşti: Agir.

G. Yahui, D. X. (2011). Base frame calibration for coordinated industrial robots. Journal: Robotics and
Autonomous Systems - RaS, vol. 59, no. 7-8, 563-570.

Inc, A. T. (fără an).

J. Gudino-Lau, M. A. (2006). Dynamic model, control and simulation of cooperative robots: A case
study. Mobile Robots, Moving Intelligence, ARS/pIV.

T. Arai, Y. M. (2002). Automated calibration of robot coordinates for reconfigurable assembly


systems. CIRP Annals: Manufacturing Technology 51 (1).

40

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