ROBOTSKI MEHANIZMI, ZAZNAVANJE IN UMETNOST

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
nino.hribar@gmail.com, grega.logar@gmail.com, david.wratny@gmail.com
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
lukamrljak@gmail.com
luka.kepic@gmail.com
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
jakopinorama@gmail.com, skodric@gmail.com
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
Gibboni.zaba@gmail.com
Tjasa.zmrzlikar@gmail.com
Andrejjuv@gmail.com
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
dejanvodo@windowslive.com, lovro.pokorn@gmail.com
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
ervin.ajdisek@gmail.com; iztok.zupanek@gmail.com
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
janitavcar88@gmail.com
lapajne.matevz@gmail.com
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.