Sunteți pe pagina 1din 13

PROGRAMAREA ROBOTILOR

Aplicatiile si chiar profitabilitatea unei celule de fabricatie cu robot depind de metodele de programare utilizate. Scopul activitatii de programare a robotului este acela de a transfera o succesiune de miscari complexe catre controller-ul robotului, folosind instructiuni simple si diverse metode de programare, astfel incat sa poata fi automatizat un proces de fabricatie. Metodele de programare ale robotului se pot compara cu metodele de programare pentru alte echipamente cu control numeric, dar cerintele tehnice sunt mai mari din cauza posibilitatilor mai complexe de miscare ale robotilor. In plus, producatorii de roboti ofera diferite interfete de programare, care nu respecta un standard. Rezultatul este ca nu exista inca un singur limbaj de programare pentru toate tipurile de roboti. Fiecare producator mai important poate avea implementat un limbaj de programare specific pentru robotii pe care ii produce.

Metode de programare

Un prim criteriu de clasificare a metodelor de programare a robotilor se refera la utilizarea sau nu a robotului in timpul crearii programului. Daca se utilizeaza robotul in timpul programarii, atunci se vorbeste despre programare online. Daca nu se utilizeaza, atunci se programeaza offline. Alte detalii despre metodele de programare se pot vedea in figura urmatoare:

Pentru programarea unei aplicatii se pot folosii si combinatii dintre mai multe medote de programare. Este un lucru obisnuit sa se foloseasca programarea teach-in pentru corectia propozitiilor planificate intru-un program creat prin metoda offline.

Programarea online

Metodele de programare online suporta, in general, numai comenzi pentru miscari. De obicei nu se suporta comenzi care sa tina cont de senzori externi. Metodele de programare online cuprind: programarea manuala si programarea teach-in. In prezent, programarea manuala se foloseste numai pentru dispozitive de alimentare/evacuare (feeding devices). Programarea manuala

Programarea manuala inseamna stabilirea de puncte de miscare prin limitatori statici(opritori), la nivelul axelor. De aceea, in aceasta metoda se folosesc coordonatele robot. In robotica, sistemul de coordonate robot este un sistem de masurare diferit de cel Cartezian. Sistemul de coordonate robot foloseste valorile pozitiilor articulatiilor pentru a specifica un punct din spatiul de lucru. Articulatiile pot fi liniare sau rotationale. De exemplu, in cazul robotilor articulati cu 6 axe, pentru determinarea unica a unei pozitii se dau toate cele sase valori dorite pentru pozitia articulatiilor. Avantaje: timpi mai mici necesari pentru programare; nu este necesar un computer pentru programare; deoarece se utilizeaza miscari PTP, chiar si un simplu controller poate obtine viteze mari de pozitionare. Dezavantaje: este necesara munca la nivelul mecanic; pozitionarea robotului se limiteaza la cateva puncte; nu exista functionalitate aditionala.

Programarea manuala este utilizata pentru aplicatii foarte simple, ca de pilda alimentarea si evacuarea cu piese a masinilor CNC sau a altor puncte de lucru. Programarea Teach-in Programarea teach-in poate fi subdivizata in trei metode: teach-in direct, programare master-slave si teach-in indirect. Observatie!!! Daca nu se dau alte informatii suplimentare, atunci cand se vorbeste despre programarea teach-in, de obicei, se face referire la metoda teach-in indirect.

Caracteristici comune pentru toate metodele teach-in: Robotul este miscat in timpul programarii;

Punctele de pozitionare sunt definite de senzorii interni (traductoarele de deplasare atasate axelor).

a) Teach-in direct Caracteristici: Programatorul conduce cu mana end-effector-ul robotului in pozitiile pe care doreste sa le obtina(robotul are inhibat sau dezactivat sistemul de franare al axelor).

Pozitiile robotului sunt inregistrate fie direct(la o comanda explicita a programatorului), fie automat(inregistreaza exact toate miscarile pe care operatorul le aplica end-effector-ului). Al doilea caz, cel al inregistrarii automate, este numit si programare play-back si necesita spatiu mare de memorare a programului.

Necesitati: roboti cu greutate mica; raport de transmisie mic pentru angrenajele mecanice de miscare a axelor(in special pentru transmisii cu roti dintate).

Programarea cu teach-in direct este utila pentru robotii folositi in aplicatii de tratare a suprafetelor(vopsire, polizare,etc.) b) Programarea Master-Slave Programarea Master-slave este comparabila cu programarea teach-in direct. In acest caz operatorul nu misca robotul in mod direct, ci foloseste un model miniatura al robotului. Robotul principal (slave) va urmarii miscarile realizate cu robotul model (master). Aceasta metoda necesita un echipament complex pentru programare. c) Teach-in indirect Programarea teach-in indirect sau simplu programarea teach-in este cea mai utilizata metoda de programare a robotilor. Caracteristici: Robotul este miscat prin actionarea unor taste functionale de pe panoul de operare(Teach Panel) al robotului. De aceea, motoarele robotului sunt active in timpul programarii. Pozitia dorita a robotului este memorata prin apasarea unei taste functionale de pe panoul de operare al robotului.

Panoul de operare permite introducerea de informatii suplimentare pentru fiecare pozitie(ex: citire intrari digitale).

Utilizatorul poate alegesi schimba sistemul de coordonate in care doreste sa miste robotul, de-a lungul procesului de programare(ex: coordonate universale, coordonate robot, coordonate piesa etc.).

d) Proprietati generale pentru metodele de programare Teach-in Avantaje: Verificarea imediata a modului de miscare(programare demonstrativa); Necesitati reduse de memorie pentru program; Pentru programe simple se obtin cei mai mici timpi de programare; Usor de implementat. Dezavantaje: Pentru programe complexe, este necesar un timp mare de programare; Productia este oprita in timpul programarii robotului; Celula de fabricatie trebuie sa fie construita inainte de inceperea programarii; Deseori programul robotului este incomplet sau are documentatia incompleta;

Nu este usor sa se foloseasca informatii de la senzori in programul robotului; Sunt putine functii de programare suportate pentru prelucrari de date de tip algoritmi de calcul; Este greu sa se programeze traiectorii curbilinii complexe(ex: parabole). Programarea offline

Programarea offline a unui robot se face, de exemplu, prin generarea de text in programul robotului, respectand o sintaxa data de un limbaj de programare specific robotilor. Programarea offline a unui robot are urmatoarele avantaje in comparatie cu metoda online: Nu este necesara prezenta unui robot in timpul programarii. Se poate dezvolta programe complexe prin utilizarea unor structuri de programare(inf, then,for, while,do etc.). Sunt usor de tratat semnale de la senzori si de utilizat comenzi pentru iesiri digitale.

Principalele dezavantaje sunt: Deseori, pozitiile nu se pot defini exact, din calcule matematice( este necesara si utilizarea metodei teach-in). Este dificil de realizat un test complet al programului in modul offline. Programarea in mod text Programarea in mod text face apel la utilizarea unor limbaje de programare de nivel inalt, specifice robotilor. Realizarea oricarui program necesita folosirea unui sistem de dezvoltare al programelor(un mediu de programare). Acest sistem are urmatoarele functii : Implementarea (scrierea) programelor; Verificarea sintactica si semantica a programelor, conform regulilor limbajului utilizat, si compilarea programelor; Testarea programelor (simulare); Stocarea si organizarea programelor (in directoare, cu posibilitatea de copiere, stergere, modificare etc.); Interfete catre alte sisteme de dezvoltare programe; Comunicatie cu utilizatorul; Incarcare (recuperare) a programelor in (din) controller-ul robotului (download, upload sau backup). Programarea in mod grafic Pentru programarea in mod grafic, se folosesc sisteme CAD in scopul de a modela geometric obiectele aplicatiei. Aceste informatii geometrice se folosesc de programe specializate pentru a genera miscari ale robotului pe anumite traiectorii. Utilizatorul introduce diversi parametri necesari in definirea caracteristicilor fiecarei traiectorii. Sistemul calculeaza o traiectorie ca o secventa de puncte intermediare prin care robotul trebuie sa treaca.

De exemplu, pentru procesarea unei suprafete, utilizatorul va introduce distanta dintre scula si suprafata piesei, care trebuie sa ramanaconstanta. De asemenea, va introduce punctul de start si directia de miscare. Aceste date sunt suficiente pentru calculul exact al unei traiectorii. Utilizatorul nu mai are nevoie sa recurga la metode teach-in pentru fiecare punct. Prin preluarea efortului de calculat al punctelor traiectoriei, acest mod de programare usureaza mult sarcina utilizatorului si reduce considerabil timpul de programare, in special pentru aplicatii cu miscari complexe. Functia de simulare a sistemului poate reprezenta grafic orice miscare, in vederea testarii. Acest mod de programare este folosit din ce in ce mai mult pentru aplicatii complexe de tratare a suprafetelor :vopsire, polizare, slefuire, sudare, periere etc. Alte metode de programare: Exista si alte metode offline de programare. Cateva dintre ele sunt folosite si in industrie, dar majoritatea se utilizeaza in cercetare: Programarea orientata pe spatiu (Workshop oriented programming); Programarea orientata pe sarcini (Task oriented programming-implicit programming); Programarea prin miscare in realitate virtuala (Programming by moving in virtual reality); Programarea vizuala cu diagrame si simboluri (Visual programming with diagrams and symbols). Metode de programare hibride (amestecuri de mai multe metode diferite); Programarea prin comenzi vocale (Programming by spoken commands); Programare prin invatare automata (roboti inteligenti).

Limbaje de programare pentru roboti Limbajele de programare de nivel inalt, folosite pe computere pentru dezvoltarea de programe PC, au multe lucruri in comun cu limbajele de programare pentru roboti (structuri de control, manipulari de date etc.). Oricum, trebuie avute in vedere urmatoarele aspecte aditionale atunci cand se utilizeaza un limbaj de programare pentru roboti: Robotul se misca intr-un spatiu tridimensional complex (exista pericol de coliziune). Interactiunea robotului cu echipamentele periferice reprezinta o parte importanta din numarul de comenzi ale limbajului de programare. Starea echipamentelor periferice ale robotului se poate modifica, in mod aleator, (neprevazut) in timpul functionarii. Programul trebuie sa proceseze informatii de la senzori. Obiectele manuite de robot au diverse proprietati fizice (ex: masa, volum, temperatura).

Clasificare: Limbajele de programare pentru roboti se poate clasifica dupa nivelul programare offline sunt divizate in patru nivele ierarhice, conform cu figura urmatoare: lor de abstractizare. Metodele de

Ierarhia limbajelor de programare dupa nivelul de abstractizare. Limbajele de la nivelele task layer si object layer sunt denumite limbaje implicite. Ele au cel mai mare nivel de abstractizare. Limbajele explicite sunt cele care opereaza la cele robot layer si joint layer. Nivelul comenzilor pentru articulatii are cel mai mic nivel de abstratizare. Limbaje de programare explicite

Urmatoarele detalii subliniaza cateva aspecte principale ale limbajelor de programare explicite. Accepta descrierea obiectelor in spatiul de lucru

Starea de pornire (pozitie si orientare). Accepta descrierea partilor principale(gripper si puncte de apucare)

Este uzual sa se descrie pozitia si orientarea obiectului in sistemul de coordonate al robotului (cu originea la baza robotului) si, relativ, sistemul de coordonate al obiectului, ca o functie de transformare, pozitia si orientarea partilor principale(gripper si puncte de apucare). Accepta intrari de date numerice pentru definirea unor pozitii si orientari. Aceste date pot proveni din : metode teach-in ,masurare, modele CAD. Accepta comenzi pentru miscari brute (ample)

Cu evitarea coliziunilor in spatiul de lucru prin introducerea de catre utilizator a unor comenzi de trecere. Cu evitarea singularitatilor si cu impunerea configuratiilor de pozitie de catre programator. Accepta comenzi pentru miscari fine.

Miscarile fine produc deplasari mici si orientari fine ale uneltei, in general pentru operatii de asamblare sau prelucrare suprafete. In general, pentru comanda acestor miscari se foloseste sistemul de coordonate TPC (al uneltei). Miscari provocate de senzori (ex: senzori de proximitate); Strategii de asamblare prin programarea mai multor comenzi de miscare. Precizarea aceleiasi pozitii in doua sisteme de coordonate se face prin transformarea unui set de coordonate(din primul sistem) intr-un alt set de coordonate(din al doilea sistem) cu o functie generala(de transformare) care tine seama numai de datele celor doua sisteme de coordonate. Punct de singularitate = este un punct in care robotul pierde un grad de libertate. De asemenea, daca robotul trebuie sa se deplaseze liniar si cu viteza constanta printr-un punct de singularitate, atunci viteza intr-una din articulatiile robotului ar trebui sa tinda la infinit, ceea ce este imposibil. De aceea, trebuie evitate miscarile liniare prin puncte de singularitate. Robotul poate ajunge intr-o anumita pozitie a TPC in mai multe configuratii adica cu diferite valori ale pozitiilor articulatiilor. Pentru evitarea ambiguitatii se definesc diversi parametrii de configuratie doriti. Luarea in considerare prin functii de program, a fortelor, momentelor si a limitelor de flexibilitate. 1. 2. 3. Componente de limbaj pentru programarea paralela si/sau in timp real : controlul uneltelor si al perifericelor; cooperare cu alti roboti; asteptare pentru si/sau reactie la evenimentele externe Comparatie: In contrast cu limbajele implicite, limbajele explicite au urmatoarele caracteristici 1. 2. 3. 4. 5. Nu au un model al mediului inconjurator; Nu au posibilitatea de adaugare sau completare de programe in mod autonom; Nu detecteaza, in mod autonom, operatii ilegale; Timpi de calcul mai mici si necesitati de memorie mai mici decat la sistemele implicite; Utilizatorul trebuie sa programeze fiecare miscare si sa trateze, prin program, diversele erori posibile.

Strategia dezvoltarii programelor pentru roboti industriali

Dezvoltarea riguroasa si ordonata de programe pentru roboti se face urmand pasii de proiect specificati in figura urmatoare :

Exista cateva strategii de programare generale care sunt larg utilizate pentru realizarea de programe : lucrul in echipa, folosirea experientei acumulate, utilizarea de biblioteci de functii si proceduri despre care se stie ca sunt corecte si testate, preluarea de modele generale pe care programatorul le particularizeaza pentru aplicatia reala etc. La acestea se adauga diferite tehnici de programare. Tehnici de programare Daca programul este complex, se prefera impartirea lui in mai multe mici subprograme cu functii clare si diferite. Acest lucru permite concentrarea programatorului pe rand la rezolvarea unor probleme mai simple. Pentru implementarea acestor subprograme se pot folosi proceduri si functii. Separarea repetata a diverselor actiuni ale programului conduce la aparitia mai multor proceduri si subrutine, care trebuie organizate. Divizarea codului unui program in functii, proceduri si subrutine conduce la nevoia de structurare a programelor. O structura buna a unui program trebuie sa asigure o lizibilitate (citire si intelegere) usoara a acestuia. Acest aspect este important, mai ales atunci cand un programator trebuie sa modifice sau sa dezvolte un program realizat de alt programator. In mod particular, pentru tratarea intrarilor/iesirilor digitale, trebuie cunoscute tehnicile de programare pentru automatizari cu evenimentesecventiale si aleatoare, asa cum se folosesc la PLC-uri. Structurarea programelor: Un program include informatii pentru executia unor actiuni. Aceste informatii se impart in : comenzi si date. In mod uzual, datele necesare pentru actiuni nu sunt cuprinse in program, ci sunt preluate din alte surse, cum ar fi :

Memoria de date (ex: lista de pozitii); Sistemele de masurare (ex: senzori tactili sau de proximitate); De la utilizator (ex: panou operator teach panel ).

Comenzile din program constau in instructiuni de comanda si, daca este cazul, in alti parametrii specifici necesari executiei acestor instructiuni.

Fluxul informatiei intr-un program pentru roboti Limbaje de programare pentru robotii industriali Dintre cele mai cunoscute limbaje de programare in mod text pentru roboti se pot enumera: MRL - Mitsubish Robol Language ; IRL - Industrial Robot Language ; SLIM- Standard Language for Industrial Manipulators ; MELFA - BASIC III si IV Limbaje de programare, de nivel inalt, pentru roboti industriali.

Detalii privind limbajele de programare pentru roboti industriali: MRL Mitsubish Robol Language Acest limbaj de programare a fost conceput si folosit de firma Mitsubishi pentru programarea robotilor sai industriali din primele generatii. Programele sunt incarcate din PC in controller sub forma de fisiere text. Controller-ul actioneaza ca un interpretor de comenzi, executand instructiunile linie dupa linie, la fel ca la masinile CNC. Pentru programare este disponibil un set destul de bogat de comenzi.

Comenzile sunt impartite in sapte clase : 1. Comenzi de pozitionare si control al miscarii

Aceste comenzi se refera la definirea pozitiilor si coordonatelor, la diverse tipuri de interpolari ale miscarii, la viteze, acceleratii, temporizari etc. 2. Comenzi pentru controlul programului

Sunt destinate structurarii programului : ramuri decizionale, bucle, iteratii, intreruperi de semnal, porniri-opriri, operatii cu numaratoare etc. 3. Comenzi de control al gripper-ului (uneltei)

Realizeaza actiuni de inchidere/deschidere gripper. Controlul fortei de strangere cu gripper prin impunerea unui parametru de strangere (daca este actionat de motor). 4. Comenzi pentru intrari/iesiri digitale (sau analogice)

Aceste comenzi sunt destinate controlului perifericelor cu intrari/iesiri digitale (sau analogice). Se pot realiza citiri si scriere pe un singur bit sau pe mai multi biti, in paralel. 5. Comenzi pentru operatii matematice

Realizeaza principalele operatii matematice si transfer al datelor (rezultatelor) in memorie. 6. Comenzi pentru comunicatie (Utilizand RS232C)

Transfera informatii intre calculator (PC) si controller-ul robotului. Informatiile pot fi : pozitii ale axelor sau in diverse sisteme de coordonate (robot, TCP), numaratoare, stare intrari/iesiri digitale, alti parametrii. 7. Alte comenzi

Ultimul set de comenzi opereaza pentru starea unor parametrii generali ai controller-ului, selectia programelor, resetarea unor alarme, retragerea robotului in pozitia de referinta si, in general, cu comenzi de nivel superior necesare si pentru controlul robotului de la distanta. Aceste clase de comenzi sunt, intr-o masura mai mare sau mai mica, existente in limbajele de programare pentru roboti industriali. IRL Industrial Robot Language (DIN 66321) Standardul DIN 66321 descrie structura de baza si modul de realizare a programului de nivel inalt pentru roboti industriali IRL (Industrial Robot Language). Standardul defineste sintaxa si semantica instructiunilor IRL. Limbajul permite utilizatorului sa programeze miscarile unui robot si sa execute organigrame logice conform unei structuri de program definite de utilizator. Cu ajutorul unor compilatoare, un program IRL poate fi transferat in cod ICR (Intermediate Code for Robots) sau cod IRDATA (DIN 66314). SLIM Standard Language for Industrial Manipulators SLIM (Standard Language for Industrial Manipulators) este un limbaj pentru roboti, creat pe parcursul a zece ani de personal din universitati si de ingineri care au sarcina de a dezvolta si de a folosi limbaje de programare pentru roboti. Aceste persoane s-au intalnit in 1994 la Comitetul Japonez pentru Roboti pentru a crea acest limbaj. SLIM a fost construit pe baza modelului limbajului

BASIC, utilizat de mult timp pentru a programa computere obisnuite. Deoarece SLIM este o extensie a acestui limbaj, s-au adaugat instructiuni speciale pentru controlul miscarilor si pentru tratarea intrarilor/iesirilor digitale. MELFA BASIC III Limbaj de programare, de nivel inalt, pentru roboti industriali MELFA BASIC este un limbaj de programare pentru roboti care are la baza, la fel SLIM, limbajul universal BASIC. Limbajul BASIC a fost dezvoltat la Daratmouth College in SUA, pentru utilizarea de catre studenti a unui limbaj de programare usor de invatat. BASIC este prescurtarea de la denumirea : Beginners All-purpose Symbolic Instructions Code. Exista multe variante de limbaje de programare care au plecat din BASIC. MELFA BASIC este o astfel de varianta. La fel ca SLIM, MELFA BASIC are instructiuni suplimentare pentru controlul miscarilor si prin lucrul cu intrari/iesiri digitale. In MELFA BASIC, un program are doua parti : Partea Declarativa : unde se declara datele utilizatorului (declaratii de variabilitate, constante etc.);

Partea de Instructiuni : unde se implementeaza programul conform cerintelor aplicatiei. In aceasta parte se controleaza miscarile robotului, se realizeaza comunicatiile cu echipamentele periferice, cu calculatorul sau cu panoul de control.

MELFA BASIC IV Limbaj de programare, de nivel inalt, pentru roboti industriali. Este ultima versiune de limbaj de programare dezvoltata de Mitsubishi pentru controller-ele robotilor pe care ii produce. Controllerele Mitsubishi pot fi utilizate si in combinatie cu alte tipuri de roboti (KUKA, ABB etc.). Indicatii pentru laboratorul de roboti industriali : In masura posibilitatilor, elevii trebuie sa studieze, in detaliu, cel putin un limbaj de programare ( de preferinta cele mai moderne) si sa realizeze programe pe care sa le testeze fie pe un robot real, fie pe un software de simulare, cum este, de exemplu, COSIMIR Festo Didactic.

Bibliografie :
SITEURI: www.electromania.ro

Manual clasa a x-a mecatronica