ROBOTSKI MEHA ANIZMI I IN ZAZ ZNAVANJE

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