Vous êtes sur la page 1sur 116

Metode de Programarea pentru Sisteme Robotizate - C1

1. INTRODUCERE N PROGRAMAREA SISTEMELOR ROBOTIZATE

1.1 Arhitectura unui sistem robotizat


Prin cuvntul robot, cel mai frecvent, se nelege partea care execut efectiv manipularea, adic structura mecanic. Pentru specialiti n domeniul roboticii, termenul de robot are o sfer mult mai mare de nelegere. Pentru a ntregii imaginea despre robot este necesar s se analizeze i alte aspecte, componente, care permit funcionarea i utilizarea acestuia. Dac se privete robotul industrial ca un sistem, atunci acesta se poate reprezenta folosind o schem simpl, care cuprinde cele patru componente principale (Fig. 1.1).
Comanda 1. Sistem mecanic articulat (robotul) Sistem de transmisie Traductoare (lanuri, angrenaje,etc) interne Sistem de acionare (motoare)

Informaii

Model al robotului Model al mediului 3. Calculatoare Descriere lucrare funcie obiectiv Algoritm de comand

Interaciune

Informaii

Limbaje de programare

2. Mediu

Traductoare externe

4. Lucrare de realizat

Fig. 1.1 Arhitectura unui sistem robotizat Pentru o cunoatere mai bun a structurii unui sistem robotizat este necesar o analiz a celor patru componente, care formeaz acest sistem. a) Sistemul mecanic articulat echipat cu partea de acionare i transmisie (motoare, organe de transmisie), este numit frecvent robotul propriu-zis sau manipulatorul robotului. Pentru a cunoate n fiecare moment poziia articulaiilor, robotul este prevzut cu traductoare. Aceste traductoare se folosesc i pentru corectarea poziiei articulaiilor. Ele pot fi poteniometre, codori optici, traductoare de for, .a. Traductoarele dau informaii asupra configuraiei articulaiilor structurii mecanice la un moment dat, n raport cu o configuraie de referin numit configuraia de iniiere.

Metode de Programarea pentru Sisteme Robotizate - C1 Sistemul mecanic al robotului asigur realizarea micrii acestuia i transmiterea energiei mecanice necesare poziionrii elementului final al structurii. n continuare se vor prezenta o serie de termeni utilizai frecvent n analiza sistemului mecanic. Aceti termeni sunt:

Baza, suport pe care este situat primul element al structurii articulate; Platform mobil, numai dac manipulatorul este montat pe un astfel de suport; Mecanismul de ghidare, care este format din mecanismul de poziionare i mecanismul de orientare. Mecanismul de ghidare are ca obiectiv poziionarea i orientarea efectorului final n punctul de coordonate precizate de utilizator. Mecanismul de poziionare realizeaz modificarea poziiei punctului caracteristic, ataat obiectului manipulat. Mecanismul de orientare are ca scop orientarea obiectului manipulat dup direcia precizat. Situarea obiectului manipulat n spaiul tridimensional se stabilete prin poziia i orientarea obiectului i se poate defini cu ajutorul poziiei punctului caracteristic i a orientrii dreptei caracteristice. Efectorul final este ultimul element al structurii mecanice de care se ataeaz dispozitivul de prehensiune sau scula.

Fig. 1.2 Prin punct caracteristic se nelege un punct al obiectului manipulat, folosit pentru definire acestuia. Dreapta caracteristic este dreapta ce trece prin punctul caracteristic, iar dreapta auxiliar este dreapta perpendicular, n punctul caracteristic, pe dreapta caracteristic. n fig. 1.2 se prezint structura sistemului mecanic. n aceast structur sunt puse n eviden cele 5 grade de libertate ale mecanismului. Numele cuplelor de rotaie conductoare sunt n coresponden cu pri ale corpului uman, aa cum se arat n fig. 1.3. n aceast figur, structura mecanic a robotului este o stilizare a tipului umanoid.

Metode de Programarea pentru Sisteme Robotizate - C1 b) Mediul nconjurtor: este universul n care se gsete prima component, sistemul mecanic. Funcia robotului nu se definete numai prin natura operaiilor pe care le execut, ci i prin natura mediului n care le execut, Pentru roboii cu post fix (care nu se deplaseaz) mediul se reduce la spaiul util al robotului, iar pentru cei mobili, universul de aciune este mai mare. ntre structura sistemului mecanic i mediul nconjurtor exist o interaciune direct.

Fig. 1.3 n timpul aciunii robotului trebuie avut n vedere obstacolele care stau n calea elementelor mobile ale structurii mecanice. Pentru a evita obstacolele, robotul trebuie s culeag informaii din mediul su de aciune cu ajutorul senzorilor. c) Obiectivul de realizat: este sarcina (funcia obiectiv, lucrarea) pe care trebuie s o ndeplineasc robotul fizic. Acest obiectiv trebuie descris, definit, pentru a putea s fie atins. Acest lucru se face folosind diferite moduri de comunicare cu robotul: prin nvare (cnd se arat robotului ce are de fcut), n scris (i se scrie despre obiectiv ntr-un limbaj pe care l poate nelege). Cteva exemple de lucrri pe care le poate efectua robotul n domeniul industrial: deplasare de obiecte (ncrcare descrcare maini, paletizare, etc.), montaj (asamblare reversibil a pieselor componente), asamblare fix (sudur, lipire, etc.), msurtori, prelucrare, ndoire, vopsire a unor obiecte. d) Calculatorul sau Creierul robotului: este organul robotului care analizeaz informaiile introduse de operator sau cele primite de la senzori interni sau externi. Pentru roboii mai puin avansai tehnic, cel mai des, este un automat programabil, iar pentru roboii evoluai, este un calculator sau un grup de microprocesoare. Analiznd n fiecare moment al aciunii informaiile transmise de programul de lucru, introdus de operator, de senzori interni i externi i apreciind astfel starea robotului, starea mediului i 3

Metode de Programarea pentru Sisteme Robotizate - C1 obiectivul ce trebuie atins. Calculatorul emite comenzi (semnale pentru motoare) care vor determina aciunea urmtoare a robotului fizic pentru realizarea sarcinii ce i se cere. Creierul robotului, ca i la om, are un rol deosebit de important. El stocheaz n memoria sa: - un model al robotului fizic care cuprinde relaiile ntre semnalele de excitare ale sistemului de acionare i deplasrile robotului ca rspuns la aceste semnale; - un model al mediului, care cuprinde o descriere a spaiului n care lucreaz; de exemplu zonele cu obstacole, consistena obiectelor ce trebuie manevrate, etc. - programe care s-i permit s neleag ce obiectiv are de atins; - programe care s-i permit comanda robotului fizic dac acesta realizeaz obiectivul corespunztor. Desigur nu toi roboii industriali au toate componentele amintite, componenta referitoare la mediu lipsete n cazul sistemului robot industrial clasic. Robotul industrial clasic nu implic dect trei din elementele enumerate mai sus: - structura mecanic (robotul fizic); - calculatorul; - sarcina sau obiectivul. Acest robot nu posed nici un mijloc de apreciere asupra strii mediului n care lucreaz pentru c nu este echipat cu senzori externi (fig. 1.4, bucla extern lipsete).

Comanda Structura mecanic Informatie Calculatorul

Limbaje de programare Lucrare (funcia obiectiv)


Fig. 1.4 Calculatorul este astfel amplasat pe un automat programabil mai simplu, dar n acest caz, trebuie luate msuri de prevenire n avans, pentru toate situaiile care pot aprea n mediul robotului. Robotul nu mai are un model al mediului, dar va avea un program cu toate micrile secveniale pe care va trebui s le fac structura sa mecanic. Astfel de roboi se justific n practic n urmtoarele situaii: atunci cnd obiectivul rmne mult timp acelai i cnd micrile ce trebuiesc executate se repet, din punct de vedere geometric, riguros; atunci cnd analizarea automat a mediului prezint mai puin importan n comparaie cu cheltuielile ce ar trebui fcute pentru o dotare performant cu senzori a robotului, 4

Metode de Programarea pentru Sisteme Robotizate - C1 tiind c sistemul de analiz automat a mediului sunt foarte costisitoare i deocamdat, cu fiabilitate sczut. Roboii industriali clasici instalai reprezint nc peste 80 % din parcul de roboi din ntreaga lume. n ultimii ani tot mai muli roboi au fost dotai cu sisteme de vedere (cu performane limitate) sau cu sisteme de msurare a eforturilor. n literatura de specialitate se consider c un robot este format dintr-un numr de elemente distincte, fiecare avnd importana sa. Principalele pri componente ale unui sistem robotizat, sunt: sistemul mecanic conine lanuri cinematice nchise sau deschise, n cazul unui robot de tip manipulator. Elementele lanurilor cinematice sunt legate prin cuple cinematice, care determin gradul de mobilitate; sistemul de acionare contribuie la punerea n micare a robotului. Acest sistem este format din motoare i transmisii mecanice. n mod curent, ca sistem de acionare se folosesc actuatori electrici, hidraulici sau pneumatici; sistem senzorial format din traductoarele de poziie i de vitez, msoar poziia i sensul de deplasare al elementelor cinematice. Pot fi plasate traductoare de poziie i de for n cuplele cinematici, senzori tactili pe degetele de apucare, camere video pe o platform mobil, etc. sistemul de comand (conducere) citete informaiile de la senzori i transmite semnale de control ctre actuatori, interacionnd cu sursa de comand a operatorului. Elementele prezentate mai sus, arat c robotica este un domeniu n care se mbin cunotine din domenii ca: inginerie mecanic, inginerie electric, tiina calculatoarelor i chiar biomecanic. Mecatronica descrie, n mod general, modul de concepere, control i calculul oricrui sistem electromecanic. Filozofia mecatronicii const n faptul c, toate aceste aspecte joac un rol n conceperea unui asemenea sistem. Pentru ca un proiectant s reueasc n acest domeniu, el trebuie s stpneasc fiecare dintre aspectele menionate. Robotica poate fi privit ca un prim exemplu al mecatronicii. De aceea, n mod similar, pentru ca cineva s aib succes n robotic, trebuie s se obinuiasc cu fiecare dintre aceste aspecte.

1.2 Aspecte generale ale programrii roboilor

Interfaa operatorului unui robot industrial devine extrem de important ca i manipulatorul i alte automate programabile care sunt introduse din ce n ce mai mult n cerinele aplicaiilor

Metode de Programarea pentru Sisteme Robotizate - C1 industriale. Cele mai multe tendine n proiectarea i folosirea roboilor industriali se orienteaz pe aspectul modernizrii interfeei robotului cu operatorul. Roboii care folosesc programarea fix se difereniaz fa de cei care utilizeaz o programare flexibil. Prin programarea roboilor se urmrete nu numai programarea micrilor, ci i utilizarea senzorilor i comunicarea cu ali factori de automatizare. n acest fel roboii se pot adapta variatelor sarcini impuse de locul de activitate. Cele trei nivele ale programrii roboilor n literatura de specialitate au existat multe stiluri ale interfeei cu operatorul dezvoltate pentru programarea roboilor. nainte de dezvoltarea calculatoarelor n industrie, controlul roboilor cuprindea adesea secvene folosite de controlul automatizrii fixe. Abordrile moderne sunt orientate spre programarea calculatoarelor i soluii n programarea roboilor. A. Programarea prin nvare La nceputul programrii roboilor se folosea o metod care se numete programare prin nvare. Aceast metod folosete pentru realizarea micrii unui robot ctre un punct int (scop) dorit, nregistrarea n memorie a poziiilor intermediare i citirea coordonatelor acestor poziii cnd se urmrete repetarea micrii. n timpul fazei de nvare, operatorul ar putea ghida oricare robot cu ajutorul unei cutii cu butoane. Aceast cutie permite controlul fiecrei cuple cinematice sau fiecare grad de libertate n coordonate Carteziene. Astfel de programe permit testarea micrilor i ramificarea lor. Ele sunt introduse n memorie foarte uor, fr a solicita cunoaterea unui limbaj de programare. Unele cutii cu butoane au un display alfanumeric. B. Limbaje de programare explicite pentru robot Odat cu utilizarea calculatorului n industrie tendina a fost ca programarea roboilor s se realizeze prin programe scrise n limbaje de programare specifice calculatoarelor. n mod obinuit, aceste limbaje de programare au caracteristici speciale care se aplic programrii roboilor i sunt numite limbaje de programare pentru robot (RPL). Cele mai multe sisteme care vin echipate cu un limbaj de programare robot au ca interfa o cutie cu butoane. Limbajele de programare pentru robot au luat mai multe forme. Aceste limbaje se pot mpri n trei categorii: B.1. limbaje specializate pentru robot; B.2. bibliotec robot pentru un limbaj de calculator existent; B.3. bibliotec robot pentru un nou limbaj cu scop general.

Metode de Programarea pentru Sisteme Robotizate - C2

1. INTRODUCERE N PROGRAMAREA SISTEMELOR ROBOTIZATE 1.2 Aspecte generale ale programrii roboilor industriali (continuare)
B.1. Limbaje specializate pentru robot. Aceste limbaje de programare pentru robot au fost construite prin dezvoltarea a unui limbaj complet nou, dei se adreseaz unei arii de roboi specifici, poate fi considerat un limbaj general de programare pe calculator. Un exemplu este limbajul VAL dezvoltat pentru controlul roboilor industriali construii de Unimation. VAL a fost dezvoltat n special ca limbaj de control al manipulatoarelor. Ca limbaj general de programare pe calculator, el a fost considerat ca un limbaj slab. De exemplu, acest limbaj nu suport numere cu virgul mobil sau iruri de caractere, i subrutinele nu pot permite argumente. O versiune mai nou, V II, furnizeaz aceste caracteristici. Concretizarea actual a acestui limbaj; V +, include multe caracteristici noi. Un alt exemplu al limbajului specializat pentru robot este AL, dezvoltat la Stanford University. Dei limbajul AL este acum o relicv a trecutului, el furnizeaz un bun exemplu a acestor caracteristici care nu s-au gsit n cele mai moderne limbaje (controlul forei, paralelism). Pentru c acest limbaj a fost construit n mediu academic, sunt referine folositoare pentru descrierea lui. Din aceast cauz, se fac referiri la acest limbaj de programare pentru robot. B.2. Bibliotec robot pentru un limbaj de calculator existent Aceste limbaje de programare pentru robot au fost dezvoltate pornind cu un limbaj popular de calculator (de exemplu Pascal, Basic) i adugnd o bibliotec de subrutine specifice pentru robot. Operatorul (utilizatorul) scrie un program Pascal fcnd frecvent uz de apelri la pachetul de subrutine predefinite pentru sarcinile specifice robotului. Un exemplu este AR BASIC de la American Cimflex, care cuprinde n esen o bibliotec de subrutine pentru o implementare standard BASIC. JARS, dezvoltat de NASA Jet Propulsion Laboratory, este un exemplu de limbaj de programare pentru roboi bazat pe limbajul de calculator PASCAL. B.3. Bibliotec robot pentru un nou limbaj cu scop general Aceste limbaje de programare pentru robot au fost dezvoltate mai nti pornind de la un nou limbaj cu scop general, ca un program de baz i apoi furniznd o bibliotec de subrutine predefinite specifice robotului. Exemple de limbaje de programare a roboilor sunt: RAPID dezvoltat de ABB Robotics, AML dezvoltat de IBM i KAREL dezvoltat de GMF Robotics. 1

Metode de Programarea pentru Sisteme Robotizate - C2 Studii ale aplicaiilor program actuale pentru celule de lucru robotizate au artat c un mare procent de limbaje de exprimare nu sunt specifice robotului. n schimb, foarte multe programe pentru robot folosesc iniializarea, testarea logic i ramificarea micrilor, comunicarea, etc., din limbajele clasice pe calculator. C. Limbaje de programare nivel sarcin Al treilea nivel pentru metodologia programrii robotului este prezentat prin limbajele de programare nivel sarcin. Aceste limbaje permit utilizatorului (operatorului) s comande n mod direct etapele dorite ale sarcinii; mai precis s specifice detalii pentru fiecare aciune a robotului pe care urmeaz s o ia. ntr-un astfel de sistem, utilizatorul este capabil s includ instruciuni n aplicaia program la un nivel nalt dect ntr-un limbaj de programare explicit pentru robot. Un sistem de programare nivel sarcin pentru robot trebuie s aib abilitatea s fac multe planificri a sarcinilor n mod automat. De exemplu, dac o instruciune apuc tija este realizat, sistemul trebuie s planifice o cale (traiectorie) pentru robot care evit coliziunea cu orice obstacol din mediul nconjurtor; robotul trebuie s aleag n mod automat un bun loc de prindere pe tij i trebuie s-l apuce. ntr-un limbaj de programare explicit pentru robot, toate aceste alegeri trebuie s le fac programatorul. Hotarul dintre limbajele de programare explicit pentru robot i limbajele de programare nivel sarcin este complet distinct. Progresul a fost fcut pentru limbajele de programare explicit a robotului. Adevrata programare nivel sarcin a robotului nu exist nc, dar aceast programare este tem activ de cercetare i continu ca o cercetare actual n prezent. Exemplu de aplicaie n fig. 1.5 se prezint o celul de lucru automatizat care completeaz un mic subansamblu ntr-un proces ipotetic de fabricaie. Celula de lucru const dintr-un transportor (conveier) sub controlul unui calculator care distribuie o pies; o camer video conectat la un sistem de vedere, folosit s lucreze piesa de pe transportor, un robot industrial (PUMA 560 este prezentat) echipat cu un senzor de for la ncheietura minii; o mic alimentare localizat pe suprafaa de lucru care aprovizioneaz o alt parte a robotului, un calculator care controleaz apsarea i care poate fi ncrcat sau descrcat de ctre robot; o palet pe care robotul plaseaz ansamblul terminat. ntregul proces este controlat de ctre controllerul (conductorul) robotului ntr-o succesiune, dup cum urmeaz: 1. Transportorul este semnalat s porneasc; el este oprit cnd sistemul de vedere raporteaz c o pies a fost detectat pe transportor.

Metode de Programarea pentru Sisteme Robotizate - C2 2. Sistemul de vedere apreciaz poziia piesei i orientarea pe transportor i inspecteaz piesa pentru defecte, ca de exemplu numrul greit de guri.

Fig. 1.5 3. Folosind ieirea sistemului de vedere, robotul apuc piesa cu o for specificat. Distana dintre degete este verificat pentru a asigura c piesa a fost corect apucat. Dac nu este apucat corect, robotul se mic neobinuit i sarcina de vizualizare (vedere) este repetat. 4. Piesa este plasat n dispozitivul de fixare de pe suprafaa de lucru. La acest punct, transportorul poate fi semnalat s nceap din nou pentru urmtoarea pies. Acesta este pasul 1 i 2, care ncepe n paralel cu urmtorii pai. 5. O tij este prins de pe alimentator i inserat parial ntr-o gaur teit (ascuit) n pies. Controlul forei este folosit s execute aceast inserare i s execute o simpl verificare a operaiei. Dac alimentatorul cu tije este gol, un operator este ntiinat i robotul ateapt pn se comand reluarea activitii de ctre operator. 6. Ansamblul pies tij este apucat de robot i plasat n pres. 7. Presa este comandat s acioneze i ea preseaz tija complet n pies. Presa semnaleaz c activitatea este complet i piesa este plasat napoi n dispozitivul de fixare pentru o inspecie final. 8. Prin controlul forei, ansamblul este verificat pentru o inserie corespunztoare a tijei. Robotul simte fora de reaciune cnd el preseaz oblic pe tij i poate s fac mai multe verificri prin care s descopere ct de departe (mult) a ieit tija n afar fa de pies. 9. Dac ansamblul este apreciat s fie bun, robotul plaseaz partea terminat n urmtorul loca al paletei. Dac paleta este plin, atunci operatorul este semnalat. Dac ansamblul este defect, atunci el este aruncat ntr-o lad de gunoi. 3

Metode de Programarea pentru Sisteme Robotizate - C2 10. Odat pasul 2 (Step 2) este realizat, se trece la pasul 3 (Step 3). Acesta este un exemplu de sarcin care este posibil pentru roboi industriali de astzi. Este clar c definirea unui astfel de proces prin tehnica nvare prin a arta nu este probabil realizabil (posibil). De exemplu, n legtur cu paletele, este laborios c trebuie s nvee toate locaiile compartimentelor de pe palet; este mult mai preferabil s nvei numai locaia colului i apoi s calculeze celelalte pe baza cunotinelor dimensiunilor paletei. Acest fel de aplicaie necesit un limbaj de programare pentru robot care se apropie de descrierea procesului. Pe de alt parte, aceast aplicaie este prea complex pentru orice limbaj nivel sarcin existent, cu care s colaboreze n mod direct.

1.3. Programarea general. Nivele de programare


Sistemul de comand al robotului modern este realizat cu ajutorul unuia sau mai multe microprocesoare programate de constructor s opereze pe baza unor programe de comand scrise ntr-un cod main propriu. Din acest punct de vedere, cel mai simplu mod de programare a unui robot pare a fi scrierea programului direct n limbajul main i rularea lui de ctre unitatea de comand. Aceasta nseamn c toate secvenele de micare i datele furnizate de ctre sistemul senzorial trebuie codate n datele binare recunoscute de ctre microprocesor (1 i 0), pentru a putea, apoi, fi prelucrate de ctre acesta cu ajutorul setului propriu de instruciuni. Utilizarea programrii n limbaj main s-a dovedit a fi extrem de delicat, drept pentru care au fost dezvoltate limbaje de programare evoluate, care s permit scrierea mai facil i mai fiabil a programelor. Indiferent de nivelul limbajului de programare folosit pentru a descrie sarcina de lucru impus robotului, este evident c, n momentul execuiei, microprocesorul va utiliza o reprezentare a programului n limbajul main propriu, foarte diferit de aspectul iniial al acestuia. Apare necesar deci traducerea programului scris de utilizator ntr-unul interpretabil de ctre sistemul de comand, acest lucru se poate realiza pe mai multe ci: fiierul program surs scris n limbajul evoluat este tradus de ctre un compilator n codul main recunoscut de unitatea de comand; fiierul program surs este compilat ntr-un cod intermediar de nivel semantic sczut care este apoi interpretat i executat de ctre unitatea de comand, cazul limbajelor LM, RPL, RAIL;

Metode de Programarea pentru Sisteme Robotizate - C2 fiierul program surs este interpretat direct de ctre unitatea de comand i executat, cazul limbajelor VAL II, AML II. Prin interpretor se nelege un program special rezident n memoria unitii de comand, care decodeaz instruciunile programului utilizator i care piloteaz diferitele aciuni ale robotului. Marea majoritate a limbajelor de programare sunt de tip interpretat, n care programul nsrcinat cu execuia trateaz n mod secvenial fiecare instruciune nainte de a trece la urmtoarea. Instruciunile oricrui limbaj textual de programare trebuie s conin elemente care s descrie: traiectoriile de realizat; geometria pieselor; informaiile primite de la sistemul senzorial; structura programului (subprograme, salturi, cicluri); operatori aritmetici. n funcie de bogia mijloacelor de expresie informatice puse la dispoziia utilizatorului limbajele de programare se mpart n trei categorii (Tabelul 1.1). Tabelul 1.1 Principalele limbaje de programare comerciale i roboii asociai Limbajul de programare ARLA IRL (1980) LPR (1983) SIGLA (1975) SERF Robotul care dispune de limbajul respectiv ASEA (ABB) roboi MICROSOFT roboi ACMA (cu comanda V5) roboi OLIVETTI roboi SCARA (SANKYO) Limbaje de nivel informatic nalt LM VAL II AML KAREL roboi SCEMI cu dulapuri de comand ACOR i AVICOR roboi STAUBLI, UNIMATE, ADEPT Limbaje pentru celule robotizate roboi IBM roboi GMF Limbaje srace n mijloace informatice

1. Limbajele srace n mijloace informatice (cu posibiliti de tip BASIC) sunt limbaje cu variabile de tip unic, n general ntreg, condiionri de tip IF...THEN i de salt necondiionat de tip GO TO. Se pot folosi subprograme care nu permit ns transmiterea unor parametri. Structura 5

Metode de Programarea pentru Sisteme Robotizate - C2 programului este liniar, iar poziiile de atins sunt precizate sub forma coordonatelor articulate, fie sub form numeric, fie fcndu-se referine la poziii memorate prin nvare. 2. Limbaje de nivel nalt ofer structuri de date predefinite clasice ct i specifice roboticii cu structuri inspirate din limbajul PASCAL. 3. Limbajele de programare pentru celule robotizate, care spre deosebire de precedentele ofer mecanisme evoluate de evaluare a mediului nconjurtor i permite supervizarea unui ansamblu de aciuni ct i cooperarea ntre acestea. Diferitele limbaje de programare se mai mpart n 4 nivele de descriere a sarcinilor impuse robotului, care vor fi tratate n cele ce urmeaz: - nivel 1 sau nivelul acionrilor; - nivel 2 sau nivelul efectorilor; - nivel 3 sau nivel obiect; - nivel 4 sau nivel obiectiv. Nivelul acionrilor (nivelul 1 de programare) Acest nivel al limbajelor de programare este nivelul inferior, utilizatorul are posibilitatea s programeze doar motoarele de acionare de o manier coordonat sau nu. Se mai poate preciza eventual timpul de realizare al unei micri, n caz contrar, acesta este calculat i minimizat de ctre interpretor. Acest tip de programare este inspirat din limbajele de comand numeric pentru mainile unelte i se utilizeaz n general pentru roboi cartezieni sau pe roboi de asamblare foarte simpli. Interpolarea liniar i circular nu sunt disponibile dac sunt comandate mai mult de trei axe de micare. Programarea const n pilotarea manual a robotului pn n configuraiile specifice executrii sarcinii de lucru i memorarea acestora cu ajutorul informaiilor furnizate de traductorii plasai la nivelul fiecrui motor. Programul va conine succesiunea acestor configuraii, permind i eventuale cicluri, precum i testarea informaiilor primite de la unii traductori. Dou exemple dintre limbajele de programare de nivel 1 sunt SIGLA (SIGma Language) dezvoltat de Olivetti pentru roboi SIGMA i AML (A Manufacturing Language) pus la punct de IBM i echipnd roboii IBM 7655 i gama SCARA fabricat n Japonia de ctre Sankyo.

Metode de Programarea pentru Sisteme Robotizate - C3

1.3. Programarea general. Nivele de programare (continuare)


Nivelul efectorilor (nivelul 2 de programare) Descrierea sarcinii impuse robotului const ntr-o secven de instruciuni care definesc micrile i operaiile realizate de ctre efector. Prin efector se nelege organul terminal de lucru cu care este echipat robotul (mna mecanic, pistol de vopsire, etc.). n acest mod operatorul poate utiliza, pentru programarea deplasrilor, un sistem de coordonate operaionale mult mai apropiat de spaiul real de lucru (coordonate carteziene, cilindrice, unghiurile lui Euler, etc.), dect sistemul coordonatelor articulare. Utilizatorul programeaz secvena de micri nu prin comanda direct a motoarelor de acionare, ci direct asupra organului terminal. Practic operatorul piloteaz un sistem de referin ataat organului terminal ntr-un sistem de coordonate de baz al braului robotului. Aceast situaie este convenabil pentru roboii care nu folosesc coordonatele carteziene dar i pentru cei cartezieni, n cazul cnd sunt necesare rotaii ale ncheieturii robotului. Totodat este posibil alegerea unui centru de rotaie pentru micrile de orientare ale sculei diferit de centrul ncheieturii robotului, ceea ce permite separarea aciunilor de deplasare a sculei de cele de orientare. Se poate programa astfel punctul caracteristic al unei scule de lucru pe o traiectorie de interpolare liniar sau circular simultan cu schimbarea orientrii acesteia pe parcursul deplasrii. Operaiile pe care trebuie s le efectueze scula (prindere, desprindere, sudare, vopsire, etc.) sunt precizate cu instruciuni specifice, n funcie de necesiti. Programul editat pentru organul efector este interpretat i transformat ntr-un program explicit pentru motoarele de acionare de ctre sistemul de comand. Aceast procedur implic prezena unui convertor de coordonate care s realizeze transformarea geometric ntre sistemul de referin de baz i configuraiile articulare, pe baza unui model geometric al robotului. Acest nivel de programare permite utilizarea informaiilor provenite de la sistemul senzorial, iar programele se pot transfera de la un tip de robot la altul. Dezavantajele principale vizeaz, n principal, urmtoarele aspecte: programul trebuie s conin i s prevad n mod explicit i succesiv toate evenimentele ce pot interveni n execuie; operatorul trebuie s dispun de o descriere cantitativ foarte precis a mediului de lucru; programele conin un numr mare de linii, chiar pentru operaii simple; nu pot fi coordonate simultan mai multe mini ale roboilor industriali.

Metode de Programarea pentru Sisteme Robotizate - C3 Nivelul obiect (nivelul 3 de programare) Programarea la acest nivel presupune definirea sarcinii de lucru prin instruciuni care definesc operaiile ce trebuiesc executate asupra obiectelor, independent de robot, motoarele de acionare sau organul terminal. Scopul acestor limbaje este de a pune la dispoziia programatorului mijloace care s-i permit s nu ia n considerare detaliile de manipulare i execuie. Astfel programatorul neglijeaz complet micarea robotului i indic doar deplasarea elementar a obiectului, spre exemplu: PLASAEZ OBIECTELE 1, 2 I 8 PE SUPORTUL 10. Fraza de comand este transformat prin compilare ntr-un program la nivelul efectorilor (de tip VAL II sau LM), care, apoi, este transformat (post processing) n comenzi n limbaj main pentru motoarele de acionare, astfel nct s se realizeze traiectoria calculat de deplasare i s se evite coliziunile. Dac programatorul nu ia n considerare micrile, n schimb, la nivelul compilatorului trebuie s se cunoasc, n cele mai mici detalii, geometria obiectelor de manipulat i a organului terminal prin memorarea acestora n faza anterioar programrii. n timpul scrierii programului, compilatorul verific sintaxa instruciunilor i realizeaz o simulare intern a execuiei, semnaliznd operatorului eventualele erori sau incompatibiliti. Acest mod de programare este implicit, spre deosebire de programarea explicit din nivelele precedente i se utilizeaz pentru roboii care efectueaz un numr mic de operaii (spre exemplu montaje de micromotoare, aparate de msur, etc.). Cel mai cunoscut limbaj de nivel 3 este AUTOPASS (AUTOmated Parts Assembly System), limbaj experimental propus de IBM n 1977 pentru asamblarea robotizat. Alte sisteme care au mai fost dezvoltate sunt LAMA, RAPT, dar cu utilizare foarte restrns. Nivelul obiectiv (nivelul 4 de programare) Programarea la acest nivel este de fapt o generalizare a modului precedent, prin specificarea doar a obiectivului final de realizat ntr-o faz a operaiei, fr a detalia toate etapele intermediare. Bineneles, idealul ar consta n a pune la dispoziia programatorului mijloacele care s-i permit s specifice, cu ajutorul unor expresii adecvate, scopul global al programului, spre exemplu, folosirea unor instruciuni de tipul: MONTEAZ ANSAMBLUL CARCAS. Pentru executarea acestei instruciuni trebuie definite anterior toate elementele componente ale carcasei, cu toate datele lor caracteristice, ordinea i modul de asamblare pentru fiecare component. Desfurarea programului are loc dup urmtoarele etape mari: 2 compilarea programului la nivel obiectiv ntr-un limbaj de nivel efector;

Metode de Programarea pentru Sisteme Robotizate - C3 interpretarea i verificarea sintaxei i semanticii frazelor de comand; compilarea n limbaj main i simularea programului pe un monitor, astfel nct programatorul s poat interveni i depana erori. Simularea se bazeaz pe modelarea geometric, cinematic i dinamic a robotului i pe folosirea informaiilor primite din partea sistemului senzorial. Limbajele din aceast categorie nu au un caracter global, ele fiind create pentru un anumit tip de operaie (turnare, sudare, asamblare, etc.) i se utilizeaz n special pentru programarea unor celule flexibile care includ i un robot, dect pentru un robot de sine stttor. Acest nivel de programare se afl nc n stadiul de cercetare, bazndu-se pe elementele de inteligen artificial dezvoltate pentru comanda automat a produciei.

1.4. Caracteristici ale limbajelor de programare pentru roboi


1.4.1. Modelarea mediului Programele pentru manipulare trebuie, prin definiie, s includ micarea obiectelor n spaiul tridimensional. Deci este clar c orice limbaj de programare pentru roboi are nevoie de o cale pentru descrierea acestor aciuni. Cel mai comun element al limbajelor de programare pentru roboi este existena unor tipuri geometrice speciale. De exemplu, tipurile sunt introduse pentru a reprezenta seturile cupl unghi, poziii Carteziene, orientri i sisteme de coordonate. Sistemul de coordonate standard poate servi ca un model posibil al mediului: Toate micrile sunt descrise ca sistem de coordonate al sculei n raport cu sistemul de coordonate de baz, cu sistemul de coordonate scop fiind construit din expresii arbitrare care includ tipuri geometrice. Fiind dat mediul de programare al robotului, care suport tipurile geometrice, robotul i alte maini, prile i dispozitivele de lucru pot fi modelate prin definirea variabilelor asociate cu fiecare obiect de interes. Fig. 1.6 arat prile unei celule de lucru cu sistemele de coordonate ataate n locaiile sarcina relevant. Fiecare din aceste sisteme de coordonate va fi reprezentat cu o variabil de tip sistem de referin n programul robotului. n multe limbaje de programare pentru roboi, aceast capacitate pentru a defini variabile pentru variate tipuri geometrice i referirea la ele n program formeaz baza modelrii mediului. De notat c aceste forme fizice ale obiectelor nu sunt parte din modelul mediului i nici nu sunt suprafee, volume, mase sau alte proprieti. Msura n care obiectele din mediul de lucru sunt modelate este unul din deciziile de baz ale proiectului fcute cnd proiectez un sistem de programare al robotului. Majoritatea sistemelor n prezent suport numai stilul anterior descris.

Metode de Programarea pentru Sisteme Robotizate - C3

Fig. 1.6 Cteva sisteme de modelare a mediului permit noiunea de adugare (affixments) ntre obiecte adic, sistemul poate fi notificat ca dou sau mai multe obiecte au devenit adugate de aici ncolo, dac un obiect este deplasat n mod explicit cu o instruciune de limbaj, orice obiecte adugate la acesta sunt deplasate mpreun cu acesta. Astfel, n aplicaiile noastre, odat ce bolul a fost inserat in locaul din colar, sistemul va fi notificat (printr-o instruciune a limbajului) astfel aceste dou obiecte devin legate (ataate). Micrile urmtoare ale colarului (adic schimbrile valorii sistemului de coordonate variabil colar) va cauza valoarea memorat pentru bol s fie actualizat n prima coordonat. Ideal, sistemul de modelare a mediului ar include mult mai multe informaii despre obiectele cu care manipulatorul trebuie s lucreze i despre manipulator. De exemplu, se consider un sistem n care obiectele sunt descrise de modele stil CAD care reprezint forma spaial a obiectului prin definirea muchiilor sale, suprafeelor sau volumului su. Cu astfel de date disponibile ale sistemului, el ncepe s devin posibil s pun n aplicare multe din caracteristicile ale sistemului de programare nivel sarcin. 1.4.2. Specificarea micrii O funcie de baz a limbajului de programare a roboilor este s permit descrierea micrilor dorite ale robotului. Din cauza utilizrii instruciunilor de micare in limbaj, utilizatorul realizeaz legtura cu planificarea i generarea traiectoriei. Instruciunile de micare permit ca utilizatorul s specifice prin puncte, punctul int (scop), i dac folosete interpolarea micrii la nivelul cuplelor (interpolarea coordonatelor generalizate) sau micarea rectilinie n coordonate Carteziene. n plus, utilizatorul poate avea controlul asupra vitezei sau a duratei de micare. 4

Metode de Programarea pentru Sisteme Robotizate - C3 Pentru a ilustra variate sintaxe pentru micarea elementar vom considera urmtorul exemplu al micrilor unui manipulator: (1) micare la poziia goal1, (2) apoi deplasare n linie dreapt (rectiliniu) ctre poziia goal2; (3) apoi micare fr oprire prin via1 i se oprete la goal3. Presupunnd c toate punctele acestei traiectorii au fost deja nvate sau descrise textual, acest segment de program va fi scris dup cum urmeaz: n VAL II: move goal1 moves goal2 move via1 move goal3. n AL (aici controleaz manipulatorul garm), move garm to goal1; move garm to goal2 linearly; move garm to goal3 via via1; Cele mai multe limbaje au sintax similar ca instruciunile micrilor simple asemenea celor de mai sus. Diferene ntre micrile de baz de la un limbaj de programare al unui robot i alte limbaje devin mai aparente dac se consider caracteristicile aa cum urmeaz: a. capacitatea de a efectua operaii matematice pe astfel de tipuri de structuri ca sistem de coordonate, vectori i matrice de rotaie; b. capacitatea de a descrie entitile geometrice ca sisteme de coordonate n mai multe reprezentri avantajoase diferite mpreun cu capacitatea de transformare ntre reprezentri; c. capacitatea de a impune condiii pe durata micrii sau vitezei unei micri particulare de exemplu multe sisteme permit utilizatorului s aplice viteza ca o fracie din viteza maxim, dar mai puini permit utilizatorului s specifice n mod direct o durat dorit a micrii sau o vitez unghiular maxim dorit a cuplei; d. capacitatea de a specifica scopurile specifice n raport cu sistemele de coordonate, care includ sisteme de coordonate definite de utilizator i sisteme de coordonate aflate n micare ( de exemplu obiectele aflate pe un conveier). 1.4.3. Algoritm de execuie a micrilor La fel ca n limbajele convenionale de programare a calculatoarelor, un sistem de programare robot permite utilizatorului s specifice algoritmul de execuie al micrilor adic n limbajele de 5

Metode de Programarea pentru Sisteme Robotizate - C3 programare ale roboilor sunt n general gsite noiunea de testare i ramificare, ciclare, apelare de subrutine i ntreruperile. n plus, majoritatea aplicaiilor pe calculator, prelucrarea paralel este n general important n aplicaiile celulelor de lucru automatizate. n primul rnd, adesea doi sau mai muli roboi sunt folosii ntr-o singur celul de lucru i lucreaz simultan pentru a reduce durata ciclului de prelucrare. Adesea n aplicaiile cu un singur robot, alt echipament din celula de lucru trebuie s fie controlat de ctre controlerul robotului n mod paralel. Astfel, n limbajele de programare ale roboilor sunt adesea gsite elementele semnal i ateptare i n mod ocazional crearea de execuii paralele complicate sunt asigurate. Alt eveniment frecvent este de a comanda variate procese cu acelai tip de senzor. Atunci, prin ntrerupere sau prin activare selectiv, sistemul robot trebuie s rspund la anumite evenimente detectate de senzori. Capacitatea s specifice comanda evenimentelor n mod uor este oferit de unele limbaje de programare pentru roboi. 1.4.4. Programarea mediului nconjurtor Ca orice limbaj de calculator, o bun programare a mediului favorizeaz productivitatea programatorului. Programarea manipulatorului este dificil i are tendina de a fi foarte interactiv cu o mulime de experimente i erori. Dac utilizatorul ar fora s repete n mod continuu ciclul edit compile run al limbajului compilat, atunci productivitatea ar fi sczut. De aceea, cele mai multe limbaje de programare ale roboilor sunt acum interpretate, deci instruciunile limbajului pot fi verificate n timpul scrierii programului. Multe dintre instruciunile limbajului cauzeaz micri ale aparatului fizic, deci o mrime mic a timpului cerut pentru traducerea instruciunilor limbajului este nesemnificativ. Se cere, de asemenea, suportul tipic de programare, aa cum este editorul de text, verificrile i fiierul sistem. 1.4.5. Integrarea senzorului O parte foarte important a programrii robotului trebuie s interacioneze cu senzorii. Sistemul trebuie s aib, la minimum, capacitatea s interogheze senzorii de contact i pentru for i s foloseasc rspunsul n construcia de tip if then else. Capacitatea s urmreasc tranziia senzorilor n modul background este de asemenea foarte folositoare. Integrarea cu un sistem de vedere permite sistemului de vedere s trimit sistemului manipulator coordonatele unui obiect de interes. De exemplu, n aplicaia model, un sistem de vedere localizeaz colarele de pe conveier i returneaz ctre controlerul manipulatorului poziiile lor i orientrile relative fa de camer. Sistemul de coordonate al camerei este cunoscut fa de

Metode de Programarea pentru Sisteme Robotizate - C3 sistemul de coordonate de baz, astfel un sistem de coordonate scop dorit pentru manipulator poate fi calculat pe baza acestei informaii. Unii senzori pot fi parte al altui echipament n celula de lucru de exemplu, unele controlere ale robotului pot folosi intrrile de la un senzor ataat unui conveier aa c manipulatorul poate urmri micarea curelei conveier i achiziioneaz obiecte de pe conveier cnd el se mic. Interfaa capabil s controleze fora se realizeaz prin instruciuni ale limbajului special care permite utilizatorului s specifice strategia forei. Astfel de strategii al controlului forei sunt prin necesitate o parte integrant a sistemului de control al manipulatorului limbajele simple pentru programarea roboilor servesc ca o interfa pentru aceste capaciti. Programarea roboilor care fac uz de controlul forei active pot solicita alte caracteristici speciale, de exemplu, capacitatea de a afia datele despre for adunate n timpul micrii cu restricii. n sistemele care suport controlul forei active, descrierea forei aplicate dorite poate deveni o parte a specificrii micrii. Limbajul AL descrie controlul forei active n micarea elementar prin specificarea a ase componente ale rigiditii (3 de translaie i 3 de rotaie) i o direcie a forei. n acest mod rigiditatea real a manipulatorului este programabil. Pentru a aplica o for, n mod normal rigiditatea este setat la zero prin aceea c direcia i o direcie a forei este specificat, de exemplu, move garm to goal with stiffness=(80, 80, 0, 100, 100, 100) with force=20*ounces along yhat;

Metode de Programarea pentru Sisteme Robotizate - C3

Metode de Programarea pentru Sisteme Robotizate - C4

2. PLANIFICAREA TRAIECTORIEI 2.1. Introducere


Dac se ine seama de problema central a unui robot industrial, atunci una din componentele sistemului de conducere a unui robot trebuie s fie planificatorul de traiectorie (sau de micare). Acesta determin traiectoriile pe care s le urmeze cupelele cinematice ale robotului n aa fel nct efectorul acestuia s rezolve sarcina impus. n domeniul roboticii, prin traiectorie se nelege o curb creia i se asociaz o variabil temporal. Astfel se poate vorbi de traiectorie n spaiul coordonatelor generalizate, ceea ce va nseamn precizarea vectorului q (t ) R n , adic descrierea variaiei n timp a poziiilor celor n cuple conductoare ale robotului industrial. n acest sens se vor defini curbele q 1 (t ) , ..., q n (t ) . De asemenea, vom putea avea o traiectorie n spaiul coordonatelor operaionale, ceea ce va nsemna precizarea lui z (t ) R 6 , adic descrierea poziiei i orientarea efectorului robotului industrial, n timp. Indiferent de tipul traiectoriei cu care se lucreaz, variabila temporal se va situa n intervalul de timp corespunztor micrii robotului industrial. Conducerea unui robot industrial poate fi descompus n dou etape: - planificarea traiectoriei, - controlul pentru ndeplinirea traiectoriei. Deci i structura sistemului de comand pentru robotul industrial poate fi considerat ca fiind una ierarhic, avnd dou nivele, corespunztor celor dou etape menionate mai sus. Exist dou abordri posibile n legtur cu planificarea traiectoriei i n funcie de acestea vor rezulta arhitecturi corespunztoare pentru sistemul de conducere a robotului industrial (fig. 2.1 i fig. 2.2).

Planificator traiectorie
zd
fi

qd

Generator traiectorie

qd t k

( )

+ -

Sistem reglare micare

qa

Fig. 2.1. Planificarea traiectoriei varianta a Astfel, se poate face o planificare a traiectoriei n spaiul coordonatelor generalizate. Aceasta nseamn c se planific poziiile cuplelor conductoare pentru ca robotul industrial s 1

Metode de Programarea pentru Sisteme Robotizate - C4 ndeplineasc sarcina. Deoarece se pleac de la sarcina robotului industrial, adic de la specificaia cinematicii efectorului fa de reperul de referin, deci de la vectorul z (t ) , iar planificarea traiectoriei se face opernd cu vectorul q (t ) , e necesar modelul geometric invers pentru transformarea q (t ) = f i (z (t )) . Ieirea din planificatorul de traiectorie se obine prin generatorul de traiectorie, care determin valorile lui q (t ) la momentele de eantionare, momente stabilite n funcie de modul n care lucreaz cel de-al doilea nivel al sistemului de comand. Sistemul de reglare lucreaz n bucl nchis. Pe baza informaiilor de la senzori cu care este dotat robotul industrial, sistemul de reglare determin ndeplinirea de ctre cuplele cinematice ale robotului a poziiilor planificate. n acest mod se obine schema din fig. 2.1, n care s-a notat cu z d i q d valoarea dorit pentru vectorul z respectiv q , iar q a valoarea actual a vectorului q . Cel de al doilea mod de abordare a planificrii traiectoriei n spaiul coordonatelor operaionale, presupune generarea traiectoriei dorite pentru efector, adic a parametrilor cinematici ai acestuia la momentul de eantionare. Deoarece sistemul de reglare a micrii necesit pentru comanda cuplelor cinematice ale roboilor industriali valorile vectorului q la momentele de eantionare, este necesar i utilizarea modelului cinematic invers. Acest model este folosit dup generatorul de traiectorie pentru conversia respectiv i rezult astfel schema din fig. 2.2.

Planificator traiectorie z
d

Generator traiectorie

zd t k

( )

qd t k
fi

( )

+ -

Sistem reglare micare

qa

Fig. 2.2. Planificarea traiectoriei varianta b n continuare se va trata problema generatorului de traiectorie i cteva aspecte privind modelul geometric invers. Deseori generatorul de traiectorie este numit tot planificator de traiectorie. Indiferent de varianta de abordare folosit, planificatorul de traiectorie trebuie s in seama i de urmtoarele aspecte: - existena sau nu a obstacolelor n spaiul de operare a robotului industrial; - impunerea de ctre procesul tehnologic a unei anumite traiectorii de urmat de ctre efector (de exemplu: n linie dreapt, n arce de cerc) sau doar precizarea ctorva poziii pe care trebuie s le ating efectorul; 2

Metode de Programarea pentru Sisteme Robotizate - C4 - existena unor restricii dinamice privind momentul / fora sau viteza / acceleraia maxim pe care le poate dezvolta sistemul de acionare a robotului industrial, dac intervin asemenea specificaii. Schemele din fig. 2.1 i 2.2 se vor completa, n sensul c restriciile dinamice vor fi date de intrare n planificatorul de micare, iar ca ieiri din acestea se vor obine nu numai poziiile dorite ale cuplelor, ci i vitezele sau vitezele i acceleraiile acestora. Pe baza acestor specificaii se va putea alege varianta de abordare a planificrii traiectoriei cea mai potrivit, avnd n vedere i avantajele / dezavantajele pe care le prezint fiecare din cele dou variante i care sunt urmtoarele. Planificarea n coordonate generalizate are urmtoarele avantaje: planificarea se face direct n mrimile care se folosesc drept comenzi pentru elementele de execuie (poziii, viteze, acceleraii ale cuplelor cinematice); complexitatea calculelor este mai mic dect la varianta n coordonate operaionale, aa cum rezult din algoritmii de planificare i de aceea poate satisface mai uor cerina lucrului n timp real; restriciile dinamice pot fi luate n considerare fr complicaii, deoarece se lucreaz cu mrimi asociate cuplelor cinematice, cele asupra crora intervin restriciile dinamice; planificarea nu este restricionat de evitarea configuraiilor singulare, aa cum se ntmpl n cazul abordrii n coordonate operaionale. Dezavantajul planificrii n coordonate generalizate este acela c nu se precizeaz forma traiectoriei pe care o strbate efectorul robotului industrial n afara poziiilor pe care le impunem prin valorile dorite pentru z . De exemplu, o situaie frecvent este aceea n care se cunoate parametrii cinematici iniiali i se impune numai cea final pentru efectorul robotului industrial. Aceti parametri sunt date de intrare n planificatorul de micare, care calculeaz traiectoriile cuplelor cinematice n aa fel nct s se ating parametrii cinematici finali impui pentru efector. n acest caz nu va exista nici un control asupra zonei strbtute de efectorul robotului industrial. Din exemplul prezentat se observ c planificarea n coordonate generalizate este dificil de folosit atunci cnd se impune ca efectorul s urmeze o anumit traiectoriei precis. Acest gen de traiectorie este stabilit din considerente tehnologice sau datorit faptului c robotul industrial lucreaz ntr-o zon cu obstacole. Folosirea planificrii n coordonate generalizate ntr-o asemenea situaie se impune discretizarea traiectoriei efectorului i impunerea unui numr mare de valori pentru vectorul z , ceea ce poate fi dificil din punct de vedere a lucrului n timp real. Avantajele i dezavantajele se inverseaz n cazul variantei de planificare n coordonate operaionale. n acest caz, planificarea se face asupra traiectoriei efectorului i deci se va putea impune forma acesteia. Principala problem devine aceea a complexitii calculelor: pentru toate momentele de eantionare, n care trebuie transmise valori spre sistemul de reglare a micrii, 3

Metode de Programarea pentru Sisteme Robotizate - C4 trebuie calculat modelul geometric invers (fig. 2.2). Complexitatea de calcul a modelului geometric invers este mare i acest model ridic probleme privind neunivocitatea trecerii de la z la q . De asemenea, apar complicaii n ceea ce privete considerarea restriciilor dinamice i a trecerii robotului industrial prin configuraiile singulare. Dac se ine seama de aspectele prezentate, atunci alegerea variantei de planificare se va face n funcie de specificul aplicaiei. Dac se lucreaz ntr-un mediu fr obstacole i dac traiectoria efectorului poate fi definit printr-un numr redus de puncte, atunci se va prefera planificarea n coordonate generalizate. n acest caz se va face trecerea de la z la q numai pentru punctele ce definesc traiectoria, cu ajutorul modelului geometric invers. n acest fel se ajunge la algoritmi de planificare avnd o complexitate a calculelor redus i care pot ndeplini i planificri de vitez i acceleraie optime din punct de vedere a sistemului de acionare. Toate acestea fac din planificarea n coordonate generalizate varianta cea mai folosit n prezent. Planificarea n coordonate operaionale se va folosi numai atunci cnd trebuie realizat un anumit tip de traiectorie pentru efectorul robotului industrial. Cazul cel mai des folosit fiind cel al deplasrii efectorului n linie dreapt.

2.2. Tipuri de comenzi de deplasare

n funcie de complexitatea sarcinii de executat i de caracteristicile i performanele robotului sistemul de comand al roboilor industriali folosete dou mari tipuri de comenzi pentru conducerea micrilor pe traiectorie: Comanda pe traiectorie neimpus ntre punctele de trecere (comanda punct cu punct) CPP. Comanda pe traiectorii interpolate ntre punctele de trecere (comanda pe traiectorie) CT. 1. Comanda CPP (de poziionare) i gsete aplicarea n cazul, cnd se cere doar poziionarea elementului terminal al robotului n punctele eseniale ale spaiului operaional (roboi manipulatori universali i de sudur prin puncte). n acest caz, sistemul de comand nu folosete nici un model geometric al structurii mecanice pentru comanda micrii. Punctele eseniale de pe traiectoria necesar ndeplinirii viitoarei sarcini de lucru P i (vezi fig. 2.3) sunt memorate sub forma unor puncte de precizie, exprimate n coordonatele cuplelor cinematice i , iar ntre dou puncte succesive, deplasarea se realizeaz dup o traiectorie imprevizibil, dar repetitiv. Are loc deci o micare de poziionare a cuplelor cinematice ale robotului ntr-un punct programat, apoi urmeaz o nou poziionare.

Metode de Programarea pentru Sisteme Robotizate - C4

P2 Pi Pn P1 P3 Pn-1
Fig. 2.3 Conducere punct cu punct Acionarea cuplelor cinematice conductoare se face necorelat, comanda asigurnd, pentru fiecare cupl, plecarea de la coordonata sa articular iniial i _ init n acelai timp i oprirea la valoarea sa final i _ final . Deoarece micarea fiecrei cuple cinematice nu se termin n acelai moment, traiectoria, pe care se realizeaz deplasarea, nu poate fi controlat, motiv pentru care apare riscul coliziunii cu obstacole din mediul nconjurtor robotului. Acest tip de micare asigur o deplasare minim pentru fiecare cupl cinematic, iar schema de generare a micrii de poziionare pentru o cupl conductoare (acionat n cazul de fa cu un motor de c.c.) este prezentat mai jos. Coordonata cuplei cinematice finale este comparat n blocul de comparaie cu valoarea coordonatei curente msurat de ctre traductorul de poziie situat la nivelul cuplei respective,
i mas (t ) (iniial traductorul furnizeaz valoarea coordonatei iniiale i _ init ).

Diferena de poziie i (t ) este determinat la un interval de timp (tact) t, i acesta constituie parametrul de comand pentru sistemul format din amplificator motor de c.c. transmisie articulaie.
i _ final

+ -

i ( t )

t Amplificator Motor de c.c. Transmisie

i _ init

i mas (t )

Traductor de poziie

Fig. 2.4 Schema de generare pentru deplasarea punct cu punct

Metode de Programarea pentru Sisteme Robotizate - C4 Motoarele sunt excitate i apoi se opresc atunci cnd diferena i (t ) este nul sau inferioar unei valori prestabilite . Aceast schem bloc de reglare automat n poziie nu permite i controlul vitezei de deplasare, iar traiectoria descris depinde de ordinea de excitare a motoarelor de acionare. 2. Comanda CT se folosete n cazul n care se cere deplasarea elementului final al robotului dup traiectorii bine definite analitic (liniare, arce de cerc, etc.) ntre anumite puncte eseniale din spaiul operaional (fig. 2.5).

P2 Pi Pn P1 P3 Pn-1
Fig. 2.5 Conducere pe traiectorii interpolate Spre deosebire de cazul precedent acum, aceste puncte sunt memorate, n faza de programare, cu ajutorul coordonatelor operaionale X i i nu coordonatele cuplelor cinematice conductoare. Cunoscnd valorile iniial i final ale vectorului coordonatelor operaionale X init i X
final ,

generatorul de traiectorie GT determin valorile momentane interpolate ce trebuiesc atinse X(t ) ,

aa cum se arat n fig. 2.6. Aceste valori sunt convertite n vectorul coordonatelor cuplelor cinematice momentane (t ) cu ajutorul modelului geometric invers MGI, la un interval de timp

egal cu tactul transformatorului de coordonate invers t. Fiecare valoare a cuplei cinematice conductoare j (t ) ( j = 1K m ) este comparat cu
valoarea momentan ce este furnizat de traductorul de poziie j mas (t ) , iar diferena j (t ) rezultat constituie parametrul de comand pentru servomecanismul de poziionare al cuplei cinematice respective. Blocul modelului geometric direct realizeaz transformarea coordonatelor cuplei cinematice init n valori operaionale pentru a permite introducerea n interpolator a coordonatei iniiale X
init .

Metode de Programarea pentru Sisteme Robotizate - C4 Se observ c generarea traiectoriei se face n spaiul operaional, iar necesitatea transformrilor de coordonate pentru fiecare punct conduce la multiplicarea calculelor necesare. n acest caz, micarea fiecrei articulaii ncepe i se termin simultan, toate buclele funcioneaz n paralel, existnd deci o corelaie ntre acestea, care face ca reperul ataat elementului final s foloseasc toat traiectoria pentru a trece de la orientarea iniial la cea final.
(t ) 1 (t ) + 1

X dest

X(t )

(t )

Servomecanism de poziionare

Cupl cinematic Traductor de poziie

GT

Model geometric invers


j (t ) +

1 mas (t )

X orig

Cupl cinematic

j (t ) j mas (t )

Servomecanism de poziionare

Cupl cinematic Traductor de poziie

orig

(t ) m (t ) + m

Servomecanism de poziionare

Cupl cinematic Traductor de poziie

m mas (t )

Fig. 2.6 Schema de generare pentru deplasarea pe o traiectorie interpolat

Metode de Programarea pentru Sisteme Robotizate - C4

Metode de Programarea pentru Sisteme Robotizate - C5

2. PLANIFICAREA TRAIECTORIEI (continuare) 2.3. Planificarea traiectoriei n coordonate generalizate


Dup schema de principiu prezentat n fig. 2.1 se pleac de la sarcina de ndeplinit, specificat prin valori ale vectorului z . Aceast planificare este folosit cnd sarcina poate fi precizat printrun numr redus de valori ale parametrilor cinematici ai efectorului. De la valorile vectorului z trebuie s se ajung la valorile corespunztoare ale vectorului q , pe baza unui algoritm de planificare n coordonate generalizate. Trecerea de la z la q se face pe baza modelului geometric invers. Considernd cazul robotului industrial cu 2 grade de mobilitate (fig. 2.7) i presupunnd c sarcina este specificat numai prin poziia iniial i cea final, atunci pentru o poziie final a efectorului n interiorul spaiului de lucru vor exista dou soluii pentru vectorul q care determin atingerea poziiei finale a efectorului. Planificatorul de micare are sarcina ca dup determinarea celor dou valori ale lui q s aleag una singur, pe care o folosete apoi n planificarea urmtoarele criterii: Dac sarcina este specificat prin valori ale tuturor componentelor vectorului z , adic este precizat att poziia ct i orientarea dorit pentru efector, atunci pentru robotul industrial cu numrul de grade mobilitate mai mic dect 6, va putea fi aleas soluia care apropie cel mai mult de valoarea dorit pentru z . De exemplu, n cazul robotului industrial din fig. 2.7 se va putea alege dintre cele dou soluii pe aceea care se apropie mai mult de orientarea dorit a efectorului (cele dou soluii determin aceeai poziie a efectorului , dar orientri diferite). Anumite condiii tehnologice sau existena obstacolelor pot determina necesitatea unei anumite soluii. De exemplu, n prezena obstacolului reprezentat n fig. 2.7 singura soluie posibil este cea notat cu c. Atunci cnd criteriile de mai sus nu permit selecia unei singure soluii, alegerea se va face pentru acea soluie care determin deplasri minime ale cuplelor cinematice. De exemplu, n cazul din fig. 2.7, dac obstacolul nu exist i nu intereseaz orientarea final a efectorului, iar poziia iniial a robotului este notat cu a, atunci se va alege soluia notat cu b. Se alege aceast soluie deoarece determin deplasri s mici ale cuplelor cinematice n comparaie cu soluia c. Fig. 2.7
a b c Obstacol

traiectoriei fiecrei cuple conductoare. n acest sens planificatorul de micare va folosi unul din

Metode de Programarea pentru Sisteme Robotizate - C5 O dat rezolvat aceast alegere rezult pentru planificatorul de micare un set de valori ale vectorului q corespunztoare poziiilor i orientrilor dorite pentru efector. Pe baza acestor valori se vor determina legile de micare pentru toate cuplele robotului. n funcie de numrul de valori fixate ale vectorului q putem avea planificarea traiectoriei atunci cnd intereseaz numai poziia iniial i cea final, sau o traiectorie definit i prin poziii intermediare.

2.3.1 Planificarea traiectoriei ntre dou poziii impuse


Fie q i , q f valorile date ale vectorului q corespunztoare poziiilor iniial, respectiv final, impuse pentru efector. Legea de micare pentru cuplele robotului se poate scrie sub forma: q (t ) = q i + D r (t ) ,
0ttf ,

(2.1)

unde t f este momentul final la care trebuie s se termine micarea, iar D este vectorul care are drept componente deplasrile totale ale cuplelor: D = qf qi . (2.2)

Forma lui r (t ) determin legea de micare, iar relaia vectorial (2.1) va furniza pentru un robot cu n grade de mobilitate traiectoriile celor n articulaii. n planificarea traiectoriei trebuie s inem seama i de restriciile dinamice. Se consider c sunt precizate valorile vectorilor v max i
a max avnd drept componente vitezele i acceleraiile maxime admisibile pentru cuplele robotului.

Valoarea pentru v max se va deduce innd seama de caracteristicile sistemelor de acionare ale cuplelor i de rapoartele de reducere ale sistemelor de transmisie, iar a max n funcie de momentul sau fora maxim pe care o poate dezvolta fiecare cupl i de caracteristicile ineriale ale acestora (se pot determina pe baza modelului dinamic al robotului industrial). n funcie de forma lui r (t ) rezult mai multe tipuri de traiectorie; cele mai des folosite vor fi prezentate n continuare. a) Traiectorie liniar Variaia n timp a fiecrei coordonate generalizate este liniar, astfel c relaia (2.1) ia forma urmtoare: q (t ) = q i + D t tf ,
0ttf ,

(2.3)

Deci aceast lege de variaie este simpl, aa cum este prezentat n fig. 2.8. Legea de micare determin o discontinuitate pentru variaia vitezei fiecrei cuple cinematice, care prezint un salt n momentul iniial i cel final al micrii. Acest salt nu este acceptat n practic. 2

Metode de Programarea pentru Sisteme Robotizate - C5

Fig. 2.8 b) Traiectorie polinomial de grad trei Pentru a elimina deficiena cazului anterior, impunnd o variaie continu pentru viteza cuplelor cinematice ale robotului industrial, putem folosi o lege de variaie a fiecrei coordonate generalizate de tip polinomial. Condiiile pe care trebuie s le satisfac polinomul descriind variaia n timp pentru o coordonat generalizate sunt:

q j (0) = q ij f q j t f = q j & j (0) = 0 q & j tf = 0 q

( ) ( )

(2.4)

deoarece se pleac i se ajunge n repaus. Relaiile (2.4) sunt valabile pentru j=1, . . .,n, considernd robotul industrial cu n grade de mobilitate. Micarea fiecrei articulaii poate fi atunci planificat n timp ca un polinom de gradul 3, adic de forma:
q j (t ) = a 0 + a 1 t + a 2 t 2 + a 3 t 3

(2.5)

unde t este variabila temporal ( 0 t t f ), iar coeficienii polinomului se determin astfel nct s respecte condiiile (2.4). Dup calcule simple rezult legea de variaie pentru fiecare coordonat generalizat:
q j (t ) = q ij + 3
2 tf

D j t2 +

2 t3 f

D j t3 ,

0ttf

(2.6)

unde D j = q fj q ij este deplasarea pe care trebuie s o efectueze articulaia j, relaia (2.6) fiind valabil pentru j=1, . . .,n. Conform fig. 2 .9 se obine o variaie continu pentru poziia i viteza cuplelor cinematice, dar o discontinuitate pentru acceleraia acestora. Totui aceast lege de variaie poate fi folosit n practic, apreciindu-se c datorit rigiditii structurii mecanice a robotului industrial se produce o filtrare a acestei discontinuiti. Pentru verificarea restriciilor dinamice, se observ c viteza
3

Metode de Programarea pentru Sisteme Robotizate - C5 maxim pentru fiecare articulaie se atinge la momentul
t = t f / 2 , iar acceleraia maxim la momentul t = 0 . Valorile

respective, n modul, se pot determina cu urmtoarele relaii:


& max q = j 3 D j 2t f

& & max q = j

6 D j t2 f

(2.7)

Aceste valori extreme trebuie s fie inferioare vitezei, respectiv acceleraiei maxime admisibile pentru articulaia respectiv. Valorile date de relaiile (2.7) depind de valoarea timpului de micare t f . c) Traiectorie polinomial de grad cinci Pentru a obine i continuitatea acceleraiei pentru fiecare articulaie a robotului industrial se poate folosi o lege de variaie polinomial, n care pe lng condiiile (2.4) se vor aduga i cele de mai jos:
& j (0) = 0 q & && q j t f = 0 . Fig. 2.9

( )

(2.8)

n acest caz se ajunge la un polinom de grad 5 i cei 6 coeficieni ai acestuia se determin astfel nct s se respecte condiiile (2.4) i (2.8). n acest mod se obine forma: q j (t ) = q ij +
0ttf

10 t3 f

D j t3

15
4 tf

D j t4 +

6 t5 f

D j t5 , (2.9)
Fig. 2.10

n fig. 2.10 sunt prezentate formele de variaie acceleraie se calculeaz uor i sunt date de urmtoarele relaii:
& max q = j 15 D j 8 t f

pentru poziia, viteza i acceleraia unei cuple cinematice. Valorile maxime pentru vitez i

& & max q = j

10 D j 3 t2 f

(2.10)

Acestea vor fi comparate cu limitele admise pentru cuplele cinematice respective. d) Traiectorie de tip Bang Bang Sub aceast denumire este cunoscut o traiectorie n care cupla cinematic a robotului este supus la accelerare constant pn la momentul t f / 2 , dup care urmeaz o decelerare constant pn la momentul final. n acest fel sunt ndeplinite condiiile ca articulaia la pornire i la oprire s
4

Metode de Programarea pentru Sisteme Robotizate - C5 aib viteza nul, fr a se respecta continuitatea n acceleraie. Legea de micare este tot o variaie polinomial n raport cu timpul a poziiei fiecrei articulaii, n care ns sunt dou polinoame diferite pentru cele dou poriuni ale traiectoriei, cea de accelerare, respectiv decelerare. Forma traiectoriei este dat de expresia: i 2 2 q j + 2 D j t tf q j (t ) = 2 q i q f + 4 D t 2 D t 2 j j j j tf t2 f daca 0 < t < t f /2 (2.11) daca t f /2 < t < t f

n fig. 2.11 sunt prezentate formele de variaie pentru coordonate generalizate, viteza i acceleraia corespunztoare articulaiei j. Se pot deduce valorile maxime pentru viteza respectiv acceleraia articulaiei j, cele care trebuie verificate cu restriciile dinamice; aceste valori maxime sunt:
& max q = j

2 D j tf

& & max q = j

4 D j t2 f

(2.12)

Fig. 2.11

Aceste ultime trei variante prezentate mai sus sunt dintre cele mai utilizate n practic, asigurnd toate o continuitate a funciilor ce descriu poziia i viteza cuplelor cinematice. Traiectoria polinomial de grad 3 determin o expresie simpl pentru poziia cuplei, n timp ce polinomiala de grad 5 are avantajul asigurrii continuitii i pentru acceleraia cuplei. Traiectoria de tip Bang - Bang conduce spre legea de micare ce asigur timpul minim de deplasare. n toate cele patru variante de traiectorie, prezentate mai sus, s-a folosit o valoare unic t f (timpul de micare) pentru toate cuplele cinematice ale robotului. Cum ns valoarea deplasrii D j este n general diferit de la o cupl la alta, ca i valorile limitelor pentru vitez i acceleraie, rezult c micrile diferitelor cuple cinematice s-ar ncheia la momente de timp diferite. O asemenea situaie nu este de obicei acceptat n planificarea traiectoriei robotului, ci se cere obinerea micrii coordonate a robotului, n care toate cuplele cinematice ncep, dar i termin deplasarea n acelai moment. Motivaia acestei cerine este aceea c printr-o micare necoordonat structura mecanic a robotului este supus la ocuri mai mari, determinate de fiecare oprire a cte unei cuple cinematice.

Metode de Programarea pentru Sisteme Robotizate - C5

2.4. Planificarea traiectoriei n coordonate operaionale

Ceea ce se urmrete n acest caz este un control direct asupra micrii efectorului robotului, adic un control al lui z (t ) . Aceasta poate s intereseze atunci cnd efectorul trebuie s urmeze o traiectorie precis ntre anumite puncte precizate. Tipul de traiectorie cel mai des citat n literatur este acela al traiectoriei n linie dreapt pentru efector ntre dou puncte precizate. Se cunoate poziia iniial i cea final a punctului ataat efectorului, mai precis a originii reperului ataat de efector i se cere ca acest punct s se deplaseze n linie dreapt, respectnd restriciile dinamice. n afar de specificarea poziiei efectorului, poate interesa i atingerea unei anumite orientri de ctre acesta. Vom considera astfel ca date de intrare ale planificatorului de micare atitudinea cinematic iniial i final a efectorului, modelate prin transformri omogene, date prin matricele:
n x n Ti = y n z 0 sx sy sz 0 ax ay az 0 px p y pz 1 i

(2.13)

pentru momentul iniial T i i T f pentru cel final. T f are aceeai form ca i T i i vom nota elementele acesteia prin indicele f. Exist mai multe variante de micare ce pot asigura obinerea atitudinii cinematice precizate prin T f , cu deplasarea originii reperului ataat de efector n linie dreapt. Toate variantele de micare presupun suprapunerea ntre o translaie a efectorului, care s asigure poziionarea acestuia i una sau mai multe rotaii, care s determine trecerea de la orientarea iniial a acestuia la cea final. Pe baza transformrilor omogene privind realizarea unei orientri impuse printr-o rotaie n jurul unei axe specificate, putem obine ndeplinirea orientrii printr-o singur micare de rotaie. Aceast micare trebuie s asigure ca efectorul s ating n momentul final orientarea dorit; aceasta se va suprapune cu translaia ce modific poziia efectorului. n ceea ce privete micarea de translaie, pe baza matricelor T i i T f se poate afla distana dintre poziia iniial i cea final a originii reperului ataat de efector:
D=

(p

f x

i px

) + (p
2

f y

p iy

) + (p
2

f z

i pz

(2.14)

i n funcie de restriciile dinamice impuse efectorului (viteza i acceleraia maxim admisibil) se poate afla timpul n care, printr-o micare de translaie, efectorul poate strbate distana respectiv. De menionat c restriciile dinamice impuse efectorului vor trebui determinate, pe baza modelului dinamic, n funcie de restriciile dinamice impuse cuplelor cinematice. n ceea 6

Metode de Programarea pentru Sisteme Robotizate - C5 ce privete modul de variaie n timp a poziiei efectorului pe segmentul O i O f (vezi fig. 2.12) se va putea folosi una din variantele de traiectorie descris la planificarea n coordonate generalizate, pentru cazul traiectoriilor precizate prin dou puncte.

Fig. 2.12 Schimbarea care trebuie efectuat este aceea c n locul vectorului q , cu care se lucra n cazul planificrii n coordonate generalizate, vom folosi vectorul p care descrie poziia efectorului. Componentele acestui vector, n momentul iniial i cel final, le avem pe ultima coloan din matricele T i i respectiv T f . n ceea ce privete micarea de rotaie pe care o execut efectorul simultan cu cea de translaie, cu scopul obinerii orientrii dorite, trebuie s aflm versorul n jurul cruia s se efectueze micarea i unghiul corespunztor. Pentru aceasta, pot aprea dou situaii, notate cu (1) i (2) n fig. 2.12. Aceasta dup cum versorul r n jurul cruia se face rotirea este raportat la reperul secundar (cel ataat de efector cazul 1), sau la reperul de baz (cazul 2). Dac ne situm n cazul 1 i rotirea se face n jurul versorului r , ce este raportat la reperul secundar, atunci dup regula de compunere a transformrilor omogene, se obine:
T i A(r , ) = T f

(2.15)

unde am notat cu A(r , ) matricea de transformare omogen corespunztoare rotaiei de efectuat. De aici rezult:
A(r , ) = T i1 T f .

(2.16)

Matricele T i i T f sunt precizate i pe baza relaiilor care determin unghiul i versorul r :


cos = 1 n i n 2

+ s i s

+ a i a

(2.17a)

Metode de Programarea pentru Sisteme Robotizate - C5


rx = ry = rz = a i s f a f s i 2 sin n i a f n f a i 2 sin s i n f s f n i 2 sin

(2.17b) (2.17c) (2.17d)

unde am notat cu n i , s i , a i vectorii avnd drept componente coloanele matricei T i i cu n f ,


s f, a
f

vectorii avnd drept componente coloanele matricei T f . n funcie de valoarea unghiului

i de restriciile dinamice impuse micrii de rotaie a efectorului (limitele pentru viteza

unghiular i acceleraia unghiular) se va putea calcula timpul necesar micrii de rotaie, care va fi funcie i de tipul de variaie ales pentru aceast micare (de exemplu se poate folosi variaia trapezoidal pentru viteza unghiular, aplicnd cele precizate la planificarea n coordonate generalizate). Un calcul analog se va face n cazul n care versorul r n jurul cruia se produce rotaia este exprimat fa de reperul de baz. Conform regulii de compunere a transformrilor omogene, modificarea apare n relaia (2.15), care devine:
A(r , ) T i = T f

(2.18)

i din care se vor determina r i . Cum valorile timpilor pentru cele dou micri ce trebuie s se desfoare simultan i care se calculeaz dup principiul expus mai sus, vor fi n general diferite, urmeaz la fel ca la planificarea n coordonate generalizate, unde se fcea sincronizarea micrilor celor n articulaii i sincronizarea micrii de translaie cu aceea de rotaie a efectorului. Se va alege durata cea mai mare i se va prelungi n mod corespunztor micarea ce ar putea s se ncheie mai repede, pentru a avea sincronizarea dorit. Ceea ce s-a prezentat mai sus este cazul unei traiectorii liniare pentru efector ntre dou poziii precizate, n afar de acest tip de traiectorie se pot folosi i alte variante. Dintre acestea, cea mai des folosit este traiectoria n care efectorul parcurge mai multe segmente de dreapt ce sunt racordate cu poriuni parabolice. se evit astfel discontinuitatea pentru vitez, chiar dac sunt specificate mai multe puncte intermediare. Principal, pentru fiecare punct intermediar se precizeaz vectorul z al coordonatelor operaionale, sau echivalent, matricea T de transformare omogen fa de reperul de baz, reprezentnd atitudinea cinematic dorit n punctul respectiv. Ca i n cazul traiectoriei liniare, se va obine traiectoria din suprapunerea unei micri referitoare la poziia efectorului, ale crei date se iau din ultima coloan a matricelor T cunoscute, cu o micare referitoare la orientare. 8

Metode de Programarea pentru Sisteme Robotizate - C5 Aceasta se poate obine la fel ca mai sus, ca o rotaie n jurul unei anumite axe i cu unghi ce s satisfac modificarea necesar a orientrii. Conform schemei din fig. 2.2, sistemul de comand a unui robot folosete un generator de traiectorie n coordonate operaionale. Deoarece sistemul de acionare i reglare a micrii necesit la intrare vectorul q al coordonatelor generalizate, rezult c la fiecare perioad de eantionare trebuie fcut conversia de la z la q . Acesta este inconvenientul care a determinat folosirea redus a planificrii n coordonate operaionale. La aceast dificultate a trecerii de la z la q n timp real, se adaug i aceea a trecerii de la z la q , atunci cnd trebuie realizat o anumit variaie a vitezei efectorului. Aceast conversie se poate face prin intermediul inversei matricei Jacobi ce caracterizeaz robotul industrial. Complexitatea calculelor se mrete ns i mai mult i apar i probleme n cazul cnd traiectoria trece prin puncte singulare, acolo unde matricea Jacobi nu poate fi inversat.

Metode de Programarea pentru Sisteme Robotizate - C5

10

Metode de Programarea pentru Sisteme Robotizate - C6

3. PROGRAMAREA ONLINE A SISTEMELOR ROBOTIZATE 3.1 Robotul industrial ca sistem programabil

Utilizatorul privete robotul ca pe un mijloc de automatizare, care are de ndeplinit anumite sarcini n procesul tehnologic. Aceste sarcini trebuie formulate n cea mai simpl form astfel ca robotul s execute micrile i aciunile conform tehnologiei. O caracteristic esenial a robotului industrial o constituie programabilitatea. Prin aceasta roboii industriali sunt comparabili cu alte sisteme programabile care conin ca nucleu un calculator numeric.

Intrare
Formularea programului pentru realizarea operaiilor tehnologice

Sistem robot
(automat)
desfurarea programului; schimbarea strii.

Ieire Micri Aciuni

Fig. 3.1. Robot industrial ca sistem programabil Roboii industriali moderni sunt dotai cu microcalculatoare care prelucreaz un program alctuit de utilizator. Acesta formuleaz sarcinile ntr-o form adecvat. Conducerea robotului industrial convertete programul n micri i aciuni n mediul tehnologic. Spre deosebire de programarea pe calculator, programarea roboilor industriali ridic o serie de probleme particulare, dependente de caracterul procesual al sarcinilor tehnologice. Utilizarea calculatorului pentru conducerea robotului industrial poate fi privit i ca un caz special de conducere cu calculatoare numerice a proceselor (fig. 3.1.). Principial trebuie s se fac o deosebire ntre programarea intern i programarea extern a robotului industrial. Deosebirile sunt puse n eviden n tabelul de mai jos. Tabelul 3.1. Programarea extern i intern a sistemului robot Programare Sistem programabil Limbajul de programare Programatorul Elementele limbajului Extern Sistem robot (main virtual) Limbaje pentru roboi (ROBEX, VAL, TIPS II, etc.) Utilizatorul, de exemplu, tehnologul Orientate spre probleme Intern Micro i minicalculatoare Limbaje pentru calculatoare (PASCAL, MACRO, etc.) Proiectantul conducerii robotului i al sistemului program Orientate spre calculatoarelor 1

Metode de Programarea pentru Sisteme Robotizate - C6 Programarea intern reprezint programarea calculatorului de conducere coninut de sistemul robot i care se face de ctre proiectantul sistemului de conducere i de programare, ntr-un limbaj adecvat calculatoarelor (Pascal sau Macro). Structura de baz a unui sistem de conducere a robotului, care permite o descriere a traiectoriei ntr-un sistem de coordonate extern este reprezentat n fig. 3.2.

Program Translator Interpret Aciuni pentru efector i proces Planificator traiectorie Transformare de coordonate Reglare Manipulator efector Proces - Mediu

Date (CAD) Modelarea obiectelor Procesor de model static Procesor de model dinamic Teach in

Coordonate externe

Transformare de coordonate Procesor de senzori

Coordonatele robotului

Fig. 3.2. Structura de baz a unui robot, ca sistem programabil Toate modulele funcionale cuprinse n dreptunghiul cu linie ntrerupt se realizeaz prin programare intern. Programarea extern este programarea care determin eficiena ndeplinirii sarcinilor formulate. Pentru a ne forma o imagine complet a sistemului de conducere, din punct de vedere al programrii externe, determinat tehnologic, trebuie s privim sistemul de programare ca sistem ierarhic, determinat de complexitatea sarcinilor robotului. Sistemul de programare este un sistem de programare realizat prin programarea intern care transform un program extern n micri i aciuni. Astfel de transformri se realizeaz n compilatoare sau interprei pentru o aa numit main (robot) virtual. Ca exemplu, fie urmtoarea sarcin care trebuie realizat prin programare extern: 2

Metode de Programarea pentru Sisteme Robotizate - C6 Mai multe piese trebuie luate de pe o band transportoare i aezate pe o palet. Lucrul se termin printr-un semnal, cnd nu mai sunt piese pe band sau cnd paleta este plin. Soluie: definete poziia benzii transportoare; definete poziia paletei (nivel 0); definete diferena ntre nivele; definete numrul de nivele; repet instruciunile de mai jos pn ce este ndeplinit condiia END; deplaseaz braul n poziia de lucru la band; nchide apuctorul; dac nu sunt piese, atunci treci la END; poziia paletei = poziia paletei + diferena de nivel; nivel = nivel 1; dac nivel = 0, atunci treci la END; deplaseaz braul cu piesa la poziia actual a paletei; deschide apuctorul; END; anun operatorul; ateapt o nou comand. n continuare ne vom ocupa de programarea extern. Sistemul de programare pentru programarea extern trebuie s permit utilizatorului s foloseasc toate funciile sistemului de conducere i s reprezinte ntr-o form adecvat programul de micri i aciuni. Sistemele de programarea se pot deosebi n funcie de posibilitile de conducere, de gradul de dotare cu senzori i n funcie de gradul de cuplare cu procesul tehnologic. Pentru funciile de baz sistemul de programare trebuie s satisfac urmtoarele condiii: descrierea micrilor, descrierea aciunilor, descrierea i recunoaterea mediului i a obiectelor, testarea i corectarea programelor, comunicarea cu operatorul, colaborarea cu sistemul de calcul, administrarea programelor (reprezentare, editare, tergere, arhivare). Funciile de baz pot fi lrgite dac conducerea ajunge la un grad nalt de dezvoltare. Descrierea obiectelor se simplific n acest caz. n general se poate spune c dezvoltarea programrii robotului industrial nu este ncheiat. Procedeele de programare descrise n continuare se refer la roboi unici, cu sarcini limitate (roboi industriali specializai). 3

Metode de Programarea pentru Sisteme Robotizate - C6

3.2. Procedee de programare


n funcie de complexitatea arhitecturii robotului, ca sistem, se deosebesc patru procedee de programare, de la cel mai simplu, care permite programarea motoarelor de acionare, pn la cel mai complex, care definete sarcina impus prin realizarea n termeni de obiectiv. Sarcina principal la programarea robotului industrial const n aceea c efectorul (apuctorul) s urmeze o traiectorie bine definit i anumite puncte spaiale sau n anumite momente se execut aciunile tehnologice prescrise. n corelaie cu complexitatea sistemului robot, procedeele de programare se mpart n patru grupe: - programarea manual; - programarea prin nvare direct, - programare prin nvare indirect, - programarea textual. n fig. 3.3 de mai, se prezint o imagine global asupra procedeelor de programare este dat n figura de mai jos.
Procedee de programare Programare manual Programare prin nvare direct Programare prin nvare indirect

Programare textual

Programare prin urmrire

Programare explicit Limbaj simplu

Procedee de poziionare

Direcia de dezvoltare

Fig. 2.3 Procedee de programare a robotului

Foarte important la toate procedeele de programare este faptul dac n timpul programrii trebuie s se foloseasc sau nu manipulatorul. n cazul n care manipulatorul nu este folosit n timpul programrii se vorbete de o programare off line. Programarea off line este utilizat n cazul programrii textuale. Ea ofer posibilitatea formulrii unui program fr scoaterea robotului din activitate. ntruct nu toate problemele pot fi rezolvate off line (dependente de posibilitile de recunoatere a mediului), se utilizeaz i programarea on line.

3.2.1. Programare prin nvare direct


Programarea prin nvare, n general, este realizat chiar n postul de lucru i necesit un minim de mijloace informatice. Aceast programare, indiferent de metoda utilizat, se reduce la o demonstrare material a sarcinii de ndeplinit, efectuat de un operator cu ajutorul robotului. 4

Programare implicit Limbaj evoluat

Cablare memorat

Taste de funciuni

Cablare fix

Metode de Programarea pentru Sisteme Robotizate - C6 Programarea prin nvare presupune nregistrarea poziiilor (configuraiilor) atinse de ctre robot prin deplasarea acestuia i memorarea coordonatelor cuplelor, folosind robotul nsui ca sistem de msur. Plecnd de la fiierele cu valorile coordonatelor specifice fiecrei configuraii, robotul va putea apoi efectua, de cte ori este nevoie, deplasrile i aciunile organului terminal. Dei acest mod de programare on line (care folosete robotul n timpul programrii) este foarte simplu de realizat, cteva inconveniente i limiteaz posibilitile de aplicare: - aplicarea necesit eforturi materiale i financiare importante, deoarece postul de nvare trebuie s fie identic cu cel de funcionare; - nvarea nu ofer utilizatorului o gam larg de mijloace de descriere a structurii i controla aplicaia sa industrial; - securitatea programatorului uman rmne precar datorit prezenei sale nemijlocite n postul de nvare pe timpul memorrii diferitelor configuraii ale robotului. Spre deosebire de acest procedeu on line, care utilizeaz direct robotul, celelalte procedee off line (fr participarea acestuia la programare) permite eliminarea acestor deficiene. Metoda de programare prin nvare direct se bazeaz pe deplasarea robotului n configuraiile succesive corespunztoare punctelor caracteristice aflate pe traiectoria de lucru i memorarea acestor configuraii. Exist dou situaii distincte: robot pasiv I. Robotul pasiv Aceast metod presupune c motoarele de acionare ale robotului sunt scoase din funciune, nregistrarea punctelor caracteristice de pe traiectorie realizndu-se prin: a. Deplasarea manual a robotului, caz n care operatorul deplaseaz manual efectorul terminal pe traiectoria dorit (vezi fig. 3.4 a). i robot activ.

Fig. 3.4 Metode de programare prin nvare

La comanda sa sunt memorate, cu ajutorul traductorilor de deplasare dispui la nivelul cuplelor cinematice, configuraiile succesive prin care acesta va trece n faza de lucru. Aceast metod nu 5

Metode de Programarea pentru Sisteme Robotizate - C6 este evident aplicabil dect n cazul cnd cinematica robotului permite acionarea manual asupra cuplelor (robot reversibil), lucru care nu este posibil, dac rapoartele de reducere ale sistemului de transmisie sunt mari. n plus, efortul necesar pentru conducerea robotului trebuie s fie compatibil cu fora fizic a operatorului, ceea ce implic un robot foarte uor, fie foarte bine echilibrat. Deoarece deplasarea manual nu poate fi foarte precis, aceast metod se utilizeaz n general numai pentru roboii de gabarit mic i cu precizie redus (pentru vopsire). b. Model de substituie, care este o reproducere uoar la scara 1:1 a robotului (fig. 3.4 b), neprevzut cu motoare de acionare, ci doar cu traductori de deplasare la nivelul cuplelor cinematice. Operatorul deplaseaz manual acest schelet prin poziiile necesare realizrii sarcinii de lucru, la comanda sa fiind memorate coordonatele cuplelor sub forma unui program. Robotul, care este inoperant n timpul nvrii, este apoi pilotat pe baza datelor acestui program. Spre deosebire de metoda precedent, aceasta se poate aplica teoretic oricrui tip de robot. II. Robotul activ Spre deosebire de cazul precedent, micarea robotului se obine de la motoarele de acionare, pilotarea pe traiectoria dorit fiind comandat de ctre operatorul aflat ntr-un post de comand, printr-un procedeu de telecomand tip master slave (stpn sclav), robotul avnd rolul de sclav. Ca dispozitiv master de telecomand se folosesc: a. Modele de comand (fig. 3.4 c), care sunt de fapt reproduceri uoare, bine echilibrate, ale scheletului mecanic al robotului, executat la o scar 1:1 sau mai mic, fr a poseda ns motoarele de acionare. n timpul nvrii, operatorul deplaseaz acest model n mod manual, robotul executnd, prin telecomand, deplasri mai mult sau mai puin omotetice n poziiile de pe traiectorie, care sunt memorate cu ajutorul traductorilor dispui de aceast dat la nivelul motoarelor sale de acionare. n timpul rulrii programului nvat de ctre robot, modelul este inoperant. Acest mod de nvare se folosete frecvent pentru nvarea roboilor care lucreaz n medii extreme (nuclear, submarin), operatorul aflndu-se n afara spaiului de lucru din motive de securitate. b. Dispozitive cu mner de tip joystick, care posed un numr de grade de libertate egal cu cel al robotului. Levierul unui joystick, cu trei grade de libertate, comand dispozitivul de prehensiune, tip mn mecanic, n micare de translaie (fig. 3.5), astfel:

Fig. 3.5 Dispozitiv tip joystick simplu

- deplasarea nainte napoi levier mpins nainte sau tras napoi; 6

Metode de Programarea pentru Sisteme Robotizate - C6 - deplasare dreapta stnga levier mpins la dreapta sau la stnga; - deplasare sus jos : levier rotit dup axa sa. Pentru a pilota un robot cu 6 grade de libertate se utilizeaz 2 joystickuri cu trei grade de libertate, dintre care unul comand translaiile i unul rotaiile dispozitivului de prehensiune (fig. 3.6), fie un joystick de construcie special, cu 6 grade de libertate.

Fig. 3.6 Dispozitiv tip joystick cu 6 grade de libertate

3.2.2. Programare prin nvare indirect


n ambele situaii, cu robotul pasiv sau activ, este destul de dificil pentru operator s piloteze robotul cu precizie, cu att mai mult cu ct acesta se afl la distan fa de postul de lucru. n aceste condiii atingerea unei poziii cu o precizie de ordinul milimetrilor sau descrierea unor traiectorii complexe devine adeseori o sarcina lung i delicat chiar pentru un programator versat. Din acest motiv se recurge la programarea prin nvare indirect. n cazul programrii prin nvare indirecta, micarea robotului se realizeaz pe baza motoarelor proprii, telecomandate de ctre operator de la un pupitru sau, mai frecvent, de la o cutie de comand legat printr-un cablu de unitatea de comand. Cutia de comand este prevzut cu butoane care permit comanda micrilor efectorului terminal dup axele sistemului de coordonate propriu sau cel al robotului, editarea programului, dialogul cu unitatea de comand (pentru a facilita editarea i dialogul exist o zon de afiare a mesajelor) i memorarea unei configuraii corespunztoare unei poziii finale a dispozitivului de prehensiune la sfritul unei micri. n fig. 3.7 se prezint o cutie de comand pentru robotul Mitsubishi, RV 2AJ, iar n tabelul 3.2 sunt prezentate funciile aferente diferitelor butoane.

Metode de Programarea pentru Sisteme Robotizate - C6

Fig. 3.7 Cutie de comand pentru robotul Mitsubishi, RV 2AJ Tabelul 3.2 Cutie de comanda a robotului MITSUBISHI. Funcii asigurate. Nr. Funcia Descriere

Acesta este un buton care are funcii de blocare pentru stop n caz de EMERGENCY 1 urgen. Cnd acest comutator este apsat, se oprete alimentarea STOP servomotoarele i robotul este de asemenea oprit. 2 3 4 4 4 5 6 7 ENABLE/ DISABLE Afiaj LCD TOOL JOINT XYZ MENU STOP STEP/MOVE Acest buton este folosit pentru a permite sau nu funcionarea butoanelor de acionare a cutiei de comand. Ecranul cutiei de comand permite afiarea programului sau a strii robotului, funcie de butoanele folosite. Butonul selecteaz modul de deplasarea liniara a punctului caracteristic al robotului dup direcii paralele cu axele sistemului de referina ataat efectorului terminal. Se selecteaz modul de micarea la nivelul unei cuple cinematice. Butonul selecteaz modul de deplasare a punctului caracteristic dup coordonatele carteziene sau cilindrice. Butonul schimb afiarea ecranului n modul menu screen. Acest buton oprete rularea unui program i reduce viteza servomotoarelor. Operaiile de deplasare cu pai mici sunt posibile cnd se apas simultan cu butoanele de operaie 12. Pasul de deplasare este executat cnd butonul este apsat simultan cu butonul INP/EXE. Dac cutia de comand este n modul editare, atunci urmtoarea linie program este afiat. Cnd butonul +/FORWD este apsat simultan cu butonul STEP/MOVE atunci viteza va crete.

+ / FORWD

Metode de Programarea pentru Sisteme Robotizate - C6 Nr. 9 10 11 Funcia Descriere

n modul de editare se afieaz linia de program anterioar. Cnd se apas simultan cu butonul INP/EXE se prezint axele de-a lungul cii de aciune a - / BACKWD robotului. Cnd se apas simultan cu STEP/MOVE atunci viteza se va micora. COND ERROR RESET Acest buton se folosete pentru editarea unui program. Prin apsarea butonului se reseteaz eroarea care a fost produs. Cnd se apas simultan cu butonul INP/EXE, programul va fi resetat.

Cnd se selecteaz micarea JOINT a cuplelor cinematice, atunci fiecare OPERATII DE 12 cupl va fi rotit. Dac se selecteaz deplasarea XYZ, atunci robotul se va DEPLASARE deplasa de-a lungul axei de coordonate selectate. 13 14 15 ADD/ RPL/ DEL/ Apsarea butonului permite nregistrarea datelor poziiei punctului caracteristic. Prin apsarea acestui buton se mut cursorul spre sus. Acionarea acestui buton permite deplasarea cursorului n jos. Prin apsarea acestui buton se terg datele poziiei i se comand deplasarea cursorului spre stnga. Cnd se apas acest buton simultan cu [+C (J6)] sau [-C (J6)], atunci se deschide sau se nchide dispozitivul de prehensiune 1. Dac se acioneaz n aceeai manier butonul [+B (J5)] sau [+B (J5)], atunci se acioneaz dispozitivul de prehensiune 2. Acest buton comand deplasarea cursorului spre dreapta. Acest buton permite introducerea unui program i execut pasul de ncrcare. Prin apsarea butonului se comut ntre editarea numerelor i a caracterelor alfabetice, cnd se editeaz datele poziiei.

16

HAND/

17 18

INP/EXE POS CHAR

n general, pentru un grad de libertate exist fie dou butoane pentru fiecare sens de micare, fie un ntreruptor cu trei poziii, care comand un motor de acionare cu o vitez constant reglabil cu un poteniometru. Deplasrile se execut secvenial, neexistnd posibilitatea coordonrii mai multor axe de micare, ceea ce face ca timpul de pilotare s fie important pentru a atinge o configuraie foarte precis. Odat atins o poziie aceasta este memorat la comanda operatorului, iar n faza de execuie, sistemul de comand al robotului calculeaz i genereaz traiectoria de micare ntre cele dou puncte att din punct de vedere geometric ct i al vitezei de deplasare. Acest mod de programare permite testarea programelor memorate i corectarea lor la postul de lucru al robotului prin faciliti de editare puse la dispoziie: marcarea unei poriuni de traiectorie ntre dou poziii care se dorete a fi modificat; anularea unei poriuni de traiectorie cu continuarea micrii pe traiectoria urmtoare; inserarea unei poriuni de traiectorie cu nlnuirea acesteia ntr-o traiectorie dat; racordarea i nlnuirea a dou subprograme cu crearea unui singur program. 9

Metode de Programarea pentru Sisteme Robotizate - C6

10

Metode de Programarea pentru Sisteme Robotizate - C7

4. PROGRAMAREA PRIN MODELAREA I SIMULAREA SISTEMULUI ROBOTIZAT 4.1 SISTEME DE COORDONATE


4.1.1 Punctul central al sculei robotului Poziia robotului i micrile sale sunt ntotdeauna legate de punctul de centru al sculei. Acest punct este n mod normal definit ca fiind undeva pe instrument, de exemplu, n vrful unui pistol de lipit, n centrul unui dispozitiv de prindere sau la sfritul unui dispozitiv de sortare. Mai multe puncte de centru al sculelor pot fi definite, dar numai unul poate fi activ la un moment dat. Atunci cnd o poziie este nregistrat, acesta este poziia TCP, care este nregistrat. Acesta este de asemenea punctul care se mic de-a lungul unei traiectorii date i la o vitez impus. Dac robotul deine un obiect de lucru i lucreaz cu un dispozitiv staionar, atunci se utilizeaz un punct de centru al sculei (TCP) staionar. 4.1.2 Sisteme de coordonate folosite pentru a determina poziia TCP Poziia dispozitivului (a punctul de centru al sculei - TCP) poate fi specificat n diferite sisteme de coordonate pentru a facilita programarea i reajustare programelor. Sistemul de coordonate definit depinde de ceea ce robotul are de executat. Atunci cnd nu este definit un sistem de coordonate, poziiile robotului sunt definite n sistemul de coordonate de baz. 4.1.2.1 Sistemul de coordonate de baz ntr-o aplicaie simpl, programarea se poate face n sistemul de coordonate de baz, aici axa z coincide cu axa z a primei cuple conductoare a robotului (Fig. 4.1).

Fig. 4.1 Sistemul de coordonate de baz Sistemul de coordonate de baz este situat pe baza robotului: 1

Metode de Programarea pentru Sisteme Robotizate - C7 Origine este situat la intersecia dintre axa 1 i suprafaa de baz de montare (a asiului). Planul xy este identic cu suprafaa de baz de montare. Punctele axei x sunt direcionate spre partea din fa a robotului. Punctele axei y sunt direcionate spre stnga robotului (din perspectiva robotului). Axa z este direcionata spre sus, perpendicular pe planul xy.

4.1.2.2 Sistemul de coordonate global Dac robotul este montat pe podea, programarea n sistemul de coordonate de baz este facil. n cazul n care, robotul este montat invers (suspendat - cu susul n jos), programarea n sistemul de coordonate de baz este mult mai dificil, deoarece direciile axelor nu sunt aceleai cu direciile principale n spaiul de lucru. n astfel de cazuri, este util s se defineasc un sistem de coordonate universal. Sistemul de coordonate universal va coincide cu sistemul de coordonate de baz, n cazul n care nu este definit n mod specific. Uneori, ntr-un atelier pot lucra mai muli roboi n acelai spaiu de lucru. n acest caz, un sistem de coordonate global comun este utilizat pentru a permite programelor de robot s comunice unul cu altul. Poate fi, de asemenea, avantajoas utilizarea acestui tip de sistem, atunci cnd poziiile sunt legate de un punct fix n atelier (Fig. 4.2).

Sistem coordonate baz robot 1

Sistem coordonate baz robot 2

Sistem coordonate global

Fig. 4.2 Doi roboti (dintre care unul este suspendat), cu un sistem comun de coordonate universal. 4.1.2.3 Sistem de coordonate utilizator Un robot poate lucra cu diferite corpuri sau suprafee de lucru cu diferite poziii i orientri. Un sistem de coordonate utilizator poate fi definit pentru fiecare corp n parte. Dac toate poziiile sunt stocate n coordonate obiect, atunci nu va fi necesar o reprogramare dac un obiect trebuie s fie mutat sau rotit. Prin mutarea/rotirea sistemului de coordonate utilizator la fel de mult ca i

Metode de Programarea pentru Sisteme Robotizate - C7 obiectul care a fost mutat/avansat, toate poziiile programate vor urma obiectul i reprogramare nu va fi necesar. Sistemul de coordonate utilizator este definit pe baza sistemului de coordonate universal (Fig. 4.3).
Sistem de coordonate Sistem de coordonate utilizator 1 Sistem de coordonate utilizator 2

Sistem de coordonate global Sistem de coordonate de baz

Fig. 4.3 Dou sisteme de coordonate utilizator descriu poziia a dou corpuri diferite. 4.1.2.4 Sistemul de coordonate obiect Sistemul de coordonate utilizator este folosit pentru a obine diferite sisteme de coordonate pentru diferite dispozitive de lucru sau suprafee de lucru diferite. Cu toate acestea, un dispozitiv de lucru sau un banc de lucru, poate include mai multe obiecte de lucru care urmeaz s fie prelucrate sau manipulate de ctre robot. Astfel, de multe ori ajut la definirea unui sistem de coordonate pentru fiecare obiect n scopul de a face mai uor s se adapteze programul n cazul n care obiectul este mutat sau dac un obiect nou, la fel ca cel anterior, trebuie s fie programat la o locaie diferit.
Sistem de coordonate obiect 1

Sistem de coordonate utilizator

Sistem de coordonate obiect 2

Sistem de coordonate global

Fig. 4.4 Dou sisteme de coordonate obiect descriu poziia a dou obiecte de lucru diferite, situate pe acelai banc de lucru. 3

Metode de Programarea pentru Sisteme Robotizate - C7 Un sistem de coordonate de referin la un obiect se numete un sistem de coordonate obiect. Acest sistem de coordonate este, de asemenea, foarte potrivit pentru programare off-line, deoarece poziiile specificate pot fi, de obicei, luate direct de pe un desen al obiectului de manipulat. Sistemul de coordonate obiect poate fi, de asemenea, utilizat atunci cnd se acioneaz robotul. Sistemul de coordonate obiect este definit pe baza sistemului de coordonate utilizator (Fig. 4.4). Poziiile programate sunt ntotdeauna definite relativ la un sistem de coordonate obiect. n cazul n care un dispozitiv de lucru este mutat/rotit, acest lucru poate fi compensat prin mutarea/rotirea sistemului de coordonate utilizator. n acest caz, nici poziiile programate, nici sistemele de coordonate obiect definite nu este nevoie s fie schimbate. Dac obiectul de lucru este mutat/rotit, acest lucru poate fi compensat prin mutarea/rotirea sistemului de coordonate obiect. Dac sistemul de coordonate utilizator este mobil, atunci se folosesc axele coordonate externe. n cazul acesta, sistemul de coordonate obiect se mut odat cu sistemul de coordonate utilizator. Acest lucru face posibil mutarea (deplasarea) robotului n raport cu obiectul chiar i atunci cnd este manipulat bancul de lucru. 4.1.2.5 Sistemul de coordonate al deplasrii Uneori, aceeai traiectorie se va realiza prin mai multe locuri cu acelai obiect. Pentru a evita reprogramarea tuturor poziiilor de fiecare dat, se definete un sistem de coordonate, cunoscut sub numele de sistemul de coordonate de deplasare. Acest sistem de coordonate poate fi, de asemenea, utilizat n legtur cu cutrile, pentru a compensa diferenele dintre poziiile pieselor individuale. Sistemul de coordonate al deplasrii este definit pe baza sistemului de coordonate obiect (Fig. 4.5).

Poziie nou

Poziie origine Pozi ie Sistem de coordonate de deplasare

Sistem de coordonate obiect

Fig. 4.5 Dac programul de deplasare este activ, toate poziiile sunt mutate

Metode de Programarea pentru Sisteme Robotizate - C7 4.1.2.6 Axe externe coordonate Coordonarea sistemului de coordonate utilizator Dac un obiect de lucru este plasat pe o unitate mecanic extern, care este deplasat n timp ce robotul execut o traiectorie definit n sistemul de coordonate obiect, atunci se poate defini un sistem de coordonate utilizator mobil. Poziia i orientarea sistemului de coordonate utilizator, n acest caz, vor fi dependente de rotaii ale axelor unitii externe. Traiectoria i viteza programat vor fi astfel legat de obiectul de lucru (a se vedea figura de mai jos) i nu este necesar s se ia n considerare faptul c obiectul este mutat de unitate externa.

Sistem coordonate utilizator

Cupla 2

Cupla 3

Cupla 1

Sistem coordonate global

Fig. 4.6 Un sistem de coordonate utilizator, definit pentru a urmri micrile unitii mecanice externe de 3-axe. Coordonarea sistemului de coordonate de baz Un sistem de coordonate mobile poate fi, de asemenea, definit pentru baza robotului. Acest lucru este important pentru instalare, atunci cnd robotul este montat pe o pist sau un portal, de exemplu. Poziia i orientarea sistemului de coordonate de baz ca i sistemului de coordonate utilizator mobil, vor fi dependente de micrile unitii externe. Traiectoria programat i viteza vor fi legate de sistemul de coordonate obiect (Fig. 4.7) i nu este nevoie s se gndeasc la faptul c baza robotului este mutat de ctre o unitate extern. Coordonarea sistemului de coordonate utilizator i a sistemului de coordonate de baz, pot fi definite n acelai timp.

Metode de Programarea pentru Sisteme Robotizate - C7

Sistem coordonate utilizator Sistem coordonate global Traiectorie

Sistem coordonate obiect

Sistem coordonate de baz

Fig. 4.7 Interpolare coordonat cu o cale n micare cu sistemul de coordonate de baz al robotului. Pentru a putea calcula sistemele de coordonate de baz i utilizator, atunci cnd unitile implicate sunt mutate, robotul trebuie s fie pregtit de: Calibrarea poziiilor sistemelor de coordonate de baz i utilizator. Relaiile ntre unghiurile de axe externe i translaia/rotaie a sistemului de coordonate utilizator i a celui de baz. Aceste relaii sunt definite n parametrii sistemului. 4.1.3 Sisteme de coordonate folosite pentru determina direcia sculei Orientarea unei scule (dispozitiv) ntr-o poziie programat este dat de orientarea sistemului de coordonate scul. Sistemul de coordonate scul este raportat la sistemul de coordonate ncheietura minii, definit la flana de montare pe ncheietura minii a robotului. 4.1.3.1 Sistemul de coordonate a ncheieturii minii ntr-o aplicaie simpl, sistemul de coordonate al ncheieturii minii poate fi utilizat s defineasc orientarea sculei; aici axa z coincide cu axa 6 a robotului (Fig. 4.8).

Fig. 4.8 Sistemul de coordonate al ncheieturii minii 6

Metode de Programarea pentru Sisteme Robotizate - C7 Sistemul de coordonate al ncheieturii minii nu poate fi schimbat i este ntotdeauna acelai ca i flana de montare a robotului n urmtoarele privine: Originea este situat la centrul flanei de montare (pe suprafaa de montare). Punctele de pe axa x sunt n direcie opus, spre gaura de control a flanei de montare. Punctele pe axa-z sunt ndreptate spre exterior, la unghiuri drepte fata de flana de fixare. 4.1.3.2 Sistem de coordonate pentru scula Dispozitivul montat pe flana de fixare a robot necesit adesea propriul sistem de coordonate pentru a permite definirea de TCP (punctul central al sculei), care este originea sistemului de coordonate al uneltei. Sistemul de coordonate al dispozitivului poate fi utilizat de asemenea pentru a obine direcii potrivite ale micrii cnd se acioneaz robotul. Dac un dispozitiv este deteriorat sau nlocuite, tot ce avei de fcut este redefinirea sistemul de coordonate al dispozitivului. Programul nu trebuie, n mod normal, s fie schimbat. TCP (originea) este selectat ca punctul de pe unealta (dispozitiv) care trebuie s fie poziionat corect, de exemplu gura unui pistol de lipit. Axele de coordonate al uneltei sunt definite ca acele naturale pentru dispozitivului in cauza.

Fig. 4.9 Sistemul de coordonate al uneltei, ca de obicei definite pentru un pistol de sudura cu arc (stnga) i un pistol sudura prin puncte (dreapta) Sistemul de coordonate al dispozitivului este definit pe baza sistemului de coordonate ncheieturii minii (Fig. 4.10).

Fig. 4.10 Sistemul de coordonate al uneltei este definit relativ la sistemul de coordonate al ncheieturii minii, aici pentru un dispozitiv de prindere 7

Metode de Programarea pentru Sisteme Robotizate - C7

Metode de Programarea pentru Sisteme Robotizate - C 8

4.2 CONFIGURAIA PENTRU POZIIE I ORIENTARE

4.2.1 Introducere
n timpul execuiei programului, instruciunile de poziionare din programul robotului controleaz toate micrile. Sarcina principal a instruciunilor de poziionare este de a oferi urmtoarele informaii cu privire la modul de a efectua micrile: Punctul de destinaie al micrii utilizat n programarea micrii se definete ca poziie a punctului centrul sculei (TCP), ca orientare a sculei i configurare a robotului. Metoda de interpolare folosit pentru a ajunge la punctul de destinaie, de exemplu, interpolarea coordonatelor cuplelor, interpolare liniar sau interpolare n arc de cerc. Viteza robotului i a axelor externe (dac este cazul). Sistemele de coordonate (sculei, utilizatorului i obiectului) folosite pentru micare. Ca o alternativ la definirea vitezei robotului i axele externe, timpul de micare poate fi programat. n schimb vitezele de orientare i vitezele axelor externe ar trebui s fie utilizate pentru a limita viteza, atunci cnd sunt fcute deplasri mici ale TCP.

4.2.2 Diferite tipuri de configuraii ale robotului


De obicei este posibil ca un robot s ating aceeai poziie i orientare a sculei (dispozitivului de prindere) robotului n mai multe moduri diferite, utiliznd diferite seturi de unghiuri ale axelor. Poziiile i orientrile sculei unui robot sunt numite configuraii diferite ale robotului. Dac, de exemplu, o poziie se afl aproximativ n mijlocul unei celule de lucru, unii roboi pot ajunge la aceast poziie de sus i mai jos atunci cnd se utilizeaz diferite direcii ale axei 1, aa cum se arat n Fig. 4.11.

b
Fig. 4.11 Dou configuraii diferite ale braului utilizate pentru atingerea aceeai poziie i orientare.

Metode de Programarea pentru Sisteme Robotizate - C 8 Pentru robotul din Fig. 4.11 a, configuraia este atins prin rotaia napoi a braului. Axa 1 este rotit cu 180 grade. Unii roboi pot obine, de asemenea, aceast poziie de sus i poziia de jos n timp ce se utilizeaz aceeai direcie a axei 1. Acest lucru este posibil pentru tipurile de roboi cu domeniul de lucru al axei 3 extins (Fig. 4.12).

a b

Fig. 4.12 Dou configuraii diferite ale braului utilizate pentru atingerea aceeai poziie i orientare. Unghiul Axei 1 este acelai pentru ambele configuraii. Configuraia din partea dreapt este realizat prin rotirea braului inferior nainte i partea superioar a braului napoi (4.12 a). Acest lucru poate fi realizat prin rotirea prii din fa a braului superior al robotului (axa 4) cu susul n jos (invers), n timp ce axele 5 i 6 sunt rotite n poziia i orientarea dorit (Fig. 4.13). axa 6

axa 4 axa 5

Fig. 4.13 Dou configuraii diferite ale ncheieturii minii utilizate pentru a atinge aceeai poziie i aceeai orientare. n configuraia, n care partea din fa a braului superior este orientata in sus (dedesubt), axa 4 a fost rotit cu 180 de grade, axa 5 cu 180 de grade i axa 6 cu 180 de grade, n scopul atingerii configuraiei n care partea frontal a braului superior este orientata n jos (deasupra).

4.2.3 Specificarea configuraiei robotului


Atunci cnd se programeaz poziia unui robot, n plus, este specificat configuraia robotului cu tipul de dat confdata. Acest tip de date are urmtoarea structur: 2

Metode de Programarea pentru Sisteme Robotizate - C 8

[cf 1 cf2 cf3 cfx] .


Modalitate de a specifica configurarea robotului difer pentru diferite tipuri de roboi. Cu toate acestea, pentru majoritatea tipurilor de roboi aceasta include definirea rotaiei corespunztoare unui numr al cadranului pentru axelor 1, 4 i 6. De exemplu, n cazul n care axa 1 este ntre 0 i 90 de grade, apoi cf1 = 0, (Fig. 4.14 i Fig. 4.15). Cadranul pentru unghi pozitiv al cuplei se determin cu relaia int unghi cupla

unghi . / 2

Fig. 4.14 Cadranul pentru unghiul pozitiv al cuplei Cadranul pentru un unghi negativ se stabilete cu relaia int unghi cupla

unghi 1 /2

Fig. 4.15 Cadranul pentru unghiul negativ al cuplei Pentru realizarea configuraiei din timpul execuiei programului, care s coincid cu cea programat este necesar o verificare a configuraiei cu ajutorul instruciunilor ConfJ \ On sau ConfL \ On. Dac configuraia corect nu este realizat, atunci execuia programului va fi oprit. n cazul n care configuraia nu este verificat, robotul poate s-i mite braul i ncheietura n mod neateptat i s provoace o coliziune cu echipamentele periferice. n timpul unei traiectorii liniare, robotul se deplaseaz ntotdeauna la configurarea cea mai apropiat posibil. n cazul n care, verificarea configurrii este activ cu ConfL \ On, executarea programului se oprete n momentul n care una dintre axe determin o deviaie fa de configurarea programat. Tipul de date confdata este utilizat pentru a specifica configurarea robotului. Toate poziiile robotului sunt definite i memorate folosind coordonatele rectangulare. Cnd se calculeaz poziiile corespunztoare axei, vor exista dou sau mai multe soluii posibile. Acest lucru nseamn c robotul este capabil s realizeze aceeai poziie, i anume, scula (dispozitivul) este n aceeai poziie i cu aceeai orientare n mai multe poziii diferite sau configuraii diferite ale axelor robotului.

Metode de Programarea pentru Sisteme Robotizate - C 8 Unele tipuri de roboi folosesc metode iterative numerice pentru a determina poziiile axelor robotului. n aceste cazuri, parametrii de configurare pot fi folosii pentru a defini valori de start bune pentru cuplele conductoare, care s fie folosite de procedura iterativ. Pentru a indica n mod clar una dintre aceste configuraii posibile, configuraia robotului este specificat utiliznd patru valori ale axelor. Pentru o ax de rotaie, valoarea definete cadranul curent al axei robotului. Cadranele sunt numerotate 0, 1, 2, etc. (acestea pot fi i negative). Numrul cadranului este n relaie cu unghiul cuplei actuale al axei. Pentru fiecare ax, cadranul 0 este primul cadran de rotaie, de la 0 pn la 90, n direcie pozitiv din poziia zero; cadranul 1 este urmtoarea rotaie, de la 90 pn la 180, etc. Cadranul -1 este de rotaie de la 0 pn la (-90), etc. (Fig. 4.16). n Fig. 4.16 se prezint cadranele configuraiei pentru axa 6.

-4

-1

-3

-2

Fig. 4.16 Cadranele configuraiei pentru axa 6 Pentru o ax liniar, valoarea definete un interval n metri pentru axa robotului. Pentru fiecare ax, valoarea 0 reprezint o poziie ntre 0 i 1 metri i 1 nseamn o poziie ntre 1 i 2 metri. Pentru valori negative, -1 nseamn o poziie ntre -1 i 0 metri, etc. (Fig. 4.17). n fig. 4.17 se prezint valorile de configurare pentru o ax liniar.

Valoarea de configurare Fig. 4.17 Valorile de configurare pentru o ax liniar De exemplu, pentru robotul IRB 140 sunt trei singulariti n spaiul de lucru al robotului. Datele de configurare ale acestui robot sunt: cf1 este numrul cadranului curent pentru axa 1, exprimat ca numr ntreg pozitiv sau negativ. cf2 este numrul cadranului curent pentru axa 4, exprimat ca numr ntreg pozitiv sau negativ. cf6 este numrul cadranului curent pentru axa 6, exprimat ca numr ntreg pozitiv sau negativ. 4

Metode de Programarea pentru Sisteme Robotizate - C 8 cfx este folosit pentru a selecta una din cele opt configurri posibile ale robotului. Tabelul de mai jos descrie fiecare dintre configurrile robotului, privind modul n care robotul este poziionat relativ la cele trei singulariti. Figurile de mai jos dau un exemplu de modul n care poziia sculei i aceeai orientare este atins prin utilizarea celor opt configuraii diferite. Centrul ncheieturii n Centrul ncheieturii n Unghiul axei 5 raport cu axa 1 raport cu braul inferior n fa n fa pozitiv n fa n fa n fa n spatele n spatele n spatele n spatele n fa n spatele n spatele n fa n fa n spatele n spatele negativ pozitiv negativ pozitiv negativ pozitiv negativ

cfx 0 1 2 3 4 5 6 7

Figura urmtoare prezint un exemplu al configurrii robotului pentru valorile cfx = 0 i cfx = 1. De notat c valorile unghiului axei 5 au semne diferite.

axa 1

Bra inferior

axa 1

Bra inferior

Centrul ncheieturii

Centrul ncheieturii

Fig. 4.18 a Valorile de configurare pentru coeficientul cfx Urmtoarea figur prezint un exemplu al configurrii robotului pentru valorile cfx = 2 i cfx = 3.

Metode de Programarea pentru Sisteme Robotizate - C 8 axa 1 axa 1

Centrul ncheieturii Bra inferior

Centrul ncheieturii Bra inferior

Fig. 4.18 b Valorile de configurare pentru coeficientul cfx Figura urmtoare prezint un exemplu al configurrii robotului pentru valorile cfx = 4 i cfx = 5. Se observ c valorile pentru unghiul axei 5 au semne diferite. axa 1 Centrul ncheieturii axa 1 Centrul ncheieturii

Bra inferior

Bra inferior

Fig. 4.18 c Valorile de configurare pentru coeficientul cfx Figura urmtoare prezint un exemplu al configurrii robotului pentru valorile cfx = 4 i cfx = 5. Bra inferior Bra inferior

axa 1

axa 1

Centrul ncheieturii

Centrul ncheieturii

Fig. 4.18 d Valorile de configurare pentru coeficientul cfx Un exemplu de baz al tipului de date confdata este ilustrat mai jos. VAR confdata conf15 := [ 1, -1, 0, 0]

Metode de Programarea pentru Sisteme Robotizate - C 8 O configurare a robotului IRB 5400 cu ajutorul tipului de date conf15 este definit dup cum urmeaz: O configurare a axei 1 a robotului este cadranul notat cu 1, adic 90-180. O configurare a axei 4 a robotului este cadranul notat cu -1, adic 0 (-90). O configurare a axei 6 a robotului este cadranul notat cu 0, adic 0 90. O configurare a axei 5 a robotului este cadranul notat cu 0, adic 0 90.

Metode de Programarea pentru Sisteme Robotizate - C 8

Metode de Programarea pentru Sisteme Robotizate - C9

4.3. MODELAREA I SIMULAREA SISTEMULUI ROBOTIZAT FOLOSIND ROBOTSTUDIO

Aceast seciune ridic multe din problemele care trebuie s fie considerate n proiectarea sistemului de programare off-line. Colecia de probleme discutate v va ajuta s punei scopul definirii unui sistem de programare off-line.

4.3.1. Interfa utilizator


O motivare major pentru dezvoltarea unui sistem de programare off-line este s creeze un mediu care face programarea manipulatoarelor mai uoar, deci interfaa utilizator este de o importan crucial. Pe de alt parte, un alt motiv major este s elimine sprijinul folosirii echipamentului fizic n timpul programrii. Pe consideraia iniial, aceste dou scopuri dau impresia de conflict, roboii sunt destul de greu de programat cnd tu poi s-i vezi, deci, cum pot fi uor de programat fr prezena manipulatorului fizic? Aceast ntrebare privete esena problemei de proiectare a programrii off-line. Productorii de roboi industriali au nvat c limbajele de programare pentru roboi oferite cu roboii lor nu pot fi utilizate cu succes de ctre un mare procent de prelucrtori personali. Pentru aceasta i alte argumente istorice, muli roboi industriali sunt prevzui cu o interfa cu dou nivele, una pentru programator i una pentru cei care nu programeaz, dar manipuleaz robotul. Operatorii utilizeaz o cutie cu butoane de comand i interacioneaz n mod direct cu robotul pentru a dezvolta programul robot. Programatorul scrie codul n codul limbajului de programare pentru roboi i interacioneaz cu robotul n ordinea de nvare a punctelor de lucru pentru robot i corecteaz algoritmul programului. n general, aceste dou abordri ale dezvoltrii programului iau n considerare uurina de utilizare n defavoarea flexibilitii. Cnd sistemul de programare este privit ca o extensie a limbajului de programare pentru roboi, atunci acest sistem de programare off line conine n mod firesc un limbaj de programare pentru roboi ca un subset al interfeei utilizator. Acest limbaj de programare pentru roboi (RPL) ar da caracteristici care au fost deja descoperite s fie evaluate n sistemele de programare pentru roboi. De exemplu, pentru folosirea ca limbaj de programare pentru roboi, limbajele interactive, care sunt mult mai productive dect limbajele compilate, care oblig utilizatorul s treac prin ciclul edit compile run pentru fiecare modificare a programului. Partea limbajului folosit pentru interfaa utilizator motenete mai mult de la limbajele de programare pentru roboi tradiionale; interfaa este de nivel sczut (adic uor de folosit) care poate fi considerat n sistemul de programare off line. O component principal a acestei interfee este 1

Metode de Programarea pentru Sisteme Robotizate - C9 vederea grafic computerizat a robotului programat i a mediului de lucru. Folosind un dispozitiv de indicare, cum ar fi un mouse, utilizatorul poate indica variate locaii sau obiecte pe ecranul grafic. Proiectarea interfeei utilizator stabilete exact cum utilizatorul interacioneaz cu ecranul pentru a specifica un program robot. Acelai dispozitiv de indicare poate specifica ntr-un meniu modurile sau funcii variate. Disponibilitatea modelelor 3D, dispozitivelor de fixare i a pieselor de lucru n sistemul de programare off line fac adesea aceast sarcin foarte uoar. Interfaa furnizeaz utilizatorului mijloacele sale s indice locaii pe suprafa, permind orientarea sistemului de coordonate s ia pe normala local a suprafeei i apoi furnizeaz metodele pentru dezaxare, reorientnd, .a.m.d. n funcie de specificul aplicaiei, astfel de sarcini sunt destul de uor de specificat prin fereastra grafic n mediul simulat. O interfa utilizator bine proiectat ar permit operatorilor s realizeze multe aplicaii de la nceput pn la sfrit. n plus sistemele de coordonate i secvenele micrii nvate de operatori ar fi n stare s fie translate de sistemul de programare off line n instruciuni ale limbajului de programare textual al robotului. Aceste programe simple pot fi meninute i nfrumuseate n forma limbajului de programare pentru roboi de ctre programatorii experimentai. Pentru programatori disponibilitatea limbajului de programare pentru roboi permite arbitrar dezvoltarea codului pentru aplicaii complexe.

4.3.2. Modelare 3D
Un element principal n sistemele de programare off line este folosirea descrierii grafice a simulrii robotului i a celulei de lucru. Aceasta necesit ca robotul, dispozitivele, prile i sculele n celula de lucru s fie modelate ca obiecte tridimensionale. Pentru a mri viteza dezvoltrii programului, este de dorit s se foloseasc un model CAD al prilor sau sculelor care sunt disponibile n mod direct din sistemul CAD pe care a fost fcut n proiectarea original. Pentru ca sistemele CAD s devin din ce n ce mai mult rspndite n industrie, el trebuie s devin din ce n ce mai potrivit ca acest tip de date geometrice vor fi disponibile. Din cauza necesitii ca acest tip de integrare CAD a proiectrii cu producia, este firesc ca un sistem de programare off line s conin un subsistem de modelare CAD sau s fie el nsui o parte din sistemul de proiectare CAD. Dac un sistem de programare off line este un sistem autonom, el trebuie s aib interfee corespunztoare s transfere modele spre i de la sistemele CAD externe; pe de alt parte un sistem autonom de programare off line ar trebui s aib cel puin o facilitate simpl local CAD pentru crearea rapid a modelelor mai puin critice sau pentru adugarea datelor specifice ale robotului care import modele CAD.

Metode de Programarea pentru Sisteme Robotizate - C9 Sistemele de programare off line n general solicit reprezentri multiple ale formelor spaiale. Pentru multe operaii, n general se arat o descriere analitic exact a suprafeei sau volumului; totui, pentru a trage foloase din tehnologia afirii, adesea este necesar o alt reprezentare. Tehnologia curent este bun pentru sistemele n care afiarea simpl de baz este un poligon plan; aadar, forma unui obiect poate fi reprezentat de o suprafa neted, afiarea practic (n special pentru animaie) cere o reprezentare plan. Aciunile grafice ale interfeei utilizator, cum ar fi indicarea ctre o poziie pe suprafa, ar aciona ca s specifice un punct pe suprafaa adevrat, chiar dac, n mod grafic, utilizatorul vede o descriere a modelului plan. O utilizare important a geometriei tridimensionale a modelelor obiect este n detectarea automata a coliziunilor. Bine ar fi cnd orice coliziune care se ntmpla ntre obiectele din mediul simulat, sistemul de programare off line ar avertiza n mod automat utilizatorul i s indice exact unde va avea loc coliziunea. Aplicaii ca de exemplu, asamblarea poate implica multe coliziuni dorite, deci este necesar sa fie capabil sa informeze sistemul c coliziunile dintre obiectele sigure sunt acceptabile. Este de asemenea important sa fie capabil s genereze o coliziune avertiznd cnd obiectele trec n cadrul unei tolerante specificate a unei coliziuni adevrate. n mod curent, problema detectrii exacte a coliziunii pentru solide 3D este n general dificil, dar detectarea coliziunii pentru modele cu fee plane este relativ uoar.

4.3.3. Simulare cinematic


O component principal n meninerea validitii unui mediu simulat este simularea fidel a aspectelor geometrice a fiecrui manipulator simulat. Cu privire la simularea invers, sistemul de programare off line poate interfaa cu controlerul robotului n dou moduri distincte. n primul mod, sistemul de programare off line ar putea nlocui cinematica invers a controlerului i ntotdeauna s comunice poziiile robotului n coordonatele cuplelor mecanismului (n coordonate generalizate). Al doilea mod de alegere este s comunice locaia n coordonate Carteziene controlerului robotului i controlerul s foloseasc cinematica invers furnizat de productor pentru a rezolva configuraiile robotului. A doua alegere este adesea de preferat, n special cnd productorii ncep s construiasc stilul de calibrarea a semnturii braului n roboii lor. Aceste tehnici ale calibrrii individualizeaz cinematica invers pentru fiecare robot individual. n acest caz, devine de dorit s comunice informaia la nivelul coordonatelor Carteziene pentru controlerul robotului. n general, aceste consideraii nseamn c funciile pentru cinematica direct i invers folosite de simulator trebuie s reflecte funciile nominale folosite n controlerul robotului furnizate de productorul robotului. Sunt mai multe detalii ale funciei cinematice inverse specificate de productor care trebuie s fi emulate de ctre programul de simulare. Orice algoritm al cinematicii 3

Metode de Programarea pentru Sisteme Robotizate - C9 inverse trebuie s fac alegeri arbitrare cu scopul de a rezolva singularitile. De exemplu, cnd cupla conductoare 5 a robotului PUMA 560 este la locaia de start (zero), axele 4 i 6 aliniate exist o condiie de singularitate. Funcia cinematic invers din controlerul robotului poate s rezolve pentru suma unghiurilor cuplelor 4 i 6, dar n continuare trebuie s foloseasc o regul arbitrar s aleag valorile individuale pentru cuplele 4 i 6. Sistemul de programare off line trebuie s emuleze orice algoritm care este folosit. Alegnd cea mai apropiat soluie cnd exist mai multe soluii alternative ofer un alt exemplu. Simulatorul trebuie s foloseasc acelai algoritm n controler cu scopul de a evita potenialele erori catastrofale n simularea manipulatorului actual. O caracteristic util ocazional gsit n controlerul robotului este abilitatea de a comanda o int Cartezian i specific care dintre soluiile posibile ale manipulatorului ar fi folosite. Existena acestei caracteristici elimin condiia ca simulatorul s emuleze algoritmul alegerii soluiei; sistemul de programare off line poate condiiona simplu alegerea lor n controler.

4.3.4. Simulare multiproces


Unele aplicaii industriale implic doi sau mai muli roboi care lucreaz mpreun n acelai mediu. Chiar celula de lucru cu un singur robot conine adesea o band rulant, o linie de transfer, sistem de vedere artificial, sau alte dispozitive active cu care robotul trebuie s interacioneze. Pentru acest motiv, este important ca sistemul de programare off line s fie capabil s simuleze micrile pentru multe dispozitive i alte activiti care implic paralelismul. Ca o baz pentru aceasta capacitate, limbajul fundamental n care sistemul este implementat ar fi un limbaj multiproces. Astfel de medii fac s fie posibil s scrie programe independente pentru controlul robotului pentru fiecare dintre doi sau mai muli roboi ntr-o singur celul i apoi s simuleze aciunea celulei cu programe care ruleaz n acelai timp. Adugarea semnal i ateptare la limbaj d posibilitatea roboilor s interacioneze cu oricare altul aa cum ei au permis n aplicaia care este simulat.

4.3.5. Simularea senzorilor


Studiile arat c o vast component a programrii robotului const nu numai instruciunile pentru micri, mai degrab de iniializare, verificarea erorilor, I/O (intrare/ieire), i alte tipuri de instruciuni (declaraii). De aici nainte, capacitatea sistemului de programare off line furnizeaz un mediu care permite simularea aplicaiilor complete, incluznd interaciunea cu senzorii, variate intrri/ieiri, i comunicarea cu alte dispozitive devine important. Un sistem de programare off line care suport simularea senzorilor i multiprocesarea nu poate verifica posibilitatea micrilor robotului, dar pot verifica comunicarea i sincronizarea unei pri a programului pentru robot.

Metode de Programarea pentru Sisteme Robotizate - C9

4.3.6. Calibrarea celulei de lucru


O realitate inevitabil a unui model computerizat pentru orice situaie real este imprecizia modelului. Pentru a face utilizabile programele dezvoltate ntr-un sistem de programare off line, metodele pentru calibrarea celulei de lucru trebuie s fie o parte integral a sistemului. Amplitudinea acestei probleme difer mult n funcie de aplicaie; aceast variabilitate face programarea off line a unor sarcini mult mai realizabil dect altele. Dac majoritatea punctelor de lucru ale unui robot pentru o aplicaie trebuie renvate pentru a rezolva problema impreciziei, sistemul de programare off line i pierde eficiena. Multe aplicaii implic frecvent efectuarea unor aciuni asupra unui obiect rigid. S considerm, de exemplu, sarcina de gurire a ctorva sute de guri ntr-un capac. Localizarea efectiv a capacului n raport cu robotul poate fi nvat punnd robotul s fac trei msurtori. Pornind de la aceste date localizarea tuturor gurilor poate fi actualizat n mod automat, dac ele sunt disponibile n coordonate relative la pies ntr-un sistem CAD. n aceast situaie numai acele trei puncte (trei msurtori) trebuie nvate de ctre robot, mai degrab dect nvarea ctorva sute. Majoritatea sarcinilor implic aceast fel de paradigm multe operaii relative la un obiect rigid de exemplu inseria componentelor tastaturii unui PC, sudarea prin puncte, sudarea n arc, paletizarea, vopsirea i debavurarea.

4.3.7. Modelarea i Programarea folosind RobotStudio 5

4.3.7.1. Caracteristici ale programului RobotStudio 5


RobotStudio este un proiect de program pentru a dezvolta o abordare modular IDE (Integrated Development Environment Mediu de dezvoltare a programelor pe calculator) bazate pe ingineria predrii limbajelor i compilatoarelor folosind roboii ca sistem obiectiv. Abordarea de predare a fost utilizat la Universitatea din Massachusetts Lowell pentru a preda cursul de licen de construcie compilator i modul de prelucrare lingvistice ntr-un curs universitar de programare. Programul RobotStudio a fost preluat i dezvoltat de firma ABB pentru modelarea, simularea i programarea off line a roboilor. Cu noile metode de programare, ABB stabilete regulile pentru programarea roboilor din lumea ntreag. Programarea off line reduce riscul prin vizualizarea i confirmarea soluiilor i scenariilor nainte ca robotul actual s fie instalat, i genereaz o calitate superioar prin crearea de traiectorii mai precise. Pentru a realiza programarea off line, RobotStudio utilizeaz Tehnologia ABB pentru Roboi Virtuali, care a fost inventat cu mai mult de zece ani n urm.

Metode de Programarea pentru Sisteme Robotizate - C9 Cu Robot Studio 5 este acum posibil s ruleze mai muli roboi virtuali n acelai timp i suport MultiMove, noua tehnologie IRC5 pentru rularea a mai multor roboi de la un controler. MultiMove este o funcie introdus n softul IRC5 care permite la mai muli de patru roboi s lucreze mpreun cu diverse dispozitive. Activitatea n cooperare include operaie complet coordonat. Aceast funcionalitate avansat a fost fcut posibil de ctre capacitatea de procesare i modularitate (gradul n care componentele unui sistem pot fi separate sau combinate) a unui controler IRC5 care este capabil de calculul traiectoriilor a mai mult de 36 de axe servo. RobotStudio poate importa uor date n format principal CAD, inclusiv STEP, VRML i CATIA. Prin munc cu aceste date foarte exacte, programatorul robotului este capabil s genereze mai mult precizie programelor robot, dnd calitate nalt produsului. Prin utilizarea modelului CAD al unei pri care va fi procesat, este posibil s genereze n mod automat, n cteva minute, poziiile robotului necesare s urmeze curba. Aceast sarcin, prin alte metode ar dura cteva ore. AutoReach este o funcie care n mod automat analizeaz posibilitatea atingerii unei poziii de ctre robot. Aceast funcie permite s verifice i s optimizeze generarea traiectoriei n cteva minute. RobotStudio poate detecta n mod automat i s avertizeze programele care includ micrile n vecintatea punctelor singulare. Funcia Simulation Monitor este un instrument vizual pentru optimizarea micrii robotului. Linia roie indic care sarcini pot s mbunteasc micarea robotului pe calea cea mai eficient. Aceast funcie are posibilitatea s optimizeze pentru centrul sculei (TCP), viteza i acceleraia. Detectarea coliziunii previne pagube costisitoare pentru echipamentele din celula de lucru. Prin selectarea obiectelor interesate, RobotStudio va supraveghea i va indica obiectele care se vor ciocni cnd un program robot este executat. Cutia de comand virtual este o reprezentare grafic a cutiei de comand real i este mecanizat de ctre VirtualRobot. n primul rnd, orice aciune care poate fi fcut cu cutia de comand real, se poate face i cu cutia de comand virtual. Aceast posibilitate arat c cutia de comand virtual este un instrument pentru programarea prin nvare. Programul robot ntreg poate fi descrcat ctre sistemul real fr a fi necesar decodificarea. Aceasta este o caracteristic unic mulumit Virtual Robot Technology, care este o tehnic asigurat numai de ABB. Cu funcia MechanismModeler utilizatorii pot modela propria lor cale, scul sau griper pentru folosirea n simulrile RobotStudio. Funcia ScreenRecorder permite utilizatorului s fac nregistrri a muncii lor n RobotStudio. Aceasta este util pentru demonstraii i n scopul programrii prin nvare. Cu comanda VirtualTime se d posibilitatea s se estimeze ciclul de timp real pentru programul robotului, incluznd i instruciunile logice. 6

Metode de Programarea pentru Sisteme Robotizate - C9 Funcia AutoConfiguration te ajut s defineti n mod automat configuraia optim a robotului pentru ntreaga traiectorie folosind doar un singur clic. abloanele instruciune dau posibilitatea programului RobotStudio s recunoasc i s programeze folosind orice instruciune RAPID. Programul RobotStudio vine cu abloane predefinite anticipat pentru toate instruciunile RAPID standard i ai, de asemenea, posibilitatea s creezi i s distribui abloanele pentru procesele i instruciunile personale

Metode de Programarea pentru Sisteme Robotizate - C9

Metode de Programarea pentru Sisteme Robotizate - C10

4.3.7. Modelarea i Programarea folosind RobotStudio 5 (continuarea)


4.3.7.2. Introducere Programul RobotStudio 5, produs de firma ABB, este destinat modelrii, programrii off line a roboilor din gama ABB i a simulrii acestora n cadrul unor staii de lucru. Programul este util pentru programare, instruire n utilizarea roboilor i optimizarea programelor, oferind urmtoarele avantaje: eliminarea riscului care exist la roboii reali; iniializarea controlerului ntr-un timp mai scurt; posibilitatea de a lucra cu diverse tipuri de dispozitive de prehensiune; posibilitatea de a testa o gama larg de roboi ABB; posibilitatea de creere i importare de obiecte proprii ce pot fi salvate n biblioteca programului. Fiecare robot inclus ntr-o staie de lucru este condus de ctre un controler virtual care este o copie identic a softului de pe cel real. Acest lucru permite simulri realistice care pot fi adaptate cu modificri minime cazului real. Dezavantajele programului de simulare: ca orice simulator, nu va putea realiza n totalitate mediul real; anumite poziii vor trebui redefinite pe robotul real. 4.3.7.3. Interfaa programului RobotStudio 5 Scopurile acestui subcapitol sunt: Prezentarea interfeei programului; Deschiderea unei staii de lucru; Navigarea n cadrul ferestrei grafice. n urma lansrii n execuie a programului RobotStudio 5, utilizatorul este ntmpinat de interfaa prezentat n figura 4.1. 1 - Meniuri; 2 - Fereastra Browsers; Aceast fereastr prezint toate obiectele staiei ntr-un mod ierarhic Alegerea ntre Layout i Paths&targets se face prin intermediul butoanelor corespunztoare prezente n partea de sus a ferestrei Browsers; 3 - Fereastra de mesaje (Output) afieaz mesajele provenite de la controlerul virtual i de la program; 4 - Bara de stare (Status Bar) afieaz cteva din setrile curente; 1

Metode de Programarea pentru Sisteme Robotizate - C10 5 - Fereastra grafic (View) afieaz imagini 3D ale tuturor obiectelor. n cadrul acestei ferestre obiectele pot fi selectate i manipulate.

3 4 Fig. 4.1. Fereastra de start Deschiderea unei staii de lucru, fiier cu extensia rsstn, se face prin selectarea ei din fereastra ce apare prin intermediul ferestrei ABB, dup care se selecteaz comanda Open Station. (fig. 4.2).

Fig. 4.2. Fereastra pentru deschiderea unei staii de lucru Ca urmare a deschiderii staiei, n fereastra grafic este afiat staia, n fereastra Browsers pot fi gsite toate componentele staiei, iar n fereastra mesajelor este afiat un mesaj de la controlerul virtual (fig. 4.3).

Metode de Programarea pentru Sisteme Robotizate - C10

Fig. 4.3. Exemplu de staie de lucru Navigarea n cadrul ferestrei grafice se poate realiza att prin intermediul tastaturii ct i al mouse-lui dup o prealabil selectare a ferestrei cu butonul stng al mouse-lui. Plasarea mouse-lui deasupra ferestrei grafice are ca efect schimbarea grafic a pointerului. (apare n form de cruce). n aceast situaie pot fi selectate diverse obiecte din cadrul ferestrei, obiecte ce pot fi apoi examinate n detaliu selectnd opiunea Examine. Revenirea la imaginea panoramic se face selectnd opiunea Unexamine. Aceast opiune apare disponibil i obiectelor din fereastra de obiecte. 1 a
a h a h a d

6 Fig. 4.4. Exemplu de staie de lucru

n fig. 4.4 se prezint semnificaia instrumentelor din fereastra View: 1a view all; 1b view center; 2a curve selection; 2b surface selection; 2c body selection; 2d part selection; 2e group selection; 2f mechanism selection; 2g target/frame selection; 2h path selection. 3

Metode de Programarea pentru Sisteme Robotizate - C10 3a snap object; 3b snap center; 3c snap mid; 3d snap end; 3e snap edge; 3f snap gravity; 3g snap local origin; 3h snap grid, 4a point to point (msurarea distanei dintre dou puncte); 4b angle; 4c diameter; 4d minimum distance. 5 play, start simulare; 6 stop, oprire simulare. Pentru rotirea staiei din fereastra View i dac se folosete un mouse cu dou butoane se apas simultan tastele Ctrl + Shift + butonul din dreapta al mouse-lui. n acest caz, micarea mouse-lui duce la rotirea imaginii. Micarea n cele 4 direcii se realizeaz prin deplasarea mouse-lui n direcia dorit, avnd simultan apsate tasta Ctrl i butonul stng al mouse-lui. (fig. 4.4). Selectarea unei poriuni a ferestrei grafice pentru a putea fi vizualizat n detaliu se realizeaz prin deplasarea mouse-lui dup apsarea simultan a tastei Shift i a butonului din dreapta al mouse-lui. 4.3.7.4. Construirea unei staii de lucru Scopul acestui paragraf este de a nva cum: se ncarc din biblioteca programului principalele elemente (robot, scule necesare) pentru a construi o staie de lucru; se starteaz controlerul virtual; se ataeaz obiectele necesare staiei de lucru. n continuare sunt prezentai paii necesari realizrii unei staii simple: 1. n cadrul Robot Studio Button se selecteaz opiunea New Station sau din fereastra deschis la nceput se alege comanda New Station. 2. Dac o staie este deja deschis Robot Studio dorete nchiderea ei nainte de a deschide una nou. Ca urmare apare o fereastr de dialog cernd utilizatorului s decid dac dorete salvarea staiei deja deschis. 3. Pasul urmtor este de a importa un robot din fereastra deschis Template system Apare o fereastr ca cea din fig. 4.5 din care se selecteaz spre exemplu fiierul Irb1600_5kg_1.2m. Pentru a putea mica robotul sau a realiza diverse programe este necesar un start pentru controlerul robotului, care se realizeaz automat la alegerea sistemului robot. Un sistem robot se poate alege din meniul Home --> ABB Library. Importarea unei scule (efector) se realizeaz n felul urmtor: 1. Din meniul Home se selecteaz Import Library; 2. Se alege, din fereastra deschis, o scul (de exemplu MyTool); Se verific apariia numelui sculei alese n fereastra Browsers. 4

Metode de Programarea pentru Sisteme Robotizate - C10 3. Se selecteaz scula importat anterior i se apas butonul din drepta mouse ului. n meniul care s-a deschis se alege comanda Attach to i se selecteaz sistemul robot. n fereastra de dialog se alege opiunea dac se pstreaz poziia curent, la care se rspunde Nu.

Fig. 4.5 Importarea unui robot Acum robotul are ataat o scul, iar rezultatul acestei operaii se poate urmri n fereastra grafic. n fereastra ABB care se deschide la pornirea programului RobotStudio se poate opta pentru deschiderea unei staii care a fost realizat sau pentru deschiderea unei staii noi. n cazul n care se opteaz pentru o nou staie se selecteaz comanda New Station i apoi se alege din ABB Library tipul de robot care va lucra n staie. De exemplu se poate alege robotul IRB1600_6_145_02. Iniializarea controlerului pentru acest robot se face n mod automat i dureaz ntre 15 30 secunde. Pentru fiecare robot din staia de lucru se poate ataa o scul corespunztoare. Pentru ataarea unei scule se selecteaz n Browser tabul Layout. n continuare se apeleaz comanda Import Library, de unde se alege, de exemplu, scula My Tool. n Browser/Layout, dup ce se selecteaz My Tool se apas butonul din dreapta al mouse-ului. Din lista de comenzi se alege comanda Attach to i nu se pstreaz poziia curent. Ataarea sculei la robot se poate face i astfel: se selecteaz scula importat anterior i innd apsat butonul stng al mouse-lui se deplaseaz deasupra robotului din Layout, elibernd apoi butonul. 5

Metode de Programarea pentru Sisteme Robotizate - C10 4.3.7.5. Crearea unei inte n acest paragraf vom nva urmtoarele dou lucruri: crearea de poziii int i traiectorii; deplasarea robotului la poziiile int i deplasarea urmrind traiectoriile create. Pentru a crea o int se apeleaz comanda Home --> Path Programming --> Target, de unde se alege Create Target.

Fig. 4.6 Crearea unei inte Ca rezultat se deschide o fereastr (deasupra elementelor din fereastra Browser). n aceast fereastr se poate alege sistemul de coordonate (Reference), poziia i oreintarea fiecrui punct care se introduce i se adaug la sarcina impus (Add). Pentru poziia introdus se poate da un nume. Deplasarea robotului i sculei la punctul int creat anterior se poate face, atunci cnd inta este selectat cu mouse-ul, selectnd comanda View Robot to Target din meniul care se deschide apsnd butonul din dreapta al mouse- ului cnd mouse ul se afl pe una din inte. Pentru deplasarea robotului la poziiile int exist dou ci: - o prim cale este comanda Jog Joint din meniul Home/Freehand, folosit pentru deplasarea unei cuple conductoare. Pentru deplasarea liniar a punctului caracteristic se apeleaz comanda Jog Linear. Comanda permite deplasarea robotului paralel cu una din axele sistemului de coordonate (Ox, Oy sau Oz). - a doua cale este apelarea comenzii Mechanism Joint Jog din meniul Modify pentru rotirea fiecrei cuple conductoare. nainte de apelarea comenzii se selecteaz robotul n tabul Layout.

Metode de Programarea pentru Sisteme Robotizate - C10

Fig. 4. 7 a. Deplasarea cuplei conductoare

Fig. 4.7 b Deplasarea liniar

Pentru deplasarea liniar a punctului caracteristic se apeleaz comanda Mechanism Linear Jog din meniul Modify. Folosind aceste comenzi se poate poziiona robotul n punctele int ale traiectoriei. Totalitatea acestor puncte int vor crea traiectoria pe care o va parcurge robotul. Pentru a realiza punctele int exist dou posibiliti: memorarea prin nvare; memorarea prin crearea punctelor int.

Pentru a stabili punctele int prin nvare se procedeaz astfel: n browserul Layout se selecteaz obiectul de lucru (workobject) pentru care se stabilesc punctele int, apoi se mic ncet robotul, cu comenzile de mai sus, n poziia preferat. Dup ce s-a ajuns n poziia dorit se apeleaz comanda Teach Target pentru a salva coordonatele punctului i orientarea. Ca urmare a acestei aciuni n fereastra Path&Target, sub obiectul de lucru activ apare punctul memorat (Target_10). Pentru a fixa punctele int prin crearea lor se procedeaz astfel: se selecteaz, n browser-ul Layout, obiectul de lucru n care se dorete s stabileasc punctele int. n continuare se apeleaz comanda Create Target, prin care se deschide o fereastr de dialog. n aceast fereastr, n cutia Points se apeleaz comanda Add New. Dup apelarea acestei comenzi se selecteaz punctele dorite n fereastra View. n final pentru a salva poziiile dorite se apas butonul Create. 4.3.7.6. Crearea unei traiectorii Pentru a crea o traiectorie (Path) presupune mai nti selecia comenzii din meniul Home --> Path Programming --> Path --> Empty Path. Numele traiectoriei Path1 apare n cadrul ferestrei Browser. Urmeaz includerea poziiilor int create anterior n traiectorie. Poziiile int ce se doresc a fi incluse sunt selectate (se apas Shift + click buton stnga mouse) i apoi trase i eliberate pe numele traiectoriei. (vezi fig. 4.8). O poziie int poate fi inclus de mai multe ori ntro traiectorie.

Metode de Programarea pentru Sisteme Robotizate - C10

Fig. 4.8 Crearea unei traiectorii Parcurgerea unei traiectorii se realizeaz alegnd opiunea din meniul local al traiectoriei respective Modify --> Verify --> Move Along Path .

Metode de Programarea pentru Sisteme Robotizate - C11

4.3.8. Crearea obiectelor grafice i a mecanismelor folosind Robot Studio


Realizarea unei staii de lucru presupune att preluarea unor elemente deja existente n biblioteca programului, dar i crearea unor obiecte care s corespund diverselor cerine ale utilizatorului. n continuare se vor urmri facilitile de care dispune Robot Studio n ceea ce privete crearea obiectelor. 4.3.8.1. Crearea unei sfere Din meniul Modeling --> Create --> Solid --> Sphere se selecteaz opiunea Sphere, cu care se realizeaz un obiect 3D. Se completeaz valorile pentru centrul sferei i raza ei ( Fig. 4.9). Apoi se selecteaz butonul Create.

Fig. 4.9 Crearea unei sfere n fereastra Object Browser este creat o subcategorie a componentelor staiei numit Part1, unde va fi plasat sfera sub numele Solid_Sphere1. Sfera creat poate fi acum vizualizat i n fereastra grafic. 4.3.8.2. Crearea unui paralelipiped Din acelai meniu Modeling --> Create --> Solid --> Box se selecteaz opiunea Box i apoi se apas butonul Create. Va apare o fereastr ca cea din Fig. 4.10, unde valorile dorite pentru dimensiuni i plasare n spaiu vor fi completate. Desenarea unui cub poate fi realizat completnd doar cmpul Length i lsnd celelalte dou cmpuri cu valoarea iniial, zero. Programul va ajusta automat mrimile n acest caz.

Metode de Programarea pentru Sisteme Robotizate - C11

Fig. 4.10 Crearea unui paralelipiped 4.3.8.3. Intersectarea a dou componente Din meniul Modeling --> CAD Operation se alege Intersect i din fereastra grafic se selecteaz mai nti sfera, apoi cubul. Nu se va valida opiunea Keep Original. (Fig. 4.11).

Fig. 4.11 Intersecia a dou corpuri Pentru a putea experimenta urmtoarea comand trebuie revenit la situaia anterioar utiliznd Undo. 4.3.8.4. Extragerea unei componente din alta Din meniul Modeling --> CAD Operation se alege comanda Subtract. Se completeaz fereastra Subtract (fig. 4.12) cu una din cele dou variante posibile n acest moment: se extrage cutia din sfer sau sfera din cutie. Pentru nceput se alege cubul i apoi sfera.

Metode de Programarea pentru Sisteme Robotizate - C11

Fig. 4.12 4.8.3.5. Unirea a dou componente

- Operaie de extragere

Din meniul Modeling --> CAD Operation se alege comanda Union. Pentru unirea celor dou componente nu trebuie dect s le selectm pe rnd din fereastra grafic astfel nct s completm cmpurile ferestrei Join.(Fig. 4.13).

Fig. 4.13 - Operaia de unire Dup execuia comenzii Union n fereastra grafic nu apare nici o diferen fa de situaia anterioar. 4.8.3.6. Modelarea unui mecanism n acest subcapitol se descrie cum se creeaz un nou mecanism, care este, o reprezentare grafic a unui dispozitiv robot, scula, axa extern sau dispozitiv. Diversele componente ale unui mecanism se pot deplasa de-a lungul sau n jurul axelor.

Metode de Programarea pentru Sisteme Robotizate - C11 Crearea unui mecanism este dependent de abilitatea construirii a nodurilor principale ale structurii de arbore. Patru dintre acestea (elemente, articulaii, sisteme de coordonate/unelte i calibrare) sunt marcate iniial cu rou. Marcrile cu rou se transform n verde, pe msur ce fiecare nod este configurat cu subnoduri suficiente pentru a deveni valid. De ndat ce toate nodurile au devenit valide, mecanismul va fi considerat compilabil i poate fi creat. Modul de modificare din fereastra Mechanism Modeler are dou scopuri: pentru a permite modificarea unui mecanism editabil n structura sa de arbore; pentru a finaliza modelarea unui nou mecanism sau a unui mecanism modificat. Pentru modelarea unui mecanism se recomand s se configureze fiecare nod principal din structura arborescent din partea de sus n jos. n funcie de starea sa actual, facei clic-dreapta sau dublu-click pe un nod sau subnode pentru a aduga, edita sau elimina. Aplicaia 1. S se realizeze un mecanism de tip conveyor (band transportoare). Acest mecanism se va salva ca echipament n biblioteca utilizatorului. Pentru rezolvarea acestei aplicaii se parcurg urmtoarele etape: 1. Pentru realizarea unui mecanism se deschide o staie de lucru nou. Pentru aceasta se apas butonul New Station --> Empty Station din fereastra grafic sau din butonul RobotStudio se alege comanda New Station --> Empty Station, i apoi Ok. 2. Se modeleaz mecanismul. n meniul Modeling --> Create --> Solid --> Box. Deasupra tab ului Layout se deschide o fereastr pentru definirea benzii transportoare.

Fig. 4.14 Crearea unei benzi transportoare Dup introducerea datelor care sunt prezentate n figura de mai sus, se apas butoanele Create i apoi Close. 4

Metode de Programarea pentru Sisteme Robotizate - C11 3. Pentru a crea mecanismul propriu zis se folosete comanda din meniul Modeling --> Create Mechanism. n urma folosirii acestei comenzi se deschide o fereastr n parte stng a ferestrei grafice. 4. n caseta de dialog Mechanism Model Name se introduce numele: My_Conveyor; 5. Din lista Mechanism Type se selecteaz tipul mecanismului, i anume Conveyor. 6. n structura arborescent, se d clic dreapta pe Links, i apoi facei clic pe Add Link pentru a deschide caseta de dialog Create Link. Un nume sugerat apare n caseta Link Name. 7. n lista Selected Part, selectai un part (care va fi evideniat n fereastra grafica) i apoi facei clic pe butonul sgeat pentru a aduga part-ul la caseta list Parts. 8. n lista Position of Calibration frame (poziia de calibrare a sistemului de coordonate), introducei valorile pentru sistemul de coordonate de baz n raport cu originea local a componentei grafic selectat (Start Position: -500). 9. n caseta Conveyor length se introduce lungimea benzii transportoare (End Position: 5000). 10. n caseta Attachment Points se stabilesc valorile pentru Pitch i Count (Pitch 1000 i Count 2,00). 11. n continuare se selecteaz Add pentru a crea noi puncte de fixare. 12. Pentru a compila mechanismul se apas butonul Compile Mechanism. 13. Pentru a salva mecanismul n biblioteca utilizatorului se selecteaz n tab ul Layout, My_Conveyor. n continuare se apas clic dreapta butonul mouse ului i se deschide un meniu. n acest meniu se alege Save as Library. n fereastra deschis se alege numele fiierului la care se ataeaz extensia specific (My_conveyor.rslib). 14. n final se nchide fereastra Create Mechanism. 4.8.3.7. Crearea unei traiectorii Pentru a crea o traiectorie (Path) presupune mai nti selecia comenzii din meniul Home --> Path Programming --> Path --> Empty Path. Numele traiectoriei Path1 apare n cadrul ferestrei Browser. Urmeaz includerea poziiilor int create anterior n traiectorie. Poziiile int ce se doresc a fi incluse sunt selectate (se apas Shift + click buton stnga mouse) i apoi trase i eliberate pe numele traiectoriei. (vezi fig. 4.15). O poziie int poate fi inclus de mai multe ori ntr-o traiectorie. Fig. 4.15 Crearea unei traiectorii 5

Metode de Programarea pentru Sisteme Robotizate - C11 Parcurgerea unei traiectorii se realizeaz alegnd opiunea din meniul local al traiectoriei respective Modify --> Verify --> Move Along Path . n continuare urmeaz s se prezinte procedura de obinere a unei traiectorii circulare. Pentru a obine o astfel de traiectorie se recomand urmtorii pai: 1. Se creeaz dou puncte int 2. Se introduc n cadrul unei traiectorii 3. Se selecteaz cele dou inte din cadrul traiectoriei i se alege din meniul contextual opiunea Convert To Circular Dup efectuarea ultimului pas traiectoria anterioar este modificat, n loc de cele dou puncte int apare o succesiune de dou puncte situate pe un arc de cerc.

Fig. 4.16 Crearea unei traiectorii circulare

Fig. 4.17 Simbolizarea unei traiectorii circulare

Pentru ca traiectoria circular ce conine cele dou puncte int Target1:1 i Target2:1 s poat fi urmat este necesar alegerea unui al treilea punct care s fie n acelai plan cu celelalte dou pentru a putea determina un arc de cerc care s le strbat. 4.8.3.8. Programarea n limbajul RAPID folosind Robot Studio nainte de a trece efectiv la scrierea programelor trebuie deschis o staie de lucru, startat controlerul robotului din cadrul staiei i selectat opiunea Program din meniul Browser (Fig. 4.18).

Fig. 4.18 Fereastra specific opiunii Program 6

Metode de Programarea pentru Sisteme Robotizate - C11 Din meniul Program Browser se face click dreapta pe opiunea Program Modules Se alege Insert Module Inserarea unei proceduri main: Se execut click dreapta pe Module1 Din meniul curent se alege Insert main procedure Fig. 4.19. Procedura main Procedura main va fi afiat ca aparinnd modulului Module1 (Fig. 4.19). Includerea unei traiectorii ntr-un program: Din meniul Object Browser se face click dreapta pe o traiectorie. S presupunem c este definit traiectoria Path1 Se alege din meniul local al traiectoriei Path1 opiunea Sync to Virtual Controller Revenind n meniul Program se poate vedea faptul c o nou procedur Path1 a fost plasat n modulul Module1. Inserarea unei proceduri n rutina main Din meniul Program Browser se trage Path1 peste procedura main Rularea programului se face selectnd opiunea Play din meniul Simulation (Fig. 4.20)

Fig. 4.20 Fereastra Simulation Se observ micarea robotului dup traiectoria selectat anterior. Fereastra Simulation conine urmtoarele opiuni (n ordine de la stnga la dreapta): Play/Stop/Pause pornirea/oprirea/realizarea unei pauze pentru un program Single Step rularea pas cu pas a programului Move to Target deplasarea robotului la o int inclus n cadrul unei traiectorii Move along Path deplasarea robotului de-a lungul unei traiectorii Jump to Target deplasarea robotului la o int neinclus n cadrul unei traiectorii Move to Home deplasarea robotului n poziia iniial (de calibrare). Modificarea parametrilor instruciunilor Selectnd din meniul Modify opiunea Instruction Template apare pe ecran o fereastr ca cea din Fig. 4.21: 7

Metode de Programarea pentru Sisteme Robotizate - C11

Fig. 4.21 Fereastra Instruction Template n cadrul acestei ferestre se pot observa parametrii instruciunii introduse anterior n program, parametri ce pot fi modificai. Instruciunile ce se vor introduce n program ulterior vor ine cont de modificrile efectuate. Spre exemplu, se va modifica valoarea vitezei de la v1000 la v500 i parametru zone de la fine la z50. Noile modificri vor fi valabile pentru urmtoarea traiectorie. O modalitate mai facil de editare a programului presupune ncrcarea programului Program Maker, ncrcare care este posibil i din Robot Studio utiliznd opiunea Edit Program din meniul Program. Se pot realiza tipare de instruciuni n cadrul ferestrei Instruction Template care vor putea fi selectate n cadrul ferestrei Elements (Fig. 4.22).

Fig. 4.22 Fereastra Elements Opiunile acestei ferestre sunt prezentate n continuare: Change Active Process Formatul instruciunii de micare Change Active Tool Tipul de efector utilizat Change Active Workobject Sistemul de coordonate n care se realizeaz micarea Edit workobject Editarea parametrilor sistemului de coordonate

Metode de Programarea pentru Sisteme Robotizate - C11

Fig. 4.23 Fereastra de proprieti

Fig. 4.24 Fereastra Edit Instruction

Datele privind instruciunile de micare se pot edita i n cadrul ferestrei de proprieti (Fig. 4.23). O alt modalitate de modificare este selecia unei inte din cadrul unei traiectorii i alegerea opiunii Edit Instruction din meniul local (click dreapta). Va apare o fereastr ca cea din Fig. 4.24 n care se pot ajusta parametrii micrii. Orice modificare a unei instruciuni va trebui urmat de o comand Sync to VirtualControler din meniul local al traiectoriei n care se afl poziia int inclus n instruciunea de micare. Noua variant a comenzii va putea fi apoi vizualizat n Program Maker.

Metode de Programarea pentru Sisteme Robotizate - C11

10

Metode de Programarea pentru Sisteme Robotizate - C12

5. LIMBAJUL DE PROGRAMAREA RAPID


5.1. Structura programelor i tipuri de date n limbajul de programare RAPID Programul const dintr-un numr de instruciuni care descriu activitatea robotului. Astfel, exist instruciuni specifice pentru diverse comenzi, cum ar fi cea de a muta robotul sau o comand pentru a seta un semnal de ieire, etc. n general, instruciunile au un numr de argumente asociate care definesc ceea ce urmeaz s aib loc ntr-o instruciune specific. De exemplu, instruciunea de resetare a unui semnal de ieire conine un argument care definete care semnal de ieire urmeaz s fie resetat; de exemplu, Reset do5 (digital output 5). Informaiile pot fi, de asemenea, stocate n date, de exemplu, date ale sculei (care conine toate informaiile despre o scul, cum ar fi punctul centrului sculei - TCP i greutatea) i date numerice (care pot fi folosite, de exemplu, pentru a contoriza numrul de piese care urmeaz s fie prelucrate). Datele sunt grupate n diferite tipuri de date care descriu diferite tipuri de informaii, cum ar fi sculele, poziiile i sarcini. Deoarece aceste date pot fi create i atribuite nume arbitrare, nu exist nici o limit (cu excepia impuse de memorie) cu privire la numrul de date. Aceste date pot exista, fie global n cadrul programului sau la nivel local ntr-o rutin. Exist trei tipuri de date - constante, variabile i persistente. O constant reprezint o valoare static i poate fi atribuit numai o valoare nou n mod manual. Unei variabile i se poate atribui o valoare nou n timpul execuiei programului Data persistent poate fi descris ca o variabil "persistent". Cnd un program este salvat valoarea de iniializare reflect valoarea curent a unei date persistente. Limbajul de programare nu este sensibil la majuscule, de exemplu, majuscule i minuscule sunt considerate la fel. 5.1.1. Structura programelor n limbajul de programare RAPID n limbajul de programare RAPID, programul este mprit n module program i module sistem, aa cum se arat n Fig. 5.1. Module program. Un modul program poate consta din diferite date i rutine. Fiecare modul, sau ntregul program pot fi copiate pe dischete, disc RAM, etc., i n sens invers. Unul dintre module cuprinde procedura de intrare, o procedur global numit principal (main). Rularea programului nseamn, n realitate, rularea procedurii principale. Programul poate include mai multe module, dar numai unul dintre acestea va fi modulul principal. 1

Metode de Programarea pentru Sisteme Robotizate - C12 Un modul poate, de exemplu, s defineasc interfaa cu echipament extern sau conin date geometrice care sunt generate de sistemele CAD sau create on-line prin programul de nvare. ntruct instalaiile mici sunt adesea cuprinse ntr-un singur modul, instalaiile mai mari pot avea un modul principal care face referire la rutine i/sau datele coninute n unul sau mai multe alte module.

Fig. 5.1. Modulele programului Module sistem. Modulele sistem sunt folosite pentru a defini date comune, specifice sistemului i rutine, cum ar fi sculele. Acestea nu sunt incluse atunci cnd un program este salvat, nsemnnd c orice actualizare a unui modul de sistem va afecta toate programele existente n prezent sau ncrcate ntr-o etap ulterioar n memoria programului. Un exemplu este modulul declaraie, care specific numele i atributele acestui modul. Aceste atribute pot fi adugate doar off-line, fr a se folosi cutia de comand. Structura fiierului program. Dup cum s-a indicat mai sus, toate modulele program sunt coninute ntr-un program cu un nume program specific. Cnd se salveaz un program de pe memorie flash-disc, atunci un director nou este creat cu numele programului. n acest director toate modulele program vor fi salvate cu extensia .mod mpreun cu un fiier de descriere cu acelai nume ca programul i cu extensia .pgf. Fiierul de descriere va include o list a tuturor modulelor coninute n acest program. 2

Metode de Programarea pentru Sisteme Robotizate - C12 Rutine. Exist trei tipuri de rutine (subprograme): procedurile, funcii i rutine trap. Procedurile nu returneaz o valoare i sunt utilizate n cadrul instruciunile. Funciile returneaz o valoare de un anumit tip i sunt utilizate n contextul de expresii. Rutinele trap (capcan), ofer un mijloc care se ocup cu ntreruperile. O rutina trap poate fi asociat cu o ntrerupere specific i apoi, dac aceast ntrerupere special apare ntr-o etap ulterioar, automat va fi executat. O rutin trap nu poate fi apelat n mod explicit din program. Domeniul de aplicare al unei rutine denot zona n care rutina este vizibil. Directiva opional local a unei declaraii a rutinei clasific o rutin ca local (n cadrul modulului), altfel ea este global. n Fig. 5.2 rutinele urmtoare pot fi apelate de Rutina h (Module2): Module1 Rutinele c, d i Module2 Toate rutinele.

Fig. 5.2. Exemplu de apelare a rutinelor Urmtoarele reguli ale domeniului de aplicare se aplic rutinelor: Domeniul de aplicare al unei rutine globale poate include orice modul din program. Domeniul de aplicare al unei rutine locale cuprinde modulul n care este coninut. n cadrul domeniului su de aplicare, o rutin local ascunde orice rutin global sau de date cu acelai nume. Deci, numele rutinelor (globale sau de date) trebuie s fie diferite. n acelai modul, o rutin nu poate avea acelai nume ca o alt rutin, date sau tipuri de date. De asemenea, o rutin global nu poate avea acelai nume ca un modul sau o rutin global, date globale sau tipuri de date globale n alt modul. Lista parametrilor ai unei rutine de declaraie specific argumentele (parametrii actuali), care trebuie s / pot fi furnizate, atunci cnd rutina este apelat. Exist patru tipuri diferite de parametri (n modul de accesare): 3

Metode de Programarea pentru Sisteme Robotizate - C12 n mod normal, un parametru este folosit numai ca o variabil de intrare i este tratat ca o variabil de rutin. Un parametru INOUT specific faptul c un argument corespunztor trebuie s fie o variabil (element sau component) sau o variabil persistent, care poate fi schimbat de ctre rutina. Un parametru VAR specific faptul c un argument corespunztor trebuie s fie o variabil (element sau component) care poate fi schimbat ca valoare de ctre rutin. Un parametru PER specific faptul c un argument corespunztor trebuie s fie un ntreg persistent care poate fi schimbat de ctre rutin. Dac un parametru INOUT, VAR sau PERS este actualizat, aceasta nseamn c, n realitate, argumentul n sine este actualizat, adic actualizarea face posibil utilizarea argumentelor pentru a returna valori ctre rutina apelat. Un parametru poate fi opional i poate fi omis din lista de argumente a rutinei apelate. Un parametru opional se noteaz cu un backslash "\" naintea parametrului. De exemplu: PROC rutina2 (num par_cerut, \num par_opional). Valoarea unui parametru opional care este omis ntr-o rutin apelat nu poate fi referit. Aceasta nseamn c rutina apelat trebuie s fie verificat pentru parametrii opionali nainte ca un parametru opional s fie utilizat. Doi sau mai muli parametri opionali pot fi reciproc exclusivi (adic declarai s se exclud reciproc), ceea ce nseamn c doar unul dintre ei poate fi prezent ntr-o rutin apelat. Acest lucru este indicat printr-o bar "|" ntre parametrii n discuie. De exemplu: PROC rutina3 (\num exclude1 | num exclude2). Matricele pot fi transmise ca argumente. Gradul unei matrice argument trebuie s respecte gradul parametrului formal corespunztor. Dimensiunea unui parametru matrice este "conform" (marcate cu "*"). Dimensiunea real depinde astfel de dimensiunea argumentului corespunztor n timpul apelri unei rutine. O rutina poate determina dimensiunea real a unui parametru utiliznd funcia predefinit, Dim. De exemplu: Rutin de oprire Executarea unei proceduri este n mod explicit oprit de ctre o instruciune RETURN sau implicit terminat atunci cnd sfritul procedurii este atins (ENDPROC, BACKWARD, ERROR sau UNDO). Evaluarea unei funcii trebuie s fie terminat de o instruciune RETURN. PROC rutina5 (VAR num pallet{*,*}).

Metode de Programarea pentru Sisteme Robotizate - C12 Execuia unei rutine de oprire a programului este n mod explicit terminat folosind instruciunea RETURN sau terminat n mod implicit cnd sfritul rutinei de oprire este atins (ENDTRAP, ERROR sau UNDO). Rutin de declaraie O rutina poate conine o rutin de declaraii (inclusiv parametrii), date, un corp de instruciuni, precum i o tratare a erorilor (Fig. 5.3).

Fig. 5.3. Exemplu de rutin de declaraii O rutin de declaraii nu poate fi imbricat, adic nu este posibil s se declare o rutin de declaraii ntr-o alt rutin de declaraii. Apelarea procedurii Cnd o procedur este apelat, se vor folosi argumentele care corespund parametrilor procedurii: Parametrii obligatorii trebuie s fie specificai. Ei trebuie s fie specificai n ordine corect. Argumentele opionale pot fi omise. Argumentele condiionale pot fi utilizate pentru a transfera parametrii de la o rutin de apel la o alt rutin. Numele procedurii poate fi fie static specificat prin intermediul unui identificator sau procedura poate fi evaluat n timpul rulrii de la o expresie de tip ir. Chiar dac legtura anticipata ar trebui s fie considerata a fi forma "normal" de apelare a procedurii, legtura ulterioara ofer uneori un cod foarte eficient i compact. Legtura ulterioara este definit prin punerea semnului de procent nainte i dup irul care denot numele procedurii.

Metode de Programarea pentru Sisteme Robotizate - C12 5.1.2. Tipuri de date n limbajul de programare RAPID Orice obiect n limbajul de programare RAPID (valoare, expresie, variabil, funcie, etc.) are un tip de date. Un tip de date poate fi fie un tip built-in sau un tip instalat sau a unui tip definit de utilizator (definit n limbajul de programare RAPID). Tipurile built-in sunt o parte a limbajului de programare RAPID n timp ce tipul instalat sau tipuri definite de utilizator pot diferi de la situaie la situaie. Din punct de vedere al utilizatorilor nu exist nici o diferen ntre tipul built-in i tipul instalat. n limbajul de programare RAPID exist trei categorii diferite de tipuri: tipuri atomic, tipuri record tipuri alias. Tipurile atomice sunt "atomic", n sensul c acestea nu sunt definite de orice alt tip i nu poate fi divizat n mai multe pri sau componente. Structura intern (implementarea) a unui tip atomic este ascuns. Tipurile atomice built-in sunt: tipul numeric num, tipul logic bool i tipul text string. Obiectul num reprezint o valoare numeric. Tipul cu num denot domeniul specificat de formatul standard de float (single precision). n cadrul subdomeniu -8388607 la (+) 8388608, obiectele num pot fi utilizate pentru a reprezenta valori ntregi (exact). Exemplu de utilizare a tipului num: VAR num counter; counter := 250; ! Declaraia variabilei counter ! Utilizarea variabilei counter.

Un obiect bool reprezint o valoare logic. Tipul bool denot domeniul logicii a dou valori, i anume {TRUE, FALSE}. Exemplu de utilizare a tipului bool: VAR bool active; active := TRUE; ! Declaraia variabilei active ! Utilizarea variabilei active.

Obiectul string reprezint un ir de caractere. Tipul string denot domeniul tuturor secvenelor de caractere grafice (ISO 8859 - 1) i caractere de control (non ISO 8859-1 caractere din intervalul 0 .. codul numeric 255). Un ir poate conine de la 0 la 80 caractere (80 stabilete formatul de caractere de stocare). Exemplu de utilizare a tipului string: VAR string name; name := John Smith; Tipul record Un tip de date record este un tip compus, cu nume precizat i componente ordonate. Valoarea unui tip record este o valoare compus, care const din valorile componentelor sale. O component poate fi de tip atomic sau tip de record. Tipurile record intr n categoria tipului built-in i sunt ! Declaraia variabilei name ! Utilizarea variabilei name.

Metode de Programarea pentru Sisteme Robotizate - C12 urmtoarele: pos, orient i pose. Setul disponibil al tipurilor record definite de utilizator si instalate, este prin definiie, nelegat de specificaia limbajului RAPID. Un tip record este introdus printr-o definiie a acestui tip: RECORD <identificator> <tip dat> <nume component record> ENDRECORD De exemplu: RECORD tipnou num x; ENDRECORD O valoare nregistrare poate fi exprimat folosind o reprezentare global a componentelor. De exemplu: componentei. De exemplu: p1 de tip pos (record). Cu excepia cazului n care se prevede altfel, domeniul unui tip record este produsul cartezian al domeniilor componentelor sale. Tipul pos Un obiect pos reprezint un vector de poziie n spaiul tridimensional. Tipul pos are trei componente: RECORD pos num x; num y; num z; ENDRECORD x este componenta pe axa X a poziiei; y este componenta pe axa Y a poziiei; z este componenta pe axa Z a poziiei. Exemple a folosirii tipului pos: VAR pos p1; p1 := [10, 10, 55.7]; p1.z := p1.z + 250; p1 := p1 + p2; ! declararea variabilei ! folosire global ! folosirea unei componente ! utilizarea unui operator. p1.x := 300; - atribuirea componentei x a variabilei [300, 500, nalt] - valoarea global a tipului record pos. O component specific a unui obiect de date record poate fi accesat prin utilizarea numelui

Metode de Programarea pentru Sisteme Robotizate - C12 Tipul orient Un obiect orient reprezint o orientare ( rotaie) a unei direcii, n spaiul 3D. Tipul orient are patru componente: [q1, q2, q3, q4] RECORD orient num q1; num q2; num q3; num q4; ENDRECORD unde q1 este prima component cuaternion; q2 este a doua component cuaternion; q3 este a treia component cuaternion; q4 este a patra component cuaternion. Exemple a folosirii tipului orient: VAR orient o1; o1 := [1, 0, 0, 0]; o1.q1 := -1; o1 := euler(a1, b1, g1); q2...q4 = 0, care corespunde unei rotaii nule. Reprezentarea orientrii prin cuaternion este modul cel mai compact de a exprima o orientare n spaiu. Formate alternative pentru exprimarea orientrii (de exemplu, unghiurile Euler) pot fi specificate utiliznd funcii predefinite disponibile n acest scop. Deci se pot utiliza i alte forme de reprezentare a orientrii, dar sunt necesare funcii care s transforme aceti parametri n cuaternion. n cazul utilizrii cuaternionilor este necesar ca orientarea s fie normalizat, adic suma ptratelor trebuie s fie egal cu 1:
2 2 2 q1 +q2 2 + q 3 + q 4 = 1.

! declararea variabilei ! folosire global ! folosirea unei componente ! utilizarea unei funcii.

Orientarea o1, aa cum se arat i n exemplul de mai sus i se atribuie valoarea q1 = 1,

Ce sunt Cuaternioni? Orientarea unui sistem de coordonate (cum ar fi cea a unui dispozitiv sau scul) poate fi descris printr-o matrice de rotaie care descrie direcia axelor sistemului de coordonate n raport cu un sistem de referin (Fig. 5.4). Axele rotite ale sistemului de coordonate (x, y, z) sunt vectori care pot fi exprimai n sistemul de coordonate de referin, dup cum urmeaz: x = (x1, x2, x3), 8

Metode de Programarea pentru Sisteme Robotizate - C12 y = (y1, y2, y3), z = (z1, z2, z3).

Fig. 5.4. Orientarea unui sistem mobil Acest lucru nseamn c componenta x a vectorului x n sistemul de coordonate de referin va fi x1, componenta y va fi x2 i componenta z va fi x3. Aceti trei vectori pot fi pui mpreun ntr-o matrice (o matrice de rotaie) n cazul n care fiecare dintre vectori formeaz una dintre coloane: x1 x 2 x 3 y1 y2 y3 z1 z 2 . z 3

Un cuaternion este doar un mod mult mai concis de a descrie aceast matrice de rotaie; cei patru cuaternioni sunt calculai pe baza elementelor matricei de rotaie: Cuaternioni relaie de calcul
q1 = q2 = q3 = q4 = x 1 + y 2 + z 3 +1 2 x 1 y 2 z 3 +1 2 y 2 x 1 z 3 +1 2 z 3 x 1 y 2 +1 2

Semnul cuaternionului

sign q2 = sign (y3 - z2)

sign q3 = sign (z1 x3)

sign q4 = sign (x2 y1)

Exemplul 1 O unealta este orientata astfel nct axa Z' arat direct n fa (n aceeai direcie ca i axa X a sistemului de coordonate de baz). Axa Y' a dispozitivului corespunde cu axa Y a sistemului de coordonate de baz (Fig. 5.5). Cum este definita orientarea sculei cu ajutorul datelor de poziionare? 9

Metode de Programarea pentru Sisteme Robotizate - C12

Fig. 5.5. Orientarea dispozitivului robotului Orientarea sculei ntr-o poziie programat, este n mod normal raportat la sistemul de coordonate al obiectului de lucru utilizat. n acest exemplu, nu este utilizat sistemul de coordonate al obiectului de lucru, i sistemul de coordonate de baz este acelai cu sistemul de coordonate global. Astfel, orientarea este raportat la sistemul de coordonate de baz. Axele dispozitivului vor fi raportate la sistemul de coordonate de baz, dup cum urmeaz:
x , = z = (0, 0, - 1) , y , = y = (0, 1, 0 ) , z , = x = (1, 0, 0 ) .

Care corespunde matricei de rotaie urmtoare:

0 0 1 0 1 0 1 0 0 Matricea de rotaie ofer cuaternionii corespunztori:


0 +1+ 0 +1 2 = = 0,707 2 2 0 1 0 +1 q2 = =0 2 1 0 0 +1 2 q3 = = = 0,707 sign q3 = sign (1 + 1) = + 2 2 0 0 1 + 1 q4 = =0 2 q1 =

10

Metode de Programarea pentru Sisteme Robotizate - C13 5.1.2. Tipuri de date n limbajul de programare RAPID (continuare) Tipul pose Un obiect pose reprezint modificrile (poziie i orientare) unui sistem de coordonate n spaiu (3D) fa de un alt sistem. Datele de tip pose descriu modul n care un sistem de coordonate este deplasat i rotit n jurul altui sistem de coordonate. Datele pot, de exemplu, descrie modul n care sistemul de coordonate instrument este amplasat i orientat n raport cu sistemul de coordonate al ncheieturii minii. Tipul pose are dou componente: RECORD pose pos trans; orient rot; ENDRECORD unde: trans este deplasarea n poziia (x, y, i z) a sistemului de coordonate, iar rot reprezint rotaia sistemului de coordonate. Se remarc utilizarea tipurilor de date pos i orient. Exemple de baz a tipului de date pose sunt ilustrate mai jos. VAR pose frame1; frame1 := [ [50, 0, 40], [1, 0, 0, 0] ] ; frame1.trans := [50, 0, 40]; frame1.rot := [1, 0, 0, 0]; ! declararea variabilei ! folosire global ! folosirea unei componente ! utilizarea unei componente.

Transformarea de coordonate frame1 i se atribuie o valoare care corespunde o deplasare n poziie, unde X = 50 mm, Y = 0 mm, Z = 40 mm; cu toate acestea, nu exist rotaii. Tip robtarget Tipul robtarget (robot target) este folosit s defineasc poziia robotului i a axelor externe. Datele de poziie sunt utilizate pentru a defini poziia n instruciunile de micare la care robotul i axele externe urmeaz s se deplaseze. Deoarece robotul este capabil s realizeze aceeai poziie n mai multe moduri diferite, configurarea axelor este, de asemenea, specificat. Aceast configurare definete valorile axelor, dac acestea sunt neclare, de exemplu: dac robotul este ntr-o poziie nainte sau napoi; n cazul n care axa 4 este orientata n jos sau n sus; n cazul n care axa 6 are o rotaie negativ sau pozitiv. 1

Metode de Programarea pentru Sisteme Robotizate - C13 Poziia este definit pe baza sistemului de coordonate al obiectului de lucru, inclusiv orice program de deplasare. n cazul n care poziia este programat cu un alt sistem de coordonate al obiectului de lucru altul dect cel folosit n instruciune, robotul nu se va deplasa pe traiectoria ateptat. Tipul robtarget are patru componente: RECORD robtarget pos trans; orient rot; confdata robconf; extjoint extax; ENDRECORD Componenta trans este de tip pos i precizeaz poziia (x, y i z) a centrului sculei. Poziia este specificat n raport cu sistemul de coordonate al obiectului curent, inclusiv deplasarea programului. n cazul n care nu este specificat nici un sistem de coordonate al obiectului de lucru, atunci acesta este sistemul de coordonate global. Componenta rot este de tip orient i stabilete orientarea dispozitivului (sculei), exprimat n forma unor cuaternioni (q1, q2, q3 i q4). Orientarea este specificat n raport cu sistemul de coordonate al obiectului curent, inclusiv deplasarea specificata prin program. Dac nu este specificat obiectul de lucru, atunci acesta este sistemul de coordonate global. A treia component robconf este de tip confdata i precizeaz configurarea axelor robotului (cf1, cf4, cf6 i cfx). Aceast configurare este definit n forma sfertului de rotaie curent a axei 1, axei 4 i axa 6. Pentru primul sfert de rotaie pozitiv de la 0 la 90 , coeficientul componentei robconf este definit ca fiind 0. Semnificai coeficientului cfx este dependent de tipul robotului. Ultima component, extax este de tip extjoint i stabilete poziia axelor externe. Poziia este definit dup cum urmeaz pentru fiecare ax individual: Pentru axele de rotaie, poziia este definit ca unghiul de rotaie n grade de la poziia de calibrare. Pentru axele de translaie, poziia este definit ca distana n mm de la poziia de calibrare. Valoarea 9E9 este definit pentru axele care nu sunt conectate. Dac axele definite n datele de poziie difer de axele, care sunt de fapt conectate la execuia programului, atunci se aplic urmtoarele: Dac poziia nu este definit in datele de poziie (valoare este 9E9), atunci valoarea va fi ignorat dac axa este conectat i nu este activat. Dar dac axa este activat, atunci aceasta va duce la o eroare n rularea programului. 2

Metode de Programarea pentru Sisteme Robotizate - C13 n cazul n care poziia este definit n datele de poziie, dei axa nu este conectat, atunci valoarea este ignorat. Dac datele de poziie sunt valabile i axa nu este activat, atunci nici o micare nu se realizeaz i nici o eroare nu este generat. Un exemplu de baz al tipului de date robtarget este ilustrat n continuare. Exemplul 1. Datele referitoare la poziie i orientare robotului pentru punctul p15 sunt definite ca o constant global: CONST robtarget p15 := [ [600, 500, 225.3], [1, 0, 0, 0], [1, 1, 0, 0], [11, 12.3, 9E9, 9E9, 9E9, 9E9,] ]; Poziia i orientarea robotului pentru punctul p15 sunt definite dup cum urmeaz: Poziia robotului: x = 600 mm, y = 500 mm i z = 225,3 mm n sistemul de coordonate al obiectului. Orientarea dispozitivului este n aceeai direcie ca sistemul de coordonate al obiectului. Configurarea axei robotului: axele 1 i 4 n poziia 90 - 180, axa 6 n poziia 0 - 90. Poziia axelor externe logice, a i b, exprimat n grade sau n mm (dependent de tipul axei). Axele c, d, e i f nu sunt definite. Tipul speeddata. Acest tip este folosit pentru a specifica viteza cu care se deplaseaz att robot ct i axele externe. Datele vitezei definesc viteza: cu care se deplaseaz punctul central al sculei, viteza de reorientare a sculei, cu care se deplaseaz liniar sau rotativ axele externe. Atunci cnd sunt combinate mai multe tipuri diferite ale micrii, una dintre viteze limiteaz adesea toate deplasrile. Viteza celorlalte micri va fi redus n aa fel nct toate micrile care se execut se vor termina n acelai timp. Viteza este, de asemenea, limitat de performanele robotului. Acest lucru difer, n funcie de tipul de robot i de traiectoria micrii. Tipul speeddata are patru componente: RECORD speeddata v_tcp num; v_ori num; v_leax num; v_reax num; ENDRECORD Componenta v_tcp este de tip num i precizeaz viteza punctului central (tool center point) al sculei (TCP) n mm/s. 3

Metode de Programarea pentru Sisteme Robotizate - C13 Componenta v_ori (velocity orientation) este de tip num i specific viteza de reorientare a punctului central al sculei exprimat n grade/s. Componenta v_leax (velocity linear external axes) este de tip numeric i reprezint viteza liniar a axelor externe n mm/s. Componenta v_reax (velocity rotational external axes) este de tip num i precizeaz viteza de rotaie a axelor externe n grade/s. Un exemplu de baz al tipului de date speeddata este ilustrat mai jos: VAR speeddata vmediu := [ 1000, 30, 200, 15]; Datele vitezei vmediu sunt definite cu urmtoarele viteze: 1000 mm/s pentru viteza punctului central al sculei; 30 grade/s pentru reorientarea sculei; 200 mm/s pentru viteza liniar a axelor externe i 15 grade/s pentru viteza de rotaie a axelor externe. vmediu.v_tcp := 900; Viteza punctului central al sculei este schimbat la 900 mm/s. La micri cu vitez foarte mici deplasrile trebuie s fie suficient de scurte pentru a oferi un timp de interpolare mai mic dect de 240 de secunde. 5.2. Principalele instruciuni pentru micarea robotului Caracteristicile de baz ale micrii robotului sunt determinate de datele specificate pentru fiecare instruciune de poziionare. Cu toate acestea, unele date sunt specificate n instruciunile separate, care se aplic la toate micrile pn la schimbarea datelor. 5.2.1. Setrile micrii Unele dintre caracteristicile micrii robotului sunt determinate folosind instruciunile logice care se aplic la toate micrile: Viteza maxim i depirea (suprareglarea) vitezei. Acceleraia. Managementul diferitelor configuraii ale robotului. Sarcina util. Comportare in vecintatea punctelor singulare. Deplasari programate. Definirea vitezei. Viteza absolut este programat ca un argument n instruciunile de poziionare. n plus fa de aceasta, viteza maxim i viteza de corecie (un procent din viteza programat) pot fi definite. Instruciunea VelSet este folosit s defineasc viteza maxim i depasirea de viteza. Sintaxa instruciunii VelSet este urmtoarea: 4

Metode de Programarea pentru Sisteme Robotizate - C13 VelSet Override, Max; n care: Override este de tip num (numeric) i reprezint viteza dorit ca un procent din viteza programat. 100% corespunde vitezei programate; Max este de tip num (numeric) i reprezint viteza n mm/s. Un exemplu al instruciunii VelSet este ilustrat mai jos: VelSet 50, 800; Toate vitezele programate sunt sczute la 50% din valoarea din instruciune. Cu toate acestea, viteza TCP (Tool Center Point punctul central al sculei) nu este permis s depeasc 800 mm / s. Viteza programat a tuturor instruciunilor de poziionare, care urmeaz, este afectat pn la executarea unei noi instruciuni VelSet. Argumentul Override afecteaz urmtoarele: Toate componentele vitezei, i anume viteza liniar a TCP, viteza orientrii. Depirea de viteza programat n instruciune de poziionare. Micrile cronometrate.

Definirea acceleraiei. Atunci cnd, de exemplu, sunt manipulate pri fragile, acceleraia poate fi redus pentru o parte a programului. Instruciunea AccSet este folosit s defineasc acceleraia maxim i cnd sunt manipulate ncrcturi fragile. Acesta permite accelerarea lent i decelerare, ceea ce duce la micri fine roboi. Sintaxa instruciunii AccSet este urmtoarea: AccSet Acc, Ramp; n care: argumentul Acc este de tip num (numeric) i reprezint accelerarea i decelerarea, ca procentaj din valorile normale. 100% corespunde acceleraiei maxime. Argumentul Ramp este de tip num (numeric) i reprezint valoarea pn la care acceleraia i deceleraia crete ca procent al valorii normale. ocul poate fi restricionat prin reducerea acestei valori. Un exemplu de utilizare al instruciunii AccSet este ilustrat mai jos: AccSet 50, 100; Acceleraia este limitat la 50% din valoarea normal. Figurile de mai jos arat c reducerea acceleraiei are ca rezultat micri fine (uniforme).

Acceleraie

a)

Timp 5

Metode de Programarea pentru Sisteme Robotizate - C13 Acceleraie Acceleraie

b)

c)

Timp Fig. 5.6. Setarea acceleraiei

Timp

n Fig. 5.6 a, AccSet 100, 100 i deci acceleraia este normal; n Fig. 5.6 b, AccSet 30,100 deci acceleraia este redus la 30%, iar n Fig. 5.6 c, AccSet 100, 30 deci acceleraia este normal i viteza de cretere este de 30%. Definirea administrrii configuraiei. Configurarea robotului este n mod normal verificat n timpul micrii. n cazul n care este utilizat micarea cuplei conductoare (axis-by-axis), atunci va fi realizat configurarea corect. Dac se utilizeaz micarea liniar sau circular, atunci robotul se va deplasa ntotdeauna spre cea mai apropiat configurare impus, dar se efectueaz o verificare pentru a vedea dac aceasta este aceiai cu cea programat. Cu toate acestea, este posibil s se schimbe acest lucru. Instruciunile care se folosesc n acest caz sunt: ConfJ folosit pentru a activa/dezactiva controlul configuraiei n timpul micrii cuplei conductoare; ConfL folosit pentru a activa sau dezactiva verificarea configurrii n timpul micrii liniare. ConfJ - n cazul n care configuraia nu este controlat, atunci robotul poate folosi, uneori, o configuraie diferit de cea care a fost programat. Exemple de baz ale instruciunii ConfJ sunt prezentate mai jos: ConfJ \Off; sau ConfL \On; ConfL instruciune folosit pentru controlul micrii liniare sau circulare. n cazul n care configurarea nu este monitorizat n timpul execuiei, configurarea poate diferi de cea programat. Aceasta poate conduce, de asemenea, la abateri neateptate ale micrii robotului atunci cnd modul este schimbat pentru micarea cuplei. Exemple de baz ale instruciunii ConfL sunt prezentate mai jos: ConfL \On; Execuia programului se oprete atunci cnd configuraia programat nu poate ajunge la poziia curent. 6

Metode de Programarea pentru Sisteme Robotizate - C13 sau ConfL \Off; Robotul se deplaseaz la poziia i orientarea programat, dar catre configurarea axei cea mai apropiat posibil, care poate fi diferit de cea programat. Definirea sarcinii utile. Pentru a obine cea mai bun performan a robotului, trebuie s fie definit corect sarcina util. Instruciunea GripLoad este folosit pentru a defini sarcina util pe care o poate ine dispozitivul de prehensiune (griperul). Cnd data incorect de ncrcare este specificat, aceasta poate duce de multe ori la urmtoarele consecine: Dac valoarea datei specificate a sarcinii este mai mare dect cea a valorii sarcinii adevrate, atunci: Robotul nu va fi folosit la capacitatea lui maxim; Precizie redus a traiectoriei care include un risc de depire. Dac valoarea datei specificate a sarcinii este mai mic dect cea a valorii sarcinii adevrate, atunci: Precizia redus a traiectoriei care include un risc de depire; Risc de suprancrcare a structurii mecanice. Exemple de baz ale instruciunii GripLoad sunt ilustrate mai jos: GripLoad piece1; GripLoad load0; - Griperul robotului ine o sarcin numit piece1. - Griperul robotului elibereaz toate sarcinile.

n timpul execuiei programului, sarcina specificat afecteaz performanele robotului. Sarcina implicit este de 0 kg i este setat n mod automat: la un start-up rece (fr acionarea robotului); cnd este ncrcat un nou program; la pornirea execuiei programului de la nceput. 5.2.2. Instruciuni de micare Micrile robotului sunt programate ca micri punct cu punct (point to point), adic deplasare de la poziia curent ctre noua poziie.Traiectoria dintre aceste dou poziii este atunci calculat n mod automat de ctre robot. Caracteristicile de baz ale micrii, cum ar fi tipul de traiectorie, sunt specificate prin alegerea instruciunii de poziionare corespunztoare. Caracteristicile de micare rmase sunt specificate prin definirea datelor, care sunt argumentele instruciunii: Datele de poziie (poziia final pentru robot i axele externe) Datele vitezei (viteza dorit) 7

Metode de Programarea pentru Sisteme Robotizate - C13 Datele zonei (precizia poziiei) Datele sculei (de exemplu, poziia centrului sculei TCP) Date ale obiectului de lucru (de exemplu, sistemul de coordonate curent). Unele dintre caracteristicile de micare ale robotului sunt determinate utiliznd instruciunile logice care se aplic la toate micrile: Viteza maxim i viteza de suprareglare; Acceleraie; Administrarea diferitelor configuraii ale robotului; Sarcin util. Att robotul ct i axele exterioare sunt poziionate folosind aceleai instruciuni. Axele externe sunt deplasate la o vitez constant, ajungnd la poziia final, n acelai timp ca i robotul. Principalele instruciuni pentru poziionarea robotului sunt: MoveJ, MoveL, MoveC i MoveAbsJ. MoveJ. Aceast instruciune este folosit pentru a deplasa rapid robotul de la un punct la altul, atunci cnd aceast micare nu trebuie s fie n linie dreapt. Robotul se deplaseaz spre poziia de destinaie n lungul unei traiectorii neliniare. Toate axele ajung n poziia de destinaie n acelai timp. Sintaxa acestei instruciuni este urmtoarea: MoveJ ToPoint Speed [\V] [\T] Zone [\Z] Tool [\WObj]. n aceast instruciune, argumentele care se folosesc sunt urmtoarele: ToPoint este de tip robtarget i reprezint punctul de destinaie al robotului. Speed este de tip speeddata i sunt datele vitezei care se aplic micrilor. Datele de vitez definesc viteza punctului centrului sculei, reorientarea instrumentului, i a axelor externe. \V este de tip numeric. Acest argument este folosit pentru a specifica viteza punctului central al sculei, n mod direct, n instruciune. \T este de tip numeric. Acest argument este folosit pentru a specifica timpul total n secunde n care se mic robotul. Zone este de tip zonedata. Datele zonei descriu mrimea colului traiectoriei generate. \Z este de tip numeric. Acest argument este folosit pentru a specifica n mod direct precizia poziiei a punctului central al sculei n instruciune. Lungimea colului traiectoriei este dat n mm. Tool este de tip tooldata. Scula utilizat cnd robotul se mic. Punctul central al sculei este punctul deplasat spre punctul de destinaie specificat. \WObj este de tip wobjdata. Poziia robotului din instruciune este legat de sistemul de coordonate al obiectului de lucru.. Acest argument poate fi omis i, dac da, atunci poziia robotului este raportat la sistemul de coordonate global. 8

Metode de Programarea pentru Sisteme Robotizate - C13 n timpul execuiei instruciunii, punctul central al sculei este deplasat spre punctul de destinaie folosind interpolarea unghiurilor axei (coordonatelor generalizate). Acest lucru nseamn c fiecare ax este deplasat cu vitez constant a axei i c toate axele ajung la punctul de destinaie n acelai timp, ceea ce duce la o traiectorie neliniar. n general vorbind, TCP este deplasat la viteza programat aproximativ (indiferent dac axele externe sunt sau nu coordonate). Scula este reorientat i axele externe sunt deplasate n acelai timp, n care se mic TCP. Dac viteza programat pentru reorientare sau pentru axele externe nu poate fi atins atunci viteza punctului TCP va fi redus. n continuare sunt ilustrate mai multe exemple de modul de utilizare al instruciunii MoveJ: MoveJ *, v2000\V:=2200, z40 \Z:=45, grip3; Punctul central al sculei, grip3, este deplasat de-a lungul traiectoriei neliniare ctre o poziie memorat n instruciune. Micarea se efectueaz cu setul de date v2000 i z40; viteza i mrimea zonei a punctului central al sculei sunt 2200 mm/s i respectiv 45 mm. MoveJ p5, v2000\V:=2200, fine \Inpos50, grip3; Punctul central al sculei, grip3, este deplasat de-a lungul traiectoriei neliniare ctre punctul de oprire p5. Robotul consider c este n punctul condiiile ce trebuie s fie satisfcute. MoveL. Instruciunea MoveL este folosit pentru a deplasa punctul central al sculei (TCP), liniar spre o destinaie dat. Atunci cnd TCP este s rmn staionar, atunci aceast instruciune poate fi, de asemenea, utilizat pentru a reorienta scula. Sintaxa acestei instruciuni este urmtoarea: MoveL ToPoint Speed [\V] [ \T] Zone [\Z] [\Inpos] Tool [\WObj]. n aceast instruciune, argumentele care se folosesc sunt urmtoarele: ToPoint este de tip robtarget i reprezint punctul de destinaie al robotului. Acest argument este definit ca nume de poziie sau stocat direct n instruciune (se marcheaz cu * n instruciune). Speed este de tip speeddata. Datele vitezei care se aplic micrilor. Datele vitezei se definesc pentru punctul de centru al instrumentului, reorientarea sculei i axele externe. \V este de tip numeric. Acest argument este folosit pentru a specifica viteza punctului din centru al instrumentului n mm/s direct n instruciune. \T este de tip numeric. Acest argument este folosit pentru a specifica timpul total n secunde n timpul n care robotul se deplaseaz. 9 int cnd 50% din condiiile poziiei i 50% din condiia vitezei pentru punctul de oprire sunt satisfcute. Se ateapt cel mult 2 secunde pentru

Metode de Programarea pentru Sisteme Robotizate - C13 zone este de tip zonedata. Datele zonei descriu mrimea colului traiectoriei generate. Zone data describes the size of the generated corner path. \Z este de tip numeric. Acest argument este folosit pentru a specifica precizia poziiei punctului central al instrumentului (TCP) al robotului, direct n instruciune. Lungimea colului traiectoriei este dat n mm. Argumentul \Inpos (In position) este folosit pentru a specifica criteriul de convergen pentru poziia punctului TCP al robotului n punctul de oprire. Argumentul Tool precizeaz scula care se folosete cnd se deplaseaz robotul. Punctul central al instrumentului este punctul deplasat ctre punctul de destinaie specificat. \WObj este de tip wobjdata. Sistemul de coordonate la care se raporteaz poziia robotului n instruciune. Acest argument poate fi omis i, dac da, atunci poziia este raportat la sistemul de coordonate global. n urma execuiei instruciunii, robotul i unitile externe sunt deplasate ctre poziia destinaie dup cum urmeaz: Punctul TCP al sculei este micat liniar la viteza programat constant. Scula este reorientat la intervale egale de-a lungul traiectoriei. Axele externe necoordonate sunt executate la o vitez constant, n scopul ca acestea s ajung la punctul de destinaie, n acelai timp ca i axele robotului. Dac nu este posibil s se ating viteza programat pentru reorientare sau pentru axele externe, atunci viteza punctului TCP va fi redus. Un col al traiectoriei este de obicei generat atunci cnd micarea este transferat la seciunea urmtoare a traiectoriei. Dac un punct de oprire este specificat n datele zonei, atunci execuia programului continu numai cnd robotul i axele externe au ajuns la poziia corespunztoare. Exemple de baz pentru instruciunea MoveL sunt ilustrate mai jos: MoveL p1, v1000, z30, tool2; Punctul TCP al sculei, tool2, este mutat pe o traiectorie liniar pn n poziia p1, cu date de vitez v1000 i date de zon z30.

10

Metode de Programarea pentru Sisteme Robotizate - C14 5.2.2. Instruciuni de micare (continuare) MoveC. Aceast instruciune este folosit pentru a deplasa punctul din centrul sculei (TCP), circular la o destinaie dat. n timpul micrii, orientarea, n mod normal, rmne relativ neschimbat la cerc. Sintaxa acestei instruciuni este urmtoarea: MoveC CirPoint ToPoint Speed [\V] [\T] Zone [\Z] Tool [\WObj]. n aceast instruciune, argumentele care se folosesc sunt urmtoarele: CirPoint este de tip robtarget. Acest argument precizeaz un punct al cercului pe care robotul trebuie s se deplaseze. Punctul de pe cerc (CirPoint) este o poziie de pe cerc dintre punctul de nceput (start) i punctul final (destinaie). Pentru a obine cea mai bun precizie ar trebui ca acest punct s fie plasat la jumtatea distanei dintre punctele de pornire i destinaie. Dac acest punct este plasat prea aproape de punctul de start sau destinaie, robotul poate da un avertisment. CirPoint este definit ca un nume de poziie sau nregistrat direct n instruciune (marcat cu * n instruciune). ToPoint este de tip robtarget. Acest argument reprezint punctul de destinaie al robotului. El este definit ca nume de poziie sau nregistrat direct n instruciune (se marcheaz cu * n instruciune). Speed este de tip speeddata i reprezint datele vitezei care se aplic micrilor. Datele vitezei definesc viteza punctului TCP, reorientarea sculei i a axelor externe. \V este de tip numeric. Acest argument este folosit pentru a specifica viteza punctului central al sculei, n mod direct, n instruciune. Acest argument este apoi nlocuit pentru viteza specificat corespunztoare n datele de vitez. \T este de tip numeric. Acest argument este folosit pentru a specifica timpul total n secunde n care se mic robotul. Zone este de tip zonedata. Datele zonei descriu mrimea colului traiectoriei generate. \Z este de tip numeric. Acest argument este folosit pentru a specifica precizia poziiei a punctului central al sculei n instruciune. Lungimea colului traiectoriei este dat n mm. Tool este de tip tooldata. Argumentul precizeaz scula utilizat cnd robotul se mic. Punctul central al sculei este punctul deplasat spre punctul de destinaie specificat. \WObj este de tip wobjdata. Poziia robotului din instruciune este legat de sistemul de coordonate al obiectului de lucru. Acest argument poate fi omis i, dac da, atunci poziia robotului este raportat la sistemul de coordonate global. Execuia acestei instruciuni determin micarea robotului ctre punctul destinaie dup cum urmeaz: Punctul TCP al sculei este deplasat circular la o vitez programat constant. 1

Metode de Programarea pentru Sisteme Robotizate - C14 Scula este reorientat la o vitez constant de la orientarea din poziia de start ctre orientarea punctului destinaie. Reorientarea se face relativ la traiectoria circular. Astfel, dac orientarea n raport cu traiectoria este aceeai la punctul de la nceput i punctul destinaie, atunci orientarea relativ rmne neschimbat n timpul micrii. Exemple de baz ale instruciunii MoveC sunt ilustrate mai jos. MoveC p1, p2, v500, z30, tool2; Punctul TCP al sculei, tool2, este deplasat circular ctre poziia p2 cu datele vitezei v500 i datele zonei z30. Cercul este definit din poziia de start, punctul p1 de pe cerc i punctul destinaie p2. MoveC *, *, v500 \T:=5, fine, grip3; Punctul TCP al sculei, grip3, este mutat circular pn la un punct exact stocat n instruciune (marcat de dou *). Punctul de pe cerc este memorat de asemenea n instruciune (marcat de primul caracter *). Micarea complet dureaz 5 secunde. n figura de mai jos se arat cum este realizat un cerc complet folosind dou instruciuni MoveC. MoveL p1, v500, fine, tool1; MoveC p2, p3, v500, z20, tool1; MoveC p4, p1, v500, fine, tool1;

Fig. 5.7. Traiectorie circular 5.3. Controlul desfurrii programului Programul este executat secvenial, ca o regul, i anume instruciune cu instruciune. Uneori, instruciunile care ntrerup aceast execuie secvenial i apeleaz alt instruciune sunt necesare pentru a gestiona situaii diferite care pot aprea n timpul execuiei. Principiile programrii. Desfurarea programului poate fi controlat n funcie de cinci principii: Prin apelarea altei rutine (proceduri) i n momentul n care rutina a fost executat, executarea continund cu instruciunea care urmeaz apelului rutinei. 2

Metode de Programarea pentru Sisteme Robotizate - C14 Prin executarea diferitelor instruciuni, n funcie de faptul dac o condiie dat este sau nu satisfcut. Prin repetarea unei secvene de instruciuni de un numr de ori sau pn cnd o condiie dat este satisfcut. Prin saltul la o etichet n aceeai rutin. Prin oprirea execuiei programului. Instruciunea If. Instruciunea If evalueaz unul sau nici unul dintr-un numr de liste de declaraie, n funcie de valoarea uneia sau mai multe expresii condiionale. Sintaxa instruciunii If este urmtoarea: IF Condiie THEN List instruciuni {ELSEIF Condiie THEN List instruciuni } [ELSE ...] List instruciuni ENDIF Argumentul Condiie este de tip bool (acest tip folosete valorile logice true/false). Dac expresia Condiie este ndeplinit, atunci instruciunile dintre THEN i ELSE / ELSEIF urmeaz s fie executate. n timpul execuiei acestei instruciuni, condiiile sunt testate n ordine secvenial, pn cnd una dintre ele este satisfcut. Execuia programului continu cu instruciunile asociate cu aceast condiie. Dac nici una dintre condiii nu sunt ndeplinite, executarea programului continu cu instruciunile care urmeaz dup ELSE. Dac mai mult dect o condiie este ndeplinit, atunci sunt executate numai instruciunile asociate cu prima dintre aceste condiii. Un exemplu de utilizare a instruciunii IF este ilustrat mai jos. IF counter > 100 THEN counter := 100; ELSEIF counter < 0 THEN counter := 0; ELSE counter := counter + 1; ENDIF

Metode de Programarea pentru Sisteme Robotizate - C14 n cazul n care valoarea variabilei counter este n afara intervalului 0 100, atunci acestei variabile i se atribuie valoarea limitei corespunztoare. Dac valoarea variabilei counter este n intervalul 0 100, atunci valoarea variabilei este incrementat cu 1. Instruciunea FOR Instruciunea FOR este utilizat atunci cnd una sau mai multe instruciuni trebuie s fie repetate de un numr de ori precizat. Sintaxa instruciunii este prezentat mai jos: FOR Loop counter FROM Start value TO End value DO ... ENDFOR Loop counter este un identificator, care memoreaz valoarea curent a variabilei contor. Datele sunt declarate n mod automat. Dac numele variabilei contor este acelai cu oricare variabil care exist deja n program, atunci variabila existent va fi ascuns n bucla FOR i nu este afectat n nici un fel. Start value este o variabil de tip num (numeric) i reprezint valoarea de start dorit a variabilei contor (de obicei este valoare ntreag). End value este o variabil de tip num (numeric) i reprezint valoarea final dorit a variabilei contor (de obicei este valoare ntreag). Step value este o variabil de tip num (numeric), care reprezint valoarea cu care variabila contor este incrementat (sau decrementat) la fiecare repetare a buclei. Dac aceast valoare nu este specificat, atunci valoarea pasului va fi n mod automat setat la 1 (sau -1 dac valoarea de start este mai mare dect valoarea final). n timpul execuiei acestei instruciuni se parcurg urmtorii pai: 1. 2. 3. La nceputul execuiei instruciunii sunt evaluate valoarea de start, valoarea final i valoarea pasului. Variabilei contor a buclei i se atribuie valoarea de start. Valoarea variabilei contor este verificat pentru a constata dac aceast valoare se afl ntre valoarea de start i valoarea final, sau dac aceast valoare este egal cu valoarea de nceput sau valoarea final. Dac valoarea variabilei contor este n afara acestui interval, bucla FOR se oprete i execuia programului continu cu instruciunea ce urmeaz dup ENDFOR. 4. 5. 6. Instruciunile din bucla FOR sunt executate. Contorul buclei este incrementat (sau decrementat), n conformitate cu valoarea pasului. Bucla FOR este repetat, pornind de la punctul 3. [STEP Step value]

Metode de Programarea pentru Sisteme Robotizate - C14 Contorul buclei, care este o dat de tip num numeric, poate fi accesat doar din interiorul buclei FOR i ascunde, prin urmare, alte date i rutinele care au acelai nume. Aceast variabil poate fi doar citit (nu actualizat) de ctre instruciunile din bucla FOR. Valorile zecimale nu pot fi folosite pentru valoarea de start, final, sau de oprire, n combinaie cu condiiile de terminare a apelurilor exacte pentru bucla FOR (nedefinit sau nu bucla se execut ultima). Instruciunea WHILE Instruciunea WHILE este folosit atunci cnd un numr de instruciuni trebuie s fie repetate att timp ct o expresie condiie dat se evalueaz la o valoare TRUE. Sintaxa instruciunii WHILE este prezentat n continuare: WHILE expresie conditionala DO List de instruciuni ENDWHILE Expresia logic este evaluat i verificat nainte de fiecare bucl nou. De ndat ce expresia logic este evaluat ca FALSE, executarea continu cu instruciunea ce urmeaz dup ENDWHILE. Dac expresia logic evaluat este TRUE, atunci se execut instruciunile din blocul WHILE. n timpul execuiei acestei instruciuni se parcurg urmtoarele etape: 1. 2. 3. Expresia condiionala este evaluat. Dac expresia se evalueaz la valoarea TRUE, atunci sunt executate instruciunile din blocul WHILE. Expresia condiie este apoi evaluat din nou, i dac rezultatul acestei evaluri este valoarea TRUE, atunci instruciunile din blocul WHILE sunt executate din nou. Acest proces continu pn cnd rezultatul evalurii expresiei devine FALSE. Iteraia este apoi terminat i execuia programului continu de la instruciunea dup blocul de instruciuni WHILE. n cazul n care rezultatul evalurii expresiei este FALSE de la bun nceput, atunci instruciunile din blocul WHILE nu sunt executate vreodat. n acest caz, controlul programului este transferat imediat la instruciunea care urmeaz dup blocul WHILE. n cazul n care este posibil s se determine numrul de repetiii, atunci se poate folosi instruciunea FOR. Un exemplu al instruciunii WHILE este prezentat mai jos. WHILE a < b DO ... a := a + 1; ENDWHILE Instruciunile din blocul WHILE se repet att timp ct expresia logic a < b este TRUE. 5

Metode de Programarea pentru Sisteme Robotizate - C14

Vous aimerez peut-être aussi