Sunteți pe pagina 1din 5

Limbaje de programare pentru roboti Cursul 5

Traiectoria CP
Aceasta comanda se foloseste in cazul in care se cere deplasarea elementului final dupa traiectorii analitic bine definite. Traiectoria poate fi liniara sau in arce de cerc. Spre deosebire de cealalta traiectorie , aceste puncte sunt memorate in faza de programare. Memorarea se face cu ajutorul coordonatelor operationale Xi. Cunoscand valorile initiale si finale ale vectorului coordonatelor operationale Xinsi Xfinal , generatorul de traiectorie determina valorile esantionate care trebuiesc atinse x(t). Schema de generare pentru deplasarea pe o traiectorie interpolata este prezentata mai jos :

Figura 1 Schema de generare pentru deplasarea pe o traiectorie interpolata Aceste valori x(t) sunt convertite in vectorul coordonatelor generalizate. Folosind modelul geometric invers. Convertirea se face la un interval de timp egal cu tactul transformatorului de coordonate invers. Fiecare valoare a cuplei conducatoare este comparata cu valoarea momentana care este furnizata de traductorul de pozitie. Diferenta compararii respective constituie parametrul de comanda pentru servomecanismul de pozitionare. Locul Modelului geometric direct realizeaza transformarea coordonatelor cuplei conducatoare in valori operationale sau carteziene pentru a permite introducerea in interpolator a coordonatei initiale. Se constata ca generarea traiectoriei se face in spatiul cooronatelor carteziene iar necesitatea transformarilor de coordonate pentru fiecare punct conduce la multiplicarea calculelor necesare. In acest caz miscarea fiecarei cuple incepe si se termina simultan deci toate cuplele functioneaza in paralel. In acest caz exista o corelatie intre aceste miscari care fac ca sistemul de coordoante atasat elementului final sa foloseasca toata traiectoria pentru a trece de la orientarea initiala la cea finala.

Capitolul 3 Analiza structurii limbajelor de programare


3.1 Programarea generala. Nivele de programare
Pentru robot , sistemul de comanda este realizat cu ajutorul unuia sau mai multor procesoare programate de constructor. Programarea se bazeaza pe programe de comanda scrise intr-un cod masina. Din acest punct de vedere , cel mai simplu mod de programare pare a fi scrierea programului direct in limbajul masina si apoi rularea lui de catre unitatea de comanda. Aceasta inseamna ca toate secventele de miscare si datele furnizate de catre sistemul senzorial trebuiesc codate in date binare care sunt recunoscute de catre microprocesor. Utilizarea programarii in limbaj masina s-a dovedit a fi extreme de delicata. Drept urmare au fost dezvoltate limbaje de programare evoluate care sa permita scrierea mai facila si mai fiabila a programelor. Indiferent de nivelul de programare pentru a descrie sarcina de lucru trebuie ca in momentul executiei microprocesorul sa aiba o reprezentare a programului in limbajul masina proprie. Aceasta situatie apare necesara traducerea programului scris de utilizator intr-unul interpretabil de catre sistemul de comanda. Acest lucru se poate realiza pe mai multe cai si anume : a) Fisierul program-sursa scris in limbajul evoluat este tradus de catre un compilator in codul masina recunoscut de unitatea de comanda. b) Fisierul program este compilat intr-un cod intermediar de nivel scazut care este apoi interpretat si executat de catre unitatea de comanda. Exemple de astfel de limbaje sunt : LM , RPL , RAIL. c) Fisierul program-sursa este interpretat direct de catre unitatea de comanda si executat asa cum este in cazul limbajelor VAL II si AML II . Prin interpretor se intelege un program special resident in memoria unitatii de comanda care decodeaza instructiunile programului si piloteaza diferitele actiuni ale robotului. Marea majoritate a programelor sunt de tip INTERPRETARE , in care programul care realizeaza executia trateaza in mod secvential fiecare instructiune inainte de a trece la urmatoarea. Instructiunile oricarui limbaj textual de programare trebuie sa contina elemente care sa descrie : traiectoriile de realizat , geometria pieselor , informatiile primite de la sistemul senzorial , structura programului ( subprograme ) , si cicluri . In functie de bogatia mijloacelor de expresie informatice limbajele de programare se impart in 3 categorii : 1) Limbaje sarace in mijloace informatice : - ARLA utilizat de robotul ABB ( ASEA ) ; - IRL utilizat de robotii MICROSOFT ; - SIGLA utilizat de robotii OLIVETTI ; - SERF utilizat de robotii SCARA.

2) Limbaje de nivel inalt informatizate : - LM utilizat de robotii SCEMI - VAL II utilizat de robotii STAUBLI , UNIMATE 3) Limbaje de programare pentru celule robotizate: - AML utilizat de robotii IBM - KAREL utilizat de robotii GMF

1) Limbajele sarace in mijloace informatice : sunt limbaje cu variabile de tip unic ( intregi ) care folosesc conditionari de tip IF THEN si de salt neconditionat de tipul GO TO. La aceste limbaje se pot folosi subprograme care nu permit transmiterea unor parametri. Structura programului este liniara iar pozitiile de atins sunt precizate sub forma coordonatelor cuplelor. Aceste coordonate sunt prezentate sub forma numerica sau se fac referinte la pozitii memorate prin invatare. 2) Limbaje de nivel inalt informatizate : ofera structuri de date specifice roboticii cu structuri inspirate din limbajul PASCAL. 3) Limbaje de programare pentru celule robotizate : ofera mecanisme evoluate de evaluare a mediului inconjurator si permite supervizarea unui ansamblu de actiuni cat si cooperarea intre acestea. Diferitele limbaje de programare se mai impart in 4 nivele de descriere a sarcinilor impuse robotului. Cele 4 nivele sunt : a) nivelul 1 sau nivelul actionarilor : acest nivel al limbajelor de programare este un nivel inferior. Utilizatorul are posibilitatea sa programeze doar motoarele de actionare de o maniera coordonata sau nu. Eventul se poate realiza timpul de realizare al unei miscari. In caz contrar timpul poate fi calculat si minimizat de catre interpretor. Acest tip de programare este inspirat din limbajul de comanda numerica pentru masinile-unelte. Tipul acesta de programare se utilizeaza pentru roboti cartezieni sau pentru roboti de asamblare foarte simpli. Interpolarea liniara si cea circular nu sunt disponibile daca sunt comandate mai mult de 3 axe de miscare. Programarea consta in pilotarea manuala a robotului pana in pozitiile specifice executarii sarcinilor de lucru. In aceste pozitii se memoreaza coordonatele cu ajutorul traductorilor plasati la nivelul fiecarui motor. Deci , programul va contine succesiunea acestor pozitii permitand si eventuale cicluri. Doua exemple dintre limbaje de programare de nivel 1 sunt : - SIGLA ( SIGma LAnguage ) dezvoltat de OLIVETTI - AML ( A Manufacturing Language ) b) nivelul 2 sau nivelul efectorilor : in acest caz descrierea sarcinii robotului consta intr-o secventa de instructiuni care definesc miscarile si operatiile realizate de catre efector. In acest caz operatorul poate utiliza pentru programarea deplasarilor un sistem de coordonate operational mult mai apropiat de spatiul de lucru al robotului. Utilizatorul programeaza secventa de miscare nu prin comanda directa a motoarelor de actionare ci direct asupra organului terminal. Pilotul sau operatorul deplaseaza un sistem de referinta atasat organului terminal intr-un sistem de coordonate de baza al bratului robotului. Aceasta situatie este convenabila pentru robotii care nu folosesc coordonatele carteziene. In aceasta 3

situatie este posibila alegerea unui centru de rotatie pentru miscari de orientare diferit de centrul incheieturii robotului.Acest lucru permite separarea actiunilor de deplasare a sculei de cele de orientare. Se poate programa astfel punctul caracteristic al unei scule pe o traiectorie de interpolare liniara sau circulara simultan cu schimbarea orientarii acesteia pe parcursul deplasarii. Operatiile pe care trebuie sa le efectueze scula de lucru sunt precizate cu instructiuni specifice. Programul editat pentru organul efector este interpretat si transformat intr-un program explicit pentru motoarele de actionare de catre sistemul de comanda. Aceasta procedura implica prezenta unui convertor de coordonate care sa realizeze transformarea geometrica intre sistemul de referinta de baza si coordonatele cuplelor conducatoare. Aceasta se face pe baza unui model geometric al robotului. Acest nivel de programare permite utilizarea informatiilor primite de la sistemul senzorial. Programele se pot transfera de la un robot la altul. Principalele dezavantaje sunt urmatoarele : - programul trebuie sa contina si sa prevada in mod explicit si succsiv toate evenimentele ce pot interveni in timpul executiei. - operatorul trebuie sa dispuna ( sa cunoasca ) o descriere foarte precisa e mediului de lucru. - programele contin un numar mare de linii chiar pentru operatii simple. - nu pot fi coordonate simultan mai multe organe efectuate. c) nivelul 3 sau nivelul obiect : programarea la acest nivel presupune definirea sarcinii de lucru prin instructiuni care definesc operatiile ce trebuie executate asupra obiectului. Scopul acestor limbaje este de a pune la dispozitia programatorului mijloace care sa ii permita sa nu ia in considerare detaliile de manipulare si executie . Astfel programatorul neglijeaza complet miscarea robotului si indica doar deplasarea elementara a obiectului. Un exemplu a unei instructiuni dintr-un program este urmatorul : plaseaza obiectele 1 , 2 si 8 pe suportul 10 Fraza de comanda este transformata prin compilare intr-un program la nivelul efectorului. Apoi , programul obtinut este transformat in comenzi pentru motoarele de actionare. Daca programatorul nu ia in considerare miscarile in schimb la nivelul compilatorului trebuie sa se cunoasca in cele mai mici detalii geometria obiectelor de manipulate si a organului terminal prin memorarea acestora in faza anterioara programarii. In timpul scrierii programului compilatorul verifica sintaxa instructiunilor si realizeaza o simulare interna a executiei. Compilatorul semnaleaza operatorului eventualele erori sau incompatibilitati si acest mod de programare este implicit spre deosebire de programarea explicita din nivelele prezentate inainte. Programarea la acest nivel se utilizeaza pentru robotii care efectueaza un numar mic de operatii. De exemplu : montaj de micromotoare sau aparate de masura. d) nivelul 4 sau nivelul obiectiv : programarea la acest nivel este o generalizare a nivelului precedent. La acest nivel se face o specificare doar a obiectivului final de realizat intr-o faza a operatiei fara a detalia toate etapele intermediare. Idealul ar consta in a pune la dispozitie programatorului mijloacele care sa-I permita sa specifice cu ajutorul unor expresii adecvate scopul global al programului. De exemplu: folosirea unei instructiuni de tipul monteaza ansamblul Carcasa. Pentru executarea acestei instructiuni este necesara definirea anterioara a elementelor componente ale carcasei. La aceste elemente se precizeaza datele lor caracteristice , ordinea si modul de asamblare pentru fiecare componenta.

La acest nivel desfasurarea programului are loc dupa urmatoarele etape : compilarea programului la nivel obiectiv intr-un limbaj de nivel efector. interpretarea si verificarea sintaxei si semanticii frazelor de comanda. compilarea in limbaj masina si simularea programului pe un monitor.

Programatorul poate sa intervina si sa depaneze erorile. Simularea se bazeaza pe modelarea geometrica , cinematica si dinamica a robotului. Limbajele din aceasta categorie nu au un caracter global. Ele sunt create pentru un anumit tip de operatii. Limbajele se utilizeaza in special pentru programarea unor celule flexibile care include si un robot.