Documente Academic
Documente Profesional
Documente Cultură
Bazele Roboticii Curs PDF
Bazele Roboticii Curs PDF
DOROFTEI
BAZELE ROBOTICII
CURS
(revizuit 2016)
“O lucrare aduce greşeli: greşelile sînt
un îndemn spre a face mai bine; vine o
zi cînd lucrătorul moare zdrobit; dar lumii
i-a folosit şi munca lui şi durerile ce au
adus o muncă nouă.”
N. Iorga
J. W. Goethe
Autorul
i
Bazele roboticii
ii
PREFAŢĂ
iii
Bazele roboticii
Ioan D. Doroftei
15.03.2016
iv
CUPRINS
Cuprins ................................................................... v
v
Cuprins
vi
Bazele Roboticii
vii
Cuprins
6.1 Generalităţi......................................................................173
6.2 Mişcarea generală a corpului rigid........................................174
6.2.1 Viteza unghiulară a unui corp rigid..........................174
6.2.1.1 Exemplu.................................................176
6.2.2 Viteza liniară a unui punct......................................177
6.2.3 Acceleraţia liniară a unui punct...............................179
6.3 Propagarea vitezelor şi acceleraţiilor de la un element la altul..180
6.3.1 Scrierea ecuaţiilor în raport cu sistemul de
referinţă {0}........................................................181
6.3.1.1 Viteza unghiulară, exprimată în raport cu
sistemul de referinţă {0}..........................181
6.3.1.2 Acceleraţia unghiulară, exprimată în raport
cu sistemul de referinţă {0}......................181
6.3.1.3 Viteza liniară, exprimată în raport cu
sistemul de referinţă {0}.........................182
viii
Bazele Roboticii
7.1 Generalităţi......................................................................231
7.2 Momentele de torsiune din cuple.........................................233
7.3 Metoda recursivă..............................................................234
7.4 Exemplu..........................................................................235
ix
Cuprins
x
Bazele Roboticii
9.1 Generalităţi......................................................................319
9.2 Generarea în spaţiul cuplelor cinematice.............................. 320
9.2.1 Polinoame de ordinul trei.......................................321
9.2.2 Funcţii polinomiale cubice pentru o traiectorie cu
puncte intermediare.............................................323
9.2.3 Polinoame de ordin mai mare ca trei.......................327
9.2.4 Funcţii liniare cu segmente parabolice.....................328
9.2.4 Funcţii liniare cu segmente parabolice, pentru
traiectorii cu puncte intermediare...........................330
9.3 Generarea în spaţiul cartezian de lucru.................................333
9.3.1 Mişcare după o dreaptă.........................................334
9.4 Probleme geometrice la generarea traiectoriilor în spaţiul de
lucru...............................................................................334
9.4.1 Probleme de tipul 1: puncte intermediare din afara
spaţiului de lucru..................................................334
9.4.2 Probleme de tipul 2: viteze mari ale cuplelor în
vecinătatea singularităţilor.....................................335
9.4.3 Probleme de tipul 3: soluţii diferite de atingere a
punctului iniţial şi final..........................................336
xi
1
INTRODUCERE
1.1 Generalităţi
Robotica este un domeniu fascinant, interdisciplinar, ce merită
abordat de cei pasionaţi de tehnică. Pe de o parte, există o mare
diversitate de aplicaţii excitante, în permanenţă fiind posibilă
conceperea unor noi sisteme. Pe de altă parte, roboţii sunt interesanţi
prin ei înşişi, crearea de oameni artificiali, spre exemplu, constituind
preocupările multor cercetători.
În prezent, datorită realizărilor în domeniul interdisciplinar
numit robotică, roboţii nu mai sunt doar nişte “chestii” specifice
filmelor ştiinţifico-fantastice, ci fac parte integrantă din viaţa noastră.
Dacă la început aceştia erau utilizaţi doar pentru înlocuirea omului în
activităţile industriale grele şi murdare, evoluţia rapidă a acestui
domeniu conduce la o „explozie” a aplicaţiilor roboţilor, în special în
sfera serviciilor. Astăzi, roboţii vopsesc, sudează caroserii sau
montează diverse subansamble în industria de autoturisme,
efectuează diverse operaţii (manipulare, ambalare, etc.) în industria
alimentară, dozează şi ambalează medicamente într-o unitate de
profil, păşesc în cratere de vulcani activi, conduc trenuri, ţin
companie unor persoane, efectuează operaţii chirurgicale, asistă
persoane handicapate, alimentează autoturismele cu combustibil,
efectuează diverse activităţi pe staţiile orbitale, detectează şi
dezamorsează bombe, contribuie la educarea studenţilor în domeniul
roboticii, etc. Deoarece roboţii devin tot mai tenace, mai ageri şi mai
inteligenţi, aceştia efectuează tot mai multe activităţi, pe care
oamenii nu pot – sau nu vor – să le facă.
Roboţii au apărut în jurul nostru de mai puţin de 50 de ani,
dar ideea realizării unor creaturi care să execute poruncile noastre
este mult mai veche. Poetul grec Homer descrie “servitoarele de aur”,
ajutoare mecanice construite de Hephaistos. În 1495, Leonardo da
Vinci concepe planurile unui om mecanic. Dar apariţia roboţilor
adevăraţi nu putea fi posibilă înainte de 1950–1960, când au fost
inventaţi tranzistorii şi, apoi, circuitele integrate. Astfel, electronica şi
1
1. Introducere
1.2 Definiţii
În prezent, nu există o definiţie precisă a robotului dar, în
accepţiunea generală a specialiştilor în domeniu, acesta este o
maşină programabilă, care imită acţiunile sau aspectul unei creaturi
inteligente – de obicei omul. Pentru a fi considerată robot, maşina
respectivă trebuie să fie capabilă să facă două lucruri: a) să culeagă
informaţii din mediul înconjurător şi b) să efectueze o activitate fizică,
ca de exemplu, să se deplaseze sau să manipuleze un obiect.
Definiţiile existente în literatura de specialitate sunt mult mai
restrictive, acestea limitându-se la robotul industrial. În cele ce
urmează vor fi exemplificate doar câteva dintre aceste definiţii.
• După Institutul American de Robotică:
“Robotul este un manipulator multifuncţional reprogramabil,
conceput să manipuleze materiale, componente, scule sau
dispozitive specializate, prin mişcări variabil programate, în
scopul executării unei varietăţi de misiuni.”
• Atât standardul international ISO 8373, cât şi standardul
românesc STAS R 12928/1-90, definesc robotul industrial astfel:
“Un manipulator cu comandă automată, cu program flexibil,
reprogramabil, multifuncţional, cu mai multe grade de
mobilitate, fix sau mobil, destinat utilizării în cadrul proceselor
industriale automatizate.”
Astăzi, aceste definiţii sunt prea restrictive, limitând roboţii la
aplicaţiile industriale şi, într-adevăr, unii oameni cred că robotica ar
trebui să fie o ramură a tehnologiei de fabricaţie. Odată cu trecerea
timpului, robotica s-a extins şi se extinde foarte mult, incluzând:
platforme mobile, roboţi pentru servicii, telerobotica, etc., ceea ce
justifică o definire mai largă a robotului.
O definiţie, considerată de V. Kumar (University of
Pennsylvania) ca fiind îmbunătăţită, poate fi următoarea:
“Robotul este un mecanism controlat de calculator, care
2
Bazele Roboticii
1.3 Istoric
3
1. Introducere
1920 Scriitorul ceh Karel Capek foloseşte cuvântul robot în piesa de teatru
Roboţii universali ai lui Rossum (R.U.R.). Cuvântul provine din limba
cehă, în care “robotnik” înseamnă muncitor sau sclav.
1938 Este proiectată prima maşină programabilă de vopsire prin
pulverizare, de americanii Willard Pollard şi Harold Roselund,
DeVilbiss Company.
1942 Scriitorul canadian de origine rusă Isaac Asimov utilizează pentru
prima dată cuvântul robotică în povestirile sale ştiinţifico-fantastice
(publică „Runaround”) şi formulează cele trei legi fundamentale ale
roboticii
1946 Americanul George Devol obţine patentul pentru un sistem de
înregistrare magnetică a informaţiei, utilizat pentru controlul
maşinilor (utilizând un înregistrator magnetic); J. Presper Eckert şi
John Mauchly au realizat primul calculator electronic (ENIAC) la
Universitaty of Pensilvania; La MIT, primul calculator digital Whirlwind
rezolvă prima sa problemă.
1948 Norbert Wiener, profesor la MIT, publică „Cybernetics or Control
Communication in the Animal”, o carte care descrie conceptul de
comunicare şi control în electronică, mecanică şi sisteme biologice.
1951 Raymond Goertz, Franţa, proiectează primul manipulator articulat
4
Bazele Roboticii
5
1. Introducere
6
Bazele Roboticii
7
1. Introducere
8
Bazele Roboticii
9
1. Introducere
1.5.1 Generalităţi
10
Bazele Roboticii
Mare
Automatizare
flexibilă
Varietatea
producţiei
Medie Automatizare
programabilă
11
1. Introducere
12
Bazele Roboticii
13
1. Introducere
14
Bazele Roboticii
15
1. Introducere
Cr
P = (1.1)
(
S + E + U − Ci + C p )
unde:
P - perioada de amortizare, în număr de ani;
C r - cheltuielile totale făcute pentru realizarea robotului,
inclusiv cheltuielile de punere în funcţiune;
S – salariul anual al muncitorilor înlocuiţi de robot, inclusiv
primele;
E – economiile făcute prin instalarea robotului, economii
datorate: creşterii productivităţii, a calităţii muncii, economiei de
materiale, absenţei locurilor de parcare şi a cantinelor, nevoii mai
16
Bazele Roboticii
unde:
R – rata anuală a rentabilităţii investiţiei;
N – durata de viaţă utilă, în număr de ani, a robotului (cel
puţin 8 ani).
17
1. Introducere
18
Bazele Roboticii
19
1. Introducere
20
Bazele Roboticii
21
1. Introducere
Roboţi
de tip manipulator
oRoboţi seriali
oRoboţi paraleli
Roboţi
mobili
oRoboţi mobili cu roţi sau şenile
oRoboţi păşitori (dintre aceştia, o categorie aparte o
constituie roboţii umanoizi)
o Roboţi mobili cu locomoţie hibridă, etc.
Roboţi de tip hibrid (manipulator montat pe o platformă
mobilă)
(a) (b)
22
Bazele Roboticii
(a) (b)
(c) (d)
Roboţi industriali
Roboţi pentru servicii
Roboţi comandaţi la distanţă
Interfeţe mecanice pentru realitatea virtuală
23
1. Introducere
24
Bazele Roboticii
25
1. Introducere
• îmbinare;
• lipire;
• manipulare pentru operaţii de asamblare;
• altele;
Roboţi pentru operaţii de manipulare în vederea
paletizării/ambalării;
Roboţi pentru măsurare/inspecţie/testare;
Roboţi pentru manipularea de materiale;
Roboţi pentru antrenament/educaţie/cercetare;
Alte tipuri de roboţi.
Robot
articulat
sau antro-
pomorf
Robot în
coordona-
te sferi-ce
sau
polare
Robot tip
SCARA
(Selected
Compli-
ance Ar-
ticulated
Robot
Arm)
26
Bazele Roboticii
Robot în
coordo-
nate
cilindrice
Robot în
coordo-
nate
cartezie-
ne
Robot
paralel
27
1. Introducere
28
Bazele Roboticii
29
1. Introducere
- Asamblare;
- Debavurare;
- Decupare;
- Manipulare;
- Măsurare-control;
- Paletizare;
- Sudare:
- prin puncte;
- cu arc electric;
- cu gaz;
- cu laser;
- Tăiere cu plasmă;
30
Bazele Roboticii
31
1. Introducere
32
Bazele Roboticii
Fig. 1.19 Robot pentru prăjit cartofi Fig. 1.20 Bar automat
33
1. Introducere
34
Bazele Roboticii
1.7.3.2 Teleroboţi
35
1. Introducere
36
Bazele Roboticii
(a)
(b)
37
1. Introducere
38
Bazele Roboticii
39
1. Introducere
40
2
STRUCTURA SISTEMULUI
MECANIC
2.1 Definiţii
Elementul cinematic este un corp solid, format dintr-o singură
piesă mecanică sau din mai multe piese îmbinate rigid între ele.
Elementele cinematice pot fi rigide sau flexibile (cabluri, curele). În
lucrarea de faţă, elementele cinematice vor fi considerate corpuri
rigide.
Legătura directă şi mobilă dintre două elemente cinematice
poartă numele de cuplă cinematică. Numărul de parametri
independenţi care determină complet poziţia relativă a celor două
elemente reprezintă gradul de mobilitate al cuplei, m, acesta fiind
egal şi cu numărul mişcărilor elementare pe care le poate executa un
element cinematic al cuplei în raport cu celălat.
Principalele tipuri de cuple cinematice întâlnite în structura
roboţilor sunt prezentate în Tabelul 2.1. Pentru comparaţie, în Fig.
2.1 sunt prezentate tipurile de articulaţii întâlnite în anatomia umană,
exemplificându-se şi zonele corpului omenesc unde apar aceste
legături.
Lanţul cinematic este o înşiruire de elemente cinematice,
legate între ele prin cuple cinematice.
Mecanismul este un lanţ cinematic, care are următoarele
proprietăţi:
• Conţine un element de referinţă, considerat fix, numit bază
sau batiu, în raport cu care are loc mişcarea celorlalte
elemente;
• Are un număr de cuple cinematice conducătoare, stabilit
astfel încât mişcarea tuturor elementelor să fie determinată.
Mecanismul poate fi constituit din lanţuri cinematice: deschise
(Fig. 2.2.a şi 2.2.b) sau închise (Fig. 2.2.c şi 2.2.d), seriale (Fig. 2.2.a
şi 2.2.b) sau paralele (Fig. 2.2.c şi 2.2.d), plane (Fig. 2.2.a şi 2.2.c)
sau spaţiale (Fig. 2.2.b şi 2.2.d).
Un lanţ cinematic este denumit închis dacă acesta formează o
41
2. Structura sistemului mecanic
1
Rotaţie (R)
-plană -spaţială
1
Translaţie (T)
Cilindrică (C) 2
Elicoidală (E) 1
Sferică (S) 3
Universală (U) 2
42
Bazele Roboticii
43
2. Structura sistemului mecanic
(a) (b)
(c) (d)
44
Bazele Roboticii
Sistem mecanic
45
2. Structura sistemului mecanic
46
Bazele Roboticii
47
2. Structura sistemului mecanic
48
Bazele Roboticii
49
2. Structura sistemului mecanic
50
Bazele Roboticii
(a) (b)
51
2. Structura sistemului mecanic
6
M = 6 ⋅ (7 − 6 − 1) + ∑ mi = 0+6 = 6
i −1
52
Bazele Roboticii
unde:
= l1 AB
= ; l2 BM
53
2. Structura sistemului mecanic
M' xM
M ψ
1 M' M M"
ϕ1 1 1
A
A
M" 0
(a) (b)
M' M"
B 2
M ϕ2 O2 M
B' 2 1
B ϕ1
ψ A M'
V
M'"
r
1 B" 0 Spatiul de y1
r lucru
A
0 Spatiul de
lucru O1
(a) (b)
x2
2 B
M' M" ϕ2 lucru
ϕ1 M M
1 ψ1 Spatiul de B' B B"
A r
lucru
0 M' V
O1
M'" A 0
x1
(c) (d)
54
Bazele Roboticii
xM = x1
(2.8)
yM = y1
(c) - RT
π
xM =l1 cos ϕ1 + x2 cos ϕ1 − 2
(2.9)
y =l sin ϕ + x sin ϕ − π
M 1 1 2 1 2
unde:
= l1 OB
= ; l2 BM
(d) - TT
x=M x1 + l2 cos ϕ2
(2.10)
yM= l1 + l2 sin ϕ2
unde:
= l1 AB
= ; l2 BM .
Cunoscând coordonatele xM , yM ale punctului caracteristic, se
pot determina suprafeţele spaţiilor de lucru generate de mecanismul
de poziţionare. Aici s-au discutat doar variantele structurale ale unui
mecanism de poziţionare format dintr-un lanţ cinematic deschis. Însă,
aşa cum s-a menţionat anterior, acesta poate fi conţine în structura
sa şi bucle închise.
Configuraţiile posibile de mecanisme de poziţionare cu spaţiu
de lucru tridimensional sunt prezentate în Fig. 2.9. Se poate observa
că, la creşterea numărului de cuple cinematice de rotaţie, creşte
numărul configuraţiilor de mecanisme de poziţionare. Numărul
configuraţiilor devine maxim atunci când toate cuplele cinematice
sunt de rotaţie.
Forma spaţiilor de lucru pentru configuraţiile din Fig. 2.9 sunt
prezentate în Fig. 2.10. Dintre aceste configuraţii de mecanisme de
poziţionare se desprind câteva, foarte întâlnite în practică, ce intră în
structura următoarelor tipuri de roboţi:
• robot articulat sau antropomorf, asemenea braţului uman –
RRR;
• robot în coordonate sferice sau polare – RRT;
• robot tip SCARA (Selected Compliance Articulated Robot
Arm), cu toate axele cuplelor pe direcţie verticală – RRT;
• robot în coordonate cilindrice – RTT;
• robot în coordonate carteziene - TTT.
55
2. Structura sistemului mecanic
C M
3 C M
2 B 3 M C 3
2 B B C 3
M
RRR
B 2
1 Antropomorf 1 1 1
2
A 0 A 0 A 0 A 0
C M
C C
B 3 M 3 2
3
2 B M
RTR
2 B
1 1 1
A 0 A 0 A 0
C C B 2
B 3 M B
2 2 M
3 M 3
TRR
1 C
1 1
0 A 0 A 0 A
C
C 3 M B
B
2 B 2
RRT
2
1 3
1 In 1 3 M
M coordonate C
0 A 0 A sferice 0 A
SCARA
C C
3 M
3 M 2
B
2
TRT
1 B
1
0 A 0 A
C
3 M
B
2
RTT
1 In
coordonate
0 A cilindrice
B M
TTR
1 2 3
0 A C
M
2 3
1
TTT
B C
A In
0
coordonate
carteziene
56
Bazele Roboticii
RRR
RTR
TRR
RRT (antropomorf)
In coordonate
TRT
sferice
SCARA
RTT
In coordonate
cilindrice
TTR
TTT
In coordonate
carteziene
57
2. Structura sistemului mecanic
58
Bazele Roboticii
59
2. Structura sistemului mecanic
60
Bazele Roboticii
61
2. Structura sistemului mecanic
62
Bazele Roboticii
63
2. Structura sistemului mecanic
MP D z
1 1 R 3 θ4
MP – mecanism de poziţionare
(considerat cu M=3)
MP O E z
Axe
2 2 RR concurente
3 θ5
4 în O
θ4
y
MP O
z θ5 Axe
ay neconcurente
3 2 Ra y R θ4 E
“offset”
x O' OO’=a y
5
y
D
4 θ6 Axe
MP E F
4 3 RRR concurente
O z în O
3 6
θ5 y 5
x
F θ6
MP D E Axe
5 3 RRR O z concurente
3 θ4 6
θ5 în O
y 5
64
Bazele Roboticii
MP D O E
z Axe
6 3 RRR 3 θ4 5 concurente
θ5
x 6 în O
F
θ6
y
D
6 Axe
3 4 E F z neconcurente
7 3 Ra z RR O'
O “offset”
az θ6 OO’=a z
5
θ5
y
4 4
D O'
MP 6 Axe
ax
F z neconcurente
8 3 Ra x RR 3 O
E “offset”
θ6 OO’=a x
x
5
θ5
y
D O 4
MP z
E Axe
3
neconcurente
ax
9 3 RRa x R 5 θ6
“offset”
OO’=a x
x O' F 6
θ5
y
4
F θ6
RRR O Axe
MP z neconcurente
10 3 π 3π E π 6
a
(RRa4 R 4 ) 3 4 5 “offset”
D O' θ4 OO’=a
x θ5 y
65
2. Structura sistemului mecanic
z
ψ6
dreapta
caracteristica
unghi
ψ4
auxiliar δ' dreapta
auxiliara
ψ4
δ ψ5 z y
unghi
x x
y de serviciu
66
Bazele Roboticii
67
2. Structura sistemului mecanic
68
Bazele Roboticii
69
2. Structura sistemului mecanic
70
Bazele Roboticii
71
2. Structura sistemului mecanic
72
Bazele Roboticii
73
2. Structura sistemului mecanic
74
Bazele Roboticii
75
2. Structura sistemului mecanic
76
Bazele Roboticii
(a)
(b)
77
2. Structura sistemului mecanic
78
3
TRANSFORMĂRI DE
COORDONATE
3.1 Generalităţi
În studiul roboticii suntem în mod constant confruntaţi cu
problema localizării unor obiecte în spaţiul tridimensional. Aceste
obiecte sunt elementele cinematice ale manipulatorului, obiectul
manipulat sau scula de lucru, precum şi alte obiecte din mediul de
operare al manipulatorului. Aceste obiecte sunt descrise de două
caracteristici: poziţie şi orientare. Problema de interes imediat o
constituie maniera în care reprezentăm aceste cantităţi şi modelarea
matematică a acestora.
Poziţiile şi orientările relative ale elementelor cinematice, ale
unui robot de tip manipulator, sunt definite de parametrii variabili ai
cuplelor cinematice. Deoarece fiecare element reprezintă un corp
rigid, este necesar ca acestuia să i se ataşeze un sistem de
coordonate cartezian. În aceste condiţii, configuraţia robotului este
definită de poziţiile şi orientările relative ale sistemelor de axe ataşate
fiecărui element cinematic (Fig. 3.1). Aceste poziţii depind de
geometria robotului şi de parametrii cinematici ai cuplelor.
În robotică, sistemele de coordonate utilizate respectă regula
mâinii drepte (vezi Fig. 3.2). Sensurile pozitive ale axelor unui sistem
cartezian ce respectă această regulă se obţine astfel: ţinând mâna
dreaptă deschisă, cu degetul mare desfăcut, direcţia palmei (celor
patru degete) va indica sensul pozitiv al axei x , iar degetul mare va
indica sensul pozitiv al axei z . Sensul pozitiv al axei y se va obţine
îndoind cu 90° cele patru degete.
Un astfel de sistem de axe se obţine şi aplicând regula
burghiului drept. Conform acestei reguli, rotind axa x spre dreapta,
pentru a o suprapune peste axa y , sensul pozitiv al axei z ar fi cel
dat de sensul de deplasare axială a burghiului drept, rotit în acelaşi
sens.
79
3. Transformări de coordonate
z z
x x y
x
y y
80
Bazele Roboticii
zn
P
_ yn
rn
_ On
r n-1
zn-1
_
r
xn
yn-1
On-1
x n-1
unde:
xn −1 x xn
n −1
P = yn −1 ; nTr = y ; P = yn ;
n −1 n
zn −1 z zn
81
3. Transformări de coordonate
zn-1
zn θx
yn
θx yn-1
_
On-1=On
_
x n-1=x n
82
Bazele Roboticii
1 0 0
Rx (θ x ) 0 cos θ x
= − sinθ x (3.4)
0 sinθ x cos θ x
cos θ y 0 sin θ y
( )
Ry θ y = 0 1 0 (3.5)
− sin θ 0 cos θ y
y
cos θ z − sinθ z 0
Rz (θ z ) = sinθ z cos θ z 0 (3.6)
0 0 1
R ( −θ ) =
RT (θ ) (3.7)
83
3. Transformări de coordonate
1 0 0
I3 = 0 1 0 (3.11)
0 0 1
84
Bazele Roboticii
0 −1 0
0
2R = 10R ⋅ 21R = 0 0 1 (3.14)
−1 0 0
z0 z0 z1
y1
y1 y2
y0 x1
z2
x0
(a)
x2
z' 0 y' 2
y' 0
y' 0 y' 1 x' 2
z' 1 z' 1
x' 0 z' 2
x' 1
(b)
Fig. 3.5 Rotaţii succesive: a) succesiunea z0 → y1 ;
b) succesiunea y0' → z1'
0 0 1 0 −1 0
0'
1' R = 0 1 0 ; 1'
2' R = 1 0 0 (3.15)
−1 0 0 0 0 1
85
3. Transformări de coordonate
z0 z0 z1 y2
y1 y0
y0 x1 x2
x0 z2
(a)
z' 0 z' 0
y' 0
y' 2
y' 0 y' 1
z' 2
z' 1
x' 0
x' 1 x' 2
(b)
Fig. 3.6 Rotaţii succesive: a) succesiunea z0 → y0 ;
b) succesiunea y0' → z0'
0 0 1
0
2R = 0 1
1R ⋅ 2 R = 1 0 0 (3.19)
0 1 0
86
Bazele Roboticii
0 0 1 1 0 0
0'
1' R = 0 1 0 ; 1'
2' R = 0 0 1 (3.20)
−1 0 0 0 −1 0
0 −1 0
0'
2' R = 0' 1'
1' R ⋅ 2' R = 0 0 1 (3.21)
−1 0 0
0 0'
Şi în acest caz 2R ≠ 2' R , ceea ce înseamnă că succesiunea
rotaţiilor nu este comutativă. Însă, se poate observa că succesiunea
(a) din Fig 3.5 este comutativă cu succesiunea (b) din Fig. 3.6, iar
succesiunea (b) din Fig 3.5 este comutativă cu succesiunea (a) din
Fig. 3.6.
În robotică, rotaţiile succesive sunt raportate la sistemul de
axe curent, ca în exemplul prezentat în Fig. 3.5.
87
3. Transformări de coordonate
unde:
xn
xn −1
y
n −1
P = yn −1 ; n
P = n;
zn
zn −1
1 1
88
Bazele Roboticii
1 0 0 0
0 cos θ − sinθ x 0
Rx (θ x ) = x
(3.27)
0 sinθ x cos θ x 0
0 0 0 1
cos θ y 0 sinθ y 0
0 1 0 0
( )
Ry θ y =
− sinθ y 0 cos θ y 0
(3.28)
0 0 0 1
cos θ z − sinθ z 0 0
sinθ cos θ z 0 0
Rz (θ z ) = z
(3.29)
0 0 1 0
0 0 0 1
89
3. Transformări de coordonate
1 0 0 0 1 0 0 0
0 1 0 y 0 1 0 0
Try = ; Trz = (3.32)
0 0 1 0 0 0 1 z
0 0 0 1 0 0 0 1
n-1
yn-1
zn On-1
x n-1
x
yn
On
respectiv
0 0
P
= 1T ⋅ 1P (3.34)
90
Bazele Roboticii
0
2
P y2
z1 P {2}
{1} O2
z0
{0}
O1 y1 x2
y0
O0 x1
x0
3 1
0 0
2 2 1 0 0 50
0 1 0 0 1 0 1 0 0
=0
1T R=
y 30
( ) 2T
;= Tr
= x
0 0 1 0
;
− 1 0
3
0
2 2 0 0 0 1
0 0 0 1
91
3. Transformări de coordonate
1 3
− 0 0
2 2
=2
3T R
=z 60
( ) 3
2
1
2
0 0
0 0 1 0
0 0 0 1
0
z1 30 0
_
y0=y1
O0(2,4,1)
x0
0
30
y3 x1 50
_
z2=z3
0
60
y2
_
O2=O3
0 x3
60
92
Bazele Roboticii
Rezultă:
n
P= n −1 −1
nR ⋅ ( n −1
P− n −1
nTr ) (3.36)
93
3. Transformări de coordonate
− n −n1Tr −
0= n −1 T
nR ⋅ n −1
nTr , adică
n
n −1Tr − n −n1RT ⋅
= n −1
nTr (3.39)
respectiv
0 0
4T = 2T ⋅ 23T ⋅ 34T (3.42)
94
Bazele Roboticii
z4
z1 y4
{4}
y1 O4
{1}
O1
x4
z3
x1
y3
{3}
z0 O3
{0}
z2 x3
y0
{2}
O0
x0
O2 y2
x2
95
3. Transformări de coordonate
z2
y4
y2 {4}
{2} O4
O2
z1
{1} x4
x2
O1 y1 z3
x1
y3
z0 {3}
O3
{0}
y0
O0 x3
96
Bazele Roboticii
97
3. Transformări de coordonate
0 0 0
z1
z2 y3
y2
y1 z3
α
y0 β y0 y0
γ
_ x0 x0
x 0=x 1
x2
x3
cos α − sin α 0
0
1 Rxyz (γ , β , α ) = Rz (α ) ⋅ Ry ( β ) ⋅ Rx (γ ) = sin α cos α 0 ⋅
0 0 1
(3.53)
cos β 0 sin β 1 0 0
⋅ 0 1
0 ⋅ 0 cos γ − sin γ
− sin β 0 cos β 0 sin γ cos γ
98
Bazele Roboticii
( 2
β = Atan2 −r31 , r11 2
+ r21 ) (3.56)
99
3. Transformări de coordonate
trei rotaţii este numit unghiurile lui Euler. Trebuie menţionat faptul că
fiecare rotaţie are loc în jurul unei axe a cărei amplasare depinde de
rotaţiile precedente. Deoarece cele trei rotaţii se desfăşoară în jurul
axelor z, y şi x, reprezentarea este numită unghiurile Euler Z-Y-X
(Fig. 3.14).
z0=z1 z1 z2 z2
y3
y1 z3
α β _
y0 y1=y2 y2
γ
x0
x1 x2 x1 _
x 2=x 3
cos α − sin α 0
0
1 Rz ' y ' x ' (α , β , γ ) = Rz (α ) ⋅ Ry ( β ) ⋅ Rx (γ ) = sin α cos α 0 ⋅
0 0 1
(3.60)
cos β 0 sin β 1 0 0
⋅ 0 1 0 ⋅ 0 cos γ − sin γ
− sin β 0 cos β 0 sin γ cos γ
cα c β cα s β sγ − sα cγ cα s β cγ + sα sγ
1 Rz ' y ' x ' (α , β , γ ) = sα c β
0
sα s β sγ + cα cγ sα s β cγ − cα sγ (3.61)
−s β c β sγ c β cγ
100
Bazele Roboticii
c β cγ −s β c β sγ
Rx ' z ' y ' (α , β , γ ) =
cα s β cγ + sα sγ cα c β cα s β sγ − sα cγ (3.63)
sα s β cγ − cα sγ sα c β sα s β sγ + cα cγ
sα s β sγ + cα cγ sα s β cγ − cα sγ sα c β
=Ry ' x ' z ' (α , β , γ ) c β sγ c β cγ −s β (3.64)
cα s β sγ − sα cγ cα s β cγ + sα sγ cα c β
101
3. Transformări de coordonate
cα c β −cα s β cγ + sα sγ cα s β sγ + sα cγ
Ry ' z ' x ' (α , β , γ ) s β
= c β cγ −c β sγ (3.65)
−sα c β sα s β cγ + cα sγ −sα s β sγ + cα cγ
−sα s β sγ + cα cγ −sα c β sα s β cγ + cα sγ
Rz ' x ' y ' (α , β , γ )= cα s β sγ + sα cγ cα c β −cα s β cγ + sα sγ (3.66)
−c β sγ sβ c β cγ
cα c β cα s β sγ − sα cγ cα s β cγ + sα sγ
Rz ' y ' x ' (α , β , γ ) = sα c β sα s β sγ + cα cγ sα s β cγ − cα sγ (3.67)
−s β c β sγ c β cγ
cβ s β sγ s β cγ
Rx ' y ' x ' (α , β , γ )= sα s β −sα c β sγ + cα cγ −sα c β cγ − cα sγ (3.68)
−cα s β cα c β sγ + sα cγ cα c β cγ − sα cγ
cβ −s β c γ s β sγ
Rx ' z ' x ' (α
= , β , γ ) cα c β cα c β cγ − sα sγ −cα c β sγ − sα cγ (3.69)
sα s β sα c β cγ + cα sγ −sα c β sγ + cα cγ
−sα c β sγ + cα cγ sα s β sα c β cγ + cα sγ
Ry ' x ' y ' (α , β , γ )
= s β sγ cβ −s β c γ (3.70)
−cα c β sγ − sα cγ cα s β cα c β cγ − sα sγ
cα c β cγ − sα sγ −cα s β cα c β sγ + sα cγ
Ry ' z ' y ' (α , β , γ ) = s β cγ cβ s β sγ (3.71)
−sα c β cγ − cα sγ sα s β −sα c β sγ + cα cγ
−sα c β sγ + cα cγ −sα c β cγ − cα sγ sα s β
Rz ' x ' z ' (α , β , γ )= cα c β sγ + sα cγ cα c β cγ − sα sγ −cα s β (3.72)
s β sγ s β cγ c β
102
Bazele Roboticii
cα c β cγ − sα sγ −cα c β sγ − sα cγ cα s β
Rz ' y ' z ' (α , β , γ )= sα c β cγ + cα sγ −sα c β sγ + cα cγ sα s β (3.73)
−s β c γ s β sγ c β
cα c β −cα s β cγ + sα sγ cα s β sγ + sα cγ
=Rxzy (α , β , γ ) s β c β cγ −c β sγ (3.75)
−sα c β sα s β cγ + cα sγ −sα s β sγ + cα cγ
−sα s β sγ + cα cγ −sα c β sα s β cγ + cα sγ
Ryxz (α , β , γ )= cα s β sγ + sα cγ cα c β −cα s β cγ + sα sγ (3.76)
−c β sγ sβ c β cγ
c β cγ −s β c β sγ
Ryzx (α , β , γ ) =
cα s β cγ + sα sγ cα c β cα s β sγ − sα cγ (3.77)
sα s β cγ − cα sγ sα c β sα s β sγ + cα cγ
sα s β sγ + cα cγ sα s β cγ − cα sγ sα c β
=Rzxy (α , β , γ ) c β sγ c β cγ −s β (3.78)
cα s β sγ − sα cγ cα s β cγ + sα sγ cα c β
c β cγ −c β sγ sβ
Rzyx (α , β , γ )= sα s β cγ + cα sγ −sα s β sγ + cα cγ −sα c β (3.79)
−cα s β cγ + sα sγ cα s β sγ + sα cγ cα c β
cβ s β sγ s β cγ
Rxyx (α , β , γ )= sα s β −sα c β sγ + cα cγ −sα c β cγ − cα sγ (3.80)
−cα s β cα c β sγ + sα cγ cα c β cγ − sα cγ
103
3. Transformări de coordonate
cβ −s β c γ s β sγ
Rxzx (α=
, β , γ ) cα c β cα c β cγ − sα sγ −cα c β sγ − sα cγ (3.81)
sα s β sα c β cγ + cα sγ −sα c β sγ + cα cγ
−sα c β sγ + cα cγ sα s β sα c β cγ + cα sγ
=Ryxy (α , β , γ ) s β sγ cβ −s β c γ (3.82)
−cα c β sγ − sα cγ cα s β cα c β cγ − sα sγ
cα c β cγ − sα sγ −cα s β cα c β sγ + sα cγ
Ryzy (α , β , γ ) = s β cγ cβ s β sγ (3.83)
−sα c β cγ − cα sγ sα s β −sα c β sγ + cα cγ
−sα c β sγ + cα cγ −sα c β cγ − cα sγ sα s β
Rzxz (α , β , γ )= cα c β sγ + sα cγ cα c β cγ − sα sγ −cα s β (3.84)
s β sγ s β cγ c β
cα c β cγ − sα sγ −cα c β sγ − sα cγ cα s β
Rzyz (α , β , γ )= sα c β cγ + cα sγ −sα c β sγ + cα cγ sα s β (3.85)
−s β c γ s β sγ c β
104
Bazele Roboticii
z1 z0
k
y1
θ
y0
x0
x1
Se obţin:
r11 + r22 + r33 − 1
θ = arccos (3.88)
2
105
3. Transformări de coordonate
r32 − r23
1
k
= ⋅ r13 − r31 (3.89)
2 ⋅ sinθ
r21 − r12
106
Bazele Roboticii
0.707
θ = 30 în jurul vectorului k = 0.707 , ce trece prin punctul P de
0
1
coordonate P = 2 . Calculaţi matricea de transformare omogenă la
3
trecerea de la sistemul {0} la {1}.
Înainte de efectuarea rotaţiei, sistemele de axe {0} şi {1}
coincid. Pentru rezolvarea problemei se definesc două sisteme de axe
noi, {0’} şi {1’}, care au aceeaşi origine, aflată în punctul P, a căror
orientare este cea a sistemelor {0} şi {1} dar care sunt translate faţă
de originea sistemului de referinţă (Fig. 3.16). În condiţiile
menţionate, putem scrie:
1 0 0 1
0 1 0 2
0
T = (3.91)
0'
0 0 1 3
0 0 0 1
z1' z0'
k
{0'}
{1'} y1'
y0'
z0
x 0'
{0} x 1' z1
{1} y1
y0
x0
x1
107
3. Transformări de coordonate
1 0 0 −1
0 1 0 −2
1'
T = (3.92)
1
0 0 1 −3
0 0 0 1
108
Bazele Roboticii
θ
e0 = cos (3.96)
2
θ
e=
1 k x ⋅ sin (3.97)
2
θ
e=
2 ky ⋅ sin (3.98)
2
θ
e=
3 kz ⋅ sin (3.99)
2
Aceşti parametri nu sunt independenţi, între ei existând
relaţia:
r13 − r31
e2 = (3.105)
4e0
109
3. Transformări de coordonate
r21 − r12
e3 = (3.106)
4e0
110
4
CINEMATICA DIRECTĂ A
POZIŢIILOR
4.1 Generalităţi
Cinematica este ştiinţa care se ocupă cu studiul mişcării
sistemelor mecanice în general, fără a ţine seama de forţele care
cauzează acea mişcare. În cadrul cinematicii pot fi studiate poziţiile,
vitezele şi acceleraţiile sistemelor menţionate.
În acest capitol vom studia poziţia şi orientarea roboţilor de tip
manipulator, în situaţii statice. Relaţiile existente între parametrii de
mişcare şi forţele ce o cauzează vor fi discutate în cadrul capitolului
de dinamică.
4.2.1 Introducere
111
4. Cinematica directă a poziţiilor
M(x,y)
3 φ
l3
θ3
l2
C
y 2
B
1 θ2
l1
θ1
A
x
0
Fig. 4.1 Exemplu de manipulator plan
112
Bazele Roboticii
M(x,y)
3
d3
φ
C
y θ2
2
l1
B
1
θ1
A
x
0
113
4. Cinematica directă a poziţiilor
4.3.1 Generalităţi
b n se ae pe
eT = e (4.2)
0 0 0 1
114
Bazele Roboticii
115
4. Cinematica directă a poziţiilor
Oi zi
yi
Oi-1
z1
x1 yi-1
xn
O1
yn
On
z0 y1
y0 zn
O0 0
nT
x0
116
Bazele Roboticii
Cupla i+1
Cupla i
Element i
Cupla i-1
Element i-1 zi
yi
xi
ai
z i-1
a i-1 yi-1
di
x i-1 θi
Perpendiculara
comuna
αi
117
4. Cinematica directă a poziţiilor
118
Bazele Roboticii
respectiv
1 0 0 0 cos θ i − sin θ i 0 0
i −1
T 0 1 0 0 ⋅ sin θ i cos θ i
=
0 0
⋅
i
0 0 1 di 0 0 1 0
0 0 0 1 0 0 0 1
1 0 0 ai 1 0 0 0
0 1 0 0 0 cos α i − sin α i 0
⋅ ⋅⋅ =
0 0 1 0 0 sin α i cos α i 0
0 0 0 1 0 0 0 1
cos θ i − sin θ i ⋅ cos α i sin θ i ⋅ sin α i ai ⋅ cos θ i
sin θ i cos θ i ⋅ cos α i − cos θ i ⋅ sin α i ai ⋅ sin θ i
=
0 sin α i cos α i di
0 0 0 1
(4.6)
Matricea de transformare omogenă a unui robot cu n
elemente, scrisă în raport cu originea O 0 a sistemului de referinţă, va
fi:
0 0 1 j −1 n −1
nT= 1T ⋅ 2T ⋅ ⋅ jT ⋅ ⋅ nT (4.7)
119
4. Cinematica directă a poziţiilor
120
Bazele Roboticii
Cupla i+1
Cupla i
Element i
Cupla i-1
Element i-1
z i-1
zi
yi ai
yi-1
xi
x i-1
a i-1 di
θi
Perpendiculara
α i-1 comuna
121
4. Cinematica directă a poziţiilor
1 0 0 0 1 0 0 ai −1
0 cosα 0 0 0 0
i-1 -sinαi-1 1
= ⋅
0 sinαi-1 cosαi-1 0 0 0 1 0
(4.8)
0 0 0 1 0 0 0 1
1 0 0 ai-1
0 cosα -sinαi-1 0
= i-1
0 sinαi-1 cosαi-1 0
0 0 0 1
Screw(zi , di , θi ) =
Rot(zi , θi ) ⋅ Transl(zi , di ) =
cosθi -sinθi 0 0 1 0 0 0
sinθ cosθ 0 0 0 1 0 0
= i i
⋅ =
0 0 1 0 0 0 1 di
(4.9)
0 0 0 1 0 0 0 0
cosθi -sinθi 0 0
sinθ cosθ 0 0
= i i
0 0 1 di
0 0 0 1
122
Bazele Roboticii
123
4. Cinematica directă a poziţiilor
Element i+1'
Element i
Element i+1"
Cupla i+1"
(a)
zi+1' zj-1
x i+1' j-1
jT xj
Oj-1
Oi+1'
i
i+1' T yj-1
z0 zj xn
zi yi+1' yj Oj
Oi yi On zn
O0 y0 xk
x i+1"
x0 xi zi+1" yn
i
i+1"T
Ok zk
Oi+1" yk
yi+1"
(b)
124
Bazele Roboticii
x3
y3 _
M=O3
θ3
y2
l3
x2
C
y0 y1 θ2
l2
x1
l1 B
A θ1
x0
125
4. Cinematica directă a poziţiilor
126
Bazele Roboticii
0 0 1 0
0 1 0 0
3
T = (4.15)
e
−1 0 0 0
0 0 0 1
127
4. Cinematica directă a poziţiilor
x3'
y3' _
M=O3'
x3 θ3
l3
y3
C
l2
y0 x2 θ2
y2
y1
x1 B
l1
A θ1
x0
cos θ1 − sinθ1 0 0
sinθ cos θ1 0 0
0
T = 1
(4.17)
1
0 0 1 0
0 0 0 1
cos θ2 − sinθ2 0 l1
sinθ cos θ2 0 0
1
T = 2
(4.18)
2
0 0 1 0
0 0 0 1
cos θ3 − sinθ3 0 l2
sinθ cos θ3 0 0
2
T = 3
(4.19)
3
0 0 1 0
0 0 0 1
128
Bazele Roboticii
1 0 0 l3
0 1 0 0
3
T = (4.20)
3'
0 0 1 0
0 0 0 1
θ3
C
y2 x1'
l3
l2
θ2 y1
D
x1 y1'
y0 y3 l4
B l1 x3
l1'
θ1'
θ1 x4
A
x0 y4
129
4. Cinematica directă a poziţiilor
130
Bazele Roboticii
1 0 0 l4
0 1 0 0
3
T = (4.26)
4
0 0 1 0
0 0 0 1
c123 − s123 0
0
3R = s123 c123 0 (4.28)
0 0 1
adică
131
4. Cinematica directă a poziţiilor
−1
c123 − s123 0 l1 ⋅ c1 + l2 ⋅ c12 + l3 ⋅ c123 − l1' ⋅ c1' 0
s
123 c123 0 ⋅ l1 ⋅ s1 + l2 ⋅ s12 + l3 ⋅ s123 − l1' ⋅ c1' = 0 (4.31)
0 0 1 0 3d
1'
3
Deoarece l1 = l3 , l2 = l1' , 1' d = 0 şi
s123 −c123 0
3 0 −1 c s123 0 ,
0R
= 3=R 123 (4.32)
0 0 1
aceasta înseamnă:
θ=
2 θ1' − θ1
(4.34)
θ3 =π − θ2 =π − θ1' + θ1
Înlocuind condiţiile (4.34) în matricea (4.27), matricea
omogenă totală a manipulatorului va fi:
−c1 s1 0 l1' ⋅ c1' − l4 ⋅ c1
−s −c1 0 l1' ⋅ s1' − l4 ⋅ s1
0
T = 0
T ⋅ 3
T = 1 (4.35)
4 3 4
0 0 1 0
0 0 0 1
unde: si = sinθ i , ci = cos θ i , i = 1,1' .
Relaţiile (4.35) demonstrează faptul că braţul tip paralelogram
este echivalent din punct de vedere cinematic cu un manipulator plan
cu două grade de mobilitate. Diferenţa este că cele două cuple
cinematice conducătoare sunt amplasate la baza manipulatorului.
Aceasta simplifică mult modelul dinamic al acestei structuri.
132
Bazele Roboticii
cos θ2 0 sinθ2 0
sinθ 0 − cos θ2 0
1
T = 2
(4.37)
2
0 1 0 l2
0 0 0 1
133
4. Cinematica directă a poziţiilor
1 0 0 0
0 1 0 0
2
T = (4.38)
3
0 0 1 d3
0 0 0 1
134
Bazele Roboticii
135
4. Cinematica directă a poziţiilor
sinθ5 0 − cos θ5 0
− cos θ 0 − sinθ5 0
4
T = 5
(4.45)
5
0 1 0 0
0 0 0 1
136
Bazele Roboticii
− sinθ6 − cos θ6 0 0
cos θ − sinθ6 0 0
5
T = 6
(4.46)
6
0 0 1 l6
0 0 0 1
137
4. Cinematica directă a poziţiilor
− sinθ5 − cos θ5 0 0
0 0 −1 0
4
T = (4.49)
5
cos θ5 − sinθ5 0 0
0 0 0 1
− sinθ6 − cos θ6 0 0
0 0 −1 −l6
5
T = (4.50)
6
cos θ6 − sinθ6 0 0
0 0 0 1
138
Bazele Roboticii
139
4. Cinematica directă a poziţiilor
cos θ2 0 sinθ2 0
sinθ 0 − cos θ2 0
1
T = 2
(4.53)
2
0 1 0 l2
0 0 0 1
1 0 0 0
0 1 0 0
2
3T = (4.54)
0 0 1 d3
0 0 0 1
sinθ4 0 cos θ4 0
− cos θ 0 sinθ 4 0
3 4
4T = (4.55)
0 −1 0 0
0 0 0 1
sinθ5 0 − cos θ5 0
− cos θ 0 − sinθ5 0
4
T = 5
(4.56)
5
0 1 0 0
0 0 0 1
− sinθ6 − cos θ6 0 0
cos θ − sinθ6 0 0
5
T = 6
(4.57)
6
0 0 1 l6
0 0 0 1
0 0 0n 60 s 06 a 60 p
6T = 1T ⋅ 12T ⋅ 23T ⋅ 34T ⋅ 45T ⋅ 56T = 6 (4.58)
0 0 0 1
unde
140
Bazele Roboticii
60ax c ( −c s c + s s ) − s c c
1 2 4 5 2 5 1 4 5
6 a = 6 ay = s1 ( −c2 s4 c5 + s2 s5 ) + c1c4 c5
0 0
(4.62)
60az s2 s4 c5 + c2 s5
141
4. Cinematica directă a poziţiilor
cos θ2 − sinθ2 0 0
0 0 1 l2
1
2T = (4.64)
− sinθ2 − cos θ2 0 0
0 0 0 1
1 0 0 0
0 0 −1 −d3
2
3T = (4.65)
0 1 0 0
0 0 0 1
sinθ4 cos θ4 0 0
− cos θ sinθ4 0 0
3
T = 4
(4.66)
4
0 0 1 0
0 0 0 1
sinθ5 cos θ5 0 0
0 0 1 0
4
T = (4.67)
5
cos θ5 − sinθ5 0 0
0 0 0 1
142
Bazele Roboticii
− sinθ6 − cos θ6 0 0
0 0 −1 −l6
5
T = (4.68)
6
cos θ6 − sinθ6 0 0
0 0 0 1
143
4. Cinematica directă a poziţiilor
144
Bazele Roboticii
adică
t w −1
gT= tT ⋅ wbT −1 ⋅ bsT ⋅ gsT (4.72)
145
4. Cinematica directă a poziţiilor
146
5
CINEMATICA INVERSĂ A
POZIŢIILOR
5.1 Generalităţi
În capitolul anterior s-a considerat problema determinării
poziţiei şi orientării efectorului final, în raport cu un sistem de
referinţă fix, atunci când se cunosc parametrii cinematici ai cuplelor
robotului. În acest capitol, se va rezolva o problemă mult mai dificilă
şi anume, fiind date poziţia şi orientarea efectorului final în raport cu
sistemul de referinţă, se vor determina parametrii cinematici ai
cuplelor, parametri ce sunt necesari asigurării poziţiei şi orientării
impuse. Această abordare este numită cinematica inversă a roboţilor
şi constă în rezolvarea unor ecuaţii matematice. Deoarece aceste
ecuaţii sunt, în general, neliniare şi complicate, analiza cinematică
inversă poate deveni dificilă. De asemenea, chiar dacă rezolvarea
ecuaţiilor neliniare este posibilă, acestea nu au soluţii unice.
147
5. Cinematica inversă a poziţiilor
148
Bazele Roboticii
y2
y1
l2 x2
y0 2 M
x1
B
l1
A
x0
0
149
5. Cinematica inversă a poziţiilor
3 M
2
C
B
1
A B'
0
150
Bazele Roboticii
M
3
M'
C
2
B
Obstacol
A
0
151
5. Cinematica inversă a poziţiilor
152
Bazele Roboticii
y = sin x
arccos y = x şi arccos y = − x
respectiv
arctgy = x şi arctgy= π + x .
s
arctg c , pentru c > 0
s
Atan2
= (s,c ) arctg + π ⋅ sign ( s ) , pentru c < 0 (5.1)
c
π
⋅ sign ( s ) , pentru c = 0
2
153
5. Cinematica inversă a poziţiilor
x3 θ3
l3
y3
C
l2
y0 x2 θ2
y2
y1
x1 B
l1
A θ1
x0
154
Bazele Roboticii
cφ − sφ 0 l1 ⋅ c1 + l2 ⋅ c12
0
T = sφ cφ 0 l1 ⋅ s1 + l2 ⋅ s12
(5.3)
3
0 0 1 0
0 0 0 1
cos
= φ cos (θ1 + θ2 + θ3 ) (5.4)
φ sin (θ1 + θ2 + θ3 )
sin= (5.5)
155
5. Cinematica inversă a poziţiilor
Făcând notaţiile
t = l1 + l2 ⋅ cos θ2 (5.16)
u= l2 ⋅ sinθ2 (5.17)
vom obţine
xC = t ⋅ cos θ1 − u ⋅ sinθ1 (5.18)
v
= t 2 + u2 (5.20)
şi
β = Atan2 ( u, t ) (5.21)
atunci
156
Bazele Roboticii
t= v ⋅ cos β (5.22)
u= v ⋅ sin β (5.23)
respectiv
=θ1 Atan2 (=
yC , xC ) − β Atan2 ( yC , xC ) − Atan2 ( u, t ) (5.29)
θ1 + θ2 + θ3 Atan2
= = (
sφ , cφ φ ) (5.30)
157
5. Cinematica inversă a poziţiilor
(
xC2 + yC2 = l12 + l22 − 2 ⋅ l1 ⋅ l2 ⋅ cos θ2 − 180 ) (5.31)
y0
3 M
yC
l2 C
2
B θ2
l1
1 ψ
β B'
A
xC x0
0
Ştim că
(
cos θ2 − 180 = )
− cos θ2 (5.32)
158
Bazele Roboticii
de unde obţinem
β = Atan2 ( yC , xC ) (5.36)
de unde
unde semnul plus este utilizat atunci când θ2 < 0 , iar semnul minus
atunci când θ2 > 0 .
Cunoscând unghiurile θ1 şi θ2 , putem acum determina unghiul
θ3 ştiind că pentru manipulatorul plan
θ1 + θ2 + θ3 =
φ (5.40)
adică
θ3 =φ − θ1 − θ2 (5.41)
159
5. Cinematica inversă a poziţiilor
b a
β = Atan2 , (5.44)
2 2
a +b a2 + b2
În aceste condiţii, ecuaţia noastră poate fi rescrisă astfel:
respectiv
c
cos β ⋅ cos θ + sin β ⋅ sinθ + 0
= (5.46)
a + b2
2
sau
160
Bazele Roboticii
−c
cos (θ − β ) = (5.47)
a2 + b2
Vom avea două soluţii ale lui θ , în funcţie de β cunoscut:
−c
θ= β ± arccos (5.48)
2 2
a +b
1 − u2
cos θ = (5.50)
1 + u2
2⋅u
sinθ = (5.51)
1 + u2
Aceste substituţii transformă ecuaţia noastră într-un polinom
în u
1 − u2 2⋅u
a⋅ + b⋅ +c =
0 (5.52)
1 + u2 1 + u2
respectiv
( ) (
a ⋅ 1 − u2 + 2 ⋅ b ⋅ u + c ⋅ 1 + u2 =
0 ) (5.53)
( −a + c ) ⋅ u2 + 2 ⋅ b ⋅ u + ( a + c ) =0 (5.54)
−b ± a2 + b2 − c 2
u= (5.55)
c−a
Rezultă
161
5. Cinematica inversă a poziţiilor
−b ± b2 − c 2 + a2
θ= 2 ⋅ arctg (5.56)
c−a
Dacă soluţia (5.55) este un număr complex, nu există o soluţie
reală pentru ecuaţia (5.42). Trebuie notat faptul că, dacă c − a =0,
argumentul funcţiei arctg devine infinit şi θ = 180 .
(t − l1 ⋅ cos θ1 )2 + (u − l1 ⋅ sinθ1 )2 =
(5.60)
2 2
= l2 ⋅ cos (θ1 + θ2 ) + l2 ⋅ sin (θ1 + θ2 )
162
Bazele Roboticii
θ1= β ± arccos
(
− t 2 + u2 + l 2 − l 2
1 2 ) (5.62)
2 2
2 ⋅ l1 ⋅ t + u
unde
−u −t
β = atan2 , (5.63)
2 2
t +u t 2 + u2
t − l1 ⋅ cos θ1
cos (θ1 + θ2 ) = l
2
(5.64)
cos (θ + θ ) = 1 sinθ1
u − l ⋅
1 2
l2
u − l1 ⋅ sinθ1 t − l1 ⋅ cos θ1
θ2 Atan2 , − θ1 (5.65)
l2 l2
Aceasta înseamnă că şi pentru θ2 vom avea tot două soluţii
(funcţie de θ1 ).
În final, θ3 poate rezulta simplu:
θ3 =φ − θ1 − θ2 (5.66)
163
5. Cinematica inversă a poziţiilor
M
y0 3
φ
2 C
B θ2
θ2'
1
θ1 B'
θ1'
A
x0
164
Bazele Roboticii
165
5. Cinematica inversă a poziţiilor
1 − u2
cos θ1 = , (5.71)
1 + u2
2⋅u
sinθ1 = . (5.72)
1 + u2
Substituind aceste ecuaţii în al treilea termen al matricei din
stânga a relaţiei (5.70), obţinem
( l2 + yM ) ⋅ u2 + 2 ⋅ xM ⋅ u + l2 − zM =0, (5.73)
(2
θ1 =2 ⋅ Atan2 −xM ± xM 2
+ yM − l22 , l2 + yM . ) (5.75)
de unde
=θ2 Atan2 ( xM ⋅ cos θ1 + yM ⋅ sinθ1 , zM ) . (5.77)
166
Bazele Roboticii
xM =
− l2 ⋅ cos θ2 + l3 ⋅ cos (θ2 + θ3 ) ⋅ sinθ1
, (5.80)
yM = l2 ⋅ cos θ2 + l3 ⋅ cos (θ2 + θ3 ) ⋅ cos θ1
de unde
− xM
sinθ1 = l ⋅ cos θ + l ⋅ cos θ + θ
2 2 3 ( 2 3)
, (5.81)
cos θ = yM
1
l2 ⋅ cos θ2 + l3 ⋅ cos (θ2 + θ3 )
respectiv
=θ1 Atan2 ( − xM , yM ) . (5.82)
167
5. Cinematica inversă a poziţiilor
respectiv
de unde rezultă
2 2 2
xM + yM + zM − l22 − l32
cos θ3 = , (5.86)
2l2l3
adică
x 2 + y 2 = l ⋅ cos θ + l ⋅ cos θ ⋅ cos θ − l ⋅ sinθ ⋅ sinθ
3 (5.91)
M M 2 2 3 2 3 3 2
z
M = l2 ⋅ sin θ2 + l3 ⋅ sin θ2 ⋅ cos θ3 + l3 ⋅ sin θ3 ⋅ cos θ2
sinθ2 =
zM ⋅ ( l2 + l3 ⋅ cos θ3 ) − ( 2
xM 2
+ yM )
⋅ l3 ⋅ sinθ3
, (5.92)
2 2 2
xM + yM + zM
respectiv
cos θ2 =
( l2 + l3 ⋅ cos θ3 ) ⋅ 2
xM 2
+ yM + zM ⋅ l3 ⋅ sinθ3
(5.93)
2 2 2
xM + yM + zM
şi
θ2 = Atan2 ( sinθ2 , cos θ2 ) . (5.94)
168
Bazele Roboticii
=θ5 Atan2 (r 2
13
2
+ r23 )
, r33 . (5.98)
respectiv
=θ4 Atan2 ( sinθ4 , cos
= θ4 ) A tan2 ( −r13 , r23 ) . (5.100)
169
5. Cinematica inversă a poziţiilor
−r31
sinθ6 = cos θ
5
, (5.101)
cos θ = − r32
6
cos θ5
şi
=θ6 Atan2 ( sinθ6 , cos
= θ6 ) A tan2 ( −r31, r32 ) . (5.102)
θ=
5 (
2
Atan2 − r13 2
+ r23 )
, r33 , (5.104)
170
Bazele Roboticii
171
5. Cinematica inversă a poziţiilor
172
6
CINEMATICA VITEZELOR ŞI
ACCELERAŢIILOR
6.1 Generalităţi
Atunci când se controlează deplasarea unui robot dintr-o
anumită poziţie în alta, nu este suficientă determinarea coordonatelor
cuplelor cinematice şi ale efectorului final, coordonate
corespunzătoare poziţiei ce trebuie atinsă. În plus, uneori poate fi
necesar controlul continuu al traiectoriei robotului, pe durata
deplasării acestuia spre poziţia cerută, în scopul evitării obstacolelor.
De asemenea, există cazuri când efectorul final trebuie să
urmărească precis o anumită traiectorie. Spre exemplu, în cazul
operaţiei de sudare este necesară menţinerea electrodului la o
anumită distanţă (constantă) şi cu o anumită orientare faţă de piesă,
pe toată durata efectuării operaţiei respective. Acest lucru necesită
controlul vitezei efectorului final sau al sculei. Deoarece controlul
mişcării robotului se realizează prin controlul cuplelor cinematice,
viteza efectorului final va fi controlată efectuând un control al
vitezelor acestor cuple. În acest sens, cunoscând viteza impusă
efectorului final, este necesară determinarea vitezei fiecărei cuple
cinematice.
În acest capitol este prezentată analiza cinematică a vitezelor,
care oferă legătura dintre vitezele cuplelor cinematice şi vitezele
unghiulară şi liniară corespunzătoare efectorului final. Acest lucru
este descris de o matrice, numită matrice Jacobiană geometrică, care
depinde de configuraţia manipulatorului. Alternativ, dacă este
exprimată localizarea efectorul final în raport cu un sistem de
referinţă printr-un set de ecuaţii analitice, atunci este posibilă
calcularea matricei Jacobiene prin derivarea directă a ecuaţiilor
respective, în raport cu variabilele cuplelor cinematice. Matricea
Jacobiană rezultată, numită matrice Jacobiană analitică, diferă în
general de cea geometrică. Matricea Jacobiană constituie unul din
cele mai importante instrumente de caracterizare a roboţilor de tip
manipulator. Aceasta este utilă pentru găsirea configuraţiilor
173
6. Cinematica vitezelor şi acceleraţiilor
( p)
A
B
P în raport cu sistemul de axe {B}, iar denotă exprimarea
B
vectorului P în raport cu sistemul de referinţă {A}. Similar, viteza
punctului P, definită prin derivarea vectorului BP în raport cu timpul,
va fi:
B d Bp
vP = .
dt
Vectorul viteză poate fi, de asemenea, exprimat în raport cu
un alt sistem de axe, respectiv
A
d Bp
( )
A
B
vP = .
dt
Această relaţie indică faptul că derivarea se face în raport cu
sistemul de axe {B}, iar vectorul rezultat este exprimat în raport cu
sistemul de axe {A}.
174
Bazele Roboticii
( )
T
A
BR ⋅ BART + A
BR ⋅ BAR T =BAR ⋅ BAR −1 + A −1
BR ⋅ BAR T =0 (6.2)
zA
zB Aω
B Corp
yB
O yA
xA xB
( )
T
A
BR ⋅ BAR −1 + A
BR ⋅ BAR −1 0.
= (6.3)
175
6. Cinematica vitezelor şi acceleraţiilor
respectiv
0 −ωz ωy
A A −1
S =BR ⋅ BR = ωz 0 −ωx . (6.5)
−ω ωx 0
y
Această matrice defineşte vectorul viteză unghiulară a
sistemului de axe {B}, exprimat în sistemul de referinţă {A},
ωx
A
ωB = ωy . (6.6)
ω z
6.2.1.1 Exemplu
176
Bazele Roboticii
d A p d Aq d
A
vP =
dt
=
dt
+
dt
( A
BR )
⋅ Bp , (6.8)
A d Aq
unde vP = este viteza originii OB în raport cu sistemul de
dt
referinţă {A}. Al doilea termen poate fi dezvoltat după cum urmează:
d B p d BAR
d
dt
( A
BR )
⋅ Bp = A
BR ⋅
dt
+
dt
⋅ ( p) =
B A
BR ⋅ Bv P + A
BR ⋅ B p , (6.9)
B d Bp
unde vP = reprezintă viteza punctului P în raport cu originea
dt
OB a sistemului de axe {B}.
A A −1
S
Din relaţia (6.4), = R ⋅ R . Înmulţind ambii termeni ai
B B
A
acestei expresii cu BR , vom avea
A
BR= S ⋅ BAR . (6.10)
177
6. Cinematica vitezelor şi acceleraţiilor
zB Aω
B Corp
P
Bp
yB
zA
Ap OB
Aq
xB
OA yA
xA
S ⋅ BAR ⋅ B p = A
ωB × ( A
BR )
⋅ Bp . (6.12)
178
Bazele Roboticii
A
aP = A
aOB + ) A
BR ⋅ Bv P + A
BR ⋅
d
dt
( B
vP +
+
d
dt
( ω ) × ( R ⋅ p ) + + ω × dtd ( R ⋅ p ) =.
A
B
A
B
B A
B
A
B
B
(6.16)
= A
a + R ⋅ v + R ⋅ a + ε × ( R ⋅ p ) +
OB
A
B
B
P
A
B
B
P
A
B
A
B
B
+ ω × ( R ⋅ p ) + ω × ( R ⋅ v )
A
B
A
B
B A
B
A
B
B
P
A
Utilizând iar egalitatea BR= S ⋅ BAR , vom avea
A
a=
P
A
aOB + S ⋅ BAR ⋅ Bv P + A
BR ⋅ B aP + A
εB × ( A
BR ⋅ Bp + ) . (6.17)
(
+ AωB × S ⋅ BAR ⋅ B p + AωB × ) ( A
BR ⋅ Bv P )
După înlocuirea matricei viteză unghiulară S prin vectorul
A
corespunzător ωB , obţinem
A A
aP = aOB + AωB × BAR ⋅ Bv P +
+ BAR ⋅ B aP + A
εB × ( A
BR ⋅ Bp + ) , (6.18)
+ AωB × ( A
ωB × BAR ⋅ B p + AωB × ) ( A
BR ⋅ Bv P )
respectiv
179
6. Cinematica vitezelor şi acceleraţiilor
A
aP = A
aOB + A
BR ⋅ B aP + A
εB × ( A
BR ⋅ Bp + ) . (6.19)
+ AωB × ( A
)
ωB × BAR ⋅ B p + 2 ⋅ AωB × ( A
BR ⋅ Bv P )
xn
yn
_
yn-1 On M
yn-2 n
xn-2
θn-1
θn-1 xn-1
y2
y1 On-2 n-1 On-1
x1 x2
y0 θ2 n-2
2
O2
1 O1
θ1
O0
x0
0
180
Bazele Roboticii
0
unde: i = 1...n ; ω0,i −1 reprezintă vectorul viteză unghiulară a
sistemului de axe {i-1} în raport cu sistemul de referinţă {0},
0
raportat la sistemul de referinţă; i −1 R este matricea de rotaţie la
scrisă la trecerea de la sistemul de referinţă {0} la sistemul de axe
i −1
{i-1}; ωi −1,i este vectorul viteză unghiulară a sistemului de axe {i}
în raport cu sistemul {i-1}, raportat la sistemul de axe {i-1}.
obţinându-se
0 0 0 i −1 0 i −1
ε0,i= ε0,i −1 + i −1 R ⋅ ωi −1,i + i −1 R ⋅ εi −1,i . (6.22)
0 0
Utilizând relaţia i −1 R
= S⋅ i −1 R , obţinem
0 0 0 i −1 0 i −1
ε
=0, i ε0,i −1 + S ⋅ i −1 R ⋅ ωi −1,i + i −1 R ⋅ εi −1,i . (6.23)
181
6. Cinematica vitezelor şi acceleraţiilor
i −1 i −1
unde, cu ip = iTr s-a notat vectorul de translaţie la trecerea de la
sistemul de axe {i-1} la sistemul {i}, conţinând primele trei elemente
ale coloanei a patra din matricea de transformare omogenă, vezi
relaţia (3.24) din volumul 1.
+2 ⋅ 0ω0,i −1 × ( 0
i −1 R ⋅ i −1
v i −1,i )
182
Bazele Roboticii
( )
i
i
ω0,i = i ω0,i −1 + 0
i −1 R ⋅ i −1
ωi −1,i =
. (6.27)
i
i −1 R ⋅
= ( i −1
ω0,i −1 + i −1
ωi −1,i )
• Pentru cupla cinematică de translaţie
i
ω0,i = i
i −1 R ⋅ ( i −1
ω0,i −1 + i −1
ωi −1,i = i
)
i −1 R ⋅
i −1
ω0,i −1 . (6.28)
( )
i
i
ε0,i = i
ε0,i −1 + 0ω0,i −1 × 0
i −1 R ⋅ i −1
ωi −1,i +
( )
i
0 i −1
+ i −1 R ⋅ εi −1,i =
.(6.29)
= i
i −1 R ⋅ i −1
ε0,i −1 + i
i −1 R ⋅ i −1
ω0,i −1 × ( i
i −1 R ⋅ i −1
ωi −1,i + )
i i −1
+ i −1 R ⋅ εi −1,i
i −1 i −1
Pentru o cuplă cinematică de rotaţie, εi −1,i = θi −1,i , ceea
ce înseamnă că relaţia (6.29) devine
i
ε0,i = i
i −1 R ⋅ ( i −1
ε0,i −1 + i −1
ω0,i −1 × i −1
θi −1,i + i −1
θi −1,i ). (6.30)
i −1
Pentru o cuplă cinematică de translaţie, εi −1,i = 0 , iar
ecuaţia (6.29) capătă forma
i i i −1
ε0,i
= i −1 R ⋅ ε0,i −1 . (6.31)
183
6. Cinematica vitezelor şi acceleraţiilor
( ) ( ) =
i i
i
v0,i = i
v0,i −1 + 0
i −1 R ⋅ v0,i + i ω0,i −1 ×
i −1 0
i −1 R ⋅ i −1
ip
i i −1 i i −1
= i −1 R ⋅ v0,i −1 + i −1 R ⋅ v i −1,i +
( )=
i
+ i ωi −1 × 0
i −1 R ⋅ i −1
ip
. (6.32)
i i −1 i i −1
= i −1 R ⋅ v0,i −1 + i −1 R ⋅ v i −1,i +
+ i
i −1 R ⋅ i −1
ω0,i −1 × ( i
i −1 R ⋅ i −1
ip )=
i
i −1 R ⋅
= ( i −1
v0,i −1 + i −1
v i −1,i + i −1
ω0,i −1 × i −1
ip )
i −1
Componenta v i −1,i este viteza relativă a cuplei cinematice i
relativ la sistemul de axe {i-1}, scrisă în raport cu sistemul de
coordonate {i-1}.
Pentru o cuplă cinematică de rotaţie,
i −1 i −1 i −1 i −1 i −1
v i −1,=
i ωi −1,i × i=p θi −1,i × ip (6.33)
( )+
i
i i i −1 i i −1 i i −1
v0,i = i −1 R ⋅ v0,i −1 + i −1 R ⋅ ω0,i −1 × i −1 R ⋅ ip
( )=
i
0 i −1 0 i −1
+ i −1 R ⋅ θi −1,i × i −1 R ⋅ ip
× ( R⋅ )+
i
i i −1 i i −1 0 i −1
= i −1 R ⋅ v0,i −1 + i −1 R ⋅ ω0,i −1 i −1 ip
i i −1
θi −1,i × i i −1 . (6.34)
+ i −1 R ⋅ i −1 R ⋅ ip =
i i −1 i i −1 i i −1
= i −1 R ⋅ v0,i −1 + i −1 R ⋅ ω0,i −1 × i −1 R ⋅ ip +
i i −1 i i −1
+ i −1 R ⋅ θi −1,i × i −1 R ⋅ ip
= i
i −1 R ⋅ i −1
v0,i −1 + ( i
i −1 R ⋅ i −1
ω0,i −1 + i
i −1 R ⋅ i −1
θi −1,i × ) i
i −1 R ⋅ i −1
ip
i −1 i −1
Pentru o cuplă cinematică de translaţie v i −1,i = ip , iar
ecuaţiile capătă forma:
184
Bazele Roboticii
( )+
i
i i i −1 i i −1 0 i −1
v0,i = i −1 R ⋅ v0,i −1 + i −1 R ⋅ ω0,i −1 × i −1 R ⋅ ip
( )=
i
0 i −1
+ i −1 R ⋅ ip
( )+
i
i i −1 i i −1 0 i −1
= i −1 R ⋅ v0,i −1 + i −1 R ⋅ ω0,i −1 × i −1 R ⋅ ip
i i −1
+ i −1 R ⋅ ip = . (6.36)
i i −1 i i −1 i i −1
= i −1 R ⋅ v0,i −1 + i −1 R ⋅ ω0,i −1 × i −1 R ⋅ ip +
i i −1
+ i −1 R ⋅ ip =
= i
i −1 R ⋅ i −1
v0,i −1 + i
i −1 R ⋅ ( i −1
ω0,i −1 × i −1
i pi + i −1
ip )
i −1
ai −1,=
i
i −1
εi −1,i × i −1
ip + i −1
ωi −1,i × ( i −1
ωi −1,i × i −1
ip= ) ,
= i −1
θi −1,i × i −1
ip + i −1
θi −1,i ×( i −1
θi −1,i × i −1
ip )
atunci
0
a0,i = 0
a0,i −1 + 0ε0,i −1 × ( 0
i −1 R ⋅ i −1
ip )+
+ 0ω0,i −1 × ( 0
ω0,i −1 × 0
i −1 R ⋅ i −1
i p) +
+2 ⋅ 0ω0,i −1 × ( 0
i −1 R ⋅ i −1
θi −1,i × 0
i −1 R ⋅ i −1
ip )+ . (6.37)
+ i −10R ⋅ i −1
θi −1,i × 0
i −1 R ⋅ i −1
ip +
+ i −10R ⋅ i −1
θi −1,i × ( 0
i −1 R ⋅ i −1
θi −1,i × 0
i −1 R ⋅ i −1
ip )
Exprimând relaţia (6.37) în raport cu sistemul de axe {i},
obţinem
185
6. Cinematica vitezelor şi acceleraţiilor
i
a0,i = i
i −1 R ⋅ i −1
a0,i −1 + i
i −1 R ⋅ i −1
ε0,i −1 × ( i
i −1 R ⋅ i −1
ip )+
+ i −1i R ⋅ i −1
ω0,i −1 × ( i
i −1 R ⋅ i −1
ω0,i −1 × i
i −1 R ⋅ i −1
i p) +
+2 ⋅ i
i −1 R ⋅ i −1
ω0,i −1 × ( i
i −1 R ⋅ i −1
θi −1,i × i
i −1 R ⋅ i −1
ip) +
+ i −1i R ⋅ i −1
θi −1,i × i
i −1 R ⋅ i −1
ip +
. (6.38)
+ i −1i R ⋅ i −1
θi −1,i × ( i
i −1 R ⋅ i −1
θi −1,i × i
i −1 R ⋅ i −1
ip )
i −1a0,i −1 + i −1ε0,i −1 × i −1i p +
i −1
i
+ ω0,i −1 ×
i −1
(
ω0,i −1 × i −1i p + )
= i −1 R ⋅
+2 ⋅
i −1
ω0,i −1 × i −1θi −1,i × i −1i p + ( ) i −1
θi −1,i i −1
× i p +
i −1
+ θi −1,i ×
i −1
(
θi −1,i × i −1i p )
i −1 i −1
Pentru o cuplă cinematică de translaţie v i −1,i = ip ,
i −1 i −1
ai −1,i = ip , iar acceleraţia liniară are expresia
i
a0,i = i
i −1 R ⋅ i −1
a0,i −1 + i
i −1 R ⋅ i −1
ε0,i −1 × ( i
i −1 R ⋅ i −1
ip )+
+ i −1i R ⋅ i −1
ω0,i −1 × ( i
i −1 R ⋅ i −1
ω0,i −1 × i
i −1 R ⋅ i −1
i p) +
+2 ⋅ i
i −1 R ⋅ i −1
ω0,i −1 × ( i
i −1 R ⋅ i −1
ip )+ i
i −1 R ⋅ i −1
ip
. (6.39)
i −1
ai −1 + εi −1 × + i −1
i −1
iP
= i i −1
i −1 R ⋅ + ωi −1 × i −1 i −1
ωi −1 × i P +
( )
+2 ⋅ i −1ωi −1 × i −1i P + i −1i P
186
Bazele Roboticii
i i i −1
v0,i = i −1 R ⋅ v0,i −1 + i ω0,i × i
i −1 R ⋅ i −1
ip pt. cuple de rotatie
(6.41)
i
v0,i = i
i −1 R ⋅ ( i −1
v0,i −1 + i −1
ω0,i −1 × i −1
ip + i −1
ip ) pt. cuple de transl.
i
ε0,i = i
i −1 R ⋅ ( i −1
ε0,i −1 + i −1
ω0,i −1 × i −1
θi −1,i + i −1
θi −1,i ) pt. cuple de rotatie
(6.42)
i
ε0,i
= i
i −1 R ⋅ i −1
ε0,i −1 pt. cuple de transl.
i i
+ i −1ω
0, i −1 ×
i −1
(
ω0,i −1 × i −1i p + )
pt. cuple
a0,i
= i −1 R ⋅
+2 ⋅
i −1
(
ω0,i −1 × i −1θi −1,i × i −1i p + )
de rotatie
+ i −1θ
i −1, i ×
i −1
ip +
i −1
θi −1,i × i −1θi −1,i × ( i −1
ip ) (6.43)
i −1a0,i −1 + i −1εi −1 × i −1i p +
pt. cuple
i
a0,i
= i −1
i
R ⋅ + i −1ω
0, i −1 × i −1
ω 0, i −1( × i −1
i p +
) de transl.
i −1 i −1 i −1
+2 ⋅ ω0,i −1 × i p + i p
i i −1
Cunoaştem i −1 R , ip din cinematica poziţiilor robotului. Din
convenţia Denavit-Hartenberg
standard,
i −1 i −1 T
ip ai ⋅ cos θ i ai ⋅ sin θ i di . De asemenea, se cunosc
= θi −1,i ,
i
θi −1,i pentru cuplele cinematice de rotaţie, respectiv i −1 p = d , i
i −1 pentru cuplele de translaţie.
iP =d
i
Se pot calcula, recursiv, ωo,i , i v0,i , i
ε0,i , i
a0,i , pentru i =
1...n.
Ecuaţiile vitezelor şi acceleraţiilor scrise în raport cu sistemul
de referinţă {0} sunt:
0 0 0 i −1
ω0,=
i ω0,i −1 + i −1 R ⋅ ωi −1,i pentru cuple de rotatie
0
(6.44)
ω0,i = 0ω0,i −1 pentru cuple de translatie
187
6. Cinematica vitezelor şi acceleraţiilor
0
v0,i = 0
v0,i −1 + 0ω0,i −1 × ( 0
i −1 R ⋅ i −1
ip ) pt. cuple de rot.
(6.45)
0
v0,=
i
0
v0,i −1 + 0
i −1 R ⋅ i −1
ip + 0ω0,i −1 × ( 0
i −1 R ⋅ i −1
ip ) pt. cuple de transl.
0
ε0,i= 0
ε0,i −1 + 0ω0,i −1 × ( 0
i −1 R ⋅ i −1
θi −1,i +
) 0
i −1 R ⋅ θi −1,i
i −1
pentru cuple de rotatie (6.46)
0
ε0,i = 0ε0,i −1 pentru cuple de translatie
0
a0,i = 0
a0,i −1 + 0ε0,i −1 × ( 0
i −1 R ⋅
i −1
ip )+
( p ))
0 0 0
+ ω0,i −1 × ω0,i −1 × i −1 R ⋅ i i −1
( pt. cuple de rot.
.(6.47)
0
a0,i= 0a0,i −1 + i −10R ⋅ i −1i p
+ 0ε0,i −1 × i −10R ⋅ i −1i p +
( )
(
+ 0ω0,i −1 × 0ω0,i −1 × i −10R ⋅ i −1i p + (
))
(
+2 ⋅ 0ω0,i −1 × i −10R ⋅ i −1i p pt. cuple de transl. )
188
Bazele Roboticii
y6
z6
y5
O6 z5
z4
x6 θ5
θ6 y3
l6=0 F
x5 E z3
l5=0 x4 y4
D d3
l4=0
x3
θ4
x2
z2
y2
B C
z1
θ2 l2
x1
z0
y1 y0
l1=0
A
θ1
x0
cos θ1 − sin θ1 0
0
sin θ1 0 cos θ1 0
0
1T = , (6.48)
0 −1 0 0
0 0 0 1
cos θ2 0 sin θ2 0
1 sin θ2 0 − cos θ2 0
2T = , (6.49)
0 1 0 l2
0 0 0 1
0 1 0 0
2 −1 0 0 0
3T = , (6.50)
0 0 1 d3
0 0 0 1
189
6. Cinematica vitezelor şi acceleraţiilor
cos θ 4 0 − sin θ 4 0
sin θ 4 0 cos θ 4 0
3
4T = , (6.51)
0 −1 0 0
0 0 0 1
cos θ5 0 sin θ5 0
sin θ5 0 cos θ5 0
4
5T = , (6.52)
0 1 0 0
0 0 0 1
cos θ6 − sin θ6 0 0
sin θ6 cos θ6 0 0
5
6T = . (6.53)
0 0 1 0
0 0 0 1
cos θ1 sin θ1 0
1
=0R 0 0 −1 , (6.55)
− sin θ1 cos θ1 0
cos θ2 0 sin θ2
1
=2 R sin θ2 0 − cos θ2, (6.56)
0 1 0
cos θ2 sin θ2 0
2
1R = 0 0 1 , (6.57)
sin θ2 − cos θ2 0
190
Bazele Roboticii
0 1 0
2
3R = −1 0 0 , (6.58)
0 0 1
0 −1 0
3
2 R = 1 0 0 , (6.59)
0 0 1
cos θ 4 0 − sin θ 4
3
4 R = sin θ 4 0 cos θ 4 , (6.60)
0 −1 0
cos θ 4 sin θ 4 0
4
=3R 0 0 −1 , (6.61)
− sin θ 4 cos θ 4 0
cos θ5 0 sin θ5
4
=5R sin θ5 0 − cos θ5 , (6.62)
0 1 0
cos θ5 sin θ5 0
5
4R = 0 0 1 , (6.63)
sin θ5 − cos θ5 0
cos θ6 − sin θ6 0
5
6 R = sin θ6 cos θ2 0 , (6.64)
0 0 1
cos θ6 sin θ6 0
6
5 R = − sin θ6 cos θ6 0 . (6.65)
0 0 1
191
6. Cinematica vitezelor şi acceleraţiilor
0
1
2 p = 0 , (6.67)
l2
0
2
3p = 0, (6.68)
d3
0
3 3 3
=
4 p =
4 p =
4 p 0 , (6.69)
0
0
0
θ0,1 = 0 , (6.70)
θ1
0
1
θ1,2 = 0 , (6.71)
θ2
0
2
θ2,3 = 0, (6.72)
θ3
0
3
θ3,4 = 0 , (6.73)
θ 4
192
Bazele Roboticii
0
4
θ4,5 = 0, (6.74)
θ5
0
5
θ5,6 = 0. (6.75)
θ6
i
v0,i = i
i −1 R ⋅ i −1
v0,i −1 + i
i −1 R ⋅ ( i −1
ω0,i −1 × i −1
ip + i −1
ip ).
În continuare, vom determina aceste viteze pentru fiecare
cuplă cinematică.
• Cupla cinematică A, de rotaţie
1
ω0,1 =1
0R ⋅ ( 0
ω0,0 + 0ω0,1 =1
)0
0 R ⋅ ω0,1 =
1 1
v0,1 = 0R ⋅ 0v0,0 + 1ω0,1 × 01R ⋅ 10 p = 1ω0,1 × 01R ⋅ 10 p =
0 cos θ1 sin θ1 0 0 0
. (6.77)
= −θ1 × 0 0 −1 ⋅ 0 =0
0 − sin θ1 cos θ1 0 0 0
193
6. Cinematica vitezelor şi acceleraţiilor
cos θ2 sin θ2 0 0 0
= 0 0 1 ⋅ −θ1 + 0
= , (6.78)
sin θ2 − cos θ2 0 0 θ2
cos θ2 sin θ2 0 0 −θ1 ⋅ sin θ2
= 0 = 0 1 ⋅ −θ1 θ2
sin θ2 − cos θ2 0 θ2 θ1 ⋅ cos θ2
2 2
v0,2 = 1R ⋅ 1v0,1 + 2ω0,2 × 12R ⋅ 21 p =
cos θ2 sin θ2 0 0
= 0 0 1 ⋅ 0 +
sin θ2 − cos θ2 0 0
−θ1 ⋅ sin θ2 cos θ2 sin θ2 0 0
+ θ2 × 0 0 1 ⋅ 0 =
θ ⋅ cos θ sin θ − cos θ 0 l2
1 2 2 2
0 −1 0 −θ1 ⋅ sin θ2
3 3 2 =
ω0,3 =2 R ⋅ ω 0,2 = 1 0 0 ⋅ θ 2
0 0 1 θ1 ⋅ cos θ2
, (6.80)
−θ2
= −θ1 ⋅ sin θ2
θ ⋅ cos θ
1 2
194
Bazele Roboticii
3
v0,3 = 3
2R ⋅ 2v0,2 + 23R ⋅ ( 2
)
ω0,2 × 32 p + 32 p =
0 −1 0 −θ1 ⋅ sin θ2 0 0
+ 1 0 0 ⋅ θ2 × 0 + 0
0 0 1 θ1 ⋅ cos θ2 d3 d3
0 0 −1 0 d3 ⋅ θ2
= −l2 ⋅ θ1 ⋅ cos θ2 + 1 0 0 ⋅ d3 ⋅ θ1 ⋅ sin θ2 =
−l2 ⋅ θ1 ⋅ sin θ2 0 0 1 d3
195
6. Cinematica vitezelor şi acceleraţiilor
4 4
v0,4 = 3R ⋅ 3v0,3 + 4ω0,4 × 34R ⋅ 43 p =
cos θ 4 sin θ 4 0 −d3 ⋅ θ1 ⋅ sin θ2
= 0 0 −1 ⋅ −l2 ⋅ θ1 ⋅ cos θ2 + d3 ⋅ θ2 +
− sin θ 4 cos θ 4 0 −l2 ⋅ θ1 ⋅ sin θ2 + d3
−θ2 ⋅ cos θ 4 − θ1 ⋅ sin θ2 ⋅ sin θ 4
+ θ1 ⋅ cos θ2 + θ4 ×
θ ⋅ sin θ − θ ⋅ sin θ ⋅ cos θ
2 4 1 2 4
196
Bazele Roboticii
197
6. Cinematica vitezelor şi acceleraţiilor
6 6
ω0,6 =
5R ⋅ ( 5
)
ω0,5 + 5ω5,6 =
−θ ⋅ c ⋅ c − θ ⋅ s ⋅ s ⋅ c + θ ⋅ c ⋅ s + θ s
2 4 5 1 2 4 5 1 2 5 4 5
θ2 ⋅ s4 − θ1 ⋅ s2 ⋅ c4 + θ5 +
c6 s6 0
−θ2 ⋅ c4 ⋅ s5 − θ1 ⋅ s2 ⋅ s4 ⋅ s5 − θ1 ⋅ c2 ⋅ c5 − θ4c5
= − s6 c6 0 ⋅ =
0
0 0 1
+ 0
,(6.86)
θ6
c6 s6 0 −θ2 ⋅ c4 ⋅ c5 − θ1 ⋅ s2 ⋅ s4 ⋅ c5 + θ1 ⋅ c2 ⋅ s5 + θ4 s5
= − s6 c6 0 ⋅ θ2 ⋅ s4 − θ1 ⋅ s2 ⋅ c4 + θ5 =
0 0 1 −θ2 ⋅ c4 ⋅ s5 − θ1 ⋅ s2 ⋅ s4 ⋅ s5 − θ1 ⋅ c2 ⋅ c5 − θ4c5 + θ6
( ) (
c6 −θ2 c4 c5 − θ1 s2 s4 c5 + θ1c2 s5 + θ4 s5 + s6 θ2 s4 − θ1 s2 c4 + θ5
)
( ) (
= −s6 −θ2 c4 c5 − θ1 s2 s4 c5 + θ1c2 s5 + θ4 s5 + c6 θ2 s4 − θ1 s2 c4 + θ5
)
−θ2 c4 s5 − θ1 s2 s4 s5 − θ1c2c5 − θ4c5 + θ6
6 6
v0,6 = 5R ⋅ 5v0,5 + 6ω0,6 × 56R ⋅ 65 p =
−d3θ1 s2 c4 c5 − l2θ1c2 s4 c5 + d3θ2 s4 c5 −
c6 s6 0 −l2θ1 s2 s5 + d3 s5
= − s6 c6 0 ⋅ d3θ1 s2 s4 − l2θ1c2c4 + d3θ2c4 +
0 0 1 −d3θ1 s2 c4 s5 − l2θ1c2 s4 s5 + d3θ2 s4 s5 +
+ l2θ1 s2 c5 − d3c5
(
c6 −θ2 c4 c5 − θ1 s2 s4 c5 + θ1c2 s5 + θ4 s5 +
)
(
+ s6 θ2 s4 − θ1 s2 c4 + θ5 )
−s −θ c c − θ s s c + θ c s + θ s +
6 ( 2 4 5 1 2 4 5 1 2 5 4 5)
+ ×
+ c6(θ
2 s4 − θ
1 s 2 c 4 + θ)
5
−θ2 c4 s5 − θ1 s2 s4 s5 − θ1c2c5 − θ 4c5 + θ6
c6 s6 0 0
× − s6 c6 0 ⋅ 0
, (6.87.a)
0 0 1 0
198
Bazele Roboticii
=
(
−s6 −d3θ1 s2 c4 c5 − l2θ1c2 s4 c5 + d3θ2 s4 c5 − l2θ1 s2 s5 + d3 s5 +
)
(
+c d θ s s − l θ c c + d θ c
6 3 1 2 4 2 1 2 4 3 2 4 )
s c s − l θ c s s + d θ s s + l θ s c − d c
− d θ
3 1 2 4 5 2 1 2 4 5 3 2 4 5 2 1 2 5 3 5
(6.87.b)
Pentru a sintetiza calculul vitezelor efectorului final, putem
scrie:
−d3 s2 c4 c5 c6 − l2c2 s4 c5 c6 − l2 s2 s5c6 +
( 6
v0,6 ) x
+d3 s2 s4 s6 − l2c2c4 s6
θ1 +
+ (d s c c + d c s ) θ + d s c
3 4 5
6 3 4 6 2 3 5 6
d3 s2 c4 c5 s6 + l2c2 s4 c5 s6 + l2 s2 s5 s6 +
( 6
v0,6 ) y
+d3 s2 s4c6 − l2c2c4c6
θ1 +
+ ( −d s c s + d c c ) θ − d s s
3 4
5
6 3 4 6 2 3 5 6
( 6
v0,6 ) z
= ( −d3 s2 c4 s5 − l2c2 s4 s5 + l2 s2 c5 ) θ1 +
+d3θ2 s4 s5 − d3c5
. (6.88)
( 6
ω0,6 ) x
( − s2 s4 c5 c6 + c2 s5 c6 − s2 c4 s6 ) θ1 +
=
+ ( − c4 c5 c6 + s4 s6 ) θ2 + ( s5 c6 ) θ4 + ( s6 ) θ5
( 6
ω0,6 = ) y
( s2 s4 c5 s6 − c2 s5 s6 − s2 c4c6 ) θ1 +
+ ( c4 c5 s6 + s4c6 ) θ2 − ( s5 s6 ) θ4 + ( c6 ) θ5
( 6
ω0,6 ) z
( − s2 s4 s5 − c2c5 ) θ1 − ( c4 s5 ) θ2 − ( c5 ) θ4 + θ6
=
199
6. Cinematica vitezelor şi acceleraţiilor
(
0ω0,6 )
y
5
0 θ6
(
ω0,6
)z
200
Bazele Roboticii
n0R ( q ) 0
np ( q )
0
nT ( )
q = , (6.92)
0 1
T
unde q = q1 , q2 , , qn este vectorul variabilelor cuplelor
cinematice, qi = θ i pentru o cuplă cinematică de rotaţie şi qi = di
pentru o cuplă de translaţie. Atât poziţia, cât şi orientarea efectorului
final, depind de aceste variabile.
Scopul analizei cinematice a vitezelor este de a găsi legătura
dintre vitezele cuplelor şi vitezele liniară şi unghiulară ale efectorului
final. Cu alte cuvinte, se cere determinarea expresiei vitezei liniare p
şi unghiulare ω , ca funcţii de vitezele q ale cuplelor cinematice:
=p JP ( q ) ⋅ q , (6.93)
=ω JO ( q ) ⋅ q . (6.94)
p
v =
= J ( q ) ⋅ q , (6.95)
ω
J
J = P, (6.96)
JO
care este, în general, o funcţie de variabilele cuplelor cinematice.
201
6. Cinematica vitezelor şi acceleraţiilor
R (t ) ⋅ RT (t ) =
I, (6.97)
R (t ) ⋅ RT (t ) + R (t ) ⋅ R T (t ) =
0, (6.98)
unde 0 este matricea nulă. Ecuaţia (6.98) poate fi rescrisă sub forma
( )
T
R (t ) ⋅ RT (t ) + R (t ) ⋅ RT (t ) 0.
= (6.99)
Notând cu
(t ) R (t ) ⋅ RT (t ) ,
S= (6.100)
vom avea
S (t ) + S T (t ) =
0. (6.101)
(t ) S (t ) ⋅ R (t ) .
R= (6.102)
(t ) R (t ) ⋅ R−1 (t ) ,
S= (6.103)
202
Bazele Roboticii
cu
0
z0 = 0 ; (6.107)
1
0
• vectorul i −1 p este reprezentat de primele trei elemente ale
0
coloanei a patra din matricea omogenă i −1T sau se poate calcula
astfel
0 0
=
i−1p i −1T ⋅ 00 p , (6.108)
cu
0
0
0
0 p = ; (6.109)
0
1
0
• vectorul np este reprezentat de primele trei elemente ale
0
coloanei a patra din matricea omogenă nT sau se poate calcula cu
relaţia
203
6. Cinematica vitezelor şi acceleraţiilor
0 0
n=p nT ⋅ 00 p . (6.110)
0
Din 0p , respectiv din produsele (6.108) şi (6.110), se reţin
numai primii trei termeni.
Cu alte cuvinte, matricea Jacobiană geometrică a unui
manipulator cu n grade de mobilitate, având toate cele n cuple
cinematice de rotaţie, capătă forma
J =
0 n(
z × 0p − 0p
0 ) .. zi −1 × ( 0
np − 0
i −1 p ) .. zn −1 × ( 0
np − 0
n −1 p ) .(6.111)
z0 .. zi −1 .. zn −1
Pentru un manipulator cu n grade de mobilitate, având n-1
cuple cinematice de rotaţie şi cupla cinematică i de translaţie,
matricea Jacobiană are forma generală
J =
0 n (
z × 0p − 0p
0 ) .. zi −1 .. zn −1 × ( 0
np − 0
n −1 p ) . (6.112)
z0 .. 0 .. zn −1
204
Bazele Roboticii
0 p
0 0
v =
= J ⋅ q . (6.113)
0ω
Presupunem că dorim să calculăm vitezele efectorului în raport
cu alt sistem de axe, sistemul {a} spre exemplu. Mai întâi, trebuie
notat faptul că vectorul viteză 0v cu dimensiunea 6x1 este descris în
raport cu sistemul {a} de transformarea
a p 0aR 0 0 p 0aR 0 0
a = ⋅ = ⋅ v.
v = (6.114)
aω 0 0 0 a
a R ω 0 0R
205
6. Cinematica vitezelor şi acceleraţiilor
x3
y3 _
M _ O3
θ3
y2
l3
x2
C
y0 y1
θ2
l2
x1
l1 B
A θ1
x0
206
Bazele Roboticii
cos θ2 − sin θ2 0
1
2 R = sin θ2 cos θ2 0 , (6.123)
0 0 1
cos θ3 − sin θ3 0
2
3 R = sin θ3 cos θ3 0 , (6.124)
0 0 1
c12 −s12 0
0 0 1
2 R = 1 R ⋅ 2 R = s12 c12 0 . (6.125)
0 0 1
207
6. Cinematica vitezelor şi acceleraţiilor
0
J =
0 3 (
z × 0p − 0p
0 ) z1 × ( 0
3p − 10 p ) z2 × ( 0
3p )
− 20 p
. (6.126)
z0 z1 z2
Conform paragrafului 6.4.2,
cos θ1 − sin θ1 0 0 0
z1 = 10R ⋅ z0 = sin θ1 cos θ1 0 ⋅ 0 = 0 , (6.127)
0 0 1 1 1
adică
l1 ⋅ c1
0
1=p l1 ⋅ s1 ; (6.130)
0
ceea ce inseamnă
l2 ⋅ c12 + l1 ⋅ c1
0
2 p = l2 ⋅ s12 + l1 ⋅ s1 ; (6.132)
0
208
Bazele Roboticii
adică
l1 ⋅ c1 + l2 ⋅ c12 + l3 ⋅ c123
0
3 p = l1 ⋅ s1 + l2 ⋅ s12 + l3 ⋅ s123 ; (6.134)
0
l3 ⋅ c123
0 0
3 p − 2 p = l3 ⋅ s123 . (6.137)
0
0 0 0
Vectorii z1 , z2 şi 1p , 2p , 3p se pot obţine direct, fără
efectuarea calculelor prezentate anterior, aceştia reprezentând a treia
0 0
coloană a matricelor 1R ,2 R , respectiv primele trei elemente ale
coloanei a patra din matricele 01T , 02T , 03T .
În aceste condiţii, matricea (6.126) devine
209
6. Cinematica vitezelor şi acceleraţiilor
210
Bazele Roboticii
y1
B l2
θ2
x1 y2
z1 2
1 C l3
θ3 y3
z0
l1=0 x2 3
z2 _
A 0 M _ O3
x0 y0
z3 x3
θ1
−s1 ⋅ c2 s1 ⋅ s2 c1 −l2 ⋅ s1 ⋅ c2
c1 ⋅ c2 −c1 ⋅ s2 s1 l2 ⋅ c1 ⋅ c2
0 0 1
2T = 1T ⋅ 2T = , (6.142)
s2 c2 0 l2 ⋅ s2
0 0 0 1
cos θ2 − sin θ2 0
1
2 R = sin θ2 cos θ2 0 , (6.145)
0 0 1
211
6. Cinematica vitezelor şi acceleraţiilor
cos θ3 − sin θ3 0
2
3R = sin θ3 cos θ3 0 , (6.146)
0 0 1
−s1c2 s1s2 c1
0 0 1
2 R = 1 R ⋅ 2 R = c1c2 −c1s2 s1 . (6.147)
s2 c2 0
0
J =
0 3 (
z × 0p − 0p
0 ) z1 × ( 0
3p − 10 p ) z2 × ( 0
3p )
− 20 p
, (6.148)
z0 z1 z2
unde:
−s1 0 c1 0 c1
z1 = 10R ⋅ z0 = c1 0 s1 ⋅ 0 = s1 ; (6.149)
0 1 0 1 0
adică
0
0
1 p = 0 ; (6.152)
0
212
Bazele Roboticii
adică
−l2 ⋅ s1 ⋅ c2
0
2 p = l2 ⋅ c1 ⋅ c2 ; (6.154)
l2 ⋅ s2
adică
− ( l2 ⋅ c2 + l3 ⋅ c23 ) ⋅ s1
0
3 p=
( l2 ⋅ c2 + l3 ⋅ c23 ) ⋅ c1 ; (6.156)
l ⋅ s + l ⋅ s
2 2 3 23
− ( l2 ⋅ c2 + l3 ⋅ c23 ) ⋅ s1
0 0
3 p − 0 p=
( l2 ⋅ c2 + l3 ⋅ c23 ) ⋅ c1 ; (6.157)
l ⋅ s + l ⋅ s
2 2 3 23
− ( l2 ⋅ c2 + l3 ⋅ c23 ) ⋅ s1
0
3 p − 0
1 p
= ( l2 ⋅ c2 + l3 ⋅ c23 ) ⋅ c
1 ; (6.158)
l ⋅ s + l ⋅ s
2 2 3 23
213
6. Cinematica vitezelor şi acceleraţiilor
−l3 ⋅ s1 ⋅ c23
0 0
3p − 2p = l3 ⋅ c1 ⋅ c23 . (6.159)
l3 ⋅ s23
6.5 Singularităţi
Aşa cum se vede în relaţia (6.95), matricea Jacobiană depinde
de parametrii cinematici ai cuplelor, reprezentaţi prin vectorul q .
Mulţi roboţi prezintă configuraţii cu valori ale acestor parametri,
pentru care matricea Jacobiană devine singulară (determinantul ei
este zero). Aceste configuraţii sunt numite singularităţi cinematice ale
mecanismului sau, pe scurt, singularităţi. Toate manipulatoarele au
singularităţi la graniţa spaţiului lor de lucru, şi multe dintre ele au o
serie de singularităţi în interiorul acestui spaţiu. Descoperirea
singularităţilor unui manipulator prezintă un interes deosebit din
următoarele motive:
• Singularităţile reprezintă configuraţii pentru care
mobilitatea structurii cinematice este redusă, spre
exemplu, impunerea unei mişcări arbitrare efectorului final
nu este posibilă;
• Când manipulatorul este într-o asemenea configuraţie
(singulară), poate exista un număr infinit de soluţii pentru
cinematica inversă;
• În vecinătatea unei poziţii singulare (unei singularităţi),
vitezele mici ale efectorului final pot cauza viteze mari ale
cuplelor cinematice.
Singularităţile pot fi clasificate în două categorii:
214
Bazele Roboticii
y0
l2 M
B
θ2 =0
l1
θ1
A
x0
215
6. Cinematica vitezelor şi acceleraţiilor
J12 = z3 ×
( 0
6p − 30 p ) z4 × ( 0
6p − 0
4p ) z5 × ( 0
6p )
− 50 p
(6.164)
şi
J22 = z3 z4 z5 . (6.165)
216
Bazele Roboticii
217
6. Cinematica vitezelor şi acceleraţiilor
y6
z6
y5
O6 z5
z4
x6 θ5 =0
θ6 y3
F
x5 E z3
l5=0 x4 y4
l4=0 D
x3
θ4
218
Bazele Roboticii
y1 y1
B B 2
θ2 θ2
x1 y2 x1 3
z1 2 z1
C x2 C
1 1
θ3 =0 z0
θ3 =π
z0
z2 x2 3 z2
A 0 A 0 y2
x0 y0 x0 y0
θ1 θ1
(a) (b)
p=
x p=
y 0 (6.174)
219
6. Cinematica vitezelor şi acceleraţiilor
3
x2
y2
θ3
C
x1 2
z2
θ2
y1
B
z1
z0
1
A 0
x0 y0
θ1
220
Bazele Roboticii
T
unde: v = [ p ω ] este vectorul viteză a efectorului final, iar
q = q1 q2 q n reprezintă vectorul viteză al cuplelor cinematice.
Dacă matricea Jacobiană nu este singulară şi este patratică, se
poate determina inversa acesteia, respectiv se pot calcula vitezele
cuplelor cinematice cunoscând vitezele efectorului final
=q J −1 ( q ) ⋅ v . (6.176)
(J )
−1
T
J += ⋅J ⋅ J T , daca m < n, J + ⋅ J= Im ; (6.177)
( )
−1
J + = JT ⋅ J ⋅ JT , daca m > n, J ⋅ J + = In . (6.178)
221
6. Cinematica vitezelor şi acceleraţiilor
222
Bazele Roboticii
p JP
x = = ⋅ q = J A ⋅ q . (6.182)
φ Jφ
q J A−1 ⋅ x .
= (6.184)
223
6. Cinematica vitezelor şi acceleraţiilor
z z' z"
. . .
ϕ ν ψ
y' y"
y
x
x' x"
T T
• ca o contribuţie a lui ϕ , ω x ωy ω z = ϕ ⋅ 0 0 1 ;
T T
• ca o contribuţie a lui υ , ω x ωy ω z = υ ⋅ − sin ϕ cos ϕ 0 ;
T T
• contribuţia lui ψ , ω x ωy ω z =ψ ⋅ cϕ ⋅ sν sϕ ⋅ sν cν ,
unde s-au făcut notaţiile, cϕ = cos ϕ , sϕ = sin ϕ , cν = cos ν ,
sν = sinν .
z
ν
ω
.
ϕ
. .
ψ ν
y
ϕ
x
224
Bazele Roboticii
0 − sϕ cϕ ⋅ sν
= 0 cϕ
ω φ T (φ ) ⋅ φ .
sϕ ⋅ sν ⋅= (6.185)
1 0 cν
I 0
v
= x TA (φ ) ⋅ x ,
⋅= (6.186)
0 T (φ )
=J A TA−1 (φ ) ⋅ J . (6.188)
225
6. Cinematica vitezelor şi acceleraţiilor
respectiv
T T
ω = 0 π / 2 0 , pt. 0 ≤ t ≤ 1 ω = π / 2 0 0 , pt. 1 ≤ t ≤ 2 .
226
Bazele Roboticii
z z
t=0
y y
x x
z z
t=1
y y
x x
z z
t=2
y y
x x
227
6. Cinematica vitezelor şi acceleraţiilor
228
Bazele Roboticii
229
6. Cinematica vitezelor şi acceleraţiilor
230
7
STATICA ROBOŢILOR DE
TIP MANIPULATOR
7.1 Generalităţi
În cazul unui robot de tip manipulator, fiecare element
cinematic este conectat la unul sau alte două elemente, prin
intermediul unor cuple cinematice, ce pot avea diverse tipuri. Figura
7.1 prezintă forţele şi momentele ce acţionează asupra unui element
cinematic i, conectat la elementul i-1 prin cupla cinematică i şi la
elementul i+1 prin cupla i+1.
Pentru a descrie forţele şi momentele ce acţionează asupra
elementului i, folosim următoarele notaţii:
0
• Fi ,i +1 - forţa rezultantă exercitată de elementul i asupra
elementului i+1 în originea Oi a sistemului de axe {i},
raportată la sistemul de axe de referinţă {0}, 0Fi ,i +1 = − 0Fi +1,i ;
0
• g - vectorul acceleraţie unghiulară;
• mi - masa elementului i;
0
• Mi ,i +1 - momentul rezultant exercitat de elementul i asupra
elementului i+1 în originea Oi a sistemului de axe {i},
raportat la sistemul de axe de referinţă {0},
0 0
Mi ,i +1 = − Mi +1,i ;
0
• pi ,Ci - vectorul de poziţie al centrului de masă al elementului
cinematic i, relativ la originea Oi a sistemului de axe {i},
0
raportat la sistemul de axe de referinţă {0}, pi ,Ci = Oi Ci ;
0
• pi −1,i - vectorul de poziţie al originii Oi a sistemului de axe
{i}, faţă de originea Oi −1 a sistemului de axe i-1, raportat la
0
sistemul de axe de referinţă {0}, pi −1,i = Oi −1Oi ;
231
7. Statica roboţilor de tip manipulator
0
• Fi −1,i - forţa rezultantă exercitată de elementul i-1 asupra
elementului i în originea Oi −1 a sistemului de axe {i-1},
raportată la sistemul de axe de referinţă {0}, 0Fi −1,i = − 0Fi ,i −1 ;
0
• Mi −1,i - momentul rezultant exercitat de elementul i-1 asupra
elementului i în originea Oi −1 a sistemului de axe {i-1},
raportat la sistemul de axe de referinţă {0}, 0Mi −1,i = − 0Mi ,i −1 .
232
Bazele Roboticii
0 0
Pentru i = 0 , F0,1 şi M0,1 reprezintă forţa şi momentul
exercitate de elementul fix asupra primului element mobil.
0 0
Pentru i = n , Fn,n+1 şi Mn,n+1 reprezintă forţa şi momentul
exercitate de mediu asupra efectorului final. În această situaţie,
mediul este considerat ca fiind un element suplimentar, notat cu n+1.
Pentru mai multă comoditate, forţele şi momentele vor fi
combinate într-un vector de forma:
⎧ 0Fi −1,i
0 ⎪
Fi −1,i =⎨ , (7.3)
0
⎪⎩ Mi −1,i
0
unde Fi −1, i este numit torsorul forţelor scrise în raport cu originea
Oi −1 .
Atunci când manipulatorul efectuează o anumită operaţie,
efectorul final exercită o anumită forţă sau/şi un anumit moment
asupra mediului. Pe de altă parte, când manipulatorul manipulează un
obiect, forţa de greutate a acestuia acţionează asupra efectorului
final. Din acest motiv, considerând că se cunosc forţa şi momentul ce
0 0
acţionează asupra efectorului final, Fn,n+1 şi Mn,n+1 , ecuaţiile (7.1)
şi (7.2) pot fi rezolvate pentru determinarea celorlalte forţe şi
momente de reacţiune.
233
7. Statica roboţilor de tip manipulator
0
Mi −1,i = 0Mi ,i +1 + 0 pi −1,i × 0Fi −1,i − 0 pi ,Ci × mi ⋅ 0 g . ( ) (7.7)
i i i −1 i i −1
pi −1,i = i −1 R ⋅ pi −1,i = i −1 R ⋅ ip =
⎡ cos θ i sin θ i 0 ⎤ ⎡ ai ⋅ cos θ i ⎤
⎢ ⎥ ⎢ ⎥
= ⎢ − sin θ i ⋅ cos α i cos θ i ⋅ cos α i sin α i ⎥ ⋅ ⎢ ai ⋅ sin θ i ⎥ = . (7.9)
⎢ ⎥ ⎢ ⎥
⎢⎣ sin θ i ⋅ sin α i − cos θ i ⋅ sin α i cos α i ⎥⎦ ⎢⎣ di ⎥⎦
⎡ ai ⎤
⎢ ⎥
= ⎢ di ⋅ sin α i ⎥
⎢ ⎥
⎢⎣di ⋅ cos α i ⎥⎦
234
Bazele Roboticii
0
pi ,Ci = 0i R ⋅ i pi ,Ci , (7.11)
7.4 Exemplu
Considerăm, pentru exemplificare, un robot de tip manipulator
serial cu structură plană, având 3 grade de mobilitate şi toate cuplele
cinematice de rotaţie (Fig. 7.2).
235
7. Statica roboţilor de tip manipulator
236
Bazele Roboticii
⎡cos θ2 − sin θ2 0⎤
⎢ ⎥
1
2R = ⎢ sin θ2 cos θ2 0⎥ , (7.16)
⎢ ⎥
⎢⎣ 0 0 1 ⎥⎦
⎡cos θ3 − sin θ3 0⎤
⎢ ⎥
2
3 R = ⎢ sin θ3 cos θ3 0 ⎥ , (7.17)
⎢ ⎥
⎢⎣ 0 0 1 ⎥⎦
⎡ l2 ⎤
⎢ ⎥
2
p1,2 = ⎢0⎥ ; (7.22)
⎢ ⎥
⎢⎣ 0 ⎥⎦
237
7. Statica roboţilor de tip manipulator
⎡ l3 ⎤
⎢ ⎥
3
p2,3 = ⎢0⎥ ; (7.23)
⎢ ⎥
⎢⎣ 0 ⎥⎦
⎡ l2 ⎤
⎢− 2 ⎥
⎢ ⎥
2
p2,C 2 = ⎢ 0 ⎥, (7.28)
⎢ ⎥
⎢ 0 ⎥
⎢ ⎥
⎢⎣ ⎥⎦
238
Bazele Roboticii
⎡ l3 ⎤
⎢− 2 ⎥
⎢ ⎥
3
p3,C 3 = 0 ⎥,
⎢ (7.29)
⎢ ⎥
⎢ 0 ⎥
⎢ ⎥
⎢⎣ ⎥⎦
⎡ l ⎤
⎡ l1 ⎤ ⎡ l1 ⎤ ⎢ − 1 ⋅ c1 ⎥
⎢ − 2 ⎥ ⎡c − s1
−
0⎤ ⎢ 2 ⎥ ⎢ 2 ⎥
⎢ ⎥ ⎢ 1 ⎥ ⎢ ⎥ ⎢ ⎥
l
0
p1,C1 = 10R ⋅ ⎢ 0 ⎥ = ⎢s1 c1 0⎥ ⋅ ⎢ 0 ⎥ = ⎢ − 1 ⋅ s1 ⎥ , (7.30)
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ 2 ⎥
⎢ 0 ⎥ ⎢0 0 1 ⎦ ⎢ 0 ⎥⎥ ⎢
⎥ ⎢ ⎥
⎢ ⎥ ⎣ ⎢ 0 ⎥
⎢⎣ ⎥⎦ ⎢⎣ ⎥⎦ ⎢ ⎥
⎣ ⎦
⎡ l ⎤
⎡ l2 ⎤ ⎡ l2 ⎤ ⎢ − 2 ⋅ c12 ⎥
⎢ − 2 ⎥ ⎡c − s12
−
0⎤ ⎢ 2 ⎥ ⎢ 2 ⎥
⎢ ⎥ ⎢ 12 ⎥ ⎢ ⎥ ⎢ ⎥
l
0
p2,C 2 = 2 R ⋅ 0 ⎥ = ⎢s12
0 ⎢ c12 0⎥ ⋅ ⎢ 0 ⎥ = ⎢ − 2 ⋅ s12 ⎥ , (7.31)
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ 2 ⎥
⎢ 0 ⎥ ⎢ 0 0 1 ⎥⎦ ⎢⎢ 0 ⎥⎥ ⎢ ⎥
⎢ ⎥ ⎣ ⎢ 0 ⎥
⎣⎢ ⎦⎥ ⎣⎢ ⎦⎥ ⎢ ⎥
⎣ ⎦
⎡ l ⎤
⎡ l3 ⎤ ⎡ l3 ⎤ ⎢ − 3 ⋅ c123 ⎥
⎢ − 2 ⎥ ⎡c − s123
−
0⎤ ⎢ 2 ⎥ ⎢ 2 ⎥
⎢ ⎥ ⎢ 123 ⎥ ⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥ l3
0
p3,C 3 0
= 3 R ⋅ 0 = ⎢s123 c123 0⎥ ⋅ 0 = ⎢ − ⋅ s123 ⎥ . (7.32)
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ 2 ⎥
⎢ 0 ⎥ ⎢ 0 0 1 ⎥⎦ ⎢⎢ 0 ⎥⎥ ⎢ ⎥
⎢ ⎥ ⎣ ⎢ 0 ⎥
⎢⎣ ⎥⎦ ⎢⎣ ⎥⎦ ⎢ ⎥
⎣ ⎦
Pentru i = 3 avem:
⎡ Fx ⎤
⎢ ⎥
0
F2,3 = 0F3,4 − m3 ⋅ 0 g = ⎢ Fy + m3 ⋅ g ⎥ , (7.33)
⎢ ⎥
⎢⎣ 0 ⎥⎦
239
7. Statica roboţilor de tip manipulator
0
(
M2,3 = 0M3,4 + 0 p2,3 × 0F2,3 − 0 p3,C 3 × m3 ⋅ 0 g = )
⎡ l3 ⎤
⎢ − 2 ⋅ c123 ⎥
⎡ 0 ⎤ ⎡l3 ⋅ c123 ⎤ ⎡ Fx ⎤ ⎢ ⎥ ⎡ 0 ⎤
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ l ⎥ ⎢ ⎥
= ⎢ 0 ⎥ + ⎢l3 ⋅ s123 ⎥ × ⎢Fy + m3 ⋅ g ⎥ − ⎢ − 3 ⋅ s123 ⎥ × ⎢ −m3 ⋅ g ⎥ =
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ 2 ⎥ ⎢ ⎥
⎢⎣ Mz ⎥⎦ ⎢⎣ 0 ⎥⎦ ⎢⎣ 0 ⎥⎦ ⎢ ⎥ ⎢ 0 ⎥
⎣ ⎦
⎢ 0 ⎥
⎢ ⎥
⎣ ⎦
⎡ ⎤
⎡ 0 ⎤ ⎡ 0 ⎤ ⎢ 0 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
=⎢ 0 ⎥+⎢ 0 ⎥−⎢ 0 ⎥=
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ ( )
⎢⎣ Mz ⎥⎦ ⎢l3 ⋅ c123 ⋅ Fy + m3 ⋅ g − l3 ⋅ s123 ⋅ Fx ⎥ ⎢ l3 ⎥
⎦ ⎢ ⋅ c123 ⋅ m3 ⋅ g ⎥
⎣2 ⎦
⎡ ⎤
⎢ 0 ⎥
⎢ ⎥
=⎢ 0 ⎥=
⎢ ⎥
⎢ l3 ⎥
⎣
( )
⎢ Mz + l3 ⋅ c123 ⋅ Fy + m3 ⋅ g − l3 ⋅ s123 ⋅ Fx − ⋅ c123 ⋅ m3 ⋅ g ⎥
2 ⎦
⎡ ⎤
⎢ 0 ⎥
⎢ ⎥
=⎢ 0 ⎥=
⎢ ⎥ ,(7.34)
⎢ l3 ⎥
⎢ Mz + l3 ⋅ c123 ⋅ Fy − l3 ⋅ s123 ⋅ Fx + ⋅ c123 ⋅ m3 ⋅ g ⎥
⎣ 2 ⎦
⎡ 0 ⎤
⎢ ⎥
=⎢ 0 ⎥
⎢ ⎥
⎢M ⎥
⎣ 3,2 z ⎦
l3
unde, M3,2 z = Mz + l3 ⋅ c123 ⋅ Fy − l3 ⋅ s123 ⋅ Fx + ⋅ c123 ⋅ m3 ⋅ g .
2
Pentru i = 2:
⎡ Fx ⎤
⎢ ⎥
0
F1,2 = 0F2,3 − m2 ⋅ g = ⎢ Fy + ( m2 + m3 ) ⋅ g ⎥ ,
0
(7.35)
⎢ ⎥
⎢⎣ 0 ⎥⎦
0
(
M1,2 = 0M2,2 + 0 p1,2 × 0F1,2 − 0 p2,C 2 × m2 ⋅ 0 g )
240
Bazele Roboticii
⎡ l2 ⎤
⎢ − 2 ⋅ c12 ⎥
⎡ 0 ⎤ ⎡l2 ⋅ c12 ⎤ ⎡ Fx ⎤ ⎢ ⎥ ⎡ 0 ⎤
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ l2 ⎥ ⎢ ⎥
0
M1,2 = ⎢ 0 ⎥ + ⎢l2 ⋅ s12 ⎥ × ⎢Fy + ( m2 + m3 ) ⋅ g ⎥ − ⎢ − ⋅ s12 ⎥ × ⎢ −m2 ⋅ g ⎥ =
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ 2 ⎥ ⎢ ⎥
⎢⎣M3,2 z ⎥⎦ ⎢⎣ 0 ⎥⎦ ⎢⎣ 0 ⎥⎦ ⎢ 0 ⎥ ⎢⎣ 0 ⎥⎦
⎢ ⎥
⎣⎢ ⎦⎥
⎡ ⎤
⎡ 0 ⎤ ⎡ 0 ⎤ ⎢ 0 ⎥ ,(7.36)
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
=⎢ 0 ⎥+⎢ 0 ⎥−⎢ 0 ⎥=
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢⎣M3,2 z ⎥⎦ ⎢⎣l2 ⋅ c12 ⋅ ⎡⎣Fy + ( m2 + m3 ) ⋅ g ⎤⎦ − l2 ⋅ s12 ⋅ Fx ⎦⎥ ⎢ l2 ⎥
⎢ ⋅ c12 ⋅ m2 ⋅ g ⎥
⎣2 ⎦
⎡ 0 ⎤
⎢ ⎥
=⎢ 0 ⎥
⎢ ⎥
⎢⎣M2,1z ⎥⎦
l2
unde, M2,1z = M3,2 z + l2 ⋅ c12 ⋅ ⎣⎡Fy + ( m2 + m3 ) ⋅ g ⎦⎤ − l2 ⋅ s12 ⋅ Fx − ⋅ c12 ⋅ m2 ⋅ g .
2
După înlocuiri, obţinem
⎡ Mz + Fy ⋅ ( l2 ⋅ c12 + l3 ⋅ c123 ) − Fx ⋅ ( l2 ⋅ s12 + l3 ⋅ s123 ) + ⎤
M2,1z = ⎢⎢ l l2
⎥ .(7.37)
⎥
3
+
⎢⎣ 2 ⋅ m3 ⋅ g ⋅ c123 + l2 ⋅ m 3 ⋅ g ⋅ c12 + ⋅ m2 ⋅ g ⋅ c12 ⎥⎦
2
Pentru i =1,
⎡ Fx ⎤
⎢ ⎥
0
F0,1 = 0F1,2 − m1 ⋅ g = ⎢ Fy + ( m1 + m2 + m3 ) ⋅ g ⎥ ,
0
(7.38)
⎢ ⎥
⎢⎣ 0 ⎥⎦
0
M0,1 = 0M1,2 + 0 p0,1 × 0F0,1 − 0 p1,C1 × m1 ⋅ 0 g = ( )
⎡ 0 ⎤ ⎡ l1 ⋅ c1 ⎤ ⎡ Fx ⎤
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
= ⎢ 0 ⎥ + ⎢ l1 ⋅ s1 ⎥ × ⎢ Fy + ( m1 + m2 + m3 ) ⋅ g ⎥ −
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣⎢ M2,1z ⎦⎥ ⎣⎢ 0 ⎥⎦ ⎣⎢ 0 ⎦⎥
⎡ l1 ⎤
⎢ − 2 ⋅ c1 ⎥
⎢ ⎥ ⎡ 0 ⎤
⎢ l1 ⎥ ⎢ ⎥
− ⎢ − ⋅ s1 ⎥ × ⎢ −m1 ⋅ g ⎥
⎢ 2 ⎥ ⎢ ⎥
⎢ 0 ⎥ ⎣⎢ 0 ⎦⎥
⎢ ⎥
⎣⎢ ⎦⎥
241
7. Statica roboţilor de tip manipulator
⎡ 0 ⎤ ⎡ 0 ⎤
⎢ ⎥ ⎢ ⎥
0
M0,1 = ⎢ 0 ⎥ + ⎢ 0 ⎥−
⎢ ⎥ ⎢ ⎥
⎢M ⎥ ⎢l ⋅ c ⎡F + ( m + m + m ) ⋅ g ⎤ − l ⋅ F ⋅ s ⎥
⎣ 2,1z ⎦ ⎣ 1 1 ⎣ y 1 2 3 ⎦ 1 x 1⎦
⎡ ⎤ , (7.39)
⎢ 0 ⎥ ⎡ 0 ⎤
⎢ ⎥ ⎢ ⎥
−⎢ 0 ⎥=⎢ 0 ⎥
⎢ ⎥ ⎢ ⎥
⎢ l ⎥ ⎢M ⎥
⎢ − 1 ⋅ m1 ⋅ g ⋅ c1 ⎥ ⎣ 1,0 Z ⎦
⎣ 2 ⎦
unde
l1
M0,1z = M1,2z + l1 ⋅ ⎡⎣Fy + ( m1 + m2 + m3 ) ⋅ g ⎤⎦ ⋅ c1 − l1 ⋅ Fx ⋅ s1 − ⋅ m1 ⋅ g ⋅ c1 =
2
⎡ ⎤
⎢Mz + Fy ⋅ ( l2 ⋅ c12 + l3 ⋅ c123 ) − Fx ⋅ ( l2 ⋅ s12 + l3 ⋅ s123 ) + ⎥
⎢ ⎥
⎢ l l ⎥
= ⎢+ 3 ⋅ m3 ⋅ g ⋅ c123 + l2 ⋅ m3 ⋅ g ⋅ c12 + 2 ⋅ m2 ⋅ g ⋅ c12 + ⎥=
⎢ 2 2 ⎥
⎢ l1 ⎥
⎢+l1 ⎣⎡Fy + ( m1 + m2 + m3 ) ⋅ g ⎤⎦ ⋅ c1 − l1 ⋅ Fx ⋅ s1 − ⋅ m1 ⋅ g ⋅ c1 ⎥
⎣ 2 ⎦
⎡ ⎤
⎢M + F ⋅ ( l ⋅ c + l ⋅ c + l ⋅ c ) − F ⋅ ( l ⋅ s + l ⋅ s + l ⋅ s ) + ⎥
⎢ z y 1 1 2 12 3 123 x 1 1 2 12 3 123 ⎥
⎢ ⎥
l ⎛ l ⎞
= ⎢+ 1 ⋅ m1 ⋅ g ⋅ c1 + m2 ⋅ g ⋅ ⎜ l1 ⋅ c1 + 2 ⋅ c12 ⎟ + ⎥
⎢ 2 ⎝ 2 ⎠ ⎥
⎢ ⎥
⎢ ⎛ l3 ⎞ ⎥ .(7.40)
⎢+ ⎜ l1 ⋅ c1 + l2 ⋅ c12 + ⋅ c123 ⎟ ⋅ m3 ⋅ g ⎥
⎣⎢ ⎝ 2 ⎠ ⎦⎥
τ1 = z0T ⋅ 0
M0,1 = M0,1z , (7.41)
τ 2 = z1T ⋅ 0
M1,2 = M1,2 z , (7.42)
τ 3 = z2T ⋅ 0
M2,3 = M2,3 z , (7.43)
242
Bazele Roboticii
⎡ ⎤
⎢M + F ⋅ ( l ⋅ c + l ⋅ c + l ⋅ c ) − F ⋅ ( l ⋅ s + l ⋅ s + l ⋅ s ) + ⎥
⎢ z y 1 1 2 12 3 123 x 1 1 2 12 3 123 ⎥
⎢ l ⎛ l ⎞ ⎥
τ1 = ⎢+ 1 ⋅ m1 ⋅ g ⋅ c1 + m2 ⋅ g ⋅ ⎜ l1 ⋅ c1 + 2 ⋅ c12 ⎟ + ⎥ ,(7.44)
⎢ 2 ⎝ 2 ⎠ ⎥
⎢ ⎥
⎛
⎢+m ⋅ g ⋅ l ⋅ c + l ⋅ c + 3 ⋅ c l ⎞ ⎥
⎢⎣ 3 ⎜ 1 1 2 12 123 ⎟ ⎥⎦
⎝ 2 ⎠
l3
τ 3 = Mz + l3 ⋅ Fy ⋅ c123 − l3 ⋅ Fx ⋅ s123 + ⋅ m3 ⋅ g ⋅ c123 . (7.46)
2
Dar,
⎡τ1 ⎤ ⎡ Fx ⎤ ⎡Gx ⎤
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
0 T 0 T
⎢τ 2 ⎥ = J ⋅ F3,4 + G = J ⋅ ⎢ Fy ⎥ + ⎢Gy ⎥ , (7.47)
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢⎣τ 3 ⎥⎦ ⎢⎣Mz ⎥⎦ ⎢⎣Gz ⎥⎦
0 0
unde: J - matricea Jacobiană geometrică a vitezelor, F3,4 - forţa
ce acţionează asupra efectorului final, G - matricea forţelor de
gravitate.
243
7. Statica roboţilor de tip manipulator
⎡ l1 ⎛ l ⎞ ⎤
⎢ ⋅ m1 ⋅ c1 + m2 ⋅ ⎜ l1 ⋅ c1 + 2 ⋅ c12 ⎟ + ⎥
⎢ 2 ⎝ 2 ⎠ ⎥
⎢ ⎛ l ⎞ ⎥
⎢ + m3 ⋅ ⎜ l1 ⋅ c1 + l2 ⋅ c12 + 3 ⋅ c123 ⎟ ⎥
⎢ ⎝ 2 ⎠ ⎥
⎡Gx ⎤ ⎢ ⎥
⎢ ⎥ ⎢l ⎛ l ⎞ ⎥
3
G = ⎢Gy ⎥ = ⎢ 2 ⋅ m2 ⋅ c12 + m3 ⋅ ⎜ ⋅ c123 + l2 ⋅ c12 ⎟ ⎥ ⋅ g . (7.49)
⎢ ⎥ ⎢2 ⎝2 ⎠⎥
⎢⎣Gz ⎥⎦ ⎢ ⎥
⎢ l3 ⎥
⎢ ⋅ m3 ⋅ c 123 ⎥
2
⎢ ⎥
⎢ ⎥
⎢ ⎥
⎣⎢ ⎦⎥
Trebuie notat faptul că, în absenţa gravităţii, momentele de
torsiune ale actuatorilor şi forţele ce acţionează asupra efectorului
final sunt legate între ele prin intermediul transpusei matricei
Jacobiene.
244
8
DINAMICA ROBOŢILOR DE
TIP MANIPULATOR
ρdV zC
u vC
w r
C yC
z p xC
Au Corp
p
C
O
y
unde
m= ∫ ρ dV . (8.2)
V
245
8. Dinamica roboţilor de tip manipulator
IuO = ∫ p × ( u × p ) ρ dV , (8.3)
V
( )
2
Iuu = IuO ⋅ w = ∫ p
2
− pT ⋅ u 2
ρ dV = m ⋅ ra , (8.6)
V
( )
2 2
unde ra =∫ p2 − pT ⋅ u =( u × p ) este un număr pozitiv şi se
V
numeşte rază de giraţie.
Atunci când scriem expresia anterioară sub următoarea formă
O
I=
u IBO ⋅ u , (8.7)
I xx I xy I xz
IBO = Iyx Iyy Iyz . (8.8)
I zz
I zx I zy
246
Bazele Roboticii
∫ (y )
2
I xx
= + z 2 ρ dV , (8.9)
V
∫ (x )
2
Iyy
= + z 2 ρ dV , (8.10)
V
∫ (x )
2
I zz
= + y 2 ρ dV , (8.11)
V
I xy =Iyx =− ∫ x ⋅ y ⋅ ρ dV , (8.12)
V
Iyz =I zy =− ∫ y ⋅ z ⋅ ρ dV , (8.13)
V
I xz =I zx =− ∫ x ⋅ z ⋅ ρ dV . (8.14)
V
O
I xx C
= I xx (
+ m ⋅ yC2 + zC2 , ) (8.15)
O
Iyy C
= Iyy (
+ m ⋅ xC2 + zC2 , ) (8.16)
O
I zz C
= I zz + m ⋅ (x 2
C + yC2 ), (8.17)
O C
I xy = I xy + m ⋅ xC ⋅ yC , (8.18)
O C
Iyz = Iyz + m ⋅ yC ⋅ zC , (8.19)
O C
I xz = I xz + m ⋅ xC ⋅ zC . (8.20)
247
8. Dinamica roboţilor de tip manipulator
IBO ⋅ u = λ ⋅ u . (8.21)
I xx − λ I xy I xz
Iyx Iyy − λ Iyz = 0. (8.22)
I I zy I zz − λ
zx
Din acest motiv, valorile proprii şi vectorii proprii ai matricei de
inerţie IBO corespund momentului principal de inerţie şi direcţiei axei
principale de inerţie.
8.1.2 Impulsul
Dar se ştie că
248
Bazele Roboticii
0
p = pC + r = pC + CR ⋅ Cr . (8.25)
ceea ce înseamnă că
0 dpC
H= ∫ dt
= m ⋅ vC ,
ρ dV (8.28)
V
dpC
unde vC = reprezintă viteza liniară a centrului de masă în raport
dt
cu sistemul de referinţă.
0 dp
dK= p × dt ρ dV . (8.29)
Momentul cinetic total al corpului B în raport cu originea O
este
dp
K0
= ∫ p × dt ρ dV . (8.30)
V
249
8. Dinamica roboţilor de tip manipulator
dpC dr dr dp
K 0 = pC × ∫ ρ dV + ∫ r × ρ dV + pC × ∫ ρ dV + ∫ r ρ dV × C .
dt V V
dt V
dt V dt
dpC dr
K 0 = pC × ∫ ρ dv + ∫ r × ρ dv +
dt V V
dt
. (8.32)
d dp
+ pC x ∫ r ρ dV + ∫ r ρ dV × C
dt dt
V V
Ultimii doi termeni ai relaţiei (8.32) vor dispărea atunci când
definiţia centrului de masă conduce la
∫ r ρ dV = 0. (8.33)
V
dpC
De asemenea, ştim că m = ∫ ρ dV şi vC =
dt
.
V
De aceea,
K 0 =m ⋅ ( pC × vC ) + K C , (8.34)
C dr
unde K
= ∫ r × dt ρ dV reprezintă momentul cinetic al mişcării în
V
jurul centrului de masă, în raport cu un sistem de referinţă fix A.
Dacă privim cu atenţie expresia
dr
dt
=d ( A
BR ⋅ B
)
r = ( ωB × r ) ,
atunci
KC = ∫ ( r × ( ωB ⋅ r ) ) ρ dV . (8.35)
V
250
Bazele Roboticii
251
8. Dinamica roboţilor de tip manipulator
ωB
zC
C
F
C
yC
C
M
z
xC Corp B
O p
M C
O
F
O y
dH O
FO = , (8.42)
dt
dK O
MO = , (8.43)
dt
unde:
• H O - impulsul unui corp rigid B în raport cu originea O a
sistemului de referinţă {A} şi exprimat în sistemul de axe
respectiv;
• K O - momentul cinetic corespunzător;
• F O , MO - forţele şi momentele rezultante ce acţionează
asupra corpului rigid B, în punctul O.
Ecuaţiile (8.42) şi (8.43) reprezintă ecuaţiile fundamentale ale
dinamicii.
252
Bazele Roboticii
dK O dK C dv C
= + m ⋅ pC × . (8.45)
dt dt dt
FO = FC , (8.46)
M O = M C + pC × F C , (8.47)
dK C dv C
M O = M C + pC × F C = + m ⋅ pC × . (8.48)
dt dt
dK C
MC = . (8.49)
dt
Rata modificării momentului cinetic al corpului B, în centrul
său de masă, este egală cu momentul rezultant ce acţionează în
acelaşi punct.
C
Înlocuind K= IBC ⋅ ωB în ecuaţia (8.49), obţinem:
M C
=
(
d IBC ⋅ ωB ). (8.50)
dt
C
M =
d ( C
IB ⋅ C ωB ). (8.51)
dt
253
8. Dinamica roboţilor de tip manipulator
(
Mx = I xx ⋅ ω x − ωy ⋅ ωz ⋅ Iyy − I zz , ) (8.54)
My = Iyy ⋅ ω y − ωz ⋅ ωx ⋅ ( I zz − I xx ) , (8.55)
(
Mz = I zz ⋅ ω z − ωx ⋅ ωy ⋅ I xx − Iyy . ) (8.56)
254
Bazele Roboticii
Cupla i+1
0 *
Fi
Cupla i
Element i 0
Mi*
Cupla i-1 Ci
0p
Element i-1 i,C i zi 0
Fi,i+1
0
mi .g yi
xi
0
Fi-1,i ai Oi
z i-1
0
yi-1 Mi,i+1
ai-1 0p
Oi-1 i-1,i
xi-1
Perpendiculara
comuna 0
Mi-1,i
z0 0p 0p
i-1 i
O0 y0
x0
0
• g - vectorul acceleraţie gravitaţională;
• mi - masa elementului cinematic i;
0
• Mi ,i +1 - momentul rezultant exercitat de elementul cinematic
i asupra elementului i+1, în originea Oi a sistemului de axe
{i}, 0Mi ,i +1 = − 0Mi +1,i ;
0
• Mi* - momentul de inerţie ce acţionează în centrul de masă al
elementului cinematic i;
255
8. Dinamica roboţilor de tip manipulator
0
• pi ,Ci - vectorul de poziţie al centrului de masă al elementului
cinematic i în raport cu originea Oi a sistemului de axe {i},
0
pi ,Ci = Oi C i ;
0
• pi −1,i - vectorul de poziţie al originii Oi a sistemului de axe
{i} în raport cu originea Oi −1 a sistemului de axe {i-1},
0
pi −1,i = Oi −1Oi ;
0
• v0,i - viteza liniară absolută a originii Oi ;
0
• v0,Ci - viteza liniară absolută a centrului de masă al
elementului cinematic i;
0
• a0,i - acceleraţia liniară absolută a originii Oi ;
0
• a0,Ci - acceleraţia liniară absolută a centrului de masă al
elementului cinematic i;
0
• ω0,i - viteza unghiulară absolută a originii Oi ;
0
• ε0,i - acceleraţia unghiulară absolută a originii Oi ;
0
• Fi −1,i - forţa rezultantă exercitată de elementul cinematic i-1
asupra elementului i, în originea Oi −1 a sistemului de axe {i-
1}, exprimată în sistemul de referinţă {0}, 0Fi −1,i = − 0Fi ,i −1 ;
0
• Mi −1,i - momentul rezultant exercitat de elementul cinematic
i-1 asupra elementului i, în originea Oi −1 a sistemului de axe
{i-1}, 0Mi −1,i = − 0Mi ,i −1 .
256
Bazele Roboticii
iω =
0,i
i
i −1 R ⋅ ( i −1
ω0,i −1 + i −1
ωi −1,i ) pt. cuple de rotatie
. (8.57)
iω i i −1
ω0,i −1
= 0, i i −1 R ⋅ pt. cuple de translatie
• Acceleraţia gravitaţională
i i
= g 0R ⋅ 0g (8.62)
257
8. Dinamica roboţilor de tip manipulator
i
Mi* =− i Ii ⋅ i ε0,i − i ω0,i × (I
i
i )
⋅ i ω0,i . (8.64)
i
Mi* + i Mi −1,i − i Mi ,i +1 − (p i
i −1, i )
+ i pi ,Ci × i Fi −1,i +
. (8.66)
+ i pi ,Ci × i Fi ,i +1 =
0
i
Mi −1,i = i
Mi ,i +1 + (p
i
i −1, i )
+ i pi ,Ci × i Fi −1,i −
. (8.68)
i i i
− pi ,Ci × Fi ,i +1 − Mi*
i −1 i −1
Mi=
−1, i iR ⋅ i Mi −1,i . (8.70)
258
Bazele Roboticii
8.3.1 Generalităţi
259
8. Dinamica roboţilor de tip manipulator
T
Q - vectorul forţelor generalizate, Q = Q1 , Q2 , , Qn ;
qi - coordonata generalizată i;
T
q - vectorul coordonatelor generalizate, q = q1 , q2 , , qn ;
N - vectorul forţelor Coriolis şi centrifugale,
T
N = N1 , N2 , , Nn ;
δ L - lucrul mecanic virtual.
Funcţia Lagrange este definită ca fiind diferenţa dinte energia
cinetică şi cea potenţială a sistemului mecanic:
L Ec − E p .
= (8.73)
d ∂L ∂L
− = Qi , i= 1, 2, , n. (8.74)
dt ∂qi ∂qi
260
Bazele Roboticii
1 T 1
Eci = ⋅ vCi ⋅ mi ⋅ vCi + ⋅ ωiT ⋅ Ii ⋅ ωi , (8.75)
2 2
unde: vCi este vectorul viteză liniară a centrului de masă al
elementului i în raport cu sistemul de referinţă; ωi este vectorul
viteză unghiulară a elementului i în raport cu sistemul de referinţă;
0
Ii este matricea de inerţie a elementului i în jurul centrului său de
masă, exprimată în raport cu sistemul de referinţă.
Dacă i Ii este matricea de inerţie a elementului i în raport cu
centrul său de masă, exprimată în sistemul de axe {i}, atunci se
poate scrie:
0 0
Ii = iR ⋅ i Ii ⋅ 0i RT . (8.76)
v J
unde, x C = Ci şi Ji = vi .
ωCi Jω i
i
261
8. Dinamica roboţilor de tip manipulator
adică,
v=Ci Jvi ⋅ q
. (8.83)
ω=
Ci Jω i ⋅ q
1 n
Ec
=
2 i =1
(
∑ vCiT ⋅ mi ⋅ vCi + ωiT ⋅ Ii ⋅ ωi . ) (8.84)
262
Bazele Roboticii
= QT ⋅ δ q .
δW (8.93)
263
8. Dinamica roboţilor de tip manipulator
T
τ = τ1 , τ 2 , , τ n (8.94)
δW = τ T ⋅ δ q + FeT ⋅ δ x . (8.96)
QT ⋅ δ q = τ T ⋅ δ q + FeT ⋅ J ⋅ δ q , (8.98)
de unde rezultă:
QT = τ T + FeT ⋅ J , (8.99)
respectiv
( )
T
Q=τ + FeT ⋅ J =τ + J T ⋅ FeT . (8.100)
264
Bazele Roboticii
1 n n n
=L ∑ ∑
2=i 1=j 1
Mij ⋅ qi ⋅ q j + ∑ mi ⋅ gT ⋅ pCi . (8.103)
=i 1
d ∂L n dq j n dM
ij
= ∑ Mij ⋅ + ∑
dt ⋅ q=
j
dt ∂q
=j 1=j 1
i dt . (8.105)
n dMij n
= ∑ Mij ⋅ q
j + ∑ ⋅ q j
=j 1=j 1 dt
d ∂L n n n ∂Mij
dt
= ∑ Mij ⋅ q j + ∑ ∑ ⋅ q j ⋅ qk . (8.107)
∂qi =j 1 =j 1=
k 1 ∂t
∂L 1 ∂ n n n ∂pCj
= ∑ ∑ M jk ⋅ q j ⋅ qk + ∑ m j ⋅ gT ⋅ . (8.108)
∂qi 2 ∂qi =j 1= =j 1 ∂qi
k 1
∂pCj
Se poate demonstra faptul că Jvj = , ceea ce înseamnă că
∂qi
putem scrie
265
8. Dinamica roboţilor de tip manipulator
∂L 1 ∂ n n n
= ∑ ∑ M jk ⋅ q j ⋅ qk + ∑ m j ⋅ gT ⋅ Jvj
i . (8.109)
∂qi 2 ∂qi =j 1= =j 1
k 1
unde
n n ∂Mij 1 ∂M jk
=Ni ∑ ∑ ∂q −
2 ∂qi
⋅ q j ⋅ qk , (8.111)
k 1
=j 1= k
n
− ∑ m j ⋅ gT ⋅ Jvj
Gi = i . (8.112)
j =1
n
Primul termen al ecuaţiei (8.110) ∑ Mij ⋅ qj este forţa de
j =1
inerţie, al doilea termen Ni reprezintă termenul neliniar, constituind
forţele Coriolis şi centrifugale, iar al treilea termen Gi este forţa
gravitaţională. Sub formă matriceală, ecuaţia (8.110) poate fi scrisă
astfel,
+ N + G ,
Q = M⋅q (8.113)
T T
unde N = N1 , N2 , Nn şi G = G1 , G2 , Gn .
266
Bazele Roboticii
0
pi −1,Ci =0i R ⋅ i pi ,Ci + 0
i −1 R ⋅ i −1
pi −1,i sau 0 0
pi −1,Ci =iR ⋅ (p
i
i ,Ci + i pi −1,i )
0 0 k −1
pk −1,Ci =
k −1 R ⋅ pk −1,k + 0 pk ,Ci , pentru k =
i − 1, i − 2, , 2, 1 ,
li ⋅ cos θ i li
unde i −1 sau i ;
pi −1,
= i li ⋅ sin θ i pi −=
1, i d
i ⋅ sin α i
di
di ⋅ cos α i
1 2 i
Jvi = Jvi , Jvi , , Jvi , 0, 0, , 0 ,
j =1
Q=τ + J T ⋅ FeT − Ff .
267
8. Dinamica roboţilor de tip manipulator
x2
y2 _
M _ O2
l2
m2
y1
θ2
y0 x1
l1 m1
A θ1
x0
Tabelul 8.1
Elem. ai αi di θi
1 l1 0 0 θ1
2 l2 0 0 θ2
268
Bazele Roboticii
cos θ2 − sin θ2 0
1
2 R = sin θ2 cos θ2 0 , (8.118)
0 0 1
269
8. Dinamica roboţilor de tip manipulator
cos θ2 sin θ2 0
2 1 −1 1 T
1 R = 2 R = 2 R = − sin θ2 cos θ2 0 , (8.121)
0 0 1
l2 ⋅ cos θ2
1
2=p l2 ⋅ sin θ2 . (8.125)
0
270
Bazele Roboticii
ceea ce înseamnă
l1
1
p0,1 = 0 , (8.127)
0
l2
2
p1,2 = 0 . (8.128)
0
l2
− 2
2
p2,C 2 = 0 . (8.130)
0
0 0 0
2
1 m ⋅ l
1 1
=I1 ⋅ 0 1 0 , (8.131)
12
0 0 1
271
8. Dinamica roboţilor de tip manipulator
0 0 0
m2 ⋅ l22
2
=I2 ⋅ 0 1 0 . (8.132)
12
0 0 1
cos θ1 sin θ1 0 0 0
. (8.135)
= − sin θ1 cos θ1 0 ⋅ 0 = 0
0 0 1 θ1 θ1
272
Bazele Roboticii
1
ε0,1 =01R ⋅ ( 0
)
ε0,0 + 0ω0,0 × 0ω0,1 + 0ε0,1 =01R ⋅ 0ε0,1 =
cos θ1 sin θ1 0 0 0
. (8.137)
− sin θ1 cos θ1 0 ⋅ 0 =
= 0
0 0 1 θ1 θ1
273
8. Dinamica roboţilor de tip manipulator
2 2
v0,2 = 1R ⋅ 1v0,1 + 2ω0,2 × 12R ⋅ 21 p =
cos θ2 sin θ2 0 0
=− sin θ2 cos θ2 0 ⋅ l1 ⋅ θ1 +
0 0 1 0
0 cos θ2 sin θ2 0 l2 ⋅ cos θ2
+ 0 × − sin θ2 cos θ2 0 ⋅ l2 ⋅ sin θ2 =
θ1 + θ2 0 0 1 0
l1 ⋅ sin θ2 ⋅ θ1 0 l2
( )
= l1 ⋅ cos θ2 ⋅ θ1 + l2 ⋅ θ1 + θ2 × 0 =
. (8.140)
0 θ1 0
l1 ⋅ sin θ2 ⋅ θ1
(
= l1 ⋅ cos θ2 ⋅ θ1 + l2 ⋅ θ1 + θ2
)
0
0a
0,0 (
+ 0ε0,0 × 10 p + 0ω0,0 × 0ω0,0 × 10 p +
)
1 1 0 0
( 0 0
)
a0,1= 0 R ⋅ +2 ⋅ ω0,0 × ω0,1 × 1 p + ε0,1 × 1 p + 0
=
(
+ 0ω0,1 × 0ω0,1 × 10 p )
1
0 0 0 0
(
= 0 R ⋅ ε0,1 × 1 p + ω0,1 × ω0,1 × 1 p =
0
) . (8.141.a)
0 l1 ⋅ cos θ1
0 × l1 ⋅ sin θ1 +
cos θ1 sin θ1 0
θ
1 0
= − sin θ cos θ 0 ⋅
1 1 0 0 l ⋅ cos θ
0 0 1 1 1
+ 0 × 0 × l1 ⋅ sin θ1
θ1 θ1 0
274
Bazele Roboticii
−l ⋅ sin θ1 ⋅ θ1
1
l ⋅ cos θ ⋅ θ +
1 1 1
cos θ1 sin θ1 0
0
1
a0,1 = − sin θ1 cos θ1 0 ⋅ =
−l1 ⋅ sin θ1 ⋅ θ1
0 0
0 1
+ 0 × l1 ⋅ cos θ1 ⋅ θ1
θ1 0
−l ⋅ sin θ1 ⋅ θ1
1
l ⋅ cos θ ⋅ θ +
1 1 1
cos θ1 sin θ1 0
0
= − sin θ1 cos θ1 0 ⋅ =
−l1 ⋅ cos θ1 ⋅ θ12
0 0 1
+ −l ⋅ sin θ ⋅ θ2
1 1 1
0
( 1 1 1 1 )
− l ⋅ sin θ ⋅ θ + l ⋅ cos θ ⋅ θ2 ⋅ cos θ +
1 1 1
( 2
)
+ l1 ⋅ cos θ1 ⋅ θ1 − l1 ⋅ sin θ1 ⋅ θ1 ⋅ sin θ1
=
( 2
)
l1 ⋅ sin θ1 ⋅ θ1 + l1 ⋅ cos θ1 ⋅ θ1 ⋅ sin θ1 +
=
( 2
)
+ l1 ⋅ cos θ1 ⋅ θ1 − l1 ⋅ sin θ1 ⋅ θ1 ⋅ cos θ1
0
.(8.141.b)
−l1 ⋅ θ12
= l1 ⋅ θ1
0
Pentru a doua cuplă cinematică, de rotaţie (i=2),
1a + 1ε × 1 p + 1ω × 1ω × 1 p +
0,1 0,1 2 0,1 0,1 2
( )
2 2 1
(
1 1
)1 1
a0,2= 1 R ⋅ +2 ⋅ ω0,1 × ω1,2 × 2 p + ε1,2 × 2 p +
. (8.142)
(
+ 1ω1,2 × 1ω1,2 × 21 p )
275
8. Dinamica roboţilor de tip manipulator
2
1R ⋅ 1ω0,1 ×
(
ω0,1 × 21 p =
1
)
cos θ2 sin θ2 0 0 0 l2 ⋅ cos θ2
= − sin θ2 cos θ2 0 ⋅ 0 × 0 × l2 ⋅ sin θ2 =, (8.145.a)
0 0 1 θ1 θ1 0
cos θ2 sin θ2 0 0 −l2 ⋅ sin θ2 ⋅ θ1
= − sin θ2 cos θ2 0 ⋅ 0 × l2 ⋅ cos θ2 ⋅ θ1
0 0
1 θ1 0
276
Bazele Roboticii
2
1R ⋅ 1ω0,1 ×
(ω
1
0,1 )
× 21 p =
cos θ2 sin θ2 0 −l2 ⋅ cos θ2 ⋅ θ12 −l2 ⋅ θ12
, (8.145.b)
= − sin θ2 cos θ2 0 ⋅ −l2 ⋅ sin θ2 ⋅ θ12 = 0
0 0 1 0 0
2 ⋅ 12R ⋅ 1ω0,1 ×
( ω1,2 × 21 p =
1
)
cos θ2 sin θ2 0 0 0 l2 ⋅ cos θ2
= 2 ⋅ − sin θ2 cos θ2 0 ⋅ 0 × 0 × l2 ⋅ sin θ2 =
0 0 1 θ1 θ2 0
cos θ2 sin θ2 0 0 −l2 ⋅ sin θ2 ⋅ θ2
,(8.146)
= 2 ⋅ − sin θ2 cos θ2 0 ⋅ 0 × l2 ⋅ cos θ2 ⋅ θ2 =
0 0 1 θ1 0
cos θ2 sin θ2 0 −l2 ⋅ cos θ2 ⋅ θ1 ⋅ θ2 −2 ⋅ l2 ⋅ θ1 ⋅ θ2
= 2 ⋅ − sin θ2 cos θ2 0 ⋅ −l2 ⋅ sin θ2 ⋅ θ1 ⋅ θ2 = 0
0 0 1 0
0
2
1R ⋅ ( 1
ε1,2 × 21 p = )
cos θ2 sin θ2 0 0 l2 ⋅ cos θ2
= − sin θ2 cos θ2 0 ⋅ 0 × l2 ⋅ sin θ2 = , (8.147)
0 0 1 θ2 0
cos θ2 sin θ2
0 −l2 ⋅ sin θ2 ⋅ θ2 0
= − sin θ2 cos θ2 0 ⋅ l2 ⋅ cos θ2 ⋅ θ2 = l2 ⋅ θ2
0 0 1 0 0
2
1R ⋅ 1ω1,2 ×
(ω 1
1,2 )
× 21 p =
cos θ2 sin θ2 0 0 0 l2 ⋅ cos θ2
, (8.148.a)
= − sin θ2 cos θ2 0 ⋅ 0 × 0 × l2 ⋅ sin θ2
0 0 1 θ2 θ2 0
277
8. Dinamica roboţilor de tip manipulator
2
1R ⋅ 1ω1,2 ×
(ω
1
1,2 )
× 21 p =
cos θ2 sin θ2 0 0 −l2 ⋅ sin θ2 ⋅ θ2
= − sin θ2 cos θ2 0 ⋅ 0 × l2 ⋅ cos θ2 ⋅ θ2 = . (8.148.b)
0 0 1 θ2 0
cos θ2 sin θ2 0 −l2 ⋅ cos θ2 ⋅ θ22 −l2 ⋅ θ22
= − sin θ2 cos θ2 0 ⋅ −l2 ⋅ sin θ2 ⋅ θ22 = 0
0 0 1 0 0
Adunând termenii (8.143 – 8.148) obţinem:
−l1 ⋅ cos θ2 ⋅ θ12 + l1 ⋅ sin θ2 ⋅ θ1 0
2
a0,2 = l1 ⋅ sin θ2 ⋅ θ1 + l1 ⋅ cos θ2 ⋅ θ1 + l2 ⋅ θ1 +
2
0 0
−l2 ⋅ θ12 −2 ⋅ l2 ⋅ θ1 ⋅ θ2 0 −l2 ⋅ θ22
+ l ⋅ θ + 0 =
+ 0 + 0
2 2
0 0 0 0
−l1 ⋅ cos θ2 ⋅ θ12 + l1 ⋅ sin θ2 ⋅ θ1 − l2 ⋅ θ12 −
−2 ⋅ l2 ⋅ θ1 ⋅ θ2 − l2 ⋅ θ22
2
= l1 ⋅ sin θ2 ⋅ θ1 + l1 ⋅ cos θ2 ⋅ θ1 + l2 ⋅ θ1 + l2 ⋅ θ2 =
0
−l ⋅ cos θ ⋅ θ2 + l ⋅ sin θ ⋅ θ − l ⋅ θ + θ 2
1 2 1 1 2 1 (
2 1 ) 2
2
(
= l1 ⋅ sin θ2 ⋅ θ1 + l1 ⋅ cos θ2 ⋅ θ1 + l2 ⋅ θ1 + θ2 ) . (8.149)
0
278
Bazele Roboticii
1
a0,C1 = 1
a0,1 + 1ε0,1 × 1 p1,C1 + 1ω0,1 × ( 1
)
ω0,1 × 1 p1,C1 =
l1 l1
−l1 ⋅ θ12 0 − 2 0 0 − 2
= l1 ⋅ θ1 + 0 × 0 + 0 × 0 × 0 =
0 θ 0 θ θ 0
1 1 1
l1 2
l1 2 − 2 ⋅ θ1
−l1 ⋅ θ12 0 2 ⋅ θ1
l
l1
= l1 ⋅ θ1 + − ⋅ θ1 + 0 = 1 ⋅ θ1
2 2
0
0
0 0
, (8.150)
2
a0,C 2 = 2
a0,2 + 2ε0,2 × 2 p2,C 2 + 2ω0,2 × ( 2
)
ω0,2 × 2 p2,C 2 =
279
8. Dinamica roboţilor de tip manipulator
2
−l ⋅ cos θ ⋅ θ2 + l ⋅ sin θ ⋅ θ − l ⋅ θ + θ
1 2 1 1 2 1 2 (1 2 )
2
(
a0,C2 = l1 ⋅ sin θ2 ⋅ θ12 + l1 ⋅ cos θ2 ⋅ θ1 + l2 ⋅ θ1 + θ2 ) +
0
l 2
0
2
(
2 ⋅ θ1 + θ2 )
l2
( )
+ − ⋅ θ1 + θ2 +
0 =
2
0
0
l 2
2
−l1 ⋅ cos θ2 ⋅ θ1 + l1 ⋅ sin θ2 (
⋅ θ1 − 2 ⋅ θ1 + θ2
2
)
l
= l1 ⋅ sin θ2 ⋅ θ12 + l1 ⋅ cos θ2
2
(
⋅ θ1 + 2 ⋅ θ1 + θ2 )
0
. (8.151.b)
0
0
g = −g , (8.152)
0
280
Bazele Roboticii
2
M2,3 = 0 . (8.156)
0 0 0 0
1 2
= − m2 ⋅ l2 ⋅ 0 1 0 ⋅ 0 −
12
0 0 1 θ1 + θ2
0 0 0 0 0 , (8.158)
1 2
− 0 × m2 ⋅ l2 0 1 0 ⋅ 0 =
12
θ1 + θ2 0 0 1 θ1 + θ2
0
1 2
= − m2 ⋅ l2 ⋅ 0
12
θ1 + θ2
281
8. Dinamica roboţilor de tip manipulator
−g ⋅ s12
2 2 2 2
F1,2 = F2,3 − m2 ⋅ g + m2 ⋅ a0,C2 =−m2 ⋅ −g ⋅ c12 +
0
2 l2 ( 2
)
−l1 ⋅ c2 ⋅ θ1 + l1 ⋅ s2 ⋅ θ1 − 2 ⋅ θ1 + θ2
l
(
2
)
+ m2 ⋅ l1 ⋅ s2 ⋅ θ12 + l1 ⋅ c2 ⋅ θ1 + 2 ⋅ θ1 + θ2 =
0
2 l2( 2
)
−l1 ⋅ c2 ⋅ θ1 + l1 ⋅ s2 ⋅ θ1 − 2 ⋅ θ1 + θ2 + g ⋅ s12
l
(2
)
= m2 ⋅ l1 ⋅ s2 ⋅ θ12 + l1 ⋅ c2 ⋅ θ1 + 2 ⋅ θ1 + θ2 + g ⋅ c12
0 , (8.159)
1
F1,2 =21R ⋅ 2F1,2 =
2 l2 ( 2
)
−l1 ⋅ c2 ⋅ θ1 + l1 ⋅ s2 ⋅ θ1 − 2 ⋅ θ1 + θ2 +
+ g ⋅ s12
c2 −s2 0
l ⋅ s ⋅ θ2 + l ⋅ c ⋅ θ + l2 ⋅ θ + θ +
( )
=m2 ⋅ s2 c2 0 ⋅ 1 2 1 1 2 1
2
1 2 =
+ g ⋅ c
0
0 1 12
0
2 l2 ( 2 )
l2 ( )
−l1 ⋅ θ1 − 2 ⋅ c2 ⋅ θ1 + θ2 + g ⋅ s1 − 2 ⋅ s2 ⋅ θ1 + θ2
l 2 l
2
( ) 2
(
= m2 ⋅ l1 ⋅ θ1 − 2 ⋅ s2 ⋅ θ1 + θ2 + g ⋅ c1 + 2 ⋅ c2 ⋅ θ1 + θ2
) , (8.160)
0
282
Bazele Roboticii
2
M1,2 = 2
M2,3 + ( 2
)
p1,2 + 2 p2,C 2 × 2F1,2 − 2 p2,C 2 × 2F2,3 − 2M2* =
2 l2 ( 2
)
−l1 ⋅ θ1 − 2 ⋅ c2 ⋅ θ1 + θ2 + g ⋅ s1 −
l2
−
2 2 ⋅ s ⋅ θ (
+ θ
1 2 )
l2
2 l 2
( )
l1 ⋅ θ1 − 2 ⋅ s2 ⋅ θ1 + θ2 + g ⋅ c1 +
2
= 0 × m2 ⋅ +
l2
0 + ⋅ c2 ⋅ θ1 + θ2( )
2
0
0
1
+ m2 ⋅ l22 ⋅ 0 =
12
θ1 + θ2
0
= m2 ⋅ 0 +
l2 2 + l ⋅ c ⋅ θ + l2 ⋅ θ + θ + g ⋅ c
⋅ l
2 1 2 1 ⋅ s ⋅ θ 1 2 1
2
1 2 ( ) 12
0
1
2
+ m2 ⋅ l2 ⋅ 0 =
12
θ1 + θ2
0
= m2 ⋅ 0
1 ⋅ l 2 + 1 ⋅ l ⋅ l ⋅ c ⋅ θ + 1 ⋅ l 2 ⋅ θ + 1 ⋅ l ⋅ l ⋅ s ⋅ θ2 +
3 2 2 1 2 2 1 3 2 2 2 1 2 2 1
+ 1 ⋅ l ⋅ g ⋅ c ,(8.161)
2 2 12
283
8. Dinamica roboţilor de tip manipulator
c2 −s2 0
2 1 2
M1,2 =2 R ⋅ M2,3 s2
= c2 0 ⋅ 2M2,3 =
0 0 1
. (8.162)
0
= m2 ⋅ 0
1 ⋅ l 2 + 1 ⋅ l ⋅ l ⋅ c ⋅ θ + 1 ⋅ l 2 ⋅ θ +
3 2 2 1 2 2 1 3 2 2
+ 1 ⋅ l ⋅ l ⋅ s ⋅ θ2 + 1 ⋅ l ⋅ g ⋅ c
2 1 2 2 1 2 2 12
284
Bazele Roboticii
1
M1* =
− 1I1 ⋅ 1ε0,1 − 1ω0,1 × ( 1
I1 ⋅ 1ω0,1 = )
0 0 0 0
1
=− m1 ⋅ l12 ⋅ 0 1 0 ⋅ 0 − , (8.165)
12
0 0 1 θ1
0 0 0 0 0 0
1 1
− 0 × m1 ⋅ l12 0 1 0 ⋅ 0 = − m1 ⋅ l12 ⋅ 0
12 12
θ1 0 0 1 θ1 θ1
1 1
F0,1= F1,2 − m1 ⋅ 1g − 1F1*= 1
F1,2 − m1 ⋅ 1g − m2 ⋅ 2a0,C1=
2 l2 ( 2 )
−l1 ⋅ c2 ⋅ θ1 + l1 ⋅ s2 ⋅ θ1 − 2 ⋅ θ1 + θ2 + g ⋅ s12
l
2
( )
= m2 ⋅ l1 ⋅ s2 ⋅ θ1 + l1 ⋅ c2 ⋅ θ1 + 2 ⋅ θ1 + θ2 + g ⋅ c12 −
2
0
l1 2
− ⋅ θ1
−g ⋅ s1 2
l
−m1 ⋅ −g ⋅ c1 + m1 ⋅ 1 ⋅ θ1 =
2
0
0
m1 m 2
− (
+ m2 ⋅ l1 ⋅ θ12 − 2 ⋅ l2 ⋅ c2 ⋅ θ1 + θ2 + )
2 2
m2
+ ( m1 + m2 ) ⋅ g ⋅ s1 −
2
(
⋅ l2 ⋅ s2 ⋅ θ1 + θ2 )
m1 + m ⋅ l ⋅ θ − m2 ⋅ l ⋅ s ⋅ θ + θ 2 + ,(8.166)
2 2 1 1
2
2 2 1 ( 2 )
=
m2
+ ( m1 + m2 ) ⋅ g ⋅ c1 + 2 ⋅ l2 ⋅ c2 ⋅ θ1 + θ2
(
)
0
285
8. Dinamica roboţilor de tip manipulator
c1−s1 0
0
F0,1 =10R
⋅ F0,1 1
= s1
c1 0 ⋅
00 1
m1 m 2
− (
+ m2 ⋅ l1 ⋅ θ12 − 2 ⋅ l2 ⋅ c2 ⋅ θ1 + θ2 + )
2 2
m2
( 1
+ m + m 2) ⋅ g ⋅ s1 −
2
⋅ l2 ⋅ s2 (
⋅
θ1 + )
θ2
m m 2 ,(8.167)
( )
1 + m2 ⋅ l1 ⋅ θ1 − 2 ⋅ l2 ⋅ s2 ⋅ θ1 + θ2 +
⋅ 2 2
m2
+ ( m1 + m2 ) ⋅ g ⋅ c1 +
2
( )
⋅ l2 ⋅ c2 ⋅ θ1 + θ2
0
1
M0,1 = 1
M1,2 + ( 1
)
p0,1 + 1 p1,C1 × 1F0,1 − 1 p1,C1 × 1F1,2 − 1M1* =
l1 l1
l − − 2
1 2
= 1
M1,2 + 0 + 0 × 1F0,1 − 0 × 1F1,2 + (8.168.a)
0
0
0
0
1
+ ⋅ m1 ⋅ l12 ⋅ 0
12
θ1
286
Bazele Roboticii
0
1
M0,1 = m2 ⋅ 0 +
1 2 1 1
⋅ l2 + ⋅ l1 ⋅ l2 ⋅ c2 ⋅ θ1 + ⋅ l22 ⋅ θ2 +
3 2 3
1 2 1
+ ⋅ l1 ⋅ l2 ⋅ s2 ⋅ θ1 + ⋅ l2 ⋅ g ⋅ c12
2 2
0
+ 0 +
m1 l12 m2 + θ 2 +
2 + m 2 ⋅ ⋅ θ 1 − ⋅ l ⋅
1 2l ( ⋅ s2 ⋅ θ)1 2
2 4
+ ( m + m ) ⋅ l1 ⋅ g ⋅ c + m2 ⋅ l ⋅ l ⋅ c ⋅ θ + θ
1 2
2
1
4
1 2 ( 2 1) 2
0
l1
+ m2 ⋅ ⋅ 0 +
2
l2 2
2
( )
l1 ⋅ θ1 − ⋅ s2 ⋅ θ1 + θ2 + g ⋅ c1 + , (8.168.b)
l
2
2(
+ 2 ⋅ c ⋅ θ + θ
1 ) 2
0
+ 0
1
2
⋅ m1 ⋅ l1 ⋅ θ1
12
287
8. Dinamica roboţilor de tip manipulator
0
1
M0,1 = 0 ,(8.169)
m2 1 l22 + l1l2c2 + l12 + 1 m1l12 θ1 + 1 2 1
m2 l2 + l1l2c2 θ2 −
3 3
3 2
1
2
( ) 1
− m2 l1l2 s2 2θ1θ2 + θ22 + m1g l1c1
2
1
+ m2 g l1c1 + m2 g l2c12
2
c1 − s1 0
0 0 1
M0,1 =1 R ⋅ M0,1 = s1 c1 0 ⋅ 1M0,1 =
0 0 1
. (8.170)
0
= 0
m2 1 l22 + l1l2c2 + l12 + 1 m1l12 θ1 +
m
2 2
1
2
l +
1
l l c
θ
1 2 2 2 −
3 3
3 2
1
2
( 2
)
1
− m2 l1l2 s2 2θ1θ2 + θ2 + m1g l1c1
2
1
+ m2 g l1c1 + m2 g l2c12
2
288
Bazele Roboticii
1 1 1 1
τ1 m2 l22 + l1l2c2 + l12 + m1l12 θ1 + m2 l22 + l1l2c2 θ2 −
=
3 3 3 2 ,(8.172)
1
2
( 2 1
) 1
− m2 l1l2 s2 2θ1θ2 + θ2 + m1g l1c1 + m2 g l1c1 + m2 g l2c12
2 2
adică:
1 2 2 1 2 1 1
m2 l2 + l1l2c2 + l1 + m1l1 m2 l22 + l1l2c2
τ1 3 3 3 2 θ1
⋅ +
τ 2 1 1 1 θ2
m2 l22 + l1l2c2 2
⋅ m2 ⋅ l2
3 2 3 .(8.175)
1
(
2
− 2 m2 l1l2 s2 2θ1θ2 + θ2 ) 1 1
2 m1g l1c1 + m2 g l1c1 + 2 m2 g l2c12
+ +
1 1
m2 l1l2 s2θ12 m2 l2 g c12
2 2
289
8. Dinamica roboţilor de tip manipulator
N1
1
( 2
− 2 m2 l1l2 s2 2θ1θ2 + θ2 )
, q ) =
N ( q= , (8.178)
N2 1
m2 l1l2 s2θ12
2
este o matrice neliniară a vitezelor;
1 1
G1 2 m1g l1c1 + m2 g l1c1 + 2 m2 g l2c12
G =
= , (8.179)
G2 1
m2 l2 g c12
2
reprezintă matricea forţelor de gravitaţie.
l1
A
1 z1
l2
θ1 B y1
m1
x1
0 l 2
z0
θ2 m2 C
y2 x2
m3 3
x0 y0 z2 l3
d3
y3 x3
z3
290
Bazele Roboticii
Tabelul 8.2
Elem. ai αi di θi
1 l1 0 l θ1
2 l2 π 0 θ2
3 0 0 d3 0
cos θ1 − sin θ1 0
0
1 R = sin θ1 cos θ1 0 (8.180)
0 0 1
cos θ2 sin θ2 0
1
=2R sin θ2 − cos θ2 0 (8.181)
0 0 −1
1 0 0
2
3 R = 0 1 0 (8.182)
0 0 1
cos (θ1 + θ2 ) sin (θ1 + θ2 ) 0
0
2R = 0
1R ⋅ 1
2R = sin (θ1 + θ2 ) − cos (θ1 + θ2 ) 0 (8.183)
0 0 −1
cos θ1 sin θ1 0
0 0 -1 0 T
R
1= 1 R= 1 R= − sin θ1 cos θ1 0 (8.185)
0 0 1
291
8. Dinamica roboţilor de tip manipulator
cos θ2 sin θ2 0
2 1 -1 1 T
1R
= 2R
= 2R
= sin θ2 − cos θ2 0 (8.186)
0 0 −1
1 0 0
3 2 -1 2 T
2R
= 3R
= 3R
= 0 1= 0 I (8.187)
0 0 1
l2 ⋅ cos θ2
1
2=p l2 ⋅ sin θ2, (8.190)
0
0
2
3p = 0 . (8.191)
d3
292
Bazele Roboticii
cos θ1 sin θ1 0 0 0
(8.193)
− sin θ1 cos θ1 0 ⋅ 0 =
= 0
0 0 1 θ1 θ1
cos θ2 sin θ2 0 0 0
2
ω0,2 =12R ⋅ (ω
1
0,1 + 1θ2 ) = sin θ2
− cos θ2 0 ⋅ 0 + 0 =
0 0 −1 θ1 θ2
.(8.194)
0
= 0
(
− θ + θ
1 2 )
Pentru a treia cuplă cinematică C, de translaţie :
1 0 0 0 0
3 3
ω0,3 =
2R ⋅
2
ω0,2 =0 1 0 ⋅ 0 = 0 .(8.195)
0 0 1 − θ1 + θ2
( ) (
− θ1 + θ2 )
293
8. Dinamica roboţilor de tip manipulator
294
Bazele Roboticii
1
v0,1 = 01R ⋅ 0v0,0 + 1ω0,1 × ( 1
0R ⋅ 0
1p )=
cos θ1 sin θ1 0 0
= − sin θ1 cos θ1 0 ⋅ 0 +
0 0 1 0
0 cos θ1 sin θ1 0 l1 ⋅ cos θ1
(8.199)
+ 0 × − sin θ1 cos θ1 0 ⋅ l1 ⋅ sin θ1 =
θ1 0 0 1 l
0
= l1 ⋅ θ1 .
0
Pentru cupla cinematică B, de rotaţie, viteza liniară se
determină cu relaţia:
2
v0,2 = 12R ⋅ 1v0,1 + 2ω0,2 × ( 2
1R )
⋅ 12 p =
cos θ2 sin θ2 0 0 0
= sin θ2 − cos θ2 0 ⋅ l1 ⋅ θ1 + 0 ×
0 0 (
−1 0 − θ1 + θ2 )
cos θ2 sin θ2 0 l1 ⋅ cos θ2
× sin θ2 − cos θ2 0 ⋅ l1 ⋅ sin θ2 =
0 0 −1 0
l1 ⋅ θ1 ⋅ sin θ2 0 l2
= −l1 ⋅ θ1 ⋅ cos θ2 + 0 × 0 =
0 ( )
− θ1 + θ2 0
l1 ⋅ θ1 ⋅ sin θ2 0
(
= −l1 ⋅ θ1 ⋅ cos θ2 + −l2 ⋅ θ1 + θ2 = )
0 0
l1 ⋅ θ1 ⋅ sin θ2
(
= −l1 ⋅ θ1 ⋅ cos θ2 − l2 ⋅ θ1 + θ2 . ) (8.200)
0
295
8. Dinamica roboţilor de tip manipulator
0 1
a0,1 =
0a
0 0 0
0,0 + ε0,0 × 1 p + ω0,0 ×
0
(
ω0,0 × 10 p + )
0R ⋅ =
0 0 0
( 0 0
) 0
+2 ⋅ ω0,0 × θ1 × 1 p + θ1 × 1 p + θ1 × θ1
0
(
× 10 p
)
(8.202.a)
= ⋅ 0θ
1
0R 1 1 1 (
× 0 p + 0θ × 0θ × 0 p =
1 1 )
cos θ1 sin θ1 0 0 l1 ⋅ cos θ1 0 0 l1 ⋅ cos θ1
sin θ1 cos θ1 0 ⋅ 0 × l1 ⋅ sin θ1 + 0 × 0 × l1 ⋅ sin θ1 =
=−
0 0 1 θ1 l θ1 θ1
l
296
Bazele Roboticii
1 ( 1 1 1 1 ) 1 1 1 1 (
−l ⋅ θ ⋅ s + θ2 ⋅ c ⋅ c + l ⋅ θ ⋅ c − θ2 ⋅ s ⋅ s
1 1 1
) 2
−l1 ⋅ θ1
( ) ( )
= l1 θ1 ⋅ s1 + θ12 ⋅ c1 ⋅ s1 + l1 ⋅ θ1 ⋅ c1 − θ12 ⋅ s1 ⋅ c1 = l1 ⋅ θ1 .
0
0 (8.202)
2
a0,2 2
0 a + 1ε × 1 p + 1ω × 1ω × 1 p +
⋅
0,1 0,1 2 0,1 0,1 2 (
. (8.203) )
= 1R
1 1
(
1 1 1 1
)1 1
+2 ⋅ ω0,1 × θ2 × 2 p + θ2 × 2 p + θ2 × θ2 × 2 p ( )
Deoarece calculul este destul de laborios, acesta se va face pe
etape, după cum urmează.
297
8. Dinamica roboţilor de tip manipulator
0 0 −1 θ1 0
cos θ2 sin θ2
0 −l2 ⋅ θ1 ⋅ sin θ2
= sin θ2 − cos θ2 0 ⋅ l2 ⋅ θ1 ⋅ cos=θ2 (8.205)
0 0 −1 0
0
= −l2 ⋅ θ1
0
c2 s2 0 0 0 l2 ⋅ c2
2
1R ⋅
0,1 (
1ω × 0ω × 1 p = s
0,1 2 2 ) −c2 0 ⋅ 0 × 0 × l2 ⋅ s2 =
0 0 −1 θ1 θ1 0
0 0 l2 ⋅ c2
2
1R ⋅
0,1 (2 2 1 )
2 ⋅ 1ω × 1θ × 1 p =2 ⋅ 2R ⋅ 0 × 0 × l ⋅ s =
2 2
θ θ 0
1 2
(8.207.a)
c2 s2 0 0 −l2 ⋅ θ1 ⋅ s2
= 2 ⋅ s2 −c2 0 ⋅ 0 × l2 ⋅ θ1 ⋅ c2
0 0 −1 θ1 0
298
Bazele Roboticii
c2 s2 0 0 l2 ⋅ c2
2
1R ⋅ ( 1
θ2 × 1
2p )
= s2
−c2 0 ⋅ 0 × l2 ⋅ s2 =
0 0 −1 θ2 0
(8.208)
c2 s2 0 −l2 ⋅ θ2 ⋅ s2 0
= s2 −c2 0 ⋅ l2 ⋅ θ2 ⋅ c2 = −l2 ⋅ θ2
0 0 −1 0 0
c2 s2 0 0 0 l2 ⋅ c2
2
1R ⋅
1
2 (
θ × θ × p = s
1
2
1
2 2 ) −c2 0 ⋅ 0 × 0 × l2 ⋅ s2 =
0 0 −1 θ2 θ2 0
299
8. Dinamica roboţilor de tip manipulator
1 (
l −θ 2 ⋅c + θ ⋅ s
1 2 1 2)
2
0 −l2 ⋅ θ2 −2l2 ⋅ θ1 ⋅ θ2
2
a0,2
( )
= −l1 θ 21⋅s2 + θ1 ⋅ c2 + −l2 ⋅ θ1 + 0 +
0 +
0 0 0
0
.(8.210)
0 −l2 ⋅ θ 2 12 ( 1 2 1 2 2 1)
l ⋅ −θ 2 ⋅c + θ ⋅ s − l θ + θ 2
2 ( )
( )
+ −l2 ⋅ θ2 + 0 = −l1 ⋅ θ 21⋅s2 + θ1 ⋅ c2 − l2 ⋅ θ1 + θ2
( )
0 0
0
3 3
a0,3 =
2a
2 2 2
0,2 + ε0,2 × 3 p + ω0,2 ×
2
ω0,2 × 32 p ( ) + =
2R ⋅
2 2 1
+2 ⋅ ω0,2 × 3 p + 3 p
0 0
2a + 0 ×0+
0,2
1 (
− θ + θ d
2 3 )
1 0 0 0 0 0
= 0 1 0 ⋅ + 0 × 0 × 0 + =
( )
0 0 1 − θ1 + θ2 − θ1 + θ2 d3
( )
0 0 0
+2 0 ×0+0
1 2 3 (
− θ + θ d d
3 )
0 0 0 0
= 0 1 0 ⋅ 2a0,2 + 0 =
0 0 1 d3
300
Bazele Roboticii
2 ( ) 2
1 0 0 l1 ⋅ −θ1 ⋅ c2 + θ1 ⋅ s2 − l2 ⋅ θ1 + θ2 0 ( )
3
= ( )
a0,3 0 1 0 ⋅ −l1 ⋅ θ12 ⋅ s2 + θ1 ⋅ c2 − l2 ⋅ θ1 + θ2 +=
(
0
)
0 0 1 d3
0
2 (
1 0 0 l1 ⋅ −θ1 ⋅ c2 + θ1 ⋅ s2 − l2 ⋅ θ1 + θ2
) 2
( )
(
= 0 1 0 ⋅ −l1 ⋅ θ12 ⋅ s2 + θ1 ⋅ c2 − l2 ⋅ θ1 + θ2 =
)
( ) (8.211)
0 0 1
d3
1 1 (
l ⋅ −θ2 ⋅ c + θ ⋅ s − l ⋅ θ + θ 2
2 1 2 2 1 )
2 ( )
( )
= −l1 ⋅ θ12 ⋅ s2 + θ1 ⋅ c2 − l2 ⋅ θ1 + θ2 .
( )
d 3
301
8. Dinamica roboţilor de tip manipulator
1 0 0 0 0
3
p2,3 = 23R ⋅ 32 p = 0 1 0 ⋅ 0 = 0 . (8.216)
0 0 1 d3 d3
l1
− 2
1
p1,C1 = 0 , (8.217)
0
302
Bazele Roboticii
l2
− 2
2
p2,C2 = 0 ,
(8.218)
0
0
3
p3,c3 = 0 . (8.219)
l
− 3
2
1
a0,C1 = 0
a0,1 + 1ε0,1 × 1 p1,C1 + 1ω0,1 × (ω
1
0,1 )
× 1 p1,C1 =
l1 l1
−l1 ⋅ θ12 0 − 2 0 0 − 2
= l1 ⋅ θ1 + 0 × 0 + 0 × 0 × 0 =
0 θ 0 θ θ 0
1 1 1
l1 2
l1 2 − 2 ⋅ θ1
−l1 ⋅ θ12 0 2 ⋅ θ1
l
l1
= l1 ⋅ θ1 + − ⋅ θ1 + 0 = 1 ⋅ θ1
2 2
0
0
0 0
(8.220)
303
8. Dinamica roboţilor de tip manipulator
2
a0,C2 =2a0,2 + 2ε0,2 × 2 p2,C2 + 2ω0,2 × ( 2
ω0,2 × 2 p2,C2 = )
l2 l2
0 − 2 0 0 − 2
× 0 =
2
= a0,2 + 0 × 0 + 0 × 0
(
− θ + θ ) 0 − θ + θ ( ) − θ + θ ( ) 0
1 2 1 2 1 2
1 1 (
l ⋅ −θ2 ⋅ c + θ ⋅ s − l ⋅ θ + θ
2 1 2 1 1 ) 2 ( )
2
0
l
( )
= − l1 ⋅ θ12 ⋅ s2 + θ1 ⋅ c2 − l2 ⋅ θ1 + θ2
( ) (
+ 2 ⋅ θ1 + θ2
2
) +
0
0
l2
l2
2 ⋅ θ1 + θ2(
2
)
( 2 2
l1 ⋅ −θ1 ⋅ c2 + θ1 ⋅ s2 − 2 ⋅ θ1 + θ2 ) ( )
l
+
0 1 (
= −l ⋅ θ2 ⋅ s + θ ⋅ c − 2 ⋅ θ + θ
1 2 1 2
2
1 2
) ( )
0
0
(8.221)
3
a3,C3 = 3
a0,3 + 3ε0,3 × 3 p3,C3 + 3ω0,3 × ( 3
ω0,3 × 3 p3,C3 = )
0 0 0 0 0
(8.222)
3
= a0,3 + 0 × 0 + × 0 0 × 0 =
l
1 (
− θ + θ
2 )
− l3 − θ1 + θ2 (
− θ1 + θ2 ) ( ) − 3
2 2
1 1 2 (
l ⋅ −θ2 ⋅ c + θ ⋅ s − l ⋅ θ + θ 2
1 2 2 1 2 ) ( )
(
= 3a0,3 = − l1 θ12 ⋅ s2 + θ1 ⋅ c2 − l2 ⋅ θ1 + θ2
)
( )
0
304
Bazele Roboticii
0
0
g = 0 , (8.223)
−g
0
1
g = 0 , (8.224)
−g
0
2
g = 0 , (8.225)
g
0
3
g = 0 . (8.226)
g
1 ( 1 2 1 2 2 )
l ⋅ −θ2 ⋅ c + θ ⋅ s − l ⋅ θ + θ 2
1 ( 2 )
3 *
F3 =-m3 ⋅ 3a0,C3 ( ) ( )
=−m3 ⋅ −l1 ⋅ θ12 ⋅ s2 + θ1 ⋅ c2 − l2 ⋅ θ1 + θ2 ,(8.227)
d 3
3
M3* =
− 3I3 ⋅ 3ε0,3 − 3ω0,3 × ( 3
)
I3 ⋅ 3ω0,3 =
1 0 0 0
1
= − ⋅ m3 ⋅ l32 ⋅ 0 1 0 ⋅ 0 − , (8.228)
12
(
0 0 0 − θ1 + θ2
)
0 1 0 0 0 0
1 × 0 1 0 ⋅ =
− ⋅ m3 ⋅ l32 ⋅ 0 0 0
12
(1 )
− θ + θ 0 0 0 − θ + θ
2 1 2 ( ) 0
305
8. Dinamica roboţilor de tip manipulator
3 3
F2,3 =F3,4 − m3 ⋅ 3 g − 3F3* =
−m3 ⋅ 3 g + m3 ⋅ 3a0,C3 =
0 1 (
l ⋅ −θ2 ⋅ c + θ ⋅ s − l ⋅ θ + θ 2
1 2 1 2 2 1 2 ) ( )
=−m3 ⋅ 0 + m3
( )
⋅ −l1 ⋅ θ12 ⋅ s2 + θ1 ⋅ c2 − l2 ⋅ θ1 + θ2 =, (8.229)
( )
g
d3
1 (
l ⋅ −θ2 ⋅ c + θ ⋅ s − l ⋅ θ + θ 2
1 2 1 2 2 1 ) 2 ( )
( )
= m3 ⋅ −l1 ⋅ θ12 ⋅ s2 + θ1 ⋅ c2 − l2 ⋅ θ1 + θ2
( )
d3 − g
2 2 2
F2,3 =3 R ⋅ F2,3 =
1 0 0 1 1(
l ⋅ −θ2 ⋅ c + θ ⋅ s − l ⋅ θ + θ 2
2 1 2 2 1 2 ) ( )
= 0 1 0 ⋅ m3
(
⋅ −l1 ⋅ θ12 ⋅ s2 + θ1 ⋅ c2 − l2 ⋅ θ1 =
+ θ2
) ( ) (8.230)
0 0 1 − g
d 3
1 1(
l ⋅ −θ2 ⋅ c + θ ⋅ s − l ⋅ θ + θ 2
2 1 2 2 1 ) 2 ( )
( )
= m3 ⋅ −l1 ⋅ θ12 ⋅ s2 + θ1 ⋅ c2 − l2 ⋅ θ1 + θ2
( )
− g
d 3
3
M2,3 = 3
M3,4 + ( 3
)
p2,3 + 3 p3,C3 × 3F2,3 − 3 p3,C3 × 3F3,4 − 3M3* =
0
0 0
2 (
l1 ⋅ −θ1 ⋅ c2 + θ1 ⋅ s2 − l2 ⋅ θ1 + θ2
2 ) ( )
= 0 + 0 + 0 × m3
(
⋅ −l1 ⋅ θ12 ⋅ s2 + θ1 ⋅ c2 − l2 ⋅ θ1 + θ2 −
) ( ) ,
0 d3 l3 d3 − g
− 2
0 0 0
0
1 ( 1 2 1 2 2 1 )
l ⋅ −θ2 ⋅ c + θ ⋅ s − l ⋅ θ + θ 2
2 ( )
− 0 × 0=
− 0
0 × m3
( )
⋅ −l1 ⋅ θ12 ⋅ s2 + θ1 ⋅ c2 − l2 ⋅ θ1 + θ2
( )
− l3 0 0 d − l3 d3 − g
2 2
3
306
Bazele Roboticii
1 2 ( 1 2 2 )
l ⋅ θ2 ⋅ s + θ ⋅ c + l ⋅ θ + θ
1 1 2 ( )
l
3
( )
M2,3= m3 ⋅ d3 − 3 ⋅ l1 ⋅ −θ12 ⋅ c2 + θ1 ⋅ s2 − l2 ⋅ θ1 + θ2
2
( )
2
, (8.231)
0
1 0 0
2 2 3
M2,3 =3 R ⋅ M2,3 = 0 1 0 ⋅ 3M2,3 =
0 0 1
1 (
2 1 2 2 1)
l ⋅ θ2 ⋅ s + θ ⋅ c + l ⋅ θ + θ
1 2 ( ) . (8.232)
l
( )
= m3 ⋅ d3 − 3 ⋅ l1 ⋅ −θ12 ⋅ c2 + θ1 ⋅ s2 − l2 ⋅ θ1 + θ2
2
(
2
)
0
Forţa actuatorului cuplei C, de translaţie, va fi:
τ 3 =2 z2T ⋅ 2F2,3 =
1 1 (2 1 2 2 1 )
l ⋅ −θ2 ⋅ c + θ ⋅ s − l ⋅ θ + θ 2
2 ( )
( )
= 0 0 1 ⋅ m3 ⋅ −l1 ⋅ θ12 ⋅ s2 + θ1 ⋅ c2 − l2 ⋅ θ1 +=
(
θ2 . (8.233)
)
− g
d 3
(
= m3 ⋅ d3 − g )
Pentru elementul cinematic 2,
l2
2
(
)
l1 ⋅ −θ1 ⋅ c2 + θ1 ⋅ s2 − 2 ⋅ θ1 + θ2
2 ( )
l
2 *
F2 =−m2 ⋅ 2a0,C2 ( ) (
=− m2 ⋅ −l1 ⋅ θ12 ⋅ s2 + θ1 ⋅ c2 − 2 ⋅ θ1 + θ2 , (8.234)
2
)
0
307
8. Dinamica roboţilor de tip manipulator
2
M2* =
− 2I2 ⋅ 2ε0,2 − 2ω0,2 × ( 2
I2 ⋅ 2
ω0,2 = )
0 0 0 0 0
1 − 1 m ⋅ l2
= − m2 ⋅ l22 0 1 0 ⋅ 0 2 2 0 ×
12 12
(
0 0 1 − θ1 + θ2
)
− θ + θ
1 2 ( )
0 0 0 0 0
, (8.235)
1
× 0 1 0 ⋅ 0 = m2 ⋅ l22 ⋅ 0 −
12
(
0 0 1 − θ + θ
1 2 ) θ + θ
1 2
0 0 0
1 2 × 1 2
− m2 ⋅ l2 ⋅ 0 0 = m2 ⋅ l2 ⋅ 0
12 12
( 1 2 )
− θ + θ − θ + θ
1 2( )
θ1 + θ2
2 2
F1,2= F2,3 − m2 ⋅ 2 g − 2F2*=
2
= F2,3 − m2 ⋅ 2 g + m2 ⋅ 2a0,C2=
1 1 ( 2 1 2 2 )
l −θ2 ⋅ c + θ ⋅ s − l ⋅ θ + θ 2
1 2 ( 0 )
( ) (
=m3 ⋅ −l1 θ12 ⋅ s2 + θ1 ⋅ c2 − l2 ⋅ θ1 + θ2 − m2 ⋅ 0 +
)
g
d3 − g
l2
2 ( )
l1 −θ1 ⋅ c2 + θ1 ⋅ s2 − 2 ⋅ θ1 + θ2
2 ( )
l
2
( )
+m2 ⋅ −l1 θ1 ⋅ s2 + θ1 ⋅ c2 − 2 ⋅ θ1 + θ2 =
2
( )
0
, (8.236)
m2 2
(
( m2 + m3 ) ⋅ l1 −θ1 ⋅ c2 + θ1 ⋅ s2 −
2
2
)
+ m3 ⋅ l2 θ1 + θ2
( )
m2
2
(
= − ( m2 + m3 ) ⋅ l1 θ1 ⋅ s2 + θ1 ⋅ c2 −
2
)
+ m3 ⋅ l2 θ1 + θ2
( )
m3 ⋅ d3 − ( m2 + m3 ) ⋅ g
308
Bazele Roboticii
c2 s2 0
1
F1,2 =21R ⋅ 2F1,2 = s2 −c 2 0 ⋅ 2F1,2 =
0 0 −1
2 m2 + m ⋅ l θ + θ 2 c + θ + θ ⋅ s ( ) ( )
− ( m2 + m3 ) ⋅ l1 ⋅ θ1 − 3 2 1 2 2 1 2 2 , (8.237)
2
m 2
( )
= ( m2 + m3 ) ⋅ l1 ⋅ θ1 − 2 + m3 ⋅ l2 θ1 + θ2 ⋅ s2 − θ1 + θ2 ⋅ c2
2
( )
−m3 ⋅ d3 + ( m2 + m3 ) ⋅ g
2
M1,2 = 2
M2,3 + ( 2
)
p1,2 + 2 p2,C2 × 2F1,2 − 2 p2,C2 × 2F2,3 − 2M2* =
l2 l2
l − − 2 0
2 2
1
= 2
M2,3 + 0 + 0 × 2F1,2 − 0 × 2F2,3 − m2 ⋅ l22 ⋅ 0 =
12
0 θ1 + θ2
0 0
1 1 2 (
l θ2 ⋅ s + θ ⋅ c + l θ + θ
1 2 2 1 2 ) ( )
l
(
= m3 ⋅ d3 − 3 ⋅ l1 −θ12 ⋅ c2 + θ1 ⋅ s2 − l2 θ1 + θ2
2
) (
2
)
+
0
m2 2
(
)
l2 ( m2 + m3 ) ⋅ l1 −θ1 ⋅ c2 + θ1 ⋅ s2 − 2 + m3 ⋅ l2 θ1 + θ2
2
( )
2
m
(
)
+ 0 × − ( m2 + m3 ) ⋅ l1 θ12 ⋅ s2 + θ1 ⋅ c2 − 2 + m3 ⋅ l2 θ1 + θ2 −
2
( )
0
m3 ⋅ d3 − ( m2 + m3 ) ⋅ g
(8.238.a)
l2
− 2
(2
l1 −θ1 ⋅ c2 + θ1 ⋅ s2 − l2 ⋅ θ1 + θ2 )
2 ( 0 )
1
( )
− 0 × m3 −l1 θ12 ⋅ s2 + θ1 ⋅ c2 − l2 ⋅ θ1 + θ2 −
12
(
m2 l22 0
)
0 θ1 + θ2
d − g
3
309
8. Dinamica roboţilor de tip manipulator
1 1 2 (
l θ2 ⋅ s + θ ⋅ c + l θ + θ
1 2 2 1 2 ) ( )
l
2
M1,2
(
= m3 ⋅ d3 − 3 ⋅ l1 −θ12 ⋅ c2 + θ1 ⋅ s2 − l2 θ1 + θ2
2
) ( )
2
+
0
0
l
+ − 2 m3 ⋅ d3 − ( m2 + m3 ) ⋅ g −
2
l m
(
)
− 2 ( m2 + m3 ) ⋅ l1 θ12 ⋅ s2 + θ1 ⋅ c2 + 2 + m3 ⋅ l2 ⋅ θ1 + θ2
2 2
( )
0
0
l2 1
−m3
2
(
d3 − g ) −
12
m2 ⋅ l22 0 =
θ1 + θ2
l2 l θ2 ⋅ s + θ ⋅ c + l ⋅ θ + θ
2
(
1 1 2 1 2 2 1) 2 ( )
l3
2 ( )
m3 d3 − ⋅ l1 θ1 ⋅ s2 + θ1 ⋅ c2 + l2 ⋅ θ1 + θ2
2
( )
l3
2
(
2
m3 d3 − l1 −θ1 ⋅ c2 + θ1 ⋅ s2 − l2 θ1 + θ2 − ) 2
(
) (8.238.b)
=
l
− 2 2m3 ⋅ d3 − ( m2 + 2m3 ) ⋅ g
2
− l2 ( m + 2m ) l θ2 s + θ c + m2 + 2m l θ + θ −
2 2
3 1 1 2 ( 1 2
2
)
3 2 1
2
( )
1
(
2
− m2 l2 θ1 + θ2
2
)
c2 s2 0
1 1 2
M1,2 =2 R ⋅ M1,2 = s2 −c 2 0 ⋅ 2M1,2 (8.239.a)
0 0 −1
310
Bazele Roboticii
l3 2
( ) ( )
m3 d3 − l1θ1 + l2 θ1 + θ2 c2 − l2 θ1 + θ2 s2 −
2
l2
− 2m3d3 − ( m2 + 2m3 ) g s2
2
l3 2 2
( ) ( )
m3 d3 − 2 l1θ1 + l2 θ1 + θ2 s2 + l2 θ1 + θ2 c2 + .(8.239.b)
1
M1,2 =
l2
+ 2m3d3 − ( m2 + 2m3 ) g c2
2
l2 ( m + 2m ) l θ2 s + θ c + m2 + 2m l θ + θ
2 2 3 1 1 2( 1 2 )
2
(
3 2 1
)
2 +
1
(
2
+ 12 m2 l2 θ1 + θ2
)
311
8. Dinamica roboţilor de tip manipulator
1
M1* =
− 1I1 ⋅ 1ε0,1 − 1ω0,1 × ( 1
I1 ⋅ 1ω0,1 = )
0 0 0 0 0 0 0 0 0
1 1
=
− m1l12 0 1 0 ⋅ 0 − m1l12 ⋅ 0 × 0 1 0 ⋅ 0 = , (8.242)
12 12
0 0 1 θ1 θ1 0 0 1 θ1
0 0 0 0
1 1 1
=
− m1l12 0 − m1l12 0 × 0 = − m1l12 0
12 12 12
θ1 θ1 θ1 θ1
1 1
F0,1= F1,2 − m1 ⋅ 1g − 1F1*=
2 m2 + m l θ + θ 2 ⋅ c + θ + θ s
( ) ( )
− ( m2 + m3 ) ⋅ l1 ⋅ θ1 − 3 2 1 2 2 1 2 2
2
m2 2
= ( m2 + m3 ) ⋅ l1 ⋅ θ1 −
2
( )
+ m3 l2 θ1 + θ2 ⋅ s2 − θ1 + θ2 c2 −
( )
− m d
3 3
+ ( m 2 + m 3 ) g
l1 2
2 ⋅ θ1
0
l
−m1 0 + m1 1 ⋅ θ1 =
2
−g
0
m1 m 2
−
2 2
( )
+ m2 + m3 l1θ12 − 2 + m3 l2 θ1 + θ2 ⋅ c2 + θ1 + θ2 s2
( )
m m 2
( )
= 1 + m2 + m3 l1θ1 − 2 + m3 l2 θ1 + θ2 ⋅ s2 − θ1 + θ2 c2
2 2
( )
,
+ ( m + m + m ) g
− m 3 3d 1 2 3
(8.243)
312
Bazele Roboticii
c 1 −s1 0
0
F0,1 =10R 1
⋅ F0,1 = s1 c1 0 ⋅
0 0 1
m1 m 2
− ( )
+ m2 + m3 l1θ12 − 2 + m3 l2 θ1 + θ2 c2 + θ1 + θ2 s2 ( )
2 2
m m 2
( )
⋅ 1 + m2 + m3 l1θ1 − 2 + m3 l2 θ1 + θ2 s2 − θ1 + θ2 c2 =
2 2
( )
− m d
3 3 + ( m1 + m 2 + m3 ) g
θ + θ 2 c +
− m1 + m + m l θ2c + θ s − m 2 + m l ( )
2 2 3 1 1 1 (1 1 )3 2
1
2 12
2 ( )
+ θ1 + θ2 s12
θ + θ 2 s −
m1 m2 ( )
=
2 (
)
− 2 + m2 + m3 l1 θ1 s1 − θ1c1 − 2 + m3 l2
1
2 12
(8.244)
(
− θ1 + c
θ )
2 12
−m3d3 + ( m1 + m2 + m3 ) g
1
M0,1 = 1
M1,2 + ( 1
)
p0,1 + 1 p1,C1 × 1F0,1 − 1 p1,C1 × 1F1,2 − 1M1* =
l3 (
l1θ1 + l2 θ1 + θ2 c2 −
)
l2 2m3d3 −
m3 d3 − 2 2
−
2 − ( m + 2m ) g 2
s
(
−l2 θ1 + θ2 s2 )
2 3
2 (
l3 l1θ1 + l2 θ1 + θ2 s2 + l2 2m3d3 − )
=m3 d3 − + c +
2 +l θ + θ 2 c 2 − ( m + 2m ) g 2
2 1 ( 2 2 ) 2 3
l 2 3 1 1 (
( m + 2m ) l θ2 ⋅ s + θ ⋅ c +
2 1 2
1
)
2
2 + m2 + 2m3 l2 θ1 + θ2
+ m2 l22 θ1 + θ2 ( )
( 12)
2
313
8. Dinamica roboţilor de tip manipulator
2
− m1 + m + m l θ2 − m 2 + m l θ1 + θ2 ⋅ c2 + ( )
2 2 3 1 1 3 2
+ θ1 + θ2 s2
l1
2
( )
l −
2
1
θ + θ 2 ⋅ s −
m m
+ 0 + 0 × 1 + m2 + m3 l1θ1 − 2 + m3 l2
(1 2 )2
−
2 2
− θ1(+ θ
2 c 2 )
−l 0
−m3d3 + ( m1 + m2 + m3 ) g
m 2
( )
l1 − ( m2 + m3 ) ⋅ l1 ⋅ θ1 − 2 + m3 ⋅ l2 θ1 + θ2 c2 + θ1 + θ2 ⋅ s2
2 2 ( )
− 2
m2 2
− 0 × ( m2 + m3 ) ⋅ l1 ⋅ θ1 −
2
( )
+ m3 ⋅ l2 θ1 + θ2 ⋅ s2 − θ1 + θ2 ⋅ c2 + (
)
0
− m ⋅ d + ( m + m ) ⋅ g
3 3 2 3
0
1
2
+ m1l1 0 =
12
θ1
l3 m1 m
m3 d3 − ( l1 + l2c2 ) + + m2 + m3 l1l + 2 + m3 l2 lc2 θ1 +
2 2 2
+ m d − l3 l c + m2 + m l lc θ − 2m l2 s d −
3 3 2 2 2 2 3 2 2 2
3
2
2 3
l3 m2 2 l
− m3 d3 − +
2 2
( )
+ m3 l l2 θ1 + θ2 s2 + ( m2 + 2m3 ) 2 gs2
2
l3 m2
m3 d3 − + + m3 l l2 s2θ1 +
2 2
l m l
+ m3 d3 − 3 + 2 + m3 l l2 s2θ2 + 2m3 2 s2d3 +
2 2 2
= +
l m
( )
2
+m3 d3 − 3 l1θ12 + l2 θ1 + θ2 c2 + 1 + m2 + m3 l1lθ12 +
2 2
m 2 l
( )
+ 2 + 2m3 l2 l θ1 + θ2 c2 − ( m2 + 2m3 ) 2 gc2
2 2
m1 m
+ m2 + m3 l12 + ( m2 + 2m3 ) l1l2c2 + 2 + m3 l22 θ1 +
3 3
m m m
+ 2 + m l 2 + 2 + m l l c θ − 2 + m l l s 2θ θ + θ2
3 3 2
2
3 12 2
2
2
3 12 2
1 2 2( )
314
Bazele Roboticii
0
1
2
+ m1l1 0 =
12
θ
1
l3 m1 m
m3 d3 − ( l1 + l2c2 ) + + m2 + m3 l1l + 2 + m3 l2 lc2 θ1 +
2 2 2
l m
+ m d − 3 l c + 2 + m l lc θ − 2m 2 s d − l
3 3 2 2 2 2 3 2 2 2
3
2
2 3
l3 m2 2 l
− m3 d3 − +
2 2
( )
+ m3 l l2 θ1 + θ2 s2 + ( m2 + 2m3 ) 2 gs2
2
l3 m2
m3 d3 − + + m3 l l2 s2θ1 +
2 2
+ m d − l3 + m2 + m l l s θ + 2m l2 s d +
3 3 3 2 2 2 3 2 3
2 2 2
=
l3 2 2 m1 2
( )
+m3 d3 − 2 l1θ1 + l2 θ1 + θ2 c2 + 2 + m2 + m3 l1lθ1 +
m2 2 l
+ ( )
+ 2m3 l2 l θ1 + θ2 c2 − ( m2 + 2m3 ) 2 gc2
2 2
(8.245)
m1 m
+ m2 + m3 l12 + ( m2 + 2m3 ) l1l2c2 + 2 + m3 l22 θ1 +
3 3
m m
+ 2 + m3 l22 + 2 + m3 l1l2c2 θ2 −
3 2
m
(
− 2 + m3 l1l2 s2 2θ1θ2 + θ22
2
)
c 1 − s1 0
0
M0,1 =0
1R
1
⋅ M0,1 = s1 c1 0 ⋅ 1M0,1 . (8.246)
0 0 1
315
8. Dinamica roboţilor de tip manipulator
m m
= 1 + m2 + m3 l12 + ( m2 + 2m3 ) l1l2c2 + 2 + m3 l22 θ1 +
3 3
. (8.247)
m m
+ 2 + m3 l22 + 2 + m3 l1l2c2 θ2 −
3 2
m
(
− 2 + m3 l1l2 s2 2θ1θ2 + θ22
2
)
m1 m
τ1= + m2 + m3 l12 + ( m2 + 2m3 ) l1l2c2 + 2 + m3 l22 θ1 +
3 3
m m
+ 2 + m3 l22 + 2 + m3 l1l2c2 θ2 − , (8.248)
3 2
m
(
− 2 + m3 l1l2 s2 2θ1θ2 + θ22
2
)
m2 m m
τ 2 = + m3 l1l2c2 + 2 + m3 l22 θ1 + 2 + m3 l2 2θ2 +
2 3 3 , (8.249)
m2
+ + m3 l1l2θ12 s2
2
(
τ 3 = m3 ⋅ d3 − g . ) (8.250)
unde:
τ1
τ = τ 2 , (8.252)
τ 3
316
Bazele Roboticii
317
8. Dinamica roboţilor de tip manipulator
G1 0
G =
= G2 0 , (8.256)
G3 −m3 ⋅ g
318
9
GENERAREA TRAIECTORIEI
9.1 Generalităţi
Pentru realizarea unei anumite operaţii în spaţiul
tridimensional, efectorul final al manipulatorului trebuie să descrie o
anumită traiectorie în interiorul spaţiului de lucru, ceea ce înseamnă o
modificare în timp a poziţiei şi orientării sistemului de axe ataşat
acestui efector (Fig. 9.1). Pentru manipulator, acest lucru presupune
o modificare în timp a matricei omogene totale 0nT , matrice scrisă în
raport cu sistemul de referinţă fix.
z0 y3 z0 y3 Traiectorie
_ B
_ M _ O3
O0 M _ O3 O0
x0 y0 x0 y0
z3 x3 z3 x3
Obstacol
Traiectorie
A A
(a) (b)
319
9. Generarea traiectoriei
320
Bazele Roboticii
θ(t)
θf
θ0
t0 tf t
θ (tf ) = θ f . (9.2)
321
9. Generarea traiectoriei
θ(0) = 0 , (9.3)
θ(tf ) = 0 . (9.4)
θ (tf ) = a0 + a1 ⋅ t + a2 ⋅ t 2 + a3 ⋅ t 3 , (9.5)
θ(tf ) = a1 + 2 ⋅ a2 ⋅ t + 3 ⋅ a3 ⋅ t 2 , (9.6)
θ(tf ) = 2 ⋅ a2 + 6 ⋅ a3 ⋅ t . (9.7)
322
Bazele Roboticii
care cupla cinematică are valoarea zero pentru viteza iniţială şi cea
finală (Fig. 9.3).
..
. θ(t)
θ(t) θ(t) ..
θ0
θf
tf
t0 t
. . ..
θ0 θ0 =θf =0 θf
t0 tf t t0 tf t
323
9. Generarea traiectoriei
θ0 = a0
θ f = a0 + a1 ⋅ tf + a2 ⋅ tf2 + a3 ⋅ tf3
. (9.12)
θ0 = a1
θf = a1 + 2 ⋅ a2 ⋅ tf + 3 ⋅ a3 ⋅ tf2
324
Bazele Roboticii
θ(t)
θB
θB
θf
θf
θA
θC θA
θC
θ0
t0 tA tB tC tf t
325
9. Generarea traiectoriei
326
Bazele Roboticii
θ (t ) = a0 + a1 ⋅ t + a2 ⋅ t 2 + a3 ⋅ t 3 + a4 ⋅ t 4 + a5 ⋅ t 5 , (9.18)
a0 = θ0
a1 = θ0
θ0
a2 =
2
a3 =
( ) ( )
−20 ⋅ θ0 + 20 ⋅ θ f − 8 ⋅ θf + 12 ⋅ θ0 ⋅ tf − 3 ⋅ θ0 − θf ⋅ tf2
. (9.20)
2 ⋅ tf3
( ) ( )
30 ⋅ θ0 − 30 ⋅ θ f + 14 ⋅ θf + 16 ⋅ θ0 ⋅ tf − 3 ⋅ θ0 − 2 ⋅ θf ⋅ tf2
a4 =
2 ⋅ tf4
a5 =
( ) ( )
−12 ⋅ θ0 + 12 ⋅ θ f − 6 ⋅ θf + 6 ⋅ θ0 ⋅ tf − θ0 − θf ⋅ tf2
2 ⋅ tf5
327
9. Generarea traiectoriei
θ(t)
θf
θ0
t0 tf t
328
Bazele Roboticii
θ(t)
θf
θ0
t0 tp tf - tp tf t
θ(t)
θf
θm
θ0
t0 tm tf t
329
9. Generarea traiectoriei
t θ2 ⋅ t 2 − 4 ⋅ θ ⋅ (θ f − θ0 )
t p= − (9.24)
2 2 ⋅ θ
Condiţia impusă pentru acceleraţia în zona parabolică este
4 ⋅ (θ f − θ0 )
θ ≥ . (9.25)
t2
330
Bazele Roboticii
θ(t)
θj
t jk
θl
.
Viteza θjk θk
tk
θ0
θi
t
td12 tdjk
331
9. Generarea traiectoriei
θ2 − θ1
= θ1 ⋅ t1 . (9.27)
1
td12 − ⋅ t1
2
Dacă se determină t1 , atunci pot fi calculaţi simplu parametrii
θ12 şi t12 ,
(
θ1 sign θ2 − θ1 ⋅ θ1
=
)
2 ⋅ (θ2 − θ1 )
=t1 td12 - td212 −
θ1
θ2 − θ1 . (9.28)
θ12 = 1
td12 − ⋅ t1
2
1
t12= td12 − t1 − ⋅ t2
2
Asemănător, pentru ultimul segment, avem
θ n −1 − θ n
= θn ⋅ tn (9.29)
1
td ( n −1) n − ⋅ tn
2
şi
332
Bazele Roboticii
θ(t) Pseudo-puncte
intermediare
Punct intermediar
original
θ0
t1 t2 t3 t
333
9. Generarea traiectoriei
334
Bazele Roboticii
A
Spatiu de
lucru
335
9. Generarea traiectoriei
Spatiu de
lucru
336
Bazele Roboticii
Spatiu de
lucru
337
9. Generarea traiectoriei
338
A
ALGEBRĂ LINIARĂ
A.1 Definiţii
Se numeşte matrice, un aranjament de (m x n) elemente
aij (reale sau complexe), aşezate într-un tablou dreptunghiular cu m
linii şi n coloane
339
A. Algebră liniară
a11 0 0
a a22 0
A = 21 . (A.3)
an1 an2 ann
a11 0 0
0 a 0
=A = 22 diag a , a , a .
11 22, nn (A.4)
0 0 ann
1 0 0
0 1 0
In = . (A.5)
0 0 1
340
Bazele Roboticii
0 a12 a1n
−a 0 a2n
A = 12 . (A.8)
− a1n − a2n 0
( −1)
Aij =
i+ j
( )
⋅ det Aij , (A.10)
341
A. Algebră liniară
C= A + B . (A.12)
Avem următoarele proprietăţi pentru adunarea matricelor:
A+0 =A,
A+ B = B + A,
( A + B) + C = A + (B + C ) .
(α + β ) ⋅ A = α ⋅ A + β ⋅ A ,
α ⋅ ( A + B) = α ⋅ A + α ⋅ B .
342
Bazele Roboticii
p
matricei B, adică cij = ai1 ⋅ b1 j + ai 2 ⋅ b2 j + + aip ⋅ bpj = ∑ aik ⋅ bkj ;
k =1
i = 1,2, , m ; j = 1,2, , n . Acest lucru înseamnă că numărul
coloanelor matricei A trebuie să fie egal cu numărul liniilor matricei B.
Produsul matricelor satisface următoarele proprietăţi:
A = A ⋅ I p =I m ⋅ A ,
( A ⋅ B) ⋅ C = A ⋅ (B ⋅ C ) ,
( A + B) ⋅ C = A⋅B + B⋅C ,
A ⋅ (B + C ) = A ⋅ B + A ⋅ C ,
( A ⋅ B )T =BT ⋅ AT .
det ( A) = det AT , ( )
det (α ⋅ A) = α n ⋅ det ( A) ,
B ) det ( A) ⋅ det ( B ) ,
det ( A ⋅ =
343
A. Algebră liniară
A∗
A −1 = . (A.17)
det ( A)
( )
det A−1 =
1
det ( A)
,
∗ n −1
deoarece det ( A) = det ( A) . Avem proprietăţile
1
(α ⋅ A)−1 −1
=⋅ A−1 ; ( A ⋅ B ) =B −1 ⋅ A−1 ;
α
(A ) = (A ) ( )
T −1 −1
−1 T
; A −1 = A.
AT = A−1 , (A.18)
atunci matricea respectivă se numeşte ortogonală; în acest caz avem
A ⋅ AT = AT ⋅ A = In . (A.19)
A+ = Q2 ⋅ Σ + ⋅ Q1T . (A.20)
344
Bazele Roboticii
1
σ 0 0 0
1
1
+ 0 0 0
Σ = σ2 , (A.21)
0 0 0
0 1
0 0
σ r
( )
−1
A+ = AT ⋅ A ⋅ AT , dacă m < n , A+ ⋅ A =
Im (A.22)
( )
−1
A+ = AT ⋅ A ⋅ AT , dacă m > n , A ⋅ A+ =
In (A.23)
(A )
+
+
= A.
( x + y ) + z = x + (y + z ) ,
x +0 = 0+ x,
345
A. Algebră liniară
x + ( − x ) =0 ,
1⋅ x =x,
α ⋅ ( β ⋅ x ) = (α ⋅ β ) ⋅ x ,
(α + β ) ⋅ x =α⋅x+β⋅x,
α (x + y) = α ⋅ x + α ⋅ y .
< x , y= = xT ⋅ =
> x1 ⋅ y1 + x2 ⋅ y2 + + xm ⋅ ym y yT ⋅ x . (A.24)
xT ⋅ y =
0. (A.25)
x × (y + z ) = x × y + x × z .
Fiind daţi trei vectori x, y şi z în spaţiul tridimensional,
produsul scalar triplu este dat de următoarea expresie
x T ⋅ ( y × z ) = y T ⋅ ( z × x ) = zT ⋅ ( x × y ) . (A.27)
Dacă oricare doi dintre cei trei vectori sunt egali, atunci
produsul scalar triplu este nul,
xT ⋅ (y × z ) =
0. (A.28)
346
B
FORMULE
TRIGONOMETRICE
sinθ =− sin ( −θ ) = (
− cos θ + 90 = )
cos θ − 90 , ( ) (B.1)
cos θ =cos ( −θ ) = (
sin θ + 90 = ) (
− cos θ − 90 . )
Funcţiile sin şi cos pentru suma şi diferenţa unghiurilor θ1 şi
θ2 :
sin2 θ + cos2 θ =
1 (B.3)
Dacă notăm unghiurile unui triunghi oarecare cu A, B şi C,
unde a este unghiul opus laturii a, şi aşa mai departe, atunci legea
cosinusului este
a2 = b2 + c 2 − 2 ⋅ b ⋅ c ⋅ cos A , (B.4)
iar legea sinusului
a b c
= = . (B.5)
sin A sin B sin C
Făcând substituţia
347
B. Formule trigonometrice
θ
t = tg , (B.6)
2
putem scrie:
1 − t2
cos θ = ,
1 + t2
2⋅t
sin θ = .
1 + t2
(B.7)
348
C
FORMULE UTILE PENTRU
CINEMATICA INVERSĂ
Ecuaţia
sinθ = a (C.1)
are două soluţii, date de
(
± Atan2 1 − a2 , a .
θ = ) (C.2)
= (
θ Atan2 b, ± 1 − b2 . ) (C.4)
Ecuaţia neliniară
a ⋅ cos θ + b ⋅ sinθ =0 (C.6)
are două soluţii
=θ Atan2 ( a, −b ) (C.7)
şi
=θ Atan2 ( − a, b ) . (C.8)
Ecuaţia
a ⋅ cos θ + b ⋅ sinθ =c (C.9)
349
C. Formule pentru cinematica inversă
=θ Atan2 ( b, a ) ± Atan2 ( )
a2 + b2 − c 2 , c . (C.10)
Setul de ecuaţii
a ⋅ cos θ − b ⋅ sinθ =c,
(C.11)
a ⋅ sinθ + b ⋅ cos θ =d,
are soluţia
=θ Atan2 ( a ⋅ d − b ⋅ c, a ⋅ c + b ⋅ d ) . (C.12)
350
BIBLIOGRAFIE
351
Bibliografie
352