• Rezultati Niso Bili Najdeni

VODENJE ROBOTSKEGA MANIPULATORJA IN PREGLED IZDELKOV S STROJNIM VIDOM

N/A
N/A
Protected

Academic year: 2022

Share "VODENJE ROBOTSKEGA MANIPULATORJA IN PREGLED IZDELKOV S STROJNIM VIDOM"

Copied!
55
0
0

Celotno besedilo

(1)

Univerza v Ljubljani

Fakulteta za elektrotehniko

Jaka Vavdi

VODENJE ROBOTSKEGA

MANIPULATORJA IN PREGLED IZDELKOV S STROJNIM VIDOM

Diplomsko delo visokošolskega strokovnega študija

Mentor: doc. dr. Vito Logar

Ljubljana, 2021

(2)
(3)

Zahvala

Zahvalil bi se mentorju doc. dr. Vitu Logarju za mentorstvo pri izdelavi diplomskega dela. Zahvala gre tudi podjetju INEA d.o.o., ki mi je omogočilo izdelavo dela, posebej pa bi se rad zahvalil mentorju v podjetju univ. dipl. inž. el. Tomažu Peklaju. Zahvala gre tudi staršem za moralno in finančno podporo v času študija.

(4)
(5)

5

Vsebina

1 Uvod 13

2 Opis proizvodnje linije 15

2.1 Zahteve naročnika ... 17

2.2 Delavni cikel postaje WP7 ... 17

3 Strojna oprema 19 3.1 Kamere ... 19

3.2 Objektivi ... 20

3.2.1 Zaslonka ... 21

3.2.2 Goriščna razdalja ... 21

3.2.3 Izbira objektiva... 22

3.3 Luči ... 27

3.3.1 Luči pri podajalcu zareznega traku ... 27

3.3.2 Luč pri podajalcu folije... 30

3.3.3 Luč pri odlagalni poziciji ... 31

3.4 Programirljiv logični krmilnik ... 32

3.5 Računalnik VC5 ... 32

4 Cognex designer 34 4.1 Uporabniški vmesnik ... 34

4.2 Uporabljena orodja ... 35

4.2.1 Orodje za pretvorbo slike v binarno obliko ... 35

4.2.2 Orodje za iskanje vzorcev ... 36

4.2.3 Orodje za določanje histograma ... 37

4.2.4 Orodje za nastavljanje koordinatnega izhodišča ... 37

(6)

6 Vsebina

4.3 Kalibracija ... 38

4.3.1 Kalibracija baznega koordinatnega sistema ... 38

4.3.2 Kalibracija robotskega manipulatorja ... 39

4.3.3 Kalibracija kosa ... 40

4.3.4 Kalibracija odlagalne pozicije ... 42

4.4 Program za pobiranje folije ... 42

4.5 Program za pobiranje zareznega traku ... 44

4.6 Program za odlaganje in pregled odlaganja zareznega traku... 49

5 Zaključek 53

Literatura 55

(7)

7

Seznam uporabljenih simbolov

f - goriščna razdalja N – f-stop število D – odprtost zaslonke

PLK – programirljivi logični krmilnik

LHD – vozilo z volanom na levi (ang. left hand drive) RHD – vozilo z volanom na desni (ang. right hand drive)

RFID – radio frekvenčna identifikacija (ang. Radio Frequency IDentification) PoE – napajanje preko etherneta (ang. Power over Ethernet)

WP – delovna postaja (ang. work place) φ – kot

(8)
(9)

9

Povzetek

V zadnjem času se v industrijskih aplikacijah čedalje več uporabljajo sistemi strojnega vida. S to tematiko se ukvarja tudi diplomska naloga, v kateri je predstavljena ena od postaj večjega sistema, ki sestavlja osvetlitev ozadja zaslonov za avtomobilsko industrijo. Na tej postaji se odloži še zadnja folija in zarezni trak. V nalogi je podrobneje opisan program Cognex Designer, ki je uporabljen kot osnova za delovanje sistema, ter vsi ostali potrebni elementi, ki omogočajo ustrezno delovanje sistema za strojni vid.

Diplomsko delo je razdeljeno na tri glavna poglavja. V prvem poglavju je opisan sistem, ki ga obravnava diplomsko delo. V drugem poglavju je predstavljena potrebna strojna oprema, kjer so opisani vsi potrebni elementi za izdelavo sistema za strojni vid in izračuni za pravilno izbiro objektiva. V tretjem poglavju je podrobneje predstavljeno programsko orodje Cognex Designer ter opisan postopek izdelave uporabniškega vmesnika in vseh ostalih potrebnih orodij. V poglavju je opisano tudi delovanje programa za pregled in sporočanje pozicij folije in zareznega traku.

Ključne besede: avtomobilska industrija, Cognex Designer, strojni vid, uporabniški vmesnik, vodenje s pomočjo slik

(10)
(11)

11

Abstract

In the past few years, a significant increase in industrial machine vision applications has appeared. Machine vision is also the main topic of this thesis, describing one of the terminals in the assembly process, which manufactures backlighting for the automotive industry. The described terminal places the last foil and the notch tape on the semi-finished product. The thesis describes the Cognex Designer program, which is used as a basis for the operation of the system, and all other necessary elements that enable its proper operation.

The thesis is divided in to three chapters. The first chapter describes the basic process of backlighting assembly. The second chapter presents the necessary hardware and describes all necessary elements, which comprise the machine vision system, and the calculations, which determine proper camera lenses. The third chapter presents the Cognex Designer software in more detail and describes the development process of the user interfaces and all other necessary tools. Furthermore, operation of the program for product inspection and determination of the foil and notch tape position is also described.

Key words: automotive industry, Cognex Designer, human machine interface, machine vision, visual-based control.

(12)
(13)

13

1 Uvod

V diplomski nalogi je predstavljena industrijska raba strojnega vida. Kot že ime strojni vid pove, gre pri tovrstnih aplikacijah večinoma za spremljanje procesov s pomočjo instrumenta za zajemanje slike, tj. kamere in objektiva, ter pripadajočega programskega orodja. Najpogostejša in hkrati najenostavnejša uporaba strojnega vida je pregledovanje kosov in preverjanje njihovega ujemanja oz. zaznavanje določenih odstopanj.

Diplomska naloga obravnava praktični primer uporabe strojnega vida v industrijski aplikaciji. Gre za sistem, ki sestavlja osvetlitev ozadja zaslona. Ta diplomska naloga opiše eno od dvanajstih postaj celotnega sistema. Postaje so označene z oznako WP. Postaja, ki je opisana in predstavljena v tej nalogi je postaja WP7. Na tej postaji se na podnožje osvetlitve od zadaj namesti zadnja dolga folija in zarezni trak. V liniji je v krogu povezanih enajst postaj ena pa je postavljena zase, ki se imenuje PA. Postaje so med seboj povezane preko sistema »montrack«, ki služi za prevoz palet, na katerih so podnožja. Vse postaje v krogu, razen WP0, delujejo povsem avtomatsko. Prva in zadnja postaja je postaja WP0, ki pa je hkrati edina postaja z operaterjem. Naloga operaterja je, da nalaga in razlaga podnožja na in z palet. Prav tako je naloga operaterja da polni material v postaje.

V nalogi je podrobneje predstavljen sistem strojnega vida za iskanje kosov in sporočanje njihovih koordinat robotskemu manipulatorju. Za pravilno in natančno delovanje sistema je nujno potrebna kalibracija, saj kamera in program ne operirata z merskimi enotami, temveč s točkami oz. piksli. Kalibracija je potrebna tudi zato, ker manipulator nima informacije o tem, kje sliko zajema kamera, prav tako pa tudi kamera nima informacije o položaju manipulatorja. V nalogi je predstavljena tudi teorija o zajemu in obdelavi slik, ki je potrebna za izdelavo sistema. Med samo izdelavo naloge se je izkazalo, da je za robustno delovanje sistema izredno pomembna pravilna osvetlitev opazovane površine, ki zagotavlja ustrezno razpoznavo opazovanih objektov pri različnih pogojih.

(14)

14 1 Uvod

Poleg same obdelave slik, je potrebno zagotoviti tudi vizualizacijo kaj se dogaja s kosi v primeru napak. V ta namen sem izdelal tudi uporabniški vmesnik, ki prikazuje vsako zadnjo zajeto sliko. Vmesnik je potreben tudi za to, da je med samim delovanjem oz. med vzdrževanjem mogoče program spremljati in nastavljati različne parametre.

Parametri so npr. toleranca ujemanja, odmik referenčne točke, maksimalna površina mehurčka, belina repkov itd.

(15)

15

2 Opis proizvodnje linije

Proizvodna linija, ki smo jo v podjetju INEA d.o.o. razvili, sprogramirali in v podjetju naročnika nato uspešno zagnali, je namenjena izdelavi polizdelka, in sicer osvetlitve ozadja (ang. backlight) zaslonov za avtomobilsko industrijo. Linija je sestavljena iz enajstih postaj, ki so označene od WP0 do WP10. Poleg linije je nameščena še dodatna postaja, imenovana PA oz. pred sestava (ang. pre-assembly).

Linija je popolnoma avtomatizirana, za izdelavo izdelka sta potrebna samo dva operaterja, in sicer prvi, ki nalaga material v postaje in vstavlja podnožja za osvetlitev, in drugi, ki vstavlja led diode v podnožje na postaji PA. Linija je sestavljena krožno kot kaže slika 2.1. To pomeni, da operaterska postaja WP0 predstavlja začetek linije, kjer se naložijo podnožja, in hkrati tudi njen konec, kjer se polizdelek vzame z nje.

Postaja PA ni v zanki. Celice so za transport podnožja med seboj povezane s sistemom

»montrack«.

Slika 2.1: Celoten sistem za sestavljanje

Ker v nekaterih državah avtomobili vozijo po levi strani ceste, je potrebno temu prilagoditi tudi notranjost avtomobila. Zaradi tega razloga je na liniji mogoče

(16)

16 2 Opis proizvodnje linije

izdelovati dve različici izdelka, in sicer enega za avtomobile, ki imajo volan na levi strani vozila LHD (ang. Left Hand Drive), in drugega za avtomobile, ki imajo volan na desni strani vozila RHD (ang. Right Hand Drive). Programa med LHD in RHD se razlikujeta le v tem, da so kosi zrcaljeni, zaradi česar je bilo potrebno orodje za pregled le nekoliko prilagoditi.

Podnožje proizvajanega izdelka je razdeljeno na dva dela, in sicer na kratkega in na daljšega. Ker sta dimenziji podnožij drugačni, je potrebno za obdelavo le-teh uporabiti različne robotske manipulatorje. Na postaji WP1 se najprej naloži kratka odsevna folija in za tem še svetlobni vodnik. Enako se naredi na postaji WP2, a na daljši strani. Na postaji WP3 se vstavijo majhni votli gumijasti cilindri med rob vodilnika svetlobe in med rob podnožja. Ti cilindri služijo temu, da se vodnik svetlobe ne premika ob morebitnih tresljajih. Na postaji WP4 se na kratko stran naloži difuzijska folija in ena od polariziranih folij. Na postaji WP5 se prav tako naložita foliji, a zopet na daljšo stran. V WP6 se namesti eno od polariziranih folij in končno folijo na kratko stran podnožja. V WP7 se na daljšo stran podnožja namesti zadnja folija, na krajšo pa zarezni trak. Postaja WP7, ki bo v tej nalogi podrobneje opisana, je prikazana na sliki 2.2. Nadalje WP8 na podnožje namesti zadrževalno ploščo (ang.

retaining plate), ki služi temu da fiksira vse folije v podnožje. Na postaji WP9 se izvede test LED diod in preveri, če je svetloba pravilne barve in intenzitete. Končna postaja WP10 na podnožje odloži še penasti trak (ang. foam tape).

Slika 2.2: Postaja WP7

(17)

2.1 Zahteve naročnika 17

2.1 Zahteve naročnika

Naročnik linije se primarno ukvarja s sestavljanjem elektronskih naprav za avtomobilsko industrijo. Zaradi potrebe po veliki čistoči, kar pomeni, da ni prisotnosti prašnih delcev, je bilo potrebno linijo sestaviti tako, da je neprodušno zaprta in skladna s standardom »Cleanroom ISO6«. Ker se na večini postaj uporabljajo le dve kameri, je bilo mogoče za dve postaji uporabiti le en računalnik VC5. To pomeni, da si postaji WP1 in WP2 delita en VC5. Prav tako si po en računalnik delijo postaje WP4 in WP5, WP6 in WP7. WP8 in WP10 imata vsaka svoj VC5, ker se pri njiju uporablja po šest kamer. Zaradi večjega števila kamer, je bilo potrebno uporabiti preklopnik (ang.

switch) za kameri, ki sta uporabljeni za pošiljanje odlagalne pozicije robotu. Razlog preklapljanja je v tem, da ti dve kameri nikoli ne delujeta istočasno. Z istim razlogom je tudi pri postaji WP7 uporabljen preklopnik pri kamerah, ki sta usmerjeni na odlagalno pozicijo. Postaja WP9 ima svoj VC5 in štiri kamere, kolikor je tudi kanalov na VC5.

Ena od posebnih zahtev naročnika je bila tudi dvojezičnost uporabniških vmesnikov, saj se podjetje nahaja v Romuniji.

Dodatna zahteva, oz. nadgradnja naročnika je bila, da se recepti za programe med LHD in RHD, menjajo samodejno ob vstopu palete v postajo, kar se je rešilo z uporabo radiofrekvenčne identifikacije (ang. Radio Frequency IDentification – RFID).

2.2 Delovni cikel postaje WP7

Postaja WP7 na podnožje odloži zadnjo dolgo folijo in zarezni trak. Delovanje postaje je naslednje. Pred začetkom delovanja se preveri ali so vsi začetni in varnostni pogoji izpolnjeni. Ob izpolnjevanju vseh teh pogojev, je postajo mogoče zagnati na uporabniškem vmesniku PLK-ja. Če je bila postaja predhodno resetirana, se najprej izvede inicializacija programa. Inicializacija postavi vse vrednosti kamere v osnovno stanje, premakne robotski manipulator v začetno lego, če ta še ni v njej, postavi vse servo motorje, ki so potrebni za podajanje folije, v začetne položaje, postavi podajalno mizo v osnovni položaj in napne podajalno folijo zareznega traku.

Po končani inicializaciji se zažene delovni cikel. Pri tem podajalec folije najprej preveri ali je na podajalni mizi že prisotna folija. Če folije ni, jo mehanizem poda na mizo, ta pa se premakne na opazovalno pozicijo kamere. V primeru, da je folija že prisotna, se miza postavi v opazovalno pozicijo kamere. Kamera hkrati zajame sliko folije in zareznega traku, s čimer se določi njun položaj in orientacija. V primeru, da

(18)

18 2 Opis proizvodnje linije

na mizi zareznega traku ni prisotnega nobenega kosa, se podajalna folija prevrti naprej za fiksno vrednost. Prevrti se za toliko kolikor je potrebno, da se pomakne za tri mesta zareznega traku. Po končanem vrtenju se slika zajame ponovno. Postopek se ponavlja dokler na mizi ni zaznanega kosa. Manipulator najprej pobere folijo in jo odloži na podnožje, za tem pa se zarezni trak postavi v pobiralno pozicijo, kamera pa še enkrat zajame sliko le-tega. Manipulator se premakne v položaj za pobiranje zareznega traku, ki je izven vidnega območja kamere nad odlagalno pozicijo. V tem času kamera zajame sliko odlagalne pozicije, manipulator pa namesti zarezni trak. Ko ga manipulator namesti, se umakne v osnovno pozicijo, kamera pa zajame sliko še enkrat, tokrat za pregled odlaganja. Medtem ko manipulator odlaga zarezni trak, se na podajalno mizo že poda nova folija. Cikel se ponavlja, dokler v sistemu ni nobene napake.

(19)

19

3 Strojna oprema

V tem poglavju je opisana vsa potrebna strojna oprema, ki se je uporabila za izgradnjo sistema. Podrobneje so predstavljene kamere, objektivi, načini osvetlitve ter industrijski računalnik, namenjen za aplikacije strojnega vida.

3.1 Kamere

Za izvedbo projekta so bile uporabljene štiri industrijske kamere. Za pregled folij in za doziranje zareznega traku se uporabljata kameri CAM-CIC-12MR proizvajalca Cognex, za pregled in sporočanje odlagalne pozicije pa se uporabljata kameri CAM- CIC-5000R, prav tako proizvajalca Cognex. Kamere CAM-CIC zajemajo slike v monokromatski tehniki, uporabljajo zaklop na osnovi lamel oziroma zaves ter z računalnikom komunicirajo preko protokola GigE (Gigabit Ethernet), saj je velikost slik dokaj velika, odzivni čas pa mora biti čim krajši. Kamere uporabljajo senzor svetlobe tipa CMOS. Glavna razlika med tipoma kamer 12MR in 5000R je, da ima prva ločljivost dvanajst mega pikslov in frekvenco zajema osem sličic na sekundo, druga pa ločljivost pet mega pikslov in frekvenco zajema štirinajst sličic na sekundo.

Kamere imajo dva priključka, in sicer enega za priklop kabla Ethernet, drugega pa za uporabo vhodnih in izhodnih signalov v kamero oz. iz kamere. Vhodni in izhodni elementi so varovani z optičnim spojnikom, njihovo funkcionalnost pa se nastavlja v programu Cognex Designer, v katerem se nastavlja tudi čas osvetlitve senzorja. V primeru tega projekta so se uporabljali izhodni signali za proženje luči. Kamera je napajana preko sistema PoE (ang. Power over Ethernet), kar pomeni napajanje preko Etherneta. Na sliki 3.1 je prikazana kamera CAM-CIC tipa A [3].

(20)

20 3 Strojna oprema

Slika 3.1: industrijska kamera Cognex CIC

3.2 Objektivi

Poleg kamere je objektiv naslednji najpomembnejši del za zajem ustreznih slik.

Industrijski objektivi, ki so uporabljeni v tem projektu, omogočajo nastavitev zaslonke in ostrine. V tem podpoglavju bom opisal osnovno sestavo in funkcionalnost takšnega objektiva.

Neglede na njihov namen, je osnovni princip delovanja pri vseh objektivih enak, pa naj bodo namenjeni fotografiranju, snemanju ali industrijskim aplikacijam. V osnovi je objektiv sestavljen iz več konveksnih in konkavnih leč ter iz zaslonke. Slika 3.2 prikazuje lečo z goriščno razdaljo 16 mm proizvajalca Edmund Optics [4].

Slika 3.2: Primer objektiva z goriščno razdaljo 16 mm.

(21)

3.2 Objektivi 21

3.2.1 Zaslonka

Zaslonka je nastavljiva odprtina, skozi katero potuje snop svetlobe. Širina te odprtine vpliva na količino svetlobe, ki pride do senzorja v kameri ter tudi na globinsko ostrino zajete slike. Bolj kot je zaslonka odprta, več svetlobe pride do zaklopa, prav tako pa se zmanjša tudi globinska ostrina slike. Le-ta pove koliko predmetov na sliki ima še ustrezno ostrino, in sicer pred in po najbolj ostri točki, ki jo zajamemo. Zaslonka se odpira oziroma zapira po korakih, ki se imenujejo f-stop. F-stop število je podano z enačbo 3.1, kjer je N število f-stop, f je goriščna razdalja objektiva, D pa odprtina zaslonke. Število D je določeno kot potence kvadratnega korena števila dva, kar prikazuje enačba 3.2 [5].

𝑁 = 𝑓

⁄𝐷 (3.1)

𝐷1 = √21 ≈ 1,4 , 𝐷2 = √22 = 2 , 𝐷3 = √23 ≈ 2.8 , 𝐷4 = √24 = 4 … (3.2)

Na sliki 3.3 je prikazan primer odprtine zaslonke glede na število f-stop.

Slika 3.3: Primer odprtosti zaslonke

3.2.2 Goriščna razdalja

Goriščna razdalja objektiva določa razdaljo od prve leče na kameri do točke kjer se snop svetlobe združi v eno točko. Goriščna razdalja je pri objektivih uporabljenih v predstavljenem projektu fiksna ter govori o tem, kolikšen je vidni kot objektiva. Večja

(22)

22 3 Strojna oprema

kot je goriščna razdalja, ožji je kot vidnega polja. Ožji kot je kot vidnega polja, bolj podrobna je končna slika. Kot vidnega polja se izračuna z enačbo 3.3, kjer je x diagonala senzorja kamere, f pa goriščna razdalja. Enačba približno določa vidno polje kamere, saj senzor ni kvadratne oblike, ampak je običajno pravokoten, kar pomeni, da je vidni kot po dolžini senzorja širši kot pa po širini senzorja. Ista enačba se lahko uporablja tudi za izračun vidnega polja po širini in dolžini senzorja.

𝐾𝑜𝑡 𝑣𝑖𝑑𝑛𝑒𝑔𝑎 𝑝𝑜𝑙𝑗𝑎 = 2 ∗ 𝑎𝑟𝑐𝑡𝑎𝑛 𝑥

2∗𝑓 (3.3)

3.2.3 Izbira objektiva

Pri izbiri objektiva je potrebno poznati dimenzije območja pregleda, razdaljo med kamero in območjem pregleda ter dimenzije senzorja kamere. Zajeti je potrebno le območje, ki je nujno za razpoznavanje, saj zajem širšega področja predstavlja izgubo ločljivosti slike. Za izbiro ustreznega objektiva sta v pomoč dve enačbi, in sicer enačba 3.4, s katero izračunamo potreben kot, da celotno pregledno območje zajamemo na sliki, ter enačba 3.5, s katero preračunamo kot v goriščno razdaljo.

𝜑 = arctan𝑑𝑖𝑚𝑒𝑛𝑧𝑖𝑗𝑎 𝑚𝑖𝑧𝑒

𝑣𝑖š𝑖𝑛𝑎 𝑘𝑎𝑚𝑒𝑟𝑒 (3.4)

𝑓 = 𝑑𝑖𝑚𝑒𝑛𝑧𝑖𝑗𝑎 𝑠𝑒𝑛𝑧𝑜𝑟𝑗𝑎

2∗tan𝜑2 (3.5)

Pri kameri, ki je postavljena nad folijo, je diagonala mize približno 600 mm, oddaljenost kamere približno 1000 mm, diagonala senzorja kamere pa znaša 9,33 mm.

Ker se pri končnem sestavljanju vedno pojavijo napake, bodisi zaradi napake pri montiranju bodisi pri proizvodnji kosov, se za izračun uporabljajo približki končne sestave. Ker imajo objektivi fiksno goriščno razdaljo, ne moremo določiti optimalne goriščne razdalje, izberemo pa lahko najboljši približek. Za pomoč pri računanju goriščne razdalje sem v programskem jeziku C# napisal kratek program.

Program deluje preko okna z ukaznim pozivnikom, ki ga prikazuje slika 3.4, kodo programa pa slika 3.5. Najprej si izberemo način računanja, ki je lahko:

1. Računanje z diagonalo mize.

2. Računanje z dolžino in širino mize

3. Računanje z znano goriščno razdaljo za pridobitev velikosti mize.

V primeru, da izberemo računanje z diagonalo mize, je najprej potrebno vpisati diagonalo senzorja, za tem diagonalo mize, nato pa še razdaljo med kamero in mizo.

Ko so vneseni vsi podatki, se izpiše potrebna goriščna razdalja leče. Pri računanju z

(23)

3.2 Objektivi 23

diagonalo se najprej uporabi enačba 3.4, kjer se izračuna kot. Izračunani kot se za tem uporabi še v enačbi 3.5. Rezultat se zaokroži na dve decimalki in se izpiše v oknu.

Za računaje z dolžino in širino mize se enako kot pri računanju z diagonalo najprej uporabi enačba 3.4 in za tem 3.5, le da se uporabi dvakrat, in sicer za vsako dimenzijo posebej.

Drugače je pri računanju z že znano goriščno razdaljo. Tu se najprej vnese diagonala senzorja, nato razdalja med kamero in mizo, za tem pa se vnese še goriščna razdalja objektiva. Rezultat je maksimalna diagonala mize. Za izračun se najprej uporabi enačba 3.6, za tem pa še enačba 3.7. Primer izračuna je viden na sliki 3.4.

𝜑 = 2 ∗ arctan𝑑𝑖𝑎𝑔𝑜𝑛𝑎𝑙𝑎 𝑠𝑒𝑛𝑧𝑜𝑟𝑗𝑎

2∗𝑓 (3.6)

𝑑𝑖𝑎𝑔𝑜𝑛𝑎𝑙𝑎 𝑚𝑖𝑧𝑒 = tan 𝜑 ∗ 𝑣𝑖𝑠𝑖𝑛𝑎 𝑘𝑎𝑚𝑒𝑟𝑒 (3.7)

Slika 3.4: Okno z ukaznim pozivnikom za računanje z diagonalo

(24)

24 3 Strojna oprema

Slika 3.5: Program za določanje goriščne razdalje

(25)

3.2 Objektivi 25

Izračun za objektiv kamere, ki je nameščena nad folijo, je znašal 16,84 mm, kar pomeni, da je najbližji približek leča, ki ima 16 mm goriščne razdalje. Odstopanje sem pri končni izdelavi kompenziral tako, da sem kamero nekoliko dvignil, da je bila celotna miza zajeta na sliko. Na sliki 3.6 je prikazan sistem strojnega vida za podajanje folije.

Slika 3.6: Podajalec folij

Pri kameri, ki je postavljena nad podajalcem zareznega traku, je oblika opazovane mize ozka in dolga. Zaradi takšne oblike za preračun goriščne razdalje nisem uporabil diagonale mize, temveč dolžino in širino senzorja ter mize. Širina mize je bila v tem primeru 70 mm, dolžina 300 mm, dimenzija senzorja pa 5,64 mm (širina) x 7,53 mm (dolžina). Razdalja med kamero in površino je znašala 600 mm. Izračunal sem, da naj bo goriščna razdalja po dolžini 15,59 mm, po širini pa 48,51 mm. Uporabil

(26)

26 3 Strojna oprema

sem lečo z goriščno razdaljo 16 mm. Slika 3.7 prikazuje končno postavitev sistema za pregled zareznega traku.

Slika 3.7: Podajalec zareznega traku

Kameri, ki opazujeta odlagalno pozicijo, sta tipa CIC-5000R. Dimenzije tega senzorja so drugačne kot pri kamerah CIC-12MR. Dolžina senzorja je 5,70 mm, širina 4,28 mm, diagonala pa 7,13 mm. Diagonala opazovane odlagalne pozicije je 250 mm, kameri pa sta od nje oddaljeni 970 mm. Izračunana goriščna razdalja je 28,12 mm, uporabljen pa je bil najboljši približek, tj. 25 mm. Slika 3.8 prikazuje odlagalno pozicijo zareznega traku.

(27)

3.3 Luči 27

Slika 3.8: Odlagalna pozicija zareznega traku.

3.3 Luči

Osvetlitev predstavlja pomemben del vsakega sistema za strojni vid. Pred izbiro ustreznih luči je potrebno poznati kako je predmet, ki ga opazujemo, zgrajen in katero informacijo želimo s slike pridobiti. Informacija, ki jo iščemo je lahko bodisi pozicija predmeta bodisi njegove dimenzije ali pa samo prisotnost neke določene značilke.

Glede na želeno informacijo se določi tip luči ter njihova pozicija, ki pomembno vpliva na kakovost zajete slike [1].

Pri zajemu slik lahko prihaja tudi do neželenega bleščanja. Bleščanje lahko povzroči zunanji dejavnik, kot npr. sonce ali različna razsvetljava prostora, ali pa luči, ki so namenjene strojnemu vidu. Tovrstne motnje lahko močno vplivajo na kvaliteto zajete slike, saj določenih značilk ni mogoče razpoznati, če opazovani predmet ni pravilno osvetljen. Da zmanjšamo vpliv zunanjih virov svetlobe na kvaliteto zajete slike, je sistem za strojni vid običajno postavljen v temni prostor.

3.3.1 Luči pri podajalcu zareznega traku

Pri podajalcu zareznega traku je luč postavljena ob strani in višje od opazovane mize. Barva luči je rdeča, saj je ta barva zelo primerna za razpoznavanje kontrasta med črnim zareznim trakom in srebrno mizo, na kateri se ga podaja. Rdeča barva zaradi svoje dolge valovne dolžine poudari kontrast. Pri testiranju različnih postavitev sem ugotovil, da je ta postavitev in rdeča barva, najprimernejša za to aplikacijo. Končna postavitev luči je vidna na sliki 3.7. Za optimalno pozicijo luči sem opravil dva testa,

(28)

28 3 Strojna oprema

in sicer postavitev luči s strani ter postavitev obročaste luči pod kamero, pri čemer kamera zajema sliko skozi njo.

Prvi test je bil opravljen z belo paličasto LED sijalko. Belo barvo sem uporabil samo za testiranje pozicije, ker v podjetju takrat ni bilo na voljo sijalke rdeče barve.

Sijalka je bila postavljena s strani, približno deset centimetrov višje od opazovanega predmeta. Slika, ki jo pri takšni konfiguraciji zajame kamera, je vidna na sliki 3.9.

Slika 3.9: Primer testa z lučjo bele barve od strani

Pri drugem testu sem uporabil obročasto luč, ki je postavljena nad opazovanim predmetom, kamera pa sliko zajema skozi obroč luči. Izkazalo se je, da je takšna postavitev neprimerna, zaradi prevelikega odboja svetlobe z zareznega traku in folije, na kateri se zarezni trak podaja. Slika, ki jo pri takšni konfiguraciji zajame kamera, je vidna na sliki 3.10. Druga postavitev je neprimeren tudi zato, ker je zarezni trak lahko poškodovan ali ima mehurček, česar kamera pri takšni postavitvi ne zazna.

(29)

3.3 Luči 29

Slika 3.10: Primer testiranja z lučjo bele barve z vrha

Na sliki 3.11 je prikazana zajeta slika kamere pri končnem izdelku. Kot je vidno je kontrast med mizo in zareznim trakom zelo izrazit, podajalna folija pa je povsem neopazna.

Slika 3.11: Končna slika podajalca zareznega traku

(30)

30 3 Strojna oprema

3.3.2 Luč pri podajalcu folije

Pri podajalcu folije je bil koncept postavitve luči sprva zasnovan tako, da bi bile luči nameščene nad folijo ter usmerjene proti njej, kot prikazano na sliki 3.12. Izkazalo se je, da takšna postavitev ni ustrezna, saj je material, iz katerega je narejena folija, odbijal svetlobo le na mestu kamor je svetila luč.

Slika 3.12: Prva postavitev luči pri podajalcu folije

Problem sem najprej želel rešiti z uporabo difuzorja, kar pa se ni izkazalo za dovolj dobro rešitev, saj je bila folija še vedno osvetljena le na določenih delih. Za končno rešitev sem uporabil kupolo, ki je bila nameščena nad folijo. Luči pri tem svetijo navzgor v kupolo, kamera pa je postavljena za kupolo in zajema sliko skozi luknjo v njej. Kupola je bele ne svetleče barve, s čimer dosežemo čim boljšo razpršitev svetlobe. Za izdelavo kupole sem najprej uporabil bel karton, ko pa se je izkazalo, da je rešitev ustrezna, se je končni izdelek izdelal iz pločevine. Slika 3.6 prikazuje končno postavitev kupole, kamere in luči.

(31)

3.3 Luči 31

Za razliko od luči pri podajalcu zareznega traku, so luči pri podajalcu folije modre barve, saj modra barva zelo dobro poudari razliko med mizo in folijo. Folija je sicer sive barve, ampak jo zaradi materiala, iz katerega je izdelana, modra barva poudari. Sliko, ki jo zajame kamera v takšni konfiguraciji, prikazuje slika 3.13.

Slika 3.13: Končna slika folije

3.3.3 Luč pri odlagalni poziciji

Luč pri odlagalni poziciji sem postavil s strani, in sicer iz nasprotne kot je postavljena kamera. Postavitev luči je prikazana na sliki 3.8. V tem primeru je barva luči rdeča, saj je pri odlagalni poziciji potrebno preverjati natančnost odlaganja zareznega traku. Enako kot pri podajalcu zareznega traku, je tudi pri odlaganju potrebno doseči zadosten kontrast med zareznim trakom, ki je črne barve in podlago, ki je sive barve.

Razlog za postavitev luči s strani je v preverjanju ali so na odloženem kosu napake, kot npr. mehurčki, kateri se lahko pojavijo zaradi napake pri prijemanju zareznega traku. Pri testiranju konfiguracije se je izkazalo, da se zaradi postavitve luči na sliki pojavlja senca, ki je zelo moteča in ovira razpoznavanje slike. Problem sem sprva poskušal rešiti z naklonom luči, kar pa ni doseglo želenega učinka. Luč je bilo potrebno premakniti višje, kar pa je posledično vodilo do oviranja robotskega manipulatorja. Problem sem rešil tako, da sem celoten nosilec luči premaknil na drugo stran celice.

(32)

32 3 Strojna oprema

3.4 Programirljivi logični krmilnik

Programirljivi logični krmilnik (PLK) je digitalna elektronska naprava, ki na podlagi ukazov, shranjenih v programirljivim pomnilniku, izvaja logične, sekvenčne, časovne in aritmetične operacije ter s tem vodi različne naprave in procese preko binarnih in analognih vhodov in izhodov [2].

V tem sistemu je uporabljen logični krmilnik Siemens in sicer, serije S7-1500.

Simatic S7-1500 je ena od mnogih serij programirljivih logičnih krmilnikov nemškega proizvajalca Siemens. Krmilniki so ena od najpomembnejših komponent znotraj proizvodne linije, saj nanj priključimo vse ostale komponente krmiljenja v obliki vhodno-izhodnih enot, preko katerih dobimo in pošiljamo ukaze do izvršilnih enot.

Industrijski krmilniki morajo biti robustni in odporni na motnje, saj je v industriji potrebna natančnost in zanesljivost, s čimer se prepreči materialna škoda, zaradi nenatančnosti izdelkov ter zaradi zaustavitev proizvodnih strojev in linij.

Povezava med kamero in robotskim manipulatorjem je vzpostavljena preko tega krmilnika, ki skrbi tudi za krmiljenje celotne postaje. Vse informacije in ukazi se pošiljajo preko krmilnika. Za vsak zajem slike je potreben ukaz krmilnika. Ko se program na VC5 zaključi, se podatki pošljejo krmilniku, ta pa ji nato pošlje manipulatorju.

3.5 Računalnik VC5

Cognex VC5 je industrijski računalnik namenjen strojnemu vidu. Za komunikacijo ima na voljo dvoje vrat LAN, štiri vrata GigE, ena vrata I-ENET in ena vrata RS232. Za različne senzorje ima na voljo dva priključka DB15 in štiri vhode za enkoderje. Na voljo ima tudi osem vhodov in šestnajst izhodov. Za komunikacijo s PLK sem uporabil protokol PROFINET. Poleg omenjenega ima VC5 na voljo tudi tri vrata USB in en izhod VGA. Vrata GigE imajo možnost napajanja preko etherneta in so namenjena priključitvi kamer. Na računalniku je nameščena vsa programska oprema, potrebna za avtomatizirano obdelavo slik. Razvojni program, ki je na računalniku, se imenuje Cognex Designer, verzija 2.6. Operacijski sistem je Windows 8.1 embeded. Računalnik VC5 je proizvajalec sicer umaknil iz prodaje, zaradi nestabilnosti, vendar pa naročnik zahteva uporabo računalnika VC5. Med izvajanjem projekta sem ugotovil, da ima VC5 veliko pomanjkljivost oz. napako, in sicer to, da se slike shranjujejo na notranji disk SSD. V primeru okvare diska je potrebna zamenjava celotnega računalnika. Problem sem rešil tako, da sem za hranjenje slik uporabil USB ključ. Računalnik VC5 prikazuje slika 3.14 [6].

(33)

3.5 Računalnik VC5 33

Slika 3.14: Industrijski računalnik Cognex VC5

(34)

34 4 Cognex designer

4 Cognex designer

Cognex designer je integrirani razvojni program namenjen razvoju tako dvodimenzionalnih kot trodimenzionalnih programov za strojni vid. Ima zelo dobro orodje za razpoznavanje različnih vzorcev, merjenje dolžine z zelo visoko natančnostjo ter še mnogo ostalih funkcij. Ker se ne programira grafično, se programira v programskem jeziku C#, ki je razvojni programski jezik namenjen operacijskemu sistemu Windows.

4.1 Uporabniški vmesnik

Predno sem pričel s pisanjem programa za obdelavo slik, ja bilo najprej potrebno izdelati uporabniški vmesnik, ki je namenjen upravljanju in spremljanju sistema s strani operaterja. Program Cognex Designer ponuja več različnih predpripravljenih elementov, ki jih lahko uporabimo za izgradnjo vmesnika. Moje delo je zajemalo optimizacijo obstoječih in razvoj novih vmesnikov. Ker naročnik projekta prihaja iz Romunije, je bilo potrebno vse vmesnike izdelati tako, da je bil primarni jezik romunščina, sekundarni pa angleščina. Ob pritisku na gumb vmesnika »Switch Language« se mora jezik celotnega vmesnika spremeniti v želenega. Naročnik je imel pri izdelavi sistema in vmesnika še dodatne zahteve, in sicer možnost ročnega proženja kamer preko uporabniškega vmesnika ter proženje luči, ki osvetljujejo izdelek, preko optičnega spojnika, ki je na kameri. Prednost proženja luči preko kamere je ta, da se proženje luči in zajem slike vedno izvedeta istočasno, saj kamera ob zajemu slike sproži optični spojnik, ki sproži luči. S tem dosežemo, da je zajeta slika primerno osvetljena.

Uporabniški vmesnik je sestavljen iz več strani, ki so potrebne za programiranje in nadzor samega programa. Najpomembnejša stran vmesnika je »Obdelava slike«, ki je prikazana na sliki 4.1. Poleg te, sem izdelal še strani:

• Informacija sistema,

• Upravljanje uporabnikov,

• Nastavitve sistema,

• Vhodno izhodni podatki,

• Naprave,

• Shranjevanje,

• Domača stran,

• Meni ter

• Statistika.

(35)

4.2 Uporabljena orodja 35

Slika 4.1: Stran za obdelavo slike

4.2 Uporabljena orodja

Za izdelavo sistema so bila uporabljena različna orodja, ki so opisana v naslednjih podpoglavjih.

4.2.1 Orodje za pretvorbo slike v binarno obliko

Orodje za pretvorbo slike v binarno obliko pretvori zajeto sliko iz sive v binarno.

Orodje je uporabno pri vseh izdelanih programih, saj lahko z njim odstranimo moteče bleščanje mize od opazovanega predmeta. Primer pretvorbe v binarno sliko je viden na sliki 4.2.

V orodju se lahko nastavi različne parametre, kot so:

• prag, pri katerem se izvede transformacija,

• iskanje temnega predmeta na svetli podlagi ali svetlega predmeta na temni podlagi,

• nastavljanje območja na sliki, ki naj bo pretvorjeno,

• nastavljanje načina praga, ki je lahko fiksen ali dinamičen, ter se spreminja glede na sliko, določi pa ga program,

• nastavljanje minimalne površine, ki naj se pretvori, kar je koristno, če je na mizi, npr., kakšna praska.

(36)

36 4 Cognex designer

Slika 4.2: Orodje za pretvorbo v binarno sliko

4.2.2 Orodje za iskanje vzorcev

Orodje za iskanje vzorcev se uporablja za pridobivanje pozicije folije, zareznega traku ter za iskanje referenčne pozicije pri odlaganju. To orodje sem uporabljal največ, saj je eno izmed najosnovnejših orodij za izdelovanje programov strojnega vida.

Tudi pri tem orodju je možno nastavljati parametre, ki določajo njegovo delovanje, in sicer:

• nastavljanje praga,

• nastavitve iskanja, ki je v vseh programih v projektu nastavljen na »PAT max && PAT quick«,

• nastavljanje območja, kjer orodje opazuje,

• možnost maskiranja neželenih značilk,

• možnost omejitve vidnega kota.

Orodje je razmeroma preprosto za uporabo. Najprej je potrebno zajeti referenčno sliko opazovanega predmeta, pri čemer je najbolje, da je predmet v idealni poziciji. Ko je slika zajeta, jo je potrebno povezati v orodje. V orodju se nato pritisne na gumb

»Grab Train Image«, kar zajeto sliko spremeni v učno. Ko je slika zajeta, je potrebno izbrati opazovano sliko kot »Current.TrainImage«, na njej pa se določi učno območje na predmetu, kot to prikazuje slika 4.3. Ko je območje določeno, je potrebno nastaviti še koordinatno izhodišče kosa, kar se lahko naredi s pritiskom na gumb »Center Origin«, ali pa se ga ročno postavi na želeno točko. Ko sta območje in koordinatno

(37)

4.2 Uporabljena orodja 37

izhodišče določena, postopek zaključimo s pritiskom na gumb »Train« in kos je naučen.

Ko se postopek konča, orodje poda rezultate iskanja, in sicer:

• ujemanje kosa od učnega,

• koordinate X in Y,

• zasuk in

• število najdenih kosov.

Slika 4.3: Orodje za iskanje vzorcev

4.2.3 Orodje za določanje histograma

Orodje za določanje histograma na opazovanem območju določi histogram slike, in sicer v smislu beline ter standardne deviacije. Vrednosti povprečne beline se gibajo med 0 in 255, standardna deviacija pa določa homogenost površine predmeta. To orodje sem uporabil pri podajalcu folije in pri kontroli odlaganja.

4.2.4 Orodje za nastavljanje koordinatnega izhodišča

Orodje za nastavljanje koordinatnega izhodišča se uporablja za nastavitev novega koordinatnega izhodišča. Orodje sem uporabil kadar je bilo potrebno nastaviti koordinatno izhodišče na opazovan predmet ali na neko določeno referenco. Pri tem

(38)

38 4 Cognex designer

se orodju poda vhodna slika in koordinate, orodje pa nastavi novo koordinatno izhodišče. Primer uporabe orodja je pri podajalcu folije, kjer je potrebno preveriti ali je folija pravilnega tipa in nepoškodovana. Ker se folija vedno poda na drugo mesto, je potrebno te napake iskati glede na njeno pozicijo. Koordinate so bile v tem primeru rezultat orodja za iskanje vzorcev.

4.3 Kalibracija

Kalibracija je eden najpomembnejših korakov, ki jih je potrebno izvesti za zanesljivo in natančno merjenje. Za iskanje določenih značilk ali zaznavanje prisotnosti predmeta kalibracija sicer ni potrebna, je pa obvezna takrat, ko je potrebno dobiti podatke v določeni, človeku razumljivi, enoti. Kalibracija je pomembna tudi za pravilno postavljanje robotskega manipulatorja v koordinatnem sistemu kamere.

Kalibracijska stran na uporabniškem vmesniku je prikazana na sliki 4.4.

Slika 4.4: Kalibracijska stran na uporabniškem vmesniku

4.3.1 Kalibracija baznega koordinatnega sistema

Kalibracijo baznega koordinatnega sistema sem v tem projektu naredil s šahovnico. Program Cognex designer ima že vgrajeno orodje za kalibracijo in odpravljanje popačenja kamere.

(39)

4.3 Kalibracija 39

Popačenja se pojavljajo zaradi naklona kamere, neravne površine opazovane podlage, pa tudi zaradi leče, saj leča, ki ima zelo kratko goriščno razdaljo zelo popači sliko zaradi svoje oblike. Popačenje leče se na sliki odraža tako, da je rob slike nekoliko ukrivljen.

Bazni koordinatni sistem se lahko premika z uporabo značilk na šahovnici ali z ročno postavitvijo. V tem projektu sem pustil bazni koordinatni sistem na privzetem mestu, kot ga nastavi program, saj je za delovanje programa to nepomembno.

Do kalibracije koordinatnega sistema se dostopa s klikom na gumb »Base Coordinate System«, kot je vidno na sliki 4.4.

4.3.2 Kalibracija robotskega manipulatorja

Robotski manipulator ima na zgornji ploskvi, pri ogliščih nalepljene kalibracijske križce, ki jih program na sliki poišče z uporabo orodja za iskanje vzorcev.

Z uporabo programskega jezika C# sem izračunal središče robotskega manipulatorja, ki predstavlja referenčno točko le-tega. Referenčna točka, ki je definirana s pozicijo X, Y ter rotacijo A, je shranjena kot globalna spremenljivka sistema, program za pobiranje folije oz. zareznega traku pa jo uporabi tako, da od izmerjene pozicije kosa odšteje vrednost reference v smereh X in Y, od izmerjene rotacije kosa pa odšteje rotacijo A. Kljub temu, da imata kamera in robotski manipulator različne koordinatne sisteme, lahko kamera s pomočjo referenčne točke in odmika od ničelne točke (sredina mize) določi kje v njenem koordinatnem sistemu se nahaja manipulator. Kalibracijo robotskega manipulatorja prikazuje sika 4.5.

Kot je vidno s slike 4.5, kalibracijskih križcev, zaradi oblike manipulatorja, ni mogoče postaviti natančno v oglišča. Zaradi teh odstopanj je potrebno kalibracijsko točko zamakniti programsko, kar storimo preko uporabniškega vmesnika in s programom, napisanim v jeziku C#.

Kalibracijo robota je mogoče popraviti s klikom na gumb »Edit«, ki je v sredinskem oknu na sliki 4.4. Odmike reference pa se prav tako nastavlja na sredinskih vnosnih poljih kalibracijske strani uporabniškega vmesnika.

(40)

40 4 Cognex designer

Slika 4.5: Kalibracija robotskega manipulatorja

4.3.3 Kalibracija kosa

Pri učenju vzorca kosa je težko določiti točno pobiralno pozicijo, kar pomeni, da je potrebno koordinatno izhodišče kosa spreminjati. To lahko storimo na kalibracijski strani v levem oknu, kot je vidno na sliki 4.4. Za spreminjanje koordinatnega izhodišča kosa sem napisal program v jeziku C#, ki ga prikazuje slika 4.6.

Končne odmike kosa sem nastavil tako, da sem manipulatorju določil pobiralno pozicijo in preverjal kako manipulator kos pobere. Pri določanju koordinatnega izhodišča kosa sem imel na začetku nekaj težav z ujemanjem koordinatnih sistemov kosa in manipulatorja. Ker je kot vsake folije nekoliko drugačen, se mora prijemalo manipulatorja obračati, kar pomeni, da morata biti koordinatna sistema poravnana, in sicer na točki rotacije.

(41)

4.3 Kalibracija 41

Slika 4.6: Program za odmikanje referenčne točke kosa

(42)

42 4 Cognex designer

4.3.4 Kalibracija odlagalne pozicije

Pri odlaganju folije manipulatorja ni bilo potrebno kalibrirati, saj je odlagalna pozicija vedno enaka. Po drugi strani, je za odlaganje zareznega traku kalibracija potrebna, saj ga manipulator odlaga glede na postavitev odlagališča, ki je na sistemu

»montrack«, ki se pripelje v postajo.

Za kalibracijo sem izbral dve značilki, ki sta na paleti, ki jo dostavi sistem

»montrack«. Značilki nato poišče orodje za iskanje vzorcev in s programom izračuna sredinsko točko med njima, ki se jo določi za novo koordinatno izhodišče z orodjem za nastavljanje koordinatnega izhodišča.

Podobno kot pri manipulatorju, je tudi tu nujna možnost za zamik koordinatnega izhodišča, ki se izvede podobno kot pri manipulatorju, tj. na sredinskem polju kalibracijske strani, kot je prikazano na sliki 4.4.

Odlaganje kosa je vodeno s pomočjo strojnega vida, pri čemer mora biti zarezni trak odložen na določeno mesto s toleranco ± 0,2 mm. Po končanem odlaganju je nujno preveriti tudi pravilnost odlaganja.

4.4 Program za pobiranje folije

Program za pobiranje folije predstavlja prvega od treh programov, ki skrbijo za delovanje sistema. Osnovni algoritem programa je naslednji. Najprej se zajeta siva osem-bitna slika pretvori v binarno. Binarno sliko nato prejme orodje za iskanje vzorcev, ki najprej določi pozicijo folije, tj. določi njene koordinate, in jih zapiše v orodje za določanje koordinatnega sistema ter v orodno skupino, v kateri se izvede koda, prikazana na sliki 4.6. Orodje za nastavljanje koordinatnega izhodišča postavi novo izhodišče na kos v originalni vhodni sivi sliki. Novo izhodišče se v nadaljevanju uporabi za določanje histograma.

V nadaljevanju folijo preverijo tri orodja za določanje histogramov, ki preverjajo ali so na foliji prisotni repki in ali so le-ti zviti. Prisotnost repkov se preverja tako, da se na sliki izmeri belina na točki, kjer naj bi se nahajal repek. Če le-tega ni, je kos zavrnjen, manipulator pa ga pobere in odvrže v zabojnik za smeti.

Ko se izvedejo orodja za pregled, se na sliko nariše znake, in sicer:

• križec baznega koordinatnega sistema,

• križec za referenčno točko manipulatorja,

• križec za koordinatni sistem folije in

• linijo od križca koordinatnega sistema folije do referenčne točke manipulatorja.

Nazadnje se opravi še pregled podatkov s programom, ki ga prikazuje slika 4.7.

(43)

4.4 Program za pobiranje folije 43

Če je bila med obdelavo zaznana napaka, kot npr. zviti rep, se v spremenljivko

»errorID« zapiše v naprej določena vrednost, ki določa vrsto napake. V primeru manjših napak, kot je zvit rep, se napaka le zabeleži. Kos se odnese v zaboj za smeti in cikel se ponovi. Ob morebitni hujši napaki, kot je napaka pri zajemanju slike, se na uporabniškem vmesniku pokaže sporočilo, katero mora usposobljena oseba odpraviti.

V primeru obdelave brez napak, se podatki prikažejo na uporabniškem vmesniku, kot je prikazano na sliki 4.8. Rezultat obdelave se nato pošlje preko protokola Profinet do logičnega krmilnika, ki na manipulatorju izvede premik oz.

akcijo. Do krmilnika se prenesejo naslednje informacije:

• koordinata X,

• koordinata Y,

• rotacija A,

• errorID in

• stanje kosa.

Slika 4.7: Program za pregled rezultatov

(44)

44 4 Cognex designer

Slika 4.8: Uporabniški vmesnik pri pregledu folije

4.5 Program za pobiranje zareznega traku

Program za pobiranje zareznega traku predstavlja drugega od programov, ki skrbita za delovanje sistema. Pri tem programu je osnovni algoritem nekoliko drugačen kot pri pobiranju folij, saj mora program razpoznati več objektov hkrati. Razlog temu je namestitev zareznega traku, ki je prilepljen na plastični zaščiti, s katere ga mora manipulator pobrati. Plastična zaščita oz. podlaga je vidna na pobiralni mizi na sliki 3.7.

Za pravilno pobiranje se mora zarezni trak nahajati na v naprej določeni poziciji, ki je določena tako, da je po končanem pobiranju naslednji trak že zelo blizu idealne pozicije. Pri pobiranju se manipulator postavi nad zarezni trak, nato pa sta se oba, s pomočjo enkoderja, z enako hitrostjo premikata proti robu mize, kjer je nameščen nož za odstranjevanje zaščite. Predno zarezni trak doseže pobiralno mesto, je potrebno preveriti ali je brez napak in pravilno orientiran. Postopek je podoben kot pri preverjanju folij, tj. s pretvorbo sive osem-bitne slike v binarno obliko. Zaradi dobrega kontrasta med podlago in zareznim trakom, je prag za določanje ali je barva ena ali nič mogoče nastaviti tako, da je barva zareznega traku zelo blizu meje. To pomeni, da so na zareznem traku vidne tudi vse nepravilnosti, npr. lepilo na zgornji strani traka ali

(45)

4.5 Program za pobiranje zareznega traku 45

pa luknja v traku. Če je prvi trak v vrsti poškodovan, ga je potrebno premakniti naprej, tako da bo naslednji trak na pobiralni poziciji.

Ker orodje za iskanje vzorcev ne zna razvrščati vzorcev glede na pozicijo, jih je bilo potrebno razvrstiti s programskim jezikom C#. Program sem napisal tako, da najprej preslika vhodne spremenljivke v lokalne in jih prepiše v zbirke. Nadalje zbirke primerja med sabo in zapiše zbirko, ki ima najmanjšo koordinato Y, v zbirko imenovano »FirstPart«. Ko je ta zbirka določena, program poišče še zbirko z največjo koordinato Y, ki se zapiše v zbirko ThirdPart. Ko sta določeni prva in zadnja zbirka, se preostala zbirka zapiše v zbirko »SecondPart«. Program je viden na sliki 4.9 in na sliki 4.10. Elemente zbirk program nato zapiše na izhodne spremenljivke.

Slika 4.9: Program za razvrščanje vzorcev prvi del

(46)

46 4 Cognex designer

Slika 4.10: Program za razvrščanje, drugi del

Ko je razvrščanje končano, se za prvi kos v vrsti naredi sprememba pobiralne točke, in sicer s programom na sliki 4.6. Za tem se, enako kot pri pobiranju folij narišejo križci, z izjemo, da je tu dodan še križec pobiralne točke. Po končanem

(47)

4.5 Program za pobiranje zareznega traku 47

postopku, se izvede še preverjanje podatkov s programom, ki je prikazan na sliki 4.11 in na sliki 4.12. V primeru, da je prvi kos v vrsti brez napak, se ga postavi v pobiralno točko. Če je prvi trak poškodovan, se na pobiralno pozicijo premakne drugi. Slika se ponovno zajame in program se ponovi.

Slika 4.11: Program za preverjanje podatkov pobiranja zareznega traku, prvi del

(48)

48 4 Cognex designer

Slika 4.12: Program za preverjanje podatkov pobiranja zareznega traku, drugi del

Končna obdelana slika zareznega traku je vidna na sliki 4.13

(49)

4.6 Program za odlaganje in pregled odlaganja zareznega traku 49

Slika 4.13: Končna obdelana slika pobiranja zareznega traku

4.6 Program za odlaganje in pregled odlaganja zareznega traku Program za odlaganje in pregled odlaganja zareznega traku predstavlja tretjega od programov, ki skrbijo za delovanje sistema. Pri tem programu je bilo potrebno dodati možnost zajemanja dveh slik z isto kamero. Prvi zajem slike je namenjen določitvi odlagalne pozicije, drugi zajem pa preverjanju pravilnosti odlaganja zareznega traku.

Najprej se tako izvede slikanje odlagalne pozicije, rezultat obdelave slike pa se pošlje robotu. Informacije o odlagalni poziciji se sporočajo le za zarezni trak, saj ima folija na odlagalni poziciji mehanska vodila. Za odlaganje zareznega traku je potrebna visoka natančnost, saj je bila zahteva naročnika, da je zarezni trak odložen na 0,20 mm natančno.

Pri zajemanju slik je bilo potrebno čas odprtosti zaklopa spreminjati, saj je potrebno pri preverjanju odlaganja sliko močno osvetliti, da so vidne morebitne nepravilnosti, kot npr. mehurček.

Prvo slikanje določa pozicijo palete glede na referenco manipulatorja. Ker so vse palete izdelane zelo natančno, je takšen način slikanja ustrezen. Prav tako se pri prvem slikanju nastavi referenca na odlagališče, ti podatki pa se uporabijo za drugo slikanje.

Pozicija se določi z orodjem za iskanje vzorcev. Prva zajeta slika je vidna na sliki 4.14.

(50)

50 4 Cognex designer

Slika 4.14: Prvo slikanje odlagalne pozicije

Drugo slikanje preverja natančnost odloženega zareznega traku, kot to prikazuje slika 4.15. Najprej se podatki prvega slikanja prenesejo v orodje

»CogAffineTransformTool«, ki glede na vhodne podatke, tj. koordinati X, Y in kot A, postavi sredino orodja na odlagalno pozicijo in jo obreže, tako da je na izhodni sliki viden le odložen zarezni trak, kot to prikazuje slika 4.16. Velikost pravokotnika, ki ga obreže je fiksna. Za tem se preveri pozicija zareznega traku glede na referenčne koordinate z orodjem za iskanje vzorcev. Ko je to opravljeno se luknje v zareznem traku, kot je vidno na sliki 4.16 maskirajo s črno barvo. Slika se v nadaljevanju pretvori v binarno sliko, na njej pa se preveri, ali so na traku mehurčki ali druge nepravilnosti.

Na koncu se izvede še preverjanje podatkov, ki potrdi, da je kos brez napak in znotraj tolerance.

Slika 4.15: Drugo slikanje odlagalne pozicije

(51)

4.6 Program za odlaganje in pregled odlaganja zareznega traku 51

Slika 4.16: Obrezana in maskirana slika pri pregledu odlaganja zareznega traku

(52)
(53)

53

5 Zaključek

Cilj dela, ki sem ga opravljal na projektu je bila izdelava zanesljivega sistema za določanje pozicije folije in zareznega traku ter pregled odlaganja le-tega s strojnim vidom. Naloga je bila uspešno opravljena, saj so bile izpolnjene vse zahteve in želje naročnika. Seveda pa so pri tovrstnih sistemih vedno možne izboljšave in nadgradnje.

Naročnik sistema je, zaradi dobre izvedbe prve linije, naročil še dodatno linijo, ki bo kopija prve, pri izdelavi katere bom prav tako sodeloval. Pri prvi izvedbi linije sem pridobil mnogo znanj, predvsem v povezavi s sistemom Cognex Designer ter nekaj uporabnih informacij v povezavi s programiranjem Siemensovih PLK-jev. Prav tako sem pridobil znanja o komunikaciji med industrijskim računalnikom VC5 in logičnim krmilnikom. Računalnik VC5 se sicer umika iz prodaje, vendar so osnove komunikacij tudi pri ostalih računalnikih v tovrstnih sistemih podobne. Pri izvedbi druge linije se VC5 ne bo več uporabljal, zamenjal pa ga bo večnamenski industrijski računalnik, kateremu bodo dodana vrata GigE za kamere, komunikacijski modul in vsa potrebna programska oprema. Način komunikacije bo v tem primeru enak kot pa pri VC5, le da bo delovanje hitrejše in bolj zanesljivo.

Med izdelavo projekta sem naletel na mnogo problemov. Nekatere od njih je bilo mogoče rešiti programsko, medtem ko je bilo potrebno za druge posesti v strojno konfiguracijo sistema. Največ težav se je pojavilo pri postavitvi kamer in osvetlitve.

Tekom izdelave sistema sem opazil, da je pri postavitvi kamere in osvetlitve za ustrezno razpoznavanje predmetov pomembno to, da je že sami pri opazovanju zajete slike vemo kaj je cilj opazovanja. Pri kasnejšem premikanju kamer se namreč pojavi potreba po ponovni kalibraciji in ponovnem učenju sistema, saj zajete slike niso več enake.

(54)
(55)

55

Literatura

[1] John C. Russ »The IMAGE PROCESSING Handbook Sixth Edition«

[2] V.Logar, G. Mušič »Računalniško vodenje procesov: praktikum, 1. izd., Založba FE, 2015«

[3] »Kamera CIC« Dosegljivo:

https://www.cognex.com/en-si/products/machine-vision/vision- software/vision-accessories/cameras/cic-cameras

[čas dostopa 29.07.2021]

[4] »Leča« dosegljivo:

https://www.baslerweb.com/en/sales-support/downloads/document- downloads/lens-edmund-optics-cffl-f1-4-f16mm-2-3-data-sheet/

[čas dostopa 02.08.2021]

[5] »Zaslonka« Dosegljivo:

https://pixelarge.com/aperture-quick-photography-tutorials/

[čas dostopa 03.08.2021]

[6] »Računalnik VC5« Dosegljivo:

https://support.cognex.com/docs/vpro_930sr1/support/EN/VC5_hardware_man ual.pdf [čas dostopa 05.08.2021]

Reference

POVEZANI DOKUMENTI

IZVLEČEK - Avtor razlofi vzdrfevanje in teh- nično kontrolo dveh virov kisika, to je jeklenke s stisnjenim kisikom in koncentratorja, ki se v na- ših razmerah uporabljata za

Zdravniški pregled je vključeval rentgenski pregled pljuč, labo- ratorijski pregled, alergološko diagnostiko, citološki pregled nosne sluznice in vitalo- gram ter pregled celotnega

Pripravili srna dopolnitev strokovnih navodil za delo dispanzerjev za šolske otroke in mladino pri zdravstvenem domu, kjer se zahteva vsakaletni sistematični pregled, večji

Najpogosteje se uporabljata točkovni- ka: Metoda za ocenjevanje zmedenosti v enoti intenzivne terapije (angl. Confusion Assessment Method for the Intensive Care Unit, CAM-ICU), ki

Tabela 7: Odstotki uporabnikov tobačnih izdelkov, v katerih se tobak segreva, kadarkoli v življenju, tistih, ki jih niso nikoli uporabili in tistih, ki za te izdelke še niso

V zdravstveni regiji Koper so bile hospitalizacije zaradi kemičnih opeklin, katerih vzrok so bili ostali zunanji vzroki, prisotne v posameznih starostnih skupinah, in sicer so

Slika 6: Prijavljeni izbruhi po skupinah nalezljivih bolezni, po mesecih, Slovenija, 2015 Največ izbruhov je bilo prijavljenih v januarju, februarju in novembru (16, 15, 15)

The following colleagnes are thanked for reviewing and language checking:.. Za recenzije in jezikovni pregled se zahvaljujemo