cuprins - robotics.ucv.rorobotics.ucv.ro/carti/lpr/current/limbaje de programare a robotilor.pdf ·...

of 130 /130
Limbaje de Programare a Robotilor Industriali 1 Cuprins I. CONCEPTUL DE LIMBAJ. 3 A. Noţiuni introductive 3 B. Exemple de comunicatori şi sisteme de comunicaţie. 8 C. Ierarhizarea sistemelor comunicaţionale 15 D. Concluzii 18 II. ELEMENTE SPECIFICE ROBOŢILOR INDUSTRIALI. 20 A. Introducere 20 B. Utilizarea roboţilor industriali în aplicaţii industriale - Robotizarea unor aplicaţii 21 C. Utilizarea informatiilor senzoriale în programarea robotilor industriali 23 D. Sistemele de programare si sistemele de comanda ale roboţilor industriali 26 E. Descrierea sarcinilor pe care trebuie să le realizeze roboţii industriali 28 1. Descrierea la nivelul actionarilor 29 2. Descrierea în spatiul sarcinilor 32 3. Evolutia pozititei si orientarii efectorului 32 III. ELEMENTE DE BAZĂ ALE LIMBAJELOR DE PROGRAMARE A ROBOŢILOR INDUSTRIALI 36 A. Introducere în tematica limbajelor de programare a roboţilor industriali 36 B. Elemente caracteristice limbajelor de programare destinate structurilor de calcul 38 1. Variabilele 38 2. Subrutine 41 3. Proceduri şi funcţii 41 4. Macroinstrucţiunile 42 5. Recursivitatea 42 6. Procese şi corutine 43 C. Conceptele specifice Limbajului Robot 45 1. Sistem de referinţă - Frame 45 2. Controlul mişcării robotului 46 IV. DATE ŞI STRUCTURI DE DATE UTILIZATE ÎN CADRUL LIMBAJELOR DE PROGRAMARE A ROBOŢILOR INDUSTRIALI 52 A. Date utilizate de limbaje de programare a robotilor 52 B. Structuri de date 56 C. Moduri de manipulare a datelor 66 1. Operaţii logice 66 2. Operaţii de comparare 66 3. Operaţii aritmetice 67

Author: others

Post on 13-Oct-2019

44 views

Category:

Documents


2 download

Embed Size (px)

TRANSCRIPT

  • Limbaje de Programare a Robotilor Industriali

    1

    Cuprins

    I. CONCEPTUL DE LIMBAJ. 3

    A. Noţiuni introductive 3

    B. Exemple de comunicatori şi sisteme de comunicaţie. 8

    C. Ierarhizarea sistemelor comunicaţionale 15

    D. Concluzii 18

    II. ELEMENTE SPECIFICE ROBOŢILOR INDUSTRIALI. 20

    A. Introducere 20

    B. Utilizarea roboţilor industriali în aplicaţii industriale - Robotizarea unor aplicaţii 21

    C. Utilizarea informatiilor senzoriale în programarea robotilor industriali 23

    D. Sistemele de programare si sistemele de comanda ale roboţilor industriali 26

    E. Descrierea sarcinilor pe care trebuie să le realizeze roboţii industriali 28 1. Descrierea la nivelul actionarilor 29 2. Descrierea în spatiul sarcinilor 32 3. Evolutia pozititei si orientarii efectorului 32

    III. ELEMENTE DE BAZĂ ALE LIMBAJELOR DE PROGRAMARE A ROBOŢILOR INDUSTRIALI 36

    A. Introducere în tematica limbajelor de programare a roboţilor industriali 36

    B. Elemente caracteristice limbajelor de programare destinate structurilor de calcul 38 1. Variabilele 38 2. Subrutine 41 3. Proceduri şi funcţii 41 4. Macroinstrucţiunile 42 5. Recursivitatea 42 6. Procese şi corutine 43

    C. Conceptele specifice Limbajului Robot 45 1. Sistem de referinţă - Frame 45 2. Controlul mişcării robotului 46

    IV. DATE ŞI STRUCTURI DE DATE UTILIZATE ÎN CADRUL LIMBAJELOR DE PROGRAMARE A ROBOŢILOR INDUSTRIALI 52

    A. Date utilizate de limbaje de programare a robotilor 52

    B. Structuri de date 56

    C. Moduri de manipulare a datelor 66 1. Operaţii logice 66 2. Operaţii de comparare 66 3. Operaţii aritmetice 67

  • Limbaje de Programare a Robotilor Industriali

    2

    4. Operaţii geometrice 67 5. Funcţii standard 68 6. Expresii complexe cu anumite priorităţi: 69

    V. INSTRUCŢIUNI 71

    A. Instrucţiuni de descriere a mediului de operare 71

    B. Instrucţiuni de mişcare 76 1. Instrucţiunile de mişcare implicite. 76 2. Instrucţiunile de mişcare explicite. 77 3. Precizia poziţionării. 80 4. Tipul controlului mişcării. 81 5. Instrucţiunile de mişcare care integrează şi supravegherea senzorilor. 86

    C. Instrucţiuni de mişcare cu specificaţii tehnologice. 89

    D. Instrucţiuni de mişcare cu monitorizarea unor evenimente. 90

    E. Instrucţiuni de comandă şi control a end-effectorului 92 1. Instrucţiuni de acţionare a terminalelor cu parametrii 95 2. Instrucţiuni de comandă a terminalului cu monitorizarea senzorilor asociaţi 96

    F. Instrucţiuni dedicate lucrului cu sistemul exterioceptor 98

    G. Instrucţiuni de configurare a sistemului senzorial 99

    H. Instrucţiuni de mişcare cu controlul duratei mişcării 101

    I. Procese în paralel 102

    J. Instrucţiuni destinate lucrului cu sisteme de vedere artificiale 103

    K. Delimitarea programului prin intermediul blocurilor 108

    L. Instrucţiuni de control al parcurgerii programului 109 1. Instrucţiuni de salt necondiţionat 110 2. Instrucţiuni de execuţie condiţionată 110 3. Instrucţiuni cu execuţii condiţionate 110 4. Instrucţiuni cu salt condiţionat 112

    M. Instrucţiuni de sincronizare şi de temporizare condiţionată 115

    N. Alte consideraţii privitoare la tratarea situaţiilor excepţionale, atribute şi stare sistemului 116

    VI. INTEGRAREA ÎN PROGRAM A PROGRAMĂRII PRIN INSTRUIRE 118

    VII. SUBRUTINE, PROCEDURI ŞI FUNCŢII 123

    A. Blocuri cu execuţie în paralel şi organizarea programului sub forma unor task-uri 126

    B. Task-uri 127

    VIII. BIBLIOGRAFIE ŞI REFERINŢE 130

  • Limbaje de Programare a Robotilor Industriali

    3

    I. Conceptul de limbaj.

    A. Noţiuni introductive

    Rolul esenţial pe care îl joacă comunicarea impune o abordare sintetică

    care să permită aplicarea formalismului matematic. Astfel comunicarea conţine

    în esenţă trei tipuri de elemente fundamentale:

    comunicatorul - ca element receptor, transformator şi emiţător de informaţie

    sistemul de comunicaţie - ca structură determinată având ca suport clase date

    de comunicatori

    informaţia ca suport primar material al comunicaţiei

    Prin mesaj se defineşte mijlocul general prin care este transmisă

    informaţia din lumea reală între comunicatori. Mesajul are în general două

    laturi:

    latură obiectivă sau semnificaţia mesajului, independentă de comunicatorul

    de la care pleacă mesajul, respectiv de comunicatorul la care ajunge mesajul -

    latură ce poartă numele de obiectul sau semnificaţia mesajului - notată cu m

    o latură reprezentaţională sau simbolică care depinde direct de comunicatorii

    care intervin în comunicaţie: receptor, respectiv transmiţător - forma

    mesajului - notată fm.

    În concluzie mesajele vor fi notate sub forma unei perechi < m, fm >.

    Comunicatorul va fi considerat pentru început o entitate informală care există

    într-un cadru real dat şi care se caracterizeazăprin faptul că este capabil să

    ComunicatrulX

    ComunicatorulY

    Prelucrareainformatiei

    Transmisiainformatiei

    Receptiainformatiei

    Figure 1

  • Limbaje de Programare a Robotilor Industriali

    4

    recepţioneze, să prelucreze şi să transmită informaţie. Spre simplificare vom

    reprezenta comunicatorul prin aceste caracteristici ale sale sub forma unui graf

    orientat:

    Mediul real al comunicatorului Ci ( se va nota sub această forma

    comunicatorul) este universul care poate fi afectat de Ci sau poate afecta pe Ci la

    nivel informaţional, desigur, motiv pentru care acesta va fi notat cu UN(C) -

    Universul Natural al lui C sau mai simplu UN. Obiectele cu care C nu intră în

    contact vor fi deci considerate a fi în afara lui UN.

    În cadrul universului natural se disting la rândul lor alte două categorii de

    clase:

    1. clasa obiectelor care au sens pentru comunicatorul C , adică obiectele pe care

    C le recunoaşte dupa forma asociată ca reprezentare pentru C - notat cu M -

    mesaj pe care C îl poate recepţiona, prelucra sau transmite

    M m m UN C , iar m f m, este un mesaj care pote fi recepţionat sau

    transmis de C

    2. clasa obiectelor care nu au sens pentru C, nefiind recunoscute după forma de

    reprezentare simbolică asociată, cel putin în momentul curent.

    Ca o observaţie deosebit de importantă este faptul ca prin învăţare prima

    clasa poate fi extinsă prin asimilarea unor obiecte aparţinând celei de-a doua

    clase. încercând introducerea formalismului matematic vom putea considera ca

    fm - sensul, semantica mesajului m, se poate fi privit ca o funcţie parţială f

    definită pe UN( C ) cu domeniul în M - clasa obiectelor cu sens pentru C şi

    codomeniul în F, unde F este sintaxa sau forma de reprezentare a obiectelor din

    M pentru comunicatorul C. Procesul de extindere al funcţiei f, mai precis al

    codomeniului F poartă numele de învăţare, funcţie ce se explică prin asocierea

    pentru un mesaj m din M inclus în UN( C ) a unui sens pentru C, a unui nume

    simbolic care duce la extinderea lui F (nume care va purta, în continuare,

    numele de reprezentarea sau semnătura lui m pentru C).

  • Limbaje de Programare a Robotilor Industriali

    5

    Astfel pentru comunicatorul C, se va defini drept limbaj natural propriu

    comunicatorului C tripletul ordonat L M F f M F , , : unde:

    M - este semantica limbajului , F - este sintaxa limbajului, f - functia de

    asociere a sintaxei

    Limbajul, ca mijloc de comunicaţie, se realizează prin parcurgerea

    următoarelor etape:

    1) identificarea obiectelor limbajului printr-un proces de învăţare

    2) asocierea reprezentărilor simbolice pentru obiectele specificate la 1 sau

    specificarea sintaxei limbajului

    3) integrarea funcţiei de învăţare prin identificarea obiectelor specificate la 1 cu

    reprezentările lor alese la 2.

    Prin prisma celor prezentate anterior se poate considera a fi perfect

    determinat de universul sau natural şi de limbajul său, mai precis

    L M F f M F , , : care are o anumită dinamică.

    Comunicaţia impune existenţa a cel puţin 2 comunicatori C1 -

    L M F f M F1 1 1 1 1 1 , , : , respectiv C2 - L M F f M F2 2 2 2 2 2 , , : , motiv pentru

    care în continuare se vor defini condiţiile ca schimbul de mesaje să aibă loc:

    1) comunicatorii trebuie sa aibă sens unul pentru altul: C M C M

    f C F f C F1 2 2 1

    2 1 2 1 2 1

    2) comunicarea să poată să se facă prin mesaje ce pot fi înţelese:

    UN C UN C1 2 Detalierea condiţiilor necesare pentru ca schimbul de mesaje să aibă loc se

    realizează prin completarea condiţiilor anterioare cu următoarele condiţii de

    transformare a mesajelor m:

    1) f F f Fm m1 1 2 2 - semantica primului comunicator sa fie transformată îintr-o

    semantică ce poate fi înţeleasă de cel de-al doilea

    2) f F m Mm2 2 semantica celui de-al doilea comunicator să poată reface

    informaţia percepută iniţial de primul comunicator.

  • Limbaje de Programare a Robotilor Industriali

    6

    Aceste ultime două cerinţe impun definirea a două noi funcţii:

    funcţia translator Ti a cărui domeniul de definiţie este sintaxa Fi a limbajului

    comunicatorului emiţator, iar domeniul valorilor este sintaxa Fj a limbajului

    comunicatorului receptor: T F Fi i j:

    funcţia de evaluare Ei definita pe sintaxa Fi si domeniul valorilor M:

    E F Mi i: .

    Relaţional funcţiile definite până în acest moment pot fi descrise prin

    următoarea schemă:

    M F1

    F2

    M

    E2

    E1f1

    f2

    Figure 2

  • Limbaje de Programare a Robotilor Industriali

    7

    Relaţiile dintre funcţiile descrise anterior sunt: f T E f E f T E f E

    f T f f T ff E id f E idM M

    1 1 2 2 2 2 2 1 1 1

    1 1 2 2 2 1

    2 2 1 1

    ;;;

    Concluzionând o pereche de comunicatori C1, C2 formează un sistem de

    comunicaţie dacă sunt îndeplinite urmatoarele condiţii:

    1) C1 si C2 au acelaşi univers natural : UN(C1)=UN(C2)

    2) f1 şi f2 sunt funcţii injective, iar f f1 1 2 1 , sunt inversele lor

    3) există o pereche de funcţii T F F1 1 2: şi T F F2 2 1: care asigură

    comutativitatea diagramei.

    Un exemplu edificator în acest sens va fi ilustrat în cele ce urmează:

    Fie doi comunicatori C1 şi C2 specificaţi prin următoarele universe

    naturale: L N f N1 10 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 , , , , , , , , , , *, : , , , , , , , , , * - acest limbaj

    asociază numerelor naturale reprezentarea zecimală

    L N f N2 20 1 0 1 , , *, : , * - acest limbaj asociază numerelor naturale

    reprezentarea binară.

    În aceste condiţii poate fi construită functia inversă

    f c c c c c c cp p p p1 1 0 1 2 0 1 110 10 , , ; c c c cp0 1 2 0 1 2 3 4 5 6 7 8 9, , , , , , , , , , , * , respectiv f c c c c c cq q q q2 1 0 1 0 1 12 2 , , unde c c cq0 1 0 1, , , * . Funcţiile translatoare se obţin rapid, T1 fiind reprezentarea binara a numărului zecimal ( se

    va aplica algoritmul de împărţiri repetate pentru schimbarea bazei zecimale în

    bază binară), iar T2 fiind de fapt f c c c c c cq q q q2 1 0 1 0 1 12 2 , . Schema comunicaţiei între cele două limbaje devine:

  • Limbaje de Programare a Robotilor Industriali

    8

    B. Exemple de comunicatori şi sisteme de comunicaţie.

    Pentru înţelegerea formalismului introdus anterior în continuare vor fi

    prezentate câteva exemple de comunicatori si reprezentări schematice ale

    sistemelor de comunicaţie:

    Comunicatorul uman - universul natural al acestui comunicator îl

    constituie universul real uman. Formele de reprezentare a acestui univers depind

    de canalele senzoriale care recepţionează realitatea. Odată receptionată

    informaţia, mesajul, obiectul din universul natural, aceasta este transformat în

    sintaxă specific umană, sintaxă care poate permite prelucrarea după procesul de

    învăţare al mesajului. Această operaţie de învăţare va permite ulterior

    manipularea informaţiei la nivel abstract, semantic, realizându-se astfel

    prelucrări si transformări ale informaţiei, fără ca realul să mai fie prezent efectiv.

    Procesul de învăţare poate fi privit ca fiind realizat după următoarele etape:

    1. etapa receptoare în care obiectul real este perceput pe o cale senzorială de

    către comunicator(i)

    2. etapa de transformare semantică în care comunicatorul/comunicatorii

    transformă informaţia obţinuta în prima etapă în cunoaştere sau mai exact

    atribuie un nume sau mai exact anumite proprietaţi informaţiei obţinute în

    etapa 1. Acest nume sau proprietăţi senzoriale permit comunicatorului sa

    distingă clar informaţia acumulată de aceast ultim mesaj.

    N

    {0,1}

    N

    f-12

    f-11

    T2 T1f2

    f1{0,1,2,3,4,5,6,7,8,9}

    Figure 3

  • Limbaje de Programare a Robotilor Industriali

    9

    3. etapa de fixare a semanticii şi indirect a informaţiei, când sintaxa generală a

    comunicatorului este imbogăţită cu noua informaţie. Această etapă va

    permite comunicatorului ca de acum înainte semantica dată informaţiei să fie

    suficientă pentru transformări la nivel abstract care vor conţine mesaje de

    tipul celei asimilate. Această ultimă etapă poate fi reluată în cazul în care

    fixarea nu are loc.

    Schematic comunicarea umană poate fi structurată utilizând următoarele funcţii:

    Pentru comunicatorul C1 : L M F f M F1 1 1 1 1 1 , , : ; iar pentru comunicatorul C2

    L M F f M F2 2 2 2 2 2 , , : caracteristic fiind faptul ca M1 = M2 . Sigur că în

    realitate relaţia nu este general valabilă, relaţii de tipul M M1 2 sau

    M M1 2 fiind mult mai generale. Din considerente de simetrie va mai fi

    introdusă o funcţie parţial inversabilă , funcţie de corespondenţă c M M: 1 2 care

    leagă cele două universuri naturale ale comunicatorilor.

    Ca o caracteristică interesantă referitoare la functiile de translatare şi

    evaluare , pentru comunicatorii umani pot apare mai multe situaţii sau clase:

    Clasa comunicatorilor umani care vorbesc aceeaşi limbă: în acest caz dacă

    se impune ca F1=F2, nu neaapărat şi T1= T2, din motive lesne de înţeles,

    printre care cel mai simplu este deat de existenţa sinonimelor, chiar pentru

    comunicatori cu acceeaşi profesie şi pregătire.

    Clasa comunicatorilor care vorbesc limbi diferite: F F1 2 . Caracteristic însă

    procesului de comunicare uman este că contactul între comunicatori duce la

    o situaţie aparent paradoxală care dezvăluie insă concomitent şi relaţia :

    F F1 2 . Acesta este cazul general, în particular relaţiile sunt de tipul:

    F F1 2 sau F F2 1 .

    Clasa comunicatorilor care aparţin aceluiaşi domeniu sau subdomeniu al

    cunoaşterii umane: Această clasă are caracteristicile ambelor clase

    anterioare, având în plus caracteristic faptul că nivelul de abstractizare al

    informaţiei schimbate sau prelucrate poate fi superior realităţii senzoriale.(aşa

  • Limbaje de Programare a Robotilor Industriali

    10

    cum este cazul specialiştilor în matematică, fizică,informatică, mecanică

    cuantică,etc).

    în aceste condiţii relaţia comunicaţională umană poate fi reprezentată sub

    forma:

    M1 M1

    M2 M2

    F1

    F2

    f1f1

    -1

    f2-1

    f2

    c c-1T1 T2

    Figure 4

  • Limbaje de Programare a Robotilor Industriali

    11

    Comunicatorul maşină - comunicator uman. Sigur că acest tip de comunicaţie

    poate fi privit şi sub aspectul maşină-maşină-comunicator uman, datorită

    existenţei sistemelor ierarhizate de maşini, dar cum comunicaţia maşină nu are

    sens fără comunicatorul uman, vom considera cazul general de tip comunicator

    masină, în care comunicatorul uman va fi subânţeles. Caracteristic acestui tip

    de comunicaţie este faptul ca universul natural al maşinii devine datorită

    necesarului uman ca maşina sa fie o extensie a gândirii umane, chiar elementele

    de semantică umană, în timp ce funcţia de corespondenţă c introdusă anterior

    este o funcţie proprie constructorului maşinii. Aceasta reprezintă modul în care

    constructorul maşinii (fie maşina la nivel hard, fie maşina la nivel logic) a

    construit universul natural al maşinii. De asemenea funcţia de evaluare nu mai

    poate fi privită în mod simplist ca o inversă a unei funcţii, deoarece dacă

    introducerea informaţiei se realizează pe anumite canale, emiterea informaţiei

    după prelucrare se realizează de regulă pe alte canale senzoriale. Menţinând

    funcţiile cu semnificaţiile detaliate în cadrul comunicatorului uman, schema de

    comunicare devine:

    M1 M1

    F1 F1

    F1

    F2

    f1f1

    -1

    f2-1

    f2

    c c-1T1 T2

    Figure 5

  • Limbaje de Programare a Robotilor Industriali

    12

    De remarcat că în ciuda formalismului evident rezultat din analiza Figure 5, prin

    care T1 are aceeaşi structură cu f2, acestea sunt diferite intre ele: f2 este o funcţie

    de transformare, în timp ce T1 este o funcţie de reprezentare.

    Pentru specificarea comunicatorilor de tip maşină, în acelaşi univers natural UN

    se procedează astfel:

    se consideră o clasă de comunicatori naturali specificaţi cu ajutorul unui

    limbaj comunicator: L M F f M FC , , : şi se alege o structură din F

    numită sistem formal asociat comunicatorului maşina, astfel încât: M FF .

    În funcţie de posibilităţile de reprezentare a obiectelor dim MF cu ajutorul

    elementelor fizice asociate comunicatorului maşină se construieşte sistemul

    formal FM, care va reprezenta obiectele clasei MF

    se defineşte funcţia f M FM F M: prin care fiecărui obiect din MF i se

    asociază un simbol din FM prin intermediul funcţiei fM, considerată funcţia de

    reprezentare.

    În aceste condiţii se poate considera ca L M F f M FM F M M F M , , : este

    comunicatorul maşină.

    Deoarece în construcţia limbajului se încearcă extragerea unui algoritm se

    propune următoarea procedură:

    se caută o metodă de specificare a clasei tuturor obiectelor reale M pe care

    comunicatorul le poate recunoaşte şi mânui la nivel simbolic - se construieşte

    emantica limbajului

    se caută sintetizarea, chiar şi la nivel logic, a unui dispozitiv care să genereze

    clasa tuturor formelor sau semnăturilor simbolice a obiectelor din M - se

    construieşte sintaxa

    se stabileşte o regulă prin care fiecarui obiect semantic îi corspunde un

    element sintactic - se construieşte funcţia: f M Fm: , astfel ca m f m, să fie

    un mesaj.

  • Limbaje de Programare a Robotilor Industriali

    13

    Cum în acestă lucrare accentul se pune pe comunicarea maşină se va insista în

    cele ce urmează asupra algoritmului specific limbajului maşină:

    1) specificarea semnaticii MF a limbajului se reduce la specificarea unui sistem

    formal care poate fi recepţionat corect de comunicatorul maşină prin

    dispozitivele de intrare de care acesta dispune. Este evident ca intre sintaxa

    comunicatorului uman F si semantica comunicatorului maşină MF exista

    relaţia: M FF . în aceste condiţii se impun două reguli:

    I. mesajele comunicatorului uman m f m, să fie compatibile la nivel

    comunicaţional cu sistemul receptor al maşinii f Mm F .

    II. semantica maşină să fie un sistem suficient de larg astfel ca acei

    comunicatori care lucrează cu limbajul LM să poată să îşi exprime

    mesajele în mod natural. Se remarcă că în cazul limbajelor evoluate,

    comunicatorii umani aparţin unor clase largi de comunicatori. în

    esenţa se urmărşte ca semantica să fie heterogenă în ceea ce priveşte

    comunicatorii umani utilizatori: se caută un simbolism S care să

    servească drept mijloc de comunicare cu maşina oricare ar fi

    comunicatorul natural al unei clase C.

    2) sintaxa maşină FM depinde numai de structura fizică a maşinii capabilă să

    înmagazineze şi să stocheze informaţia, precum şi de arhitectura sistemului

    maşină.

    3) specificarea funcţiei de asociere devine elementul cel mai dificil în această

    construcţie. Se reamintesc elementele definitorii ale celor două limbaje

    L M F f M F , , : şi L M F f M FM F M M F M , , : precum si condiţia

    suplimentară M FF . Denumind ca funcţie de utilizare funcţia

    :: F M condiţiile pe care aceasta împreună cu f trebuie să le îndeplinească

    sunt: f fM F 1 1 , funcţia id este denumită funcţie translatoare iar o

    reprezentare grafică este:

  • Limbaje de Programare a Robotilor Industriali

    14

    Având în vedere ca dialogul se realizează între comunicatori formali aparţinând

    clasei C. specificaţi prin L M M F f M MF F , , : şi comunicatorul maşină

    L M F T M FM F M F M , , : , diagrama de comunicaţie va avea structura:

    în aceste condiţii limbajul maşină va fi definit prin tripletul

    L M F T M FM F M F M , , : sau mai exact L F F id F FM M M M M , , : în timp ce

    tripletul L M M F f M MP F F F , , : va purta numele de limbaj de

    programare.

    Pentru a completa această discuţie este normal să fie prezentat şi legătura

    dintre limbajul maşină şi limbajul constructorului maşinii

    L M F f M FC C C C C C , , : . Este evident că F FM C precum şi următoarea

    diagramă:

    M F

    F

    M

    idid

    f

    f

    Figure 6

    M MF

    FM

    M

    T-1T

    f

    Figure 7

    MC FC

    FM

    MC

    id2id1

    fC C

    C/FnfC/Fn

    Figure 8

  • Limbaje de Programare a Robotilor Industriali

    15

    Problemele ridicate de accesibilitatea limbajului de programare au complicat în

    mod necesa funcţia de translator T F FP M: fapt ce a dus la mărirea timpului

    necesar translatării pe de-o parte, respectiv la pierderea naturaleţii limbajului pe

    de altă parte.

    Pentru o mai bună exploatare şi înţelegere a limbajelor de programare se

    remarcă faptul că indiferent de clasa comunicatorilor, schimbul de informaţie se

    referă la obiecte statice , ce vor primi numele de date, precum şi la acţiuni ce

    trebuie exectutate asupra datelor sau asupra actor acţiuni ce vor primi numele de

    operaţii. Generalizând MP este un sistem formal în limbajul natural al clasei

    comunicatorilor cărora li se oferă limbajul de comunicare, sistem definit ca o

    pereche: M D date O operatiip , .

    C. Ierarhizarea sistemelor comunicaţionale

    Atât datele cât şi operaţiile pot fi considerate structurate pe două nivele după

    următoarele reguli:

    Pentru date - D :

    E1.există o clasă de date elementare sau primitive care au proprietatea de

    afi definite prin ele însele pentru clasa de utilizatori la care se referă

    limbajul

    E2.celelalte date din D sunt construcţii care se aplică datelor primitive

    şi/sau asupra datelor neprimitive ( construcţii deja realizate )

    Pentru operaţii - O :

    O1.există o clasă de operaţii primitive care relativ la abilitatea

    utilizatorului de a executa acţiuni asupra datelor sunt acţiuni simple

    O2.celelalte operaţii din O sunt construcţii obţinute prin compunerea

    operaţiilor primitive.

    În cadrul limbajelor de programare, limbajelor maşină şi nu în ultimul rând şi

    în cazul limbajelor naturale se impune o structură ierarhizată, o ierarhie

  • Limbaje de Programare a Robotilor Industriali

    16

    exterioară a limbajelor. Pentru detalierea acestui concept, vom presupune că

    sisrtemul comunicaţional conţine cel puţin două elemente de bază:

    un sistem iniţial de nivel ierarhic zero - 0 - sistem care poate fi reprezentat

    chiar de sistemul de calcul asociat comunicatorulu maşină

    lege prin care pornind de la un sistem de calcul dat de nivel ierarhic i se poate

    trece la un sistem de calcul nou, ierarhic superior i+1.

    Algoritmul ce este utilizat pentru stabilirea ierarhiei comunicaţiei este următorul:

    oricare ar fi un limbaj de programare dat, L M F f M FP P P P P P , , : , în care

    este un sistem de calcul specific unei clase de utilizatori , un limbaj de calcul

    superior lui LP se obţine acceptând că MP este bază pentru un nou sistem de

    calcul MP’ utilizând legea de generare:

    datele D ale sistemului MP se aleg ca date primitive pentru sistemul MP’

    operaţiile O ale sistemului MP se aleg ca operaţii primitive pentru sistemul

    MP’

    se formează un set de operaţii de compunere asupra datelor sistemului MP’.

    Acestea devin operaţii primitive pentru noul sistem MP’

    se formează un set de operaţii de compunere asupra operaţiilor sistemului

    MP’. Acestea devin operaţii primitive asupra operaţiilor pentru noul sistem

    MP’

    Reprezentarea grafică a aceastei ierarhizări este prezentată în figura 9.

    între date şi operaţii de pe diferite nivele există următoarele relaţii:

    Cd Pdi i 1 ; Co Poi i 1 i n0,

    Concluzionând asupra conceptelor comunicaţionale care prezintă interes pentru

    subiectul abordat în această lucrare se poate defini mediul comunicaţional prin

    intermediul următoarelor elemente:

    L M F f M FP P P P P P , , : - limbajul de programare asociat unei clase de

    utilizatori

    L M F f M FM m m m m m , , : - limbajul natural al unui comunicator maşină dat.

  • Limbaje de Programare a Robotilor Industriali

    17

    Implementarea limbajului LP pentru comunicatorul maşină Cm specificat de LM

    se înţelege diagrama de comunicaţie:

    Sistem de nivel i OperatiiDate

    {primitive - Po i }{primitive - Pd i }

    {complexe - Cd i } {complexe - Co i }

    Sistem de nivel i+1 OperatiiDate

    {primitive - Po i+1 }{primitive - Pd i+1 }

    {complexe - Cd i+1 } {complexe - Coi+1 } Figure 9

    MP MP

    Mm Mm

    FP

    Fm

    fPP

    mfm

    h1 h2T1 T2

    Figure 10

  • Limbaje de Programare a Robotilor Industriali

    18

    unde T1 şi T2 sunt funcţiile reprezentare integrate în structura asociată lui Fm,

    utilizate pentru precizarea ierarhiei interne.

    D. Concluzii

    1. Comunicaţia pentru a se desfaşura necesită existenţa a trei elemente

    principale: comunicatori, sistem de comunicaţie, informaţia sau mesajul

    reprezentat sub forma: .

    2. Se defineşte drept limbaj natural propriu comunicatorului C tripletul ordonat

    L M F f M F , , : unde: M - este semantica limbajului , F - este sintaxa

    limbajului, f - functia de asociere a sintaxei

    3. Schimbul de informaţie între doi comunicatori se realizează în anumite

    condiţii, rezultând existenţa implicită a unor noi funcţii: funcţia translator

    T F Fi i j: unde Fi este sintaxa limbajului comunicatorului emiţător, iar Fj

    este sintaxa a limbajului comunicatorului receptor, precum şi funcţia de

    evaluare E F Mi i: .

    4. Comunicarea om-maşină are o serie de caracteristici:

    între sintaxa comunicatorului uman F si semantica comunicatorului

    maşină MF exista relaţia: M FF .

    în cadrul comunicaţiei apar o serie de limbaje între care există

    legături ierarhice. Ierarhia acestora este:

    a) L M F f M FM m m m m m , , : - limbaj maşină

    b) L M F f M FC C C C C C , , : - limbajul constructorului maşinii,

    relaţia dintre limbajul maşină şi limbajul constructorului cea mai

    importantă fiind F Fm C

    c) L M F f M FP P P P P P , , : - limbajul de programare asociat unei

    clase de utilizatori, unde MP este un sistem formal în limbajul

    natural al clasei comunicatorilor cărora li se oferă limbajul de

    comunicare, sistem definit ca o pereche:

  • Limbaje de Programare a Robotilor Industriali

    19

    M D date O operatiip , .

  • Limbaje de Programare a Robotilor Industriali

    20

    II. Elemente specifice Roboţilor Industriali.

    A. Introducere

    Principala caracteristica a robotilor este versalitatea; ei pot fi utilizati în

    multe scopuri cu eforturi minime. Aceasta versalitate deriva din avantajele

    oferite de structura lor fizica si de control, dar ea poate fi exploatata numai daca

    robotul poate fi programat cu usurinta. În unelecazuri, lipsa unor unelte de

    programare adecvate poate duce la imposibilitatea rezolvarii anumitor probleme.

    în alte cazuri, costul programarii poate fi o parte semnificativa din costul total al

    aplicatiei.. Din aceste motive, programarea si sistemele de programare ale

    robotilor joaca un rol important în dezvoltarea roboticii.

    Rolul progrmarii robotilor este diversificat si în mare masura depinde de

    utilizatori. El poate fi privit din mai multe puncte de vedere:

    a) al operarii robotului în ansamblu:robotul trebuie sa fie sigur si usor

    de operat. Operarea usoara poate proveni în mare masura din uneltele de control

    oferite de programare. Siguranta în functionarea robotului este foarte importanta

    si poate fi realizata si prin intermediul sistemului de programare;

    b) al aplicatiei robotului: prin intermediul programarii trebuie sa se

    obtina acele elemente, acele unelte specifice sarcinilor pe care va

    trebui sa le realizeze robotul în cadrul aplicatiilor în care se utilizeaza (

    descrierea intr-o maniera corespunzatoare unei aplicatii date a

    traiectoriilor de miscare, a functiilor pe care trebuie sa le realizeze).

    c) al productivitatii: prin intermediul programarii, sistemul robot

    trebuie sa devinacat mai eficient ( prin reprogramare robotul va

    executa diverse sarcini, ceea ce face ca acelesi robot sa poata fi utilizat

    în multe aplicatii).

  • Limbaje de Programare a Robotilor Industriali

    21

    B. Utilizarea roboţilor industriali în aplicaţii industriale -

    Robotizarea unor aplicaţii

    Robotizarea unei aplicatii cauta sa inlocuiasca munca operatorului uman

    în realizarea unor sarcini repetitive, obositoare si plictisitoare pentru cresterea

    productivitatii.

    Prin programarea unei aplicatii robotizate se intelege procesul de

    elaborare (editare, verificare, transfer) a unui ansamblu de instructiuni

    corespunzatoare atat aplicatiei respective,cat si sistemului de programare al

    robotului.

    Controlul poate fi executat direct de sistemul de conducere alrobotului

    sau, mai general, de un sistem de conducere aflat pe un nivel ierarhic superior;

    acesta coordoneaza activitatea tuturor echipamentelor din celula robotizata de

    productie urmarind paralelismul si sincronizarea tuturor operatiilor efectuate.

    În vederea unei clarificări a problematicii abordate, în continure, va fi

    abordat şi explicat în detaliu o aplicaţie: preluarea unor semifabricate care pot

    sosi intr-o pozitie oarecare, prelucrarea si apoi ambalarea lor.

    Structura celulei robotizate care va efectua toate aceste operatii este

    urmatoarea:

    In cadrul acestei celule se vor executa urmatoarele operatii:

    - pozitia oarecare în care sosesc semifabricatele pe banda transportoare

    este determinata prin inspectie vizuala cu camera TV (in paralel se pot verifica si

    detwermina eventualele defecte ale semifabricatelor );

    - în functie de datele inspectiei vizuale, robotul 1 va fi adus intr-o anumita

    pozitie si cu o anumita orientare corespunzatoare preluarii semifabricatelor;

    - urmeaza operatia de inchidere a dispozitivului de apucare a robotului cu

    o forta adaptata la greutatea semifabricatului;

    - plasarea semifabricatului în universalul masinii-unelte;

  • Limbaje de Programare a Robotilor Industriali

    22

    - piesele prelucrate sunt preluate de robotul 2 si depuse în cutii unde are

    loc ambalarea.

    Desi nu exista o metodologie unica de robotizare a unei aplicatii pot fi

    totusi puse în evidenta cateva etape mai importante:

    1. Analiza operatiilor care trebuie executate , stabilirea celor care pot

    fi robotizate si determinarea structurii celulei robotizate( avand în vedere

    datele aplicatiei s-a ajuns la concluzia ca sunt necesari doi roboti , o masina-

    unealta cu comanda numerica si o banda transportoare).

    2. Alegerea robotilor în functie de diferite criterii:

    numarul de grade de libertate impus de complexitatea miscarilor ce trebuie

    executate;

    dimensiunile volumului de operare;

    performantele referitoare la precizii, viteze si acceleratii, forte de strangere,

    e.t.c.;

    modul de programare si limbajul utilizat care trebuie sa fie cat mai simple dar

    sa corespunda totusi operatiilor ce trebuie executate;

    pretul de cost, amortizarea , e.t.c.;

    3. Definirea si stabilirea modului de amplasare al utilajelor ( roboti,

    masini-unelte, banda) care are în vedere :

    - accesibilitatea efectuarii miscarilor impuse robotilor;

    - spatiul liber si minimizarea riscului de coliziuni intre elementele aflate în

    miscare în celula robotizata;

    4. Definirea necesarului si apoi a mijloacelor de comunicare dintre

    sistemele de conducere ale echipamentelor din celula; se urmareste:

    - natura si modul de distributie al mesajelor;

    - oportunitatea unei retele locale de comunicatie;

    - posibilitatea integrarii intr-un flux informational la nivelul sectiei sau al

    intreprinderii.

  • Limbaje de Programare a Robotilor Industriali

    23

    5. Programarea robotilor si a masinilor-unelte. Sarcinile pot fi descrise

    prin relatii geometrice intre elementele terminale ale robotilir si pozitia anumitor

    puncte de lucru , prin elemente geometrice(puncte, drepte, plane). în principal,

    descrierea sarcinilor trebuie sa contina:

    - puncte: descrise fie în spatiul coordonatelor operationale, fie în spatiul

    coordonatelor articulatiilor robotului;

    - traiectorii: vor fi multimi de puncte ce trebuie atinse succesiv în

    miscarea robotului;

    - miscari: se obtinprin asocierea traiectoriilor la diferite momente de timp;

    - interactiuni cu mediul( efectuarea operatiilor de apucare cu o anumita

    forta, efectuarea operatiei de ambalare).

    Fiecare din etapele enumerate mai sus pot fi realizate în diferite feluri ceea

    ce arata ca modul de robotizare al unei aplicatii nu este unic. De exemplu,

    structura celulei de lucru poate fi alta,amplasarea utilajelor, maniera în care sunt

    definite sarcinile si în care se alcatuiesc programele poate fi diferita.

    Alta posibilitate de robotizare a unei aplicatii o reprezinta utilizarea

    sistemelor CAD, care , prin intermediul unor elemente specifice de modelare,

    analiza si optimizare , permit:

    - definirea si organizarea elementelor dintr-o sectie de productie;

    - implementarea si compararea diferitelor modele de roboti pentru

    realizarea unor sarcini date ( modele disponibile intr-o biblioteca);

    - programarea practica a miscarilor si verificarea prin simulare a

    comportamentului robotilor, determinarea interferentelor co mediul respectand

    restrctiile geometrice, cinematice, si dinamice,evolutia în timp.

    C. Utilizarea informatiilor senzoriale în programarea

    robotilor industriali

    În aplicatia prezentata în capitolul 1.2 pot fi puse în evidenta mai multe

    tipuri de senzori prin intermediul carora robotii isi pot desfasura activitatea:

  • Limbaje de Programare a Robotilor Industriali

    24

    1. Senzori de pozitie: sunt situati în articulatii si prin intermediul

    informatiilor lor se pot determina în orice moment pozitiile structurii mecanice a

    robotului;

    2. Senzori de vedere: cu ajutorul informatiilor provenite de la camera TV

    se determina pozitia si calitatea obiectelor de lucru;

    3. Senzori tactili si/sau senzori de forta: sunt dispusi în incheietura

    terminalului sau pe bacurile terminaluluisi permit efectuarea operatiei de

    apucare sau de depunere.

    Integrarea informatiilor senzoriale în buclele de comanda ale robotilor

    permit efectuarea unor sarcini în universul partal cunoscut sau bine cunoscut în

    care exista impotante incertitudini. Unele din aceste informatii pot fi utilizate

    direct de sistemul de comanda al robotului, dar i majoritatea cazurilor, ele sunt

    interpretate prin intermediul sistemului de programare caruia i se impun, din

    acest punct de vedere, doua mari cerinte:

    - sistemul de programare trebuie sa dispuna de "mecanisme" speciale de

    intrare/iesire pentru achizitionarea datelor de la senzori; acest lucru este rezolvat

    simplu în cazul limbajelor de programare de nivel inalt care au incluse

    instructiuni speciale pentru lucrul cu senzori.

    - sistemul de programare trebuie sa dispuna de "mecanism" de control

    versatile, cum ar fi controlul fortei, pentru utilizaea informatiei senzoriale în

    vederea determinarii miscarii robotului. Nevoia de specificare a parametrilor

    pentru miscarile bazate pe senzori reprezinta o puternica motivatie pentru

    utilizarea unor limbaje complexe de programare.

    Dupa cum s-a aratat mai sus, senzorii sunt utilizati în diferite scopuri în

    programarea robotilor, fiecare scop conducand la anumite cerinte impuse

    proiectarii sistemelor de programare.

    Exista cateva tipuri de "mecanisme senzoriale" care ar trebui incluse în

    sistemele de programare:

  • Limbaje de Programare a Robotilor Industriali

    25

    1. initierea sau terminarea unei miscari.Multe sisteme de programare

    dispun de instructiuni pentru asteptarea unui semnal binar extern inainte de

    lansarea în executie a unei proceduri. Aceasta facilitate este utilizata pentru

    sincronizarea robotilor cu alte utilaje.

    Exemple: - preluarea unor obiecte de pe banda transportoare se face în

    momentul în care acestea au ajuns în dreptul unui anumit limitator;

    - închiderea dispozitivului de apucare se face pana în momentul

    în care un micro întrerupator este "facut", ceea ce îndica realizarea contactului

    dinte terminal si obiectul de lucru.

    2. Alegerea între diferite actiuni. Daca pozitiile în care trebuie sa

    ajunga robotul pentru a desfasura operatiile impuse sunt bine precizate la nivelul

    programulu, strategia( prin care se intelege modul în care se executa deplasarile

    avand în vedere interactiunile cu mediul ) rezulta din evaluarea informatiilor

    senzoriale percepute. Exemplu: - efectuarea operatiei de plasare a unui oboect intr-un orificiu: terminarea operatiei depinde de rezultatele evaluarii erorilor de la senzorii de forta amplasati

    la incheietura dispozitivului de apucare.

    Rezulta ca sistemul de programare trebuie sa dispuna de mecanisme de

    achizitie a datelor de la diferite sisiteme senzoriale( forta, pozitie, vedere) sa

    execute calcule si sa ia decizii în functie de rezultate.

    3. Identificarea, pozitionarea si determinarea anumitor trasaturi ale

    obiectelor de lucru, ceea ce presupune utilizarea unor sisteme de vedere.

    Exemplu: - cu ajtorul camerei TV se poate determina pozitia obiectului

    de lucru functie de care se executa pozitia si orientarea terminalului robotului

    pentru apucare.

    La nivelul sistemului de programare trebuie sa existe acele facilitati, acele

    mecanisme care, pe baza informatiilor de vedere, sa fie capabile sa determine

    distante, pozitii.

  • Limbaje de Programare a Robotilor Industriali

    26

    Identificarea obiectului presupune compararea informatiei provenite de la

    senzorii de vedere cuo baza de date. Aceasta identificare se poate face la nivelul

    robotului sau la alt nivel, ceea ce presupune includerea în sistemul de

    programare a unpr posibilitati de comunicatie cu alte calculatoare unde se afla

    baza de date.

    4. Miscarea adaptiva sau controlul continuu pe baza informatiei

    senzoriale achizitionate de asemenea continuu.

    Miscarile si eventual secventierea lor sunt deduse:

    - prin interactiunea directa dintre robot si mediu ca în cazul miscarilor

    complexe sau ale miscarilor coordonate ale mai multor roboti;

    - prin tratarea complexa a informatiilor proximetrice multidimensionale.

    Concluzionând, putem spune ca integrarea informaţiilor senzoriale

    permite determinarea prin mijloace de complexitate medie sau crescuta a:

    - conditiilor de executie;

    - situatiilor de asteptare;

    - drumurilor sau traiectotiilor ce trebuie parcurse;

    - secventelor de miscari ce trebuie realizate.

    D. Sistemele de programare si sistemele de comanda ale

    roboţilor industriali

    Una dintre tendintele actuale care se refera la proiectarea si realizarea R.I.

    o reprezinta disocierea operatiilor de programare a sarcinilor care trebuie sa fie

    executate, de operatiile de comanda si control ale structurii mecanice care

    realizeaza aceste sarcini. în acest sens, putem pune în evidenta următoarea

    structură:

    Din punct de vedere funcţionare, sistemul de comandă poate fi împărţit pe

    următoarele nivele:

  • Limbaje de Programare a Robotilor Industriali

    27

    1. Nivelul de bază: coordoneaza activitatea la nivelul articulatiilor fiind

    cel care realizeaza traiectoriile de miscare si care interpreteaza informatiile de

    pozitie si de viteza;

    2. Nivelul al doilea este cel la care se fac transformari de coordonate si se

    stabilesc acele informatii necesare generarii traiectoriilor, informatii care sunt

    apoi furnizate nivelului 1.

    3. Nivelul al treilea, cel mai inalt, este cel la caresarcinile ce trebuie

    executate de robot trebuie impartite în miscari distincte care trebuie executate la

    nivelul 1 de fiecare axa; tot la acest nivel , se efectueaza calcule matematice, se

    implementeaza algoritmi, se realizeaza teste, se asigura sincronizarea miscarilor

    intre ele sau cu alte canale de intrare, se realizeaza interfata cu sistemul de

    intrare/iesire.

    Se cauta tot mai mult obtinerea unei autonomii sporite a sistemului de

    comanda fata de sarcinile referitoare la planificarea miscrilor, la corectarea

    anumitor erori de miscare. în paralel cu aceasta autonomie, pentru a fi

    competitive din punct de vedere al preţului, multe din sistemele actuale au doar

    primele doua sisteme functionale si uneori numai primul nivel. Pentru a fi

    compatibile si cu toate aceste sisteme de comanda , sistemele de programare

    (S.P) trebuie sa permita descrierea sarcinilor fie la nivelul articulatiilor, fie la

    nivelul coordonatelor operationale, fie chiar la nivel de obiect sau obiectiv.

    Legatura dintre sistemul de programare si cel de comanda se realizeaza prin

    intermediul unei informatii codate care poate fi implicita, cand se refera la

    generatorul de traiectorii, sau explicita cand, de exemplu, se dau anumite pozitii,

    anumite forte de strangere.

    Concluzii:

    Aceasta tendinta de separare a sarcinilor si de utilizare a doua sisteme,

    unul de programare si unul de comanda, conduce laurmatoarele avantaje:

  • Limbaje de Programare a Robotilor Industriali

    28

    - efectuarea operatiilor de programare se poate executa în paralel cu

    miscarea robotului; dupa ce un anumit program de lucru a fost definitivat si

    transferat în sistemul de comanda, în sistemul de progreamare se poate edita si

    definitiva un nou program pentru sarcinile ulterioare;

    - Acelasi S.P. poate fi utilizat pentru mai multi roboti, pentru transferul

    programului în cadrul mai multor sisteme de comanda. Utilizarea unui S.P. la

    mai multe tipuri de sisteme de comanda este posibila datorita uniformizarii

    codului de transfer al informatiei;

    - Avand ca obiect doar definitivarea programului, S.P. poate dispunede o

    structura mai complexa - exista astfel S.P. care dispun de simulatoare grafice

    pentru verificarea si corectarea miscarilor robotilor prin optimizare care

    urmarescindeplinirea anumitor indicatori de performanta( timpi de executie,

    consum de enegie).

    - La nivelul S.P. au fost implementate limbaje de programare de nivel tot

    mai ridicat, care, utilizand elemente de inteligenta artificiala , rezolva sarcini tot

    mai complexe cum ar fi asamblarea automata, conducerea adaptiva, lucrul în

    acelasi spatiu de operare a mai multor roboti cu evitarea sarcinilor si

    coordonarea miscarilor, e.t.c.

    E. Descrierea sarcinilor pe care trebuie să le realizeze

    roboţii industriali

    Descriera unei sarcini ( task ) poate fi exprimata în termenii actiunii robotului

    asupra mediului în care opereaza si determina evolutia în timp:

    - daca aceasta evolutie este cunoscuta apriori se va descrie o succesiune

    de actiuni. Realizarea acestor actiuni (deplasari, operatii cu obiecte ) poate fi

    analizata în termenii "succesului" sau "esecului". Daca se ia în consideratie si

    esecul(detectia unui obstacol, pierderea unui obiect transportat) trebuie inclus în

    descrierea de solutii alternante , adaptive. Daca nu, toate actiuniletrebuie sa

    serealizeze cu succes;

  • Limbaje de Programare a Robotilor Industriali

    29

    - în caz contrar, va fi un S.P. care va determina actiunile care vor trebui

    executate de robot pentru a realiza sarcinile impuse.

    Practic, pot fi puse în evidenta doua tipuri de descriere a sarcinilor:

    1. Descrierea spatio-temporala, numita si descriere la nivelul manipularii

    unde se pot identifica doua subnivele de programare:

    - programare la nivelul actionarii ( articulatiei );

    - programare la nivelul efortului ( în spatiul sarcinilor);

    2. Descrierea fractionala, numita si descrierea la nivelul sarcinii unde, de

    asemenea exista doua subnivele:

    - programare la nivelul obiectului (actiuni simbolice cu obiecte);

    - programare la nivelul obiectivului(ajungerea în anumite stari dorite);

    In continuare vor fi analizate caracteristicile descrierilor sarcinilor pentru

    fiecare din cele patru nivele de programare.

    1. Descrierea la nivelul actionarilor

    Coordonatele generalizate qi (sau coordonatele interne generalizate) ale

    unui robot, sunt deplasarile liniare sau unghiulare care se realizeaza la nivelul

    articulatiilor i din structura mecanica a robotului.

    q Qi n unde

    n- numarul articulatiilor dintr-o structura;

    Q- spatiul coordonatelor interne sau spatiul manipulatorului;

    In spatiul Qn o traiectorie C este apecificata printr-o suita ordonata de "p"

    vectori de coordonate interne qi :

    C=( q1q2,...,qp)

    Fiecarui segment q q qi i i 1 ii este asociata o viteza (deplasarea C(t))

    care este în general un procent din viteza maxima articulara:

    a axelor care se deplaseaza simultan (când mişcările manipulatorului sunt

    coordonate);

  • Limbaje de Programare a Robotilor Industriali

    30

    a axei comandate ( cand miscarea se face succesiv pe fiecare axa ).

    Legea de comanda - daca exista- permite determinarea perioadei de timp

    în care se parcurge un segment tinand cont de restrictiile cinematice de viteza si

    acceleratie ( , max maxq q ).

    a) Traiectoria punct cu punct

    Traiectoria manipulatorului intre extremitatile segmentului trebuie

    determinata astfel incat sa se obtina anumite variatii de viteza si acceleratie în

    punctele de plecare si de oprire. De asemenea, pentru comanda si realizarea

    deplasarii intre punctele qi si qi+1 se face o impartire a intregului segment în

    distante comparabile cu deplasarile maxim admisibile qi de la nivelul

    articulatiilor intr-o perioada de esantionare dt a sistemului de conducere. în acest

    caz, pentru ajungerea la o anumita cota, se va introduce o frânare prin

    diminuarea deplasarilor qi în aproprierea punctului final.

    Pentru controlul evolutiei variabileleor q si q exista mai multe metode

    care utilizeaza modele analitice de evolutie q(t) si care se realizeaza în principal

    prin interpolare poinomiala sau trigonometrica.

    b) Traiectorii cu restrictii

    Daca configuratiile qi si qi+1 sunt apropiate, traiectoria urmata de robot

    este în general robusta din punct de vedere al variatiilor de viteza sau de sarcini

    transportate. Pe de alta parte, introducerea de puncte intermediare devine

    indispensabila atunci cand ne referim la deplasari mari sau cand intervin diverse

    perturbatii, cum ar fi cele de origine dinamica; acestea se numesc traiectorii cu

    restrictii.

    Aceste puncte de trecere cu viteza diferita de zero sunt introduse prin

    programare. Prin ele se realizeaza, de exemplu, esantionarea traiectoriilor

    carteziene cand descrierea sarcinilor sunt transferate la nivelul actionarii.

  • Limbaje de Programare a Robotilor Industriali

    31

    Din punct de vedere al programarii, este important sa se cunoasca cum

    sunt interpretate aceste ordine, acele puncte, de catre generatorul de traiectorii al

    controlerului. De exemplu, daca se alege drept criteriu de performanta

    minimizarea timpului de parcurs, atunci:

    - traiectoria generala trebuie sa treaca exact prin aceste puncte

    intermediare introduse;

    - continuitatea vitezelor q.i si a acceleratiilor q..i în aceste puncte este

    asigurata prin cmanda ( desi mecanismele de transmitere a miscarii actioneaza ca

    niste filtre naturale, ele nu sunt suficiente pentru a obtine un raspuns amortizat

    convenabil).

    Pentru generarea traiectoriilor se pot utiliza:

    1. Metoda prin care se determina un polinom de grad minim care trece

    prin toate punctele traiectoriei si respecta, verifica, conditiile de viteze si

    acceleratii. Aceasta metoda numita si interpolare globala sre doua dezavantaje

    mari:

    - gradul polinomului necesar creste cu numarul configuratiilor;

    - introducerea unui nou punct sau modificarea unei configuratii impune

    determinarea unui nou polinom( lucru dificil cand aceste modificari se fac on-

    line).

    2. Metoda interpolarii pe tronsoane la care se determina cate un polinom (

    de grad maxim 4 ) pentru fiecare pereche de puncte.

    3. Metoda lui Paul, de ordinul II , care utilizeaza interpolarea liniara si

    tranzactii parabolice si care este cel mai frecvent utilizata.

    Reprezentarea sarcinilor în spatiul articulatiilor prezinta cateva avantaje

    cu privire la generarea traiectoriilor:

    nu sunt depasiri ale restrictiilor de viteze si acceleratii;

    se cunosc exact limitele articulatiilor ;

    nu sunt singularitati care trebuie transformate;

  • Limbaje de Programare a Robotilor Industriali

    32

    rapiditate;

    permite rezolvarea anumitor situatii ( de exemplu, alegerea configuratiilor)

    prin intermediul sistemului de programare.

    In schimb, aprecierea situatiilor în spatiul articulatiilor este destul de

    dificila cand structurile contin mai mult de trei axe si analiza se face la nivelul

    sistemului de programare.

    2. Descrierea în spatiul sarcinilor în general se cauta sa se realizeze o descriere a miscarii robotului în

    spatiul operatoinal Rm deoarece:

    - descrierea spatiului si a pozitiei obiectelor în vederea manipularii lor

    este mult mai simpla în acest spatiu decat în Qn ( de exemplu, pozitia unui punct

    în sistemul cartezian R3 este data doar de trei coordonate);

    - spatiul Rm este un spatiu afin euclidian ceea ce semnifica faptul ca

    evolutia poate fi descrisa intr-o maniera unica si continua;

    - sarcinile sunt descrise intr-un sistem de referinta care nu este legat de

    robot. Sarcina la nivelul efectorului este portabila , ceea ce insemna ca ea poate

    fi efectuata si de alti roboti sau ca robotul poate fi deplasat fara sa existe

    consecinte în expresia sarcinii;

    - informatiile provenite de la sistemul exterioreceptiv ( camere TV,

    senzori de forte, e.t.c.) solidar cu spatiul de operare, sunt mereu exprimate în

    termenii unor distante, proiectii sau componente în Rm. Doar senzorii

    proprioreceptivi , legati de articulatii, dau informatii simple în Qn.

    In schimb, este destul de dificil a defini o metoda care tine explicit cont de

    redundanta robotului în raport cu o anumita sarcina.

    3. Evolutia pozititei si orientarii efectorului Obs.: în loc de pozitie si orientare se utilizeaza des termenul de situatie.

  • Limbaje de Programare a Robotilor Industriali

    33

    Programarea deplasarilor în spatiul situatiilor necesita o descriere

    geometrica a traiectoriei C=(p1, p2, ..., pn); (vom vorbi de traiectoria operationala

    a efectorului). Aceasta descriere poate fi completata cu o lege functie de timp

    sau cu restrictii cinematice ale punctelor intermediare pi. De asemenea , daca

    parametrul timp este specificat explicit, se poate defini miscarea operationala

    sub forma :

    C(t)=(p1(t), p2(t), ... , pn(t))

    a) Utilizarea legaturilor mecanice Utilizarea legaturilor mecanice permite definirea relatiilor ce se stabilesc

    intre sistemul de referinta asociat terminalului robotului si entitatile geometrice

    ce caracterizeaza spatiul de operare. Acestea vor permite reprezentarea

    restrictionarii gradelor de libertate ale situatiei atinse( pozitiv, de exemplu).

    b) Descrierea traiectoriilor operationale Daca nici o restrictie cinematica nu este atasata descrierii geometrice a

    sarcinii, legea de miscare rezultanta este obtinuta aposteoric în functie de

    metodele de generare ale traiectoriilor utilizate de sistemul de comanda. în acest

    caz, daca esteexecutabila, traiectoria va fi parcursa în timp minim , singurele

    restrictii fiind limitele maxime ale vitezelor q.max si acceleratiilor q..max din

    articulatii:

    (1) Traiectorii libere

    Traiectoria C este numita libera sau punct cu punct, daca descrierea se

    rezuma la o situatie ce trebuie atinsa. Traiectoriile libere sunt utilizate în cazul

    miscarilor grosiere, de mare amplitudine , sau cand se cauta optimizarea

    timpului de parcurs.

  • Limbaje de Programare a Robotilor Industriali

    34

    (2) Traiectorii cu restrictii

    In majoritatea cazurilor se cauta controlarea traiectoriei efectorului în mod

    continuu (traiectorii analitice) sau punctual (puncte de trecere). Aceasta va

    permite :

    1) Limitarea riscului de ciocnire :

    daca exista cai comtinue, în spatiul Qn, libere de coliziuni;

    daca toate gradele de libertate ale robotului sunt fixate prin pozitita si

    orientarea efectorului;

    daca este posibil ,in cazul descrierii sarcinii , sa se impuna o anumita

    configuratie a manipulatorului , dintre mai multe posibile;

    Atunci este posibil sa se descrie un drum liber printr-o traiectorie continua în

    Rm.

    2) Realizarea unor miscari care sa raspunda precis restrictiilor de pozitie

    si/sau orientare de-a lungul parcursului efectuat.

    Descrierea traiectoriilor cu restrictii se poate face :

    1) Prin specificarea punctelor de trecere în spatiul operational;

    2) Prin specificarea interpolarii liniare sau circulare a situatiei în care

    traiectoria este esantionata:

    - fie prin incrementi constanti (xp, x0); (pozitie si orientare) intre

    situatia initiala si cea finala;

    - fie prin metoda liniarizarii lui R. Taylor care presupune divizarea

    repetată a segmentului rectiliniu ce trebuie parcurs , pana este satisfacut un

    anumit criteriu cum ar fi abaterea de la traiectorie; se cauta astfel ca numarul

    punctelor de trecere sa fie crescut numai în zonele în care mici variatii q

    conduc la variatii imprtante x.

    Concluzia: - daca traiectoria este exprimata analitic , atunci sistemul de

    programare trebuie sa o transforme numeric în elemente de deplasare admise de

    sistemul de control ( puncte de trecere sau segmente interpolate).

  • Limbaje de Programare a Robotilor Industriali

    35

    c) Miscari în spatiul operational Se poate face o analogie intre traiectoriile si miscarile din spatiul

    operational (spatiul sarcinilor pe care trebuie sa le realizeze robotul) cu ceea ce a

    fost prezentatmai sus pentru spatiul ariculatiilor:

    O deplasare C(t) rezulta prin asocierea unei legi de timp la o traiectorie C,

    punct cu punct sau cu restrictii. Generarea unei traiectorii în spatiul operational

    presupune definirea unor parametri de viteza si acceleratie în spatiu, maxim

    admisi , liniari si unghiulari legati de sistemul de referinta asociat terminalului.

    Controlul evolutiei vitezei instantanee , atat liniare cat si unghiulare, se

    realizeaza cu modelul variational ( diferential):

    dxdt

    J qdqdt

    unde J(q) reprezinta Jacobianul structurii mecanice.

    Observatie - deoarece legatura dintre incrementul Dx al situatiei si

    traiectoriei este x x C t t , rezulta ca valabilitatea modelului de mai

    sus este legata direct de perioada de eşantionare.

  • Limbaje de Programare a Robotilor Industriali

    36

    III. Elemente de bază ale limbajelor de programare a roboţilor industriali

    A. Introducere în tematica limbajelor de programare a

    roboţilor industriali

    După cum s-a observat din problematica abordată în capitolele anterioare

    limbajele de programare prezintă o serie de particularităţi, care aplicate în cadrul

    structurilor robotice se concretizează în limbaje de sine statătoare care

    înglobează elementele definitorii ale ambelor domenii: limbajele de programare

    destinate structurilor de calcul, respectiv structurile mechatronice de tip roboţi

    industriali.

    Programarea roboţilor se poate realiza prin mai multe metode care să nu implice

    obligatoriu utilizarea unui limbaj de programare. Dintre acestea se amintesc:

    a) programarea manuală - în care se precizează succesiunea mişcărilor prin

    intermediul unor elemente senzoriale care definesc momentul opririi

    deplasării

    b) programarea prin instruire - robotul este deplasat în punctele dorite de către

    programator fără acţionarea motoarelor structurii robotice

    c) programare secvenţială - este o programare prin instruire realizată cu

    acţionarea motoarelor structurii robotice.

    d) programarea master-slave - este o programare prin instruire care utilizează

    un model ce este învăţat traiectoria, pentru ca apoi programul să fie transferat

    master-ului

    Singura procedură de programare care implică utilizarea unui limbaj de

    programare dedicat este procedura de programare prin învăţare - teach in

    procedure. Avantajele acestei metode sunt materializate prin opţiuni privind:

    viteza de mişcare

    durata mişcării

    programarea întârzierilor

  • Limbaje de Programare a Robotilor Industriali

    37

    bucle de program simple

    programe simple cu ramificaţii depinzând de întreruperi, semnale primite

    de la senzori

    funcţii speciale

    Cum s-a prezentat în capitolul I, un limbaj de programare trebuie să dispună de

    un univers natural propriu.Astfel pentru programarea teach-in va trebui să existe

    date de tip numeric precum şi un set minimal de tip text. Fiecare funcţie poate fi

    introdusă prin intermediul unei chei speciale, taste care pot fi reprezentate printr-

    un şir de caractere care alcătuiesc un simbol. Simbolurile utilizate de un limbaj

    de programare alcătuiesc vocabularul limbajului, regulile gramaticale care

    permit combinaţii între elementele vocabularului alcătuiesc sintacsa, iar

    semnificaţia simbolurilor şi a combinaşiei acestora alcătuieşte semantica

    limbajului. Organizarea limbajului poartă numele de pragmatică.

    Exemplu: Fie un vocabular format din următoarele simboluri:

    V={limbaj,student,este,complex,blond,brunet,dificil}.

    Regulile de sintaxă sunt:

    a) trei elemente ale vocabularului alcătuiesc o propoziţie

    b) primul element al propoziţiei trebuie să fie Limbaj sau Student

    c) al doilea element al propoziţiei trebuie să fie este

    d) al treilea element al propoziţiei este unul dintre simbolurile: complex, blond,

    brunet,dificil.

    Utilizând aceste reguli propoziţiile posibile sunt:

    Limbajul este

    complexdificilblondbrunet

    . respectiv Studentul este

    complexdificilblondbrunet

    . Datorită semnificaţiei în

    limba română se observă, eliminând sensurile indirecte, că ultima regulă trebuie

    prelucrată sub forma:

    d) al treilea simbol al propoziţiei este:

  • Limbaje de Programare a Robotilor Industriali

    38

    dacă primul element este Limbaj atunci al treilea element este complex sau

    dificil

    dacă primul element este Student atunci al treilea element este blond,

    dificil sau brunet.

    Se observă ca unele simboluri depind puternic de context influenţând total

    semantica propoziţiei. În continuare vor fi prezentate caracteristicile limbajelor

    de programare pentru sistemele de calcul cu particularităţile pe care le prezintă

    în cazul roboţilor industriali.

    B. Elemente caracteristice limbajelor de programare destinate structurilor de calcul

    În cadrul limbajelor de programare se disting clar câteva categorii de

    elemente care intră în alcătuirea limbajului. Dintre acestea se pot aminti:

    * simbolurile limbajului

    * cuvintele simbol

    * date de tip obiect ( care au o anumită semnificaţie în funcţie de

    context)

    * structurile de date

    * operaţiile asupra datelor

    * algoritmul.

    Dacă această clasificare este cuprinzătoare din punct de vedere funcţional,

    în cele ce urmează se vor prezenta elementele unui limbaj clasic de programare ,

    din punctul de vedere al utilizatorului, sau mai corect din punct de vedere

    conceptual:

    1. Variabilele

    a) Introducere Acest concept s-a impus în robotică, în special, datorită informaţiilor

    preluate de către senzori (realizându-se astfel achiziţia informaţiei de mediu,

  • Limbaje de Programare a Robotilor Industriali

    39

    oferită de către senzori), respectiv datorită informaţiilor prelucrate de către

    arhitectura de comandă şi control a robotului.

    O variabilă este deci identificată printr-un nume şi aparţine unui

    anumit tip simplu, implicit limbajului de programare (logic, aritmetic, cuvänt)

    sau unui tip compus definit de programator. Ca orice dată folosită de un

    calculator o variabilă dispune de o adresă a variabilei şi conţinutul acesteia.

    Din punct de vedere al rapidităţii de execuţie a programului se

    preferă pentru adresare, adresarea relativă, generându-se un tabel de simboluri în

    care intră numele variabilelor şi adresele relative ale acestora. Contorizarea

    acestora se face pe baza unui numărător care este incrementat la fiecare

    introducere a unei noi variabile cu numărul de biţi necesari memorării variabilei

    de tipul respectiv. Exemple: Instrucþiune Lungime

    instrucþiune Nume Adresă relativă

    unu, p1: INTEGER; 2 byti unu 0 total, pozitie: REAL; 14 byti p1 2

    total 4 poziþii 8

    Un alt tip de variabile este cel al variabilelor tabelare sau tip bloc. Acest

    tip, mai ales pentru limbajele de programare a roboţilor, este deosebit de des

    întâlnit şi oferă o compactitate deosebită programelor, precum şi o economie de

    memorie.

    Exemple: MOVE (63, 56.5, 33.8, 26,45,5) sau

    VAR P1: FRAME (structuri de 6 valori)

    MOVE P1

    O structură particulară de variabile este stiva. Aceasta este

    constituită dintr-un masiv de memorie în care datele sunt înscrise după

    procedura LIFO (Last in, first out). Dacă o dată este introdusă (push) în stivă,

  • Limbaje de Programare a Robotilor Industriali

    40

    pointerul este decrementat şi apoi data este introdusă. Extragerea se face prin

    citirea datei şi incrementarea pointerului - pop.

    Un alt tip particular de variabilă este coada care este opusul stivei, ea fiind

    o colecţie de date de tip FIFO.

    b) Evoluţia variabilelor de-a lungul programului Datorită programării structurate, care este utilizată şi ín robotică se

    pune problema valabilităţii, vieţii, variabilelor de-a lungul programului. Astfel

    un program poate să conţină variabile generale a căror definire are sens de-a

    lungul întregului program, cät şi variabile locale care au sens numai între

    începutul (begin) şi sfärşitul (end) unui bloc component al întregului program.

    Cum după părerea autorului, o explicaţie grafică este mult mai clară, figura

    următoare, exemplifică cele afirmate în cadrul acestui subcapitol.

    BEGIN “ bloc 1 “ VAR a: INTEGER; v: VECTOR;

    .

    .

    .

    BEGIN “ bloc 2 “ VAR c,b : INTEGER;

    .

    .

    . END “ bloc 2 “

    .

    .

    . END “ bloc 1 “

    Un alt avantaj al programării structurate este datorat alocării

    dinamice de memorie prin separarea programului în blocuri componente. Astfel,

    dacă este apelat blocul 1, la terminarea operaţiilor specifice, variabilele din acest

    a,v - valid

    c - valid b - valid

  • Limbaje de Programare a Robotilor Industriali

    41

    bloc sunt şterse la nivel de memorie alocată şi în acelaşi spaţiu de memorie, sunt

    inserate variabilele altui bloc. Aceasta face ca în cazul în care nu se utilizează

    algoritmi recursivi evaluarea memoriei utilizate să se poată face uşor.

    2. Subrutine Dacă un program prezintă anumite zone care se repetă, eventual cu

    alţi parametrii, se poate utiliza o structură de tip subrutină. Aceasta poate fi

    chemată din orice punct al programului, urmând ca întoarcerea după execuţia

    subrutinei să se facă la instrucţiunea imediat următoare apelului subrutinei.

    Această adresă, adresa de întoarcere este salvată într-o structură de tip stivă,

    alocarea memoriei fiind de asemenea o alocare dinamică.

    Program “ main program “

    declaraţii

    SUBROUTINE 1;

    RETURN “ intoarcerea din prima subrutina ‘

    GOSUB SUBROUTINE 1

    GOSUB SUBROUTINE 1

    Un caz particular de autoapelare a subrutinei este cazul

    recursivitáţii.

    3. Proceduri şi funcţii

  • Limbaje de Programare a Robotilor Industriali

    42

    Ín esenţă o procedură sau o funcţie sunt o extensie a conceptului de

    subrutină, acestea fiind de fapt subrutine cu parametri de intrare şi/sau de ieşire.

    Procedura dispune deci de un nume, de parametru de intrare şi/sau ieşire care

    pot fi transmişi către programul principal şi un corp al procedurii în care se

    efectuează operaţii aritmetico-logice. În corpul procedurii pot fi utilizate şi alte

    variabile interne care la ieşirea din procedură vor fi piedute. O caracteristică

    importantă este dată de faptul că la definirea procedurii, parametrii de

    intrare/ieşire sunt parametri formali urmând ca la înlocuirea lor cu cei din apel

    să devină parametri efectivi. Apelul procedurilor şi funcţiilor diferă de cel al

    subrutinelor în timp ce revenirea este identică.

    În cazul procedurilor, modul în care sunt furnizaţi parametrii de

    ieşire trebuie să fie studiat cu atenţie. Dacă însă operaţiile asupra datelor de

    intrare nu sunt prea complexe, iar ieşirea se face pe o variabilă se apelează la

    conceptul de tip funcţie.

    4. Macroinstrucţiunile

    Ín general acest tip de pseudoprocedură defineşte substituirea unor texte

    sau tablouri. Structura standard cuprinde o definiţie a macro-ului, mai precis

    alocarea unui nume setului care va fi substituit şi un corp al macro-ului ce

    defineşte o secvenţă de caractere sau apelul la alte ,,macro-uri. Apelul unei

    macroinstrucţiuni se face prin numele ataşat care are ca efect înlocuirea acestuia

    cu corpul macroinstrucţiunii. Exemple: DEFINE inch = # * 2.54 * cm # ;

    distance := base + 35 inch; { echivalent cu distance:=base + 35 * 2.54

    cm;}

    5. Recursivitatea Distingem două tipuri de recursivitate:

  • Limbaje de Programare a Robotilor Industriali

    43

    * recursivitate directă - când are loc autoapelarea procedurii

    * recursivitatea indirectă - când o procedură apelează o altă procedură în

    timpul execuţiei sale, procedură care la rândul

    său o apelează pe prima.

    În robotică nu se apelează prea des la acest tip de algoritm, însă folosirea

    acestei metode duce la realizarea unor programe mult mai compacte. Exemple:

    Procedura A

    Call A

    recursiv

    Procedura A Call B

    Procedura B Call A

    Call A

    Call A

    Recursivitate directă Recursivitate indirectă

    6. Procese şi corutine Ín cadrul unui program pot fi controlate mai multe procese, între care

    poate există o anumită relaţie temporală sau interdependentă.

    Astfel un proces poate fi:

    * în stare inactivă -dormant state - când procesul poate fi declanşat fie

    de alt proces, fie de un eveniment extern. Acesta poate fi executat sau nu

    în paralel cu alt proces sau poate aştepta terminarea altui proces.

    * în stare activă când este executat;

  • Limbaje de Programare a Robotilor Industriali

    44

    * în stare ready - starea premergătoare stării active şi post active;

    * în stare de aşteptare a unui eveniment - waiting

    Corutinele sunt imagini ale planificării proceselor la nivelul sistemului de

    operare. Acestea pot fi declanşate în serie sau în funcţie de comenzile de

    întrerupere generate.

    Figure 11

    Figure 12

  • Limbaje de Programare a Robotilor Industriali

    45

    Datorită acestora, cât şi a modului în care procesele trebuie

    să aibă loc apare termenul de sincronizare şi implicit de variabile de

    sincronizare. Acestea prin aprinderea (activarea) lor (mai poartă numele

    de steaguri-flag sau semafor) sesizează unui alt proces faptul că procesul

    urmărit de respectiva variabilă s-a terminat sau a început, urmând ca alt

    proces să fie iniţializat, pus în stare de aşteptare sau terminat.

    C. Conceptele specifice Limbajului Robot

    Robotica s-a impus şi se impune ca un domeniu aparte în ştiinţă situându-se

    la graniţa dintre mai multe discipline: mecanică, electronică, automatică,

    programare. Această poziţie implică revendicarea unor termeni specifici care să

    permită:

    1. o mai uşoară operare şi programare pentru operator;

    2. o apropiere cât mai strânsă cu programarea clasică;

    3. reducerea complexităţii în cazul dezvoltării sistemului.

    Specificul limbajelor de programare a roboţilor este acela că obiectele cu care

    acesta operează se află într-o lume reală, în care distanţele, poziţiile şi orientarea

    sunt elemente de bază. Aceste cerinţe au implicat o serie de particularităţi şi

    termeni specifici.

    1. Sistem de referinţă - Frame

    Orientarea şi poziţia end-effectorului şi a întregii arhitecturi robotice este

    definită ca fiind poziţia robotului respectiv orientarea acestuia. Acestea sunt

    z

    x

    yx

    zy

    Trans

    latie

    Rotatie

    Figure 13

  • Limbaje de Programare a Robotilor Industriali

    46

    definite în funcţie de un sistem referenţial de bază

    Cum robotul sau anumite elemente ale arhitecturii acestuia sunt în mişcare, se

    pot ataşa sisteme de referinţă fiecări element, orientarea şi poziţia acestuia

    putând fi exprimată fie relativ la bază, fie la elementul inferior. Desigur ca cea

    de-a doua formă duce la o exprimare relativă, care prin compunere o poate

    genera pe cea referitoare la baza sistemului.

    Algoritmul Denavit-Hartenberg, transformările relative de bază, operatorul

    omogen şi câteva exemple ale folosirii acestora sunt prezentate în [12,13,14,15].

    Din punctul de vedere al poziţionării robotului, modul de definire al punctului

    ţintă (dorit) nu are prea multă relevanţă, deoarece comanda robotului se face la

    nivel de articulaţie. Pentru astfel de comandă este necesară determinarea

    corelaţiei care trebuie să existe între coordonatele robot ce trebuiesc alocate

    fiecărei articulaţii şi poziţia şi orientarea finală. Această corelaţie poartă numele

    de cinematică inversă şi este prezentată şi exemplificată în [15,16,19].

    2. Controlul mişcării robotului

    Deplasarea robotului între două puncte se poate realiza fie direct, cu viteza

    maximă cum este cazul controlului punct cu punct, fie prin puncte intermediare

    care definesc fie o dreaptă sau o curbă continuă de diferite ordine.

    Acest ultim caz se realizează utilizând diverse metode de interpolare: liniară,

    circulară sau parabolică. La rândul ei interpolarea se poate realiza fie la nivelul

    articulaţiilor robotului, fie la nivelul sistemului cartezian. Diversele modalităţi

    de interpolare şi traiectoria rezultantă pentru un robot cu două articulaţii de

    rotaţie sunt prezentate în figurile următoare:

  • Limbaje de Programare a Robotilor Industriali

    47

    Figure 14

  • Limbaje de Programare a Robotilor Industriali

    48

    Datorită faptului că acest aspect, al interpolării, îşi găseşte o largă

    aplicabilitate în cadrul programării roboţilor în continuare va fi detaliată

    utilizarea spline function utilizând metoda Ho şi Cook:

    Ecuaţia unui segment spline (de ordin 3) care trece prin două puncte

    intermediare Fk şi Fk+1 (2

  • Limbaje de Programare a Robotilor Industriali

    49

    Utilizând 3 puncte intermediare t, tk+1 şi tk+2 se pot determina vitezele utilizând şi condiţiile de continuitate a acceleraţiilor la sfârşitul primului segment spline (1.7), respectiv la începutul celui de-al doilea segment spline(1.8):

    11

    1

    11

    1

    1

    1

    1431

    2)(32)(26

    62)(

    kkk

    kk

    kkk

    k

    kk

    k

    kk

    FFt

    FFt

    FFt

    FFt

    tBBtF

    1.7.

    21

    2

    12

    23 2

    (322)0( kkk

    kk

    k

    FFt

    FFt

    BF

    1.8.

    Din egalarea celor două ecuaţii (condiţia de continuitate) rezultă: kkkkkk

    kkkkkkkkk FFtFFttt

    FtFttFt

    12

    2122

    121

    211122 ()(3)(2

    1.9.

    Exprimând această ecuaţie pentru 2 3 k n se obţine:

    )()(3

    )()(3

    )()(3

    )(200

    0)(2000)(2

    322

    1212

    212

    342545

    24

    54

    232434

    23

    43

    1

    3

    2

    2121

    4545

    3434

    nnnnnnnn

    nnnnn

    FFtFFttt

    FFtFFttt

    FFtFFttt

    F

    FF

    tttt

    tttttttt

    1.10.

    sau simbolic [A][X]=[B] ([m][F’]=[a]) . Rezolvând ecuaţia 1.10 obţinem toate informaţiile necesare construcţiei segmentelor spline de aproximare a traiectoriei, cu condiţia cunoaşterii condiţiilor la limită ( la inceputul mişcării şi la sfârşitul mişcării). Dacă se utilizează o funcţie spline de ordinul 4 de forma:

    45

    34

    2321)( tBtBtBtBBtF

    1.11. având condiţiile la limită: F F F Fn n' " ' "1 1 0

    1.12. Urmând aceeaşi procedură se obţine:

  • Limbaje de Programare a Robotilor Industriali

    50

    2325

    2242

    2425

    32412

    3

    2

    11

    43)(

    )(

    02)0(0)0(

    )0(

    FtBtBtFFtBtBFtF

    BFBF

    FBF

    1.13.

    respectiv rezolvând acest sistem pentru determinarea lui B4 şi B5:

    232

    2142

    5

    222

    1232

    4

    1)(3

    1)(4

    Ft

    FFt

    B

    Ft

    FFt

    B

    1.14.

    Utilizând condiţiile la limită se obţine:

    2543

    35

    2431

    45

    34

    2311

    12

    11

    12620)(

    4320)(

    )(

    )0()0(

    nnn

    nnnnn

    nnnnnnnn

    n

    n

    tBtBBtFtBtBtBFtF

    tBtBtBtFFFtFFBF

    FBF

    1.15.

    Rezolvând aceste ecuaţii se determină coeficienţii:

    )33(1

    )388(1

    )366(1

    1145

    1134

    1123

    nnnnn

    nnnnn

    nnnnn

    tFFFt

    B

    tFFFt

    B

    tFFFt

    B

    1.16.

    Dacă se pun condiţiile de continuitate a acceleraţiei pentru primele două segmente

    222122

    221222

    225242 )(3

    12)(46126)( FtFFt

    FtFFt

    tBtBtF

    rezultă: )(6)(31)32( 122

    2232

    33

    32

    23

    FFt

    FFt

    Ft

    Ftt

    1.17. Utilizând acelaşi mecanism şi pentru sfârşitul traiectoriei:

    )(6)(31)32( 122121

    21

    11

    nnn

    nnn

    nn

    nnn

    FFt

    FFt

    Ft

    Ftt

    1.18. Sintetizând aceste rezultate de-a lungul traiectoriei se poate forma o

    structură compactă a sistemului care trebuie determinat sub forma 1.19 unde:

  • Limbaje de Programare a Robotilor Industriali

    51

    )(6)(332

    )(6)(1

    1

    32

    122121

    11

    1,1

    1222

    2321

    2,1

    323

    2322

    nnn

    nnn

    nnn

    nn

    nnn

    FFt

    FFt

    att

    M

    FFt

    FFat

    M

    tM

    ttM

    1

    322

    1212

    212

    232434

    23

    43

    1

    2

    3

    2

    1,12,1

    2121

    3434

    2322

    )()(3

    )()(3

    00)(2

    00

    0)(200

    n

    nnnnnnnn

    n

    n

    nnnn

    nnnn

    a

    FFtFFttt

    FFtFFttt

    FF

    FF

    MMtttt

    ttttMM

    1.19.

  • Limbaje de Programare a Robotilor Industriali

    52

    IV. Date şi structuri de date utilizate în cadrul limbajelor de programare a roboţilor industriali(LPRI)

    A. Date utilizate de limbaje de programare a robotilor Aceastá categorie de elemente constituite ale unui limbaj de

    programare alcátuießte baza limbajului. Se poate spune cá un limbaj

    robot este mai evoluat sau mai puternic dacá se pot realiza arhitecturi

    de date care sá permitá utilizatorului o folosire compactá a limbajului sá

    natural, fárá ínsá a elimina rigozitatea pe care o cere arhitectura

    robotului. Un prim exemplu ín íntárirea acestei afirmaþii este zona de

    specificare a elementelor sistemului, ín limbajul SRL. Exemple: SRL: SYSTEM_SPECIFICATION ROBOT: puma600=ROBOT(0); jhrobot =ROBOT(1); EFFECTOR: ringgrip=GRIPPER(0) OF puma600; pargrip =GRIPPER(1) OF jhrobot; SENSOR: visioninfo=CHANNEL(1); STRUCTURE visioninfo=RECORD pantno:INTEGER; x, y:INTEGER END; END_SYSTEM_SPECIFICATION Ín acest prim exemplu se observá cá ín definirea elementelor

    sistemului supervizat prin programul scns ín SRL (supervizarea se face

    de fapt de cátre structura de control care compileazá ßi ruleazá

    respectivul program) se realizeazá definirea roboþilor puma 600 ßi

    jhrobot, precum ßi ataßarea gripperelor celor doi roboþi: gripperul

    ringgrip deschis(0) lui puma 600 ßi pargrip ínchis lui jhrobot. De

  • Limbaje de Programare a Robotilor Industriali

    53

    asemenea este definit sensorul visioninfo ca fiind canalul (1) ßi o

    structurá specificatá sub forma unui RECORD.

    Un exemplu de folosire a acestui sensor poate fi sub forma: SRL: INPUT (visioninfo); IF visioninfo.part=3 THEN SMOVE puma60 TO depáßit; Datele specifice unui limbaj de programare sunt specificate

    printr-un nume ßi printr-un tip cáruia data aparþine. Ín funcþie de limbajul

    la care se face referire, numele asociat unei date poate conþine

    caractere alfa numerice, litere mari sau litere mici, respectiv un numár

    finit de caractere care vor fi interpretate sau un numár teoretic infinit.

    Ín toate cazurile ínsá, caracterul blanc nu este admis ín definirea

    unei date, acesta fiind ínlocuit ín cele mai multe cazuri prin caracterul _

    . O altá caracteristicá universalá a numelui unei date este faptul cá

    acesta chiar dacá poate conþine ßi caractere numerice trebuie sá

    ínceapá cu o literá. Pentru completarea acestor informaþii ín tabelul

    urmátor sunt prezentate spre exemplificare numárul de caractere

    semnificative ßi numárul de caractere permise pentru limbajele cele mai

    cunoscute.

    Limbaj Litere mari

    Litere mici

    Numar caractere interpretabile

    Numar caractere permise

    SRL * * nelimitat nelimitat AL * * 30 nelimitat PASRO * * 8 sau mai multe nelimitat VAL * nelimitat nelimitat AML * nelimitat nelimitat HELP * 6 nelimitat SIGLA adrese speciale I1..I16, P1..P16 respectiv M1..M1023 ROBEX * 6 6

    Ín ceea ce priveßte tipul datelor din cadrul unui limbaj de

    programare al roboþilor industriali se poate face o separare ín sensul

    definirii implicite a tipurilor consacrate: INTEGER, CHARACTER, REAL,

    BOOLEAN aláturi de STRING - un ßir predefinit de caractere sau o

  • Limbaje de Programare a Robotilor Industriali

    54

    secvenþá liniará de caractere; respectiv EVENT - numárátoare pentru

    contorizarea unor evenimente, folosite mai ales pentru asigurarea

    sincronizárii programelor.

    Ín tabelul urmátor vor fi prezentate tipurile standard de date

    pentru diferite limbaje:

    PASRO SRL AL AML VAL VAL II HELP SIGLAINTEGER INTEGER SCALAR INT Integer Scalar Scalar CounterREAL REAL SCALAR REAL Scalar Scalar BOOLEAN BOOLEAN SCALAR - - - CHARACTER

    CHAR CHAR - - -

    STRING STRING - STRING

    - -

    SEMAPHOR INTERRUPT

    EVENT Semaphore

    Flags

    iar domeniul valorilor acestor tipuri de bazá este prezentat ín

    urmátorul tabel:

    Tipul de data Numar de byti DomeniulINTEGER 2 -32768 ... + 32767REAL 4 0.15224277E-39 ...

    0.17014111E+38BOOLEAN cel putin unul FALSE, TRUE CHARACTER cel putin unul caractere ASCIIEVENT 2 -32768 ... + 32767

    Ín afara acestor tipuri de bazá pentru programarea purá

    (implicänd date numerice folosite ín calcule interne) apar ßi datele

    specifice roboþilor industriali care vor fi enumerate ín continuare:

    -VECTOR - ín general vectori tri-dimensionali;

    -ROTATION - rotaþia cu un unghi ín jurul unei axe;

    -ORIENTATION - rotaþia definitá prin trei unghiuri;

    -FRAME - definit prin rotaþii ßi vector;

    -TRANS - transformare definitá direct ca un FRAME.

    Un exemplu de construcþie a acestui tip de date, pentru

    PASRO se poate construi sub forma urmátoare : PASRO TYPE

    vector = RECORD x, y, z : REAL

  • Limbaje de Programare a Robotilor Industriali

    55

    END; rotmatrix = RECORD

    t,o,a: vector END;

    rotation = RECORD axis : vector; angle : REAL; matrix : rotmatrix END;

    frame = RECORD rot : rotation; transl : vector END;

    Pentru limbajele SRL, PASRO ßi AL, aceste elemente se

    folosesc ca tipuri de date standard, fapt care ußureazá mult lucrul cu

    acestea, nemaifiind nevoie de o construcþie a acestor tipuri: Exemple:

    SRL: directie: VECTOR; partrotatie : ROTATION; preluare, asteptare : FRAME; directie:=VE