Sunteți pe pagina 1din 34

Universitatea Tehnica, Cluj-Napoca

Proiect la Roboti Industriali

Coordonator :

Studenti :

CINEMATICA ROBOTULUI RB 4 EV
Robotul RB 4 EV are menirea de a fi folosit numai in scopuri educationale sau ca hobby. Nu are precizia si robustetea necesara unui robot industrial. Are 6 axe, fiecare dintre ele fiind actionata de un motor pas cu pas. Robotul are 5 grade de libertate; rotatia corpului, a umarului, a cotului si a incheieturii. Al 5-lea grad de libertate il reprezinta indoirea incheieturii. Robotul este controlat prin manipularea individuala a unghiurilor articulatiilor. In termeni mai tehnici, acestea se refera la miscarea in spatiu pe care o pot efectua aceste articulatii. Nu exista un feedback intre robot si calculatorul care-l controleaza. Limitarile soft sunt calculate si mentinute de sistemul de control astfel incat sa protejeze robotul. Acest lucru este departe de ideal si prezinta o multime de probleme. De exemplu, daca alimentarea spre robot este intrerupta, in momentul in care sistemul este repornit, nu putem stii pozitia curenta a robotului.

Figura 1 (d1 = 214mm, a2 = 200mm, a3 = 150mm, d5 = 85mm) MISCARE Rotirea corpului Rotirea umarului Rotirea cotului Indoirea incheieturii Rotirea incheieturii LIMITA 240 grade 150 grade (75 inainte, 75 inapoi) 120 grade (75 inainte, 75 inapoi) 180 grade 360 grade

Cele 6 axe sunt controlate simultan. Aceasta inseamna ca daca o operatiune complexa este programata, toate cele 6 axe se vor misca intr-o maniera coordonata, astfel ca toate cele 6 axe vor ajunge la destinatia lor finala simultan. Aceasta inseamna o miscare coordonata. Din Figura 1: (1) Desenati o schita a robotului in pozitia ZERO si identificati si construiti axele corespunzatoare (2) Construiti tabela cu parametrii Denavit-Hartenberg

(3) Determinati matricile T individuale 0 (4) Obtineti ecuatia cinematica directa 5T pentru RM-101 (5) Dezvoltati un algoritm simbolic fara erori pentru cinematica inversa folosind limitarile impuse de articulatiile de mai sus Pentru punctele (4) si (5), scrieti doua programe folosind MATLAB-ul care sa rezolve problema. De exemplu, daca introduceti valorile incheieturilor, cinematica 0 directa sa furnizeze ca rezultat elementele 5T . Determinati daca rezultatul este corect.
0 Apoi luand rezultatul 5T ca date initiale, solutia inversa ar trebui sa aiba ca rezultat unghiurile de start initiale. Aceasta procedura va demonstra ca algoritmul dumneavoastra functioneaza corect. Pentru problema de cinematica inversa solutia ar trebui sa intercepteze si sa identifice corect cauza atunci cand avem date initiale eronate.

(6) Comparati rezultatele obtinute prin programul scris in MATLAB cu functiile ikine si fkine din Toolbox-ul Robotics. Care dintre ele necesita mai putine calcule? (Indicatie: puteti determina acest lucru cu ajutorul functiei MATLAB flops). Dimensiuni pentru robotul RB 4 EV: Inaltimea articulatiei umarului deasupra mesei = 214mm Lungimea bratului superior = 200mm Lungimea bratului inferior = 150mm Distanta dintre incheietura si centrul palmii = 85mm

CINEMATICA ROBOTULUI RB 4 EV Parametrii DH


Mai jos este schitat un robot EV4 RB in pozitia ZERO (toate unghiurile theta ale articulatiilor = 0)

Exista mai multe variante posibile a acestei pozitii. Am ales-o astfel incat rotatia pozitiva in jurul axei articulatiei orizontale sa ridice incheietura (in loc sa o coboare). Se observa ca toate axele X sunt paralele. Din schita, putem obtine parametrii DH dupa cum urmeaza: legatura 1 2 3 4 5 unghi - theta variabil variabil variabil variabil variabil offset - d d1 0 0 0 d5 lungimea - a 0 a2 a3 0 0 rasucirea - alpha 90 0 0 90 0

Pentru acesti parametrii se obtin urmatoarele matrici A:

Constantele (toate in mm): d1 = 214mm; a2 = 200mm; a3 = 200mm; d5 = 85mm

Cinematica directa
Inmultind rezultatele matricilor A, rezulta urmatoarele elemente in T5:

Pentru toate unghiurile din incheieturi egale cu 0, rezulta urmatoarea matrice de transformare a efectorului final. Comparati rezultatul cu figura de mai sus - ne indica directia axelor sistemului 5 si pozitia originii fata de sistemul 0.

Mai mult, urmatoarele verificari laborioase pot fi facute pentru elementele T5:

Alte verificari computerizate ar trebui de asemenea efectuate. Acestea sunt discutate mai jos cand cinematica directa este implementata in MATLAB.

Cinematica inversa
Incepand cu:

rezultatul inmultirii matricilor este:

si

Din elementele (3,3) si (3,4) se obtine:

de unde:

sau

Cea mai buna solutie este sa se foloseasca px si py, in cazul in care ambele sunt diferite de zero. Altfel vom folosi ax si ay. Daca si acestea sunt zero, atunci pozitia in T5 se afla pe axa Z0, cu mana indreptata in sus. In acest caz setam theta_1=0. A doua solutie (la 180 grade diferenta) poate fi folosita daca limitele incheieturilor sunt mai mari decat a primei solutii. Din elementele (1,3) si (2,3) se obtine:

de unde (din moment ce theta_1 este cunoscut)

Acuma, comparand elementele (1,4) si (2,4) si folosind variabile auxiliare:

avem sistemul de ecuatii:

Daca ridicam la patrat ambele ecuatii si le adunam, si ne folosim de identitatea trigonometrica cos(A+B)-A)=cos(B), vom obtine:

In acest moment suntem blocati, deoarece nu putem gasi o expresie independenta pentru S3. Suntem nevoiti sa folosim:

Pentru Mitsubishi, unghiul cotului trebuie sa fie intotdeauna negativ, astfel incat sa putem extrage radicalul. Daca C3 este mai mare decat 1 (radicalul nu ar mai avea solutii reale), indica faptul ca pozitia dorita nu poate fi atinsa (t1 si/sau t2, care depind de px si py, sunt prea mari). Ne putem intoarce acum la sistemul de ecuatii de mai sus. Daca exprimam termenii in C23 si S23 vom obtine:

Se poate rezolva folosind regula lui Cramer, pentru a obtine expresiile pentru S2 si C2. Folosim aceste valori cu functia atan2, si se obtine:

Deoarece stim theta_2 si theta_3 rezulta:

Ultimul unghi al articulatiei se obtine din elementele (3,1) si (3,2)

astfel incat

Cu aceasta se incheie cinematica inversa. De-a lungul rezolvarii ar trebui sa verificam operatiile ilegale (de exemplu extragerea radicalului dintr-un numar negativ). Este interesant de observat ca am obtinut toate relatiile necesare solutiei, din inmultirea primei matrici de mai sus. Acesta nu este cazul general am fost norocosi!

Control Computerizat al Robotilor

Analiza Vitezei Folosind Iacobianul Proiect RI 2005


Avem in figura de mai jos, un manipulator 3R. Articulatia umarului este la o distanta de 0.5 m deasupra planului XY. Legaturile umarului si cotului sunt de 1.0 m respectiv 0.8 m lungime.

Proiectul trateaza unele analize din punct de vedere cinematic ale acestui robot. Se poate lua in considerare conceperea un program de calculator cu ajutorul caruia sa executati o parte din calcule. Fiti atenti la parametrii DH si matricile A ale acestui robot, ele fiind identice cu primele trei legaturi ale Mitsubishi, sau cotul manipulator discutat in clasa. 1. Gasiti ecuatiile reprezentand cinematica inaintarii robotului. Puteti face aceasta prin inspectia sau prin utilizarea produsului de A-matrici (sau ambele pentru a va verifica munca!).

2. Gasiti Iacobianul manipulatorului. Fiti atenti ca aceasta implica numai primele trei randuri si coloane, fiind disponibila doar pozitia varfului (nu si orientarea). Trebuie sa o faceti simbolic de mana daca este necesar, desi MATLAB are o cale de a determina Iacobianul simbolic al unui set de ecuatii exprimat ca si coarde simbolice. Se poate folosi si ROBSYM daca este disponibil. 3. Gasiti viteza varfului in coordonate Carteziene pentru urmatoarele conditii (ex. completati coloanele libere din tabel). Verificati raspunsurile unde se poate face cu usurinta.

4. Gasiti vitezele unghiulare ale articulatiei, necesare sa dea urmatoarele viteze de varf la pozitia robotului indicata. Comentati rezultatele in ultimele sase randuri ale tabelului.

5. Determinati pozitia unica (pozitiile unice) a (ale) manipulatorului examinand Iacobianul. Descrieti semnificatia fizica a pozitiei unice (pozitiilor unice). 6. Considerati o traiectorie a varfului care porneste de la (X,Y,Z)=(0.8, 0, 0.6) si se misca in linie dreapta paralela cu axa +Y la o viteza constanta de 0.2 m/s.

10

Calculati pozitiile necesare si vitezele unghiulare ale articulatiei pentru aceasta traiectorie la intervale de 0.025 m parcurse. Trasati aceste viteze unghiulare ale articulatiei cat mai mult posibil. Memorati valorile det(J) de-a lungul traiectoriei si trasati-le. Comentati rezultatele acestei simulari. 7. Considerati o alta traiectorie incepand de la (X,Y,Z)=(0.1, -1.0, 0.8) deplasandu-se in sensul pozitiv al axei Y la viteza constanta de 0.2 m/s. Calculati pozitiile si vitezele unghiulare necesare ale articulatiei pentru aceasta traiectorie la intervale de 0.025 m parcursi. Trasati aceste viteze unghiulare ale articulatiei cat mai mult posibil. Memorati valorile det(J) de-a lungul traiectoriei si trasati-le. Comentati rezultatele simularii.

Analiza vitezei utilizand Iacobianul Partea 1: Cinematica directa


Din figura robotului 3R vom avea urmatorii parametrii D.H.:

Din acesti parametrii matricile A sunt aceleasi ca si la primele trei studiate la robotul Mitsubishi in tema anterioara. Inmultind matricile A vom obtine elementele matricii T3 care dau pozitia efectorului final

Doar aceste elemente ne intereseaza aici deoarece nu avem articulatii care sa afecteze sau sa controleze orientarea efectorului final. Pozitia elementelor putea fi usor gasita prin investigarea mai atenta a acestui robot , fara a recurge la calcule cu matrici.

Partea a 2-a: Iacobianul


Luand in considerare derivatele corespunzatoare Iacobianul va fi urmatorul:

11

Vezi in sectiunea de mai jos cum realizam aceasta in Matlab. Evaluarea numerica a Iacobianului a fost programata in jacob3r.m . Acesta foloseste un vector care contine valorile din articulatie si returneaza in dimensiune 3X3 Iacobianul.

Capitolul 3: Tipuri de viteze


Programul kinem3r.m a fost scris pentru a afla rezultatele necesare acestei teme ,plus o multime de alte lucruri interesante descries mai jos.Viteza efectorului final este aflata de evaluarea:

Aici este o parte a fisierului:


>kinem3r PART 3 : TIP SPEEDS: % pozitia articulatiei in grade tdeg = 0 0 90.0000 30.0000 0 0 0 60.0000 0 90.0000 90.0000 -40.0000 % joint rates in rad/sec tdot = 1.0000 0 -1.0000 0.5000 0 1.0000 1.0000 -0.2000 0 -1.0000 1.0000 0.6000 % world velocity components XDOT = 0 0 1.0000 -0.2577 1.8000 0 -1.6000 0.5739 0 1.0000 1.0000 0.2007

Fiecare coloana din aceste iesiri contine data pe fiecare rand a tabelului din tema.notati ca am folosit valori pentru viteza unghiulara in radian/secunda.Primele doua coloane sunt simple verificari ca totul merge bine-aceste viteze pot fi verificate usor printr-o geometrie simpla.

Capitolul 4: Cererea pozitiei articulatiei


Aceste viteze unghiulare sunt obtinute prin gasirea Iacobianului si apoi evaluand:

12

Continuand cu MATLAB vom gasi urmatoarele :


PART 4 : JOINT RATES are: % joint positions (degrees) tdeg = 0 30.0000 30.0000 30.0000 30.0000 30.0000 30.0000 0 30.0000 30.0000 10.0000 5.0000 2.0000 1.0000 0 90.0000 -30.0000 -10.0000 -5.0000 -2.0000 -1.0000 % desired velocities (m/s) XDOT = 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 -1 0 0 0 0 0 % required joint rates (rad/sec) tdot = NaN 1.8583 0.2197 0.2051 0.2038 0.2034 0.2034 NaN -1.1160 -2.7321 -7.8666 -15.6734 -39.1417 -78.2715 NaN 1.1998 5.6896 17.5505 35.1906 88.0390 176.0959

Se dovedeste ca atunci cand theta_3 este zero Iacobianul este singular (o sa vedem un pic mai incolo de ce) - datele vitezelor unghiulare in prima coloana sunt NaN.De fapt, in aceata pozitie,robotul nu este capabil sa se miste in directia +X deloc, asa ca stabilind o viteza de 1 este pic prosteste.Cerand o viteza de -1 in directia X conduce la o alta problema interesanta robotul poate sa se retraga din aceasta pozitie fie cu cotul sus sau cotul jos.Aceasta este numita (Teoria Mecanismului) un punct de bifurcatie,din moment ce sunt doua moduri posibile de a parasi configuratia.In teoria mecanismului,un indicator de bifurcatie a punctului este aceea ca Iacobianul mecanismului este singular.Ultimele 5 coloane ne arata aceea ca atunci cand bratul se apropie de o configuratie stransa aceea ca vitezele unghiulare cerute pentru a obtine acelasi Cartezian viteza creste foarte mult,foarte repede.Vom vedea aceasta mai detaliat in partea a 6a.Ceea ce se intampla este aceea ca atunci cand robotul se apropie de aceasta pozitie Iacobianul incepe sa devina singular sis a creasca foarte mult vitezele unghiulare cerute.

Capitolul 5:Pozitiile singulare


Examinand Determinantul Iacobian dat symbolic mai deasupra vom gasi aceea ca det(j)=0 cere urmatoarele:

Aceasta indica ca atunci cand theta_3 este egal cu zero J este singular.Aceasta este suprafata exterioara a zonei de lucru pentru acest robot si are forma unei sfere cu centrul in articulatia umarului.Alta posibilitate esca ca daca theta_3 este + sau - 180 de grade umarul este retras in spate din reflex.aceasta este suprafata interioara a zonei de lucru-de asemenea o sfera centrata in articulatia umarului.Ultimas posibilitate implica termenul din paranteza.Aceasta reprezinta distanta radiala a punctului din multimea de pe axa Z.Chiar, daca acesta tinde la zero cu un punct situat oriunde pe axa Z, Iacobianul va fi singular.

Capitolul 6 : Analiza Traiectoriei

13

Pentru a face aceasta parte a laboratorului , avem nevoie sa facem o reprezentatie a solutiei cinematice inverse. Aceasta in esenta este asemanatoare celei de la Mitsubishi, avand insa legatura doar cu primele 3 articulatii. Avand in vedere faptul ca este foarte similara nu va fi repetata aici.(vezi solutie la tema Nr. 2). O solutie MATHLAB este in cadrul fisierului invkin3r.m. aceasta verifica o eventuala pozitie nepermisa cauzata de specificarea unui punct inafara celor de functionare normala, insa nu impune limitari de articulatie. Programul ofera doar solutia Cot SUS (theta_3<0). In cadrul fisierului document kinem3r.m poate fi setata o pozitie de inceput (x,y,z) cat si o viteza de varf constanta incrementata intre pozitiile examinate. Pozitia de start si viteza date in tema erau : Pozitia de start :
X= 0.8000 0 0.6000

Viteza de varf :
XDOT = 0 0.2000 0

Programul incrementeaza vectorul X de o valoare (cantitate) data (I folosit [0;0.025;0], ie incrementeaza in directia Y) pana cand cinematica inverse returneaza o eroare (cauzata de faptul ca punctul dorit este prea departe). Aceasta s-a intamplat pentru : Pozitie nepermisa : prea departe
X= 0.8000 1.6250 0.6000

In timpul comutatiei , unele din date au fost salvate pentru a produce urmatorul grafic.

14

A se observa ca , cu cat varful se apropie de marginea de invelis , vitezele articulatiei incep sa varieze foarte rapid. Este deasemenea interesanta evolutia grafica a numarului Iacobian conditie in timpul procesului. Vom obtine urmatorul grafic :

15

Stim ca in timp ce matricea se apropie de forma finala (particulara) , numarul devine foarte mare. Acesta este pus in evidenta in figura de mai sus. Am privit o alta traiectorie. Aceasta incepe cu urmatoarele date initiale : Pozitia de start :
X= 0.1000 -1.0000 0.8000

Viteza De Varf :
XDOT = 0 0.2000 0

Aceasta cale incepe de pe partea negativa a axei Y (-Y) si trece foarte aproape de axa Z (la distanta de doar 0.1 m) la o inaltime de 0.8 m (0.3 m deasupra umarului) in timp ce se deplaseaza in directia axei +Y . Aici avem calculate Vitezele articulatiilor :

16

Observam ca in timp ce varful trece peste axa X (Y=0) , viteza corpului articulatiei devine foarte mare. Aici vedem ce se intampla cu numarul conditie al Iacobianului :

17

Langa Y=0 , numarul conditie creste substantial acest lucru se intampla cand varful ajunge foarte aproape de suprafata interioara a plafonului de lucru , si de axa Z. Ati putea sa experimentati (incercati) alte traiectorii sa vedeti ce se intampla , de exemplu , daca , calea trece prin axa Z. De tinut minte ca procedura cinematicii inverse invkin3r nu implementeaza limite de articulatii. Daca erau limite pe articulatiile umarului si cotului , este posibil ca in timp ce varful trece prin axa Z , bratul s-ar putea intoarce la 180 de grade instantaneu nu este de dorit !

18

Operatii simbolice folosind Matlab 4.0 Nota:Aceasta este scrisa pentru versiunea 4.0 Procesarea simbolica pentru versiunea 5.0 este diferita si chiar mai usoara.
Pentru ca multi studenti intetioneaza sa foloseasca procesarea simbolica a Matlab si pentru ca se pare ca au probleme cu aceasta in special cu simplificarea expresiilor, a fost pregatit un fisier jac3rsym.m. Mai intai se defineste cinematica directa.Raspunsul Matlab-ul folosind comanda pretty-printing este:

Acest sistem simbolic care da coordonatele (x,y,z) e definit ca sistemul w. Variabilele sunt definite in vectorul v. Iacobianul e generat folosind urmatoarele comenzi ale Matlab-ului: %evalueaza Iacobianul simbolic J =Iacobian(w,v); Disp( Printeaza iacobianul ) Pretty(J) Aceasta comanda produce urmatorul raspuns:

Avand Iacovianul putem gasi determinantul. Fara a simplifica folosim urmatoarele comenzi ale Matlab-ului: %se gaseste determinantul lui J d = determ(J); d2 =simplify(d); d3 =simple(d2); 19

d4 =subs(d3,-sin(t3),cos(t2+t3)*sin(t2)-sin(t2+t3)*cos(t2)); disp(Pretty-print of det J :) pretty(d4) Rezultatul comenzii este : -a2 sin(t3) a3 (a2 cos(t2) + a3 cos (t2+t3)) Aceasta expresie este in acord cu cea de mai sus. Pentru a gasi inversa simbolica a Iacobianului se foloseste secventa de comanda incluzand comenzi pentru simplificari: %gaseste inversa Iacobianului invJ = inverse(J); inv1 = simple(invJ); inv2 = subs(inv1,-sin(t3),cos(t2+t3)*sin(t2+t3)*cos(t2)); disp(Printeaza inversa Iacobianul :) pretty(inv2) Raspunsul comenzii este:

Este evident ca inversa Iacobianului va fi unic daca sin(t3) =0 sau daca %1 e 0. Acestea sunt concluziile la care am ajuns mai sus. Concluzia este ca daca folosesti operatiile simbolice ale Matlab-ului trebuie sa folositi si simplificarile adiacente si chiar simplificari proprii pentru ca cele ale Matlab-ului nu pot face chiar totul.

20

Analiza Dinamica Utilizand Ecuatiile Lagrange-Euler


Proiect RI 2005

Aceasta parte dezbate un simplu robot 2R a carui schema o avem in figura. Modelul dinamic a fost considerabil modificat considerand masa fiecarui brat concentrata in centrul de greutate al acestuia . De mentionat ca robotul este in planul X0Y , cu greutatea actionand in jos. Masele bratelor sunt 2m respectiv m , lungimea lor fiind l .

1) Derivati ecuatiile de miscare ale acestui manipulator utilizand analiza Lagrange. Odata obtinute aceste ecuatii , examinati atent fiecare termen pentru a verifica ecuatiile. 2) In aceste ecuatii de miscare identificati urmatoarele contributii la cuplurile T1 si T2 din articulatii Inertia proprie Inertia de (coupling) Cuplul Coriolis Cuplul centripet Cuplul de greutate 3) Dorim sa gasim cuplurile din articulatii necesare pentru a misca robotul dintr-un punct in altul ,in planul de lucru. Pentru a asigura o miscare neteda intre punctul de pornire si cel de oprire va trebui ca pozitia fiecarei articulatii sa varieze conform functiei urmatoare:

21

Figura ne arata variatia functiei s(t*) in functie de valoarea raportata t* unde

iar T seg este timpul total real (in secunde) necesar miscarii.Aceasta functie trebuie sa aiba urmatoarele proprietati:

Va trebui sa determinam ce functie sa utilizam pentru aceasta.Va sugerez o functie polinomiala ,iar in acest caz va trebui sa determinati coeficientii acestei functii din conditia ca functia trebuie sa satisfaca conditiile din tabel. Odata ce functia de miscare s(t*) este cunoscuta vom putea determina pozitia , viteza si acceleratia fiecarei articulatii (separat) utilizand urmatoarele relatii:

22

In stanga avem parametrii cinematici doriti pentru calculul cuplurilor din articulatii. Tseg apare in dreapta deoarece derivatele lui s sunt in functie de t*. Odata avand aceste lucruri vom putea obtine cuplurile din articulatii necesare pentru a misca robotul din pozitia initiala (30,-60) in pozitia finala (80, -30) (unghiurile fiind in grade) ,pe durata a 3 secunde ,unde m = 20kg si l=0.75m. Avand aceasta functie ,salvati valorile cuplurilor si apoi reprezentati-le in functie de timp. Cat de mult se modifica cuplul maxim necesar daca miscarea se efectueaza in 1 secunda? Daca doriti puteti reprezenta fiecare cuplu separat: de inertie, coriolis ,centrifugal si de greutate. 4)Daca chiar sunteti ambitiosi puteti crea o animatie a miscarii robotului.Aceasta tema nu e obligatorie , dar e usor de realizat si foarte interesant se vazut.

Indiciu special
Este pusa o rutina in Matlab care returneaza dinamica inversa. Aceasta a fost creata de NEDYN unul din generatoarele simbolice bazate pe algoritmul Newton-Euler ,si care a fost convertita din FORTRAN intr-un fisier m. Fisierul se numeste r2idyn.m Puteti folosi aceasta rutina pentru a verifica rezultatele din propria rutina de dinamica inversa.

23

Dinamica Inversa a Manipulatorului 2R


In figura urmatoare este prezentat robotul

Pentru analiza urmatoare theta_1 va fi masurat de pe axa X iar theta_2 relativ cu prima legatura

Partea 1: Formularea ecuatiei de miscare


Calculand viteza centrului de greutate a fiecarei legaturi, apoi energia cinetica, si combinand-o cu energia potentiala gravitationala obtinem formula lui Lagrange dupa cum urmeaza:

Acum putem utiliza derivate de la formula pentru a obtine cuplul articulatiilor dupa cum urmeaza:

Cu ajutorul algebrei am ajuns la urmatoarele expresii pentru cuplul articulatiilor.

24

Acesti termeni dinamici pot fi aranjati in forma ecuatiei dinamice generale.

Unde

Daca scriem ecuatiile in felul acesta ,vom obtine urmatorii termeni dinamici: matricea inertiei

In aceasta matrice, elementele de pe diagonala sunt termenii inertiei,iar ceilalti reprezinta inertiile cuplului.De notat ca matricea inertiei este simetrica. termenii coriolis si centripeti

25

Termenii care implica produsul puterilor sunt termenii coriolis,termenii care implica patratul puterilor sunt termenii centripeti. Termeni gravitaionali: 4C + C12 1 G (q ) = mgl 1 2 C12

Verificare: Verificarea acestor ecuaii este oarecum dificila. Mai nti ar trebui s ne asigurm ca din punct de vedere dimensional ecuaiile sunt scrise corect. Apoi trebuie s fim siguri de ceea ce conin ecuaiile plus ce ar putea sau ar trebui sa lipseasca din ele. Termenii gravitaionali pot fi verificai direct. Cu puin intuiie putem efectua cateva experimente mintale pentru a examina mcar semnul celorlali termeni. De exemplu, dac vrem s meninem prima legtur nemicat in timp ce o accelerm pe a doua, atunci un termen ar trebui sa apar implicnd acceleraia lui theta_2 n expresia pentru T_1. Pe deasupra, acest termen trebuie sa aib aceeai direcie ca i legatura 2. Verificarea variabilelor coriolis si cele centripete este puin mai dificil. Este ntotdeauna util s avem un mod independent de calculare a soluiei. Un fiier MATLAB (r2idvn.m) a fost creat pentru a calcula dinamica invers pentru un manipulator ce folosete un generator simbolic (bazat pe aproximrile Newton-Euler). Ecuaiile rezultate in continuare au fost codate ntr-un alt fiier (idvn2r.m). Cele dou rutine vor avea aceleai argumente de intrare. Un program de test (idvntest.m) a fost generat in care starile cinematice au fost generate cu valori de poziie, vitez, i acceleraie pentru cele dou legturi selectate aleator n intervalul [-2,2]. Rezultatul pentru cele dou rutine sunt artate mai jos. (Fiierul de index a fost puin editat pentru a salva spaiu).

26

27

Din fericire, cele dou rutine ofer valori identice eseniale. Este mai degrab interesant c exist diferene foarte mici de la a cincea sau a asea cifr. Acest lucru pare a fi puin exagerat de condamnat la erori de rotunjire. Explicaia este c in codurile generate simbolic, unele din constante care sunt pre-calculate nu sunt scrise in cod cu mare precizie. Dup cum a fost precizat, acestea sunt scrise cu o precizie de 5 cifre, asa ca acest lucru ar explica micile discrepane notate aici. Este de asemeni interesant de notat eficiena codului generat cu simboluri comparat cu cel manual. Codul scris manual ar putea fi optimizat puin pentru a reduce erorile. S-a descoperit n alte cazuri c generatorul simbolic deseori nu d rezultate bune kiar si cu un programator atent pentru producerea unui cod eficient. O alt modalitate de verificare a ecuaiilor ar fi cea de a compara cu rezultatele produse de funcia rne() din Robotics Toolbox.

Partea a II-a: Micarea polinomial


Examinnd necesitile pentru traiectoria funciei s, putem nota c folosind 6 condiii finale vom fi nevoii s folosim de gradul 5. Dac vom considera cei ase coeficieni ai polinomului ca i necunoscui, putem nlocui cele ase condiii finale pentru a reiei ase ecuaii care trebuie satisfcute de ctre coeficieni. De fapt, acest lucru prescurteaz rezolvarea doar pentru trei coeficieni, din moment ce trei dintre ei au devenit nuli dup folosirea condiiei t*=0. Polinomul rezultant este:

s (t * ) = 6t *5 15t *4 + 10t *5
unde,

t* =

t Tseg

Planul acestui polinom si derivatele lui pentru a 3-a miscare, folosit in partea urmatoare, arata in felul urmator:

28

Observati ca, desi acceleratia incepe si se termina la 0, masura cu care se schimba acceleratia in acesta punce (cunoscute ca jerk) este discontinua.Acest lucru poate cauza probleme la comanda unei miscari rapide deoarece va provoca vibratii de inalta frecventa in sistemul fizic.Am fi putut elimina acest lucru, daca am fi folosit un polinom de ordinul 7.

Capitolul 3:Articulatia cuplurilor


Cu toate bucatile pregatite, putem calcula articulatia cuplurilor necesre miscarii date.Un document in MATHLAB (trajdyn.m) a fost scris pentru a face acest lucru. Traiectoria incepe la [theta_1,theta_2]=(30,-60) si se termina la (80,-30). Documentul ne lasa sis a setam valoarea lui T_seg. Prima data calculam cuplurile,daca miscarea trebuie facuta in 3 secunde.

29

Observati ca majoritatea cuplurilor se ridica din capatul gravitatii.Ne putem imagina ca daca miscarea este lenta, atunci nici unul din ceilalti termeni dinamici(intertie,coriolis, etc) nu vor avea prea mare effect.

30

Aceasta se numeste o miscare cvasi-statica, din moment ce doar cuplurile statice gravitationale sunt cerute. Din acest motiv, controlerele robotilor care contin doar copmpensare pentru gravitatie, tind sa lucreze doar pentru miscari lente. Acum, repetati calculul astfel incat miscarea sa se produca in 1 secunda.

Acum, observam ca cuplurile inertiale sunt foarte importante. Chiar si cuplurile coriolis si centripetal sunt destul de mari, astfel incat nu pot fi neglijate. Cuplul maxim cerut pe ambele atriculatii este considerabil mai mare decat cel cerut pentru miscarea in 3 secunde. Robotii care se misca rapid au nevoie de mecanisme de actionare puternice. Cinematica Directa si inversa pentru robotul RR

31

- profil viteza constanta

- profil viteza trapez

- profil acceleratie

32

Dinamica bratului robotic de tip 2R

33

34