Sunteți pe pagina 1din 116

Metode de Programarea pentru Sisteme Robotizate - C1

1. INTRODUCERE ÎN PROGRAMAREA SISTEMELOR ROBOTIZATE

1.1 Arhitectura unui sistem robotizat

Prin cuvântul „robot”, cel mai frecvent, se înţelege partea care execută efectiv manipularea, adică structura mecanică. Pentru specialişti în domeniul roboticii, termenul de „robot” are o sferă mult mai mare de înţelegere. Pentru a întregii imaginea despre „robot” este necesar să se analizeze şi alte aspecte, componente, care permit funcţionarea şi utilizarea acestuia. Dacă se priveşte robotul industrial ca un sistem, atunci acesta se poate reprezenta folosind o schemă simplă, care cuprinde cele patru componente principale (Fig. 1.1).

Comanda

cele patru componente principale (Fig. 1.1). Comanda Informa ţ ii 1. Sistem mecanic articulat (robotul)

Informaţii

1. Sistem mecanic articulat (robotul)

 

Sistem de transmisie (lanţuri, angrenaje,etc)

Traductoare

interne

Sistem de acţionare (motoare)

Interacţiune

2. Mediu

Traductoare

externe

 

Model al robotului

Model al mediului

3. Calculatoare

Descriere lucrare – funcţie obiectiv

Algoritm de comandă

Informaţii

Limbaje de

programare

4. Lucrare de realizat

Informa ţ ii Limbaje de programare 4. Lucrare de realizat Fig. 1.1 Arhitectura unui sistem robotizat

Fig. 1.1 Arhitectura unui sistem robotizat Pentru o cunoaştere 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 acţionare şi transmisie (motoare, organe de transmisie), este numit frecvent robotul propriu-zis sau manipulatorul robotului. Pentru a cunoaşte în fiecare moment poziţia articulaţiilor, robotul este prevăzut cu traductoare. Aceste traductoare se folosesc şi pentru corectarea poziţiei articulaţiilor. Ele pot fi potenţiometre, codori optici, traductoare de forţă, ş.a. Traductoarele dau informaţii asupra configuraţiei articulaţiilor structurii mecanice la un moment dat, în raport cu o configuraţie de referinţă numită configuraţia de iniţiere.

Metode de Programarea pentru Sisteme Robotizate - C1

Sistemul mecanic al robotului asigură realizarea mişcării acestuia şi transmiterea energiei mecanice necesare poziţionării elementului final al structurii. În continuare se vor prezenta o serie de termeni utilizaţi frecvent în analiza sistemului mecanic. Aceşti 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 poziţionare şi mecanismul de orientare. Mecanismul de ghidare are ca obiectiv poziţionarea şi orientarea efectorului final în punctul de coordonate precizate de utilizator. Mecanismul de poziţionare realizează modificarea poziţiei punctului caracteristic, ataşat obiectului manipulat. Mecanismul de orientare are ca scop orientarea obiectului manipulat după direcţia precizată. Situarea obiectului manipulat în spaţiul tridimensional se stabileşte prin poziţia şi orientarea obiectului şi se poate defini cu ajutorul poziţiei punctului caracteristic şi a orientării dreptei caracteristice. Efectorul final este ultimul element al structurii mecanice de care se ataşează dispozitivul de prehensiune sau scula.

final este ultimul element al structurii mecanice de care se ata ş eaz ă dispozitivul de
final este ultimul element al structurii mecanice de care se ata ş eaz ă dispozitivul de
final este ultimul element al structurii mecanice de care se ata ş eaz ă dispozitivul de
se ata ş eaz ă dispozitivul de prehensiune sau scula. Fig. 1.2 Prin punct caracte ristic

Fig. 1.2 Prin punct caracteristic se înţelege 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 rotaţie conducătoare sunt în corespondenţă cu părţi ale corpului uman, aşa 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 înconjurător: este universul în care se găseşte prima componentă, sistemul

mecanic. Funcţia robotului nu se defineşte numai prin natura operaţiilor pe care le execută, ci şi prin

natura mediului în care le execută, Pentru roboţii cu post fix (care nu se deplasează) mediul se reduce la spaţiul util al robotului, iar pentru cei mobili, universul de acţiune este mai mare. Între structura sistemului mecanic şi mediul înconjurător există o interacţiune directă.

înconjur ă tor exist ă o interac ţ iune direct ă . Fig. 1.3 În timpul

Fig. 1.3

În timpul acţiunii robotului trebuie avut în vedere obstacolele care stau în calea elementelor mobile ale structurii mecanice. Pentru a evita obstacolele, robotul trebuie să culeagă informaţii din mediul său de acţiune cu ajutorul senzorilor.

c) Obiectivul de realizat: este sarcina (funcţia 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 învăţare (când se arată

robotului ce are de făcut), în scris (i se scrie despre obiectiv într-un limbaj pe care îl poate înţelege). Câteva exemple de lucrări pe care le poate efectua robotul în domeniul industrial: deplasare de obiecte (încărcare – descărcare maşini, paletizare, etc.), montaj (asamblare reversibilă a pieselor componente), asamblare fixă (sudură, lipire, etc.), măsurători, prelucrare, îndoire, vopsire a unor obiecte.

d) Calculatorul sau „Creierul” robotului: este organul robotului care analizează informaţiile

introduse de operator sau cele primite de la senzori interni sau externi. Pentru roboţii mai puţin avansaţi tehnic, cel mai des, este un automat programabil, iar pentru roboţii evoluaţi, este un calculator sau un grup de microprocesoare. Analizând în fiecare moment al acţiunii informaţiile transmise de programul de lucru, introdus de operator, de senzori interni şi externi şi apreciind astfel starea robotului, starea mediului şi

Metode de Programarea pentru Sisteme Robotizate - C1

obiectivul ce trebuie atins. Calculatorul emite comenzi (semnale pentru motoare) care vor determina

acţiunea următoare 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 relaţiile între semnalele de excitare ale sistemului de

acţionare şi deplasările robotului ca răspuns la aceste semnale;

- un model al mediului, care cuprinde o descriere a spaţiului în care lucrează; de exemplu

zonele cu obstacole, consistenţa obiectelor ce trebuie manevrate, etc.

- programe care să-i permită să înţeleagă ce obiectiv are de atins;

- programe care să-i permită comanda robotului fizic dacă acesta realizează obiectivul cores-

punzător.

Desigur nu toţi roboţii industriali au toate componentele amintite, componenta referitoare la

mediu lipseşte în cazul sistemului robot industrial clasic.

Robotul industrial clasic nu implică decât trei din elementele enumerate mai sus:

- structura mecanică (robotul fizic);

- calculatorul;

- sarcina sau obiectivul.

Acest robot nu posedă nici un mijloc de apreciere asupra stării mediului în care lucrează pentru

că nu este echipat cu senzori externi (fig. 1.4, bucla externă lipseşte).

Comanda Structura Informatie Calculatorul mecanică Limbaje de programare Lucrare (funcţia obiectiv)
Comanda
Structura
Informatie
Calculatorul
mecanică
Limbaje de
programare
Lucrare
(funcţia obiectiv)

Fig. 1.4

Calculatorul este astfel amplasat pe un automat programabil mai simplu, dar în acest caz,

trebuie luate măsuri de prevenire în avans, pentru toate situaţiile care pot apărea în mediul

robotului. Robotul nu mai are un model al mediului, dar va avea un program cu toate mişcările

secvenţiale pe care va trebui să le facă structura sa mecanică.

Astfel de roboţi se justifică în practică în următoarele situaţii:

atunci când obiectivul rămâne mult timp acelaşi şi când mişcările ce trebuiesc executate

se repetă, din punct de vedere geometric, riguros;

atunci când analizarea automată a mediului prezintă mai puţină importanţă în comparaţie

cu cheltuielile ce ar trebui făcute pentru o dotare performantă cu senzori a robotului,

Metode de Programarea pentru Sisteme Robotizate - C1

ştiind că sistemul de analiză automată a mediului sunt foarte costisitoare şi deocamdată, cu fiabilitate scăzută. Roboţii industriali clasici instalaţi reprezintă încă peste 80 % din parcul de roboţi din întreaga lume. În ultimii ani tot mai mulţi roboţi au fost dotaţi cu sisteme de vedere (cu performanţe limitate) sau cu sisteme de măsurare a eforturilor. În literatura de specialitate se consideră că un robot este format dintr-un număr de elemente distincte, fiecare având importanţa sa. Principalele părţi componente ale unui sistem robotizat, sunt:

sistemul mecanic conţine lanţuri cinematice închise sau deschise, în cazul unui robot de tip manipulator. Elementele lanţurilor cinematice sunt legate prin cuple cinematice, care determină gradul de mobilitate;

sistemul de acţionare contribuie la punerea în mişcare a robotului. Acest sistem este format din motoare şi transmisii mecanice. În mod curent, ca sistem de acţionare se folosesc actuatori electrici, hidraulici sau pneumatici;

sistem senzorial format din traductoarele de poziţie şi de viteză, măsoară poziţia şi sensul de deplasare al elementelor cinematice. Pot fi plasate traductoare de poziţie şi de forţă în cuplele cinematici, senzori tactili pe degetele de apucare, camere video pe o platformă mobilă, etc.

sistemul de comandă (conducere) citeşte informaţiile de la senzori şi transmite semnale de control către actuatori, interacţionând cu sursa de comandă a operatorului. Elementele prezentate mai sus, arată că robotica este un domeniu în care se îmbină cunoştinţe din domenii ca: inginerie mecanică, inginerie electrică, ştiinţa calculatoarelor şi chiar biomecanică. Mecatronica descrie, în mod general, modul de concepere, control şi calculul oricărui sistem electromecanic. Filozofia mecatronicii constă în faptul că, toate aceste aspecte joacă un rol în conceperea unui asemenea sistem. Pentru ca un proiectant să reuşească în acest domeniu, el trebuie să stăpânească fiecare dintre aspectele menţionate. 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 obişnuiască cu fiecare dintre aceste aspecte.

1.2 Aspecte generale ale programării roboţilor

Interfaţa 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 cerinţele aplicaţiilor

Metode de Programarea pentru Sisteme Robotizate - C1

industriale. Cele mai multe tendinţe în proiectarea şi folosirea roboţilor industriali se orientează pe aspectul modernizării interfeţei robotului cu operatorul. Roboţii care folosesc programarea fixă se diferenţiază faţă de cei care utilizează o programare flexibilă. Prin programarea roboţilor se urmăreşte nu numai programarea mişcărilor, ci şi utilizarea senzorilor şi comunicarea cu alţi factori de automatizare. În acest fel roboţii se pot adapta variatelor sarcini impuse de locul de activitate.

Cele trei nivele ale programării roboţilor În literatura de specialitate au existat multe stiluri ale interfeţei cu operatorul dezvoltate pentru programarea roboţilor. Înainte de dezvoltarea calculatoarelor în industrie, controlul roboţilor cuprindea adesea secvenţe folosite de controlul automatizării fixe. Abordările moderne sunt orientate spre programarea calculatoarelor şi soluţii în programarea roboţilor.

A. Programarea prin învăţare

La începutul programării roboţilor se folosea o metodă care se numeşte programare prin învăţare. Această metodă foloseşte pentru realizarea mişcării unui robot către un punct ţintă (scop) dorit, înregistrarea în memorie a poziţiilor intermediare şi citirea coordonatelor acestor poziţii când se urmăreşte repetarea mişcării. În timpul fazei de învăţare, operatorul ar putea ghida oricare robot cu ajutorul unei cutii cu butoane. Această cutie permite controlul fiecărei cuple cinematice sau fiecare grad de libertate în coordonate Carteziene. Astfel de programe permit testarea mişcărilor şi ramificarea lor. Ele sunt introduse în memorie foarte uşor, fără a solicita cunoaşterea 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 tendinţa a fost ca programarea roboţilor să se realizeze prin programe scrise în limbaje de programare specifice calculatoarelor. În mod obişnuit, aceste limbaje de programare au caracteristici speciale care se aplică programării roboţilor ş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 împărţi î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 programării roboţilor industriali (continuare)

B.1. Limbaje specializate pentru robot. Aceste limbaje de programare pentru robot au fost construite prin dezvoltarea a unui limbaj complet nou, deşi se adresează unei arii de roboţi specifici, poate fi considerat un limbaj general de programare pe calculator. Un exemplu este limbajul VAL dezvoltat pentru controlul roboţilor industriali construiţi 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. Deşi limbajul AL este acum o relicvă a trecutului, el furnizează un bun exemplu a acestor caracteristici care nu s-au găsit în cele mai moderne limbaje (controlul forţei, paralelism). Pentru că acest limbaj a fost construit în mediu academic, sunt referinţe 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 adăugând o bibliotecă de subrutine specifice pentru robot. Operatorul (utilizatorul) scrie un program Pascal făcând frecvent uz de apelări 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 roboţi 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 întâi pornind de la un nou limbaj cu scop general, ca un program de bază şi apoi furnizând o bibliotecă de subrutine predefinite specifice robotului. Exemple de limbaje de programare a roboţilor sunt: RAPID dezvoltat de ABB Robotics, AML dezvoltat de IBM şi KAREL dezvoltat de GMF Robotics.

Metode de Programarea pentru Sisteme Robotizate - C2

Studii ale aplicaţiilor program actuale pentru celule de lucru robotizate au arătat că un mare procent de limbaje de exprimare nu sunt specifice robotului. În schimb, foarte multe programe pentru robot folosesc iniţializarea, testarea logică şi ramificarea mişcărilor, comunicarea, etc., din limbajele clasice pe calculator.

C. Limbaje de programare nivel – sarcină Al treilea nivel pentru metodologia programării 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 acţiune a robotului pe care urmează să o ia. Într-un astfel de sistem, utilizatorul este capabil să includă instrucţiuni în aplicaţia program la un nivel înalt decât într-un limbaj de programare explicit pentru robot. Un sistem de programare nivel sarcină pentru robot trebuie să aibă abilitatea să facă multe planificări a sarcinilor în mod automat. De exemplu, dacă o instrucţiune „apucă tija” este realizată, sistemul trebuie să planifice o cale (traiectorie) pentru robot care evită coliziunea cu orice obstacol din mediul înconjurător; 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 făcut pentru limbajele de programare explicită a robotului. Adevărata 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 aplicaţie În fig. 1.5 se prezintă o celulă de lucru automatizată care completează un mic subansamblu într-un proces ipotetic de fabricaţie. 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 mâinii; o mică alimentare localizată pe suprafaţa de lucru care aprovizionează o altă parte a robotului, un calculator care controlează apăsarea şi care poate fi încărcat sau descărcat de către robot; o paletă pe care robotul plasează ansamblul terminat. Întregul proces este controlat de către controllerul (conducătorul) robotului într-o succesiune, după cum urmează:

1. Transportorul este semnalat să pornească; el este oprit când sistemul de vedere raportează că o piesă a fost detectată pe transportor.

Metode de Programarea pentru Sisteme Robotizate - C2

2. Sistemul de vedere apreciază poziţia piesei şi orientarea pe transportor şi inspectează piesa

pentru defecte, ca de exemplu numărul greşit de găuri.

defecte, ca de exemplu num ă rul gre ş it de g ă uri. Fig. 1.5

Fig. 1.5

3. Folosind ieşirea sistemului de vedere, robotul apucă piesa cu o forţă specificată. Distanţa

dintre degete este verificată pentru a asigura că piesa a fost corect apucată. Dacă nu este apucată corect, robotul se mişcă neobişnuit şi sarcina de vizualizare (vedere) este repetată.

4. Piesa este plasată în dispozitivul de fixare de pe suprafaţa de lucru. La acest punct,

transportorul poate fi semnalat să înceapă din nou pentru următoarea piesă. Acesta este pasul 1 şi 2, care începe în paralel cu următorii paşi.

5. O tijă este prinsă de pe alimentator şi inserată parţial într-o gaură teşită (ascuţită) în piesă.

Controlul forţei este folosit să execute această inserare şi să execute o simplă verificare a operaţiei.

Dacă alimentatorul cu tije este gol, un operator este înştiinţat şi robotul aşteaptă până se comandă reluarea activităţii de către operator.

6. Ansamblul piesă – tijă este apucat de robot şi plasat în presă.

7. Presa este comandată să acţioneze şi ea presează tija complet în piesă. Presa semnalează că

activitatea este completă şi piesa este plasată înapoi în dispozitivul de fixare pentru o inspecţie finală.

8. Prin controlul forţei, ansamblul este verificat pentru o inserţie corespunzătoare a tijei.

Robotul simte forţa de reacţiune când el presează oblic pe tijă şi poate să facă mai multe verificări

prin care să descopere cât de departe (mult) a ieşit tija în afară faţă de piesă.

9. Dacă ansamblul este apreciat să fie bun, robotul plasează partea terminată în următorul locaş

al paletei. Dacă paleta este plină, atunci operatorul este semnalat. Dacă ansamblul este defect, atunci

el este aruncat într-o ladă de gunoi.

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 roboţi industriali de astăzi. Este clar că definirea unui astfel de proces prin tehnica „învăţare prin a arăta” nu este probabil realizabilă (posibilă). De exemplu, în legătură cu paletele, este laborios că trebuie să înveţe toate locaţiile compartimentelor de pe paletă; este mult mai preferabil să înveţi numai locaţia colţului şi apoi să calculeze celelalte pe baza cunoştinţelor dimensiunilor paletei. Acest fel de aplicaţie necesită un limbaj de programare pentru robot care se apropie de descrierea procesului. Pe de altă parte, această aplicaţie 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 maşină propriu. Din acest punct de vedere, cel mai simplu mod de programare a unui robot pare a fi scrierea programului direct în limbajul maşină şi rularea lui de către unitatea de comandă. Aceasta înseamnă că toate secvenţele de mişcare şi datele furnizate de către sistemul senzorial trebuie codate în datele binare recunoscute de către microprocesor (1 şi 0), pentru a putea, apoi, fi prelucrate de către acesta cu ajutorul setului propriu de instrucţiuni. Utilizarea programării în limbaj maşină 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 execuţiei, microprocesorul va utiliza o reprezentare a programului în limbajul maşină propriu, foarte diferită de aspectul iniţial al acestuia. Apare necesară deci traducerea programului scris de utilizator într-unul interpretabil de către sistemul de comandă, acest lucru se poate realiza pe mai multe căi:

fişierul program sursă scris în limbajul evoluat este „tradus” de către un compilator în codul maşină recunoscut de unitatea de comandă; fişierul program sursă este compilat într-un cod intermediar de nivel semantic scăzut care este apoi interpretat şi executat de către unitatea de comandă, cazul limbajelor LM, RPL, RAIL;

Metode de Programarea pentru Sisteme Robotizate - C2

fişierul program sursă este interpretat direct de către unitatea de comandă şi executat, cazul limbajelor VAL II, AML II. Prin interpretor se înţelege un program special rezident în memoria unităţii de comandă, care decodează instrucţiunile programului utilizator şi care pilotează diferitele acţiuni ale robotului. Marea majoritate a limbajelor de programare sunt de tip interpretat, în care programul însărcinat cu execuţia tratează în mod secvenţial fiecare instrucţiune înainte de a trece la următoarea. Instrucţiunile oricărui limbaj textual de programare trebuie să conţină elemente care să descrie:

traiectoriile de realizat;

geometria pieselor;

informaţiile primite de la sistemul senzorial;

structura programului (subprograme, salturi, cicluri);

operatori aritmetici.

În funcţie de bogăţia mijloacelor de expresie informatice puse la dispoziţia utilizatorului

limbajele de programare se împart în trei categorii (Tabelul 1.1).

Tabelul 1.1 Principalele limbaje de programare comerciale şi roboţii asociaţi

Limbajul de programare

Robotul care dispune de limbajul respectiv

Limbaje sărace în mijloace informatice

ARLA

ASEA (ABB)

IRL (1980)

roboţi MICROSOFT

LPR (1983)

roboţi ACMA (cu comanda V5)

SIGLA (1975)

roboţi OLIVETTI

SERF

roboţi SCARA (SANKYO)

Limbaje de nivel informatic înalt

LM

roboţi SCEMI cu dulapuri de comandă ACOR şi AVICOR

VAL II

roboţi STAUBLI, UNIMATE, ADEPT

Limbaje pentru celule robotizate

AML

roboţi IBM

KAREL

roboţi GMF

1. Limbajele sărace în mijloace informatice (cu posibilităţi de tip BASIC) sunt limbaje cu

şi de salt necondiţionat de

tip „GO TO”. Se pot folosi subprograme care nu permit însă transmiterea unor parametri. Structura

variabile de tip unic, în general întreg, condiţionări de tip „IF

THEN”

Metode de Programarea pentru Sisteme Robotizate - C2

programului este liniară, iar poziţiile de atins sunt precizate sub forma coordonatelor articulate, fie sub formă numerică, fie făcându-se referinţe la poziţii memorate prin învăţare.

2. Limbaje de nivel înalt oferă structuri de date predefinite clasice cât ş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 înconjurător şi permite supervizarea unui

ansamblu de acţiuni cât ş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 acţionărilor;

- nivel 2 sau nivelul efectorilor;

- nivel 3 sau nivel obiect;

- nivel 4 sau nivel obiectiv.

Nivelul acţionărilor (nivelul 1 de programare) Acest nivel al limbajelor de programare este nivelul inferior, utilizatorul are posibilitatea să programeze doar motoarele de acţionare de o manieră coordonată sau nu. Se mai poate preciza eventual timpul de realizare al unei mişcări, în caz contrar, acesta este calculat şi minimizat de către interpretor. Acest tip de programare este inspirat din limbajele de comandă numerică pentru maşinile unelte şi se utilizează în general pentru roboţi cartezieni sau pe roboţi de asamblare foarte simpli. Interpolarea liniară şi circulară nu sunt disponibile dacă sunt comandate mai mult de trei axe de mişcare. Programarea constă în pilotarea manuală a robotului până în configuraţiile specifice executării sarcinii de lucru şi memorarea acestora cu ajutorul informaţiilor furnizate de traductorii plasaţi la nivelul fiecărui motor. Programul va conţine succesiunea acestor configuraţii, permiţând şi eventuale cicluri, precum şi testarea informaţiilor primite de la unii traductori. Două exemple dintre limbajele de programare de nivel 1 sunt SIGLA (SIGma Language) dezvoltat de Olivetti pentru roboţi SIGMA şi AML (A Manufacturing Language) pus la punct de IBM şi echipând roboţii IBM – 7655 şi gama SCARA fabricată în Japonia de către 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 instrucţiuni care definesc mişcările şi operaţiile realizate de către efector. Prin efector se înţelege organul terminal de lucru cu care este echipat robotul (mâna mecanică, pistol de vopsire, etc.). În acest mod operatorul poate utiliza, pentru programarea deplasărilor, un sistem de coordonate operaţionale mult mai apropiat de spaţiul real de lucru (coordonate carteziene, cilindrice, unghiurile lui Euler, etc.), decât sistemul coordonatelor articulare. Utilizatorul programează secvenţa de mişcări nu prin comanda directă a motoarelor de acţionare, ci direct asupra organului terminal. Practic operatorul pilotează un sistem de referinţă ataşat organului terminal într-un sistem de coordonate de bază al braţului robotului. Această situaţie este convenabilă pentru roboţii care nu folosesc coordonatele carteziene dar şi pentru cei cartezieni, în cazul când sunt necesare rotaţii ale încheieturii robotului. Totodată este posibilă alegerea unui centru de rotaţie pentru mişcările de orientare ale sculei diferit de centrul încheieturii robotului, ceea ce permite separarea acţiunilor 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 orientării acesteia pe parcursul deplasării. Operaţiile pe care trebuie să le efectueze scula (prindere, desprindere, sudare, vopsire, etc.) sunt precizate cu instrucţiuni specifice, în funcţie de necesităţi. Programul editat pentru organul efector este interpretat şi transformat într-un program explicit pentru motoarele de acţionare de către sistemul de comandă. Această procedură implică prezenţa unui convertor de coordonate care să realizeze transformarea geometrică între sistemul de referinţă de bază şi configuraţiile articulare, pe baza unui model geometric al robotului. Acest nivel de programare permite utilizarea informaţiilor provenite de la sistemul senzorial, iar programele se pot transfera de la un tip de robot la altul. Dezavantajele principale vizează, în principal, următoarele aspecte:

programul trebuie să conţină şi să prevadă în mod explicit şi succesiv toate evenimentele ce

pot interveni în execuţie; operatorul trebuie să dispună de o descriere cantitativă foarte precisă a mediului de lucru;

programele conţin un număr mare de linii, chiar pentru operaţii simple;

nu pot fi coordonate simultan mai multe „mâini” ale roboţilor industriali.

Metode de Programarea pentru Sisteme Robotizate - C3

Nivelul obiect (nivelul 3 de programare) Programarea la acest nivel presupune definirea sarcinii de lucru prin instrucţiuni care definesc operaţiile ce trebuiesc executate asupra obiectelor, independent de robot, motoarele de acţionare sau organul terminal. Scopul acestor limbaje este de a pune la dispoziţia programatorului mijloace care să-i permită să nu ia în considerare detaliile de manipulare şi execuţie. Astfel programatorul neglijează complet mişcarea 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 maşină pentru motoarele de acţionare, astfel încât să se realizeze traiectoria calculată de deplasare şi să se evite coliziunile. Dacă programatorul nu ia în considerare mişcările, î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ă programării. În timpul scrierii programului, compilatorul verifică sintaxa instrucţiunilor şi realizează o simulare internă a execuţiei, semnalizând operatorului eventualele erori sau incompatibilităţi. Acest mod de programare este implicit, spre deosebire de programarea explicită din nivelele precedente şi se utilizează pentru roboţii care efectuează un număr mic de operaţii (spre exemplu montaje de micromotoare, aparate de măsură, 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 restrânsă.

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 operaţiei, fără a detalia toate etapele intermediare. Bineînţeles, idealul ar consta în a pune la dispoziţia programatorului mijloacele care să-i permită să specifice, cu ajutorul unor expresii adecvate, scopul global al programului, spre exemplu, folosirea unor instrucţiuni de tipul:

„MONTEAZĂ ANSAMBLUL CARCASĂ”. Pentru executarea acestei instrucţiuni trebuie definite anterior toate elementele componente ale carcasei, cu toate datele lor caracteristice, ordinea şi modul de asamblare pentru fiecare componentă. Desfăşurarea programului are loc după următoarele etape mari:

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 maşină şi simularea programului pe un monitor, astfel încât programatorul să poată interveni şi depana erori. Simularea se bazează pe modelarea geometrică, cinematică şi dinamică a robotului şi pe folosirea informaţiilor primite din partea sistemului senzorial. Limbajele din această categorie nu au un caracter global, ele fiind create pentru un anumit tip de operaţie (turnare, sudare, asamblare, etc.) şi se utilizează în special pentru programarea unor celule flexibile care includ şi un robot, decât pentru un robot de sine stătător. Acest nivel de programare se află încă în stadiul de cercetare, bazându-se pe elementele de inteligenţă artificială dezvoltate pentru comanda automată a producţiei.

1.4. Caracteristici ale limbajelor de programare pentru roboţi

1.4.1. Modelarea mediului Programele pentru manipulare trebuie, prin definiţie, să includă mişcarea obiectelor în spaţiul tridimensional. Deci este clar că orice limbaj de programare pentru roboţi are nevoie de o cale pentru descrierea acestor acţiuni. Cel mai comun element al limbajelor de programare pentru roboţi este existenţa unor tipuri geometrice speciale. De exemplu, tipurile sunt introduse pentru a reprezenta seturile cuplă – unghi, poziţii Carteziene, orientări şi sisteme de coordonate. Sistemul de coordonate standard poate servi ca un model posibil al mediului: Toate mişcările 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 maşini, părţile şi dispozitivele de lucru pot fi modelate prin definirea variabilelor asociate cu fiecare obiect de interes. Fig. 1.6 arată părţile unei celule de lucru cu sistemele de coordonate ataşate în locaţiile 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 roboţi, această capacitate pentru a defini variabile pentru variate tipuri geometrice şi referirea la ele în program formează baza modelării mediului. De notat că aceste forme fizice ale obiectelor nu sunt parte din modelul mediului şi nici nu sunt suprafeţe, volume, mase sau alte proprietăţi. Măsura în care obiectele din mediul de lucru sunt modelate este unul din deciziile de bază ale proiectului făcute când proiectez un sistem de programare al robotului. Majoritatea sistemelor în prezent suportă numai stilul anterior descris.

Metode de Programarea pentru Sisteme Robotizate - C3

Metode de Programarea pentru Sisteme Robotizate - C3 Fig. 1.6 Câteva sisteme de modelare a mediului

Fig. 1.6

Câteva sisteme de modelare a mediului permit noţiunea de adăugare (affixments) între obiecte – adică, sistemul poate fi notificat ca două sau mai multe obiecte au devenit adăugate de aici încolo, dacă un obiect este deplasat în mod explicit cu o instrucţiune de limbaj, orice obiecte adăugate la acesta sunt deplasate împreună cu acesta. Astfel, în aplicaţiile noastre, odată ce bolţul a fost inserat in locaşul din colţar, sistemul va fi notificat (printr-o instrucţiune a limbajului) astfel aceste două obiecte devin legate (ataşate). Mişcările următoare ale colţarului (adică schimbările valorii sistemului de coordonate variabil „colţar”) va cauza valoarea memorată pentru bolţ să fie actualizată în prima coordonată. Ideal, sistemul de modelare a mediului ar include mult mai multe informaţii 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 spaţială a obiectului prin definirea muchiilor sale, suprafeţelor sau volumului său. 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 mişcării O funcţie de bază a limbajului de programare a roboţilor este să permită descrierea mişcărilor dorite ale robotului. Din cauza utilizării instrucţiunilor de mişcare in limbaj, utilizatorul realizează legătura cu planificarea şi generarea traiectoriei. Instrucţiunile de mişcare permit ca utilizatorul să specifice prin puncte, punctul ţintă (scop), şi dacă foloseşte interpolarea mişcării la nivelul cuplelor (interpolarea coordonatelor generalizate) sau mişcarea rectilinie în coordonate Carteziene. În plus, utilizatorul poate avea controlul asupra vitezei sau a duratei de mişcare.

Metode de Programarea pentru Sisteme Robotizate - C3

Pentru a ilustra variate sintaxe pentru mişcarea elementară vom considera următorul exemplu al mişcărilor unui manipulator:

(1) mişcare la poziţia goal1, (2) apoi deplasare în linie dreaptă (rectiliniu) către poziţia goal2; (3) apoi mişcare fără oprire prin via1 şi se opreşte la goal3. Presupunând că toate punctele acestei traiectorii au fost deja învăţate 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 instrucţiunile mişcărilor simple asemenea celor

de mai sus. Diferenţe între mişcările de bază de la un limbaj de programare al unui robot şi alte limbaje devin mai aparente dacă se consideră caracteristicile aşa cum urmează:

a. capacitatea de a efectua operaţii matematice pe astfel de tipuri de structuri ca sistem de coordonate, vectori şi matrice de rotaţie;

b. capacitatea de a descrie entităţile geometrice ca sisteme de coordonate în mai multe reprezentări avantajoase diferite – împreună cu capacitatea de transformare între reprezentări;

c. capacitatea de a impune condiţii pe durata mişcării sau vitezei unei mişcări particulare – de exemplu multe sisteme permit utilizatorului să aplice viteza ca o fracţie din viteza maximă, dar mai puţini permit utilizatorului să specifice în mod direct o durată dorită a mişcării 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 mişcare ( de exemplu obiectele aflate pe un conveier).

1.4.3. Algoritm de execuţie a mişcărilor La fel ca în limbajele convenţionale de programare a calculatoarelor, un sistem de programare robot permite utilizatorului să specifice algoritmul de execuţie al mişcărilor – adică în limbajele de

Metode de Programarea pentru Sisteme Robotizate - C3

programare ale roboţilor sunt în general găsite noţiunea de testare şi ramificare, ciclare, apelare de subrutine şi întreruperile. În plus, majoritatea aplicaţiilor pe calculator, prelucrarea paralelă este în general importantă în aplicaţiile celulelor de lucru automatizate. În primul rând, adesea doi sau mai mulţi roboţi sunt folosiţi într-o singură celulă de lucru şi lucrează simultan pentru a reduce durata ciclului de prelucrare. Adesea în aplicaţiile cu un singur robot, alt echipament din celula de lucru trebuie să fie controlat de către controlerul robotului în mod paralel. Astfel, în limbajele de programare ale roboţilor sunt adesea găsite elementele semnal şi aşteptare şi în mod ocazional crearea de execuţii paralele complicate sunt asigurate. Alt eveniment frecvent este de a comanda variate procese cu acelaşi tip de senzor. Atunci, prin întrerupere sau prin activare selectivă, sistemul robot trebuie să răspundă la anumite evenimente detectate de senzori. Capacitatea să specifice comanda evenimentelor în mod uşor este oferit de unele limbaje de programare pentru roboţi.

1.4.4. Programarea mediului înconjurător

Ca orice limbaj de calculator, o bună programare a mediului favorizează productivitatea programatorului. Programarea manipulatorului este dificilă şi are tendinţa de a fi foarte interactivă

cu o mulţime de experimente şi erori. Dacă utilizatorul ar forţa să repete în mod continuu ciclul „edit – compile – run” al limbajului compilat, atunci productivitatea ar fi scăzută. De aceea, cele mai multe limbaje de programare ale roboţilor sunt acum „interpretate”, deci instrucţiunile limbajului pot fi verificate în timpul scrierii programului. Multe dintre instrucţiunile limbajului cauzează mişcări ale aparatului fizic, deci o mărime mică a timpului cerut pentru traducerea instrucţiunilor limbajului este nesemnificativă. Se cere, de asemenea, suportul tipic de programare, aşa cum este editorul de text, verificările şi fişierul sistem.

1.4.5. Integrarea senzorului

O parte foarte importantă a programării robotului trebuie să interacţioneze cu senzorii. Sistemul trebuie să aibă, la minimum, capacitatea să interogheze senzorii de contact şi pentru forţă şi să folosească răspunsul în construcţia de tip „if – then – else”. Capacitatea să urmărească tranziţia 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 aplicaţia model, un sistem de vedere localizează colţarele de pe conveier şi returnează către controlerul manipulatorului poziţiile lor şi orientările 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 informaţii. Unii senzori pot fi parte al altui echipament în celula de lucru – de exemplu, unele controlere ale robotului pot folosi intrările de la un senzor ataşat unui conveier aşa că manipulatorul poate urmări mişcarea curelei conveier şi achiziţionează obiecte de pe conveier când el se mişcă. Interfaţa capabilă să controleze forţa se realizează prin instrucţiuni ale limbajului special care permite utilizatorului să specifice strategia forţei. Astfel de strategii al controlului forţei sunt prin necesitate o parte integrantă a sistemului de control al manipulatorului – limbajele simple pentru programarea roboţilor servesc ca o interfaţă pentru aceste capacităţi. Programarea roboţilor care fac uz de controlul forţei active pot solicita alte caracteristici speciale, de exemplu, capacitatea de a afişa datele despre forţă adunate în timpul mişcării cu restricţii. În sistemele care suportă controlul forţei active, descrierea forţei aplicate dorite poate deveni o parte a specificării mişcării. Limbajul AL descrie controlul forţei active în mişcarea elementară prin specificarea a şase componente ale rigidităţii (3 de translaţie şi 3 de rotaţie) şi o direcţie a forţei. Î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ă direcţia şi o direcţie a forţei 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 mişcare). Acesta determină traiectoriile pe care să le urmeze cupelele cinematice ale robotului în aşa fel încât efectorul acestuia să rezolve sarcina impusă. În domeniul roboticii, prin traiectorie se înţelege o curbă căreia i se asociază o variabilă temporală. Astfel se poate vorbi de traiectorie în spaţiul coordonatelor generalizate, ceea ce va înseamnă

precizarea vectorului

conducătoare ale robotului industrial. În acest sens se vor defini curbele q

q

( )

t R

n , adică descrierea variaţiei în timp a poziţiilor celor n cuple

1

(t)

,

,

q

n

(t)

.

De asemenea, vom putea avea o traiectorie în spaţiul coordonatelor operaţionale, ceea ce va

însemna precizarea lui

trial, în timp. Indiferent de tipul traiectoriei cu care se lucrează, variabila temporală se va situa în intervalul de timp corespunzător mişcării robotului industrial. Conducerea unui robot industrial poate fi descompus în două etape:

z t R , adică descrierea poziţiei şi orientarea efectorului robotului indus-

( )

6

- planificarea traiectoriei,

- controlul pentru îndeplinirea traiectoriei.

Deci şi structura sistemului de comandă pentru robotul industrial poate fi considerată ca fiind una ierarhică, având două nivele, corespunzător celor două etape menţionate mai sus. Există două abordări posibile în legătură cu planificarea traiectoriei şi în funcţie de acestea vor rezulta arhitecturi corespunzătoare pentru sistemul de conducere a robotului industrial (fig. 2.1 şi fig. 2.2).

Planificator traiectorie a d d ( q z d q t k ) q Generator
Planificator traiectorie
a
d
d (
q
z
d
q
t
k )
q
Generator
+ Sistem reglare
f
i
traiectorie
mişcare
-
Fig. 2.1. Planificarea traiectoriei varianta a

Astfel, se poate face o planificare a traiectoriei în spaţiul coordonatelor generalizate. Aceasta înseamnă că se planifică poziţiile cuplelor conducătoare pentru ca robotul industrial să

Metode de Programarea pentru Sisteme Robotizate - C4

îndeplinească sarcina. Deoarece se pleacă de la sarcina robotului industrial, adică de la specificaţia

cinematicii efectorului faţă de reperul de referinţă, deci de la vectorul z(t), iar planificarea

traiectoriei se face operând cu vectorul q(t), e necesar modelul geometric invers pentru

transformarea q(t)

=

f

i

(z(t))

.

Ieşirea din planificatorul de traiectorie se obţine prin generatorul de traiectorie, care determină

valorile lui q(t) la momentele de eşantionare, momente stabilite în funcţie de modul în care

lucrează cel de-al doilea nivel al sistemului de comandă.

Sistemul de reglare lucrează în buclă închisă. Pe baza informaţiilor de la senzori cu care este

dotat robotul industrial, sistemul de reglare determină îndeplinirea de către cuplele cinematice ale

robotului a poziţiilor planificate. În acest mod se obţine schema din fig. 2.1, în care s-a notat cu

z

d

şi q valoarea dorită pentru vectorul z respectiv q , iar q valoarea actuală a vectorului q .

Cel de al doilea mod de abordare a planificării traiectoriei în spaţiul coordonatelor

operaţionale, presupune generarea traiectoriei dorite pentru efector, adică a parametrilor cinematici

ai acestuia la momentul de eşantionare. Deoarece sistemul de reglare a mişcării necesită pentru

comanda cuplelor cinematice ale roboţilor industriali valorile vectorului q la momentele de

eşantionare, este necesar şi utilizarea modelului cinematic invers. Acest model este folosit după

d

a

generatorul de traiectorie pentru conversia respectivă şi rezultă astfel schema din fig. 2.2. Planificator traiectorie
generatorul de traiectorie pentru conversia respectivă şi rezultă astfel schema din fig. 2.2.
Planificator traiectorie
a
d (
d (
q
t
k )
q
z
t
k )
z
d Generator
+ Sistem reglare
f
traiectorie
i
mişcare
-

Fig. 2.2. Planificarea traiectoriei varianta b

În continuare se va trata problema generatorului de traiectorie şi câteva 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 următoarele aspecte:

- existenţa sau nu a obstacolelor în spaţiul de operare a robotului industrial;

- impunerea de către procesul tehnologic a unei anumite traiectorii de urmat de către efector

(de exemplu: în linie dreaptă, în arce de cerc) sau doar precizarea câtorva poziţii pe care trebuie să

le atingă efectorul;

Metode de Programarea pentru Sisteme Robotizate - C4

- existenţa unor restricţii dinamice privind momentul / forţa sau viteza / acceleraţia maximă pe care le poate dezvolta sistemul de acţionare a robotului industrial, dacă intervin asemenea specificaţii. Schemele din fig. 2.1 şi 2.2 se vor completa, în sensul că restricţiile dinamice vor fi date de intrare în planificatorul de mişcare, iar ca ieşiri din acestea se vor obţine nu numai poziţiile dorite ale cuplelor, ci şi vitezele sau vitezele şi acceleraţiile acestora. Pe baza acestor specificaţii se va putea alege varianta de abordare a planificării traiectoriei cea mai potrivită, având în vedere şi avantajele / dezavantajele pe care le prezintă fiecare din cele două variante şi care sunt următoarele. Planificarea în coordonate generalizate are următoarele avantaje:

planificarea se face direct în mărimile care se folosesc drept comenzi pentru elementele de execuţie (poziţii, viteze, acceleraţii ale cuplelor cinematice); complexitatea calculelor este mai mică decât la varianta în coordonate operaţionale, aşa cum rezultă din algoritmii de planificare şi de aceea poate satisface mai uşor cerinţa lucrului în timp real; restricţiile dinamice pot fi luate în considerare fără complicaţii, deoarece se lucrează cu mărimi asociate cuplelor cinematice, cele asupra cărora intervin restricţiile dinamice; planificarea nu este restricţionată de evitarea configuraţiilor singulare, aşa cum se întâmplă în cazul abordării în coordonate operaţionale. Dezavantajul planificării în coordonate generalizate este acela că nu se precizează forma traiectoriei pe care o străbate efectorul robotului industrial în afara poziţiilor pe care le impunem

prin valorile dorite pentru z . De exemplu, o situaţie frecventă este aceea în care se cunoaşte parametrii cinematici iniţiali şi se impune numai cea finală pentru efectorul robotului industrial. Aceşti parametri sunt date de intrare în planificatorul de mişcare, care calculează traiectoriile cuplelor cinematice în aşa fel încât să se atingă parametrii cinematici finali impuşi pentru efector. În acest caz nu va exista nici un control asupra zonei străbătute de efectorul robotului industrial. Din exemplul prezentat se observă că planificarea în coordonate generalizate este dificil de folosit atunci când 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 planificării în coordonate generalizate într-o asemenea situaţie se impune

discretizarea traiectoriei efectorului şi impunerea unui număr 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 operaţionale. În acest caz, planificarea se face asupra traiectoriei efectorului şi deci se va putea impune forma acesteia. Principala problemă devine aceea a complexităţii calculelor: pentru toate momentele de eşantionare, în care trebuie transmise valori spre sistemul de reglare a mişcării,

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 complicaţii în ceea ce priveşte considerarea restricţiilor dinamice şi a trecerii robotului industrial prin configuraţiile singulare. Dacă se ţine seama de aspectele prezentate, atunci alegerea variantei de planificare se va face în funcţie de specificul aplicaţiei. Dacă se lucrează într-un mediu fără obstacole şi dacă traiectoria efectorului poate fi definită printr-un număr 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 având o complexitate a calculelor redusă şi care pot îndeplini şi planificări de viteză şi acceleraţie optime din punct de vedere a sistemului de acţionare. Toate acestea fac din planificarea în coordonate generalizate varianta cea mai folosită în prezent. Planificarea în coordonate operaţionale se va folosi numai atunci când trebuie realizată un anumit tip de traiectorie pentru efectorul robotului industrial. Cazul cel mai des folosit fiind cel al deplasării efectorului în linie dreaptă.

2.2. Tipuri de comenzi de deplasare

În funcţie de complexitatea sarcinii de executat şi de caracteristicile şi performanţele robotului sistemul de comandă al roboţilor industriali foloseşte două mari tipuri de comenzi pentru conducerea mişcărilor 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 poziţionare) îşi găseşte aplicarea în cazul, când se cere doar poziţionarea elementului terminal al robotului în punctele esenţiale ale spaţiului operaţional (roboţi manipulatori universali şi de sudură prin puncte). În acest caz, sistemul de comandă nu foloseşte nici un model geometric al structurii mecanice pentru comanda mişcării. Punctele esenţiale de pe traiectoria

necesară îndeplinirii viitoarei sarcini de lucru

P (vezi fig. 2.3) sunt memorate sub forma unor

i

θ , iar între două puncte

puncte de precizie, exprimate în coordonatele cuplelor cinematice

succesive, deplasarea se realizează după o traiectorie imprevizibilă, dar repetitivă. Are loc deci o mişcare de poziţionare a cuplelor cinematice ale robotului într-un punct programat, apoi urmează o nouă poziţionare.

i

Metode de Programarea pentru Sisteme Robotizate - C4

P 1

P 2

P i P n P 3
P
i
P n
P 3

P n-1

Fig. 2.3 Conducere punct cu punct

Acţionarea cuplelor cinematice conducătoare se face necorelată, comanda asigurând, pentru

în acelaşi timp şi oprirea la

fiecare cuplă, plecarea de la coordonata sa articulară iniţială

θ i _ init

valoarea sa finală

θ i _ final

. Deoarece mişcarea fiecărei cuple cinematice nu se termină în acelaşi

moment, traiectoria, pe care se realizează deplasarea, nu poate fi controlată, motiv pentru care apare riscul coliziunii cu obstacole din mediul înconjurător robotului. Acest tip de mişcare asigură o deplasare minimă pentru fiecare cuplă cinematică, iar schema de generare a mişcării de poziţionare pentru o cuplă conducătoare (acţionată în cazul de faţă cu un motor de c.c.) este prezentată mai jos. Coordonata cuplei cinematice finale este comparată în blocul de comparaţie cu valoarea coordonatei curente măsurată de către traductorul de poziţie situat la nivelul cuplei respective,

θ

i mas

(t)

(iniţial traductorul furnizează valoarea coordonatei iniţiale

θ

i _ init

).

Diferenţa de poziţie

Δθ

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 – articulaţie.

Δθ (t) θ i _ final + i t Amplificator Motor de c.c. Transmisie -
Δθ
(t)
θ i _ final
+
i
t
Amplificator
Motor de c.c.
Transmisie
-
(t)
θ imas
Traductor de
θ i _ init
poziţie

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 când diferenţa

Δθ

i

(t) este nulă sau inferioară

unei valori prestabilite ε. Această schemă bloc de reglare automată în poziţie nu permite şi controlul vitezei de deplasare, iar traiectoria descrisă depinde de ordinea de excitare a motoarelor de acţionare.

2. Comanda CT se foloseşte în cazul în care se cere deplasarea elementului final al robotului

după traiectorii bine definite analitic (liniare, arce de cerc, etc.) între anumite puncte esenţiale din spaţiul operaţional (fig. 2.5).

P 1

P 2

P i P n P 3
P i
P n
<