58
UNIVERZA V MARIBORU FAKULTETA ZA STROJNIŠTVO FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Alen KOLMAN PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Diplomsko delo univerzitetnega študijskega programa 1. stopnje Mehatronika Maribor, september 2017

PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

  • Upload
    others

  • View
    17

  • Download
    1

Embed Size (px)

Citation preview

Page 1: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

UNIVERZA V MARIBORU

FAKULTETA ZA STROJNIŠTVO

FAKULTETA ZA ELEKTROTEHNIKO,

RAČUNALNIŠTVO IN INFORMATIKO

Alen KOLMAN

PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5

ZA MET NA KOŠ

Diplomsko delo

univerzitetnega študijskega programa 1. stopnje

Mehatronika

Maribor, september 2017

Page 2: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5

ZA MET NA KOŠ

Diplomsko delo

Študent: Alen KOLMAN

Študijski program: univerzitetni študijski program 1. stopnje Mehatronika

Mentor FS: izr. prof. dr. Karl GOTLIH

Mentor FERI:

izr. prof. dr. Aleš HACE

Maribor, september 2017

Page 3: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,
Page 4: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

II

I Z J A V A

Podpisani Alen Kolman izjavljam, da:

• je diplomsko delo rezultat lastnega raziskovalnega dela,

• predloženo delo v celoti ali v delih ni bilo predloženo za pridobitev kakršnekoli izobrazbe

po študijskem programu druge fakultete ali univerze,

• so rezultati korektno navedeni,

• nisem kršil-a avtorskih pravic in intelektualne lastnine drugih,

• soglašam z javno dostopnostjo diplomskega dela v Knjižnici tehniških fakultet ter

Digitalni knjižnici Univerze v Mariboru, v skladu z Izjavo o istovetnosti tiskane in

elektronske verzije zaključnega dela.

Maribor,_____________________ Podpis: ________________________

Page 5: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

III

ZAHVALA

Zahvaljujem se mentorjema izr. prof. dr. Alešu HACETU

in izr. prof. dr. Karlu GOTLIHU ter vsem asistentom za

pomoč in vodenje pri opravljanju diplomskega dela.

Zahvaljujem se staršema, ki sta mi omogočila šolanje

ter vsem drugim, ki so me vzpodbujali pri študiju in

pisanju diplomske naloge.

Page 6: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

IV

PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ

Ključne besede: kolaborativni robot UR5, robotski met na koš, programiranje, PolyScope, UR

script, Python

UDK: 004.42:007.52(043.2)

POVZETEK

V diplomski nalogi je predstavljeno programiranje kolaborativnega robota podjetja Universal

Robots UR5 in robotski met žoge na koš. Ker razvoj robotike sili k vse večjemu sodelovanju ljudi

in robotov smo se odločili, da naredimo takšno aplikacijo, kjer lahko robot in človek izmenično

mečeta žogo na koš, ter posledično tekmujeta kdo večkrat zadane. V diplomski nalogi je najprej

predstavljen robot in osnovni programerski ukazi, nato pa sledi pisanje programa in izdelava

komponent, ki omogočajo izvedbo giba in zadetek žoge v obroč koša. Rezultati so pokazali, da

se lahko robot uspešno kosa s človekom pri metu žoge na koš. Delo je bilo opravljeno v

Laboratoriju za industrijsko robotiko na UM FERI.

Page 7: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

V

PROGRAMMING OF THE COLLABORATIVE ROBOT UR5 FOR ROBOTIC FREE

THROW

Key words: collaborative robot UR5, robotic free throw, programming, PolyScope, UR script,

Python

UDK: 004.42:007.52(043.2)

ABSTRACT

This diploma represents programming the collaborative robot UR5 from Universal Robots

company and robotic free throw. Because the development of robotics is increasing towards

the cooperation of humans and robots, we decided to make such an application where a robot

and a human alternately throw a ball into a basket and consequently compete who strikes

more scores. First, a robot and basic programming commands are represented, followed by

writing a program and creating components that allow such movement where a ball hits the

basket. The results have shown that the robot can successfully compete with a man at the free

throw application. Diploma was made in the Laboratory for Industrial Robotics at UM FERI.

Page 8: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

VI

KAZALO VSEBINE

1 UVOD ....................................................................................................... 1

2 OPIS ROBOTA UR5 .................................................................................... 4

Komponente sistema .......................................................................... 4

Nastavitve .......................................................................................... 6

3 PROGRAMIRANJE ROBOTA ....................................................................... 8

Grafično okno vmesnika ..................................................................... 9

Struktura programa .......................................................................... 10

Funkcije ............................................................................................ 11

Skriptni jezik URScript ...................................................................... 11

Premikanje ....................................................................................... 14

Vrste premikov ................................................................................. 15

Interpolacija v notranjih koordinatah s trapeznim profilom hitrosti . 16

4 POVEZAVA Z RAČUNALNIKOM ............................................................... 22

Sistemska arhitektura ....................................................................... 23

Odjemalec na računalniku v programu Python ................................. 24

Strežnik na robotu v Skriptnem jeziku .............................................. 25

Obdelava pridobljenih podatkov in analiza ....................................... 28

5 APLIKACIJA MET NA KOŠ ........................................................................ 29

Fizikalno ozadje meta ....................................................................... 29

Prijemalo .......................................................................................... 30

Aplikacija met na koš ........................................................................ 33

Program ........................................................................................... 34

6 REZULTATI .............................................................................................. 37

7 SKLEP ..................................................................................................... 39

8 VIRI IN LITERATURA ................................................................................ 41

9 PRILOGE ................................................................................................. 42

Page 9: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

VII

Robotski program ............................................................................. 42

MATLAB program za meritev časa odpiranja prijemala ..................... 44

MATLAB program računanje skaliranih podatkov pri trapeznem profilu

45

Page 10: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

VIII

KAZALO SLIK

Slika 1.1: Tehnika meta žoge nad glavo ...................................................................................... 1

Slika 2.1: Komponente robotskega sistema ............................................................................... 5

Slika 2.2: Koordinatni sistemi robota ......................................................................................... 5

Slika 2.3: Pozdravni zaslon .......................................................................................................... 6

Slika 2.4: Nastavitev omrežja ...................................................................................................... 6

Slika 2.5: Nastavitev TCP točke za naš primer ............................................................................ 7

Slika 2.6: Nastavitev vhodov in izhodov za naš primer .............................................................. 7

Slika 3.1: Okno ob zagonu programa .......................................................................................... 8

Slika 3.2: Tipka za zagon in ustavitev robota .............................................................................. 8

Slika 3.3: Grafično okno vmesnika .............................................................................................. 9

Slika 3.4: Struktura programa ................................................................................................... 10

Slika 3.5: Funkcija moveJ v za naš program .............................................................................. 12

Slika 3.6: Premikanje v notranjih in zunanjih koordinatah ....................................................... 14

Slika 3.7: Spajanje segmentov poti z radijem ........................................................................... 16

Slika 3.8: Trapezni profil hitrosti ............................................................................................... 16

Slika 3.9: Hitrosti posameznih sklepov pri metu žoge .............................................................. 19

Slika 3.10: Zasuk posameznih sklepov pri metu žoge .............................................................. 20

Slika 4.1: Arhitektura sistema ................................................................................................... 23

Slika 4.2: Koda za prenos na računalniku ................................................................................. 24

Slika 4.3: Koda za prenos na robotskem krmilniku .................................................................. 25

Slika 4.4: Diagram poteka pri izmenjavi podatkov ................................................................... 27

Slika 5.1: Trajektorija poševnega meta za naš robotski met .................................................... 29

Slika 5.2: Koda za odpiranje prijemala ..................................................................................... 30

Slika 5.3: Podaljšek s prijemalom v programu SolidWorks ...................................................... 31

Slika 5.4: Zanka za preverjanje stanja digitalnega vhoda ......................................................... 31

Slika 5.5: Čas zakasnitve odpiranja prijemala ........................................................................... 32

Slika 5.6: Skica tokokroga za meritev časa odpiranja prijemala ............................................... 32

Slika 5.7: Robotska aplikacija meta na koš ............................................................................... 33

Slika 5.8: Položaji robota pri metu ........................................................................................... 34

Slika 6.1: Maksimalna in minimalna možna razdalja meta ...................................................... 37

Page 11: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

IX

UPORABLJENI SIMBOLI

𝐷𝑠 razdalja do koša v [m]

𝑑 razdalja med košem in baznim koordinatnim sistemom v [m]

𝐻 višina izmeta v [m]

𝐿𝑖 zasuk i-tega sklepa med gibom v [rad]

𝑡𝑎 čas pospeševanja v [s]

𝑡𝑑 čas zaviranja v [s]

𝑡𝑒 čas enakomernega gibanja v [s]

𝒗 hitrost v [m/s]

�̈�𝑚𝑎𝑥 maksimalna vrednost pospeška, ki ga omogoča robot v [rad/s2]

�̇�𝑚𝑎𝑥 maksimalna vrednost hitrosti, ki jo omogoča robot v[rad/s]

�̈�𝑖 skaliran pospešek i-tega sklepa v [rad/s2]

�̇�𝑖 skalirana hitrost i-tega sklepa v [rad/s]

𝜃 kot izmeta v [°]

rad enota za merjenje ravninskih kotov

° kotna stopinja je enota za merjenje kotov

Page 12: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

1

1 UVOD

Dandanes se roboti pojavljajo že skoraj vsepovsod, od industrije pa vse do rabe v vsakdanjem

okolju za privatne namene. Nekateri roboti so razviti že do takšne mere, da lahko popolnoma

nadomestijo človeka pri marsikaterem opravilu, nadaljnji silovit razvoj robotike pa gre tudi v

smeri vse večjega sodelovanja ljudi in robotov. Robote, ki so namenjeni za takšno fizično

sodelovanje z ljudmi v istem delovnem okolju imenujemo kolaborativni roboti. Kolaborativni

roboti za razliko od ostalih ne potrebujejo varnostne ograje (če orodje in obdelovanec nista

nevarna), kar občutno poenostavi namestitev in zniža stroške integracije. Prav tako lahko s

pomočjo senzorjev zaznajo vdor v delovni prostor in prekinejo delovanje, s tem pa preprečijo

možnost lahkih poškodb [8].

Sčasoma bodo takšni roboti lahko služili tudi kot družabniki ljudem pri preživljanju prostega

časa in različnih igrah, na primer igrah z žogo, kot so nogomet, rokomet, odbojka, košarka, itd.

Ker pa za takšne družabne igre potrebujemo več igralcev, ki morajo izvajati kompleksne gibe

(šprinti, skoki, meti, itd.), ugotovimo, da je to za današnje stanje robotike zaenkrat še nekoliko

prezahtevno. Poznamo pa tudi manj komplekse igre, kot je metanje žoge na koš. To naj bi

prestavljalo najpreprostejši del košarke, saj ni fizičnega kontakta, tekanja in skakanja, ampak

samo konstantna razdalja ter višina do koša. Če najprej analiziramo človeški met žoge na koš

ugotovimo, da poznamo dve vrsti meta: med od spodaj in met nad glavo, pri čemer je v

današnjih časih na profesionalnem nivoju v uporabi samo še met nad glavo, kot vidimo na sliki

1.1. Da pa lahko človek zadane koš, potrebujemo v točki izmeta ustrezno hitrost in kot [9].

Slika 1.1: Tehnika meta žoge nad glavo

Page 13: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

2

Žoga pri metu na koš opravi gibanje imenovano poševni met. Tako lahko s pomočjo formul

poševnega meta izračunamo potrebno hitrost in kot, da žoga pade v obroč, ki je na določeni

razdalji in višini od točke izmeta [15].

Met žoge na koš bi lahko izvedel tudi robot, vendar ga je potrebno prej naučiti metati na koš,

oziroma napisati program za izvedbo takšnega giba. Tako bi robot izvedel gib, kjer bi v točki

izmeta s pomočjo orodja (prijemala) žogo izpustil proti košu. Tako kot človeku, moramo tudi

robotu podati ustrezno hitrost in kot v točki izmeta.

Na spletu lahko zasledimo ogromno zanimivih primerov takšnega robotskega meta koš, zato

smo se tudi sami odločili, da naredimo takšno aplikacijo. Ker je met žoge na koš družabna igra

in ker je na prvem mestu, ko delamo z roboti varnost, smo za aplikacijo uporabili

kolaborativnega robota podjetja Universal Robots, oziroma model UR5. Takšen robot ne

potrebuje varnostne ograje, je prilagodljiv in kompakten, programiranje pa je relativno

enostavno [8]. Tako smo si zastavili željene cilje: da je naša aplikacija čim bolj zanimiva za

gledalce, da je gib robota čim bolj podoben človeškemu in da je razdalja zadovoljiva (vsaj 3 m

od točke izmeta).

Aplikacijo robotskega meta na koš sva naredila s sošolcem Andrejem Picejem v Laboratoriju

za industrijsko robotiko na UM FERI. Delo sva si zaradi diplome smiselno razdelila na dva

naslova: »Določanje gibanja 6-osnega kolaborativnega robota UR5 za met na koš« in

»Programiranje kolaborativnega robota UR5 za met na koš«. Ker smo se prvič srečali s takšnim

robotom, je na začetku te diplomske naloge predstavljen robot. Nato sledi predstavitev

programiranja robota, z opisom nastavitev in ukazov katere kasneje potrebujemo za naš

program. Predstavljena je tudi povezava računalnika in robota, katero uporabljamo za

merjenje podatkov o hitrosti in položaju robota med našim gibom. Na koncu pa sledi

predstavitev aplikacije meta na koš, z opisom komponent in podrobnejšo predstavitvijo

programa. Za delovanje programa potrebujemo začetna podatka (potrebna hitrost in točka

izmeta), katere izračuna Andrej v svoji diplomski nalogi [15]. Izračunane podatke nato

prepišemo v robotski program in izvedemo met.

Page 14: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

3

Diplomsko nalogo smo razdelili na poglavja, da smo lahko delo lažje predstavili. Na začetku se

je bilo potrebno z robotom spoznati, kar je predstavljeno v poglavju 2, kjer najdemo opis

robota (prednosti in slabosti), komponent robotskega sistema ter potrebne osnovne

nastavitve za uspešno delovanje. V poglavju 3 predstavimo načine programiranja, možne tipe

gibov in funkcij, ki jih ima robot na voljo, grafično okno programskega vmesnika in osnovno

strukturo celotnega programa. Ker pa smo za našo aplikacijo potrebovali tudi povezavo robota

z osebnim računalnikom, smo to predstavili v poglavju 4, kjer najdemo podrobnejši opis

potrebne programske kode, da je povezava in pošiljanje podatkov sploh mogoče. V poglavju

5 pa je predstavljena aplikacija robotskega meta na koš, s kratkim opisom fizikalnega ozadja

in potrebnih komponent ter celotnim programom za izvedbo meta.

Page 15: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

4

2 OPIS ROBOTA UR5

UR5 je sodobni kolaborativni robot podjetja Universal Robots z nosilnostjo 5kg. Robotsko roko

sestavlja 6 osi (baza, rama, komolec, zapestje 1, zapestje 2 in zapestje 3) z njihovimi ročicami.

Robota odlikuje enostavno programiranje, kompaktnost, fleksibilna in lahka robotska roka ter

možnost uporabe brez varnostne ograje [10]. Delovno območje robota brez prijemala je 850

mm, ponovljivost pa ±0,1 mm. Ker gre za kolaborativnega robota so tudi maksimalne hitrosti

»gibanja« oziroma »premikanja« nizke. Tako je hitrost zasuka posameznega sklepa omejena

na 180 °/s [7]. V Andrejevi diplomi najdemo izračun kjer ugotovimo, da za razdalje daljše od

430 cm potrebujemo hitrosti katere robot ne zmore več. Robot v takšnem primeru doseže

omejitev svoje hitrosti in se giba z maksimalno hitrostjo sklepa (180 °/s) [7]. Tako je aplikacija

omejena na razdaljo 430 cm od točke izmeta. Ker smo met izvajali v laboratoriju, smo zaradi

varnosti namesto prave košarkarske žoge in koša uporabili manjšo tenis žogico ter pomanjšan

koš premera 20 cm.

Komponente sistema

Robotski sistem sestavlja robotska roka, krmilna omarica, ročna enota za programiranje

oziroma ang. »teach pendant« ter kabli, ki te komponente povezujejo. Vse komponente

vidimo na sliki 2.1. Enota za programiranje nam z zaslonom na dotik in uporabniškim

vmesnikom »PolyScope«, omogoča preprosto pisanje ukazov. Ukazi določeni na enoti za

programiranje se prenesejo v krmilno omarico, kjer se izvedejo vse potrebne operacije.

Krmilna omarica ima tudi dodatne priključke za razne vhodno/izhodne enote, kot so prijemala,

stikala, itd. Ukazi se nato prenesejo na motorje robotske roke, ta pa izvede določen gib [13].

Page 16: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

5

Slika 2.1: Komponente robotskega sistema

Slika 2.2: Koordinatni sistemi robota

Page 17: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

6

Nastavitve

Ob vklopu robota se na enoti za programiranje prikaže pozdravni zaslon (slika 2.3), kjer

najdemo gumb »Nastavitve robota« [13].

Slika 2.3: Pozdravni zaslon

V nastavitvah lahko pod zavihkom »NETWORK« konfiguriramo parametre Ethernet mreže.

Tako imamo preko Etherneta1 omogočeno povezavo z računalnikom [13]. Na sliki 2.4 so

nastavitve za naš primer omrežja.

Slika 2.4: Nastavitev omrežja

1 Ethernet je omrežje, ki ga uvrščamo v skupino omrežij po standardu IEEE 802.3.

Page 18: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

7

V primeru dodatnega orodja je robotu potrebno nastaviti novo točko orodja - TCP2 . Na sliki

2.5 so nastavitve za naš primer TCP točke robota v primeru dodatnega prijemala, ki je opisan

v poglavju 5.2.

Slika 2.5: Nastavitev TCP točke za naš primer

Uporabniški vmesnik prav tako omogoča uporabo vhodov in izhodov krmilne omarice, katere

lahko poljubno poimenujemo kot prikazuje slika 2.6.

Slika 2.6: Nastavitev vhodov in izhodov za naš primer

2 Tool Center Point (TCP) je središčna točka orodja oziroma točka končnega efektorja.

Page 19: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

8

3 PROGRAMIRANJE ROBOTA

Robotski program pišemo in testiramo na enoti za programiranje. Pred začetkom

programiranja je potrebno pod zavihkom »Program« ustvariti »Nov program«, lahko pa

uporabimo že obstoječo datoteko (»Naloži program«), kar vidimo na sliki 3.1 [13].

Nato sledi pisanje in testiranje programa, katerega poženemo in ustavimo s preprostim

pritiskom na tipko »Play« ali »Stop«. Program se izvaja v takšnem vrstnem redu kot si sledijo

ukazi, pri čemer se mora pred naslednjim ukazom do konca izvesti trenutni.

Slika 3.1: Okno ob zagonu programa

Slika 3.2: Tipka za zagon in ustavitev robota

Page 20: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

9

Grafično okno vmesnika

Uporabniški vmesnik »PolyScope« omogoča grafičen prikaz robota na zaslonu. 3D3 risba lahko

prikazuje trenutni položaj robotske roke, grafično okno pa lahko uporabimo tudi kot prikaz

simulacije robotskega programa. To naredimo tako, da v spodnjem levem kotu izberemo točko

»Simulacija« in zaženemo program. Tako se nam celotni program izvede, gibanje robota pa

lahko opazujemo v grafičnem oknu pod zavihkom »Grafika« [13]. To je zelo praktično v

primeru testiranja programa, saj s tem preprečimo nenadzorovane gibe, ki bi lahko kljub

nizkim hitrostim povzročili lažje poškodbe, kot so podplutbe in poškodbe občutljivih delov

(oči,…). Več o tem najdemo v dokumentaciji pod poglavjem ocene tveganja [11].

Slika 3.3: Grafično okno vmesnika

3 3D ali tri-dimenzionalni prostor je prostor, ki ga določajo tri razsežnosti: širina, dolžina ter višina.

Page 21: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

10

Struktura programa

Celoten robotski program je razdeljen na več segmentov oziroma delov. Najprej je del

imenovan »BeforeStart«, kjer inicializiramo vse spremenljivke katere bomo kasneje

uporabljali. Nato sledi glavni del oziroma »Robot Program«, kjer se izvedejo vse potrebne

funkcije in pomiki robota.

Konkurenčno z glavnim delom se izvaja paralelna koda imenovana »Thread«, ki se uporablja

za nadzor drugih strojev, medtem ko robot deluje. Izvaja lahko tudi vhodno/izhodne enote,

čaka na signale in določa spremenljivke [13].

Ker želimo signale sprejemati v realnem času, mora biti vzorčna frekvenca dovolj velika.

Funkcija »Thread« se izvaja s frekvenco 125 Hz, kar pomeni, da ima čas 0,008 sekunde, da

pošlje vse signale oziroma podatke. Če v tem času ne uspe poslati vseh podatkov, se postavi v

»ne aktivno stanje« in počaka na novih 0,008 sekund. Če pa se vsi potrebni podatki pošljejo

hitreje kot v času, ki je na voljo pa funkcija »sync()«, katero napišemo na koncu, ”porabi”

preostali čas [14].

Slika 3.4: Struktura programa

Page 22: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

11

Funkcije

Vmesnik »PolyScope« omogoča uporabo funkcij, ki bistveno olajšajo programiranje. Zelo

pogosto uporabljena je funkcija »Wait«, kjer nam vmesnik omogoča več izbir: počakaj določen

čas, počakaj na digitalni vhod ali počakaj na določeno vrednost. Praktično zelo uporabna je

funkcija »Set«, s katero lahko postavljamo vrednosti digitalnih/analognih vhodom in izhodov.

Tako lahko odpiramo in zapiramo razna orodja robota, med katera spada tudi prijemalo,

katerega smo sami potrebovali pri našem metu na koš. Vmesnik prav tako omogoča uporabo

preprostih ukazov, kot sta pojavno okno (»Popup«) in komentar (»Comment«). S tema

ukazoma lahko med izvajanjem programa prikažemo določeno sporočilo ali pa preprosto

komentiramo program za lažje razumevanje. Uporabljamo lahko tudi podprograme

(»SubProgram«), kateri so lahko na ločenem disku ali pa so skriti. Za bolj kompleksne

programe uporabimo funkcijo »Assignment«, s katero določimo vrednosti spremenljivk in

tako dobimo boljšo preglednost programa. Vmesnik ima prav tako že v naprej pripravljeno

funkcijo »if/else«, s katero testiramo razne izjave ali spremenljivke [13].

Skriptni jezik URScript

Robotu lahko ukaze vpisujemo tudi v drugačni obliki in sicer v tako imenovanem skriptnem

jeziku »URScript«. Ta je namenjen naprednejšim uporabnikom, navodila za uporabo pa

najdemo v priloženi dokumentaciji [14].

Funkcija moveJ v skriptnem jeziku omogoča, da lahko programer določi več prametrov, kot so

končna točka giba, pospešek, hitrost ter čas v katerem naj doseže podano končno točko. V

primeru vpisa vseh možnih prametrov, ima čas prioriteto pred vpisano hitrostjo in pospeškom.

Prav tako lahko določimo radij, ki je opisan v poglavju 3.6 [14].

Page 23: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

12

➢ Oblika funkcije moveJ v skriptnem jeziku: movej(q, a, v, t, r);

Parametri:

q – končna poza podana v notranjih ali zunanjih koordinatah

a – pospešek vodilnega sklepa4 (rad/s2)

v – hitrost vodilnega sklepa (rad/s)

t – čas (s)

r – radij (polmer) (m)

Ker lahko s takšno obliko programiranja nastavimo več začetnih podatkov, je del programa

meta na koš zapisan prav v skriptnem jeziku.

Slika 3.5: Funkcija moveJ v za naš program

Skriptni jezik nam ob gibih opisanih v poglavju 3.6, omogoča še uporabo giba moveC. Pri tem

gibu se TCP robota giba s krožnim lokom in sicer tako, da potuje skozi vmesno točko

(»pose_via«) do končne točke (»pose_to«). Tako kot pri gibu moveJ, moramo tudi tukaj robotu

določiti ustrezne parametre [14].

4 Vodilni sklep robota je sklep ki ob gibu opravi največjo pot.

Page 24: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

13

➢ Oblika funkcije moveC v skriptnem jeziku: movec(pose_via, pose_to, a, v, r)

Parametri:

pose_via – vmesna točka podana v notranjih ali zunanjih koordinatah

pose_to – končna točka podana v notranjih ali zunanjih koordinatah

a – pospešek TCP-ja (rad/s2)

v – hitrost TCP-ja (rad/s)

r – radij (polmer) (m)

Kot je omenjeno v poglavju 4, nam robot omogoča zajem podatkov trenutnega položaja in

hitrosti vseh šestih sklepov, kot tudi položaja in hitrosti TCP-ja. Da se te meritve lahko izvedejo

moramo v skriptnem jeziku napisati ustrezne ukaze:

➢ Funkcija za meritev položaja sklepov: get_actual_joint_positions()

Funkcija vrne vektor šestih elementov z zasuki sklepov [baza, rama, komolec, zapestje 1,

zapestje 2 in zapestje 3] v rad.

➢ Funkcija za meritev hitrosti sklepov: get_actual_joint_speeds()

Funkcija vrne vektor šestih elementov s kotnimi hitrostmi sklepov [baza, rama, komolec,

zapestje 1, zapestje 2 in zapestje 3] v rad/s.

➢ Funkcija za meritev položaja TCP-ja: get_actual_tcp_pose()

Funkcija vrne vektor šestih elementov [X,Y,Z,Rx,Ry,Rz], pri čemer prvi trije predstavljajo

položaj TCP-ja [m] v baznem koordinatnem sistemu, drugi trije pa rotacijo TCP-ja [rad].

➢ Funkcija za meritev hitrosti TCP-ja: get_actual_ tcp_speed()

Funkcija vrne vektor šestih elementov [X,Y,Z,Rx,Ry,Rz], pri čemer prvi trije predstavljajo

kartezično hitrost TCP-ja [m/s] v baznem koordinatnem sistemu, drugi trije pa rotacijo TCP-ja

[rad/s] [14].

Page 25: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

14

Premikanje

Uporabniški vmesnik omogoča premikanje robota v notranjih ali zunanjih koordinatah. Pri

premikanju v notranjih koordinatah nastavljamo zasuke posameznih sklepov robota (v °ali

rad), vrh oziroma TCP robota pa se premika glede na podane položaje. Obratno poteka pri

premikanju v zunanjih koordinatah, kjer nastavljamo položaj TCP točke robota, sklepi pa se

temu prilagajajo. Položaj TCP točke določimo kot vektor s šestimi elementi [X,Y,Z,Rx,Ry,Rz], pri

čemer prvi trije predstavljajo položaj točke v baznem koordinatnem sistemu (v mm), drugi trije

pa rotacijo točke (v radianih) [13].

Robot prav tako omogoča premikanje v tako imenovanem prostem teku, kjer lahko robota ob

pritisku gumba na zaslonu ali pa zadnji strani enote za programiranje, kar z roko prosto

premaknemo na željeno mesto. Robot pa nato s pomočjo senzorjev sam določi zasuke vsakega

sklepa.

Slika 3.6: Premikanje v notranjih in zunanjih koordinatah

Page 26: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

15

Vrste premikov

Gibanje oziroma premikanje med dvema željenima točkama robota je potrebno definirati.

Izbiramo lahko med tremi vrstami premikov: moveJ, moveL in moveP.

MoveJ generira ukrivljeno pot za orodje oziroma med dvema točkama interpolira takšen gib,

da vsak člen doseže željen položaj v istem času. Parametra, ki ju lahko nastavimo za to vrsto

premika sta, največja hitrost členov in pospeševanje členov v °/s oziroma °/s2. Če želimo, da

se robotska roka premika hitro med željenimi točkami, ne glede na gibanje orodja, izberemo

to vrsto premika [13].

MoveL premika orodje linearno med dvema točkama. To pomeni, da vsak člen izvaja bolj

zapleten gib, da zagotovi ravno pot orodja. Parametra, ki ju lahko nastavimo za to vrsto

premika sta, željena hitrost orodja in pospeševanje orodja določena v mm/s in mm/s2 [13].

MoveP premika orodje linearno ob stalni hitrosti s krožnimi spoji med linearnimi segmenti in

se uporablja za določene postopke, kot so lepljenje, varjenje, laserske aplikacije, itd. V teh

primerih mora robot ohranjati konstanto hitrost v celotnem gibu, saj bi drugače lahko prišlo

do napak pri končnem izdelku (npr. prehitro/prepočasno gibanje pomeni premalo/preveč

lepila in nekvaliteten izdelek). Ukazu MoveP se lahko doda krožni premik, ki je sestavljen iz

dveh točk: prva določa prehodno točko na krožnem loku, druga pa končno točko premikanja.

Robot tako začne krožno gibanje iz trenutnega položaja skozi prehodno točko na krogu do

končne točke [13].

Gibu lahko definiramo tudi tako imenovan radij oziroma gladko spajanje segmentov. V tem

primeru robot prilagodi trajektorijo skozi točko za takšno vrednost (± m), kot smo definirali

radij, kar prikazuje slika 3.7. Robot skozi krožnico katero določa radij upočasni, zato, da ne

preseže dovoljenih pospeškov [13]. Pri premiku v notranjih koordinatah se prilagodi

trajektorija gibanja sklepov, medtem, ko pri premikanju v zunanjih koordinatah robot prilagodi

gibanje TCP točke.

Page 27: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

16

Slika 3.7: Spajanje segmentov poti z radijem

Tako smo se odločili, da za naš robotski met uporabimo samo dve točki (začetno in končno),

med katerima se bo robot gibal z gibom moveJ. S tem se izognemo nepotrebnem zaviranju, ki

bi se pojavilo v primeru še ene vmesne točke.

Interpolacija v notranjih koordinatah s trapeznim profilom hitrosti

Pri gibu moveJ imajo sklepi tako imenovani trapezni profil hitrosti, sestavljen iz treh

segmentov: najprej robot pospešuje, nato se giblje z enakomerno hitrostjo in na koncu zavira.

Za naš robotski met smo tako optimalno točko za izmet izbrali v srednjem segmentu, kjer je

hitrost konstanta [13]. Navadno pri trapeznem profilu fazi pospeševanja (𝑡𝑎) in zaviranja (𝑡𝑑)

trajata enako (𝑡𝑎 = 𝑡𝑑), zato je profil gibanja simetričen, kot prikazuje slika 3.8 [12].

Slika 3.8: Trapezni profil hitrosti

Page 28: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

17

Glavni gib oziroma met žoge na koš se začne v začetnem času (𝑡𝑖), ki v našem primeru znaša

4,88 sekunde, kot vidimo na sliki 3.9. Pred glavnim gibom se izvede pomik v začetno lego, ki

za našo meritev ni pomemben, zato analiza poteka samo med časoma 𝑡𝑖 in 𝑡𝑓 (slika 3.8).

Trapezni profil lahko opišemo tudi s pomočjo enačbe 3.1, ki predstavlja položaj robota v

poljubnem času (𝑡) za vse segmente gibanja. Prva vrstica enačbe opiše fazo pospeševanja,

druga fazo enakomernega gibanja in tretja fazo zaviranja [12].

𝑞(𝑡) =

{

𝑞𝑖 +

1

2�̈�𝑚𝑎𝑥(𝑡 − 𝑡𝑖)

2 , 𝑡𝑖 ≤ 𝑡 ≤ 𝑡𝑖 + 𝑡𝑎

𝑞𝑖 + �̈�𝑚𝑎𝑥𝑡𝑎 (𝑡 − 𝑡𝑖 −𝑡𝑎

2) , 𝑡𝑖 + 𝑡𝑎 ≤ 𝑡 ≤ 𝑡𝑓 − 𝑡𝑎

𝑞𝑓 −1

2�̈�𝑚𝑎𝑥(𝑡𝑓 − 𝑡 − 𝑡𝑖)

2 , 𝑡𝑓 − 𝑡𝑎 ≤ 𝑡 ≤ 𝑡𝑓

(3.1)

Kjer je:

𝑡𝑖 [s] – začetni čas giba

𝑡𝑓 [s] – končni čas giba

𝑡 [s] – poljubni čas giba med 𝑡𝑖 in 𝑡𝑓

𝑡𝑎 [s] – čas pospeševanja

𝑞𝑖 [rad] – položaj sklepa robota v začetnem času

𝑞𝑓 [rad] – položaj sklepa robota v končnem času

𝑞(𝑡) [rad] – položaj sklepa robota v času t

�̈�𝑚𝑎𝑥 [rad/s2] – maksimalna vrednost pospeška, ki ga omogoča robot

Za izračun enačbe 3.1 potrebujemo čas pospeševanja (𝑡𝑎) in končni čas giba robota (𝑡𝑓). Čas

pospeševanja izračunamo glede na največjo (potovalno) hitrost in največjo vrednost pospeška,

s pomočjo enačbe 3.2 [12].

𝑡𝑎 =�̇�𝑚𝑎𝑥

�̈�𝑚𝑎𝑥 (3.2)

Kjer je:

�̇�𝑚𝑎𝑥 [rad/s] – maksimalna vrednost hitrosti, ki jo omogoča robot

Page 29: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

18

Končni čas giba robota pa izračunamo s pomočjo enačbe 3.5.

�̇�𝑚𝑎𝑥(𝑇 − 𝑡𝑎) = 𝑞𝑓 − 𝑞𝑖 = 𝐿 =≫ (𝑇 − 𝑡𝑎) =𝐿

�̇�𝑚𝑎𝑥 (3.3)

𝑇 =(𝐿 ∗ �̈�𝑚𝑎𝑥)+(�̇�𝑚𝑎𝑥

2)

�̈�𝑚𝑎𝑥∗ �̇�𝑚𝑎𝑥=

((𝑞𝑓−𝑞𝑖) ∗ �̈�𝑚𝑎𝑥)+(�̇�𝑚𝑎𝑥2)

�̈�𝑚𝑎𝑥∗ �̇�𝑚𝑎𝑥 (3.4)

𝑡𝑓 = 𝑡𝑖 + 𝑇 =≫ 𝑡𝑓 = 𝑡𝑖 +((𝑞𝑓−𝑞𝑖) ∗ �̈�𝑚𝑎𝑥)+(�̇�𝑚𝑎𝑥

2)

�̈�𝑚𝑎𝑥∗ �̇�𝑚𝑎𝑥 (3.5)

Kjer je:

𝑇 [s] – čas trajanja pomika (interval)

𝐿 [rad] – celoten pomik

V primeru večosnega manipulatorja so intervali pospeševanja, enakomernega gibanja in

zaviranja pri vseh sklepih enaki, saj se vsi sklepi začnejo in končajo gibati ob istem času. Da pa

se to lahko zgodi, je potrebno osi med seboj sinhronizirati (koordinirati). Izbere se os z

najdaljšo potjo pomika (vodilni sklep), za katero se ob upoštevanju maksimalne hitrosti in

pospeška, s pomočjo enačb 3.2 in 3.3 (izpeljanih v [12]), izračuna čas pospeševanja (𝑡𝑎) in

časovni interval pomika (𝑇), ki sta označena na sliki 3.8.

Nato se na podlagi teh parametrov in poti giba sklepov, z enačbama 3.6 in 3.7 (izpeljani v[12]),

izračunajo še parametri (hitrost in pospešek) za preostale osi.

�̇�𝑖 =𝐿𝑖

𝑇−𝑡𝑎=

𝐿𝑖 𝐿𝑉

�̇�𝑚𝑎𝑥

=𝐿𝑖

𝐿𝑉∗ �̇�𝑚𝑎𝑥 (3.6)

�̈�𝑖 =𝐿𝑖

𝑡𝑎∗(𝑇−𝑡𝑎)=

𝐿𝑖 �̇�𝑚𝑎𝑥�̈�𝑚𝑎𝑥

(𝐿𝑉

�̇�𝑚𝑎𝑥)=

𝐿𝑖

𝐿𝑉∗ �̈�𝑚𝑎𝑥 (3.7)

Kjer je:

�̈�𝑖 [rad/s2] – skaliran pospešek i-tega sklepa

�̇�𝑖 [rad/s] – skalirana hitrost i-tega sklepa

𝐿𝑖 [rad] – zasuk i-tega sklepa med gibom

𝐿𝑉 [rad] – zasuk vodilnega sklepa med gibom

Page 30: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

19

Da smo lahko analizirali profil hitrosti našega giba, s postopkom opisanim v poglavju 4 iz robota

pridobimo podatke o hitrostih vseh šestih sklepov med metom in s pomočjo orodja MATLAB5

izrišemo graf prikazan na sliki 3.9.

Slika 3.9: Hitrosti posameznih sklepov pri metu žoge

Na sliki je prikaz hitrosti med gibom robota samo za štiri sklepe zato, ker gib poteka samo v

x-z ravnini glede na bazni koordinatni sistem (slika 2.2) in posledično sklepa »baza« in

»zapestje 2« ne opravljata nobene poti oziroma zasuka.

5 MATLAB je programski paket za numerično analizo in programski jezik četrte generacije.

Page 31: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

20

Prav tako pridobimo podatke o zasukih vseh šestih sklepov in s pomočjo orodja MATLAB

izrišemo graf prikazan na sliki 3.10.

Slika 3.10: Zasuk posameznih sklepov pri metu žoge

Tako odčitamo zasuke vseh šestih sklepov v začetni (qs) in končni točki(qf) meta:

➢ Zasuk sklepa »rama« v začetni točki meta: qs2 = – 165 °

➢ Zasuk sklepa »rama« v končni točki meta: qf2 = ‒ 58,75 °

➢ Zasuk sklepa »komolec« v začetni točki meta: qs3 = ‒ 76,57 °

➢ Zasuk sklepa »komolec« v končni točki meta: qf3 = 34,21 °

➢ Zasuk sklepa »zapestje 1« v začetni točki meta: qs4 = ‒ 114,8 °

➢ Zasuk sklepa »zapestje 1« v končni točki meta: qf4 = ‒ 89,25 °

➢ Zasuk sklepa »zapestje 3« v začetni točki meta: qs6 = ‒ 84,01 °

➢ Zasuk sklepa »zapestje 3« v končni točki meta: qf6 = ‒ 81,64 °

Page 32: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

21

Iz razlike med začetno in končno točko dobimo pot, ki jo opravi posamezen sklep med metom

žoge na koš. Od tod vidimo, da je v našem primeru vodilni sklep »komolec«, saj med metom

opravi največjo pot (𝐿𝑉 = 𝐿3, 𝑡𝑎 = 𝑡𝑎3, 𝑇 = 𝑇3)

➢ Pot, ki jo med metom opravi »rama« : 𝐿2 = | 𝑞𝑓2 − 𝑞𝑠2| = 106,25 ° = 1,854 rad

➢ Pot, ki jo med metom opravi »komolec« : 𝐿3 = | 𝑞𝑓3 − 𝑞𝑠3| = 110,78 ° = 1,933 rad

➢ Pot, ki jo med metom opravi »zapestje 1« : 𝐿4 = | 𝑞𝑓4 − 𝑞𝑠4| = 25,55 ° = 0,446 rad

➢ Pot, ki jo med metom opravi »zapestje 3« : 𝐿6 = | 𝑞𝑓6 − 𝑞𝑠6| = 2,37 ° = 0,0414 rad

Sedaj lahko s pomočjo enačb za sinhronizacijo analiziramo naš primer. Najprej s pomočjo

enačbe 3.8 izračunamo čas pospeševanja vodilnega sklepa pri maksimalnem možnem

pospešku in hitrosti, kasneje pa z enačbo 3.9 še čas potovanja.

𝑡𝑎3 =�̇�𝑚𝑎𝑥

�̈�𝑚𝑎𝑥 =

3,14 𝑟𝑎𝑑/𝑠

3,3 𝑟𝑎𝑑/𝑠2= 0,95 𝑠 (3.8)

𝑇3 =((𝑞𝑓3−𝑞𝑠3) ∗ �̈�𝑚𝑎𝑥)+(�̇�𝑚𝑎𝑥

2)

�̈�𝑚𝑎𝑥∗ �̇�𝑚𝑎𝑥=

(1,933 𝑟𝑎𝑑 ∗ 3,3 𝑟𝑎𝑑/𝑠2)+(3,14 𝑟𝑎𝑑/𝑠)2

3,3 𝑟𝑎𝑑/𝑠2∗ 3,14 𝑟𝑎𝑑/𝑠= 1,567 𝑠 (3.9)

Na koncu s pomočjo enačb 3.10 in 3.11 izračunamo še hitrosti in pospeške za preostale osi.

�̇�𝑖 =𝐿𝑖

𝐿3∗ �̇�𝑚𝑎𝑥 (3.10)

�̈�𝑖 =𝐿𝑖

𝐿3∗ �̈�𝑚𝑎𝑥 (3.11)

S pomočjo orodja MATLAB (priloga 9.3), smo naredili izračune in dobili naslednje vrednosti

hitrosti ter pospeškov:

➢ Rama: �̇�2 = 3,013 rad/s �̈�2 = 3,165 rad/s2;

➢ Zapestje 1: �̇�4 = 0,725 rad/s �̈�4 = 0,761 rad/s2;

➢ Zapestje 3: �̇�6 = 0,067 rad/s �̈�6 = 0,071 rad/s2;

Page 33: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

22

4 POVEZAVA Z RAČUNALNIKOM

Robota je možno povezati tudi z osebnim računalnikom, kar naredimo preko Ethernet mreže

s TCP/IP6 komunikacijskim protokolom. Kot je omenjeno že v poglavju 2.2 je robotu potrebno

nastaviti ustrezne internetne naslove, da je povezava sploh mogoča [13].

V našem primeru smo za potrebe analiziranja gibanja robota potrebovali podatkovno

povezavo, za kar smo koristili povezavo preko TCP/IP vtičnice. Tako smo lahko pridobili

podatke o časovnem poteku položaja in hitrosti robotskih sklepov ter TCP-ja za določen

robotski gib.

Za izmenjavo podatkov med računalnikom in robotom potrebujemo dva programa: program

na računalniku v vlogi klienta in program na robotu v vlogi strežnika. Na robotu skriptni jezik

podpira preproste funkcije za komuniciranje preko TCP/IP vtičnic, na računalniku pa smo s

programskim orodjem »Python7« ustvarili program za vzpostavitev povezave in prenos

podatkov med robotom in računalnikom [3, 4].

6 TCP/IP: »Transmission Control Protocol / Internet Protocol« je dvoslojni program. TCP je protokol za nazor

prenosa, IP pa množica protokolov, ki izvaja protokolski sklad prek katerega teče internet

7 Python je široko uporabljeno programsko orodje namenjeno za pisanje splošno namenskih programov, ki ga je

ustvaril Guido van Rossum leta 1990

Page 34: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

23

Sistemska arhitektura

Na sliki 4.1 vidimo uporabljene komponente za povezavo računalnika in robota. Uporabili smo

osebni računalnik, na katerega je bilo potrebno namestiti programsko orodje »Python«. Tako

napišemo program, potreben za komunikacijo in izmenjavo podatkom med robotom in

računalnikom. Krmilno omarico in osebni računalnik s pomočjo mrežnega kabla8 povežemo na

omrežno stikalo, ki robotu in računalniku dodeli ustrezen IP naslov9 omrežja. Na sliki prav tako

vidimo robota z dodatnim prijemalom, na katerega je priključen kabel iz digitalnega izhoda

krmilne omarice. To je potrebno zaradi odpiranja prijemala pri metu žoge na koš, kar je

opisano v poglavju 5.2.

Slika 4.1: Arhitektura sistema

8 Mrežni kabel ali UTP (Unshielded Twisted Pair) je vrsta kabla, ki se uporablja v telekomunikacijah.

9 IP-naslov je številka, ki natančno določa računalnik v omrežju .

Page 35: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

24

Odjemalec na računalniku v programu Python

Na sliki 4.2 vidimo, da je potrebno najprej nastaviti IP naslov robota (slika 2.4) s katerim se

želimo povezati in port serverja, katerega najdemo v priloženi dokumentaciji robota [13]. Nato

se v »while« zanki izvede izmenjava podatkov (točka II in III), na koncu pa z ukazoma

»s.close()« in »c.close()« komunikacijo ustavimo (točka IV) [1].

V točki II se ob prejetem podatku »start«, ki ga pošlje robot začne izmenjava. Računalnik v

točki III pošlje robotu podatek (v našem primeru smo si izbrali tri številke »20,50,45«), ta pa

mu vrne vrednost, ki jo pošiljamo (na primer hitrost TCP-ja). Prejet podatek računalnik shrani

v datoteko »workfile«, počaka 0,01sekunde in postopek se ponovi. Ko računalnik prejme 1300

podatkov, program zapusti zanko ter komunikacijo ustavi.

Slika 4.2: Koda za prenos na računalniku

Page 36: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

25

Strežnik na robotu v Skriptnem jeziku

Program na robotu je potrebno za izmenjavo podatkov dopolniti s skriptnimi ukazi [6, 14].

Dopolnjen program je prikazan na sliki 4.3.

Slika 4.3: Koda za prenos na robotskem krmilniku

Page 37: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

26

Na začetku z ukazom »socket_open(”IP”, PORT)« (točka 1), nastavimo IP naslov računalnika s

katerim se želimo povezati in port serverja katerega najdemo v priloženi dokumentaciji robota

[14].

Z ukazom »socket_send_string(”start”)« (točka 2) se začne pošiljanje podatkov. Robot pošlje

računalniku podatek tipa »string10«, oziroma besedo »start«. Nato se izvede programska koda

za gib robota katerega merimo, z ukazom »socket_close()« (točka 3) pa komunikacijo

ustavimo [1].

V programu Thread_2 (točka 4) se izvaja merjenje in izmenjava podatkov. Na začetku z ukazom

»socket_read_ascii_float(3)« beremo prejet podatek računalnika(številke 20,50,45«), nato pa

z ukazom »if var_2[1] ≟20« preverjamo ali je na prvem mestu prejetega podatka število 20.

Ko ta izjava drži se začne merjenje in pošiljanje podatkov računalniku.

Najprej s pomočjo funkcij pridobimo podatke o hitrosti in položaju TCP-ja, ter hitrosti in

položaju posameznih sklepov robotske roke. Ker potrebujemo samo položaj in kartezično

hitrost TCP-ja, brez orientacije, iz vektorja šestih elementov uporabimo samo prve tri

vrednosti. To naredimo s pomočjo oglatega oklepaja, ki pove kateri element vektorja

potrebujemo (na primer [0]- pomeni prvi element vektorja). Podobno naredimo tudi za

hitrosti sklepov, saj kot je omenjeno v poglavju 3.7 so med gibom aktivni samo štirje sklepi.

Podatke nato združimo v spremenljivko »rob« in s pomočjo ukaza »socket_send_string(rob)«

pošiljamo računalniku (točka 5).

Spremenljivka »meritev« vsebuje podatke o odprtosti prijemala in stanju digitalnega vhoda,

katere potrebujemo za meritev zakasnitve odpiranja prijemala, opisanega v poglavju 5.2.

10 V računalništvu je string zaporedje znakov, bodisi kot konstanta ali neke vrste spremenljivka (lahko tudi beseda)

Page 38: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

27

Za boljše razumevanje izmenjave podatkov računalnika in robota je na sliki 4.4 grafičen

prikazan diagrama poteka.

Slika 4.4: Diagram poteka pri izmenjavi podatkov

Page 39: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

28

Obdelava pridobljenih podatkov in analiza

Podatke, ki jih prejmemo od robota shranjujemo v posebno datoteko »workfile«. Ta vsebuje

1300 podatkov razporejenih v enakih časovnih intervalih 0,01 sekunde za celoten čas giba

robota. Te podatke s pomočjo orodja Excel11 uredimo, nato pa obdelamo s programom

MATLAB. Tako lahko izrišemo hitrost in položaj TCP-ja ter hitrost sklepov med gibom oziroma

zamahom robota.

11 Microsoft Excel je računalniški program za obdelavo razpredelnic.

Page 40: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

29

5 APLIKACIJA MET NA KOŠ

Kot je bilo omenjeno že v uvodu je cilj aplikacije, da s pomočjo 6-osne robotske roke vržemo

žogo v obroč koša. Da pa nam bi to uspelo je potrebno robotu sprogramirati trajektorijo, ki

omogoča takšno izvedbo meta. Trajektorijo nam določa postavitev koša glede na robota, sam

met žoge pa poteka po zakonitostih poševnega meta. Tako iz analize poševnega meta

pridobimo potrebne podatke kot so točka, hitrost in kot izmeta, nato pa [15] izračuna

potrebne sklepne hitrosti, da vrh robota v točki izmeta doseže ustrezno hitrost.

Fizikalno ozadje meta

Gibanje poševnega meta lahko razdelimo na dva dela. V vodoravni smeri gre za enakomerno

gibanje, saj na telo (žogico) v tej smeri ne deluje noben pospešek ali sila, medtem pa lahko

gibanje v navpični smeri opišemo kot enakomerno pospešeno saj na opazovano telo (žogico)

deluje gravitacijski pospešek g. Ker smo hoteli pri metu doseči čim daljšo razdaljo, je koš

postavljen pod točko izmeta, kot je prikazano na sliki 5.1.

Na sliki vidimo, da je koš postavljen na razdalji 𝐷𝑠 in višini 𝐻 od igralca oziroma robota. Ta v

točki izmeta potrebuje ustrezno hitrost in kot, da žoga zadane obroč koša. Izpeljava analize

poševnega meta je predstavljena v diplomski nalogi [15], kjer prav tako najdemo potrebne

podatke kot sta hitrost (𝒗) in kot izmeta (𝜃) za met na določeno razdaljo.

Slika 5.1: Trajektorija poševnega meta za naš robotski met

Page 41: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

30

Prijemalo

Da lahko izvedemo met žoge na koš je bilo potrebno izdelati komponente, ki omogočajo prijem

žoge in izpust v točki izmeta. Tako smo s programom SolidWorks12 zmodelirali potrebne dele

in jih kasneje natisnili s 3D tiskalnikom. Na konec podaljška smo pritrdili prijemalo GIMATIC

MPPM 1 606, s katerim smo lahko žogico prijeli in jo v ustrezni točki izmeta izpustili. TCP orodja

se v tem primeru premakne v točko kjer imamo prijemalo (slika 5.3).

Po branju podatkovnega lista ugotovimo, da ima prijemalo tri priključke. Dva se uporabita za

napajalno napetost, tretji pa služi za odpiranje prijemala. Če na tretji priključek pripeljemo

napetost oziroma logično 1 je prijemalo odprto, v nasprotnem primeru pa zaprto. Odpiranje

in zapiranje prijemala kontroliramo kar z digitalnim izhodom robotskega krmilnika [2].

Kot je bilo povedano že v poglavju 3.7 je točka izmeta v srednjem segmentu trapeznega profila,

saj je tam hitrost konstanta oziroma enaka vrednosti, ki jo vpišemo. Tako prijemalo odpiramo

glede na zasuk drugega sklepa J2 [v rad13] v tisti točki oziroma točki izmeta. To naredimo s

pomočjo funkcije »if/else«, v kateri digitalni izhod »Gripper« postavimo na On ali Off, kot

prikazuje slika 5.2. Istočasno postavljamo še spremenljivko »grip«, katero v nadaljevanju

potrebujemo za meritev odpiranja prijemala. Spremenljivka »Gripper« ima namreč obliko

podatka On ali Off, katere vrednost pa ne moremo pošiljati računalniku.

Slika 5.2: Koda za odpiranje prijemala

12 SolidWorks je programski paket za računalniško podprto konstruiranje in inženirske analize.

13 rad- radian je enota za merjenje ravninskih kotov.

Page 42: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

31

Slika 5.3: Podaljšek s prijemalom v programu SolidWorks

Ker ima prijemalo določen čas odpiranja in ker že zelo mali časi pri velikih hitrostih našega

giba pomenijo velike poti oz. spremembe poze izmeta, moramo čas odpiranja natančno

izmeriti. Okoli žogice smo ovili bakreno žico, na prijemalo pa namestili bakrene ploščice. Na

eno ploščico smo pripeljali napetost 12 V, drugo pa smo priključili na digitalni vhod robotskega

krmilnika (digital_in[8]), kot je prikazano na sliki 5.6. Ob zaprtem prijemalu je tokokrog

sklenjen in na digitalnem vhodu je logična enka. Ob izmetu žogice iz prijemala pa se prekine,

na digitalnem vhodu pa se pojavi logična ničla.

S pomočjo zanke na sliki 5.4 postavljamo spremenljivko DI8 tako, da je v primeru žogice v

prijemalu vrednost spremenljivke DI8 enaka 0, ko pa žogica odleti iz prijemala pa se vrednost

postavi na 1.

Slika 5.4: Zanka za preverjanje stanja digitalnega vhoda

Da lahko čas zakasnitve prijemala odčitamo, moramo iz robota s pomočjo postopka opisanega

v poglavju 4, istočasno pošiljali podatke o odprtosti prijemala (spremenljivka »grip«), ter

stanju digitalnega vhoda (spremenljivka DI8). Tako opazujemo čas, ko se spremenljivka »grip«

postavil na logično enko (prijemalo odprto) in čas, ko se spremenljivka DI8 prav tako postavi

na logično enko (žogica odleti iz prejemala).

Page 43: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

32

Po analizi prejetih podatkov v orodju MATLAB (priloga 9.2), smo iz razlike med časoma

ugotovili, da je čas odpiranja prijemala pri različnih hitrostih izmeta konstanten in znaša

približno 0,1s (3,711 s ‒ 3,615 s=0,096 s).

Slika 5.5: Čas zakasnitve odpiranja prijemala

Zato ker ob hitrih gibih robot v času 0,1 s povsem spremeni svojo pozo, je zakasnitev odpiranja

prijemala potrebno upoštevati. Tako nastavljamo pozo odpiranja prijemala (sklep J2), glede

na hitrost pomikanja. S tem dosežemo, da žogica iz prijemala odleti vedno v isti pozi.

Slika 5.6: Skica tokokroga za meritev časa odpiranja prijemala

Page 44: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

33

Aplikacija met na koš

Na sliki 5.7 vidimo zaključen sistem aplikacije meta na koš, katerega sestavlja koš, robot UR5

z dodatnim prijemalom in seveda žogica. Dodali smo še sistem za avtomatsko dostavljanje in

pobiranje žogic, da se lahko metanje izvaja neprekinjeno. Na sliki je v x smeri označena samo

razdalja med košem in baznim koordinatnim sistemom (𝑑), zato je tej vrednosti potrebno

prišteti 0,814 m (razdalja od baznega koordinatnega sistema do točke izmeta v x-smeri), da

dobimo razdaljo 𝐷𝑠 (slika 5.1). Ker je koš dvignjen za razdaljo 0,07 m nad ravnino baznega

koordinatnega sistema je višina izmeta 𝐻 =1,077 m. Določitev vrednosti višine (𝐻) in razdalje

do koša najdemo v nalogi [15].

Slika 5.7: Robotska aplikacija meta na koš

Page 45: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

34

Program

Celotni končni program robota je priložen kot priloga 9.1.

V sekvenci BeforeStart inicializiramo spremenljivke ter določimo točke oziroma položaje

robota med katerimi poteka gib (začetna, lega dol in končna točka). Točke smo določili glede

na dovoljeno območje gibanja robota zaradi omejitve okolice. Met smo namreč izvajali v

laboratoriju, ki ni namenjen takšnim aplikacijam. S premikanjem v notranjih koordinatah (slika

3.6), smo dobili položaje sklepov v stopinjah [°], katere smo morali za potrebe skriptnega jezika

pretvorit v radiane [rad].

➢ 'Tocke zacetne lege:' q1≔[0, -2.87979, -1.309, -2.70526, 0.0000, 0.7000]

➢ 'Tocke spodnje lege:' q2≔[0, -2.87979, -1.33648, -2.00348, 0.0000, -1,46621]

➢ 'Tocke koncne lege:' q3≔[0, -1.02583, 0.5967, -1.5578, 0.0000, -1.4254]

Tako je vsaka točka je predstavljena kot vektor s šestimi elementi, ki predstavljajo zasuk

posameznih sklepov (baza, rama, komolec, zapestje 1, zapestje 2 in zapestje 3) v radianih.

Slika 5.8: Položaji robota pri metu

a) Položaj začetne lege, b) Položaj spodnje lege, c) Položaj končne lege

Za dosego željene razdalje do koša potrebujemo ustrezno hitrost in točko izmeta, kar je robotu

potrebno definirati. Program je zgrajen tako, da na začetku določimo potrebno hitrost

vodilnega sklepa (spremenljivka v_omega) in zasuk oziroma položaj drugega sklepa

(spremenljivka J2).

Page 46: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

35

Potrebna podatka v_omega in J2 se izračunata s pomočjo orodja MATLAB v [15], pri čemer je

program napisan tako, da vpišemo izmerjeno razdaljo med košem in baznim koordinatnim

sistemom (𝑑), MATLAB pa izračuna potrebni vrednosti: hitrost izmeta oziroma hitrost

vodilnega sklepa – v_omega [rad/s] in položaj drugega sklepa za odpiranje prijemala – J2 [rad].

Ti vrednosti vpišemo v robotski program s pomočjo ukazov:

➢ Ukaz za vpis hitrosti vodilnega sklepa: v_omega:='Hitrost vodilnega sklepa:'

➢ Ukaz za vpis položaja drugega sklepa: J2:= 'Položaj drugega sklepa:'

Spremenljivka v1 nam podaja hitrost pomikanja v »začetno lego« in »lego dol« saj smo želeli,

da se ta gib izvede počasneje kot glavni zamah meta na koš.

V glavnem delu sledi koda za gibanje robota. Robot najprej izvede pomike skozi točke

»Waypoint« 1,2,3,4,5 kjer spotoma pobere žogico (digitalni izhod »gripper« postavimo na

logično 0 oziroma Off). Nato izvede pomik v lego podano s spremenljivko q1 ter počaka za

nadaljevanje. »Waypoint« točke so prav tako izbrane glede na okolico robota in so namenjene

za premik do sistema za pobiranje žogic, kar lahko vidimo na posnetku v poglavju 6. Točke so

izbrane s prestavljanjem robota v prostem teku in s shranjevanjem ustreznih točk oziroma

položajev robota.

➢ MoveJ Waypoint_1 Waypoint_2 Waypoint_3 Set gripper=0ff (zapremo prijemalo oziroma poberemo žogico) Wait: 1.0 Waypoint_4 Waypoint_5

Movej(q1,v=v1)

Page 47: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

36

Na zaslonu se s pomočjo ukaza »Popup« izpiše stavek: »Pritisni continue za nadaljevanje

meta.«. Tako ob pritisku na tipko »Continue« robot počaka 2 sekundi (ukaz »Wait: 2.0«), nato

pa se pomakne v točko q2 ter izvede gib moveJ do končne točke q3.

Ukaz moveJ vpišemo v skriptni obliki, pri čemer definiramo končno točko q3, pospešek

nastavimo na maksimum, hitrost pa zapišemo kot spremenljivko v_omega na začetku

programa. Maksimalni možni pospešek je odvisen od trajektorije in obremenitve, ter v našem

primeru znaša 3,3 rad/s2. Določili smo ga eksperimentalno s povečevanjem do maksimalne

vrednosti (robotski vmesnik prikaže obvestilo, da je prišlo do omejitve momentov). Z

meritvami smo ugotovili, da robot dejansko pospešuje s takšnim pospeškom.

➢ Ukaz: movej(q3, a=3.3, v=v_omega)

Ukaza »Popup« in »Wait« smo uporabili zaradi varnosti, da opozorimo izvajalca na izvedbo

giba, ki pa je pri daljših razdaljah že zelo hiter. Tako se lahko izvajalec varno odmakne iz

delovnega območja.

Na koncu sledita dva paralelna programa Thread_1 in Thread_2, ki se izvajata konkurenčno z

glavnim programom. Prvi je namenjen odpiranju prijemala in meritvi zakasnitve odpiranja ter

je razložen v poglavju 5.2, drugi pa omogoča komunikacijo z računalnikom in je podrobno

razložen v poglavju 4.3.

Page 48: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

37

6 REZULTATI

Ob končanem programu na robotu smo začeli s testiranjem oziroma metanjem žoge na koš.

Da smo lahko potrdili pravilno delovanje aplikacije, je bilo potrebno narediti eksperimente na

različnih razdaljah. Ob začetnih testiranjih smo ugotovili, da je za naš gib minimalna možna

razdalja med košem in baznim koordinatnim sistemom dmin =160 cm. Za krajše razdalje, bi bilo

potrebno prilagoditi gib oziroma spremeniti točke končne lege. Zanimala nas je tudi

maksimalna možna dolžina do koša, ki znaša dmax =350 cm od baznega koordinatnega sistema.

Za daljše razdalje namreč potrebujemo hitrosti, katerih robot ne zmore več. Testiranje smo

tako začeli na minimalni dovoljeni razdalji (dmin) in povečevali v intervalu po 10 cm do

maksimalne razdalje (dmax).

Slika 6.1: Maksimalna in minimalna možna razdalja meta

Page 49: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

38

Potrebni oziroma izračunani podatki za metanje žoge na koš, se nahajajo v nalogi [15]. Te

podatke nato sami vpišemo v robotski program s pomočjo ukazov opisanih v poglavju 5.4.

V tabeli 1 so prikazani rezultati metanja za pet različnih razdalj. Ostale rezultate najdemo v

diplomi [15].

Tabela 1: Rezultati metanja na pet različnih razdalj:

Rezultati naših primerov kažejo, da prihaja pri meritvah (izmerjeni rezultati) do minimalnih

razlik reda ±5 cm. Ob podrobnejši analizi v nalogi [15] vidimo, da robot na kakšni razdalji koša

ne zadane, kar pa je z vidika tekmovanja zanimivo. Namreč v primeru, da bi človek in robot

izmenično metala na koš in tekmovala kdo večkrat zadane, nebi bilo zanimivo, če bi robot

vedno zmagal. Tako ima v našem primeru človek vsaj nekakšno možnost, da robota premaga.

Posnetek aplikacije meta žoge na koš je dosegljiv na spletu, kjer vidimo primer na razdalji

𝑑 =2,5 in 3,5 m. Na začetku izvajalec izmeri razdaljo med košem in baznim koordinatnim

sistemom ter vpiše vrednost v orodje MATLAB, kjer se izvedejo vsi potrebni izračuni. Sledi

prepis podatkov v robotski program in izvedba meta. Izračunani podatki iz posnetka so prav

tako na voljo v tabeli 1.

Povezava do posnetka: https://www.youtube.com/watch?v=4kf852hCl40&t=4s

VHODNI/VPISANI PODATKI IZMERJENI PODATKI

Željena dolžina: Dosežena razdalja:

d[m] v_omega[rad/s] v_omega[°/s] J2[rad] J2[°] [m]

1.6 1.980 113.434 -2.197 -125.860 1.58

2 2.172 124.418 -2.200 -126.043 2.05

2.5 2.394 137.177 -2.225 -127.490 2.51

3 2.601 149.044 -2.175 -124.621 3.05

3.5 2.795 160.165 -2.137 -122.439 3.49

IZRAČUNANI PODATKI

Hitrost vodilnega sklepa: Položaj drugega sklepa:

Page 50: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

39

7 SKLEP

V okviru diplomske naloge smo izdelali aplikacijo, kjer robot meče žogo na koš postavljen na

poljubni razdalji. Ker smo se prvič srečali s takšno vrsto robota, smo ga morali na začetku

”spoznati”. Najprej smo s pomočjo priročnikov [13, 14] analizirali robota in se spoznali z

načinom programiranja. Ugotovili smo, da je programiranje zaradi uporabniškega vmesnika

»PolyScope« dokaj enostavno. Vmesnik nam omogoča uporabo raznih ukazov, kar bistveno

poenostavi programiranje. Tako smo začeli razvijati program, ki omogoča izvedbo giba in

zadetek žoge v obroč koša. Eden ciljev diplomske naloge je bil tudi ta, da robot izvede gib čim

bolj podoben človeški roki med metom, kar nam je z uporabo giba moveJ tudi uspelo. Da pa

smo lahko žogo pri metu v željeni točki izpustili, smo potrebovali nekakšno orodje, ki to

omogoča. Uporabili smo prijemalo GIMATIC MPPM 1 606 [2], s katerim smo lahko žogo prijeli

in jo v ustrezni točki izmeta izpustili.

Za dosego željene razdalje do koša, potrebujemo v točki izmeta ustrezno hitrost in kot izmeta.

Ker žoga pri metu opravi gibanje imenovano poševni met, lahko s pomočjo formul v nalogi

[15] izračunamo potrebna podatka. Tako imamo odvisnost med razdaljo do koša in hitrostjo

izmeta, kar pomeni, da lahko met izvajamo na različne razdalje. S pomočjo izračunov v nalogi

[15], smo tako dobili ustrezne vhodne podatke za naš robotski program.

Uspelo nam je doseči dovolj veliko hitrost, da je robot zmožen vreči žogo do razdalje 3,5 m od

baznega koordinatnega sistema, kar je približno 4,3 m od točke izmeta. Tako smo izpolnili še

en zastavljen cilj in sicer, da je razdalja meta zadovoljiva in zanimiva za gledalce.

Z zaključitvijo diplomske naloge smo zelo zadovoljni, saj nam je uspelo doseči vse zastavljene

cilje. Na začetku je naloga izgledala zelo enostavna, vendar se ja izkazalo, da je pri tako

specifični aplikaciji potrebno upoštevati veliko parametrov, na katere na začetku nismo niti

pomislili. Verjetno bi bilo aplikacijo lažje izvesti s kakšnim drugim robotom, ki je namenjen

hitrejšim gibom, vendar kljub temu menimo, da smo se z robotom UR5 odlično odrezali.

Page 51: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

40

Aplikacija ponuja še veliko možnosti za nadgradnjo. Trenutno se namreč vsi potrebni preračuni

izvedejo na računalniku, izvajalec pa jih nato ročno prepiše v robotski program. Ker smo

pokazali, da robot omogoča komunikacijo z računalnikom, bi lahko izračunane podatke

pošiljali preko Ethernet povezave. Prav tako je zelo zamudno ročno merjenje razdalje med

košem in robotom, kar bi lahko izvedli s pomočjo senzorjev razdalje ali pa kar s strojnim vidom,

ki bi zaznal položaj koša v okolici.

Page 52: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

41

8 VIRI IN LITERATURA

[1] Python Socket Connection [splet], Dosegljivo:

https://www.tutorialspoint.com/python/python_networking.htm [Datum dostopa:

3.8.2017].

[2] MPPM PINZE ELETTRICHE PARALLELE MECHATRONICS GIMATIC [splet], Dosegljivo:

http://www.gimaticusa.com/pdfs/Electric/mppm.pdf [Datum dostopa: 9.7.2017].

[3] Python 2.7.0 Release | Python.org [splet], Dosegljivo:

https://www.python.org/download/releases/2.7/. [Datum dostopa: 8.7.2017].

[4] The Python Tutorial — Python 2.7.13 documentation [splet], Dosegljivo:

https://docs.python.org/2/tutorial/. [Datum dostopa: 8.7.2017].

[5] UR5 - The flexible and collaborative robotic arm [splet], Dosegljivo: https://www.universal-robots.com/products/ur5-robot/ [Datum dostopa: 7.7.2017].

[6] UR Script: Commands via Socket connection | Zacobria Universal-Robots community

- a help forum with hints tips and how to use universal robot CB2 [splet], Dosegljivo:

http://www.zacobria.com/universal-robots-zacobria-forum-hints-tips-how-

to/script-via-socket-connection/. [Datum dostopa: 7.7.2017].

[7] UNVERSAL ROBOTS. Technical details [pdf], Dosegljivo: https://www.universal-

robots.com/media/1514597/101081_199901_ur5_technical_details_web_a4_art03

_rls_eng.pdf [Datum dostopa: 2.8.2017].

[8] Industrijski roboti [splet], Dosegljivo: http://www.industrijskiroboti.si/

[Datum dostopa: 2.8.2017]

[9] Aerodynamics and Biomechanics of the Free Throw [splet],

Dosegljivo:https://www.researchgate.net/publication/227232435_Aerodynamics_and_

Biomechanics_of_the_Free_Throw [Datum dostopa: 2.8.2017]

[10] BENEFITS OF USING COLLABORATIVE ROBOTS [splet], Dosegljivo:

http://www.acieta.com/blog/benefits-using-collaborative-robots/

[Datum dostopa: 2.8.2017]

[11] Universal Robots. User manual [pdf], Dosegljivo: https://www.universal-

robots.com/media/8704/ur5_user_manual_gb.pdf [Datum dostopa: 3.8.2017]

[12] ROBOTICA files [splet], Dosegljivo: http://www-

lar.deis.unibo.it/people/cmelchiorri/Files_Robotica/RIM_09_Traj.pdf [Datum

dostopa: 4.8.2017]

[13] Priročnik PolyScope, različica 3.1, UNIVERSAL ROBOTS, 2015

[14] Priročnik URScript Programming Language, različica 1.8 , UNIVERSAL ROBOTS,

2013

[15] Picej, A. (2017). DOLOČANJE GIBANJA 6-OSNEGA KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ. Diplomsko delo, Maribor: Univerza v Mariboru, Fakulteta za strojništvo.

Page 53: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

42

9 PRILOGE

Robotski program

BeforeStart var_1≔socket_open("164.8.231.150",30002) var_5≔0 i≔1 v1≔0.5 Set Gripper=0n grip=0 DI8=0 'Tocke zacetne lege:' q1≔[0, -2.87979, -1.309, -2.70526, 0.0000, 0.7000] 'Tocke spodnje lege:' q2≔[0, -2.87979, -1.33648, -2.00348, 0.0000, -1,46621] 'Tocke koncne lege:' q3≔[0, -1.02583, 0.5967, -1.5578, 0.0000, -1.4254] v_omega:='Hitrost vodilnega sklepa:' J2:= 'Položaj drugega sklepa(odpiranje prijemala):' Robot Program MoveJ Waypoint_1 Waypoint_2 Waypoint_3 Set gripper=0ff Wait: 1.0 Waypoint_4 Waypoint_5 MoveJ(q1,v=v1) Popup var_5≔1 Wait: 2.0 socket_send_string("start")

movej(q2, v=v1) movej(q3, a=3.3, v=v_omega) MoveJ

Waypoint_6 socket_close()

Page 54: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

43

Thread_1 pose2≔get_joint_positions() joint2=pose2[1] If var_5≟1 If joint2≥ J2 Set Gripper=On grip=1 Else Set Gripper=Off

grip=0

If digital_in[8] DI8=0

Else DI8=1

sync() Thread_2 var_2≔socket_read_ascii_float(3) If var_2[1]≟20 tcp_s≔get_actual_tcp_speed()

tcp_p≔get_actual_tcp_positions() joint_s≔get_actual_joint_speed()

joint_p ≔get_actual_joint_positions()

tcp_speed_x≔tcp_s[0] tcp_speed_y≔tcp_s[1] tcp_speed_z≔tcp_s[2] tcp_p_x≔tcp_p[0] tcp_p_y≔tcp_p[1] tcp_p_z≔tcp_p[2] j2=joint_s[1] j3=joint_s[2]

j4=joint_s[3] j6=joint_s[5] rob=[ tcp_speed_x, tcp_speed_y, tcp_speed_z, tcp_p_x, tcp_p_y, tcp_p_z, j2, j3, j4, j6] meritev= [grip, DI8]

socket_send_string(rob) 'socket_send_string(meritev) '

Page 55: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

44

MATLAB program za meritev časa odpiranja prijemala

%PRIDOBITEV PODATKOV O ODPRTJU PRIJEMALA IN PREKINITVI TOKOKROGA %==========================================================================

%1. podatek DI8 -tokokrog %2. podatek grip -odprtje prijemala

%Pridobitev podatkov iz meritev A=xlsread('cas_odpiranja','3.5m'); %pridobimo podatke iz Excel datoteke DI8=A(:,1); %prvi stolpec iz datoteke vpisujemo v spremenljivko DI8 grip=A(:,2); %drugi stolpec iz datoteke vpisujemo v spremenljivko grip

%Čas oziroma x-os t=linspace(0,10.434,1300); %na x osi razporedimo 1300 podatkov

%Izris grafa plot(t,DI8,'b','LineWidth',2) %Izris spremenljivke DI8 hold on plot(t,grip,'r','LineWidth',2) %Izris spremenljivke grip grid legend('DI8','grip') %legenda ylabel('signal [0 ali 1]') %y os xlabel('cas [s]') %x os

Page 56: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

45

MATLAB program računanje skaliranih podatkov pri trapeznem profilu

%PODATKI IZ HITROSI SKLEPI in JOINT POSITIONS format short

%-------------------------------------------------------------- %ZAČNEMO POSPEŠEVAT PRI 4.9 SEKUNDE - %VREDNOSTI IZ DATOTEKE HITROST SKLEPI t_0=4.9; %čas ko začne pospeševat(s) t_1=5.647; %čas ko konča pospeševat in začne enakomerno(s) t_2=5.687; %čas ko konča enakomerno in začne zavirat(s) t_f=6.467; %čas ko konča zavirat(s) %-------------------------------------------------------------- %ČAS ZAVIRANJA IN POSEPŠEVANJA (STA ENAKA): ta=t_1-t_0; %čas pospeševanja(s) td=ta; %čas zaviranja(s) % td=tf-t2 %čas zaviranja(s) %-------------------------------------------------------------- %ZAČNEMO POSPEŠEVAT PRI 0 SEKUNDE t0=0; %čas ko začne pospeševat(s) ta; %%čas ko konča pospeševat in začne enakomerno(s) tf_ta=t_f-ta-t_0; %čas ko konča enakomerno in začne zavirat (s) tf=t_f-t_0; %čas ko konča zavirat(s)

T=tf-t0; %čas trajanja pomika(s) Te=tf_ta-ta; %čas trajanja enakomernega gibanja(s)

%-------------------------------------------------------------- %VREDNOSTI IZ DATOTEKE JOINT POSITIONS %-------------------------------------------------------------- %Rama: vmax1=1.99; %odčitana hitrost iz grafa(rad/s)

qi2=(-165*pi)/180; %zasuk v času "0s"(rad) qi12=(-129.4*pi)/180; %zasuk v času ta(rad) fi13=(-91.94*pi)/180; %zasuk v času tf_ta(rad) qf2=(-58.75*pi)/180; %zasuk v času tf(rad) L2=abs(qi2-qf2); %CELOTEN POMIK(ZASUK)(rad)

% qdot_v1=(qf1-qi1)/(tf-ta); %izračunana končna hitrost(rad/s) % qdot_a1=(4*L1)/(tf*tf); %minimalna vrednost pospeška(rad/s2)->

qdot_a>=vrednost

%-------------------------------------------------------------- %Komolec: vmax2=2.09; %odčitana hitrost iz grafa(rad/s)

qi3=(-76.57*pi)/180; %zasuk v času "0s"(rad) fi22=(-39.47*pi)/180; %zasuk v času ta(rad) fi23=(-0.392*pi)/180; %zasuk v času tf_ta(rad) qf3=(34.2*pi)/180; %zasuk v času tf(rad) L3=abs(qi3-qf3) %CELOTEN POMIK(ZASUK)(rad)

% qdot_v2=(qf2-qi2)/(tf-ta); %izračunana končna hitrost(rad/s) % qdot_a2=(4*L2)/(tf*tf); %minimalna vrednost pospeška(rad/s2)->

qdot_a>=vrednost

Page 57: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

46

%-------------------------------------------------------------- %Zapestje 1: vmax3=0.465; %odčitana hitrost iz grafa(rad/s)

qi4=(-114.8*pi)/180; %zasuk v času "0s"(rad) fi32=(-106*pi)/180; %zasuk v času ta(rad) fi33=(-97*pi)/180; %zasuk v času tf_ta(rad) qf4=(-89.25*pi)/180; %zasuk v času tf(rad) L4=abs(qi4-qf4); %CELOTEN POMIK(ZASUK)(rad)

% qdot_v3=(qf3-qi3)/(tf-ta); %izračunana končna hitrost(rad/s) % qdot_a3=(4*L3)/(tf*tf); %minimalna vrednost pospeška(rad/s2)->

qdot_a>=vrednost

%-------------------------------------------------------------- %Zapestje 3: vmax4=0.0423; %odčitana hitrost iz grafa(rad/s)

qi6=(-84*pi)/180; %zasuk v času "0s"(rad) fi42=(-83.22*pi)/180; %zasuk v času ta(rad) fi43=(-82.36*pi)/180; %zasuk v času tf_ta(rad) qf6=(-81.63*pi)/180; %zasuk v času tf(rad) L6=abs(qi6-qf6); %CELOTEN POMIK(ZASUK)(rad)

% qdot_v4=(qf4-qi4)/(tf-ta); %izračunana končna hitrost(rad/s) % qdot_a4=(4*L4)/(tf*tf); %minimalna vrednost pospeška(rad/s2)->

qdot_a>=vrednost

%-------------------------------------------------------------- % POSTOPEK B( DOLOČIMO NAJVEČJO POTOVALNO HITROST IN NAJVEČJO VREDNOST % POSPEŠKA) %-------------------------------------------------------------- qdot_max=pi; %maksimalna vrednost hitrosti sklepa(rad/s)

za UR5 gdot_dot_max=3.3; %maksimalna ala vrednost pospeška

sklepa(rad/s2) za naš gib ta_B=qdot_max/gdot_dot_max; %maksimalna čas trajanja pospeševanja

%SKLEP POTEBUJE OB MAKSIMALNIH HITRPSTIH TAKŠEN ČAS DA PREPOTUJE RAZDALJO L T2_B=((L2*gdot_dot_max)+(qdot_max*qdot_max))/(gdot_dot_max*qdot_max); %čas

potovanja pri max vrednostih(rad) T3_B=((L3*gdot_dot_max)+(qdot_max*qdot_max))/(gdot_dot_max*qdot_max); %čas

potovanja pri max vrednostih(rad T4_B=((L4*gdot_dot_max)+(qdot_max*qdot_max))/(gdot_dot_max*qdot_max); %čas

potovanja pri max vrednostih(rad T6_B=((L6*gdot_dot_max)+(qdot_max*qdot_max))/(gdot_dot_max*qdot_max); %čas

potovanja pri max vrednostih(rad

Lmax=(qdot_max*qdot_max)/(gdot_dot_max); %maksimalna vrednost za obstoj

potovalnega segmenta(rad)->Lmax>=Li %sicer se celotna pot opravi med %pospeševanjem in zaviranjem %T=2*ta_B----->POGOJ DRŽI

%IZRAČUNAMO VREDNOSTI ZA OS Z NAJVEČJIM POMIKOM (L2)

Page 58: PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 · 2020. 1. 30. · IV PROGRAMIRANJE KOLABORATIVNEGA ROBOTA UR5 ZA MET NA KOŠ Ključne besede: kolaborativni robot UR5, robotski met na koš,

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

47

L3;

%NAJVEČJI POMIK OPRAVI SKLEP KOMOLEC - L(rad) ta3_B=ta_B

%IZRAČUNA SE ČAS POSPEŠEVANJA ZA L3 (s) T3=((L3*gdot_dot_max)+(qdot_max*qdot_max))/(gdot_dot_max*qdot_max)

%IZRAČUNA SE ČAS POTOVANJA ZA L3 (s)

% gdot_dot_3=L3/(ta3_B*(T3-ta3_B)) %izračun pospeška za sklep

KOMOLEC % qdot_3=L3/(T3-ta3_B) %izračun hitrosti za sklep

KOMOLEC

%NA PODLAGI PARAMETROV ZA OS L2 SE IZRAČUNAJO HITROSTI IN POSPEŠKI OSTALIH

OSI

qdot_2=(L2/L3)*qdot_max %izračun hitrosti za sklep RAMA gdot_dot_2=(L2/L3)*gdot_dot_max %izračun pospeška za sklep RAMA

qdot_4=(L4/L3)*qdot_max %izračun pospeška za sklep

ZAPESTJE 1 gdot_dot_4=(L4/L3)*gdot_dot_max %izračun hitrosti za sklep

ZAPESJTE 1

qdot_6=(L6/L3)*qdot_max %izračun pospeška za sklep RAMA

ZAPESJTE 3 gdot_dot_6=(L6/L3)*gdot_dot_max %izračun hitrosti za sklep

ZAPESJTE 3