• Rezultati Niso Bili Najdeni

Prepoznavanje izdelkov s pomočjo strojnega vida in njihovo sortiranje z robotskim manipulatorjem

N/A
N/A
Protected

Academic year: 2022

Share "Prepoznavanje izdelkov s pomočjo strojnega vida in njihovo sortiranje z robotskim manipulatorjem"

Copied!
76
0
0

Celotno besedilo

(1)

UNIVERZA V LJUBLJANI Fakulteta za strojništvo

Prepoznavanje izdelkov s pomočjo strojnega vida in njihovo sortiranje z robotskim manipulatorjem

Diplomsko delo visokošolskega strokovnega študijskega programa I. stopnje Strojništvo

Domen Ceglar

Ljubljana, junij 2021

(2)
(3)
(4)
(5)

UNIVERZA V LJUBLJANI Fakulteta za strojništvo

Prepoznavanje izdelkov s pomočjo strojnega vida in njihovo sortiranje z robotskim manipulatorjem

Diplomsko delo visokošolskega strokovnega študijskega programa I. stopnje Strojništvo

Domen Ceglar

Mentor: prof. dr. Primož Podržaj, univ. dipl. inž.

Somentor: doc. dr. Drago Bračun, univ. dipl. inž.

Ljubljana, junij 2021

(6)
(7)
(8)
(9)

v

Zahvala

Vsem, ki so na kakršen koli način pripomogli k izdelavi diplomske naloge, se iskreno zahvaljujem. Predvsem se zahvaljujem mentorju prof. dr. Primožu Podržaju in somentorju doc. dr. Dragu Bračunu za ideje in usmerjanje tekom izdelave diplomskega dela.

Zahvaljujem se fakulteti in laboratoriju LAKOS, ker so mi na njihovi opremi dovolili opravljati diplomsko nalogo in mi jo v ta namen posodili.

Hvala tudi laborantu Dominiku Rupertu in asistentu dr. Luku Selaku za vso strokovno pomoč in pomoč pri testiranju v laboratoriju.

Najlepša hvala družini, ki mi je ob izdelavi diplomske naloge ves čas stala ob strani in me spodbujala.

(10)

vi

(11)
(12)

viii

(13)

ix

Izvleček

UDK 007.52:681.5:621.865.8(043.2) Tek. štev.: VS I/868

Prepoznavanje izdelkov s pomočjo strojnega vida in njihovo sortiranje z robotskim manipulatorjem

Domen Ceglar

Ključne besede: robotska celica PLK

strojni vid

robotski manipulator prijemalo

avtomatizacija

Diplomska naloga predstavlja usposobitev konkretnega sistema robotske celice. Za potrebe le tega je v prvem delu prikazano vzpostavljanje komunikacije naprav v omrežju in pisanje ter nalaganje programa na PLK. Sledi prikaz postavitve in programiranja slikovnega sistema za namen strojnega vida. Na koncu je prikazana izdelava prijemala in programiranje robotskega manipulatorja.

(14)

x

(15)

xi

Abstract

UDC 007.52:681.5:621.865.8(043.2) No.: VS I/868

Machine vision based object recognition and sorting with the application of a robot manipulator

Domen Ceglar

Key words: robot cell PLC

machine vision robot manipulator gripper

automatisation

The thesis represents the setup of a concrete robot cell system. For this purpose, the first part explains the communication of devices in the network and writing and uploading a program to the PLC. This is followed by a demonstration of the layout and programming of an imaging system for the purpose of machine vision. Finally, the design of the gripper and the programming of the robotic manipulator are demonstrated.

(16)

xii

(17)

xiii

Kazalo

Kazalo slik ... xv

Kazalo preglednic... xvii

Seznam uporabljenih simbolov ... xix

Seznam uporabljenih okrajšav ... xix

1 Uvod ...1

1.1 Ozadje problema ... 1

1.2 Cilji ... 1

2 Predstavitev komponent ...3

2.1 Programirljivi logični krmilnik (PLK) ... 3

2.1.1 Lestvični diagram (LD) ... 4

2.1.2 Sekvenčni funkcijski diagram (SFC)... 5

2.1.3 Funkcijski blokovni diagram (FBD)... 6

2.1.4 Strukturiran tekst (ST)... 8

2.1.5 Seznam ukazov (IL) ... 10

2.2 Robotski manipulator ... 11

2.3 Strojni vid ... 13

2.4 Omrežje ... 15

3 Robotska celica...17

3.1 PLK ... 17

3.1.1 Automation Studio ... 18

3.1.2 IP konfiguracija ... 22

3.1.3 Program... 24

3.2 Strojni vid ... 27

3.2.1 Pozicioniranje kamere ... 27

3.2.2 RoboRealm... 28

3.2.3 Program... 28

3.3 Robotski manipulator ... 34

3.3.1 Izdelava prijemala ... 36

3.3.2 Postavitev koordinatnega sistema ... 37

3.3.3 Program... 38

(18)

xiv

4 Rezultati ... 41

5 Zaključki ... 47

Literatura ... 49

Priloga ... 51

(19)

xv

Kazalo slik

Slika 1.1: Robotska celica ...2

Slika 1.2: Pak ...2

Slika 2.1: PLK [3]...3

Slika 2.2: Lestvični diagram ...4

Slika 2.3: SFC prehod, korak, akcija ...5

Slika 2.4: SFC program ...5

Slika 2.5: Identiteta [7] ...6

Slika 2.6: Negacija [7] ...6

Slika 2.7: Konjunkcija [7] ...6

Slika 2.8: Disjunkcija [7] ...7

Slika 2.9: Schefferjeva funckija [7]...7

Slika 2.10: Pierceova funckija [7] ...7

Slika 2.11: Antivalenca [7] ...7

Slika 2.12: Ekvivalenca [7]...8

Slika 2.13: FBD program [8] ...8

Slika 2.14: Program v jeziku ST [10] ... 10

Slika 2.15: Program v jeziku IL [13] ... 10

Slika 2.16: Robotski manipulator [14] ... 11

Slika 2.17: Postroj robotskih manipulatorjev [15]... 11

Slika 2.18: Načini gibanja robotskega manipulatorja [16] ... 12

Slika 2.19: Razlika med FINE in CNT gibom [17] ... 13

Slika 2.20: Slikovni sistem [18] ... 13

Slika 2.21: Shematski prikaz filtriranja barvne slike [17]... 14

Slika 2.22: Ethernet kabel z rj45 konektorjem [21] ... 16

Slika 2.23: Profibus kabel z db9 konektorjem [22] ... 16

Slika 2.24: Profibus kabel z m12 konektorjem [23] ... 16

Slika 3.1: PLK... 18

Slika 3.2: Osnovni pogled AutomationStudio ... 18

Slika 3.3: Logical View ... 19

Slika 3.4: Configuration View ... 20

Slika 3.5: Physical View ... 21

Slika 3.6: Spremenjen IP naslov računalnika ... 22

Slika 3.7: Sistem v programu Automation Studio ... 23

Slika 3.8: Statusna vrstica s statusom RUN ... 24

Slika 3.9: Spremenljivke ... 24

Slika 3.10: Stikala ... 25

Slika 3.11: Digitalni vhodi ... 25

Slika 3.12: Digitalni izhodi... 25

(20)

xvi

Slika 3.13: PLK program...26

Slika 3.14: Kamera...27

Slika 3.15: RoboRealm ...28

Slika 3.16: Slika pred kalibracijo ...29

Slika 3.17: Slika po kalibraciji ...29

Slika 3.18: Kvadratna mreža, ki je uporabljena kot etalon pri kalibraciji ...30

Slika 3.19: Obrezovanje ...30

Slika 3.20: Pak po prvih obdelavah slike...31

Slika 3.21: Pak po dodatnih obdelavah slike ...31

Slika 3.22: Postopek učenja izgleda izdelka...32

Slika 3.23: Pak po končni obdelavi slike ...33

Slika 3.24: Program v RR ...33

Slika 3.25: Robotski manipulator M-20iA 20M ...34

Slika 3.26: Krmilnik R30-iB z učno napravo [20]...35

Slika 3.27: Model prijemala v programu Solidworks ...36

Slika 3.28: Pritrjeno prijemalo na robotskem manipulatorju ...36

Slika 3.29: Priprava uporabljena za pomoč pri postavljanju koordinatnega sistema robotskega manipulatorja...37

Slika 3.30: Program robotskega manipulatorja ...38

Slika 4.1: Zelena kontrolna luč ...41

Slika 4.2: Oblike prepoznane s strojnim vidom ...42

Slika 4.3: Test vpliva direktne svetlobe 1, levo neobdelano, desno po obdelavi ...43

Slika 4.4: Test vpliva direktne svetlobe 2, levo neobdelano, desno po obdelavi ...43

Slika 4.5: Koordinatni sistem robotskega manipulatorja ...44

Slika 4.6: Levo pobiranje izdelka, desno njegovo odlaganje ...45

(21)

xvii

Kazalo preglednic

Tabela 3.1: Specifikacije robotskega manipulatorja M-20Ia 20M ... 35

(22)

xviii

(23)

xix

Seznam uporabljenih simbolov

Oznaka Enota Pomen

f

d mm

mm goriščna razdalja premer leče

Seznam uporabljenih okrajšav

Okrajšava Pomen

PLK IEC LD SFC FBD ST IL CPE RGB FPS IP LAN WAN UTP OPC UA AS RR iHMI

Programirljivi Logični Krmilnik

mednarodna elektrotehnična komisija (angl. International Electrotechnical Commission)

lestvični diagram (angl. Ladder Diagram)

sekvenčni funkcijski diagram (angl. Sequential Function Chart) funkcijski blokovni diagram (angl. Function Block Diagram) strukturiran tekst (angl. Structured Text)

seznam ukazov (angl. Instruction List) Centralna Procesna Enota

rdeča zelena modra (angl. Red Green Blue)

število sličic na sekundo (angl. Frames Per Second) internetni protokol (angl. Internet Protocol)

lokalno omrežje (angl. Local Area Network) prostrano omrežje (angl. Wide Area Network)

sukana parica oz. dvojna prepletena žica (angl. Unshielded Twisted Pair)

odprta platforma za komunikacije poenotena arhitektura (angl. Open Platform Communications Unified Architecture)

Automation Studio RoboRealm

Inteligenčni uporabniški vmesnik (angl. Intelligent Human Machine Interface)

(24)

xx

(25)

1

1 Uvod

1.1 Ozadje problema

V industriji se vedno iščejo načini za doseganje večje natančnosti in ponovljivosti delovnih procesov, pocenitev proizvodnje in povečanje produktivnosti. Vse te rešitve ponuja avtomatizacija, ki se v zadnjih letih vedno pogosteje pojavlja v proizvodnih pro cesih.

Avtomatizacija industrijskih procesov pomeni vpeljavo strojev in naprav oziroma postrojenj v procese, ki jih je dotlej opravljal človek. Stroji prevzamejo izvršilno funkcijo, človek pa je zadolžen za njihovo nadzorovanje, vzdrževanje in popravljanje [1]. Eden od načinov avtomatizacije procesa je implementacija robotske celice.

1.2 Cilji

Cilj diplomske naloge je usposobiti konkreten sistem robotske celice, ki jo sestavljajo robotski manipulator, programirljivi logični krmilnik, dva tekoča trakova, industrijski računalnik s pripadajočimi komponentami, ki so potrebne za uporabo (ekran, miška, tipkovnica), kamero in omrežno povezavo. Za zaščito skrbi mrežasta ograja, ki jo ograjuje, vanjo pa so vgrajena vrata, ki po potrebi omogočajo vstopanje v notranjost.

Robotska celica (slika 1.1) bo na koncu sposobna samodejnega prepoznavanja izdelka, določitve ali je ta ustrezen ali ne, določitve njegove lokacije, ter na podlagi tega pobiranja in odlaganja ustreznih izdelkov.

(26)

Uvod

2

Slika 1.1: Robotska celica

Za izdelek, ki ga bo program zaznal kot ustreznega in ga bo manipulator pobral, smo določili Pak, ki je prikazan na sliki 1.2. Gre za približno okrogel izdelek premera cca. 73 mm in višine 24 mm.

Slika 1.2: Pak

(27)

3

2 Predstavitev komponent

2.1 Programirljivi logični krmilnik (PLK)

Programirljivi logični krmilnik (v nadaljevanju PLK), prikazan na sliki 2.1, je digitalni elektronski sistem (računalnik), ki je namenjen za uporabo v industrijskem okolju. Sama sestava PLK-jev je v marsičem podobna klasičnim računalnikom – vsebuje napajalnik, centralno procesno enoto, spomin, vhode in izhode, operacijski siste m itd., vendar je zasnovan tako, da je veliko bolj robusten, odporen in kompakten [2]. Obstaja več proizvajalcev in vrst PLK-jev, namenjenih različno zahtevnim operacijam.

Slika 2.1: PLK [3]

Programiranje PLK-ja poteka na tretji napravi, iz katere lahko nato prek različnih medijev prenesemo program na PLK. Po standardu IEC 61131-3 so za programiranje PLK-jev definirani naslednji jeziki:

• Ladder Diagram oz. Lestvični Diagram (LD),

• Sequential Function Charts oz. Sekvenčni Funkcijski Diagram (SFC),

• Function Block Diagram oz. Funkcijski Blokovni Diagram (FBD),

• Structured Text oz. Strukturiran Tekst (ST),

• Instruction List oz. Seznam Ukazov (IL).

Prve tri metode so grafični tipi jezika za programiranje, zadnji dve pa sta tekstovni. Vsaka izmed metod je uporabna za različne aplikacije in ima svoje prednosti ter slabosti [2, 3, 5].

(28)

Predstavitev komponent

4

2.1.1 Lestvični diagram (LD)

LD je prvotni jezik za programiranje PLK-jev. Nastal je z željo po enostavnem prehodu iz takratnih kontaktnih načrtov, katerih glavna gradnika sta bila tuljava kot del vhodnega releja in kontakt kot del izhodnega tokokroga. Programski jezik je zato sestavljen iz kombinacij grafičnih simbolov, kot so: oglati oklepaji ],[, s poševnico /, okrogli oklepaji ),(, s poševnico /. idr. [6]. Primeri nekaterih simbolov so:

• -] [- … normalno odprti kontakt (ob aktivaciji se sklene)

• -]/[- … normalno zaprti kontakt (ob aktivaciji se razklene)

• -( )- … normalno odprta tuljava (ob aktivaciji se sklene)

• -(/)- … normalno zaprta tuljava (ob aktivaciji se razklene)…

Simboli si sledijo v vodoravni črti, na vsaki strani pa so omejeni z dvema navpičnima črtama, ki predstavljata napajanje in ozemljitev. Leva stran je namenjena programiranju vhodov, desna stran pa izhodom. Operacije si sledijo iz leve proti desni in od zgoraj navzdol [5].

Primer Lestvičnega diagrama je prikazan na sliki 2.2.

Slika 2.2: Lestvični diagram

(29)

Predstavitev komponent

5

2.1.2 Sekvenčni funkcijski diagram (SFC)

SFC program sestoji iz korakov, ki vsebujejo akcije. Akcije določajo kaj se izvede v posameznem koraku, vsak od korakov pa ima lahko eno ali več akcij. Korake med seboj povezujejo prehodi. Med vsakim korakom je točno en prehod in med vsakim prehodom je točno en korak [5]. Na sliki 2.3 je prikazan en prehod in en korak z eno akcijo.

Slika 2.3: SFC prehod, korak, akcija

Bistveni elementi SFC jezika so:

• začetek,

• konec,

• skok nazaj,

• prehodni pogoj,

• akcija,

• alternativna vejitev,

• paralelna vejitev.

Vsak SFC program ima vsaj en začetni korak – inicializacijo, ki je označena z dvojnim robom. Skok nazaj je potreben za vračilo iz zadnjega na začetni korak, kar omogoča kontinuirni proces. Primer SFC programa za odpiranje garažnih vrat je prikazan na sliki 2.4.

Slika 2.4: SFC program

(30)

Predstavitev komponent

6

2.1.3 Funkcijski blokovni diagram (FBD)

FBD jezik za programiranje je sestavljen iz blokov, ki so med seboj pov ezani. Funkcijski bloki opisujejo logično funkcijo med vhodi in izhodi. Logične funkcije, ki jih lahko vsebuje posamezen blok, so prikazane na slikah od 2.5 do 2.12, kjer A in B predstavljata vhode, Y pa izhode [5, 7].

• Identiteta:

Slika 2.5: Identiteta [7]

• Negacija:

Slika 2.6: Negacija [7]

• Konjunkcija (AND oz. IN):

Slika 2.7: Konjunkcija [7]

(31)

Predstavitev komponent

7

• Disjunkcija (OR oz. ALI):

Slika 2.8: Disjunkcija [7]

• Schefferjeva funckija (NAND oz. NIN):

Slika 2.9: Schefferjeva funckija [7]

• Pierceova funkcija (NOR oz. NALI):

Slika 2.10: Pierceova funckija [7]

• Antivalenca (XOR oz. XALI):

Slika 2.11: Antivalenca [7]

(32)

Predstavitev komponent

8

• Ekvivalenca (XNOR oz XNALI):

Slika 2.12: Ekvivalenca [7]

Vez v FBD jeziku lahko med seboj povezuje:

• vhodno spremenljivko in vhod v blok,

• izhod iz bloka in vhod v naslednji blok,

• izhod iz bloka in izhodno spremenljivko.

Na sliki 2.13 je prikazan primer enostavnega programa, napisanega v jeziku FBD.

Slika 2.13: FBD program [8]

2.1.4 Strukturiran tekst (ST)

ST je visokonivojski jezik za programiranje PLK-jev, ki temelji na Pascalu. Program sestoji iz treh delov. Začne se z inicializacijo ter zaključi z izhodom iz programa, med njima pa se nahaja jedro oziroma glavni del programa. V inicializaciji se, po potrebi, definira vse potrebno za nemoteno delovanje programa, v izhodu se, po potrebi, definira vse, kar je pomembno za zaključek in izhod iz programa [5, 9, 10, 11].

(33)

Predstavitev komponent

9 Program nastane s pisanjem stavkov, ki so zaključeni s podpičjem. Vsak naslednji stavek se zapiše v novo vrstico. Stavek vsebuje enega ali več izrazov, ki vsebujejo operatorje in operande. V grobem so poznane 4 vrste operatorjev [11]:

• Aritmetični operatorji:

o + (seštevanje),

o – (odštevanje/negiranje), o * (množenje),

o ** (eksponent), o / (deljenje),

o % (ostanek pri deljenju), o razne kombinacije.

• Relacijski operaterji:

o = (enako), o != (ni enako), o < (manj od),

o <= (manj od ali enako), o > (več od),

o >= (več od ali enako).

• Logični operatorji:

o !/NOT (negacija), o &&/AND (in), o ||/OR (ali), o XOR.

• Bitni operatorji (delujejo na nivoju bitov):

o & (in), o | (ali), o ˆ (XOR), o ~ (negacija), o << (premik levo), o >> (premik desno).

Pogosto uporabljene so tudi različne zanke, znotraj katerih se izvajajo programi, če so izpolnjeni pogoji za njihovo izvajanje [11]:

• IF,

• ELSE IF,

• WHILE,

• FOR,

• REPEAT,

• CASE.

Na sliki 2.14 je prikazan primer programa napisanega v ST jeziku.

(34)

Predstavitev komponent

10

Slika 2.14: Program v jeziku ST [10]

2.1.5 Seznam ukazov (IL)

IL je eden izmed prvih jezikov za programiranje PLK-jev. Spada med nizkonivojske jezike saj je zelo podoben binarnemu jeziku ki ga direktno izvaja CPE. Program je sestavljen iz skokov in klicanja funkcij [12]. Primer programa je prikazan na sliki 2.15.

Slika 2.15: Program v jeziku IL [13]

(35)

Predstavitev komponent

11

2.2 Robotski manipulator

Robotski manipulator (lahko tudi robotska roka), prikazan na sliki 2.16, je večnamenski, reprogramibilen manipulator s tremi ali več osmi. Navadno je fiksno pritrjen v tla ali steno, po potrebi pa je lahko nameščen tudi na sani, ki so pomične in mu omogočajo večji doseg.

Med seboj se razlikujejo predvsem po velikosti, nosilnosti in dosegu.

Slika 2.16: Robotski manipulator [14]

V industriji robotski manipulator nadomešča par človeških rok. Več robotskih manipulatorjev je lahko nameščenih v postroj, kjer skupaj opravljajo isto nalogo, ali pa v robotskih celicah, kjer s pomočjo ostalih elementov delujejo kot enovit sistem, ki se ga krmili z enega mesta. Na sliki 2.17 je prikazan robotski postroj, ki deluje na isti liniji za proizvodnjo avtomobilov.

Slika 2.17: Postroj robotskih manipulatorjev [15]

(36)

Predstavitev komponent

12

Vsa navodila za premikanje robotskega manipulatorja so shranjena v robotskem krmilniku, prav tako se tam izvajajo vsi potrebni preračuni, da se gibanje robotskega manipulatorja izvaja brez neželenih potez, oziroma, da se robot ne bi znašel v neželenem položaju (npr.

singularnost). Krmilnik se navadno nahaja v omari, v kateri je tudi napajalnik, ki omogoča vklop robotskega manipulatorja, ki se vedno nahaja nekje v bližini.

Premikanje vrha robota iz točke A v točko B lahko poteka na več načinov. Le ti so: Joint, Linear in Circular [16]. Vsi trije načini so prikazani na sliki 2.18.

Pri načinu giba Joint, gre za premikanje robotskega manipulatorja le v njegovih sklepih oz.

zapestjih. Ta način gibanja je za robota najbolj naraven, v ozadju ne zahteva nobenih računskih operacij in ga posledično najmanj obremenjuje. Način gibanja Joint je priporočen za vse proste gibe, saj zaradi svoje nezahtevnosti podaljšuje življenjsko dobo robotskega manipulatorja [16].

Linear gib je, kot namiguje ime, linearni premik med točkama. Za manipulator je to bolj zahteven gib, saj je za natančen premik v ozadju potrebna matematika. Robotski manipulator interpolira proti točkam, vendar se jih ne dotakne povsem (za človeško oko neopazna odstopanja). Kvaliteta robotskega manipulatorja se lahko meri tudi v ponovljivosti doseganja točk znotraj toleranc v zaporednih ciklih. Ta način pomikanja se uporablja za gibe, kjer se mora manipulator gibati po točno določeni trajektoriji brez odstopanj (ovire, čim hitrejši cikel ipd.) [16].

Zadnji način gibanja (circular), je krožno gibanje, pri katerem gre prav tako za interpolacijo.

Poleg začetne in končne točke je potrebno podati še tretjo, mimo katere se napne lok, po katerem se nato premika vrh robotskega manipulatorja [16].

Slika 2.18: Načini gibanja robotskega manipulatorja [16]

Poleg načina pomika se v programski vrstici podata še hitrost pomikanja robotskega manipulatorja in način približevanja točki. Poznamo dva načina, FINE in CNT. Pri prvem se robot premakne in ustavi na vsaki od točk, ter nato nadaljuje gibanje do naslednje točke.

Pri načinu CNT pa se robot točki približuje, vendar je nikoli ne doseže saj se pred tem že preusmeri k naslednji točki. Razdalja na kateri robotski manipulator potuje mimo točke je določena z vrednostjo od 0 do 100, ki se nahaja poleg CNT ukaza [17]. Razlika med FINE in CNT načinom je prikazana na sliki 2.19.

(37)

Predstavitev komponent

13 Slika 2.19: Razlika med FINE in CNT gibom [17]

Robotski manipulator izvaja le nalogo za katero je programiran. Ni sposoben samodejnega razmišljanja in reševanja morebitnih problemov, ki nastanejo med procesom, saj nima vgrajene svoje ''pameti'', ki bi mu to omogočala.

Primer večjih podjetij, ki izdelujejo robotske manipulatorje so: Fanuc (Japonska), Yaskawa (Japonska), ABB (Švica), Kuka (Nemčija).

2.3 Strojni vid

Strojni vid omogoča nadzorovanje okolice, s pomočjo primerne programske opreme pa tudi prepoznavanje različnih objektov, zaznavanje nevarnih situacij, optično merjenje, kontrolo ipd.

Za delovanje strojnega vida mora obstajati slikovni sistem (slika 2.20), ki je sestavljen iz osvetlitve, optike, kamere in obdelave slike [18].

Slika 2.20: Slikovni sistem [18]

(38)

Predstavitev komponent

14

Poznamo več različnih načinov osvetlitev, vsak od njih pa ima svoje prednosti. Delimo jih na osvetlitev v osi s sprednje strani (natančna določitev robov), osvetlitev iz zadnje strani (preverjanje prosojnosti) in osvetlitev pod kotom (triangulacija) [19].

V slikovnem sistemu optika skrbi za preslikavo opazovanega objekta na zaznavalo slike, ki se nahaja v kameri. Optiko predstavljajo objektivi, ki so sestavljeni iz več leč z različnimi karakteristikami, s katerimi lahko prilagodimo prikaz objekta tako, kot nam ustreza (povečava, pomanjšava, približanje…). Pomembni parametri objektivov so: goriščna razdalja, numerična odprtina (f/d), optične popačitve, format slike oz. njen največji premer, najmanjša možna oddaljenost od objekta, navoj objektiva (zaradi kompatibilnosti s kamero) in gabaritne mere [18,19].

Digitalizacija slike se zgodi v kameri. Slika se skozi element optike preslika na zaznavalo, ki se nahaja v kameri. Površina zaznavala je prekrita s fotocelicami in vsaka od njih generira svoj električni signal proporcionalno glede na jakost svetlobe, ki jo zazna. Da je zaznavalo slike sposobno prepoznavanja barve mora imeti vsaka od fotocelic barvni filter (RGB).

Fotocelice brez barvnih filtrov lahko zaznavajo le črno-bele slike. Fotocelice pri zaznavalih z barvnimi filtri lahko zbirajo podatek le o eni barvi (rdeči, zeleni ali modri), ostali dve barvni komponenti pa sta izračunani na osnovi povprečne vrednosti sosednjih fotocelic, ki zbirajo podatke ostalih barv. Shematski prikaz postopka je prikazan na sliki 2.21. Pomembni parametri kamer so: velikost zaznavala slike, število fotocelic na zaznavalu, velikost fotocelic, sposobnost ali nesposobnost zajemanja barvne slike, hitrost zajemanja slike, število bitov v digitalnem zapisu, šum, izhodni priključki, navoj za objektiv in gabaritne mere [20].

Slika 2.21: Shematski prikaz filtriranja barvne slike [17]

Obdelava zajete slike se izvrši na strojni opremi, s pomočjo programske opreme in lahko poteka v več fazah, dokler ni dosežen željen prikaz, na podlagi katerega je mogoče nadaljnje odločanje in izvajanje ukazov.

Poleg slikovnega sistema je za strojni vid pomembno še merilno območje in vzorčenje.

Merilno območje je odvisno od velikosti zaznavala slike ter povečave objektiva in omejuje območje, ki ga opazuje slikovni sistem oz. strojni vid. Vzorčenje je razmerje med velikostjo

(39)

Predstavitev komponent

15 opazovanega območja in številom fotocelic v vodoravni oz. navpični smeri. Priporočilo je, da naj ima slikovni sistem vzorčenje vsaj 10 krat večje od dimenzije opazovanega objekta.

Za opazovanje objekta velikega 1 mm naj bo torej v posamezni smeri za opazovanje vsakega mm območja zadolženih 10 mm fotocelic in bo tako popisan na vsakih 0,1 mm oziroma 10 krat za njegovo celotno velikost.

Pred začetkom uporabe slikovnega sistema je potrebno še umerjanje, ki je lahko izvedeno s pomočjo različnih etalonov.

2.4 Omrežje

Omrežna povezava sistema je namenjena komunikaciji med gradniki sistema.

Omrežje sestavljajo različni sistemi, ki so med seboj povezani z namenom medsebojne komunikacije. Prek povezave je možen tok informacij, ki si ga med seboj izmenjujejo različni gradniki sistema. Omrežja so lahko lokalna – LAN (Local Area Network) ali pa globalna – WAN (Wide Area Network).

Povezava za komunikacijo in prenos podatkov je lahko žična ali pa brezžična. Prednosti žične povezave v primerjavi z brezžično so predvsem večja zanesljivost, manjša latenca in hitrejši prenos podatkov.

Da se sistemi med seboj razumejo je potrebna uvedba pravil in postopkov, kar se z eno besedo imenujejo protokoli. Zelo razširjen referenčni model protokola je TCP/IP, kjer ima vsaka naprava v omrežju svoje ime, IP naslov in MAC naslov. To jim v omrežju omogoča medsebojno prepoznavanje in razločevanje med različnimi napravami kar je potrebno za tekočo komunikacijo.

V industriji sta najbolj pogosto uporabljena Ethernet povezava s profinet protokolom ali profibus povezava, ki bazira na serijski komunikaciji. Profinet komunikacija poteka prek ethernet kablov, najpogosteje s pripadajočim konektorjem tipa rj45 oz. UTP (slika 2.22) – Unshielded Twisted Pair. V industrijskem okolju so obarvani z zeleno bravo. Za serijsko komunikacijo so uporabljeni kabli tipa rs485, najpogosteje s konektorjema tipa db9 (slika 2.23) ali m12 (slika 2.24). Kabli za serijsko komunikacijo so v industrijskem okolju obarvani z vijolično barvo. Za ethernet komunikacijo so najbolj značilni protokoli profinet, http, tcp/ip opc ua…, za serijsko komunikacijo pa profibus. Vsak od protokolov ima svojo namembnost, prednosti in slabosti.

(40)

Predstavitev komponent

16

Slika 2.22: Ethernet kabel z rj45 konektorjem [21]

Slika 2.23: Profibus kabel z db9 konektorjem [22]

Slika 2.24: Profibus kabel z m12 konektorjem [23]

(41)

17

3 Robotska celica

3.1 PLK

Prva od komponent, ki je potrebna za doseganje zastavljenega cilja, je PLK. Ta je sestavljen iz več modulov, ki so med seboj preko vodil povezani v celoto. Za diplomsko nalogo smo uporabili gradnike PLK-ja proizvajalca B&R:

• napajalna plošča z ekranom na dotik 4PPC50.101E-10B,

• vodilo X20BB82,

• krmilnik vodila X20BC1083,

• napajalni modul za vodilo, X2X povezavo in vhode/izhode X20PS9400,

• komunikacijski modul X20IF10E3-1,

• modul za digitalne vhode X20DIF371 (2x),

• modul za digitalne izhode X20DOF322 (2x),

• industrijski računalnik 5OC910.SX05-00,

• napajalnik 0PS1050.1,

• mrežno stikalo.

Vse komponente, nameščene v električno omarico, so prikazane na sliki 3.1.

(42)

Robotska celica

18

Slika 3.1: PLK

3.1.1 Automation Studio

Automation Studio (v nadaljevanju AS) je program podjetja B&R, ki je namenjen za konfiguracijo PLK-ja, pisanju ter testiranju programov in nalaganju programov na PLK, ki jih ta izvaja. Izgled celotnega uporabniškega vmesnika programske opreme je prikazan na sliki 3.2.

Slika 3.2: Osnovni pogled AutomationStudio

(43)

Robotska celica

19 Levi del je namenjen trem različnim menijem: Logical View, Configuration View in Physical View. Uporabniku je namenjen osrednji del, kjer so mogoče razne konfiguracije, dodeljevanje digitalnih vhodov in izhodov, pisanje samega programa ipd. V desnem delu je meni z vsemi komponentami, ki so na voljo uporabniku glede na delo, ki ga opravlja v osrednjem delu. Spodnje okno prikazuje uspešne postopke, oziroma napake, ki se morebiti pojavijo med pregledom in nalaganjem programa na PLK. Čisto na dnu je še statusna vrstica, ki pove v kakšnem stanju je PLK: povezan, brez povezave, v načinu za vzdrževanje ipd.

Logical View se uporablja za prikaz vsega, kar ne spada pod strojno opremo. V grobem je namenjen prikazu in upravljanju ter deklaraciji podatkovnih tipov, spremenljivk, objektov ipd. Izgled menija je prikazan na sliki 3.3.

Slika 3.3: Logical View

(44)

Robotska celica

20

Configuration View predstavlja aplikacijo v odvisnosti od strojne opreme. Uporablja se za prikaz in upravljanje konfiguracij strojne opreme. Izgled menija je prikazan na sliki 3.4.

Slika 3.4: Configuration View

(45)

Robotska celica

21 Physcal View prikazuje strojno opremo, ki je uporabljena v trenutni konfiguraciji. Moduli strojne opreme so prikazani v drevesni strukturi, kjer jih je mogoče tudi konfigurirati in urejati. Izgled menija je prikazan na sliki 3.5.

Slika 3.5: Physical View

(46)

Robotska celica

22

3.1.2 IP konfiguracija

Proces konfiguracije se začne s povezovanjem PLK-ja in industrijskega računalnika v mreži.

Ker ima PLK pred-nastavljen svoj IP naslov 10.0.0.202, računalnik pa je povezan v mrežo z IP naslovom 192.167.1.107, se napravi v omrežju ne vidita in ju ni mogoče povezati. Da je napravi mogoče povezati, jima je potrebno nastaviti dovolj podobne IP naslove. Kolikšna podobnost je potrebna, da se napravi opazita, je odvisno od uporabljene maske. V primeru diplomske naloge smo uporabili C masko, kar pomeni, da se mora IP obeh naprav v prvih treh sklopih števil popolnoma ujemati, četrti sklop števil pa mora biti drugačen, saj mora za komunikacijo vsaka naprava imeti svojo številko, s katero se lahko identificira v mreži.

Ker so na obstoječo mrežo z usmerjevalnikom, ki ima IP naslov 192.167.1.1, povezane tudi ostale naprave, smo se odločili, da je enostavneje spremeniti IP naslov PLK-ja tako, da bo ustrezal IP-ju usmerjevalnika ter vsem ostalim napravam, ki so že povezane v mreži in bo lahko povezan z računalnikom.

V meniju za nastavitve PLK-ja smo spremenili IP naslov tako, da je dovolj podoben IP naslovu računalnika. Da je bilo to mogoče, smo morali najprej spremeniti IP naslov računalnika tako, da je v mreži videl PLK. S tem smo omogočili nalaganje novega, želenega, IP naslova iz programske opreme računalnika na PLK, saj morata biti za povezavo obe napravi na dovolj podobnih IP naslovih. Po uspešnem prenosu in spremembi IP naslova PLK-ja, smo IP naslov računalnika vrnili na prvotno vrednost in tako je bila povezava uspešno vzpostavljena.

IP naslov računalnika smo spremenili v nadzorni plošči pod zavihkoma Omrežje in internet in nato Središče za omrežje in skupno rabo. Tu se ob dvokliku na obstoječo povezavo odpre nov meni. Pod lastnostmi poiščemo internetni protokol TCP/IPv4. Ob ponovnem kliku na lastnosti se lahko spremeni IP naslov računalnika.

Za potrebe povezovanja s PLK-jem smo IP naslov računalnika spremenili na 10.0.0.1. Novo določen IP je prikazan na sliki 3.6.

Slika 3.6: Spremenjen IP naslov računalnika

Računalnik ob spremembi IP naslova izgubi povezavo z usmerjevalnikom in posledično začasno nima več spletne povezave, vendar je sedaj mogoča povezava s PLK-jem.

(47)

Robotska celica

23 S tem je vse pripravljeno za spremembo IP naslova PLK-ju. To storimo s pomočjo računalnika in programa AS.

S programom AS lahko spremenimo IP naslov PLK-ja. Ker smo IP računalnika predhodno že spremenili, je možna takojšnja vzpostavitev povezave. Pod zavihkoma Online/Settings smo dodali novo povezavo in vnesli želeni ciljni IP naslov (10.0.0.202). Po postopku iskanja naprav na tem IP naslovu se je prikazal naš PLK. Tega enostavno izberemo ter z njim vzpostavimo povezavo. Ko je bila povezava uspešna, smo lahko v statusni vrstici opazili spremembo statusa iz OFFLINE v RUN, kar pomeni, da sta računalnik in PLK povezana in je sedaj možna njegova konfiguracija.

Pred konfiguracijo posameznih komponent jih je najprej potrebno vnesti v program.

Ustvarili smo nov projekt in vanj vnesli vse komponente PLK-ja. V primeru diplomske naloge so bile uporabljene naslednje komponente:

• napajalna plošča z ekranom na dotik 4PPC50.101E-10B,

• vodilo X20BB82,

• krmilnik vodila X20BC1083,

• napajalni modul za vodilo, X2X povezavo in vhode/izhode X20PS9400,

• komunikacijski modul X20IF10E3-1,

• modul za digitalne vhode X20DIF371 (2x),

• modul za digitalne izhode X20DOF322 (2x),

• industrijski računalnik 5OC910.SX05-00,

• napajalnik 0PS1050.1,

• mrežno stikalo.

Sistem v programu AS deluje brez napajalnika, zato ga ni potrebno vstavljati. Sistem, izdelan v programu, je prikazan na sliki 3.7.

Slika 3.7: Sistem v programu Automation Studio

(48)

Robotska celica

24

Za spremembo IP naslova PLK-ja smo v programu AS, v pogledu Phyical View dostopili do ETH menija. Odpre se okno, v katerem je mogoče nastavljanje IP naslova omrežne povezave PLK-ja. IP smo za potrebe diplomske naloge spremenili iz 10.0.0.202 v 192.167.1.135. Nov IP naslov je za zdaj spremenjen samo v programu na računalniku, potrebno ga je naložiti še na PLK. Ker sta računalnik in PLK že povezana, se prenos nove konfiguracije na PLK lahko izvede takoj – s pritiskom na Transfer funkcijo, ki se nahaja v orodni vrstici.

Po naložitvi konfiguracije na PLK se v statusni vrstici ponovno prikaže OFFLINE. Razlog za to je v tem, da ima PLK sedaj novo določen IP naslov, ki se ne ujema več s spremenjenim IP-jem računalnika. Ponovna vzpostavitev povezave je enostavna – IP računalnika smo po enakem postopku, kot je predhodno opisano, spremenili nazaj na začetni IP naslov 192.167.1.107.

Ko je IP računalnika uspešno spremenjen nazaj, se ponovno vzpostavi povezava med PLK- jem in računalnikom, zato se v statusni vrstici programa AS status spremeni iz OFFLINE v RUN. Statusna vrstica s statusom RUN je prikazana na sliki 3.8.

Slika 3.8: Statusna vrstica s statusom RUN

3.1.3 Program

Ko je vzpostavljena povezava med PLK-jem in računalnikom, sledi pisanje programa. Na začetku je potrebna deklaracija vseh spremenljivk in podatkovnih tipov. Za potrebe diplomske naloge smo deklarirali dve globalni spremenljivki: dIn (digitalni vhodi) in dOut (digitalni izhodi). Vsaki od teh globalnih spremenljivk smo dodali potrebno število BOOL podatkovnih tipov. BOOL je podatkovni tip, ki ima lahko samo dve stanji, in sicer: TRUE ali FALSE (1 ali 0, DA ali NE…).V praksi bo to uporabljeno za vklapljanje oziroma izklapljanje naprav. Na sliki 3.9 je prikazana deklaracija in opis vseh spremenljivk in podatkovnih tipov.

Slika 3.9: Spremenljivke

(49)

Robotska celica

25 Pod digitalnimi vhodi smo deklarirali tri podatkovne tipe BOOL. Ti so povezani s stikali, ki so nameščeni na ohišje PLK-ja in predstavljajo vhode. Z njimi se zaganja ali ustavlja celoten program (slika 3.10).

Slika 3.10: Stikala

Digitalnim izhodom smo deklarirali šest podatkovnih tipov BOOL. Prva dva sta namenjena vklapljanju luči, ki so nad celico, ostali štirje pa so namenjeni zagonu vhodnega in izhodnega tekočega traku v smereh naprej in nazaj.

Spremenljivke je po deklaraciji potrebno poimenovati in dodeliti na vhode in izhode PLK- ja. V primeru diplomske naloge smo iz dokumentacije razbrali, na katere vhode in izhode so zvezane luči in tekoča trakova, ter spremenljivke za njihovo upravljanje dodelili na pravilne vhode oziroma izhode. Dodeljeni ter poimenovani vhodi in izhodi PLK-ja so prikazani na slikah 3.11 in 3.12. Tako dodeljeni ter poimenovani vhodi in izhodi se lahko zdaj uporabijo za pisanje programa.

Slika 3.11: Digitalni vhodi

Slika 3.12: Digitalni izhodi

(50)

Robotska celica

26

Program za diplomsko nalogo (slika 3.13) se začne z inicializacijo, kjer so vhodom določene začetne vrednosti. V glavnem delu programa je določeno, kateri element se aktivira ob pritisku na različna stikala za upravljanje. Ob pritisku na zeleno stikalo se prižge zelena luč in naprej se začneta pomikati oba tekoča trakova. Ob pritisku na rdeče stikalo, se prižge rdeča luč in oba tekoča trakova se ustavita. Ob pritisku na modro stikalo se program ponastavi in vse luči ugasnejo.

Slika 3.13: PLK program

(51)

Robotska celica

27

3.2 Strojni vid

Za doseganje želenega cilja prepoznavanja izdelkov je potrebna primerna strojna oprema in pripadajoča programska oprema. Za prepoznavanje izdelkov na tekočem traku smo uporabili kamero znamke The imaging source, model DFK 33GX264. Gre za barvno kamero s senzorjem velikosti 2/3'' in resolucijo 2448 x 2048 pixlov, ki omogoča snemanje do 24fps [25].

Za programski del opreme smo izbrali program RoboRealm, s katerim bomo obdelovali sliko, ki jo prikaže kamera in tako izluščili le za nas pomembne informacije in detajle.

3.2.1 Pozicioniranje kamere

V izogib morebitnemu trku med kamero in robotskim manipulatorjem, smo kamero namestili na zunanjo stran kletke. V ta namen smo izdelali enostaven nosilec, na katerega smo pritrdili kamero in jo namestili pod kotom, tako da opazuje območje interesa, ki se nahaja na notranji strani. Ključna je bila natančna montaža, tako, da kletka ni vidna v območju, ki ga zajema kamera, hkrati pa je opazovano območje čim večje. Končna montaža kamere je prikazana na sliki 3.14.

Slika 3.14: Kamera

(52)

Robotska celica

28

3.2.2 RoboRealm

Programska oprema RoboRealm (v nadaljevanju RR) je razvita posebej za aplikacije strojnega vida. Implementiranih ima več modulov, ki so namenjeni enostavnemu doseganju potreb strojnega vida za različne aplikacije. Osnovni pogled programa je prikazan na sliki 3.15.

Slika 3.15: RoboRealm

Leva stran je namenjena prikazu in iskanju med vsemi moduli, ki so na voljo. Spodnji del je namenjen pisanju programa oziroma vnašanju modulov. Zgoraj, v orodni vrstici, je mogoče preklapljanje med vsemi povezanimi kamerami ter vklapljanje in izklapljanje programa.

Osrednji del je namenjen prikazu slike. Ta je lahko surova, takšna kot jo vidi kamera, ali pa že obdelana z raznimi moduli. Module se lahko kadarkoli med izvajanjem ugasne, in pojavi se surova slika. Možen je tudi prikaz slike obdelane le z določenimi moduli in ne z vsemi, ki so uporabljeni v trenutnem programu, kar je uporabno za popravljanje programa, če je to potrebno.

3.2.3 Program

Ker je kamera nameščena pod kotom in zato ni usmerjena pravokotno na površino, je na začetku programa potrebna kalibracija slike. Na sliki 3.16 je prikazana surova in neobdelana slika. Vidi se, da slika ni poravnana, je popačena, barvna in polna šuma. Vse to so lahko razlogi, da bi se kasneje v aplikaciji lahko pojavili problemi in napake.

(53)

Robotska celica

29 Kot prvega smo uporabili modul Auto_Image_Calibration, skupaj z mrežo iz črnih in belih kvadratov, ki služi kot objekt za orientacijo oziroma etalon. V modul smo vnesli želeno širino in višino posameznega kvadrata v pixlih. Izbrali smo mero 90 pixlov za posamezen kvadrat, kar pomeni, da bo celotna slika velikosti 990 x 990 pixlov, saj ima mreža 13 kvadratov v širino in 13 v višino. Zunanja vrsta kvadratov služi le kot referenca in ni kalibrirana. Na sliki 3.17 je prikazana slika po končani kalibraciji, na sliki 3.18 pa mreža kvadratov, ki je bila uporabljena kot etalon v postopku kalibracije.

Slika 3.16: Slika pred kalibracijo

Slika 3.17: Slika po kalibraciji

(54)

Robotska celica

30

Slika 3.18: Kvadratna mreža, ki je uporabljena kot etalon pri kalibraciji

Na sliki je sedaj prikazano območje, večje od tistega, ki nas zanima, območje okoli mreže pa ni kalibrirano. Sliko smo zato z modulom Affine še dodatno obrezali. Zajeli smo območje 1000 x 1000 pixlov, torej celotno kalibrirano območje in malenkost dodatnega območja na vsaki stranici. Postopek obrezovanja je prikazan na sliki 3.19. Na sliki 3.20 je prikazano, kako izgleda izdelek po prvih obdelavah – kalibraciji slike.

Slika 3.19: Obrezovanje

(55)

Robotska celica

31 Slika 3.20: Pak po prvih obdelavah slike

Naslednji korak je pretvorba slike v črno belo in odstranitev nepotrebnega šuma. Za dosego tega cilja smo uporabili programski modul RGB_Filter_Gray. Za tem je uporabljeni modul Blob_Separate, ki v programu med seboj loči vse oblake belih točk, kar omogoča naslednjemu modulu Blob_Size, da vse manjše oblake točk, ki nas ne zanimajo, odstrani s slike. Naslednji modul, Blob_Filter, s slike izbriše predmete, ki (še) niso v celoti v območju opazovanja. Sledi mu modul Smooth Hull, ki zgladi rob posameznega oblaka točk. Izgled slike s Pakom, po vseh dodanih modulih, je prikazan na sliki 3.21.

Slika 3.21: Pak po dodatnih obdelavah slike

(56)

Robotska celica

32

Slika je sedaj čista in razločna, zato se lotimo modulov za sledenje in prepoznavanje oblik izdelkov. Na vrsto pride modul Blob Tracking. Ta modul služi sledenju predmeta po opazovanem območju, in sicer tako, da primerja predhodno zajeto sliko z obstoječo in išče enake oblake pixlov. Če na obeh slikah opazi enak oblak pixlov na različnih lokacijah, potem ve, da gre za isti predmet, ki se je premaknil. Modulu lahko specificiramo, kateri parametri za sledenje so najpomembnejši, izbiramo lahko med velikostjo, težo, barvo, obliko ipd., ali pa vsem parametrom dodelimo enako težo.

Sledi modul Shape_Match. Ta modul bo omogočal programu prepoznavanje posameznih objektov. Da bo to mogoče, je na začetku potrebno s posnetkom zaslona posneti izgled predmetov, za katere želimo, da jih bo program prepoznal. Za primer diplomske naloge smo določili Pak kot edini primeren izdelek, dodatno pa smo v program vnesli izgled še ovala, kvadrata, pravokotnika in trikotnika. Za te oblike in ostale izdelke, ki jih program ne bo prepoznal, bo privzel, da niso ustrezni.

Pak smo posneli s kamero, ki je namenjena strojnemu vidu in sliko naložili v program s pomočjo že omenjenega modula Shape_Match. Program ima sedaj referenčno sliko, s katero bo primerjal vsak opažen izdelek. Vnesli smo še velikost pisave, s katero program prikazuje ime izdelka in minimalno podobnost referenčni sliki, ki je potrebna, da program prepozna izdelek kot Pak. Na sliki 3.22 je prikazan postopek učenja oblike.

Slika 3.22: Postopek učenja izgleda izdelka

Naslednji modul, ki sledi, je Center of Gravity. Ta poišče središče vsakega predmeta v opazovanem območju v pixlih, za njim pa smo dodali modul Display_Variables, ki v kotu slike prikazuje koordinate središča izdelka v opazovanem območju. Za njima smo vstavili še modul Timer, v katerem se lahko določa, frekvenco zajemanja slik. Na sliki 3.23 je prikazan objekt Pak, ki je prepoznan s strani programa in koordinate njegovega središča.

(57)

Robotska celica

33 Slika 3.23: Pak po končni obdelavi slike

S tem je končana programska obdelava slike. Zadnji je na vrsti modul »if« s pripadajočim zaključkom »end_if«. Gre za »if« zanko, v katero smo napisali dodatne korake, ki se izvedejo le, če je pogoj za »if« zanko ustrezen. Pogoj za izvedbo »if« zanke je, da je izdelek v opazovanem območju prepoznan kot Pak. V tem primeru se v tekstovno datoteko na računalniku zapišejo koordinate središča Pak-a. Nato se s pomočjo KAREL programa in Ethernet povezave prenesejo in zapišejo v določen pozicijski register robotskega manipulatorja. Za ta zapis smo določili pozicijski register 81. Prav tako se v drugo tekstovno datoteko ob ustreznem pogoju zapiše število 1, ki pa se preko KAREL programa in Ethernet povezave prepiše v navaden register robota in je pogoj za začetek izvedbe programa robota.

Za ta zapis smo izbrali navaden register 81. Celoten program v RR je prikazan na sliki 3.24.

Slika 3.24: Program v RR

(58)

Robotska celica

34

3.3 Robotski manipulator

Za pobiranje in odlaganje izdelkov na končno mesto je zadolžen robotski manipulator. V robotski celici sta uporabljena robotski manipulator znamke Fanuc, model M-20iA 20M prikazan na sliki 3.25 in pripadajoči krmilnik R-30iB.

Slika 3.25: Robotski manipulator M-20iA 20M

Gre za šest-osni manipulator največje nosilnosti 20 kg in največjim dosegom 1813 mm. Teža robotskega manipulatorja je 250 kg [26]. Ostale lastnosti manipulatorja so prikazane v razpredelnici 3.1.

(59)

Robotska celica

35 Tabela 3.1: Specifikacije robotskega manipulatorja M-20Ia 20M

Rotacija prve osi J1 370°(max 195°/s)

Rotacija druge osi J2 260° (max 175°/s)

Rotacija tretje osi J3 458° (max 180°/s)

Rotacija četrte osi J4 400° (max 405°/s)

Rotacija pete osi J5 280° (max 405°/s)

Rotacija šeste osi J6 900° (max 615°/s)

Največja dovoljena obremenitev z momentom v zapestju osi J4 45,1 Nm Največja dovoljena obremenitev z momentom v zapestju osi J5 45,1 Nm Največja dovoljena obremenitev z momentom v zapestju osi J6 30 Nm Največja dovoljena vztrajnostna obremenitev v zapestju osi J4 2,01 kgm2 Največja dovoljena vztrajnostna obremenitev v zapestju osi J5 2,01 kgm2 Največja dovoljena vztrajnostna obremenitev v zapestju osi J6 1,01 kgm2

Ponovljivost ±0.03 mm

Serija Mate krmilnikov je namenjena manjšim robotom in je razvita posebej za robote serije M. Poleg omare, v kateri se nahaja krmilnik, je prisoten tudi teach pendant, oziroma učna naprava, kamor se vpisujejo ukazi in piše program, z njim pa je možno tudi testiranje in ročni zagon programa. Krmilnik uporablja inteligenčni uporabniški vmesnik imenovan iHMI (Intelligent Human Machine Interface) [26]. Krmilnik R-30iB s pripadajočo učno napravo je prikazan na sliki 3.26.

Slika 3.26: Krmilnik R30-iB z učno napravo [20]

(60)

Robotska celica

36

3.3.1 Izdelava prijemala

Robotski manipulator na vrhu robota (konec kinematične verige) omogoča namestitev različnih orodij, s katerimi nato opravlja različna dela. Za potrebe naše aplikacije pobiranja smo v programu za 3D modeliranje Solidworks zmodelirali enostavno prijemalo (slika 3.27), ki smo ga natisnili s pomočjo 3D tiskalnika. Končni izgled pritrjenih prijemal na robotskem manipulatorju je prikazan na sliki 3.28.

Slika 3.27: Model prijemala v programu Solidworks

Slika 3.28: Pritrjeno prijemalo na robotskem manipulatorju

(61)

Robotska celica

37

3.3.2 Postavitev koordinatnega sistema

Robotski manipulator ima lahko več različnih koordinatnih sistemov, vsi pa izhajajo iz enega, tako imenovanega ''world'' kartezičnega koordinatnega sistema, ki ima izhodišče na sredini podstavka. Svoje koordinatne sisteme imajo tudi vsi sklepi, poleg tega pa je mogoče definirati še koordinatni sistem z izhodiščem na koncu orodja, ki je pritrjeno na robotski manipulator in koordinatni sistem, ki ga uporabnik definira po svoji želji.

Za potrebo diplomske naloge je potreben koordinatni sistem, ki se bo skladal s tistim na programu RR, za kar osnovni koordinatni sistem robotskega manipulatorja ni primeren. V ta namen smo definirali svoj, uporabniški koordinatni sistem.

Za določevanje svojega koordinatnega sistema smo izbrali metodo treh točk, za katero so potrebni trije koraki. Prvi korak je postavitev koordinatnega izhodišča. Da bi točko določili čim bolj natančno, smo to storili po fazi kalibracije in obrezovanja območja interesa v programu RR, torej takrat, ko je bil na tekočem traku še vedno prisoten etalon – mreža črno- belih kvadratov.

Za postopek smo v prijemalo robotskega manipulatorja vpeli posebno pripravo v obliki špice (slika 3.29), ki nam je omogočala, da smo središče prijemala poravnali na želene točke. Na učni napravi v meniju izberemo SETUP in nato FRAMES, kjer smo izbrali želen koordinatni sistem, User Frame in metodo Three point. Za določitev koordinatnega sistema s to metodo je potrebno robotskemu manipulatorji določiti tri točke: izhodišče koordinatnega sistema, x- smer in y-smer. Na podlagi teh točk lahko robotski manipulator z izračuni glede na osnovni koordinatni sistem postavi novi, želeni, koordinatni sistem, ki bo primeren za našo aplikacijo.

Slika 3.29: Priprava uporabljena za pomoč pri postavljanju koordinatnega sistema robotskega manipulatorja

Za izhodišče smo izbrali spodnji levi rob opazovanega območja, Y os je bila postavljena v smeri širine tekočega traku, X os pa v smeri dolžine tekočega traku in je bila usmerjena proti mreži robotske celice. Enako so bile osi postavljene v programu RR.

(62)

Robotska celica

38

3.3.3 Program

Program za robotski manipulator smo napisali na učni napravi, s katero se ga upravlja. Izgled programa je prikazan na sliki 3.30.

Slika 3.30: Program robotskega manipulatorja

Program je sestavljen le iz enega dolgega IF stavka, ki se začne v vrstici 3 in konča v vrstici 33. Pogoj za izvedbo programa je pozitiven pogoj IF stavka, ki pa je sprememba zapisa registra 81 iz 0 v 1. Spremembo te vrednosti na robota pošlje program RR, v kolikor je izpolnjen pogoj za pobiranje Paka (na sliki je zaznan izdelek Pak).

(63)

Robotska celica

39 V peti vrstici IF stavka se določi koordinatni sistem, ki ga bo uporabljal robotski manipulator. Izbran je koordinatni sistem št. 7, oziroma tisti, ki smo ga predhodno določili s pomočjo priprave in kvadratne mreže tako, da se sklada s koordinatnim sistemom kamere, oziroma s tistim v programu RR.

Vrstice 7, 8 in 9, so namenjene postavitvi robotskega manipulatorja v izhodiščni položaj in ga pripravit na izvedbo pobiranja in prenašanja Paka. V sedmi vrstici se robotski manipulator pomakne v začetno točko izvajanja programa. Poleg točke sta določena tudi hitrost – 1000 mm/sec in način pomika v to točko – FINE.

Vrstica osem kliče funkcijo OPEN, ki se nahaja izven tega programa. Funkcija služi odpiranju prijemala na koncu robotskega manipulatorja. Da se funkcija izvede do konca, in da ne bi prišlo do trka, je za njo v vrstici devet dodana še funkcija čakanja in sicer 1 sekunda.

Sledijo vrstice 11, 12 in 13, v katerih se izvaja prepis v programske registre in matematične operacije. V vrstici 11 se v programski register št. 82 prepiše vsebina iz programskega registra 81, v katerem so koordinate trenutne pozicije Paka, vendar v enoti pixel. Vrstici 12 in 13 spremenita vrednost prve – »x« oziroma druge – »y koordinate«, v programskem registru 82. Vrednost koordinat je deljena s 4,19, kar je enako razmerju med pixli in dejansko širino oziroma dolžino območja v mm. Tretja vrednost – »z« oziroma višina se ne spreminja in je pred- nastavljena tako, da se robotski manipulator po premiku v podane koordinate še vedno nahaja nad tekočim trakom in ne pride do trka. V vrstici 15 se zgodi dejanski pomik robotskega manipulatorja v točko, ki je v tistem trenutku shranjena v programskem registru 82 – postavi se torej točno nad objekt, ki bo pobran.

Sledi pobiranje, ki ga sprožijo vrstice 17, 18, 19 in 21. V vrstici 17 se odprto prijemalo spusti do tekočega traku, vrstica 18 pa kliče funkcijo CLOSE, ki se nahaja izven tega programa.

Prijemalo na koncu robota se zapre in hkrati prime predmet za pobiranje – Pak. Da se robotski manipulator ne bi premaknil preden je zaključeno zapiranje prijemala, je v vrstici 19 ponovno dodana funkcija za čakanje 1 sekunde. V vrstici 21 se robotski manipulator skupaj s pobranim predmetom dvigne nad tekoči trak v isto točko, kot se je nahajal pred spustom (vrstica 15).

Za pobiranjem objekta iz vhodnega tekočega traku sledi njegovo odlaganje na izhodni tekoči trak. Ta del programa se izvaja v vrsticah 23 do 27. V vrstici 23 se robotski manipulator premakne na točko odlaganja, vendar je od nje po z osi še vedno oddaljen za pred-nastavljeno vrednost – zaradi zmanjšanja možnosti trčenja. V naslednji, 24. vrstici, se nato spusti do tekočega traku in v vrstici 25 odpre prijemalo, ki drži Pak. Ponovno je dodana funkcija čakanja 1 sekunde, da se prijemalo popolnoma odpre pred naslednjim gibom, ki je v vrstici 27 – pomik v točko, v kateri se je robotski manipulator nahajal pred spustom do tekočega traku.

Sledi vrstica 29, v kateri se zgodi pomik v izhodiščni položaj, enak kot v vrstici 7. V zaključku IF stavka se v vrstici 31 vrednost registra 81 vrne v 0, kar prepreči, da bi se zanka samodejno ponovno zagnala brez prejema signala iz programa RR. Vrstica 33 označuje konec IF stavka, za tem pa je kot zadnja vrstica programa funkcija JUMP, ki vrne program v določeno vrstico, v našem primeru nazaj v prvo vrstico in na začetek programa, kjer robotski manipulator nato pripravljen čaka na ponovno spremembo registra 81 iz 0 v 1, s katerim se bo celoten program ponovno zagnal.

(64)

40

(65)

Rezultati

41

4 Rezultati

Diplomsko delo je sestavljeni iz treh sklopov. Vsak izmed njih ima svoj rezultat, skupek vseh pa je potreben za delovanja robotske celice.

V prvem delu smo se posvetili predvsem PLK-ju. Po uspešni nastavitvi željenega IP naslova PLK-ja, smo vzpostavili povezavo med le - tem in računalnikom. Program za PLK, ki smo ga napisali, omogoča upravljanje tekočih trakov s stikali na ohišju električne omare in, glede na vklopljeno stikalo, prižiga signalne luči nad celico. V času, ko program teče in se tekoča trakova pomikata v oziroma iz robotske celice, gori zelena luč, ko pa tekoča trakova stojita, nad celico gori rdeča signalna luč. Na sliki 4.1 je prikazan sistem robotske celice ob vklopu, pri katerem se vklopi zelena signalna luč in se zaženeta tekoča trakova.

Slika 4.1: Zelena kontrolna luč

(66)

Rezultati

42

Drugi del diplomskega dela je bil posvečen strojnemu vidu in vsemu potrebnemu za delovanje le - tega. Vzpostavili smo slikovni sistem in ga implementirali v robotsko celico tako, da služi prepoznavanju izdelkov. S pomočjo programske opreme je slika očiščena vseh nepotrebnih informacij, preostanek pa služi za prepoznavanje in določitev nahajanja objekta v opazovanem območju. V primeru, da je prepoznan izdelek ustrezen, so podatki poslani na robotski manipulator, skupaj s signalom za začetek pobiranja objekta. Podatki, ki so s slike poslani na robota so: središče izdelka v koordinati x, središče izdelka v koordinati y in signal za zagon programa na robotskem manipulatorju.

Sistem strojnega vida je v času zaključka diplomskega dela sposoben prepoznavanja petih različnih oblik, in sicer: kroga (paka), ovala, kvadrata, pravokotnika in trikotnika.

Prepoznane oblike so prikazane na sliki 4.2. Nabor oblik, ki jih sistem prepozna, je mogoče razširiti z nalaganjem dodatnih referenčnih slik. Zaradi velike podobnosti kroga z ovalom in kvadrata s pravokotnikom, je s programom za prepoznavanje objekta kot eno od naštetih oblik zahtevano 99% ujemanje opazovanega objekta z referenčnim modelom. Zahtevano vrednost ujemanja je mogoče, v primeru, ko ni potrebna tolikšna natančnost, znižati in tako lahko sistem prepozna npr. izdelke približno kvadratne oblike. S preizkušanjem različnih nastavitev smo ugotovili, da pri zahtevanem ujemanju približno 90%, program ne zazna več razlike med krogom in ovalom oz. kvadratom in pravokotnikom, ampak jih predstavi kot enako obliko. Pri nastavljenih zahtevah za ujemanju okoli 75%, program ne loči več med trikotnikom, kvadratom in pravokotnikom; vse tri oblike zazna kot iste.

Slika 4.2: Oblike prepoznane s strojnim vidom

(67)

Rezultati

43 Postavitev prikazana v diplomskem delu, deluje v prostoru z nespremenljivo svetlobo oz.

tako, da v območje opazovanja kamere ni direktno usmerjeno več virov svetlobe.

Na sliki 4.3 levo je prikazan vpliv svetlobe prižgane svetilke, ki smo jo usmerili v območje opazovanja kamere in predstavlja npr. sočno svetlobo. Snop svetlobe je popolnoma bele barve in je kasneje v programu prepoznan kot del belega objekta. Izgled po nadaljnjih obdelavah je prikazan na sliki 4.3 desno. Sistem strojnega vida v tem koraku ves beli del že obravnava kot eno telo. Kot je predhodno že opisano, je v program vključen korak, ki odstrani vsa telesa, ki še niso v celoti v opazovanem območju. Ker dodana svetloba prihaja iz strani in je po obdelavi zmotno identificirana kot telo ter sega do roba opazovanega območja, program predvideva, da je to telo, ki še ni v celoti v opazovanem območju in ga zato iz slike izbriše. Posledično v nadaljevanju programa telesu ni določeno središče, robotu pa niso poslane koordinate in ukaz za pobiranje. Pak torej kljub temu, da je v našem programu klasificiran kot ustrezen izdelek za pobiranje, ostane na tekočem traku nepobran.

Senca dejanskega objekta ni moteča, saj je tekom programa uspešno filtrirana.

Slika 4.3: Test vpliva direktne svetlobe 1, levo neobdelano, desno po obdelavi

Drugi primer vpliva svetlobe je prikazan na sliki 4.4 levo. Tu smo prav tako območje opazovanja osvetlili s prižgano svetilko, vendar tako, da je bil celoten snop svetlobe v opazovanem območju. Obdelava slike v tem primero poteka na enak način kot v predhodnem primeru, le da je tu (zmotno) identificirano telo v celoti v opazovanem območju. Zaradi tega telo ni izbrisano kot v prejšnjem primeru, ampak se izvajanje programa nadaljuje do konca, do določitve središča telesa. Obdelana slika v tem primeru je prikazana na sliki 4.4 desno.

Slika 4.4: Test vpliva direktne svetlobe 2, levo neobdelano, desno po obdelavi

(68)

Rezultati

44

Ker je v prepoznanem telesu vključen tudi snop svetlobe, je središče glede na dejanski objekt močno zamaknjeno v smeri snopa svetlobe. Zaradi velike popačenosti oblike objekta, posledično ni prepoznan kot ustrezen izdelek (pak). Rezultat tudi tega usmerjenega snopa svetlobe je nepobran objekt, kljub temu, da dejansko ustreza našim pogojem. Senca je tudi v temu primeru uspešno filtrirana.

Tretji del je sestavljen iz postavitev uporabniškega koordinatnega sistema robotskega manipulatorja, izdelavo prijemala in pisanje programa, ki po prejetju signala slikovnega sistema, začne s pobiranjem predmeta s tekočega traku

Koordinatni sistem smo postavili tako, da sovpada s koordinatnim sistemom slikovnega sistema. Koordinatno izhodišče je v levem spodnjem kotu (gledano iz notranje strani robotske celice, z mesta kjer je postavljen robotski manipulator). X os je usmerjena v smeri širine tekočega traku, y os je postavljena po dolžini tekočega traku in je usmerjena proti zunanji strani robotske celice, z os pa je postavljena po navpični osi robotskega manipulatorja in je usmerjena navzgor. Grafični prikaz koordinatnega sistema je prikazan na sliki 4.5.

Slika 4.5: Koordinatni sistem robotskega manipulatorja

(69)

Rezultati

45 Izdelke pobirajo 3D natisnjena prijemala, ki so nameščena na koncu kinematične verige robotskega manipulatorja. Ne glede na lokacijo objekta za pobiranje v območju opazovanja slikovnega sistema, ga je robotski manipulator zmožen pobrati. Na sliki 4.6 levo je prikazan robotski manipulator med pobiranjem izdelka, na desni pa med njegovim odlaganjem.

Slika 4.6: Levo pobiranje izdelka, desno njegovo odlaganje

Vsi sklopi diplomskega dela skupaj tvorijo celoto, ki je sposobna samodejnega sortiranja izdelkov. Po vklopu stikala za zagon, zasveti zelena kontrolna luč na vrhu robotske celice, tekoča trakova se začneta pomikati v oziroma iz robotske celice. Ko je izdelek s tekočim trakom doveden v notranjost celice, v območje opazovanja slikovnega sistema, se s pritiskom na stikalo ustavita tekoča trakova in se vklopi rdeča kontrolna luč. Izdelek se na tem mestu identificira kot ustreznega, če gre za pak oziroma kot neustreznega, če gre za eno od ostalih naučenih oblik. Če gre za neko drugo obliko, sistem izdelka ne prepozna in prav tako ne velja za ustreznega. V primeru, da je izdelek ustrezen, se podatki o njegovi poziciji prenesejo na robotski manipulator, ki pobere izdelek. Odnese ga na izhodni tekoči trak in ga tam odloži, nato pa se postavi nazaj v svoj izhodiščni položaj in čaka na pobiranje naslednjega ustreznega izdelka. S ponovnim pritiskom za vklop zasveti zelena kontrolna luč, tekoči trak pa ustrezen izdelek pomakne ven iz robotske celice. Takšna aplikacija za sortiranje je uporabna npr. v proizvodnji.

(70)

Rezultati

46

(71)

47

5 Zaključki

Sistem robotske celice je po koncu diplomske naloge usposobljen tako, da deluje takrat, ko je ustrezen izdelek podoben našemu. Poleg tega mora biti vedno prisoten nekdo, ki vsak cikel vklaplja ročno.

V trenutni konfiguraciji sistem zahteva za vsak cikel ročni vklop premikanja tekočega traku, ko je na njem izdelek in njegov izklop, ko izdelek pride v opazovano polje kamere. Potrebna bi bila vzpostavitev komunikacije med kamero in PLK-jem tako, da bi kamera s pomočjo programa ob zaznavanju prisotnosti izdelka na tekočem traku poslala signal na PLK za zaustavitev tekočega traku.

Naslednja možna izboljšava bi bilo prepoznavanje več izdelkov in njihovih pozicij v opazovanem območju naenkrat ter pobiranja le tistih izdelkov, ki so ustrezna. Prvi del, prepoznavanje več izdelkov naenkrat in njihovih središč, smo tekom diplomske naloge že testirali, potrebno pa bi bilo raziskati še, kako robotu vedno poslati le koordinate ustreznega izdelka.

Obstoječi program robotskega manipulatorja ne predvidi, da bi lahko bili izdelki višji od višine prijemala in je napisan tako, da se prijemalo v vsakem primeru spusti do tekočega traku in nato pobere izdelek. V primeru izdelka, ki bi bil višji od višine prijemal, bi lahko prišlo do trka. Možna rešitev je implementacija dodatne kamere, nameščene pod drugačnim kotom, s katero bi program lahko določil tudi višino izdelka in njemu primerno prilagodil spust robotske roke pri pobiranju tako, da ne bi prišlo do trka.

Tekom diplomske naloge se je pojavila tudi ideja, da bi robotski manipulator pobiral kose iz tekočega traku medtem, ko bi se ta premikal. Za doseg tega bi bila potrebna implementacija še tretje kamere, ki bi bila nameščena na samem robotskem manipulatorju. Robotski manipulator bi se nato po podatkih iz prvih dveh kamer postavil na približno lokacijo pobiranja izdelka, s tretjo kamero pa bi nato spremljal dejansko pozicijo izdelka in prilagajal svojo pozicijo do pobiranja.

Kljub vsem možnim izboljšavam je bil naš začetni cilj, usposobitev konkretnega sistema robotske celice, uspešno dosežen.

(72)

48

(73)

49

Literatura

[1] Wikipedija, ''Avtomatizacija'', dostopno na:

https://sl.wikipedia.org/wiki/Avtomatizacija

[2] V. Muthukrishnan, ''Programmale Logic Controllers (PLCs): Basics, Types &

Applications'', dostopno na: https://www.electrical4u.com/programmable-logic- controllers/#What-is-a-PLC

[3] Z. Zorz, ''Siemens LOGO!, a PLC for small automation projects, open to attack'', dostopno na: https://www.helpnetsecurity.com/2019/05/31/siemens-logo-

vulnerabilities/

[4] Študentski net, ''Gradivo: Programirljivi logični krmilniki'' dostopno na:

https://studentski.net/gradivo/ulj_fel_ae1_rvp_sno_programirljivi_logicni_krmilniki_

01

[5] M. Dixon , ''What are the most popular PLC programming languages'', dostopno na:

https://realpars.com/plc-programming-languages/

[6] J. Diaci , ''Lestvični diagrami'', dostopno na: http://lab.fs.uni- lj.si/ldse/MK/gradivo/Lestvicni_diagrami.html

[7] D. Burns, ''Digital electronics'', dostopno na: https://slideplayer.com/slide/6095900/

[8] Clean Png, dostopno na: https://www.cleanpng.com/png-function-block-diagram- wiring-diagram-electrical-w-1703156/

[9] N. Roos, ''Programming PLCs using Structured Text'', dostopno na:

http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.49.2016&rank=1&q=Progr amming%20PLCs%20using%20Structured%20Text&osm=&ossid=

[10] Wikipedia, ''Structured text'', dostopno na:

https://en.wikipedia.org/wiki/Structured_text

[11] Peter, ''Structured Text Tutorial to Expand Your PLC Programming Skills'', dostopno na: https://www.plcacademy.com/structured-text-tutorial/#comments

[12] D. Collins, ''Why is the instruction list (IL) language for PLCs falling out of favor?'', dostopno na: https://www.motioncontroltips.com/why-is-the-instruction-list-il- language-for-plcs-falling-out-of-favor/

Reference

POVEZANI DOKUMENTI

Z vprašanji o podobnostih in razlikah med rastlinami in živalmi, o lastnostih živih bitij ter o potrebah živih bitij za življenje se slovenski otro- ci srečujejo že v

Pravilnik o usmerjanju otrok s posebnimi potrebami določa, da se v program za predšolske otroke s prilagojenim izvajanjem in dodatno strokovno pomočjo lahko usmerijo: otroci

Pri pouku je zato bolje reči, da imajo snovi različno prevodnost, kot pa da jih delimo na prevodnike in izolatorje, ali da imajo snovi različ- no gostoto, kot pa da jih delimo na

človeški stik brez vnaprej določenega cilja obravnave ali tehnike privede do spremembe v vedenju mater trpin- čenih otrok in kakšni so pri tem elementi obravnave.. Vzorec je zajel

Lahko pa se zgodi, da ne ţelimo, da bi nekateri uporabniki izvajali določene akcije. V tem primeru ţeljeno akcijo odstranimo s pomočjo vmesnika OAC ali z uporabo poizvedovalnega

Če v Sloveniji ne bi bilo mogoče od občin zahtevati take stopnje vključenosti, bi bilo pomembno, da bi se vseeno zagotovilo njihovo sodelovanje – morda tako, da bi sprva dobile

Politične performanse pojmujem kot intervencije v javni prostor, ki za širjenje političnih sporočil uporabljajo in črpajo iz umetniških praks, postavljenih v »središče

Pri vsakem bolniku naredimo perimetrijo ali vidno polje. To je polje vida, ki ga eno oko lahko zaobjame s tem, da se osredotoči na eno točko in da pri tem ne menja smeri