Laboratorij za robotiko in biomedicinsko tehniko
Transcription
Laboratorij za robotiko in biomedicinsko tehniko
Univerza v Ljubljani Fakulteta za elektrotehniko ROBOTSKI MEHANIZMI in HAPTIČNI ROBOTI SEMINAR IZ ROBOTIKE IN MERJENJ Ljubljana, januar 2014 Študenti FE Grega Eržen Beti Fajdiga Primož Flander Primož Glavač Rok Goljat Nejc Krajnik Katja Pretnar Mentorji Robotski menahizmi Haptični roboti Denis Forte, IJS Luka Ambrožič, FE Matjaž Mihelj, FE Tadej Petrič, IJS Janez Podobnik, FE Grega Logar, FE Jan Babič, IJS Seminar iz robotike in merjenj Matej Žontar, SIQ Urban Pompe, LPKF d.o.o. Franci Klun, Kolektor Group Matjaž Preložnik, Etra d.o.o. Igor Pušnik, FE Miran Rudman, Krka d.d. Erih Arko, YASKAWA SLOVENIJA d.o.o. Jure Pucelj, YASKAWA SLOVENIJA d.o.o. Predavatelji Marko Munih Jadran Lenarčič Janko Drnovšek Matjaž Mihelj UVOD V pričujoči brošuri so zbrani povzetki štirinajstih študentskih raziskovalnih nalog. Polovica nalog je bila opravljena v okviru praktičnih vaj pri predmetih Robotski mehanizmi in Haptični roboti, druga polovica nalog pa pri Seminarju robotika in merjenja. Tehniški študijski programi na evropskih univerzah so pogosto veliko bolj usmerjeni v praktično samostojno delo študentov, kot to velja za naše programe. V Laboratoriju za robotiko in v Laboratoriju za metrologijo in kakovost se po najboljših močeh trudimo, da bi takšen način poučevanja vpeljali tudi za naše študente. Tako se naši študentje s projektnim delom srečajo že v prvem letniku podiplomskega študija, pri čemer jih čim bolj poskušamo uvesti v samostojno delo. Zaradi specifičnih zahtev za robotske mehanizme večina projektov poteka v Laboratoriju za robotiko na Fakulteti za elektrotehniko v sodelovanju Raziskovalnim odsekom za avtomatiko, biokibernetiko in robotiko na Institutu Jožef Stefan. Da bi zagotovili dovolj zanimivih aplikativnih projektov, pa smo se v sodelujočih laboratorijih odločili, da se za izvedbo projektnih nalog pri Seminarju iz robotike in merjenj povežemo z zunanjimi sodelavci. Nastala je mreža visoko tehnoloških inštitucij, predvsem podjetij, na katerih študentje opravljajo praktične vaje. Študenti si na ta način lahko prosto izberejo smer robotike oziroma merjenj, ki jih najbolj zanima – bodisi predvsem raziskovalno usmerjeno ali pa bolj aplikativno. Vzpostavijo pa tudi prve stike z morebitnimi kasnejšimi delodajalci, ki študente spoznajo še pred zaključkom študija. Na tem mestu se želimo še posebej zahvaliti vsem mentorjem za skrbno vodenje svojih varovancev. Matjaž Mihelj, Marko Munih, Janko Drnovšek in Jadran Lenarčič ROBOTSKI MEHANIZMI in HAPTIČNI ROBOTI Uporaba Gaussove regresije pri učenju robotov Grega Eržen, Denis Forte 1 Fakulteta za elektrotehniko, Univerza v Ljubljani, Tržaška c. 25, 1000 Ljubljana 2 Institut »Jožef Stefan3«, Jamova 39, 1000 Ljubljana Odsek za avtomatiko, biokibernetiko in robotiko E-pošta: grega.erzo@gmail.com Using Gaussian process for robot learning Robot can face a vast number of different types of tasks or situations on which the proper response is expected. Intelligent robots cannot be programmed in advance for all possible situations, but they should be able to generalize the response based on acquired knowledge. Robot must be able, through the statistic methods on the acquired data, generating useful responses in situations for which the robot has not been specifically instructed how to response. The paper describes using Gaussian process regression as a statistic method for robot learning. The method creates the model and estimates the parameters of generalization of the acquired motor knowledge. The goal is to grab a ball in random position. New action is generalized by applying Gaussian process regression and the goal of movement, which is provided with robot 3D stereo vision. If the ball position is out of reach, the robot generates proper walk structure and approach the ball in such manner that the ball is in the reaching position. 1 Uvod Naša naloga je bila programirati humanoidnega robota HOAP-3 (slika 1), da s pomočjo Gaussove regresije posplošuje gibanje desne roke od začetne do katerokoli končne točke v njegovem delovnem območju[1]. izhod. Za našo nalogo smo za statistično obdelavo uporabili Gaussovo regresijo[2]. Učno množico naučenih podatkov je predstavljalo 140 trajektoriji s ciljnimi točkami enakomerno porazdeljenimi po celotnem delovnem območju robotove desne roke v oddaljenosti približno 5 cm. Trajektorije so bile ustvarjene s fizičnim pomikom roke robota in merjenjem kotov štirih sklepov na roki. S posploševanjem robot izvede gib desne roki, ki ga predhodno nismo naučili, z enako obliko trajektorije, kot jo imajo naučeni gibi. V primeru, da je predmet izven dosega desne roke robota, se robot do predmeta sprehodi. Robot izračuna oddaljenost predmeta s pomočjo stereo vida in sestavi hojo iz vnaprej pripravljenih trajektorij za posamezne dele hoje tako, da se približa predmetu. 2 Gaussov regresijski proces Gaussovi procesi so primer verjetnostnega modeliranja z verjetnostnim napovedovanjem izhodov. Modeli na osnovi Gaussovih procesov imajo zanimivo in za vodenje uporabno lastnost, da model poleg vrednosti izhoda napoveduje tudi zaupanje v to vrednost[2]. Če izberemo nekaj poljubnih vhodov in jim definiramo izhode (slika 2), bo Gaussova regresija posplošila te podatke, ustvarila funkcijo med njimi in ocenila varianco te funkcije. Največja varianca je v območjih z manj testnimi točkami in tam, kjer so testne točke bolj oddaljene od aproksimacije (slika 2). Slika 1. Humanoidni robot HOAP-3 Strojno(robotsko) učenje je področje umetne inteligence, ki za učenje uporablja statistične metode, ki na podlagi učne možice podatkov zgradijo nek globalen model funkcije, ki preslika vhodne podatke v nek želeni Slika 2. Primer delovanja Gaussove regresije v dvodimenzionalnem prostoru Do posplošitve pridemo preko naslednjega postopka. Preko enačbe (1) izračunamo korelacijsko matriko, D 1 2 K ij = σ 2f ∑d =1 exp − 2 (xi − x j ) + σ n2δ ij (1) 2l d za izračun katere potrebujemo še parametre (σ, δ, l), ki pa jih dobimo iz učne množice. Ko imamo izračunano kovariančno matriko K(X,X) lahko izračunamo predikcijo izhoda pri novi vhodni točki X*(2). [ Y ( X *) = K ( X *, X ) K ( X , X ) + σ n2 I ] −1 y (2) trajektorijo(enačbi (3) in (4)), glede na novo ciljno točko. Ko te parametre podamo nelinearnemu dinamičnemu sistemu, ga integriramo z Eulerjevo integracijo in izhod uporabimo za vodenje. Kot izhod dobimo časovni vektor in vektor vrednosti v posameznem sklepu v določenem časovnem trenutku. Robot premakne roko po želeni trajektoriji in ko pride v stik s premetom ga zgrabi. Sedaj smo želeli, da roko skupaj s predmetom vrne v začetni položaj prijemanja. V ta namen smo zgradili trajektorijo povratnega giba, ki je enaka trajektoriji seganja, vendar je vrstni red pošiljanja vrednosti sklepov robotu ravno obrnjen. 3 Zapis trajektorij 5 Hoja DMP (Dynamic Movement Primitive) je metoda za predstavitev gibanj, ki temelji na nelinearnem dinamičnem sistemu[3]. Ena najpomembnejših prednosti DMP-jev je ta, da niso direktno odvisni od časa. Robot oceni razdaljo do predmeta z stereo vidom, nato pa z vnaprej od proizvajalca podanimi trajektorijami za začetni korak, vmesni korak, končni korak, obrat v levo in obrat v desno, sestavi in izvrši tako hojo, da se približa predmetu tako, da je predmet v delovnem območju njegove desne roke. Robot uporablja nedinamično stabilno hojo, kar pomeni, da je robot stabilen in ostaja v ravnotežju tudi med korakom. Robot v funkciji iskanja, stoji drugače kot v funkciji hoje, zato je bilo potrebno, v izogib sunkovitih gibov, sprogramirati funkcijo prehoda, kar poskrbi za gladek prehod med stanji τ z = α z (β z ( g − y ) − z ) + f ( x) . . τ y=z (3) (4) Za zapis trajektorije tako uporabimo sistem enačb (3) in (4), ki ga lahko uporabimo za aproksimacijo diskretnih gibov različnih oblik[4]. Preden zajete podatke trajektorij podamo Gaussovi regresiji, jih moramo malce preoblikovati. Shranjene trajektorije smo tako zakodirali z nelinearnimi dinamičnimi sistemi (DMP-ji) in jih aproksimirali s 25 primerno uteženimi radialnimi baznimi funkcijami. Število uteži je bilo eksperimentalno določeno, glede na kompleksnost in dolžino učnih trajektorij. 6 Zaključek V članku je predstavljeno, kako smo implementirali avtomatsko generiranje primerne trajektorije glede na poljuben položaj predmeta v prostoru. Seveda mora biti zraven tudi prisoten sistem, s katerim robot pridobi pozicijo predmeta, se predmetu približa, ga zgrabi in vrne roko v začetni položaj. 4 Posploševanje z Gaussovo regresijo Literatura Dobljeno polje uteži se uporabi pri v Gaussovi regresiji pri izračunu uteži za trajektorije, ki sežejo v katerokoli točko v delovnem območju desne roke robota, pri čemer uteži določajo obliko trenutne trajektorije, le ta pa ima podobno obliko kot predhodno naučene trajektorije. Gaussova regresija prav tako posploši funkcijo, ki preslika končne vrednosti trajektorij v zunanjih koordinatah, ocenjene s strojnim vidom, v polje končnih vrednosti roke robota v notranjih koordinatah. Prav tako ji podamo tudi polje časovnih trajanj posameznih učnih gibov in tako se lahko za vse vmesne trajektorije s posploševanjem določi ustrezen čas izvedbe posameznega giba. Ko robot, s pomočjo strojnega vida, oceni pozicijo predmeta v zunanjih koordinatah, Gaussova regresija na podlagi posploševanja izračuna končno pozicijo robotske dlani v notranjih koordinatah, 25 uteži za želeni gib seganja in primeren čas trajanja tega giba. To so tako imenovani DMP parametri, ki opisujejo želeno [1] D. Forte, A. Ude, A. Kos, »Robot Learning by Gaussian Process Regression”, Proceedings of the 2010 IEEE 19th International Workshop on Robotics in Alpe-AdriaDanube Region, Hungary, str. 303-308, 2010 [2] C.E. Rasmussen, C. Williams, »Gaussian Process for Machine Learning«, Cambridge, MA: MIT Press, 2006 [3] S. Schaal, P. Mohajerianm, A. Ijspeert, »Dynamics system vs. optimal control – a unifying view«, Progress in Brain Research, vol. 165. 6, str. 425-445, 2007 [4] A. Gams, A. Ude, »Generalization of Example Movements with Dynamic Systems«, 9th IEEE-RAS International Conference on Humanoid Robots, 2009 Merilni sistemi za preučevanje biomehanskih parametrov in podpornega lika človeka pri vstajanju in hoji Beti Fajdiga1, Luka Ambrožič1 1 Fakulteta za elektrotehniko, Univerza v Ljubljani, Tržaška c. 25, 1000 Ljubljana E-pošta: beti.fajdiga@gmail.com Measuring systems for the study of biomechanical parameters and supporting polygon of man when getting up and walking Study includes the monitoring of the stability of man during walking with observing of the point Center of Pressure and supporting polygon during phase of single support using famous algorithm, which states that point COP must remain within the boundaries of support polygon. If so, one is stable, otherwise one will fall. The experiment also includes moderation of the point COP with known Center of Mass of mobile platform KUKA youBot. 1 Uvod Spremljanje parametrov podpore je pomembno pri humanoidih in eksoskeletnih robotih. Naloga eksperimenta je bila merjenje točke COP (»Center of Pressure« - središče pritiska), podpornega lika človeka in s tem povezano stopnjo stabilnosti. Podporni lik človeka je bil merjen s pomočjo podpornega poligona, točka pritiska pa s pomočjo štirih senzorjev sile (2 senzorja robotskega zapestja in 2 pritiskovni plošči). Z raziskovanjem stabilnosti so znanstveniki začeli že zelo zgodaj, ne le za humanoidne robote, ampak za kakršnokoli vrsto mobilnih sistemov (vozila na kolesih, štirinožne robote,…). Za določitev parametra stabilnosti pa se je tekom raziskav razvilo več različnih metod: točka FRI (»Foot-rotation indicator« - kazalec rotacije stopala) [1], za dinamične razmere prirejen kriterij za točko COM (»Center of Mass« - težišče) imenovana XcoM (ekstrapoliran položaj težišča mase) [2], metoda NDESM (numerična dinamična stopnja energijske stabilnosti) – upoštevamo tudi dinamične efekte [3], točki COM in COP, točka ZMP (»zero-moment point« točka ničtega momenta) [4], itd. 2 Naloga in izvedba Glavna naloga je bila sledenje podpornemu liku človeka in točki središča pritiska (COP) med hojo. S pomočjo teh dveh biomehanskih parametrov lahko določimo stabilnost človeškega mehanizma. Dokler se točka COP nahaja znotraj podpornega lika je človek stabilen, ko je točka na črti podpornega lika pa je človek na meji stabilnosti. Pri izvajanju eksperimenta so bili uporabljeni naslednji eksperimentalni sistemi: podporni poligon (Slika 1), pritiskovne plošče, senzorji robotskega zapestja, sistem Optotrak. Sistem pritiskovnih plošč zajema 18 senzorskih kontaktnih plošč, kjer ima vsaka 256 senzorjev, ki delujejo na principu membranske tipkovnice (stikala v matrični konfiguraciji). S posameznimi ploščami komuniciramo z mikrokrmilnikom preko I2C komunikacije. Merilna podlaga je dimenzij 1080x2080 mm. Skupaj ima merilna površina 96x48 tipk, kar nam da ločljivost zaznavanja večjo od 2,5 cm [6-7]. Podatki se iz mikrokrmilnika pošiljajo na računalnik, kjer se v programu Matlab obdelajo v primerno obliko za prikaz in za izračun podpornega lika človeka. Iz vrnjenih koordinat točk pritiska se lahko izračuna konveksni podporni lik z vgrajeno funkcijo convhull v Matlabu. Pri tem je potrebno biti pozoren na kolinearnost točk in za to uvesti posebno rešitev. Pritiskovne plošče vračajo sile in navore v vseh treh smereh lokalnega koordinatnega sistema. Merilno območje plošč je od 0 do 2 t, kar povzroča problem pri merjenju manjših sil za predmete do 100 kg (velika nihanja vrednosti). Za izračun COP so potrebne le sile v globalnem koordinatnem sistemu. Pritiskovna plošča meri sile na dveh ogliščih podpornega poligona. Slika 1. Podporni poligon, pritiskovne plošče in senzorji robotskega zapestja. Uporabljena sta bila tudi senzorja robotskega zapestja JR3 45E 15A nameščena na nogi oglišč podpornega poligona, ki vračajo sile in navore v lastnem koordinatnem sistemu [5]. Sistem Optotrak je namenjen določanju pozicije infrardečih markerjev v prostoru. Markerji so nameščeni na opazovano telo, uporabnik pa lahko tako spremlja pozicijo tega telesa v prostoru. Sistem je uporabljen v drugem delu eksperimenta pri umerjanju točke COP na podpornem poligonu s pomočjo obteženega mobilnega robota KUKA youBot. 2.1 Enačbe in slike Točka COP je izračunana s pomočjo ravnotežja navorov po enačbah (1) [1]. Ker se z-komponenta glede na definiran koordinatni sistem ne spreminja in se vse dogaja v x-y ravnini, ni potreben izračun vseh treh komponent točke COP. FR F1 F2 F3 F4 M R COP FR M R R1 F1 R2 F2 R3 F3 R4 F4 (1) COPx M Ry FRz COPy M Rx FRz Podporni poligon in točka COP se izrisujeta na istem grafu, kar omogoča sprotno sledenje stabilnosti in takojšen vizualni prikaz uporabniku. Primer meritve točke centra pritiska in podpornega poligona pri hoji prikazuje slika 2. Slika 3. Absolutna napaka točke pozicije COP. 3 Zaključek Pri meritvah stabilnosti človeka med hojo je bila uporabljena metoda točke centra pritiska COP, ki se mora nahajati znotraj podpornega lika. Spremljana je točka COP in merilni poligon med fazo enojne podpore (Slika 2). Ugotovljeno je tudi bilo, da imajo pritiskovne plošče zelo veliko šuma pri merjenju majhnih sil zaradi svojega širokega območja delovanja, kar kvari izračun točke COP. Boljše rezultate bi bilo mogoče dobiti s predhodno obtežitvijo pritiskovnih plošč (cca. 100 kg). Literatura Slika 2. Prikaz meritve podpornega lika in točke COP pri hoji. Opazno je, da je točka COP znotraj podpornega poligona stopala, le pri prehajanju iz ene noge na drugo potuje med stopali, kar je pričakovano. Točko centra pritiska je potrebno umeriti oz. preveriti kako natančen je izdelan algoritem. Eksperiment je bil izveden s pomočjo mobilnega robota KUKA youBot, na katerega je bila dodatno nameščena še 10 kg utež. S pomočjo senzorja robotskega zapestja je bila po metodi ravnotežja momentov v stacionarnem stanju izračunana točka COP in ustrezno transformirana v lokalni koordinatni sistem robota. Ta koordinatni sistem je bil določen s pomočjo 3 markerjev in sistema Optotrak. To je omogočalo transformacijo v globalni koordinatni sistem podpornega poligona s pomočjo znane pozicije robota določene s sistemom Optotrak in markerji nameščenimi na robot in sam podporni poligon. Ujemanje obeh meritev točk COP je največje pri najmanjši y-koordinati in se linearno povečuje z oddaljenostjo od roba, kjer so nameščene pritiskovne plošče (Slika 3). Napako povzroča nestabilna vrednost sil pridobljenih s pritiskovnih plošč, zaradi njihovega širokega območja delovanja (0 do 2 t). [1] A. Goswami, “Postural stability of biped robots and the foot-rotation indicator (fri) point,” International Journal of Robotics Research, vol. 18, no. 6, str. 523 - 533, 1999. [2] A. Hof, M. Gazendam, in W. Sinke, “The condition for dynamic stability, ” Journal of Biomechanics, vol. 38, no. 1, str. 1 - 8, 2005. [3] E. Garcia in P. G. de Santos, “A new dynamic stability margin for walking machines, ” v 11-th International Conf on Advanced Robotics ICAR'03, Coimbra, Portugal, 2003. [4] P. Sardain in G. Bessonnet, “Forces acting on a biped robot center of pressure – zero moment point,” IEEE Transactions on Systems, Man and Cybernetics, vol. 34, no. 5, str. 630 – 637, sep. 2004. [5] Datasheet JR3 45E 15A, https://docs.google.com/viewer?url=http%3A%2F %2Fwww.jr3.com%2Fdocuments%2Ffiles%2Fdra wings%2F4873F.pdf, (4.11.2013). [6] B. Zupan, »Merilni sistem za analizo stabilnosti večnožne opore«, magistrsko delo, Fakulteta za elektrotehniko, Ljubljana, 2011. [7] M. Riccobon, »Vgrajeni sistem za zajem in posredovanje podatkov s senzorskih kontaktnih plošč«, diplomsko delo, Fakulteta za elektrotehniko, Ljubljana, april 2012. Merjenje volumna tekočine na podlagi razlike tlakov Primož Flander, Matjaž Mihelj Fakulteta za elektrotehniko, Univerza v Ljubljani, Tržaška c. 25, 1000 Ljubljana E-pošta: primoz.flander@gmail.com Measuring the volume of a liquid on the basis of difference in pressure The bio-analytical laboratories demand a correct and precise pipetting in order to ensure repeatable and reliable measurements. Different pipetting techniques among individuals can lead to different measurement results. Because of that, the pipetting systems are becoming more and more automatized, which brings many advantages, including a higher degree of repeatability and reliability. In this assignment, the workings of the MEMS pressure sensors, MCB 1700 evaluation boards, the pipettes, and xyz positioning system has been studied. We have developed an application that enables repeatable pipetting of desired volumes. Two pressure sensors were used to measure volumes, with the help of which the captured volume was determined with the volume determination program. It was established that the volume cannot be precisely determined through the measurement of volume on the basis of the difference in pressure. The developed application fits the set goals, despite a few of its shortcomings. The main shortcoming of the application is imprecise pressure measurement with a lot of noise. Better pressure sensors and optimisation of the volume determination program are proposed. pipeto postaviti v položaj za zajemanje volumna, zajeti želen volumen in pipeto izprazniti na želeni lokaciji. Merjenje volumna smo realizirali s pomočjo dveh senzorjev tlaka, na podlagi katerih smo z ustreznim algoritmom izračunali volumen zajete tekočine. 2 Uporabljena strojna in programska oprema 2.1 Razvojna plošča Keil MCB1700 in programski paket µVision Razvojna plošča MCB1700 (slika 1) nam omogoča razvoj in testiranje uporabniških programov. V kombinaciji z razvojno ploščo smo uporabljali programski paket µVision, ki nam omogoča preprosto programiranje in razhroščevanje. 1 Uvod Splošno znano je, da so netočnosti pipetiranih volumnov največji vir napak. Na rezultate meritev vplivajo temperatura, nadmorska višina in viskoznost tekočin. Ustrezen pristop je opredelitev kritičnih točk pipetiranja in zmanjševanje vpliva človeške napake s pomočjo avtomatizacije procesa [1]. Boljšo ponovljivost in avtomatizacijo meritev dosežemo z uporabo elektronskih pipet. Študije so pokazale, da boljše elektronske pipete omogočajo zajem volumnov 1µl z napako manjšo od 0.5% [2]. Pipete se v kombinaciji z mikro roboti uporabljajo tudi operacije bioloških celic in za manipulacijo z zelo majhnimi predmeti, kjer prevzamejo vlogo prijemala [3]. Avtomatizacijo pipetiranja smo poskušali v seminarski nalogi realizirati tudi mi. Seminarska naloga je zahtevala razvoj aplikacije za avtomatsko pipetiranje želenih volumnov. Naloga sistema za pozicioniranje in krmiljenje pipete je bila Slika 1. Razvojna plošča MCB1700 [4] 2.2 Pipeta Finnpipette F1 Omogoča zanesljivo, ponovljivo in veliko učinkovitost pipetiranja z napako manjšo od 0.8%. (slika 2). Nastavljamo lahko volumen od 10 do 100µl. Slika 2. Pipeta Finnpipete F1 [5] 3.2 2.3 Senzor tlaka LPS331AP LPS331AP (slika 3) je ultra kompakten piezoelektrični senzor absolutnega tlaka zgrajen na MEMS [6] tehnologiji. Omogoča merjenje tlaka v območju od 260 do 1260 mbar-a z ločljivostjo 0,02 mbar-a. Omogoča I2C in SPI komunikacijo. Program za premikanje in merjenje volumna pipete Program za pozicioniranje pipete smo razvili s pomočjo programskega paketa µVision. Program nam je omogočal začetno kalibracijo, premikanje pipete in upravljanje pipete s pomočjo tipk na razvojni plošči. S pomočjo informacije iz senzorjev tlaka je program izračunaval volumen zajete tekočine. 4 Delovanje aplikacije Slika 3. Senzor tlaka LPS331AP [7] 2.4 Sistem za pozicioniranje Omogoča natančno pozicicioniranje pipete v želeno lego s pomočjo štirih servomotorjev. Štirje so namenjeni xyz pozicioniranju in rotaciji mize, peti pa za upravljanje z pipeto (slika 4). Servomotorje krmilimo z razvojno ploščo s pomočjo pulzno-širinske modulacije. Ob zagonu najprej kalibriramo sistem za pozicioniranje, da se postavi v začetno lego. Ko sprožimo program, iz rezervoarja zajame določen volumen tekočine ter ga pipetira na izbrano lokacijo, ki je določena v programu. Volumen, ki ga pipeta ob pipetiranju zajame nastavimo na pipeti sami. S pomočjo izračunanega volumna iz senzorjev tlaka, ki sta nameščena eden v pipeti, drugi pa prosto v prostoru, lahko preverimo ali se izračunan volumen in nastavljen volumen pipete ujemata. 5 Zaključek Razvita aplikacija ustreza zastavljenim ciljem, vendar je za izboljšave še veliko prostora. Glavna pomankljivost aplikacije je nenatančno merjenje tlakov z veliko šuma. Predlagamo boljše senzorje tlaka in optimizacijo programa za določanje volumna. Razviti princip merjenja volumna s pomočjo razlike tlakov lahko s pridom uporabljamo še v veliko drugih aplikacijah. Literatura Slika 4. Sistem za xyz pozicioniranje 3 Razvoj aplikacije 3.1 Priključitev vhodnih in izhodnih enot V prvi fazi razvoja smo na razvojno ploščo MCB1700 preko I2C vodila priključili dva senzorja tlaka LPS331AP. Krmilnik servomotorjev, preko katerega smo s pomočjo pulzno-širinske modulacije krmilili posamezne motorje je bil že priključen. Za pozicioniranje pipete smo uporabili tipke, ki so se nahajale na razvojni plošči. [1] K. Pandya, C. A. Ray, L. Brunner, J. Wang, J. W. Lee, in B. DeSilva, “Strategies to minimize variability and bias associated with manual pipetting in ligand binding assays to assure data quality of protein therapeutic quantification,” J. Pharm. Biomed. Anal., vol. 53, no. 3, str. 623–630, Nov. 2010. [2] H. H. Nishi, “Mechanized, direct digital-control pipette for automation of ultramicro chemical analyses.,” Clin. Chem., vol. 18, no. 8, str. 771–4, 1972. [3] W. Zesch, M. Brunner, in A. Weber, “Vacuum tool for handling microobjects with a NanoRobot,” in , 1997 IEEE International Conference on Robotics and Automation, 1997. Proceedings, 1997, vol. 2, str. 1761–1766 vol.2. [4] “Razvojna plošča MCB1700,” http://www.keil.com/mcb1700/. (dostop: januar, 2014) [5] “Pipeta Finnpipette F1,” http://www.thermoscientific.com. (dostop: januar, 2014) [6] D. C. Abeysinghe, S. Dasgupta, J. T. Boyd, in H. E. Jackson, “A novel MEMS pressure sensor fabricated on an optical fiber,” IEEE Photonics Technol. Lett., vol. 13, no. 9, str. 993–995, 2001. [7] “Senzor tlaka LPS331AP,” http://www.st.com/web/catalog/sense_power/FM89/SC13 16/PF251601. (dostop: januar, 2014) Vodenje žoge z robotom Kuka LWR Primož Glavač1, Tadej Petrič2 1 Fakulteta za elektrotehniko, Univerza v Ljubljani, Tržaška c. 25, 1000 Ljubljana 2 Institut Jožef Štefan, Jamova c. 39, 1000 Ljubljana E-pošta: glavac.primoz@gmail.com Bouncing ball with robot Kuka LWR Bouncing ball with robot is real-time dynamic problem, where most important tasks are synchronization on basic frequency of ball, and compensating external variables (horizontal and vertical position of ball). We solved this with non-linear oscillators, which are extremely fast and satisfy our precision conditions. 1 Uvod V tem članku vam bomo predstavili vodenje oziroma odbijanje žoge s robotom. Če želimo odbijati žogo potrebujemo v realnem času informacijo trenutnega položaja žoge, frekvenco žoge ter kakšno fazo zamika potrebuje robot, da bo ravno v pravem času odbil žogo. Zato smo nalogo razdelili v dve pod-nalogi: iskanje lastne frekvence žoge ter učenje robota udarca žoge [1],[2]. Ker je odbijanje žoge ponavljajoči se gib, smo prvo pod-nalogo rešili z uporabo nelinearnih oscilatorjev v katere pripeljemo vhodni signal, v našem primeru je to vertikalna pozicija žoge [3]. Drugo pod-nalogo pa smo rešili na način, da lahko v programu preklapljamo med načinoma »delovanje« in »učenje«, kjer pri slednjem dovoljujemo, da robot zgolj kompenzira gravitacijo, za premikanje pa je potrebna zunanja sila (človek). 2 Izvedba 2.1 Naloga Naša naloga je bila razdeljena v več pod-nalog, in sicer zajem vhodnih podatkov žoge s pomočjo robotskega vida, pripraviti algoritem za enostavno učenje robota, pripraviti računalniško simulacijo ter preizkus delovanja eksperimenta na realnem robotu. 2.2 Eksperimentalni sistem Eksperimentalni sistem zajema programska orodja ter fizične naprave. Slednje so: kamera za zajem robotskega vida s 120 Hz osveževanjem, visoko odbojna enobarvna žoga, robot Kuka LWR (Slika 1) v povezavi s računalnikom ter prirejeno prijemalo/odbijalo za odbijanje žoge. Uporabili smo naslednja programska orodja: Matlab Simulink, za izvajanje algoritma vodenja, Robo Works za simuliranje in testiranje aplikacije ter program DBall za robotski vid. Slika 1. Robot Kuka LWR odbija žogo. 2.3 Algoritem vodenja Odbijanje žoge je ponavljajoč oziroma periodičen problem, posledično je trajektorija roke/robota za vsako periodo enaka s korekcijami (zamik levo, zamik desno, močnejši zamah, nižja točka odboja … ). Tako dinamičen proces nas prisili v uporabo metod, ki so sposobne potrebne podatke oziroma trajektorijo izračunavati v realnem času. Slednje nam je uspelo z uporabo nelinearnih oscilatorjev. Slika 2. Del sheme algoritma – oscilator z vhodi in izhodi. Naloga oscilatorja je, da poišče »osnovno frekvenco sistema«, to je v našem primeru frekvenca s katero se žoga odbija od tal. Na sliki 2 lahko vidimo, da so vhodi v oscilator trenutna pozicija žoge, trenutna pozicija vrha robota, nastavljiv parameter togosti oziroma podajnosti robota ter vklopljeno/izklopljeno učenje oscilatorja.[4] Na podlagi slednjih podatkov, se oscilator poskuša sinhronizirati na frekvenco žogo, z upoštevanjem faze zamika pa »lovimo« najoptimalnejši trenutek za odboj žoge. Oscilator vrača vertikalno koordinato robotskega vrha. Zaradi že prej omenjenih potrebnih korekcij je potrebno upoštevati tudi premik žoge v horizontalnih smereh (več v poglavju 2.4). 2.4 Robotski vid Za zajem pozicije žoge smo nadgradili že obstoječ program Dball za zajem podatkov iz kamere (T. Petrič, 2013). Na sliki izberemo točko oz. področje katero pozicijo želimo pošiljati naprej. Algoritem deluje na osnovi barve področja, ki ga označimo. Posledično je potreba po enobarvni žogi. Ker kamera zazna spremembo v barvi že zgolj ob drugačni osvetlitvi prostora, smo algoritem spremenili tako, da omogoča nastavitev barvnega spektra, kateri je še zadovoljiv za pravilno zaznavo žoge. Program nato pošlje koordinato x in y preko UDP protokola. Zaradi uporabe samo eno kamere, globine ne moremo zaznavati, posledično nimamo informacije o ordinatni osi, gledano iz perspektive robotskega vrha. Rešitvi sta dve: uporaba dveh kamer s poznano vmesno razdaljo ali sprememba algoritma zaznavanja žoge in sicer na način, da računamo površino žoge. Kamera zaznava žogo kot krog, kar pomeni, da različna oddaljenost žoge od kamere vpliva na različen premer kroga. V praksi se je izkazalo, da potrebe po slednjih metodah ni, oziroma bi jih uporabili pri izboljšanju rezultatov. 2.5 Simulacija Zaradi varnostnih razlogov ter prezasedenosti robota smo testirali našo aplikacijo najprej s simulacijo. Uporabili sem programski paket Robo Works, slednji ima dobro podporo s okoljem Matlab Simulink, kar se je odražalo v relativno enostavni implementaciji. Potrebno je bilo upoštevati gravitacijo ter zgraditi model žoge. Slika 3. Spodnji sinusni signal je vhodni, zgornji sinusni signal pa je izhodni signal iz oscilatorja. 2.6 Izvedba eksperimenta na realnem robotu Pri izvedbi na realnem robotu smo najprej v shemi dodali limite, ki ob prehitrih gibih slednjega ustavijo. Prvi preizkusi so pokazali, da je robot prepočasen in pretog za takšno nalogo. Togost smo nato rešili s dodatno peno na prijemalu/odbijalu, hitrost robota pa s kombinacijo nastavitev in spremembam parametrov močnostnega krmilnika. Robot je posledično deloval hitreje, vendar na meji zmogljivosti, kar se je odražalo tudi v pogostih varnostnih zaustavitvah. 3 Zaključek Spoznali smo da odbijanje žoge ni trivialen problem, kljub temu, da ga človek opravlja brez večjih naporov. Na Kukinem LWR robotu, nam je uspelo odbiti žogo vsaj petnajstkrat zapovrstjo. Pri tem je bila uporabljena lahka visoko-odbojna žoga. Rezultat bi lahko še izboljšali s bolj podajnim prijemalom/odbijalom, z zamenjavo robota z močnejšim in hitrejšim ter uporabo dvojnega robotskega vida (angl. stereo vision). Literatura [1] A. Gams, T. Petric, A. Ude, in L. Zlajpah, “Performing Periodic Tasks: On-Line Learning, Adaptation and Synchronization with External Signals,” The Future of Humanoid Robots Research and Applications, R. Zaier, Ed. InTech, 2012. [2] T. Petrič, A. Gams, A. J. Ijspeert, in L. Žlajpah, “On-line frequency adaptation and movement imitation for rhythmic robotic tasks,” Int. J. Robot. Res., vol. 30, no. 14, str. 1775–1788, 2011. [3] L. Righetti in A. J. Ijspeert, “Programmable central pattern generators: an application to biped locomotion control,” Proceedings 2006 IEEE International Conference on Robotics and Automation, 2006, str.. 1585–1590. [4] A. J. Ijspeert, “Central pattern generators for locomotion control in animals and robots: A review,” Neural Netw., vol. 21, no. 4, str. 642–653, 2008. Vodenje KUKA youBot z robotskim vidom Rok Goljat, Janez Podobnik Fakulteta za elektrotehniko, Univerza v Ljubljani, Tržaška c. 25, 1000 Ljubljana E-pošta: rok.goljat@gmail.com Guiding KUKA youBot using robot vision For this project, an existing code for robot vision had to be upgraded, to improve precision of estimating the pose of the robot. The robot was fitted with seven cyan colored markers which were then being detected using a ceiling mounted camera. The algorithm had to successfully estimate the orientation of the platform, and the position of the base of the robot arm. This was done by finding a transformation matrix between the recognized markers and a fixed reference. The marker recognition was done in MATLAB with the use of image processing toolbox. Lighting represented a major problem, so a user interface was implemented to help in successful marker recognition. 1 Uvod KUKA youBot je majhen mobilni robot s pet-osno robotsko roko in dvoprstim prijemalom. Naloga je zahtevala izboljšavo trenutnega algoritma določanja lege robota. Sledenje je bilo zagotovljeno s pomočjo barvnih oznak. Browning in Veloso sta se lotila zaznavanja barvnih oznak tako, da so za vsak slikovni element ocenili verjetnost, kateri barvi pripada. Hkrati bi se algoritem tudi prilagajal spremembam svetlosti okolja [1]. Kim in sodelavci so se lotili zaznave objektov tako, da so najprej sliko normalizirali, ter se s tem znebili vpliva neenakomerne osvetlitve objekta [2]. Nato so na podlagi barve iz slike izluščili vse možne kandidate za objekt ter nato z naprednimi algoritmi določili pravega. Pylkko je vpeljal koncept zaznave barve objekta s pomočjo “Color Judge” algoritma, ki vsakemu slikovnemu elementu glede na njegovo barvo dodeli oznako [3]. 2 Določanje lege mobilne platforme 2.1 Obdelava slike V našem primeru je bilo uporabljenih 7 okroglih turkiznih oznak, od tega so bili trije uporabljeni že v prejšnji verziji, štirje manjši pa so bili dodani naknadno. Kamera na stropu zajema sliko velikosti 1280x720 svetlobnih elementov, vsak okvir pa se nato obdela, da zaznamo vse vidne oznake. Najprej se naredi primerjava med rdečim in modrim kanalom, kar nam da sivinsko sliko. Rdeči in modri kanal sta izbrana zato, ker bo tu največja razlika pri turkizni barvi. Slika se nato zgladi, da se zmanjša šum, potem pa se spremeni še kontrast slike. To povzroči, da najsvetlejši elementi, ki v idealnih pogojih predstavljajo oznake, postanejo še svetlejši, ostali deli slike pa se še potemnijo. Zatem se slika še pretvori v binarno, kjer bela področja predstavljajo oznake in morebiten šum. Na takšni binarni sliki se z uporabo filtra odstranijo elementi, ki imajo število slikovnih elementov pod nekim določenim pragom, za ostale elemente pa se izračuna središče, ploščina in ekscentričnost. Na podlagi teh podatkov se nato lahko določi kateri elementi predstavljajo oznake, in kateri šum. Tabela 1. Okvirne 8-bitne vrednosti rdečega, zelenega in modrega kanala turkizne oznake pri različnih osvetlitvah Osvetlitev Prevladuje naravna svetloba Prevladujejo luči R 20 50 G 170 110 B 240 170 Slika 1. Primerjava slike, kjer prevladuje naravna svetloba (svetlejši del) in kjer prevladujejo luči (temnejši del) 2.2 Določanje lege Ko imamo uspešno razpoznane vse barvne oznake in določena njihova središča, jih je potrebno še pravilno razporediti, ker funkcija za izračun transformacijske matrike zahteva korespondenčne pare točk. Najprej lahko na podlagi velikosti določimo prvotne tri oznake. Na podlagi oddaljenosti od teh treh oznak lahko določimo še ostale štiri, ki so bile naknadno dodane. Za izračun transformacijske matrike sta uporabljeni dve različni funkciji. Prva računa afino aproksimacijsko matriko (1), ko je zaznanih več kot tri oznak, druga pa izračuna togo matriko preslikave (2), ko so zaznane samo tri oznake. V obeh primerih z dobljeno matriko preslikamo referenčni center, kar nam da iskani center baze roke (3). S pomočjo oznak A in C pa lahko izračunamo še orientacijo mobilne platforme. a11 xx a 12 xy tx x a12 0 a 22 0 t y 0 xy x 0 0 yy y 0 0 y 1 0 0 0 0 xx xy 0 0 xy yy 0 0 x y 0 0 0 x y 1 x' y y ' x x' y y ' x x' x y ' y x' x y ' y cos 1 x' x x' y x' (1) y' x y' y y ' arctg a11 a 22 a12 a 21 sin (2) t y y ' x sin y cos a12 a 22 0 tx t y 1 1 Določanje referenčnih točk Referenčne točke določi uporabnik z ročnim označevanjem centrov barvnih oznak. Določiti jih je potrebno takrat, ko je baza robotske roke čim bolj v središču vidnega polja kamere, saj je tam popačenje najmanjše. Ker je center baze roke težko natančno določiti ročno, je bil uporabljen algoritem po Pratt-ovi metodi, ki množici točk izračuna najbolj prilegajoč krog in vrne središče tega kroga [4][5]. Ker je baza robotske roke okrogla in različne barve kot mobilna platforma, je zato precej lažje določiti robne točke kot pa sam center. 3 Zaključek t x x' x cos y sin C x a11 C a y 21 1 0 2.3 C xr C (3) yr 1 V enačbah spremenljivke x in y predstavljata x in y koordinate centrov zaznanih oznak, x' in y' pa referenčne točke. Spremenljivke a in t predstavljajo elemente transformacijske matrike, ki preslika točko referenčnega centra v iskani center. Naslednji okvir se nato obreže, tako da iz celotne slike izluščimo samo nek določen del v okolici prej izračunanega centra. V primeru, da tudi tu pride do napake, pa se naslednji okvir ne obreže, ampak se zopet obdela celotna slika. Na ta način se cikel pospeši, ker se obdeluje manjša slika, zmanjša pa se tudi možnost napake. Slika 2. Prikaz postavitve oznak (A-G). X predstavlja iskani center baze robotske roke. Natančnost določanja lege je bila uspešno izboljšana. Izdelan je bil tudi uporabniški vmesnik, preko katerega lahko uporabnik določa referenčne točke, spreminja parametre, obdelava slike in na zaslonu opazuje njihov vpliv. Dodan je tudi gumb, s katerim lahko osvežimo začetni položaj kock. To nam koristi v primeru, če so bile kocke premaknjene med samo aplikacijo. Literatura [1] Browning, B. in Veloso, M. M., “Real-time, adaptive color-based robot vision”., v IROS, IEEE, str. 3871-3876, 2005. [2] Kim, S., S. Lee, S. Kim in J. Lee, “Object Tracking of Mobile Robot using Moving Color and Shape Information for the aged walking”., International Journal of Advanced Science and Technology, vol.3, str. 293-297, 2009. [3] Pylkko, H., Riekki, J. in Röning, J., “Real-Time ColorBased Tracking via a Marker Interface. ”, v ICRA , IEEE, str. 1214-1219, 2001. [4] Pratt V., “Direct least-squares fitting of algebraic surfaces, Computer Graphics”, vol. 21, str. 145-152 1987. [5] Chernov N., “Circle Fit (Pratt method) ”, http://www.mathworks.com/matlabcentral/fileexchange/2 2643-circle-fit-pratt-method , 18.12.2013 Merilni sistem za preučevanje smučarskih skokov Nejc Krajnik1, Grega Logar2 1 Fakulteta za elektrotehniko, Univerza v Ljubljani, Tržaška c. 25, 1000 Ljubljana E-pošta: nejc.krajnik7@gmail.com Measuring system for analyzing ski jumps Ski jumping is a very popular sport. The sport itself has been a subject of studies for many different scientists from different profession. The focus has mainly been on phases of the jump and safety. Most studies come from countries where ski jumping is more developed and popular. Biomechanic researches can be used for training improvement and better preparation of ski jumpers. For this purpose a receiver and two light sensors (for the detection of kickback) were added to a pre-made system, which include 7 inertial metric units (IME) for kinematic measurements. Using the whole system we can measure a ski jumper’s kinematics, calculate his takeoff speed and divide the jump into specific phases. In this article we will mainly deal with light sensors and the detection of kickback. katerega vodimo celotno merjeneje [3]. Tretji del sistema je sestavljen iz dveh svetlobnih senzorjev priklučenih na enoto z oddajnikom. Napajan je s 15 V baterijo. V vezju sta dva napetosna regulatorja. LM7812 za napajanje senzorjev z 12 V in drugi LM7805 za napajanje oddajnika s 5 V. 1 Uvod Smučarski skoki so priljubljena športna panoga. S smučarskimi skoki in njihovim preučevanjem se je do sedaj ukvarjalo že precej različnih raziskovalcev iz različnih področji. Ukvarjali so se predvsem s preučevanjem posameznih delov skoka in varnostjo [1] [2]. Večina študij prihaja iz držav, kjer so smučarski skoki tudi najbolj razviti. Biomehanske raziskave lahko uporabimo za izboljšanje treningov in s tem izboljšamo pripravljenost skakalcev. V ta namen smo že izdelanemu sistem, ki vsebuje 7 inercialnih merilnih enot (IME) za merjenje kinematike dodali še oddajnik in dva svetlobna senzorja, ki služita zaznavi odskoka skakalca [3]. Komunikacija med njimi poteka brezžično. S pomočjo celotnega sistema lahko izmerimo kinematiko skakalca, izmerimo njegovo odskočno hitrost ter razdelimo celoten skok na posamezne faze. V tem članku se bomo posvetili predvsem svetlobnima senzorjema in zaznavi odskoka skakalca. Slika 1: Blokovna shema sistema s svetlobnima senzorjema. Senzorja sta preko optocouplerja 4N32 povezana na vezje ki mu pravimo oddajnik. Oddajnik je del sistema s katerega IME pošljemo števec ob času ko skakalec prečka prvega izmed senzorjev in nov števec ko skakalec prečka drugi senzor. Sestavljen je iz mikrokontrolerja Atmega, ki skrbi za generiranje števca in komunikacijo med senzorjema ter AT86RF230. AT86RF230 je del oddajnika, ki brezžično komunicira z IME. Na Atmegi teče tudi programski del zaznave. 2 Delo 2.1 Sistem Sistem je sestavljen iz treh glavnih delov: 7 inercialnih merilnih enot (IME), ki so pritrjene na skakalca. Glavnega sprejemnika s pomočjo katerega sinhroniziramo IME za zajem podatkov ter po končanem merjenju poberemo vse izmerjene podatke iz microSD kartic. Priključen je na računalnik preko Slika 2: Blokovna shema oddajnika. Vzorčenje poteka s 400 Hz, kar je enako vzorčenju na IME. Ko skakalec prečka senzor, oddajnik na vse IME, ki so pritrjene nanj pošlje števec, ki je bil aktualen v času prečkanja. IME vse te podatke zapiše na microSD kartico. Enako zaporedje sledi tudi za drugi senzor. Zaradi samih povezav in zato ker signal od oddajnika do IME potuje po zraku, je v rezultatu prisotna določena zakasnitev. Le ta je bila izmerjena s pomočjo osciloskopa in navadno znaša okoli 2 ms. Hitrost skakalca izračunamo po enačbi (1). Za čas t uporabimo razliko števcev, ki jih dobimo s pomočjo naših senzorjev. Za razdaljo med senzorjema s pa moramo biti pozorni že pri namestitvi senzorjev in izmeriti razdaljo med njima. v s/t (1) 2.2 Rezultati Meritve, ki so zajete v analizo, so bile opravljene 31.12.2013 v Planici na srednje veliki skakalnici K-95, HS-104, pri temperaturi okoli 0 stopinj celzija in v brezveterju [4]. Slika 4: Graf poteka skoka. 3 Zaključek Projekt je obsegal izdelavo sistema za detekcijo odskoka skakalca, preizkus sistema in analizo skoka z njegovo pomočjo. Sistem je bil izdelan in uspešno preizkušen. Z njegovo pomočjo lahko določimo trenutek odriva, hitrost skakalca in skok časovno razdelimo na posamezne faze. Slika 3: Lokacija senzorjev (1) in oddajnika (2) na skakalnici. Senzorja sta bila postavljena na razdalji 9 m v konfiguraciji, ki je razvidna iz Slike 3. Končni senzor je bil postavljen povsem na rob odskočne mize. Skakalec, ki je bil opremljen z IME je opravil šest skokov. Po prenosu vseh podatkov iz microSD kartic na računalnik in obdelavi s pomočjo programa Matlab dobimo končne rezultate. Na Sliki 4 je prikazan potek šestega skoka. Na x osi je čas, na y osi pa φs, φGis, φb, φk, Vs. φs predstavlja kot med smučmi in horizintom, φGis predstavlja kot med smučmi in golenjo, φb predstavlja kot v bokih, φk nam pove kot v kolenu, Vs pa predstavlja kot med smučama pri V-slogu. Na grafu sta z dvema horizontalnima črtama prikazana tudi časa signalov iz svetlobnih senzorjev. Prva (rdeča) črta nam pove čas proženja prvega senzorja, druga (zelena) nam pove čas proženja drugega senzorja. Drugi senzor postavimo povsem na konec odskočne mize, tako da se proži točno ob optimalnem času odskoka skakalca. S pomočjo enačbe (1), poznano razdaljo s = 9 m in poznanim časom t med posameznimi prožitvami senzorja, ki je pri šestem skoku znašala 0,4075 s, dobimo hitrost skakalca pri odskoku 79,5 km/h. Literatura [1] J. Chardonnens, J. Favre, B. Le Callennec, F. Cuendet, G. Gremion, in K. Aminian, “Automatic measurement of key ski jumping phases and temporal events with a wearable system,” J. Sports Sci., vol. 30, no. 1, str. 53– 61, 2012. [2] W. Müller, “Determinants of ski-jump performance and implications for health, safety and fairness,” Sports Med. Auckl. NZ, vol. 39, no. 2, str. 85–106, 2009. [3] Grega Logar, “Merilni sistem za preučevanje biomehanike smucarskih skokov,” Fakulteta za elektrotehniko, Ljubljana, Diploma, Sep. 2013. [4] “Velikanka, Planica,” Skisprungschanzen-Archiv » skisprungschanzen.com. [Online]. Available: http://www.skisprungschanzen.com/DE/Schanzen/SLOSlowenien/Planica/0476-Velikanka/. [Dostopano]: 08Jan-2014]. Modeliranje in analiza človekovega gibanja v okolju OpenSim Katja Pretnar1 , Jan Babič2 1 Fakulteta za elektrotehniko, Univerza v Ljubljani, Tržaška 25, 1000 Ljubljana 2 Institut Jožef Stefan, Jamova 39, 1000 Ljubljana E-pošta: ajtak.pretnar@gmail.com Human Movement Modeling and Analyses using OpenSim The goal of our experiment was to investigate an alternative approach for human movement analysis. We used OpenSim, an open source software for biomechanical modeling and simulation. With motion capture system, we recorded 7 different trials of a healthy subject (our focus were the lower extremities) and compute various quantities for the experiment (joint angles, generalized forces at each joint and individual muscle forces at each instant in time). This paper points out few problems that we encountered during the usage of OpenSim, but all in all we realized that OpenSim has a lot to offer; from uncovering the principles that govern normal movement to designing an effective treatment for movement disorders. 1 2 Metode Opazovali smo sedem različnih gibanj spodnje ekstremitete. Opazovana oseba (moški spol, 29 let, 185 cm, 80 kg) je na začetku vsakega manevra mirovala, nato pa izvedla pet ponovitev osnovnega giba pri dveh hitrostih (počasi oziroma hitro); krčenje kolenskega sklepa, zamah celotne noge in posnemanje gibanja nog pri prsnem plavanju. Dodatno smo opazovali še navpični skok. Gibanje smo posneli z dvema kamerama sistema 3D Investigator pri frekvenci zajemanja 100 Hz. Desno spodnjo ekstremiteto merjenje osebe smo opremili z osmimi aktivnimi markerji (slika 1). Uvod OpenSim je odprtokodni program, namenjen modeliranju, simulaciji in analizi mišično-skeletnega sistema. Program je bil zasnovan leta 2007 na univerzi Stanford [1], velika skupnost strokovnjakov s celotnega sveta pa skrbi za njegov stalni razvoj. Osnova vsake analize v programu OpenSim je model opazovanega objekta, ki je zgrajen na podlagi diferencialnih enačb, ki opisujejo dinamiko segmentov, mišic ter geometrijo telesa. Naslednji korak pri analizi je izračun simuliranega gibanja, ki kar najbolje posnema eksperimentalno zajete podatke. Nadaljnja analiza nam omogoča ocenitev parametrov, ki jih ne moremo neposredno izmeriti, npr. obremenitve v sklepih ali akcije posameznih mišic oz. njihov prispevek h gibanju [2]. Program nam je lahko v pomoč pri kompleksnejših nalogah (načrtovanju zdravljenja bolezenskih stanj, simulaciji kirurških posegov, oblikovanju protez, simulaciji gibanja humanoidnih robotov inp. [3]). Študij človeškega gibanja je predmet raziskav številnih znanstvenikov. Namen programskega paketa OpenSim je osvetliti zakonitosti in razmere pri človeškem gibanju, dolgoročni cilj pa je sposobnost načrtovanja zdravljenja ob upoštevanju specifičnih lastnosti vsakega posameznika. Kljub velikemu napredku v tej smeri, znanstvenike čaka še veliko izzivov [3]. Slika 1: Postavitev osmih markerjev. Levo slika iz okolja OpenSim, desno pripadajoči markerji realne meritve. Zbrane podatke smo s pomočjo programa First Principles shranili v datoteke *.c3d. Te smo nato uvozili v okolje Matlab s pomočjo orodja b-tk Biomechanical ToolKit [4]. Podatke smo interpolirali, transformirali in jih shranili v datoteke *.trc. Pri tem nam je bila v pomoč že pripravljena koda iz [5]. Iz OpenSim knjižnice smo uporabili model spodnje ekstremitete “SeparateLegs”, za nekatere analize pa model “Gait2354_Simbody”. Virtualne markerje smo na model namestili tako, kot so bili nameščeni med samim eksperimentom. Generični model smo najprej skalirali, nato pa za vsak gib izračunali inverzno kinematiko, inverzno dinamiko, za krajše odseke pa izvedli tudi statično optimizacijo. 3 Rezultati Tabela 1: Maksimalne vrednosti navorov [Nm]. Rezultat dela v OpenSimu-u so datoteke, ki za vsak časovni trenutek vsebujejo podatke o spremenljivkah v sklepih (koti, navori) oz. mišicah (aktivacije, vrednost mišičnih akcij). V tem razdelku se bomo osredotočili le na rezultate, ki smo jih dobili pri analizi skoka (slika 2). sklep koleno kolk 4 Slika 2: Analiza skoka - 1. graf: koti, 2. graf: navori (pri obeh pikčasta črta predstavlja kolk, druga koleno), 3. graf: aktivacija dveh mišic (pikčasta črta predstavlja zadnjo stegensko, polna pa mišico meč). Prvi graf slike 2 prikazuje kote v kolku in kolenu. Razberemo, da je oseba trikrat skočila (vsak skok sestavlja odriv iz počepa, nato let v iztegnjenem položaju - koti se znova približajo ničelnim vrednostim - in pristanek v počep). Na koncu se oseba znova vrne v začetno lego. Sredinski graf prikazuje navore v kolku in kolenu pri enakem manevru. Opazimo, da imajo navori ves čas neko vrednost, le v fazi leta "oscilirajo". Formulacija inverzne dinamike zahteva za izračun popolnih navorov tudi podatek o sili interakcije. OpenSim uporabniku omogoča uvoz meritev pritiskovne plošče, česar pa naš eksperiment ni meril. Dobljeni navori so tako le posledica gibanja in niso povsem regularni. Tabelo maksimalnih navorov po iznosu za vsak posnet gib prikazuje tabela 1. Tretji graf na sliki 2 prikazuje mišično aktivacijo dveh mišic; zadnje stegenske (Long Head Biceps Femoris) in mišice meč (Soleus). Graf prikazuje aktivacijo le za prvi skok (drugačna časovna baza kot pri zgornjih dveh grafih). Pogled na graf dovoljuje grobo oceno o tem, katera mišica je aktivna v posamezni fazi skoka, npr. v fazi odriva je bolj aktivna mišica Soleus, v fazi leta in pristanka pa zadnja stegenska. gib krč. kol. 20 25 zamah 10 40 plav. gib 15 30 skok 30 80 Razprava OpenSim nam na dokaj enostaven način ponudi celo vrsto analiz, vseeno pa uporaba zahteva nekaj časa in truda. Program ne sprejema standardnih formatov, zato mora uporabnik sam pripraviti ustrezne datoteke. Na podobno situacijo naletimo, če bi želeli izračunane podatke obdelati v kakem drugem programu - potrebna je pretvorba iz tipa datoteke *.sto. Drugi večji problem pa nastopi pred vsakim računskim algoritmom. Takrat mora uporabnik izbrati nemalo parametrov oz. določiti uteži vhodnih podatkov. To posredno vpliva na kakovost rezultatov - kar program zabeleži kot napako, primer spodaj: (t=9.99): marker error: RMS=0.0150045 Vsak korak je torej iterativen. Uporabnik najprej grobo oceni parametre (potrebno je razumevanje posameznih prispevkov), nastavitve pa lahko enostavno shrani v datoteke *.xml za kasnejšo uporabo. Temu sledi več iteracij finega nastavljanja in ročnih popravkov v iskanju zadovoljivo majhne končne napake. V [3] so že razmišljali v smeri algoritmov, ki bi samodejno poiskali optimalne vrednosti. Pri spoznavanju s programom OpenSim smo ugotovili, da le ta predstavlja alternativni pristop k analizi človekovega gibanja. Za bolj kompleksne študije bi morali vključiti več izmerjenih podatkov (npr. podatke pritiskovne plošče, signale EMG ali pa vrednosti sklepnih koordinat, izračunanih v kakem drugem programu, morebiti bi zgradili lastne mišično-skeletne modele inp.). Vsekakor nam OpenSim ponuja veliko možnosti. Literatura [1] S. L. Delp, "OpenSim: Open-Source Software to Create and Analyze Dynamic Simulations of Movement,"IEEE Transactions on Biomedical Engineering,vol. 54, 2007. [2] A. Seth in M. Sherman, "OpenSim: a musculoskeletal modeling and simulation framework for in sillico investigations and exchange", Symposium on Human Body Dynamics, 2011 [3] A. J. Reinbolt in A. Seth, " Simulation of human movement: applications using OpenSim", Symposium on Human Body Dynamics, 2011 [4] b-tk Biomechanical Toolkit, https://code.google.com/p/b-tk/ [5] T. W. Dorn, "Gait Extract Toolbox for Matlab, Version 1.71", 2008 SEMINAR IZ ROBOTIKE IN MERJENJ Merjenje odvodnih tokov pri medicinski opremi Grega Eržen, Matej Žontar 1 Fakulteta za elektrotehniko, Univerza v Ljubljani, Tržaška c. 25, 1000 Ljubljana 2 SIQ Ljubljana, Tržaška c 2, 1000 Ljubljana E-pošta: grega.erzo@gmail.com Measurement of leakage current in electric medical equipment Electric current is harmful for human body and have many effects as we will see later in the paper. Because electric medical equipment is normally in contact with human body or at least in close range, this area of safety must be and indeed is strictly regulated by safety standards. In this paper we will go through correct steps and methods in measurement of leakage current in medical equipment. There are different types of leakage current, earth leakage, touch current, patient leakage current and patient auxiliary current. And beyond that, there are different allowable values of patient leakage current in difference of medical equipment and types of applied part. nam dovolj velik tok, onemogoči da prekinemo stik z nevarno opremo. Stopnja nevarnosti je odvisna od različnih dejavnosti, velikost toka, trajanje, smer, napetost, frekvenca. Velikost toka - Večji tok predstavlja večjo nevarnost, zaradi večje energije, ki se sprošča. Ker je velikost toka, po Ohmovem zakonu, sorazmerna z napetostjo in ker je upornost človeškega telesa ostaja, je večja napetost neposredno povezana z večjim tokom. Trajanje - Daljša kot je izpostavitev toku, večja je verjetnost za večje posledice. Smer toka - Za človeka je najbolj nevarno, če električni tok prepotuje telo preko srčne mišice, kar lahko privede, do odpovedi srca. Frekvenca - Večje frekvence toka povzročajo večje opekline, vendar zmanjšuje globino penetracije. 1 Uvod Glavna lastnost, ki loči električno medicinsko opremo od ostale električne opreme je v načinu uporabe. Medicinsko opremo se uporablja v neposredni bližini človeškega telesa, če ne celo v stiku s človeškim telesom, zato mora biti in tudi je, to področje zelo dobro uravnavano z varnostnimi predpisi. Električni tok ima mnogo nevarnih učinkov na človeško telo, čigar velikost nevarnosti je odvisno od več dejavnikov. Nevarnost za električni šok je še posebej velik pri medicinski opremi, ki je velikokrat v stiku s človeškim telesom in se pacient ne zaveda nevarnosti Medicinska oprema je, glede na stopnjo zaščite pred električnim udarom in vrsto dela namenjenega za pritrditev na pacienta, razdeljena na skupine. Za vsako skupin je v varnostnih standardih naveden način testiranja in vrednost še dovoljenih tokov. 2 Vpliv električnega toka na človeško telo Voda, ki predstavlja 70 % človeškega telesa, je dober prevodnik električnega toka. Vendar tok skozi človeško telo ne teče neovirano. Telo se prevajanju upira in predstavlja električno upornost, zaradi česar se pri prevajanju električnega toka sprošča toplota, ki predstavlja eno glavnih nevarnosti za človeško telo (slika 1)[1]. Druga nevarnost, ki jo povzroča električni tok, so motnje v delovanju živčnega sistema. Te motnje privedejo do mišičnih krčev, kar je posebej nevarno, ker Slika 1: Opeklina zaradi električnega toka 3 Medicinska oprema Medicinska oprema so ali električni instrument, stroj ali sistem, ki se uporablja v medicinske namene (slika 2). Glede na vrsto zaščite pred električnim udarom, se podobno kot ostala električna oprema delijo na : -razred I. Prisoten zaščitni vodnik za varovanje pred električnim udarom. -razred II. Zaščitni vodnik ni prisoten, zaščita je zagotovljena z dodatno izolacijo. -opremo z notranjim napajanjem. Zaščitni vodnik ni prisoten, zaščitna je prav tako zagotovljena z dodatno izolacijo glede stopnjo zaščite pred električnim udarom pa na: -B-tip. Osnovna zaščita, ki zagotavlja primerno stopnjo zaščite glede na dopustne vrednosti uhajavih tokov. -BF-tip. Aplikacijski del opreme je ločen po načinu F (floating-lebdeč), to je dvignjen od zemlje. -CF-tip. Oprema z največjo stopnjo zaščite in je edina primerna za neposredno srčno aplikacijo. 6 Limitne vrednosti odvodnih tokov Limitne vrednosti so definirane v standardu IEC60601, ki definira metodologijo merjenja, kot tudi še dovoljeno vrednost posameznih odvodnih tokov. Limitne vrednosti segajo od 10 mV pa do 10 μV. Pri preverjanju limitnih vrednosti moramo upoštevati tudi merilno negotovost(4). 7 Uporaba merilnika HIOKI 3156 Slika 2: Primer medicinske opreme za aplikativnim delom, ki je v stiku s pacientom – ultrazvok 4 Odvodni tok Električni odvodni tokovi v elektromedicinskem aparatu so sledeči[2]: -Ozemljitveni odvodni tok teče iz glavnega dela aparata, ki je prevodni zvezi z napajalnim omrežjem, skozi ali prek izolacije v zaščitnoozemljiveni vodnik. -Okrovni odvodni tok teče iz okrova ali njegovega dela skozi zunanjo prevodno zvezo, ki pa ni zaščitnoozemljitveni vodnik, v zemljo ali druge dele okrova -Pacientski odvodni tok teče iz aplikacijskega dela prek pacienta v zemljo -Zunanji pacientski odvodni tok teče prek izoliranega aplikacijskega dela v zemljo, pri čemer slednji izvira iz napetosti, ki se je nezaželena pojavila na pacientu iz zunanjega izvora 5 Testiranje medicinske opreme Medicinsko električno opremo testiramo v skladu z varnostnimi standardi[2],[3]. Opremo testiramo v vseh možnih stanjih in načinih delovanja. Zadostiti moramo naslednjim pogojem: -naprave testiramo v temperaturnem in vlažno stabilnem prostoru -normalno delovanja in delovanje v okvari -testiramo delovanje pri obeh polaritetah napajanja -najvišja specificirana napajalna frekvenca -napajalna napetost je enaka 110 % specificirane napajalne napetosti Opremo testiramo za vse vrste odvodnih tokov, najprej za ozemeljski odvodni tok, nato za okrovni odvodni tok, način meritve pacientskega odvodnega toka pa je odvisna od tipa naprave, tipa aplikacijskega dela ter prisotnosti dela za priklop senzorjev ali aktuatorjev Za meritve smo uporabili merilnik Hioki 3156, ki je namenjen za testiranje opreme za različne odvodne tokove. Merilnik že sam po sebi vsa potrebna merilna vezja, uporabnik pa se pri meritvi sam odloča, odvisno kakšno opremo testira, katero merilno vezje bo uporabil. Preden začnemo s testiranjem instrument priključimo na omrežje, z enim kablom napajamo sam instrument z drugim kablom pa priskrbimo za napajanje opreme, ki jo testiramo. Drugi kabel priključimo preko izolacijskega transformatorja, ki nam napajalno napetost pretvori na 110 % nazivne napetosti testirane opreme. Za nastavljanje merilnega vezja in limitnih vrednosti uporabimo zaslon na dotik instrumenta. Za merjenje tokov pa uporabljamo sonde, ki so uporabne tako za merjenje kot za dovajanje napetosti na območje vhodov in izhodov, odvisno od načina merjenja. 8 Zaključek Nevarnost električnega šoka je pri medicinski opremi še posebej velika zaradi neposredne bližine in dejstva, da je oprema namenjena reševanju življenj in ne sme povzročati dodatne nevarnosti. Oprema mora biti zato, dobro preizkušena in mora zadoščati strogim varnostnim standardom. Vse zahteve za izvedbo meritev, limitne vrednosti, druge posebnosti glede merjenj odvodnih tokov pri medicinski električni opremi in primer izvedenega testnega merjenja opreme smo združili v delu, ki smo ga poimenovali Measurement of leakage current in medical equipment in bo priloženo na predstavitvi. Literatura [1] Kralj A.: Osnove medicinske elektrotehnike, Ljubljana: DDU Univerzum, 1983. [2] Medical electrical equipment – Part 1: General requirements for safety, IEC60601-1, 1999 [3] Methods of measuring touch current and protective conductor current, IEC60990, 1999. [4] EA-4/02 - Expressions of the Uncertainty of Measurements in Calibration, www.europeanaccreditation.org/pdf/EA-4-02M.pdf, 2013 Kompleksni laserski viri za medicinske in industrijske aplikacije Beti Fajdiga1, Urban Pompe2 1 Fakulteta za elektrotehniko, Univerza v Ljubljani, Tržaška c. 25, 1000 Ljubljana 2 LPKF Laser & Electronics d.o.o., Polica 33, 4202 Naklo E-pošta: beti.fajdiga@gmail.com Complex laser sources for medical and industrial applications The main goal of the experiment was to find out where is the main source of movements during bonding of the mirror. Measurements were taken with two different devices: autocollimator and He-Ne laser in three points: on the robotic mechanism, on the gripper and between fingers of the gripper. The experiment showed that only the optical component between fingers of the gripper is moving. Pnevmatsko prijemalo omogoča prijemanje optičnih komponent z večjo silo od električnega prijemala. Pri tem je sila prijemanja proporcionalna tlaku. Največja sila znaša 107 N pri tlaku 7 bar. Prsti prijemala veliko prispevajo k uspešnosti pozicioniranja in ohranjanja pozicije med lepljenjem zrcala. Uporabljeni prsti so omogočali prijem po obliki, ki naj bi onemogočala premik zrcala med prsti, ko je prijemalo zaprto. 1 Uvod Prvotna naloga tega seminarja je bila študija izvedljivosti robotizacije proizvodnje diodno črpanih trdninskih laserjev (DPSSL). Ker trenutno proizvodnja laserjev poteka ročno, kar je zelo zamudno, si podjetja želijo to avtomatizirati. Pri tem so pomembni naslednji parametri: ponovljivost in ločljivost robota (velikost koraka premika), ustrezna povratna zanka s kamerami ter primeren način pritrjevanja optičnih komponent na ohišje laserskega vira (lepljenje, spajkanje). Na izvedbo zastavljene naloge vplivajo tudi togost, sila in način prijemanja zrcala. Med prvimi poizkusi je bilo ugotovljeno, da se optična komponenta med pritrjevanjem premakne. Vzrok za to je lahko v prstih prijemala, samem prijemalu in robotskem mehanizmu. V ta namen sta bila uporabljena dva He-Ne laserja in avtokolimator za opazovanje posameznih segmentov med pritrjevanjem zrcala. 2 Eksperimentalni sistem Celoten eksperimentalni sistem, ki ga prikazuje slika 1, je zgrajen iz robotskega manipulatorja Epson PS3 AS00 z zadovoljivo ločljivostjo 0,002° in ponovljivostjo pozicije ±0,03 mm, robotskega pnevmatskega prijemala Robohand RP-50PM ter prstov za prijemanje optične komponente, laserski vir s pripadajočim ohišjem in UV svetilka za polimerizacijo lepila ter dozirnik za nanos lepila. Del eksperimenta je tudi merilni sistem, ki sta ga sestavljala dva He-Ne laserja, avtokolimator in dve kameri ter pripadajoče optične komponente. Robotski mehanizem predstavlja šest-osni robot antropomorfne konfiguracije. Pomembni parametri robota za ta eksperiment so ločljivost in ponovljivost orientacije, ki pa žal ni podana, kljub temu robot ustreza zahtevam za uspešno pozicioniranje optičnih komponent. Slika 1. Postavitev eksperimentalnega sistema. UV svetilka omogoča polimerizacijo lepila uporabljenega za pritrjevanje optične komponente. He-Ne laser z valovno dolžino 633 nm je uporabljen v kombinaciji s polprepustnim zrcalom, ki omogoča opazovanje odboja laserskega žarka s kamero. Z enim laserjem smo opazovali premike zrcala znotraj prstov prijemala, z drugim pa premike prijemala. Avtokolimator omogoča merjenje horizontalnih in vertikalnih premikov velikosti 5 µrad. Sestavljajo ga vir koherentne svetlobe, leče znotraj avtokolimatorja za usmerjanje žarka, polprepustno zrcalo in CCD senzor, ki zaznava odklone opazovanega zrcala (Slika 2). Slika 2. Zgradba avtokolimatorja. Za dobro meritev z avtokolimatorjem je potrebno zagotoviti ustrezne delovne pogoje, ki vključujejo ustrezno ambientno svetlobo (čim manj svetlobe) in ustrezno velikost zrcal za merjenje odboja (uporabljeno okroglo zrcalo velikosti 1 in=2,5 cm). Slika 4 prikazuje odboj žarka na kameri, kjer opazujemo premik centra kroga izpisanega v milimetrih, zato moramo premik preračunati v mikroradiane (1) [3], da ga lahko primerjamo z meritvami pridobljenimi s pomočjo avtokolimatorja. d 2f (1) Razdalja f govori o oddaljenosti kamere od mesta odboja. Pri meritvah premika prijemala je ta razdalja f=130 cm, rezultate meritve pa prikazuje tabela 2. Meritve zrcala znotraj prstov prikazuje tabela 3, razdalja znaša f=118 cm. Tabela 1. Rezultati meritev premikov robota. Slika 3. Merjenje odklona žarka. 2.1 stanje Pred poskusom Po poskusu x [µrad] -0,001 y [µrad] 0,002 R [µrad] 0,003 0,005 -0,002 0,005 Rezultati meritev Avtokolimator vključuje uporabniški vmesnik (Slika 3), ki uporabniku omogoča izvajanje meritev. Pred začetkom izvajanja meritev je najprej potrebno umeriti avtokolimator na neskončno točko ostrenja. Na opazovano telo mora biti nameščeno zrcalo primerne velikosti in s pomočjo laserskega žarka na avtokolimatorju nastavljena smer opazovanja, kar je nujno zaradi ozkega vidnega polja avtokolimatorja. V uporabniškem vmesniku se nastavljata še hitrost zajemanja podatkov in ojačenje signala [1]. Pri poskusu so bile opravljene tri meritve z isto postavitvijo eksperimentalnega sistema, ki so pripeljale do ugotovitve, da se vsi premiki zgodijo le znotraj prstov. To pomeni, da se med lepljenjem robotski mehanizem in prsti prijemala ne premaknejo, premakne se le zrcalo, ki ga lepimo. Rezultate ene od meritev prikazuje Tabela 1, kjer so meritve izvedene s hitrostjo zajemanja 1/50 s in ojačenjem 18,8 dB. Tabela 2. Rezultati meritev premikov prijemala. stanje Pred poskusom Po poskusu x [µrad] -62 y [µrad] -45 R [µrad] 76,6 -56,2 -37,3 67,5 Tabela 3. Rezultati meritev premikov zrcala med prsti. stanje Pred poskusom Po poskusu x [µrad] -197,5 y [µrad] 74,6 R [µrad] 211,1 -190,3 580 610,4 3 Zaključek S pomočjo izvedenih meritev je bilo ugotovljeno, da se premiki dogajajo le znotraj prstov prijemala pri lepljenju optične komponente na ohišje laserja. Tako sta izločena faktorja premika robotskega mehanizma in premika prijemala. Posebno pozornost v nadaljnji študiji bo zato potrebno posvetiti izdelavi primernega prijemala [2]. Minimalna premika pri meritvi robota in prijemala sta posledica šuma in ločljivosti izbrane merilne naprave. Literatura Slika 4. Slika odbojnega žarka na kameri. [1] User manual: »AutoCollimator USB 2013.pdf«. [2] Fraunhofer, »Assembly solutions for micro-optical systems«,http://www.ipt.fraunhofer.de/content/dam/ipt/en /documents/210_06%20Assembly%20Solutions.pdf, (12.12.2013). [3] Autocollimators, http://www.trioptics.com/test_equipment/autocollimators/ description.php, (5.1.2013). Aplikativna uporaba robota za pobiranje neurejenih izdelkov z uporabo strojnega vida Primož Flander1, Franci Klun2 1 Fakulteta za elektrotehniko, Univerza v Ljubljani, Tržaška c. 25, 1000 Ljubljana 2 Kolektor Group d.o.o., Vojkova 10, 5280 Idrija E-pošta: primoz.flander@gmail.com Applicative robot use for imperfect product collection with the use of computer vision Nowadays, robotics no longer presents only a vision for the future, but is increasingly a part of the present and a condition for successful economy. Robots undoubtedly increase competitiveness, productivity, responsiveness, repeatability, precision, the quality of the products and reduce the loss. In this assignment, the workings of the ABB robotic manipulators, Cognex computer vision cameras and RS232 communication interface were examined. An application that enables the collection of imperfect products with a robotic manipulator and computer vision has been developed. We have established that even though the development of such an application is quick, it is very time-consuming to develop a robust and optimised application. The developed application fits the set goals, despite a few shortcomings. The main shortcoming is the fact that the camera is mounted on the top of robot and thus demands the robot be moved to the capture position prior to the capture of the image. We propose a stationary camera inside the working space. strojnega vida. Naloga robota je bila s pomočjo strojnega vida zaznati lego predmeta na odlagalnem mestu ter izračunati pozicijo in orientacijo. Robot je nato s prijemalom predmet pobral z odlagalnega mesta in izvedel postopek paletiranja. Seminarska naloga je praktični primer razvoja aplikacije za industrijsko uporabo. 2 Uporabljena strojna in programska oprema 2.1 Robotski manipulator ABB IRB 2600 V aplikaciji je bil uporabljen ABB-jev 6-osni robot IRB 2600 (slika 1), krmiljen s krmilnikom IRC5 [1]. Zasnova robota je optimizirana za aplikacije kot so: varjenje, paletizacijo in pakiranje. 1 Uvod Velika večina instaliranih robotov deluje v proizvodnji, kjer lahko delovno okolje prilagodimo robotu. V aplikacijah, kjer se okolja in pozicioniranja objektov ne da tako natančno zagotoviti, se roboti niso razširili, razlog za to pa je v pomanjkanju senzorskih sposobnosti komercialnih robotov. Eden izmed uporabnih robotskih senzorjev je vid, ki omogoča brezkontaktno merjenje okolice. Danes so na voljo robotski krmilniki različnih proizvajalcev s povsem integriranimi video sistemi, kjer sta operaciji vizualnega zaznavanja in manipulacije povezani odprtozančno, saj kamera najprej »pogleda«, robot pa nato opravi gib. Natančnost vodenja je tako direktno pogojena z natančnostjo video senzorja in robotskega manipulatorja. Tak način vodenja smo uporabljali tudi mi. Seminarska naloga je zahtevala razvoj aplikacije za avtomatsko pobiranje neurejenih izdelkov s pomočjo Slika 1. Robotski manipulator IRB 2600 2.2 Programski paket ABB Robot Studio Robot Studio z vgrajenim virtualnim kontrolerjem omogoča simulacijo, optimizacijo in programiranje robotov (slika 2). Omogoča realistične simulacije robotov, kadar robotskega manipulatorja nimamo na voljo [3]. usreznega algoritma za detekcijo predmetov in vzpostavitev komunikacije z robotom. Robot je s kamero komuniciral s pomočjo serijske komunikacije (RS-232). 3.2 Slika 2. Robotski manipulator IRB 2600 [1] 2.3 Programiranje robota za nalogo paletizacije Naloga robota je bila paletizacija predmetov [4]. Prvi korak razvoja je bil definiranje koordinatnih sistemov kamere, palete in odlagalnega mesta. Postopek paletizacije smo izvedli s pomočjo programiranja v Robot Studiu v kombinaciji z “učno enoto robota“ za vnos točk v prostoru. Razvit program omogoča enostavno prilagodljivost. Kamera Cognex IS7402 Kamera omogoča samodejno ostrenje, hiter zajem slike, integrirano osvetlitev v kompaktnem robustnem IP67 ohišju (slika 3). Podpira ethernet, serijsko komunikacijo in digitalne vhode in izhode [2]. 4 Delovanje aplikacije Robot se najprej iz začetne lege pomakne v pozicijo za zajem slike. Kamera detektira predmet in posreduje informacijo o legi predmeta robotu. Robot sedaj pozna lego predmeta, zato se pomakne v lego za prijem predmeta. Robot s pomočjo prijemala pobere predmet in ga odloži na ustrezno mesto v paleti. Če predmet ni detektiran, sistem za strojni vid posreduje napako in postopek paletizacije se zaustavi. S tem je preprečeno nepredvidljivo obnašanje robota. 5 Zaključek Slika 3. Kamera IS7402 2.4 Programski paket Cognex In-sight [2] Omogoča hiter, enostaven in zanesljiv razvoj aplikacije za strojni vid. S pomočjo funkcij za avtomatsko iskanje lastnosti predmetov, in samodejne optimizacije parametrov zelo skrajšamo postopek razvoja (slika 4). Slika 4. Program In-sight - detekcija predmeta 3 Razvoj aplikacije 3.1 Realizacija programa za strojni vid Program za detekcijo predmetov na odlagalnem mestu smo razvili s pomočjo programa In-sight in kamere IS7402. Postopek razvoja je obsegal kalibracijo, izbiro Razvita aplikacija ustreza zastavljenim ciljem, vendar je za izboljšave še veliko prostora. Prva izbolšava bi bila fiksno vpeta kamera v prostoru, druga pa robustnejši program za strojni vid. Literatura [1] “Robotski manipulatorji ABB,” http://new.abb.com/products/robotic. (dostop: januar, 2014) [2] “Oprema za strojni vid Cognex,” http://www.cognex.com/industrial-sensorchecker.aspx?langtype=2057. (dostop: januar, 2014) [3] D. Rukav, “Modeliranje proizvodnih sistemov z robot studio ABB,“ diplomsko delo, Fakulteta za strojništvo, 2012. [4] R. Logar, “Uporaba računalniškega vida pri robotskem prijemanju,“ Ljubljana, 2004. Robotska linija za krivljenje jeklenih palic Primož Glavač1, Matjaž Preložnik2 1 Fakulteta za elektrotehniko, Univerza v Ljubljani, Tržaška c. 25, 1000 Ljubljana 2 Etra d.o.o, Bukovžlak 101, 3000 Celje E-pošta: glavac.primoz@gmail.com Instructions and Template Nowadays we can not imagine industry without robots and automation, particularly in routine and dangerous processes. In this article, we will present you an automated line for cutting and bending steel bars, which are used in gear rings for automobile engines flywheels. 1 Uvod Dandanes si industrije brez avtomatizacije in robotov ne morem več predstavljati. Le ti opravijo levji delež dela predvsem pri rutinskih procesih. V članku, vam bomo predstavili avtomatizirano linijo za razrez in krivljenje jeklenih palic, katerih končni produkt so zobati obroči za avtomobilske vztrajnike motorjev. 2 Izvedba 2.1 Naloga Naša glavna naloga je bila spisati algoritem za zlaganje polizdelkov v zabojnik s največjim možnim izkoristkom. Ker se je naloga pokazala za zahtevno smo le to razdelili na več manjših. In sicer: proučiti možnosti zaznave višine zabojnika, najoptimalnejša izvedba samodejnega določanja višine odložišča polizdelka, vzpostaviti komunikacijo med roboti in krmilniki ter spisati varnostno politiko linije oz. del le te. 2.2 Delovanje in osnovni podatki o liniji Robotska linija se uporablja za krivljenje jeklenih palic v zobate obroče. Zaradi vse višjih avtomobilskih standardov so strogo določene tolerance, katerih se mora proizvajalec držati. Od vseh toleranc, je bila nam najpomembnejša toleranca premera obroča, in sicer mora biti manjša od 1 mm (premeri obročev variirajo od 150 mm do 600 mm ). Robotska linija je sestavljena iz zalogovnika dolgih jeklenih palic (6-9 m), podajalca, ki razvrsti in poravna vsako palico, tekočega traku, za transport palic, žage, za razrez palic na določeno dolžino, prvega robota, ki vstavlja razrezane palice v prvi ali drugi krivilni stroj ter drugega robota, ki pobere zakrivljene palice iz krivilnih strojev in jih zloži v zaboj. Slika 1. Zalogovnik jeklenih palic. 2.3 Komunikacija Linija vsebuje več krmilnikov: krmilnik žage, krmilnike oz. regulatorje motorjev, krmilnik robotov ter glavni krmilnik linije – Siemens S300. Med seboj komunicirajo preko protokola PROFIBUS. Kljub standardiziranemu protokolu, smo imeli težave s komunikacijo vseh naprav. Problem smo rešili s nadgradnjo krmilniške programske opreme ter prestavitvijo kanalov za komunikacijo stran od kanalov, kjer so položeni visoko napetostni kabli. 2.4 Algoritem pobiranja polizdelkov Naloga drugega robota je sestavljena iz dveh pod-nalog. In sicer prva pod-naloga je pobiranje polizdelkov iz krivilnega stroja. Ker se premeri obročev spreminjajo glede ne zahteve naročnikov, ni trivialno določeno, na kateri poziciji pobiramo obroče. Problem smo rešili računsko in sicer ob vsakem obroču (znana dolžina obroča oziroma obseg), izračunavamo polmer le tega, posledično preračunamo kje bi se rob obroča naj nahajal. Trke preprečujemo s programsko opremo za zaznavanje trkov (angl. collision detection). Več v poglavju 2.7. 2.5 Algoritem paletizacije Slednjega problema smo se lotili sistematično. Tako smo v prvi fazi robota naučili s vnaprej določenimi točkami, kam naj odlaga polizdelke. Zaradi premajhne dinamičnosti sistema, je le ta deloval dobro samo dokler zunanji vplivi (vibracije, človek) niso prestavili zabojnika. V drugi fazi smo obročem virtualno očrtali kvadrat s dodanim dodatnim varnostnim odmikom (5 mm) [1],[2]. Nato smo glede na dimenzije zabojnika, preračunali optimalnejšo rešitev kako postavljati obroče, vertikalno ali horizontalno glede na zabojnik. Na sliki 2 je prikazan sistem odlaganja izdelkov. Eden izmed problemov, ki se je na tem mestu pojavil, je kako prijeti izdelek, da se pri odlaganju ne bomo zaleteli v steno. Problem smo rešili tako, da smo zabojnik razdelili na več con. Robot odlaga obroče po vrsti, posledično zmeraj ve, v katero cono ga odlaga, kar pomeni, da pri tem uporablja različne podprograme, ki poskrbijo da ne pride do trka s zabojem. S conami rešimo tudi problem, ko v zabojnik zlagamo manjše obroče in jih gre posledično več vanj. V tem primeru robot osrednjo cono razširi, stranske cone ob steni pa ostanejo tam kjer so [3]. Slika 3. Robot odlaga polizdelek v zaboj. 3 Zaključek Slika 2. Prikaz odlaganja obročev v zabojnik. 2.6 Določanje višine odložišča polizdelka Na začetku je bila ideja, da bi višino odložišča obroča zaznavali s pomočjo zaznavanja trkov (angl. collision detection), vendar se je pokazala ideja kot zamudna ter problematična iz stališča obrabe oz. deformacije prijemala. Tako smo problem rešili računsko, in sicer smo upoštevali vhodni parameter debeline obroča. Robotski program tako pozna začetno višino zaboja, nato pa ob vsakem ciklu poveča oz. zmanjša višino odložišča. Rešitev se je pokazala kot delujoča. 2.7 Varnostna politika Kljub temu, da je celotna robotska linija zaščitena s varnostno ograjo, je varnostna politika izrednega pomena. Zato smo ji namenili kar tretjino časa (zaradi pomanjkanja prostora se bom osredotočil na robotski del). Kot že omenjeno, varnostna ograja fizično ločuje delovni prostor robota ter delovni prostor človeka. Ob kakršnikoli odpovedi oz. pregledu, je sicer možno priti do robotov, ampak so na vratih optični senzorji, ki ob prekinjenem žarku krmilniku sporočijo, da naj gre v zasilno zaustavitev. Kot naslednji varnostni ukrep smo program na robotu tako spremenili, da deluje sekvenčno, in sicer smo dodali varnostne signale z negativno logiko (ob prekinjeni žici se na krmilniku pojavi logična 1). Fanuc omogoča dodatni nakup programskih rešitev, med njimi je tudi programska oprema za zaznavanje trkov (angl. collision detection) [4]. Tudi to smo implementirali v program, kot dodatno varnostno rešitev, ki bi ob morebitnem trku s oviro varnostno zaustavilo linijo. Poskrbeli smo tudi za varnostno politiko ob izpadu elektrike ter vrnitvi le te. Naročnik je želel avtomatsko robotsko linijo za razrez in krivljenje jeklenih palic v motorske obroče. Pri tem je bila naša naloga poskrbeti za paletizacijo obročev. Ker gre za industrijsko linijo je najvažnejši parameter zagotovo zanesljivost delovanja. Kljub temu, da smo se problema lotili teoretično in sistematično ter pri tem našli tudi rešitev najoptimalnejšega zlaganja okroglih obročev v pravokotni zaboj, je zaradi dovolj zadovoljivih rezultatih obveljala rešitev očrtanih kvadratov. Izkazalo se je celo, da se največje možno shranjeno število obročev ne spremeni, ne glede na to ali uporabimo algoritem očrtanih kvadratov ali najoptimalnejši algoritem shranjevanja enakih krogov v kvadrat. Projekt lahko označimo kot izredno uspešnega, saj linija že deluje in izpopolnjuje pričakovanja naročnika. Literatura [1] “The best known packings of equal circles in a square.” [Online]. Available: http://hydra.nat.unimagdeburg.de/packing/csq/csq.html. [Accessed: 09-Jan-2014]. [2] H. Yu and L.-W. Zhang, “A Nonlinear Programming Model for the Packing of Unequal Circles into a Square Box,” in The Sixth World Congress on Intelligent Control and Automation, 2006. WCICA 2006, 2006, vol. 1, pp. 1044–1047. [3] H. T. Croft, Unsolved problems in geometry: unsolved problems in intuitive mathematics. [S.l.]: Springer-Verlag New York, 2013. [4] Fanuc Robotics, M-710iC Series, Fanuc robotics data-sheet, Rochester Hills, 2007 Industrijska robotika, aplikacija paletiziranja Rok Goljat1, Erih Arko2, Jure Pucelj2 1 2 Fakulteta za elektrotehniko, Univerza v Ljubljani, Tržaška c. 25, 1000 Ljubljana YASKAWA RISTRO d.o.o., YASKAWA SLOVENIJA d.o.o., Lepovče 23, 1230 Ribnica E-pošta: rok.goljat@gmail.com Industrial robotics, application for palletizing The goal of this project was to test an application for palletizing and its features. The application was still in development phase, so it was important to note every bug and error, so that the developers can then try and fix it. The application was working well on a demo station where it was being developed, so part of our testing was also there to see how well it can work in a different environment and settings. Differences included a smaller robot, which was originally used for welding applications, a vacuum gripper and a different type of product. Due to the application being in development phase, there was no detailed description of functions or a manual in English language. 1 Uvod izhodi za razne senzorje, kot so na primer senzorji prisotnosti produktov in prisotnost palete. 2.2 Demo postaja Demo postaja je vsebovala tekoči trak, ki je bil simuliran kot drča, po kateri so drsele lesene kocke, ki so predstavljale izdelek. Poleg drče je bil še prostor za vmesne kartone in mizica, kamor bi se zlagale kocke. Ta je predstavljala paleto. Kot robot je bil uporabljen robot varilec, na katerega je bilo pritrjeno vakuumsko prijemalo. Kocke so bile dimenzij 70 mm x 70 mm x 70 mm, z majhnimi odstopanji. Paleta je bila dimenzij A4 formata (210 mm x 297 mm), vendar je bila tekom testiranja odstranjena, namesto nje pa je bila uporabljena kar mizica, na kateri je bila paleta prvotno postavljena. Kot vmesni kartoni so bili uporabljeni debelejši listi formata A4. Senzorji, ki bi sicer bili priključeni na razne digitalne vhode na krmilniku, so bili simulirani s skupino stikal. Pri robotskem paletiziranju je pomembno, da se izdelki zlagajo na palete dovolj hitro in s tem ne upočasnjujejo celotne proizvodnje ter da so na koncu vsi izdelki stabilno zloženi. Stabilnost zloženih izdelkov se zagotovi z različno zloženimi nivoji ali pa z dodajanjem vmesnih kartonov (angl. ''slip sheet'') med posamezne nivoje. Potrebno je poskrbeti tudi za to, da robot izdelkov med odlaganjem ne poškoduje, zato je potrebno poskrbeti za varno trajektorijo odlaganja. Zaradi dolgotrajnosti ročnega učenja robota, je zaželeno, da se robotski programi ustvarijo s pomočjo aplikacij. Ena izmed takšnih aplikacij je MotoPal, ki jo razvijajo v Franciji. V pomoč pri uporabi aplikacije so nam bila na voljo njihova začasna navodila [1] [2]. 2 Testiranje aplikacije 2.1 Slika 1. Demo postaja (Elipsa – drča in vmesni kartoni, Pravokotnik – mizica kot paleta) Preizkušanje funkcij aplikacije Aplikacija je sestavljena tako, da uporabnik poda kateri elementi bodo prisotni v robotski celici. To so lahko tekoči trakovi, palete na katere se zlagajo produkti, kup praznih palet in kup vmesnih kartonov. Za vsak element mora uporabnik določiti, kateremu uporabniškemu koordinatnemu sistemu pripada, kje v tem koordinatnem sistemu se ta element nahaja in opisati, kakšnih dimenzij je le-ta. Odvisno od tega, za kateri element gre, pa se lahko še definirajo digitalni vhodi in 2.3 Priprava za testni zagon programa Aplikacija poskrbi za večji del robotskega programa, vendar mora človek še vseeno nekaj stvari storiti ročno. Tu gre predvsem za določitev točke TCP (angl. Tool Center Point) in definiranje vseh prej določenih uporabniških koordinatnih sistemov. Točko TCP se določi s pomočjo kalibracijske konice tako, da se orodje robota pripelje v tako lego, da bo ost kalibracijske konice predstavljala željen TCP. V to točko je orodje potrebno pripeljati petkrat, vsakič z različno orientacijo, od tega je z-os orodja določena s prvo lego. Uporabniški koordinatni sistemi so koordinatni sistemi zapisani glede na bazo robota, ki jih določi uporabnik. Določi se jih tako, da se vrh prijemala (TCP) najprej pripelje v izhodišče uporabniškega koordinatnega sistema, nato se določi njegova x-os in nazadnje še poljubna točka v xy ravnini. Ker pa smo imeli mehko vakuumsko prijemalo, njegov TCP pa je znotraj samega priseska, smo zato morali vzeti novo orodje s koničastim vrhom in določiti nov TCP. 2.4 Testiranje delovanja funkcij Testiranje funkcij je potekalo tako, da smo začeli s čisto preprostimi programi, kjer je bilo lažje poiskati in sproti odpraviti napake. Ko so takšni programi delovali zadovoljivo, smo te programe nadgradili in ponovno poskusili njihovo delovanje. Prvi program je vseboval samo pobiranje produktov in odlaganje na paleto. Pri tem ni bilo simuliranih nobenih senzorjev, paleta pa je imela samo en nivo. V naslednji nalogi je bil dodan še en nivo produktov, zatem pa smo preizkusili še delovanje vmesnih kartonov. Takšnega programa ni bilo mogoče uspešno preizkusiti, ker na voljo nismo imeli senzorja na prijemalu, ki bi zaznaval prisotnost kupa vmesnih kartonov in računal oddaljenost od vrhnjega kartona. Prav tako nismo imeli podprograma ki bi upravljal s tem senzorjem v povezavi s prijemalom. Problem smo preizkušali zaobiti tako, da smo v aplikaciji odstranili del kode, ki kliče ta podprogram. Program še vedno ni deloval, vendar smo tokrat ugotovili napako v aplikaciji ki teče na ročni učni napravi in jo zabeležili. Preizkušanje smo nadaljevali tako, da smo v program vključili še senzorje. V aplikaciji je bilo tako potrebno določiti digitalne vhode in izhode signalov. Tudi tu smo imeli težave, ki pa smo jih čez čas uspešno odkrili. Čeprav nam je aplikacija dovoljevala poljubno izbiro digitalnega vhoda za posamezen senzor, se je izkazalo da moramo izbrati točno določen digitalni vhod. Kot zadnje smo testirali še spreminjanj trajektorij odlaganja, pogledali pa smo si tudi kakšne spremembe bi morali opraviti, če bi imeli še kakšno drugačno prijemalo. Spreminjanje trajektorij je bilo dokaj preprosto, ker je dovolj da spremenimo trajektorijo samo za en produkt, ta pa se lahko prekopira še na vse ostale. Za različna prijemala pa bi imeli malo več dela, saj bi morali napisati nov podprogram za krmiljenje prijemala (angl. macro). Pri vakuumskem prijemalu tega ni bilo potrebno, saj je bil ta podprogram že vključen, in je skrbel samo za odpiranje in zapiranje prijemala. Slika 2. Primer načrtovanja trajektorije odlaganja (Levo – tip ukaza, Desno – urejanje, Sredina – potek) 3 Zaključek Odkritih je bilo kar nekaj napak, za nekatere izmed njih smo lahko tudi ugotovili izvor. Ker je aplikacija v fazi razvoja in sicer v Franciji, je tudi precej napak v angleški verziji programa. Tu gre bolj za napačne prevode, kar se morda sliši nedolžno, ampak lahko hitro nastane zmeda. Nekatere napake smo že med obdobjem testiranja sporočili razvijalcem, oni pa so nam podali rešitev, ostale pa so bile posredovane po zaključku testiranja. Literatura [1] Logiciel de programmation hors-ligne de palettisation, 1. izd, YASKAWA France, Saint-Aignan-de-Grand-Lieu, 2013. [2] Ecrans utilisateur dédiés à l’applicatif MotoPal, 1. izd, YASKAWA France, Saint-Aignan-de-Grand-Lieu, 2013. Načrt energetske prenove Fakultete za elektortehniko Nejc Krajnik1, Igor Pušnik2 1 Fakulteta za elektrotehniko, Univerza v Ljubljani, Tržaška c. 25, 1000 Ljubljana E-pošta: nejc.krajnik7@gmail.com Plan for energy renovation of Faculty of electrical engeneering The faculty of electrical engineering was built in the sixties without any insulation. Later, additional parts of the building were built. The yearly costs of heating and electricity for the whole building are substantial. The task was divided into two different parts. The first part was a census of electrical consumers in cooperation with IRI (Institute for innovation and development of University of Ljubljana) in category of cooling units. The second part was the calculation of the payback period for the faculty’s energy renovation (finished replacement of windows, insulation of the roof and facade) with PHPP – Passive House Planning Package. pomočjo teh podatkov se je poiskalo notranje enote in se določilo, kateri prostor hladi posamezna zunanja enota. Naknadno je bil določen še čas delovanja posameznih enot in vse skupaj je bilo zapisano v že pripravljeno Excel tabelo. Na celotni fakulteti se je naštelo 241 hladilnih split naprav. 1 Uvod Fakulteta za elektrotehniko je bila zgrajena v 60-tih letih prejšnjega stoletja brez kakršne koli izolacije. Kasneje so se dograjevali še posamezni deli stavb. Za celotno zgradbo se letno plačuje znatne vsote denarja za elektriko in ogrevanje. Naloga je bila razdeljena na dva dela. Prvi del je bilo sodelovanje pri popisu energetskih porabnikov na fakulteti za potrebe IRI (Inovacijsko-razvojni inštitut Univerze v Ljubljani) v kategoriji hladilne split enote. Drugi del je bil izračun vračilne dobe investicije za določen primer energetske sanacije fakultete (dokončna zamenjava vseh oken, dodajanje izolacije na strehi in na fasadah) s pomočjo programa PHPP – Passive House Planning Package. 2 Delo 2.1 Popis Popis je potekal v sodelovanju z inštitutom IRI, ki izvaja interdisciplinarne znanstveno-raziskovalne, razvojne in strokovne projekte prek usposobljenih strokovnih skupin [1]. Za potrebe detajlnega energetskega pregleda je bilo potrebno popisati vse porabnike energije na fakulteti. Porabniki so bili zaradi preglednosti razdeljeni v več skupin: hladilne split enote, razsvetljava, klimati, črpalni elektro pogoni, elektro porabniki. V kategoriji hladilne split enote je bilo potrebno poiskati vse zunanje enote hladilnih split naprav in iz njih prepisati proizvajalca, model naprave, leto izdelave, nazivno hladilno moč in nazivno električno moč. S Slika 1: Izgled izpolnjene tabele za popis split naprav. 2.2 Izračun primera Za primer izračuna vračilne dobe investicije se je uporabilo starejši načrt energetske sanacije ki ni bil nikoli izveden. Načrt predvideva zamenjavo vseh oken na fakulteti in dodajanje približno 20 cm izolacije na strehe ter na fasade vseh fakultetnih stavb. Pri izračunu je bil uporabljen program PHPP Passive House Planing Package. Program teče v Excelu in nam omogoča vnos vseh bistvenih podatkov za izračun porabe energije na fakulteti [2]. Vse podatke o fakulteti kot so število in vrsta oken, površina in zgradba strehe ter fasade in vse ostale potrebne podatke se je pridobilo iz diplomske naloge Marka Mlinariča ki je te podatke že uporabil pri izračunu energetske izkaznice fakultete [3]. Fakulteta je v grobem razdeljena na 4 dele poimenovane stavba A, stavba B, stavba C in stavba D. Vsak del ima specifično zgradbo strehe in fasade, tako da je bilo potrebno vsako stavbo za te postavke obravnavati ločeno, medtem ko se okna lahko obravnava v sklopu celotne fakultete. 2.2.1 Okna Na fakulteti je skupno 862 oken [3]. Od tega je bilo v preteklosti z novejšimi zamenjanih 529 oken. Starejših oken je tako ostalo še 333 in v programu PHPP so se vsa ta okna zamenjala z novejšimi. Toplotna prehodnost okvirja novih oken je 1,3 W/m2K in toplotna prehodnost zasteklitve 1,1 W/m2K. V tabeli 1 so podane dimenzije, število in cena posameznega novega okna. dobimo 917061 € za obnovo fasade in strehe skupaj z davkom. 2.2.3 Vračilna doba Tabela 1: Število, velikost in cena oken. Po primerjavi številk iz programa PHPP na sliki 2 vidimo da pred sanacijo za ogrevanje kvadratnega metra potrebujemo 76 kWh na leto, po sanaciji pa 37 kWh na leto. Fakulteta ima celotno površino 17470 m2. Iz tega podatka in računa za ogrevanje iz oktobra 2013 (fakulteta se v celoti ogreva preko toplovoda iz Ljubljanske toplarne) kjer je fakulteta porabila 56,6 MWh energije je bila cena 6369,7 €. Postavka za 1 kWh energije je torej 0,113 €. Število Velikost (m*m) Cena (€) 11 40 12 18 212 4 36 1 * 1,8 2 * 2,5 1*2 1,2 * 1,6 2,5 * 2,3 1 * 1,5 1,8 * 1,6 200 688 230 220 770 190 360 Pri izračunu pride cena za vseh 333 novih oken 213400 €. K tej ceni je potrebno prišteti še stroške odstranitve in odvoza starih oken ter montaže novih, kar navadno znaša od 25-30 % cene (odvisno od več dejavnikov). Zato k tej ceni prištejemo še 25 % to je 53350 € in dobimo skupno ceno za nova okna 266750 €. Tej ceni je potrebno prišteti še 22 % davka na dodano vrednost, ki velja za take primere in v tem primeru nanese 58685 €. Skupna cena za okna je torej 325435 €. 2.2.2 Streha in fasada Tabela 2: Površine streh in fasad [3]. Stavba Streha (m2) Fasada (m2) A B C D 1662,7 1312,1 825,5 1270,3 2314,5 3004,6 784,4 1026,8 Pri izračunu cene dodajanja izolacije na strehe in fasade se stavba C ni upoštevala, saj je bila leta 2000 prenovljena in že ima nekaj izolacije, hkrati pa je sestava fasade komplicirana in kot taka izredno draga za energetsko sanacijo. Za vse ostale fasade se je izračunalo, kot da se doda 20 cm Tervola DP-3 (kamena volna) s toplotno prevodnostjo 0,035 W/mK in ceno 55 €/m2 vključno z delom in zaključkom (omet). Glede na površine fasad, ki jih razberemo iz tabele 2, dobimo skupno ceno za fasade 349025€. Pri strehah moramo, zato ker so le te pohodne, namesto izolacijske volne dodati stirodur, potrebno pa je umakniti tudi staro kritino. Toplotna prevodnost stirodurja je 0,035 W/m2K, za 20 cm debeline pa skupaj z delom odštejemo 53,45 €/m2. Pri strehi B stavbe lahko zaradi zgradbe strehe uporabimo Tervol DP-3. Po izračunu glede na površine streh (tabela 2) dobimo ceno za strehe 229199 €. Skupaj za strehe in fasade dobimo ceno 578223 €. Potrebno je upoštevati še vsaj 30 % nepredvidenih dodatnih stroškov (postavitev odra, odstranitev stare kritine, odvoz starega materiala, strešni zaključki...) torej 173467 €. To prištejemo prejšnjemu znesku za streho in fasado, dobimo 751690 €. Tako kot pri oknih je potrebno dodati še 22 % davka na dodano vrednost, kar nanese 165372 €. Davek prištejemo skupni ceni in Slika 2: Poraba pred sanacijo (zgoraj) in po sanaciji (spodaj)[2]. Izračunamo, da se je pred sanacijo letno za ogrevanje porabilo 150032 €, po sanaciji pa bi se porabilo le še 73042 €. Razlika je torej 76990 €. Skupna cena sanacije strehe, fasad in zamenjave oken je 1242496 € in če to delimo z letnim prihrankom energije pri ogrevanju zaradi sanacije, dobimo vračilno dobo od 16 do 17 let. Vračilna doba je izračunana za trenutne cene energentov in brez morebitnih subvencij, ki jih je mogoče pridobiti za ta namen. 3 Zaključek Projekt je obsegal pripravo načrta energetske sanacije Fakultete za elektrotehniko. Popis hladilnih split naprav se je oddal IRI-ju, ki bo s pomočjo tega popisa in s pomočjo ostalih že omenjenih popisov naredil detajlno energetsko bilanco fakultete. Pri izračunu investicije v fasado, streho in nova okna, smo dobili vračilno dobo 16 do 17 let, kar je realno za take vrste projektov. Glede na pričakovan trend, da se bo povpraševanje po energentih in s tem cena še naprej zviševala, se lahko čas vračilne dobe tudi skrajša. Literatura [1] “IRI, O nas.” [Online]. Available: http://www.iri.unilj.si/o-iri-ul4/. [Dostopano: 03-Jan-2014]. [2] Dr. Wolfgang Feist, “Passive House Planning Package 2007.” Passive House Institute. [3] Marko Mlinarić, “Energetska izkaznica fakultete za elektrotehniko,” Fakulteta za elektrotehniko, Ljubljana, Diploma, 2012. Sistem za umerjanje štoparic s pomočjo kamere Katja Pretnar Fakulteta za elektrotehniko, Univerza v Ljubljani, Tržaška 25, 1000 Ljubljana E-pošta: ajtak.pretnar@gmail.com Stopwatch Calibration using Vision System Stopwatches are instruments used to measure time interval, which is defined as the elapsed time between two events. There are many different methods for a stopwatch calibration, but they all base on a comparison between the device under test (DUT) and a measurement reference. The uncertainty of the calibration is highly dependent on a human reaction time, which is estimated to be approximately 0,2s. We aim to reduce this uncertainty with a use of a vision system. A web camera is programmed to acquire several sequences of both stopwatch displays and the user than manually inspects them. At the end, he or she can calculate the offset of the DUT with respect to the reference. This offset is stated on a calibration certificate and it can be used to determine whether DUT meets its intended or legal metrology requirements. 1 Uvod Štoparica je inštrument, ki meri časovni interval - čas, ki preteče med dvema dogodkoma. Enota za čas je sekunda (s) in je ena izmed sedmih osnovnih enot v sistemu SI. Njena definicija se glasi: ki prikazuje izmerjene razlike v kazanju in ocenjene negotovosti teh razlik [3]. Kalibracije štoparic so izvedene na več načinov. Najbolj enostavna metoda je primerjava prikaza štoprice z znanim časovnim intervalom, možno pa je tudi neposredno merjenje frekvenčnih signalov časovne baze. Za zagotavljanje referenčnega časovnega intervala imamo več možnosti, npr. s pomočjo zvočnih signalov, ki označujejo točen čas (radio, telefon) ali preko številskih prikazov (ura na spletni strani, ki prikazuje uradni točni čas, referenčna štoparica). Pri izboru moramo paziti na zagotavljanje sledljivosti, kar pomeni, da lahko uporabljamo le certificirane reference. Glavni viri negotovosti pri kalibraciji štoparic so: negotovost reference, ločljivost testirane naprave in reakcijski čas človeka, ki izvaja meritev. Prva dva prispevka sta znana ter se jima ne moremo izogniti, vrednost tretjega pa na grobo ocenjujemo na okoli 0,2s. Za natančnejše postopke moramo izločiti vpliv človeškega faktorja [2]. Dovoljene meje odstopanja pri kalibraciji štoparic so odvisne od aplikacije in področja uporabe. Tipične vrednosti v primeru podjetja Krka so: - za analognih štoparicah so dovoljen meje ±5, 4 s, Ena sekunda je trajanje 9 192 631 770 period valovanja, ki se sprosti pri prehodu med dvema hiperfinima nivojema osnovnega stanja cezijevega atoma 133 Cs. Zaradi atomske definicije in današnje napredne tehnologije je sekunda definirana z izjemno točnostjo (v letu 2013 manj kot par deležev v 1016 ), kar je najmanjša negotovost med vsemi osnovnimi enotami [1]. Štoparice so dveh vrst; starejše analogne (z analognim prikazom in mehanskim delom za merjenje časa) ter digitalne. Te merijo čas na podlagi signalov, ki jih generira kvarčni kristal. Najbolj pogosta frekvenca teh kristalov je 32 768 Hz [2]. Kalibracija je postopek, kjer primerjamo kazanje testirane naprave (angl. DUT - Device Under Test) in referenčne naprave. Kalibracije potekajo na večih nivojih ter tako tvorijo verigo sledljivosti; od kalibracij na ravni nacionalnih etalonov do “terenskih” kalibracij, kjer so zahtevane točnosti precej manjše. Pri slednjih gre za umerjanje inštrumentov, ki se uporabljajo za merjenja v vsakodnevnem življenju. Kalibracija se zaključi s certifikatom, - za digitalnih štoparice pa ±5 sekunde. 2 Metode Podjetje Krka v svojem meroslovnem laboratoriju umerja štoparice za zunanje naročnike in za lastne potrebe, saj je merjenje časa pomembno tudi v farmacevtski industriji. Nemalo je kemijskih oziroma bioloških postopkov, ki se morajo izvajati točno določeno časovno obdobje, saj je s tem pogojena uspešnost postopka. Namen našega dela je bila izdelava sistema za umerjanje štoparic, ki bi izločil vpliv človekovega reakcijskega časa. To smo dosegli z uporabo kamere. Zajeli smo številčne prikaze obeh štoparic (referenčne in testirane) na eni fotografiji. To smo ponovili za več merilnih točk. Za vsako štoparico smo izračunali spremembo v kazanju med dvema merilnima točkama. Na koncu smo primerjali tako dobljene razlike testirane štoparice z razlikami referenčne štoparice. Morebitno odstopanje je hkrati pomenilo napako testirane štoparice glede ne refrenčno štoparico. 3 Rezultati 4 Za zajem slike smo uporabili preprosto in cenovno dostopno spletno kamero. Dandanes so takšne kamere že vgrajene v prenosnike. Program smo napisali v okolju LabView podjetja National Instruments. Za zajem fotografij smo uporabili elemente paketa NI Vision Acqusition Software. Grafični vmesnik končanega programa je prikazan na sliki 1. Slika 1: Čelna plošča. Uporabnik določi želene časovne intervale za 4 merilne točke (npr. takoj, čez 20, 40, 60 min), hkrati pa lahko z gumbom ročno sproži zajem slik. Ker smo predvidevali, da utegnejo nastati problemi z razpoznavanjem cifer številskega prikaza (npr. sliko zajamemo ravno v trenutku, ko se obrne zadnji digit), v vsaki meritvi posnamemo več (5) fotografij. Torej imamo 4 meritve s 5imi slikami, skupaj 20 fotografij, ki jih kot majhne sličice prikazujemo uporabniku. Če le ta klikne na sličico, si jo lahko pobliže ogleda v enem izmed dveh večjih prikazovalnikov grafičnega vmesnika. Zajete fotografije se avtomatsko shranijo v izbrano mapo. Ob vsakem zagonu programa se ustvari mapa oblike kalibracija_YYMMDD_HHMMSS, vanjo pa se takoj po posameznem zajemu shrani celotna sekvenca slik (format slika i a, kjer i označuje trenutno merilno točko (1-4), a pa mesto v sekvenci (a-e) ). To nam omogoča, da tudi v primeru nepredvidenih težav ohranimo že zajete slike v spominu računalnika. Program je zgrajen na osnovi dogodkov. Večino časa tako “ne dela nič” ter s tem po nepotrebnem ne obremenjuje računalniškega procesorja. Ob zaznanem dogodku (iztek časovnega intervala, pritisk uporabnika na gumb “START, STOP, ZAJEM”, klik na sličico) pa sproži ustrezno akcijo. Ko smo napisali program, smo iz njega ustvarili aplikacijo s končnico .exe, obenem pa poskrbeli še za ustrezno distribucijo, tako da aplikacija deluje tudi na računalniku, ki nima namaščenega okolja LabView. Program poskrbi le za ustrezen zajem, shranjevanje in prikaz slik. Za ostalo mora poskrbeti uporabnik; ustrezna priprava merilnega mesta (primerna oddaljenost kamere do štoparic, ustrezna osvetlitev), nastavitve parametrov kamere s programsko opremo kamere (kontrast, ostrenje, zoom). Vidljivost cifer je močno odvisna od teh nastavitev, prav tako se lahko razlikuje za različne USB kamere. Diskusija Okolje LabView olajša delo programerju z bogatimi knjižnicami za računalniški vid, a ta mora še vseeno natančno poznati princip delovanja in zahteve uporabljenih blokov. Pri komunikaciji s kamero smo morali paziti na ustrezno zaporedje korakov; najprej smo sejo vzpostavili, na koncu pa jo tudi sprostili. Precej težav nam je povzročalo zajemanje in shranjevanje slik, saj se podatkovni tip Image vede drugače kot ostali podatkovni tipi. Gre namreč za kazalec na mesto v medpomnilniku, kjer je trenutno shranjena slika. Tako je potrebno pred vsakim zajemanjem fotografij pripraviti ustrezna mesta v medpomnilniku. Posebna pazljivost je potrebna tudi pri nastavitvah zajema, saj se nam v nasprotnem primeru lahko zgodi, da LabView z novo zajetimi slikami prepiše stare. Opravili smo še test na realnem problemu. Ugotovili smo, da brez večjih težav lahko razberemo prikaz do desetinke sekunde, medtem ko je razbiranje digita 0,01s ponavadi bolj problematično, vendar še vedno izvedljivo. Nerealno pa je pričakovati, da bi lahko z nizkocenovno kamero razbrali tudi mesta, ki ustrezajo 1ms. 5 Zaključek Uspeli smo pripraviti program, ki zajema fotografije štoparic za namen kalibracije. Uporabnik lahko na podlagi teh slik izračuna napako kazanja testirane naprave glede na referenčno. S tem smo se znebili negotovosti zaradi človekovega reakcijskega časa. Hkrati ta metoda ni idealna, saj so zajete slike težje razberljive za večje natančnosti (npr. stotinka ali tisočinka sekunde). Dobljeni rezultati so najboljši možni za uporabljeno nizkocenovno opremo in so zadovoljivi glede na predpisano natančnost kalibracije. Zahvala Zahvaljujem se g. Miranu Rudmanu, vodji službe za meroslovje pri Krki d.d., za opis problema in podporo pri testiranju. Literatura [1] " SI brochure (8th edition), Appendix 2: Practical realization of the definition of the unit of time", BIMP, 2006, zadnji popravek: junij 2013. [2] J. C. Gust, R. M. Graham in M. A. Lombardi, " Stopwatch and Timer Calibration (2009 edition)," National Institute of Standards and Technology, U.S. Government Printing Office, 2009. [3] M. Glaser, M. Kochsiek, Handbook of Metrology, Wiley-VCH, Weinheim, 2010.