Proiect RI

59
CINEMATICA ROBOŢILOR INDUSTRIALI PROBLEMA CINEMATICĂ DIRECTĂ Problema cinematică directă reprezintă ansamblul relaţiilor care permit definirea poziţiei endefectorului în funcţie de coordonatele articulare, practic ea asigurând conversia coordonatelor interne (articulare) în coordonate externe (operaţionale). Poziţia endefectorului este definitã prin cele „m” coordonate : X = [ x 1 , x 2 , .... , x m ] (1) Variabilele articulare sunt definite astfel : q = [ q 1 , q 2 , .... , q n ] T (2) Problema cinematică directă se exprimă prin relaţia : X = f(q) (3) iar problema cinematică inversă prin relaţia : q = f -1 (X) Existã mai multe modalitaţi de definire a vectorului „X” , combinând una din metodele de definire a poziţiei cu una dintre metodele de definire a orientării. De exemplu utilizând cosinuşii directori, obţinem: X = [P x , P y , P z , s x ,s y , s z , n x , n y , n z , a x , a y , a z ] T (4) În cele mai multe cazuri , calculul lui „X” implică calculul matricei de transformare a endefectorului. Utilizând triedrele şi notaţiile „Hartemberg-Denavit” , matricea de transformare a coordonatelor triedrului „i” în coordonate „i-1”, se defineşte ca fiind i-1 T i i-1 T i = Ci Si di C iS i C iC i Si riS i S iS i S iC i C i riC i 0 0 0 0 1 (5) Conversia coordonatelor articulare în coordonate operaţionale se face prin rezolvarea problemei cinematice directe iar conversia coordonatelor coordonatelor operaţionale în coordonate articulare se face prin rezolvarea problemei cinematice inverse.

description

Proiect Roboti Industriali

Transcript of Proiect RI

Page 1: Proiect RI

CINEMATICA ROBOŢILOR INDUSTRIALI

PROBLEMA CINEMATICĂ DIRECTĂ

Problema cinematică directă reprezintă ansamblul relaţiilor care permit definirea poziţiei endefectorului în funcţie de coordonatele articulare, practic ea asigurând conversia coordonatelor interne (articulare) în coordonate externe (operaţionale). Poziţia endefectorului este definitã prin cele „m” coordonate :

X = [ x1 , x2 , .... , xm ] (1)Variabilele articulare sunt definite astfel :

q = [ q1 , q2 , .... , qn ]T (2)Problema cinematică directă se exprimă prin relaţia :

X = f(q) (3)iar problema cinematică inversă prin relaţia : q = f-1(X)

Existã mai multe modalitaţi de definire a vectorului „X” , combinând una din metodele de definire a poziţiei cu una dintre metodele de definire a orientării.

De exemplu utilizând cosinuşii directori, obţinem:X = [Px , Py , Pz , sx ,sy , sz , nx , ny , nz , ax , ay , az]T (4)În cele mai multe cazuri , calculul lui „X” implică calculul matricei de transformare a

endefectorului. Utilizând triedrele şi notaţiile „Hartemberg-Denavit” , matricea de transformare a

coordonatelor triedrului „i” în coordonate „i-1”, se defineşte ca fiind i-1Ti

i-1Ti =

C i S i di

C iS i C iC i S i riS i

S iS i S iC i C i riC i

0

0 0 0 1

(5)

Conversia coordonatelor articulare în coordonate operaţionale se face prin rezolvarea problemei cinematice directe iar conversia coordonatelor coordonatelor operaţionale în coordonate articulare se face prin rezolvarea problemei cinematice inverse.

Aplicaţie la problema cinematicã directă

Faţă de sistemul de coordonate fix, coordonatele unui punct, de exemplu articulaţia “4” la momentul „tk” se determină rezolvând problema cinematicã directă.

Matricile de transformare omogene ale robotului PUMA 600 au forma :

0T1 =

C S

S C

1 1 0 0

1 1 0 0

0 0 1 0

0 0 0 1

1T2 =

C S

S C

2 2 0 0

0 0 1 0149

2 2 0 0

0 0 0 1

.

Page 2: Proiect RI

2T3 =

C S

S C

3 3 0

3 3 0 0

0 0 1 0

0 0 0 1

0T3 = 0T1 1T2 2T3 X

Y

Z

4

4

4

1

= 0T3

x

y

z

1

Pentru robotul Puma relaţia de mai sus devine :X

Y

Z

4

4

4

1

= 0T3

0 02

0 432

0

1

,

,

Rezolvând sistemul ce rezultă din relaţia precedentă, rezultă:X4 = 0,432Cos2i(t)+0,149Sini(t)-0,864Cos2i(t)Sini(t)-0,02[Cos3i(t)-Cosi(t)Sini(t)]Y4 = -0,149Cosi(t)+0,432Cosi(t)Sini(t)-0.864Cosi(t)Sin2i(t)-

0,02[Cos2i(t)Sini(t)-Sin3i(t)]Z4 = -0,432Sini(t)+0.04Cosi(t)Sini(t)+0,432[-Cos2i(t)+Sin2i(t)]Obţinem astfel coordonatele operaţionale (externe) în funcţie de cele articulare

(interne), care în acelaşi timp reprezintă şi ecuaţiile parametrice ale traiectoriei articulaţiei „4”

Page 3: Proiect RI

PROBLEMA CINEMATICĂ INVERSĂ

Problema cinematică inversă permite calculul coordonatelor articulaţiilor, care aduc endefectorul în poziţia şi orientarea dorită, date fiind coordonatele absolute (operaţionale).

Atunci când problema cinematică inversă are soluţie, ea se constituie în modelul geometric invers „MGI”.

Dacă nu putem găsi o soluţie analitică problemei cinematice inverse (ceea ce se întîmplă destul de frecvent) putem apela la metode numerice, al căror neajuns însă îl constituie volumul mare de calcule. Cea mai frecventă metodă este metoda Newton-Raphson.

Există o varietate de metode de rezolvare a problemei cinematice inverse ( Pieper 68 , Paul 81 , Lee 83 , Elgazaar 85 , Pieper şi Khalil 88 ).

Dintre acestea se remarcă pentru facilităţile pe care le oferă metoda Pieper şi Khalil şi metoda lui Paul.

Metodă lui Khalil şi Pieper permite rezolvarea problemei cinematice inverse indiferent de valorile caracteristicilor geometrice al robotului, dar pentru roboţii cu şase grade de libertate şi care posedă sau trei cuple cinemtice de rotaţie cu axele concurente sau trei cuple cinematice de translaţie.

Datorită flexibilităţii şi faptului că posedă soluţie a problemei cinematice inverse, această structură cu trei cuple de rotaţie cu axele concurente (numită şi structură "decuplată" ) se regăseşte în majoritatea modelelor de roboţi comercializate.

Poziţia punctului de intersecţie al celor trei axe este unic determinată doar de variabilele „q1,q2,q3”.

Un alt avantaj al structurii decuplate este că permite disocierea şi tratarea separată a poziţionării şi a orientării.

Metoda lui „Paul” tratează separat fiecare caz în parte.Mai există şi alte metode, ca cea a lui „Lee şi Elgazaar” care însă nu au un mare grad

de generalitate şi nu suportă generalizari.Spunem că un robot are soluţie la problema cinematică inversă dacă putem să-i

calculãm toate configuraţiile care permit atingerea unei poziţii date. Nu toate mecanismele articulate satisfac aceasta condiţie.Dupã Roth, roboţii cu mai puţin de şase grade de libertate au întotdeauna soluţie.

Roboţii cu sase grade de libertate au soluţie, dacă prezintă una dintre urmãtoarele caracteristici :

- posedă trei cuple de translaţie;- posedă trei cuple de rotaţie cu axe concurente;- posedă o cupla de rotaţie şi una de translaţie coaxiale;- posedă doua perechi de cuple de rotaţie cu axe concurente.

Aproape toate structurile de roboţi industriali utilizate în industrie prezintă o soluţie a problemei cinematice inverse şi de aceea au structuri asemănatoare celor descrise anterior.

Din punct de vedere al numărului de soluţii existã trei cazuri : I. Problema cinematică inversă nu are soluţii, ca în cazul când ţinta se află în afara

spaţiului de lucru al robotului.II. Problema cinematică inversă are o infinitate de soluţii atunci când :

- robotul este redundant vis a vis de misiunea încredinţată;- robotul se află într-o configuraţie singulară. Robotul nu-şi poate roti

endefectorul în jurul anumitor axe. Această situaţie nu se datorează structurii robotului ci valorilor numerice ale unor parametri ce descriu situaţiile impuse.

Page 4: Proiect RI

III. Problema cinematică inversă are un numar finit de soluţii şi toate pot fi calculate fară ambiguitate. Numărul de soluţii depinde de arhitectura robotului.

Pentru clasa roboţilor cu şase grade de libertate posedând trei cuple cinematice de rotaţie cu axe concurente numãrul maxim de soluţii este de 32.

Acest număr, obţinut atunci când nici un parametru geometric nu este nul, descreşte atunci când aceştia iau anumite valori particulare.

Numarul de soluţii mai depinde şi de marimea curselor articulaţiilor.

Rezolvarea problemei cinematice inverse

Fie un robot industrial a cărui matrice de transformare omogenă are expresia :0Tn = 0T1

1T2.....n-1Tn (15)Vom nota

U0 = 0T11T2......n-1Tn (16)

unde U0 = (17)

Matricea „U0” face parte din datele iniţiale ale problemei. Ea descrie poziţia finală pe care endefectorul trebuie să o atingă.

Rezolvarea problemei cinematice inverse constă în determinarea variabilelor articulare pornind de la relaţia (1.15) , în funcţie de „s , n , a şi P”.

Calculul primelor trei articulaţii

Există un algoritm care se referă la unul dintre cele mai frecvente arhitecturi de roboţi: cel al roboţilor cu şase grade de libertate care posedă trei cuple cinematice de rotaţie cu axe concurente.

Poziţia punctului de intersectie al celor trei axe concurente este în funcţie numai de „q1,q2,q3”.

Având o structură „decuplată” se pot separa problemele de poziţionare de cele de orientare.

Deoarece avem de a face cu o structură decuplată :0P6 = 0P4 (20)Px

Py

Pz

1

= 0T0 1T2 2T3 3T4

0

0

0

1

(21)

Folosind relaţia (1.20) putem determina variabilele „q1,q2,q3”. Din (1.21) obţinem :

3P4 = 3T4

0

0

0

1

=

C S d

C S C C S r S

S S S C C r C

4 4 0 4

4 4 4 4 4 4 4

4 4 4 4 4 4 4

0 0 0 1

0

0

0

1

= (22)

Page 5: Proiect RI

=

d

r S

r C

4

4 4

4 4

1

unde:- Ci = reprezintă Cos(i) ,- Si = reprezintă Sin(i).

2P4 = 2T3

d

r S

r C

4

4 4

4 4

1

=

f

f

f

1

2

3

1

(23)

Utilizând forma generalã a lui 2T3 , putem determina pe fi :f1(3) = C3d4+S3S4r4+d3 f2(q3) = C3(S3d4-C3S4r4)-S3(C4r4+r3) (24)f3(q3)= S3(S3d4-C3S4r4)+C3(C4r4+r3)Se observă că f1 este funcţie numai de 3, în timp ce f2 şi f3 sunt funcţii de 3 şi de r3.

înmulţind la dreapta cu 1T2 , obţinem :

1P4 = 1T2 2P4 = 1T2

f

f

f

1

2

3

1

=

g

g

g

1

2

3

1

(25)

unde :g1( 3,q3 ) = F1(3,q3) + d2 g2( q2,q3 ) = C2F2( q2,q3 )-S2F3( r2, q3 ) (26)g3( q2,q3 ) = S2F2( q2,q3 ) + C2F3( r2,q3 )

cu :F1(3,q3 ) = C2f1 - S2f2 F2(q2,q3 ) = S2f1 + C2f2 (27)F3(q2,q3 ) = f3 + r2

In sfârşit, înmulţind la stăga cu 0T1 , obţinem :

0P4 = 0T1 1P4 =

C S

s C

r

1 1 0 0

1 1 0 0

0 0 1 1

0 0 0 1

g

g

g

1

2

3

1

(28)

Cum însă

0P4 =

Px

Py

Pz

1

rezultă coordonatele punctului caracteristic manipulat faţă de sistemul de coordonate fix :Px = C1g1 - S1g2 Py = S1g1 + C1g2 (29)Pz = g3 + r1

Calculul lui 4 , 5 , 6

Page 6: Proiect RI

Mecanismul de orientare este constituit din trei cuple cinematice de rotaţie cu axe concurente.

O soluţie generală pentru determinarea lui 4 , 5 , 6 se obţine pornind de la ecuaţia :

3A0 [ s n a ] = 3A6 (30)Aceasta poate fi pusă şi sub forma :

3A0 [ s n a ] = 3A4 4A5 5A6 (31)În forma ei generală matricea i-1Ai are forma :

i-1Ai = A(x, i) A(z , i) (32)Pentru a simplifica membrul drept, înmulţim ambii membrii cu A(x,-4). Această descompunere facilitează soluţia dar nu este obligatorie. Prin înmulţire obţinem :

A(x,4) 3A0 [ s n a ] = A (z,4) 4A55A6 (33)

Termenul din stânga este cunoscut şi îl vom nota cu [ F G H ]Vom obţine:

[ F G H ] = A(z, 4 ) 4A5 5A6 (34)Soluţia ecuaţiei precedente se obţine prin înmulţiri succesive ;

A(z, -4 ) [ F G H ] =4A5 5A6 (35)Notam membrul stâng cu U(i,j) iar pe cel drept cu T(i,j).Atfel prima coloana a membrului stâng devine :

U1(1,1) = C4Fx+S4Fy U1(2,1) = -S4Fx+C4Fy U1(3,1) = Fz

Analog se obţin expresiile celei de a doua şi celei de a treia coloane.U1(1,2) = C4Gx+S4Gy U1(2,2) = -S4Fx+C4Gy U1(3,2) = Gz U1(1,3)= C4Hx+S4Hy U1(2,3)= -S4Hx+C4Hy U1(3,3)= Hz

Pentru membrul drept obţinem :T1(1,1) = C5C6-S5C6S6 T1(2,1) = C5S5C6+(C5C5C6-S5S6)S6 T1(3,1) = S5S5C6+(S5C5C6+C5S5)S6 T1(1,2) = -C5S6-S5C6C6 T1(2,2) = -C5S5S6+(C5C5C6-S5S6)C6 (36)

T1(3,2) = -S5S5S6+(S5C5C6+C5S6)C6 T1(1,3) = S5S6 T1(2,3) = -C5C5S6-S5C6 T1(3,3) = -S5C5S6+C5C6

Înmulţind în continuare ecuaţia (1.35) la stânga, obţinem :5A4A(z, 4) [F G H ] =5A6 (37)

Elementele componente ale primei coloane a matricei membrului stâng au forma :U2(1,1) = (C5C4-C5S5S4)Fx+(C5S4+C5S5C4)Fy+S5S5Fz U2(2,1) = (-S5C4-C5C5S4)Fx-(S5S4-C5C5C4)Fy+S5C5Fz U2(3,1) = S5S4Fx-S5C4Fy+C5Fz

Expresiile coloanei a doua se obţin plecând de la cele ale coloanei I înlocuind (Fx,Fy,Fz) cu (Gx,Gy,Gz) iar cele ale coloanei a treia înlocuind (Fx,Fy,Fz) cu (Hx,Hy,Hz).Elementele matricei membrului drept au forma :

T2(1,1) = C6

Page 7: Proiect RI

T2(2,1) = C6S6 T2(3,1) = S6S6 T2(1,2) = -S6 T2(2,2) = C6C6 T2(3,2) = S6C6 T2(1,3) = 0T2(2,3) = -S6 T2(3,3) = C6

Din egalitatea U2(3,3) = T2(3,3) obţinem 4 Cunoscând 4 , din U1(1,3) = T1(1,3) şi U1(3,3) = T1(3,3) obţin 5 În sfârşit din U2(1,1) = T2(1,1) şi U2(1,2) = T2(1,2) rezultă 6 .

Există poziţii şi orientări corespunzatoare anumitor valori particulare ale caracteristicilor geometrice ale robotului, cărora le corespund ecuaţii nedeterminate ale coordonatelor robotului, numite singularităţi.

Program de calcul pentru problema cinematică inversă

În vederea realizării unui program de calcul am apelat la un limbaj de programare care oferă importante facilităţi de calcul matricial şi numeric: „Mathematica 3.0”.

Redăm mai jos programul sursă realizat în baza algoritmului de rezolvare a problemei cinematice inverse descrise mai sus:

a={0,0,0.432,0.02,0,0};b={0,-0.149,0,-0.432,0,-0.056}; notaţiile H-D ale robotului PUMA 600al={0,-Pi/2,0,Pi/2,-Pi/2,Pi/2};

coordonatele punctului din spaţiul de lucru ( operaţionale )p={0.5,0.12,0.4}

f1[t3]=a[[4]] Cos[t3]+b[[4]] Sin[t3] Sin[al[[4]]]+a[[3]];f2[t3]=Cos[al[[3]]] (Sin[t3] a[[4]]-Cos[t3] Sin[al[[4]]] b[[4]])-Sin[al[[3]]]

(Cos[al[[4]]] b[[4]]+b[[3]]);f3[t3]=Sin[al[[3]]] (Sin[t3] a[[4]]-Cos[t3] Sin[al[[4]]] b[[4]])+

+Cos[al[[3]]] (Cos[al[[4]]] b[[4]]+b[[3]]);F1[t2_,t3_]=Cos[t2] f1[t3]-Sin[t2] f2[t3];F2[t2_,t3_]=Sin[t2] f1[t3]+Cos[t2] f2[t3];F3[t2_,t3_]=f3[t3]+b[[2]];g1[t2_,t3_]=F1[t2,t3]+a[[2]];g2[t2_,t3_]=Cos[al[[2]]] F2[t2,t3]-Sin[al[[2]]] F3[t2,t3];g3[t2_,t3_]=Sin[al[[2]]] F2[t2,t3]+Cos[al[[2]]] F3[t2,t3];P1[t1_,t2_,t3_]=Cos[t1] g1[t2,t3]-Sin[t1] g2[t2,t3];P2[t1_,t2_,t3_]=Sin[t1] g1[t2,t3]+Cos[t1] g2[t2,t3];P3[t1_,t2_,t3_]=g3[t2,t3]+b[[1]];H1[t1_,t2_,t3_]=f1[t3]^2+f2[t3]^2+F3[t2,t3]^2+a[[2]]^2;H2[t1_,t2_,t3_]=f1[t3]^2+f2[t3]^2+a[[2]]^2+2 a[[2]] F1[t2,t3];InverseFunction->Automatic;FindRoot[{P1[t1,t2,t3]==p[[1]],P2[t1,t2,t3]==p[[2]],P3[t1,t2,t3]==p[[3]]},{t1,Pi/100},

{t2,Pi/100},{t3,Pi/100}]

Page 8: Proiect RI

A1[t1_]={{Cos[t1],-Sin[t1],0},{Cos[al[[1]]] Sin[t1],Cos[al[[1]]] Cos[t1],-in[al[[1]]]}, {Sin[al[[1]]] Sin[t1],Sin[al[[1]]] Cos[t1],Cos[al[[1]]]}};

A2[t2_]={{Cos[t2],-Sin[t2],0},{Cos[al[[2]]] Sin[t2],Cos[al[[2]]] Cos[t2],Sin[al[[2]]]}, {Sin[al[[2]]] Sin[t2],Sin[al[[2]]] Cos[t2],Cos[al[[2]]]}};

A3[t3_]={{Cos[t3],-Sin[t3],0},{Cos[al[[3]]] Sin[t3],Cos[al[[3]]] Cos[t3],Sin[al[[3]]]}, {Sin[al[[3]]] Sin[t3],Sin[al[[3]]] Cos[t3],Cos[al[[3]]]}};

A4[t4_]={{Cos[t4],-Sin[t4],0},{Cos[al[[4]]] Sin[t4],Cos[al[[4]]] Cos[t4],Sin[al[[4]]]}, {Sin[al[[4]]] Sin[t4],Sin[al[[4]]] Cos[t4],Cos[al[[4]]]}};

A5[t5_]={{Cos[t5],-Sin[t5],0},{Cos[al[[5]]] Sin[t5],Cos[al[[5]]] Cos[t5],Sin[al[[5]]]}, {Sin[al[[5]]] Sin[t5],Sin[al[[5]]] Cos[t5],Cos[al[[5]]]}};

A6[t6_]={{Cos[t6],-Sin[t6],0},{Cos[al[[6]]] Sin[t6],Cos[al[[6]]] Cos[t6],Sin[al[[6]]]}, {Sin[al[[6]]] Sin[t6],Sin[al[[6]]] Cos[t6],Cos[al[[6]]]}};

OR={{0,-1/sqrt[2],1şqrt[2]},{1/sqrt[2],-1/2,-1/2},{1/sqrt[2],1/2,1/2}};aa1=A1[0.79];aa2=A2[-1.26];aa3=A3[-0.236];aaa=aa1.aa2.aa3;K=aaa . A4[t4] . A5[t5] . A6[t6];F=K[[1]];G=K[[2]];H=K[[3]];f11=F[[1]];f12=F[[2]];f13=F[[3]];g21=G[[1]];g22=G[[2]];g23=G[[3]];h31=H[[1]];h32=H[[2]];h33=H[[3]];OR1=OR[[1]];OR2=OR[[2]];OR3=OR[[3]];or11=OR1[[1]];or12=OR1[[2]];or13=OR1[[3]];or21=OR2[[1]];or22=OR2[[2]];or23=OR2[[3]];or31=OR3[[1]];or32=OR3[[2]];or33=OR3[[3]];FindRoot[{f13==0.4,g23==0.3,h31==0.45},{t4,0.01},{t5,0.01},{t6,0.01}]

Aplicaţie

Am ales două poziţii din spaţiul de lucru al robotului „RIP 6,3” descrise de următoarele coordonate operaţionale :

q1op=[ 680.7 , 393 , 1200 ]q2op=[ 335 , 580.23 , 1000 ]

pentru care prin aplicarea algoritmului de calcul am obţinut următoarele coordonate articulare: q1art=[ 1.046 , -9.473 , 11.373 ]q2art=[ 0.732 , -5.362 , 7.539 ]

Page 9: Proiect RI

Calculul distanţei maxime a spaţiului de lucru al roboţilor industriali

Calculul maximului distanţei de la origine la punctul caracteristic este însă o problemă dificilă, având în vedere faptul cã expresia acestei distanţe este o funcţie cu un numãr de variabile egal cu cel al numărului de grade de libertate (în cele mai frecvente cazuri 6).

Volumul de calcule este foarte mare şi uneori suntem obligaţi să apelăm la metode numerice de rezolvare a unor ecuaţii, cele analitice nefiind operante.

De aceea am imaginat prezenta metodă, care porneşte de la problema cinematică inversă, evitând astfel volumul mare de calcule necesitat de determinarea maximului unei funcţii cu şase variabile.

Fără a micşora din gradul de generalitate al metodei se vor calcula maximul distanţei pentru robotul „RIP 6,3”.

Înlocuind valorile parametrilor „Hartemberg-Denavit” ale robotului „RIP 6,3” în formulele (3.29) , (3.27) , (3.26) , (1.27) , obţinem :

D2 = 0.01728 C3 - 0.373248 S3 + 0.395849 (38)Aceasta reprezintă o ecuaţie trigonometrică în Sin(3) şi Cos(3). Ea are soluţie dacă

este îdeplinită condiţia :( 0.01728 )2 + ( 0.373248 )2 ( 0.395849 - D2 )2 (39)

Efectuând calculele , obţinem :D4 -0.792 D2 + 0.017 < 0 (40)

Rezolvând această inecuaţie, şi alegând valorile poziţive pentru D , obţinem :D [ 0.15 , 0.87721 ]Deci pentru robotul „RIP 6,3” valoarea maximă a distanţei ce poate fi parcursă şi

pentru care există soluţie a problemei cinematice inverse este 0.87721 m.Această distanţă poate fi situată oriunde în interiorul spaţiului de lucru al robotului,

dar trebuie să ţinem cont de faptul cã acesta nu este omogen.De asemeni folosind metoda expusă mai sus putem spune dacă poziţia unui punct din

spaţiu, exprimată în coordonatele sistemului fix poate fi accesată de către robot.Calculând distanţa de la acest punct la origine, pentru o anumită structură de robot,

putem indica dacă valoarea distanţei satisface ecuaţia (40) sau nu şi deci, dacă problema cinamatică inversă are sau nu soluţie.

Aceasta este echivalent cu a determina dacă punctul se află sau nu în interiorul spaţiului de lucru al robotului, ceea ce reprezintă o metodă rapidă de diagnostic al apartenenţei punctului caracteristic manipulat la spaţiul de lucru al robotului.

Page 10: Proiect RI

DINAMICA ROBOŢILOR INDUSTRIALI

Ecuaţiile cinematice şi dinamice ale unui robot industrial de tip serial

Un robot industrial de tip serial este un mecanism spaţial care contine cuple cinematice de rotaţie sau de translaţie.

Considerăm un set de coordonate generalizate „{qi}n”, pe care le grupăm într-un vector n-dimensional al coordonatelor generalizate, „q”.

Vitezele generalizate se definesc ca fiind derivată în raport cu timpul al coordonatelor generalizate, „q”.

Fie „ck” şi „ck” vitezele şi acceleratiile centrelor de greutate ale elementelui „k”, iar „wk” şi „wk” vitezele şi acceleraţiile unghiulare ale aceluiasi element „k”.

Astfel contribuţia elementului „k” la forţa de inerţie generalizată se defineşte ca fiind: ck wk

k* = -( )T mk ck - ( )T hk (40) q q

k* este un vector n-dimensional,iar hk este derivata în raport cu timpul al momentului unghiular al elementului `k` în raport cu centrul sau de greutate

hk = Ik wk +wk x Ikwk (42) unde:

Ik este tensorul centroidal de inerţie al elementului `k`. ck/q şi wk/q sunt mtrici 3 x n.

Vectorul n-dimensionl al forţei de inerţie generalizată a sistemului este :ck wk

* = k* = - [( )Tmk ck + ( )T hk]. (43)q q

Pe de altă parte, dacă asupra elementului „k” se acţionează cu un sistem de forţe şi momente care produc o forţa rezultantă „fk” actionând în centrul de greutate al elementului şi un moment „nk”, atunci vectorul n-dimensional al forţelor generalizate,corespunzator elementului „k” este :

ck wk

k = ( )T fk + ( ) Tnk. (44) q q

Vectorul n-dimensional al forţelor active generalizate care acţionează asupra sistemului este definit mai jos :

ck wk

= [( ) T fk + ( )Tnk], (45) q q

Astfel ecuaţia dinamică a sistemului devine : + * = 0 (46)Ecuaţia de mai sus este cunoscuta sub numele de ecuaţia „Kane”

Calculul vitezelor unghiulare şi al acceleraţiilor

Viteza unghiulară şi acceleraţia elementului „i” se calculează cu relaţiile : wi = (47)

Page 11: Proiect RI

wi =

(48)Pentru:

i=1,2,....,n,unde:

wo şi wo sunt vitezele unghiulare şi acceleraţiile bazei. în scopul reducerii complexitătii calculelor, toti vectorii corespunzatori elementului „i” se vor exprima in funcţie de coordonatele sistemului „i”.

Astfel vitezele şi acceleraţiile unghiulare se vor exprima cu ajutorul următoarelor formule :

QiT[wi-1]i-1 + i[ei]i, dacă cupla cinematică „i” este „R”

[wi]i = QiT[wi-1]i-1, dacă cupla cinematică „i”este „T” (49)

QiT[wi-1]i-1 + [wi x iei + iei]i , dacă cupla cinematică „i” este „R”

[wi]i = QiT[wi-1]i-1 , dacă cupla cinematică „i”este „T” (50)

Dacă sistemul de referinţă inerţial este ales cel al bazei, atunci:[wo]o=0, [wo]o=0.

Calculul vitezelor şi acceleraţiilor centrelor de greutate

Fie „ci” vectorul de poziţie al centrului de greutate, „C i”, al elementului „i”, „i” fiind vectorul direcţionat de la „Oi” la „Ci” (vezi figurile 3.1 şi 3.2).Vectorul de poziţie a doua centre de greutate succesive este dat de relaţia :

ci = ci-1-i-1 + ai +i (51)sau,în coordonatele sistemului „i” :

[ci]i = QiT [ci-1 +ai +i-1]i-1 + [i]i. (52)

După diferenţierea ecuaţiilor (52) faţă de timp, obţinem următoarele formule :- dacã cupla „i”este de tip „R”,atunci :

[ci] = QiT [ci-1 +wi-1 x (ai-i-1)]i-1 +[wi x i]i (53)

[ci]i = QiT [ci-1 +wi-1 x (ai x i-1) + wi-1 x (wi-1 x (ai-i-1))]i-1 + [wi x i +wi x (wi x i)]i

(54)- dacă cupla cinematică „i”este de tip „T”, atunci :

[ci]i = QiT [ci-1+wi-1 x (ai-i-1)]i-1 + [wi x i-bi ei]i (55)

[ci]i = QiT [ci-1 +wi-1 x (ai-i-1)+wi-1 x (wi-1 x (ai-i-1))]i-1 +[wi x i +wi x (wi-1 x i)-bi ei -

2wi x bi ei]i. (56)

Page 12: Proiect RI

Fig.3.1. Elemente succesive articulate printr-o cuplă de rotaţie.

Fig.3.2. Elemente succesive articulate printr-o cuplă de translaţie.pentru:

i=1,2,....,n,,unde co şi co sunt respectiv viteza şi acceleraţia centrului de greutate al bazei.Dacă baza este aleasă ca sistem inerţial de referinţă, atunci :

[co]o = 0 şi [co]o =0.In derivarea ecuaţiilor (52),am folosit următoarele formulele de derivare ale vectorilor :

element i-1

element i

Oi

Oi+1

Ci

Ci-1

Oo

Oi-1

ai+1

ci

ci-1

ai

i

i-1

ei+1

ei

ee

aiOi

OoCi-1

Ci

Oi+1

di bi

ci

ci-1

Oi-1

i

i-1

ei

ei+1

elementul `i-1`

elementul `i`

Page 13: Proiect RI

(57)

Program de calcul pentru determinarea vitezelor şi a acceleraţiilor

Pe baza algoritmului descris mai sus şi utilizând limbajul “Mathematica 2.1. “ am realizat următorul program de calcul :

alf={0,-Pi/2,-Pi/2,0,Pi/2,-Pi/2}tet={0,Pi/2,0,0,0,0}bb={-0.1,-0.1,0,-0.6,0,0} Notaţiile H-D ale robotului RIP 6,3aa={0,0,0,0,0,0}rt={1,1,0,1,1,1}

f1[x_]=0.5295+0.0852 t ;f2[x_]=-1.43-0.20487 t ;f3[x_]=-0.03+0.448586 t ; Funcţiile ce descriu variaţia coordonatelor interne , f4[x_]=x-4 ; interpolate cu funcţii de gradul întâif5[x_]=x-5 ;f6[x_]=x-6 ;

f={f1[x],f2[x],f3[x],f4[x],f5[x],f6[x]}e={{0},{0},{1}}cr={{0},{0},{0}}m={9.0,6.0,3.0,1.0,0.6,0.5}ro1={{0},{0},{-0.1}}ro2={{0},{0},{0}}ro3={{0},{0},{0}}ro4={{0},{0},{0.1}}ro5={{0},{0.06},{0}}ro6={{0},{0},{0.2}}r={ro1,ro2,ro3,ro3,ro4,ro5,ro6}i1={{0.02,0,0},{0,0.01,0},{0,0,0.01}}i2={{0.05,0,0},{0,0.01,0},{0,0,0.06}}i3={{0.4,0,0},{0,0.4,0},{0,0,0.01}}i4={{0.001,0,0},{0,0.0005,0},{0,0,0.001}}i5={{0.0005,0,0},{0,0.0002,0},{0,0,0.0005}}i6={{0.003,0,0},{0,0.001,0},{0,0,0.002}}am={i1,i2,i3,i4,i5,i6}For[i=1,i<7,i++,ar=rt[[i]];g[x]=f[[i]];aj=aa[[i]];bj=bb[[i]];

te=tet[[i]];al=alf[[i]];If[ar==1,

q[x_]={{Cos[te+g[x]],-Sin[te+g[x]],0},{Cos[al]Sin[te+g[x]],Cos[al]Cos[te+g[x]],-Sin[al]},{Sin[al]Sin[te+g[x]],Sin[al]Cos[te+g[x]],Cos[al]}};Q[i_]=Transpose[q[x]];a[i_]={{aj},{bj Sin[al]},{-bj Cos[al]}},q[x_]={{Cos[te],-Sin[te],0},{Cos[al]Sin[te],Cos[al]Cos[te],-Sin[al]},

Page 14: Proiect RI

{Sin[al]Sin[te],Sin[al]Cos[te],Cos[al]}};Q[i_]=Transpose[q[x]];a[i_]={{aj},{(bj+g[x]) Sin[al]},{-(bj+g[x]) Sin[al]}}];

If[ar==1,dw[0]=cr;w[0]=cr;ca[0]=cr;r[[0]]=cr;w[i_]=Q[i] . w[i-1]+D[g[x],x]e;wi=w[i];aw=w[i-1];alt=D[g[x],x]e;d1=wi[[2]] alt[[3]]-wi[[3]] alt[[2]];d2=wi[[1]] alt[[3]]-wi[[3]] alt[[1]];d3=wi[[1]] alt[[2]]-wi[[2]] alt[[1]];expr1[i_]={d1,d2,d3};dw[i_]=Q[i] . dw[i-1]+D[g[x],{x,2}]e+expr1[i];adw=dw[i-1];dwa=dw[i];di=a[i]-r[[i-1]];exp1=adw[[2]] di[[3]]-adw[[3]] di[[2]];exp2=adw[[1]] di[[3]]-adw[[3]] di[[1]];exp3=adw[[1]] di[[2]]-adw[[2]] di[[1]];expr2[i_]={exp1,exp2,exp3};expa1=aw[[2]] di[[3]]-aw[[3]] di[[2]];expa2=aw[[1]] di[[3]]-aw[[3]] di[[1]];expa3=aw[[1]] di[[2]]-aw[[2]] di[[1]];expr3[i_]={expa1,expa2,expa3};aex=expr3[i];expb1=aw[[2]] aex[[3]]-aw[[3]] aex[[2]];expb2=aw[[1]] aex[[3]]-aw[[3]] aex[[1]];expb3=aw[[1]] aex[[2]]-aw[[2]] aex[[1]];expr4[i_]={expb1,expb2,expb3};roi=r[[i]];expc1=dwa[[2]] roi[[3]]-dwa[[3]] roi[[2]];expc2=dwa[[1]] roi[[3]]-dwa[[3]] roi[[1]];expc3=dwa[[1]] roi[[2]]-dwa[[2]] roi[[1]];expr5[i_]={expc1,expc2,expc3};expd1=wi[[2]] roi[[3]]-wi[[3]] roi[[2]];expd2=wi[[1]] roi[[3]]-wi[[3]] roi[[1]];

expd3=wi[[1]] roi[[2]]-wi[[2]] roi[[1]];expr6[i_]={expd1,expd2,expd3};bex=expr6[i];expe1=wi[[2]] bex[[3]]-wi[[3]] bex[[2]];expe2=wi[[1]] bex[[3]]-wi[[3]] bex[[1]];expe3=wi[[1]] bex[[2]]-wi[[2]] bex[[1]];expr7[i_]={expe1,expe2,expe3};ca[i]=Q[i] . (ca[i-1]+expr2[i]+expr4[i])+expr5[i]+expr7[i];

Print[i],dw[0]=cr;w[0]=cr;ca[0]=cr;r[[0]]=cr;w[i_]=Q[i] . w[i-1];wi=w[i];aw=w[i-1];alt=D[g[x],x]e;dw[i_]=Q[i] . dw[i-1];adw=dw[i-1];dwa=dw[i];d1=wi[[2]] alt[[3]]-wi[[3]] alt[[2]];d2=wi[[1]] alt[[3]]-wi[[3]] alt[[1]];d3=wi[[1]] alt[[2]]-wi[[2]] alt[[1]];expr1[i_]={d1,d2,d3};di=a[i]-r[[i-1]];exp1=adw[[2]] di[[3]]-adw[[3]] di[[2]];

Page 15: Proiect RI

exp2=adw[[1]] di[[3]]-adw[[3]] di[[1]];exp3=adw[[1]] di[[2]]-adw[[2]] di[[1]];expr2[i_]={exp1,exp2,exp3};expa1=aw[[2]] di[[3]]-aw[[3]] di[[2]];expa2=aw[[1]] di[[3]]-aw[[3]] di[[1]];expa3=aw[[1]] di[[2]]-aw[[2]] di[[1]];expr3[i_]={expa1,expa2,expa3};aex=expr3[i];expb1=aw[[2]] aex[[3]]-aw[[3]] aex[[2]];expb2=aw[[1]] aex[[3]]-aw[[3]] aex[[1]];expb3=aw[[1]] aex[[2]]-aw[[2]] aex[[1]];expr4[i_]={expb1,expb2,expb3};roi=r[[i]];expc1=dwa[[2]] roi[[3]]-dwa[[3]] roi[[2]];expc2=dwa[[1]] roi[[3]]-dwa[[3]] roi[[1]];expc3=dwa[[1]] roi[[2]]-dwa[[2]] roi[[1]];expr5[i_]={expc1,expc2,expc3};expd1=wi[[2]] roi[[3]]-wi[[3]] roi[[2]];expd2=wi[[1]] roi[[3]]-wi[[3]] roi[[1]];

expd3=wi[[1]] roi[[2]]-wi[[2]] roi[[1]];expr6[i_]={expd1,expd2,expd3};bex=expr6[i];expe1=wi[[2]] bex[[3]]-wi[[3]] bex[[2]];expe2=wi[[1]] bex[[3]]-wi[[3]] bex[[1]];expe3=wi[[1]] bex[[2]]-wi[[2]] bex[[1]];expr7[i_]={expe1,expe2,expe3};

ca[i]=Q[i] . (ca[i-1]+expr2[i]+expr4[i])+expr5[i]+expr7[i]-D[g[x],{x,2}]e-2.expr1[i]];jk=am[[i]];wi=w[i];dwa=dw[i];jt=jk . wi;exf1=wi[[2]] jt[[3]]-wi[[3]] jt[[2]];exf2=wi[[1]] jt[[3]]-wi[[3]] jt[[1]];exf3=wi[[1]] jt[[2]]-wi[[2]] jt[[1]];expr8[i_]={exf1,exf2,exf3};ha[i]=jk . dwa+expr8[i];

Aplicaţie

Pentru o mişcare executată între două puncte P1 şi P2 , ale spaţiului de lucru (definite anterior), mişcare generată în coordonate articulare, se vor determina vitezele şi acceleraţiile gradelor de libertate 1 şi 3.

Astfel în programul de mai sus vitezele unghiulare au fost notate cu “w”, matricile de transformare cu “Q”, acceleraţiile unghiulare cu “dw” , iar acceleraţiile centrelor de greutate cu “ca”.

Redăm mai jos aceste mărimi pentru gradele de libertate întâi şi trei.

Print[w[3]];

{{(1 - 0.20487 Cos[4 - x] + 0.0852 Cos[1.43 + 0.20487 x] Sin[4 - x]) Sin[6 - x] + Cos[6 - x] (Cos[5 - x] (-0.0852 Cos[4 - x] Cos[1.43 + 0.20487 x] - 0.20487 Sin[4 - x]) - Sin[5 - x] (1 - 0.0852 Sin[1.43 + 0.20487 x]))}, {-(Cos[6 - x] (1 - 0.20487 Cos[4 - x] + 0.0852 Cos[1.43 + 0.20487 x] Sin[4 - x])) +

Page 16: Proiect RI

Sin[6 - x] (Cos[5 - x] (-0.0852 Cos[4 - x] Cos[1.43 + 0.20487 x] - 0.20487 Sin[4 - x]) - Sin[5 - x] (1 - 0.0852 Sin[1.43 + 0.20487 x]))}, {1 + (-0.0852 Cos[4 - x] Cos[1.43 + 0.20487 x] - 0.20487 Sin[4 - x]) Sin[5 - x] + Cos[5 - x] (1 - 0.0852 Sin[1.43 + 0.20487 x])}}Print[dw[3]];

{{-(Cos[6 - x] (1 - 0.20487 Cos[4 - x] + 0.0852 Cos[1.43 + 0.20487 x] Sin[4 - x])) + Sin[6 - x] (Cos[5 - x] (-0.0852 Cos[4 - x] Cos[1.43 + 0.20487 x] - 0.20487 Sin[4 - x]) - Sin[5 - x] (1 - 0.0852 Sin[1.43 + 0.20487 x])) + Sin[6 - x] (0.0852 Cos[4 - x] Cos[1.43 + 0.20487 x] + 0.20487 Sin[4 - x] - 0.0174549 Sin[4 - x] Sin[1.43 + 0.20487 x]) + Cos[6 - x] (-0.0174549 Cos[1.43 + 0.20487 x] Sin[5 - x] + (-0.0852 Cos[4 - x] Cos[1.43 + 0.20487 x] - 0.20487 Sin[4 - x]) Sin[5 - x] + Cos[5 - x] (1 - 0.0852 Sin[1.43 + 0.20487 x]) + Cos[5 - x] (0.20487 Cos[4 - x] - 0.0852 Cos[1.43 + 0.20487 x] Sin[4 - x] + 0.0174549 Cos[4 - x] Sin[1.43 + 0.20487 x]))}, {(1 - 0.20487 Cos[4 - x] + 0.0852 Cos[1.43 + 0.20487 x] Sin[4 - x]) Sin[6 - x] + Cos[6 - x] (Cos[5 - x] (-0.0852 Cos[4 - x] Cos[1.43 + 0.20487 x] - 0.20487 Sin[4 - x]) - Sin[5 - x] (1 - 0.0852 Sin[1.43 + 0.20487 x])) - Cos[6 - x] (0.0852 Cos[4 - x] Cos[1.43 + 0.20487 x] + 0.20487 Sin[4 - x] - 0.0174549 Sin[4 - x] Sin[1.43 + 0.20487 x]) + Sin[6 - x] (-0.0174549 Cos[1.43 + 0.20487 x] Sin[5 - x] + (-0.0852 Cos[4 - x] Cos[1.43 + 0.20487 x] - 0.20487 Sin[4 - x]) Sin[5 - x] + Cos[5 - x] (1 - 0.0852 Sin[1.43 + 0.20487 x]) + Cos[5 - x] (0.20487 Cos[4 - x] - 0.0852 Cos[1.43 + 0.20487 x] Sin[4 - x] + 0.0174549 Cos[4 - x] Sin[1.43 + 0.20487 x]))}, {0.0174549 Cos[5 - x] Cos[1.43 + 0.20487 x] + Cos[5 - x] (-0.0852 Cos[4 - x] Cos[1.43 + 0.20487 x] - 0.20487 Sin[4 - x]) - Sin[5 - x] (1 - 0.0852 Sin[1.43 + 0.20487 x]) + Sin[5 - x] (0.20487 Cos[4 - x] - 0.0852 Cos[1.43 + 0.20487 x] Sin[4 - x] + 0.0174549 Cos[4 - x] Sin[1.43 + 0.20487 x])}}Print[ca[3]];

{{-0.183804 - 0.0349098 (0.03 - 0.448586 x) Cos[1.43 + 0.20487 x] - 0.00725904 (-0.03 + 0.448586 x) Cos[1.43 + 0.20487 x] Sin[1.43 + 0.20487 x] + Sin[1.43 + 0.20487 x] (2.1684 10-19 Cos[1.43 + 0.20487 x] + 0.000725904 Cos[1.43 + 0.20487 x] Sin[1.43 + 0.20487 x]) - Cos[1.43 + 0.20487 x] (0.000725904 Cos[1.43 + 0.20487 x]2 + 0.00174549 Sin[1.43 + 0.20487 x] + 0.0852 (0.020487 - 0.00852 Sin[1.43 + 0.20487 x]) Sin[1.43 + 0.20487 x])}, {0.0764391 Cos[1.43 + 0.20487 x] - 0.000725904 Cos[1.43 + 0.20487 x]2 - 0.00725904 (-0.03 + 0.448586 x) Cos[1.43 + 0.20487 x]2 - 0.20487 (0.020487 - 0.00852 Sin[1.43 + 0.20487 x]) - 0.00174549 Sin[1.43 + 0.20487 x] - 0.0174549 (0.03 - 0.448586 x) Sin[1.43 + 0.20487 x] + 0.20487 (0.20487 (-0.03 + 0.448586 x) + 0.0852 (0.03 - 0.448586 x) Sin[1.43 + 0.20487 x])}, {0.00725904 (0.03 - 0.448586 x) Cos[1.43 + 0.20487 x]2 + 0.0174549 (-0.03 + 0.448586 x) Sin[1.43 + 0.20487 x] + 0.0852 Sin[1.43 + 0.20487 x] (0.20487 (-0.03 + 0.448586 x) + 0.0852 (0.03 - 0.448586 x) Sin[1.43 + 0.20487 x]) - Cos[1.43 + 0.20487 x] (2.1684 10 -19 Cos[1.43 + 0.20487 x] + 0.000725904 Cos[1.43 + 0.20487 x] Sin[1.43 + 0.20487 x]) - Sin[1.43 + 0.20487 x] (0.000725904 Cos[1.43 + 0.20487 x]2 + 0.00174549 Sin[1.43 + 0.20487 x] + 0.0852 (0.020487 - 0.00852 Sin[1.43 + 0.20487 x]) Sin[1.43 + 0.20487 x])}}

Page 17: Proiect RI

Generarea mişcării

Roboţii industriali realizează trei mari grupe de operaţii :- deplasări pure;- eforturi statice pure;- sarcini complexe rezultate din combinarea deplasărilor şi a eforturilor.În cele ce urmează va fi analizată numai prima categorie de operaţii, deplasarile pure.

În timpul unei deplasări un robot trebuie să parcurgă o anumită traiectorie după o anumită lege orară. Această traiectorie este definită prin poziţiile şi orientările succesive ale endefectorului.

Studiul acestei probleme este necesar în vederea determinării semnalelor de comandă pe fiecare grad de libertate necesar deplasării endefectorului pe traiectoria impusă.

Traiectoria endefectorului se realizează prin compunerea mişcării tuturor gradelor de libertate.

Practic, mişcarea endefectorului se descompune în mişcări ale gradelor de libertate, poziţiilor iniţiale şi finale ale endefectorului din spaţiul coordonatelor operaţionale le corespund poziţii în spaţiul coordonatelor articulare.

Generarea mişcării la nivelul unui grad de libertate se poate realiza în două moduri :1) În coordonate articulare (interne).2) În coordonate operaţionale (externe).

1) În coordonate articulare endefectorul îşi atinge „ţinta” (punctul final) în momentul în care toate articulaţiile îşi ating valoarea coordonatei finale.

Dezavantajul major al metodei constă în faptul că nu există un control al traiectoriei, ci numai al poziţiei finale. Metoda se aplică în cazul roboţilor de vopsit.

2) Generarea mişcării la nivelul unui grad de libertate în coordonate operationale se realizează prin determinarea uneia sau a mai multor funcţii de interpolare care asigură atingerea anumitor puncte din spaţiul operaţional în funcţie de timp.

Această metodă înlãtură dezavantajele metodei precedente.

Printre modalităţile de generare a mişcării între doua puncte există:a) Deplasarea între două puncte din spaţiul de lucru al robotului, fără a i se impune

nici o restricţie. În acest caz mişcarea este liberă între cele două puncte.b) Deplasarea între două puncte din spaţiul de lucru al robotului cu condiţia atingerii

unor puncte intermediare, în vederea evitarii unor coliziuni cu diferitele obstacole din spaţiul său de lucru.

c) Deplasarea între două puncte din spaţiul de lucru al robotului, traiectoria fiindu-i impusă (liniară, circulară, etc.)

d) Deplasarea între două puncte din spaţiul de lucru al robotului de-a lungul unei traiectorii impuse.

În unele dintre cazurile descrise mai sus, generarea mişcării se poate face în spaţiul coordonatelor articulare (a şi b).

În celelelte cazuri, mişcarea fiind definită prin coordonatele operaţionale, acestea trebuiesc transformate în coordonate articulare.Generarea mişcarii în spaţiul articulaţiilor prezintă numeroase avantaje, cum ar fi :

- mişcarea este minimală pe fiecare dintre articulaţii;- volumul de calcule necesar este mai mic;- mişcarea nu este afectată de trecerea prin puncte singulare;

Page 18: Proiect RI

- limitările de viteză şi de cuplu se cunosc, ele corespunzând limitelor fizice ale dispoziţivelor de acţionare (motoare elecetrice, hidraulice, etc.). În schimb există un dezavantaj major, cel al deplasării imprevizibile între poziţia iniţială şi cea finală, existând riscul coliziunilor. Din acestă cauză această metodă de generare a mişcării se recomandã pentru mişcări rapide în spaţii lipsite de obstacole.

Generarea mişcării în spaţiul operational prezintă avantajul controlului traiectoriei dar are şi unele dezavantaje, cum ar fi:

- este necesară în permanenţă conversia coordonatelor din spaţiul operaţional în cel al articulaţiilor, „on line”;

- metoda nu se poate aplica în cazul punctelor singulare sau a celor care nu aparţin spaţiului de lucru al robotului;

- limitele de viteză şi cuplu fiind definite în spaţiul articulatiilior, nu se pot utiliza direct în cel operational. În acest caz se impun limitări prin valorile medii ale parametrilor de performanţă ai robotului, indiferent de configuraţie, rezultând uneori utilizarea lui sub nivelul performanţelor sale.

Generarea mişcării între două puncte în spaţiul articulaţiilor

Fie un robot industrial cu „n” grade de libertate, „qi şi qf” vectorii poziţiei iniţiale şi finale în spaţiul articulatiilor iar „vm şi am” respectiv viteza şi acceleraţia maximă. Legea de mişcare este exprimată prin ecuaţia :

q(t) = qi + r(t) D (58)unde:

0<t<tf şi D = qf-qi (59)r(t) este o funcţie de interpolare definită prin următoarele condiţii iniţiale:

r(0) = 0;r(tf) = 1 (60)Cele mai frecvente funcţii de interpolare utilizate sunt cele polinomiale de gradul întâi sau trei.

În cazul utilizării funcţiilor polinomiale de gradul întâi, mişcarea fiecărei articulaţii este descrisă printr-o funcţie de gradul întâi, ecuaţia mişcării putându-se exprima sub forma :

q(t) = qi + t/tf D (61)Prin derivarea relaţiei de mai sus se obţine :

q`(t) = D/tf (62)Deci viteza va fi constantă de a lungul intregii traiectorii. Graficele de variaţie ale coordonatei articulare, vitezei şi acceleraţiei sunt redate în figura 3.5.

r(t) = a0t3+a1t2+a2t+a3 (63)iar condiţiile limită sunt :

q(0) = qi q(tf) = qf q(0) = 0 (64)q(tf) = 0

Coeficienţii „ai” se obţin prin rezolvarea sistemului de mai sus, rezultând :a0=qi a1=0a2=3D/tf

2 a3=-2D/tf

3 Deci:

r(t) = 3(t/tf)2-2(t/tf)3 (65)Graficele de variaţie ale coordonatelor articulare, vitezei şi acceleraţiei sunt redate în figura 3.3.

Page 19: Proiect RI

În unele cazuri se impun legile de variaţie ale vitezelor şi acceleraţiilor în funcţie de timp.

Cea mai frecvent utilizată lege de variaţie a vitezelor este după un profil trapezoidal. qj qf

j

qij

tf t qj

(qfj-qi

j)tf

t qj

t

Fig. 3.3. Interpolarea liniară pentru un modul

Page 20: Proiect RI

qj qf

j

qij

tf t

qj 3|Dj|/2tf

t

qj

6|Dj|/tf2

t

Fig.3.4. Interpolarea cu polinoame de gradul trei pentru un modul

Pentru intervalul [0, ] avem urmãtoarele condiţii limită :qk(0)=am qk(0)=0 (66)qk(0)=0

Prin integrarea lui (66) se obţine :qk(t) = amt+k1

Din relaţia de mai sus rezultă că:qk(t) = amt2/2

Pentru intervalul ( , tf-] condiţile limită sunt :qk = 0qk = vm

Prin integrare se obţine :qi(t) = vm t qi(t) = vm t2/2+k3

Page 21: Proiect RI

Dar,qi() = am2/2 , din condiţia de continuitate în .vm2/2+k3 = am2/2 => k3 = 2/2(am-vm)

Deci: qi(t) = vmt2/2+2/2(am-vm)

Pentru t = tf- , obţinem :qi(tf-) = (vmtf

2+2am-2vmtf)/2Pentru intervalul (tf-,tf] condiţiile limită devin :

qk = -am qk (tf)= 0

Prin integrarea se obţine :qk(t) = -amt+k4

Pentru k4 obţinem:k4 = amtf , şi deci : qk(t) = -amt+amtf

Integrând se obţine :qk(t) = (-amt2/2+amtft )+k5

Din condiţia de continuitate în tf- se obţine :k5 = ( 2am2-amtf+vmtf2-2vmtf)/2

Deci, pentru diagramele de variaţie a vitezelor şi acceleraţiilor impuse modulului „k” se obţine:

amt2/2 pentru t [o, ]qk(t) = [vmt2+2(am-vm)]/2 pentru t (,tf-]

[-amt2/2+amtft]+[2am2-amtf+vmtf2-2vmtf]/2 pentru t (tf-,tf]

În acest exemplu am considerat o anumitã alurã a graficelor de variaţie ale vitezelor şi acceleraţiilor şi timpi de accelerare şi decelerare egali. Metoda expusã mai sus se preteaza însã şi la o generalizare, putând lua în considerare timpi de accelerare şi decelerare diferiţi (1

2) şi grafice de variaţie ale vitezelor şi acceleraţiilor având o alta alurã datã de o expresie analiticã oarecare.

Aplicaţie

Fie două puncte P1 şi P2 din spaţiul de lucru al robotului RIP 6,3, descrise în coordonate operaţionale şi pentru care am determinat în capitolul 1 coordonatele articulare prin rezolvarea problemei cinematice inverse. Am luat în considerare numai primele trei grade de libertate care asigură poziţionarea.

P1op=[0.50,0.12,0.4]P2op=[0.40,0.1,0.30]

P1art=[0.529533,-1.43014,-0.03022]P2art=[0.614724,-1.63487,0.418366]

Dorim să generăm mişcarea între cele douã puncte în coordonate articulare. Putem exprima legile de mişcare cu ajutorul unor funcţii polinomiale de gradul întâi sau de gradul trei. Pentru a reduce volumul calculelor vom opta în acest caz pentru funcţiile de gradul întâi.

Deci, vom avea :q1(t) = 0.5295 + 0.0852 ( t/tf)q2(t) = -1.43 – 0.20487 ( t/tf)q3(t) = -0.03 + 0.448586 ( t/tf)

Dacă luăm în considerare un timp total tf = 1 sec. , relaţiile de mai sus devin :

Page 22: Proiect RI

q1(t) = 0.5295 + 0.0852 tq2(t) = -1.43 – 0.20487 tq3(t) = -0.03 + 0.448586 t

Vom analiza şi varianata interpolării cu funcţii de gradul trei.q1(t) = 0.5295 + 0.0852 [3(t/tf)2-2(t/tf)3] q2(t) = -1.43 – 0.20487 [3(t/tf)2-2(t/tf)3]q3(t) = -0.03 + 0.448586 [3(t/tf)2-2(t/tf)3]

Pentru un timp total tf = 1 sec. , relaţiile de mai sus devin :q1(t) = 0.5295 + 0.0852 (3t2-2t3) q2(t) = -1.43 – 0.20487 (3t2-2t3)q3(t) = -0.03 + 0.448586 (3t2-2t3)

Page 23: Proiect RI

Planificarea traiectoriilor roboţilor industriali

Problemele cinematicii, dinamicii şi ale generării mişcării la nivelul unui grad de mobilitate au fost examinate în capitolele anterioare, astfel încât, în acest capitol ne vom referi la problema determinării algoritmului pentru conducere ce asigură mişcarea RI în lungul unei traiectorii prestabilite.

Înainte de începerea mişcării RI este important să se cunoască dacă exista pe traiectoria RI obstacole şi dacă există restricţii pe traiectoria endefectorului.

Pot exista două tipuri de coliziuni:- ale corpului robotului cu obstacole din spaţiul său de lucru;- ale endefectorului cu obstacole din spaţiul sãu de lucru.

În funcţie de răspunsurile la aceste două întrebări regula de conducere a roboţilor aparţine unuia din cele patru tipuri indicate în tabelul 5.1. Din acest tabel se observă că regulile de conducere a roboţilor se împart în două categorii :

- când există obstacole pe traiectorie;- când nu există obstacole pe traiectorie.În acest capitol sunt examinate diferite moduri de planificare a traiectoriilor când

lipsesc obstacolele. În situaţia în care există obstacole, acestea vor fi ocolite, cea mai simplă metodă de a

le ocoli fiind prin stabilirea unui numar de puncte intermediare.Traiectoria stabilită a obiectului manipulat poate fi definită sub forma unei succesiuni

de puncte în spaţiul în care sunt date poziţia şi orientarea sub forma unei curbe spaţiale ce uneşte aceste puncte.

Curba de-a lungul cãreia se deplaseazã endefectorul din poziţia iniţialã în cea finalã se numeşte traiectoria end-efectorului.

Sarcina noastră constă în elaborarea unui algoritm pentru alegerea şi descrierea mişcării dorite a manipulatorului între punctul iniţial şi cel final al traiectoriei.

Diferenţa dintre diferitele metode de planificare a traiectoriilor roboţilor se reduce la aproximaţii sau la interpolarea traiectoriei alese cu polinoame de diferite clase şi la alegerea unei succesiuni oarecare de puncte de sprijin în care se produce corectarea parametrilor mişcării robotului pe traiectoria dintre punctul iniţial şi cel final.

Punctul iniţial şi cel final al traiectoriei pot fi descrise atât în coordonate interne (articulare) cât şi în coordonate externe (operaţionale). Mai frecvent se utilizează coordonatele operaţionale, întrucât cu ajutorul lor este mai comod să se stabilească poziţia corectă a endefectorului.

Dacă între punctul iniţial şi cel final al traiectoriei este necesară cunoaşterea coordonatelor articulare, valorile lor se pot obţine cu ajutorul programului de rezolvare a problemei cinematice inverse.

De regulă traiectoria ce uneşte poziţia iniţială şi finală a EE nu este unică.Este posibilă, de exemplu, deplasarea EE atât în lungul dreptei care uneste cele două

puncte cât şi de-a lungul unei curbe oarecare ce satisface un şir de restricţii pentru poziţia şi orientarea EE pe porţiunile iniţiale şi finale ale traiectoriei.

Page 24: Proiect RI

Tabelel 3.1 Tipuri de conducere a roboţilor.

Obstacole pe traiectoria robotuluiExistă Lipsesc

Limitele pe

traiectoria robotului

Există

Planificarea autonomă a traiectoriei ce asigură ocolirea obstacolelor, plus reglarea mişcãrii în lungul traiectoriei alese în procesul de funcţionare a robotului

Planificarea autonomă a traiectoriei plus reglarea mişcãrii în lungul traiectoriei alese în procesul de funcţionare a robotului

Lipsesc

Conducera pe poziţie plus detectarea şi ocolirea obstacolelor în procesul de mişcare

Conducera pe poziţie

În acest capitol se examinează modalitãţile de planificare atât ale traiectoriilor rectilinii cât şi al traiectoriilor plane neliniare.

Mai întâi vom examina cel mai simplu caz de planificare al traiectoriilor ce satisface câteva restricţii privind caracterul mişcãrii EE iar apoi rezultatul obţinut îl vom generaliza cu scopul luãrii în consideraţie a limitelor dinamicii robotului.

Pentru o mai bună înţelegere, planificarea mişcării poate fi socotită ca o “cutie neagrã”. La intrare se indică câteva variabile ce caracterizează limitele aflate pe traiectorie. Ieşirea este o succesiune dată în timp a punctelor intermediare în care sunt determinate în coordonate articulare şi operaţionale, poziţia, orientarea, viteza şi acceleraţia EE prin care obiectul manipulat trebuie sã treacã între punctul iniţial şi cel final.

La planificarea traiectoriilor se foloseşte una dintre urmãtoarele douã abordãri :1) Programatorul indică un set precis de restricţii pentru poziţie, viteza şi acceleraţia

coordonatelor generalizate ale manipulatorului în câteva puncte ale traiectoriei (puncte nodale). După aceasta, planificatorul traiectoriilor alege dintr-o clasă oarecare a funcţiilor funcţia care trece prin punctele nodale şi care satisface în aceste puncte restricţii date.

2) A doua abordare constă în aceea că programatorul indică traiectoria dorită a robotului sub forma unei funcţii oarecare descrisă analitic, de exemplu o traiectorie rectilinie descrisă în coordonate carteziene. Programatorul produce o aproximare a traiectoriei date în coordonate articulare sau operaţionale.

În prima abordare, determinarea restricţiilor şi planificarea traiectoriei se produce în coordonate articulare.

Întrucât în mişcarea EE nu apar restricţii, programatorului îi este greu sã determine traiectoria realizatã a EE şi de aceea apare posibilitatea ciocnirii cu obstacole.

Page 25: Proiect RI

În cazul celei de a două abordări restricţiile se indică în coordonate operaţionale în timp ce acţionările de forţă au parametrii exprimaţi în coordonate articulare.

Cu ajutorul transformărilor funcţionale (problema cinematică inversă) se trece de la limitele exprimate în coordonate operaţionale la cele în coordonate articulare şi numai după aceea se caută printre funcţiile de clasã stabilite traiectoria ce satisface restricţiile exprimate în coordonate articulare.

Cele două abordări de mai sus pentru planificarea traiectoriei ar putea fi folosite (practic în timp real) pentru realizarea eficientă a succesiunilor de puncte nodale ale traiectoriilor robotului.

Totuşi, succesiunea dată în timp a vectorilor „{q(t) , d[q(t)]/dt , d2[q(t)]/dt2}” în spaţiul variabilelor articulare se formează fãră a lua în consideraţie limitele dinamicii manipulatorului ceea ce poate conduce la apariţia unor erori.

Formularea generală a problemei planificării traiectoriilor.

Planificarea traiectoriilor se poate produce atât în coordonate articulare cât şi operaţionale.

La planificarea traiectoriilor în coordonate articulare pentru descrierea completă a mişcării manipulatorului se indică dependenţa în funcţie de timp a tuturor variabilelor articulare ca şi a primele două derivate ale lor.

Dacă planificarea traiectoriilor se face în coordonate operaţionale se indică dependenţa de timp a poziţiei, vitezei şi acceleraţiilor EE şi pe baza acestor informaţii se determină valorile coordonatelor articulare ale vitezelor şi acceleraţiilor lor.

Planificarea mişcării în coordonate articulare prezintã trei avantaje :1) Se indică comportamentul variabilelor controlate direct în procesul de mişcare al

robotului;2) Planificarea traiectoriei se poate realiza practic în timp real;3) Traiectoriile variabilelor articulare sunt mai uşor de planificat.

Deficienţa constă în modul complicat de determinare a poziţiei diferitelor elemente ale robotului şi a EE în procesul mişcării.

O asemenea procedură este adesea necesară pentru a evita ciocnirea cu obstacole ce există pe traiectoria EE.

În caz general algoritmul principal de formare a punctelor nodale ale traiectoriei din spaţiul variabilelor articulare este foarte simplu:

t = t0 ciclul : asteptaţi momentul următor al corecţiei ;

t = t+dt ;h(t) este funcţia care exprimă poziţia dată a manipulatorului în spaţiul variabilelor articulare la momentul t.

Dacã t= tf , ieşiţi din procedură;Realizaţi ciclul;

Aici „dt” este intervalul de timp dintre două momente succesive ale corecţiei parametrilor de mişcare ai robotului.

Pe traiectoria planificată există trei tipuri de restricţii :1) punctele nodale ale traiectoriei trebuie să se calculeze uşor prin procedee nerecurente;2) trebuie să se asigure continuitatea coordonatelor articulare şi a primelor două derivate;3) trebuie să fie reduse la minimum mişcările inutile de tip împrăştiere.

Page 26: Proiect RI

Restricţiiile enumerate mai sus sunt satisfãcute de traiectoriile generate de succesiuni polinoamiale.

Spre exemplu, dacă, pentru descrierea mişcării unei articulaţii „i” se foloseşte succesiunea „p” a polinoamelor, ele trebuie să conţină „3(p+1)” coeficienţii aleşi în concordanţă cu condiţiile iniţiale şi finale pentru poziţie, viteză şi acceleraţie şi să asigure continuitatea acestor caracteristici pe întreaga traiectorie.

Dacă se adaugă o restricţie suplimentară, de exemplu, se indică o poziţie într-un punct oarecare, intermediar al traiectoriei, atunci pentru realizarea acestei condiţii se cere o condiţie suplimentară.

De regulă, se indică două condiţii suplimentare pentru poziţie (în apropierea punctului iniţial al traiectoriei şi în aproperea celui final) care asigură direcţiile nepericuloase ale mişcarii pe porţiunile iniţială şi finală şi o precizie mai mare a conducerii mişcării.

În acest caz, variaţia fiecărei variabile articulare poate fi descrisă cu un singur polinom de gradul şapte sau cu douã polinoame: unul de grad patru şi unul de grad trei ( 4-3-4) sau ( 3-5-3 ).

Aceste procedee sunt examinate în următoarele subcapitole. Dacă planificarea traiectoriei se face în coordonate operaţionale algoritmul indicat mai

sus se transformă, având urmãtorul aspect :t = to

ciclul : asteptaţi momentul următor al corecţiei;t = to + dt ;

unde:H(t) este poziţia EE în spaţiul operaţional la momentul t;Q[H(t)] este vectorul coordonatelor articulare ce corespund lui H(t);

Dacă t = tf ieşiţi din procedură;Realizaţi ciclul;

Aici, pe lângă determinarea funcţiei traiectoriei H(t) în fiecare punct de corecţie al parametrilor de mişcare a RI se cere sã se determine şi valorile variabilelor articulare ce corespund poziţiei calculate a EE . Funcţia matriceala H(t) descrie poziţia EE în spaţiul absolut şi în momentul de timp “t” şi dupã cum se aratã în subcapitolul 5.3 , ea reprezintã matricea de transformare a coordonatelor cu o dimensiune de 4 x 6.

În general, planificarea traiectoriilor în coordonate operaţionale se compune din 2 paşi succesivi:

1) formarea succesiunii punctelor nodale în spaţiul operaţional, care sunt dispuse în lungul traiectoriei planificate a EE;

2) alegerea unor funcţii de orice clasã care descrie (aproximeazã) porţiunile traiectoriei între punctele nodale , în concordanţã cu un criteriu oarecare.

Existã douã abordãri principale faţã de planificarea traiectoriilor în spaţiul operaţional.În prima dintre ele majoritatea calculelor, optimizarea traiectoriilor şi reglarea

ulterioarã a mişcãrii se produc în coordonate operaţionale. Dând acţionãrii semnalul de comandã se calculeazã diferenţã dintre poziţia curentã şi cea datã a EE în spaţiul operaţional. Punctele nodale de pe traiectoria rectilinie datã în spaţiul cartezian se aleg pentru intervalele de timp fixate. Calcularea valorilor coordonatelor articulare în aceste puncte se produce în procesul de conducere a mişcarii RI, utilizând modelul geometric invers. A doua abordare constã în aproximarea porţiunilor rectilinii ale traiectoriei din spaţiul variabilelor articulare obţinute ca rezultat al interpolãrii traiectoriei între punctele nodale cu polinoamele de grad mic. Reglarea mişcãrii în aceastã abordare are loc la nivelul variabilelor

Page 27: Proiect RI

articulare. Semnalul de comandã transmis la acţionare se calculeazã pentru diferenţa dintre poziţia curentă şi cea datã a RI în spaţiul coordonatelor articulare.

Prima dintre abordãrile enumerate mai sus pentru planificarea traiectoriilor în spaţiul operaţional permite sã se asigure o mare precizie a mişcării în lungul traiectoriei date. Totuşi, toţi algoritmii cunoscuţi pentru conducerea mişcãrii se construiesc având în vedere lipsa traductorilor care mãsoarã poziţia EE în spaţiul operaţional şi în cel articular. Aceasta conduce la necesitatea realizării transformării coordonatelor operaţionale ale EE în vectorul coordonatelor articulare ale RI, dar în procesul mişcãrii aceasta este o problema care cere un volum mare de calcule şi adesea un timp mare pentru conducerea RI. Mai departe, cerinţele faţã de traiectorie ( continuitate, condiţii limitative ) se formuleazã în coordonate operaţionale, în timp ce limitãrile dinamice ce sunt luate în consideraţie în etapa planificãrii traiectoriei se indicã în spaţiul coordonatelor articulare. Neajunsurile enumerate ale primei abordãri conduc la faptul cã se foloseşte mai mult a doua abordare bazatã pe transformarea coordonatelor carteziene ale punctelor nodale în coordonate articulare corespunzãtoare, cu efectuarea ulterioarã a interpolãrii în spaţiul variabilelor articulare cu polinoame de grad mic. Aceastã abordare necesitã mai puţin timp pentru calcule în comparaţie cu prima abordare şi uşureazã luarea în considerare a limitelor dinamicii RI. Totuşi precizia mişcãrii în lungul traiectoriei date în spaţiul operaţional se micşoreazã în acest caz. În subcapitolul următor vom examina câteva scheme de planificare a traiectoriilor ce folosesc abordãrile indicate.

Traiectoriile în spaţiul variabilelor articulare

La conducerea roboţilor industriali, înainte de a trece la planificarea traiectoriei de mişcare este necesar sã se determine configuraţiile robotului în punctul iniţial şi cel final al traiectoriei. Planificarea traiectoriilor în spaţiul variabilelor articulare se va efectua ţinând cont de urmãtoarele considerente:1) În momentul ridicãri obiectului de manipulat mişcarea EE trebuie sã fie îndreptatã de la obiect; în caz contrar se poate produce ciocnirea EE cu suprafaţa pe care este aşezat obiectul.2) Se va indica poziţia punctului iniţial al EE şi normala ce trece prin poziţia iniţialã pe suprafaţa pe care este aşezat obiectul, stabilindu-se astfel coordonatele punctului iniţial. Indicându-se timpul în care EE ajunge în acest punct, se poate comanda viteza de mişcarea a EE.3) Condiţii analoage se pot formula pentru punctul de apropiere de poziţia finalã : EE trebuie sã treacã prin punctul de apropiere aflat pe normala EE ce trece prin poziţia finalã a EE spre suprafaţa pe care trebuie sã fie aşezat obiectul manipulat. Aceasta asigurã o direcţie corectã a mişcãrii pe intervalul finalã a traiectoriei (intervalul de apropiere).4) Din cele arãtate mai sus rezultã cã orice traiectorie a mişcãrii RI trebuie sã treacã prin 4 puncte date: punctul iniţial, punctul de pornire, de apropiere şi cel final. 5) Pe traiectorie trebuie sã se indice urmãtoarele:a) punctul iniţial - descris de vitezã şi acceleraţie (adesea egale cu zero);b) punctul de plecare - poziţia , viteza şi acceleraţia sunt continui ;c) punctul de apropiere - la fel ca şi pentru cel de plecare;d) punctul final - sunt date viteza şi acceleraţia (de obicei egale cu zero).6) Valorile coordonatelor articulare trebuie sã se afle în limitele restricţiilor fizice şi geometrice ale fiecãrei articulaţii.7) La determinarea timpului de mişcare este necesar sã se ţinã seama de urmãtoarele:a) timpul de parcurgere a porţiunii iniţiale şi a celei finale a traiectoriei se alege ţinând seama de viteza cerutã pentru apropierea şi plecarea EE, şi reprezintã o constantã oarecare ce depinde de caracteristicile acţionãrilor de forţã ale articulaţiilor;

Page 28: Proiect RI

b) timpul de mişcare pe intervalul medie a traiectoriei se determina prin valorile maxime ale vitezelor şi acceleraţiilor fiecãreia dintre articulaţii. Pentru normare se foloseşte timpul maxim necesar pentru trecerea prin aceasta porţiune a traiectoriei articulaţiei care este cea mai puţin rapidã.

Se recomandă sã se aleagã un grad oarecare al funcţiilor polinomului ce permite sã se efectueze interpolarea traiectoriei pentru punctele nodale date (punctul iniţial, de pornire, de apropiere şi cel final) care asigurã realizarea condiţiei continuitãţii poziţiei, a vitezei şi a acceleraţiei pe tot intervalul de timp [ to , tf ].Punctul iniţial :1) poziţia (este datã);2) viteza (este datã de obicei egalã cu zero);3) acceleraţia (este datã de obicei zero);Puncte intermediare :4) poziţia în punctul de plecare, de pornire (se alege);5) poziţia în punctul iniţial (se schimbã neîntrerupt la trecerea între porţiunile succesive ale traiectoriei);6) viteza (se schimbã neîntrerupt la trecerea între porţiunile succesive ale traiectoriei);7) acceleraţia (se schimba neîntrerupt la trecerea între porţiunile succesive ale traiectoriei);8) poziţia în primul punct de apropiere (se alege);9) poziţia în punctul de apropiere (se schimbã neîntrerupt la trecerea între porţiunile succesive ale traiectoriei) ;10) viteza (se schimbã neîntrerupt la trecerea între porţiunile succesive ale traiectoriei) ;11) acceleraţia (se schimba neîntrerupt la trecerea între porţiunile succesive ale traiectoriei);Punctul final :12) poziţia (este datã)13) viteza (este datã , de obicei zero)14) acceleraţia (este datã , de obicei zero)Una dintre modalitãţi constã în aceea cã se descrie mişcarea articulaţiei “i” cu un polinom de gradul şapte:

qi(t) = a7t7+a6t6+....+ a2t2+a1t+a0 ,în care coeficienţii necunoscuţi ai se determinã din condiţiile limitã date şi din condiţiile de continuitate. Totuşi folosirea unui asemenea polinom de un grad mare are un şir de inconveniente. În particular sunt greu de determinat valorile extreme. Abordarea alternativa constã în faptul cã se împarte traiectoria mişcãrii în câteva porţiuni şi fiecare din acestea se interpoleazã cu un polinom de grad mic.

Existã diferite mijloace de împãrţire a traiectoriei în porţiuni, fiecare din ele având avantaje şi dezavantaje. Varianta 4-3-4 este cea mai rãspândită. Legea de variaţie a coordonatelor articulare pentru un grad de mobilitate se exprimã în figura 3.5.

Page 29: Proiect RI

D

C

B

A

Fig. 5.1.

A = punctul iniţialB = punctul de plecareC = punctulde apropiereD = punctul final

- AB = intervalul de pornire ;- BC = intervalul de-a lungul cãreia se pãstreazã constante viteza şi acceleraţia ;- CD = intervalul finalã, de poziţionare.

Pentru a obţine o bunã precizie de poziţionare trebuie sã fragmentãm traiectoria în cel putin trei intervale :- un interval de pornire , la sfârşitul cãreia se ating viteza şi acceleraţia maximã ;- un interval de-a lungul cãreia se pãstreazã constante viteza şi acceleraţia iar EE parcurge cea mai mare parte a traiectoriei;- un interval final, de poziţionare.Uneori, în funcţie de necesitãţi, şi intervalul medianã se împarte la rândul ei în mai multe intervale, dacã existã obstacole sau dacã se impune modificarea parametrilor cinematici.Aceastã fragmentare este necesarã în primul rând datoritã exigenţelor impuse de precizia de poziţionare. Evident cã este necesarã un prim interval de accelerare de la viteza iniţialã ( de cele mai multe ori zero ) la cea de regim. Intervalul final este necesarã pentru a putea realiza o puternicã decelerare ( de obicei pânã la vitezã zero ), fãrã de care nu s-ar putea realiza poziţionarea exactã.În cadrul variantei 3-5-3 secţionarea traiectoriei în intervale se produce ca şi pentru 4-3-4, dar se folosesc alte polinoame de interpolare. Numãrul polinoamelor folosite pentru descrierea completa a traiectoriei pentru un RI cu N grade de mobilitate este 3xN , iar numãrul coeficienţilor de determinat este 7xN. În acest caz, trebuiesc determinate extremităţile pentru toate cele 3N intervale ale traiectoriilor. În urmãtorul subcapitol vom examina schemele de planificare a traiectoriilor în sistemul 4-3-4 .

Calculul traiectoriei în cazul 4-3-4

În legãtura cu faptul cã pentru fiecare interval a domeniului de variaţie a coordonatelor articulare se cere sã se determine N intervale ale variabilelor articulare, este comod sã se foloseascã timpul normat t, t[0,1]. Aceasta permite sã se obţinã caracterul unitar al

Page 30: Proiect RI

ecuaţiilor ce descriu schimbarea fiecãreia dintre variabilele articulare pe fiecare interval al traiectoriei. Astfel timpul normat variază de la t=0 ( momentul iniţial pentru fiecare din intervalele traiectoriei ) pânã la t=1 ( momentul final pentru fiecare din intervalele traiectoriei). Introducem urmãtoarele notaţii :-) t , este timpul normat, t=t/tm ; t[0,1].-) este timpul real , mãsurat în secunde.-) i este momentul ( în timp real ) de terminare a intervalului “i” al traiectoriei; -) ti = (i - i-1 ) este intervalul de timp real consumat pentru parcurgerea intervalul “i” al traiectoriei.t = ( - i-1 )/( i - i-1 ) ; [i-1 - i ] ; t[0,1].Domeniul de variţie al variabilelor articulare “j” se indicã sub forma unei succesiuni de polinoame hi(t). Pe fiecare interval al domeniului, pentru fiecare variabilã articularã, polinoamele folosite exprimate în timp normat au forma:h1(t) = a14t4+a13t3+a12t2+a11t+a10 (primul interval)h2(t) = a23t3+a22t2+a21t+a20 (al doilea interval)……………………………………………………hn(t) = an4t4+an3t3+an2t2+an1t+an0 (ultimul interval)Indexul variabilei ce se aflã în partea stângã a fiecãrei egalitãţi indicã numãrul porţiunii traiectoriei, intervalul “n” fiind ultima. Indexul din notaţiile coeficienţilor necunoscuţi a ij au urmãtoarea semnificaţie:- coeficientul “i” pentru intervalul “j” al traiectoriei.Condiţiile limitã pe care trebuie sã le satisfacã sistemul ales de polinoame sunt urmãtoarele :1) Poziţia iniţiala 0 =(t0);2) Valoarea vitezei iniţiale v0 (de obicei este zero);3) Valoarea acceleraţiei iniţiale a0 (de obicei zero);4) Poziţia în punctul de pornire 1 (se alege);5) Continuitatea în poziţie în punctual de plecare, în momentul τ1, adica (t1)= (t1

*)6) Continuitatea în viteză, în punctual de plecare, în momentul τ 1, adicã v(t1)= v(t1

*)7) Continuitatea în acceleraţie în punctual de plecare în momentul τ 1, adică a(t1)= a(t1

*)8) Poziţia în punctul de apropiere 2 ( se alege )9) Continuitatea în poziţie, în punctul de apropiere, în momentul τ 2, adicã (t2)= (t2

*)10) Continuitatea în vitezã, în punctul de apropiere, în momentul τ 2, adicã v(t2)= v(t2

*)11) Continuitatea în acceleraţie, în punctul de apropiere, în momentul τ 2, adicã a(t2)= a(t2

*)12) Poziţia finalã f = (tf)13) Valoarea vitezei finale vf (de obicei nulã)14) Valoarea acceleraţiei finale af (de obicei nulã)

vi(t) = dhi(t)/d = dhi(t)/dt x dt/ d = [1/(i- i-1)] x dhi(t)/dt = 1/ti dhi(t) /dt = [1/ti] fi(t) , i=1,2,..,n (67)

ai(t) = dh2i(t)/d2 = [1/(i- i-1)]2 x d2hi(t)/dt2 = 1/ti

2 dh2i(t) /dt2 =

= [1/ti2] fi(t) , i=1,2,..,n (68)

Pentru descrierea primului interval al traiectoriei se foloseşte un polinom de gradul 3.h1(t) = a14t4+a13t3+a12t2+a11t +a10 , t[0,1]. (69)Luând în consideraţie egalitãţile (67) şi (68) viteza şi acceleraţia de pe aceastã porţiune au forma:v1(t) = d[h1(t)]/t1 = [ 4a14t3+3a13t2+2a12t+a11]/t1 (70)a1(t) = d2[h1(t)]/t1

2 = [ 12a14 t2+ 6a13t + 2a12 ]/t12 (71)

Page 31: Proiect RI

1). Pentru t=0 (punctul iniţial al intervalului dat al traiectoriei) Din condiţiile limitã în acest punct rezultã :a10 = h1(0) = 0 (0 dat ) (72)v0 = d[h1(0)] / t1 = {[ 4a14t3+3a13t2+2a12t+a11]/t1}t=0 = a11/t1 (73)Din această relaţie rezultă : a11 = v0t1 şi a0 = d2[hi(0)]/t1

2 = {[ 12a14 t2+ 6a13t + 2a12 ]/t12 }t=0 = 2a12/t1

2 (74)Substituind valorile obţinute ale coeficienţilor în egalitatea (69) vom obţine:h1(t) = a14t4 + a13t3 +[a0t1

3/2]t2+(v0t1) t + 0 , t[0,1]. (75)2). Pentru t=1 ( punctul final al primului interval al traiectoriei )

În acest punct vom reduce condiţiile limitã aplicate, excluzând cerinţa deplasãrii precise a coordonatelor articulare prin poziţia datã, dar pãstrând condiţiile privind continuitatea vitezei şi a acceleraţiei. Aceste condiţii semnificã faptul cã viteza şi acceleraţia la capãtul primului interval al traiectoriei trebuie sã coincidã cu viteza şi acceleraţia de la începutul intervalului al doilea. La capãtul primului interval viteza şi acceleraţia sunt egale în mod corespunzãtor: v1(1) = v1 = dh1(1)/t1 = [4a14+3a13+a0t1

2+v0t1]/t1 (76)a1(1) = a1 = d2h1(1)/t1

2 = [12a14 + 6a13 + a0t12]/t1

2 (77)Pentru descrierea celui de al doilea interval al traiectoriei se foloseşte un polinom de gradul al treilea.h2(t) = a23t3+a22t2+a21t+a20 , t[0,1]. (78)1). Pentru t=0 (punctul de plecare) folosind egalitãtile (3.67) şi (3.68) avem în acest punct :h2(0) = a20 = 2 (79)v1= dh2(0)/t2={[3a23t2+2a22t+a21]/t2}t=0 = a21/t2 (80)De aici rezultã cã :a1 = dh2(0)/t2

2 = {[6a23t+2a22]/t22}t=0 = 2a22/t2

2 (81)şi se obţine a22 = a1t2

2/2Întrucât în acest punct viteza şi acceleraţia trebuie sã coincidã în mod corespunzãtor cu

viteza şi acceleraţia din punctul final al intervalului anterioar al domeniului de variaţie a coordonatelor articulare se impun egalitãţile:d[h2(0)]/t2 = d[h1(1)]/t1 şi d2[h2(0)]/t2

2 = d2[h1(1)]/t12 (82)

care conduc în mod corespunzãtor la urmãtoarele condiţii :[( 3a23t2+2a22t+a21)/t2]t=0 = [( 4a14t3+3a13t2+2a12t+a11)/t1]t=1 (83)sau, a21/t2 = 4a14/t1+3a13/t1+a0t1

2/t1+v0t1/t1 (84)şi [(6a23t+2a22)/t2

2]t=0 = [( 12a14t2+6a13t+2a12)/t12]t=1 (85)

sau 2a22/t2

2 = 12a14/t12+6a13/t1

2+a0t12/t1

2 (86)2) Pentru t=1 (punctul de apropiere) În acest punct viteza şi acceleraţia trebuie sã coincidã cu viteza şi acceleraţia din punctul iniţial al urmãtoarului interval al domeniului de variaţie a coordonatelor articulare. Pentru punctul examinat avem ;h2(1)=a23+a22+a21+a20 (87)v2(1) = h2(1)/t2 = [( 3a23t2+2a22t+a21)]t=1 = [ 3a23+2a22+a21]/t2 (88)a2(1) = h2(1)/t2

2 = [(6a23t+2a22)/t22]t=1 = [6a23+2a22]t2

2 (89)În descrierea ultimului interval al domeniului de variaţie al coordonatelor articulare se foloseşte un polinom de gradul 3.

, t[0 , 1] (90)În aceasta egalitate se înlocuieşte t cu t`= t-1 şi se examineazã dependenţa de noua

variabilã t` şi faţã de aceasta vom efectua deplasarea în timp normat. Dacã variabila “t” aparţine intervalului [0 , 1] , atunci variabila “t`” aparţine intervalului de [-1 , 0] .

Page 32: Proiect RI

Astfel , egalitatea (90) va avea forma : , t[0 , 1] (91)

În final vom gãsi viteza şi acceleraţia pe ultimul interval:

, (92)

a tn

h n t

tn

an t an t antn

` ` ` ` ` 2

12 4 6 3 2 22 , (93)

1. Pentru t`= 0 (punctul final al intervalului examinat al traiectoriei). În concordanţã cu condiţiile limitã din acest punct avem:

hn(0) = an0 = f , (94)vf =h`n (0)/ tn = an1 /tn , (95)

De aici rezultã:an1 = vf tn .

Mai departe ,af =h`n(0) / tn

2 =2an2 / tn2 (96)

şi în final :an2 =aftn

2 / 2.2. Pentru t`=-1 În concordanţã cu condiţiile limitã din punctul de apropiere obţinem :hn(-1)=an4 - an3 + [ aftn

2 / 2 ] -vf tn+ f = 2 (1) (97)

hn(-1)/tn=

(98)

(99)Condiţiile de continuitate a vitezei şi a acceleraţiei din punctul de apropiere conduc la:

[h`2(1) / t2 ]=[ h`n(-1) / tn ] şi [h`2(1) / t22 ]=[h`n(-1) / tn

2 ] , (100)sau

(101)

şi

0 (102)

Notăm:1 = 1 -0 = h1 (1)-h1(0) = a14 + a13 +[a0 t1

2 / 2]+ v0t1 , (103)2 = 2 -1 = h2 (1)-h2(0) = a23 + a22 + a21 , (104)n = f -2 = hn (0)-hn (-1) =-an4 + an3 - [af tn

2 / 2] + vf tn . (105)Toţi coeficienţii necunoscuţi din polinoame ce descriu schimbarea variabilei

articulare pot fi determinati prin rezolvarea în comun a ecuaţiilor (103), (104), (105). Prezentând acest sistem de ecuaţii în forma matricealã, vom obţine :

y =Cx , (106)unde

(107)

Page 33: Proiect RI

,

(108)x = ( a13 , a14 , a21 , a22 , a23 , an3 , an4 , )T Astfel, problema planificãrii traiectoriei conduce la rezolvarea ecuaţiei matriciale

(109):

,

sau x = C-1y. (109)Structura matricei C permite sã se găseascã uşor coeficienţii necunoscuţi. Pe lângã

aceasta, matricea inversã C-1 existã întotdeauna numai dacã intervalele de timp t i (când i = 1,2,...n ) sunt pozitive. Rezolvând ecuaţia (109) obţinem toţi coeficienţii necunoscuţi ai polinoamelor care descriu coordonata articularã “j”. Întrucât pentru polinomul ce descrie ultimul interval al domeniului de variaţie a coordonatei articulare a fost efectuatã o substituţie, atunci dupã determinarea coeficienţilor ani din ecuaţia (109), este necesar sã se efectueze înlocuirea inversã, ce constă în substituirea t`=t-1 în egalitatea (105).

Aplicaţie

Pentru deplasarea endefectorului între două puncte definite în coordonate articulare, planificarea mişcării efectuându-se în coordonate articulare, se vor determina legile de variaţie ale coordonatelor articulare ale gradului de mobilitate “ 3 “ utilizând două puncte nodale intermediare (unul de plecare şi celălalt de apropiere).

Rezolvare

Fie două puncte A şi B din spaţiul de lucru al robotului industrial . Coordonatele articulare corespunzătoare acestor două puncte sunt :

A [ 0.610 , -1.630 , 0.40 ] ; D [ 0.490 , -1.210 , 0.520 ] .Acestea reprezintă punctul iniţial “A“ şi punctul final “D”.

Se impune să specificăm valorile vitezelor şi ale acceleraţiilor iniţiale. Acestea sunt:vA = 0 ; aA = 0 ; vD = 0 ; aD = 0 .Pentru a asigura o bună precizie de poziţionare trebuie să fragmentăm traiectoria în cel

puţin trei segmente prin introducerea a cel puţin două puncte nodale,- unul de plecare B ( q1

B , q2B , 0.42 ) ;

- unul de apropiere C ( q1C , q2

C , 0.42 ).

Page 34: Proiect RI

Astfel, intervalul iniţial se împarte în trei intervale:- un interval de pornire AB , de-a lungul căruia se realizează accelerarea şi se ating viteza şi acceleraţia maximă;- un interval BC de-a lungul căruia viteza şi acceleraţia rămân constante; ea reprezintă cea mai mare parte din traiectoria iniţială AD;- un interval final CD, de poziţionare, care are ca scop asigurarea unei bune precizii de poziţionare prin micşorarea vitezei şi a acceleraţiei.Uneori intervalul median BC se împarte la rândul ei în mai multe un intervale dacă de-a lungul lui există obstacole.În cele ce urmează vom studia (pe cazul concret mai sus enunţat) situaţia cea mai frecvent întâlnită şi anume cu două puncte nodale intermediare şi trei un intervale.

Pentru fiecare robot industrial cu N grade de mobilitate, fiecăruia dintre cele 4 puncte nodale ale traiectoriei îi corespund 4N puncte nodale. Deci şi la nivelul gradului de mobilitate “3” vom avea 4 puncte nodale şi trei porţiuni. Legile de variaţie ale variabilei articulare “3” sunt descrise prin trei polinoame, câte unul pentru fiecare porţiune. Vom adopta cazul 4-3-3. Rezultă că pentru intervalul “i” legea de variaţie a coordonatei articulare “3” este descrisă de polinomul hi(t), astfel:

h1(t) = a14t4+a13t3+a12t2+a11t +a10 , t[0,1].h2(t) = a23t3+a22t2+a21t+a20 , t[0,1]. , t[0,1].h3(t) = a34t4+a33t3+a32t2+a31t +a30 , t[0,1].

Problema se reduce deci la a determina cei 14 coeficienţi care definesc cele trei polinoame de mai sus. Pentru aceasta vom apela la condiţiile limită şi la condiţiile de continuitate ale poziţiei, vitezei şi acceleraţiei în cele două puncte nodale.

Pentru poziţia iniţială A

h1(t) = a14t4+a13t3+a12t2+a11t +a10 , t[0,1].

h1(0) = 0,40 condiţia limită pentru poziţiev1(0) = 0 condiţia limită pentru vitezăa1(0) = 0 condiţia limită pentru acceleraţie

Aceste trei condiţii sunt condiţiile limită în punctul iniţial şi ele reprezintă trei din cele 14 ecuaţii necesare determinării lui h1(t).

h1(0) = a10 a10 = 0,40 (ecuaţia 1 )v1(t) = d[h(t)]/t1 = [ 4a14t3+3a13t2+2a12t+a11]/t1 v1(0) = a11 a11 = 0 (ecuaţia 2 )a1(t) = d2[h(t)]/t1

2 = [ 12a14 t2+ 6a13t + 2a12 ]/t12

a1(0) = a12 a12 = 0 (ecuaţia 3 )

Pentru punctul de plecare B

h2(t) = a23t3+a22t2+a21t+a20 , t[0,1]. , t[0,1].

h2(0) = a20

v2(0) = dh2(0)/t2={[3a23t2+2a22t+a21]/t2}t=0 = a21/t2 De aici rezultã cã :

Page 35: Proiect RI

a2(0) = dh2(0)/t22 = {[6a23t+2a22]/t2

2}t=0 = 2a22/t22

Întrucât în acest punct poziţia, viteza şi acceleraţia trebuie sã coincidã în mod corespunzãtor cu poziţia, viteza şi acceleraţia din punctul final al intervalului anterior al domeniului se impun egalitãţile :

h1(1) = h2(0) condiţia de continuitate a poziţiei în Ba14+a13+a10 = a20 (ecuaţia 4 )

d[h2(0)]/t2 = d[h1(1)]/t1 condiţia de continuitate a vitezei în B4a14+3a13 = a21 (ecuaţia 5 )

d2[h2(0)]/t22 = d2[h1(1)]/t1

2 condiţia de continuitate a acceleraţiei în B12a14+6a13 = 2a22 (ecuaţia 6 )

Pentru punctul de apropiere C

h3(t) = a34t4+a33t3+a32t2+a31t +a30 In scopul micşorării volumului de calcule vom efectua substituia :

t` = t – 1 t` [-1 , 0 ]Obţinem :

h3(t`) = a`34t`4+a`33t`3+a`32t`2+a`31t` +a`30

v3(t`) = d[h3(t`)]/t` = [ 4a`34t`3+3a`33t`2+2a`32t`+a`31]a3(t`) = d2[h3(t`)]/t`2 = [ 12a`34 t`2+ 6a`33t` + 2a`32 ]

Identificând polinomul iniţial cu cel obţinut prin schimbarea de variabilă . obţinem :

a`34 = a34

a`33 = 4a34+a33

a`32 = 6a34+3a33+a32

a`31 = 4a34+3a33+2a32+a31

a`30 = a34+a33+a32+a31+a30

Condiţiile de continuitate ale poziţiei, vitezelor şi acceleraţiilor în punctul C sunt :

h2(1) = h3(-1) a23+a22+a21+a20 = a`34-a`33+a`32-a`31+a`30 condiţia de continuitate a poziţiei în C (ecuaţia 7 )v2(1) = v3(-1)3a23+2a22+a21 = -4a`34+3a`33-2a`32+a`31 condiţia de continuitate a vitezei în C (ecuaţia 8 )

a2(1) = a3(-1)6a23+2a22 = 12a`34-6a`33+2a`32 condiţia de continuitate a acceleraţiei în C (ecuaţia 9 )

Pentru punctul D

Vom impune următoarele condiţii limită :

Page 36: Proiect RI

h3(0) = 0,52 a`30 = 0,52 (ecuaţia 10 )

v3(0) = 0a`31 = 0 (ecuaţia 11 )

a3(0) = 0a`32 = 0 (ecuaţia 12 )

Până acum am obţinut 12 ecuaţii, celelalte 2 ecuaţii necesare până la obţinerea unui sistem determinat de 14 ecuaţii cu 14 necunoscute se obţin din condiţiile de definire ale poziţiei punctelor nodale intermediare.

Acestea sunt:

- pentru Bh2(0) = 0,42 a20 = 0,42 (ecuaţia 13)- pentru Ch2(1) = 0,50 a23+a22+a21+a20 = 0,50 (ecuaţia 14)

Am obţinut astfel următorul sistem de ecuaţii liniare de 14 ecuaţii cu 14 necunoscute :

a10 = 0,40 a11 = 0 a12 = 0a14+a13+a10 = a20 4a14+3a13 = a21 12a14+6a13 = 2a22

a23+a22+a21+a20 = a`34-a`33+a`32-a`31+a30 3a23+2a22+a21 = -4a`34+3a`33-2a`32+a`31 6a23+2a22 = 12a`34-6a`33+2a`32 a`30 = 0,52 a`31 = 0 a`32 = 0a23+a22+a21+a20 = 0,50a20 = 0,42

Prin rezolvarea sistemului de mai sus utilizând Mathematica 3.0 sau oricare alt limbaj ştiinţific, obţinem :

a10=0.4 , a11= 0, a12=0 , a13=0.02 , a14=0 , a20=0.42 , a21=0.06 , a22=0.06 , a23=-0.04 , a30= 0.52, a31=0 , a32=0 , a33=0.02 , a34=0

Astfel cele trei polinoame care descriu mişcarea elemetului “3” sunt:

h1(t) = 0.02t3+0.4

h2(t) = -0.04t3+0.06t2+0.06t+0.42

h3(t) = 0.02t3+0.52

Page 37: Proiect RI

BIBLIOGRAFIE

[1] Angeles J., O.Ma - An algorithm for inverse dynamics of n-axis general manipulator using Kane`s equations , Computers Math.Applic. Vol.17,No.12,1989.

[2] Angeles J., O.Ma - Dynamics simulation of n-axis serial robotic manipulators using a natural orthogonal complement, The international Journal of RoboticResearch,Vol.7,Nr.5, Oct. 1988.

[3] Angeles J. - Iterativ Kinematic Inversion of General Five - Axis Robot Manipulators, The International Journal of Robotic Research,Vol.4. Nr.4,Winter 1986

[4] Angeles J. - On the Numerical Solution of the Inverse Kinematic Problem, The International Journal of Robotic Research,Vol 4,Nr.2,Summer 1985.

[5] Angeles J.A. Alivizatos and P.J.Zsombor-Murray - The synthesis of smooth trajectory for pick-and-place operatons , IEEE Trans.Syst.Man Cybern. 18(1) , 173-178 (1988).[6] Angeles J. , S.Lee - The formulation of dynamical , equations of holonomic mrchanical systems using a natural orthogonasl complement , International Journal of Robotic Research 4/1987.[7] Atkenson C. , Chae H.A. , Hollerbach J. - Estimation of inertial parameters of manipulator load and links , Cambridge , Massachuesetts , MIT Press. 1986.[8] Angeles J. - Spatial kinematic chains : Analysis , synthesis , and optimization , Berlin : Springer verlag.[9] Angeles J. , Rojas A. - On the use of condition-number minimization and continuon in the iterative kinematic analysis of robot manipulator , Proc.Fifth IASTED Symposium Robotics, New Orleans1985.[10] Baştiurea Gh. ş.a. – Comanda numericã a maşinilor-unelte,

Editura tehnică , Bucureşti 1976[11] Chircor M. - Asupra volumului spaţiului de lucru al roboţilor industriai , Sesiunea de Comunicãri Stiintifice, Braila,1993.[12] Chircor M. – Noutãţi în cinematica şî dinamica roboţilor industriali , Editura Fundaţiei Andrei Saguna , Constanţa , 1997.[13] Chircor M. - Calculul deplasãrilor finite la roboţii de topologie paralelã , A XVIII - a Conferinţa de Mecanicã Solidelor , Constanţa , 09 - 11 iunie 1994.[14] Chircor M. - Calculul deplasãrilor roboţilor industriali folosind notaţiile Hartemberg-Denavit , Acta Universitatis Cibiniensis , Sibiu ,1995.[15] Chircor M.- Calculul energiei consumate de robotul industrial la manipularea unei sarcini , Acta Universitatis Cibiniensis , Sibiu ,1995.[16] Chircor M. - The control of the motion in Internal and External Coordinates , International Symposium on Systems atheory , Robotics , Computers and Process Informatics , Craiova , 6-7 june 1996.[17] Chircor M. - A limit of the Serial Topology , International Symposium on Systems atheory , Robotics , Computers and Process Informatics , Craiova , 6-7 june 1996.[18] Chircor M. – Cercetãri privind construcţia modularã a roboţilor industriali – Tezã de doctorat , Universitatea Politehnicã Bucureşti , 1997.[19] Cojocaru G., Fr.Kovaci - Roboţii în acţiune, Ed.Facla, Timişoara,1998./[20] Davidoviciu A., G.Drãgãnoiu , A.Moanga , Modelarea , simularea şi comanda manipulatoarelor şi roboţilor industriali , Ed.Tehnica , Bucureşti 1986.[21] Denavit J., McGraw-Hill - Kinematic Syntesis of Linkage,Hartenberg R.SN.Y.1964.[22] Drimer D.,A.Oprea,Al. Dorin - Roboţi industriali şi manipulatoare, Ed. Tehnicã 1985.

Page 38: Proiect RI

[23] Dombre E., Wisama Khalil - Modelisation et commande des robots , Editions Hermes , Paris 1988.[24] Doroftei Ioan – Introducere în roboţii păşitori , Editura CERMI , Iaşi 1998.[25] Dorn W.S., D.D.McCracken - Metode numerice cu programare in FORTRAN, Editura Tehnicã, Bucureşti 1973.

[26] Golub G - Matrix , The Johns Hopkins University Press, London.

[27] Hartemberg R.S. and J.Denavit - A kinematic notation for lower pair mechanisms , J. appl.Mech. 22,215-221 (1955).[28] Hasegawa , Matsushita , Kanedo - On the study of standardisation and symbol related to industrial robot in Japan , Industrial Robot Sept.1980.[29] HollerbachJ.M. - Wrist-partitioned inverse kinematic accelerations and manipulator dynamics. , International Journal of Robotic Research 2,61-76 (1983)[30] Ispas V.,I.Pop,M.Bocu - Roboţi industriali, Ed.Dacia, Cluj, 1985.[31] Ispas V. - Aplicaţiile cinematicii în construcţia manipulatoarelor şi a roboţilor industriali , Ed.Academiei Române 1990.[32] Khalil W. - J.F.Kleinfinger and M.Gautier , Reducing the computational burden of the dynamic model of robots. , Proc. IEEE Conf.Robotics ana Automation , San Francisco , Vol.1 , 1986.[33] Kane T.R., D.A. Levinson - The use of Kane`s dynamic equations in robotics,

International Journal of Robotic Research,Nr. 2/1983.[34] Kane T.R. - Dynamics of nonholonomic systems , Trans.ASME , J.appl.Mech. , 83 , 574-578 (1961).[35] Kazerounian K. , Gupta K.C. , Manipulator dynamics using the extended zero reference position description , IEEE Journal of Robotic and Automation RA-2/1986.[36] Kovacs Fr., G.Cojocaru - Manipulatoare, roboţi şi aplicaţiile lor industriale, Ed.Facla,Timişoara,1982. [37] Kovacs Fr , C. Rãdulescu - Roboţi industriali , Reprografia Universitãţii Timişoara , 1992.[38] Kyriakopoulos K. J. and G.N.Saridis - Minimum distance estimation and collision prediction under uncertainty for on line robotic motion planning., International Journal of Robotic Research 3/1986.[39] Larionescu D. - Metode numerice , Editura Tehnicã, Bucureşti 1989.[40] Luh J.S.Y., Walker M.W. , Paul R.P.C. - On line computational scheme for mechanical manipulators , Journal of Dynamic Systems Measures and Control 102/1980[41] Ma O.- Dynamics of serial - typen-axis robotic manipulators, Thesis, Department of

Mechanical Engineering,McGill University,Montreal,1987.[42] Monkam G. - Parallel robots take gold in Barcelona, ,Industrial Robot,4/1992.[43] Monkam G. - Parallel robots take gold in Barcelona , Industrial Robot 4/1992.[44] Olaru A. - Dinamica roboţilor industriali , Reprografia Universitãţii Politehnice Bucureşti , 1994.[45] Platon V. – Sisteme avansate de producţie , Editura tehnică, Bucureşti , 1990.[46] Panã C. , Drimer D. - Probleme ale construcţiei modulare a manipulataoarelor şi roboţilor , I Simpozion National de Roboţi Industriali , Bucureşti 1981.[47] Pandrea N. - Determinarea spaţiului de lucru al roboţilor industriali , Simpozion National de Roboţi Industriali , Bucureşti 1981.[48] Pandrea N. - Asupra echilibrãrii statice a mecanismelor RRT pentru roboţi industriali , Simpozion National de Roboţi Industriali , Bucureşti 1981.[49] .Păunescu T. – Celule flexibile de prelucrare , Editura Universităţii “Transilvania “ Braşov , 1998.

Page 39: Proiect RI

[50] Paul R. , Shimano B. - Kinematic control equations for simple manipulators , IEEE Trans. Systems , Man and Cybernetics SMC-11.[51] Pelecudi Christian - Teoria mecanismelor spaţiale, Ed. Academiei, 1972.

[52] Powell I.L.,B.A.Miere - The kinematic analysis and simulation of the parallel topology manipulator , The Marconi Review,1982.[53] Raghavan M. , Roth B. - Kinematic analysis of 6R manipulator of genaral geometry , Proc. 5 th International Symposium on Robotic Research , MIT Press , Cambridge Massachusets , 1990.[54] Renaud M. - Quasi-minimal computation of the dynamic model of a robot manipulator utilising the Newton-Euler formulism and the notion of augmented body. Proc.IEEE Conf.Robotics Automn Raleigh , Vol.3 , 1987.[55] Roşculet M. - Analizã matematicã , Editura Didacticã si Pedagodicã, Bucureşti 1973.[56] Seeger G. - Self-tuning of commercial manipulator based on an inverse dynamic model , J.Robotics Syst. 2 / 1990.[57] Soos E., C.Teodosiu - Calcul tensorial cu aplicaţii în mecanica solidelor, Editura Stiinţificã şi Enciclopedicã, Bucureşti 1983.[58] Stănescu A. , A. Curaj – Tehnici de generare automată a mişcărilor roboţilor, Reprografia Universităţii Politehnice Bucureşti , 1997.[59] Stanescu A. Dumitrache I.- Inteligenţa artificiala şi robotica , Ed.Academiei , Bucureşti 1983.[60] Tandirci Murat ,Jorge Angeles, John Darcovich - On Rotation Representations in Computational Robot Kinematics ,Tamio Arai,Hisashi Osumi - Three wire suspension robot, Industrial Robot,4/1992.[61] Uicker J.J. - On the dynamic analysis of spatial linkage 4x4 , Northwest University 1965.[62] Vâlcovici V., St. Bãlan, R. Voinea - Mecanica teoreticã, Editura tehnicã,1968.

[63] Vukobratovic M. - Applied dynamics of manipulation robots , New York , 1989.[64] Walker M.W. and D.E.Orin - Efficient dynamic computer simulation of robot mechanisms , J.Dynamic Syst. Meas. Control 104 205-211 (1982).[65] STAS R 12928/2-90.[66] STAS R 12928/3-90.[67] STAS R 12928/1-90.[68] STAS 12938-91[69] OIDICM - Actualitãţi în domeniul roboţilor industriali , Bucureşti 1987.[70] OIDICM - Robotizarea proceselor tehnologice de ştanţare şi matriţare , Nr. 1-45/1989.[71] OIDICM , SID 69 - Noutãţi în robotica industrialã , Bucureşti , 1987.[72] OIDICM , SID 53 - Utilizarea robotilor industriali la sudarea metalelor şi la procese conexe , Bucureşti , 1985.[73] IDAR Colecţie ( Informare - Documentare - Automatizare - Robotizare - Calculatoare ) Bucureşti , 1980-1990.[74] INID Colecţie , Buletine de informare şi documentare tehnico-ştiinţifice , Bucureşti 1980-1990.