Univerza v Ljubljani Fakulteta za elektrotehniko in Akademija za likovno umetnost in oblikovanje ROBOTSKI MEHANIZMI, ZAZNAVANJE IN UMETNOST Ljubljana, januar 2013 Študenti FE Ajdišek Ervin Golob Gašper Hribar Nino Jakopin Blaž Juvan Andrej Kepic Luka Kocjančič Leon Kodrič Slavko Korpič Tjaša Lapajne Matevž Logar Grega Mrljak Luka Peklaj Tomaž Pokorn Lovro Rode Domen Šepetavc Janez Tavčar Jani Vodopija Dejan Županek Iztok Mentorji Matjaž Mihelj, FE Janez Podobnik, FE Jaka Ziherl, FE Robert Ravnik, FRI Aleš Jaklič, FRI Bojan Klemenc, FRI Bojan Nemec, IJS Luka Peternel, IJS Fares Abu-Dakka, IJS Matjaž Zadravec, URI Robert Logar, ABB Študenti ALUO Špela Petohleb Nives Orešnik Braco Koren Jana Kralj Tjaša Zmrzlak Monika Zabret David Wratny Ingrid Rozman Predavatelji Tadej Bajd Jadran Lenarčič Matjaž Mihelj Franc Solina Srečo Dragan UVOD V pričujoči brošuri so zbrani povzetki osmih študentskih raziskovalnih nalog. Opravljene so bile v okviru praktičnih vaj pri predmetih Robotika II in Robotsko zaznavanje in umetna inteligenca v sodelovanju s študenti Akademije za likovno umetnost in oblikovanje. 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 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 osmem semestru pri predmetu Robotika I, pri čemer jih čim bolj poskušamo uvesti v samostojno delo. Zaradi specifičnih zahtev za robotske mehanizme ti projekti še vsi potekajo v Laboratoriju za robotiko. Da bi lahko zagotovili dovolj zanimivih projektov iz robotike in robotskega zaznavanja pa smo se v Laboratoriju odločili, da se za izvedbo projektnih nalog v devetem semestru povežemo z zunanjimi sodelavci. V nekaj letih takšnega načina izvajanja vaj smo mrežo inštitucij na katerih študentje opravljajo vaje razširili na dve fakulteti, dva inštituta in pet podjetij s področja robotike. Študenti si na ta način lahko prosto izberejo smer robotike, ki jih najbolj zanima – bodisi predvsem raziskovalno usmerjeno ali pa bolj aplikativno. Pri tokratni izvedbi raziskovalnih nalog pa smo dodali še tretjo komponento – umetniški vidik. V navezi s študenti in profesorji ALUO so nastale zanimive inštalacije, ki združujejo znanost, tehniko in umetnost. Na tem mestu se želiva še posebej zahvaliti vsem mentorjem za skrbno vodenje svojih varovancev. Matjaž Mihelj in Tadej Bajd Kompozicija slike Nino Hribar1, Grega Logar1, David Wratny2, Robert Ravnik3 Fakulteta za računalništvo in informatiko 1 Fakulteta za elektrotehniko Akademija za likovno umetnost in oblikovanje 3 Fakulteta za računalništvo in informatiko 2 [email protected], [email protected], [email protected] Povzetek S pomočjo detektorja oseb, na sceni le-te zaznamo in jih postavimo v neko vnaprej določeno kompozicijo. Ker moramo poleg detekcije zajeti tudi sliko osebe, smo v ta namen vzeli Kinekt (vmesnik, ki omogoča prostoročno igranje iger na Xbox napravah). Kinekt ima dve IR in eno RGB kamero. Kameri IR sta nekoliko narazen in tvorita stereo vid. Aplikacija je izdelana s programeskim paketom Visual Studio 2010. Za upravljanje Kinekta uporablja knjižnico openNI. Knjižnica poskrbi, da prenese zajete slike iz Kinekta in jih obdela. Tako dobimo masko oseb in točke okončin oseb na sceni (maska – silhueta osebe, točke – komolec, glava, rame, zapestje,...). Knjižnica nam seveda priskrbi tudi barvno sliko. Za kasnejšo obdelavo slik pa uporablja knjižnico openCV. Zajete slike obravnava kot matrike. Barvno sliko ter masko pomnoži in dobi barvno sliko, samo določene osebe na sceni. Pri projektu smo naredili tri različne scenarije – kompozicije. V prvem in drugem scenariju osebo umestimo v kompozicijo slike. Na sceni se lahko oseba premika poljubno, v scenariju pa ima samo določen prostor, da ne kvarimo kompozicije. Tako iz dobljenih točk okončin izračunamo središče trupa osebe in jo prilepimo v naprej določen prostor na sliki. Tedaj se lahko oseba na sceni giblje poljubno, na sliki pa ostaja v točno določeni točki. V tretjem scenariju pa se na sliki ustvarja zgodovina gibov osebe, ki je na sceni. Na koncu vseh treh scenarijev zajeto kompozicijo shranimo v spomin programa in na disk. Vsaka slika je shranjena z imenom razstave in datumom. V kolikor ni nobene osebe na sceni, prikazuje nekaj zadnjih zajetih slik iz njegovega spomina. Da dobimo lep mehak prehod iz ene slike v drugo, seštejemo ti dve sliki z različnimi utežmi ob različnem času. Pogled dvojnega zrcala Pred časom sem po televiziji zasledil zanimivo skrito kamero, ki je temeljila na postavitvi ogledala na ulici. Mimoidoči so se ustavljali pred ogledalom in se opazovali. Nihče ni obšel zrcala. Vsak se je ustavil, pa čeprav samo za hip, in zrl v svojo podobo. Skrita kamera mi je dala misliti, zakaj so se ljudje ustavljali pred ogledalom in ravno zaradi tega sam postal pozoren na ta pojav. Vsakič, ko se je na moji poti pojavilo ogledalo, sem se zalotil, da opazujem tistega dvojnika, ki se v njem pojavi, naj bo to zaradi nečimernosti, iskanja samega sebe ali pa zgolj samo zaradi samopotrditve, ki je v današnjem svetu povezana, ne več tako kot pri Descartesu z mišljenjem (Cogito ergo sum), temveč z vidnim aparatom, ki mu pravimo oko, in posledično s pogledom. Tako moderen človek verjame samo še v to, kar vidi, in si ne predstavlja drugačnega sveta, kot tistega, ki mu ga posreduje njegovo oko. Ravno zaradi tega sem razmišljal, da bi obiskovalcu galerije, kjer bi bila postavljena moja videoinstalacija, poundil drugačen pogled na svet in ga tako postavil, s pomočjo kamere in ekrana/projektorja, v nadrealistično, pusto, suho in ogromno pokrajino, ki se naslanja na Freudovo psihoanalizo sanj. V ta namen bi predložil par pokrajin, ki bi se po naključnem ključu prikazovale na steni, v trenutku, ko bi program zaznal obiskovalčev obraz. A že sama pokrajina ni dovolj, da je neka vsebina nadrealistična, potrebno bi bilo določen obiskovalčev ud digitalno tudi podaljšati ali ga s pomočjo renesančne perpektive "povleči v prostor" in mu tako dodati absurdnost, ki se dogaja v sanjah. Obiskovalcu bi ponudil še dva različna pogleda in sicer futurističnega, kjer bi mu preko enega temeljnih pogledov futuristov, hitrosti, predstavil in ga opozoril, da posameznik neprestano nekam hiti in da je modernemu človeku postal pomembnejši cilj kot pa pot. V ta namen bi s pomočjo programa, ki zaznava obraze, podvojil obiskovalčevo silhueto in ustvaril občutek gibanja. Kamera bi zajemala gibanje v krajšem časovnem razmaku in ga združila v eno samo sliko, tako kot lahko lepo vidimo v Ballovi sliki "Dinamika psa na povodcu". Tretji pogled bi ponudil obiskovalcu fotomanipulacijo na način ruskih avantgardistov. S tem poimenovanjem se srečujemo v umetnosti in politiki. [...] V kulturnem pomenu avantgarda opisuje ljudi ali dela, ki so nova, običajno eksperimentalne narave. Tako bi obiskovalčeve portrete združil v nove kompozicije, ki se igrajo z renesančno gradnjo prostora in z njimi soustvarjal nov, sebi lasten in v naravi neobstoječ prostor. Literatura Avantgarda, v: Wikipedia, http://sl.wikipedia.org/wiki/Avantgarda (dostopno dne 9.11.2012 ob 15:03) Knjižnica openNI, http://www.openni.org (dostopno dne 7.1.2013) Knjižnica openCV, http://www.opencv.org (dostopno dne 7.1.2013) Glasbeni mlinček Luka Mrljak, Luka Kepic Mentor: Matjaž Zadravec URI Soča [email protected] [email protected] Povzetek Pri projektni nalogi sva se odločila izdelati napravo, ki s pomočjo mehanskih premikov generira glasbo. Za izvor tonov sva vzela stare disketne enote (floppy disc), ki sva jih nato krmilila s pomočjo mikrokontrolerja PIC16F887. Program sva napisala v okolju MPLAB s prevajalnikom HI-TECH PICC. Za generiranje posameznih tonov sva najprej morala ugotoviti algoritem krmiljenja disketnih enot, nato pa sva napisala program ki vključuje funkcije za posamezen ton. Tip tona je odvisen od hitrosti korakanja koračnega motorja, ki premika glavo disketne enote, dolžina tona pa je odvisna od števila korakov, ki jih koračni motor opravi. Za sestavljanje melodij sva morala vsak ton narediti v treh variantah: Celinka, polovinka in četrtinka. Ker so toni močno odvisni od geometrije disketne enote, lahko iz disketnih enot dobimo le omejen nabor tonov. Uspelo nama je dobiti sledeče tone: C2 , H1, AIS1, A1, GIS1, G1, FIS1, F1, E1, DIS1, D1, CIS1, C1, H, AIS in A. S pomočjo omenjenih tonov sva nato sestavila štiri melodije po želji sodelavke iz ALUO. Melodije uporabnik med seboj preklaplja s pomočjo tipke. Ko tipko pritisne trenutna melodija najprej odigra do konca, nato pa se prične naslednja. Sodelavka iz ALUO pa je izdelala skulpturo po vzoru Dalíjeve slike Goreča žirafa, v katero smo namesto predalčkov implementirali disketnike. Literatura Verle Milan. PIC Microcontrollers - Programming in C. mikroElektronika; 1st edition ISBN-13: 978-86-84417-17-8 Beograd 2009. Sonifikacija slikovnih materialov Slavko Kodrič, Blaž Jakopin, Bojan Klemenc, Franc Solina Fakulteta za računalništvo, Fakulteta za elektrotehniko [email protected], [email protected] Povzetek Sonifikacija je oblika avditornega prikaza, kjer skušamo preko neverbalnih zvokov sporočati informacijo, ki jo pridobimo iz poljubnih algoritmov obdelave podatkov. Kot dober primer sonifikacije služi Geigerjev števec, ki preko frekvence zvokovnih signalov posredno podaja informacijo o nivojih radioaktivnega sevanja. Naša naloga je bila sonificirati slikovne vsebine, preko že znanih algoritmov iz knjižnice openCV. Zajete podatke je bilo potrebno uglasbiti z orodjem za sintezo glasbe Csound, znotraj katerega smo lahko definirali posamezne instrumente in do njih dostopali iz našega programa s pomočjo funkcij, ki smo jih našli v Csound API. Za algoritme obdelave slike smo se odločili za optični tok( »optical flow«) in (»color tracking«). Algoritem optičnega toka računa dinamiko slike. Zdajšnjo sliko primerja s prejšnjo in v vsaki izračuna primerne regije za analizo, ki jih med sabo primerja in izračuna spremembo po času. Kot izhod vrne matriko vektorjev, ki kažejo smer in absolutno vrednost hitrosti regij, ki so se spremenile. Te vektorje lahko skušamo uglasbiti in jih implementirati kot uporaben avditorni prikaz. Podobno skušamo narediti tudi pri sledenju barve, vendar se tukaj poslužujemo drugega algoritma. Pri sledenju barve smo preko pragovne funkcije določili barvo, kateri sledimo in izračunali število podobnih regij, ki jih najdemo na sliki. Za sintezo glasbe iz informacij iz slike je potrebno najprej določiti mapiranje ali prirejanje parametrov. Pri vsakem poskusu sonifikacije se namreč pojavlja vprašanje: Katere informacije iz dimenzije slike oz. realnega sveta bomo priredili parametrom zvoka. Osnovni parametri zvoka so znani in so: višina tona, tempo in glasnost. Poglavitni del naloge je bilo ugotoviti ustrezno mapiranje, ki bi zagotovilo nek zanimiv avditorni prikaz. OPEN CV CSOUND SONIFIKACIJA Literatura Hermann, T., Hunt, A., Neuhoff, J.G. (2011). The Sonification Handbook, Logos Publishing House, Berlin Barry V., The Caninical Csound Reference Manual, version 5.18, MIT Media Lab, Dostopno na naslovu: http://www.csounds.com/manual/html/index.html Več avtorjev, OpenCV 2.0 C Reference, Dostopno na naslovu: http://opencv.willowgarage.com/documentation/ Nika Korsic, ALUO S študenti FE, Laboratorija za robotiko smo izvedli projekt, v katerem smo vizualno zaznavanje pretvorili v slušno zaznavanje. To pomeni, da smo neko sliko, tako statično kot premično, računalniško zapisali in jo, z računalniškim programom pretvorili v zvočne znake. Gre za trend, ki sega že v antično obdobje in je vzbudil že ogromno zanimanja. Veliko raziskav je bilo narejenih tudi v obratni smeri - iz glasbe v sliko. Ideja projekta je da vizualni del poskrbi za nekaj kar vidimo, slušni del pa, da tudi brez tega kar vidimo, zaznamo neko gibanje, lokacijo, hitrost in barvo. Obstaja določeni term (chromatic bricks), ki ga poimenujem kromatična opeka, ki ponazarja enoto, ko je iz barve ustvarjen kompleten glasbeni košček. To je Yi vrednost, oz. enota. Obstajata dve metodi. Video, kot premično sliko sestavljajo 3-je deli, oz. 3 lokacije snemanja. Vse med sabo druži to, da so obljudene, pretočne, v centru Ljubljane. Razlikujejo se po svoji namembnosti in okoliščini. Večje, pomembnejše križišče, Prešernov trg in nakupovalni center Šentvid so lokacije, ki se povezujejo s tem, da se skoznje prelije velika množica ljudi, vendar vsak s svojim namenom, drugačnim prevoznim sredstvom, kot npr. v križišču množica avtomobilov, tovornjakov, avtobusov, kolesarjev, pešcev, na trgu spet kolesarji in pešci, v trgovini pa le pešci, s svojimi vozički, vrečkami in jim je, če se vrnem k skupnemu, enako to, da gredo vsak v svojo smer. S temi dinamikami lahko preučujemo barve, hitrost, dolžino, intenziteto, skratka elemente, ki so nam pomembni pri razločevanju, oz. preračunavanju faktorjev v slušno zaznavo, zvočni zapis. Statično sliko bodo določale fotografije posnete s teleskopom Hubble, kjer bodo slike "predvajale" glasbo vesolja. Robot postrešček Študenti: Tomaž Peklaj, Andrej Juvan in Tjaša Zmrzlikar Mentor: Robert Logar in prof.Srečko Dragan Naziv institucije: ABB Slovenija [email protected] [email protected] [email protected] Koncept Danes si nihče ne more predstavljati življenja brez strojev, robotov takšnih in drugačnih. Seveda pa o tem niti ne razmišljamo, ker se nam takšno življenje z roboti zdi normalno in predvsem samoumevno. Kljub vsemu pa si v nekaterih situacijah zelo težko predstavljamo, da bi človeka zamenjal robot. Verjetno bi bili precej presenečeni, če bi s prijateljem odšli na pijačo in bi za točilnim pultom namesto natakarja stal robot. Predvidevam, da bi se počutili precej nelagodno, ko bi vam postregel robot, ki po svoji obliki ni niti malo podoben človeku, temveč izgleda kot tovarniški stroj. Na njem ni nič estetskega. Težko si predstavljamo, da bi takšen robot lahko opravljal z nečim tako krhkim kot so stekleni kozarci, kaj šele da bi na njih zaigral, kajti za to je potreben vsaj kanček občutka za estetiko in lepoto. Prav to bomo poskušali doseči z interaktivnim performansem »Robot postrešček«. Ob otvoritvah umetniških razstav smo navadno deležni postrežbe s pijačo. Tokrat bo to vlogo natakarja prevzel robot. Izgled → → → → → Robot je postavljen na mizo oz. pult polkrožne oblike. Na njegovi desni strani so zloženi prazni kozarci. Pred robotom sta nameščeni steklenici z belim in rdečim vinom. Zraven steklenic je prostor za eno serijo po pet kozarcev. Na robotovi levi strani sta dva večja prostora (eden bele barve in drugi rdeče barve), ki ločujeta med seboj kozarce z belim vinom in rdečim vinom. Potek Nalogo smo opravljali v programu RobotStudio, z robotom IRB 120. Odločili smo se za kozarce na pecelj zaradi lažjega prijema. Za nalivanje smo se odločili, da bomo uporabili dozirnike žganih pijač in z večimi pritiski na dozirnik nalili v kozarce 1dcl vina. Prav tako smo se odločili za nalivanje belega in rdečega vina. Orodje smo naredili iz lesa, avtomobilske antene in aluminjastega držala. Les smo uporabili, zaradi mehkejšega stika s kozarcem, pravokotno na orodje smo pritrdili anteno, ki služi za igranje. Anteno smo si izbrali zato, ker mora biti igralno orodje prožno, saj se mora orodje zaradi sunka robotske roke samo dotakniti in takoj odmakniti od kozarca, da dobimo zven iz kozarca, kar smo ugotovili z preizkušanjem. Ugotovili smo tudi, da dobimo najmočnejši zven, če udarimo na kozarec iz vrha pod kotom 45°, tako pa tudi nimamo nevarnosti, da bi prevrnili kozarec. Jakost tona je odvisna od moči udarca, kar pa smo prilagajali z hitrostjo robota. Odločili smo se, da v mizi naredimo vdolbinice, zaradi lažjega začetnega pozicioneranja kozarcev in prav tako na mestu kjer robot igra na kozarce. Tam nam služijo tudi zato, da se nam med igranjem ne spremeni pozicija kozarcev. V programu smo zmodelirali vse elemente, ki smo jih potrebovali. Nato smo na vogalu mize definerali koordinatni sistem mize, od katerega je potem odvisen ves program. Program smo napisali z defineranjem ukazov za gibanje, uporabili smo večinoma linearno gibanje, le nekaj gibov je vodenih v sklepih, to pa zato, ker mora kozarec vedno stati navpično. Definerali smo tudi signal, ki nam služi, da lahko robotu v virtualnem svetu povemo, kdaj kozarec prime in kdaj spusti. Dodali smo tudi časovne zakasnitve. Na koncu smo program naložili na virtualni krmilnik in pognali simulacijio. V simulaciji smo preverili, da ne prihaja do trkov. Nato smo program naložili tudi na krmilnik realnega robota. V realnosti je potrebno vse pozicionerati isto kot v simulaciji. Postopek Robot jemlje prazne kozarce (20 kozarcev) z njegove desne in enega za drugim napolni z vinom. Poln kozarec odloži na sprednji del mize, kjer je prostor za pet polnih kozarcev. Ko je teh pet prostorčkov zasedenih s petimi polnimi kozarci, robot s palčko, ki jo ima pritrjeno na roki zaigra na kozarce (melodija ne bo mogla biti definirana, glede na to da bodo vsi kozarci enakomerno napolnjeni). Ko konča z igranjem, robot spet enega za drugim polne kozarce prenese na enega izmed dveh označenih prostorov na njegovi levi strani. En prostor je rdeč drugi pa bel (to označuje kam odlaga rdeče vino in kam belo vino). Na vsak predel bo robot postavil 10 kozarcev z rdečim vinom in 10 kozarcev z belim vinom. Ko so kozarci postavljeni na tej končni poziciji, si gostje lahko postrežejo s pijačo. Celoten postopek se nadaljuje. Na kratko → Robot vzame kozarec, ga napolni in postavi na prednji del mize → To ponovi še štirikrat → Ko je na prednjem delu mize postavljenih 5 kozarcev, nanje zaigra → Po končanem igranju, polne kozarce enega za drugim prenese na levo stran mize → Robot postopek ponovi še 3× → Na koncu je napolnjenih 10 kozarcev z belim vinom in 10 kozarcev z rdečim vinom → Ko so polni kozarci na robotovi levi strani, si gostje lahko postrežejo z vinom → Celoten postopek se lahko nadaljuje Namen Namen projekta je popestritev dogodka na zanimiv način, prikazati da je še tako robusten stroj lahko sposoben opravljati delikatna opravila. Poleg vsega pa bo na razstavi za pijačo že poskrbljeno, postrežena pa bo na čisto drugačen način kot smo vajeni. Simulacija v RobotStudio Literatura ABB (2007). RobotStudio Osnovni Tečaj ABB AB Robotics Products (2012). Operating manual RobotStudio 5.15 Projekt: Kvadrokopter Robotika: Dejan Vodopija (FE), Lovro Pokorn (FE), umetnica Monika Zabret (ALUO), mentorja: Aleš Jaklič in Borut Batagelj Univerza v Ljubljani Fakulteta za računalništvo in informatiko Tržaška c. 25, 1000 Ljubljana [email protected], [email protected] Povzetek iz tehničnega vidika: Kvadrokopter je zračno plovilo, ki je po načinu letenja še najbolj podoben helikopterju, s to razliko, da ima običajen helikopter ponavadi le dva propelerja, kvadrokopter pa ima štiri. Iz inženirskega vidika je to zelo zanimiva naprava, saj za letenje nujno potrebuje nekaj vgrajene inteligence za izvajanje regulacije, ki jo naredi stabilno, zaradi česar je naprava relativno preprosta za vodit. Naprava uporabljena v tem projektu ima vgrajeno tudi kamero, ki na Zemljo brezžično pošilja sliko. Vsi tej podatki, so nama sprva porajali ideje o vodenju na podlagi računalniškega vida, vendar se je izkazalo, da se da napravo voditi le ročno. Zaradi tega je za najino branžo tako ostala zanimiva le uporaba kamere. Ko sva se po spoznanju možnosti, dobila z umetnico Moniko, je bila najina edina ideja, tako imenovana obogatena resničnost. Dogovorili smo se, da ona pripravi slikovni umetniški material, ki ga bomo predstavili preko obogatene resničnosti. Monika se je odločila za film, torej sva midva morala narediti način za ga predstaviti. Tako sva naredila program, ki zajema in prikazuje sliko iz kamere. Ko pa se na zajeti sliki pojavi v naprej določen vzorec (šahovnica s točno določenim številom polj), začne program predvajati film. Vzorec ne sproži le predvajanja, ampak določa tudi območje predvajanja. Zato se s spreminjanjem zornega kota kamere na ta vzorec, virtualno spreminja tudi pogled na film. Opazovalec dobi lažen občutek, kot da se film dejansko predvaja na zaslonu. Kot sva v procesu razvijanja ugotovila, je poti do takšnega programa neskončno. Prvi delujoč program, ki je prikazoval lahko le sliko na vzorcu, sva naredila v programu Matlab. V njem sva funkcije za detekcijo vzorca sama razvila, zaradi česar je bil prepočasen in premalo robusten. Po veliko preizkušenih možnostih, sva končni program naredila v jeziku C++. Za ta programski jezik sva se odločila, ker so funkcije iz knjižnice OpenCV, ki sva jih uporabila, napisane v njem. Le te so namenjene prav računalniškemu vidu in zato optimalne. S končnim izdelkom, sva sicer zadovoljna, ampak se tudi zavedava, da bi se dalo program še izboljšat. Na žalost nisva imela dosti opravka z zelo obetajočo napravo v naslovu projekta, sva se pa med procesom spoznala z veliko novimi orodji in njihovo uporabo, našla sva veliko novih izzivov, predvsem pa ugotovila da rek:„Več jezikov znaš, več veljaš.“, velja tudi v programskem smislu. Literatura: Največ sva si pomagala z internetom, kjer je o OpenCV-ju veliko napisanega. Največ sva dobila na: http://opencv.org/ Povzetek iz umetniškega vidika: Kot je bilo že povedano, je Monika posnela film (Naslov je Trajektorij pogleda.), v katerem je uporabila tudi kamero na kvadrokopterju. Ker pa se nekako nismo uspeli uskladit do roka oddaje tega poročila, bo povzetek sestavljen le iz omembe sodelujočih in slikama iz filma. Več o umetniškem vidiku, pa bo mogoče Monika povedala na predstavitvi. Scenarij in montaža: Monika Zabret Igralec: Matic Bratovž Kamera kvadrokopter: Aleš Jaklič Kamera Sony: Gregor Zabret Zahvale: Branko Zabret, Srečo Dragan, Tristan Dragan, Bojan Klemenc, Konservatorij za glasbo in balet Ljubljana Interaktivna manipulacija blokov s pomočjo mobilnega robota KUKA youBot »Perica reže raci rep« Študenta: Ervin Ajdišek in Iztok Županek Mentorja: izr. prof. dr. Matjaž Mihelj in Jaka Ziherl univ.dipl.inž.el Fakulteta za elektrotehniko [email protected]; [email protected] Povzetek Cilj naloge je bil naučiti robota KUKA youBot posnemati človeka in ponoviti njegova dejanja, in tako v sodelovanju zgraditi umetniško inštalacijo zgrajeno iz objektov in barv. Delovni prostor kamor uporabnik in robot postavljata objekte je omejen na 2,2 x 2,2 metra. Sama naloga je obsegala dva dela, robotski vid, torej prepoznavanje objektov, njihovo barvo ter lokacijo in samo vodenje robota. V prvem delu smo s pomočjo programskega orodja MATLAB, sestavili algoritem katerega naloga je bila poiskati objekte ter jim določiti lokacijo in orientacijo v prostoru. To smo naredili tako, da smo vse objekte označili z zelenimi markerji, prav tako smo označili robota, le da so bili ti markerji modri. Nato smo sliko kamere pretvorili v RGB prostor iz katerega smo potem izluščili posamezne barve oziroma objekte. Tako smo dobili znane lokacije in orientacije objektov in robota v prostoru. V naslednjem koraku pa je bilo potrebno določiti še barvo samega objekta. Osnovno sliko smo v tem primeru pretvorili v HSV prostor kateri nam opiše sliko z vrednostjo barvnega tona, nasičenostjo in obsegom barve. Tako smo iz HSV prostora izluščili prvo komponento slike in dobili vrednost barve posameznih objektov. Vse potrebne informacije smo posredovali shemi za vodenje, ki je robota pripeljala do želenega cilja. Pozicijo platforme robota smo krmilili s pomočjo kamere, ki je dajala informacijo o trenutni poziciji in enostavnega P regulatorja. Vodenje je razdeljeno na več korakov s pomočjo bloka »State Flow«, in sicer: 1. vožnja robota do ustreznega mesta do strežne naprave s predmeti 2. pobiranje predmeta 3. vožnja do mesta za odložitev predmeta 4. postavitev predmeta 5. vožnja na začetek in čakanje na koordinate za postavitev naslednjega predmeta Pri projektu”KUKA” se ukvarjam s problematiko komuniciranja robota s človekom, kjer kot posledica nastaja nov objekt. V prostoru so tla velikosti 2,2mx2,2 m prelepljena s folijo. Folija je sestavljena iz kvadratov različnih barv velikosti 20cm. Na kvadrate človek in robot izmenično postavljata “figure”, ki so nasprotne barvi podlage. Ko nekaj časa opazujemo “igro posnemanja”- ko robot posnema človeka pri postavljanju predmetov na podlago, kmalu ne vemo več kdo posnema koga – ali robot človeka ali človek robota. Pri “igri” nastaja nova podoba objekta, ki se z dodajanjem elementov na podlago vedno bolj izpopolnjuje do končnega vzorca, ki je oblika vseh oblik ( simetrična roža). Problem prostora, kjer se bo premikal robot smo rešili tako, da bo na “cesti”,ki je določena, že nalepljen krog nasprotne barve od podlage. Figura naj bi bila velikosti : 20cm-višina in 10cm-širina , oblika figure: kot šahovske figure. Razmišljam o tem, da bi imela vsaka barva ( npr. modra bi bila okrogla, rumena trikotna…) drugačno obliko. Material: pleksi steko debeline 0,8mm – (moram ga še testirati). Figuro bi naredila tako, da bi pleksi steklo izrezala (na laserju) po nivojih (tloris figure) in ga lepila s folijo različnih barv- sestavljala bi tako kot lego-kocke: npr.: krog tloris 10cm – nanj položim krog 9,5cm- nanj položim krog 9cm, potem 8,5cm……in ga oblikujem tako, da bo površina razgibana in da jo bo lahko robot prijel. Literatura R. Bischoff (2001) KUKA youBot – a milestone for education and research in mobile manipulation. IEEE ICRA Workshop “A new generation of educational robots” Shanghai International Convention Center, China. KUKA youBot User Manual, version 0.82 (2011). Draft version, proofreading pending. PROJEKTNA NALOGA ˝IL CIELO NON HA CONFINI˝ Pisanje z robotom KUKA DLR 2012/2013 Fakulteta za elektrotehniko Leon Kocjančič Domen Rode Akademija za likovno umetnost in oblikovanje Špela Petohleb mentor: dr. Fares J. Abu-Dakka mentor: prof. Srečo Dragan Projektna naloga z umetniškim naslovom “Il cielo non ha confini” je bila izvedena na dvoročnem robotu KUKA DLR, ki se nahaja na Inštitutu Jožef Stefan. Osnovna naloga je vključevala uporabo dinamičnih primitov gibanja za izvajanje pisanih črk. V prvem delu je predstavljen tehnični del projekta, v drugem delu pa umetniški. Robot KUKA DLR na inštitutu Jožef Stefan je sestavljen iz dveh rok s po 7 prostostnimi stopnjami. Za izvajanje naloge smo uporabili le eno roko, druga roka je ostala prosta in bo lahko uporabljena za brisanje table. Pisali smo na papir na horizontalni površini. Dinamični primitivi gibanja (DMP – Dynamic motion primitives) so funkcije, ki temeljijo na nelinearni diferencialni enačbi drugega reda. Njihova prednost pred navadnimi trajektorijami je ta, da lahko preprosto definiramo izvajanje krivulje s spreminjanjem parametrov ter krivulje zvezno povezujemo in jih gladimo. Krivulja, ki jo izvajamo z DMPji, je sestavljena iz Gaussovih krivulj, katerim določimo uteži, njihovo število, začetno vrednost ter ciljno točko. Na dinamiko izvajanja oziroma risanja črke lahko vplivamo s časom vzorčenja, časovnima konstantama ter skalirnim faktorjem. Prvi del naloge je obsegal grajenje knjižnice malih pisanih črk ter znakov, ki sestavljajo dvodelne črke. Za dvodelne črke je posebno to, da mora robot izvajanje pisanja prekiniti ter pri trenutni črki dodati poseben znak (npr. 'č','t','i'). Za zajemanje črk na zaslonu za dotik je bil razvit program v MATLAB-u. Bazo sestavljajo pisane črke, saj smo na tak način zagotovili neprekinjeno povezovanje črk, razen v posebnih primerih. Program za izvajanje črk je razdeljen v tri dele, kjer prvi del prebere naslednjo črko vnešene besede, drugi del programa določi uteži za izvajanje DMPja pri podanih parametrih. V primeru dvodelne črke se izvaja podstruktura, ki prekine izvajanje besede ter dopiše drugi del črke. Pri snovanju programa smo se odločili, da bomo vsako črko zapisali z lastnim DMP-jem, črke pa združujemo z enostavno translatorno ter rotacijsko transformacijo. DMP krivulje se po izvedbi pretvorijo v zapis lege s kvaternioni, ki sestavljajo celotno matriko za opis ene črke. Za zvezno povezovanje črk smo poskrbeli že z samo bazo črk, kjer se podaljški črk končujejo pod primerljivimi koti. Program je bil najprej preizkušen v okolju RoboWorks, nato pa na realnem robotu. Pri prehodu na realnega robota smo pritisk na podlago zagotovili tako, da smo ciljno točko postavili pod površino pisanja ter zmanjšali vrednost togosti v smeri normale na površino. Izvajanje z DMPji gladi vhodne krivulje, izkazalo se je, da k glajenju prehoda med črkami pripomore tudi sama dinamika robota. Primer črke a, ki je izvedena zIzvajanje simulacije DMPjem. RoboWorks. v okoljuPisanje besede 'nekaj' na papir. Koncept v osnovi odpira možnost prestopa iz realnega prostora v hibridne svetove dogajanja. Na zaslonu na dotik bi bil satelitski posnetek zemlje, gledalec bi moral najti Vitanje. Ob strani bi imel 3 namige. Če bi pritisnil prvi namig bi mu približalo Zemljo tako, da bi lahko videl Evropo, če bi pritisnil drugi namig bi videl Slovenijo, če pa mu še nebi uspelo najti Vitanj, bi pritisnil še na tretji namig in tako bi videl Vitanje z okolico. Ko bi našel Vitanje, bi skozi posnetke in slike prišel v KSEVT. Nato bi se na ekranu pojavilo navodilo in primer kako dopolniti mankajoče polje. Besedne dvojice bi bile sestavljene iz besed, ki se nanašajo na kozmos in kulturo. Računalnik, bi samodejno izbral eno izmed besed, gledalec pa bi moral nato par ustrezno dopolniti. Če bi bila podana beseda v zvezi s kozmosom, bi on izbral besedo v povezavi s kulturo ali obratno. Beseda, ki je bila že podana, bi se samodejno pojavila na ˝kvadrantu˝, drugo besedo, ki jo je izbral gledalec, bi robot napisal na ˝kvadrant˝. Na ˝kvadrantu˝, bi bila dvojica par sekund izpisana, nato pa bi se prenesla na Google sky- nebo, kot ime nad zvezdo. Nebo bi bilo projecirano nad ˝kvadrantom˝. Na ˝kvadrantu˝ pa bi se pojavilo vse slikovno gradivo besede, ki jo je zapisal gledalec, ki je dosegljivo na Googlu. Seznam besed v kvadrantu: hitrost- osvoboditve kozmos- kulture (ali obratno) surfar -> akulturacija surfarjev razsežnost- umetnosti (kulture) kontrapunkt- reda in nereda posadka -> kultura posadke kaos -> red galaktika -> modrost galaktike g 0 -> valcer mislec -> gospodar vseh svetov breztežnost -> breztežni časi inteligenca -> umetna inteligenca kibernetika -> kibernetski prijatelji meje -> neskončnost galaktičnost -> galaktične kulture Interaktivni robot igralec NAO Jani Tavčar, Lapajne Matevž Mentorja: Bojan Nemec, Luka Peternel Inštitut Jožef Štefan [email protected] [email protected] Povzetek Cilj naloge je bil, da obiskovalec odigra neko melodijo na sintisajzer robot NAO pa to melodijo ponovi. Pri vaji sva najprej morala iz midi formata izluščiti tone ter trajanje tonov za kar sva uporabila program Matlab. Da nama je to uspela sva se najprej morala seznaniti s kodiranjem .mid formata. Ko sva željene podatke dobila sva jih morala poslati, zato sva uporabila Simulink. Podatke sva poslala preko UDP protokola, ker je zelo enostaven in hiter. Te podatke sva nato poslala v program Koreografija, ki je program za programiranje robota NAO. Najprej je bilo potrebno podatke sprejeti ter določiti kaj ti podatki robotu pomenijo. Koreografijo se lahko programira v številnih programskih jezikih. Midva sva uporabila programski jezik Python. V Koreografiji sva najprej spisala program, ki te podatke sprejme in obdela. S preprosto kodo, ki preveri ton, in tonu doda nek gib sva vsakemu tonu določila točko v katero mora robot seči z roko. Med vsakim tonom pa se mora robot vrniti v lego, ki je optimizirana glede na naslednji ton. Tako je robot zmožen ponoviti sekvenco tonov za obiskovalcem. Na spodnji sliki je slika programa Koreografija. Literatura Demšar, J. (2009). Python za programerje. Univerza v Ljubljani, Fakulteta za računalništvo in informatiko, Ljubljana.
© Copyright 2024