ROB BOTSKI MEHA ANIZMII IN ZAZ ZNAVAN NJE Ljubljanaa 22010/2011 1 Študenti Ambrožič Luka Havzija Muhamet Hribar Roman Jandrić Nikola Jemec Jurij Jurjavčič David Koprivec Tadej Košir Marko Mašat Matic Mesojedec Nejc Mrgole Matjaž Ogrinc Matjaž Pagon Miha Panjtar Leon Peternel Luka Sever Martin Simčič Robert Mitja Rok Šlajpah Sebastjan Urh Matija Vuga Rok Zarabec Tadej Žbontar Klemen Mentorji Matjaž Mihelj, FE Roman Kamnik, FE Domen Novak, FE Janez Podobnik, FE Jure Rejc, FE Matic Trlep, FE Jaka Ziherl, FE Robert Ravnik, FRI Denis Forte, IJS Bojan Nemec, IJS Andrej Gams, IJS Jan Babič, IJS Tadej Petrič, IJS Matjaž Zadravec, URI Andrej Olenšek, URI Imre Cikajlo, URI Žiga Majdič, ABB Jure Skvarč, FDS Research Borut Povše, DAX, FE Uroš Kromar, Motoman Predavatelji Tadej Bajd Jadran Lenarčič Matjaž Mihelj Franc Solina UVOD V pričujoči brošuri so zbrani povzetki osemnajst študentskih raziskovalnih nalog. Opravljene so bile v okviru praktičnih vaj pri predmetih Robotika II in Robotsko zaznavanje in umetna inteligenca. 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 biomedicinsko tehniko 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 dvaindvajset 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 štiri podjetja 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. Mnogi kasneje projekte nadgradijo z diplomskimi nalogami, nemalokrat pa tudi s stalno zaposlitvijo. Na tem mestu se želiva še posebej zahvaliti vsem mentorjem za skrbno vodenje svojih varovancev. Matjaž Mihelj in Tadej Bajd Teleoperacijski sistem Motoman – Omega Sebastjan Šlajpah, prof. dr. Matjaž Mihelj Fakulteta za elektrotehniko, UL, Laboratorij za robotiko [email protected] Povzetek Skoraj vsak je že slišal za DaVinci kirurški sistem, kjer kirurg preko upravljalne konzole vodi tri oziroma štiri robotske roke z različnimi kirurškimi orodji za izvajanje neinvazivnih operacij. Podobne naloge smo se lotili tudi v Laboratoriju za robotiko. Za izvršne naprave (slave) smo namesto kirurških uporabili industrijska robota Motoman MH5, vlogi upravljalnih naprav (master) pa sta imela haptična robota Omega.7. Namen teleoperacije je bila sestava (assembly) dveh valjev, pripetih na vrhova robotov. Za vodenje sta bila načrtana dva načina: hitrostno in pozicijsko. Operater lahko izbira med obema načinoma z uporabo aktivnega prijemala na vrhu Omeg. Pri vsakem preklopu se Omega vrne v svojo t.i. home pozicijo, s čimer se izognemo nezveznosti pozicije Omeg, ter omogočimo primerno postavitev v delovni prostor. Pri hitrostnem vodenju je Omega postavljena v aktivni center (t.j. središče delovnega prostora; pri vsakem odmiku Omege le-ta teži nazaj proti središču z linearno odvisnostjo med odmikom ter silo), za izračun reference pa se uporablja odmik od središčne lege. Hitrost robota je proporcionalna odmiku glede na bazni koordinatni sistem robota. Pri pozicijskem vodenju pa se uporablja kot vhod v vodenje dejanska pozicija Omege, ki preko proxy-a (vmesnik z admitančno dinamiko, ki simulira kvazi statično transparentnost, ter poveča stabilnost sistema) in admitančnega vodenja podaja referenco izvršni napravi. Na vrh izvršnih robotov sta pritrjena senzorja sil in navorov JR3, ki skrbita za povratno informacijo o sili interakcije z okoljem (force feedback). V nadaljevanju projekta bi bilo možno izboljšati stabilnost sistema pri togem dotiku, izvesti integracijo sistema Optotrak 3020 v sam teleoperacijski sistem ter povečati kompleksnost naloge. Literatura Abott, J. J. in Okamura, A.M. (2007). Pseudo-admittance bilateral telemanipulation with guidance virtual fixtures. The International Journal of Robotics Reserch, letnik 26, številka 8, stran 865-884. Siciliano, B., Sciavicco, L., Villani, L. in Oriolo, G. (2009). Robotics. Springer, London. Vodenje magnetoreološke naprave Matija Urh1, Roman Kamnik Fakulteta za elektrotehniko, Laboratorij za robotiko 1 [email protected] Povzetek Pri projekti nalogi sem se najprej seznanil z magnetoreološko snovjo (v nadaljevanju MR) in njenimi lastnostmi – spreminjanjem viskoznosti, elastičnosti in plastičnosti pod vplivom magnetnega polja. Naprava uporabljena pri projektni nalogi je sestavljena iz zavore v kateri se nahaja MR snov, na katero je pritrjena ročica s prijemalom. Zavoro krmilimo z napetostjo, s senzorjem (JR3) pa merimo silo na prijemalu iz katere izračunamo navor. Iz kota zasuka v osi zavore pa izračunamo hitrost vrtenja. Problem mehanizna je v nelinearnosti pri prehodu iz hitrosti nič. Na karakteristiki navora (navor v odvisnosti od hitrosti) lahko opazimo »koleno«, ki se pojavi zaradi trenja. S pomočjo nevronskim mrež sem prišel do modela sistema za določeno krmilno napetost. Model deluje tako, da mu kot vhod podamo hitrost, kot izhod pa dobimo vrednost trenja za podano hitrost. Osnovni krmilni shemi sem dodal povratno zanko, ki je vključevala inverz modela in ojačanje (ang. gain). Navor sem s pomočjo ojačanja pretvoril v napetost, ki sem jo prištel vhodni krmilni napetosti. Pozitivna povratna zanka je pozročil, večji končni navor, kot bi ga povzročila le vhodna krmilna napetost. Iz rezultatov je vidno izboljšanje karakteristike, vendar je še vedno prisotno manjše »koleno«. Menim, da se tega kolena ne da odpraviti v celoti, saj je le ta rezultat samega mehanskega trenja osi v zavori. Trenje je vidno že tudi, če na napravo ne priključimo nobene napetosti. Literatura Petrič, T. in Žlajpah, L. (2010). Uporaba nevronskih mrež za kompenzacijo nelinearnosti v robotskem mehanizmu Dvoprstno robotsko prijemalo z regulacijo sile prijema David Jurjavčič Mentor: Jure Rejc Fakulteta za elektrotehniko [email protected] Povzetek Pri nalogi je bilo uporabljeno dvoprstno robotsko prijemalo SEG10 proizvajalca Schunk s pripadajočim krmilnikom SEG-C, ki že v osnovi omogoča regulacijo prijemalnih prstov in tudi regulacijo sile stiska objekta. V prvem delu naloge je bilo potrebno preveriti kvaliteto originalnega krmilnika, kot referenčni merilnik pa je bil uporabljen JR3 senzor sil in navorov. Rezultati so pokazali, da se referenčna sila in sila izmerjena z originalnim krmilnikom precej razlikujeta. Veliko odstopanje je opazno predvsem na začetku merjenja. V drugem delu naloge je bilo na prijemalo potrebno namesti senzor z uporovnimi lističi (ang. Load Cell). Za ta del naloge je bilo potrebno izdelati tudi precizijski ojačevalnik, saj so izhodne napetosti senzorja sile reda nekaj mV. Ojačevalnik poleg ojačenja izhodne napetosti senzorja sile poskrbi tudi za napajanje merilnega mostiča. Hkrati odpravlja tudi problem sofazne napetosti, kar doseže z reguliranjem negativne napajalne napetosti mostiča. Želena napetost je bila nastavljena s pomočjo analognega vhoda, signale pa zajemamo z operacijskim sistemom xPC. Senzor je bil preizkušen z JR3 senzorjem in dobili smo linearno odvisnost sile in napetosti. V nadaljevanju je bila s pomočjo Matlab Simulinka izdelala regulacijska shema. Najprej sem poskušal s P regulatorjem, vendar se je kasneje izkazalo, da je potrebno dodati še integrirani člen. Pojavil pa se je problem, ko se je prijemalo razprlo do maksimuma, saj je bila za ponovni prijem potrebna dokaj visoka napetost 0,4 mV, maksimalna napetost, ki jo lahko vsiliš krmilniku pa znaša 0,6 mV. Zato je prihajalo do sunkovitega stiska. Za rešitev tega problema bi bilo potrebno brati hitrosti iz krmilnika in jih omejiti. Dvoprstno robotsko prijemalo SEG10 z nameščenim senzorjem sil z uporovnimi lističi. Zasnova in razvoj naprave za dvoročno vadbo zgornjih ekstremitet Avtor: Leon Panjtar; Mentorja: prof.dr. Matjaž Mihelj, Matic Trlep,univ.dipl.inž.el. Univerza v Ljubljani, Fakulteta za elektrotehniko Laboratorij za robotiko [email protected] Povzetek Cilj projektne naloge je bil razvoj preprostega mehanskega sistema primernega za dvoročno vadbo zgornjih ekstremitet (slika 1). Na vrhu haptičnega mehanizma je pritrjeno prijemalo, ki ga upravljalec naprave drži z obema rokama in izvaja translacijski gib ter istočasno ohranja želeno orientacijo prijemala. Aktivnost obeh rok osebe merimo z dvema neodvisnima senzorjema sile tipa JR3, ki sta nameščena v prijemalu. Na podlagi izmerjene sile se nato v algoritmu vodenja izračunavajo potrebni zasuki motorjev. Poleg meritve sile pa odčitavamo tudi položaj prijemala, ki ga izračunamo na podlagi podatkov iz dveh kodirnikov položaja, ki sta nameščena na obeh pogonskih motorjih mehanizma. Mehanizem je sestavljen iz ene aktivne translacijske stopnje in ene aktivne rotacijske stopnje. Os rotacije je pravokotna na translacijsko os. Obe prostostni stopnji mehanizma poganjata servo motorja proizvajalca Maxon. Pri translacijski stopnji je motor Maxon RE 40 preko reduktorja moči, s prestavnim razmerjem 26:1, povezan na pogonsko jermenico, ki žene jermen in s tem tudi linearni voziček, ki je pritrjen na jermen in pa linearna vodila translacijske stopnje. Rotacijsko stopnjo poganja motor Maxon RE 30, ki je povezan z reduktorjem moči s prestavnim razmerjem 23:1. Motor je nameščen na linearni voziček in je direktno pritrjen na prijemalo mehanizma preko uležajene osi. Zasnova in razvoj mehanskega sistema je bila v celoti izvedena v razvojnem okolju Autodesk Inventor 10. V programu je bila zgrajen model celotne naprave z vsemi sestavnimi deli v 3D načinu (slika 2). Na podlagi 3D modela naprave je bila nato izdelana realna naprava. Haptični mehanizem meri sile, na podlagi katerih se nato v algoritmu vodenja izračunavajo potrebni premiki motorjev. Princip delovanja naprave po definiciji ustreza admitančnemu modelu haptičnega prikazovalnika, zato bom za njegovo vodenje uporabil admitančno vodenje. slika 1 slika 2 Literatura Mihelj, M. (2007). Hapitični roboti. Univerza v Ljubljani, Fakulteta za elektrotehniko Lenarčič, J. in Bajd, T. (2009). Robotski mehanizmi. Univerza v Ljubljani, Fakulteta za elektrotehniko Spreminjanje težavnosti naloge glede na uspešnost in počutje uporabnika Muhamet Havzija, Domen Novak Fakulteta za elektrotehniko, Univerza v Ljubljani [email protected] Povzetek Cilj projektne naloge je bil razviti preprosto miselno ali fizično zahtevno nalogo z različnimi težavnostnimi stopnjami ter sistem, ki ocenjuje uporabnikovo uspešnost in počutje ter na podlagi tega spreminja težavnost naloge. Za nalogo smo izbrali klasično igro Kača, ki smo jo implementirali v okolju Matlab. Različne težavnostne stopnje so predstavljale različne hitrosti, s katerimi se kača giblje skozi prostor. Vodenje kače je bilo najprej izvedeno s tipkovnico, nato pa smo igro povezali s haptičnim vmesnikom Phantom, ki je bil voden v okolju xPC Target. S pomočjo priloženih blokov za vmesnik Phantom smo koordinate sklepov prebrali, pretvorili v absolutni koordinatni sistem in s protokolom UDP preko mreže pošiljali do igre. Premike Phantoma v različne smeri smo uporabili za vodenje kače. V začetni fazi se je hitrost povečevala s številom pobranih predmetov, nato pa smo igro povezali s senzorjem prevodnosti kože, pritrjenim na kazalec in sredinec uporabnika. Prevodnost smo vzorčili s frekvenco 1 Hz in posredovali igri, ki je vrednost prevodnosti pretvorila v želeno težavnost. To smo naredili z upragovljanjem in stavki »če-potem« (npr. če je prevodnost kože med 100 S in 120 S, je izbrana 5. težavnostna stopnja). Izvedli smo dve različici pravil. Po prvem sklopu pravil se hitrost kače spreminja sorazmerno s prevodnostjo kože, po drugem sklopu pa se hitrost kače spreminja obratno sorazmerno s prevodnostjo kože. Predhodne raziskave so že pokazale, da je prevodnost kože sorazmerna miselni obremenitvi uporabnika, zato naša igra prilagaja težavnost trenutni uporabnikovi miselni obremenitvi. Slika 1: Prikaz delovanja Literatura Marko, M. in drugi. (2008). Upper Extremity Rehabilitation Using Robotics and VR – be aware of multimodal. University of Ljubljana, Faculty o Electrical Engineering, Laboratory of robotics and biomedical enginieering. Carlotta, A. J. (1999). Phantom Robot Bouncing Ball Project. National Science Foundation Tokyo Regional Office. Avtomatizacija teleskopa Klemen Žbontar Mentor: Janez Podobnik Univerza v Ljubljani, Fakulteta za elektrotehniko Tržaška 25 1000 Ljubljana [email protected] Povzetek Vedno več ljudem vzbujajo zanimanje vprašanja, kot so: Ali smo v vesolju sami?, Ali obstajajo planeti v drugih osončjih, ki so naseljivi?, Kako se je začelo življenje na Zemlji?, idr. Na večino teh vprašanj se trudi odgovoriti veda imenovana astronomija, pri kateri se kot glavni merilni pripomočki uporabljajo teleskopi vseh vrst, pa naj bodo to teleskopi, ki krožijo okoli Zemlje, ogromni teleskopi na vrhovih gora, ali pa manjši teleskopi za domačo uporabo. Navdušeni astronomi komaj čakajo, da jih vrtenje Zemlje popelje v noč in posledično lahko začnejo s svojim delom. Ravno to vrtenje pa pri opazovanju nebesnih teles s teleskopom povzroča težave. Čeprav tega gibanja s prostim očesom skoraj ne zaznamo, to postane toliko bolj opazno zaradi velikih povečav, ki se uporabljajo pri teleskopih, kjer nam opazovani predmet hitro uide iz območja opazovanja. Ta problem se efektivno da rešiti z avtomatiziranjem osi teleskopa, kjer ročno premikanje nadomestimo z ustrezno vodenimi elektromotorji. Ravno to pa je bila tema moje projektne naloge in sicer izdelati in sprogramirati sistem avtomatizacije teleskopa. Vsa nebesna telesa se navidezno vrtijo okoli zvezde Severnice, kar pomeni, da bi za sledenje morali uporabljati obe rotacijski osi. Nekateri teleskopi, tudi naš, pa uporabljajo t.i. ekvatorialno postavitev, kjer sta osi vrtenja pravokotni ena na drugo in pri kateri mora biti glavna rotacijska os usmerjena proti Severnici. Pri taki postavitvi se za potrebe sledenja uporablja rotacija okoli samo ene osi, kar nam bistveno olajša izdelavo sistema in krmiljenje. Za realizacijo rotacije teleskopa sem uporabil koračni motor, ki v osnovi ne potrebuje nobenega dodatnega senzorja za potrebe regulacije vrtenja. Ker nosilna konstrukcija teleskopa ni bila pripravljena za montažo motorja, je bila glavna in najtežja naloga izdelati pritrditveno mesto za motor. Cilj projektne naloge je bil dosežen, kar so potrdile tudi dodatne meritve v smislu natančnosti regulacije zasuka. Literatura Semiconductors (2005). Volume 1: LPC213x User Manual Izdelava navidezne naloge, ki vključuje haptično povratno informacijo Tadej Zarabec Jaka Ziherl, uni.dipl.inž.el Fakulteta za elektrotehniko [email protected] Povzetek Cilj naloge je bila izdelava navidezne naloge, ki vključuje haptično povratno informacijo in navidezno okolje. Pri realizaciji naloge je bil uporabljen robot HapticMASTER in programsko okolje Matlab, za izdelavo haptičnega dela naloge, medtem ko za izdelavo navideznega okolja, pa je bilo uporabljeno okolje Unity. V navidezni nalogi naj igralec vodi vesoljsko plovilo in se skuša izogibati nasproti letečim objektom. V prvem delu naloge je bilo najprej potrebno zgraditi haptično povratno informacijo v okolju Matlab in sicer tako, da se bomo z robotom skušali izogibati pet nasproti letečimi objekti in če se bomo ob tem zaleteli z robotom v enega od objektov, to tudi občutili na robotu. V drugem delu naloge je bilo potrebno zgraditi navidezno okolje oziroma virtualizirati robot kot vesoljsko plovilo in pa pet nasproti letečih objektov v asteroide. V zadnjem delu naloge pa je bilo potrebno zgraditi še logiko, saj samo nasproti leteči asteroidi niso zanimivi. Sama logika je razdeljena na tri dele: v prvem delu je narejeno, da vsakokrat ko se objekt – asteroid znova pojavi prileti nekoliko hitreje v drugem delu logike so narejena življenja, tako da se posameznih asteroidov z robotom – vesoljskim plovilom lahko dotaknemo samo določenega števila v zadnjem tretjem delu logike pa je še narejeno, da vsakokrat ko se asteroid pojavi, poleg tega da prileti z nekoliko večjo hitrostjo, hkrati tudi pojavi na naključni poziciji. Slika: Robot HapticMASTER Sinhrono gibanje dveh Motoman robotov MH5 Študent: Robert Simčič Mentor: asist. dr. Janez Podobnik in asist. dr. Jure Rejc Fakulteta za elektrotehniko [email protected] Pri projektni nalogi je bilo potrebno razviti aplikacijo za prikaz sinhronega dela dveh Motoman robotov. Robota MH5 sta krmiljena preko krmilnika NX100, ki omogoča neodvisno krmiljenje vsakega robota posebej ali pa sinhrono krmiljenje obeh robotov. Pri sinhronem krmiljenju robota poznata pozicijo drugega robota, zato ne pride do medsebojnega naleta robotov. Prav tako je programiranje poenostavljeno in izvedeno v krajšem času, v primerjavi s programiranjem skupnih robotov kjer ima vsak robot svoj krmilnik. Sinhrono gibanje se uporablja kadar je objekt večji od uporabnega delovnega prostora enega robota, oziroma je naloga prezahtevna za samo enega robota. Po kalibraciji orodij, ki sta pritrjena na robota, določimo kateri izmed robotov je glavni robot (master) in kateri je podrejeni robot (slave). Glavni robot drži obdelovanec, na podrejenem robotu pa je nameščeno orodje. Sledi kalibracija robotov med sabo. Med sinhronim gibanjem podrejeni robot sledi glavnemu robotu, tako, da ohranja pozicijo in orientacijo glede na koordinatni sistem glavnega robota. To nam omogoča, sočasno in hitrejšo obdelavo obdelovanca s podrejenim robotom, med tem ko glavni robot manipulira z obdelovancem in s tem pomaga podrejenemu robotu pri delu. Robota MH5 med sinhronim gibanjem Literatura: http://www.motoman.eu/solutions/multi-robot-technology/ http://robin2.uni-mb.si/predmeti/robotika_1/motoman/ABC%20-%20%20NX%20KRMILNIK.pdf Sledenje objekta v realnem času Marko Košir, Mentor:Robert Ravnik Fakulteta za računalništvo in informatiko V seminarski nalogi bom predstavil sledenje objektov v realnem času z uporabo odprtokodne knjižnice Toucless SDK. Za to knjižnjico sem se odločil, ker imam največ izkušenj z uporabo orodij kot so Visual Studio 2010 v katerem sem uporabil programski jezik C#. Uporabljena orodja: -Touchless SDK -Visual studio 2010 -Webcam Prednosti ki jih pridobimo z C# programskim jezikom je uporabnost .net ogrodja (frameworka) pri razvoju aplikacij, kot so: -hitrost razvoja aplikacij -prenosnost med operacijskimi sistemi in napravami(PC,mobiteli,tablični računalnki) -ogromna podpora s strani razvijalcev -brezplačna razvojna orodja (Visual Studio Express) Z vsemi prednosti pride tudi nekaj slabosti med katerimi bom vsaj po mojem mnenju izpostavil najbolj bistveno in sicer hitrost izvajanja algoritmov v »managed« jezikih kot je v mojem primeru C#. Če potrebujemo kar najboljšo(najhitrejše) izvajanje različnih algoritmov (ne samo pri računalniskem vidu) se poslužimo jezika kot C/C++, pri katerem imam direktni dostop do strojne opreme in ne potrebujemo vmesne plasti kot je .net framework, kateri nam skrbi za sproščanje pomnilnika (čeprav lahko to počnemo tudi sami). Cilj seminarske naloge je predstaviti prej omenjene prednosti in slabosti uporabljenih orodij ter nasplošno o računalniskem vidu in prikazati nekaj »enostavnih primerov« z uporabo Touchless knjižnice. V SDK je pripravljenih nekaj primerov, nekaj pa sem jih pripravil tudi sam: -osnovni primer uporabe knjižnice (sledenje markerju) -skakanje z konjem na šahovnici(premiki dovoljeni samo če se marker »prestavi« v obliki črke L) -primer katerega je idejni vodja Sašo Kukovica katermu se zahvaljujem za pretvorbo kode, samo uporabo in idejo, katera je sestavljanje elektrotehniških vezij s pomočjo računalniskega vida. Primer je na zelo osnovnem nivojo v tehničnem smislu, elemente (upor,tuljava,kondenzator) se da dodajati na transparentni »grid«, povezovanje le teh ni implementirano kot tudi ne sama funkcionalnost (generiranje matrike trenutno »sestavljenega« vezja za prikaz tokov,napetosti,.... v posameznih vejah). Izvedbo oziroma samo predstavitev seminarske naloge načrtujem po novem letu, kot je bilo dogovorjeno na predavanjih. Literatura http://msdn.microsoft.com http://touchless.codeplex.com/ Prijemanje z robotsko roko BarrettHand in sistemom Optotrak Matjaţ Ogrinc, mentorja: dr. Andrej Gams in Goran Škorja, univ.dipl.inţ.el. IJS,Jamova cesta 39, 1000 Ljubljana [email protected] Povzetek Naloga zajema povezavo sistema Optotrak in mehanizma BarretHand. Optotrak je sistem infrardečih kamer, ki zajema koordinate aktivnih markerjev v prostoru, ti pa so pritrjeni na rokavico. Koordinate markerjev se preslikajo v notranje koordinate mehanizma, z gibanjem prstov na roki torej upravljamo prijemalko. Mehanizem je robotska roka s tremi prsti, vsak prst sestavjata dva segmenta, upravljamo pa jih z enim motorjem na prst (F1, F2, F3). Dva od prstov se hkrati razmakneta za 180 stopinj (motor S). S štirimi prsti torej upravljamo 4 motorje mehanizma. S kazalcem, sredincem in prstancem upravljamo z F1, F2, F3, gibanje palca pa se preslika v rotacijo motorja S. Za dodatno izboljšanje delovanja oziroma odpravo motenj pa so uporabljene nevronske mreţe. Te motnje so posledica samih omejitev človeške roke, saj premiki posameznih prstov niso povsem neodvisni. Nevronska mreţa je prenosna funkcija, ki jo zgenerira učni algoritem. Za učenje je uporabljen paket Neural Network Toolbox v okolju Matlab, poteka pa tako, da algoritmu podamo čimvečji niz vhodov (inputs) in ţeljenih izhodov (targets). V tem primeru je kot vhod podano gibanje prstov kazalca, sredinca in prstanca. Kot izhode podamo enak posnetek gibanja, le da temu odstranimo motnjo. Cilj naloge je izvedba standardnih robotskih prijemov, ki se v osnovi delijo na precezijske in močnostne, dalje pa glede na obliko objekta. Za različne prijeme uporabljamo različno število prstov. Slika 1: Prijemalka BarrettHand Slika 2: Rokavica z markerji Literatura Petrič, T. in Ţlajpah, L. (2010). Uporaba nevronskih mreţ za kompenzacijo nelinearnosti v robotskem mehanizmu, Institut »Joţef Stefan«. ERK'2010, Portotoţ, B:191-194 Uporaba Gaussove regresije pri učenju seganja s humanoidnim robotom HOAP-3 Rok Vuga, Denis Forte, Aleš Ude Institut Jožef Stefan [email protected] Povzetek Cilj naloge je bil, da robota HOAP-3 z uporabo Gaussove regresije naučimo prijeti predmet, ki se nahaja v njegovem delovnem prostoru. Če robot zazna, da je predmet izven njegovega dosega, naj se mu s hojo približa. Gaussova regresija je način za iskanje funkcije, ki se najbolj prilagaja izmerjenim vrednostim. Na sliki 1 je primer za dvodimenzionalni prostor. Za uporabo v robotiki idejo razširimo in iščemo povezavo med vrednostmi zunanjih koordinat (predmet, kot ga vidijo kamere) ter notranjih koordinat (koti v sklepih). Kot začetne podatke smo uporabili 140 točk v dosegu robota, za katere so bile znane vrednosti sklepnih kotov roke. Poleg sklepnih kotov v končni točki je potrebno iskati posplošitve tudi za trajektorije, po katerih do teh točk pridemo. Te so bile ravno tako posnete skupaj s končnimi točkami. Da pa bi jih lahko med sabo primerjali in iskali rešitve za vmesno točke, jih je bilo treba predstaviti na bolj splošen način, s parametri DMP (Dynamic Movement Primitive). Vsako trajektorijo smo tako opisali s petindvajestimi uteži in časom izvajanja, s čimer smo dobili številske vrednosti, na katerih smo lahko uporabili Gaussovo regresijo. Rezultati kažejo povprečno napako 7 mm v končni točki, kar je dober dosežek. Algoritem za vodenje je zasnovan tako, da robot seže po predmetu v dosegu, mu sledi, če se premika, in ga zagrabi, ko se umiri. Slika 1 Literatura Denis Forte, Aleš Ude, Andrej Kos (2010). Uporaba Gaussove regresije pri učenju robotov. Zbornik devetnajste mednarodne Elektrotehniške in računalniške konference ERK 2010. Igranje minigolfa z robotom PA-10 Luka Ambrožič, Tadej Petrič in dr. Leon Žlajpah Inštitut Jožef Stefan [email protected] Povzetek Cilj naloge je bil naučiti robota Mitsubishi PA-10 udariti žogico tako, da ta pade v luknjo oziroma zadane oviro. Robot je določil pozicijo žogice s pomočjo računalniškega vida. Za določanje pozicije žogice iz slike kamere je bil uporabljen program ObjectTrack, razvit na Inštitutu Jožef Stefan. V programu kalibriramo sliko kamere (ki je pri miru) z dejanskim poligonom (dvema točkama na sliki določimo ekvivalentne točke v koordinatnem sistemu orodja). Program nato pošlje pozicijo žogice v koordinatnem sistemu orodja preko lokalne mreže v UDP paketkih na lokalni ali oddaljen računalnik. Ta računalnik podatke prebere v Matlab Simulink-u, kjer se izvaja regulacija robota PA-10 in program udarca žogice. Shema v okolju Matlab Simulink je prikazana na sliki 1 levo, kjer sta označena oba dela. Robotski program za izvajanje udarca in pridobivanje informacije o lokaciji žogice je napisan v sintaksi programskega paketa INTERPRETER, ki je bil prav-tako razvit na IJS. Ta omogoča bistveno lažje komuniciranje z robotom, saj ima definirane funkcije kot so na primer približevanje in premiki s trapezno interpolacijo trajektorije, ki jim kot vhod podamo 6-D točke (pozicija (3), RPY orientacija(3)), torej tudi orientacijo orodja v točki. Program je zapisan v tekstovni datoteki, omogoča pa uporabo tako specifičnih izrazov (funkcij) samega programa kot tudi drugih izrazov v sintaksi Matlab okolja. Dovoljuje shranjevanje lokalnih spremenljivk znotraj programa ali uporabo globalnih spremenljivk iz okolja Matlab. Sam program za igranje minigolfa je sestavljen iz različnih modulov, kjer vsak opravlja specifično nalogo. Moduli so posamezne funkcije napisane v jeziku okolja Matlab. Struktura programa je prikazan na sliki 1 desno. Slika 1: (levo) Shema v okolju Matlab: program, regulacija robota in povezava z računalniškim vidom, (desno) Shema program za izvajanje udarca Literatura Munih, M. (2009). Robotika I. Založba FE in FRI, Ljubljana. Vodennje žoge na paraleelnemu robotu s ppomočjo kamere Luka P Peternel in JJan Babič Innštitut Jožef Šttefan [email protected] Povzzetek Projeektna naloga se s je začela s ppogovorom z m mentorjem, v katerem smo določili glavnne cilje. Glavnni cilj je s prvva bil vzpostavvitev sistema, ki bo omogoččal vodenje žogge po neki traj ajektoriji s pom močjo umetnegga vida. Nato smo se seznaanili z robotom m (konstrukcijja, kinematikaa itd) in pregledali kateri prripomočki so nam na mo postavili kaamero in izbralli primerno žoogo (površina, barva), smo ppričeli s voljoo (kamera, žogge itd). Ko sm progrramiranjem prrograma za zzajem in obdeelavo slike. Prrogramirali sm mo v MATLA ABu. Prve težžave so nastoopile, ker je prrogram za zajem in obdelavvo slike delovval prepočasi za z izvajanje v realne času. Rešitev probllema je bila v prenosu zaajema in obdeelave slike v Simulink. V Simulinku žže obstajajo bbloki za obdelavo in zajem m slike, ki imaa enake funkccije kot posam mezni segmentti naše kode, ki smo jo naapisali v TLABu. Stvarr je v Simulinkku delovala zaadovoljivo hitrro za delovanjje v realnem ččasu. Naslednjji korak MAT je billa optimalna ppostavitev kam mere nad platfformo. Nato sm mo načrtali reegulator. Najprrej je bil mišljjen PID regullator, a se je v praksi izkazaalo, da integrirrrni člen povzroča težave. N Na koncu smo izbrali PD reggulator. Slediilo je nastavlljanje ojačenj proporcionallnega in difeerencialnega ččlena. Z ekspperimentiranjeem smo določčili optimalnee vrednosti tehh dveh param metrov. Nato sm mo naredili eenostavno reguulacijo, ki je težila k temuu, da je žoga v središču platfforme in stvarr testirali tako,, da smo z razllično močnim mi sunki izmikaali žogo iz sreedišča. Ko sm mo bili zadovooljni z regulaccijo, smo nam mesto središča platforme koot referenco upporabili raznee trajektorije ((krožnica, osm mica itd). Na koncu smo sstvari posneli in analizirali podatke. Prem mikanje žoge po trajektorijje je bilo zaddovoljivo. Možžne izboljšavee sistema so v upoštevanjuu trenja med žžogo in podlaago ter izbbira primernejše žoge. Majhhne problemee prestavlja tudi sama površšina platform me, na katerri je nekaj lukennj za vijake. Z Zatem smo sii zadali cilj aprokksimacije človekove regulacije platfo forme z nevronnskimi mrežaami. Posneli smo nekaj podatkoov o naši reguulaciji in pri tem pazili, da ssmo pokrili čim večjo površšino platforrme. S prridobljenimi podaatki smo natto naredili fu funkcijo, ki aprokksimira našo regulacijo. Na N začetku smo uporabili le ppodatke o poziiciji in stvar N smo ni delovala zaadovoljivo. Nato uporaabili pa še poddatke o hitrossti, kar na je dalo zadovoljive rezultate. Slledil je še zadovvoljiv preizkuus na realnem sistemu. s Literratura Lenarčič, J. in Bajd, T. (2009). Robotski meehanizmi. Uniiverza v Ljuubljani, Fakullteta za Elektrotehhniko, Ljubljaana. Mihelj, M M. (2007). Happtični Roboti. U Univerza v Ljubljani, Fakullteta za Elektrootehniko, Ljubbljana. Babič, J., Oztop, E. in i Lenarčič, J. (2007). Hu Human sensoriimotor adaptaation for robbot skill synthesis:: reaching w without fallingg over. Inštiitut Jožef Šteefan, Ljubljanna, Slovenijaa, ATR Cognitivee Mechanisms Laboratories,, Osaka Univeersity, Japan. Učenje na podlagi izkušenj s humanoidnim robotom NAO Matic Mašat, dr. Bojan Nemec Inštitut Jožef Stefan [email protected] Povzetek Cilj projektne naloge, je bilo naučiti humanoidnega robota NAO odkrivanja nagrade, ki se skrivala pod enim od treh kozarčkov. Naloga je končana, ko humanoidni robot poišče nagrado v prvem poizkusu. Problem učenja je bil rešen s pomočjo vzpodbujevalnega učenja, ki je ob najdeni nagradi odločitvi pripisal večjo utež, kot v primeru kozarčka brez nagrade. Po odkritju vseh treh kozarčkov, se izračuna verjetnost iz vseh dosedanjih izkušenj in se uporabi v naslednjem poizkusu odkrivanja. Za nagrado je bil uporabljen NaoMarker, katerega je humanoidni robot sposoben prepoznati. Sprva so odločitve, kateri kozarček podreti povsem naključne, v kasnejših poizkusih pa humanoidni robot sklepa odločitve na osnovi izračunane verjetnosti. Programiranje humanoidnega robota poteka v programskem okolju Coreographie, v katerem je mogoče s pomočjo programskega jezika Python, zajemati podatke iz številnih senzorjev in določati trajektorije gibanja okončin. Na takšen način so bili določeni gibi za podiranje kozarčkov, nakar sledi zaznavanje NaoMarker-ja. Humanoidni robot hkrati pri odkrivanju kozarčkov, komentira svoje odločitve preko vgrajenega govornega modula. Humanoidni robot je po večkratnem poizkušanju sposoben odkriti kozarček z nagrado v prvem poizkusu. Literatura Aldebaran Robotics Documentation. Web: http://academics.aldebaran-robotics.com/docs/site_en/index_doc.html. K. Teknomo, Adaptive Learning. Web: http://people.revoledu.com/kardi/tutorial/Learning/AdaptiveLearningExample.htm. Trening gibanja roke in zapestja v navidezni resničnosti s pomočjo haptičnega robota Nikola Jandrić mentor: Matjaž Zadravec Univerzitetni rehabilitacijski inštitut RS - Soča [email protected] Povzetek Naloga je bila, da s pomočjo programa Unity naredim igrico, ki bo namenjena uporabnikom robota za trening gibanja roke. Za cilj sem si postavil, da igra zadosti trem potrebam: 1-stopnjevanje težavnosti, 2animira uporabnika, 3-je preprosta za uporabo. Kot najbolj primerne sta se pokazale labirint, iz katerega bi moral najti izhod, pogled pa bi bil prvooseben in pa površina na katero na naključno mesto položimo kocko in jo potem moramo pobrat. Vsakič ko jo poberemo se nekje pojavi nova. Izbral sem drugo možnost, čeprav najbolje ne zadostuje prvemu pogoju. Imam še nekaj dodatnih opcij, kako bi vso zadevo popestril. Literatura Unity tečaj: -http://www.vtc.com/products/Introduction-to-Game-Development-Using-Unity-3DTutorials.htm Unity forum in navodila: -http://unity3d.com/support/ Programiranje gibanja robota po trajektoriji, zapisani v formatu DXF Martin Sever, Mentor: Borut Povše DAX Electronic Systems d.o.o. [email protected] Povzetek V industriji se pogosto pojavi želja po gibanju robota po določenih trajektorijah. Postopek določanja teh trajektorij z učenjem robota po točkah je zamuden že pri enostavnih krivuljah, kaj šele pri bolj kompliciranih. Moja naloga je bila izdelava programskega vmesnika, ki združi na eni strani slikovno datoteko tipa DXF in na drugi strani gibanje samega robota. Določanje trajektorije na podlagi učenja robota po točkah se tako prevede v risanje trajektorij v programu za risanje. Program je napisan v programskem jeziku Delphi, ki omoča tudi izgradnjo grafičnega vmesnika za lažjo uporabo. Program prebere izbrano datoteko tipa DXF in iz nje izlušči pomembne podatke o objektih kot so linije, loki in zlepki obeh prejšnjih. Iz podatkov o teh objektih program zgradi seznam točk, ki so potrebne za uspešno sprogramiranje robotske poti in pa listo ukazov, ki robota premikajo po teh točkah. Za večjo splošnost uporabnost programa so na voljo opcije definiranja delovnega območja robota in normiranje trajektorij na delovno območje robota, izbira tipa robota (scara/antropomorfni), izbira zamikov po posamezni koordinati, nastavitve hitrosti, pospeškov, višine skoka in začetne pozicije. Obstaja tudi možnost sprotnega opazovanja poteka odkrivanja objektov. Program na željeno mesto shrani datoteki points.pts in main.prg. Ti datoteki uporablja program RC+, ki je orodje za programiranje gibanja robotov Epson. Datoteki prekopiramo v prazen projekt programa RC+, ga naložimo in poženemo. Robot nato opravi pot, kakršno smo mu začrtali v datoteki DXF. Literatura Autodesk (2010). DXF Reference, Autodesk Inc, San Rafael Internetna stran Delphi basics (November, 2010), http://www.delphibasics.co.uk/ Help datoteke programa RC+ 5.0 Mehanizem s tremi translacijskimi sklepi avtor: Roman Hribar mentor: Žiga Majdič ABB e-naslov avtorja: [email protected] Povzetek Naučiti se osnove programa RobotStudio Zgraditi mehanizem s tremi translacijskimi sklepi Zrisati prijemalo Narediti virtualni krmilnik za ta mehanizem Sprogramirati pot robota V programu RobotStudio imamo v orodni vrstici več zavihkov: Zavihek home: tukaj lahko uvozimo v delovni proctor različne robote ABB(ki jih imamo že shranjene v knjižnici programa RobotStudio), predmete… Tukaj robota tudi učimo pa kakšnih poteh naj se giblje oziroma v katero točko naj skoči s funkcijam teach target in teach instructions. Poleg glavnega zavihka home imamo še zavihke modeling(rišemo predmete), simulation(izvajamo simulacijo), offline(sprogramiramo virtualni krmilnik in mehanizem sinhroniziramo z njim), online. V zavihku modeling sem najprej zrisal celoten sistem, ki sem ga povezal v 3 sklepe in zgradil mehanizem s pomočjo funkcije create mechanism(slika mehanizma). V nadaljevanju sem na mehanizem pripel prijemalo, ki sem ga tudi v celoti naredil(funkcija create tool) sam in mu določil 2 sklepa po y osi, ki sta med seboj linearno odvisna(slika prijemala). Prijemalu sem določil dve poziciji: 1.)HomePose: pozicija, v kateri prijemalo ni v stiku z objektom in je odprto. 2.)ClosePose: pozicija, v kateri je prijemalo v stiku z objektom in je zaprto Ko sem imel v celoti zgrajen mehanizem in prijemalo, sem le tega pripel na mehanizem, mahanizmu pa sem moral omejiti gibanje, se pravi določiti delovni prostor(x:0-1055 mm, y:-390-430 mm, z:0-170 mm). S pomočjo čarovnika sem naredil virtualni krmilnik za mehanizem s tremi traslacijskimi stopnjami, tako da sem lahko začel s programiranjem poti robota in s simulacijo. Programiranje poti: 1.) S pomočjo funkcije teach target doličimo točko, v katero naj se robot premakne. 2.) Če želimo, da robot prime nek predmet postavimo ukaz Closepose na vrednost 1, takrat se prijemalo zapre. 3.) Če želimo, da robot odloži predmet postavimo ukaz Homepose na vrednost 1, takrat je prijemalo odprto. 4.) Prijemalo se zapre samo, ko se Closepose spremeni iz vrednosti 0 na 1, zato moramo vsakič Closepose postaviti na vrednost 0. Podobno velja za ukaz Homepose. 5.) Oba ukaza kličemo s funkcijo teach instructions. Teoretično ozadje: D-zunanji KS E-osnovni KS F-KS prijemala,vrha T1-transformacijska matrika 1 T2-transformacijska matrika 2 Literatura: -Skripta RobotStudio osnovni tečaj 5.12 -Operaterski priročnik IRC5 z FlexPendant-om -spletna stran: http://www.abb.com/ Robotsko razvrščanje LED svetilnih elementov v razrede svetilnosti Pagon Miha Mentor: Jure Skvarč FDS Research [email protected] Povzetek Moja naloga je bila izdelati sistem za razvrščanje LED diod v razrede svetilnosti. Pri tem se ni merila direktno svetilnost, za kar bi potreboval posebni merilnik, ampak se je merila UI karakteristika diode, saj je svetilnost diode linearno odvisna od toka, ki teče skozi njo, kar pomeni, da pri vezavi v svetilni element diode svetijo z različno svetilnostjo kljub temu da so po podatkih proizvajalca enake. V ta namen je bilo potrebno izdelati merino mesto za merjenje napetosti na diodi pri določenem toku. Glede na izmerjeno napetost pa se je diode ustrezno sortiralo. Celoten postopek se je avtomatiziralo z 4osnim robotom DENSO. Doziranje diod pa je bilo realizirano z linearnim vibratorjem, kjer se je pojavil dodaten problem. Na kakšen način ločitit anodo in katodo na diodi? Najlažje je bilo to izvedeno z strojnim vidom, saj je pin, ki je povezan na katodo praviloma krajši od pina, ki je priklopljen na anodo. Celoten potek merjenja je potekal tako da je robot prijel diodo na prijemališču, jo nesel pred kamero, kjer se je določila pravilna orjentacija diode. Na merilnem mestu se je pomerila napetost diode pri določenem toku. Na podlagi te napetosti se je diodi določil razred, in se jo je odložilo v primeren zalogovnik. Zaključki te vaje so bili presenetljivi, saj se pri enakem toku napetost na diodah, ki so po proizvajalčevih podatki enake, lahko razlikuje tudi do 0,5 V. Literatura FDS Research (2002). FDS Imaging Software Getting Started Preizkušanje optičnih elementov s pomočjo robota Matjaž Mrgole dr. Jure Skvarč FDS Research [email protected] Povzetek Cilj naloge je bil zgraditi optični sistem z robotom, ki bo omogočal merjenje izbranih lastnosti optike in njeno preizkušanje. V mojem primeru je bilo to merjenje fokusne ravnine, sistem pa je bil zgrajen v okolju FSD Imaging Software s pomočjo 4-osnega DENSO robota. V prvem delu naloge je bilo potrebno izdelati optimalno tarčo z referenčnimi vzorci, ki jo bo robot nato premikal pravokotno na kamero, algoritem za focus pa iz nje dobil največjo vrednost. V drugem delu sem iskal primeren algoritem in izbral »Squared gradient«, ki se je izkazal za najboljšega. Algoritem sem nato sprogramiral v programskem jeziku Visual Basic (FDS Imaging Software ga podpira). Izdelal sem tudi prijemalo na katerega se namesti tarča z referenčnimi vzorci, samo prijemalo pa na robota. Končna verzija sistema za vhod potrebuje ime datoteke, kamor se bodo shranili rezultati, ločljivost fokusne ravnine in koliko premikov bo v z-osi. Sistem nato krmili robota, izvaja potrebne manipulacije in izračune na sliki, na koncu pa shrani rezultate v obliko, ki so primerni za uvoz v Excel ali Gnuplot (spodaj slika). Čisto na koncu sem sistem preizkusil na dveh različnih objektivih, ki focusa nimata pravokotno na kamero (Scheimpflugov princip), pri dveh različnih goriščnih razdaljah in rezultate predstavil podjetju FDS Research. Spisal sem tudi dokumentacijo za program, saj se bo sistem uporabljal za preizkušanje različnih objektivov. Slika: 3D predstavitev fokusne ravnine Literatura Eskicioglu, A.M., Fisher, P.S.: Image quality measures and their performance. IEEE Transactions on Communications 43(12), 2959-2965 (1995) Zajemanje in pobiranje objektov z robotom in 3D kamero Tadej Koprivec mentor: Uroš Kromar YASKAVA RISTRO [email protected] Povzetek Predmet obravnave projetne naloge je problem pobiranja kosov iz euro palete, s pomočjo robota in 3D kamere, ki je pripeta na vrh robota. Na projektni nalogi smo uporabili kamero tip SICK IVC-3D 200 za detektiranje položaja in orientacije kosa v paleti. Uporabili smo tudi Motoman-ovega šest osnega robota oznake ES165 – 50N, ki izvaja zajemanje slike in pobiranje kosov iz palete. Robni pogoji, ki so bili pri nalogi pomembni: • • • • • • • Razpoznavanje več tipov kosov do 12 Predpostavka, da je potrebno natančnost položaja najdenega kosa 0.5 – 1 mm in 1º Prepoznavanje ali je objekt obrnjen pravilno Hitrost skeniranja 250 profilov/sek, kar da resolucijo 1prof/mm ob hitrosti robota 250mm/sek Objektri na paleti so morali biti dovolj narazen, da se jih je dalo pobirati z enim prijemalom Pozicija kosov na paleti je lahko variirala α:0 – 360 in β,γ:±15 º Pred vsakim pobiranjem je bilo izvedeno ponovno skeniranje (izločen vpliv pobiranja prejšnega kosa) Kratek opis dela: Prilagoditev kamera na pririobnico robota, vzpostaviti električne povezave, nastavitve parametrov kamere,tukaj je bilo potrebno vložiti največ truda, študija programskega opreme kamere. Nato je bilo potrebno izvesti kalibracijo z koordinatam sistemom kamere in baznim koordinatam robota. Na koncu je bilo potrebno določiti načina komunikacije. Slika 2: Kamera IVC - 3D Slika 1: Kosi v paleti Literatura SICK, Industrial Vision Camera IVC – 3D, Operating instructions SICK, Industrial Vision Camera IVC – 3D, Technical destcription SICK, [Spletna strna]. Dostopno http://www.sick.com Slika 3: Robot v pobiranju kosa
© Copyright 2024