SPECIALIZAREA AUTOMATICĂ și INFORMATIC Ă [610311]
UNIVERSITATEA TEHNIC Ă “GHEORGHE ASACHI ”
DIN IAȘI
FACULTATEA DE AUTOMATIC Ă ȘI CALCULATOARE
SPECIALIZAREA AUTOMATICĂ și INFORMATIC Ă
APLICAT Ă
LUCRARE DE LICEN ȚĂ
REALIZAREA UNEI SARCINI COLABORATIVE
CU AJUTORUL ROBO ȚILOR ABB
Autor: Conducǎtor științific :
Boboc Alexandru, Grupa 1403A Prof. Dr. Ing. Doru P ănescu
2020
1
DECLARA ȚIE DE ASUMARE A AUTENTICITĂȚII
LUCRĂRII DE LICENȚĂ
Subsemnatul __________________________________________________________,
legitimat cu ____ seria ______ nr. _________ , CNP____________________________
autorul lucrării _________________________________________________________
_________________________________________ ____________________________
_____________________________________________________________________
elaborată în vederea susținerii examenului de finalizare a studiilor de
________________________________________organizat de către Facultatea de Automatică
și Calculatoare din cadrul Universității Tehnice „Gheorghe Asachi” din Iași,
sesiunea ____________________ a anului universitar __________________, luând în
considerare conținutul Art. 34 din Codul de etică universitară al Universității Tehnice
„Gheorghe Asachi” din Iași (Manualul Procedurilor, UTI.POM.02 – Funcționarea Comisiei de
etică universitară), declar pe proprie răspundere, că această lucrare este rezultatul propriei
activități intelectuale, nu conține porțiuni plagiate, iar sursele bibliografice a u fost folosite cu
respectarea legislației române (legea 8/1996) și a convențiilor internaționale privind drepturile
de autor.
Data Semnătura
2
CUPRINS
Capitol 1. Domeniul Roboticii colaborativ e……………………….. …….4
1.1. Introducere ȋn Robotica colaborativ ǎ…………………… ………………………….. …4
1.2 Cerințe de siguranță pentru folosirea roboților î n sarcini colaborative………5
1.2.1 Norme standard internaționale pentru aplicații ale roboților industriali. …5
1.2.2 Funcții de siguranță ale controlerului robotului ind ustrial………………… ….5
1.2.3 Norme standard actuale……………. …………………………. ………………………….6
1.2.4 Arii prezentate în ISO/TS 5066……………………………………………………….. .6
1.2.5 Evoluția conceptelor de siguranță……………………………………………………. ..7
1.2.6 Definiția operației colaborative…………………………………… …………………. …7
1.2.7 Grade de colaborare………………………………………………………………………. ..9
1.2.8 Funcții de siguranță ale controlerului robotului industrial………………….. ..9
1.2.9 Nivel de performanță…………………………………………………………………….. .10
1.3 Criterii limit ǎ biomecanice ……………………………………………………………….. 12
Capitolul 2. Rezolvarea unei sarcini colaborative cu ajutorul
roboților ABB……… ………………………………………………………………. ..16
2.1 Specifica ții tehnice ale proiectului de diplom ă……………. ……….. ..16
2.1.1 RobotStudio v6.0 8………………………………… …………………………16
2.1.2 IRB 2400L……………………………………………………………………… 16
2.1.3 S4C+ Contro ler……………………………………. ………………… ,………18
2.2 Rezolvarea unei aplica ții folosind robotul IRB 2400 și mediul
RobotStudio……………………………………………………………………………. 20
2.2.1 Mediul de simulare RobotStudio ……………………………………. ….20
2.2.2 Rezolvarea problemei teoretice ………………. …………………………21
2.2.3 Aflarea parametrilor ……………………………… …………………………23
3
2.2.4 Projectile Motion ……………………………………. ……………………….26
2.2.5 Configurarea apucatorului ……………………… …………………………27
2.2.6 Realizarea traiectoriei ȋn RobotStudio ……… …………………………27
2.3 Concluzii………………………………………………… …………………………31
2.4 Posibilt ǎți de dezvoltare…. ……………… …………………………………… 31
Bibliografie…………………………………………………………………………….. 32
Anexe……………………………………………………… …………………………. ….32
4
Capitol 1. Domeniul Roboticii colaborative
1.1 Introducere în robotica colaborativ ă
Robotica colaborativ ă își propune combinarea abilit ăților omului cu cele ale robo ților
pentru a acoperi sl ăbiciunile fiec ăruia în îndeplinirea unei sarcini cerute [1].
Abilita ți umane:
-dexteritate
-flexibilitate
-abilitatea de a rezolva probleme
Abilita ți ale robotului:
-putere
-rezisten ță
-precizie
Sarcinile pe care le poate îndeplini un robot sunt :
-cele de precizie mare
-repetitive sau simple, care nu implic ă modifi cări
-taskuri scurte
Robo ții sunt folosi ți in linii de asamblare industriale, împachetare, asamblare de precizie,etc.
Robotica colaborativ ă se aplic ă în acele domenii in care este prea scump sau foarte complicat
să se foloseasc ă roboții clasici.
Avantajul folosirii robo ticii colaborative const ă în:
-timp mai scurt de fabrica ție
-simplitatea execut ării unei sarcini
-rata de succes mai mare datorat ă eficien ței și preciziei robotului
-flexibilitate
-siguran ță
-eficien ță
-rezisten ță
-durabilitate
5
Roboții colaborativi sunt dotați cu echipamente ș i dispozitive care asigur ă siguran ța
factorului uman , cum ar fi [1]:
-senzori pentru cuplu l de for ță
-limitari ale puterii acestora
-senzori specifici:
-camere video ( SafetyEYE, dezvoltat de Pliz în 2007)
-recunoaștere vocală (se poate folosi microfonul pentru oprirea robo ților de tip
ABB )
-tactil (piele artificial ă)
Pe viitor robotica colaborativ ă își propune dezvoltarea robo ților cât mai mult astfel încât
programarea și utilizarea acestora s ă devin ă cât mai uș oară și accesibil ă fără a fi necesar ă
angajarea unui programator expert pentru utilizarea lor.
1.2 Cerin țe de siguran ță pentru folosirea robo ților în sarcini
colaborative
1.2.1 Norme standard interna ționale pentru aplica ții ale robo ților
industriali
1. ISO 10218 -1
ISO 10218 -1 (International Organization for Standardization) specific ă cerin țe si îndrum ări
pentru designul inerent de siguran ță, măsuri de protec ție și informa ții pentru utilizarea
roboților industriali [2]. Descrie pericolele de baz ă asociate robo ților și furnizeaz ă cerin țe
pentru a elimina sau a reduce semnificativ riscurile asociate acestor pericole.
2. ISO 10218 -2
ISO 10218 -2 specific ă cerin țe de siguran ță pentru robotul industrial ca și parte a unei celule
de fabrica ție cât și pentru integrarea robo ților industriali în sisteme cu robo ți sau sisteme de
fabricare [2].
Acest standard specific ă riscurile de baz ă și situa țiile periculoase indentificate în cadrul
acestor sisteme și pune la dispozi ție cerin țe pentru eliminarea sau reducerea adecvat ă a
riscuri lor asociate acestor situa ții.
1.2.2 Func ții de siguran ță ale contro lerului robotului industrial
Revizuirea funcțiilor de bază legate de siguranță [2]:
E-stop
Oprire de protecție
6
Moduri de operare:
Automat/manual/manual la vitez ă mare
Consolǎ de programare și opțiuni de control disponibile :
Activare
Start/restart
Apăsare pentru activare
Întrerup ătoare de limit ă
Funcții de supraveghere:
Supravegherea de baz ă a mișcării robotului, miș carea executat ă corespunde misc ării
comandate.
Supravegherea componentelor cinematice :
Poziție:
TCP, manipulator, unealt ă, brațe, etc.
Vitez ă:
TCP, bra țe.
Accelera ție, frânare.
Posibilitate: Supravegherea componentelor dinamice, în special pentru sarcini colaborative
Cupluri
Forțe
Posibilitate: func ții de supraveghere specifice aplica ției/utilizatorului.
1.2.3 Norme standard actuale
ISO/TS 15066 specific ă cerin țele de siguran ță pentru sistemele cu robo ți industriali
colaborativi și mediul de lucru și suplimenteaz ă cerin țele și îndrum ările pentru sistemele cu
roboți industriali colaborativi prezentate în ISO 10218 -1 și ISO 10218 -2[2].
Acesta nu se aplic ă roboților care nu fac parte din categoria celor industriali .
1.2.4 Arii prezentate în ISO/TS 15066
Proiectarea spațiului de lucru colaborativ
Proiectarea opera ției colaborative
Distan ța minima de separare S /viteza maxim ă a robotului 𝐾𝑅
Valori limit ă statice și dinamice
7
Evaluarea siguran ței capabilita ții senzoriale
Ergonomie
Metode de lucru colaborativ
Evaluarea siguran ței opririi monitorizate
Ghidare manual ă
Monitorizarea vitezei și a separării
Limitarea puterii si a for țelor
Evolu ția în:
Colaborativ/non -colaborativ
Diferite metode de colaborare
Operatori de control pentru diferite metode si aplica ții.
1.2.5 Evolu ția conceptelor de siguran ță
Inițial robotul și omul erau complet separa ți printr -o zona de siguran ță, colaborarea dintre
aceștia fiind imposibil ă.
Dupa introducerea controlerului de siguran ță a început s ă apară o colaborare par țială, cu
destul de multe limitari, robotul nefiind adaptat pentru aceasta.
Ulterior, odata cu apari ția manipulatoarelor inofensive și adaptarea robo ților, colaborarea
între om și robot a devenit complet ă. Acest lucru a condus la dispari ția zonelor de siguran ță, a
restric țiilor impuse ini țial pentru robo ții clasici și a usurat folosirea acestora în scopul
execut ării sarcinilor.
1.2.6 Defini ția opera ției colaborative conform ISO 10218 -1:2011, clauza
3.4:
Opera ția colaborativ ă presupune ca robo ții special concepu ți în acest scop lucreaz ă în
direct ă cooperare cu omul într-un spa țiu de lucru bine definit [2].
Tipuri de opera ții colaborative conform ISO 10218 -1
8
Clauza ISO
10218 -1 Tipul opera ției colaborative Principalele mijloace de
reducere a riscurilor
5.10.2 Oprire de siguran ță Nici un robot nu se afl ă în mișcare
atunci c ând operatorul uman se
află in spa țiul de lucru
5.10.3 Ghidaj manual Robotul se misc ă doar în func ție
de instruc țiunile operatorului
5.10.4 Monitorizarea vitezei și a distan ței
de separare Robotul se misc ă doar atunci c ând
distanta de separare este mai mare
decât limita minim ă impus ă
5.10.5 Limitarea puterii si a for țelor prin
designul inerent sau control În caz de contact robotul poate
doar d etrmina forțe statice și
dinamice limitate
Viteza Distan ța
de
separare Torques/cuplu Operatii de
control ale
operatorului
* Principalul
risc redus
Oprire de
siguran ță Zero, c ât
timp
operatorul
se afl ă în
spațiul de
lucru Mică sau
zero Gravitate+
compensarea
încărcăturii Niciunul, c ât
timp acesta se
afla in spa țiul
de lucru Nici o
miscare c ât
timp
operatorul
se afla in
spațiul de
lucru
Ghidaj
manual Viteza
monitorizat ă
în condi ții
de siguran ță Mică sau
zero In func ție de
comanda
operatorului E-stop
Senzor de
mișcare
Pornirea
dispozitivului Mișcarea se
face doar
prin
comanda
direct ă a
operatorului
Monitoriz are
a vitezei și a
distan ței de
separare Viteza
monitorizat ă
in condi ții
de siguran ță Distan ța
monitori –
zată în
condi ții
de
siguran ță Atât cât este
cerut pentru a
execut a sarcina
și a men ține
distan ța minim ă
de separare Niciunul, c ât
timp acesta se
află în spa țiul
de lucru Previne
contactul
dintre robot
și operator
Limitarea
puterii si a
forțelor Maximul
este
determinat
prin
evaluarea
riscurilor
pentru a
limita
forțele de
impact Mică sau
zero Maximul este
determinat prin
evaluarea
riscurilor pentru
a limita for țele
statice In func ție de
cerintele
aplica ției Având în
vedere
proiectarea
sa, robotul
nu poate
acționa cu
forță
excesiv ă
9
1.2.7 Grade de colaborare
1. Colaborare iniț ială pentru configurare
2. Intervenț ia omului la anumi ți pași
3. Colaborare continu ă
1.2.8 Func ții de siguran ță ale controlerului robotului industrial
1. Oprire de siguran ță:
(ISO 10218 -1, 5.10.2, ISO/TS 15066 [2])
Reduce riscurile asigurand c ă robot ul stă nemi șcat oric ând un muncitor este în spa țiul de
lucru
Realizat prin:
-Oprire supravegheat ă – Categoria a doua de stop (IEC 60204 -1)
-Categoria zero î n caz de eroare (IEC 60204 -1)
Aplica ții:
-manipulare manual ă a efectorului în timp ce se afl ă în sarcin ă
-reluarea automat ă a mișcării
2. Ghidaj manual:
(ISO 10218 -1, 5.10.3, ISO/TS 15066)
Reduce riscul oferind o perato rului control direct asupra mi șcării robotului permanent în
cadrul spa țiului de lucru.
Realizat prin (contro ale apropiat e de ef ector):
-Oprire de urgen ță, pornire dispozitiv
– Vitez ă monitorizat ă în condi ții de siguran ță
Aplica ții:
-Spații de lucru ergonomice
-Coordonare manual ă + pași parțial automa ți
3. Monitorizarea vitezei și a distan ței de separe :
(ISO 10218 -1, 5.10.4, ISO/TS 15066)
Reduce riscul prin men ținerea unei distan țe suficient de mare între operator și robot in spa țiul
de lucru .
10
Realizat prin:
-controlul distan ței, controlul vitezei
-oprire de urgen ță în cazul dep ășirii dis tanței minime de separare sau a vitezei limit ă
-tinând cont de distan ța de franare av ând în vedere distan ța de separare minim ă
Cerin țe aditionale pentru siguran ța perifericelor:
-sisteme video pentru a îmbun ătăți siguran ța oferit ă de echipament
4.Limitarea puterii și a for țelor prin designul inerent sau control
(ISO 10218 -1, 5.10.5, ISO/TS 15066)
Reducerea riscului prin asigurarea siguranței interacțiunii operatorului cu pǎrțile aflate ȋn
mișcare ale robotului, cu efectorul sau cu piesele de lucru preluate de cǎtre robot [2].
Mǎsuri privind robotul: r ealizat de iner ție scăzută, arhitectur ǎ și material adaptat, func ții de
control, etc.
Aplica țiile implic ă contact fizic tranzitoriu sau cvasi -static ( asamblarea pieselor de
dimensiuni reduse ).
1.2.9 Nivel de performan ță (ISO 13849 -1:2006)
Nivelul de performan ță este o valoare utilizat ă pentru a defini abilitatea părților legate de
siguranță ale sistemelor de control de a efectua o funcție de siguranță în condiții previzibile.
Pe de altă parte, nivelul de performanță necesar (PLr) este utilizat pentru a obține reducerea
necesară a riscului pentru fiecare funcție de siguranță. Prin urmare, nivelul de performanță
(PL) al părților legate de siguranță ale unui sistem de control trebuie să fie egal sau mai mare
decât nivelul de pe rformanță necesar (PLr) [2].
Robot industrial standard
Robot special conceput pentru sarcini
colaborative
(conform ISO 10218 -1, clauza 5.10.5)
Severitatea r ănilor S2(ireversibil) Severitatea ranilor S1 (reversibil)
Expunere F1 (rar ă) Expunere F2 (frecvent ă)
Evitare coliziuni P2 (scazut ă) Evitare coliziuni P2 (scazut ă)
Nivelul de performan ță al standardului de
siguran ță cerut: PL d Nivelul de performan ță al standardului de
siguran ță cerut: PL c
În fig.1.2.9.1 se prezintă modul în care se determină nivelul de siguranță a unui robot
industrial standard și a unui robot special conceput pentru sarcini colaborative
11
Fig. 1. 2.9.1 Schema privind nivelu l de performan ță[4]
Robot industrial standard
Robot special conceput pentru sarcini colaborative
Severitatea rănilor
S1: reversibil
S2: ireversibil
Expunere
F1: rară
F2: frecventă
Evitare coliziuni
P1: ridicat
P2: scăzut
Nivel de performan ță
Probabilitatea apariției erorilor pe oră
a 0.001% – 0.01%
b 0.0003% – 0.001%
c 0.0001% – 0.0003%
d 0.00001% – 0.0001%
e 0.000001% – 0.00001%
12
1.3 Criterii limită biomecanice
Tipuri de evenimente de contact [2]:
ISO / TS 15066 – clauza 5.4.4 „Limitarea puterii si a forțelor”
Impact liber/tranzitoriu
Evenimentul este de scurta durata(<50ms)
Patea corpului uman poate fi retrasa Contact fortat/cvasi -static
Durata contactului este mare
Partea corpului uman nu poate fi retrasa,
fiind blocata
Parametri accesibili în proiectare sau contro l
masa efectiva (pozitia robotului,
incarcatura)
viteza (relativa) Parametri accesibili în proiectare sau control
forta (cupluri articulate, pozitia)
Pragul de durere Prag de prejudiciu
minim Pragul de durere Prag de prejudiciu
minim
Cel mai înalt nivel
de încărcare
acceptat în
proiectare Cel mai înalt nivel
de încărcare
acceptat în situații de
evaluare a riscurilor
in cazul unui esec Cel mai înalt nivel
de încărcare
acceptat în
proiectare Cel mai înalt nivel
de încărcare
acceptat în situații de
evaluare a riscurilor
in cazul unui esec
Pentru a m ăsura efectele roboților asupra operatorului s -au utilizat diferite scări abstracte ale
durerii pentru a ilustra diferite nivele de leziuni ; acestea sunt decrise succint î n continuare.
1. Contact cvasi -static – Măsuri ale severitații
Într-o interacț iune î ntre un robot ș i operator, p e masură ce cresc forțele de presiune ale
robotului asupra operatorului senzația de durere crește și pot apărea leziuni. Î n fig 1.3.1 sunt
prezentate pragurile pentru diferite grade de durere simțite de operator î n urma unor
interactiuni [2].
În cazul operațiilor colaborative nivelul leziunilor este slab perceptibil, acestea fiind sigure
din punct de vedere al accidentării (a se ve dea partea din stâ nga a fig. 1.3.1 )
13
Fig. 1.3.1 Nivelul leziunilor în fun cție de forțele de presiune
2. Calculul interacțiunii om -robot propus de Barrett Technologies
Barrett Technologies este o companie din Newton, Massachusetts care fabric ă brațe
robotice și are sedii în peste 20 de țări [9]. Compania a fost creeată de William T. Townsend
în 1990. Ace sta a cr eat o diagramă pentru a ilustra efectul pe care î l produ ce o interactiune cu
un robot, ținâ nd seama de masa în mișcare și viteza relativă a efectorului robotului utilizat.
Fig. 1.3.2 Diagrama de siguranță pentru exemplul de proiectare a robotului
14
Modul in care au fost determinate zonele din fig. 1.3.2 s-a bazat pe urmatoarea formula :
𝐸
𝐴=𝑚∗𝑣2
2∗𝐴≈2∗𝐽
𝑐𝑚2
Unde :
-E este energia cinetic ă a apucătorului robotului
-A este aria pe care se dorește aflarea presiunii
-m este masa echivalentă la capătul apucătorului
-v este viteza la capătul apucătorului
3. Calculul interacțiunii om -robot propus de Universitatea din Ljublana
Universitatea din Ljublana a utilizat niș te unităț i experimentale pentru a exprima numeric
pragurile de durere , considerâ nd urmatoarele praguri [2]:
-durerea scalată de la 1 la 100;
-debutul durerii î n jurul valorii de 20
-debutul durerii în jurul valorii de 0,1 și 0,2 J / cm2
Scalare a durer ii în functie de unitaț ile experimentale este:
0…………..20 nici o durere
20…………40 durere slab ă
40…………60 durere moderată
60…………80 durere puternică
80…………100 durere insuportabilă
În fig. 1.3.3 au fost evidentiate un numar de experimente cu un impact al energiei pe o
scară de la 0 la 0.09 J/ 𝑐𝑚2 și pe grafic apare durerea simtită pe masură ce creste impactul.
15
Impact liniar
Fig. 1.3.3 Durerea simțită în funcție de impactul energiei
Conform celor prezentate î n acest capitol, problema siguranțe i interacțiunii dintre un robot ș i
operator depinde de o serie de parametri, precum viteza efectorului robotului, mas a robotului,
masa cu ca re este încă rcat efectorul. In construcția roboților destinați roboticii colaborative s –
a ținut seama de aceste aspecte și partea senzorială, de control ș i respectiv si stemul software
al acestor roboți sunt realizate în așa fel încât să se evite accidentar ea operatorului.
051015202530
1 3 5 7 9 11 13 15Scara durerii
Numărul experimentului
16
2. Rezolvarea unei sarcin i colaborative cu ajutorul
roboț ilor ABB
2.1 Specifica ții tehnice ale proiectului de licență
Pentru r ealizarea proiectului de licenț ă a fost folosit mediul de dezvoltare
RobotStudio v6.08 dezvoltat de ABB Group, o co mpanie elvețiano -suedeză , care produce
echipamente electrice ș i industriale [10].
2.1.1 RobotStudio v6.08
Programul cuprinde dife rite biblioteci care cuprind toț i robo ții dezvolta ți de această
companie, diferite obiecte și componente adiț ionale care pot fi ad augate pe robot. Este folosit
în general pentru a simula diferite sarcini cu roboț ii oferind posibilitatea utilizatorului să
simuleze diferite sarcini cu roboții și com ponente adiționale adăugate în proces. Interfața este
prietenoasă și oferă o multitudine de posibilități făcâ nd acest program foarte popu lar printre
cei care programează și lucrează cu roboții dezvoltaț i de ABB Group.
Deasemenea ABB Group a dezvoltat prop riul limbaj de programare ,RAPID, în anul
1994 î nlocuind limbajul ARLA. RAPID este folosit p entru a traduce ceea ce dezvoltă
utilizatorul în mediul de simulare contro lerului robotului care controlează robotul real.
Caracteristici ale limbajului:
expresii logice ș i aritmetice
manipularea automată a erorilor
multi -tasking
parametrii de rutină :
o proceduri – folosite ca ș i subprograme
o funcții – returnează o valoare de un anumit tip și sunt folosite ca și argumentul
unei instrucț iuni
o rutine de î ntrerupere
2.1.2 IRB 2400L
Robotul IRB 2400L a fost dezvoltat de compa nia ABB Group și este un robot cu 6
grade de libertate (fig. 2.1.2.1) creat pentru a acoperi un spațiu cât mai mare în raza de lucru
și a reduce timpul de producție datorită vitezei sale crescute [3]. Un alt avantaj este
compatibilitatea cu mai multe tipuri de control er: IRC5, S4C ș i S4C+.
17
Fig. 2.1.2.1 Reprezentarea gradelor de libertate ale robotului IRB 2400 L[12]
În fig. 2.1.2. 2 este prezentată o diagrama cu domeniul de lucru al robotului și încărcă tura
maximă a acestuia pe masură ce se modifică poziț ia[13]:
(a) (b)
Fig. 2.1.2.2 Domeniul de lucru al robotului(a) și diagrama încărcăturii (b)
18
Specificaț ii tehnice IRB 2400L:
-6 grade de libertate
-încărcă tura 7 Kg
-masa 380 Kg
-structura articulat
Viteza de mișcare a robotului pe joncțiuni: Aria acoperită de robot în funcție de
joncțiuni:
-J1 2.36rad/s -J1 ±360°
-J2 2.36 rad/s -J2 ±200°
-J3 2.36 rad/s -J3 ±125°
-J4 5.41 rad/s -J4 ±370°
-J5 5.41 rad/s -J5 ±240°
-J6 5.41 rad/s -J6 ±800°
2.1.3 S4C+ Controler
Contro lerul S4C+ (fig. 2.1.3.1) este o îmbunătăț ire a contro lerului S4. Acesta este mai
compact față de modelul precedent. Cu toate că o mare parte din si stem a ră mas la fel au fo st
aduse îmbunătățiri pe partea hardware și software care au îmbunătățit partea de control ș i
siguranță a acestui a.
Contro lerul S4C+ este scos în evidență de stabilitatea și fiabilitatea sa având un timp de
inițializare mult mai scăzut față de alte model e, reducând timpul pierdut cu iniț ializarea
sistemului . Pentru a realiza legatura cu exteriorul acesta are o placuță care pune la dispozitie
16 intrăr i și 16 ie șiri.
În caz că este necesar un numar mai mare s e pot introduce și multe placuțe cu acelaș i numar
de I/O, și având I/O analog .
19
Fig. 2.1.3.1 Controler S4C+
Controlerul are 2 moduri în care poate funcț iona robotul:
Manual – robotul se mișcă cu o viteză redus ă, limitâ nd operatorul la o viteza de
0.5m/ 𝑠2, permițând execuț ia programului pas cu pas, sau execuția î ntregului program.
Este recomandat în simulari pentru a observa miș carea robotului la fiecare pas
Automat – robotul se mișcă cu viteză maximă executând programul încărcat până
când întalneș te instrucțiunea de oprire în codul î ncărcat sau este trecut iar în modul
manual. Este recomandată folosire a dupa ce programul a fost mai întai testat î n modul
manual
Acesta permite încarcărea programelor dezvoltate î n RAPID, execuția pas cu pas sau a
întregului program, cât și miș carea robot ului folosind consola de comandă fără a încărca un
program adiț ional.
20
2.2 Rezolvarea unei aplicații folosind robotul IRB 2400 și mediul
RobotStudio
2.2.1 Mediul de simulare RobotStudio
Scopul aplica ției dezvoltate este de a realiza aruncarea unui obiect dintr -un punct fix la un
punct dat de operator. Pentru acest tip de sarcini de obicei se programează robotul să plaseze
un obiect într -un anumit lo c, însă aceasta adu ce limitări î n ce privește aria de lucru a
robotului. Unele obiecte nu necesită aranjare fixă și în cazul în care nu sunt casante pot fi
aruncate, lărgind astfel aria de lucru a robotului.
În aplicația dezvoltată obiectul va fi aruncat spre locul în care operatorul indică,
introducând coordonatele de la consola controlerului robotului. Acest tip de operație necesită
prezența unui operator uman, fiind o aplicație colaborativă , în care robotul execută o operație
în funcție de comanda primită de la operator.
Pentru realizarea aruncării mingii de către robot prima dată s-a folosit mediul de simulare.
Am î nceput prin a studia dinamica obiectelor din RobotStudio v6.08. Un obiect se poate află
în mai multe stari î n timpul s imulă rii:
inactiv – obiectul nu ia parte la simulare
fixat – obiectul rămâne într -o poziție fixă pe toată durata simularii dar interacționează
cu alte obiecte
cinematic – obiectul nu se mișcă dar interacționează cu alte obiecte în timpul simulă rii
dinami c – obiectul participă la simulare respec tând legile fizice (gravitația, inerția,
proprietăț ile materialului din care este făcut) și interacționează cu celelalte obiecte pe
toată durata simulă rii.
Deaseme nea RobotStudio pune la dispoziție o gamă de materiale standard predefinite
din care poa te fi compus un obiect creat având la dispoziție un numar de proprietaț i.
Primul pas a fost testarea acestor stări ș i materiale pentr u a observa comportamentul
lor în timpul simul ării. S -a realizat o operație simplă de ridicare a mingii de pe masă ș i
elibe rarea ei. Mingea a fost simulată de o sferă al carei stare a fost selectat ă fiind dinamică
pentru a participa la simulare și a interacț iona cu obiectele din mediu. Materialul selectat a
fost cauciuc , predefinit î n RobotStudio.
Urmatorul pas î n rezolvarea proiectului de licență a fost cr earea mai multor traiectorii
posibile pentru a efectua operaț ia de aruncare pe robot, nu doar î n mediul de simulare, cu
scopul de a observa diferite posibilităț i pentru a atinge scopul propus.
Dupa ce a fost găsită o traiectorie care facea posibilă aruncarea obiectului î n laborator
s-a realizat calculul matematic ș i s-a folosit un simulator online pentru a verifica dacă
formula matematică folosită a dat rezultate.
Pasul final a fost realizarea unui program care folosi ndu-se de coordo natele introduse
de operator, să arunce proiectilul la punc tul dorit. Pentru aceasta s -a căutat o formulă care
modifica viteza de aruncare astfel încât obiectul în cauza să ajungă la coordonatele date de
operator.
21
Dupa ce a fost găsită form ula a fost realizat un p rogram RAPID care dupa ce primeș te
coordonatele de la operator modifică viteza și punctul de aruncare astfel î ncat proiectilul
ajunge î n punctul dorit.
Pentru introducerea coodonatelor s -a folosit ca sistem de referință (Target_10_4 ),
punctul din care robotul pleacă spre punctul de aruncare.
2.2.2 Rezolvarea problemei teoretice
Pentru a determina locul în care ajunge mingea în urma aruncării s -a cautat o formulă
matematică prin care putem afla punctul final [5]:
Ecuațiile mișcării știind că aruncarea nu se face de la nivelul solului sunt :
𝑥(𝑡)=𝑣∗𝑡∗cos𝜃 (1)
și
𝑦(𝑡)=𝑦0+𝑣∗𝑡∗sin𝜃−1
2∗𝑔∗𝑡2 (2)
Rezolvăm ecuația pentru (t) în cazul în care poziția proiectilului este la nivelul solului :
0=𝑦0+ 𝑣∗𝑡∗sin𝜃−1
2∗𝑔∗𝑡2 (3)
Aflăm (t) folosind formula pentru ecuații de gradul II:
𝑥=−𝑏±√𝑏2−4∗𝑎∗𝑐
2∗𝑎 (4)
Din cauză că viteza și sinusul unghiului de lansare vor fi pozitive soluția obținută este :
𝑡=𝑣∗cos 𝜃
𝑔+√𝑣2∗𝑠𝑖𝑛2𝜃+2∗𝑔∗𝑦0
𝑔 (5)
Înlocuind (5) în (1) obținem :
d=𝑣2
2∗𝑔(1+√1+2∗𝑔∗𝑦0
𝑣2∗𝑠𝑖𝑛2𝜃)∗sin2𝜃 (6)
unde :
d = x(t) = distan ța orizontală parcursă de proiectil
v = viteza proiectilului la momentul aruncă rii
g = accelerația gravitațională (valoa rea considerată : 9.81m/ 𝑠2)
𝜃= unghiul la care proiectilul este lansat
22
𝑦0= înaltimea inițială de la care este aruncat proiectilul
Fig. 2.2.2.1 Traiectoria proiectilului de la înălțimea 𝑦0
În fig. 2.2 .2.1 este prezentat schematic trai ectoria unui proiectil și sunt ilustraț i
vectorul vitezei v, distanț a d parcursă de acesta, înalțimea inițială 𝑦0 de la care este aruncat ș i
unghiul 𝜃 dintre directia de aruncare ș i planul orizontal.
Pentru a realiza obiectivul propus, acela d e a programa robotul sa arunce într -un
anumit punct, s -a căutat o formulă pentru a determina viteza cu care trebuie aruncat
proiectilul pentru a ajunge la coordonatele date de operator [8].
S-a ales viteza ca parametru care va fi schimbat deoarece o schimbare a unghi ului ar
fi putut fi problematică ținând cont de limită rile din laborator.
Din ecuațiile mișcării
𝑥(𝑡)=𝑣0∗𝑡∗cos𝜃 (7)
și
𝑦(𝑡)=𝑣0∗𝑡∗sin𝜃−1
2∗𝑔∗𝑡2 (8)
Rezolvăm ecuația pentru (t) și obținem
𝑡=2∗𝑣0∗cos 𝜃
𝑔 (9)
Înlocuim în (7)
𝑥(𝑡)=2∗𝑣02∗cos 𝜃∗𝑠𝑖𝑛𝜃
𝑔 (10)
Știind că
23
sin2𝜃=2∗cos𝜃∗𝑠𝑖𝑛𝜃 (11)
Obținem formula pentru distanța parcursă de un proiectil [5]:
𝑑=𝑣02∗sin2𝜃
𝑔 (12)
Scoatem viteza și obținem :
𝑣0=√𝑑∗𝑔
sin2𝜃 (12)
𝑣0 = viteza
d = distanța care va fi parcursă
𝜃 = unghiul di recției de aruncare
g = accelerația gravitațională .
2.2.3 Aflarea parametrilor
Pentru a găsi parametrii necesari am folosit datele din RobotStudio. Viteza este data
de parametrul speed , setat în mediul de simulare și variază de la 5mm/s pana la vmax ,
parametru care reprezinta viteza maximă permisă de traiectoria în cauză. Pentru robo tul
folosit viteza maximă în real este de 3000mm/s.
Pentru a ilustra î naltimea de la care a fost aruncata mingea, s -a setat robotul ca fiind
originea sistemului de coordonate. Punctul B din fig. 2.2.3.1 este cel care dă înălțimea de la
care este eliberată mingea de catre apucător. Pentru a afla înalț imea se foloseste coordonata z
exprimata î n mm.
Urmă torul parametru a fost unghiul la care a fost lansat obiectul î n cauz ă. Pentru a
afla 𝜃 am cr eat un triungh i dreptunghic unind punctele A și B î n punctul C (fig. 2.2.3.1 ). Am
extras valorile axelor z si y pentru cele 3 puncte , apoi folosind formula distanț ei dintre 2
puncte am calculat dimensiunile laturilor AB si BC (ipotenuza și cateta opusă unghiului 𝜃).
Formula distanț ei dintre 2 puncte :
AB=√(𝑥2−𝑥1)2+(𝑦2−𝑦1)2 (13)
Reprezentarea punctelor:
A(-848,622)
B(-289,1892)
C(-289,622)
S-a aflat valoarea lui sin( 𝜃) cu formula:
sin(𝜃)=𝐵𝐶
𝐴𝐵 =x unde BC este cateta opusă unghiului, AB este ipotenuza triunghiului
dreptunghic iar x valoar ea obținută .
24
Valoarea unghiului 𝜃 a fost determinat ă folosind formula:
𝜃=sin−1(𝑥)
În urma calculelor au rezultat:
AB=1,38m
BC=1,270m
x=0,92
𝜃=67°
𝑑=1,126m
𝑦0= 1,892m
𝑣=3m/s
Fig. 2.2. 3.1 Ilustrarea punctelor folosite în determinarea parametrilor
În continuare s -a pornit de la formula 2.2.2.2 pentru a realiza a runcarea proiectilului î n locul
dorit de operator. Pentru aceasta programul are nevoie de 2 coordonate, x și y, introduse de la
consolă de factorul uman. Dupa ce primeș te ac este puncte programul se folosește de datele
acestea și împreună cu alte date deja știute de program urmează algoritmul pentru a determina
viteza dorită.
Se va folosi aceiaș i traiectorie, schimbâ ndu-se doar vitez a de aruncare ș i punctul final.
25
Pentru a afla care este punctu l final de aruncare am ales sa îl mut astfel încât să fie coliniar cu
punctul inițial de plecare ș i punctul introdus de operator la consolă .
Fie trei puncte A( 𝑥𝑎,𝑦𝑎), B( 𝑥𝑏,𝑦𝑏), C( 𝑥𝑐,𝑦𝑐)
Punctele A,B,C sunt coliniare dacă și numai dacă
|𝑥𝑎𝑦𝑎1
𝑥𝑏𝑦𝑏1
𝑥𝑐𝑦𝑐1|=0 (14)
De aici scoatem 𝑦𝑏, coordonata necesară programului :
𝑦𝑏=𝑥𝑎∗𝑦𝑐+𝑥𝑏∗𝑦𝑎−𝑥𝑏∗𝑦𝑐−𝑦𝑎∗𝑥𝑐
𝑥𝑎−𝑥𝑐 (15)
Înlocuim 𝑥𝑐 și 𝑦𝑐 cu 𝑥𝑝𝑓 și 𝑦𝑝𝑓 folosite în programul realizat în RobotStudio și obținem :
𝑦𝑏=𝑥𝑎∗𝑦𝑝𝑓+𝑥𝑏∗𝑦𝑎−𝑥𝑏∗𝑦𝑝𝑓−𝑦𝑎∗𝑥𝑝𝑓
𝑥𝑎−𝑥𝑝𝑓 (16)
Unde :
𝑥𝑎, 𝑦𝑎 – coordonatele punctului de plecare ( Target_10_4 )
𝑥𝑏,𝑦𝑏 – coordonatele punctului de aruncare (Target_10_5 )
𝑥𝑝𝑓,𝑦𝑝𝑓 – coordonatele introduse de operator.
Dupa ce a fost modificat 𝑦𝑏 astfel încât punctele să fie coliniare se va calcula unghiul 𝜃 care a
fost modificat în urma modifică rii axei y a punctului de aruncare.
Se calculeaza din nou distanțele AB și BC și apoi se calculează teta folosind formula
𝜃 = sin−1𝑥 (17)
Unde :
x = 𝐴𝐵
𝐵𝐶 (18)
transpusă în limbaj RAPID formula devine
𝜃 = ASin (𝑥) (19)
În urma a flării unghiului se va calcula distanța aruncării scă zându-se din coordonata x a
punctului final coordonata x a punctului de aruncare.
Dupa ce au fost a flați toți parametrii se calculează viteza cu formula (2.2.2.2) și se modifică
coordonata y a punctului de aruncare.
Considerând faptul că se modifică un punct î n urma apelarii procedurii după ce este aruncată
mingea se revine la valorile inițiale pentru a nu influența calculele în caz că se rein troduc alte
valori de la consolă .
26
2.2.4 Projectile Motion
Projectile Motion este un simulator dezvoltat d e Walter Fendt, un site care cr eează
simulatoare pentru diferite procese fizice [11]. Am folosit acest simulator pentru a evidenția
întreg procesul de aruncare a mingii folosind datele de mai sus. Acest simulator n eglijează
forța de frecare a aerului, care în acest caz nu influentează foarte mult proce sul, deoarece
impactul pe care îl are această forță asupra mingii este neglijabil ș i nu aduce modificari
perceptibile.
Fig. 2.2. 4.1 Interfața aplicației Projectile Motion
În fig. 2.2.4.1 este ilustrat simulato rul online cu datele introduse ș i locul unde a aju ns
mingea dupa ce a fost pornită simularea.
Axa y reprezintă î naltimea de la care a fost aruncat obiectul, axa x reprezinta distanța,
amblele masurate î n metri. Programul deasemenea calculeaza timpul necesar proiect ilului
pentru a parcurge distanța și ilustrează grafic traiectoria începând de la punctul inițial până la
cel final.
În urma datelor obținute din calcule ș i din simulator d e poate observa o mica diferență
între rezultatele finale :
distanta î n urma calculelor: 1,126m
distanta în urma simulă rii: 1.13m
Simulatoru l a facut o aproximare a distanț ei, dar ofera un rezultat satisfacator, f oarte
apropiat de cel teoretic și cel practic obtinut î n laborator în urma procesului de aruncare.
În urma experimentelor facu te pe robot ș i verificate apoi î n acest simulator au rezultat
similaritați, rezult ând că metoda folosită pentru a realiza sarcina de aruncare la coordonatele
intro duse de operator este bună și dă rezultate.
Pentru a verifica rezultate le obț inute pe robot cu cele din simulator am realizat întâ i
aruncarea pe robo t dupa care am introdus datele î n simulator și am comparat rezultatele. Am
folosit viteza obținută din calculele facute de programul folosit pe robot pentru a verifica daca
dista ntele obținute din simulator și introduse inițial î n program sunt aceleași. Din cauză că
27
formula folosită în program nu ia în calcul ș i masa proiectilului au aparut diferențe relativ
mici î n rezultatele obținute.
2.2.5 Configurarea apucă torului
Mingea a fos t prinsă folosi nd un apucă tor atașat de robot, Gripper_R2400. Pentru a -l
controla acesta a fost conectat la r obot prin semnale de intrare/ieș ire, ilustrat în fig. 2.2. 5.1.
Pentru a închide ș i a deschide apucatorul am folosit o s erie de semnale î n mediul de
simulare.
Pentru des chidere:
SetDO11_7.1
SetDO11_8.0
Pentru î nchidere:
SetDO11_7.0
SetDO11_8.1
Fig. 2.2. 5.1 Conectarea robotului cu apucătorul prin semnale intrare/ieșire
2.2.6 Realizarea traiectoriei în RobotStudio
Datorită limitarilor întâlnite î n laborator s -a folosit o singură traiectorie pentru aruncare
și s-a modificat doar punctul de aruncare. Plasarea robotului nu a permis realizarea
multiplelor traiecto rii și a limitat foarte mult ra za în care robotul p oate efectua o astfel de
sarcină .
Coordonatele care vor fi introduse de utilizator au de asemenea limitări, pentru
coordonata x începând de la 1074mm ș i ajung ând până la 2000 mm, iar pentru y de la –
28
200mm până la 50 mm. Coordonatele acestea folosesc ca sistem de referință (Target_10_4 ),
de la el pornind m ăsură torile pentru cele 2 puncte introduse de operator.
Pentru că punctul de aruncare se află la 1074 mm de punctul de plecare, aceiași distanță a
fost aleasă ca și distanță minimă care poate fi introdusă de operator. Limitarea de 20 00mm
este necesa ră deoarece robotul nu poate atinge o viteza mai mare de 3000mm/s.
În cazul axei y, limită rile sunt mai mici, deoarece robotul ar putea l ovi alte obiecte din
laborator în cazul î n care se trece de aceste limite . Deasemenea și configuraț ia robotului poate
influenț a zonele î n care acesta poate a junge. Pentru a evita ca această limitare sa influenț eze
procesul atingerii punctului de aruncare s-a deza ctivat folosirea unei configurații pentru
mișcarea liniar ă iar după ce a atins pun ctul dorit a fost reac tivată pentru a nu î ntampina
probleme.
Programul î ncepe cu defini rea coordonatelor targeturilor î n RAPID, definirea
apucatorului , a vitezei care va fi modificată în urma utilizarii formulei ș i a constantelor
folosite de program.
Urmatorul pas est e introducerea coordonatelor x și y de către operator la consolă . După
ce op erato rul introduce coordonatele, se î ncepe aflarea parametrilor necesari și calcularea
vitezei și a noului punct de aruncare.
Se apeleaz ă procedura î n care este real izată traiectoria aruncă rii:
Pornind de la Target_10_2, care se află deasupra mingii, aflată pe masă, robotul coboară
spre Target_10 pentru a prinde mingea , asteaptă o secund ă, instrucțiune introdusă cu ajutorul
funcției WaitTime. După ce primeș te comanda de închidere a apucătorului se asteaptă din
nou o secund ă și robotul se reîntoarce î n Target_10_2.
Dupa , brațul robotic iese din raza mesei , trecând prin Target_10_3 și se îndreaptă spre
cel mai jos punc t al traiectoriei, Target_10_4. Toate aceste mi șcări au f ost executate cu o
viteză de 0.3 m/𝑠2.
Urmatoarea mișcare spre cel mai î nalt punct, Target_10_5, care este și punctul în care
mingea este eliberată de apucator. Viteza dintre aceste două puncte este de vmedium m/𝑠2,
parametrul vmedium fiind modificat î nainte de apelarea procedurii.
Pentru a elibera mingea în timp util s -a introdus o întârziere înainte de deschiderea
apucătorului de 0.4 secunde, astfel încât mingea să fie elibera tă cu puțin timp înainte de
execuția urmatoarei instrucț iuni.
Target_10_6 a fost introdus la final ca și o corecție. Datorită inerț iei, robotul iși modifică
puțin poziția finală, Target_10_5, mingea neajungâ nd la punctul final stabilit . Odata c u
introducerea unei noi instrucț iuni a ceastă problema a disparut și obiectivul era atins după
fiecare aruncare.
După ce a fost apelată procedura de mai sus, Target_ 10_5 revine la coordonatele inițiale,
și robotul asteaptă reintroducerea coordonatelor de că tre operator.
Procedura descris ă mai sus s e găsește ilustrată î n fig 2.2.6.4.
Traiectoria urmată de robot pentru a realiza aruncarea este ilustrată in fig 2.2. 6.3.
Instrucțiunile folosite î n RobotStudio sunt [7]:
SetDO – setează un semnal de ieș ire
29
MoveJ – mișcare din jon cțiuni (robotul se mișcă dintr -un punct î n altul neliniar)
WaitTime – introduce în simulare un timp de aș teptare
ConfL \Off – dezactivează configuraț ia
ConfL \On – activează configuraț ia
MoveL – mișcare liniară
TPWr ite – afișează un mesaj pe consolă
TPReadNum – citește un numar de la consolă
Siste mul primește de la operator două date de intrare iar ca și ieșire are viteza și noul punct de
aruncare , ilustrat în figura de mai jos :
Fig. 2.2.6.1 Reprezentarea sistemului
Schema logică a programului RAPID este descrisă în figura de mai jos :
Fig. 2.2 .6.2 Schema logică a programului
30
Fig. 2.2. 6.3 Traiectoria inițială pentru aruncarea proiectilului
Fig. 2.2. 6.4 Procedura în care este realizată aruncarea
31
2.3 Concluzii
În urma testelor efectuate în laborator pe parcursul realiză rii proiectului am ajuns la
concluzia c ă aruncarea nu este foarte precis ă având erori în ceea ce privește aruncarea î n
acela și punct.
Diferențe vizibile apar doar la modificări între coordonate de cel puț in 15cm . În cazul în
care se folosesc diferențe mai mici rezultatul final va fi nesatisfăcător.
Au fost facute teste pe distanță între 1200mm si 2000mm și au apărut probleme î ntre
1600 și 1700, mingea fiind în cele mai multe cazu ri în aceiași arie, diferenț a dintre cele două
distanțe fiind relativ mică .
Pe coordonata y s -au facut teste de la -200mm pana la 50 mm începand de la -200 și
crescâ nd cu 50mm până la maxima de 50 mm. S-a observ at modificarea punctului î n care
ajunge obiect ul, eroarea fiind mult mai mică decât cea de pe coordonata x(distanț a).
Una dintre probleme ar putea fi eliberarea proiectilului. Eliberarea proiectilului se face la
0.4s după ce a plecat din ( Target_10_4 ). Având în vedere faptul că distanța dintre cele do ua
puncte se modifică și timpul răm âne la fel, micile diferențe afectează locul în care ajunge
proiectilul .
O alta problemă este faptul că formula matematică nu ia în considerare masa proiectilului
și forța de frecare cu aerul. În cazul în care se modifica masa proiectilului punctul în care va
ajunge se va modifica deasemenea.
2.4 Posibilități de dezvoltare
Pentru a îmbunătăț i proiectul se poate lucra atât pe partea matematică a acestuia cât ș i pe
partea de robotică .
În ceea ce privește partea matematică se pot dezvo lta formulele pentru a include ș i
anumi ți parametri ignora ți inițial cum ar fi masa obiectului și forț a de frecare cu aerul.
În ceea ce privește partea de robotică se poate dezvolta algoritmul p entru a acoperi zone
mai mari. În cazul în care se pot elimina restricțiile din laborator se poate îmbună tăți
programul astfel încat sa ajungă pe dista nte mai mari și să acopere o arie mult mai mare în
care poate arunca obiectele dorite de operator.
Alte îmbunătăți ri ar putea fi aduse traiectoriei, făcând astfel operația mai rapida și mai
eficientă, optimizând viteza și timpii de asteptare în funcț ie de coordonatele i ntroduse.
32
Bibliografie
1. Lightweight robots and Collaborative Robotics, Jerome Laplace, CEO, Human
Robotics
2. Industrial Safety Requirements for Collaborative Robots and Applications, Björn
Matthias, ABB Corporate Research, 2014 -03-10
3. https://www.robots.com/robots/abb -irb-2400l
4. https://www.keyence.com/ss/products/safetyknowledge/performance/level/
5. https://en.wikipedia.org/wiki/Range_of_a_projectile
6. https://library.e.abb.com/public/688894b98123f87bc1257cc50044e809/Technical%20
reference%20manual_RAPID_3HAC16581 -1_revJ_en.pdf
7. http://rab.ict.pwr.wroc.pl/irb1400/datasys_rev1.pdf?fbclid=IwAR20UOu4M2Mv3s_c
BtZ-0CnsLwUpSSjnfzDXBtLPkMRGajVTSaz0Xxj8gu4
8. https://www.ajdesigner.com/phpprojectilemotion/range_equation_initial_velocity.php
#ajscroll
9. https://en.wikipedia.org/wiki/Barrett_Technology
10. https://ro.wikipedia.org/wiki/ABB_Group
11. https://www.walter –
fendt.de/html5/phen/projectile_en.htm?fbclid=IwAR2QDfSepNesW4u2tyViZi_4Dac
cC0LvlhXNM3a4tSv3AeEa3NWpojujiuE
12. https://www.researchgate.net/figure/Kinematic -Model -of-the-IRB-2000 –
robot_fig2_262448060
13. http://robotkar.com/abb/
Anexe
Codul RAPID
MODULE Module1
CONST robtarget Target_10_2:=[[713.839903676, –
960.734394491,901.999988279],[0.000000008,0.5,0.866025404, -0.000000002],[ –
1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_10:=[[709.362842338, –
955.417457344,781.99 9944706],[0.000000008,0.5,0.866025404, -0.000000002],[ –
1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_10_3:=[[391.61991324, –
1041.704459405,871.169608161],[0,0.5,0.866025404,0],[ -1,0,-
1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget Target_10_4:=[[105.505256302, –
848.724896361,622.576045749],[0,0.5,0.866025404,0],[ -1,0,-
1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
33
PERS robtarget Target_10_5:=[[1074.51, –
289.27,1892.86],[0.72379,0.0761634,0.66211, –
0.178709],[0,0,0,0],[9E+0 9,9E+09,9E+09,9E+09,9E+09,9E+09]];
PERS tooldata
Efector:=[TRUE,[[0,0.033033672,184.3],[1,0,0,0]],[1.5,[0,0,90],[1,0,0,0],0.01,0.01,0.01]];
PERS wobjdata wobj12:=[FALSE,TRUE,"",[[0,0,0],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];
PERS tooldata
MyTool:=[TRUE, [[31.792631019,0,229.638935148],[0.945518576,0,0.325568154,0]],[1,[0,
0,1],[1,0,0,0],0,0,0]];
PERS wobjdata wobj13:=[FALSE,TRUE,"",[[0,0,0],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];
CONST robtarget Target_10_6:=[[1084.495616882, –
306.56717862,1389.235197993],[0. 508022222, -0.232124695,0.749724245, –
0.354887453],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
VAR speeddata vmedium := [ 1000, 500, 5000, 1000 ];
PROC main()
!declarare coordonate punct de plecare
VAR num xa := 105.51;
VAR num ya := -848.72;
VAR num za := 622.58;
!declarare coordonate punct de aruncare initial
VAR num xb := 1074.51;
VAR num yb := -289.27;
VAR num zb := 1892.86;
!declarare coordonate ajutatoare. vor fi folosite pentru a calcula distanta aruncarii si
unghiul teta
VAR num xc := 1074.51;
VAR num zc := 622.58;
!declarare coordonate finale. vor fi introduse de la consola
VAR num xpf ;
VAR num ypf ;
VAR num g := 9.81; !acceleratia gravitationala
VAR num yb_new; !coordonata y a punctului de aruncare dupa finalizarea calculelor
34
VAR num coord_diff; !diferenta in milimetri dintre coordonata y veche a pu nctului de
aruncare si cea noua
VAR num ab; !distanta de la punctul de plecare pana la cel de aruncare
VAR num bc;!distanta de la punctul de plecare pana la punctul fictiv c
VAR num teta; !unghiul dintre ab si bc
VAR num x; !raportul dintre ab si bc
VAR num d; !distanta de aruncare
VAR num sin_2teta; !sin(2*teta)
VAR num v; !viteza cu care va fi aruncat obiectul de catre robot
!citire de la consola a coordonatelor de aruncare.
TPWrite " x trebu ie sa fie intre 1074.51 si 2000 ";
TPReadNum xpf, "introduce coordonata x a punctului final:";
WHILE xpf< 1074.51 OR xpf >2000 DO
TPWrite " x trebuie sa fie intre 1074.51 si 2000 ";
TPReadNum xpf, "introduce coordon ata x a punctului final:";
ENDWHILE
TPWrite " y trebuie sa fie intre -200 si 50 ";
TPReadNum ypf, "introduce coordonata y a punctului final:";
WHILE ypf< -200 OR ypf >50 DO
TPWrite " y trebuie sa fie intre -200 si 50 ";
TPReadNum ypf, "introduce coordonata y a punctului final:";
ENDWHILE
yb_new := (xa*ypf + xb*ya – xb*ypf – ya*xpf)/(xa – xpf); !calcularea coordonatei y noi
! formare punct virtual c
xc := xb;
zc := za;
!caclulare laturi pentru a afla Sin(teta)
ab := (sqrt((za – zb)*(za – zb) + (xa – xb)*( xa – xb)))/1000;
bc := (zb – zc)/1000;
35
x := bc/ab;
!aflare unghi in grade
teta := ASin(x);
d := (xpf – xc)/1000; !calcularea distantei de aruncare
sin_2teta := sin(2*teta); !calculare sin(2*teta)
TPWrite "sin2teta = " \Num:=sin_2teta;
IF sin_2teta<0 THEN
sin_2teta:=sin_2teta*( -1);
ENDIF
v := sqrt((d*g)/sin_2teta);!calcularea vitezei necesare de aruncare
TPWrite "viteza este: " \Num:=v;
Target_10_5.trans.y:=yb_new;
vmedium.v_tcp := v * 1000; !viteza este calculata in m/s iar viteza robotului este in
mm/s
Path_10;
!se revine la coordonatele initiale
Target_10_5.trans.x:=xb;
Target_10_5.trans.y:=yb;
Target_10_5.trans.z:= zb;
ENDPROC
PROC Path_10()
SetDO DO11_7,1;
SetDO DO11_8,0;
MoveJ Target_10_2,v300,z100,Efector \WObj:=wobj13;
WaitTime 1;
MoveJ Target_10,v300,z100,Efector \WObj:=wobj13;
WaitTime 1;
SetDO DO11_7,0;
SetDO DO11_8,1;
WaitTime 1;
MoveJ Target_10_2,v300,z100,Efector \WObj:=wobj13;
36
MoveJ Target_10_3,v300,z100,Efector \WObj:=wobj13;
MoveJ Target_10_4,v300,z100,Efector \WObj:=wobj13;
ConfL \Off;
MoveL Target_10_5,vmedium,z100,Efector \WObj:=wobj13;
ConfL \On;
WaitTime 0.4;
SetDO DO11_7,1;
SetDO DO11_8,0;
MoveJ Target_10_6,v300,z100,Efector \WObj:=wobj13;
ENDPROC
ENDMODULE
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: SPECIALIZAREA AUTOMATICĂ și INFORMATIC Ă [610311] (ID: 610311)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
