Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AeronauticaComunicatiiElectronica electricitateMerceologieTehnica mecanica


MODELAREA MEDIULUI. Grupa A de sarcini a conducerii unui robot

Tehnica mecanica



+ Font mai mare | - Font mai mic



MODELAREA MEDIULUI. Grupa A de sarcini a conducerii unui robot



Reprezinta prima grupa de sarcini pentru un sistem de conducere al unui robot. Prin aceasta grupa se reprezinta, in calculator,obiectele din mediul de lucru al robotului, parti ale obiectelor, dispunerea lor relativa, situarea relativa a sistemului mecanic al robotului in raport cu obiectele din mediu.

In ceea ce priveste modelarea mediului exista o deosebire importanta intre robotii simplii si cei evoluati.

1.Programarea prin invatare

Robotii simplii lucreaza in procese tehnologice rigide, in care operatiile se repeta mereu intr-un mod binecunoscut si neflexibil.In aceste situatii nu este necesara dezvoltarea unui software specializat in reprezentarea mediului in care opereaza robotul, respectiv pentru reprezentarea succesiunii etapelor procesului tehnologic. In aceste cazuri se procedeaza la invatarea prin instruire a robotului ( uneori se foloseste termenul de programare prin invatare).

In literatura de limba engleza se folosesc termenii:

teaching by doing

teaching by showing

teaching by learning

teach and play back,

toate cu intelesul de programare prin invatare in limba romana .

Invatarea prin instruire se foloseste in faza de intocmire a programului de lucru al robotului si incepe prin a deplasa manual ( cu comenzi prin butoane) sistemul mecanic al robotului, pana in punctele din spatiu in care acesta trebuie sa opereze. Tinta este sa se obtina in punctele impuse de P.T. o orientare optima pentru elementele dispozitivului de ghidare, astfel ca operatia respectiva sa se execute corect.Urmeaza apoi memorarea coordonatelor relative ale elementelor cuplelor cinematice conducatoare.

Exemple de invatare prin instruire:

Sudura in puncte a caroseriei unui automobil. Se realizeaza din lemn sau din material plastic caroseria unui tip de autoturism. Pe macheta se reprezinta toate punctele in care trebuie aplicat cate un punct de sudura ( de obicei sunt 500-600 astfel de puncte). In faza de invatare se alimenteaza cu energie intregul echipament. Un operator uman deplaseaza sistemul mecanic cu ajutorul panoului de invatare (folosind butoanele aferente punerii in miscare a elementelor mecanice), succesiv la fiecare dintre punctele marcate pe macheta.

In fiecare dintre puncte, OU trebuie sa fie atent ca efectorul final ( tip cap de forta cu cleste de sudura) sa se situeze in punctul respectiv astfel incat sudura sa se efectueze corect (evident, in aceasta faza de invatare, clestele de sudura nu este alimentat).

In momentul in care sistemul mecanic se configureaza in situarea corecta aferenta operatiei din punctul respectiv, OU apasa pe butonul de memorare de pe panoul de invatare si toate coordonatele transmise de traductoarele de pe robot sunt depuse in memoria calculatorului sau.

Dupa memorarea coordonatelor aferente unui punct se trece la punctul urmator s.a.m.d.

La incheierea fazei de invatare, se trece robotul in regimul de functionare

automat si, fara a se alimenta capul de sudura, se genereaza miscarile spre punctele anterior invatate. Acum se aplica corecturile eventual necesare. In etapa de verificare operatorul uman poate interveni de la panoul de invatare pentru a opri robotul sau pentru a corecta configuratia, daca acest lucru se impune.

Observatie: de cele mai multe ori etapa de verificare se executa in "slow motion" (miscare cu incetinitorul) pentru a urmari acuratetea miscarilor robotului

Dupa etapa de verificare si corectare, cand punctele au fost corect memorate si reproduse, se inregistreaza pe un disc toate coordonatele atinse, pentru ca acestea sa poata fi utilizate ori de cate ori este nevoie.

Observatii: de cele mai multe ori, in faza de invatare, operatorul uman realizeaza simultan si intocmirea programului de lucru propriu-zis. Pe panoul de instruire sunt prevazute taste speciale (cu litere sau cuvinte) cu care operatorul uman poate inscrie instructiuni ale programului, pe care apoi le completeaza cu coordonatele memorate. Astfel, la sfarsitul fazei de invatare, dupa verificare, OU obtine pe disc intregul program de lucru pentru procesul invatat.

Vopsirea prin pulverizare.Se foloseste in cazul vopsirii unor suprafete plane si suficient de mari. Un OU,vopsitor cu experienta, participa direct la etapa de invatare.Se leaga, in sensul propriu al cuvantului, mana OU de efectorul final al robotului si se alimenteaza cu energie partea electrica a robotului. Operatorul uman executa operatia de vopsire, iar sistemul mecanic al robotului executa in tandem cu OU miscarea respectiva.

In acest caz butonul de memorare a coordonatelor de pe panoul de instruire se trece pe pozitia memorare automata si, la anumite intervale de timp, coordonatele atinse in miscare de catre dispozitivul de ghidare sunt memorate (automat). Frecventa de memorare este cuprinsa intre 20 si 200 Hz, in functie de viteza de operare a calculatorului . Cu cat calculatorul este mai rapid se inregistreaza puncte mai des, deci memorarea se face cu o frecventa mai mare obtinandu-se o precizie mai buna.

Invatarea cu utilizarea unei structuri master-slave.Exista situatii in care dimensiunile de gabarit ale robotului nu permit legarea fizica cu OU .De pilda la robotii cu gabarite mari sau foarte mari si la microroboti. In aceste cazuri se realizeaza un robot pilot care reproduce la scara ( mai mica sau mai mare,dupa caz) robotul adevarat.

Operatorul uman se leaga de efectorul final al pilotului si executa operatiile impuse de procesul tehnologic. In timpul invatarii, atat robotul pilot cat si cel invatat se mentin alimentati cu tensiune si executa miscarile in tandem cu OU. Se comanda memorarea ( automata sau manuala) a coordonatelor atinse de robotul adevarat. Legatura electrica dintre pilot si robot poate fi realizata prin fire sau wireless.

Si in acest caz se procedeaza la verificarea si corectarea miscarilor invatate impunand robotului miscari slow- motion.

Invatarea prin instruire nu este o modelare a mediului in sensul propriu al cuvantului, ci este o metoda prin care se evita,de fapt, utilizarea de relatii matematice ( uneori sofisticate), intrucat nivelul de inteligenta al robotului este scazut ( calculatorul sau nu este performant). La invatare, se depun succesiv in memoria calculatorului coordonatele situarilor elementelor mecanice necesare in fiecare etapa a procesului tehnologic. Astfel se economiseste substantial timp si putere de calcul.

Desi invatarea prin instruire este caracteristica robotilor mai putin evoluati, metoda se utilizeaza si la roboti evoluati pentru cazul proceselor sau etapelor de proces neflexibile.

Scopul modelarii mediului este de a determina ( de a afla) in fiecare etapa de proces configuratia sistemului mecanic cu care se efectueaza corect operatia tehnologica din etapa respectiva.Configuratia dispozitivului de ghidare determinata cu metodele de modelare a mediului este transmisa apoi blocului care infaptuieste conducerea propriu-zisa a sistemului mecanic.

In cele ce urmeaza se prezinta mijloacele matematice utilizate in robotica pentru a se implementa o modelare propriu-zisa.

2. Reprezentari matematice pentru mediul in care actioneaza robotul

Exista situatii in care procesul tehnologic nu este complet cunoscut inainte de a se derula:

evenimente din anumite etape ale procesului tehnologic care depind de evenimente petrecute in etapele precedente;

apar situatii neprevazute sau imprevizibile;

survin situatii in care trebuie luate decizii de genul: " daca... atunci...altfel " ("if...then ...else").

Pentru astfel de cazuri, ehipamentul de conducere al robotului trebuie dotat cu un anumit nivel de inteligenta pentru a deveni capabil sa ia decizii. In procese tehnologice de tipul indicat mai sus nu se poate folosi invatarea prin instruire deoarece desfasurarea procesului tehnologic nu este apriori complet cunoscuta; etapele procesului tehnologic nu se succed intr-o ordine cunoscuta; traiectoriile nu pot fi planificate dinainte si / sau pot suferi modificari.

Pentru aceste situatii echipamentul de conducere al robotului trebuie dotat cu posibilitatea de a-si reprezenta obiectele din mediu si de a stabili ordinea de desfasurare a etapelor de proces.

Reprezentari matriciale in robotica

Metoda folosita in robotica pentru modelarea mediului este cea de reprezentare matriceala a situarii relative intre obiecte.

Mai intai obiectele primesc un nume (name). In program aceste nume se reprezinta prin simboluri ( de obicei litere).

Exemple:

P - pin; H - gaura; CAM - camera de luat vederi.

De multe ori primesc nume si parti ale obiectelor sau anumite situari relative

ale acestora. Apoi fiecarui obiect, parti sau situari care a primit nume ii este atasat cate un sistem de coordonate ( S.C.) triortogonal. Acest sistem de coordonate atasat primeste si el numele obiectului aferent.

Fie cazul unui efector final tip dispozitiv de prehensiune cu doua degete (fig.1). In punctul de scula ( T.P.- tool point ) se ataseaza EF un sistem de coordonate format din versorii

Cei trei versori au urmatoarele orientari:

- versorul apropiere (approach) - este orientat dupa directia si sensul apropierii efectorului final de obiectul asupra caruia trebuie sa se opereze;

- versorul orientare (orientation) - are orientarea dupa directia liniei de unire a degetelor efectorului final;

- versorul normal (normal) - ; este perpendicular pe si cu sensul determinat de regula burghiului, pentru a completa un sistem de 3 axe ortogonale.


Fig.nr.1. SC atasat EF tip DP cu doua degete

Pozitia originii acestui sistem de coordonate in raport cu sistemul de coordonate de referinta ( S.C. de Ref. ) este data de vectorul de pozitie .


Pozitia si orientarea sistemului de coordonate atasat efectorului final, in raport cu un alt sistem de coordonate ( cel de referinta, de pilda) se reprezinta cu matricea de situare numita si matrice de transformare sau matrice transformare.

(1)

unde:   

nx, ny, nz sunt componentele versorului n al SC atasat EF ( sau in general unui obiect) in raport cu un alt sistem de coordonate ( cel de referinta, de pilda);

ox, oy, oz sunt componentele versorului o al SC atasat EF ( unui obiect ) in raport cu un alt sistem de coordonate ( cel de referinta);

ax, ay, az sunt componentele versorului a al SC atasat EF ( unui obiect ) in raport cu un alt sistem de coordonate ( cel de referinta);

px, py, pz sunt componentele versorului de pozitie care exprima pozitia originii sistemului de coordonate atasat efectorului final ( unui obiect in general) in raport cu axele unui alt SC ( cel de referinta, de pilda).

 
Matricea T se compune din:


submatricea de orientare

submatricea de pozitie

Submatricea de pozitie exprima in acelasi timp si o translatie (dupa vectorul p) - ne arata la ce translatie trebuie supusa originea sistemului de coordonate (cel de referinta, de pilda) pentru a ajunge in originea altui SC;

Submatricea de orientare ne arata la ce rotatii trebuie supusi versorii triortogonali ai unui sistem de coordonate pentru a obtine orientarile versorilor triortogonali ai altui SC.

Matricea T poate fi interpretata in trei moduri:

ca matrice de situare care exprima situarea relativa ( pozitie si orientare) a doua sisteme de coordonate;

ca transformare la care trebuie supus un sistem de coordonate pentru a deveni altul ( de aici si numele);

un operator care aplicat unui sistem de coordonate il transforma intr-un altul.

Observatie: de fiecare data expresia matricii T este aceeasi, dar interpretarea semnificatiei acesteia este diferita.

Reprezentarea etapelor unui proces tehnologic

Pentru a reprezenta obiectele implicate intr-un proces tehnologic se stabileste un sistem de coordonate de referinta, considerat absolut si numit sistem de coordonate universal ( sau universul U).

De obicei U este legat rigid de hala in care isi desfasoara activitatea robotul industrial si se alege convenabil, astfel incat situarile obiectelor din mediu si ale elementelor robotului sa se poata exprima cat mai simplu.

Exemplu:

Fie cazul unui proces tehnologic PT in care un robot industrial RI cu efectorul final EF tip dispozitiv de prehensiune DP, cu doua degete, are prinsa in

efectorul final o scula S. Dispozitivul de ghidare al robotului si efectorul final - cu scula prinsa - trebuie sa opereze asupra unui obiect O situat intr-o hala ( de exemplu sa-l gaureasca). Obiectul , la randul sau, este fixat rigid de podeaua halei printr-un dispozitiv de lucru DL. (fig. nr.2.)

Se alege un sistem de coordonate universal U ( cu o situare oarecare). Se ataseaza bazei robotului un sistem de coordonate numit R. De asemenea se ataseaza sisteme de coordonate efectorului final, sculei, obiectului, dispozitivului de lucru si gaurii (ca parte a obiectului).

Se presupune ca intr-o anumita etapa a procesului tehnologic se cunoaste situarea sculei in raport cu gaura - situare impusa de modul in care trebuie efectuata operatia tehnologica aferenta etapei respective de proces. Din punct de vedere matematic, acest lucru inseamna ca se cunoaste matricea[sTH ], matricea de situare a gaurii H fata de scula S.

Observatie: in notatiile pentru matricea T se folosesc, de regula, doi indici:

a). indicele dreapta jos, care exprima numele sistemului de coordonate a carui pozitie si orientare o descrie (" pe cine");

b). indicele din stanga sus care exprima numele sistemului de coordonate fata de care se exprima pozitia si orientarea ("fata de cine");

Indicii pot fi cifre sau litere, iar daca cel din stanga sus este 0 nu se mai scrie.

Problema de modelare consta in a exprima (matematic) pozitia si orientarea intregului robot (cu scula prinsa) pentru a efectua o operatie tehnologica si de a exprima situarile relative ale obiectelor in etapa respectiva de proces.


  De exemplu, pentru a exprima situarea gaurii in raport cu efectorul final se procedeaza la urmatoarea succesiune de transformari matriceale:


Fig.nr.2.Exemplu de proces tehnologic robotizat

Aceasta relatie ne arata la ce transformari succesive trebuie supus sistemul de coordonate al EF al robotului pentru ca situarea efectorului final al robotului sa ajunga sa coincida cu sistemul de coordonate al gaurii.

In acest exemplu, transformarea [STH] este cunoscuta din modul cum trebuie efectuata operatia tehnologica, iar transformarea [EFTS] se cunoaste intrucat se stie cum anume este prinsa scula in efectorul final.

In consecinta, transformarea [EFTH] este complet determinata.


  In continuare situarea gaurii in raport cu baza robotului industrial se determina cu relatia:

Observatie: ordinea de aplicare a transformarilor nu se poate inversa

( inmultirea matricilor nu este comutativa).

In general in toate aplicatiile de robotica exprimarea situarilor se face in

(1E)

 

raport cu universul U. In acest caz situarea gaurii in raport cu universul este:

In relatia de mai sus s-a descris pozitia si orientarea gaurii in raport cu universul, alegand un traseu legat de robot. Aplicand [UTH] sistemului de coordonate universal se ajunge la sistemul de coordonate atasat gaurii, pe traseul legat de robot.


(2E)

 
Situarea gaurii in raport cu universul U poate fi exprimata si pe un traseu legat de celelalte obiecte din mediul de lucru al robotului (fara robotul industrial). Folosind un rationament similar cu cel precedent obtinem:

(E)

 
Ultimele doua relatii exprima acelasi lucru, astfel ca rezulta egalitatea:


Aceasta ecuatie exprima o etapa a procesului tehnologic si se numeste ecuatia fundamentala in modelarea mediului.Fiecare etapa a procesului tehnologic robotizat se exprima prin cate o ecuatie de acest gen.

Situarile relative intre obiecte si transformarile succesive aplicate sistemelor de coordonate atasate acestora, exprimate cu ecuatii ca cele de mai sus, pot fi reprezentate si grafic ca in figura nr.


Fig.nr. Reprezentarea grafica a ecuatiei fundamentale de    modelare a unei etape de proces

Observatii :

1). O transformare poate fi reprezentata si prin graful transformarii. Graful unei transformari este o sageata cu originea in sistemul de coordonate folosit ca referinta si cu varful in sistemul de coordonate a carui situare o exprima.


Fig.nr.4.Graful unei transformari

2). Folosind graful transformarilor si ecuatiile de exprimare a transformarilor, o

etapa a procesului tehnologic poate fi reprezentata ca in figura nr.5.


Fig.nr.5.Reprezentarea unei etape de proces cu grafuri

Reprezentarea cu graful transformarilor este utila nu numai pentru ca este sugestiva ci si pentru ca permite utilizarea graficii pe calculator. Cu o astfel de dotare, utilizatorul poate reprezenta pe ecranul calculatorului o etapa a procesului tehnologic cu sageti. Calculatorul preia informatiile introduse in grafic, le " intelege" si le "traduce" in ecuatii matriceale corespondente.

3). In ecuatia fundamentala pentru modelarea mediului (E) se cunosc toate

situarile cu exceptia lui [RTEF

UTR] se cunoaste din amplasamentul robotului in hala;

EFTS] se cunosc din forma si dimensiunile geometrice ale sculei si din modul de prindere al efectorului final;

STH] se cunoaste din modul de efectuare al operatiilor tehnologice ( este impusa de proces );

UTDL] se cunoaste din dispunerea dispozitivului de lucru in hala de lucru;

DLTO] se cunoaste din modul de prindere al obiectelor in dispozitivul de lucru;

OTH] se cunoaste deoarece se stie unde trebuie efectuata aura in obiect.

Din ecuatia fundamentala pentru modelarea mediului se poate calcula

RTEF

(E1)

 

cu relatia:

1). Din fiecare ecuatie de reprezentare a cate unei etape de proces se calculeaza matricea [RTEF] care exprima de fapt configuratia bratului robotului fata de baza robotului in etapa respectiva de proces.

2). Scopul scrierii ecuatiilor fundamentale este tocmai acela de a se calcula, din ele, configuratia sistemului mecanic in fiecare etapa de proces.

Valorile obtinute pentru [RTEF] in fiecare etapa de proces sunt apoi supuse analizei cinematice inverse si transmise blocului (calculatorului) pentru specificarea si generarea miscarilor, care efectueaza dupa aceea conducerea robotului spre configuratiile necesare efectuarii operatiei din etapa respectiva a procesului tehnologic.

4. Etapele de realizare a modelarii mediului

La modelarea mediului trebuie parcurse urmatoarele etape:

1 - Obiectele din mediu, parti ale obiectelor si situari importante pentru desfasurarea procesului tehnologic primesc cate un nume;

2 - Fiecarui nume i se ataseaza cate un sistem de coordonate triortogonal reprezenta- bil in raport cu un alt sistem de coordonate prin matricea de transformare (situare);

3 - Se alcatuiesc structuri de date specifice pentru reprezentarea sistemelor de coordonate si a situarilor

4 - Se procedeaza la etapizarea procesului tehnologic. Procesul tehnologic este defalcat in etape distincte, succesive si fara echivoc; acesta sarcina ii revine inginerului tehnolog;

5 - Se exprima etapele procesului tehnologic cu ecuatii matriceale;

6 - Se construiesc structuri de date specifice pentru reprezentarea, in bloc, a fiecarei etape;

7 - Se adauga suplimentar comenzi si decizii pe baza informatiilor furnizate de senzori;

8 - Se extrag valorile situarilor[RTEF] in fiecare etapa de proces si se transmit blocului / calculatorului care infaptuieste conducerea propriu-zisa.

5. Exemplu de modelare a mediului pentru un proces tehnologic


Fig.6. Recunoasterea si culegerea unor pini de pe o curea transportoare

Este cazul unui brat de robot care trebuie sa introduca niste pini in gaurile unui obiect cubic. Pinii sosesc pe cureaua transportoare a unui conveior, comandat de calculatorul robotului.De altfel, se considera ca intregul proces este comandat de catre calculatorul robotului.

Pozitia si orientarea pinilor de pe curea este sesizata de o camera de luat vederi ( fig.6).

Observatii:

Camera face parte dintr-un sistem de prelucrare a imaginilor - sistem de sine statator dotat cu un calculator separat care proceseaza imaginile preluate de camera de luat vederi.

Procesarea imaginilor presupune urmatoarele etape:

achizitie de imagini cu camera;

imbogatire (enhacement) si refacerea partilor deteriorate in timpul achizitiei;

analiza imaginilor ,ce inseamna    determinarea obiectelor cautate, determinarea pozitiei si orientarii acesteia, recunoasterea de forme s.a.

Echipamentul de procesare a imaginii, fiind dotat cu calculator, este capabil sa prelucreze foarte multe date si sa transfere calculatorului robotului informatiile cerute de acesta in forma adecvata.

Fiecare obiect din procesul tehnologic primeste cate un nume. Si parti de interes ale obiectelor primesc cate un nume. De exemplu:

P - pin;H - gaura (parte a obiectului); CAM - camera de luat vederi.

De asemenea, se atribuie cate un nume si situarilor importante din procesul tehnologic. De pilda:

PA - (Pin Approach) - pozitia si orientarea efectorului final in raport cu pinul intr-un moment anterior apucarii ( pozitia apropiata de pin convenabila apucarii);

PHA -( Pin Hole Approach) - situarea efectorului final, cu pinul apucat, in apropierea gaurii in care se face inserarea.

Fiecarui nume i se ataseaza cate un sistem de coordonate triortogonal de versori unitate, de tip .

Procesul tehnologic robotizat, dupa conceptie, trebuie scris intr-o forma cat mai adecvata reprezentarii sale prin programe pentru calculator. Inginerului mecanic tehnolog ii revine sarcina de a descrie procesul tehnologic in etape de operatii distincte,succesive, fara echivoc. Etapizarea procesului tehnologic robotizat reprezinta un pas foarte important in modelarea mediului intrucat ea are implicatie directa asupra eficientei robotizarii procesului , respectiv asupra fidelitatii modelului pe calculator al procesului.

In exemplul ales, etapele procesului tehnologic se succed astfel:

1 - conveiorul primeste de la calculatorul robotului industrial un semnal de pornire si se opreste in momentul in care sistemul de prelucrare a imaginilor ii semnaleaza ca un pin a fost detectat pe cureaua transportoare. Sistemul de prelucrare a imaginilor determina pozitia si orientarea pinului pe curea.

2 - folosind informatia furnizata de sistemul de prelucrare a imaginilor, se comanda deplasarea sistemului mecanic astfel incat dispozitivul de prehensiune sa se apropie pana deasupra pinului,in situarea de apucare optimala a acestuia.

3 - dispozitivul de prehensiune apuca pinul.

4 - se ridica pinul de pe cureaua transportoare.

5 - se comanda deplasarea dispozitivului de ghidare pana cand dispozitivul de prehensiune, cu pinul apucat, ajunge in dreptul primei gauri a obiectului cubic.

6 - se opreste miscarea dispozitivului de ghidare in momentul contactului pinului ( apucat in dispozitivul de prehensiune) cu gaura.

7 - se aliniaza pinul dupa directia axei gaurii.

8 - se insereaza pinul in gaura.

9 - se elibereaza pinul din dispozitiavul de prehensiune.

10-se indeparteaza dispozitivul de ghidare de obiectul cubic.

In continuare se repeta aceleasi operatii pentru inserarea celui de-al doilea pin, cu observatia ca operatia 1 pentru pinul 2 poate fi executata in timpul efectuarii operatiilor 2-10 pentru pinul 1 ( multiplexare in executie).

Numele folosite in acest proces sunt:

CAM - situarea camerei de luat vederi in raport cu universul;

PC - situarea pinului in raport cu camera de luat vederi;

P - situarea pinului in raport cu universul;

Z - situarea bazei robotului in raport cu universul;

T6 - situarea capatului mecanismului generator de traiectorie in raport cu baza robotului industrial ( de fapt, configuratia bratului de robot fara efectorul final);

E - situarea efectorului final in raport cu capatul final al mecanismului generator de traiectorie;

PG - Pin Grasp - situarea dispozitivului de prehensiune in raport cu pinul la strangere ( apucarea pinului);

PA - Pin Approach - situarea efectorului final in raport cu pinul in apropierea acestuia ( inainte si dupa apucare);

PD - Pin Departure - situarea efectorului final in raport cu vechea pozitie a pinului in momentul departarii( plecarii) sale;

H - situarea obiectului cubic in hala;

HRi - i=1,2 situarea gaurii i in raport cu obiectul cubic;

PHA - Pin Hole Approach - situarea pinului apucat de dispozitivul de prehensiune in apropierea unei gauri;

PCH - Pin Contact Hole - situarea pinului, apucat in dispozitivul de prehensiune, la contactul cu gaura;

PAL - Pin ALigned - situarea pinului in raport cu axa gaurii in pozitia de aliniere cu aceasta;

PH - Pin Hole - situarea pinului inserat in gaura.

Cu aceste denumiri etapele procesului tehnologic se reprezinta cu ecuatii matriceale - ecuatii de transformare si/sau graful acestora.

Fie etapa a 3-a din procesul tehnologic considerat, cand dispozitivul de prehensiune apuca pinul. Graful transformarilor este reprezentat in figura 7 si 8 :


Fig.nr.7.Graful transformarilor in etapa a 3-a a procesului


Fig.nr.8.Reprezentarea grafica a etapei a 3-a a procesului

Pentru etapele enuntate in procesul ales, grafurile transformarilor sunt:

P PC CAM


P=CAM PC

Z T6 E P PA

Z T6 E=P PA

Z T6 E P PG


Z T6 E=P PG

Z T6 E P PD PG


Z T6 E=P PD PG

Z T6 E H HRI PHA PG


Z T6 E=H HRI PHA PG

Z T6 E H HRI PCH PG


Z T6 E=H HRI PCH PG

Z T6 E H HRI PAL PG


Z T6 E=H HRI PAL PG

Z T6 E H HRI PH PG


Z T6 E=H HRI PH PG

Z T6 E H HRI PH PA


Z T6 E=H HRI PH PA

6. Structuri de date specifice modelarii mediului

Programele de modelare a mediului opereaza cu matrici de transformare ( de situare). Pentru ca viteza de calcul sa sporeasca si pentru corelarea mai comoda a datelor se realizeaza structuri de date compacte care sa contina:

elementele variabile ale matricii transformare;

legaturi intre transformari;

date suplimentare ( eventual).

6.1. Reprezentarea unui vector de pozitie

Observatie: se vor prezenta variabile implementate in limbajul PASCAL pentru ca in robotica s-a folosit de multa vreme acest limbaj si pentru acest limbaj se considra foarte cunoscut.

In PASCAL structurile de date sunt definite folosind tipuri de date. Un tip ( de variabile) mai evoluat este tipul articol (type record), prin care se intelege un pachet de informatii cu privire la variabile. Localizarea unui tip articol in memoria calculatorului se face cu ajutorul unor indicatori ( pointeri).

Observatie: un pointer este un index care specifica " adresa" la care se afla tipul respectiv in memorie ( in PASCAL adresa concreta nu este transparenta,adica direct vizibila de programator).

Pentru definirea unui vector se foloseste tipul vector ca o variabila de tip articol cu trei elemente reale:

type vector = record

x,y,z: real

end.

Aceasta variabila este de tip articol ( record) si permite pastrarea impreuna in memoria calculatorului a tuturor elementelor componente ( reale) la un loc. Se spune ca:" tipul vector este un articol compus din trei elemente reale". Elementele x, y si z

sunt proiectiile dupa axele unui sistem de coordonate de referinta ale unui vector.

Schematic tipul vector se reprezinta ca in figura nr.9:


Fig.nr.9 Tipul vector

6.2. Tipul transformare

Se foloseste la reprezentarea unei matrici transformare.

Observatie: specifica pentru modelarea mediului este operarea cu tipuri. Deocamdata acestea sunt tipuri geometrice. In reprezentarea obiectelor folosind tipuri geometrice sunt pastrate impreuna informatii cu privire la dimensiunile geometrice ale obiectului. Ideal, pentru robotica' ar fi daca s-ar crea tipuri fizice in care sa se memoreze la un loc informatiile cu privire si la alte proprietati fizice cum ar fi: mase, culori, rigiditati, rugozitati ale suprafetelor,.. Deocamdata astfel de tipuri fizice nu au fost puse la punct.

Un important tip geometric este tipul transformare:

type transpointer = ↑ transformare

transformare = record

n, o, a, p: vector;

inversa: transpointer;

valid: boolean;

inversap: boolean

end.

Tipul transformare este o variabila de tip articol ( record) ce contine 4 vectori si 3 campuri suplimentare de memorie. Accesul la tipul transformare este printr-un pointer ( ↑ ) , numit transpointer ( pointer de transformare).

Variabila tip transformare este un pachet de date de forma reprezentata in figura 10.


pointer la T-1

transformare

Fig.nr.10.Reprezentarea continutului pentru tipul transformare

In figura 10. semnificatia notatiilor este :

n, o, a, p sunt variabile de tip vector ( fiecare contine cate trei numere reale) care se pastreaza impreuna. Acestea sunt elementele unei matrici T;

"inversa" este un pointer care indica la tipul aferent transformatei inverse. Acest pointer se include in pachetul de date memorat la un loc, pentru se a gasi rapid unde anume in memorie se afla depusa matricea inversa, deorece in rezolvarea ecuatiilor matriceale apar frecvent si matricile inverse;

"valid" este o variabila de tip logic ( care poate avea valorile " true" sau "false" - adevarat sau fals - variabile de tip boolean). Valid ia valoarea "false" daca asupra transformarii respective s-au operat modificari. Aceasta variabila se foloseste la verificarea rapida cu privire la modificarile situarilor obiectelor din mediul in care opereaza robotul industrial;

"inversap" este tot o variabila booleana care are valoarea "true" daca structura de date este aferenta unei transformari inverse ( ajuta la parcurgerea rapida a listelor de date).

6. Tipul termen

Este o structura de date folosita pentru reprezentarea unui termen dintr-o ecuatie matriciala ( ecuatie care descrie o etapa din procesul tehnologic).De exemplu in ecuatia Z T6 E=P PA , P este un termen potrivit pentru a fi reprezentat cu tipul decris in acest paragraf.

Tipul termen este un grup de trei pointeri pastrati impreuna in memorie si foloseste la reprezentarea modului in care un tip transformare este inclus intr-o ecuatie matriceala ( ce descrie o etapa de proces).

type termpointer = ↑ termen

termen = record

urmator, inv: termpointer;

trans: transpointer

end.


tipul tipul

termen transformare

Fig.nr.11.Reprezentarea continutului unui tip termen si a conexiunii sale cu tipul

transformare aferent

La grupul de trei indicatori , ce alcatuiesc tipul termen (fig.11.), indica pointerul transpointer :

"urmator" este un pointer care indica la o alta variabila de tip termen si anume la cea care corespunde urmatorului termen din membrul ecuatiei ( termenul urmator in dreapta).

"trans" este un pointer care indica la variabila transformare propriuzisa ( indica unde anume se afla tipul transformare unde este de fapt depusa matricea).

"inv" e un pointer care indica la variabile de tip termen aferenta transformarii inverse ( pentru ca si matricea inversa apare intr-o ecuatie matriceala).


Fig.nr.12.Conexiunea intre doua tipuri termen si tipurile transformare aferente

6.4.Tipul membru al ecuatiei

Pentru a spori mai mult viteza de calcul se procedeaza la constructia unui intreg membru al ecuatiei transformare.De exemplu, pentru ecuatia Z T6 E=P PA membrul stang se realizeaza ca un pachet de date obtinute prin inlantuirea tipurilor termen.

Ultimul termen al acestui membru are campul "urmator" = NIL. In PASCAL acest lucru inseamna ca pointerul respectiv nu indica nicaieri (termenul reprezentat este ultimul termen).

Fiecare dintre tipurile termen incluse in aceasta structura de date contine cate un pointer trans ( notati pe fig.14. Z, T6, E, Z-1, T6-1, E-1 indica la transformarea aferenta propriu-zisa).


Fig.nr. 1

Doi termeni

si conexiunile

realizate la

inversele

acestora


Fig.nr.14. Reprezentarea unui membru al unei ecuatii transformare

6.5.Reprezentarea unei ecuatii transformare

Datele aferente unei ecuatii matriciale, care defineste o situare a robotului in mediu intr-o anume etapa din procesul tehnologic, se pot reprezenta si ele grupat.

Mai intai se defineste tipul pozitie (fig.15), tot ca o variabila de tip articol:

type pozitiepointer = ↑ pozitie

pozitie = record

t6ptr, sculaptr: termpointer

end.


pozitie pointer

Fig.nr.15.Tipul poztie

In fig.15. :

"t6ptr" este pointerul care arata unde anume se afla tipul termen aferent lui T6.

"sculaptr" este un pointer care indica la tipul termen aferent extremitatii sculei.

Apoi se construieste o structura de date tip pozitie , cu care se reprezinta o etapa a procesului tehnologic robotizat . Se constituie o inlantuire de tipuri termen: mbs - membrul stang si mbd - membrul drept.

Tipul pozitie este compus in doi pointeri ( t6ptr si sculaptr). Acesti doi pointeri indica in interiorul unui lant de tipuri termen ( lant pozitie-fig.16.), construit corespunzator unei ecuatii ce descrie o etapa a PT.Fiecare tip termen este legat de un altul dupa modul in care el se situeaza in ecuatia respectiva.

Observatie: termenii aferenti transformarilor inverse sunt legati intre ei " pe dos" deoarece in rezolvarea ecuatiei matriceale inversele se inmultesc in ordine inversa decat cele directe.

Fiecare tip termen din acest lant contine cate un pointer ( cel din mijloc - t ) care indica locul unde se afla tipul transformare aferent ( matricea propriu-zisa).


Fig.nr.16.Lantul pozitie

7.Cuaternioni

7.1 Introducere

In mod obisnuit , modelarea translatiilor si rotatiilor in spatiul tridimensional se face folosind transformari omogene. O alta alternativa de abordare a modelarii in robotica este aceea de a utiliza perechi cuaternion-vector.

Teoria cuaternionilor a fost introdusa pentru prima data in matematica in anul 1853 de Hamilton. Motivele pentru care cuaternionii au fost definiti sunt :

- pentru a gasi o modalitate de a defini impartirea vectorilor;

- pentru a se defini un tip de produs vectorial.

Hamilton a demonstrat ca un cat al doi vectori nu se poate reprezenta printr-un vector descris cu numai trei parametrii reali. Este necesar sa se adauge un al patrulea parametru real.Deci,trebuie utilizate entitati cuadruple,pe care Hamilton le-a numit cuaternioni. In 1979 Taylor a remarcat pentru prima data ca daca la un robot se reprezinta rotatiile cu cuaternioni calculul este mai eficient ,iar miscarea sistemului mecanic este mai lina. Metoda prezentata a fost denumita "Controlul traiectoriei carteziene" , utilizeaza metoda de conducere cunoscuta ( R.P.Paul ) dar foloseste cuaternioni la reprezentarea rotatiilor.

7.2.Elemente de algebra cuaternionilor

Un cuaternion poate fi definit ca :

- un cuadruplu de numere reale;

- un "vector" cu patru dimensiuni;

- o entitate hipercomplexa.

Modul cel mai simplu de reprezentare al unui cuaternion este ca un cuadruplu de numere reale.Daca p si q sunt doi cuaternioni :

(5)

Hamilton a definit urmatoarele proprietati ale cuaternionilor :

- Adunarea (scaderea) :

(6)

- Inmultirea cu un scalar :

- Inmultirea a doi cuaternioni ( produsul cuaternional ) :

Observatie : produsul cuaternional se scrie pq fara a se utiliza vreun simbol " " sau " " intre termenii produsului.

- Produsul cuaternional este asociativ :

- Produsul cuaternional este distributiv fata de adunare si scadere :

- Produsul cuaternional este, in general, necomutativ :

Hamilton a definit , in campul cuaternionilor, o baza de patru elemente e1, e2, e3, e4 , pe care i-a notat ,respectiv, cu 1, i , j, k :

Totodata a definit si o algebra A (in campul K), prin urmatorul tabel de inmultire al elementelor bazei :

e1

e2

e3

e4

e1

e1

e2

e3

e4

e2

e2

- e1

e4

- e3

e3

e3

- e4

- e1

e2

e4

e4

e3

- e

- e1

Urmarind tabelul si utilizand notatiile (12 ) rezulta :

Notand i, j, k cu i, j, k, unitatile i, j, k ale bazei campului cuaternionilor pot fi interpretate ca trei vectori ai unei baze de axe carteziene. Cu acestea,un cuaternion q poate fi scris ca avand o parte scalara s si o parte vectoriala v :

sau :

, unde    

Astfel, un cuaternion poate fi definit ca un vector cu patru dimensiuni,obtinut prin combinarea unui scalar cu un vector (tridimensional) real.

Proprietatile de baza din algebra cuaternionilor sunt :

Partea scalara a lui q s

Partea vectoriala a lui q ai + bj+ ck

Conjugata lui q

(16)

Norma lui q

Reciproca lui q

Cuaternionul unitate unde

Observatie : Cuaternionii includ si numerele reale ( s, 0, 0, 0) ,cu o singura unitate 1, numerele complexe ( s, a, 0, 0) cu doua unitati 1 si i si vectorii din spatiul tridimensional ( 0, a, b, c). Acesta din urma avand s= 0 a fost denumit vector-cuaternion sau ternion si reprezinta imaginea unui vector real in spatiul cuadridimensional de baza ( 1, i, j, k).

Inmultirea cuaternionilor poate fi scrisa si in forma :

In caz general , produsul vectorial al doi vectori reprezentati ca si cuaternioni nu este un vector ci un cuaternion.Astfel, fie doi vectori

si

In relatiile de mai sus :

- este produsul cuaternional scalar-scalar ( identic cu produsul a doi termeni reali);

- sunt produse cuaternionale scalar-vector ( identice cu cate un produs scalar-vector real);

- - este produsul cuaternional vector-vector.

Produsul scalar a doi cuaternioni se noteaza cu " " si :

Cele doua rezultate (18) si (20 ) se obtin aplicand regula (8) de inmultire data de Hamilton. Mai intai inmultim cei doi cuaternioni q1 si q2 obtinand rezultatul :

(21)

Apoi inmultim cei doi scalari s1 s2 considerandu-i cuaternion-scalari. Adica, pentru scalarii :

si    

aplicam regula (8) de inmultire a lui Hamilton:

(23)

In continuare inmultim ,cu aceeasi regula, si considerand termenii produsului ca si cuaternion-scalari ,respectiv ternioni ,adica :

Se mai calculeaza si produsul ternional v1v2 , cu regula (8) :

utilizand si relatiile (13).

In final, insumand (23), (24),(25) si (26) se obtine acelasi rezultat ca in (21).q.e.d.

Observatie : rezultatul (19) este acelasi cu (26), dupa cum si rezultatul (17) este echivalent cu (21).

Conform (19) produsul a doi vectori-cuaternion (ternioni) este :

Se observa ca daca doi vectori sunt ortogonali si produsul cuaternional este un vector. De asemenea, este important de observat ca produsul dintre un cuaternion si un vector este ,in cazul general, un cuaternion.

Fiind dat un cuaternion :

si un vector :

(28)

parte parte

scalara vectoriala

In consecinta, daca parte vectoriala v a unui cuaternion este ortogonala cu un vector r produsul cuaternional qr este un vector r'. Acest r' se afla intr-un plan care-l contine pe r si este perpendicular pe v.

In figura 17 se arata ca ,asa cum rezulta din relatia (29), vectorul r initial este rotit in jurul lui v si alungit.

Concluzie : Un cuaternion poate fi utilizat la reprezentare unei rotatii, daca se gaseste o modalitate de a se evita alungirea.

(fig 17)

7. Reprezentarea rotatiilor cu cuaternioni

Fie un cuaternion unitate de forma :

unde u = [l,m,n]T este un vector unitate (versor) , adica :

(32)

Inmultind acest vector unitate cu un vector oarecare r , perpendicular pe un altul u , se obtine :

Acest rezultat este un vector situat intr-un plan perpendicular pe un plan ce-l contine pe u si formeaza unghiul θ cu r .

Observatie : Utilizarea produsului qr la reprezentarea rotatiilor se limiteaza doar la cazurile in care u si r sunt ortogonali.

Expresia reciprocei cuaternionului unitate q considerat este :

Reciproca lui q este egala cu conjugata sa, intrucat u este un vector unitate si sin2q +cos2q

Sa consideram acum un alt cuaternion unitate q : q = s + v .Reciproca sa este : q = s - v

Fie un si un vector-cuaternion arbitrar r = [0, r] si ,cu acesta, calculam produsul cuaternional :

Folosind regula (17), calculam intai :

In continuare,folosind tot regula (17) :

In aceasta ultima relatie se observa ca :

Astfel :

Aplicand regula lui Gibbs de transformare a produsului vectorial in produs scalar a doi vectori :

Obtinem :

Intucat q este un cuaternion unitate, s +v2=1, se obtine in final :

Se poate demonstra acum ca, daca q este un cuaternion unitate de forma :

cu sin2q +cos2q = 1 , relatia (42) exprima rotatia unui vector r fara nici o alungire.

Pentru aceasta, se considera un cuaternion cu forma anume aleasa :

unde : este un vector unitate, adica l + m2 + n2 = 1

Utilizand acest cuaternion, relatia :

qrq

exprima rotatia oricarui vector r in jurul axei de versor u cu un unghi θ.

(fig. 18)

Observatie : Prin utilizarea cuaternionului de forma particulara si a produsului qrq , au fost eliminate atat conditia de ortogonalitae dintre r si u cat si alungirea ce se producea initial.

Exemplu : O rotatie cu 90 in jurul axei carteziene k ,urmata de o rotatie cu 90 in jurul axei j se poate reprezenta cu produsul cuaternional

Alicand regula (17) de inmultire a cuaternionilor :

se obtine :

Rezulta, astfel, o rotatie cu 120 in jurul unei axe egal inclinata cu cate 54

in raport cu fiecare dintre axele i, j, k .

7.4. Reprezentarea matriciala a rotatiilor folosind cuaternioni

Fiind un "vector" cu patru dimensiuni, cuaternionul poate fi reprezentat si in forma

matriciala :

unde v este vectorul in spatiul tridimensional, iar s este scalarul.

Respectand regulile (8) si (17), mai ales, produsul cuaternional se defineste matricial cu :

Cuaternionul unitate :

cu vectorrul

unde l + m2 + n2 = 1

si cu scalarul

se scrie in forma (48) astfel :

si : (51)

Cu acest cuaternion se poate calcula vectorul r' obtinut prin rotirea unui vector r in jurul unei axe D de vesor u, cu unghiul q

(fig.19)

Conform relatiei (45) ,vectorul rotit se calculeaza cu :

unde membrul drept al relatiei este constituit din produsul cuaternional scris in forma matriciala.

In figura nr.19 este reprezentata si rotatia sistemului de coordonate fix xOyz in jurul unei axe paralele cu D, cu acelasi unghi q . Sitemul de axe rotit este x1Oy1z1.

Observatie : componentele vectorului r' in raport cu axele x1Oy1z1 sunt aceleasi cu proiectiile vectorului r dupa axele xOyz ,intrucat rotatia in jurul axei D nu le modifica.Astfel :

Asa cum s-a vazut in relatia (42) produsul qrq-1 nu are parte scalara.La fel, ambii membrii ai ecuatiei de mai sus (53) au scalarul nul. Inlocuind q si q-1 cu valorile lor particulare se aujunge, efectuand un calcul laborios, la o forma ce poate fi scisa astfel :

unde R este o matrice 3 3 care poate fi privita ca fiind echivalenta cu o matrice de rotatie Rot(u,q). Detaliind calculele pentru Rot(u,q) se obtine forma ce o notam cu (55) :

Observatie : Calculele ce se efectueaza pentru a ajunge de la forma (53) la forma (54) demonstreaza faptul ca produsul qrq , utilizand forma particulara (51 ) pentru cuaternionul unitate q, reprezinta o rotatie de unghi θ a unui vector, in jurul unei axe de versor u .

De regula, in literatura de specialitate se foloseste o alta forma de reprezentare pentru Rot(u,q

Din relatia (51) avem ca elementele cuaternionului

   

sunt :

Se urmareste ca expresia (55) sa se scrie numai utilzand s, a, b si c .De pilda :

Efectuand toate calculele se obtine in final :

unde si sunt numiti parametrii Euler .

Rezumat :

Daca se utilizeaza un cuaternion de forma :

cu

Produsul cuaternional qrq este echivalent cu o rotatie ce poate fi exprimata si sub forma :

sau (55) :

7.5. Determinarea elementelor unui cuaternion pentru o

matrice de rotatie data

In cele de mai sus s-a prezentat modul in care se pot calcula elementele unei matrici de rotatie echivalente, pornind de la elementele unui cuaternion unitate folosit pentru a reprezenta o aceeasi rotatie.Este insa la fel de important de aratat si modul de echivalare in sens invers.

Astfel,fiind data o matrice de rotatie 3 3 ,in forma generala :

se pune problema de a calcula elementele corespondente ale cuaternionului ;

(50)

Acestea se obtin egaland (60) = (55) :

Din aceasta egalitate se obtine :

   

Intrucat trebuie sa fie 1 :

(61.1b)

In continuare urmeaza :

Ridicand la patrat si adunand :

Solutia pozitiva a ecuatiei corespunde unei rotatii de unghi pozitiv q £ , iar solutia negativa inseamna q > 180 . De obicei se considera q £

Cu scopul de a se obtine o mai buna precizie in calcul si pentru a se evita degenerari ale mecanismelor ,unghiul θ nu se calculeaza din ecuatiile (62) si (63) ci se foloseste o notatie intermediara t :

Cu aceasta se obtine :

Daca q = 0 se obtine matricea si nu este definit vreun cuaternion echivalent.

Nici parametrii l , m si n nu se calculeaza din ecuatiile (61) deoarece in cazurile in care θ are valori apropiate de 180 sau 0 se obtine o acuratete scazuta. De aceea se continua calculul egaland termenii diagonalelor principale ale celor doua matrici :

Se obtine in final :

Considerand cazul sinq > 0 parametrii l , m , n vor avea semnul acelasi cu cel al diferentelor dintre termenii aferenti din membrul stang ai ecuatiilor (61). Astfel :

l > 0 daca

daca s.a.m.d.

Se calculeaza intai valorile (67) pentru l, m, n si se gaseste care dintre acestea are cea mai mare valoare absoluta.

Pentru a se obtine cea mai buna acuratete, calculul se continua dupa cum urmeaza:

Daca l are cea mai mare valoare absoluta valorile lui m si n se calculeaza cu :

Daca m are cea mai mare valoare absoluta :

Daca n are cea mai mare valoare absoluta :

Cuaternionii si unghiurile Euler

Dupa cum s-a aratat , cuaternionul de forma particulara :

se utilizeaza pentru a reprezenta rotirea unui vector r in jurul unei axe de versor u cu un unghi θ , calculand produsul cuaternional qrq-1 .

Daca u este chiar chiar versorul axei Ox al unui sistem de coordonate, adica u = i, atunci cuaternionul (44) devine :

Acest cuaternion poate fi utilizat la reprezentarea rotatiilor in jurul axei Ox a unui sitem de coordonate.

In mod analog cuaternionii :

sunt cei care se folosesc pentru a reprezenta rotatiile in jurul axelor Oy respectiv Oz.

In acelasi timp, in produsul cuaternional qrq-1 r este un vector arbitrar. Acesta poate fi si unul dintre versorii i, j, k ai axelor unui sitem de coordonate xOyz. De aceea in figura nr. 19 se prezinta alaturi de rotatia vectorului r si rotatiile axelor sistemului de coordonate.

De aici rezulta o foarte importanta concluzie :

Matricile (55) si (59) Rot (u,q ) pot reprezenta totodata si rotatiile axelor sistemului de coordonate xOyz in jurul unei axe ( paralele cu Δ ) de versor u cu un unghi θ .

Rotatia completa (orientarea) axelor unui sistem de coordonate se obtine prin trei rotatii succesive, de unghiuri Euler, definite fie in raport cu axele sistemului de coordonate fix, fie in raport cu sistemul de axe rotit. Astfel, intre matricea compusa Euler a b g ) si matricile (55) sau (59) trebuie sa fie o egalitate.

Observatie : Din acest motiv elementele matricii (59) sunt numite parametrii Euler.

Cu aceste consideratii, sa exprimam cazul sitemului de unghiuri Euler de speta I (sau unghiurile Euler Z-X-Z ) folosind cuaternioni.Cei trei cuaternioni unitate care vor exprima cele trei rotatii succesive de unghiuri f q, respectivy, sunt :

Nu trebuie scapat din vedere faptul ca, daca rotatiile se exprima in raport cu axele sistemului de coordonate care se roteste ele se efectueaza in ordinea Rot (z,f ), Rot (x1,q ), Rot (z2,y ). Daca rotatiile se exprima in raport cu axele sistemului fix de coordonate ele trebuie efectuate in succesiune inversa, adica Rot (z ,y ), Rot (x,q ), Rot (z,f ). Pentru simplicitate se va considera acest al doile caz.

(fig.20)

Ca exercitiu se va utiliza reprezentarea matriciala a cuaternionilor.

Prima rotatie in jurul oricaruia dintre versorii i, j , k este data de

Cea de a doua rotatie se exprima cu :

In final, cea de a treia rotatie este data de :

Intrucat produsul cuaternional este asociativ, se poate scrie :

sau :

unde s-a notat cu produsul cuaternional final :

Inlocuind valorile elementelor cuaternionului unitate (72) si utilizand regula (49) de efectuare a produsului cuaternional in forma matriciala se obtine, dupa efectuarea calculelor :

sau :   

unde termenii :

sunt asa numitii parametrii Rodriguez-Hamilton, componentele cuaternionului echivalent pentru unghiurile Euler. Desigur ca si in acest caz a2 + b2 + c2 +s2 = 1.

Observatie : Trebuie semnalata deosebirea dintre semnificatiile lui θ utilizat in expresiile , Rot (u,q ) (55) , respectiv unghiul Euler θ din qEuler

Daca se face o comparatie intre reprezentarea orientarilor cu cuaternioni si cea clasica cu unghiuri Euler de speta I :

A. In reprezentarea cu cuaternioni se utilizeaza matricea qEuler :

si se efectueaza produsul cuaternional :

scris in forma matriciala.

b. Modul clasic de reprezentare este acela de a utiliza matricile de rotatie cu unghiuri Euler de speta I , (83) :

si cu aceasta se efectueaza produsul matricial :

unde r este , in ambele cazuri , unul dintre versorii i, j , k.

7.7.Analiza comparativa intre volumul de calcule

aferent utilizarii transformarilor omogene, respectiv

a perechilor vector- cuaternion.

Cea mai des utilizata metoda de reprezentare a transformarilor spatiale este aceea de a utiliza transformarile omogene, adica a matricilor cu 4 4 elemente reale.Acest mod de reprezentare a fost pentru prima oara utilizat de Denavit-Hartemberg, iar in robotica a fost introdus de R.P.Paul. Tranformarile omogene sunt mai bine cunoscute si prezinta avantajul utilizarii lor facile si eficiente pe calculator. Situarea (pozitia si orientarea) se exprima cu matrice transformare T :

notata in forma restransa T = [n o a p].Acest tip de matrici contin termeni redundanti pentru reprezentarea a sase grade de libertate independente.Ultima linie a matricii contine chiar numai 0-uri si 1. O astfel de redundanta implica un surplus nejustificat de volum de memorie si un timp de calcul crescut. Cu toate aceste dezavantaje, reprezentarea cu matrici continua sa ramana cea mai frecventa alegere in aplicatiile din robotica

Cuaternionii au fost intridusi in matematica de Hamilton,iar in robotica de Taylor. Funda, Taylor si Paul au pus si problema de a gasi o alternativa cuaternionala pentru reprezentarile cu matrici de tip T, denumindu-le perechi cuaternion-vector.

Folosind un cuaternion unitate q de forma :

o pereche cuaternion-vector reprezentand o rotatie q si o translatie p se scrie in forma :

Q = (q,p)    (85)

O astfel de entitate se memoreaza in calculator ca o tipleta (s,v,p),necesitand memorarea a sapte numere reale. Numerosi autori sunt de parere ca reprezentarea rotatiilor in spatiul tridimensional utilizand cuaternioni sporeste eficienta calculelor. Cu privire la timpul de calcul sunt si publicate analize comparative intre metoda de reprezentare matriciala si cea care utilizeaza cuaternioni.

a).Reprezentari interne si termeni de comparatie

In evaluarea avantajelor relative ale diferitelor metode de reprezentare trebuie avute in vedere atat gradul in care datele necesare pot fi compactate, precum si eficienta in efectuarea calculelor aferente operatiilor de baza. Determinant se considera, de regula, timpul de calcul. Masurat cu numarul de cicluri masina ale unitatii centrale a procesorului, timpul de calcul creste daca gradul de compactare al datelor este scazut, datorita cresterii duratei necesare pentru transferarea unui operand din/ in memorie.

In cazul utilizarii perechilor vector-cuaternion Q = (q,p) este necesara memorarea a sapte variabile reale. O transformare T = [n o a p] contine un numar semnificativ de termani redundanti. De aceea reprezentarea ei poate fi compactata :

Submatricea de rotatie contine trei vectori ortogonali n, o, a si se procedeaza numai la memorarea elementelor aferente lui o si a.Elementele lui n se calculeaza efectuand produsul vectorial n = o a. Astfel, sunt memorate in mod explicit numai elementele tripletei de vectori (o, a, p) si, ori de cate ori este necesara matricea T, n se recalculeaza.

Operation

Norm

Sequential Execution

Parallel Execution

T

Q

T

Q

+

+

PEs cyc

PEs cyc

Spatial Trans

Composition

Inverse

12 0

24 0

9 0

15 0

27 0

12 0

Normalization

16 2

3 1

Spatial Trans

Composition

Inverse

ø

ø

ø

28 2

40 2

25 2

18 1

30 1

15 1

11

11

Tabelul I prezinta o comparatie in ceea ce priveste timpii de calcul aferenti operatiilor efectuate utilizand transformarile omogene ,respectiv cuaternionii la :tranformarea spatiala a unui vector, compunerea a doi vectori si calculul inversei unui operator spatial.

Observatii

a.Simbolul " " din coloana "Norma" indica faptul ca nu este inclus timpul de calcul pentru a calculula apriori norma.

b. Simbolul " ø " are semnificatia ca timpul de calcul aferent calcularii normei a fost inclus in timpul de calcul total aferent efectuarii operatiei.

c. PE semnifica numarul de elemente care sunt procesate, iar cyc este numarul de cicluri de masina.

d. Simbolurile " * " , " + ", "√ " au semnificatia principalelor operatii matematice.

e. In tabel sunt indicati timpii de calcul atat pentru cazul procesarii secventiale, cat si pentru cazul procesarii paralele.

b).Rezumatul comparatiei cu privire la timpul de calcul

Din tabelul I cele doua modalitti de reprezentare sunt echivalente in ceea ce priveste calculul,in modul de lucru secvential si daca nu este necesar calculul normei.

Observatie : prin "secvential " se intelege aici calculul cu un singur procesor.

In cazul modului de procesare paralela, si fara utilizarea normei, calculul este mai rapid folosind transformari omogene.Daca insa este necesar si calculul normei, utilizarea perechilor cuaternion-vector este mai eficienta. Avand insa in vedere faptul ca norma unui cuaternion se calculeaza relativ rapid, calculul matricilor omogene de rotatie necesita un efort mai mare de calcul.

Cu toate ca diferenta dintre cele doua moduri de reprezentare, in ceea ce priveste eficienta in efectuarea calculelor, nu este semnificativa, perechile cuaternion-vector au nevoie de un volum de memorie mai restrans. Transferul de date din/ in memorie se face cu o importanta economie de cicluri masina la executia in timp real.

8.Integrarea cu senzorii, sarcina fundamentala in

legatura cu modelarea mediului

(sensor integration)

In modelarea mediului un aspect deosebit de important este acela al interactiunii - hardware si software - cu diversi senzori amplasati pe robot sau in mediu de la care se culeg informatii cu care se complecteaza modelul mediului.

Informatiile de la senzori se culeg in general prin monitorizare ( polling se traduce cu urmarirea starilor de la senzori intr-un mod " invizibil" pentru programul principal ). Un senzor transmite o informatie electrica - un semnal logic de 1 sau 0 - semnal care este "citit" pe linie de intrare a caLculatorului si apoi se interpreteaza prin program starea "citita". Citirea si interpretarea se executa in paralel cu executia programului principal.

Exista situatii in care in programul principal sunt incluse instructiuni specifice pentru declansarea de actiuni in functie de o anumita stare citita la un moment dat de la un anumit senzor. In functie de rezultatul prelucrat din informatiile furnizate de senzori, programul principal executa operatii de tipul " daca..atunci..altfel" ("ifthenelse").

Cel mai frecvent citati pentru roboti sunt senzorii de vedere, de gabarit, de proximitate, de forta-moment.

8.1. Notiuni fundamentale despre Sistemul de Achizitii de Date(SAD)

La utilizarea curenta a unui calculator personal achizitia de date se realizeaza direct la intrarile acestuia :

prin portul serial ,utilizand interfete de tip RS 232, RS 485 s.a.

prin portul paralel;

pe magistralele intrare-iesire standard ca USB,ISA,PC MCIA.

Observatii : Prin magistrala se intelege un set de conductori de legatura pe care se transmit informatii care au sursa si destinatia comune la un moment dat.

Prin port se intelege un set de conexiuni electrice care face legatura intre doua sisteme distincte.

La un calculator uzual prin conexiunile cu exteriorul se asigura dialogul cu dispozitivele ce sunt absolut necesare la utilizarea sa (tastatura,display-ul,mouse-ul,etc.).Daca insa calculatorul este utilizat la conducerea unui proces,mai ales in cazul proceselor complexe, trebuie achizitionate multe sau chiar foarte multe date si trebuie utilizat un SAD.

In figura 21 se prezinta schema bloc a unui SAD.

Fig.nr.21.Schema bloc a unui SAD

Un SAD (fig. 21) se compune din urmatoarele blocuri :

senzori si traductoare;

blocul de formatare a semnalelor;

placa SAD;

calculator;

pachetul software.

Rolul SAD este de a gestiona schimbul de informatii dintre senzori/traductoare si calculator: preia informatiile de la senzori si traductoare , le transmite catre calculator in forma si la momentele potrivite,transmite comenzile de la calculator catre senzori si traductoare,asigura alimentatrea senzorilor (daca este cazul).SAD este coordonatorul sistemului de perceptie din sistemul robot.

8.2. Senzori,traductoare si formatarea semnalelor (fig.21)

Observatie: In ceea ce priveste denumirile senzor si traductor, se constata o

neconcordanta in utilizarea acestora la autori diferiti.In robotica se considera ca

dispozitivele care transmit informatii cu privire la parametrii cinematici ai miscarilor

(pozitii ,viteze,acceleratii) sunt traductoare, iar toate celelalte sunt numite senzori (de gabarit, de apropiere,tactili,de alunecare etc.)

8. Blocul formator al semnalelor

Includerea acestui bloc in structura unui SAD ( fig.21) este absolut necesara pentru a asigura urmatoarele functiuni :

a. Amplificarea - semnalele culese de la senzori si traductoare sunt , in majoritatea lor, semnale de mica amplitudine,mai ales daca variatia marimii urmarite este mica. De cele mai multe ori amplitudinea acestor semnale trebuie marita pentru a fi apoi prelucrata.

b. Izolarea - in toate aplicatiile se procedeaza la separarea galvanica (izolare electrica) intre circuitele de comanda ( de " curenti slabi" ) si circuitele de putere (de

"curenti tari"), in general intre circuitele ce functioneaza nemijlocit in proces si cele de comanda.Izolarea este necesara pentru ca senzorii si traductoarele sunt amplasate pe partea de proces unde pot exista tensiuni/curenti mari,iar in caz de avarie ,daca nu ar exista izolare, apare pericolul de a se transmite avaria si la SAD si calculator. Izolarea galvanica se asigura prin optocuploare, transformatoare de separare sau folosind transmisia prin unde ultrasonice,radio,infrarosii.Semnalele sunt transmise de la circuitul de comanda catre cicuitele de putere din proces (sau invers ) fara legatura electrica. In figura nr.22 sunt prezentate doua variante de circuite care asigura separarea galvanica intre circuite.

( Inserare de figura )

Fig.nr.22.Exemple de circuite de izolare galvanica

Observatie : Ca principiu niciodata masa de la circuitul de comanda nu se leaga electric la masa circuitului ce functioneaza nemijlocit in proces.

c. Multiplexarea -din motive economice,astazi nu se mai foloseste cate un fir conductor pentru a transmite cate un singur semnal.Pe acelasi fir se transmit,de regula mai multe semnale.Principiul utilizat este acela ca fiecare semnal este transmis pe fir in momentele in care celelalte semnale nu trebuie transmise sau lipsesc.Tendinta de astazi este de a folosi acelasi fir de legatura pentru a transmite cat mai multe semnale.

Obervatie : Daca se analizeaza foaia de catalog a oricarui microprocesor/ microcontroler existent pe piata se constata ca la fiecare pin al acestora sunt indicate mai multe functiuni.Asta inseamna ca un acelasi pin este folosit pentru a transmite semnale diferite in momente sau situatii diferite.

Multiplexarea se realizeaza implementandu-se chei electronice care comuta accesul cate unui circuit la conductorul de legatura in momente convenabile sau dorite.

In cazul unui SAD, multiplexarea se foloseste cel mai convenabil in cazul operarii cu semnale lent variabile in timp.De pilda, la monitorizarea temperaturii mai multe traductoare de temperatura sunt legate la cate un canal de intrare al blocului formator,iar placa SAD comuta pe rand fiecare canal de intrare la sistemul sau de masurare si memorare a informatiei citite.

d. Filtrarea (fig.23) - este necesara pentru eliminarea semnalelor nedorite ce se suprapun peste semnale utile. In mediul industrial se produc multe zgomote de natura electromagnetica,care induc in circuite semnale parazite ce se suprapun peste semnalele utile.Gama de zgomote industriale este cuprinsa,obisnuit, intre 4 Hz si 10 kHz. Filtrarea se realizeaza cu circuite si/sau tehnici de filtrare.

( Inserare de figura )

Fig.nr.2 Filtrarea unui semnal

e. Excitatia - exista suficiente cazuri in care senzorii/traductoarele necesita curenti si/sau tensiuni de alimentare, fara de care nu pot functiona. Sunt unele cazuri in care alimentarea se face cu tensiune continua,respectiv alte cazuri in care tensiunea de alimentare este alternativa, cu diferite frecvente.

f. Liniarizarea - majoritatea traductoarelor au o caracteristica de tranfer (intrare-iesire ) neliniara.Aceasta neliniaritate influenteaza negativ rezultatul masurarii.Pentru a corecta efectele de neliniaritate se procedeaza la liniarizarea caracteristicii traductoarelor inca la nivelul blocului de intrare al SAD.

8.4. Hardware-ul SAD

Suportul hardware al unui sistem de achizitie de date este implementat pe placa SAD ( fig.21) ,denumita curent placa de achizitie. Astfel de placi se produc astazi ca produse de firma.

O placa SAD este intotdeauna construita in jurul unui microprocesor/micro- controler care coordoneaza intregul proces de achizitie. Principalele dotari pentru o placa SAD sunt :

a. Intrari analogice - sunt pinii de intrare ai placii, pe care sosesc semnale cu diverse forme de varitie in timp,cu frecventa si amplitudinea oarecare.Uneori se utilizeaza pentru acestea si denumirea de intrari nedigitale.

Avand in vedere faptul ca datele se prelucreaza, dupa achizitie, numeric (pe calculator),semnalele analogice achizitionate trebuie sa treaca printr-o conversie analog-numerica.Circuitul care realizeaza conversia semnalului analogic intr-un numar( binar) este denumit convertor analog-numeric (CAN).In figura nr.24. se prezinta simbolul utilizat pentru reprezentarea unui CAN. Pe o placa de achizitie se afla mai multe circuite integrate care, la randul lor, contin fiecare mai multe canale de conversie.

(Inserare figura )

Fig.nr.24.Simbolul CAN

Calitatile intrarilor analogice se apreciaza cu cativa parametrii caracteristici,dintre care mai importanti sunt :

- Numarul de canale - o placa de achizitie este mai performanta sau nu in functie de numarul de canale analogice de intrare disponibile. Canalele de intrare analogice pot fi de tip :

- Canal singular : pe un astfel de canal poate fi transmis un singur semnal (conectat la un fir conductor);

- Canal diferential : pe care se transmit doua semnale ( doua fire),deoarece intereseaza numai diferenta dintre cele doua semnale.

Observatie : Intrarile diferentiale sunt necesare pentru eliminarea zgomotelor; daca doua puncte apropiate, de prelevare prin semnale analogice a unei informatii,din proces sunt afectate de zgomotul industrial, semnalul de zgomot este acelasi in ambele puncte; amplificand numai diferenta dintre cele doua semnale zgomotul este eliminat; se procedeaza astfel la rejectia semnalului comun.

- Frecventa (Rata ) de esantionare - principiul de achizitie discreta a unui semnal continual este acela ca in momente dicrete se preleveaza cate un esantion din semnalul original (vezi fig. 25). Cu cat numarul de esantioane este mai mare semnalul achizitionat in forma discreta reproduce mai fidel semnalul analogic de origine.Cu cat numarul de esantioane prelevate este mai mic cu atat semnalul dicret achizitionat este mai eronat.

O placa SAD este mai performanta sau nu dupa cum poate achizitiona sau nu mai multe esantioane dintr-un semnal analogic de o anumita de frecventa. Calitatea achizitiei este mai mare daca rata achizitiei este mai mare, iar aceasta

depinde direct de viteza de lucru a procesorului placii. De asemenea, cu cat capacitatea memoriei de pe placa este mai mare poate fi memorat un numar mai mare de esantioane si calitatea achizitiei creste.Evident ca performantele superioare presupun si costuri de fabricatie mai mari.

( Inserare figura )

Fig.nr. 25. Discretizarea unui semnal analogic

- Rezolutia - in figura nr.26 se reprezinta modul in care un semnal analogic sinusoidal este convertit intr-un numar binar.In exemplul prezentat, prin conversie se

obtine un numar binar reprezentat pe 3 biti.Valoarea cea mai scazuta a semnalului sinusoidal are ca si corespondent numarul binar 000,iar valoarea cea mai mare (amplitudinea) sa corespunde valorii numerice 111.

Rezolutia este valoarea analogica (exprimata in volti de exemplu ) cu care trebuie sa se schimbe semnalul analogic de intrare, pentru ca numarul binar rezultat in urma conversiei sa se schimbe cu un bit.

Observatie : Cu cat numarul de biti de reprezentare a marimi de iesire este mai mare rezolutia este mai fina.

Fig.nr. 26. Rezolutia la o conversie analog-numerica

- Domeniul de valori - pe care o accepta o intrare analogica. Orice astfelde intrare are o valoare maxima admisa, respectiv minima acceptata, pentru

amplitudinea semnalelor analogice ce pot fi achizitionate.Exemple de valori mai frecvent intalnite sunt : 5 V , 12 V , 24 V , 0- 220 V.

Unele placi sunt prevazute chiar cu intrari pentru microsemnale,adecvate achizitiei de semnale analogice de la tipurile mai noi de senzori cocepute anume ca sa fie slab consumatoare de energi de alimentare. Pe traseul de transmisie a astfel de micosemnale trebuie luate masuri speciale de protectie impotriva zgomotelor(fire de legatura scurte, fire torsadate , fire ecranate).

- Acuratetea relativa - in ultimii ani termenul traditional de precizie a fost inlocuit cu cel de precizie.Definitia si detalierea acestor termeni nu fac obiectul lucrarii de fata.

- Timpul de stabilizare - procesul de achizitiede semnale presupune numeroase comutari ale componentelor electronice de pe placa SAD. In timpul comutatiei circuitele electronice se afla intr-un regim tranzitoriu,care este cel mai solicitatnt in functionarea acestora.In consecinta , fiabilitatea unui SAD creste daca circuitele sale ajung rapid la o stare stabilizata. In plus, si acuratetea prelucrarii semnalelor este mai buna daca regimurile tranzitorii se incheie dureaza mai putin.De aceea un timp de stabilizare scurt reprezinta un plus de calitate pentru o placa de achizitie.

b. Iesirile analogice - o placa SAD trebuie sa si transmita catre proces diferite semnale analogice; daca aceste semnale sunt generate de calculator atunci este necesara o coversie de la forma digitala la cea analogica .Circuitul care realizeaza o astfel de conversie se numeste convertor numeric-analogic (CNA).Simbolul unui CNA este cel reprezentat in figura nr.27.

( Inserare figura )

Fig.nr. 27.Simbolul CNA

Calitatile iesirilor analogice se apreciaza, la randul lor, cu cativa parametrii caracteristici.Unii dintre acestia sunt similari cu cei enuntati la intrarile analogice :

- Rezolutia la iesire - se exprima prin valoarea cu care se schimba semnalul analogic de la iesire daca numarul binar convertit se schimba cu un bit.

- Timpul de stabilizare - este timpul dupa care semnalul de iesire ajunge la valoarea corespunzatoare numarului binar pe baza caruia este generat.Din punctul de vedere al acestui parametru, convertoarele pot fi lente, sau rapide.

- Domeniul de valori -reprezinta plaja de valori pe care le poate avea semnalul analogic de la iesire.

- Acuratetea relativa;

c. Intrari / iesiri digitale - o placa de achizitii comunica cu procesul , cu echipamate periferice si / sau de testare.Comunicarea presupune intotdeauna si un schimb de semnale numerice.De aceea placa trebuie sa fie dotata si cu un numar de linii intrare / iesire ( input / output I / O ) pe care sa se vehiculeze semnale digitale.Numarul de linii I / O digitale este important fiindca de el depinde si numarul de unitati externe cu care poate comunica,desi si in acest caz se procedeaza la multiplexare.

La fel de importanta este si frecventa semnalelor numerice care se pot transmite / receptiona. Exista situatii in care comunicarea trebuie facuta cu procese

lente ( siteme de incalzire,sisteme de semnalizare luminoasa,sisteme de actionare, etc.) si comunicarea se poate realiza utilizand semnale de frecventa mai mica. In alte cazuri , comunicatia pretinde utilizarea de semnale de frecventa ridicata ( comunicatie prin unde radio sau in infrarosu ).

Specific pentru I / O numerice este ca semnalele utilizate sunt conforme unor standarde generale.Cel mai frecvent este utilizat stadardul TTL , in care printr-un un nivel de tensiune cuprins intre 4,75 V si 5,1 V se reprezinta nivelul logic " 1 " , iar un nivel de tensiune cuprins intre 0 si 0,45 V are semnificatia lui " 0 " logic.Valoarea curentului acceptat de standardul TTL este de pana la 16 mA.

Observatie : semnalele generate de placa SAD la nivel TTL nu au putere electrica suficienta pentru a comanda direct elemente de executie intr-un proces. De exemplu o servovalva dintr-un sistem hidraulic se comanda cu o tensiune de ordinul zecilor de volti si un curent de ordinul amperilor.In consecinta,semnalele de nivel TTL trebuie amplificate la nivelul adecvat utilizarii pentru comanda efectiva a unor dispozitive ce opereaza nemijlocit in procese.

Pentru semnalele numerice de iesire este importanta , ca parametru ce defineste calitatea sa, panta de crestere (slew rate) ce are influenta in dinamica unui proces ( fig.28).

( Inserare figura )

Fig.nr. 28. Parametrul slew-rate

d. Magistrale de date

Magistrala este un set de linii de conexiune electrica, prin care se asigura schimbul de semnale necesar la sinteza unei aceleeasi functii intr-un sistem.

Daca setul de conexiuni este dedicat transmisiei de date ea constituie magistrala de date.Numarul firelor ce o alcatuieste este multiplu de 8 pentru ca in cod numeric cuvintele sunt construite pe byti.

Observatie : Un byte contine 8 biti , iar cuvantul bit s-a obtinut prin comprimarea cuvintelor englezesti binary digit.

O placa SAD este cu atat mai performanta cu cat viteza de transmisie / receptie a datelor si cu cat volumul de date vehiculat este mai mare.

e. Magistrala de comanda

Setul de conexiuni ce constituie magistrala de comanda transmite numai semnale de comanda : start / stop , activare / dezactivare , validare / inhibare , transmisie / receptie etc Semnalele de comanda asigura sincronismul intre evenimente ce au loc in proces, pe placa SAD si in calculator.

Exemple : se asigura declansarea efectuarii conversiilor cu momentele de disponibilitate a semnalelor ce trebuie convertite ; se asigura sincronizarea transmisiei / receptiei de semnale; se sincronizeaza masurarea intervalelor de timp.

Schimbul de informatii intre placa de achizitie si proces se face pe baza unui protocol al schimbului de semnale. In multe cazuri acest protocol se face pe principiul hand-shaking tradus de catre unii autori cu principiul cerere-raspuns.

f. Circuite de numarare si temporizare ( CTC )

Orice echipament construit cu microprocesor/ microcontroler este dotat cu circuite dedicate cu care se efectueaza numararea evenimentelor de interes , respectiv contorizarea intervalelor de timp dintre momentele in care evenimentele se produc. Astfel de circuite sunt denumite de tip timer / counter ( CTC ) sau simplu timer. In limba romana se foloseste terminologia de circuit de temporizare / numarare , dar se accepta de obicei si denumirea din engleza.

Un CTC functioneaza in mod autonom fata de unitatea centrala de calcul degrevand-o de sarcina numararilor simple. Exista circuite CTC constructiv inglobate in microprocesoare / microcontrolere, dar se produc si circuite integrate

de sine-statatoare ,denumite uzual timere dedicate. Un CTC are doua moduri de operare de baza :

- modul counter ( modul numarator ) : in care cicuitul numara

impulsuri receptionate la una dintre intrarile sale;

- modul timer ( modul temporizator ) : in care circuitul devine generator de intervale de timp ( cu valori programabile) si semnaleaza, cu cate un semnal emis spre exteriorul sau, incheierea unei anumite durate.

La un circuit CTC sunt importante urmatoarele terminale :

- C/ T¯- este intrarea de la care se stabileste modul de operare al circuitului ( daca intrarea C/T se conecteaza la nivelul logic "0" CTC functioneaza in modul timer, iar trecerea acestei intrari pe nivelul "1" determina operarea in modul numarator)

- GATE - este numele unei intrari a CTC care se foloseste pentru validarea / invalidarea fuctionarii lui ( pozitionarea intrarii GATE pe nivelul logic "0" opreste circuitul , iar trecerea sa pe nivelul "1" permite intrarea sa in functiune);

- SOURCE - este intrarea de tact, la care soseste impulsul exterior care trebuie numarat sau cu care este impus ritmul de contorizare al intervalelor de timp (functie de modul de operare al CTC);

- OUTPUT - este pinul de iesire de la care se emite impulsul generat de CTC.

Pricipalii parametrii de apreciere a calitatii unui CTC sunt :

- frecventa de tact - un CTC este considerat rapid daca poate functiona la frecvente de tact ridicate.

- rezolutia - este determinata de lungimea cuvintelor de cod cu care un CTC poate opera. Cuvintele de programare sau rezultatul une numarari se pot reprezenta pe 8,16,24, 32 sau 64 de biti , in functie de capacitatea circuitului. Evident ca, intervalele de timp generate sau numarul evenimentelor contorizate se stabileste cu o mai mare finete (cu o rezolutie mai buna) daca se dispune de o reprezentare pe mai multi biti.

Observatie : Valori de catalog intalnite pentru CTC-uri utilizate la placi SAD sunt,de pilda, 24 biti / 20 MHz, respectiv 32 biti / 80 MHz. Diferenta calitativa dintre cele doua

perechi de valori exemplificate nu mai necesita expicatii suplimentare.

8.5. Pachetul de programe al unui SAD

Un sistem de achizitie de date este facut functional daca si numai daca, este dotat si cu un set de programe adecvat. Pachetul software este, de fapt ,integratorul de sistem SAD. Utilizarea unei placi SAD nu este posibila fara a o conecta la un calculator si fara pachetul de programe aferent.

Software-ul atasat unei placi de achizitii este alcatuit din doua pachete de programe distincte :

a. Software driver - este constituit din setul de programe care fac functionala placa de achizitie : programeaza direct registrele hardware de pe placa SAD , gestioneaza sistemul de intreruperi si prioritatile in deservirea acestora , stabileste modalitatile de partitionare si de acces la memorie ( inclusiv DMA- direct memory access ).

Observatie : ca sistem de operare pe calculator poate fi utilizat oricare dintre cele uzuale ( Windows, Linux).

b. Software de aplicatie - se compune din programe dedicate, elaborate pe specificul cate unui tip de proces. Aceste programe utilizeaza faciltatile conferite de programele driver si le completeaza cu abilitati de prelucrare a datelor achizitionate si de afisare a rezultatelor prelucrarii.

9. Sistem de vedere artificiala

Sitemul de perceptie al unui robot (sistem mecatronic in general) se compune din senzori si taductoare, care pot fi simple dar pot fi si sisteme complexe.In unele cazuri astfel de siteme sunt chiar deosebit de complexe, cum este si cazul sitemelor de vedere artificiala.

Un sistem de vedere artificiala este dotat cu senzori de vedere si cu un sistem de prelucrare a imaginilor ce are la baza un calculator propriu.Senzorii de vedere se realizeaza fie cu o camera TV fie , in ultimii ani, cu o camera CCD.

Observatie : CCD sunt majusculele de la cuvintele englezesti Charge Complete Device ,traduse in limba romana cu dispozitiv cu cuplare de sarcina. Acesta este un grup de dispozitive electronice dispuse in linie sau in matrice in interiorul carora se produce o conductie de sarcini electrice, mai mare sau mai mica in functie de intensitatea luminii cu care sunt luminate.

Camera sau senzorul CCD se leaga la un sistem numeric pentru procesarea imaginii. Acesta decurge in urmatoarele etape:

a). - digitizarea si memorarea imaginii culese;

b). - imbogatirea imaginii ( picture enhancement = completarea imaginii cu

parti pierdute la achizitie);

c). - reconstructia imaginii;

d). - recunoasterea de obiecte, recunoasterea scenei.

Observatie : digitizarea inseamna ca se imparte imaginea culeasa in suprafete elementare cat mai mici posibil .Cu cat memoria calculatorului de procesare este mai mare, cu atat suprafetele elementare sunt mai mici. O astfel de suprafata elementara se numeste pixel ( precurtatre de la picture element).


Fig.nr. Digitizarea unei imagini

Fig.nr.29. Discretizarea unei imagini

In acest fel se realizeaza discretizarea imaginii (transformarea unei imagini continue intr-o imagine compusa din elemente discrete).

Se stabileste un prag de iluminare considerat de referinta. Toti pixelii imaginii originale care sunt iluminati mai tare decat pragul stabilit primesc valoarea 1, iar cei iluminati sub valoarea de prag primesc valoarea 0. In memoria calculatorului se memoreaza imaginea pixel cu pixel cu valoarea de iluminare aferenta.

In timpul prelucrarii si digitizarii imaginii aceasta poate suferii deteriorari, de aceea este necesara in continuare imbogatirea imaginii. Aceasta e o "restaurare" a imaginii si se realizeaza folosind algoritmi speciali ( care folosesc integrala de convolutie).

Dupa imbogatire se realizeaza si reconstructia integrala a imaginii (folosind alti algoritmi).

Observatie : cu cat echipamentul de achizitie si transfer (in memorie) a imaginii este mai perfectionat, cu atat e mai simpla si mai precisa imbogatirea si reconstructia imaginii.

La robotii inteligenti este posibila si recunoasterea imaginii culese precum si interpretarea scenei.

Exemplu : intr-un anume loc din hala se afla o gramada cu diferite scule. Un sistem inteligent de prelucrare a imaginii poate recunoaste o scula ( pe care a invatat-o anterior) din gramada, indiferent de pozitia in care se afla si de care anume parte a ei este vizibila.

10. Cerinte cu privire la programul pentru

modelarea mediului

In unele cazuri senzorii ( de pilda cei de proximitate) se gasesc nu pe robot ci pe alte utilaje din celula flexibila de fabricatie ( de exemplu in procesul tehnologic folosit ca model in capitolul , pe cureaua conveiorului se amplaseaza senzori de prezenta pin ). Si in acest caz senzorii sunt monitorizati tot de calculatorul de modelarea mediului.

Un caz special este acela al capacitatii de a se realiza anumite strategii de forta. De exemplu, un caz deosebit de complex este conducerea unui robot care sa scrie cu creta pe tabla. In acest caz punctul caracteristic trebuie sa urmeze cu foarte mare exactitate o traiectorie impusa si, in acelasi timp, efectorul final tip dispozitiv de prehensiune trebuie sa dezvolte o anumita forta care nu trebuie sa fie nici prea mica ( creta sa lase urme pe tabla), nici prea mare( sa nu rupa creta).

In aceste situatii programul pentru modelarea mediului trebuie sa contina instructiuni distincte in cadrul limbajului, prin care sa expliciteze rezultatele fortei. In cazul cand exista astfel de instructiuni programul trebuie sa ofere si posibilitatea de afisare a informatiilor culese de la senzori.

Observatii : realizarea unor bucle de reglare automata a fortei, cu utilizarea senzorilor de forta-moment, este greu de realizat.

Cerinte cu privire la programul pentru modelarea mediului:

a). Cursivitate. In executia programului este o cerinta esentiala. Aceasta se asigura daca programul permite ramificari, realizarea de bucle, apeluri de subrutine si intreruperi. Specifica pentru aplicatiile de robotica este procesarea paralela (executie in paralel a mai multor programe, care se intalneste mult mai frecvent decat la calculatoarele obisnuite). Acest lucru este necesar in situatiile atat in situatiile cand intr-o celula opereaza mai multi roboti industriali, dar si atunci cand opereaza un singur robot ,deoarece utilajele din celula robotizata sunt comandate tot de sistemul de conducere al robotului.

Cursivitatea se asigura si prin dotarea limbajelor pentru programarearobotilor cu interpretoare, pentru ca operatorul uman sa nu fie obligat ca la fiecare corectura sa repete ciclul: editeaza, compileaza, porneste ( specific compilatoarelor).

De regula programele sunt dotate cu editoare de text,debuggere

( depanatoare de program) si opereaza cu un sistem sofisticat de fisiere.

b). Fidelitate. In reprezentarea modelului lumii exterioare trebuie tinut cont ca modelul este pastrat in calculator si ca pentru cele mai simple obiecte e destul de greu sa se asigure o fidelitate buna in raport cu lumea reala.

Discrepantele dintre modelul intern si realitate se stabilesc la inceputul programului si trebuie mentinuta pe toata durata executiei sale.

Observatie : la inceputul intocmirii programului operatorul uman trebuie sa stabileasca tolerantele admise intre realitatea fizica si reprezentare.

Deosebirile esentiale intre un limbaj de programare uzual si unul de programare pentru roboti constau in:

in primul caz, reluarea programului dintr-un anumit punct necesita doar salvarea in memorie a unor date;

in cazul robotilor industriali orice reluare presupune si redispunerea fizica in spatiu a obiectelor, exact in locurile in care acestea au fost si la prima parcurgere

a programului ( pentru a se asigura si in continuare corespondenta dintre model si realitate).

De multe ori fidelitatea modelului se strica si din cauza ca mecanismul din care e realizat robotul are o precizie limitata sau ca precizia sa de actiune difera in situatia apucarii cu bratul extins fata de cea a apucarii cu bratul strans.

Exemplu : exista situatii, la robotii industriali de asamblare, cand operatia tehnologica pretinde o precizie mai mare decat cea pe care mecanismul e capabil sa o realizeze. De pilda, inserarea unui pin intr-o gaura cand toleranta de realizare a gaurii e cu un ordin de marime mai mica decat precizia de pozitionare a robotului.Astfel de situatii sunt rezolvate dotand robotul cu o anumita complianta (chiar complianta inteligenta in ultimul timp)

Fidelitatea se imbunatateste daca se efectueaza corecturi asupra programului in timpul unor incercari preliminare. In multe procese tehnologice ( vopsire, nituire, gaurire, sudare) reluarea programului presupune aducerea de noi obiecte in locul acelora asupra carora robotul a actionat la prima rulare a programului. Se intalnesc si cazuri cand repetarea unei etape a procesului tehnologic presupune reexecutarea a alte 2 - 3 etape anterioare aceleia care se corecteaza de fapt.

11. Simularea proceselor robotizate.Realitatea virtuala

Realitatea virtuala este o "lume" creata prin programe pe calculator.Cu aceste programe se reprezinta diferite variante de evolutie a unor evenimente in functie de conditiile create de O.U. Exemplul cel mai cunoscut si raspandit este acela al jocurilor pe calculator.

Exista insa programe care creeaza realitate virtuala si pentru diferite procese

reale.De pilda, sunt in functiune siteme de simulare a conducerii automobilului, ce folosesc autoturisme reale care pot fi "conduse" de sofer pe "trasee" sintetizate artificial ,fara ca automobilul sa se deplaseze din laborator. Simulatoarele de zbor utilizate in pregatirea aviatorilor sunt astazi realizate tot utilizand mijloace software.Sunt cunoscute diferite aplicatii pentru analize sau lucrari de laborator, in care utilizatorul se afla la mare distanta,are reprezentat pe display-ul calculatorului sau intregul laborator si poate "opera" cu aparatura "din dotare".Operatiile reale din laboratorul propriu-zis se pot desfasura concomitent sau decalat in timp fata de manevrele utilizatorului de la distanta . Nu in ultimul rand, se pot mentiona aplicatile din cinematografie, in care numeroase scene la care "participa" actori reali sunt sintetizate cu calculatorul, fara ca spectatorul sa poata deosebi scenele filmate in medii reale de cele sintetizate.

Programele ce sintetizeaza relitatea virtuala sunt instalate pe sisteme de calcul extrem de puternice,dotate cu memorii foarte mari si sisteme de interfatare performante,care stabilesc o legatura bidirectionala cu utilizatorul. Sistemele contin baze de date uriase,care contin informatii cat mai complete despre procesele ce le simuleaza care se completeaza permanent cu experientele si cunostiintele noi dobandite, sunt dotate cu elemente de inteligenta artificiala.

Si in robotica se procedeaza la utilizarea de programe ce sintetizeaza relitate virtuala. Sunt diponibile discuri cu care OU poate sa creeze pe diplay-ul unui calculator o celula robotizata,alegandu-si componentele necesare : masini unelte,instalatii automate aducatoare de piese neprelucrate,instalatii de evacuare a pieselor fabricate,depozite de scule, sisteme de control al calitatii,variante de roboti s.a. Cu astfel de programe OU poate simula diferite procese tehnologice robotizate, poate "invata" robotul sa execute operatiile ce trebuie sa le execute.Robotul "dobandeste experienta" pe parcursul invatarii si "tine minte" operatiile ce le-a "invatat".Dexteritatea robotului se optimizeaza o data cu cea a OU care foloseste

programul.

Toate firmele producatoare de roboti au dezvoltat programe de simulare cu care inginerul proiectant concepe o noua aplicatie. Proiectantul foloseste o bilblioteca de simboluri cu care reprezinta grafic toate componentele,la amplaseaza si le interconecteaza in cadrul unei celule sau linii de fabricatie ce se doreste a fi nou creata.Pe ansamblul nou proiectat se pot derula,pe calculator, diferite procese tehnologice ce se vor desfasura ulterior si in realitatea propriu-zisa.

In ultimul timp s-au creat si siteme ce permit programarea robotilor in aplicatiile sintetizate virtual. Se concep si se scriu programele, se realizeaza verificarile si eventualele corecturi pe sistemul virtual ,se obtin programele in varianta lor finala,iar acestea se folosesc direct si la robotii reali atunci cand se incheie constructia fizica.In acest fel se obtine o importanta economie nefiind necesara utilizarea robotilor si masinilor adevarate in faza de alcatuire si verificare a programelor de lucru.Sunt doar necesare mici ajustari la punerea in functiune a unei noi celule sau linii de fabricatie.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1941
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved