Universitatea Tehnica, Cluj-Napoca

Proiect la Roboti Industriali

Coordonator :

Studenti :

1

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

2

(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

3

4 .

Se observa ca toate axele X sunt paralele. Am ales-o astfel incat rotatia pozitiva in jurul axei articulatiei orizontale sa ridice incheietura (in loc sa o coboare).a 0 a2 a3 0 0 rasucirea . d5 = 85mm 5 . a2 = 200mm.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.alpha 90 0 0 90 0 Pentru acesti parametrii se obtin urmatoarele matrici A: Constantele (toate in mm): d1 = 214mm. a3 = 200mm.d d1 0 0 0 d5 lungimea . putem obtine parametrii DH dupa cum urmeaza: legatura 1 2 3 4 5 unghi .theta variabil variabil variabil variabil variabil offset . Din schita.

Mai mult. Acestea sunt discutate mai jos cand cinematica directa este implementata in MATLAB. urmatoarele verificari laborioase pot fi facute pentru elementele T5: Alte verificari computerizate ar trebui de asemenea efectuate. rezulta urmatoarea matrice de transformare a efectorului final. Cinematica inversa Incepand cu: rezultatul inmultirii matricilor este: 6 .ne indica directia axelor sistemului 5 si pozitia originii fata de sistemul 0. rezulta urmatoarele elemente in T5: Pentru toate unghiurile din incheieturi egale cu 0.Cinematica directa Inmultind rezultatele matricilor A. Comparati rezultatul cu figura de mai sus .

in cazul in care ambele sunt diferite de zero.4) si folosind variabile auxiliare: 7 .3) se obtine: de unde (din moment ce theta_1 este cunoscut) Acuma. Altfel vom folosi ax si ay. Daca si acestea sunt zero.3) si (2.4) si (2. comparand elementele (1.3) si (3. Din elementele (1.4) se obtine: de unde: sau Cea mai buna solutie este sa se foloseasca px si py. A doua solutie (la 180 grade diferenta) poate fi folosita daca limitele incheieturilor sunt mai mari decat a primei solutii. In acest caz setam theta_1=0. cu mana indreptata in sus. atunci pozitia in T5 se afla pe axa Z0.si Din elementele (3.

vom obtine: In acest moment suntem blocati. sunt prea mari). Daca C3 este mai mare decat 1 (radicalul nu ar mai avea solutii reale). si se obtine: Deoarece stim theta_2 si theta_3 rezulta: Ultimul unghi al articulatiei se obtine din elementele (3. si ne folosim de identitatea trigonometrica cos(A+B)-A)=cos(B).avem sistemul de ecuatii: Daca ridicam la patrat ambele ecuatii si le adunam. indica faptul ca pozitia dorita nu poate fi atinsa (t1 si/sau t2. deoarece nu putem gasi o expresie independenta pentru S3. Suntem nevoiti sa folosim: Pentru Mitsubishi. astfel incat sa putem extrage radicalul. pentru a obtine expresiile pentru S2 si C2. Daca exprimam termenii in C23 si S23 vom obtine: Se poate rezolva folosind regula lui Cramer. Folosim aceste valori cu functia atan2.2) astfel incat 8 . unghiul cotului trebuie sa fie intotdeauna negativ. Ne putem intoarce acum la sistemul de ecuatii de mai sus.1) si (3. care depind de px si py.

Puteti face aceasta prin inspectia sau prin utilizarea produsului de A-matrici (sau ambele pentru a va verifica munca!). Fiti atenti la parametrii DH si matricile A ale acestui robot. Este interesant de observat ca am obtinut toate relatiile necesare solutiei. Gasiti ecuatiile reprezentand cinematica inaintarii robotului. 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.Cu aceasta se incheie cinematica inversa.5 m deasupra planului XY. din inmultirea primei matrici de mai sus. Articulatia umarului este la o distanta de 0. 9 . Proiectul trateaza unele analize din punct de vedere cinematic ale acestui robot. sau cotul manipulator discutat in clasa. 1.0 m respectiv 0.8 m lungime. ele fiind identice cu primele trei legaturi ale Mitsubishi. un manipulator 3R. Se poate lua in considerare conceperea un program de calculator cu ajutorul caruia sa executati o parte din calcule. De-a lungul rezolvarii ar trebui sa verificam operatiile ilegale (de exemplu extragerea radicalului dintr-un numar negativ). Legaturile umarului si cotului sunt de 1.

Considerati o traiectorie a varfului care porneste de la (X. Fiti atenti ca aceasta implica numai primele trei randuri si coloane. fiind disponibila doar pozitia varfului (nu si orientarea). completati coloanele libere din tabel). 4. 5. 3. Gasiti Iacobianul manipulatorului. 6. Descrieti semnificatia fizica a pozitiei unice (pozitiilor unice). 0. Verificati raspunsurile unde se poate face cu usurinta. Determinati pozitia unica (pozitiile unice) a (ale) manipulatorului examinand Iacobianul.2 m/s. necesare sa dea urmatoarele viteze de varf la pozitia robotului indicata. 0. Comentati rezultatele in ultimele sase randuri ale tabelului. 10 .8.Y.2. Trebuie sa o faceti simbolic – de mana daca este necesar. Gasiti viteza varfului in coordonate Carteziene pentru urmatoarele conditii (ex.6) si se misca in linie dreapta paralela cu axa +Y la o viteza constanta de 0. Se poate folosi si ROBSYM daca este disponibil.Z)=(0. Gasiti vitezele unghiulare ale articulatiei. desi MATLAB are o cale de a determina Iacobianul simbolic al unui set de ecuatii exprimat ca si coarde simbolice.

025 m parcursi. Calculati pozitiile si vitezele unghiulare necesare ale articulatiei pentru aceasta traiectorie la intervale de 0. Pozitia elementelor putea fi usor gasita prin investigarea mai atenta a acestui robot . Trasati aceste viteze unghiulare ale articulatiei cat mai mult posibil. Memorati valorile det(J) de-a lungul traiectoriei si trasati-le. 0. -1. Comentati rezultatele simularii. Considerati o alta traiectorie incepand de la (X.8) deplasandu-se in sensul pozitiv al axei Y la viteza constanta de 0.H. Partea a 2-a: Iacobianul Luand in considerare derivatele corespunzatoare Iacobianul va fi urmatorul: 11 .Y.025 m parcurse. Analiza vitezei utilizand Iacobianul Partea 1: Cinematica directa Din figura robotului 3R vom avea urmatorii parametrii D. 7.0.Calculati pozitiile necesare si vitezele unghiulare ale articulatiei pentru aceasta traiectorie la intervale de 0.2 m/s. Comentati rezultatele acestei simulari. fara a recurge la calcule cu matrici.Z)=(0. Memorati valorile det(J) de-a lungul traiectoriei si trasati-le.1. 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. Trasati aceste viteze unghiulare ale articulatiei cat mai mult posibil.: Din acesti parametrii matricile A sunt aceleasi ca si la primele trei studiate la robotul Mitsubishi in tema anterioara.

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 90.0000 1.0000 -40.0000 0 0 0 60.0000 % joint rates in rad/sec tdot = 1. Capitolul 3: Tipuri de viteze Programul kinem3r.0000 0.0000 1.0000 0 90.Primele doua coloane sunt simple verificari ca totul merge bine-aceste viteze pot fi verificate usor printr-o geometrie simpla.0000 -0.plus o multime de alte lucruri interesante descries mai jos.m .2007 Fiecare coloana din aceste iesiri contine data pe fiecare rand a tabelului din tema. Evaluarea numerica a Iacobianului a fost programata in jacob3r.8000 0 -1.0000 0 -1.Vezi in sectiunea de mai jos cum realizam aceasta in Matlab.2577 1.2000 0 -1.5739 0 1.0000 0.m a fost scris pentru a afla rezultatele necesare acestei teme .0000 0.5000 0 1.0000 -0.0000 1. Capitolul 4: Cererea pozitiei articulatiei Aceste viteze unghiulare sunt obtinute prin gasirea Iacobianului si apoi evaluand: 12 .notati ca am folosit valori pentru viteza unghiulara in radian/secunda.6000 0.0000 30. Acesta foloseste un vector care contine valorile din articulatie si returneaza in dimensiune 3X3 Iacobianul.6000 % world velocity components XDOT = 0 0 1.

2038 0.2197 0.aceasta este suprafata interioara a zonei de lucru-de asemenea o sfera centrata in articulatia umarului.0000 10.datele vitezelor unghiulare in prima coloana sunt NaN.0000 30. asa ca stabilind o viteza de 1 este pic prosteste.7321 -7. daca acesta tinde la zero cu un punct situat oriunde pe axa Z.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.0000 0 30.De fapt.0000 -2.robotul nu este capabil sa se miste in directia +X deloc.1998 5.0000 30.Aceasta este numita (Teoria Mecanismului) un punct de bifurcatie.2051 0.2034 0.In teoria mecanismului.0000 1.1906 88.2034 NaN -1.0000 0 90.0000 -10.0000 30.Continuand cu MATLAB vom gasi urmatoarele : PART 4 : JOINT RATES are: % joint positions (degrees) tdeg = 0 30.0000 2.6734 -39. Capitolul 6 : Analiza Traiectoriei 13 .8666 -15.1160 -2.un indicator de bifurcatie a punctului este aceea ca Iacobianul mecanismului este singular.Aceasta este suprafata exterioara a zonei de lucru pentru acest robot si are forma unei sfere cu centrul in articulatia umarului.0000 -1.0000 30.Ultimas posibilitate implica termenul din paranteza.0000 30.8583 0.0000 -5.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.Vom vedea aceasta mai detaliat in partea a 6a.5505 35. Iacobianul va fi singular. 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.0959 Se dovedeste ca atunci cand theta_3 este zero Iacobianul este singular (o sa vedem un pic mai incolo de ce) .0390 176.0000 -30.6896 17.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.0000 5.Alta posibilitate esca ca daca theta_3 este ‘+’ sau ‘-‘ 180 de grade umarul este retras in spate din reflex.din moment ce sunt doua moduri posibile de a parasi configuratia.foarte repede.0000 30.1417 -78.Chiar. in aceata pozitie.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.Aceasta reprezinta distanta radiala a punctului din multimea de pe axa Z.2715 NaN 1.

avand insa legatura doar cu primele 3 articulatii. In cadrul fisierului document kinem3r. avem nevoie sa facem o reprezentatie a solutiei cinematice inverse. Programul ofera doar solutia Cot SUS (theta_3<0).6000 Viteza de varf : XDOT = 0 0. Avand in vedere faptul ca este foarte similara nu va fi repetata aici.6000 In timpul comutatiei . insa nu impune limitari de articulatie. O solutie MATHLAB este in cadrul fisierului invkin3r.8000 1.Pentru a face aceasta parte a laboratorului .z) cat si o viteza de varf constanta incrementata intre pozitiile examinate.2000 0 Programul incrementeaza vectorul X de o valoare (cantitate) data (I folosit [0.0. aceasta verifica o eventuala pozitie nepermisa cauzata de specificarea unui punct inafara celor de functionare normala.8000 0 0. unele din date au fost salvate pentru a produce urmatorul grafic.6250 0. Pozitia de start si viteza date in tema erau : Pozitia de start : X= 0.y. 2).0]. 14 . Aceasta s-a intamplat pentru : Pozitie nepermisa : prea departe X= 0.m.m poate fi setata o pozitie de inceput (x. ie incrementeaza in directia Y) pana cand cinematica inverse returneaza o eroare (cauzata de faptul ca punctul dorit este prea departe).025. Aceasta in esenta este asemanatoare celei de la Mitsubishi.(vezi solutie la tema Nr.

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

Am privit o alta traiectorie.8000 Viteza De Varf : XDOT = 0 0.0000 0. Acesta este pus in evidenta in figura de mai sus.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.1000 -1.8 m (0. Aceasta incepe cu urmatoarele date initiale : Pozitia de start : X= 0.Stim ca in timp ce matricea se apropie de forma finala (particulara) . numarul devine foarte mare.3 m deasupra umarului) in timp ce se deplaseaza in directia axei +Y .1 m) la o inaltime de 0. 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 .

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

Fara a simplifica folosim urmatoarele comenzi ale Matlab-ului: %se gaseste determinantul lui J d = determ(J). 19 .Raspunsul Matlab-ul folosind comanda “pretty-printing” este: Acest sistem simbolic care da coordonatele (x. Mai intai se defineste cinematica directa.y.0 Nota:Aceasta este scrisa pentru versiunea 4. d3 =simple(d2).0 este diferita si chiar mai usoara.0 Procesarea simbolica pentru versiunea 5.m. a fost pregatit un fisier jac3rsym. d2 =simplify(d).v). Iacobianul e generat folosind urmatoarele comenzi ale Matlab-ului: %evalueaza Iacobianul simbolic J =Iacobian(w. Variabilele sunt definite in vectorul v. Disp( „ Printeaza iacobianul „) Pretty(J) Aceasta comanda produce urmatorul raspuns: Avand Iacovianul putem gasi determinantul.z) e definit ca sistemul w.Operatii simbolice folosind Matlab 4. 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.

Pentru a gasi inversa simbolica a Iacobianului se foloseste secventa de comanda incluzand comenzi pentru simplificari: %gaseste inversa Iacobianului invJ = inverse(J).’-sin(t3)’. 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.’-sin(t3)’. 20 .’cos(t2+t3)*sin(t2+t3)*cos(t2)’). inv1 = simple(invJ). 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.’cos(t2+t3)*sin(t2)-sin(t2+t3)*cos(t2)’). Acestea sunt concluziile la care am ajuns mai sus. 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.d4 =subs(d3. inv2 = subs(inv1.

1) Derivati ecuatiile de miscare ale acestui manipulator utilizand analiza Lagrange. lungimea lor fiind l . cu greutatea actionand in jos. 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 . Masele bratelor sunt 2m respectiv m . Odata obtinute aceste ecuatii . Modelul dinamic a fost considerabil modificat considerand masa fiecarui brat concentrata in centrul de greutate al acestuia .in planul de lucru. De mentionat ca robotul este in planul X0Y . examinati atent fiecare termen pentru a verifica ecuatiile. 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 .Analiza Dinamica Utilizand Ecuatiile Lagrange-Euler Proiect RI 2005 Aceasta parte dezbate un simplu robot 2R a carui schema o avem in figura.

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 .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. viteza si acceleratia fiecarei articulatii (separat) utilizand urmatoarele relatii: 22 .Aceasta functie trebuie sa aiba urmatoarele proprietati: Va trebui sa determinam ce functie sa utilizam pentru aceasta.

75m. Tseg apare in dreapta deoarece derivatele lui s sunt in functie de t*.centrifugal si de greutate. 4)Daca chiar sunteti ambitiosi puteti crea o animatie a miscarii robotului.Aceasta tema nu e obligatorie .In stanga avem parametrii cinematici doriti pentru calculul cuplurilor din articulatii. Odata avand aceste lucruri vom putea obtine cuplurile din articulatii necesare pentru a misca robotul din pozitia initiala (30.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. 23 . -30) (unghiurile fiind in grade) . 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 . coriolis . dar e usor de realizat si foarte interesant se vazut.-60) in pozitia finala (80.pe durata a 3 secunde . Avand aceasta functie .m Puteti folosi aceasta rutina pentru a verifica rezultatele din propria rutina de dinamica inversa. Fisierul se numeste r2idyn.unde m = 20kg si l=0.si care a fost convertita din FORTRAN intr-un fisier m.

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. apoi energia cinetica. 24 .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.

Unde Daca scriem ecuatiile in felul acesta . • termenii coriolis si centripeti 25 . elementele de pe diagonala sunt termenii inertiei.Acesti termeni dinamici pot fi aranjati in forma ecuatiei dinamice generale.iar ceilalti reprezinta inertiile cuplului.vom obtine urmatorii termeni dinamici: • matricea inertiei In aceasta matrice.De notat ca matricea inertiei este simetrica.

(Fişierul de index a fost puţin editat pentru a salva spaţiu).Termenii care implica produsul puterilor sunt termenii coriolis. Este întotdeauna util să avem un mod independent de calculare a soluţiei. Cu puţină intuiţie putem efectua cateva experimente mintale pentru a examina măcar semnul celorlalţi termeni. 26 . Mai întâi ar trebui să ne asigurăm ca din punct de vedere dimensional ecuaţiile sunt scrise corect.2]. Termeni gravitaţionali: 4C + C12  1 G (q ) = mgl  1  2  C12  Verificare: Verificarea acestor ecuaţii este oarecum dificila. dacă vrem să menţinem prima legătură nemişcată in timp ce o accelerăm pe a doua. Cele două rutine vor avea aceleaşi argumente de intrare. Verificarea variabilelor coriolis si cele centripete este puţin mai dificilă. atunci un termen ar trebui sa apară implicând acceleraţia lui theta_2 în expresia pentru T_1.m). Rezultatul pentru cele două rutine sunt arătate mai jos. Un fişier MATLAB (r2idvn.m) a fost creat pentru a calcula dinamica inversă pentru un manipulator ce foloseşte un generator simbolic (bazat pe aproximările Newton-Euler). Apoi trebuie să fim siguri de ceea ce conţin ecuaţiile plus ce ar putea sau ar trebui sa lipseasca din ele. viteză. şi acceleraţie pentru cele două legături selectate aleator în intervalul [-2. Termenii gravitaţionali pot fi verificaţi direct. Ecuaţiile rezultate in continuare au fost codate într-un alt fişier (idvn2r.termenii care implica patratul puterilor sunt termenii centripeti. Un program de test (idvntest. Pe deasupra.m) a fost generat in care starile cinematice au fost generate cu valori de poziţie. acest termen trebuie sa aibă aceeaşi direcţie ca şi legatura 2. De exemplu.

27 .

cele două rutine oferă valori identice esenţiale.Din fericire. acest lucru prescurtează rezolvarea doar pentru trei coeficienţi. putem nota că folosind 6 condiţii finale vom fi nevoiţi să folosim de gradul 5. acestea sunt scrise cu o precizie de 5 cifre. După cum a fost precizat. t* = t Tseg Planul acestui polinom si derivatele lui pentru a 3-a miscare. De fapt. arata in felul urmator: 28 . folosit in partea urmatoare. Este de asemeni interesant de notat eficienţa codului generat cu simboluri comparat cu cel manual. asa ca acest lucru ar explica micile discrepanţe notate aici. Acest lucru pare a fi puţin exagerat de condamnat la erori de rotunjire. Polinomul rezultant este: s (t * ) = 6t *5 − 15t *4 + 10t *5 unde. Partea a II-a: Mişcarea polinomială Examinând necesităţile pentru traiectoria funcţiei s. 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. putem înlocui cele şase condiţii finale pentru a reieşi şase ecuaţii care trebuie satisfăcute de către coeficienţi. Codul scris manual ar putea fi optimizat puţin pentru a reduce erorile. Este mai degrabă interesant că există diferenţe foarte mici de la a cincea sau a şasea cifră. unele din constante care sunt pre-calculate nu sunt scrise in cod cu mare precizie. Dacă vom considera cei şase coeficienţi ai polinomului ca şi necunoscuţi. Explicaţia este că in codurile generate simbolic. din moment ce trei dintre ei au devenit nuli după folosirea condiţiei t*=0. O altă modalitate de verificare a ecuaţiilor ar fi cea de a compara cu rezultatele produse de funcţia rne() din Robotics Toolbox.

Am fi putut elimina acest lucru.Observati ca.-30).Acest lucru poate cauza probleme la comanda unei miscari rapide deoarece va provoca vibratii de inalta frecventa in sistemul fizic.-60) si se termina la (80. desi acceleratia incepe si se termina la 0. Traiectoria incepe la [theta_1.theta_2]=(30. Capitolul 3:Articulatia cuplurilor Cu toate bucatile pregatite. Documentul ne lasa sis a setam valoarea lui T_seg.m) a fost scris pentru a face acest lucru. putem calcula articulatia cuplurilor necesre miscarii date.daca miscarea trebuie facuta in 3 secunde.Un document in MATHLAB (trajdyn. masura cu care se schimba acceleratia in acesta punce (cunoscute ca “jerk”) este discontinua. 29 . daca am fi folosit un polinom de ordinul 7. Prima data calculam cuplurile.

coriolis. 30 .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. etc) nu vor avea prea mare effect.

tind sa lucreze doar pentru miscari lente. din moment ce doar cuplurile statice gravitationale sunt cerute. Cinematica Directa si inversa pentru robotul RR 31 . Acum. Din acest motiv. observam ca cuplurile inertiale sunt foarte importante. controlerele robotilor care contin doar copmpensare pentru gravitatie. Cuplul maxim cerut pe ambele atriculatii este considerabil mai mare decat cel cerut pentru miscarea in 3 secunde. Acum. Robotii care se misca rapid au nevoie de mecanisme de actionare puternice. astfel incat nu pot fi neglijate. repetati calculul astfel incat miscarea sa se produca in 1 secunda.Aceasta se numeste o miscare cvasi-statica. Chiar si cuplurile coriolis si centripetal sunt destul de mari.

profil acceleratie 32 .profil viteza trapez ..profil viteza constanta .

Dinamica bratului robotic de tip 2R 33 .

34 .

Sign up to vote on this title
UsefulNot useful