Lucrare de laborator SCARA.
În cadrul prezentului laborator se va studia sistemul robotic Adept. Acesta este format din robotul Scara S600 şi din sistemul de vedere artificial ă Adept Sight, care furnizeaz ă reacţia inversă pentru sistemul de conducere a robotului. 1. Robotul Scara S600
Robotul Scara S600 (Selective Compliance Assembly Robot Arm) este un robot cu 4 articulaţii, după cum se poate observa şi din figura 1. Articula ţiile 1, 2 şi 4 sunt articula ţii de rotaţie în jurul axei Z; articula ţia 3 este o articula ţie de transla ţie în lungul axei Z, a şa cum se arată în figura 1.
Figura 1. Robotul Adept Cobra
Spaţiul de operare al robotului (punctele din spa ţiu pe care acesta le poate atinge cu terminalul efector) poate fi analizat în figura 2.
Cobra Figura 2. Spa iul de operare al robotului Adept Cobra
1
Starea curent ă a robotului este indicat ă de un sistem format dintr-un led amplasat în partea superioar ă a articulaţiei 1 şi un display cu 2 digi ţi; combinaţiile posibile ale acestor dou ă elemente şi semnificaţia lor sunt descrise în tabelul 1. Tabelul 1 Starea LED-ului Starea display-ului Semnificaţie Oprit Oprit Robotul nu este alimentat cu 24Vcc Oprit Afişează OK Nu este alimentat cu tensiune 220Vac Luminează verde, continuu Afi şează ON Este alimentat cu tensiune 220Vac Luminează verde lent intermitent N/A Nod selectat Luminează verde rapid Cod eroare Eroare având codul afi şat, apar ţinând intermitent primei clase de erori Luminează verde, continuu Cod eroare Eroare având codul afi şat, apar ţinând celei de-a doua clase de erori Controllerul
Robotul poate fi programat şi controlat prin intermediul unui controller extern „Adept SmartController”, şi rulează o platformă de control distribuit al mi şcării „Adept SmartServo”. Controllerul Adept SmartController (figura 3) reprezint ă elementul de baz ă al familiei de controllere Adept. Integreaz ă opţiuni de vedere artificial ă precum şi posibilitatea urmăririi evoluţiei unei eventuale benzi transportoare, aflate în raza de ac ţiune a robotului. Este prev ăzut cu port IEEE 1394 (FireWire) prin care pot fi conectate module de intr ări/ ieşiri digitale sau module suplimentare de generare a mi şcării. Controllerul mai este prev ăzut şi cu Fast Ethernet respectiv Device Net, precum şi cu un modul sDIO care cuprinde 32 de intr ări digitale şi 32 ieşiri digitale, toate izolate galvanic, şi o interfaţă IEEE 1394.
Figura 3. Adept SmartController CX
Consola T1
Robotul Adept Cobra s600 este dotat cu o consol ă operator, care faciliteaz ă operaţia de programare şi de control manual a acestuia. Consola este prev ăzută cu 2 elemente de siguran ţă: o „ciupercă” de avarie, prin ap ăsarea căreia se trec toate motoarele robotului în Stop, respectiv două clapete laterale tripozi ţionale (poziţia de mijloc permite operarea robotului, pozi ţiile liber sau apăsat la maxim trec toate motoarele robotului în Stop). Principalele opera ţii care se pot executa prin intermediul acestei console sunt: - controlul robotului prin: activarea sau dezactivarea tensiunii pentru motoarele robotului ; mişcarea manual ă a acestuia - învăţarea poziţiilor
2
- afişarea poziţiei robotului (pozi ţia şi orientarea în sistemul cartezian a terminalului efector, coordonatele interne aferente articula ţiilor), stării intr ărilor/ieşirilor digitale, starea sistemului, identificarea sistemului şi mesajele de eroare - pornirea şi oprirea aplicaţiilor - afişarea şi editarea variabilelor globale ale programului. În figura 4 este reprezentat ă consola iar în tabelul 2 sunt explicate principalele comenzi ale acesteia.
Figura 4. Consola Adept T1
Tabelul 2 Buton de pornire a robotului Buton de oprire a robotului
Ciupercă de avarie
LED de indicare a stării oprit/ pornit a robotului LED de stare a consolei Taste de selecţie a funcţiilor
Taste de incrementare/ decrementare a poziţiei articulaţiei/ terminalului efector Tastă de selectare a modului de funcţionare
Determină începerea secvenţei de alimentare cu energie a motoarelor robotului, care include apăsarea butonului High Power de pe Panoul Frontal. Opreşte alimentarea robotului. Spre deosebire de ciuperca de avarie, butonul de oprire a alimentării iniţiază o oprire controlată, unde robotul este decelerat în urma controlului soft. După ce robotul s-a oprit se opreşte şi alimentarea cu energie a motoarelor acestuia. Apăsarea acesteia conduce la oprirea imediată a executării programului şi întreruperea alimentării cu energie a robotului. Dacă motoarele robotului sunt dotate cu sisteme de frânare, acestea se vor activa. Indică alimentarea robotului cu tensiune. Iniţial LED-ul licăreşte 3-4 secunde, apoi r ămâne aprins atât timp cât alimentarea este activată. Informează dacă robotul se află sau nu sub controlul consolei. Apăsarea unei taste conduce la accesarea meniului indicat pe ecran în dreptul acesteia. Pe ecran, în dreptul fiecărei perechi de taste „+ / -”, se va afişa, funcţie de modul de funcţionare selectat, fie J urmat de un număr x, reprezentând articulaţia cu numărul x, fie una din mişcările posibile în sistemul cartezian. Prin urmare, în cazul afişării J x apăsarea tastei „+” va conduce la o mişcare în sens pozitiv a articulaţiei x, apăsarea tastei „-” va conduce la o mişcare în sens negativ. În cazul afişării uneia dintre axele sistemului cartezian, apăsarea tastelor „+” / „-” va conduce la efectuarea unei mişcări în sens pozitiv / negativ pe acea axă. Selectează modurile World, Tool, Joint sau Free, apoi revine la modul COMP. Modul curent selectat este afişat pe ecran în partea dreaptă. Notă: dacă sistemul se află în modul COMP, prin apăsarea uneia dintre tastele COMP/PWR aflate pe ecran sau a butonului On, urm ătoarea apăsare a butonului de mod va cauza trecerea consolei în ultimul mod manual folosit de către operator.
3
Butonul de înregistrare/ validare (Rec/Done)
Se comportă asemănător tastelor Return şi Enter de pe o tastatur ă standard. Când introducerea de date este încheiată, prin apăsarea Rec/Done se va transmite informaţia către controller. În multe cazuri programele de aplicaţii necesită apăsarea butonului Rec/Done de către utilizatori pentru a semnaliza că şi-au terminat sarcina.
Ecranul principal al consolei este ilustrat în figura 5 iar principalele func ţii disponibile prin intermediul acestuia sunt explicat în tabelul 3:
Figura 5. Ecranul principal al consolei T1
Tabelul 3 EDIT DISP CLR ERR CMD Run/Hold STEP SLOW
F1, F2, Dev/F3 Comp/ Pwr Number keys 0-9 DEL
Yes+/No-
T1 Prog Set Robot: Mode
Permite editarea variabilelor locale şi a variabilelor reale folosite de programele V+. Afişează Joint, World, Status, I/O, sau ultima eroare în fereastra de afişaj a consolei. Şterge lista erorilor înregistrate. Prin intermediul acestei taste se pot selecta funcţiile Auto Start, Calibrate, Store All, CMD1, sau CMD 2. Porneşte şi opreşte executarea programelor. În modul Manual, se apasă STEP pentru a iniţia executarea unei mişcări din program. Acest buton determină viteza maximă care se poate selecta prin intermediul cursorului de selecţie a vitezei. Când butonul Slow este activ, prin intermediul cursorului de selecţie a vitezei se poate seta o viteză în intervalul 0 – 25% din viteza maximă de lucru a robotului. Când acest buton este inactiv, se poate seta orice viteză în intervalul 0 – 100%. Butoane cu funcţii programabile, sunt folosite în programe de aplicaţii speciale. Când sistemul cuprinde mai mulţi roboţi, butonul Dev/F3 selectează ce robot să devină activ. Dacă e pornită alimentarea cu energie a robotului, acest buton selectează modul de operare „calculator” - COMP. Dacă sistemul este în modul AUTO, iar alimentarea cu energie este oprită, acest buton iniţiază secvenţa de alimentare cu energie şi selectează modul „calculator”. Sunt utilizate pentru a introduce date, similar cu o tastatur ă standard. Asemănător cu tasta backspace (şterge) de la o tastatur ă. Când se introduc date, va apare pe afişajul consolei. DEL va şterge orice caracter care apare pe afişajul consolei dar care nu a fost introdus cu ajutorul butonului REC/DONE. Programele de aplicaţie pot ataşa butonului DEL funcţii speciale. Când este selectat butonul T1, se apasă Yes/+ pentru a deschide gripper-ul şi No/- pentru a închide gripper-ul. De asemenea se mai foloseşte pentru a r ăspunde la diferite întrebări generate prin rularea unui program. Se apasă pentru a activa funcţia de închidere/deschidere a gripper-ului - vezi funcţia Yes/No de mai sus. Se foloseşte pentru a selecta un program nou şi pentru a seta parametrii. Afişează care robot se află sub controlul consolei. Indică modul de lucru activ: Comp, World, Tool, Joint, sau Free. Lipsa vreunui mod indică
4
Display Box Cursorul de selecţie a vitezei System Menu User
modul Off. Setează viteza robotului, ca procentaj din viteza maximă. Valoarea vitezei este afişată în partea dreaptă. Se apasă şi se trage de cursor pentru a selecta viteza dorită. Deschide dialogul System Menu, util pentru a ajusta contrastul şi luminozitatea ecranului, pentru a calibra touchscreen-ul, şi pentru a actualiza firware-ul consolei. Este neagr ă când nu este activă. Când indicatorul „User” este aprins, înseamnă că un program utilizează consola. Dacă acesta clipeşte înseamnă că un program este suspendat. Se apasă Rec/Done penru a relua operarea programului.
În figura 6 sunt prezentate conexiunile care trebuie realizate între calculator, controller şi robot, pentru a se asigura func ţionarea acestuia din urm ă.
Figura 6. Conexiunile existente între calculator, controller şi robot.
5
2. Sistemul de vedere artificial ă
Sistemul de vedere artificial ă se bazeaz ă pe proprietatea obiectelor de a reflecta o anumită parte din lumina incident ă. Dacă obiectele sunt de culoare închis ă, nivelul de reflecţie va fi scăzut, în consecin ţă se va prefera un fundal luminos pentru a se putea realiza o bun ă identificare a acestora; dac ă obiectele sunt de culoare deschis ă, nivelul de reflec ţie va fi mare, fundalul se va alege mai închis. Astfel, lumina provenit ă din mediul ambiant sau de la surse de lumin ă convenabil alese se reflect ă pe obiect, iar reflecţia este „văzută” de camera video: este focalizat ă de obiectiv şi apoi proiectată pe planul senzorului camerei. Semnalul furnizat de camer ă (imaginea video) este transmis unui calculator, fie direct în format numeric, fie în format analogic, urmând a fi transformat în semnal numeric prin intermediul unui frame-grabber. Calculatorul, prin intermediul unui soft dedicat, va executa diverse opera ţiuni asupra imaginii (filtrare trece-jos pentru a elimina zgomotul, filtrare trece-sus pentru a accentua contururile, opera ţii de detecţie şi extragere a contururilor, binarizare, etc.). Rezultatul final al acestor opera ţii poate fi o clasare a obiectelor (obiecte pătrate, obiecte rotunde, obiecte albe, obiecte negre, etc.), un verdict asupra calit ăţilor obiectelor (obiect cu defect/ obiect f ăr ă defect) sau o informa ţie de pozi ţie (poziţia obiectelor în imagine). Funcţie de acest rezultat şi de natura sa, se genereaz ă comanda corespunz ătoare: - dacă este o informaţie de calitate a obiectului, se comand ă eliminarea sau menţinerea acestuia în proces; - dacă este o informa ţie de pozi ţie, aceasta va fi utilizat ă pentru deplasarea robotului asupra pozi ţiei respective; - dacă este o informaţie de clasare, rezultatul va fi utilizat sortarea obiectelor. Structura sistemului de vedere artificial ă cuprinde o camer ă video Basler A601f dotată cu obiectiv Navitar NAV-1614, conectat ă prin intermediul unui cablu FireWire la un computer pe care se afl ă instalat softul AdeptSight (Figura 7). Deoarece ie şirea acestei camere video industriale este o ie şire digitală, computerul, dac ă este prevăzut cu port FireWire, nu mai necesită componente adi ţionale (de ex. frame grabber), pentru a putea primi informa ţia achiziţionată de camer ă.
Figura 7. Structura sistemului Adept
6
Camera video
Conducerea robotului SCARA se realizeaz ă prin intermediul unui sistem de vedere artificială, în consecin ţă informaţia senzorială referitoare la natura scenei de operare este achiziţionată de către o camer ă video industrial ă. Referitor la amplasarea acesteia, în aplica ţiile industriale curente se întâlnesc trei posibilit ăţi: - camera se poate monta pe terminalul efector al robotului - camera se poate amplasa pe bra ţul terminal al robotului - camera se poate monta fix în raport cu baza robotului, într-o pozi ţie de unde s ă se poată observa convenabil scena de operare. În cazul prezentului sistem, camera video este amplasat ă fix, astfel încât s ă „privească de sus” scena. În ălţimea la care aceasta se monteaz ă trebuie să fie suficientă pentru a nu interfera cu spa ţiul de operare al robotului, deoarece, în acest caz, ar exista riscul ca robotul s ă lovească accidental camera pe parcursul mi şcărilor pe care le execut ă. Camera utilizat ă este modelul A601f produs de firma Basler (Figura 8).
Figura 8. Camera video industrială Basler A601f
Motivarea alegerii camerei - Rezoluţia. Senzorul acestei camere are o rezolu ţie de 656 x 491 pixeli. Robotul va fi utilizat preponderent în opera ţii de sortare/ paletizare, în care obiectele manipulate prezint ă dimensiuni considerabile, deci o astfel de rezolu ţie este suficient ă pentru îndeplinirea obiectivului aplicaţiei. Utilizarea unei rezolu ţii mai mari s-ar justifica doar pentru aplica ţii de inspecţie vizuală detaliată, de exemplu c ăutarea microfisurilor în material. - Tipul senzorului: CMOS, obturator electronic global, citire progresiv ă. Deoarece în ultimii ani diferenţele dintre senzorii CCD şi CMOS au fost reduse semnificativ, natura senzorului (CCD sau CMOS) nu mai conteaz ă decât în aplica ţiile care exploateaz ă anumite calităţi particulare ale acestora. Fabrica ţia senzorilor CMOS este mai pu ţin costisitoare, deci camerele care utilizeaz ă astfel de senzori au un pre ţ mai mic decât echivalentele cu senzor CCD. Prin obturator electronic global în ţelegem că achiziţia imaginii se face simultan pe toate liniile senzorului, şi nu prin expunerea pe rând, linie cu linie, ca în cazul obturatorului de tip „rolling shutter”. S-a ales un astfel de obturator deoarece pentru scenele care con ţin obiecte în mişcare, în cazul obturatorului „rolling shutter” s-ar fi ob ţinut imagini deformate – expunerea se realizează secven ţial linie cu linie, între momentul de timp în care se expune prima linie şi cel în care se expune ultima linie obiectul se deplaseaz ă iar imaginea acestuia apare deformat ă. Citirea progresivă asigur ă o citire completă a senzorului, şi anume cuprinderea tuturor liniilor într-un singur cadru, nu grupate în dou ă semicadre: unul al liniilor impare cel ălalt al liniilor pare. Deoarece pe imaginea furnizată de camera video se vor realiza prelucr ări numerice, este necesar ca aceasta s ă cuprindă toate liniile într-un singur cadru. Dac ă citirea senzorului s-ar fi realizat întreţesut, atunci liniile pare ar fi fost disponibile într-un cadru, cele impare în alt cadru, şi
7
ar fi fost necesar ă o prelucrare suplimentar ă prin care cele dou ă cadre să fie suprapuse într-un singur cadru. Un alt inconvenient ar fi c ă dacă scena filmată conţine elemente în mişcare, ar fi apărut diferenţe de poziţie ale obiectelor între momentele de expunere ale celor dou ă cadre (impar/ par), implicit contururile obiectelor nu ar mai fi fost linii drepte, ci in zig-zag. - Dimensiunea pixelului 9.9 x 9.9 μm. Deoarece camera este utilizat ă în aplicaţii industriale, şi mai mult, este utilizată pentru a determina pozi ţia şi forma obiectelor din imagine, este absolut necesar ă cunoaşterea formei pixelului precum şi a dimensiunilor acestuia. Din aceste motive, s-a ales o camer ă cu un senzor ai c ărui pixeli să aibă o formă pătrată, de dimensiune cunoscut ă. De notat faptul c ă produc ătorul camerei ofer ă un soft dedicat de prelucrare a imaginii, prin care utilizatorul poate specifica, dintr-o list ă, modelul camerei conectate la calculator, iar softul va şti în mod automat informa ţiile legate de dimensiunea senzorului, pixelului, forma pixelului, etc. Aceste informa ţii vor fi utilizate în cadrul procesului de calibrare a camerei. - numărul de cadre pe secund ă achiziţionate la rezoluţie maximă: 60 /100. 100 de cadre în rezoluţie VGA pe secund ă reprezintă viteza maximă de transfer pe care o poate suporta standardul FireWire. Viteza de transfer scade o dat ă cu creşterea lungimii cablului utilizat, deci ni se specifică o limită superioar ă şi o limită inferioar ă a numărului de cadre pe secund ă care pot fi achiziţionate. S-a optat pentru o camer ă capabilă să achiziţioneze un num ăr mai mare de cadre pe secundă, deoarece se inten ţionează ca robotul să fie utilizat în aplicaţii de urmărire a obiectelor, deci este necesar un control în timp real implicit achizi ţia unui număr mare de cadre pe secund ă, pentru a putea determina cu precizie pozi ţia unui obiect la un anumit moment de timp. - camer ă monocromă (reprezentare în nivele de gri). Deoarece principalul scop al aplica ţiei robotizate constă în determinarea poziţiei obiectelor în scenă, şi sortarea acestora dup ă formă, este suficientă utilizarea unei camere video industriale alb-negru, considerabil mai ieftin ă decât o camer ă video color. Mai mult, prelucrarea imaginilor în nivele de gri se realizeaz ă mult mai rapid decât în cazul imaginilor color, conducând la un necesar hardware al calculatorului mai mic, deci un calculator mai ieftin. - semnal furnizat la ie şire: IEEE 1394. Standardul IEEE 1394 este cunoscut şi sub denumirea de FireWire. Dezvoltat ini ţial de Apple Inc. (sub denumirea FireWire) în colaborare cu firma Sony (sub brandul i.Link) pentru a realiza transferul fi şierelor multimedia, acest standard serial ofer ă viteze foarte mari de transfer a datelor între dou ă dispozitive, superioare standardului USB 1.1 în vigoare la acea vreme. Totu şi standardul USB a devenit mai popular în timp, deoarece a fost puternic promovat de firme precum Intel, Microsoft, IBM. În ultimii ani popularitatea standardului IEEE 1394 a crescut, fiind întâlnit în prezent pe majoritatea computerelor personale contemporane. Deoarece camera ofer ă la ieşire semnal digital, nu mai este necesar ă achiziţionarea suplimentar ă a unui frame grabber, care s ă realizeze conversia semnalului din format analogic în format digital. Chiar dacă o astfel de camer ă costă mai mult comparativ cu o camer ă similar ă care ofer ă la ieşire semnal analog, diferenţa de preţ dintre cele două camere este net inferioar ă preţului de achiziţie al unui frame grabber. Din acest motiv s-a optat pentru achizi ţionarea unei camere video industriale cu ieşire digitală, şi s-a ales standardul FireWire datorit ă vitezei de transfer pe care o asigur ă. - formatul semnalului video de ie şire: monocrom mono 8: bi ţi per pixel; mono 16: 10 biţi per pixel. Aceast ă camer ă este o camer ă monocromă (semnalul este reprezentat numai în nivele de gri), codificarea nivelelor de gri efectuându-se în dou ă moduri. În modul mono 8, nivelul de alb „v ăzut” de un pixel este reprezentat pe 8 bi ţi – 256 nivele de gri. În modul mono 16, codificarea se realizeaz ă pe 10 bi ţi de tonalitate, 1024 nivele de gri. Reprezentarea pe 10 bi ţi nivele de gri se nume şte mono 16, deoarece ace ştia sunt trimişi către calculator neîmpachetat, dispuşi în 2 octe ţi: primii 8 biţi în primul octet, urm ătorii 2 biţi în al doilea octet, restul de 6 bi ţi din al doilea octet r ămânând neutiliza ţi. Funcţie de natura aplica ţiei si de memoria disponibil ă în calculator, utilizatorul poate opta pentru unul din cele dou ă moduri de reprezentare a luminozităţii: fie pe 256 nivele de gri, fie pe 1024 nivele de gri. - amplificarea semnalului: 0-12 dB. Dup ă cum se poate observa, nivelul de amplificare este unul redus comparativ cu amplific ările întâlnite în cazul altor camere video 8
industriale. De asemenea, în lista de caracteristici al camerei nu este amintit nivelul minim de iluminare, pentru care camera video industrial ă va putea oferi o imagine acceptabil ă din punct de vedere calitativ. Deoarece aceast ă camer ă va fi utilizată în laborator, într-un mediu controlat inclusiv din punct de vedere al ilumin ării, iluminarea minimă nu este important ă deoarece se poate apela uşor la surse de lumin ă suplimentare, care s ă asigure o iluminare corespunz ătoare a scenei. Astfel, nivelul minim de iluminare precum şi nivelul de amplificare au fost doi parametri cărora li s-a acordat o importan ţă scăzută. - Semnale de sincronizare: prin intermediul unui trigger extern, prin intermediul interfeţei FireWire, semnale de tact generate intern, de camer ă. Prin intermediul unui trigger extern se poate porni achizi ţia de imagine numai atunci când intervine un anumit eveniment în scena de operare. Prin intermediul interfe ţei FireWire, achiziţia imaginii de către camer ă se va realiza în ritmul impus de utilizator, prin intermediul interfe ţei furnizate împreună cu aceast ă camer ă. Camera dispune de un modul de generare intern ă a semnalelor de sincronizare, fiind al treilea mod în care se poate realiza achizi ţia imaginii. - tensiunea de alimentare: 8-36 vol ţi cc, puterea absorbit ă: 1,7 watt la 12 vol ţi cc, alimentare prin intermediul magistralei FireWire. Magistrala FireWire asigur ă, pe lângă transferul datelor, şi un canal pentru alimentarea cu energie electric ă a dispozitivelor periferice conectate. Conform standardului, pe respectivul canal se pot transmite tensiuni de pân ă la 30 volţi cc şi puteri de până la 45 de watt, func ţie de natura echipamentului electronic care prezint ă aceast ă magistrală. Conectând aceast ă camer ă la un computer, ne putem a ştepta la o tensiune de 12 Vcc şi o putere maxim ă de 6 watt. Obiectivul optic
Obiectivul este un sistem optic realizat din mai multe grupuri de lentile, având scopul de a proiecta focalizat planul imaginii pe planul senzorului. Obiectivul ales pentru sistemul de vedere artificială prezentat în cadrul acestui laborator este produs de firma Navitar, o firm ă cu peste 40 de ani experienţă în domeniul sistemelor optice utilizate la nivel industrial. Acest obiectiv prezintă o distanţă focală fixă, de 16 milimetri pentru un senzor de 2/3 inch. În continuare vom prezenta modul în care se alege un obiectiv destinat utiliz ării într-o aplicaţie de vedere artificială industrială (Figura 9).
Figura 9. Diagrama de calcul utilizată pentru alegerea obiectivului
9
Factorii tehnici considera ţi în alegerea obiectivului potrivit pentru o anumit ă aplicaţie industrială sunt: - Câmpul de vedere (CV) – reprezint ă totalitatea suprafeţei care urmeaz ă a fi vizionată de camera video. - distanţa de lucru (DL) – define şte distanţa dintre extremitatea obiectivului şi obiectul sau suprafa ţa monitorizată. - dimensiunea dispozitivului senzorial al camerei video (DS). Conform factorilor prezenta ţi anterior, formula general ă de calcul a distan ţei focale DF a obiectivului este: DF
DS DL CV
Pentru cazul curent al aplica ţiei din laborator, calculul se aplic ă astfel: camera video industrială are un senzor de 2/3 inch (distan ţa orizontală a senzorului fiind de 8,8 milimetri), cu montur ă standard „c-mount”. Distan ţa dintre obiect (planul scenei) şi extremitatea apropiat ă a obiectivului este de 500 milimetri. Câmpul de vedere dorit are dimensiunea de 275 milimetri. Aplicând formula, rezult ă 8,8 500 16mm 275
distanţa focală a obiectivului curent. În aplicaţiile video industriale, de regul ă se prefer ă utilizarea unui obiectiv cu distanţă focală fixă, deoarece în cazul obiectivelor cu distan ţă focală variabilă apar 2 probleme majore. Prima problemă se datorează modului de varia ţie a distanţei focale – aceasta implic ă apropierea sau dep ărtarea centrului optic al obiectivului fa ţă de senzor, deci obiectivul cuprinde elemente mobile, de cele mai multe ori executând mi şcări de rotaţie. În acest caz, este imposibil să se menţină proiecţia axei optice în acela şi punct pe senzor, de cele mai multe ori aceasta descriind traiectorii circulare conform rota ţiei executate de elementele obiectivului. A doua problemă este legată de calibrarea camerei video. În momentul în care se variaz ă distanţa focală, apare o mărire sau o mic şorare aparentă a obiectului în imagine, şi dacă nu se poate determina variaţia distanţei focale, atunci întregul sistem se decalibreaz ă şi aplicaţia va oferi rezultate eronate. În cazul de fa ţă s-a ales un obiectiv cu distan ţă focală fixă, pentru a elimina aceste probleme. Tot din aceste considerente s-a ales un obiectiv care s ă aibă un control manual al diafragmei, respectiv a focaliz ării. Şi mai mult, dup ă ce au fost setate valorile convenabile, elementele prin care se realizeaz ă controlul lor pot fi blocate. Astfel, dup ă ce s-a realizat setarea tuturor parametrilor, ne asigur ăm că aceştia vor r ămâne permanent nemodifica ţi. Pasul următor constă în calibrarea camerei video şi a aplicaţiei, moment din care to ţi parametrii vor trebui s ă r ămână constanţi, varierea chiar şi a unuia dintre parametri fiind suficient ă pentru ca aplica ţia să se decalibreze şi implicit să ofere rezultate eronate. Calibrarea
Prin calibrare înţelegem procesul de stabilire a unei rela ţii între un dispozitiv de măsurare şi unitatea de m ăsur ă pe care o va evalua. Acest proces se realizeaz ă prin compararea dispozitivului sau a m ărimii furnizate de un instrument de m ăsur ă, cu un etalon standard ale cărui caracteristici dimensionale sunt cunoscute. Un exemplu banal în acest sens: considerând o
10
bar ă, aceasta poate fi utilizat ă ca instrument de măsur ă dacă îi determinăm lungimea prin măsurarea cu un instrument standard (rulet ă). În cazul aplicaţiilor video industriale, calibrarea const ă în determinarea unei rela ţii între dimensiunea unui obiect, extras ă din imaginea achizi ţionată de camer ă şi dimensiunea obiectului în lumea real ă. O dată stabilită aceast ă relaţie, atât timp cât nu se vor modifica parametrii camerei (distanţă focală, focalizare, distan ţă de lucru, orientare), aceasta va putea fi utilizată pentru a extrage informa ţii dimensionale ale altor obiecte. În practic ă, calibrarea camerelor video se realizeaz ă astfel: în scena vizionat ă de camer ă se amplaseaz ă un etalon asemenea celui din figura 10, pentru care se cunoa şte dimensiunea unui punct (pentru etalonul din figura 10, diametrul unui punct este de 10 milimetri), se achizi ţionează o imagine a acestuia, se introduce prin intermediul software-ului dimensiunea unui punct, iar acesta va stabili rela ţia dintre imaginea văzută a punctului şi dimensiunea acestuia în lumea real ă.
Figura 10. Etalon utilizat în calibrarea camerelor video
industriale
Aplicaţia AdeptSight
Sistemul de vedere artificial ă este livrat împreună cu un soft dedicat sistemelor robotice Adept, denumit AdeptSight. Acest soft permite dezvoltarea rapid ă a unor aplica ţii de vedere artificială robuste şi precise, care includ aplica ţii de inspecţie vizuală a obiectelor cât şi aplicaţii de localizare a obiectelor în scena urm ărită, programarea efectuându-se prin intermediul unei interfeţe grafice simple. În continuare se va prezenta modul de utilizare a acestui soft.
11
Aplicaţiile de vedere artificial ă sunt create şi administrate în fereastra Vision Project a AdeptSight. Pentru a accesa aceast ă interfaţă, se urmeaz ă paşii: - se deschide ecranul Adept. - din meniul ecranului Adept, se selecteaz ă View > AdeptSight, sau se apas ă icon-ul 'Open AdeptSight' din Adept DeskTop toolbar. - se va deschide fereastra Vision Project, similar celei din figura 11. Aplica ţiile de vedere artificială sunt construite şi configurate prin fereastra Vision Project, numit ă şi manager Vision Project.
Manager de Secvenţă Permite administrarea şi editarea secvenţelor ce formează o aplicaţie de vedere artificială
Manager al Dispozitivelor de Sistem Permite administrarea şi
configurarea dispozitivelor implicate în aplicaţia de vedere artificială
Figura 11. Fereastra de control a
sistemului de vedere artificială
Un proiect de vedere artificial ă este format din una sau mai multe secven ţe, care sunt administrate şi rulate din sec ţiunea Manager de Secven ţă al interfeţei proiectului. Din Managerul de secven ţă se deschide Editorul de secven ţă pentru a adăuga şi configura instrumentele de vedere artificială. Din Managerul dispozitivelor de sistem se adaug ă, administrează şi configurează camera video, controllerele, robo ţii şi benzile transportoare implicate în realizarea aplicaţiei, după caz. Înainte de crearea unei noi aplica ţii de vedere artificial ă, vor trebui regla ţi parametrii camerei video, configurate dispozitivele folosite de aplica ţie, şi de asemenea va trebui calibrat sistemul. Pentru a putea regla cu precizie parametrii camerei, va trebui întâi s ă se poată viziona imagini achizi ţionate de aceasta, şi funcţie de imagine, s ă se ajusteze parametrii corespunz ători. În acest sens, se selecteaz ă butonul Camera din managerul dispozitive de sistem – se va afi şa o lista camerelor conectate la calculator. Din lista respectiv ă, dacă sunt conectate mai multe camere, vom selecta camera de interes pentru aplica ţia noastr ă – Basler A601F. Pentru a putea vedea imaginea achizi ţionată de aceasta, se apas ă butonul Live display (afi şaj în timp real). Se va deschide fereastra Live display şi se vor putea urm ări în timp real imaginile achizi ţionate de camer ă. Astfel, efectul obţinut prin modificarea oricăruia dintre parametri va fi imediat vizibil. În acest mod, se va regla focalizarea – se va urm ări ca imaginea s ă fie perfect clar ă, precum şi luminozitatea prin deschiderea sau închiderea irisului – varierea valorii F, astfel încât imaginea să nu fie nici întunecat ă, nici supraexpus ă, iar detaliile obiectelor s ă fie clar vizibile. După ce au 12
fost reglaţi aceşti parametri, elementele prin care se controleaz ă valoarea lor vor fi blocate prin intermediul şuruburilor corespunz ătoare. Figura 12 identific ă aceste comenzi, figura 13 ilustrează fereastra Live display. Butonul de deschidere a ferestrei Live View
Camera Basler A601F Lista camerelor detectate
Figura 12. Deschiderea ferestrei Live View corespunzătoare camerei video industriale Basler A601F
Execuţia unui clic pe butonul drept al mouse-ului va conduce la afişarea opţiunilor pentru această fereastr ă
Figura 13. Fereastra Live View
După ce au fost reglaţi parametrii de luminozitate şi focalizare, se trece la calibrarea camerei video industriale. Pentru aceasta, se folose şte etalonul prezentat în figura 10. De notat c ă acest etalon (numit şi grilă de puncte) este livrat împreun ă cu sistemul şi este un etalon demonstrativ, utilizabil pentru aplica ţii didactice – precizia sa este suficient ă pentru a realiza aplicaţii demonstrative, îns ă nu este suficient de precis pentru a fi utilizat la calibrarea camerelor utilizate în aplica ţii de măsur ă, deoarece imprecizia de m ăsurare indus ă ar fi foarte mare. Pentru aplicaţiile de vedere artificial ă dedicate se utilizeaz ă etaloane mult mai precise şi mai greu de realizat, implicit acestea se achizi ţionează suplimentar. Calibrarea propriu-zis ă se realizează prin selectarea camerei din lista de camere conectate la calculator, apoi activarea butonului „calibrare camer ă” – acesta va conduce la deschiderea interfe ţei de calibrare, sub forma unui dialog (figura 14). Executând pa şii indicaţi de dialogul de îndrumare, se ob ţine calibrarea camerei.
13
Butonul de calibrare a camerei va lansa dialogul de îndrumare
Semnalele de avertizare indică o camer ă necalibrată
Figura 14. Pornirea dialogului de îndrumare pentru calibrarea camerei
Calibrarea propriu-zisă a camerei se realizeaz ă în trei paşi. În prima etapă, este afişată o fereastr ă de dialog precum cea din figura 15-a, prin intermediul c ăreia este chestionat utilizatorul despre modul de achizi ţie a imaginii utilizate pentru calibrare. În majoritatea cazurilor achizi ţia se va realiza pentru un singur cadru de imagine (single grab). În cea de-a doua etapă (figura 15-b), utilizatorul este informat c ă etalonul de calibrare trebuie s ă fie perfect aliniat faţă de cele dou ă axe ale imaginii. Pentru o mai bun ă precizie, etalonul ar trebui s ă acopere tot câmpul de vedere al camerei. Tot în aceast ă etapă, se poate realiza şi o achiziţie a imaginii pentru a verifica alinierea etalonului. În cea de-a treia etap ă se realizează calibrarea propriu-zisă a camerei video industriale. Într-o prim ă fază, se realizeaz ă achiziţia imaginii şi se marchează, de către utilizator, zona de interes din imagine – zona ce con ţine etalonul de calibrare, marcat ă cu un dreptunghi verde în figura 15-c. Tot în figura 15-c, cu ro şu s-au marcat toate contururile găsite în regiunea de interes – în cazul de fa ţă, contururile punctelor negre aflate pe etalon. În aceast ă fază, în partea din stânga a ferestrei se pot distinge: - Dot Pitch – distan ţa în milimetri dintre dou ă puncte de pe etalon, m ăsurată de la centru la centru. Aceast ă informaţie este utilizată pentru a determina coresponden ţa dintre dimensiunea unui obiect din spa ţiul real şi dimensiunea obiectului din imagine. Aceast ă dimensiune este indicat ă într-unul din col ţurile etalonului. - Edge sensitivity – sensibilitatea detec ţiei muchiilor pe parcursul procesului de detectare a punctelor de pe etalon. A şa cum spune şi numele, prin acest parametru se controlează sensibilitatea la detec ţia muchiei, implicit se vor determina mai multe sau mai pu ţine contururi. Este util ă pentru reglajul fin al determin ării punctelor de pe etalon, atunci când programul nu le detecteaz ă în mod automat pe toate. O cre ştere a valorii acestui parametru va ajuta la determinarea punctelor cu contrast redus, îns ă este posibil s ă inducă zgomot în imagine, tradus prin detec ţia de puncte false. O scădere a valorii acestui parametru ar conduce la sc ăderea zgomotului, dar în acela şi timp ar putea s ă „piardă” din punctele de pe etalon. Valoarea setat ă implicit ar trebui să ofere cele mai bune rezultate. - Distortion algorithm – valoarea implicit ă, Model, este recomandat ă pentru majoritatea aplicaţiilor. Metoda LUT este necesar ă doar în cazul unor camere video vectoriale (aplicaţiile de citire a codurilor de bare, de exemplu). După aranjarea scenei şi setarea parametrilor descri şi anterior, se execut ă click pe butonul Calibrate. Ca urmare a execu ţiei procesului propriu-zis de calibrare, se va afi şa fereastra din figura 15-d, în care Calibration State devine verde, iar Average Pixel Width şi Average Pixel Height vor indica ce dimensiune din spa ţiul real îi corespunde unui pixel din imagine. Astfel, din acest moment camera video industrial ă va putea fi utilizată ca instrument de m ăsur ă a dimensiunilor, prin simpla num ărare a pixelilor unui obiect din imagine şi înmulţirea numărului rezultat cu valorile Average Pixel Width şi Average Pixel Height dup ă caz.
14
Figura 15-a. Fereastra de dialog pentru selectarea modului de achiziţie a imaginii.
Figura 15-b. Fereastra de dialog pentru
Figura 15-c. Fereastra de dialog selectarea
Figura 15-d. Fereastra de dialog după
alinierea etalonului.
încheierea procesului de calibrare.
parametrilor de calibrare. Calibrarea cameră – robot
După ce s-a realizat calibrarea camerei de luat vederi, urm ătorul pas const ă în calibrarea camer ă-robot. Prin executarea acestui proces se stabile şte o relaţie de transformare între planul imaginii şi spaţiul de operare al robotului, asigurându-se astfel c ă robotul va manipula cu precizie obiectele v ăzute de camera video. Mai precis, aceast ă calibrare permite aplicaţiei să transforme cu precizie coordonatele din planul imaginii în coordonate ale spa ţiului de operare a robotului. În continuare va fi descris acest proces. Din fereastra principal ă a programului se selecteaz ă butonul Cameras. Din lista de dispozitive afi şată se alege robotul (Robot1). Se poate remarca în dreptul acestuia un simbol de 15
avertizare, prin care utilizatorul este anun ţat c ă nu există o calibrare camer ă-robot. Prin execuţia unui dublu-click pe acest simbol se va lansa dialogul pentru calibrare (figura 16).
Figura 16. Iniţializarea procesului de calibrare camer ă – robot.
În cadrul procesului de calibrare vor fi afi şate mai multe ferestre de dialog. Prin intermediul primei ferestre de dialog se va selecta modul de setare a parametrilor sistemului: prin intermediul unui dialog ajut ător sau direct prin intermediul unei liste (figura 17-a). Dac ă se va opta pentru selec ţia dintr-o listă, se va afişa fereastra din figura 17-b. Parametrii ce trebuie seta ţi sunt următorii: - Modul de fixare a camerei. Exist ă trei configuraţii posibile de montare a camerei: fixă în raport cu baza robotului, montat ă pe extremitatea celui de-al doilea bra ţ a robotului sau montat ă pe terminalul efector al robotului. Se va alege configura ţia utilizată în cadrul aplica ţiei - Tipul spaţiului de operare. Spa ţiul de operare poate fi static, ca de exemplu o masă de lucru, sau dinamic - o band ă transportoare, caz în care este necesar ă şi o calibrare bandă transportoare – robot – sistem de vedere artificial ă. Calibrarea se poate efectua pentru 3 situa ţii: mediu de operare static, band ă transportoare – robot – sistem de vedere artificial ă, doar banda transportoare. - Natura interacţiunii cu obiectul de calibrare. Acesta este un obiect care va fi utilizat pe parcursul procesului de calibrare, trebuie s ă fie asemănător, dar nu neapărat identic, cu obiectele ce vor fi utilizate în aplica ţiile în timp real. Există două feluri de interacţiuni între robot şi obiectul de calibrare: obiectul poate fi manipulat sau atins de c ătre robot, aflându-se plasat în spa ţiul de operare (de exemplu, obiectul se află pe masa de lucru sau pe banda transportoare atunci când se achizi ţionează imaginile); obiectul de calibrare este ata şat de elementul efector al robotului, situa ţie care apare când robotul „ ţine ”obiectul şi îl mişcă prin câmpul de vedere al camerei (de exemplu, inspec ţia vizuală „din mers”). - Natura instrumentului ata şat robotului. În mediul industrial se întâlnesc dou ă clase mari de instrumente ce pot fi ata şate robotului: instrumente de manipulare, respectiv unelte care să execute diverse opera ţiuni – pistol de vopsit, pistol de sudur ă, etc. Corespunzător, utilizatorul este chestionat care este natura instrumentului ata şat: instrument care poate manipula obiecte, sau instrument care poate ar ăta către obiecte. - Spaţiul de lucru al robotului. Se specific ă natura spa ţiului de lucru, dac ă aceasta conţine obstacole, nu este paralel ă cu planul XY al robotului – caz în care procesul de calibrare trebuie executat manual, sau dac ă robotul se poate mi şca liber prin spaţiul de operare – calibrarea se poate face automat. - Tipul instrumentului ataşat robotului. Pentru a se realiza o calibrare corect ă a sistemului, trebuie cunoscut dac ă efectorul este perfect centrat în raport cu elementul terminal al robotului, sau dac ă acesta prezint ă un offset ce trebuie luat în considerare.
16
Figura 17-a. Selectarea procedurii de calibrare
Figura 17-b. Selectarea parametrilor calibr ării
După alegerea acestor parametri, va fi afi şată o fereastr ă intermediar ă, de avertizare a utilizatorului asupra normelor de securitate şi siguranţă (figura 18-a), după care se va afi şa fereastra de setare a parametrilor robotului pe parcursul procesului de calibrare (figura 18-b). Se vor alege: - robotul care va fi supus calibr ării (în eventualitatea existen ţei mai multor roboţi conectaţi la sistem) - viteza cu care robotul va efectua mi şcările, ca procent din viteza total ă. Din motive de siguran ţă, valoarea implicită a acesteia este 10%, îns ă poate fi modificată de utilizator. - tipul mişcărilor executate de robot: „moves” – este setarea implicit ă, va determina mişcarea robotului pe cel mai scurt drum între punctul ini ţial şi cel final, realizând simultan şi orientarea efectorului; „move” – utilizarea acestei setări va determina deplasarea robotului pe o traiectorie „sacadat ă”, obţinută din interpolarea pozi ţiei articulaţiilor. - controlul gripperului. În aceast ă secţiune se va defini modul de control al gripperului: standard, dac ă gripperul ataşat este unul furnizat de Adept, sau se pot defini semnale numerice în cazul utiliz ării unui alt gripper – în acest caz, -92 şi 92. Definirea acestor semnale poate fi verificat ă prin intermediul butonului „Open Gripper”
Figura 18-b. Selectarea parametrilor
Figura 18-a. Avertizare asupra normelor de siguranţă
robotului pe parcursul procesului de calibrare
17
După selectarea acestor parametri, se trece la definirea modelului obiectului utilizat pentru calibrare în cazul prezentat. Procesul de calibrare trebuie s ă genereze acest model pentru a putea recunoaşte obiectul utilizat ca referin ţă în definirea punctelor de calibrare necesare. Acest model va exista doar pe durata calibr ării, dacă va fi utilizat în procesul industrial va trebui redefinit. Într-o primă fază se comand ă scoaterea robotului din câmpul de vedere al camerei video industriale, astfel încât acesta s ă nu fie un factor perturbator în definirea modelului. Apoi se va crea modelul prorpiu-zis. Acesta trebuie s ă aibă un contrast bun fa ţă de fundal, s ă nu ocupe mai mult de 50% din câmpul de vedere al camerei şi să fie amplasat cât mai central în acesta. În imaginea afişată pe monitor va fi desenat un dreptunghi verde (figura 19-a) care va trebui ajustat în dimensiuni astfel încât s ă încadreze cât mai bine obiectul; acest dreptunghi marcheaz ă regiunea din imagine unde se vor extrage contururile obiectului, pentru a fi folosite la crearea modelului – din acest motiv, un dreptunghi mai „cuprinz ător” va conduce la apari ţia unor contururi false ce vor fi incluse în model. În pasul urm ător modelul realizat va fi marcat cu linie albastr ă (figura 19-b). Dacă modelul rezultat nu este unul reu şit, utilizatorul se poate întoarce la pasul precedent şi poate ajusta pozi ţia piesei, dimensiunea regiunii de interes (marcat ă cu dreptunghi verde), etc. Procesul de calibrare continu ă cu definirea spa ţiului de operare al robotului, mai precis definirea zonei din planul-imagine, în care robotul poate executa mi şcări (figura 19-b). Din nou, acesta va fi marcat cu un dreptunghi verde, a c ărei poziţie şi dimensiune va putea fi ajustat ă de utilizator. Prima relaţie între planul imaginii şi spaţiul de operare a robotului se stabile şte prin definirea modelului de prindere al obiectului. Acesta are definit un model util în recunoa şterea sa de c ătre sistemul de vedere artificial ă, însă este necesar şi un model de prindere, astfel încât robotul s ă fie capabil s ă manipuleze piesa. Pentru definirea acestuia, se aduce manual robotul în pozi ţia în care s ă prindă piesa. În acest moment s-a realizat o primă transformare între sistemul coordonatelor ata şat imaginii şi sistemul coordonatelor ata şat robotului. Ulterior robotul va muta piesa în diverse regiuni din spa ţiul de operare definit anterior şi va determina o transformare globală între cele dou ă sisteme de coordonate mai sus amintite, cu aceasta încheindu-se procesul de calibrare camer ă-robot.
Figura 19-b. Modelul rezultat şi definirea spaţiului de operare al robotului
Figura 19-a. Definirea modelului
obiectului utilizat pentru calibrare
18