stereo vid z meritvijo razdalje do objektaiii i z j a v a podpisani gašper trstenjak izjavljam, da:...
TRANSCRIPT
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
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
II
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: ___________________________
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.
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.
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.
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
VIII
7.2 Naslov študenta .................................................................................................. 39
7.3 Kratek življenjepis .............................................................................................. 39
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
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
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.
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.
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.
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)
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.
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
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.
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.
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
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
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.
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
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.
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
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
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
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.
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.
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
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
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
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
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
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
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
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
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
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).
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.
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
- 30 -
Slika 4.37: Korak meritev razdalje
Slika 4.38: Princip meritve razdalje
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
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
Univerza v Mariboru – Fakulteta za strojništvo Diplomsko delo
- 33 -
Slika 4.42: Korak stop
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
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.
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
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
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
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