stereo vid z meritvijo razdalje do objektaiii i z j a v a podpisani gašper trstenjak izjavljam, da:...

52
UNIVERZA V MARIBORU FAKULTETA ZA STROJNIŠTVO Gašper TRSTENJAK STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTA Diplomsko delo univerzitetnega študijskega programa 1. stopnje Mehatronika Maribor, september 2012

Upload: others

Post on 06-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

UNIVERZA V MARIBORU

FAKULTETA ZA STROJNIŠTVO

Gašper TRSTENJAK

STEREO VID Z MERITVIJO

RAZDALJE DO OBJEKTA

Diplomsko delo

univerzitetnega študijskega programa 1. stopnje

Mehatronika

Maribor, september 2012

Page 2: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof
Page 3: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

I

Fakulteta za strojništvo

STEREO VID Z MERITVIJO RAZDALJE DO

OBJEKTA

Diplomsko delo

Študent: Gašper TRSTENJAK

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

Smer: Mehatronika

Mentor (FERI): red. prof. dr. Riko ŠAFARIČ

Mentor (FS): izr. prof. dr. Karl GOTLIH

Somentor: doc. dr. Suzana URAN

Maribor, september 2012

Page 4: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

II

Page 5: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

III

I Z J A V A

Podpisani Gašper TRSTENJAK izjavljam, da:

je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof.

dr. Rika ŠAFARIČA (FERI), mentorstvom izr. prof. dr. Karla GOTLIHA (FS) in

somentorstvom doc. dr. Suzane URAN;

predloženo diplomsko delo v celoti ali v delih ni bilo predloženo za pridobitev

kakršne koli izobrazbe na drugi fakulteti ali univerzi;

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

Univerze v Mariboru.

Maribor, __________________ Podpis: ___________________________

Page 6: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

IV

ZAHVALA

Zahvaljujem se mentorju red. prof. dr. Riku Šafariču

in izr. prof. dr. Karlu Gotlihu za pomoč in vodenje pri

nastajanju diplomskega dela. Prav tako se zahvaljujem

somentorici doc. dr. Suzani Uran.

Posebna zahvala velja staršem in sorodnikom, ki so mi

omogočili študij.

Page 7: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

V

STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTA

Ključne besede: strojni vid, robotski sistem, realni čas

UDK: 007.52:004.923(043.2)

POVZETEK

Diplomsko delo opisuje način vodenja robotskega stereo vida, ki ponazarja gibanje

človeškega vida in glave. Cilj diplomskega dela je s pomočjo programskega paketa LabView,

z vstavkom za krmiljenje mehanizma in vstavkom za zajem in analizo video vsebin izdelati

program za razpoznavo objekta s pomočjo spletnih kamer in izdelati program za meritev

oddaljenosti med kamero in objektom ter na koncu program implementirati v glavni program.

Page 8: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

VI

MEASUREMENT OF DISTANCE WITH STEREO VISION

Key words: machine vision, robotic system, real time

UDK: 007.52:004.923(043.2)

ABSTRACT

This diploma work describes a way of controlling a stereo vision robot which mimics the

movement of human sight and head. The aim of the thesis is to create a program which can

recognize and measure the distance to a certain object, using webcams and the LabView

software package, with motion control and machine vision add-ons. Furthermore, the thesis

focuses on implementing the finished programs into the main program.

Page 9: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

VII

KAZALO

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

2 PREDSTAVITEV SISTEMA STEREO VIDA .................................................................. 2

2.1 Ogrodje sistema .................................................................................................... 3

2.2 Enosmerni električni motor .................................................................................. 4

2.3 Karta za tokovno regulacijo motorjev .................................................................. 6

2.4 Napajalnik ............................................................................................................. 6

2.5 Krmilnik NI PCI-7354 .......................................................................................... 7

2.6 Kamera.................................................................................................................. 8

3 STROJNI VID ................................................................................................................... 10

3.1 Segmentacija ....................................................................................................... 11

3.2 Prepoznava vzorcev ............................................................................................ 11

3.3 Zaznava robov .................................................................................................... 12

4 APLIKACIJA V PROGRAMU LABVIEW ..................................................................... 13

4.1 Način programiranja ........................................................................................... 13

4.2 Čelna plošča ........................................................................................................ 14

4.3 Parametrizacija ................................................................................................... 15

4.4 Inicializacija........................................................................................................ 17

4.5 Izvajanje gibov ................................................................................................... 20

4.6 Strojni vid ........................................................................................................... 22

4.7 Podprogram za obris prepoznanega objekta ....................................................... 27

4.8 Meritev razdalje .................................................................................................. 28

4.9 Stop ..................................................................................................................... 32

5 SKLEP ............................................................................................................................... 34

6 VIRI ................................................................................................................................... 36

7 PRILOGE .......................................................................................................................... 37

7.1 Kazalo slik .......................................................................................................... 37

Page 10: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

VIII

7.2 Naslov študenta .................................................................................................. 39

7.3 Kratek življenjepis .............................................................................................. 39

Page 11: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

IX

UPORABLJENI SIMBOLI

i – prestavno razmerje

α, β, γ – koti

a, b – dolžine stranic navideznega trikotnika

l – razdalja med kamerama

v – višina navideznega trikotnika

d – oddaljenost robota od triangulacijske točke

Z1 – število zob manjšega zobnika

Z2 – število zob večjega zobnika

Page 12: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

X

UPORABLJENE KRATICE

MAX – Measurment and Automation Explorer

IEEE – Institute of Electrical and Electronics Engineers

IMAQ – Image Acquisition

NI – National Instruments

PXI – PCI eXtensions for Instrumentation

PCI – Peripheral Component Interconnect

Mbps – Megabits per second (megabitov na sekundo)

PVC – polivinil klorid (Poly-Vinyl Chloride)

3D – tridimenzionalno

VGA – Video Graphics Array

Page 13: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof
Page 14: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 1 -

1 UVOD

Vse hitrejši razvoj tehnologije in s tem tudi robotike ima na današnjo družbo močan vpliv, saj

je slednja z implementacijo v industrijske procese postala nepogrešljiv del vsakdana. Živimo

v moderni družbi, kjer veliko večino zahtevnega ali nevarnega dela namesto nas opravijo

roboti. Takšna dela predstavljajo manipuliranje z obdelovanci, barvanje in varjenje

avtomobilskih delov, dela, pri katerih je ogroženo zdravje človeka ... Eno izmed smeri

robotike predstavlja tudi medicina, kjer kirurg s pomočjo haptičnih naprav in teleoperiranja

upravlja robota in s tem izvede operacijo. Sodobna robotika pa se ne osredotoča samo na

industrijo, saj se je začela uveljavljati tudi kot del zabavne elektronike, katere cilj je s

pomočjo umetne inteligence in strojnega vida narediti robota, ki bo kar se da predstavljal

človeka v smislu izgleda, mobilnosti, interakcije in izražanja čustev.

V diplomskem delu si bomo najprej ogledali, kaj je bilo na tem področju že doseženega s

strani fakultete. Na kratko bomo predstavili delovanje in lastnosti vseh sestavnih delov, ki

predstavljajo robotski sistem stereo vida. Nadaljevali bomo z opisom izdelave osnovne

aplikacije za vodenje robotskega stereo vida in izdelavo podprograma za zaznavo objekta,

kateremu smo dodali program za obris. V zadnjem delu bomo opisali implementacijo

podprogramov in modifikacijo glavnega programa na način avtomatskega izvajanja iskalnih

gibov, princip zaznavanja s pomočjo obeh kamer ter izvedbo meritve dolžine od robotskega

sistema do zaznanega objekta s podanimi enačbami.

Page 15: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 2 -

2 PREDSTAVITEV SISTEMA STEREO VIDA

Celoten robotski sistem stereo vida (slika 2.1) se nanaša na delovanje anatomije človeka,

natančneje glave, saj jo ponazori skoraj v celotnem gibanju. Sestavljajo ga štiri osi, pri katerih

prvi dve osi predstavljata oko, tretja – horizontalna os – predstavlja premikanje glave gor in

dol, četrta – vertikalna os – pa predstavlja premikanje glave levo in desno. Za delovanje

sistema in izvajanje gibov skrbijo enosmerni elektromotorji, induktivni senzorji, uporabljeni

kot varnostna stikala, ki omejujejo gibanje, in kamere za zajem slike.

Slika 2.1: Podobnost delovanja robotskega sistema s človeško glavo

Princip delovanja stereo vida temelji na triangulaciji, kjer s pomočjo trikotniških pravil in

dveh statičnih točk, katerih koordinate so znane, določimo lego triangulacijske točke, ki jo

iščemo. Statični točki predstavljata kameri, ki sta nameščeni na prvi in drugi osi. Stereo vid

deluje tako, da sta dve kameri, ki sta med seboj razmaknjeni za dolžino, ki nam je znana,

usmerjeni v skupno triangulacijsko točko (iskani objekt) in s tem zajemata sliki iz dveh

različnih pogledov, podobno, kot deluje človeški vid. Zajeti sliki se pošljeta v možgane, kjer

se obdelata in združita v eno sliko tako, da se na koncu tvori 3D prikaz, kot ponazarja slika

2.2.

Page 16: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 3 -

Slika 2.2: Prikaz človeškega vida

2.1 Ogrodje sistema

Ogrodje je bilo konstruirano kar se da enostavno z možnostjo premika v vse smeri. Tvori ga

majhno število sklopov, ki so enostavno razstavljivi, in standardnih elementov (ležaji,

vskočniki, zobniki, vijaki, matice, podložke), kar ga naredi cenovno ugodnega in enostavnega

za izdelavo, z možnostjo nadaljnjih posodobitev. Omogoča posamezno premikanje vseh štirih

osi. Za izdelavo velike večine delov je bil uporabljen aluminij, z izjemo gredi, ki so izdelane

iz jekla. Ogrodje so izdelali študentje Fakultete za strojništvo v Mariboru, ki so se predhodno

ukvarjali s to problematiko, in je namenjeno nadaljnjemu učenju in izpopolnjevanju.

Z namenom izboljšave odziva in hitrosti smo prvi osi robota dodali elektromotor enakih

specifikacij, kar je botrovalo spremembi nekaterih sestavnih elementov. Elektromotor smo

vezali na krmilno karto četrte osi, vendar brez priključkov inkrementalnega dajalnika. S tem

smo zagotovili enako obnašanje obeh elektromotorjev.

Page 17: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 4 -

Slika 2.3: Ogrodje sistema

2.2 Enosmerni električni motor

Pogon posamezne osi smo realizirali s pomočjo servomotorja in zobnika. Na gredi motorja se

nahaja manjši zobnik, ki skupaj z večjim, ki se nahaja na posamezni osi, tvori zobniško

dvojico. Večji zobnik ima 173 zob, manjši pa 19. S pomočjo enačbe za izračun prestavnega

razmerja zobniške dvojice ugotovimo, da prestavno razmerje znaša 9,1. Ta podatek bomo v

nadaljevanju uporabili za izračun kota, pod katerim se nahajata osi, na katerih so pritrjene

kamere.

(2.1)

Page 18: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 5 -

Slika 2.4: Servomotor z zobniškim prenosom

Servomotorje smo izbrali pri podjetju Portescap, serija 28D11, tip 219P, s podatki,

navedenimi v tabeli 2.1.

Tabela 2.1: Podatki enosmernega servomotorja

Nazivna napetost 12 V

Nazivni vrtljaji 5800 min-1

Maksimalni tok 1,5 A

Upornost navitja 2,5 Ω

Induktivnost navitja 300 µH

Napetostna konstanta 1,95e-2 Vs/rad

Vztrajnostni moment 17,6e-7 kgm2

Konstanta navora 1,95e-2 Nm/A

Mehanska časovna konstanta 12 ms

Moč 15 W

Tok prostega teka 44 mA

Viskozno trenje 1e-6 Nms/rad

Masa 190 g

Na gredeh motorjev so priključeni inkrementalni dajalniki položaja, s katerimi na dokaj

enostaven način izmerimo kot zasuka posamezne prostostne stopnje sistema. Dajalnik

omogoča resolucijo 400 pulzov na obrat in je uporabljen pri določanju položaja objekta, ki ga

opazujemo, ter izvajanju položajne regulacije sistema. Razlog za izbiro servomotorjev tiči v

razmerju cena/zmogljivost, saj glede na nizko ceno ponujajo zelo veliko v smislu dodatne

opreme (inkrementalni dajalnik, zobniška dvojica) in moči, ki nam je na voljo.

Page 19: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 6 -

Slika 2.5: Enosmerni servomotor

2.3 Karta za tokovno regulacijo motorjev

Za analogno tokovno regulacijo elektromotorjev smo uporabili štiri tiskana vezja, prikazana

na sliki 2.6. Na vezje so priključeni tudi signali, ki jih oddajajo inkrementalni dajalniki

položaja. Vezje je bilo načrtovano in izdelano na Fakulteti za elektrotehniko, računalništvo in

informatiko v Mariboru in služi kot učni pripomoček.

Slika 2.6: Vezje za regulacijo servomotorjev in priklop inkrementalnih dajalnikov

2.4 Napajalnik

Za napajanje vseh enot skrbi računalniški napajalnik (slika 2.7) z močjo 400 W, kateremu

smo odstranili ohišje in ga namestili na podstavek robota. Tiskano vezje je izolirano z več

plastmi PVC folije, saj smo s tem preprečili možnost kratkega stika med kontakti. Razlogi za

Page 20: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 7 -

izbiro računalniškega napajalnika so v naboru potrebnih napetosti (+12 V, -12 V, 5 V), ki jih

potrebujemo za pravilno delovanje vseh enot, enostavni dostopnosti in nizki ceni.

Slika 2.7: Računalniški napajalnik

2.5 Krmilnik NI PCI-7354

Krmilnik, uporabljen za regulacijo in krmiljenje elektromotorjev, je bil izbran iz družine PXI

podjetja National Instruments. Krmilniki so na voljo v samostoječi izvedbi PXI ali kot

razširitvene karte za osebne računalnike, ki delujejo na vodilu PCI. PXI je družina visoko

kvalitetnih krmilnikov, ki sestojijo iz krmilnika, perifernih modulov, programske opreme,

ohišja in imajo možnost dodajanja mehanskih, električnih in programskih funkcij, s katerimi

izvedemo celovite sisteme za namene testiranj, meritev, zajem podatkov in razvoj aplikacij.

Uporabljeni so v vseh vrstah industrije, kot so avtomobilska, vojaška in vesoljska industrija,

ter medicini. Krmilnik PCI-7354 (slika 2.8) omogoča regulacijo štirih osi, od tega dveh hkrati

z regulacijskim osveževanjem 65 µs. Podpira servo- in koračne motorje ter različno

interpolacijo izvedbe giba (linearna, krožna). Podprt je s strani modula za delo v realnem času

(LabView Real-time module) in večino standardnih operacijskih sistemov Windows.

Page 21: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 8 -

Slika 2.8: Krmilnik za vodenje sistema NI PCI-7354

2.6 Kamera

Kamere, uporabljene za zajem in analizo slike, smo izbrali pri podjetju Unibrain. Gre za

kamero Fire-i Digital Board Camera, ki deluje v črno-beli tehnologiji, kar nam olajša delo pri

analizi slike, saj slednje ni potrebno pretvoriti v črno-belo. Kamera zajema sliko z ločljivostjo

VGA do 30 slik na sekundo in z računalnikom komunicira preko standardnega priključka

IEEE 1394, ki ga bolje poznamo pod imenom FireWire. Gre za standard, ki omogoča hitro

komunikacijo med elektronskimi napravami, zato je uporaben pri prenosu podatkov v realnem

času. Za komunikacijo uporablja serijsko vodilo, kar omogoča veliko pasovno širino in

hitrosti od 400 do 3200 Mbit/s. Za uporabo kamer smo ob krmilnik v računalnik vgradili še

FireWire karto podjetja Texas Instruments, na kateri se nahajata dva priključka. Za uporabo

kamer smo morali namestiti gonilnike, ki so priloženi v okolju LabView, saj kamere z

gonilniki, ki so bili priloženi kameri, v LabView-u niso bile prepoznane.

Page 22: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 9 -

Slika 2.9: Priključek FireWire

Kameri smo odstranili ohišje, tako da je ostalo le elektronsko vezje, na katerem so priključki

in leča. S tem smo prihranili na teži osi in posledično zmanjšali masne vztrajnostne momente

in obremenitve elektromotorjev, sledila pa je težava med obratovanjem, saj kabli za povezavo

z računalnikom niso dovolj prožni in so med obratovanjem zvijali priključke in izgubljali

povezavo s kamero

Slika 2.10: Kamera Fire-i

Page 23: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 10 -

3 STROJNI VID

Cilj strojnega vida je, da z uporabo različnih tehnologij, metod in naprav, poskuša posnemati

človeški vid, opazovano pa analizirati in razumeti. Stopnja razvoja, na kateri se nahaja strojni

vid danes, ni primerljiva s človeškimi zmožnostmi, razlog za to pa tiči v slabi računski moči

računalnikov in v izjemno kompleksnih možganskih procesih, ketere današnji programski

algoritmi niso zmožni replicirati. Z nenehnim razvojem tehnologije in matematičnih

algoritmov, se meja med človekom in strojnim vidom manjša, kar bo omogočilo, da bo strojni

vid postal dovolj dobra zamenjava človeškega.

Sistemi strojnega vida se uporabljajo pri vodenju tehnoloških procesov ali robotov, kontroli

kvalitete izdelkov, medicini, vojaški in avtomobilski industriji. Slika 3.1 prikazuje

humanoidnega robota, ki s pomočjo strojnega vida, programske opreme za predvidevanje

trajektorije leta žogic in visoke mobilnosti, lovi žogice.

Slika 3.1: Humanoidni robot Justin

Page 24: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 11 -

Za izvedbo aplikacije strojnega vida, se uporabljajo različne metode, ki so naštete in opisane v

nadaljevanju:

Segmentacija,

prepoznava vzorcev in

zaznava robov.

3.1 Segmentacija

V strojnem vidu je segmentacija postopek razdelitve digitalne slike na več segmentov. Cilj

segmentacije je narediti sliko, ki bo enostavnejša za nadalnje analize. Uporabljamo jo za

določanje položaja objekta in mej v sliki. Segmentacija je proces določitve oznak vsaki točki

(ang. pixel) v sliki tako, da si točke, ki imajo enako oznako delijo določene vizualne

karakteristike. Rezultat tega je slika, ki je v celoti sestavljena iz segmentov, ali pa skupek

kontur ki so izločeni iz slike. Vsake točke v segmentu so si podobne glede na karakteristike,

kot so barva, intenzivnost, teksture, med tem ko se posamezni segmenti med seboj močno

razlikujejo. Aplikacije, kjer je uporabljena segmentacija so medicinsko slikanje, določanje

lege objektov na satelitskih slikah, prepoznava obraza, odtisa in šarenica, kontrola prometa...

3.2 Prepoznava vzorcev

V strojnem vidu prepoznava vzorcev zajema metode, katerih cilj je pridobitev informacij

posameznih točk v sliki. Z odločanjem, ali posamezna točka pripada določenemu tipu ali ne,

se tvori baza točk določenih karakteristik, ki jih pogosto zaznamo v obliki izoliranih točk,

krivulj ali povezanih regij.

Definicija vzorca ni natančno določena in je pogosto odvisna od problema, s katerim se sooča

programer, tako da ga najlažje definiramo kot zanimiv del slike. Ločimo več vrst prepoznave

vzorcev kot so zaznava robov, kotov, točk ali regij interesa. Najpomembnejša lastnost

algoritma za prepoznavo vzorcev je ponovljivost zaznave vzorca na slikah.

Page 25: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 12 -

Slika 3.2: Prepoznava vzorcev

3.3 Zaznava robov

Zaznava robov velja za eno izmed najpomembnejših metod v strojnem vidu, posebno pri

predhodno opisani prepoznavi vzorcev. Ko govorimo o zaznavi robov, govorimo o zaznavi

točk na digitalni sliki, kjer prihaja do ostrih sprememb v svetlobi – temni objekti na svetli

površini, ali obratno. K temu štejemo tudi sence, ki pravtako ustvarjajo ostre prehode

svetlobe, spremembe v globini in orientaciji ploskve, ter spremembe v lastnostih materiala.

V idealnem primeru bi bil rezultat zaznave robov slika, ki bi bila sestavljena iz niza med seboj

povezanih krivulj, ki tvorijo obris določenega objekta, kot to prikazuje slika 3.3. Algoritem za

zaznavo robov nam pripomore k temu, da nam drastično zmanjša količino podatkov za

procesiranje slike in s tem deluje kot filter, ki nam odstrani manj relevantne podatke.

Slika 3.3: Detekcija robov

Page 26: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 13 -

4 APLIKACIJA V PROGRAMU LABVIEW

Programski paket LabView, uporabljen za izdelavo aplikacije krmiljenja sistema in zaznave

objekta, je bil izdan leta 1976 s strani podjetja National Instruments. Dandanes je podjetje

ponudnik tako programskih kot tudi strojnih rešitev za vse možne aplikacije. Za našo

aplikacijo smo osnovnemu programskemu paketu LabView dodali modula NI Motion, ki ga

uporabljamo za krmiljenje motorjev in upravljanje s končnimi stikali, ter NI Vision, ki se

uporablja za zajem, analizo in manipulacijo slik ali videa. Programer s pomočjo grafičnega

programiranja tvori virtualni inštrument, ki ga nato uporabi za avtomatizacijo proizvodnje in

merilnih naprav. Virtualni inštrument sestavljajo trije glavni deli. Prvi je čelna plošča (»front

panel«), ki deluje kot uporabniški vmesnik, na katerem se nahajajo gumbi, indikatorji, polja

za vnos podatkov in grafikoni. Sledi mu blokovni diagram (»block diagram«), kjer programer

predmete na čelni plošči skupaj s specifičnimi ukazi, ki se nahajajo v blokih, operatorji in

zankami (»for, while, case, sequence« zanke) tvori logično celoto. Zadnji je priključni

terminal, kjer podprogramom določimo vhode, izhode in ikono za lažje prepoznavanje. Sprva

je za programski del skrbel program MAX (Measurment and Automation Explorer), vendar je

bila uporaba programa uporabniku zelo neprijazna, saj so bili meniji za nastavitve parametrov

(pozicija, hitrost, regulacijski parametri) razkropljeni, zato smo se odločili, da uporabimo

program LabView.

4.1 Način programiranja

Način programiranja, ki smo ga uporabili, je diagram stanj (State Machine), kjer s pomočjo

»while« in »case« zanke, pomnilnih registrov za prenos podatkov iz ene iteracije zanke v

drugo in kontrole, v kateri se nahajajo stanja, tvorimo točno določeno zaporedje izvajanja

programa. Prednost takšnega načina programiranja je predvsem možnost spreminjanja poteka

izvajanja programa in preglednost programa, saj zmanjšamo porabljen prostor v blokovni

shemi.

Page 27: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 14 -

Uporabili smo stanja, ki si sledijo v naslednjem vrstnem redu:

parametrizacija – določitev parametrov,

inicializacija – iskanje referenčne lege in ponastavitev položaja,

izvajanje giba – izvedba iskalnih gibov z zajemom in analizo slike,

meritev razdalje in

stop – zaustavitev programa in motorjev.

4.2 Čelna plošča

Na čelni plošči aplikacije (slika 4.1) lahko najdemo dve kontroli za izbiro priključenih kamer,

dva zaslona za prikaz zajete slike, polja za vnos hitrosti in pospeška posamezne osi, polje za

vpis razdalje med kamerama v poljubnih dolžinskih enotah, indikatorje kotov, pod katerimi se

nahajajo osi, izmerjeno razdaljo ter kot od robotskega sistema do zaznanega objekta.

Slika 4.1: Čelna plošča

Page 28: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 15 -

4.3 Parametrizacija

Zaradi enakega obnašanja vseh osi smo programirali le eno in si s tem olajšali delo. Prvi

korak je inicializacija krmilnika (karta v računalniku), kateremu sledi posamezno nalaganje

izbranih hitrosti ter pospeškov/pojemkov. Na koncu izvedemo transformacijo hitrostnega

profila in izbiro pozicijskega načina. V tem koraku se tudi določi, da se bo kot naslednji korak

izvedla inicializacija. Slika 4.2 prikazuje blokovno shemo, na kateri smo uporabili bloke,

opisane v nadaljevanju.

Slika 4.2: Korak parametrizacija

Blok Initialize Controller (slika 4.3), kot že samo ime pove, inicializira krmilniško kartico, ki

jo uporabljamo v naši aplikaciji. Priključek Settings Name podaja nastavitve, ki so trenutno

uporabljene v programu MAX. Če priključek ni aktiven, se uporabljajo tovarniške nastavitve.

Slika 4.3: Blok za inicializacijo krmilnika

Page 29: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 16 -

Blok Load Velocity (slika 4.4) za določeno os ali vektorski prostor določi željeno ali

maksimalno hitrost.

Slika 4.4: Blok za izbiro hitrosti

Blok Load Acceleration/Deceleration (slika 4.5) omogoča, da za določeno os ali vektorski

prostor izberemo pospešek in/ali pojemek.

Slika 4.5: Blok za izbiro pospeškov/pojemkov

Ker perfektni stopnični odzivi motorjev v praksi niso možni, blok Load S-Curve Time (slika

4.6) omogoča, da z večanjem S Curve Time parametra zgladimo hitrostni profil za izbrano os

in s tem izvedemo mehko pospeševanje ali pojemanje hitrosti motorja.

Slika 4.6: Blok za določitev parametra za modifikacijo hitrostnega profila

Page 30: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 17 -

Slika 4.7: Grafični prikaz večanja parametra S-krivulja časa

S pomočjo bloka Set Operation Mode (slika 4.8) določamo način delovanja dotične osi ali

vektorskega prostora. Izbiramo lahko med različnimi načini, kot so Absolute Position

(položaj, v katerem se nahaja os, je določen glede na absolutni (začetni) položaj, ki je lahko

vrednost inkrementalnega dajalnika, končno stikalo), Relative Position (željeni položaj,

določen glede na relativni (trenutni) položaj), Velocity (izbrana os se vrti z določeno hitrostjo,

dokler ne doseže končnega stikala ali uporabnik ne zaustavi premikanja), Relative-to-Capture

Position (podobno kot Absolute Position, le da je uporabljena zadnja pozicija osi) in Modulus

Position (izbira najkrajše poti z vrtenjem v levo ali desno smer do željene pozicije).

Slika 4.8: Blok za izbiro načina delovanja

4.4 Inicializacija

S pomočjo pomnilnih (Shift) registrov prenesemo podatke iz predhodnega v trenutni korak,

kjer se najprej izvede podprogram. Med preizkušanjem smo naleteli na bizaren problem, ko je

sistem po uspešnem iskanju referenčne lege izvedel nenaden gib, čeprav mu ukaza za izvedbo

giba nismo podali. To anomalijo smo odpravili s ponastavitvijo inkrementalnih dajalnikov in

s tem položaja na vrednost 0. Slika 4.9 prikazuje blokovno shemo inicializacije.

Page 31: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 18 -

Slika 4.9: Korak inicializacija

Podprogram

Za iskanje referenčne lege smo uporabili podprogram (slika 4.10), kateremu lahko nastavimo

različne načine iskanja, kot so center, limit v smeri vožnje naprej ali limit v smeri vožnje

nazaj. Program deluje na principu iskanja pozicije končnih stikal, ki jih predstavljajo

induktivni senzorji. Če je izbran način limit v smeri vožnje naprej, se os vrti tako dolgo,

dokler z železno konico ne zazna končnega stikala in se v trenutku ustavi. Enako velja za

način limit v smeri vožnje nazaj. V primeru, da je izbran način center, pa os odčita poziciji

obeh končnih stikal in se ustavi na srednji vrednosti le-teh. Iskanje referenčne lege poteka

tako dolgo, dokler ni uspešno ali dokler ne naletimo na katero izmed napak (nedelovanje

motorja, prevelika napaka motorja v sledenju položaja). Po uspešni pridobitvi referenčne lege

je podprogram v celoti izveden, sledi izvajanje glavnega programa. Za delovanje

podprograma smo morali določiti uporabljene vhode in izhode in jih nato povezati s

konektorji, ki so omogočili priključitev v glavni program.

Page 32: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 19 -

Slika 4.10: Podprogram za iskanje referenčne lege

Za določeno os ali vektorski prostor blok Find Reference (slika 4.11) poišče referenčno

pozicijo. Lahko izbiramo med Find Home, Index, Center, Forward in Reverse Limit ter Run

Sequence.

Slika 4.11: Blok za iskanje referenčnega položaja

Blok Check Reference (slika 4.12) preverja status uspešnosti iskanja referenčne pozicije, ki

smo jo določili z blokom Find Reference.

Slika 4.12: Blok za preverjanje statusa iskanja reference

Page 33: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 20 -

Blok Read Per Axis Status (slika 4.13) omogoča, da na priključku Per Axis H/W Status

pridobimo skupino informacij o izbrani osi, kot so aktivna končna stikala, nedelujoč motor,

smer vrtenja, pomik končan, napaka v sledenju in delovanje osi.

Slika 4.13: Blok o podatkih stanja osi

Z blokom Reset Position (slika 4.14) smo ponastavili pozicijo inkrementalnega dajalnika. S

tem smo zagotovili izhodiščno stanje robotskega sistema.

Slika 4.14: Blok za ponastavitev pozicije inkrementalnega dajalnika

4.5 Izvajanje gibov

V tem koraku se izvajajo gibi (slika 4.15). Podobno kot v prvem, gre tudi v tem koraku za

enako delovanje osi, tako da programiramo eno os in jo nato kopiramo na ostale. V začetni

fazi smo pozicijo nastavljali s pomočjo drsnika, vendar smo želeli, da sistem izvaja gibe, v

katerih zaznavamo sliko, samodejno. Najprej smo glavni program spremenili tako, da smo mu

dodali iskalne gibe, ki se avtomatsko izvajajo glede na to, v kateri ponovitvi zanke se program

nahaja. To smo dosegli tako, da smo zaporedno številko ponovitve delili z 2 in glede na

ostanek izvajali gibe (ostanek enak 0 – premik v levo za 500 korakov dajalnika, ostanek

različen od 0 – premik v desno za 500 korakov dajalnika). V naslednjem koraku smo vpeljali

program za prepoznavo objekta za obe kameri in s pomočjo »case« funkcije določili pogoj, da

morata obe kameri prepoznati objekt. Če se to zgodi, se s pomočjo funkcije USTAVI (HALT)

vse štiri osi na mehanizmu ustavijo in se program premakne v naslednji korak, če pa temu ni

tako, se celotni korak vnovič zažene. Zaradi omejitve računske moči smo se odločili, da gibe

Page 34: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 21 -

mehanizma izvajamo z majhno hitrostjo in pospeški, saj računalnik ne zmore procesirati in

analizirati slike v kratkem času. Tako kot v podprogramu se tudi tukaj pregleduje, ali je gib v

celoti izveden, vključenost motorja in morebitne napake sledenja. Izvajanje programa lahko

prekinemo s pritiskom na gumb Stop.

Slika 4.15: Korak za izvajanje gibov

Z blokom Load Target Position (slika 4.16) izberemo željeno pozicijo izbrane osi.

Slika 4.16: Blok za nastavitev željenega položaja

Page 35: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 22 -

Z blokom Start Motion (slika 4.17) izbrana os izvede pomik do prej določene pozicije.

Slika 4.17: Blok za začetek premika osi

4.6 Strojni vid

Program za prepoznavanje (slika 4.18) deluje na principu primerjanja vzorčne slike, ki se

nahaja na disku, z videom, ki ga zajemamo preko kamere. Ker kamera zajema črno-belo sliko,

mora biti vzorčna slika prav tako črno-bela. V prvem delu najprej začnemo sejo za zajemanje

slike in zgradimo pot ter preberemo vzorčno sliko, nato program s pomočjo geometrijskega

vzorca in vzorčne slike »naučimo«, kaj mora iskati v zajetem videu. Prepoznavo dosegamo z

iskanjem podobnih geometrijskih vzorcev na obeh slikah in je neodvisna od razmerja

velikosti in kota med zajeto in vzorčno sliko. V program je umeščena indikatorska svetilka

kot informacija, kdaj program prepoznava objekt. Ena izmed glavnih omejitev pri tem je, da

analiza videa zahteva relativno veliko količino računske moči in pomnilnika, zato smo se

odločili, da videa ne prikazujemo v realnem času na čelni plošči, ampak prikažemo sliko po

končani razpoznavi in s tem nekoliko razbremenimo računalnik.

Za iskani objekt oziroma triangulacijsko točko smo izbrali veliki X, ki smo ga s črno barvo

natisnili na list formata A4 in ga namestili na steno.

Slika 4.18: Blokovni diagram programa za prepoznavanje

Page 36: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 23 -

Slika 4.19: Čelna plošča programa za prepoznavanje

Slika 4.20: Iskani objekt oz. triangulacijska točka

Page 37: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 24 -

Blok IMAQdx Open Camera (slika 4.21) omogoča izbiro priključenih kamer in kreiranje seje

za zajem slike.

Slika 4.21: Blok za kreiranje seje za zajem slike

Z blokom IMAQdx Configure Grab (slika 4.22) konfiguriramo in pričnemo zajem slike.

Uporablja se pri visoki frekvenci zajemanja slike.

Slika 4.22: Blok za konfiguracijo zajemanja slike

Blok IMAQdx Grab (slika 4.23) pridobi najnovejšo sliko (okvir) in jo pošlje na izhod Image

Out. Če se formata slike in videa med seboj ne ujemata, blok spremeni tip slike ali videa v

ustrezen format.

Slika 4.23: Blok za pridobitev slike

Blok IMAQdx Get Image (slika 4.24) pridobi izbrano sliko (okvir) in jo pošlje v prikaz na

zaslon. Ker zajemamo video, to počnemo v neskončni zanki.

Slika 4.24: Blok za izris slike

Page 38: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 25 -

Blok IMAQdx Close Camera (slika 4.25) ustavi zajem, ki je v teku, sprosti uporabljena

sredstva in ustavi sejo.

Slika 4.25: Blok za zaustavitev seje za zajem slike

Blok IMAQ Create (slika 4.26) kreira začasno lokacijo v pomnilniku, ki bo uporabljena za

sliko. Imamo možnost izbiranja različnih tipov slike glede na globino barv, kot so črno-bela

(8-, 16-, 32-bitna), RGB (rdeča, zelena, modra in alfa kanal) in HSL (barvni odtenek,

nasičenost, svetlost in alfa kanal).

Slika 4.26: Blok za kreiranje slike

Blok IMAQ ReadFile (slika 4.27) prebere sliko. Podprtih je večina standardnih formatov

(BMP, TIFF, JPEG, PNG). Priključek File Path omogoča, da uporabnik s pomočjo

pogovornega okna izbere direktorij, v katerem se nahaja slika, ki jo bomo zaznavali (ime slike

Iks.JPG).

Slika 4.27: Blok za branje datoteke

Page 39: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 26 -

Blok IMAQ Learn Geometric Pattern (slika 4.28) kreira geometrični opis vzorčne slike, ki jo

želimo prepoznati med zajemanjem slike s kamere.

Slika 4.28: Blok za učenje geometričnega vzorca

Z blokom IMAQ Setup Match Geometric Pattern (slika 4.29) nastavimo parametre, ki bodo

uporabljeni pri analizi slike. Na priključku Range Settings imamo možnost nastavljanja

minimalne in maksimalne vrednosti za povečavo, rotacijo in senčenje.

Slika 4.29: Blok za nastavitve iskanja objekta

Z blokom IMAQ Match Geometric Pattern (slika 4.30) iščemo vzorce ali vzorčno sliko s

predhodno izbranimi nastavitvami v sliki, ki jo zajemamo. Imamo možnost izbire

minimalnega števila zadetkov, izpisa podatkov, kot so pozicija (koordinate zadetka v sliki),

kot (rotacijski kot med zadetkom in vzorčno sliko), merilo (razmerje velikosti zadetka in

vzorčne slike, izraženo v odstotkih), podobnost zadetka in vzorčne slike (od 0 do 1000) in

število zadetkov.

Slika 4.30: Blok za iskanje objekta

Page 40: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 27 -

4.7 Podprogram za obris prepoznanega objekta

Preden se slika pojavi na zaslonu, se izvede podprogram, ki obriše prepoznan objekt s

pomočjo pravokotnika (slika 4.31). To doseže tako, da s pomočjo koordinat prepoznanega

objekta in odmikov prevleče zajeto sliko s črtami, ki tvorijo pravokotnik, na sredino pa doda

krog. To je predvsem uporabno kot informacija, saj program prikaže, kateri del slike je

prepoznal.

Slika 4.31: Podprogram za obris objekta

Z blokom IMAQ Clear Overlay (slika 4.32) počistimo prevleko na zaslonu (črte, liki,

slike ...).

Slika 4.32: Blok za izbris prevleke

Blok IMAQ Overlay Oval (slika 4.33) uporabimo za prevleko v obliki ovala, kjer s pomočjo

odmikov od koordinat zadetka na zaslon izrišemo obris kroga.

Slika 4.33: Blok za prevleko v obliki ovala

Page 41: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 28 -

Blok IMAQ Overlay Line (slika 4.34) uporabimo za prevleko v obliki črte, kjer s pomočjo

odmikov od koordinat zadetka na zaslon izrišemo štiri črte, ki potekajo horizontalno in

vertikalno skozi središče kroga.

Slika 4.34: Blok za prevleko črte

Z blokom IMAQ Overlay Multiple Lines (slika 4.35) s pomočjo podatka o mejnem

pravokotniku, ki ga pridobimo iz gruče na izhodu bloka IMAQ Match Geometric Pattern,

prevlečemo okvir pravokotnika, ki obriše zadetek.

Slika 4.35: Blok za prevleko več črt

4.8 Meritev razdalje

Sprva je bil za izračun oddaljenosti objekta od robotskega sistema uporabljen Denavit-

Hartenbergov postopek, ker pa je dokaj zapleten, smo se odločili za bolj enostavno izvedbo.

Slednja temelji na triangulaciji, kjer moramo za izračun oddaljenosti (d) iskane točke od

vertikalne osi sistema poznati razdaljo med kamerama (l), ki je statična, in kota (α in β), ki ju

dobimo s pomočjo inkrementalnih dajalnikov, nameščenih na servomotorjih. S temi podatki

tvorimo navidezni trikotnik, nato pa s pomočjo kotnih funkcij izračunamo razdaljo (slika

4.36), ki jo predstavlja višina navideznega trikotnika (v).

Page 42: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 29 -

Slika 4.36: Navidezni trikotnik

(4.1)

Tovrstni izračun razdalje lahko uporabimo samo v primeru, če gre za vodoravno oddaljenost

opazovanega predmeta. Ker se tako naključje zgodi zelo redko, je potrebno vpeljati nove

enačbe, ki so neodvisne od oblike trikotnika. Ena izmed omejitev je tudi prekrivanje kamer,

kjer ena kamera prepreči drugi pogled. Do takega pojava pride pri velikih kotih α in β

(minimalno 20° in maksimalno 160°), vendar ga odpravimo s pravilno nastavitvijo iskalnih

gibov, ki smo jo opisali v poglavju 3.5. Slika 4.37 prikazuje blokovno shemo izračuna

razdalje.

Page 43: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 30 -

Slika 4.37: Korak meritev razdalje

Slika 4.38: Princip meritve razdalje

Page 44: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 31 -

Kota α in β dobimo, če trenutno pozicijo inkrementalnega dajalnika pomnožimo z enačbo 3.1

in s tem dobimo natančnost ±0,099°/pulz:

(4.2)

Z enačbo za vsoto notranjih kotov trikotnika izračunamo kot γ:

– (4.3)

Ko poznamo vse notranje kote, z naslednjo enačbo izračunamo dolžino stranic in b:

(4.4)

Za tem izrazimo višino trikotnika v:

(4.5)

Ko poznamo višino v in dolžino stranice b, lahko s pomočjo pitagorovega izreka izračunamo

dolžino x in lx:

√ (4.6)

(4.7)

Na koncu nam preostane le, da izračunamo oddaljenost triangulacijske točke od razpolovišča

tretje osi robota d in kot δ, ki ga oklepata daljica lx in višina v:

√ (4.8)

(4.9)

Z blokom Read Encoder Position (slika 4.39) preberemo trenutno pozicijo inkrementalnega

dajalnika.

Slika 4.39: Blok za branje pozicije inkrementalnega dajalnika

Page 45: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 32 -

4.9 Stop

Z blokom Stop Motion (slika 4.40) zaustavimo gib za izbrano os. To lahko naredimo na več

načinov, kot so pojemek (Decelerate to stop), takojšna ustavitev (Halt stop) in takojšna

ustavitev z izklopom napajanja elektromotorja (Kill stop).

Slika 4.40: Blok za ustavitev

Blok Motion Error Handler (slika 4.41) analizira in izpiše morebitne napake, do katerih je

prišlo med izvajanjem programa.

Slika 4.41: Blok za izpis napak

Page 46: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 33 -

Slika 4.42: Korak stop

Page 47: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 34 -

5 SKLEP

Prvi korak pri reševanju problema je bila seznanitev s sistemom robotskega stereo vida,

njegovimi sestavnimi deli ter vso pripadajočo elektronsko opremo. Sledilo je spoznavanje

krmilnika NI PCI-7354, ki smo ga testirali s pomočjo programa MAX. Ko smo se dodobra

seznanili s strojnim delom sistema, je sledilo učenje programskega paketa LabView,

predvsem vstavek za krmiljenje motorjev NI Motion ter vstavek za zajem in analizo videa NI

Vision. Za tem smo pričeli z izdelavo aplikacije za vodenje sistema, pri kateri program MAX

ni bil vključen. Odločili smo se za modularno zgradbo aplikacije, pri kateri smo uporabili

podprograme, in za način programiranja v obliki diagrama stanj.

Prvi preizkusi programa so pokazali napako pri določanju referenčne lege horizontalne osi,

razlog za to so bili preveliki vztrajnostni momenti. Načrtovanje aplikacije smo nadaljevali z

izdelavo programa za razpoznavanje objekta, ki deluje na principu primerjanja vzorčne slike s

sliko, zajeto preko kamere. Med testiranjem programa za razpoznavanje smo parametre

nastavili tako, da je zaznava neodvisna od kota in razmerja velikosti med zajeto in referenčno

sliko. Programu za razpoznavo smo dodali podprogram, ki na zaslonu obriše zaznan objekt,

kar nam je v pomoč kot informacija, kateri del slike je program prepoznal.

Sledila implementacija strojnega vida v glavni program, ki smo ga spremenili tako, da so se

iskalni gibi izvajali samodejno. V glavni program smo dodali korak, v katerem smo s

pomočjo kotov, pridobljenih s pomočjo inkrementalnih dajalnikov, nameščenih na

servomotorjih, kotnih funkcij in znane razdalje med kamerama izračunali oddaljenost do

zaznanega objekta.

Na koncu je sledilo testiranje, med katerim smo naleteli na drastično upočasnitev delovanja

računalnika, saj smo med izvajanjem gibov zajemali, analizirali in prikazovali slike, zajete iz

dveh kamer. V veliki večini primerov je prišlo do nenadne zrušitve celotnega programa

LabView, tako da smo morali program prisilno zaustaviti s pomočjo upravitelja opravil, ko pa

je program deloval, pa je porabil več minut za izvedbo, saj analiza in izris slik ni bila mogoča

v tako kratkem času. Na zaslonu so se prikazovale posamezne slike, namesto tekoči video. Da

Page 48: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 35 -

bi računalnik razbremenili in s tem sploh omogočili nemoteno delovanje, smo se odločili, da

slike izrišemo, ko se celoten program uspešno zaključi. Nekatere izboljšave, ki bi pripomogle

k boljšemu delovanju celotnega sistema, so: menjava računalnika, ki ima hitrejši procesor in

večjo količino pomnilnika, kar bi pripomoglo k hitrejšemu izvajanju analize slik, in menjava

hitrejših servomotorjev na vertikalni in horizontalni osi za izboljšanje odzivov.

Page 49: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 36 -

6 VIRI

[1] National Instruments, LabView Core 2 – Course Manual, National Instruments, 2009.

[2] National Instruments, Getting started with NI-Motion. Dostopno na WWW:

http://www.ni.com/pdf/manuals/373329d.pdf [10. 5. 2012].

[3] National Instruments, Motion control – NI 7350 user manual. Dostopno na WWW:

http://www.ni.com/pdf/manuals/371060b.pdf [10. 5. 2012].

[4] National Instruments, Motion control – NI-motion user manual. Dostopno na WWW:

http://www.ni.com/pdf/manuals/371242c.pdf [17. 5. 2012].

[5] National Instruments, NI Vision. Dostopno na WWW:

http://www.ni.com/pdf/manuals/371007b.pdf [19. 5. 2012].

[6] National Instruments, NI-IMAQ VI Reference Help. Dostopno na WWW:

http://www.ni.com/pdf/manuals/370162l.zip [20. 5. 2012].

[7] Wikipedia, IEEE 1394. Dostopno na WWW:

http://en.wikipedia.org/wiki/IEEE_1394. [22.5.2012]

[8] Gergič, B.: Zapiski s predavanj Računalniško podprti merilni sistemi, 2010/2011

Page 50: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 37 -

7 PRILOGE

7.1 Kazalo slik

Slika 2.1: Podobnost delovanja robotskega sistema s človeško glavo ....................................... 2

Slika 2.2: Prikaz človeškega vida ............................................................................................... 3

Slika 2.3: Ogrodje sistema ......................................................................................................... 4

Slika 2.4: Servomotor z zobniškim prenosom ............................................................................. 5

Slika 2.5: Enosmerni servomotor ............................................................................................... 6

Slika 2.6: Vezje za regulacijo servomotorjev in priklop inkrementalnih dajalnikov.................. 6

Slika 2.7: Računalniški napajalnik ............................................................................................. 7

Slika 2.8: Krmilnik za vodenje sistema NI PCI-7354 ................................................................. 8

Slika 2.9: Priključek FireWire .................................................................................................... 9

Slika 2.10: Kamera Fire-i ........................................................................................................... 9

Slika 3.1: Humanoidni robot Justin .......................................................................................... 10

Slika 3.2: Prepoznava vzorcev.................................................................................................. 12

Slika 3.3: Detekcija robov ........................................................................................................ 12

Slika 4.1: Čelna plošča ............................................................................................................. 14

Slika 4.2: Korak parametrizacija ............................................................................................. 15

Slika 4.3: Blok za inicializacijo krmilnika ................................................................................ 15

Slika 4.4: Blok za izbiro hitrosti ............................................................................................... 16

Slika 4.5: Blok za izbiro pospeškov/pojemkov .......................................................................... 16

Slika 4.6: Blok za določitev parametra za modifikacijo hitrostnega profila ............................ 16

Slika 4.7: Grafični prikaz večanja parametra S-krivulja časa ................................................. 17

Slika 4.8: Blok za izbiro načina delovanja ............................................................................... 17

Slika 4.9: Korak inicializacija .................................................................................................. 18

Slika 4.10: Podprogram za iskanje referenčne lege ................................................................. 19

Slika 4.11: Blok za iskanje referenčnega položaja ................................................................... 19

Slika 4.12: Blok za preverjanje statusa iskanja reference........................................................ 19

Slika 4.13: Blok o podatkih stanja osi ...................................................................................... 20

Slika 4.14: Blok za ponastavitev pozicije inkrementalnega dajalnika ..................................... 20

Slika 4.15: Korak za izvajanje gibov ........................................................................................ 21

Page 51: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 38 -

Slika 4.16: Blok za nastavitev željenega položaja .................................................................... 21

Slika 4.17: Blok za začetek premika osi ................................................................................... 22

Slika 4.18: Blokovni diagram programa za prepoznavanje ..................................................... 22

Slika 4.19: Čelna plošča programa za prepoznavanje ............................................................. 23

Slika 4.20: Iskani objekt oz. triangulacijska točka ................................................................... 23

Slika 4.21: Blok za kreiranje seje za zajem slike ...................................................................... 24

Slika 4.22: Blok za konfiguracijo zajemanja slike .................................................................... 24

Slika 4.23: Blok za pridobitev slike .......................................................................................... 24

Slika 4.24: Blok za izris slike .................................................................................................... 24

Slika 4.25: Blok za zaustavitev seje za zajem slike ................................................................... 25

Slika 4.26: Blok za kreiranje slike ............................................................................................ 25

Slika 4.27: Blok za branje datoteke .......................................................................................... 25

Slika 4.28: Blok za učenje geometričnega vzorca .................................................................... 26

Slika 4.29: Blok za nastavitve iskanja objekta ......................................................................... 26

Slika 4.30: Blok za iskanje objekta ........................................................................................... 26

Slika 4.31: Podprogram za obris objekta ................................................................................. 27

Slika 4.32: Blok za izbris prevleke ........................................................................................... 27

Slika 4.33: Blok za prevleko v obliki ovala .............................................................................. 27

Slika 4.34: Blok za prevleko črte .............................................................................................. 28

Slika 4.35: Blok za prevleko več črt ......................................................................................... 28

Slika 4.36: Navidezni trikotnik ................................................................................................. 29

Slika 4.37: Korak meritev razdalje ........................................................................................... 30

Slika 4.38: Princip meritve razdalje ......................................................................................... 30

Slika 4.39: Blok za branje pozicije inkrementalnega dajalnika ............................................... 31

Slika 4.40: Blok za ustavitev ..................................................................................................... 32

Slika 4.41: Blok za izpis napak ................................................................................................. 32

Slika 4.42: Korak stop .............................................................................................................. 33

Page 52: STEREO VID Z MERITVIJO RAZDALJE DO OBJEKTAIII I Z J A V A Podpisani Gašper TRSTENJAK izjavljam, da: je bilo predloženo diplomsko delo opravljeno samostojno pod mentorstvom red. prof

Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo

- 39 -

7.2 Naslov študenta

Gašper Trstenjak

Alpska c. 17

4260 Bled

e-pošta: [email protected]

7.3 Kratek življenjepis

Rojen: 7. 9. 1987, Jesenice

Šolanje: Osnovna šola Josipa Plemlja Bled

Tehniški šolski center Kranj, srednja šola, smer računalništvo

Tehniški šolski center Kranj, višja šola, smer mehatronika

Fakulteta za strojništvo, Maribor

Program: Mehatronika UN