Upload
dothuan
View
242
Download
5
Embed Size (px)
Citation preview
SVEUCILIŠTE U ZAGREBUFAKULTET ELEKTROTEHNIKE I RACUNARSTVA
DIPLOMSKI RAD br. 694
Detekcija i prepoznavanje objekatau svrhu izlucivanja tocaka hvata igeneriranja podražaja za sucelje
mozak-racunaloDenis Štogl
Zagreb, lipanj 2013.
Umjesto ove stranice umetnite izvornik Vašeg rada.
Da bi ste uklonili ovu stranicu obrišite naredbu \izvornik.
Zahvaljujem menotoru prof. dr. sc. Ivanu Petrovicu na vodenju i potpori tijekom
izrade rada.
Posebna zahvala dipl. ing. Srecku Juric-Kavelju na izdvojenom vremenu, str-
pljivosti i svom prenešenom znanju koje je omogucilo realizaciju ovog rada.
iii
SADRŽAJ
Popis slika vi
1. Uvod 1
2. Pregled dosadašnjih istraživanja 32.1. ROS - Operacijski sustav za robote . . . . . . . . . . . . . . . . . . . 6
3. Metode za detekciju i prepoznavanje objekata u programskom sustavuROS 83.1. Tabletop Object Detector . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2. Object Recognition Kitchen (ORK) . . . . . . . . . . . . . . . . . . 9
3.2.1. ORK: Line-mod . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.2. ORK: Tabletop Object Recognition . . . . . . . . . . . . . . 12
3.2.3. ORK: Textured Object Detection . . . . . . . . . . . . . . . . 13
3.2.4. ORK: Transparent objects . . . . . . . . . . . . . . . . . . . 13
4. Metode za izlucivanje tocaka hvata i manipulacija objektima u program-skom sustavu ROS 144.1. Metode odredivanja hvata . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2. Manipulacija objektima . . . . . . . . . . . . . . . . . . . . . . . . . 16
5. Upotreba programskog sustava ROS za detekciju, prepoznavanje i manip-ulaciju objektima 175.1. Oprema korištena prilikom izvodenja eksperimenata . . . . . . . . . 17
5.1.1. Senzor Microsoft Xbox 360 Kinect . . . . . . . . . . . . . . 17
5.1.2. Ruka Schunk Powerball i hvataljka WSG-50 . . . . . . . . . 20
5.2. Manipulacijski cjevovod u simuliranom okruženju . . . . . . . . . . . 22
5.2.1. Segmentacija prostora, detekcija i prepoznavanje objekata . . 25
5.2.2. Izlucivanje tocaka hvata i manipulacija objektima . . . . . . . 25
iv
5.3. Segmentiranje i prepoznavanje objekata u stvarnom okruženju . . . . 28
5.3.1. Tabletop Object Detector . . . . . . . . . . . . . . . . . . . . 28
5.3.2. Object Recognition Kitchen (ORK) . . . . . . . . . . . . . . 30
6. Generiranje podražaja za sucelje mozak-racunalo 376.1. ROS cvor: generator SSVEP podražaja nad predmetima u sceni . . . . 39
6.2. ROS cvor: prikaz detektiranih objekata . . . . . . . . . . . . . . . . . 39
7. Manipulacija objektima pomocu sucelja mozak-racunalo 42
8. Zakljucak 44
Literatura 45
A. Popis repozitorija 53
v
POPIS SLIKA
3.1. Tabletop Object Detector cjevovod . . . . . . . . . . . . . . . . . . . 10
3.2. Line-mod primjer, izvor: Hinterstoisser et al. (2011) . . . . . . . . . . 12
4.1. Arhitektura cjevovoda za manipulaciju objektima, izvor: Jerbic et al.
(2013) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.1. Xbox 360 Kinect uredaj, izvor: internet . . . . . . . . . . . . . . . . 18
5.2. Povezivanje podataka RGB kamere i senzora dubine . . . . . . . . . 19
5.3. Problem detekcije prozirnih objekata . . . . . . . . . . . . . . . . . . 21
5.4. Ruka Schunk Powerball s hvataljkom WSG-50, izvor: internet . . . . 22
5.5. Object Manipulation cjevovod, izvor: Jerbic et al. (2013) . . . . . . . 24
5.6. Simulacijsko okruženje . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.7. Prikaz podataka Kinect senzora tijekom simulacije . . . . . . . . . . 26
5.8. Rezultat segmentacije scene . . . . . . . . . . . . . . . . . . . . . . 27
5.9. Hvatanje i podizanje predmeta u simuliranom okruženju . . . . . . . 28
5.10. Prikaz podataka Kinect senzora sa stvarne scene . . . . . . . . . . . . 29
5.11. Rezultat segmentacije scene . . . . . . . . . . . . . . . . . . . . . . 30
5.12. Tockasti uzorak za snimanje podataka . . . . . . . . . . . . . . . . . 31
5.13. Prozori pri snimanju objekata ORK sustavom . . . . . . . . . . . . . 33
5.14. Objekti snimljeni ORK sustavom . . . . . . . . . . . . . . . . . . . . 35
6.1. SSVEP stimulacija sa šahovnicom, izvor: internet . . . . . . . . . . . 37
6.2. P300 matrica slova, izvor: internet . . . . . . . . . . . . . . . . . . . 38
6.3. Generator SSVEP podražaja nad predmetima . . . . . . . . . . . . . 40
6.4. Sucelje za prikaz izlucenih objekata . . . . . . . . . . . . . . . . . . 41
7.1. Prijedlog upotrebe BCI sustava za pomoc pri manipulaciji osobama s
invaliditetom, izvor: Jerbic et al. (2013) . . . . . . . . . . . . . . . . 43
vi
1. Uvod
Detekcija i prepoznavanje objekta u svrhu izlucivanja tocaka hvata danas je istraživacki
vrlo aktivno podrucje. Neka od vrlo zanimljivih podrucja primjene prepoznavanja ob-
jekata u robotici su roboti za covjecanstvo (engl. Robots for humanity) te osobni roboti
(engl. Personal robots). U oba slucaja primjena robota je vrlo slicna jer je glavni cilj
razviti robota koji može zamijeniti covjeka u ulozi osobnog asistenta odnosno razviti
robota koji može potpuno autonomno djelovati u prostoru prilagodenom ljudima i
suradivati s ljudima. Velikom broju istraživanja pridonio je i razvoj povoljnih sen-
zora za 3D detekciju prostora, kao što je Microsoft Xbox 360 Kinect, te rast racunske
moci racunala. Uz veliki broj istraživanja razvijen je i velik broj metoda od kojih se
neke baziraju samo na 2D (Willow Garage, 2013h) ili 3D podacima (Muja i Ciocarlie,
2013) dok druge kombiniraju te podatke (Hinterstoisser et al., 2011).
Drugo vrlo znacajno podrucje istraživanja su komunikacijska sucelja izmedu cov-
jeka i robota odnosno covjeka i racunala. Jedno od njih je sucelje mozak-racunalo
(engl. Brain-computer interface (BCI)) koje pruža alternativni nacin komunikacije i
upravljanja racunalom ne koristeci klasicne neuro-motoricke komunikacijske puteve.
Ova tehnologija ima mnogo mogucih primjena kao što je igranje igara bez upotrebe
ruku, rehabilitacija, detekcija kognitivnog napora, detekcija stresa i drugo. Jedna od
najizazovnijih primjena BCI-a je povratak mogucnosti komunikacije i manipulacije os-
obama s težim oblicima invaliditeta. Za tu namjenu razvijeno je više metoda od kojih
su neke invazivne, kao što je na primjer upotreba mikroelektroda u mozgu kao sucelje
za upravljanje protezom (Collinger et al., 2012), dok su druge manje invazivne i bazi-
raju se na elektroencelofalografiji (engl. Electroencephalography (EEG)) (McFarland
et al., 2010).
Ovaj rad bavi se, u prvom redu, pregledom i mogucnošcu upotrebe vec implementi-
ranih metoda za prepoznavanje objekata i izlucivanje tocaka hvata u operacijskom sus-
tavu za robote (engl. Robot Operating System (ROS)) (poglavlja 3, 4 i 5). U poglavlju
5 razmatra se i izvodenje kompletnog cjevovoda za manipulaciju objektima (engl. ma-
nipulation pipeline) koristeci dostupan senzor i robotsku ruku s hvataljkom. Ovdje je
1
prezentiran i jedan od najznacajnijih rezultata, a to je uspješno hvatanje i podizanje ob-
jekta u simulacijskom okruženju na temelju razmatranih metoda za detekciju i generi-
ranje tocaka hvata. Drugi važan dio je implementacija grafickog sucelja za generiranje
BCI podražaja koje se temelji na detektiranim objektima u sceni (poglavlje 6). Pri tome
se uzimaju u obzir svi zahtjevi na takvo sucelje koji su dostupni iz ranijih istraživanja.
Na samom kraju, u poglavlju 7, razmatra se mogucnost povezivanja navedenih dijelova
rada u svrhu povecanja razine manipulacije i samostalnosti osoba s invaliditetom.
2
2. Pregled dosadašnjih istraživanja
Problematika detekcije i prepoznavanja objekata intenzivno se istražuje vec 15-ak go-
dina i to u razlicitim podrucjima, kao što su racunalna grafika, robotika i raspoznavanje
uzoraka. Najzanimljivija podrucja primjene u robotici su osobni roboti (Klank et al.,
2009) i robotika za covjecanstvo (Chen et al., 2013) za koje je iznimno važan sus-
tav percepcije i pracenja objekata u stvarnom vremenu, kao i sustav za odredivanje
najboljih tocaka hvata. Prema Hinterstoisser et al. (2011) mogu se razlikovati dvije
osnovne skupine metoda prepoznavanja 3D objekata: one korištene na slikama in-
tenziteta (engl. intensity images) (kao što je RGB slika) i one koje rade s podacima o
daljini (3D oblak tocaka) odnosno sa slikama koje sadrže podatke o dubini (engl. depth
images).
Metode koje se baziraju na obradi slika intenziteta mogu se rasporediti u dvije
glavne kategorije:
metode zasnovane na ucenju (engl. Learning Based Methods) koje obicno zahtije-
vaju veliku kolicinu podataka za ucenje i samim time vrlo dugu fazu (ofline)
ucenja, i
metode zasnovane na usporedivanju predložaka (engl. Template Matching Methods)
koje su imale vrlo znacajnu ulogu u pracenju-po-otkrivanju (engl. tracking-by-
detection) aplikacijama.
Prednost prvih metoda je to što mogu prepoznati objekte iz razlicitih kuteva gledišta
s velikim tocnošcu zbog cega im je i podrucje primjene široko, od algoritama za pre-
poznavanje lica do raspoznavanja 3D objekata. Druge metode daju bolje rezultate i
lakše se primjenjuju na objekte bez, ili s vrlo malo, teksture s obzirom na metode
koje se oslanjaju na razlicite znacajke objekta1. Ali iako vrlo robusne, metode zas-
novane na usporedbi predložaka nisu primjenjive u aplikacijama gdje je potreban rad
u stvarnom vremenu jer broj predložaka za usporedbu naglo raste kada se želi pokriti
1Znacajke objekata su najcešce dobivene iz teksture površine.
3
veliki broj razlicitih tocaka (kuteva) gledišta. Više o ova dva pristupa i korištenju slika
koje bilježe intenzitet za prepoznavanje objekata, kao i mnoge reference koje se bave
tom tematikom mogu se pronaci u Hinterstoisser et al. (2011) u poglavlju „Pregled
istraživanja“.
Veliki broj metoda koje se koriste u robotici pripada drugoj skupini algoritama,
odnosno, zasnivaju se na obradi 3D oblaka tocaka ili slika dubine iz kojih je, za svaku
tocku prostora, poznat položaj u koordinatnom sustavu senzora. Do prije nekoliko
godina za dobivanje takvih podataka korstio se laserski senzor s pan jedinicom, a tada
se javljaju stereo kamere s teksturiranim ili strukturiranim svjeltom u vidiljivom ili
infra-crvenom podrucju2. Prednost stereo senzora u odnosu na laser je velika brzina
skeniranja prostora, 30-60 Hz naprema 0.2 Hz sekundi kod lasera s pan jedinicom, ali
na racun vece kolicine šuma (Rusu et al., 2009b).
Neki od najpoznatijih pristupa za obradu podataka iz 3D oblaka tocaka su: po-
mocu sfericnih harmonijskih invarijanti (engl. spherical harmonic invariants) (Bu-
rel i Henocq, 1995), rotacijskih slika (engl. spin images) (Johnson i Hebert, 1999),
mapa zaobljenosti (engl. curvature maps) (Gatzke et al., 2005) te brzih histograma
za odredivanje znacajki tocaka (engl. Fast Point Feature Histograms (FPFH)) (Rusu
et al., 2009a). Prvim dvijema spomenutim metodama karakteristike degradiraju ako se
primjenjuju nad zašumljenim i rijetkim oblakom3 kao što su podaci sa stereo senzora,
ali zato se varijanata FPFH metode pokazala vrlo dobrom u takvim slucajevima što je
pokazano u Rusu et al. (2009b).
Uz navedene metode koje vecinom koriste teksturu objekata razvijale su se i metode
za detekciju objekata bez texture (Hinterstoisser et al., 2010, 2012b; Holzer et al.,
2009) te vrlo robusne metode zasnovane na detekciji prirodnih 3D obilježja (engl. Nat-
ural 3D Markers (N3Ms)) (Hinterstoisser et al., 2007). Zajednicko svim ovim metoda
je korak treninga nad snimljenim podacima kada se izlucuju dominantne znacajke koje
ce kasnije pomoci pri detekciji i odredivanju položaja stvarnih objekta u stvarnom vre-
menu.
Osim metoda detekcije objekata i odredivanja njihovih znacajki razvijani su i al-
goritmi koji su namijenjeni brzoj i tocnoj detekciji i prepoznavanju objekta u svrhu
izlucivanja tocaka hvata i manipulacije objektom. Za ovakve zadace potrebno je iden-
tificirati i prepoznati potporne ravnine i šest-dimenzionalni položaj objekta. Jedan od
zanimljivijih pristupa predstavljen je u Klank et al. (2009) u kojem se korisi 3D sus-
tav percepcije koji može robusno pronaci pripadajuci CAD model objekta iako je stol
2U ovu vrstu senzora spada i Microsoft Xbox 360 Kinect korišten u ovom radu (poglavlje 5.1.1)33D oblak tocaka je rijedak u odnosu na mjerenja lasera s pan jedinicom.
4
u sceni napunjen s mnogo razlicitih objekta (engl. cluttered scene). Njihova metoda
za segmentaciju scene i izlucivanje klastera objekata koristi dva neovisna izvora po-
dataka odnosno dvije vrste kamera: RGB kameru i kameru baziranu na vremenu
leta (engl. Time-Of-Flight (TOF) camera). U Collet Romea et al. (2009) predstavl-
jena je metoda za izgradnju 3D modela objekta koristeci nekoliko slika, a za to je
korištena zanimljiva kombinacija RANSAC (Fischler i Bolles, 1980) i Mean Shift
(Cheng, 1995) algoritma za prepoznavanje razlicitih instanci istog objekta, a time
i njegovog položaja i orijentacije. Jedan od najvecih problema kod tocnog odredi-
vanja šest-dimenzionalnog položaja objekta je odredivanje orijentacije. U Glover et al.
(2011) razmatra se upravo taj problem gdje se predlaže nova vjerojatnosna metoda koja
je mnogo brža od dotadašnjih.
S obzirom na to da su kod razlicitih skupina objekata važne razlicite znacajke niti
jedna metoda za detekciju i prepoznavanje objekata se nije pokazala dovoljno dobra za
sve skupine objekata. Zbog toga se u Muja et al. (2011) predlaže infrastruktura za pre-
poznavanje (engl. Recognition Infrastructure (RAIN)) koja omogucava kombiniranje
više razlicitih 2D i 3D metoda za prepoznavanje i estimaciju položaja objekta. Imple-
mentirane metode se mogu izvršavati serijski ili paralelno, a cak je moguca i dinamicka
promjena parametara pojedine metode. Ta infrastruktura se danas više ne koristi (što
je naznaceno u Muja et al. (2013)) nego je zamjenjena novim ECTO sustavom (Wil-
low Garage, 2013a) koji je baza nove infrastrukture za prepoznavanje objekata pod
nazivom „Object Recognition Kitchen“4.
Do sada su predstavljena neka od istraživanja koja se vecinom bave detekcijom i
prepoznavanjem objekata, a u nastavku ce biti predstavljene moderne metode odredi-
vanja hvata. U Goldfeder et al. (2009) predstavljena je metoda koja omogucava hvatanje
objekata za koje su poznati samo dijelomicni 3D podaci. Iako metoda koristi unapri-
jed izracunate hvatove, omogucava svojevrsnu ekstrapolaciju hvatova na objekte koji
su slicni objektima spremljenima u bazu. Mnoge metode za odredivanje hvatova ob-
jekata baziraju na prepoznavanju objekata i dohvacaju unaprijed generiranih hvatova
iz baze, ali sa stanovišta hvatanja i manipulacije objekata to nije nužno te su razvijene
i metode koje iz segmentiranih oblaka tocaka odreduju hvat objekta. Jedna od takvih
metoda predstavljena je u Holz et al. (2011) i bazira se na detekciji ravnina iz oblaka
tocaka. Slijedece zanimljivo istraživanje je Dogar et al. (2012) gdje je predstavljena
metoda koja dopušta višestruke interakcije izmedu robota i objekta, tj. dopušta robotu
da pomice pomicne prepreke i time si oslobodi put do željenog objekta te ostvari hvat
4Ovaj sustav se koristi i u ovom radu te je detaljnije opisan u poglavlju 3.2.
5
koji ranije nije bio ostvariv. Ova metoda se pokazala u praksi uspješnijom u pretrpanim
scenama u odnosu na metode koje ne dopuštaju interakciju s predmetima koji nisu pr-
votan cilj manipulacije. Vrlo važno istraživanje za ovaj rad je Ciocarlie et al. (2010)
koji prezentira cjelovitu programsku arhitekturu za detekciju, prepoznavanje, hvatanje
i manipulaciju objektima u kucanstvima te se upravo verzija tog cjevovoda koristi i u
ovom radu (detaljniji opis dijelova cjevovoda proteže se kroz poglavlja 3 i 4, a detalji
o upotrebi se mogu naci u poglavlju 5).
Razvojem metoda za detekciju i prepoznavanje uoceno je da se neki algoritmi vrlo
cesto koriste te je razvijena biblioteka za rad s oblacima tocaka Point Cloud Library
(PCL) (PCL, 2013) i biblioteka za rad s 2D slikama Open Computer Vision Library
(OpenCV) (Itseez, 2013) koje implementiraju cesto korištene algoritme i strukture po-
datka te time olakšavaju rad i obradu 3D oblaka tocaka i 2D slika. Obje ove biblioteke
su otvorenog koda, a u njihovom održavanju i unaprjedenju sudjeluju neka od vodecih
svjetskih sveucilišta i tvrtki. Detalji o implementaciji te kompletna dokumentacija
ovih biblioteka može se naci na službenim stranicama projekata (PCL (PCL, 2013),
OpenCV (Itseez, 2013)) ili u radovima kao što su na primjer Rusu i Cousins (2011) te
Bradski i Kaehler (2008).
U ovom poglavlju su navedena i ukratko opisana neka od istraživanja koja se bave
problematikom detekcije, prepoznavanje i hvatanja objekata. Uz ova istraživanja pos-
toje još mnoga druga zanimljiva istraživanja, ali sva ovdje odabrana istraživanja su
izravno ili neizravno povezana s programskim paketom ROS te su zbog toga izdvo-
jena. U slijedecem poglavlju može se naci kratki opis Operacijskog sustava za robote
- ROS, a nešto više o metodama implementiranim u ROS-u i njihovom korištenju u
poglavljima nakon toga.
2.1. ROS - Operacijski sustav za robote
Operacijski sustav za robote (engl. Robot operating system (ROS)) je meta operaci-
jski sustav otvorenog koda koji je primarno namjenjen za instalaciju na robotskim sus-
tavima. U ROS-u su implementirane mnoge bibliteke i alati koji pomažu programerima
i inženjerima pri izradi robotskih aplikacija. Kao i pravi operacijski sustav, ROS osig-
urava apstrakciju sklopovlja, kontrolu uredaja na niskoj razini, proslijedivanje poruka
izmedu razlicitih procesa, upravljanje paketima i drugo. ROS je prvenstveno namijen-
jen upotrebi na operacijskom sustavu Ubuntu GNU/Linux, ali ga je moguce pokretati i
na drugim Unix distribucijama. Iako je ROS razvila istraživacka grupa Willow Garage
iz Sjedinjenih Americkih Država danas se koristi širom svijeta te njegovom razvoju
6
doprinose mnogi pojedinci i istraživacke grupe cime on postaje jedan od vodecih pro-
gramskih sustava za upravljanje robotima što se ocituje u dostignucima i broju istraži-
vanja koja koriste ovaj sustav. Više o ROS-u može se naci na službenim stranicma
projekta (Quigley i Willow Garage, 2013).
7
3. Metode za detekciju i prepoznavanjeobjekata u programskom sustavu ROS
U programskom sustavu ROS postoji mogucnost korištenja dva razlicita sustava za de-
tekciju i prepoznavanje objekata. Jedan od njih je cjevovod podataka koji se nalazi
u paketu Tabletop Object Detector (Muja i Ciocarlie, 2013) te on može provesti seg-
mentaciju i jednostavno prepoznavanje objekata u sceni1. Drugi sustav je vec spomenut
u poglavlju 2 kao nasljednik REIN sustava (Muja et al., 2013) te je to zapravo im-
plementacija infrastrukture namijenjene za jednostavnu izradu i simultano izvodenje
nekoliko razlicitih metoda za prepoznavanje objekata, a nalazi se u Object Recogni-
tion stogu (Rublee et al., 2013). Puno ime ovog sustava je Object Recognition Kitchen
(ORK) te ce se ono koristiti u nastavku ovog rada.
U nastavku su detaljnije opisana oba sustava.
3.1. Tabletop Object Detector
Paket Tabletop Object Detector u sebi sadrži dvije osnovne komponenete2 za percep-
ciju objekata:
segmentacija objekata koja služi za izlucivanje klastera tocaka koji odgovaraju ob-
jektima i
prepoznavanje objekata koja pomocu baze objekata odreduje kojem objektu odgo-
vara pojedini klaster.
Ovaj cjevovod nije potpuno opcenit te da bi ispravno radio moraju biti zadovoljene
slijedece pretpostavke:
– objekti se nalaze na stolu koji je dominantna ravnina u sceni,
1Koristi se u ranije spomenutom cjevovodu predstavljenom u Ciocarlie et al. (2010).2U terminologiji ROS-a radi se o cvorovima.
8
– minimalna udaljenost izmedu objekata prelazi zadani prag (može se proizvoljno
zadati),
– na cvor za prepoznavanje objekata ne utjecu samo translacije objekta po x i
y osi (pretpostavlja se da z os je usmjerena prema gore u odnosu na ravninu
stola). Zbog toga ako se ovim sustavom želi prepoznati objekt tada on mora
biti:
• rotacijski simetrican (oko z osi) i
• mora imati poznatu orijentaciju, tj. mora biti postavljen „uspravno“ na
stolu.
Šematski prikaz protoka podataka u Tabletop Object Detector paketu dan je na
slici 3.1, a u nastavku je opisan njegov rad. Ulazni, senzorski, podaci su oblaci tocaka
dobiveni iz stereo kamere ili Kinect senzora3. Korak segmentacije koristi RANSAC
metodu za detekciju dominantne površine u sceni, a zatim se za sve tocke iznad rav-
nine stola pretpostavlja da pripadaju skupini objekata koji se mogu uhvatiti i micati
(engl. graspable objects). Iz tih se tocaka pomocu klastering algoritma identificiraju
grupe tocaka (klasteri) koje pripadaju pojedinom objektu. U koraku prepoznavanja
radi se jednostavna iterativna usporedba4 s mrežom (engl. mesh) svakog objekta koji
se nalazi u bazi. Ukoliko je za klaster pronadena odgovarajuca mreža tada se za-
jedno s klasterom vraca i identifikator modela u bazi kako bi se kasnije mogli doh-
vatiti pohranjeni podaci o objektu. Trenutno se metoda usporedbe provodi samo u 2D
prostoru te pretpostavlja da su ostale cetiri dimenzije fiksne (vidi uvjete navedene u
prethodnom odlomku). Konacno ovaj cjevovod na izlazu daje lokaciju stola, identifici-
rane klastere tocaka i odgovarajuci identifikator modela u bazi te procijenjeni položaj
predmeta (ukoliko je pronaden odgovarajuci objekt u bazi).
Više detalja o cvorovima i upotrebi ovog cjevovoda može se pronaci u Muja i Cio-
carlie (2013).
3.2. Object Recognition Kitchen (ORK)
ORK je implamentacija infrastrukture za pojednostavljivanje izrade i korištenja ra-
zlicitih algoritama za prepoznavanje objekata. Za tu fleksibilnost zaslužan je ECTO
3Više o Kinect senzoru u odjeljku 5.1.1.4Koristi se jedan od oblika algoritma Iterativna najbliža tocka (engl. Iterative Closest Point (ICP))
odnosno, algoritam predstavljen u Besl i Mckay (1992).
9
Segmentacija3D oblak točaka
Pložaj stola
Identificiraniklasteri objekata
Prepoznavanje
3D m
reže
ob
jeka
ta
Baza objekata
Pložaj stola
Klasteri objekata
Slika 3.1: Tabletop Object Detector cjevovod
okvir (Willow Garage, 2013a) u kojem se svaki zadatak može vrlo jednostavno opisati
usmjerenim aciklickim grafom cime je definiran redoslijed izvršavanja podzadatka.
Trenutno su u ORK infrastrukturi implementirana cetiri metode5 za prepoznavanje
objekta:
1. Line-mod,
2. Tabletop Object Recognition,
3. Textured Object Detection i
4. Transparent objects.
Uz ove metode u ORK-u su implementirani i dodatni alati koje koriste neke od metoda,
a mogu biti i korisni za razvoj buducih metoda. Neki od važnijih alata su Capture (Wil-
low Garage, 2013c) kojim se snimaju objekti za dodavanje u bazu objekata i Recon-
struction (Willow Garage, 2013f) koji izraduje aproksimativnu neteksturiranu mrežu iz
snimljenih podataka o objektu koja može poslužiti za planiranje tocaka hvata. Takoder
uz ove cjevovode i alate implementirane su i ROS komponente za integraciju s ROS
okruženjem (Willow Garage, 2013e).
Upotreba svakog algoritma u ORK-u zahtjeva tri koraka:
1. prikupljanje podataka,
2. trening (ucenje) i
5Ovdje se metodom smatra algoritam za ucenje (treniranje) objekata i algoritam za prepoznavanje.
10
3. detekciju i prepoznavanje.
Prvi korak služi prikupljanju podataka o objektu Capture alatom, a ono se mora obav-
iti na podlozi s nekim od predloženih uzoraka (vidi Willow Garage (2013c)) ili na
teksturiranoj podlozi definiranoj od strane korisnika. Slijedeci korak nakon prikupl-
janja podataka je trening u kojem se definiraju i „izvlace“ važne znacajke objekata
na temelju kojih ce se izvoditi prepoznavanje. Za svaku metodu potrebno je posebno
provesti ovaj korak te dodati podatke u bazu. U koraku detekcije usporeduju se izlucene
znacajke objekata koji se nalaze u sceni i onih spremljenih u bazi. U koracima treninga
i detekcije moguce je paralelno koristiti više metoda cime se omogucava pouzdanija
detekcija i prepoznavanje objekata.
U nastavku su detaljnije opisane cetiri implementirane metode.
3.2.1. ORK: Line-mod
Line-mod metoda implementira LINE-MOD algoritam predstavljen u Hinterstoisser
et al. (2011). Verzija koja se koristi u ORK sustavu odgovara verziji koja je imple-
mentirana u OpenCV programskom paketu (Itseez, 2013) te, kako se navodi u doku-
mentaciji (Willow Garage, 2013d), jedna je od najboljih metoda za prepoznavanje kru-
tih objekata.
LINE-MOD (kratica od multiMODal-LINE) metoda koristi se za detekciju 3D ob-
jekata, a zasniva se na korištenju više razlicitih, neovisnih i komplementarnih izvora
znacajki odnosno modaliteta (engl. modalities) objekata. Modaliteti su odabrani tako
da se jednostavno i jednoznacno mogu odrediti iz razlicitih vrsta slika (npr. RGB, slika
dubine), a pošto je metoda opcenita moguce ih je koristiti proizvoljan broj. Tijekom
treninga objekata racunaju se modaliteti za veliki broj predložaka na kojima je pred-
met transformiran, rotiran i skaliran. U tu svrhu implementiran je dodatni alat Random
view Generator (Willow Garage, 2013g) koji pomocu vanjskih biblioteka generira ra-
zlicite poglede na objekt. U fazi prepoznavanja racunaju se modaliteti za ulazne po-
datke koji se usporeduju s ranije izracunatim modalitetima predložaka te zbog toga
ova metoda spada u skupinu metoda baziranih na usporedbi predložaka. Da bi se
osigurala velika brzina algoritma usporedbe i izvodenje u stvarnom vremenu izracu-
nati modaliteti se ne usporeduju izravno nego su prvo diskretizirani i zatim kodirani u
binarne rijeci (engl. binary strings) cime se omogucava iznimno brza usporedba. Pred-
nosti Line-mod metode su rad u stvarnom vremenu, ispravan rad u prilicno zakrcenim
scenama (engl. cluttered scene), vrlo efikasna faza treninga i moc detekcije neteksturi-
ranih objekata. Glavni nedostaci ove metode su nemogucnost rada pri djelomicnim
11
okluzijama te potreba za vrlo velikim brojem snimaka objekta s razlicitim pogledima i
skaliranjima. Detaljan opis Line-mod metode kao i usporedba s drugim metodama za
prepoznavanje objekata dana je u Hinterstoisser et al. (2011) dok je u Hinterstoisser
et al. (2012a) opisano kako se kodiraju i kombiniraju znacajke razlicitih modaliteta za
efikasno korištenje memorije i procesorske snage što joj u konacnici i omogucava rad
u stvarnom vremenu.
Ovdje korištena Line-mod metoda koristi dva modaliteta: normale površina i gradi-
jente. Prednost ova dva modaliteta je u tome što su komplementarni te se lako dobivaju
iz dva neovisna izvora podataka. Normale površina odreduju se iz mape dubine pros-
tora (engl. depthmap), a njima se opisuje unutarnja struktura objekta. Drugi modalitet,
gradijenti, odreduju se iz RGB slike zbog toga što se iz njih najbolje razlucuju. Pred-
nost gradijenata je da su vrlo robusni na šum i promjene svjetline, a i kod objekata
bez teksture su najcešce jedini pouzdani izvor informacija. Takoder, radi povecanja
robusnosti, algoritam racuna gradijent zasebno u sva tri kanala (R, G i B) te se kao
konacni smjer uzima onaj s najvecom vrijednošcu. Konacno se u daljnje kalkulacije
prosljeduju samo smjerovi gradijenata odnosno jedinicni gradijenti cime se omogucuje
neovisnost algoritma na transformacije i skaliranja. Na slici 3.2 prikazana je na prim-
jeru komplementarnost gradijenata i normala površina objekta te se može vidjeti ideja
koja leži iza korištenja više modaliteta za prepoznavanje objekata.
3.2.2. ORK: Tabletop Object Recognition
Tabletop Object Recognition cjevovod (Willow Garage, 2013i) je port metoda iz Table-
top object detector paketa (vidi poglavlje 3.1). Ova implementacija takoder ima dva
dijela:
Slika 3.2: Line-mod primjer, izvor: Hinterstoisser et al. (2011)
12
Table Finder koji pronalazi ravnine i segmentira objekte koji se nalaze na njima,
odnosno, ekvivalentan je cvoru za segmentaciju objekata i
Object Finder koji je ekvivalentan cvoru za prepoznavanje objekata.
Više o ovom cjevovodu može se naci u poglavlju 3.1.
3.2.3. ORK: Textured Object Detection
Textured Object Detection (TOD) metoda koristi tehniku standardnih znacajki koja
je implementirana u OpenCV programskom paketu, a namijenjena je prepoznavanju
teksturiranih objekata. Tijekom treninga odreduju se razliciti pogledi na znacajke ob-
jekata, te se, ukoliko su dostupne informacije o dubini prostora (mapa dubine), takoder
odreduje i 3D položaj objekta s obzirom na izlucene znacajke. Tijekom koraka prepoz-
navanja racunaju se znacajke na trenutnoj slici te se usporeduju s podacima odredenim
u koraku treninga, a sve u smislu odredivanja analogne 3D konfiguracije. Za sada ova
metoda radi samo ako su poznati i 3D podaci odnosno RGBD podaci te koristi ORB
metodu za izlucivanje znacajki. Više o konfiguriranju ovog cjevovoda može se naci u
Willow Garage (2013h).
3.2.4. ORK: Transparent objects
Posljednja implementirana metoda Transparent objects može detektirati i estimirati
položaj transparentnih objekata na osnovi modela oblaka tocaka (engl. point cloud
model). Implementirani algoritam predstavljen je u Lysenkov et al. (2012), a njegova
najveca mana je to što se trening mora napraviti na neprozirnoj, odnosno obojanoj
verziji predmeta da bi se mogao jednoznacno odrediti njegov 3D model. Ovaj algori-
tam nije korišten te je ovdje ukratko opisan kao jedna od mogucnosti u ORK sustavu.
Više o korištenju algoritma i njegovoj integraciji u Object Recognition Kitchen sustav
može se naci u Willow Garage (2013k).
13
4. Metode za izlucivanje tocaka hvata imanipulacija objektima uprogramskom sustavu ROS
Slicno kao i za prepoznavanje objekata programski paket ROS nudi nekoliko razlicitih
algoritama za izlucivanje tocaka hvata te manipulaciju objektima, ali se jasno razlucuju
dva glavna cjevovoda (sustava) oko kojih su ti algoritmi implementirani. Prvi cjevovod
nalazi se u stogu Object Manipulation (Ciocarlie i Hsiao, 2012) koji je stariji od ova
dva sustava te time i kompletniji1. On implementira sve korake od detekcije i prepoz-
navanja objekata2, preko izlucivanja tocaka hvata do manipulacije objektima. Drugi,
noviji, sustav koji se još uvijek nalazi u alfa stadiju razvoja naziva se MoveIt! (Sucan i
Chitta, 2013). Ideja ovog sustava je da potpuno zamjeni Arm Navigation (Jones, 2013)
stog kojeg koristi Object Manipulation cjevovod te na transparentniji nacin omoguci
planiranje i izvršavanje putanja manipulatora i mobilnih robota. Ranije spomenuti
sustav za detekciju prepoznavanje objekata ORK prilagoden je upravo radu s MoveIt!
sustavom te ce u buducnosti cjevovod sastavljen od ta dva sustava u potpunosti zami-
jeniti Object Manipulation cjevovod. MoveIt! sustav nije korišten u okviru ovog rada,
ali je ovdje naveden zbog važnosti koju ima za buduci razvoj metoda za hvatanje i
manipulaciju objektima.
U nastavku se detaljnije opisuju metode korištene u okviru ovog rada.
4.1. Metode odredivanja hvata
U ovom radu korištena su dva paketa kao izvori tocaka hvata, Household Object
Database (Ciocarlie, 2012), dio Object Manipulation stoga te PR2 Gripper Grasp
1Ovaj sustav se koristi u Ciocarlie et al. (2010) navednom u poglavlju 2.2Paket Tabletop Object Detector jedan je od paketa u ovom sustavu. Za detalje o upotrebi i medu-
sobnoj povezanosti i meduovisnosti paketa u Object Manipulation cjevovodu vidi poglavlje 5.2
14
Planner Cluster (Hsiao, 2012), dio PR2 Object Manipulation stoga3 (Hsiao i Ciocarlie,
2012).
Paket Household Object Database zapravo samo implementira komunikaciju s
SQL bazom podataka u koju su spremljeni objekti za prepoznavanje, a s njima i
moguci hvatovi za svaki objekt i definiranu hvataljku. Takav izvor tocaka hvata spada
u skupinu planera hvata potpomognutih bazom podataka (engl. database-backed plan-
ner) te se oni mogu koristiti samo ako se objekt nalazi u bazi i uspješno je prepoznat
na sceni. Jedan od mogucih nacina izlucivanja tocaka hvata za objekte spremljene u
bazu je upotrebom programa GraspIt! (Robotics Lab, 2013) u kojem je implementi-
rana podrška za programski sustav ROS te automatsko ucitavanje objekata i spremanje
izlucenih hvatova. Važno je još napomenuti da se vec popunjena baza objekata4 cestih
u kucanstvima može pronaci na ROS-ovim stranicama, no više o tome u Ciocarlie
(2012).
Drugi paket PR2 Gripper Grasp Planner Cluster je pravi planer koji omogucava
izlucivanje tocaka hvata za nepoznate objekte odnosno za one objekte koji nisu prepoz-
nati ili se ne nalaze u bazi objekata. Kao ulaz u planer predaje se segmentirani oblak
tocaka željenog objekta dobivenog, najcešce, stereo ili RGBD kamerom. Iako je ovaj
planer izvorno namijenjen za hvataljku robota PR2 može se koristiti i za druge, ali se
najprije treba složiti tako zvani box-model hvataljke u položaju prije hvata (engl. pre-
grasp pose). Više o ovom cvoru i njegovoj upotrebi može se naci u Hsiao (2012), a
detalji o implementiranom algoritmu u Hsiao et al. (2010).
Kada se govori o hvatovima u cjevovodu Object Manipulation važno je još spomenuti
da postoji i cvor za testiranje izvedbe generiranih odnosno unaprijed odredenih hva-
tova. Testiranje se izvodi pomocu cvora Tabletop Collision Map Processing koji
omogucava sucelje za popunjavanje i upravljanje mapom kolizija koja sadrži sve staticke
prepreke, kao što je na primjer površina stola, te dinamicke prepreke (one koje se mogu
micati) koje cine drugi objekti na stolu. Ovo testiranje izvodi se pomocu modula koji
rješava problem inverzne kinematike (engl. Inverse Kinematics (IK)) odnosno odreduje
tocan položaj ruke i hvataljke u prostoru stanja te se prema tome odlucuje da li je hvat
izvediv ili ne. Za rješavanje problema IK moguce je koristiti genericki modul, kao npr.
modul implementiran u Kinematics and Dynamics Library (Smits, 2013), ili modul
prilagoden robotskoj ruci, kao što je recimo modul prilagoden ruci PR2 robota (Chitta,
2013). Više o funkcionalnosti i upotrebi ovog cvora može se naci u Ciocarlie (2013).
3PR2 Object Manipulation stog sadrži specificne implementacije nekih generickih funkcionalnosti
prilagodenih za PR2 robot.4Za gotovo sve objekte u bazi postoje i spremljeni hvatovi za nekoliko razlicitih hvataljki.
15
4.2. Manipulacija objektima
Za manipulaciju objektima Object Manipulation cjevovodom koristi se paket Object
Manipulator (Ciocarlie i Hsiao, 2013). Ovaj paket implementira osnovnu funkcional-
nost za zadatke uzimanja i premještanja objekata te takoder nudi servise i akcije za za-
davanje tih zadataka. Izvršavanje zadatka uzimanja ili spuštanja objekta zahtjeva jako
širok spektar razlicitih algoritama od percepcije prostora odnosno mogucih prepreka
do planiranja putanja i upravljanja hvataljkom. Zbog toga Object Manipulator paket
koristi akcije i servise velikog broja razlicitih paketa kao što je na primjer Arm Naviga-
tion za planiranje putanje ili Tabletop Collision Map Processing (Ciocarlie, 2013) za
upravljanje kolizijama u okolini (engl. collision environment) i tako dalje. Arhitektura
cjevovoda za manipulaciju objektima prikazana je na slici 4.1 i ona koristi genericki
algoritam iz Kinematics and Dynamics Library (Smits, 2013) za numericko rješavanje
IK problema, dok sam planer putanje nije ništa drugo nego sucelje prema Open Motion
Planning Library (Sucan et al., 2012) koja implementira više razlicitih planera putanja.
Detaljan opis svih potrebnih cvorova za ispravan rad Object Manipulator cjevovoda te
objašnjenje kako se koji od njih koristi može se naci u Ciocarlie i Hsiao (2013); Cio-
carlie et al. (2010).
PerformIK?
IKMotionPlanner
Sensing
Smoother
SafeController
Abort?Pose goal
Yes
No
Joint space goal
PathTrajectory
Yes
Slika 4.1: Arhitektura cjevovoda za manipulaciju objektima, izvor: Jerbic et al. (2013)
16
5. Upotreba programskog sustava ROSza detekciju, prepoznavanje imanipulaciju objektima
U prethodnim poglavljima teoretski su predstavljene metode za prepoznavanje i ma-
nipulaciju objektima implementirane u operacijskom sustavu za robote (ROS). Ovo
poglavlje se bavi upotrebom tih metoda unutar simuliranog i stvarnog okruženja. Kao
uvod u upotrebu, u poglavlju 5.1, ukratko je predstavljena oprema kojom su radeni
eksperimenti te su navedeni neki od problema s opremom i njihovim upravljackim pro-
gramima koji su se javljali tijekom rada. U poglavlju 5.2 opisano je iskustvo korištenja
Object Manipulation cjevovoda za prepoznavanje i manipulaciju objektima u simu-
lacijskom okruženju. Object Recognition Kitchen sustav nije korišten u simulacijskom
okruženju zbog toga što bi, bez vecih komplikacija, bilo moguce koristiti samo Table-
top cjevovod koji se vec nalazi u Object Manipulation cjevovodu. Konacno u poglavlju
5.3 opisano je korištenje oba sustava za prepoznavanje objekata u stvarnom okruženju
te su prezentirana postignuca u prepoznavanju objekata. Važno je još napomenuti da su
se tijekom pokretanja i izvodenja cjevovoda mnogi postojeci paketi morali prilagoditi
ili poopciti da bi radili ispravno s opremom korištenom u ovom radu te su za njih
kreirani novi repozitoriji ciji se popis može naci u dodatku A.
5.1. Oprema korištena prilikom izvodenja eksperime-
nata
5.1.1. Senzor Microsoft Xbox 360 Kinect
Prilikom izrade ovog rada za prikupljanje podataka korišten je uredaj Xbox 360 Kinect
u kojem se nalazi nekoliko razlicitih senzora i aktuator (slika 5.1) od kojih su za ovaj
17
Slika 5.1: Xbox 360 Kinect uredaj, izvor: internet
rad važni RGB kamera i 3D senzor dubine. Zbog ova dva senzora i mogucnosti kom-
binacije podataka senzora dubine i RGB kamere ovaj senzor pripada skupini RGBD
(RGB + dubina) kamera. Upravljacki program za komunikaciju sa senzorima može
se vrlo jednostavno instalirati iz ROS paketa, a konkretan korišteni tip upravljackog
programa je OpenNI (Rusu et al., 2013; Mihelich et al., 2013).
Nakon pokretanja cvorova za inicijalizaciju i komunikaciju sa senzorom u ROS-
u (vidi Mihelich i Kammerl (2013)) moguce je pristupiti svim važnijim parametrima
senzora i upravljackog programa kao i podacima. Za ovaj rad važne su teme na kojima
se objavljuju podaci RGB kamere, senzora dubine te pripadajuce teme na kojima se
objavljuju karakteristike pojedinog senzora (detalji o nazivima tema mogu se pronaci
u Mihelich i Kammerl (2013)). Jedan od najvažnijih parametra upravljackog programa
je depth_registration koji kada je ukljucen povezuje podatke s RGB kamere i senzora
dubine. Na slici 5.2 prikazan je rezultat aktivacije parametra depth_registration. Na
slikama 5.2a i 5.2b prikazani su nepovezani podaci, a na slici 5.2c rezultat povezivanja
podataka s navedenih senzora. Povezivanje se izvodi na nacin da se podaci senzora du-
bine (oblak tocaka) transformiraju u koordinatni sustav RGB kamere te se zatim svakoj
pojedinoj tocki u oblaku pridružuje odgovarajuci piksel RGB slike (ROS, 2012). Na
slikama se može vidjeti da trenutno pridruživanje nije savršeno te da bi se transfor-
macija izmedu RGB i kamere dubine trebala korigirati, ali s obzirom na to da su te
postavke zapisane u samom upravljackom programu senzora nije ih se mijenjalo ni un-
utar ROS-a zbog moguce nekompatibilnosti s ORK sustavom (vidi snimanje objekata
ORK sustavom, poglavlje 5.3.2).
Jedan od problema koji se javljao tijekom rada je bio pogreška u upravljackom pro-
18
(a) Podaci RGB kamere (b) Podaci senzora dubine
(c) Povezani podaci
Slika 5.2: Povezivanje podataka RGB kamere i senzora dubine
19
gramu senzora koja je uzrokovala da se ukljucenjem opcije depth_registration podaci
objavljuju na temi s transformiranim tockama, ali te tocke nisu bile transformirane i
nisu im bili pridruženi odgovarajuci pikseli RGB slike. U najnovijoj inacici upravl-
jackog programa ovaj problem se više ne javlja, ali ga je bilo važno napomenuti jer su
zbog toga u nekim cvorovima implementiranima u skopu ovog rada dodani dijelovi za
transformiranje oblaka tocaka (ovo ce biti naglašeno pri opisu cvora).
Slijedeci problem 3D senzora dubine Kinect uredaja je nemogucnost detektiranja
prozirnih objekata zbog toga što se senzor bazira na detekciji strukturiranog svjetla
u infracrvenom prodrucju koje prolazi kroz prozirne objekte. Primjer tog problema
prikazan je na slici 5.3 gdje se na sceni nalazila prozirna plasticna boca od koje je
3D senzor dubine samo ispravno detektirao podrucje na kojem se nalazi (neprozirna)
etiketa. Na slici 5.3a prikazana je RGB slika scene, a na slici 5.3b oblak tocka s
pridruženim odgovarajucim pikselima RGB slike tj. s ukljucenom opcijom depth_registration.
Iako je ovaj problem u okviru ovog rada izbjegnut na nacin da su algoritmi za prepoz-
navanje objekata testirani samo na neprozirnim objektima, više o ovom problemu i
nacinu kako ga „zaobici“ prilikom prepoznavanja objekata može se naci u Lysenkov
et al. (2012).
5.1.2. Ruka Schunk Powerball i hvataljka WSG-50
Za testiranje generiranih hvatova i manipulacije objekata u okviru ovog rada korištena
je simulirana verzija robotske ruke Schunk Powerball s hvataljkom Schunk WSG-50
(slika 5.4) . Ova ruka i hvataljka su odabrane zbog toga što su dostupne u laboratoriju
te su dobro podržane u pogramskom sustavu ROS. Više o samim tehnickim detaljima
može se pronaci na službenim stranicama proizvodaca (SCHUNK GmbH & Co. KG,
2013), a ovdje, u nastavku, bit ce navedeni i objašnjeni svi ROS paketi korišteni za
pokretanje ruke i hvataljke.
Za upravljanje rukom i hvataljkom potrebna su slijedeca tri repozitorija:
robotnik-powerball-ros-pkg Implementacija upravljackog program za korištenje Schunk
Powerball ruku s programskim paketom ROS (trenutno samo simulacija).
wsg50-ros-pkg Implementacija upravljackog program za korištenje Schunk WSG-50
hvataljke s programskim paketom ROS.
powerball_robotnik_arm_navigation Konfiguracija i pokretacke datoteke za Schunk
Powerball pri korištenju s Arm Navigation cjevovoda.
20
(a) RGB slika
(b) Oblak tocaka
Slika 5.3: Problem detekcije prozirnih objekata
21
Slika 5.4: Ruka Schunk Powerball s hvataljkom WSG-50, izvor: internet
Detalji i tocna lokacija ova tri repozitorija može se pronaci u dodatku A. Prva dva
repozitorija kopija su originalnih repozitorija te su prilagodeni radu s programskim
paketom ROS verzije “Groovy“ te su implementirani potrebni paketi o cemu se više
može naci u nastavku ovog poglavlja.
5.2. Manipulacijski cjevovod u simuliranom okruženju
Simulirano okruženje za testiranje Object Manipulation cjevovoda napravljeno je sim-
ulatoru u Gazebo (Howard et al., 2013) koji je službeni i najrazvijeniji simulator za
ROS (Hsu, 2013). Na slici 5.5 prikazan je Object Manipulation cjevovod što ce
omoguciti bolje razumjevanje cvorova i repozitorija. Simulacijsko okruženje prikazano
je na slici 5.6, a sastoji se od Shunk Powerball ruke s hvataljkom WSG-50, senzora
Kinect te stola na koji su postavljena dva objekta. Jedan objekt je limenka pica „Coca-
Cola“, a drugi posuda za teniske loptice. Oba predmeta nalaze se u „Household“ bazi
objekata koja se može skinuti s ROS stranica (vidi Ciocarlie (2012)) i korištena je
u ovom radu. Datoteke za prikaz i simulaciju scene nalaze se u mapama models i
worlds u repozitoriju bci_visual_simuli. Preporucljivo je koristiti objekte iz navednog
repozitorija pošto su mnogi od njih prilagodeni ovoj simulaciji. Konacno za pokretanje
22
simulacije potrebni su slijedeci repozitoriji:
bci_visual_stimuli u kojem se nalaze pokretacke datoteke za simulaciju i konfiguraci-
jske datoteke te cvorovi koji su implementirani u svrhu ovog rada,
robotnik-powerball-ros-pkg koji implementira upravljacki program za korištenje Schunk
Powerball ruke s programskim paketom ROS,
wsg50-ros-pkg koji implementira upravljacki program za korištenje Schunk WSG-50
hvataljke s programskim paketom ROS,
powerball_robotnik_arm_navigation koji sadrži konfiguracije i pokretacke datoteke
za Schunk Powerball ruku za rad s Arm Navigation cjevovodom,
object_manipulation koji implementira cvorove za prepoznavanje, generiranje hvata
i manipulaciju,
pr2_object_manipulation koji implementira planere za PR2 robot, ali se mogu ko-
ristiti i u ovoj konfiguraciji te
household_mesh_exporter koji implementira cvor za konverziju podataka izmedu
tipova PointCloud i PointCloud2, a potreban je zbog toga što simulirani Kinect
senzor daje PointCloud tip podataka, a daljnji cvorovi u cjevovodu ocekuju
PointCloud2.
Vecina ovih paketa može se instalirati i iz službenog ROS repozitorija prevedenih da-
toteka (engl. prebuild files) te je to dobra pocetna tocka za pokušaj pokretanja bilo
kojeg cjevovoda u ROS-u, ali zbog mogucih grešaka ili nemogucnosti izvodenja pre-
porucljivo je provjeriti verzije u repozitorijima s izvornim kodom gdje su neke greške
koje se javljaju, najcešce ispravljene. Prilikom izrade ovog rada svi navedeni repozi-
toriji su se rucno prevodili jer su se gotovo za svaki do njih morale raditi korekcije. Za
detaljnija objašnjenja i adrese repozitorija korištenih u ovom radu vidi dodatak A.
Nakon uspješne instalacije svih paketa (ili uspješnog prevodenja ukoliko se koriste
repozitoriji s izvornim kodom) može se pokrenuti simulacija pozivanjem pokretacke
datoteke launch/simulation.launch iz repozitorija bci_visual_simuli. Ubrzo nakon pokre-
tanja simulacije otvara se Gazebo prozor (slika 5.6). U nastavku ce biti detaljnije
opisana upotreba pojedinih dijelova Object Manipulation cjevovoda (slika 5.5).
23
Slika 5.5: Object Manipulation cjevovod, izvor: Jerbic et al. (2013)
Slika 5.6: Simulacijsko okruženje
24
5.2.1. Segmentacija prostora, detekcija i prepoznavanje objekata
Na slici 5.7 prikazani su podaci dobiveni sa simuliranog Kinect senzora. Koordinatni
sustavi RGB slike (slika 5.7a) i oblaka tocaka (slika 5.7b) se poklapaju te nije potrebno
raditi nikakve transformacije. Iako ovdje oblaku tocaka nisu pridruženi podaci s RGB
kamere kao što je to opisano u poglavlju 5.1.1 to nikako ne utjece na daljne izvodenje
cjevovoda jer su takvi podaci koriste samo za bolju vizualizaciju, a u ovom slucaju se
bitni dijelovi scene mogu lako raspoznati.
Nakon pozivanja servisa za segmentaciju prostora (na slici 5.5 interpretator scene
(engl. Scene Interpretor)) stol i objekti su uspješno detektirani. Na slici 5.8 prikazan
je rezultat segmentacije scene gdje je tirkiznom bojom oznacen dio stola koji je vidljiv
u sceni, žutom estimirana površina stola te zelenom i crvenom objekti na stolu. Iako je
rezultat segmentacije zadovoljavajuci i objekti se nalaze u korištenoj „Household“ bazi
objekta, prepoznavanje segmentiranih objekata (na slici 5.5 registracija modela objekta
(engl. Object Model Registration)) je prošlo neuspješno. Naime vrijednost pouzdanosti
(engl. confidence) niti jednog vracenog modela, kao potencijalno odgovarajuceg, ne
odskace od ostalih te se ne može sa sigurnošcu zakljuciti je li objekt prepoznat ili nije.
Ovaj problem je detaljnije razmotren uvidom u izvorni kod cvora za prepoznavanje
Tabletop Object Recognition (Muja i Ciocarlie, 2013), ali uzrok nije pronaden.
Nakon što je scena uspješno segmentirana potrebno je popuniti mapu kolizija po-
mocu generatora mape kolizija (engl. Collision Map Generation). U ovom slucaju se
u mapu kolizija dodaje površina stola te svi segmentirani objekti zbog toga da se može
ispravno izvesti korak testiranja odnosno odabira hvata za željeni objekt.
5.2.2. Izlucivanje tocaka hvata i manipulacija objektima
Kao što je vec napomenuto u poglavlju 4 koristeci cjevovod Object Manipulation
moguce je koristiti dvije metode kao izvor tocaka hvata: za nepoznate i za poznate
objekte. Kao što se može vidjeti na slici cjevovoda (slika 5.5) da bi se odredile tocke
hvata za poznate objekte (engl. Grasp Planning for known objects) potrebno je pre-
poznati objekt i dohvatiti hvatove iz baze podatka. Iako algoritam za prepoznavanje
objekata nije uspješno prepoznao niti jedan objekt u simulaciji dipl. ing. Srecko Juric-
Kavelj je pomocu programa GraspIt! generirao desetak razlicitih hvatova posude za
teniske loptice za hvataljku korištenu u ovom radu (Schunk WSG-50). Tako generirani
hvatovi pokušali su se iskoristiti u simulaciji tako da su se poslali sustavu za testiranje
hvatova (na slici 5.5 odabir hvatova (engl. Grasp Selection)) bez obzira na rezultate
prepoznavanja, ali niti jedan hvat nije prošao testiranje kao valjan. Moguci razlozi su
25
(a) RGB slika
(b) Oblak tocaka
Slika 5.7: Prikaz podataka Kinect senzora tijekom simulacije
26
Slika 5.8: Rezultat segmentacije scene
taj što objekt nije prepoznat te tako ni njegov lokalni koordinatni sustav nije postavljen
u odgovaraci položaj i orijentaciju ili su unaprijed izluceni hvatovi doista neostvarivi u
ovom slucaju. Moguce riješenje problema je izlucivanje znacajno veceg broja hvatova
ili redefinicija tocaka kontakta hvataljke i objekta na temelju kojih se izlucuju hvatovi.
Ali oba navedena rješenja su vrlo složena i vremenski zahtjevna.
Drugi planer tocaka hvata za nepoznate odnosno neprepoznate objekte (engl. Grasp
Planning for unknown objects) koristi kao ulaz samo segmentirane klastere (slika 5.8)
iz cega estimira poziciju i oblik objekta. Ovaj planer prosjecno generira nekoliko
stotina razlicitih hvatova koji se zatim testiraju isto kao i hvatovi dohvaceni iz baze
objekata. Ovaj planer se pokazao boljim izborom, te se preporuca njegovo korištenje,
zbog toga što je s njim uspješno odreden adekvatan hvat te je nastavljeno izvršavanje
cjevovoda.
Za testiranje hvatova, u ovom radu, koristio se genericki modul za rješavanje prob-
lema inverzne kinematike koji se može naci u Smits (2013). Konacni odabir hvata bio
je na nacin da cim se nade prvi zadovoljavajuci (kojeg je moguce izvesti) prekida se
ispitivanje te se on koristi prilikom hvatanja objekta.
Nakon uspješno odredenog hvata pokrece se planiranje putanje te kada je ono us-
pješno izvedeno pokrece se izvodenje isplanirane putanje i hvata. Da bi se hvatanje
predmeta izvelo uspješno Object Manipulation cjevovod zahtjeva akciju za regulaciju
hvataljke. Pošto ova akcija ne postoji u originalnom repozitoriju s upravljackim pro-
gramima hvataljke WSG-50 (wsg50-ros-pkg repozitorij) ona je u sklopu ovog rada im-
plementirana te se može naci u verziji repozitorija navedenog u dodatku A. Iako u di-
jagramu na slici 5.5 stoji kako za uspješno izvodenje hvata (engl. Grasp Execution) je
potrebna taktilna povrtatna veza (engl. Tactile Feedback) ona prilikom simulacijskog
27
Slika 5.9: Hvatanje i podizanje predmeta u simuliranom okruženju
izvodenja nije nužna jer ne postoji opasnost od materijalnog oštecenja hvataljke ili
predmeta. Konacan rezultat uspješnog izvodenja hvatanja i podizanja predmeta po-
mocu Object Manipulation cjevovoda prikazan je na slici 5.9.
5.3. Segmentiranje i prepoznavanje objekata u stvarnom
okruženju
Metode segmentacije i prepoznavanja objekata isprobane su i u stvarnom okruženju. U
ovom slucaju koristila su se oba cjevovoda te razlicite implementirane metode. RGB
slika i oblak tocaka scene na kojoj su se isprobavali algoritmi prikazani su na slici 5.10.
Kao što se može vidjeti na sceni se nalazi dominantna površina (stol) s tri objekta ra-
zlicitih visina i oblika. U pozadini su namjerno ostavljeni objekti koji mogu uzrokovati
potencijalne smetnje tako da se može provjeriti robusnost metoda. Ova tri predmeta su
odabrana zbog toga što nisu prozirni te imaju teksturiranu površinu cime se omogucava
korištenje gotovo bilo koje metode koje se nalaze u ROS-u (vidi poglavlje 3).
5.3.1. Tabletop Object Detector
U sceni koja je služila za test ovog algoritma nije se nalazio niti jedan objekt iz „House-
hold“ baze zbog cega se algoritam za prepoznavanje objekata nije testrirao, ali se
ovo ne smatra nedostatkom s obzirom na rezultate dobivene u simuliranom okruženju
28
(a) RGB slika
(b) Oblak tocaka
Slika 5.10: Prikaz podataka Kinect senzora sa stvarne scene29
Slika 5.11: Rezultat segmentacije scene
(poglavlje 5.2.1). Kao što je receno i pokazano ranije, za manipulaciju objektima nije
nužno prepoznati objekt nego ga je dovoljno segmentirati iz oblaka tocaka prostora i
prikazati kao klaster tocaka. To je ucinjeno i ovdje, na stvarnoj sceni, cime se algoritam
za segmentaciju Tabletop Object Detector cjevovoda pokazao vrlo pouzdanim. Rezul-
tat segmentacije prikazan je na slici 5.11 gdje je tirkiznom bojom oznacen rub vidljive
površine stola, žutom estimirana površina stola te ostalim bojama segmentirani klasteri
objekata. Iako se, u okviru ovoga, rada nije radilo ništa sa stvarnom robotskom rukom
svejedno su se, u testne svrhe, odredile tocke hvata za segmentirane klastere cime se
napravio korak bliže buducoj upotrebi stvarne ruke za manipulaciju predmetima1.
5.3.2. Object Recognition Kitchen (ORK)
Instalacija ORK sustava je takoder provedena iz izvornog koda koji je dohvacen iz
službenih repozitorija ciji se popis može naci na službenim stranicama projekta (Wil-
low Garage, 2013b). Pri tome treba paziti da ovi paketi koriste novi sustav prevodenja
izvornog koda u ROS-u koji se naziva catkin2. Ukoliko su unaprijed instalirani svi
paketi o kojima ovisi ovaj sustav tada bi prevodenje trebalo proci bez problema.
Prepoznavanje objekata pomocu ORK sustava omogucuje korištenje nekoliko metoda
za koje prvo objekti trebaju biti snimljeni i dodani u bazu objekata jer ovaj sustav
1Samo pokretanje stvarne ruke i hvataljke pomocu Object Manipulation cjevovoda je vrlo dugotrajan
proces zbog mnoštva parametara koje treba postaviti i provjeriti te zbog vremenskog ogranicenja to nije
ostvareno. Takoder, upotreba stvarne ruke i hvataljke zahtjeva i mnogo više vremena zbog sigurnosnih
razloga.2Za razliku od repozitorija navedenih u dodatku A koji još uvijek koriste rosbuild sustav prevodenja.
30
Slika 5.12: Tockasti uzorak za snimanje podataka
ne dolazi s unaprijed popunjenom bazom, ali je zato snimanje iznimno lako. Nakon
snimanja željenih objekta oni se treniraju željenim metodama pri cemu se odreduju
njihove znacajke te je sustav tek tada spreman za upotrebu. U slijedecih nekoliko pod-
poglavlja opisana su iskustva upotrebe ovog sustava te ce se navesti problemi, i neka
rješenja, koji su se pojavili tijekom upotrebe.
U svrhu rada s ORK sustavom napravljen je repozitorij ork_ros u kojem su imple-
mentirane konfiguracijske i pokretacke datoteke (vidi dodatak A).
Snimanje objekata ORK sustavom
Snimanje objekata ORK sustavom, za razliku od snimanja objekata za „Household“
bazu, je vrlo jednostavno i za to se koristi Caputure paket ORK sustava (Willow Garage,
2013c). Prilikom snimanja potrebno je koristiti neki teksturirani uzorak kao podlogu
kako bi se snimani objekt mogao postaviti u lokalni koordinatni sustav te mu se odredi-
ti velicina. Za to je moguce koristiti više razlicitih standardnih uzoraka preporucenih
u dokumentaciji, ali cak i proizvoljnu, teksturiranu, ravnu površinu. U ovom radu
korišten je tockasti uzorak (engl. Dot Pattern) (slika 5.12) koji je postavljen na ravnu
podloga s mogucnošcu rotacije od 360◦ što je nužno da bi se predmet kvalitetno snimio
iz što je moguce više pogleda.
Snimanje se provodi tako da se objekt stavi na oznaceno mjesto na sredini tockas-
tog uzorka te se pokrene i izvrši snimanje prema uputama u Willow Garage (2013c).
Nakon pokretanja snimanja otvaraju se dva prozora (slika 5.13) na kojima je prikazan
objekt s prepoznatim uzorkom i lokalnim koordinatnim sustavom (slika 5.13a) i maska
na temelju koje se izdvaja sam objekt od ostatka scene (slika 5.13b). Važno je uociti
31
da se maska na slici 5.13b ne poklapa savršeno s objektom (postoji pomak u lijevo),
a uzrok tome je neprecizno definirana transformacija izmedu RGB kamere i kamere
dubine3 u samom upravljackom programu na koji se ovaj sustav izravno spaja. Iako
se nekoliko puta pokušalo pronaci i prilagoditi transformacijske matrice u OpenNI up-
ravljackom programu, do završetka ovog rada nije pronadeno adekvatno rješenje.
3Ovaj problem je spomenut i u odjeljku 5.1.1
32
(a) RGB slika s prepoznatim uzorkom i koordinatnim sustavom objekta
(b) Maska na temelju koja izdvaja sam objekt
Slika 5.13: Prozori pri snimanju objekata ORK sustavom
U okviru ovog rada snimljeno je, i dodano u bazu, pet objekata koji su prikazani na
slici 5.14. Objekti su odabrani tako da ih ima s teksturiranom (slike 5.14b 5.14c 5.14e
33
5.14d), neteksturiranom (slika 5.14a) površinom te da su znacajno razlicite velicine.
Za sve ove objekte izgenerirana je i mreža (engl. mesh) pomocu alata Reconstruction
(Willow Garage, 2013f) koja je dodana u bazu. Generirana mreža vrlo grubo opisuje
objekt, ali dovoljno precizno da može služiti kao ulaz u algoritam za izlucivanje tocaka
hvata. Kada se govori o objektima u bazi podataka važno je napomenuti i da postoji
ROS cvor koji implementira servis za dohvacanje podataka o svakom pojedinom ob-
jektu, ali tijekom ovog rada nije niti jednom uspio dohvatiti informacije o objektu iz
baze nego je uvijek vracao pogrešku.
Najveci problem kod snimanja objekata bilo je rušenje programa na operacijskom
sustavu za 32-bitnu arhitekturu kada bi tockasti uzorak bio pronaden. Do kraja pisanja
ovog rada uzrok nije pronaden iako se sumnja na OpenCV biblioteku (Itseez, 2013)
koja se koristi za detekciju i prikaz uzorka na slici. Problem je otklonjen tako da
je instalirana 64-bitna verzija operacijskog sustava na kojem je i obavljen prethodno
opisani postupak snimanja.
Treniranje objekata ORK sustavom
Kao što je vec nekoliko puta navedeno, da bi algoritmi implementirani u ORK sus-
tavu funkcionirali vrlo je važan korak treniranja objekata odnosno odredivanja nji-
hovih specificnih znacajki na temelju kojih ce se izvršavati prepoznavanje. U okviru
ovog rada uspješno je trenirano svih pet objekata dodanih u bazu i to za LINE-MOD
i TOD metode. Detaljno razmatranje ovih metoda dano je u poglavlju 3.2, a upute o
pokretanju i konfiguriranju treninga se mogu naci u Willow Garage (2013j). Za Table-
top metodu nije potrebno provesti trening jer ona koristi vec popunjenu „Household“
bazu objekata.
Jedan od problema kod ovog koraka bilo je rušenje treninga LINE-MOD metode s
obavijesti Ilegal instruction. Uzrok problema bio je u PCL biblioteci (PCL, 2013) koja
je prevodena na procesorskoj arhitekturi koja podržava neke naprednije procesorske
naredbe za razliku od one koja se koristila u okviru ovog rada. Detaljnije o problemu
i njegovom rješenju može se naci na slijedecoj poveznici: https://code.ros.
org/lurker/message/20130411.082133.f1e7a1c0.en.html. Slijedeci
problem nastao je zbog korištenja vlasnickog (engl. proprietary) upravljackog pro-
grama za graficku karticu te se tijekom izvodenja nije mogla naci jedna od biblioteka
koja se koristi za generiranje razlicitih pogleda na objekt za treninranje LINE-MOD
metode. Problem je riješen instalacijom upravljackih programa otvorenog koda.
34
(a) Šalica za kavu (b) Jogurt od jagode
(c) Kutija Kinect senzora (d) Sok od jabuke
(e) Dezodorans FA
Slika 5.14: Objekti snimljeni ORK sustavom35
Prepoznavanje objekata ORK sustavom
U okviru ovoga rada isprobani su LINE-MOD, TOD i Tabletop metode za prepozna-
vanje ORK sustavom. Važno je napomenuti da se za to koristile najnovije verzije iz
repozitorija izvornog koda u kojima su popravljene neke vrlo bitne pogreške koje su
ranije sprijecavale izvodenje. Za svaku od navednih metoda napravljene su konfigu-
racijske datoteke koje se mogu naci u repozitoriju ork_fer.
LINE-MOD metoda se pokazala ne toliko robusnom i pouzdanom kao što je pred-
stavljena u izvornom radu (Hinterstoisser et al., 2011) jer se javljalo mnogo lažnih
detekcija cak i kada se niti jedan objekt nije nalazio na sceni. Uzrok tome može biti
nacin generiranja trening podataka za što se koristi alat Renderer (Willow Garage,
2013g). Tijekom izvodenja je zapaženo da LINE-MOD metoda cesto detektira objekte
manjih dimenzija, kao što je na primjer jogurt (slika 3.2), kao dio nekog veceg objekta
kao na primjer sok od jabuke 3.2.
Implementacija Tabletop metode se nije pokazala toliko kvalitetnom kao u Object
Manipulation cjevovodu jer u niti jednom pokušaju korak segmentacije nije uspješno
proveden, dakle nije izlucen stol pa stoga ni objekti iz scene. Razlog tome nije poznat,
ali je moguce da neki od parametara nisu bili adekvatno postavljeni kao u slucaju
korištenja Tabletop Object Detector paketa.
TOD metoda, kao ni prve dvije metode, se nije pokazala uspješnom i pouzdanom
pri prepoznavanju objekata. Ova metoda je najcešce vracala kao rezultat neki od vecih
objekata iz baze (npr. sok od jabuke ili kutiju Kinect senzora), a ostale objekte uopce
nije uspjela detektirati. Jedan od mogucih razloga je mala rezolucija korištenog sen-
zora koja iznosi 640×480 piksela (VGA razolucija) jer se u primjerima dokumentacije
koristi Kinect senzor s rezolucijom 1024× 768 piksela (XGA).
Iako ORK sustav obecava svojom arhitekturom i fleksibilnošcu rezultati dobiveni
njime su razocaravajuci. Ali je važno spomenuti da u okviru ovog rada nije provedeno
ekstenzivno konfiguriranje i namješanje parametara za svaki pojedini korak i svaku
pojedinu metodu, te takoder treba uzeti u obzir da je to vrlo mlad sustav koji se in-
tenzivno razvija te je za ocekivati vecu stabilnost i pouzdanost u buducnosti. Moguca
poboljšanja ovdje korištenih metoda su kroz podešavanje parametara svakog pojedinog
algoritma, ali i koraka snimanja, treninga i detekcije. Takoder bi bilo dobro koristiti
metode detekcije objekata (kao na primjer cvor za segmentaciju u Tabletop Object
Recognition paketu) cime bi se djelovanje algoritama moglo ograniciti samo na po-
drucja gdje se nalaze objekte, a valjalo bi i bolje definirati transformaciju izmedu ko-
ordinatnih sustava RGB kamere i kamere dubine u OpenNI upravljackom programu.
36
6. Generiranje podražaja za suceljemozak-racunalo
Zadatak sucelja mozak-racunalo detekcija je specificnih uzoraka u elektricnoj aktivnosti
mozga te njihovo korištenje za upravljanje racunalima i drugim uredajima. Za ovu
primjenu koristi se više razlicitih uzoraka elektricne aktivnosti mozga i neki od naj-
popularnijih su stacionarni vizualno pobudeni potencijali (engl. Stady-state visual evoked
potentials (SSVEPs)), P300 val (engl. P300 wave) i promjene u oscilacijama neu-
ronskih signala tijekom izvršavanje mentalnih zadaca (npr. zamišljanje motorickih
pokreta).
Stacionarni vizualno pobudeni potencijali javljaju se prilikom elektroencefalografije
(EEG) kada je osobi predocen slijed vizualnih pobuda (Byczuk et al. (2012)). U
praksi se koristi više razlicitih nacina generiranja SSVEP stimulacija. Jedan od naj-
cešcih nacina korištenja je prekrivanje objekata šahovnicom koja izmjenjuje crna i
bijela (prozirna) polja (slika 6.1), a drugi korištenje LE diododa koje se pale i gase
odredenom frekvencijom. SSVEP metoda za pobudu najcešce koristi frekvencije u
rasponu od 5 do 35 Hz, pri cemu je važno za svaku osobu odrediti frekvencije na koje
najbolje „reagira“ (Jerbic et al., 2013).
Slika 6.1: SSVEP stimulacija sa šahovnicom, izvor: internet
37
Druga popularna metoda, P300 val, je komponenta elektricnog potencijala mozga
povezana s dogadajem (engl. Event-related brain potential (ERP)), a manifestira se kao
nadvišenje u EEG-u koji ima maksimum otprilike 300 ms nakon rijetkog i znacajnog
podražaja. Najcešce korištena paradigma koja koristi P300 za BCI je P300 matrica
slova (engl. P300 matrix speller) koju su predstavili Farwell i Donchin (1988). U
ovoj paradigmi korisniku je predocena matrica sa 36 simbola (slika 6.2) te ga se up-
ucuje da se fokusira na jedan od simbola. Tada se naizmjence pale redci i stupci te
se istovremeno obraduje EEG signal u potrazi za P300 valom koji se javlja kada upali
redak odnosno stupac u kojem se nalazi fokusirani simbol. Zbog postizanja robusnosti
pokus se ponavlja nekoliko puta.
Slika 6.2: P300 matrica slova, izvor: internet
U okviru ovog rada napravljena su dva ROS cvora u svrhu generiranja podražaja
za BCI. Jedan od njih je generator SSVEP podražaja tako da preklapa detektirane ob-
jekte obojanim kvadratima, a drugi izrezuje detektirane objekte iz RGB slike te ih
raspodjeljuje po ekranu tako da je uz njih, na rub ekrana, moguce postaviti LE diode
za generiranje podražaja.
38
6.1. ROS cvor: generator SSVEP podražaja nad pred-
metima u sceni
Generator SSVEP podražaja nad predmetima u sceni prototipni je cvor za generiranje
podražaja za sucelje mozak-racunalo. Kod pozivanja cvora moraju se predati slijedeci
parametri i teme:
Registracija dubine parametar tipa boolean koji oznacava da li je ili nije ukljucena
registracija dubine.
RGB slika tema na kojoj se objavljuje slika s RGB kamere senzora.
Informacije o RGB kameri tema na kojoj se objavljuju parametri RGB kamere.
Oznake segmentacije tema na kojoj se objavljuju oznake segmentiranih objekata.
Ovaj cvor radi tako da pozove servis za segmentaciju scene iz Tabletop Object
Recognition paketa koji vraca segmentirane objekte u obliku oznaka (engl. markers)
koji se tada, ukoliko je potrebno (ovisi o parametru za registraciju dubine), transformi-
raju u koordinatni sustav RGB slike te se izracunava kvadrat koji prekriva svaki po-
jedini objekt. Na slici 6.3 prikazano je sucelje generatora SSVEP podražaja. Pošto
je ovo prototipna verzija sucelja postavljeni su samo obojani kvadrati iznad segmen-
tiranih objekata, a ne šahovnica kao što je to uobicajeno. Takoder se i ovdje može
uociti mali pomak kvadrata u odnosu na položaj objekata, a razlog tome je nesavršena
definicija transformacije izmedu koordinatnih sustava dvaju kamera.
Najveci problem kod korištenja SSVEP podražaja sa zaslona racunala je stalnost
frekvencije koju je teško postici bez izravnog pristupa sklopovlju graficke kartice, zbog
toga je odluceno koristiti LE diode za pobudu. Takoder se iz daljnjih konzultacija s
kolegama koji se bave obradom EEG signala, dodatno saznalo se da podražaji moraju
biti udaljeni na ekranu zbog interferencija te je odluceno da se koristi scena s maksi-
malno tri objekta koji ce biti što je moguce više udaljeni na ekranu. Zbog navedenih
zahtjeva napušten je daljnji razvoj ovog cvora te je implementiran novi cvor koji je
prezentiran u nastavku.
6.2. ROS cvor: prikaz detektiranih objekata
Nakon prve verzije generatora SSVEP podražaja (slika 6.1) odustalo se od generiranja
podražaja izravno na zaslonu racunala te je odluceno da ce oni biti generirani pomocu
39
Slika 6.3: Generator SSVEP podražaja nad predmetima
LE dioda koje ce biti pricvršcene na rub zaslona racunala. Za tu svrhu trebalo je odred-
iti podrucja RGB slike na kojima se nalaze objekti, što je ucinjeno kao i kod prethodnog
cvora, te ih izrezati i rasporediti na zaslonu tako da budu maksimalno udaljeni jedan
od drugoga. Za razliku od prethodnog ovaj cvor implementira servis kojemu se kod
pokretanja predaju slijedeci parametri i teme da bi ispravno funkcionirao:
Ime servisa odabir naziva servisa kojim ce se pokrenuti izrezivanje objekata iz RGB
slike te ih naposljetku i prikazati.
RGB slika tema na kojoj se objavljuje slika s RGB kamere.
Informacije o RGB kameri tema na kojoj se objavljuju parametri RGB kamere.
Simulation zastavica koja oznacava da li je pokrenuta simulacija ili se koriste podaci
sa stvarnog senzora. Ovo se koristi zbog toga što se mora koristiti drugacija
transformacija oblaka tocaka ako se koristi simulacija u odnosu na stvarni senzor.
Ovaj cvor je nešto napredniji od prethodnog te mu se podaci predaju preko poziva
servisa cija definicija se može vidjeti u bloku 6.1. Kao što je vidljivo iz definicije
servisa cvor koristi segmentirane klastere iz oblaka tocaka koji se tada transformiraju
40
Slika 6.4: Sucelje za prikaz izlucenih objekata
u tocke na RGB slici na temelju cega se izrezuju objekti iz slike. Tako izrezani objekti
slažu se na zaslon racunala kao što je prikazano na slici sucelja (slika 6.4). Trenutno
sucelje može prikazati do najviše tri objekta u jednom trenutku, ako bi se u sceni
nalazilo više od tri objekta tada bi jedna pozicija na sucelju mogla imati ulogu „gumba“
na slijedeci zaslon s objektima.
Listing6.1 Definicija servisa za izlucivanje objekata iz RGB slike
# l i s t o f p o i n t c l o u d c l u s t e r s
senso r_msgs / P o i n t C l o u d [ ] c l u s t e r s
−−−boo l s u c c e s s f u l l
41
7. Manipulacija objektima pomocusucelja mozak-racunalo
U prethodnim poglavljima detaljno su opisane metode za prepoznavanje i manipu-
laciju objektima te cvorovi za generiranje podražaja odnosno prikaz objekata na sceni
za sucelje mozak-racunalo. U ovom poglavlju opisuje se osnovna ideja ovog rada te
mogucnost njezinog ostvarenja na temelju ovdje predstavljenih metoda i BCI cvorova.
Osnovna ideja upotrebe sustava za manipulaciju s BCI sustavom je pomoc ljudima
s invaliditetom pomocu mobilnog robota (Chen et al., 2013) ili modificiranih invalid-
skih kolica (Jerbic et al., 2013). Oba ova istraživanja bave se intenzivno problematikom
komunikacijskog sucelja te predlažu razlicita rješenja. U Jerbic et al. (2013) predlaže
se BC sucelje implementirano u sklopu ovog rada, a ideja cijelog sustava prikazan je
na slici 7.1. Brojevi na slici odnose se na slijedece dijelove sustava: (1) LCD ekran
koji prikazuje BCI sucelje sa slike 6.4 i LE diodama na rubovima za generiranje po-
dražaja, (2) senzorski cvorovi za snimanje EEG signala te predajnik za unutar-tijelesnu
komunikaciju (engl. Intrabody Communication (IBC) Transmitter), (3) primatelj IBC
komunikacije sa suceljem na (4) sustav za procesiranje EEG signala te (5) robotska
ruka za manipulaciju odabranim objektom.
U ovom radu prezentiran je jedan veliki dio nužan za izgradnju sustava predloženog
u Jerbic et al. (2013), a to je prepoznavanje, prikaz te manipulacija objektima. Za
zatvaranje kompletnog kruga još nedostaje cvor za procesiranje EEG signala unutar
ROS-a koji bi sustavu za manipulaciju proslijedio poruku o odabranom objektu.
42
Slika 7.1: Prijedlog upotrebe BCI sustava za pomoc pri manipulaciji osobama s invaliditetom,
izvor: Jerbic et al. (2013)
43
8. Zakljucak
U ovom radu prezentirane su i testirane metode za prepoznavanje objekata na ravnoj
podlozi i izlucivanje tocaka hvata implementirane u programskom sustavu ROS. Metode
su testirane u simulacijskom i stvarnom okruženju uz korištenje Microsoft Xbox 360
Kinect senzora te Schunk Powerball robotske ruke sa Schunk WSG-50 hvataljkom. Uz
to implementirana su dva cvora za prikaz detektiranih objekata na sceni u svrhu generi-
ranja podražaja za sucelje mozak-racunalo i regulator hvata za hvataljku Schunk WSG-
50.
Rezultati dobiveni metodama za prepoznavanje objekata su razocaravajuci jer se
niti jedna od cetiri testirane metode nije pokazala dovoljno pouzdanom za prepozna-
vanje. Bez obzira na to uspješno je izlucen hvat i ostvareno podizanje objekta u sim-
ulacijskom okruženju, a sve na temelju kvalitetnog cvora Tabletop Segmentation za
izdvajanje klastera tocaka za svaki objekt na sceni. Takoder je važno napomenuti da se
i novo-implementirani cvorovi temelje na ovoj segmentaciji na temelju koje odreduju
površinu koju objekt zauzima na RGB slici.
Uz to ovaj rad može poslužiti kao pocetna tocka za svakoga koga zanima prepoz-
navanje i manipulacija objekata u programskom sustavu ROS jer nudi iscrpan pregled
mogucnosti i smjernica kako koristiti postojece sustave.
44
LITERATURA
Ros: Openni Launch Tutorials: Quickstart: Registration: matching depth to
color, 2012. URL http://www.ros.org/wiki/openni_launch/
Tutorials/QuickStart#Registration:_matching_depth_to_
color. 18
Pcl - Point Cloud Library, 6 2013. URL http://pointclouds.org. 6, 34
P. J. Besl i H. D. Mckay. A method for registration of 3-D shapes. Pattern Analysis and
Machine Intelligence, IEEE Transactions on, 14(2):239–256, 1992. URL http:
//ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=121791. 9
Gary Bradski i Adrian Kaehler. Learning OpenCV. O’Reilly Media Inc., 2008. URL
http://oreilly.com/catalog/9780596516130. 6
Gilles Burel i Hugues Henocq. 3d invariants and their application to object recognition.
45(1), 7 1995. 4
M. Byczuk, P. Poryzała, i A. Materka. On diversity within operators’ EEG responses
to LED-produced alternate stimulus in SSVEP BCI. 2012. 37
Tiffany Chen, Matei Ciocarlie, Steve Cousins, Phillip M. Grice, Kelsey Hawkins,
Kaijen Hsiao, Charlie Kemp, Chih-Hung King, Daniel Lazewatsky, Adam Eric
Leeper, Hai Nguyen, Andreas Paepcke, Caroline Pantofaru, William Smart, i
Leila Takayama. Robots for Humanity: A Case Study in Assistive Mobile Ma-
nipulation. IEEE Robotics & Automation Magazine, Special issue on Assis-
tive Robotics, 20, 2013. URL http://www.willowgarage.com/sites/
default/files/Chen_RFH_ram_2013.pdf. 3, 42
Yizong Cheng. Mean Shift, Mode Seeking, and Clustering. IEEE Transactions on
Pattern Analysis and Machine Intelligence, 17(8):790–799, 1995. doi: http://dx.doi.
org/10.1109/34.400568. 5
45
Sachin Chitta. PR2 Kinematics, 2013. URL http://www.ros.org/wiki/pr2_
kinematics. 15
Matei Ciocarlie. Household Objects Database, 2012. URL http://www.ros.
org/wiki/household_objects_database. 14, 15, 22
Matei Ciocarlie. Tabletop Collision Map Processing, 2013. URL http://www.
ros.org/wiki/tabletop_collision_map_processing. 15, 16
Matei Ciocarlie i Kaijen Hsiao. Object Manipulation, 2012. URL http://www.
ros.org/wiki/object_manipulation. 14, 53
Matei Ciocarlie i Kaijen Hsiao. Object Manipulator, 2013. URL http://www.
ros.org/wiki/object_manipulator. 16
Matei Ciocarlie, Kaijen Hsiao, E. Gil Jones, Sachin Chitta, Radu Bogdan Rusu, i
Ioan Alexandru Sucan. Towards reliable grasping and manipulation in household
environments. New Delhi, India, 12 2010. 6, 8, 14, 16
Alvaro Collet Romea, Dmitry Berenson, Siddhartha Srinivasa, i David Ferguson. Ob-
ject recognition and full pose registration from a single image for robotic manipu-
lation. U IEEE International Conference on Robotics and Automation (ICRA ’09),
May 2009. 5
Jennifer L Collinger, Brian Wodlinger, John E Downey, Wei Wang, Elizabeth C Tyler-
Kabara, Douglas J Weber, Angus Jc McMorland, Meel Velliste, Michael L Boninger,
i Andrew B Schwartz. High-performance neuroprosthetic control by an individual
with tetraplegia. The Lancet, 6736(12):1–8, 12 2012. ISSN 01406736. doi: 10.
1016/S0140-6736(12)61816-9. 1
Ioan A. Sucan, Mark Moll, i Lydia E. Kavraki. The Open Motion Planning Library.
IEEE Robotics & Automation Magazine, 19(4):72–82, December 2012. doi: 10.
1109/MRA.2012.2205651. http://ompl.kavrakilab.org. 16
Mehmet Dogar, Kaijen Hsiao, Matei Ciocarlie, i Siddhartha Srinivasa. Physics-based
grasp planning through clutter. U Robotics: Science and Systems (RSS), 2012. URL
http://www.roboticsproceedings.org/rss08/p08.pdf. 5
Lawrence Ashley Farwell i Emanuel Donchin. Talking off the top of your head: toward
a mental prosthesis utilizing event-related brain potentials. Electroencephalography
and clinical Neurophysiology, 70(6):510–523, 1988. 38
46
Martin A. Fischler i Robert C. Bolles. Random sample consensus: A paradigm for
model fitting with applications to image analysis and automated cartography. Tech-
nical Report 213, AI Center, SRI International, 333 Ravenswood Ave., Menlo Park,
CA 94025, Mar 1980. 5
Timothy Gatzke, Cindy Grimm, Michael Garland, i Steve Zelinka. Curvature maps
for local shape comparison. U In Shape Modeling International, stranice 244–256,
2005. 4
Jared Glover, Gary Bradski, i Radu Bogdan Rusu. Bingham mixture models of quater-
nions for object orientation estimation. U Robotics Science and Systems (RSS), Los
Angeles, CA, USA, 07/2011 2011. 5
Corey Goldfeder, Matei Ciocarlie, Hao Dang, Jaime Peretzman, i Peter Allen. Data-
driven grasping with partial sensor data. U IROS, St. Louis, MO, 10/2009 2009.
5
S. Hinterstoisser, S. Benhimane, i N. Navab. N3m: Natural 3d markers for real-time
object detection and pose estimation. 2007. 4
S. Hinterstoisser, V. Lepetit, S. Ilic, P. Fua, i N. Navab. Dominant orientation templates
for real-time detection of texture-less objects. 2010. 4
S. Hinterstoisser, C. Cagniart, S. Ilic, P. Sturm, N. Navab, P. Fua, i V. Lepetit. Gradient
response maps for real-time detection of texture-less objects. IEEE Transactions on
Pattern Analysis and Machine Intelligence, 2012a. 12
S. Hinterstoisser, V. Lepetit, S. Ilic, S. Holzer, G. Bradski, K. Konolige, , i N. Navab.
Model based training, detection and pose estimation of texture-less 3d objects in
heavily cluttered scenes. 2012b. 4
S. Hinterstoisser, S. Holzer, C. Cagniart, S. Ilic, K. Konolige, N. Navab, i V. Lep-
etit. Multimodal templates for real-time detection of texture-less objects in heavily
cluttered scenes. 2011. vi, 1, 3, 4, 11, 12, 36
Dirk Holz, Stefan Holzer, Radu Bogdan Rusu, i Sven Behnke. Real-time plane seg-
mentation using rgb-d cameras. U RoboCup Symposium, 2011 2011. 5
S. Holzer, S. Hinterstoisser, S. Ilic, i N. Navab. Distance transform templates for object
detection and pose estimation. 2009. 4
47
Andrew Howard, Nate Koenig, John Hsu, i Mihai Dolha. Gazebo, 6 2013. URL
http://gazebosim.org/about.html. 22
Kaijen Hsiao. PR2 Gripper Grasp Planner Cluster, 2012. URL http://www.ros.
org/wiki/pr2_gripper_grasp_planner_cluster. 15
Kaijen Hsiao i Matei Ciocarlie. PR2 Object Manipulation, 2012. URL http://
www.ros.org/wiki/pr2_object_manipulation. 15, 54
Kaijen Hsiao, Sachin Chitta, Matei Ciocarlie, i E. Gil Jones. Contact-reactive grasping
of objects with partial shape information. IROS, 10 2010. 15
John Hsu. Simulator gazebo, 2013. URL http://www.ros.org/wiki/
simulator_gazebo. 22
Itseez. Open computer vision library, 2013. URL http://opencv.org. 6, 11, 34
Ana Branka Jerbic, Željka Lucev, Srecko Juric-Kavelj, Filip Melinšcak, Josip Loncar,
Denis Štogl, Mario Cifrek, i Ivan Petrovic. Concept of an intrabody networked
brain-computer interface controlled assistive robotic system. Submited for RAAD
2013, 2013. vi, 16, 24, 37, 42, 43
Andrew E. Johnson i Martial Hebert. Using spin images for efficient object recogni-
tion in cluttered 3d scenes. IEEE TRANSACTIONS ON PATTERN ANALYSIS AND
MACHINE INTELLIGENCE, 21(5):433–449, 1999. 4
E. Gil Jones. Arm Navigation, 2013. URL http://www.ros.org/wiki/arm_
navigation. 14, 53
Ulrich Klank, Dejan Pangercic, Radu Bogdan Rusu, i Michael Beetz. Real-time
cad model matching for mobile manipulation and grasping. U The 9th IEEE-
RAS International Conference on Humanoid Robots (Humanoids), Paris, France,
12/2009 2009. URL http://files.rbrusu.com/publications/
Klank09Humanoids.pdf. 3, 4
Ilya Lysenkov, victor Eruhimov, i Gary Bradski. Recognition and pose estimation of
rigid transparent objects with a kinect sensor. U Proceedings of Robotics: Science
and Systems, Sydney, Australia, 7 2012. 13, 20
48
Dennis J McFarland, William A. Sarnacki, i Jonathan R. Wolpaw. Electroencephalo-
graphic (EEG) control of three-dimensional movement. Journal of neural engineer-
ing, 7(3):036007, Lipanj 2010. ISSN 1741-2552. doi: 10.1088/1741-2560/7/3/
036007. 1
Patrick Mihelich i Julius Kammerl. Openni Launch, 2013. URL http://ros.
org/wiki/openni_launch. 18
Patrick Mihelich, Suat Gedikli, Radu Bogdan Rusu, i Julius Kammerl. Openni Camera,
2013. URL http://ros.org/wiki/openni_camera. 18
Marius Muja i Matei Ciocarlie. Tabletop object detector, 2013. URL http://www.
ros.org/wiki/tabletop_object_detector/. 1, 8, 9, 25
Marius Muja, Radu Bogdan Rusu, Gary Bradski, i David Lowe. Rein
- a fast, robust, scalable recognition infrastructure. U ICRA, Shanghai,
China, 09/2011 2011. URL https://www.willowgarage.com/sites/
default/files/icra11.pdf. 5
Marius Muja, Radu Bogdan Rusu, Gary Bradski, i David Lowe. REcognition INfras-
tructure (rein), 2013. URL http://www.ros.org/wiki/rein. 5, 8
M. Quigley i Inc. Willow Garage. Ros - Robot Operating System, 2013. URL http:
//ros.org. 7
Columbia University Robotics Lab, Computer Science Department. Graspit!, 2013.
URL http://www.cs.columbia.edu/~cmatei/graspit/. 15
E. Rublee, T. Straszheim, i V. Rabaud. Object recognition, 2013. URL http://
www.ros.org/wiki/object_recognition. 8
Radu Bogdan Rusu i Steve Cousins. 3d is here: Point Cloud Library (PCL). U In-
ternational Conference on Robotics and Automation, Shanghai, China, 2011 2011.
6
Radu Bogdan Rusu, Nico Blodow, i Michael Beetz. Fast point feature histograms
(fpfh) for 3d registration. U The IEEE International Conference on Robotics and Au-
tomation (ICRA), Kobe, Japan, 05/2009 2009a. URL http://files.rbrusu.
com/publications/Rusu09ICRA.pdf. 4
Radu Bogdan Rusu, Andreas Holzbach, Michael Beetz, i Gary Bradski. Detecting and
segmenting objects for mobile manipulation. U ICCV, S3DV Workshop, 2009b. 4
49
Radu Bogdan Rusu, Eddie Cohen, Tomoto Shimizu Washio, Matt Bell, Eray Berger, i
Robert Wang. Openni: The standard framework for 3d sensing, 2013. URL http:
//www.openni.org/. 18
SCHUNK GmbH & Co. KG. Powerball lightweight arm lwa 4.6 6-axes-lightweight
roboter for mobile handling, 6 2013. URL http://www.schunk.com/
schunk/schunk_websites/products/latest_products_detail.
html?article_id=21200&country=INT&lng... 20
R. Smits. KDL: Kinematics and Dynamics Library. http://www.orocos.org/
kdl, 2013. 15, 16, 27
Ioan A. Sucan i Sachin Chitta. Moveit!, 2013. URL http://moveit.ros.org/
wiki/MoveIt! 14
Inc. Willow Garage. Ecto - A C++/Python Computation Graph Framework, 2013a.
URL http://plasmodic.github.io/ecto/. 5, 10
Inc. Willow Garage. Object Recognition Kitchen, 2013b. URL http://
wg-perception.github.io/object_recognition_core/. 30
Inc. Willow Garage. Object recognition kitchen: Capture, 2013c. URL http://
wg-perception.github.io/capture/index.html#ork-capture.
10, 11, 31
Inc. Willow Garage. Object recognition kitchen: Object recognition using line-mod,
2013d. URL http://wg-perception.github.com/linemod/index.
html#line-mod. 11
Inc. Willow Garage. Object recognition kitchen: Ros integration, 2013e. URL
http://wg-perception.github.io/object_recognition_ros/
index.html#ros. 10
Inc. Willow Garage. Object Recognition Kitchen: Reconstruction, 2013f. URL
http://wg-perception.github.io/reconstruction/index.
html#reconstruction. 10, 34
Inc. Willow Garage. Object recognition kitchen: Random view generator, 6
2013g. URL http://wg-perception.github.io/ork_renderer/
index.html#renderer. 11, 36
50
Inc. Willow Garage. Object recognition kitchen: Textured object detection,
6 2013h. URL http://wg-perception.github.com/tod/index.
html#tod. 1, 13
Inc. Willow Garage. Object recognition kitchen: Tabletop object recognition, 6
2013i. URL http://wg-perception.github.com/tabletop/index.
html#tabletop. 12
Inc. Willow Garage. Object recognition kitchen: Training, 2013j. URL
http://wg-perception.github.io/object_recognition_core/
training/training.html#training. 34
Inc. Willow Garage. Object recognition kitchen: Recognition of transparent objects,
6 2013k. URL http://wg-perception.github.com/transparent_
objects/index.html#transparent-objects. 13
51
Detekcija i prepoznavanje objekata u svrhu izlucivanja tocaka hvata igeneriranja podražaja za sucelje mozak-racunalo
Sažetak
U ovom radu prezentirane su i testirane metode za prepoznavanje objekata na
ravnoj podlozi i izlucivanje tocaka hvata implementirane u programskom sustavu ROS.
Metode su testirane u simulacijskom i stvarnom okruženju za što je manipulacijski
cjevovod prilagoden korištenoj opremi. Naposlijetku je uspješno izvršeno hvatanje i
podizanje objekta u simulacijskom okruženju temeljeno na algoritmu za detekciju ob-
jekata i online metodi za izlucivanje tocaka hvata. Uz to implementirana su dva ROS
cvora za prikaz objekata na sceni u svrhu generiranja podražaja za BCI te je pred-
ložena mogucnost korištenja manipulacije objekata i novoimplementiranih sucelja u
istom sustavu.
Kljucne rijeci: detekcija objekta, prepoznavanje objekta, segmentacija scene, izluci-
vanje tocaka hvata, manipulacija objektima, sucelje mozak-racunalo, podražaji za sucelje
mozak-racunalo, operacijski sustav za robote (ROS)
Object detection and recognition for grasping point extraction and excitationgeneration for brain-computer interface paradigm
Abstract
In this work are presented and tested methods for object recognition on flat surface
and methods for grasping point extraction implemented in ROS. Methods are tested
in simulated and real environment and manipulation pipeline is adapted to work with
used equipment. Finally, grasping and lifting of object is achieved in simulation envi-
ronment based on algorithm for object detection an online method for grasping point
extraction. Besides that two new ROS nodes for representation of object in a scene are
implemented in order to generate excitation for BCI and one use possibility of object
manipulation and new implemented interfaces in the same system is proposed.
Keywords: object detection, object recognition, scene segmentation, grasping point
extraction, object manipulation, brain-computer interface, excitation for brain-computer
interface, BCI, Robots Operating System (ROS)
Dodatak APopis repozitorija
bci_visual_stimuliRepozitorij sa svim cvorovima koji su implementirani u sklopu ovoga rada.
Takoder se uz to nalaze i datoteke za pokretanje svih potrebnih cvorova za sim-
ulaciju i korištenje algoritama za prepoznavanje u stvarnosti.
https://bitbucket.org/destogl/bci_visual_stimuli (privatni)
robotnik-powerball-ros-pkgKlon robotnik-powerball-ros-pkg repozitorija s Google Code sustava (http://
code.google.com/p/robotnik-powerball-ros-pkg/). Repozitorij
implementira upravljacki program za korištenje Schunk Powerball ruku s pro-
gramskim paketom ROS (trenutno samo simulacija).
https://github.com/jksrecko/robotnik-powerball-ros-pkg
(javni)
wsg50-ros-pkgKlon wsg50-ros-pkg repozitorija s Google Code sustava (http://code.google.
com/p/wsg50-ros-pkg/). Repozitorij implementira upravljacki program
za korištenje Schunk WSG-50 hvataljke s programskim paketom ROS.
https://github.com/jksrecko/wsg50-ros-pkg (javni)
powerball_robotnik_arm_navigationSadrži konfiguracije i pokretacke datoteke za Schunk Powerball ruku kada se
koristi Arm Navigation cjevovod (vidi Jones (2013)).
https://bitbucket.org/jksrecko/powerball_robotnik_arm_
navigation (javni)
object_manipulationImplementira stog Object Manipulation (više u Ciocarlie i Hsiao (2012)). U
53
ovom radu se koristi grana generalisation.
https://github.com/jksrecko/object_manipulation.git (javni)
pr2_object_manipulationImplementira stog PR2 Object Manipulation (više u Hsiao i Ciocarlie (2012)).
U ovom radu se koristi grana generalisation.
https://github.com/destogl/pr2_object_manipulation (javni)
household_mesh_exporterSadrži cvorove za izvoz mreža objekata iz „Household“ baze te cvor za kon-
verziju izmedu tipova podataka PointCloud i PointCloud2 što je potrebno za
simulaciju.
https://bitbucket.org/jksrecko/household_mesh_exporter
(javni)
ork_ferRepozitorij s konfiguracijskim i pokretackim datotekama za rad s Object Recog-
nition Kitchen sustavom u okviru ovog rada.
https://bitbucket.org/destogl/ork_fer (privatni, catkin sustav
prevodenja)
54