Documente Academic
Documente Profesional
Documente Cultură
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.
Î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.
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:
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.
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ă.
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ă.
PC
Camera Controller Robot
(AdeptSIght)
Î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.
9
𝑓(1,1) 𝑓(1,2) ⋯ 𝑓(1, 𝑛)
𝑓(2,1) 𝑓(2,2) ⋯ 𝑓(2, 𝑛)
𝐟=[ ] (2.4)
⋯ ⋯ ⋯ ⋯
𝑓(𝑚, 1) 𝑓(𝑚, 2) ⋯ 𝑓(𝑚, 𝑛)
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.
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.
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
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):
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.
𝑥𝑖 𝑐𝑜𝑠 𝜃 𝑠𝑖𝑛 𝜃 𝑎 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:
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)
𝑏
𝑛 𝑛 −1 𝑛
18
Asttfel, pentru 𝑛 + 1 sisteme de coordonate, se obţine sistemul supra determinat:
Notând cu 𝐂 şi 𝐃 matricile din stânga, respectiv din dreapta sistemului de ecuaţii (4.8),
se obţine:
𝑎 cos 𝜃 𝑏 sin 𝜃
[ ] = 𝐂𝐂 𝑇 (𝐃𝐂 𝑇 )−1 , (4.10)
− a sin 𝜃 𝑏 cos 𝜃
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
−𝑎𝑟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
𝑥𝑘 , 𝑦𝑘 , ξ𝑘 ş𝑖 η𝑘 :
Altfel
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.
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.
𝑓𝑟_𝑖 𝑓𝑟_𝑖
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)
0 0 𝑣𝑖𝑠 0
𝑝𝑜𝑏𝑗 = 𝑅𝑣𝑖𝑠 𝑝𝑜𝑏𝑗 + 𝑝𝑣𝑖𝑠 (4.26)
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.
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)
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.
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.
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ă:
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.
Î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.
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)
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):
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.
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
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.
TCP/IP
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.
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.
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
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.
J. Gudino-Lau, M. A. (2006). Dynamic model, control and simulation of cooperative robots: A case
study. Mobile Robots, Moving Intelligence, ARS/pIV.
40