• Rezultati Niso Bili Najdeni

Serijsko sporočilo ob pritisku na tipko za nastavitev hitrosti

Trenutno grafični vmesnik ne obsega možnosti za spremembo pospeška koračnih motorjev.

Vnosna polja za vnos hitrosti v tem segmentu se uporabljajo tudi za posredovanje hitrosti pri zaprto-zančnem načinu, torej se ob pritisku na tipko »Izvedi pomik« posredujejo tudi trenutne vrednosti v vnosnih poljih, te tudi diktirajo zaprto-zančni način bo uporabljen.

Segment 5 grafičnega vmesnika

Peti segment služi le povratni informaciji o trenutnem kotu upogiba. To pomeni, da je v uporabi le v zaprto-zančnem načinu. Segment je prikazan na sliki 3.34.

Metodologija raziskave

Slika 3.34: Prikaz petega segmenta skupaj s prikazom trenutnega zajema na kameri in linij za izračun kota.

Ta prikazuje izmerjeni kot na eno decimalno mesto natančno.

Segment 6 grafičnega vmesnika

Segment 6 služi kot statusno okence, za posredovanje informacij nazaj uporabniku, ob uporabi grafičnega vmesnika oziroma naprave. Te informacije služijo predvsem za boljšo uporabniško izkušnjo, saj je lahko uporabnik v dvomu, ali je neko dejanje bilo zabeleženo ali ne. Segment je prikazan na sliki 3.35.

Slika 3.35: Prikaz šestega segmenta - statusnega okenca, za povratno informacijo uporabniku.

Povratna informacije prikazana na sliki 3.35 se pojavi ob postavitvi točk za homografijo (za izvedbo projektivne preslikave – več o tem v poglavju 3.4.1), ob pritisku na tipko »Izvedi pomik«, »Nastavitev« ipd.

Segment 7 grafičnega vmesnika

Sedmi segment je namenjen hitri nastavitvi najkrajše dolžine, ki jo algoritem za razpoznavo črt še razpozna kot črto. Ta segment vsebuje drsnik, in sicer od dolžine 50 do dolžine 300 slikovnih pik. Sprememba tega drsinka se takoj pozna na delovanju algoritma. Segment je prikazan na sliki 3.36 .

Metodologija raziskave

Slika 3.36: Prikaz sedmega segmenta za določitev najkrajše dolžine črte.

Namen tega drsnika je, da lahko uporabnik hitro določi optimalno dolžino za prepoznavanje črt. Preko uporabe, se je izkazalo, da je optimalna dolžina lahko odvisna od materiala in dolžine, zato je smiselno, da se jo lahko hitro spremeni, in tako vplivamo na pravilen izračun kota upogiba.

Segment 8 grafičnega vmesnika

Segment vsebuje le eno tipko. Ta upravlja prikaz zaslona kamere. Ob zagonu grafičnega vmesnika, kamera še ni v uporabi, dokler ni pritisnjena tipka »Start video«. S pritiskom se požene kamera in hkrati tudi izris na zaslonu oziroma uporabniškem vmesniku. Napis tipke se nato spremeni v »Camera is live«. S ponovnim pritiskom na tipko, se zajemanje s kamero zaustavi. Segment je prikazan na sliki 3.37.

Slika 3.37: Prikaz segmenta za upravljanje s kamero (zgoraj - pred zagonom kamere, spodaj – po zagonu kamere).

Segment 9 grafičnega vmesnika

Deveti segment vsebuje zaslon trenutnega zajema na kameri. Služi predstavi trenutnega zajema, tako da uporabnik lahko vidi in presodi ali je ta ustrezen ter, da lahko pri zaprto-zančnem načinu ovrednoti izračun kota upogiba. Segment je prikazan na sliki 3.38.

Metodologija raziskave

Slika 3.38: Prikaz devetega segmenta.

3.4 Delovanje algoritmov

V tem poglavju bo predstavljeno delovanje algoritmov, ki skrbijo za ustrezno obdelavo slike zajete s kamero, za namene izračuna trenutnega kota upogiba pločevine. Posebna pozornost je namenjena tem algoritmom, saj predstavljajo večinski del delovanja programov, prav tako pa je delovanje v zaprti zanki najbolj zahteven način delovanja, ki je uporabljen v sistemu.

Kakor je bilo predstavljeno v poglavju 3.3.1, poteka delovanje algoritmov za obdelavo in razgradnjo slike izključno v posamezni niti imenovani grab, ki služi temu, da je delovanje algoritmov za obdelavo slik, ločeno od delovanja grafičnega vmesnika, za voljo boljše odzivnosti in uporabniške izkušnje, saj je postopek obdelave slik procesorsko zahteven.

3.4.1 Homografija

Prvi postopek obdelave slike, ki je nujen za pravilno interpretiranje slike in izvedbo meritve kota, je postopek homografije. To je postopek projektivne preslikave slike med dvema ravninama. Ta postopek je nujen zato, ker je ravnina, na kateri je senzor kamere, ni vzporedna ravnini, v kateri se nahaja kontura preizkušanca, ki nam služi za izvedbo meritve kota (slika 3.39).

Metodologija raziskave

Slika 3.39: Prikaz razlike med merilno (rdečo) in merjeno ravnino (modra).

Za pravilno merjenje kota, bi morali normali omenjenih ravnin biti vzporedni, vendar zaradi konstrukcije naprave, saj konstrukcija geometrijsko ovira pogled na preizkušanec. Zaradi tega je kamera postavljena pod kotom in gleda navzdol na konstrukcijo.

Ravno tako predstavlja problem, da se preizkušanec tekom preoblikovanja pomika v navpični smeri. Za namen prikaza problema, si obliko preizkušanca aproksimirajmo s parabolo. Tekom preoblikovanja se teme omenjene parabole pomika v navpični smeri, in zaradi tega razdalja med temenom in kamero ni konstantna. To pomeni, da tudi neka trivialna geometrijska rešitev ne pride v poštev, saj bi za tak model morali v vsakem trenutku poznati razdaljo med senzorjem kamere in temenom parabole. Ker to ni možno v trenutni rešitvi, poleg tega pa je bila želja to rešiti s pomočjo algoritmov za obdelavo slike, je bila uporabljena homografija.

Homografija je v osnovi zelo preprost postopek, ki zajema preslikavo ene ravnine v drugo.

Gre torej za transformacije med dvema ravninama do mere natančno. V splošnem lahko

kjer je H homografska 3x3 matrika, ki vsebuje 8 prostostnih stopenj, saj se člen h33privzame, da je enak nič. Členi v homografski matriki skrbijo za projektivno preslikavo med dvema ravninama. Koordinati x' in y' sta koordinati na sliki, ki jo zajame kamera, koordinati x in y pa sta željeni koordinati, z znano lokacijo na izhodni sliki [12]. Sistem enačb rešujemo tako, da homogene koordinate normaliziramo.

𝑥 =00𝑥 + ℎ01𝑦 + ℎ02

20𝑥 + ℎ21𝑦 + ℎ22 (3.2)

Metodologija raziskave

y= 10𝑥 + ℎ11𝑦 + ℎ12

20𝑥 + ℎ21𝑦 + ℎ22 (3.3)

V splošnem pa predpostavka, da je člen h33 enak nič lahko napačna. Zato se v splošnem lahko rešimo problem rešujemo z metodo singularnega razcepa matrike [13].

S homografsko preslikavo tako pretvorimo sliko, ki je zajeta s kamero v eni ravnini in jo priredimo s projektivno preslikavo na željeno ravnino, ki je vzporedna z ravnino, na kateri se nahaja kontura preoblikovanca. Na ta način lahko nato izmerimo kot, kakor da bi kamera bila postavljena pravokotno na ravnino merjenja. V praksi to izgleda tako, da so na konstrukciji označene lokacije točk, za katere poznamo njihove realne koordinate. Nato na sliki, ki je zajeta s kamero in prikazana na grafičnem vmesniku z dvoklikom izberemo te točke in takrat se izračuna homografija oziroma projektivna preslikava, s klicem na funkcijo findHomography() iz programske knjižice OpenCV. Ta proces se izvede le enkrat, nato vse sledeče slike le uporabijo že določeno homografsko matriko in jo aplicirajo na vsako sliko.

Algoritem v programski knjižici OpenCV:

cv.findHomography( srcPoints, dstPoints[, method[, ransacReprojThreshold[, mask[, maxIters[, confidence]]]]] )