RAČUNALNIŠKA PODPORA ROBOTSKI SENZORIKI

Rozměr: px
Začít zobrazení ze stránky:

Download "RAČUNALNIŠKA PODPORA ROBOTSKI SENZORIKI"

Transkript

1 UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Urban Vidovič RAČUNALNIŠKA PODPORA ROBOTSKI SENZORIKI Diplomska naloga Maribor, junij 2009

2

3 I UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO 2000 Maribor, Smetanova ul. 17 Diplomska naloga univerzitetnega študijskega programa RAČUNALNIŠKA PODPORA ROBOTSKI SENZORIKI Študent: Urban VIDOVIČ Študijski program: univerzitetni, Računalništvo in informatika Smer: Programska oprema Mentor: Somentor: izred. prof. dr. Peter CAFUTA asist. dr. Boris CURK Maribor, junij 2009

4 II

5 III ZAHVALA Zahvaljujem se mentorju, gospodu Petru Cafuti, in somentorju, gospodu Borisu Curku, za pomoč in vodenje pri opravljanju diplomske naloge. Prav tako se zahvaljujem mentorju v podjetju Roboti c. s., d. o. o., gospodu Borisu Cipotu, za pomoč pri izdelavi programskega dela projekta in vsem drugim sodelavcem za pomoč pri izdelavi celotnega projekta Senzorska oprema. Posebna zahvala velja staršem, ki so mi omogočili študij in me ves čas podpirali.

6 IV RAČUNALNIŠKA PODPORA ROBOTSKI SENZORIKI Ključne besede: robotska senzorika, Senzorska oprema, IR senzorji, električno vezje, Senzorski pas, avtonomija robota UDK: : (043.2) Povzetek V nalogi bomo predstavili računalniško podporo robotski senzoriki ter izdelek imenovan Senzorska oprema sestavljen iz treh komponent: IR Sharpovih senzorjev, električnega vezja ter uporabniškega vmesnika imenovanega Senzorski pas. Pregledali smo, kako se uporablja robotska senzorika in predstavili problem pravilne namestitve senzorjev tako, da so podatki, ki jih robot dobi s pomočjo senzorjev, informativni. Največ poudarka bo namenjenega predstavitvi funkcij in uporabi aplikacije Senzorskega pasu. Predstavili bomo, kako uporaba aplikacije pripomore k pravilni namestitvi senzorike na robota in demonstrirali njeno uporabo s praktičnim testom zaznave senzorjev z gibanjem robota po sobi z ovirami. Na podlagi testa smo ugotovili, da je robotska senzorika ključna za avtonomijo robota.

7 V COMPUTER SUPPORT FOR ROBOT SENSORICS Key words: robot sensorics, Sensor equipment, IR sensors, electric circuit, Sensor belt, robot autonomy UDK: : (043.2) Abstract In this diploma work we will present computer support for robot sensorics and the product called Sensor equipment, which is composed out of three components: IR Sharp sensors, electrical circuit and user interface called Sensor belt. We rewieved the use of robot sensoric and introduced the problem of proper sensor placing so that information, required by the robot, are informative. The main strees is on the presentation of functions and the use of application Sensor belt. We will present how the use of application helps to place sensorics on the robot in the right way. We will demonstrate the use of application with practical test of sensor perception during the drive of the robot in the room with obstacles. Based on that test we concluded that the robot sensorics is the key to robot autonomy.

8 VI VSEBINA VSEBINA... VI SEZNAM SLIK... VII SEZNAM PREGLEDNIC... VIII UPORABLJENI SIMBOLI... IX UPORABLJENE KRATICE... X 1. UVOD UPORABA SENZORIKE V ROBOTIKI Uporaba Senzorske opreme Delovanje aplikacije Senzorski pas INFRARDEČI SENZORJI SENZORSKE OPREME Predstavitev infrardečega valovanja in infrardečih senzorjev Uporabljeni senzorji Sharp GP2D Sharp GP2Y0A VEZJE SENZORSKE OPREME Lastnosti vezja RS-232 komunikacija GRAFIČNI VMESNIK SENZORSKE OPREME Razvijalno okolje Visual Studio.NET in programski jezik C# Sistemske in strojne zahteve aplikacije Senzorski pas Zgradba aplikacije Uporaba in lastnosti grafične knjižnice OpenGL Kalibriranje senzorjev na uporabniškem vmesniku Branje, prikaz in analiza podatkov Senzorskega pasu SKLEP VIRI, LITERATURA PRILOGI... 68

9 VII SEZNAM SLIK Slika 1: Model robotske zaznave... 4 Slika 2: Grafična predstavitev uporabe projekta Senzorska oprema... 6 Slika 3: Kreiranje poljubnega modela robota... 8 Slika 4: Skreiran robot z dodanimi senzorji... 9 Slika 5: Vračanje podatkov senzorjev Slika 6: Namestitev senzorjev na robota Spartesa Slika 7: Elektromagnetni spekter Slika 8: Različni koti žarkov z različnimi razdaljami Slika 9: Slika vezja Slika 10: Modelna komponenta Slika 11: Končan model robota Spartesa Slika 12: Senzorska komponenta Slika 13: Podroben pogled na senzorsko komponento Slika 14: Prikaz podatkov, ki jih pošiljajo senzorji Slika 15: Blokovni diagram GL Slika 16: Zbiranje in procesiranje primitivov Slika 17: Transformacija verteksov Slika 18: Procesiranje barv Slika 19: Različne vrednosti odsevne, razpršene in ambientne svetlobe Slika 20: Izbira kalibracije Slika 21: Kalibracijski vmesnik Slika 22: Izrisovanje kotov senzorja Slika 23: Navidezni snopi dosega senzorjev Slika 24: Preizkus pravilne namestitve senzorjev Slika 25: Zaznava senzorjev pri testu senzorjev z gibanjem... 63

10 VIII SEZNAM PREGLEDNIC Tabela 1: Funkcije za vstavljanje linije Tabela 2: Funkcije za kreiranje končnega modela Tabela 3: Funkcije za izris senzorjev Tabela 4: Funkcije za spreminjanje senzorjevih lastnosti Tabela 5: Funkcije za prikaz podatkov, ki jih pošljejo senzorji Tabela 6: Ujemajoče se pripone znakov k GL tipom Tabela 7: GL podatkovni tipi Tabela 8: Pretvorbe komponent Tabela 9: Povzetek osvetlitvenih parametrov, uporabljenih v aplikaciji Tabela 10: Korespondenca med simboli in imeni svetlobnih parametrov, uporabljenih v aplikaciji Senzorski pas... 52

11 IX UPORABLJENI SIMBOLI Int signirano 32. bitno celo število Uint nesignirano 32. bitno celo število Float 32. bitno število realno število Double 64. bitno realno število Short signirano 16. bitno celo število Ushort nesignirano 16. bitno celo število Byte sekvenca 8. bitov procesirana kot samostojna enota informacije (dovolj za predstavitev enega znaka ali števila) Ubyte nesignirana sekvenca 8. bitov procesirana kot samostojna enota informacije Char znak Enum oštevilčenje posebnega tipa števila, sestavljenega iz določenega seznama konstant inmenovanega oštevičen seznam a cm d ambientna barva materiala cm razpršena barva materiala s cm odsevna barva materiala e cm s rm a m oddajna barva materiala odsevni eksponent barvni indeks ambiente svetlobe d m barvni indeks razpršene svetlobe s m barvni indeks odsevne svetlobe a cli d cli s cli ambienta svetloba svetlobnega izvora razpršena svetloba svetlobnega izvora odsevna svetloba svetlobnega izvora P pli položaj svetlobnega izvora

12 X UPORABLJENE KRATICE RS-232 Priporočen standard 232 (angl. Recommended standard 232) IR Infra rdeče CCD Naprava za sprejemanje signalov (angl. Charged coupled device) MHz Mega herci GHz Giga herci THz Tera herci LED Dioda, ki oddaja svetlobo (angl. Light emitting diode) DTE Podatkovna terminalna naprava (angl. Data terminal equipment) DCE Končna podatkovna naprava (angl. Data circuit terminating equipment) USB Univerzalen seriski nosilec (angl. Universal serial bus) OpenGL Odprta grafična knjižnica (angl. Open Graphics library) C# C - sharp ECMA Evropsko združenje računalniških proizvajalcev (angl. European Computer Manufacturers Association) ISO Mednarodna organizacija za standardnizacijo (angl. International Organization for Standardization)

13 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 1 1. UVOD V diplomski nalogi obravnavamo področje Računalniška podpora robotski senzoriki. Predstavili bomo projekt z zaščitenim imenom Senzorska oprema v celoti ustvarjen na firmi Roboti c.s. d.o.o., sestavljen iz več komponent. Celoten projekt namreč zajema senzorje, elektronsko vezje ter uporabniški vmesnik. Vsaka od teh komponent bo podrobno opisana, saj se za lažje razumevanje delovanja celotnega projekta moramo seznaniti z lastnostmi in delovanjem vseh komponent. Poudarek pa bo seveda na uporabniškem vmesniku imenovanem Senzorski pas, torej na računalniški podpori robotske senzorike. Še pred podrobnim opisom komponent pa bomo, v drugem poglavju, najprej predstavili uporabo senzorike v robotiki, kateri bo sledila predstavitev celotnega projekta. Seznanili se bomo s problematikami, s katerimi smo se soočili na začetku izvedbe in med izvajanjem samega projekta. Sledil bo opis vseh komponent. V tretjem poglavju sledi opis senzorjev, ki smo jih uporabili pri projektu Senzorska oprema. V četrtem poglavju si bomo podrobno pogledali delovanje in lastnosti vezja. V petem poglavju bomo predstavili programski vmesnik Senzorski pas, njegove specifikacije, kako se uporablja, čemu služi in kakšni so vrnjeni podatki. Opravili bomo tudi test pravilne namestitve senzorjev saj bomo vozili robota po sobi z ovirami in analizirali dobljene podatke. Namen projekta Senzorska oprema je bil narediti izdelek, ki bo zanimal predvsem tiste, ki se z robotiko ljubiteljsko ukvarjajo in želijo izdelati svojega robota z določenim obnašanjem, nimajo pa vseh potrebnih komponent za uresničitev svojega projekta. Kot smo že omenili, ima projekt Senzorska oprema tri komponente: senzorje, elektronsko vezje in uporabniški vmesnik. Te tri komponente se lahko uporabijo ločeno ali skupaj. Tako bi lahko programerju brez elektrotehničnega znanja omogočili izdelavo robotskega projekta na področju senzorike, saj bi si sam lahko izdelal aplikacijo, ki komunicira z vezjem. Na drugi strani bi lahko elektronik uporabil aplikacijo Senzorskega pasu in izdelal svoje vezje. Spet nekdo drug pa bi morda uporabil vse komponente, tako elektronsko vezje kot

14 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 2 programski vmesnik, in nadgradil ta projekt z neko drugo aplikacijo ali vezjem, kar je v bližnji prihodnosti tudi cilj podjetja Roboti. Robotske meritve in spremenljivke njegovega okolja so podlaga za uspešno delovanje robota. Danes ima večina industrijskih robotov omejeno delovanje prav zaradi pomanjkljive senzorike. Tako sicer točno vedo, kje se nek objekt, ki mora biti obdelan, nahaja. Toda če se spremeni lokacija objekta, ga roboti več ne zaznajo in v njihovem delovanju pride do napake. Pravilne položaje objektov, namenjenih obdelavi, lahko zagotovimo z uporabo dodatne opreme ali pa jih določimo ročno. Vendar je prvi način drag, drugi pa je lahko dolgotrajen in nadležen. Da lahko roboti delujejo brez teh omejitev se mora uporabiti polje ali niz senzorjev. S senzorji se poveča prilagodljivost robotov, znižajo se pa tudi stroški, saj postane uporaba dodatne opreme nesmiselna. S povečanjem števila senzorjev pa se poveča tudi učinkovitost in produktivnost robotov. Programiranje robotov za nove ali spremenjene naloge zahteva čas. Senzorji olajšajo določanje položaja komponent in s tem zmanjšajo čas programiranja. V robotiki se senzorji uporabljajo v naslednje namene: merjenje parametrov za robotizirane procese, določanje položaja objektov, korekcija napak v samih robotskih modelih in njihovem okolju, zaznavanje in izogibanje napačnih situacij, zaznavanje in izogibanje konfliktov, nadzor vpliva okolja na delovanje robota (npr. sile pri gibanju), spremljanje okoljskih sprememb, ki lahko vplivajo na izvedbo naloge (npr. sprememba temperature, položaj predmetov,...), nadzor nad rezultati procesov. Pri vseh zgoraj naštetih področjih je nujna uporaba senzorike, da lahko robot deluje v nekem okolju, v katerem se mora odzivati na spremembe. Da pa lahko te spremembe spremljamo, analiziramo in glede na njih izboljšujemo robotovo senzoriko, potrebujemo dobro računalniško podporo oziroma uporabniški vmesnik, s pomočjo katerega lahko odpravimo morebitne pomanjkljivosti ali napake.

15 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 3 Zato si bomo v naslednjem poglavju ogledali kako deluje robotska senzorika, kakšne tipe senzorjev poznamo, na kakšne probleme lahko naletimo in kako se rešujejo. Sledila bo predstavitev uporabe senzorske opreme in pregled uporabe ručunalniške aplikacije Senzorskega pasu.

16 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 4 2. UPORABA SENZORIKE V ROBOTIKI Slika 1: Model robotske zaznave Ne glede na to kakšna strojna in programska oprema se uporablja, je zaznavanje zunanjega sveta robotov s senzorji vedno možno predstaviti kot kaže zgornja slika. Senzor je naprava, ki zaznava in meri nekatere značilnosti okolja. Namesto izraza senzor se velikokrat uporabi tudi izraz pretvornik. Pretvornik je mehanizem oziroma element senzorja, ki pretvarja energijo, ki se meri, v drugo obliko. Senzor prejme to energijo in pošlje signal na prikazovalnik ali računalnik. Uporablja svoj pretvornik, da spremeni prejet vhodni signal (zvok, svetlobo, pritisk, temperaturo, itd.) v analogno ali digitalno obliko, ki je nato uporabna za robota. V reakcionarnem robotu 1 je zaznavanje senzorjev interpretirano z percepcijsko shemo, ki povzame najbolj pomembne podatke iz okolja. Te podatke nato uporabi motorna shema, ki privede do neke akcije oziroma delovanja robota. 1 Robot, ki se glede na zaznavanje senzorjev, lahko ustrezno odziva

17 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 5 Senzor robota je sestavljen iz pretvornika in električnega vezja. Pretvornik je naprava, ki fizikalne ali kemijske vrednosti pretvori v električne signale. Npr. merilec napetosti pretvori napetost v električni signal, solarna celica pretvarja svetlobo v električne signale itd. Električni signali so lahko napetost, tok, frekvenca, zaporedje impulzov, fazni premik. Ponavadi mora biti signal, ki ga posreduje pretvornik ojačan, preden je pripravljen za nadaljno uporabo. Prav tako je veliko pretvornikov nelinearnih, zato mora biti signal lineariziran. Kot bomo izvedeli v nadaljevanju je bila potrebna linearizacija signala tudi pri senzorjih uporabljenih v Senzorski opremi. Izhod senzorja, ki ga proizvede električno vezje senzorja, je električni signal (analogen, digitalen, frekvenca ali pulz), ki je sorazmeren izmerjeni veličini. Pri preprostih senzorjih so lahko izhodni signali vrednosti, pri kompleksnih senzorjih pa so lahko matrike digitalnih vrednosti kot npr. neko polje vrednosti ali časovna sekvenca analognih vrednosti (npr. video signal). Pri projetku Senzorske opreme smo uporabili prve, torej preproste senzorje. Da dobimo informacijo iz senzorja v računalnik za analizo, se uporabi računalniški vmesnik. Tip vmesnika je odvisen od lastnosti signala. Percepcija v nekem robotskem sistemu ima dve vlogi: da sproži neko obnašanje, da nudi podporo ali pa vodi delovanje robota. Vsako zaznavanje je odvisno od delovanja robota. Na zaznavanje senzorjev lahko vpliva tudi delovanje robota, hkrati pa lahko robot neodvisno od delovanja uporablja prejete podatke. Razpoznavanje ne pomeni isto kot sposobnost reagiranja. Da robot ustrezno deluje v teoriji mora imeti zanesljivo zaznavo, saj je od le te odvisno delovanje robota. Da robot ustrezno deluje v praksi, mora imeti dobro percepcijsko strojno in programsko opremo, ki se hitro posodablja. Senzorje lahko razvrstimo v dve skupini, na pasivne in aktivne senzorje. Pasivni senzorji se zanašajo na značilnosti okolja, da lahko priskrbijo uporabno sredstvo za opazovanje, npr. fotoaparat potrebuje določeno količino ambientne svetlobe, da lahko posreduje uporabno sliko. Aktivni senzorji pa oddajajo energijo v okolje, s tem pa jo spremenijo ali okrepijo. Sonar oddaja zvok, prejme odmev in meri čas med poslanim

18 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 6 zvokom in prejetim odmevom. Naprava za oddajanje rentgenskih žarkov oddaja rentgentske žarke in na ta način tvori sliko različnih tkiv. Sam fotoaparat je pasivna naprava, fotoaparat s bliskavico pa je aktivna naprava. Besedna zveza aktivni senzor ne pomeni enako kot aktivno zaznavanje. Aktivno zaznavanje vključuje sistem za uporabo efektorja, ki lahko dinamično nastavi senzor za»boljši vpogled«. Fotoaparat z bliskavico je aktivni senzor, kamera na gibljivi glavi, ki uporablja algoritme za nastavitev boljšega položaja, pa ima aktivno zaznavo. 2.1 Uporaba Senzorske opreme Slika 2: Grafična predstavitev uporabe projekta Senzorska oprema Slika 2 nam nazorno predstavlja kako se celoten projekt Senzorske opreme lahko uporabi in kako deluje. Torej, imeti moramo vezje Senzorske opreme (priključeno na neko napajanje), ki ga pritrdimo na svojega robota. Na to vezje vstavimo poljubno število

19 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 7 senzorjev (maksimalno število senzorjev je osem). Vezje Senzorske opreme povežemo z računalnikom preko RS-232 kabla ali brezžičnega modula z aplikacijo Senzorskega pasu, ki je naložena na našem računalniku. Če smo vse te korake pravilno opravili, lahko začnemo uporabljati uporabniški vmesnik, katerega delovanje bomo opisali v naslednjem podpoglavju. V robotski senzoriki se poraja problem dobre postavitve senzorjev. Senzorji morajo biti postavljeni tako, da bo robot dobil maksimalno uporaben podatek, ki ga bo potem uporabil kot koristno informacijo. Če bo ta podatek napačen ali nenatančen, bo tudi informacija neuporabna. Tudi na podjetju Roboti c.s. d.o.o. smo si zadali cilj, raziskati ta problem. V ta namen smo razvili prototipni model varnostnega robota, ki smo ga poimenovali Spartes. Naša želja je, da bi bil Spartes kar se da avtonomen. Za avtonomijo robota je potrebnih več stvari. Prva stvar, ki sem jo že omenil, je smiselna postavitev senzorjev, s katerimi bo robot pridobival informativne podatke. Druga stvar je samodejno gibanje robota po prostoru. Da se lahko robot sam giblje po prostoru, sta potrebne dve stvari. Prva, že omenjena, so pravilno postavljeni senzorji, druga stvar, ki je potrebna, pa je neka logika oziroma umetna inteligenca, s pomočjo katere se bo lahko izogibal oviram v nekem prostoru. Vse se torej začne s pravilno postavitvijo senzorjev in branjem senzorskih podatkov. Zato bomo v tem diplomskem delu predstavili računalniško aplikacijo, ki bo podpirala robotsko senzoriko. Tema diplomske naloge je bil razvoj računalniške aplikacije, imenovane Senzorski pas, s katero bo mogoče: Kreiranje modela mobilnega robota, Postavitev senzorjev na model mobilnega robota, Premikanje, spreminjanje in kalibracija postavljenih senzorjev, Realno časovno branje podatkov, ki jih bodo pošiljali senzorji. S pomočjo aplikacije lahko, poleg kreiranja modela mobilnega robota in nanašanja senzorja nanj, dobimo podatke od senzorjev, ki jih nato lahko preverimo, če so verodostojni. Za čim bolj natančno določanje oddaljenosti robota od nekega objekta pa se lahko dani senzorji še kalibrirajo, kar pomeni, da bo razdalja, ki jo bodo senzorji zaznali, res točna. Če so senzorji na pravem mestu, bo razvidno po analizi podatkov, ki jih bo vrnil posamezen senzor. Na podlagi dobljenih rezultatov senzorjev se bo lahko postavitev senzorjev tudi spreminjala, če, po mnenju uporabnika, senzorji ne bodo dobro postavljeni.

20 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 8 Tako bo možno ugotoviti najboljšo možno lokacijo za postavitev senzorjev na mobilnega robota. 2.2 Delovanje aplikacije Senzorski pas Kot je že bilo rečeno, je programski vmesnik Senzorski pas namenjen izdelavi in oblikovanju modela robota, nanašanju senzorjev nanj ter njihovi kalibraciji in pridobivanju podatkov iz senzorjev. V tem podpoglavju si bomo pogledali kako se aplikacija Senzorski pas uporablja, podroben opis samega delovanja aplikacije pa si bomo pogledali v kasnejših poglavjih. Prvi korak v uporabi aplikacije je kreiranje modela robota. Ustvarjati ga začnemo z izrisom poljubne 2D oblike, ki jo nadgradimo v 3D obliko, nato ji dodamo poligone in dobimo končni model robota, kot ga vidimo na sliki 3. Slika 3: Kreiranje poljubnega modela robota Ko imamo model robota izdelan in shranjen, je na vrsti nameščanje senzorjev. Možnih je največ osem dodanih senzorjev, saj je na vezju osem konektorjev zanje. Senzorjem lahko nato spreminjamo lastnosti (ime, tip in PIN senzorja), položaj, lahko jih kalibriramo ali pa jih preprosto zbrišemo. Model robota z dodanimi senzorji prikazuje slika 4.

21 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 9 Slika 4: Skreiran robot z dodanimi senzorji Zadnji del uporabe aplikacije je pogled na to, kako bodo senzorji pošiljali podatke. Podatke o oddaljenosti objektov od vsakega posameznega senzorja dobimo v centimetrih. Če je objekt zelo blizu senzorja, se bo ta obarval rdeče, če je blizu, se bo obarval rumeno, če pa nobenega objekta ni v vidnem polju senzorja ali je zelo oddaljen, se bo senzor obarval zeleno. Slika 5 prikazuje ta pogled.

22 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 10 Slika 5: Vračanje podatkov senzorjev Ogledali smo si uporabo senzorike v robotiki, delovanje Senzorske opreme in tudi seznam komponent projekta Senzorske opreme, predstavili pa smo tudi projekt Senzorski pas. Preden pa podrobneje opišemo delovanje aplikacije, moramo natančneje predstaviti tudi druge komponente. V naslednjem poglavju bomo predstavili uporabljene senzorje, kako delujejo in zakaj smo se odločili za senzorje tega tipa.

23 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki INFRARDEČI SENZORJI SENZORSKE OPREME Kot smo že omenili v uvodu, smo za izdelavo aplikacije Senzorski pas najprej morali točno vedeti, katere senzorje bomo uporabili. Izbiro in njihove lastnosti bomo predstavili v tem poglavju. Izbrali smo jih na podlagi preizkusov, saj smo na našega robota Spartesa namestili več različnih senzorjev. Končno postavitev kaže spodnja slika. Vrste senzorjev in njihove lastnosti bodo podrobno opisane v naslednjih podpoglavjih. Slika 6: Namestitev senzorjev na robota Spartesa

24 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki Predstavitev infrardečega valovanja in infrardečih senzorjev Kakšno je infrardeče (IR) valovanje? Infra latinsko pomeni spodaj. Infrardeči valovi so elektromagnetni valovi, katerih frekvenca se nahaja nad mikrovalovi in pod vidno svetlobo ali vidnim spektrom. Mikrovalovi so elektromagnetni valovi z valovno dolžino med 1 milimetrom in 1 metrom oziroma s frekvenco med 300 MHz in 300 GHz. Vidna svetloba pa je tista, ki jo človeško oko lahko zazna, to je med 380 in 750 nanometri oziroma, izraženo v frekvenci, med 400 in 790 THz. Slika 7: Elektromagnetni spekter Kako pa delujejo senzorji, ki za detekcijo uporabljajo IR svetlobo? Vsak senzor vsebuje oddajnik svetlobe in detektor, to je sprejemnik svetlobe. Delujejo tako, da oddajnik najprej odda žarek svetlobe. Svetloba potuje po vidnem polju in zadane nek objekt ali pa nadaljuje svojo pot. Če objekta ne zadane, se svetloba ne odbije, torej objekta ni. Če se svetloba odbije od objekta, se vrne k detektorju in ustvari trikotnik med točko odboja, oddajnikom ter sprejemnikom svetlobe.

25 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 13 Slika 8: Različni koti žarkov z različnimi razdaljami Koti trikotnikov se spreminjajo na podlagi oddaljenosti objekta od senzorja. Sprejemnik svetlobe nato s posebnim senzorjem CCD 2 izračuna oddaljenost od objekta. S takim določanjem razdalje se zelo zmanjšajo vplivi ambientne svetlobe in barve objekta. Tako je mogoče zaznati tudi popolnoma črn objekt pri dnevni svetlobi Uporabljeni senzorji V aplikaciji Senzorski pas smo se odločili za uporabo Sharpovih IR senzorjev, in sicer iz več razlogov. Prvi je dejstvo, da smo Senzorsko opremo namenili predvsem tistim, ki se z robotiko ljubiteljsko ukvarjajo in bi ta izdelek lahko kupili. Poleg tega Sharp v svetu robotike in senzorjev že nekaj pomeni. Na veliko forumih lahko zasledimo, da ljudje uporabljajo prav te senzorje in da z njimi delajo različne aplikacije oziroma rešujejo veliko vrsto problemov, robotskih, elektronskih ali programerskih. Zato je, kot smo že omenili, izdelek Senzorska oprema sestavljena iz treh komponent: senzorji, elektronsko vezje ter programski vmesnik. Tako lahko ta izdelek na svojem robotu uporabi prav vsak, ki bo to želel. Trenutno podpira aplikacija Senzorski pas dva tipa Sharpovih senzorjev, in sicer Sharp GP2D12 in Sharp GP2Y0A02. Delovanje IR senzorjev smo si že ogledali v prejšnjem poglavju, v nadaljevanju pa si bomo pogledali še karakteristike teh dveh tipov. 2 Senzor, ki zbira svetlobo in jo pretvori v električni signal

26 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki Sharp GP2D12 Je senzor, ki meri razdaljo z integriranim procesiranjem signala ter analognim izhodom napetosti. Njegove karakteristike so: analogni izhod, učinkoviti doseg: od 10 do 80 centimetrov, cikel LED žarka: 32 milisekund, običajni odzivni čas: 39 milisekund, običajna zakasnitev pri vklopu: 44 milisekund, povprečna poraba toka: 33 miliamperov, premer zaznave pri 80 centimetrih: 6 centimetrov. Kot je razvidno, ta senzor kot izhod pošlje analogno vrednost napetosti, ki ni linearna, zato jo moramo pretvoriti v uporabno vrednost oddaljenosti. Za to uporabimo nekatere formule, vendar o tem več v poglavju o kalibriranju senzorjev Sharp GP2Y0A02 Je senzor, ki meri razdaljo z integriranim procesiranjem signala ter analognim izhodom napetosti in je širokokotni senzor. Njegove karakteristike so: analogni izhod, natančnost zaznave pri 80 centimetrih: ±10 centimetrov, učinkovit doseg: od 20 do 150 centimetrov, običajni odzivni čas: 39 milisekund, tipična zakasnitev pri vklopu: 44 milisekund, povprečna poraba toka: 33 miliamperov. Podobno kot senzor GP2D12, tudi ta senzor vrača nelinearno izhodno vrednost napetosti in ima zato svojo karakteristiko (za oba tipa senzorjev so natančneje prikazane v prilogah).

27 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki VEZJE SENZORSKE OPREME V tretjem poglavju smo si podrobno ogledali lastnosti senzorjev, uporabljenih v izdelku Senzorska oprema. Preden bomo podrobno spoznali uporabniški vmesnik Senzorski pas, si bomo ogledali še zgradbo in lastnosti elektronskega vezja, s katerim ta aplikacija komunicira. Poleg tega si bomo ogledali in opisali tudi komunikacijo med vezjem in aplikacijo, to je komunikacija RS-232. Njeno delovanja in lastnosti bomo podrobneje opisali v nadaljevanju. 4.1 Lastnosti vezja Kot smo že omenili v prejšnjih poglavjih, je bilo vezje Senzorskega pasu v celoti izdelano v podjetju Roboti. Za razumevanje delovanja aplikacije pa ni treba vedeti, katere elemente vsebuje vezje. S programerskega vidika so pomembne osnovne lastnosti vezja, da bomo lahko bolje razumeli povezavo z aplikacijo. Pomembni so torej podatki o komunikaciji, mikrokontrolerju na vezju (tipa Atmel), napajalni napetosti itd. Pomembne lastnosti vezja: - Na vezje lahko priklopimo do 8 analognih senzorjev, - Senzorje lahko konfiguriramo in kalibriramo z aplikacijo Senzorski pas preko komunikacije RS-232, - Priklopimo lahko 5V zunanjo električno napajanje, - V aplikaciji lahko nastavimo različno referenčno napetost (5V ali 3,3V),

28 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 16 - Za zunanje aplikacije je tudi možna enaka izhodna referenčna napetost (3,3V ali 5V), - LED diode, ki prikazujejo status senzorjev, - Možnost izklopa LED diod, - Reset gumb, LED diode za prikaz napajanja vezja, - Možnost priklopa dodatnih LED diod za prikaz RS-232 komunikacije, V napajalna napetost. - Mikrokontroler Atmel. Slika 9: Slika vezja 4.2 RS-232 komunikacija RS-232 komunikacija je standard za serijsko, binarno podatkovno povezavo med podatkovnim terminalom (DTE) in neko končno podatkovno napravo (DCE). Je pogosto

29 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 17 uporabljena v računalniški povezavi med serijskimi porti, čeprav jo danes (predvsem na področju domačega računalništva) vedno bolj izriva USB komunikacija. Podrobnosti standarda RS-232 komunikacije Pri RS-232 komunikaciji so podatki poslani kot časovna serija bitov. Standard definira tudi serijo kontrolnih obhodov (mehanizmov), ki nadzirajo povezavo med podatkovnim terminalom in podatkovno napravo. Vsak podatek ali kontrolni obhod operira v eni smeri, to pomeni od podatkovnega terminala k napravi ali obratno. Ker sta pošiljanje podatkov in prejemanje podatkov dva ločena procesa, lahko vmesnik operira v polno povezanem načinu 3, kar pomeni da podpira vzporeden prenos podatkov v obeh smereh. Ta standard ne podpira sestavljanja ali kodiranja znakov. Stanje napetosti RS-232 standard definira stanje napetosti tako, da korespondirajo k vrednostim logične enice ali logične ničle. Pravilni signali so plus ali minus 3 do 15 voltov. Logična enica je definirana kot negativna napetost, stanje signala se imenuje označitev (angl. marking) in njen funkcijski pomen je izklop (OFF). Logična ničla pa je pozitivna napetost, stanje signala se imenuje razmik (angl. spacing) in njen funkcijski pomen je vklop (ON). Standard opisuje, da je maksimalna napetost vezja 25 voltov, nivoji signala pa so lahko ±5 V, ±10 V, ±12 V in ±15 V, odvisno od napajanja v napravi. Ker so napetosti višje od tistih, ki jih uporabljajo integrirana vezja, so za transformacijo med stanji potrebna vmesna gonilniška vezja. Ta varujejo pred kratkimi stiki, ki se lahko pojavijo na RS-232 vmesniku, poskrbijo pa tudi za dovolj velik tok za hitro izmenjavo podatkov. 3 Komuniciranje med dvema napravama v obeh smereh, angl. full duplex.

30 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 18 Prenos podatkov (bitov) Pri RS-232 komunikaciji se informacije pošiljajo bit za bitom po fizičnem kanalu. Informacija mora biti razbita v podatkovne besede, katerih dolžine se razlikujejo. Na osebnih računalnikih se lahko izberejo dolžine vrednosti med 5 in 8 bitov. Za pravilen prenos besed se poleg teh bitov prenašajo tudi dodatni biti za sinhronizacijo in preverjanje napak. Pomembno je, da oddajnik in prejemnik uporabljata isto število bitov, saj so lahko v nasprotnem primeru besede neprepoznavne. Pri sinhroni komunikaciji mora biti prisotna še neka ura ali kontrolni signal, ki nakažeta začetek vsakega prenosa. Ker pri asinhroni komunikaciji te ure ni, je le ta lažja za upravljanje, saj je prisotnih manj komunikacijskih linij. Slabost asinhrone komunikacije je ta, da lahko prejemnik začne sprejemati informacijo ob napačnem času. Potrebna je ponovna sinhronizacija, pri kateri pa izgubimo na času. Druga slabost asinhrone komunikacije je ta, da so potrebni dodatni biti za indikacijo začetka in konca neke informacije, zaradi česar je potem komunikacijska linija zasedena dlje časa. RS-232 komunikacija uporablja asinhon način komunikacije. Podatkovni biti (angl. data bits) so poslani po frekvenci prenosa (angl. baud rate), ki je vnaprej definirana. Tako oddajnik kot prejemnik morata komunicirati na isti frekvenci. Ko je prvi bit poslan, prejemnik izračuna kdaj bo prejel ostale podatkovne bite. Takrat se preverijo tudi stopnje napetosti. Pri RS-232 komunikaciji ima lahko komunikacijska linija dve stanji, stanje vklopa (ON) in stanje izklopa (OFF). Komunikacijski biti Ker je komunikacija RS-232 asinhrona, se lahko pošiljanje podatkovne besede začne v vsakem trenutku, torej kadar koli. Zato je treba nekako izvedeti, kateri je prvi bit. To težavo reši pozornostni bit, imenovan start bit.

31 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 19 Takoj po tem, ko se pošlje start bit, se pošljejo še podatkovni biti. Če ima bit vrednost 1, preide podatkovna linija v stanje označitve. Če ima bit vrednost 0, je predstavljen s presledkom. Najprej se pošlje vedno najmanj pomemben bit (angl. least significant). Za ugotavljanje napak je k podatku mogoče avtomatsko dodati dodaten bit, imenovan parni bit (angl. parity bit). Oddajnik izračuna vrednost tega bita glede na poslano informacijo. Enak izračun ponovi prejemnik in preveri, če je vrednost parnega bita enaka izračunani vrednosti. Lahko pa sprejemnik začetnega bita ne prejme zaradi šuma na komunikacijski liniji. To lahko povzroči, da prejme nejasno informacijo. Zato mora biti prisoten mehanizem, ki sinhronizira komunikacijo, potrebno je namreč okvirjanje (angl. framing). Okvirjenje pomeni to, da so vsi podatkovni in parni biti med začetnim bitom in končnim bitom. Časovni interval, ki poteče med poslanim start in stop bitom, je konstanta, določena s hitrostjo prenosa in številom podatkovnih in parnih bitov. Start bit je vedno presledek, medtem ko je stop bit vedno nek označen bit. Če prejemnik zazna, da ima stop bit drugačno vrednost od označene, je prišlo do sinhronizacijske napake in potrebna je ponovna sinhronizacija. Pri tem sprejemnik skenira prihajajoče podatke in išče pravilen par start in stop bita. Stop bit, ki nakazuje konec podatkovnega okvirja, ima lahko različne dolžine. Dejansko ni pravi bit, ampak mora biti podatkovna linija minimalen časovni interval nedejavna (v označenem stanju) na koncu vsake besede. Na računalniku ima lahko ta časovni interval tri dolžine: 1, 1,5 ali 2 bita. Stop bit, dolžine 1,5 bita, se uporabi za podatkovne besede, dolge 5 bitov, 2 bita se uporabita za še daljše besede, stop bit, dolžine 1 bita, pa se lahko uporabi za podatkovne besede vseh velikosti.

32 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki GRAFIČNI VMESNIK SENZORSKE OPREME Do sedaj smo si pogledali, katere vrste senzorjev smo uporabili, pogledali smo si bistvene lastnosti vezja, podrobno pa smo se tudi seznanili z RS-232 komunikacijo, uporabljeno za komuniciranje med vezjem in aplikacijo Senzorskega pasu. V tem poglavju sledi predstavitev razvijalskega orodja, v katerem je bila aplikacija Senzorskega pasu razvita, Visual Studio.Net Pogledali si bomo sistemske in strojne zahteve za poganjanje same aplikacije ter samo strukturo aplikacije Senzorskega pasu. Sledila bo podrobna predstavitev knjižnice OpenGL, ki je srce aplikacije za grafično predstavitev. Predstavili bomo, kako aplikacija deluje, kako jo uporabljamo (od kreiranja modela, do dodajanja in spreminjanja senzorjev ter branja podatkov), nekaj časa pa bomo posvetili kalibraciji senzorjev, ki je ena od pomembnih elementov računalniške podpore robotski senzoriki. Na koncu bomo analizirali dobljene rezultate. 5.1 Razvijalno okolje Visual Studio.Net in programski jezik C# Programski del Senzorskega pasa je bil razvit v razvijalskem okolju Visual Studio.NET, v programskem jeziku C#. Ker je razvoj celotnega projekta potekal dalj časa, se je pisanje aplikacije začelo v razvijalnem okolju Visual Studio.NET 2005 v operacijskem sistemu Windows XP, kasneje pa se je razvoj nadaljeval v Visual Studio 2008 in operacijskem sistemu Windows Vista. Visual Studio.NET je programsko razvijalno okolje, ki je sestavljeno iz vrste razvijalskih pripomočkov, narejenih tako, da čim bolj olajšajo delo programerjem. Programski jezik C# je multiparadigmatski jezik, ki obsega funkcionalno, imperativno, generično in objektno naravnane programske discipline. Razvit je bil v Microsoftu kot del programskega orodja Visual Studio.NET in kasneje odobren s strani organizacij ECMA (European Computer Manufacturers Association) in ISO (International Organization for Standardization). Razvijanje programskega jezika C# vodi

33 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 21 Anders Hejlsberg, ki je dizajniral tudi programski jezik Delfi. Organizacija ECMA je za programski jezik C# navedla naslednje dizajnerske cilje: C# mora biti enostaven, moderen, generalno usmerjen, objektno orientiran programski jezik, jezik mora vsebovati robusten pregledovalec vnešenih znakov, pregledovalca vpisanih polj, zaznati mora uporabo neinicializiranih spremenljivk, prenosnost izvorne kode ter avtomatskega zbiralca odvečne kode (angl. garbage collector), programski jezik je namenjen za uporabo v razvijanju programskih komponent, ki izkoriščajo prednosti distributiranih okolij, vsebovati mora internacionalizacijo, kar pomeni adaptacijo programske opreme na različna jezikovna področja. C# je namenjen pisanju aplikacij tako za gostujoče sisteme kot tudi za sisteme, ki so povezani z večimi sistemi v neko večjo celoto. 5.2 Sistemske in strojne zahteve aplikacije Senzorski pas Kot smo že omenili, se je aplikacija Senzorskega pasu pisala v dveh razvijalnih okoljih (Visual Studio.NET 2005 in 2008) in dveh operacijskih sistemih (Windows XP in Vista), zato je tudi prilagojena za delovanje, preizkušena in popolnoma delujoča na teh dveh sistemih. Sistemsko aplikacija ni potratna in ne zahteva veliko spomina ali podatkovnega prostora. Poglejmo si programske in strojne zahteve: Za poganjanje aplikacije moramo imeti na osebnem ali prenosnem računalniku nameščen.net framework, ki omogoča zaganjanje Visual Studio.NET aplikacij (je v večini novejših sistemov že nameščen). Če na računalniku nimamo RS-232 konektorja (ponavadi ga ni pri prenosnikih), si moramo naložiti gonilnike, ki omogočajo protvorbo iz RS-232 v USB komunikacijo in obratno (predlagamo Prolific gonilnike, ki preverjeno delujejo tako na operacijskem sistemu Windows XP kot Vista).

34 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 22 Na računalniku torej potrebujemo ali RS-232 konektor ali prosti USB konektor, za katerega naložimo npr. Prolific gonilnike. Za procesorsko ali podatkovno moč sistema ni navedenih zahtev. 5.3 Zgradba aplikacije Programski vmesnik Senzorski pas je sestavljen iz treh komponent: komponente za kreiranje modela robota (angl. model control), komponente za dodajanje, spreminjanje in kalibriranje senzorjev (angl. sensor control) ter komponente za branje podatkov (angl. data control). V nadaljevanju si bomo podrobno ogledali, kako so te tri komponente zgrajene ter tudi nekaj najpomembnejših in najpogosteje uporabljenih funkcij, s pomočjo katerih aplikacija deluje. - Komponenta za kreiranje modela (Modelna komponenta) Slika 10: Modelna komponenta

35 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 23 Komponenta za kreiranje modela je zgrajena iz štirih delov: uporabniške kontrole imenovane konstrukt (angl. Construct) na kateri so trije 2D pogledi, imenovani XY, XZ in YZ pogled, predstavljajo pa tloris, naris in stranski ris. V teh pogledih oblikujemo model tako, da vnašamo 2D oblike kot so premica, kvadrat in poljubna 2D oblika, ki jih lahko povsem enostavno nadgradimo v 3D oblike s funkcijami, ki so enostavne za uporabo. Na komponenti sta še dva 3D pogleda, zgrajena s pomočjo OpenGL, in sicer mrežni pogled na model, ki je sestavljen iz linij, ter pogled na trden model, sestavljen iz poligonov. V 3D pogledih lahko sproti spremljamo ustvarjanje modela ter ga tudi obračamo. Zadnji del komponente je kontrola izbire akcij, s katerimi ustvarimo tako mrežni kot trden model, kontrola pa ima še nekaj drugih funkcij. Kontrola za izbiro akcij je tesno povezana z grafičnimi kontrolami. Pogled na komponento za kreiranje modela kaže slika 10. Poglejmo si nekaj funkcij, ki so najpomembnejše za delovanje te komponente. Kot smo že omenili se model robota kreira najprej z vrisanjem osnovnih geometričnih oblik (linija, kvadrat, poljubna 2D oblika). Da se linije pravilno izrisujejo na vseh treh 2D pogledih skrbi več funkcij. Princip delovanja je takšen: Vsak 2D pogled ima dve koordinatni osi (XY pogled ima X in Y os, podobno preostala dva pogleda). Ko se neko telo, sestavljeno iz točk, vstavi na nek pogled, se morajo točke ustrezno transformirati na preostala pogleda. Tako se npr. točka T( x 1, y 1 ) vrisana na pogledu XY transformira v pogled XZ kot T'( x 1,0) in na pogled YZ kot T''( y 1, 0). Za vstavljanje linije skrbijo funkcije: Ime funkcije InsertLine () InsertPoint (bool) InsertVector (point1, poin2) Opis funkcije Funckija vstavi dve točki in vektor med njima. Kot vhod prejme spremenljivko bool, ki funkciji pove ali točka sodi v 3D obliko (pravilno) ali pa v 2D obliko (nepravilno). Funckija se kliče dvakrat, zaradi dveh točk linije. V pogled, v katerega smo risali, se vstavi točka na dejansko mesto klika, drugi dve točki pa se ustrezno transformirata na preostala pogleda s pomočjo funkcije ConvertPointTo (drawingview). Funkcija prejme kot vhod obe vstavljeni točki in nato med njiju vstavi vektor.

36 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 24 ConvertPointTo (drawingview) InsertPoint3D (bool) Funkcija prejme kot vhod pogled na katerega se mora vstavljena točka transformirati. S pomočjo ustreznega izračuna se točka transformira na ostale koordinatne sisteme. Kot zadnje se pokliče še funkcija InsertPoint3D (), ki vstavi točko še v 3D žični pogled. Funkcija ustrezno transformira vstavljeno točko 2D pogleda na 3D pogled tako, da se ji določi še tretja koordinata, ostali dve koordinati pa se ustrezno transformirata. Tabela 1: Funkcije za vstavljanje linije Ko imamo vstavljeno 2D obliko, ki je povezana in sestavljena vsaj iz treh točk, jo moramo spremeniti v 3D obliko. To naredimo preprosto tako, da zajamemo točke 2D oblike in izberemo funkcijo Razširi (angl. Extrude). Enako storimo z vsako 2D obliko posebej, da dobimo 3D mrežni model robota. Iz dobljenega 3D mrežnega modela moramo sedaj dobiti še trden model robota sestavljenega iz poligonov. Podobno kot tvorimo 2D oblike, dodajamo poligone 3D mrežnim oblikam, torej za vsako 3D obliko posebej. Dobimo končni 3D model robota sestavljenega iz poligonov. Ob vsaki kreaciji bodisi 2D ali 3D oblike se v strukturo vsake točke zapiše v kakšni obliki je (kvadrat, poljubna 2D oblika, 3D oblika...), zaporedna številka te oblike ter na keterem 2D pogledu (XY, XZ ali YZ) je bila oblika narisana. Za kreiranje končnega 3D modela robota moramo uporabiti naslednje funkcije: Ime funkcije Extrude () ClonePoints (bool) Opis funkcije Funckija poskrbi za to, da se 2D oblika razširi v 3D obliko, in sicer s funkcijama ClonePoints (bool), InsertVector (point1, point2), poleg tega pa poskrbi tudi za nastavitev prej omenjenih lastnosti posameznim točkam in oblikam. Kot vhod prejme spremenljivko bool, ki funkciji pove ali se ta točka razširja v obliko (pravilno) ali pa se 2D oblika klonira (nepravilno). Če se kreira 3D oblika se vsem točkam postavi parameter, ki pove da pripada 3D obliki, in še en parameter za število 3D oblike. Nato se vse točke in povezave klonirajo, tvorijo

37 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 25 InsertVector (point1, poin2) ClonePoint (int, int, string, bool, int) ClonePoint3D (int, int) pa se še dodatne vektorske povezave, da dobimo 3D obliko. Funkcija kliče funkciji InsertVector(point1, poin2) in ClonePoint(int, int, string, bool, int). Funkcija prejme kot vhod obe vstavljeni točki in nato med njiju vstavi vektor. Funkcija prejme kot vhod dve celi števili s katerimi se pove, kakšen je zamik pri koordinatah točk v 2D pogledu. Sledi znakovna spremenljivka, ki pove kateri 2D obliki točka pripada, še ena celoštevilska spremenljivka, ki pove številko kreirane 2D oblike in še spremenljivka bool, ki pove ali se točka uporablja za razširitev 2D oblike (pravilno) ali ne (nepravilno). Funkcija prejme kot vhod dve celi števili, ki pomenita zamik koordinat klonirane točke. V tej funkciji se naredi enak zamik točke v 3D pogledu kot v 2D pogledu. Tabela 2: Funkcije za kreiranje končnega modela Z uporabo teh glavnih funkcij aplikacije lahko tako sestavimo kompleksen model robota, kot je npr. model robota Spartes, zaradi katerega se je projekt Senzorski pas začel. Model v takšni obliki, kot je na sliki 11, je končan in pripravljen na nadaljno obdelavo. Seveda se mora pred tem shraniti.

38 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 26 Slika 11: Končan model robota Spartesa - Komponenta za dodajanje, spreminjanje in kalibriranje senzorjev (senzorska komponenta) Slika 12: Senzorska komponenta

39 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 27 Model robota, ki smo ga ustvarili, ponovno naložimo na komponenti za dodajanje senzorjev. Dobimo pogled na robota, kot ga kaže slika 12. Senzorksa komponenta je sestavljena iz treh delov: najbolj vidne in najpomembnejše 3D OpenGL kontrole katera omogoča delo s senzorji, imenovana Nariši 3D poligone (angl. Draw3DPolygons), kontrola za prikaz oken posameznih senzorjev z njihovimi informacijami in zmožnostmi, imenovana Kontrola za podatke (angl. ControlReceivedData) ter kontrola za spreminjanje grafičnih nastavitev. Seveda so vse tri kontrole tesno povezane. Spet si poglejmo nekaj funkcij, ki so najpomembnejše za delovanje te komponente. Ko imamo naložen model, je pripravljen za dodajanje senzorjev. Dodajamo jih s pritiskom na desni miškin gumb, tako da kliknemo na model (začetna točka senzorja), potegnemo miško na željeno točko (to je točka kamor je senzor usmerjen) in spustimo miškin gumb. Pri tem v ozadju potekajo številne funkcije, ki omogočajo izris senzorjev. Navedene so v tabeli 3. Ime funkcije MouseDown () GLU.gluUnProject (double, double, double, double[], double[], int[], double, double, double) IntersectionPoint (PointFloat3D, Opis funkcije Funkcija preverja, kateri gumb je sprožil ta dogodek. Če je bil to desni miškin gumb, se kliče funkcija GLU.gluUnProject(), nato se ustvari navidezni žarek, ki ima začetek v koordinateh zaslona pred modelom in konec v koordinatah zaslona za modelom. Tam kjer žarek seka katerega izmed poligonov modela robota, se izračuna presečišče s pomočjo funkcije IntersectionPoint(). To je začetna točka senzorja. Funkcija je ena najpomembnejših funkcij za pravilen izris senzorjev na model robota. Kot vhod najprej dobi tri realna števila ki predstavljajo X, Y (zaslonski koordinati) in Z koordinato (bližnja točka pred modelom ali oddaljena točka za modelom). Nato prejme dve realni polji, vsaka ima po 16 realnih števil. Prva predstavlja matriko modela, druga pa projekcijsko matriko. Sledi še polje s štirimi celimi števili, ki definira točko gledanja. Kot izhod pa vrne funkcija tri realna števila, ki predstavljajo koordinate X, Y in Z točke v prostoru. Funkcije prejme kot vhod dve realni točki v prostoru s pomočjo katerih opravi vrsto izračunov glede na vsak poligon v modelu

40 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 28 PointFloat3D) MouseMove () MouseUp () OnPaint() in tako preveri, če in kje žarek seka poligon. Ti izračuni so navadni produkt s pomočjo funkcije Dot (PointFloat3D, PointFloat3D), ki vrne realno število, vektorski produkt s pomočjo funkcije Cross (PointFloat3D, PointFloat3D), ki vrne izračunano realno točko v prostoru ter odštevanje dveh vektorjev s pomočjo funkcije Sub (PointFloat3D, PointFloat3D), ki prav tako vrne izračunano realno točko. Funkcija preverja kateri gumb je sprožil ta dogodek. Če je to bil desni miškin gumb se začnejo vršiti izračuni za prikaz horizontalnega in vertikalnega kota (glede na referenčno točko, ki je na dnu in sredini modela robota). Tako lahko uporabnik vidi pod kakšnim kotom bo senzor postavljen glede na referenčno točko. Prav tako funkcija skrbi za izris rumene črte, ki nakazuje začetek in konec senzorja, ki bo izrisan ob spustu mičkinega gumba. Funkcija preverja kateri gumb je sprožil ta dogodek. Če je to bil desni miškin gumb se senzorju, ki se vstavlja določi točka proti kateri senzor gleda. Senzor se vstavi v listo senzorjev. Sledi izris senzorja, ki ga opravi OnPaint() metoda. Funkcija skrbi za izris celotne scene, tako ozadja, kontrolne mreže, samega modela robota ter senzorjev. Je srce celotne grafične OpenGL kontrole. Tabela 3: Funkcije za izris senzorjev Izberemo lahko tudi podroben pogled na senzorsko kontrolo, ki ima več funkcij. Model lahko obračamo, približujemo ali oddaljujemo in tudi možnosti modificiranje senzorjev je veliko več. Podroben pogled na kontrolo s tremi dodanimi senzorji kaže slika 13.

41 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 29 Slika 13: Podroben pogled na senzorsko komponento Kot smo že omenili je uporabniku na volju mnogo funkcij za spreminjanje dodanih senzorjev. Spreminja se lahko pozicija vsakega senzorja in njegove lastnosti (tip, ime ter PIN na katerem je senzor dodan na vezju). Na voljo so tudi podatki o položaju in lastnostih senzorja. Senzor lahko popolnoma izbrišemo, lahko pa ga tudi kalibriramo. Poglejmo si nekaj teh funkcij:

42 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 30 Ime funkcije Opis funkcije getsenzorinfo_click () Funkcija iz senzorske baze izpiše lastnosti dodanega senzorja, in sicer tip, minimalni in maksimalni doseg, doseg rdeče in rumene cone, opis in sliko karakteristike. changesenzor_click () S funkcijo spreminjamo nekatere senzorjeve karakteristike, in sicer ime, tip in PIN. changeposition_click () Funkcija je namenjena spreminjanju položaja senzorja. Možna sta dva načina: z miško in z vnosom vrednosti (k začetni ali končni točki prištejemo ali odštejemo vrednosti v X, Y ali Z koordinatah). undopositionclick() S to funkcijo preprosto vrnemo senzor na predhodno postavljeno lokacijo. calibrationclick() Funkcija je namenjena kalibraciji posameznega senzorja. Tabela 4: Funkcije za spreminjanje senzorjevih lastnosti

43 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 31 - Komponenta za branje podatkov (Podatkovna komponenta) Slika 14: Prikaz podatkov, ki jih pošiljajo senzorji Ostala še nam je zadnja komponenta, ki sestavlja celoto aplikacije. To je Podatkovna komponenta, ki, kot smo že omenili, skrbi za prikazovanje podatkov senzorjev. Sestavljena je prav tako iz 3D OpenGL kontrole, ki omogoča prikaz modela s senzorji. Razlika med senzorsko kontrolo OpenGL in podatkovno kontrolo OpenGL je v tem, da se tu senzorji ne morejo dodajati ali spreminjati, malce spremenjen pa je tudi prikaz senzorjev, saj se obarvajo različno, glede na to, koliko je nek objekt oddaljen od posameznega senzorja oziroma v kateri coni dosega se nahaja senzor. Te so lahko tri: rdeča (nek objekt je zelo blizu senzorja), rumena (srednja oddaljenost od objekta) in zelena (objekt je zelo oddaljen ali ni zaznan). Podatkovna komponenta je vidna na sliki 14. Druga kontrola na podatkovni komponenti skrbi za prikaz podatkov senzorjev. Imenuje se podatkovni panel (angl. data panel). Podatki na njej se izrisujejo v t. i. napredujočo vrstico (angl. progress bar), tako da se nenehno kaže oddaljenost nekega objekta od senzorja v centimetrih, napredujoča vrstica pa je enake barve kot senzor na OpenGL kontroli (rdeče, rumene ali zelene). Če izbreremo podroben pogled, je izrisan tudi histogram, ki kaže krivuljo izrisa, vidni pa so tudi osnovni podatki vsakega senzorja.

44 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 32 Funkcije za izris senzorjev so podobne kot pri senzorski komponenti, zato teh funkcij ne bomo ponovno omenjali. Poglejmo si, katere funkcije skrbijo za izris podatkov senzorjev na podatkovnem panelu: Ime funkcije Opis funkcije timersenddata_tick Ta funkcija pošilja ukaze za pridobivanje podatkov o oddaljenosti objektov od senzorja, in sicer v časovnem intervalu, ki ga lahko določi uporabnik. Tako lahko senzor pošilja podatke o oddaljenosti vsakih 60 ms ali vsake pol sekunde, odvisno od želje in potrebe uporabnika. timerprocessdata_tick S to funkcijo se izrisujejo vse grafične kontrole (napredujoča vrstica in histogram), ki prikazujejo oddaljenost v centimetrih. Funkcija polni polje bitov imenovano fifobuffer s prejetimi podatki, kliče pa se tudi funkcija UpdateAllData. Podatki se osvežujejo s hitrejšim časovnim intervalom kot se pošiljajo, saj obdelava podatkov traja dlje. UpdateAllData (int, Funkcija prejme kot vhod tri cela števila. Prvo pomeni indeks int, int) senzorja, na katerem se naj posodobijo podatki, drugo je PIN senzorja, tretje pa je oddaljenost objekta od njega. Tako se osvežijo podatki v vseh grafičnih kontrolah. rs232_rs232data Funkcija prejema posamezne bajte vezja in jih sestavlja v smiselno celoto (sintakso ukazov) tako, da se lahko grafične kontrole ustrezno posodabljajo. Tabela 5: Funkcije za prikaz podatkov, ki jih pošljejo senzorji 5.4 Uporaba in lastnosti grafične knjižnice OpenGL Kot smo že omenili, je glavni del grafičnega dela aplikacije izdelan s pomočjo OpenGL knjižnic, ki so prezplačno dostopne na internetu. Kot smo lahko videli iz slik v prejšnjem poglavju, temelji grafični prikaz aplikacije na prikazu modela robota (komponenta za kreiranje robota) in na prikazu modela robota s senzorji (komponenta za dodajanje in spreminjanje senzorjev ter komponenta za branje podatkov). Vse te tri komponente so v

45 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 33 glavni meri narejene s pomočjo grafične OpenGL knjižnice. Zato si bomo v tem poglavju podrobno ogledali samo OpenGL knjižnico, nekatere njene funkcije, ki smo jih uporabili, njihovo delovanje in matematične izračune, ki se vršijo s funkcijami in so pomembni za razumevanje delovanja teh funkcij, ter tudi same aplikacije. OpenGL (angl. Open graphics library) je programski vmesnik do strojne opreme. Sestavlja ga več sto postopkov in funkcij, ki omogočajo programerju, da določi objekte in operacije, ki pomagajo pri tvorbi visoko kakovostnih grafičnih slik, kot so npr. barvne slike tridimenzionalnih objektov. OpenGL zahteva, da grafična strojna oprema vsebuje okenski predpomnilnik 4 (angl. frame buffer). Imamo dvoje pogledov na OpenGL. Zato si jih kar poglejmo. Prvi je programerjev: Za programerja je OpenGL skupina ukazov, ki dovoljujejo specifikacijo grafičnih objektov v dveh ali treh dimenzijah, skupaj z ukazi, ki kontrolirajo, kako se ti objekti generirajo v okenski pomnilnik. Tako lahko s pomočjo OpenGL določen objekt izrišemo. Tipičen OpenGL program se začne z klicom funkcije, ki naloži okno, na katero se bodo izrisevali objekti, v okenski pomnilnik. Nato se opravijo klici funkcij, ki locirajo GL vsebino in jo povežejo z oknom. Ko je vsebina GL povezana z oknom, lahko programer poljubno kliče OpenGL funkcije. Nekatere funkcije se uporabljajo za izris enostavnih geometrijskih oblik (kot so npr. točke, linije, poligoni itd... ), druge pa se uporabljajo za kreiranje kompleksnih dvo- ali tridimenzionalnih modelov, ki so lahko obarvani ali pa nanje nanašamo razne teksture ter podobno. Obstajajo tudi funkcije, ki direktno vplivajo na okenski pomnilnik, na primer za pisanje ali branje pikslov. Drugi pogled je pogled razvijalca OpenGL knjižnice. Za razvijalca je to zbirka ukazov, ki vplivajo na operacije strojne grafične opreme. Če strojna oprema vsebuje le naslovljiv okenski pomnilnik, potem morajo biti funkcije OpenGL implementirane v celoti na računalniku, na katerem se program uporablja. Strojna oprema lahko vsebuje tudi različne grafične pospeševalnike, od rasterizacijskih podsistemov, ki so sposobni generirati dvodimenzionalne linije ali poligone, sofisticirane procesorje, ki so sposobni opravljati s pomično vejico pri izračunih transformacij in geometrijskih podatkov. Naloga razvijalca je torej, da priskrbi procesorski programski vmesnik in razdeli delo vsake OpenGL operacije 4 Zadnja»digitalna shramba«namenjena za hranitev slike, preden se ta prikaže na računalniškem zaslonu.

46 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 34 med procesor in grafično opremo. Ta delitev mora prilagojena grafični opremi, da obdrži optimalni učinek pri ukazih OpenGL. OpenGL vsebuje veliko podatkov o stanjih, ki kontrolirajo izris objektov v okenski pomnilnik. Nekaj teh stanj je dostopnih neposredno uporabnikom, saj lahko z ukazi dobijo njihove vrednosti. OPENGL OPERACIJE - OPENGL OSNOVE OpenGL je odgovoren samo za izris v okenski pomnilnik ter za branje vrednosti, shranjenih v okenskem pomnilniku. Ne vsebuje nobene podpore za druge periferne enote, ki so včasih povezane s strojno opremo, kot so npr. miška ali tipkovnica. Programer mora izdelati svoje funkcije, da lahko dobi informacije, ki se izvršijo s temi enotami. OpenGL riše primitive na različne načine. Vsak primitiv je točka, del linije, poligon ali piksel. Vsak način se lahko neodvisno od drugega načina spremeni, saj nastavitve enega načina ne vplivajo na nastavitve drugega (čeprav lahko ti načini risanja sodelujejo, da določijo, kaj na koncu pristane v okenskem pomnilniku). S posameznimi ukazi se nastavijo izbirni načini risanja, določijo se primitivi in opišejo druge funkcije. Primitivi so določeni z eno ali skupino več točk, imenovani verteksi. Verteks definira končno točko, kjer se srečata dva roba poligona. Podatki sestavljeni iz koordinat, barv, normal in tekstur, so povezani z verteksi in vsak verteks je obdelan neodvisno in po vrsti. Izjema je, ko mora biti skupina poligonov obrezana tako, da se označen primitiv prilega v navedeno območje. Vrsta obrezovanja se določi glede na to, kakšno obliko predstavlja skupina verteksov. Ukazi se vedno izvedejo v enakem vrstnem redu, kot so sprejeti, čeprav lahko pride do zamika pri realizaciji. V konkretnem primeru to pomeni, da mora biti en primitiv izrisan v celoti, preden lahko naslednji primitiv vpliva na predpomnilnik. Na splošno mora biti učinek ukaza v katerem koli načinu GL ali predpomnilniku viden pred učinkom naslednjega ukaza za obdelavo. V OpenGL se podatki povezujejo na ukaz. To pomeni, da se podatki povezani z ukazom procesirajo, ko je ukaz sprejet. Tudi če nek ukaz zahteva kazalec na podatek, se ti

47 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 35 podatki procesirajo, ko se ukaz kliče in vse nadaljne spremembe podatkov ne vplivajo na GL. GL poskrbi za direktno kontrolo nad osnovnimi operacijami v 2D in 3D grafiki. Med te spadajo: transformacijske matrike, razni koeficienti pri računanju svetlobe, antialias metode, operacije za osveževanje pikslov, itd. Ne priskrbi pa sredstva za opis in modeliranje kompleksnih geometrijskih objektov. Torej GL priskrbi mehanizem za opis, kako se morajo kompleksni geometrijski objekti prikazovati, ne pa mehanizma za opis samih objektov. Model, s katerim lahko opišemo GL ukaze, je klient server. To pomeni, program (klient) izda ukaze, te pa tolmači in procesira GL (server). Server lahko, ni pa nujno, deluje na istem računalniku kot klient. To pomeni, da je GL neodvisen od omrežja. Server lahko vsebuje vrsto GL vsebin, vsak del vsebine pa je lahko vsebovan v trenutnem GL stanju. Klient se lahko poveže na kateri koli del te vsebine. Če prožimo GL ukaz, ko program ni povezan na GL vsebino, pride do napake v izvajanju programa. Učinke GL ukazov v okenskem pomnilniku na koncu kontrolira grafično okno, ki alocira vire okenskega pomnilnika. Sistemsko okno odloči, do katerega dela okenskega pomnilnika lahko GL dostopa ob poljubnem času ter komunicira z GL, kako so ti deli sestavljeni. Zato ni GL ukazov, ki bi konfigurirali okenski pomnilnik ali inicializirali GL. Nastavitve okenskega pomnilnika se nastavijo brez GL s povezavo s sistemskim oknom, inicializacija GL vsebine pa se zgodi, ko sistemsko okno alocira GL okno za prikaz. GL je zgrajen tako, da ga lahko uporabimo na vrsti grafičnih platform z različnimi grafičnimi zmogljivosti in učinki. Zaradi prilagoditve tej raznolikosti moramo določiti idealno obnašanje, ne pa dejansko obnašanje pri določenih GL operacijah. Ko so odstopanja od idealnega obnašanja dovoljena, tudi določimo pravila, ki se morajo upoštevati pri implementaciji, da dosežemo pribljižek idealnemu obnašanju. Dovoljena odstopanja v obnašanju GL zahtevajo, da dve različni GL implementaciji ne generirata enakih pikslov, tudi če imata enak vhod ter imata enake nastavitve okenskega pomnilnika. Ukazi, konstante in tipi GL imajo prefiks GL, da ne prihaja do nesoglasij s klici ostalih knjižnic ali paketov.

48 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 36 - IZRAČUNI S PREMIČNO VEJICO GL mora med svojim delovanjem izvesti veliko operacij s plavajočo vejico. Programer ne določa, kako naj se predstavijo števila s plavajočo vejico ali kako se naj izvajajo operacije s temi števili. Pomembno je, da števila s plavajočo vejico vsebujejo dovolj bitov in da so njihova eksponentna polja dovolj velika, tako da so rezultati operacij števil s plavajočo vejico natančni. Največje predstavljivo število s plavajočo vejico, ki se uporablja za predstavitev položajev, normal ali teksturnih koordinat, mora biti velikosti vsaj barve vsaj Za vse ostale vrednosti mora biti veliko vsaj 32 2, za Večina eno natančnih (angl. Single-precision) formatov števil s plavajočo vejico zadovoljijo te zahteve. Vsako število s pomično vejico je pravo za vnos GL ukaza, ki potrebuje podatek s tem številom. Kakšen bi bil rezultat, če to število ne bi bilo takšno, je nedefiniran, ne sme pa voditi k izjemi ali prekinitvi v delovanju GL. Tako na primer deljenje z številom nič poda nedefiniran rezultat, ne sme pa vodit do izjeme ali prenehanja delovanja programa. - GL STANJE GL vzdržuje določeno stanje. Spremenljivke stanja so kategorizirane poljubno po svojih funkcijah. Čeprav je bilo rečeno, da se GL operacije vršijo na okenskem pomnilniku, pa le ta ni del GL stanja. Obstajata dva tipa stanj. Prvo je GL server stanje in se nahaja v GL serverju. Večina GL stanj sodi v to kategorijo. Drugo stanje je GL klient, ki se nahaja v GL klientu. To stanje mora biti posebej navedeno. Če ni, se vsa stanja nanašajo na GL server stanje. Vsak primer GL vsebine podaja vrsto GL server stanj. Vsaka povezava med klientom in serverjem se nanaša tako na GL server kot na GL klient stanje.

49 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 37 - SINTAKSA GL UKAZOV GL ukazi so funkcije ali postopki. Različne skupine ukazov lahko izvajajo enake operacije, razlikujejo pa se v tem, kako so do njih informacije dostavljene. Struktura GL ukazov je takšna, da imenu ukaza sledijo do 4 znaki. Prvi znak je število in nakazuje tip števila, ki mora biti naveden v ukazu. Drugi znak ali dva znaka nakazujeta tip navedenega argumenta (8-bitno celo število, 16-bitno celo število, 32-bitno celo število, enonatančno število s plavajočo vejico, dvonatančno število s plavajočo vejico). Zadnji znak, če je naveden, nakazuje na to, da ukaz prejme kazalec na polje vrednosti (npr. vektor). Poglejmo si dva primera uporabe: GL.glVertex3f (float x, float y, float z); in GL.glVertex2sv (short[2]); Tako ima splošna oblika ukaza naslednjo obliko: GL.Ime_ukaza {ϵ1234}{ ϵ b s i f d ub us ui}{ ϵ v} ( T arg 1, T arg 2,..., T arg N ); V oklepajih {} so znaki oziroma pari znakov, znak ϵ pomeni, da argumenta ni. Argumenti v oklepajih [(args)] so lahko ali pa niso prisotni. Poglejmo si spodnjo tabelo kaj pomeni posamezen znak ali par znakov: Znaki b s i f d ub us ui Ujemajoč se GL tip byte short int float double unsigned byte unsigned short unsigned int Tabela 6: Ujemajoče se pripone znakov k GL tipom (se navezujejo na tabelo 7)

50 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 38 Argumenti arg 1 do arg N imajo tip T, ki pomeni enega od znakov ali parov znakov iz tabele 6 (če ni nobenega znaka, je argument podan eksplicitno). Če zadnji znak ni v, potem je N določen s številom 1, 2, 3 ali 4 (če ni števila, je argument predhodno določen). Če je zadnji znak v, potem je bil določen samo prvi argument (arg 1 ) in predstavlja polje vrednosti nekega tipa. Če želimo določiti nesigniran tip, dodamo prefiks u na začetku imena tipa. Poglejmo si primer: GL.glNormal3{fd} (T arg); pomeni dvojno deklaracijo, in sicer: Gl.glNormal3f (float arg1, float arg2, float arg3);, in Gl.glNormal3d (double arg1, double arg2, double arg3);, medtem ko deklaracija: Gl.glNormal3{fd}v (T arg); pomeni naslednji dve deklaraciji: GL.glNormal3fv (float arg[3]);, in GL.glNormal3dv (double arg[3]); Torej, če na koncu ukaza stoji črka v, se polje argumetov določi predhodno. Tako se argumenti za ukaz glnormal3fv določijo kot: float arg[] = new float[3] {vrednost1, vrednost 2, vrednost3}; Argumenti, ki imajo predhodno določene tipe, imajo lahko enega od 14 tipov (ali njihovih kazalcev), ki so povzeti v spodnji tabeli. Torej, če na koncu ukaza stoji črka v, se polje argumetov določi predhodno. Tako se argumenti za ukaz glnormal3fv določijo kot je zapisano v tabeli 7:

51 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 39 GL tip Minimalno št. bitov Opis bool 1 Boolean byte 8 Signirano polno celo št. ubyte 8 Nesignirano polno celo št. char 8 Znak short 16 Signirano polno celo št. ushort 16 Nesignirano polno celo št. int 32 Signirano polno celo št. uint 32 Nesignirano polno celo št. sizei 32 Nenegativno binarno celo št. enum 32 Oštevilčena binarna vrednost celega št. intptr ptrbits Signirano polno celo št. sizeintptr ptrbits Nesignirano polno celo št. bitfield 32 Polje bitov float 32 Število s plavajočo vejico clampf 32 Število s plavajočo vejico med [0,1] double 64 Število s plavajočo vejico clampd 64 Število s plavajočo vejico med [0,1] Tabela 7: GL podatkovni tipi - OSNOVNE GL OPERACIJE Slika 15: Blokovni diagram GL

52 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 40 Slika 15 prikazuje blokovni diagram GL. Ukazi vstopijo v GL na levi strani. Nekateri ukazi podrobno prikazujejo, kako naj se izrišejo geometrijski objekti, spet drugi kontrolirajo, kako ravnati z objekti v različnih stanjih. Večina ukazov je lahko zbranih v prikazovalno listo GL za procesiranje v nekem kasnejšem času. Če pa niso v vrsti, so učinkovito poslani skozi procesirni cevovod. Prva faza priskrbi učinkovito sredstvo za aproksimacijo krivuljne in površinske geometrije z ovrednotenjem vhodnih polinomskih funkcij. Naslednja faza deluje na opisu geometrijskih primitivov z verteksi: točke, segmenti linij in poligoni. V tej fazi so poligoni transformirani in primitivi obrezani v vidno polje tako, da so pripravljeni na naslednjo fazo rasterizacijo. Rasterizator ustvari v okenskem pomnilniku serijo naslovov in vrednosti z uporabo dvodimenzionalnega opisa točk, segmentov linij ali poligonov. Vsak tako ustvarjen segment preide na naslednjo stopnjo. Nad njim se izvedejo razne operacije, preden spremenijo okenski pomnilnik. Te operacije vključujejo pogojne posodobitve v okenski pomnilnik na podlagi vhodov in predhodno shranjenih vrednosti globin (da vplivajo na globinski pomnilnik), mešanje vhodnih barv s shranjenimi barvami in tudi druge logične operacije. Obstaja pa tudi način, da obidemo procesiranje verteksov po cevovodu. To lahko storimo s pošiljanjem podatkov o fragmentih direktno na operacijo za posamezen fragment. To privede do tega, da se blok pikslov vpiše direktno v okenski pomnilnik. - UPORABA FUNKCIJ BEGIN/END V GL se večina geometrijskih objektov izriše s serijo koordinat, ki podrobno označijo vertekse, opcijsko pa tudi normale, teksturne koordinate in barve med funkcijama Begin in End. Tako se lahko izriše vrsta geometrijskih objektov: točke, segmenti linij, zanke segmentov linij, ločeni segmenti linij, poligoni, trakovi trikotnikov (angl. triangle strip), pahljača trikotnikov (angl. striangle fan), ločeni trikotniki, štiristrani trakovi in ločeni štiristrani trakovi (angl. quadrilateral strip). Vsak verteks je definiran z dvema, tremi ali štirimi koordinatami. Za vsak verteks se prav tako lahko izračunavajo normale, teksturne koordinate, barva, sekundarna barva, itd. Izračuni normal se v GL uporabljajo pri izračunih osvetljenosti. Normala je tridimenzionalni vektor, ki se lahko izračuna z uporabo treh koordinat. S teksturnimi

53 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 41 koordinatami je določeno, kako se slika teksture mapira na nek primitiv. Več delni seznam koordinat pa določa, kako se več slik tekstur mapira na na nek primitiv. Primarna in sekundarna barva se določi vsakemu verteksu posebej. Vrednosti barv se lahko določi iz trenutnih barv ali pa iz osvetlitve, če je osvetljenost omogočena. Trenutne vrednosti so del GL stanja. Verteksi in normale so lahko transformirani, na barve lahko vpliva ali jih zamenja osvetlitev, teksturne koordinate pa so lahko transformirane ali pa nanje vpliva funkcija za generiranje teksturnih koordinat. Preden lahko določimo barvo vsakemu verteksu, je potrebno določiti njegove koordinate, trenutno normalo, značilnosti materiala, itd. Ker se barva določa vsakemu verteksu posebej, procesiran verteks obsega vse podatke povezane z njim (koordinate, barvo, razne zastavice, teksure, itd). Ko je primitiv izrisan, je obrezan v vidno polje. To lahko spremeni koordinate verteksa, teksturne koordinate ali barve. V primeru segmentov linij in poligonov lahko obrezovanje privede do vstavljanja novih verteksov v primitiv. Verteksi, ki določajo primitiv in morajo biti izrisani, vsebujejo tudi barve in/ali teksturne koordinate. Slika 16: Zbiranje in procesiranje primitivov Verteksi, ki kreirajo neko podprto geometrijsko obliko, so določeni z dvema ukazoma. To sta: GL.glBegin (enum mode); in GL.glEnd();

54 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 42 Število definiranih verteksov med tema dvema ukazoma je neomejeno. V aplikaciji Senzorski pas uporabljam kreiranje dveh geometrijskih oblik. Ti dve sta linije in trikotniki, zato bom opisal le te dve. Uporaba glbegin in glend funkcij kaže spodnji odsek kode: GL.glBegin(GL.GL_LINES); //zacetek risanja linij //ostala koda (izris verteksov) GL.glEnd(); //konec risanja linij GL.glBegin(GL.GL_TRIANGLES); //zacetek risanja trikotnikov // ostala koda (izris verteksov, poligonov) GL.glEnd(); //konec risanja trikotnikov Posamezna linija je določena z dvema verteksoma. Linije se formirajo z obkrožujočimi pari verteksov in klici funkcij glbegin in glend, če je v glbegin funkciji argument GL.GL_LINES. V tem primeru prva dva verteksa med funkcijama glbegin in glend tvorita prvo linijo, vsak naslednji par verteksov pa naslednje segmente linij. Podobno kot linije se trikotniki formirajo s klici funkcij glbegin in glend, če je v glbegin funkciji argument GL.GL_TRIANGLES. Tako prvi trije verteksi formirajo prvi trikotnik, drugi trije naslednjega itd. Število verteksov mora biti 3n + k, kjer je k 0, 1 ali 2. Če k ni nič, so zadnji verteksi ignorirani. Za vsak trikotnik je verteks s 3n prvi verteks, verteks 3n + 1 je drugi, verteks 3n + 2 pa je zadnji. - DOLOČANJE VERTEKSA Verteksi se lahko določijo s koordinatami v dveh, treh ali štirih dimenzijah, in sicer na dva načina: GL.glVertex{234}{sifd} (T coords); ali GL.glVertex{234}{sifd}v (T coords);. Gre za štiri koordinate: x, y, z in w. Tako nastavi klic glvertex2 samo koordinati x in y, medtem ko glvertex4 nastavi vse štiri koordinate. Če se verteksi definirajo zunaj funkcij glbegin in glend, bo to privedlo do nedefiniranega obnašanja. Za pravilno predstavitev verteksov moramo za vsak verteks posebej izračunati njegove normale, barve, teksture, itd. V aplikaciji Senzorski pas izračunavamo vsakemu verteksu

55 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 43 posebej barvo in normalo. Tako izrišemo en trikotnik v modelu robota na način, kot kaže spodnji odsek kode, ki ga definiramo v funkciji OnDraw: //določanje barve verteksom GL.glColor3ub((byte)p.red1,(byte)p.green1, (byte)p.blue1); //računanje normal verteksom GL.glNormal3f((float)p.polygonP1.X, (float)p.polygonp1.y, (float)p.polygonp1.z); //izris samih verteksov GL.glVertex3f((float)p.polygonP1.X, (float)p.polygonp1.y, (float)p.polygonp1.z); //določanje barve verteksom GL.glColor3ub((byte)p.red2, (byte)p.green2, (byte)p.blue2); //računanje normal verteksom GL.glNormal3f((float)p.polygonP2.X, (float)p.polygonp2.y, (float)p.polygonp2.z); //izris samih verteksov GL.glVertex3f((float)p.polygonP2.X, (float)p.polygonp2.y, (float)p.polygonp2.z); //določanje barve verteksom GL.glColor3ub((byte)p.red3, (byte)p.green3, (byte)p.blue3); //računanje normal verteksom GL.glNormal3f((float)p.polygonP3.X, (float)p.polygonp3.y, (float)p.polygonp3.z); //izris samih verteksov GL.glVertex3f((float)p.polygonP3.X, (float)p.polygonp3.y, (float)p.polygonp3.z); Kot je razvidno iz ukazov, uporabljamo za prikaz modela iz trikotnikov vertekse s tremi koordinatami, torej x, y in z. Zato je tudi izračun barve in normale potreben na treh koordinatah. S pomočjo teh izračunov lahko model robota, ki je sestavljen iz trikotnikov, tudi osvetljujemo. - TRANSFORMACIJE KOORDINAT Verteksi, normale in teksturne koordinate se transformirajo, preden se njihove koordinate uporabijo za tvorbo slike v okvirnem pomnilniku. Najprej bomo opisali, kako se koordinate verteksov transformirajo in kako se izvrši ta transformacija.

56 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 44 Slika 17: Transformacija verteksov Slika 17 kaže zaporedje transformacije verteksov. Koordinate verteksov, ki so predstavljene v GL, so koordinate objekta, ki uporabljajo matriko modela (angl. model - view matrix), da lahko dobimo vidne koordinate. Za vidne koordinate potrebujemo tudi projekcijsko matriko (angl. projection matrix), da so podane koordinate ustrezno obrezane. Pri obrezanju koordinat se uporabi zmanjšanje perspektive (angl. perspective division), da dobimo normalizirane koordinate. Zadnji korak je transformacija vidnega polja (angl. viewport transformation), da dobimo zaslonske koordinate. Koordinate objekta, vidne koordinate in obrezane koordinate so štiridimenzionalne (x, y, z in w). Tako sta modelna in projekcijska matrika velikosti 4 x 4. Če je verteks podan v objektnih koordinatah z w z y x in je matrika modela označena z M, potem so vidne koordinate verteksa definirane z: = w z y x M w z y x e e e e. (5.4.1)

57 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 45 Če je P projekcijska matrika, so obrezane koordinate: = e e e e c c c c w z y x M w z y x. (5.4.2) Normalizirane koordinate verteksa pa so definirane z: = c c c w c c w c d d d w z y x z y x / / /. (5.4.3) Da dobimo koordinate modelne in projekcijske matrike ter matriko zornega kota, moramo uporabiti OpenGL funkcije, in sicer na naslednji način: GL.glGetDoublev(GL.GL_MODELVIEW_MATRIX, modelview); //modelna matrika GL.glGetDoublev(GL.GL_PROJECTION_MATRIX, projection); //projekcijska matrika GL.glGetIntegerv(GL.GL_VIEWPORT, viewport); //matrika zornega polja - MATRIKE Projekcijska matrika in matrika modela se lahko spreminjata z vrsto ukazov. Matrika, na katero vplivamo, določimo z matričnim načinom, in sicer s funkcijo glmatrixmode (enum mode), ki lahko kot argument prejme vnaprej definirane konstante: GL.GL_TEXTURE, GL.GL_MODELVIEW, GL.GL_COLOR ali GL.GL_PROJECTION. Poznamo dva ukaza, ki vplivata na trenutno matriko: GL.glLoadMatrix{fd} (T m[16]); GL.glMultMatrix{fd} (T m[16]); Funkcija glloadmatrix prejme kot argument kazalec na matriko velikost 4 x 4, ki imajo 16 vrednosti - 16 števil z plavajočo vejico: a a a a a a a a a a a a a a a a. (5.4.4)

58 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 46 Ukaza glloadmatrix v aplikaciji Senzorskega pasu ne uporabljamo, saj ukaz glloadidentity učinkovito kliče matriko funkcijo glloadmatrix s (privzeto) matriko identitete oblike: (5.4.5) Obstaja še veliko drugih ukazov za manipulacijo z matrikami: glrotate, gltranslate, glscale, glfrustum in glortho. Ker v aplikaciji Senzorski pas ne uporabljamo vseh teh funkcij, si bomo ogledali le delovanje uporabljenih. Prva je: GL.glRotate{fd} (Tϴ, Tx, Ty, Tz);, kjer konstanta ϴ določi kot rotacije v stopinjah, koordinate vektorja v pa so določene z T z y x v ) ( =. Izračunana matrika pomeni rotacijo v nasprotni smeri urinega kazalca skozi izhodišče glede na os, po kateri rotacija poteka. Tako dobimo matriko: R. (5.4.6) Če je T z y x v v u ) ( / = =, (5.4.7) in = x y x z y z S, (5.4.8)

59 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 47 ima rotacijska matrika naslednjo enačbo: R T T = uu + cos Θ * ( I uu ) + sin Θ * S. (5.4.9) Druga pogosto uporabljena funkcija je: GL.glTranslate{fd} (Tx, Ty, Tz);, ki poda koordinate translacijskega vektorja v obliki ( x matriko glede na podan vektor: y z ) T. Dobimo translacijsko x y. (5.4.10) z 1 Našteti funkciji sta najbolj uporabni pri raznih rotacijah in translacijah posameznih verteksov, trikotnikov, poligonov, itd., ki tvorijo celoten objekt ali sceno iz večih objektov. Tako lahko posamezne objekte poljubno rotiramo, prenašamo in tako dobimo željeno sceno. Če uporabimo funkcijo glrotate ali gltranslate, se v trenutno matriko shrani ta sprememba. Vsak naslednji klic teh funkcij doda spremembo trenutni matriki in se nato ponovno shrani. Spremembe se tako nalagajo v nekakšen sklad matrik. Če imamo v sceni več objektov in ne želimo, da v trenutnem GL načinu matrike vplivajo druga na drugo, moramo uporabiti dodatne funkcije. To sta: GL.glPushMatrix(); in GL.glPopMatrix(); Funkcija glpushmatrix zmanjša indeks v skladu, in tako dobimo GL stanje pred klicem funkcij z matrikami (npr. gltranslate), obenem pa kopira matriko nad in pod tem indeksom (torej shrani stanje pred in po spremembi). Medtem ko funkcija glpopmatrix izbriše trenutno matriko in nastavi naslednjo v skladu.

60 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 48 Poglejmo si dejansko uporabo teh funckij v aplikaciji Senzorskega pasu: GL.glLoadIdentity(); //zamenja trenutno modelno matriko z matriko identitete GL.glTranslatef(0.0f, 0.0f, zdistance); //določena s strani uporabnika GL.glRotatef(xRotAng, 0, 1, 0); //rotacija po x osi GL.glRotatef(yRotAng, 1, 0, 0); //rotacija po y osi GL.glPushMatrix(); //nova modelna matrika CoordinateSystem(); //izris koordinatnega sistema GL.glPopMatrix(); //nastavitev predhodne modelne matrike - BARVE IN OSVETLJEVANJE Barve pred rasterizacijo prihajajo v različnih formatih. Slika 18 prikazuje procesiranje RGBA barv pred rasterizacijo, tabela 8 pa povzetek pretvorbe, ki se zgodi na komponentah rdeče, zelene in modre barve ter parametra alfa (linearna interpolacijska formula), glede na klican ukaz, ki je nastavil barvo. Slika 18: Procesiranje barv

61 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 49 GL tipi ubyte Pretvorba c / (2 8 1) byte ( 2 c + 8 1) / (2 1) ushort c / (2 16 1) short ( 2 c ) / (2 1) uint c / (2 32 1) int ( 2 c ) / (2 1) float double c c Tabela 8: Pretvorbe komponent (barve, normale in globinske komponente se pretvorijo v notranjo prezentacijo števila s plavajočo vejico z uporabo enačb iz tabele) Če je osvetlitev omogočena, se tvori barvni indeks ali primarne in sekundarne barve. Če osvetlitve ni, se trenutni barvni indeks ali barva uporabi za nadaljno obdelavo. Po osvetlitvi se RGBA barva obreže na vrednost med [0,1] in barvni indeks dobi fiksno vrednost. GL osvetlitev izračunava barvo za vsak verteks posebej in jo nato pošlje GL oknu. To se zgodi s pomočjo enačb, ki jih definira klient (programer). Ta definira osvetlitveni model in zbirko parametrov, v katerih so zajete koordinate verteksov, koordinate enega ali več izvora luči, normale in parametri, ki definirajo svetlobne izvire in trenutni material. Osvetlitev in barve se vključijo in izključijo s klici funkcij glenable in gldisable, s parametrom GL.GL_LIGHTNING oziroma GL.GL_COLOR_MATERIAL. Če je osvetlitev izključena se trenutna primarna in sekundarna barva verteksu določi iz navedene primarne in sekundarne barve. Če je osvetlitev vključena, pa se primarna in sekundarna barva verteksov določi iz trenutnih osvetlitvenih parametrov.

62 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 50 Poglejmo si kako te parametre omogočimo v aplikaciji: GL.glEnable(GL.GL_LIGHTING); GL.glEnable(GL.GL_COLOR_MATERIAL); //preostala koda (izris celotne scene) GL.glDisable(GL.GL_COLOR_MATERIAL); GL.glDisable(GL.GL_LIGHTING); - OPERACIJE OSVETLITVE Osvetlitveni parameter je sestavljen iz enega od petih tipov: barve, položaja, smeri, parametra realnega števila ali vrednosti bool. Barvni parameter je definiran s poljem štirih števil s plavajočo vejico, po eden za rdečo, zeleno, modro komponento ter parameter alfa (v tem vrstem redu). Pozicijski parameter je določen iz polja štirih koordinat (števil s plavajočo vejico), po eden za x, y, z in w komponento (v tem vrstnem redu), ki določi položaj in koordinate objekta. Parameter smeri je sestavljen iz treh koordinat (prav tako števil s plavajočo vejico), ki definirajo x, y in z in s tem smer objekta. Parameter realne vrednosti je število s plavajočo vejico. Različne vrednosti in njihove tipe prikazuje tabela 9. Izračun osvetlitve je nedoločen, če je vrednost parametra zunaj obsega vrednosti, podane v tabeli. Parameter Tip Privzeta vrednost Opis a barva (0.2, 0.2, 0.2, 1.0) cm Ambientna barva materiala (ambient) d barva (0.8, 0.8, 0.8, 1.0) cm Razpršena barva materiala (diffuse) s barva (0.0, 0.0, 0.0, 1.0) cm Odsevna barva materiala (specular) e barva (0.0, 0.0, 0.0, 1.0) cm Oddajna barva materiala (emissive) s rm realno št. 0.0 Odsevni eksponent (doseg [0.0, 128.0]) a m realno št. 0.0 Barvni indeks ambiente svetlobe d m realno št. 1.0 Barvni indeks razpršene svetlobe s m realno št. 1.0 Barvni indeks odsevne svetlobe Tabela 9: Povzetek osvetlitvenih parametrov, uporabljenih v aplikaciji

63 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 51 Izračunov barv ne bomo predstavljali, saj so zelo kompleksni, za delovanje aplikacije pa niso primarnega pomena. Barve se dodajajo z dodajanjem komponent. Množenje barv z skalarjem pomeni množenje vsake njene komponente s skalarjem. Osvetlitev ustvari verteksu dve barvi: primarno barvo osvetlitvenega modela c pri in sekundarno barvo c sec c es. Vrednosti, ki kontrolira izračun barve. c pri in c sec sta odvisni od Vsi izračuni barv se vršijo v vidnih koordinatah. Seveda lahko vse te parametre nastavimo vsakemu izvoru svetlobe (luči) posebej. V aplikaciji Senzorskega pasu je možno dodati tudi do osem luči, katerim lahko potem uporabnik spreminja osvetlitvene parametre in potem opazuje spremembe osvetlitve poligonov na modelu robota (to si bomo pogledali v specifikacijah osvetlitvenih parametrov). Poglejmo, kako se v aplikaciji Senzorski pas definirajo posamezni tipi svetlobe: //za vsak tip barve se definirajo polja z vrednostmi (privzete vrednosti), ki se lahko potem poljubno spreminjajo s strani uporabnika readonly float[] specreflection = new[] {0.5f, 0.5f, 0.5f, 1.0f}; readonly float[] diffusereflection = new [] {0.5f, 0.5f, 0.5f, 1.0f}; readonly float[] ambireflection = new [] {1.0f, 1.0f, 1.0f, 1.0f}; //sledi specificiranje osvetlitvenih parametrov (v nadaljevanju) - SPECIFIKACIJE OSVETLITVENIH PARAMETROV Osvetlitveni parametri so razdeljeni v tri kategorije: parametri materiala, parametri izvora svetlobe ter svetlobni parametri modela. Naštete funkcije predstavljajo nastavitve osvetlitvenih parametrov, ki so uporabljeni v aplikaciji (uporabljeni niso le svetlobni parametri modela): GL.glMaterial{if} (enum face, enum pname, T parameters); GL.glMaterial{if}v (enum face, enum pname, T parameters); GL.glLight{if} (enum face, enum pname, T parameters); GL.glLight{if}v (enum face, enum pname, T parameters); Parameter pname je konstanta in lahko ima različne vrednosti, kot prikazuje tabela 10. Če je ukaz v obliki vektorja, je ta parameter kazalec na skupino vrednosti, na katere se naj nastavi parameter. Za ukaz glmaterial mora biti parameter face eden od naslednjih

64 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 52 parametrov: GL_FRONT, GL_BACK, GL_FRONT_AND_BACK, odvisno od tega, kakšno obnašanje materiala želimo. Pri ukazu gllight je ta konstanta LIGHTi in ima obliko LIGHT0 + i. Tabela 10 za vse tri skupine ukazov podaja korespondenco med preddefiniranimi imeni konstant in njihovimi izračunanimi vrednosti (enačbe so podane v tabeli 8). Lastnosti materiala se lahko spreminjajo znotraj para ukazov glbegin in glend s klicom funkcije glmaterial. Vendar pa se verteks spremeni šele po uporabi funkcije glend. Parameter Ime Število vrednosti Parametri materiala (glmaterial) a cm GL_AMBIENT 4 d cm GL_DIFFUSE 4 a cm, d cm GL_AMBIENT_AND_DIFFUSE 4 s cm GL_SPECULAR 4 e cm GL_EMISSION 4 Parametri svetlobnega izvora (gllight) a cli GL_AMBIENT 4 d cli GL_DIFFUSE 4 s cli GL_SPECULAR 4 P pli GL_POSITION 4 Tabela 10: Korespondenca med simboli in imeni svetlobnih parametrov, uporabljenih v aplikaciji Senzorski pas Parametre položaja in tudi trenutno matriko modela določimo za vsak posamezen svetlobni izvor, ko je označena lokacija, na kateri se nahaja posamezna luč. Te transformirane vrednosti so vrednosti uporabljene v enačbah za svetlobne izračune.

65 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 53 Smer reflektorske svetlobe je transformirana, kadar za svoj izračun uporablja le skrajni levi del matrike modela velikosti 3x3. Torej če je M u skrajni levi del trenutne matrike d modela M, je reflektorska svetloba d d x y z transformirana v: d x d y d z = M d d d u x y, (5.4.11) z Posamezno luč izklopimo ali vklopimo s klicem funkcij glenable ali gldisable s parametrom vrednsti LIGHTi (i ima vrednosti od 0 do n 1, kjer je n število implementiranih luči). Če je i-ta luč izklopljena, je njen indeks odstranjen iz enačbe in ni navzoč pri končnem rezultatu. Trenutni barvi je tudi mogoče dodati eno ali več lastnosti materiala, tako da ima te vrednosti nenehno na voljo in jih spremlja. Te lastnosti se lahko vklopijo ali izklopijo ponovno s klicom funkcij glenable s parametrom GL_COLOR_MATERIAL in gldisable. Ukaz ima naslednjo obliko: GL.glColorMaterial (enum face, enum mode);, kjer ima lahko parameter face naslednje vrednosti: GL_FRONT, GL_BACK ali GL_FRONT_AND_BACK, odvisno od tega, ali želimo obarvati sprednji, zadnji ali oba dela materiala. Parameter mode pa lahko ima vrednosti GL_EMISSION, GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR ali GL_AMBIENT_AND_DIFFUSE. Če je parameter mode enak GL_EMISSION, GL_AMBIENT, GL_DIFFUSE ali GL_SPECULAR potem spremlja trenutno barvo vrednosti e cm, a cm, d cm ali s cm GL_AMBIENT_AND_DIFFUSE, trenutno barvo spremljata vrednosti. Če je parameter mode a cm in d cm. Če se spremenijo lastnosti materiala, so spremembe trajne, dokler ni določena nova barva ali ponovno nova lastnost materiala.

66 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 54 Poglejmo si še torej specificiranje osvetlitvenih parametrov v aplikaciji Senzorski pas: //nastavimo parametre barv za posamezne tipe svetlobe GL.glColorMaterial(GL.GL_FRONT_AND_BACK, GL.GL_SPECULAR); GL.glColorMaterial(GL.GL_FRONT_AND_BACK, GL.GL_DIFFUSE); GL.glColorMaterial(GL.GL_FRONT_AND_BACK, GL.GL_EMISSION); //nastavimo parametre materiala za posamezne tipe svetlobe GL.glMaterialfv(GL.GL_FRONT_AND_BACK,GL.GL_SPECULAR,specReflection); GL.glMaterialfv(GL.GL_FRONT_AND_BACK,GL.GL_DIFFUSE,diffuseReflection); GL.glMaterialfv(GL.GL_FRONT_AND_BACK,GL.GL_EMISSION,ambiReflection); //sprehodimo se skozi vse dodane luči for (int i = 0; i < numberoflights; i++) { } //omogočimo i-to luč GL.glEnable(GL.GL_LIGHT0 + (uint)i); //spreminjamo parametre željeni luči if (whichlight.equals(i + 1)) { //nastavitev parametrov odsevne svetlobe GL.glLightfv(GL.GL_LIGHT0+(uint)i,GL.GL_SPECULAR, } light[i].specular); //nastavitev parametrov razpršene svetlobe GL.glLightfv(GL.GL_LIGHT0+(uint)i, GL.GL_DIFFUSE, light[i].diffuse); //nastavitev parametrov ambientne svetlobe GL.glLightfv(GL.GL_LIGHT0+(uint)i, GL.GL_AMBIENT, light[i].ambient); //položaj posamezne luči GL.glLightfv(GL.GL_LIGHT0+(uint)i,GL.GL_POSITION, light[i].position);

67 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 55 Sedaj pa si poglejmo še na sliki, kaj pomeni, če spremenimo vrednosti odsevni, razpršeni in/ali ambientni svetlobi. Kot je razvidno iz slike 19, je vrednost vseh štirih parametrov odsevne luči enaka realnemu številu 0,3, vrednost vseh štirih parametrov razpršene luči je enaka realnemu številu 0,6, parametri ambientne svetlobe pa imajo še vedno privzeto vrednost 1. Slika 19: Različne vrednosti odsevne, razpršene in ambientne svetlobe Vse naštete OpenGL spremenljivke, funkcije in izračuni (teh je seveda še veliko) se uporabljajo za izris primitivov, objektov, sestavljenih iz primitivov, in scen, sestavljenih iz več objektov torej generiranje OpenGL grafičnega okna. Brez podrobnega poznavanja teh spremenljivk ter funkcij (njihovih vhodov in izhodov) generiranje takšnih scen kot v aplikaciji Senzorski pas ni možno. Z uporabo drugih, še bolj kompleksnih funkcij OpenGL bi lahko aplikacijo Senzorski pas grafično in uporabno še nadgraditi. Vendar bomo možne izboljšave predstavili kasneje.

68 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki Kalibriranje senzorjev na uporabniškem vmesniku Kot smo že večkrat omenili, je eno od prednosti aplikacije Senzorski pas kalibracija senzorjev. V tem poglavju si bomo podrobno pogledali, kako izberemo za kalibracijo poljuben senzor, kako kalibracija poteka in kateri izračuni po potrebni, da poteka pravilno. Najprej moramo izbrati senzor za kalibracijo. To lahko storimo na dva načina: z izbiro funkcije Kalibriraj senzorje (Sensor calibration) iz menija programa ali s pritiskom na gumb Kalibriraj (Calibration), ki je na voljo v kontrolah za posamezen senzor. Dostop do kalibracije senzorja na oba načina kaže spodnja slika. Slika 20: Izbira kalibracije Ko izberemo kalibracijo se nam odpre kalibracijsko okno. Če smo kalibracijo izbrali na prvi način, moramo izbrati tip in PIN senzorja (na voljo so tisti, ki so nameščeni na model). Če smo izbrali drug način, sta tip in PIN senzorja že določena. Nato izberemo referenčno napetost in število referenčnih točk. Glede na število izbranih točk se izvede linearizacija. Po formulah, ki jih bomo opisali kasneje, izračunamo novo linearizacijsko krivuljo. Več kot je lineariziranih točk, bolj natančno je izračunana linearizacijska krivulja in večja je natančnost senzorja. Za vsako linearizacijsko točko moramo oviro postaviti na točno predpisano razdaljo, ki nam jo sporoči labela poleg gumba, in jo shraniti (pritisnemo poljuben gumb Označi točko (Set point)). Ko smo vnesli vse kalibracijske točke, potrdimo vnos točk s pritiskom na gumb Točke vnešene (Points inputed) ter začnemo kalibracijo senzorja s pritiskom na gumb Začni komunikacijo (Start communication). Podobno kot v pogledu za vračanje podatkov senzorjev se sproti izrisuje oddaljenost objekta od

69 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 57 kalibriranega senzorja. Če smo s kalibracijo zadovoljni, jo shranimo (Save), sicer zavržemo (Discard). Slika 21: Kalibracijski vmesnik Poglejmo torej, kakšni izračuni potekajo pri kalibraciji senzorja. Da lahko uspešno lineariziramo krivuljo (izračunamo konstante in jih pošljemo mikrokontrolerju Atmel na vezju, ki si jih shrani v svoj pomnilnik za vsak PIN posebej), moramo uporabiti izračun dveh funkcij, znani iz programa Excel, to sta SLOPE in INTERCEPT. Funckija SLOPE nam vrne naklon regresijske premice, ki gre skozi podatkovne točke (znani Y-i in znani X-i). Naklon je navpična razdalja, deljena z vodoravno razdaljo med dvema točkama na premici in je mera za spremembo vrednosti y na regresijski krivulji. Znani X-i v aplikaciji Senzorski pas so analogne vrednosti, pretvorjene v digitalne (na kratko A2D), znani Y-i pa so lineanizirane vrednosti, ki se izračunajo za vsako kalibracijsko točko po naslednji formuli: 1 lin _ vr = ( razdalja + k ), (5.5.1) pri čemer je razdalja enaka oddaljenosti objekta od senzorja in k je konstanta, ki ima vrednost 4.

70 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 58 Tako lahko izračunamo vrednost b s pomočjo funcije SLOPE: ( X X ) * ( Y Y ) b =, (5.5.2) 2 ( X X ) kjer so X-i A2D vrednosti za vsako kalibracijsko točko in Y-i so linearizirane vrednosti za vsako kalibracijsko točko. Funkcija INTERCEPT pa nam izračuna točko, kjer bo premica presekala os y z uporabo obstoječih X-ov in Y-ov. Presečišče je točka, ki temelji na regresijski premici najboljšega ujemanja, narisani skozi podatkovne točke znanih X-ov in znanih Y-ov. Tako lahko izračunamo vrednost regresijske premice s pomočjo enačbe: a = Y b * X, (5.5.3) kjer so X-i A2D vrednosti za vsako kalibracijsko točko in Y-i so linearizirane vrednosti za vsako kalibracijsko točko, vrednost b pa izračunamo z enako enačbo kot pri funkciji SLOPE: ( X X ) * ( Y Y ) b =, (5.5.4) 2 ( X X ) kjer so X-i A2D vrednosti za vsako kalibracijsko točko in Y-i so linearizirane vrednosti za vsako kalibracijsko točko. Ko imamo izračunan naklon regresijske premice (SLOPE) in točko, kjer bo premica presekala os y z uporabo obstoječih X-ov in Y-ov (INTERCEPT), lahko izračunamo vse konstante, ki jih moramo poslati mikrokontrolerju Atmel, da se shranijo v pomnilnik. Ko imamo senzorje kalibrirane, vemo, da kažejo pravilno oddaljenost od objekta. Preveriti moramo samo še, če smo pravilno pozicionirali senzorje na našega robota. Najboljši tovrsten test je gibanje robota po prostoru.

71 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki Branje, prikaz in analiza podatkov Senzorskega pasu Do sedaj smo si v tem poglavju podrobno pogledali delovanje aplikacije Senzorski pas, kako je zgrajena, kako deluje in kako jo uporabljamo. Opisali smo zahteve za njeno uporabo, navedli funkcije v aplikaciji in opisali njihovo delovanje. Kot smo že omenili v poglavju 5.3, to je poglavje v katerem smo opisali zgradbo aplikacije, je za branje in prikaz podatkov bistvena podatkovna komponenta. V tem poglavju bomo pregledali dobljene podatke senzorjev na konkretnem primeru gibanju robota po prostoru. Tako bomo dobili odgovor na vprašanje, kako morajo biti senzorji nameščeni, da so podatki, ki jih robot dobiva, smiselni in uporabni ter da se bo lahko sam gibal po prostoru. Poglejmo si torej, kako nam lahko aplikacija Senzorski pas pripomore k pravilni namestitvi senzorjev na robota. Slika 22: Izrisovanje kotov senzorja

72 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 60 Za nameščanje senzorjev na model robota moramo izbrati podroben pogled. Tako imamo več možnosti pri dodajanju senzorjev in tudi več funkcij, s katerimi jih lahko obdelujemo. Prvi korak je torej dodajanje senzorja na model robota, ki si ga naredimo v modelerju po željenih merah in so izpisane na desni strani OpenGL okna. Medtem, ko dodajamo senzor, se interaktivno riše rumena črta, tako da lahko vidimo kam bo senzor gledal, ob tem pa se nam sproti izrisuje njegov horizontalen in vertikalen kot glede na referenčno točko. Ta točka je fiksna in je postavljena na najbolj smiselno točko, na sredini robota spodaj. Referenčna točka je vidna (v podrobnem pogledu) pri dodajanju senzorjev kot mini koordinatni sistem pred modelom robota za lažjo predstavo. Dodajanje senzorja in izris njegovega kota je viden na sliki 22. Kasneje lahko spremenimo njegov položaj glede na referenčno točko, na model lahko namestimo senzor na popolnoma enako mesto kot na robota. Tako bo naš preizkus pravilnega položaja senzorjev res dober, saj bodo kalibrirani senzorji kazali natančno oddaljenost od objektov in lahko bodo na enakem mestu kot na modelu robota ter pod enakim kotom. V ta namen je bil spisan tudi kratek program, ki bo robota ustavil, ko bo kateri koli njegovih senzorjev dosegel rdečo območje, torej bo zelo blizu nekega objekta. Kako bomo vedeli, če smo pravilno namestili senzorje? Če so IR senzorji pravilno nameščeni, se bo robot, ko bo prišel v bližino nekega objekta, ustavil, uporabniški vmesnik, ki sproti prikazuje oddaljenost objektov od posameznih senzorjev, pa mora senzor, ki je robota ustavil, obarvati rdeče. Če IR senzorji ne bodo pravilno nameščeni, ne bodo zaznali ovire in robot se bo vanjo zaletel. Potek preizkusa: Preizkus pravilne namestitve senzorjev je torej potekal tako, da smo najprej na robota Spartesa postavili maksimalno število senzorjev, torej osem. Pet senzorjev smo namestili na sprednjo masko, po enega pa ob straneh in zadaj. Sprednji senzorji so nameščeni tako, da se snopi ne križajo (saj bi to lahko povzročilo motnjo v njihovi zaznavi), hkrati pa pokrivajo čim večjo površino. Stranska senzorja sta obrnjena naprej, če bi se robot objektu približal od strani. Senzor na zadnji strani robota pa gleda nazaj, da omogoča vzvratno gibanje. Namestitev senzorjev in navidezne snope zaznave (vidno polje) kaže slika 23.

73 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 61 Slika 23: Navidezni snopi dosega senzorjev Po namestitvi senzorjev je sledilo gibanje robota po sobi, kjer je imel nastavljene različne ovire. Po sobi, po kateri se je robot vozil, smo nastavili spodaj navedene ovire: majhna ovira (kovček, manjši od robota), srednja ovira (stol), večja ovira z globino (miza), oviro s površino, ki jo IR senzor težko zazna (črna podlaga).

74 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 62 Na sliki 24 so razvidne vse dejansko uporabljene ovire. Slika 24: Preizkus pravilne namestitve senzorjev Rezultati preizkusa: Robot Spartes se je pred vsemi ovirami uspešno ustavil, takoj ko je kateri od senzorjev zašel v rdeče območje. Predvidevali smo, da bi največ težav lahko povzročala miza, ki ima veliko»praznine«, vendar so bili senzorji pravilno postavljeni. Tako so jo zaznali trije senzorji, dva pa sta dosegla rdeče območje in robot se je ustavil. Slika 25 kaže, kako so senzorji zaznali mizo, torej oviro, o kateri smo menili, da bo povzročala največ težav. Ugotovitve preizkusa: Preizkus je bil uspešen in je potrdil trditev, da je pravilna postavitev senzorjev zelo pomembna, saj bi se v nasprotnem primeru robot lahko zaletel v katero od ovir. Dokazal je tudi, da je osem senzorjev dovolj, da lahko srednje velikega robota vodimo po sobi z ovirami. Število senzorjev bi lahko bilo tudi manjše, toda z manjšim številom se zmanjšuje zanesljivost gibanja robota brez trka. S preizkusom smo tudi preverili, ali je bila

75 Urban Vidovič, Diplomsko delo: Računalniška podpora robotski senzoriki 63 kalibracija natančna in ali senzorji res kažejo pravo oddaljenost od ovir. Senzorji so kazali točno oddaljenost od ovir, aplikacija pa je bila natančna in se je hitro odzivala na spremembe senzorjev. Takšno preverjanje oddaljenosti od objektov brez aplikacije Senzorski pas ne bi bilo mogoče. Slika 25: Zaznava senzorjev pri testu senzorjev z gibanjem Preizkus zaznave senzorjev pa pomeni tudi konec predstavitve izdelka Senzorska oprema. V tem poglavju smo si torej natančno ogledali delovanje in uporabo aplikacije Senzorski pas ter njenih funkcij. Videli smo, kako deluje računalniška podpora robotski senzoriki pri izdelku Senzorska oprema, predstavitev pa je bila uspešno zaključena s preizkusom zaznavanja ovir med gibanjem robota. Delovanje Senzorske opreme bi bilo zelo zanimivo preveriti tudi na robotu, ki bi imel drugačno obliko in druge dimenzije. Prepričani smo, da bi bilo pri manjšem robotu za uspešen preizkus dovolj manjše število senzorjev, pri večjem robotu pa bi bilo verjetno smiselno razmisliti o večjem številu.

Računalništvo in informatika Računalniška omrežja. Računalniška omrežja. Osnovni pojmi. prof. Andrej Krajnc univ. dipl.inž.

Računalništvo in informatika Računalniška omrežja. Računalniška omrežja. Osnovni pojmi. prof. Andrej Krajnc univ. dipl.inž. Konec 1 Računalništvo in informatika Računalniška omrežja prof. univ. dipl.inž. Računalniška omrežja Konec 2 Osnovni pojmi Konec 3 komuniciranje pomeni prenos sporočila iz izvora v ponor preko prenosnega

Více

Vaja 2 Iskanje z razvijanjem v širino

Vaja 2 Iskanje z razvijanjem v širino Vaja 2 Iskanje z razvijanjem v širino 1. Splošna predstavitev problema Preden se lotimo samega algoritma moramo definirati nov pojem graf. Graf G je v teoriji grafov definiran kot dvojica G={V, P}. V je

Více

Matija Lokar: PODATKOVNE STRUKTURE VRSTA. List za mlade matematike, fizike, astronome in računalnikarje

Matija Lokar: PODATKOVNE STRUKTURE VRSTA. List za mlade matematike, fizike, astronome in računalnikarje List za mlade matematike, fizike, astronome in računalnikarje ISSN 0351-6652 Letnik 15 (1987/1988) Številka 5 Strani 275 279 Matija Lokar: PODATKOVNE STRUKTURE VRSTA Ključne besede: matematika, računalništvo,

Více

Navodila za uporabo Garmin Nüvi 1200

Navodila za uporabo Garmin Nüvi 1200 Navodila za uporabo Garmin Nüvi 1200 Kratek povzetek navodil in uporabniški priročnik ste dobili zraven aparata. Tukaj bomo še enkrat omenili pomembnejše postopke uporabe. 1. Predpriprava Prižgite aparat

Více

evropskega emblema v povezavi s programi EU

evropskega emblema v povezavi s programi EU Uporaba evropskega emblema v povezavi s programi EU Smernice za upravičence in ostale tretje strani Oktobre 2012 Corporate Communication Uporaba evropskega emblema v povezavi s programi EU - smernice za

Více

Analiza naravne svetlobe

Analiza naravne svetlobe Analiza naravne svetlobe Analizirana je naravna svetloba v treh prostorih: bivalni prostor v kleti (1), bivalni prostor v pritličju (2) ter otroška soba v mansardi (3). Analize so narejene s programom

Více

Računalniške delavnice FMF: Delavnica MPI

Računalniške delavnice FMF: Delavnica MPI Računalniške delavnice FMF: Delavnica MPI Matevž Jekovec matevz.jekovec@fri.uni-lj.si Laboratorij za vseprisotne sisteme UL FRI lusy.fri.uni-lj.si 18. april 2014 22. maj 2014 Motivacija Moorov zakon: število

Více

INFORMATIKA. Uvod v HTML - 2. del

INFORMATIKA. Uvod v HTML - 2. del 1. Povezave Uvod v HTML - 2. del Del besedila lahko naredimo aktivnega. To pomeni, da se bo uporabniku, če bo kliknil nanj, odprla neka druga datoteka ali pa drug del istega dokumenta. Ta druga datoteka

Více

Prodaja, servis, svetovanje za KRIO SAVNO in izvajanje KRIO TERAPIJE CRYO SAUNA SPACE CABIN BY CRYOMED

Prodaja, servis, svetovanje za KRIO SAVNO in izvajanje KRIO TERAPIJE CRYO SAUNA SPACE CABIN BY CRYOMED Prodaja, servis, svetovanje za KRIO SAVNO in izvajanje KRIO TERAPIJE CRYO SAUNA SPACE CABIN BY CRYOMED Zakaj naše Krio savne? Cryomed je vodilni proizvajalec Krio savn na svetu. Krio savne proizvajajo

Více

POSEBNI POGOJI ZA PROMOCIJE PAKETOV KOMBO FEBRUAR (v nadaljevanju: Posebni pogoji promocije Kombo Februar)

POSEBNI POGOJI ZA PROMOCIJE PAKETOV KOMBO FEBRUAR (v nadaljevanju: Posebni pogoji promocije Kombo Februar) POSEBNI POGOJI ZA PROMOCIJE PAKETOV KOMBO FEBRUAR (v nadaljevanju: Posebni pogoji promocije Kombo Februar) Družba A1 Slovenija, d. d., Šmartinska cesta 134B, 1000 Ljubljana (v nadaljevanju: A1), je gospodarska

Více

zlatarna E.LECLERC Po ok Od 1O. januarja do 31. decembra 2O18

zlatarna E.LECLERC Po ok Od 1O. januarja do 31. decembra 2O18 zlatarna E.LECLERC Po ok Od 1O. januarja do 31. decembra 2O18 KREATORJI Alice Varini 2 1 3 4 5 7 KREATORJI 9 6 8 10 Renato Bertuzzo NAŠ NAKIT IMA DVELETNO GARANCIJO ZA VSE OKVARE IN PRIKRITE NAPAKE 11

Více

KVIZ Osnove elektrotehnike II magnetostatika

KVIZ Osnove elektrotehnike II magnetostatika KVIZ Osnove elektrotehnike II magnetostatika 1. KVIZ : Sila med tokovodniki 1. Določite silo med dvema ravnima, tankima, vzporednima vodnikoma s tokoma 50 A na dolžini 10 m. Vodnika sta razmaknjena za

Více

Intervalna ocena parametra

Intervalna ocena parametra Psihologija UL,. st., Statistično 5.. Ocenjevanje araetrov Univerza v Ljubljani, ilozofska fakulteta, Oddelek za sihologijo Študij rve stonje Psihologija. seester, redet Statistično Izr. rof. dr. Anja

Více

Ocena požarnih nevarnosti, tveganj, ogroženosti in obremenitev. Ciril Tomše VKGČ II. stopnje

Ocena požarnih nevarnosti, tveganj, ogroženosti in obremenitev. Ciril Tomše VKGČ II. stopnje Ocena požarnih nevarnosti, tveganj, ogroženosti in obremenitev Ciril Tomše VKGČ II. stopnje Vsebina Vsebina predavanja Uvod Ocena požarne obremenitve Metodologija za ugotavljanje ocene požarne ogroženosti

Více

FM52 - AD208 - AD278 - AD297

FM52 - AD208 - AD278 - AD297 FM52 - AD208 - AD278 - AD297 Dálkové ovládání s prostorovým čidlem Upravljalna enota s sobnim tipalom 94863103-04 1 Přehled 1 Opis Připojení dálkového ovládání umožňuje z místa jeho instalace řídit následující

Více

PRIROČNIK CELOSTNE GRAFIČNE PODOBE

PRIROČNIK CELOSTNE GRAFIČNE PODOBE PRIROČNIK CELOSTNE GRAFIČNE PODOBE IZDAJATELJ: Državna volilna komisija, zanjo Dušan Vučko AVTORICA: Tanja Užmah, Akademija za likovno umetnost in oblikovanje, Univerza v Ljubljani MENTOR: izr. prof. Boštjan

Více

Zahtevnejši nivo Kazalo:

Zahtevnejši nivo Kazalo: Microsoft Word / Skupinsko delo Zahtevnejši nivo Kazalo: Skupinsko delo 1 Dodajanje komentarjev 1 Sledenje spremembam 2 Shranjevanje različic 2 Razno 2 Zaščita dokumenta 2 Primerjava dokumenta 3 Obrazci

Více

Nikola Tesla ( ) Pripravil : Samo Podlesek,

Nikola Tesla ( ) Pripravil : Samo Podlesek, Nikola Tesla (1856 1943) Pripravil : Samo Podlesek, 1. Kdo je bil nikola tesla? Nikola Tesla je bil srbsko ameriški znanstvenik, izumitelj, fizik, elektroinženir in matematik. Rodil se je 10. julija 1856

Více

PRILOGA ŠT. 1: Gasilski znak

PRILOGA ŠT. 1: Gasilski znak PRILOGA ŠT. 1: Gasilski znak STATUT GASILSKE ZVEZE SLOVENIJE Gasilski znak je gasilska elada. Za elado sta prekrižani z leve bakla, z desne gasilska sekirica. PRILOGA ŠT. 2: Gasilski grb Gasilski grb je

Více

Sistem interaktivne table SMART Board

Sistem interaktivne table SMART Board PROSIMO, RAZMISLITE PRED TISKANJEM Specifikacije Sistem interaktivne table SMART Board Model 685i3 Tehnični podatki SMART Board 685 interaktivna tabla Velikost Š 196,9 cm V 125,7 cm G 13 cm Aktivna površina

Více

Datotečni (zbirčni) sistem - File Management System

Datotečni (zbirčni) sistem - File Management System 1 Datotečni (zbirčni) sistem - File Management System OS upravlja tudi z datotekami (file management) - datotečni sistem omogoča, da uporabnik oz. program dela z datotekami kot z logičnimi bloki, namesto

Více

1. Konstruiranje napajalnika

1. Konstruiranje napajalnika Usmernik 25V - 5A 1 DIY 1. Konstruiranje napajalnika 1.1 Usmernik Usmernik je zgrajen okoli močnostnega operacijskega ojačevalnika OPA549, ki je na električni shemi, na sliki 1, označen z IC6. Izmenično

Více

Spajanje dokumentov v Word-u 2007

Spajanje dokumentov v Word-u 2007 Spajanje dokumentov v Word-u 2007 Matjaž Prtenjak 2/40 Spajanje dokumentov v Word-u 2007 / O E-knjigi O E-knjigi E-knjiga je nastala na podlagi avtorjevih izkušenj s problematiko spajanja dokumentov v

Více

Cone 1 & 2, 21 & 7 Razsvetljava

Cone 1 & 2, 21 & 7 Razsvetljava 7 Razsvetljava Kompaktne svetilke v kovinskem ohišju Z elektronsko vžigno napravo Izvedba z eno, dvema ali tremi sjalkami Način montaže viseča svetilka stenska svetilka vgradna svetilka Ohišje iz kvalitetne

Více

Komunikacije v avtomatiki

Komunikacije v avtomatiki Univerza v Ljubljani Fakulteta za elektrotehniko Komunikacije v avtomatiki Podatkovno linijski sloj Stanislav Kovačič http://vision.fe.uni-lj.si 2013/14 Podatkovno linijski sloj Podatkovno linijski sloj

Více

Državni izpitni center. Osnovna raven MATEMATIKA. Izpitna pola 1. Torek, 26. avgust 2008 / 120 minut

Državni izpitni center. Osnovna raven MATEMATIKA. Izpitna pola 1. Torek, 26. avgust 2008 / 120 minut Š i f r a k a n d i d a t a : Državni izpitni center *M0840* JESENSKI IZPITNI ROK Osnovna raven MATEMATIKA Izpitna pola Torek, 6. avgust 008 / 0 minut Dovoljeno gradivo in pripomočki: Kandidat prinese

Více

Sigma števec za kolo BC 2209 MHR Targa

Sigma števec za kolo BC 2209 MHR Targa SLO NAVODILA ZA UPORABO IN MONTAŽO Kat. št.: 86 02 85 www.conrad.si NAVODILA ZA UPORABO Sigma števec za kolo BC 2209 MHR Targa Kataloška št.: 86 02 85 KAZALO 1. UVOD IN VSEBINA PAKETA...3 2. NAMESTITEV

Více

NiceForm uporabniški priročnik

NiceForm uporabniški priročnik www.nicelabel.com, info@nicelabel.com NiceForm uporabniški priročnik Slovenska izdaja Rev-0809 2008 Euro Plus d.o.o. Pravice pridržane Euro Plus d.o.o. Ulica Lojzeta Hrovata 4c SI-4000 Kranj, Slovenia

Více

UTEMELJITEV POVEČANJA UPORABE SIMULACIJSKE PROGRAMSKE OPREME V ROBOTSKIH APLIKACIJAH V SLOVENIJI

UTEMELJITEV POVEČANJA UPORABE SIMULACIJSKE PROGRAMSKE OPREME V ROBOTSKIH APLIKACIJAH V SLOVENIJI UNIVERZA V LJUBLJANI Fakulteta za elektrotehniko Karl Jerman UTEMELJITEV POVEČANJA UPORABE SIMULACIJSKE PROGRAMSKE OPREME V ROBOTSKIH APLIKACIJAH V SLOVENIJI MAGISTRSKO DELO UNIVERZITETNEGA ŠTUDIJA Mentor:

Více

POROČILO PRAKTIČNEGA IZOBRAŽEVANJA

POROČILO PRAKTIČNEGA IZOBRAŽEVANJA UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO VISOKOŠOLSKI STROKOVNI ŠTUDIJ Računalništvo in informacijske tehnologije POROČILO PRAKTIČNEGA IZOBRAŽEVANJA v Tom88 d.o.o.

Více

POSVET OB MESECU POŽARNE VARNOSTI

POSVET OB MESECU POŽARNE VARNOSTI POSVET OB MESECU POŽARNE VARNOSTI - 15.09.2016 Kje je prisoten CO v bivalnem okolju? Kateri javljalnik CO je ustrezen? Kam namestiti javljalnik CO? GAŠPER GOLOB direktor Detektor sistemi d.o.o. Vodja sekcije

Více

KRONOTERM Navodila za uporabo spletnega vmesnika. Spletni vmesnik. Navodila za uporabo. 1 S tran

KRONOTERM Navodila za uporabo spletnega vmesnika. Spletni vmesnik. Navodila za uporabo. 1 S tran Spletni vmesnik Navodila za uporabo 1 S tran 1 KAZALO Kazalo 1 KAZALO... 2 2 PRVI KORAKI... 3 2.1 Navodila za pridobitev unikatne kode na črpalki... 3 2.2 Registracija novega uporabniškega računa... 3

Více

Razvoj seminarske naloge

Razvoj seminarske naloge Razvoj sistemov RIS VAJA 6 Podatkovni pogled: E-R model (model entiteta-povezava) Razvoj seminarske naloge 1. Predstavitev organizacije 1.1 Organiziranost organizacije Organigram 1.2 Predstavitev obravnavanega

Více

Analiza informacijsko-komunikacijskih storitev za komunikacijo in trženje z elektronsko pošto in kratkimi sporočili SMS

Analiza informacijsko-komunikacijskih storitev za komunikacijo in trženje z elektronsko pošto in kratkimi sporočili SMS Univerza v Ljubljani Fakulteta za računalništvo in informatiko VISOKOŠOLSKI STROKOVNI ŠTUDIJ Diplomsko delo Analiza informacijsko-komunikacijskih storitev za komunikacijo in trženje z elektronsko pošto

Více

BREZ ELEKTRONSKE POŠTE NE GRE!

BREZ ELEKTRONSKE POŠTE NE GRE! BREZ ELEKTRONSKE POŠTE NE GRE! Priročnik za prostovoljce Simbioza 2013 Užitek je srečati pogled tistega, kateremu si pred kratkim storil kaj dobrega. (La BRUYERE) Naj ti bo priročnik v pomoč pri poučevanju

Více

Ekonomska šola Kidričeva Kranj. FrontPage 2003 ZA INTERNO UPORABO. Pripravil: Tomo Grahek. Kranj, maj 07

Ekonomska šola Kidričeva Kranj. FrontPage 2003 ZA INTERNO UPORABO. Pripravil: Tomo Grahek. Kranj, maj 07 Ekonomska šola Kidričeva 65 4000 Kranj FrontPage 2003 ZA INTERNO UPORABO Pripravil: Tomo Grahek Kranj, maj 07 KAZALO 1. Osnovni pojmi... 1 1.1. Splet in spletno mesto... 1 1.2. O izdelavi spleta... 1 2.

Více

OSNOVNE KOMPONENTE BU OSNOVNE KOMPONENTE BARVNEGA UPRAVLJANJA. Tadeja Muck govorilne ure: ponedeljek 12:00 13:00

OSNOVNE KOMPONENTE BU OSNOVNE KOMPONENTE BARVNEGA UPRAVLJANJA. Tadeja Muck   govorilne ure: ponedeljek 12:00 13:00 STANDARDIZACIJA GRAFIČNIH PROCESOV OSNOVNE KOMPONENTE BARVNEGA UPRAVLJANJA Tadeja Muck e-mail: tadeja.muck@ntf.uni-lj.si govorilne ure: ponedeljek 12:00 13:00 OSNOVNE KOMPONENTE BU q q PCS upodobitveni

Více

Inventura v osnovnih sredstvih

Inventura v osnovnih sredstvih Inventura v osnovnih sredstvih SAOP računalništvo Cesta Goriške fronte 46 5290 Šempeter pri Gorici Slovenija Tel.: 05 393 40 00 Fax: 05 393 81 36 Spletna stran: http://www.saop.si 1. 2. 2 0 1 3 I n v e

Více

1 GIF Animator. 1.1 Opis programa Lastnosti zmogljivosti programa. Active GIF Creator 2.18 je program za obdelavo GIF datotek.

1 GIF Animator. 1.1 Opis programa Lastnosti zmogljivosti programa. Active GIF Creator 2.18 je program za obdelavo GIF datotek. 1 GIF Animator 1.1 Opis programa Active GIF Creator 2.18 je program za obdelavo GIF datotek. 1.1.1 Lastnosti zmogljivosti programa Izdelava animiranih GIFov iz niza datotek BMP, JPEG, ICO, PCX, Adobe Photoshop

Více

Skripta za Programiranje 2 Rekurzija Delo z datotekami

Skripta za Programiranje 2 Rekurzija Delo z datotekami Gregor Jerše Matija Lokar Skripta za Programiranje 2 Rekurzija Delo z datotekami Višja šola Program Informatika 2 kazalo KAZALO... 2 REKURZIJA... 3 REKURZIJA... 3 Kaj rekurzija je... 3 ZGLEDI... 8 Vsota

Více

Delo z datotekami v C#

Delo z datotekami v C# Delo z datotekami v C# Srečo Uranič 2 KAZALO Datoteke... 3 Kaj je datoteka... 3 Branje in pisanje na tekstovne datoteke... 4 Ustvarimo datoteko... 4 Pisanje na datoteko... 8 Branje tekstovnih datotek...

Více

Češki izdelek. Zložljive stopnice ARISTO, LUSSO, KOMBO in VERTICALE

Češki izdelek. Zložljive stopnice ARISTO, LUSSO, KOMBO in VERTICALE Češki izdelek Zložljive stopnice RISTO, LUSSO, KOMO in VERTICLE Protipožarne zložljive stopnice risto PP Za pasivne hiše Protipožarne zložljive stopnice Kombo PP Za pasivne hiše Protipožarne zložljive

Více

Avtonomni mobilni sistemi. Izr. prof. dr. Gregor Klančar Planiranje poti

Avtonomni mobilni sistemi. Izr. prof. dr. Gregor Klančar Planiranje poti Avtonomni mobilni sistemi Izr. prof. dr. Gregor Klančar gregor.klancar@fe.uni-lj.si Planiranje poti 2013/2014 Uvod Robot deluje v okolju Mobilnost zahteva: načrtovanje premika iz točka A do točke B izračun

Více

INFORMACIJSKO-KOMUNIKACIJSKA PODPORA V PISARNI RAČUNALNIŠTVO IN INFORMATIKA MARKO KOMPARE TOMAŢ DULAR

INFORMACIJSKO-KOMUNIKACIJSKA PODPORA V PISARNI RAČUNALNIŠTVO IN INFORMATIKA MARKO KOMPARE TOMAŢ DULAR INFORMACIJSKO-KOMUNIKACIJSKA PODPORA V PISARNI RAČUNALNIŠTVO IN INFORMATIKA MARKO KOMPARE TOMAŢ DULAR Višješolski strokovni program: Učbenik: Poslovni sekretar Varstvo okolja in komunala Informacijsko-komunikacijska

Více

13.6 CIR9XX OSTALI IZPISI

13.6 CIR9XX OSTALI IZPISI 13.6 CIR9XX OSTALI IZPISI Skupina izpisov CIR9XX vključuje različna obvestila, ki jih knjižnice pošiljajo svojim članom. Obvestila lahko pošiljamo po klasični ali elektronski pošti in s SMS-sporočili.

Více

Navodila za vgradnjo in nastavitve SOMFY-pogonski motorji Altus 50 RTS / 60 RTS

Navodila za vgradnjo in nastavitve SOMFY-pogonski motorji Altus 50 RTS / 60 RTS Navodila za vgradnjo in nastavitve SOMFY-pogonski motorji Altus 50 RTS / 60 RTS Altus RTS motorji so primerni za pogon rolet, rolojev garažnih vrat in tend. Altus RTS motorji so enofazni kondenzatorski

Více

R NAGRADNA Igra KUPI IZDELKE ZA ŠOLO V VREDNOSTI 10 IN SODELUJ V NAGRADNI IGRI. POŠLJI SMS S KODO NA 4080 OD 3. 8. DO 3. 9. 2017 GLAVNA NAGRADA: DRUŽINSKI IZLET V GARDALAND 2. NAGRADA: 2 X ROLLJET NAHRBTNIK

Více

LEKSIKOGRAFOVI ZAPISKI O KORPUSNEM SLOVARJU

LEKSIKOGRAFOVI ZAPISKI O KORPUSNEM SLOVARJU František Čermák Filozofska fakulteta Karlove univerze v Pragi Inštitut za češki nacionalni korpus UDK 811.162.3 374.81 LEKSIKOGRAFOVI ZAPISKI O KORPUSNEM SLOVARJU V prispevku skušamo izpostaviti nekatere

Více

Navodila za vnos in kontrolo podatkov iz letnih poročil na poenotenih obrazcih gospodarskih družb v Excelovo preglednico

Navodila za vnos in kontrolo podatkov iz letnih poročil na poenotenih obrazcih gospodarskih družb v Excelovo preglednico AJPES Agencija Republike Slovenije za javnopravne evidence in storitve Navodila za vnos in kontrolo podatkov iz letnih poročil na poenotenih obrazcih gospodarskih družb v Excelovo preglednico Uvod Excelova

Více

Cena / mesec Mesečna naročnina za paket Rumeni 92 digitalnih tv programov 18,90

Cena / mesec Mesečna naročnina za paket Rumeni 92 digitalnih tv programov 18,90 Cenik storitev KRS Analogna televizija * Osnovna zelena KTV naročnina 13,53 Osnovna zelena KTV naročnina-nekodiran rumen paket DTV brez opreme 16,90 Naročnina osnovna analogna in digitalna TV-nekodiran

Více

3D SKENIRANJE in 3D TISKANJE

3D SKENIRANJE in 3D TISKANJE 3D SKENIRANJE in 3D TISKANJE Tehnologija 3D skeniranja 3D skeniranje je postopek digitalnega zajemanja oblike modela, na osnovi katerih se izrišejo površine modela, kar znatno prispeva k hitrejšemu modeliranju.

Více

Programski jeziki. Od problema do programa. Od problema do programa

Programski jeziki. Od problema do programa. Od problema do programa Programski jeziki Od problema do programa Od problema do programa Problem Algoritem (postopek reševanja problema) Zapis v programskem jeziku uporaba ukazov, ki jih znamo izvesti Prevajanje v obliko, ki

Více

MATEMATIKA PRIPRAVA NA NACIONALNO PREVERJANJE ZNANJA. Jana Draksler in Marjana Robič

MATEMATIKA PRIPRAVA NA NACIONALNO PREVERJANJE ZNANJA. Jana Draksler in Marjana Robič MATEMATIKA 6+ PRIPRAVA NA NACIONALNO PREVERJANJE ZNANJA Jana Draksler in Marjana Robič ZBIRKA ZNAM ZA VEČ MATEMATIKA 6+ Zbirka nalog za nacionalno preverjanje znanja Avtorici: Jana Draksler in Marjana

Více

V naši mešalnici barv mešamo barve sledečih proizvajalcev: JUB

V naši mešalnici barv mešamo barve sledečih proizvajalcev: JUB Pred več kot 25 leti smo uredili prvo mešalnico barv. To je bila prva mešalnica barv v Mariboru, kjer si je lahko vsakdo naročil mešanje barve po svoji želji. Proizvajalci barv takrat za barvanje notranjih

Více

B-panel. C-panel. S-panel. Osnovni enobarvni paneli. Zasteklitve. strani strani strani

B-panel. C-panel. S-panel. Osnovni enobarvni paneli. Zasteklitve. strani strani strani Zgodba vaše hiše B-panel strani 8-11 Osnovni enobarvni 3020 3021 3023 paneli 3040 3041 Zasteklitve C-panel strani 12-20 S-panel strani 26-33 1012 1010 1013 2090 2091 1022 1023 1021 2020 1040 1041 1042

Více

ŠABLONSKI TISK PEDAGOŠKA FAKULTETA. Oddelek za Razredni pouk. Pri predmetu Didaktika likovne umetnosti II. Mentorica:

ŠABLONSKI TISK PEDAGOŠKA FAKULTETA. Oddelek za Razredni pouk. Pri predmetu Didaktika likovne umetnosti II. Mentorica: PEDAGOŠKA FAKULTETA Oddelek za Razredni pouk ŠABLONSKI TISK Pri predmetu Didaktika likovne umetnosti II Mentorica: Študentki: Amira Bavrk in Mateja Bombek Študijsko leto: 2014/2015 Maribor, november 2014

Více

RPT Vodnik za organizacijo registracije

RPT Vodnik za organizacijo registracije RPT Vodnik za organizacijo registracije IBLCE RPT Vodnik za organizacijo registracije je namenjen tistim ki se morajo dogovoriti za svoj termin računalniško podprtega testiranja Kazalo Kako se registrirati

Více

Uporabniški priročnik. Kosovni management. Hermes d.o.o. Prušnikova Ljubljana-Šentvid.

Uporabniški priročnik. Kosovni management. Hermes d.o.o. Prušnikova Ljubljana-Šentvid. Uporabniški priročnik Hermes d.o.o. Prušnikova 2 1210 LjubljanaŠentvid www.hermes2.net info@hermes2.net 1. Opis 3 1.1 Kosovni Management... 3 1.2 Odklepanje... 3 2. Razširitveni moduli 3 3. Nastavitve

Více

PRIROČNIK ZA NADALJEVALNI TEČAJ MICROSOFT WORD-A

PRIROČNIK ZA NADALJEVALNI TEČAJ MICROSOFT WORD-A PRIROČNIK ZA NADALJEVALNI TEČAJ MICROSOFT WORD-A Avtor: Drago Perc 1 KAZALO: 1. POLJA V WORDU... 3 2. PREDLOGE IN SLOGI... 5 2.1. PREDLOGE... 5 2.2. SLOGI... 7 2.3. ČAROVNIKI... 8 3. PRESLIKOVALNIK OBLIK...

Více

Projekt. Projektna naloga Naprava za sušenje gela za nohte FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO

Projekt. Projektna naloga Naprava za sušenje gela za nohte FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Projekt Projektna naloga Naprava za sušenje gela za nohte Študenta: Klavdijo Repolusk Indeks št.: E5000713 Smer študija: Telekomunikacije MAG Letnik

Více

CS Návod k použití 2 Chladnička s mrazničkou SL Navodila za uporabo 19 Hladilnik z zamrzovalnikom S53620CSW2

CS Návod k použití 2 Chladnička s mrazničkou SL Navodila za uporabo 19 Hladilnik z zamrzovalnikom S53620CSW2 CS Návod k použití 2 Chladnička s mrazničkou SL Navodila za uporabo 19 Hladilnik z zamrzovalnikom S53620CSW2 2 OBSAH 1. BEZPEČNOSTNÍ INFORMACE... 3 2. BEZPEČNOSTNÍ POKYNY...4 3. POPIS SPOTŘEBIČE...6 4.

Více

T105VF. T105-manual - 1 BEZDRÁTOVÝ TERMOSTAT BEZDRÔTOVÝ TERMOSTAT WIRELESS THERMOSTAT TERMOSTAT BEZPRZEWODOWY TERMOSZTÁT VEZETÉK NELKÜLI

T105VF. T105-manual - 1 BEZDRÁTOVÝ TERMOSTAT BEZDRÔTOVÝ TERMOSTAT WIRELESS THERMOSTAT TERMOSTAT BEZPRZEWODOWY TERMOSZTÁT VEZETÉK NELKÜLI T105-manual - 1 Zamenjava baterij Zamenjavo baterij priporočamo pri ponazoritvi ikone baterije. Pri zamenjavi baterij: 1. Izklopite dovod toka v sprejemno enoto. 2. Odstranite zadnji pokrov oddajne enote.

Více

ZOFKA KVEDROVÁ (1878 1926) Recepce její tvorby ve 21. století. Národní knihovna ČR Slovanská knihovna

ZOFKA KVEDROVÁ (1878 1926) Recepce její tvorby ve 21. století. Národní knihovna ČR Slovanská knihovna Národní knihovna ČR Slovanská knihovna ZOFKA KVEDROVÁ (1878 1926) Recepce její tvorby ve 21. století Sestavily Doc. Dr. Jasna Honzak Jahič Doc. PhDr. Alenka Jensterle-Doležalová, CSc. Praha 2008 KATALOGIZACE

Více

IZDELAVA FOTOKNJIGE. ali pa na

IZDELAVA FOTOKNJIGE. ali pa na Na spletni strani Hoferjeve foto storitve http://www.hoferfoto.si lahko najljubše slike obdelate, shranite, naročite Izbirate lahko med množico različnih izdelkov kot so slikarska platna, koledarji, fotoknjige,

Více

Edge. Touring Priročnik za uporabo. Junij _0B Natisnjeno na Tajvanu

Edge. Touring Priročnik za uporabo. Junij _0B Natisnjeno na Tajvanu Edge Touring Priročnik za uporabo Junij 2013 190-01605-43_0B Natisnjeno na Tajvanu Vse pravice pridržane. V skladu z zakoni o avtorskih pravicah tega priročnika ni dovoljeno kopirati, v celoti ali delno,

Více

LED PRIKAZOVALNIK. Raziskovalna naloga ŠOLSKI CENTER CELJE. Srednja šola za kemijo, elektrotehniko in računalništvo

LED PRIKAZOVALNIK. Raziskovalna naloga ŠOLSKI CENTER CELJE. Srednja šola za kemijo, elektrotehniko in računalništvo ŠOLSKI CENTER CELJE Srednja šola za kemijo, elektrotehniko in računalništvo LED PRIKAZOVALNIK Raziskovalna naloga Avtor: Jure Vrbovšek, E-3.c Mentor: Gregor Kramer, univ. dipl. inž. el. Mestna občina Celje,

Více

Uporabniški priročnik

Uporabniški priročnik Merilnik dolžine kablov SeeSnake CountPlus Tools For The Professional Splošne varnostne informacije OPOZORILO Pred uporabo naprave pozorno preberite ta uporabniški priročnik. Nerazumevanje in neupoštevanje

Více

LEIXEN VV-898 Kratka navodila - Quick Reference Guide

LEIXEN VV-898 Kratka navodila - Quick Reference Guide LEIXEN VV-898 Kratka navodila - Quick Reference Guide Velikost: 118 x 79 x 37 mm Teža - 315 g 13,8 V DC-napajanje Moč oddajnika - High / Low Power (10W/4W) Poraba v pripravljenosti - Standby 78mA (save

Více

Uvod. Slika 1.1: Električna shema enostavne krmilne naloge (a) in njena rešitev z releji (b) a) b) Univerza v Ljubljani Fakulteta za elektrotehniko

Uvod. Slika 1.1: Električna shema enostavne krmilne naloge (a) in njena rešitev z releji (b) a) b) Univerza v Ljubljani Fakulteta za elektrotehniko Uvod a) b) Slika 1.1: Električna shema enostavne krmilne naloge (a) in njena rešitev z releji (b) 1 Relejni sistemi Zasnova programirljivih krmilnikov Slika 5.1: Primer kontaktnega krmilja z releji 2 Zasnova

Více

Po vrsti z leve proti desni so obrazi Blaž, Erik, Dane, Andrej, Andraž, Bor.

Po vrsti z leve proti desni so obrazi Blaž, Erik, Dane, Andrej, Andraž, Bor. Rešitve 8. in 9. razred 1. naloga Po vrsti z leve proti desni so obrazi Blaž, Erik, Dane, Andrej, Andraž, Bor. Zadnja izjava nam pove, da sta plešasta Dane in Erik. Predzadnja pa, da imata Dane in Bor

Více

PREDSTAVITEV PRAVILNIKA O GEODETSKEM NAČRTU. Ljubljana,14. maj 2008

PREDSTAVITEV PRAVILNIKA O GEODETSKEM NAČRTU. Ljubljana,14. maj 2008 PREDSTAVITEV PRAVILNIKA O GEODETSKEM NAČRTU PREDSTAVITEV PRAVILNIKA O GN 1) Pravilnik o geodetskem načrtu 2) 3) Povzetek 1 Pravilnik Zakonske osnove: Zakon o urejanju prostora (Uradni list RS, št. 110/02)

Více

VODNIK ZA ČLANE-IZDAJATELJE

VODNIK ZA ČLANE-IZDAJATELJE VODNIK ZA ČLANE-IZDAJATELJE KDD Centralna klirinško depotna družba d.d. Podatki o dokumentu Ime Vodnik za člane izdajatelje Klasifikacijska oznaka 700 Status Veljaven Verzija 3.2 Skrbnik dokumenta Natalija

Více

TISK 1 Delovni zvezek za vaje

TISK 1 Delovni zvezek za vaje TISK 1 za vaje Študijsko leto 2011/12 Ime: Priimek: 1 ODDAJA IN POPRAVA VAJ Vaja Oddane vaje Popravljene vaje Opombe 1 2 3 4 5 6 7 Zaključene vaje: 2 VSEBINA VAJ 1. VAJA POMNILNIKI INFORMACIJ IN KAKOVOSTNE

Více

IBAN plačnika. Referenca plačnika. Janez Novak Maribor. Znesek ***14,71 Datum plačila EUR. Namen plačila SI

IBAN plačnika. Referenca plačnika. Janez Novak Maribor. Znesek ***14,71 Datum plačila EUR. Namen plačila SI TEHNIČNI STANDARD UNIVERZALNI PLAČILNI NALOG Obrazec Lepa cesta 10 2000 Maribor - potrdilo Ravn. z odpadki 04/2016 0040098579, 25.06.2016 Lepa cesta 10 ***14,71 2000 Maribor SI12 1084257451 Snaga d.o.o.

Více

INTELIGENTNI MULTIKOPTER

INTELIGENTNI MULTIKOPTER Mentorja: Edvard Trdan, univ. dipl. inž. el. ddr. Jožica Bezjak INTELIGENTNI MULTIKOPTER LUKA ARTELJ, MATEVŽ MIKUŽ Ljubljana, april 2015 PODROČJE: Elektrotehika, elektronika in robotika 1. Povzetek 2.

Více

Tiskalnik nalepk Brother P-touch 1005FB

Tiskalnik nalepk Brother P-touch 1005FB SLO - NAVODILO ZA NAMESTITEV IN UPORABO Št. izd. : 884700 www.conrad.si Tiskalnik nalepk Brother P-touch 1005FB 1 Uvod Z vašim tiskalnikom nalepk imate možnost ustvariti vrsto različnih nalepk za vsako

Více

Računalništvo in informatika (vaje)

Računalništvo in informatika (vaje) EKONOMSKA GIMNAZIJA Komenskega 4, Kranj 04-20 10 600 SREDNJA POKLICNA IN STROKOVNA ŠOLA C. Staneta Žagarja 33, Kranj 04-20 10 620 Računalništvo in informatika (vaje) Pripravila: Tomo Grahek, Marjeta Barbo

Více

Okolje Okna 2000NT (Windows 2000NT) se pri običajnih nastavitvah računalnika aktivira ob vklopu računalnika.

Okolje Okna 2000NT (Windows 2000NT) se pri običajnih nastavitvah računalnika aktivira ob vklopu računalnika. UVOD: Okolje Okna 2000NT UVOD: Okolje Okna 2000NT Novi pojmi: okno program Raziskovalec (Windows Explorer) datoteka mapa nastavitve v programu Nadzorna plošča 0.1 Uvod v okolje Okna 2000NT Okolje Okna

Více

Priimek in ime: Vpisna številka: Letnik vaj Obkroži smer študija:

Priimek in ime: Vpisna številka: Letnik vaj Obkroži smer študija: Predmet: Skupina: Rok Točke: OPISNA GEOMETRIJA A 18.3.2003 Priimek in ime: Vpisna številka: Letnik vaj Obkroži smer študija: GRA GEO UNI VSŠ VKI Ocena: Poskus: 1. (20) f 1 je gorišče elipse, AB pa ena

Více

Navodila za uporabo. Za upravljavca. Navodila za uporabo. calormatic 370. Sobni regulator temperature

Navodila za uporabo. Za upravljavca. Navodila za uporabo. calormatic 370. Sobni regulator temperature Navodila za uporabo Za upravljavca Navodila za uporabo calormatic 370 Sobni regulator temperature SI Kazalo Kazalo 1 Napotki k navodilom za uporabo... 3 1.1 Upoštevajte pripadajočo dokumentacijo... 3 1.2

Více

UČNA URA: Spoznavanje prometnih znakov

UČNA URA: Spoznavanje prometnih znakov ČLAN La Prevention Routiere Internationale UČNA URA: Spoznavanje prometnih znakov Cilji: spoznavanje osnovnih skupin prometnih znakov, pomen posameznih prometnih znakov, spoznavanje različnih geometrijskih

Více

EGT6343 CS VARNÁ DESKA NÁVOD K POUŽITÍ 2 SL KUHALNA PLOŠČA NAVODILA ZA UPORABO 17

EGT6343 CS VARNÁ DESKA NÁVOD K POUŽITÍ 2 SL KUHALNA PLOŠČA NAVODILA ZA UPORABO 17 EGT6343 CS VARNÁ DESKA NÁVOD K POUŽITÍ 2 SL KUHALNA PLOŠČA NAVODILA ZA UPORABO 17 2 OBSAH 1. BEZPEČNOSTNÍ INFORMACE... 3 2. BEZPEČNOSTNÍ POKYNY...4 3. POPIS SPOTŘEBIČE...7 4. DENNÍ POUŽÍVÁNÍ... 7 5. TIPY

Více

PRENOSNI DIGITALNI TELEVIZOR Z VISOKO LOČLJIVOSTJO TV STAR T7 HD LCD UPORABNIŠKA NAVODILA SLO

PRENOSNI DIGITALNI TELEVIZOR Z VISOKO LOČLJIVOSTJO TV STAR T7 HD LCD UPORABNIŠKA NAVODILA SLO PRENOSNI DIGITALNI TELEVIZOR Z VISOKO LOČLJIVOSTJO TV STAR T7 HD LCD UPORABNIŠKA NAVODILA SLO KAZALO Pomembna varnostna opozorila...3 Operacijski vmesnik...4 Daljinski upravljalnik...5 Priključitev sistema...5

Více

VSEBINA Upravljanje Splošni napotki. 1. Splošni napotki. 1.1 Spremljajoči dokumenti Navodila za uporabo WPM. 1.2 Varnostni napotki

VSEBINA Upravljanje Splošni napotki. 1. Splošni napotki. 1.1 Spremljajoči dokumenti Navodila za uporabo WPM. 1.2 Varnostni napotki BEDIENUNG UND INSTALLATION OPERATION AND INSTALLATION UTILISATION ET INSTALLATION BEDIENING EN INSTALLATIE USO E INSTALLAZIONE OBSLUHA A INSTALACE OBSŁUGA I INSTALACJA KEZELÉS ÉS TELEPÍTÉS ЭКСПЛУАТАЦИЯ

Více

Osnovna sredstva in drobni inventar

Osnovna sredstva in drobni inventar Osnovna sredstva in drobni inventar SAOP računalništvo Cesta Goriške fronte 46 5290 Šempeter pri Gorici Slovenija Tel.: 05 393 40 00 Fax: 05 393 81 36 Spletna stran: http://www.saop.si 2 0. 1 1. 2 0 1

Více

SISTEMI PREGRADNIH ZAVES

SISTEMI PREGRADNIH ZAVES SISTEMI PREGRADNIH ZAVES IMAMO 70 LET IZKUŠENJ, PRIHODNOST JE ČISTI ADRENALIN First Edition Magazine 1 ELAN INVENTA Zgodbe o uspehu PREGRADNE ZAVESE Pregradne zavese Elan spadajo med vgrajeno opremo in

Více

Pleksi posoda z jeklenim ogrodjem za opazovanje razvoja rastlin. Velikost: 42 x 42 cm Akvarij ali Terarij

Pleksi posoda z jeklenim ogrodjem za opazovanje razvoja rastlin. Velikost: 42 x 42 cm Akvarij ali Terarij 901-01 Malo prožno ogledalo z držali velikosti 33 x 50 cm 901-10 Veliko prožno ogledalo, katerega lahko upognemo in opazujemo, kako se naše telo spreminja. Velikost: 91 x 91 cm 307-62 Set šestih vzmetnih

Více

Brezžični termostat T105

Brezžični termostat T105 Brezžični termostat T105 Kazalo: UVOD...2 Funkcije... Napaka! Zaznamek ni definiran. INSTALACIJA... Napaka! Zaznamek ni definiran. Nastavitev RF naslova...4 Zamenjava obstoječega termostata... Napaka!

Více

TARIFA NADOMESTIL STORITEV ZA POTROŠNIKE. Velja in uporablja se od

TARIFA NADOMESTIL STORITEV ZA POTROŠNIKE. Velja in uporablja se od TARIFA NADOMESTIL STORITEV ZA POTROŠNIKE Velja in uporablja se od 01.02.2017 Vipava, 01.12.2016 KAZALO 1 SPLOŠNA DOLOČILA... 2 2 STROŠKI ZARADI NEIZPOLNJEVANJA OBVEZNOSTI IZ NASLOVA POSOJILNIH POGODB...

Více

IZKAZ POŽARNE VARNOSTI STAVBE Objekt: SKLADIŠČE REPROMATERIALA

IZKAZ POŽARNE VARNOSTI STAVBE Objekt: SKLADIŠČE REPROMATERIALA IZKAZ POŽARNE VARNOSTI STAVBE Objekt: SKLADIŠČE REPROMATERIALA Lokacija: Investitor: Naročnik: Vrsta projektne dokumentacije Jadranska cesta 28, 2000 Maribor JP ENERGETIKA MARIBOR d.o.o., Jadranska cesta

Více

POŠTA SLOVENIJE d. o. o MARIBOR NAVODILA ZA DELO Z APLIKACIJO. espremnica

POŠTA SLOVENIJE d. o. o MARIBOR NAVODILA ZA DELO Z APLIKACIJO. espremnica POŠTA SLOVENIJE d. o. o. 2500 MARIBOR NAVODILA ZA DELO Z APLIKACIJO espremnica Maribor, 12. september 2018 1. UVOD... 4 2. NAMESTITEV APLIKACIJE... 4 2.1 Zahteve za strojno in programsko opremo... 4 2.2

Více

ANALIZA TISKALNIŠKIH NAPRAV, STROŠKOV PRODUKCIJE DOKUMENTOV IN PREDLOG OPTIMIZACIJE

ANALIZA TISKALNIŠKIH NAPRAV, STROŠKOV PRODUKCIJE DOKUMENTOV IN PREDLOG OPTIMIZACIJE ANALIZA TISKALNIŠKIH NAPRAV, STROŠKOV PRODUKCIJE DOKUMENTOV IN PREDLOG OPTIMIZACIJE Projekt Naročnik Predlog celovite rešitve optimizacije tiskanja in izdelava dokumentov SUMMIT MOTORS d.o.o. Ponudnik

Více

TLS-300 TLS-350 Plus TLS-350R

TLS-300 TLS-350 Plus TLS-350R Priročnik št.: 577014-191 Pregled.: A Operator's Quick Help SLOVENIAN TLS-300 TLS-350 Plus TLS-350R Opomba Opomba: Ta navodila za uporabo so prevod originalna navodila za uporabo so napisana v angleščini.

Více

SPALNICE.

SPALNICE. SPALNICE www.iles.si SPALNICE LUNA. MIREN SPANEC POD ZVEZDAMI. ZAKAJ IZBRATI ILES? SLOVENSKA KAKOVOST TRADICIJA ODLIČEN SERVIS SODOBNOST FUNKCIONALNOST PRILAGODLJIVOST 01/ LARIX Že 60 let ustvarjamo z

Více

110PAX4/R110PAX4 Kratka navodila

110PAX4/R110PAX4 Kratka navodila 110PAX4/R110PAX4 Kratka navodila V tem priročniku so osnovna navodila za nalaganje in upravljanje tiskalnega mehanizma. Dodatne informacije najdete v Uporabniškem priročniku. Vsebina Zunanjost tiskalnega

Více

SM-A300FU. Navodila za uporabo. Slovenian. 12/2014. Rev.1.0.

SM-A300FU. Navodila za uporabo. Slovenian. 12/2014. Rev.1.0. SM-A300FU Navodila za uporabo Slovenian. 12/2014. Rev.1.0 www.samsung.com Vsebina Preberi najprej Uvod 7 Vsebina paketa 8 Postavitev naprave 10 Uporaba kartice SIM ali USIM in baterije 15 Uporaba pomnilniške

Více

SM-G361F. Navodila za uporabo. Slovenian. 08/2015. Rev.1.0.

SM-G361F. Navodila za uporabo. Slovenian. 08/2015. Rev.1.0. SM-G361F Navodila za uporabo Slovenian. 08/2015. Rev.1.0 www.samsung.com Vsebina Preberi najprej Uvod 6 Vsebina paketa 7 Postavitev naprave 9 Uporaba kartice SIM ali USIM in baterije 14 Uporaba pomnilniške

Více

KERAMIČNO VEZANI BRUSI s CBN in DIAMANTNIMI ZRNI

KERAMIČNO VEZANI BRUSI s CBN in DIAMANTNIMI ZRNI KERAMIČNO VEZANI BRUSI s CBN in DIAMANTNIMI ZRNI Naraščajoča uporaba težko obdelovalnih materialov, kot so hitrorezna jekla, orodna jekla, visoko legirana kromova, titanova in nikljeva jekla ter karbidne

Více

POŠTA SLOVENIJE d. o. o MARIBOR NAVODILA ZA DELO Z WEB APLIKACIJO POŠTNO OKENCE PRI VAS

POŠTA SLOVENIJE d. o. o MARIBOR NAVODILA ZA DELO Z WEB APLIKACIJO POŠTNO OKENCE PRI VAS POŠTA SLOVENIJE d. o. o. 2500 MARIBOR NAVODILA ZA DELO Z WEB APLIKACIJO POŠTNO OKENCE PRI VAS Maribor, 28. marec 2014 1. UVOD... 4 2. NAMESTITEV APLIKACIJE... 4 2.1 Zahteve za strojno in programsko opremo...

Více

Knjiga prejetih računov

Knjiga prejetih računov Navodila za uporabo SAOPprac Knjiga prejetih računov SAOP d.o.o. PRAC 1 Vsebina SAOP knjiga prejetih računov 8 O programu 8 Glavno programsko okno 9 Zagon programa 9 Nastavitve 11 Nastavitve programa (Alt

Více