cuprins - robotics.ucv.rorobotics.ucv.ro/carti/lpr/current/limbaje de programare a robotilor.pdf ·...
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