surveyor svs robot navig´acio´ sztereo´ rekonstrukcio´ seg ... fileaz opencv-ben a...

16
Surveyor SVS robot navig´ aci´ o sztere´ o rekonstrukci´ o seg´ ıts´ eg´ evel esz´ aros ´ Ad´am 1 , Megyesi Zolt´an 2 1 Kecskem´ eti F˝ oiskola G´ epipari ´ es Automatiz´ al´asiM˝ uszaki F˝ oiskolai Kar [email protected] 2 Kecskem´ eti F˝ oiskola G´ epipari ´ es Automatiz´ al´asiM˝ uszaki F˝ oiskolai Kar [email protected] Absztrakt. Bemutatunk egy, OpenCV-ben ´ ırt, 3D rekonstrukci´ on ala- pul´ oval´os idej˝ u robot navig´ aci´osalkalmaz´ ast, amely lehet˝ ov´ e teszi, hogy a Surveyor SVS robot s´ ık terepen akad´ alyokat tudjon kiker¨ ulni. A robot sztere´ o kamer´ ainak k´ epeit vezet´ ek n´ elk¨ ulih´al´ozatonegyszem´ elyisz´a- ıt´ og´ epre tov´ abb´ ıtottuk, ahol val´os idej˝ u sztere´ o rekonstrukci´ osm´od- szert alkalmaztunk. A kapott 3D sz´ ınt´ er elemz´ ese ut´an a robot a fel- ´ all´ ıtott szab´ alyok alapj´an d¨ont, hogy melyik ir´ anyba ker¨ ulje ki az aka- d´alyokat,mik¨ ozben folyamatosan friss´ ıti a l´ atott sz´ ınteret. Mindehhez pontos kamerakalibr´aci´ora´ es megb´ ızhat´ o s˝ ur˝ u illeszt´ esi algoritmus meg- val´os´ ıt´ as´ara volt sz¨ uks´ eg. Az alkalmazott m´odszerek le´ ır´ asa ut´an beren- dezett akad´ alyp´aly´ an v´ egzett k´ ıs´ erletek eredm´ enyeit mutatjuk be. 1. Bevezet´ es A 3D sz´ ınt´ er rekonstrukci´ o alkalmaz´asi ter¨ uletei k¨oz¨ott fontos helyet foglal el a robot navig´aci´ o. Az ´ altalunk kit˝ uz¨ottc´ el jelen esetben egy Surveyor SVS robot (1. ´ abra) s´ ık terepen t¨ ort´ en˝onavig´al´ asa volt. Ezekn´ el a feladatokn´al a klasszikus keskeny b´ azist´ avols´ag´ u rekonstrukci´ o [6] alkalmaz´as´ at nehez´ ıti, hogy a robotokra szerelt kamer´ ak sokszor gyenge optik´ at ´ es alacsony felbont´ as´ u szen- zorokathaszn´alnak,tov´abb´a,hogyarobotraintegr´altprocesszoroksz´am´ ıt´asi kapacit´ asa nem el´ eg a val´ os idej˝ u s˝ ur˝ u illeszt´ es megval´ os´ ıt´ as´ ahoz. A sebess´ egi probl´ em´ akmegold´as´ ara egy lehet˝ os´ eg a ritka 3D rekonstrukci´o alkalmaz´asa. Ilyenkor csak j´ ol megfeleltethet˝o jellemz˝ o pontok vagy sarokpontok illeszt´ es´ ere ker¨ ul sor, azonban ebben az esetben kapott ritka pontfelh˝ob˝ol ´all´o sz´ ınt´ er e- lemz´ ese (els˝ osorban annak eld¨ ont´ ese, hogy van-e akad´aly a robot el˝ott, vagy sem) kev´ esb´ e megb´ ızhat´ o. Hogy a s˝ ur˝ u illeszt´ es sz´ am´ ıt´asig´ enyeit lek¨ uzdj¨ uk, k¨ uls˝ o sz´ am´ ıt´ asi kapacit´ ast haszn´altunk, ´ es hat´ ekony illeszt´ esi algoritmust kerest¨ unk. Az illeszt´ esi eredm´ enyk´ ent kapott s˝ ur˝ u pontfelh˝ot elemezn¨ unk kell, hogy megtudjuk, hol helyezkednek el akad´alyok a robot ´ utj´aban. Megalkottunk egy egyszer˝ u d¨ ont´ esi logik´at, amely alapj´ an a robot k´ epes a pontfelh˝o alapj´ankiker¨ ul- ni az akad´alyokat. Jelen cikkben el˝ osz¨ or ´ attekintj¨ uk az alkalmazott 3D rekonstrukci´osm´odszert, majd le´ ırjukahaszn´altnavig´aci´ osszab´alyokat.Ezekut´anberendezettakad´aly- aly´akonv´ egzett k´ ıs´ erletek eredm´ enyeit mutatjuk be.

Upload: trinhnga

Post on 23-Aug-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Surveyor SVS robot navigacio sztereo

rekonstrukcio segıtsegevel

Meszaros Adam1, Megyesi Zoltan2

1 Kecskemeti Foiskola Gepipari es Automatizalasi Muszaki Foiskolai [email protected]

2 Kecskemeti Foiskola Gepipari es Automatizalasi Muszaki Foiskolai [email protected]

Absztrakt. Bemutatunk egy, OpenCV-ben ırt, 3D rekonstrukcion ala-pulo valos ideju robot navigacios alkalmazast, amely lehetove teszi, hogya Surveyor SVS robot sık terepen akadalyokat tudjon kikerulni. A robotsztereo kamerainak kepeit vezetek nelkuli halozaton egy szemelyi sza-mıtogepre tovabbıtottuk, ahol valos ideju sztereo rekonstrukcios mod-szert alkalmaztunk. A kapott 3D szınter elemzese utan a robot a fel-allıtott szabalyok alapjan dont, hogy melyik iranyba kerulje ki az aka-dalyokat, mikozben folyamatosan frissıti a latott szınteret. Mindehhezpontos kamera kalibraciora es megbızhato suru illesztesi algoritmus meg-valosıtasara volt szukseg. Az alkalmazott modszerek leırasa utan beren-dezett akadalypalyan vegzett kıserletek eredmenyeit mutatjuk be.

1. Bevezetes

A 3D szınter rekonstrukcio alkalmazasi teruletei kozott fontos helyet foglal ela robot navigacio. Az altalunk kituzott cel jelen esetben egy Surveyor SVSrobot (1. abra) sık terepen torteno navigalasa volt. Ezeknel a feladatoknal aklasszikus keskeny bazistavolsagu rekonstrukcio [6] alkalmazasat nehezıti, hogya robotokra szerelt kamerak sokszor gyenge optikat es alacsony felbontasu szen-zorokat hasznalnak, tovabba, hogy a robotra integralt processzorok szamıtasikapacitasa nem eleg a valos ideju suru illesztes megvalosıtasahoz. A sebessegiproblemak megoldasara egy lehetoseg a ritka 3D rekonstrukcio alkalmazasa.Ilyenkor csak jol megfeleltetheto jellemzo pontok vagy sarokpontok illeszteserekerul sor, azonban ebben az esetben kapott ritka pontfelhobol allo szınter e-lemzese (elsosorban annak eldontese, hogy van-e akadaly a robot elott, vagysem) kevesbe megbızhato. Hogy a suru illesztes szamıtasigenyeit lekuzdjuk, kulsoszamıtasi kapacitast hasznaltunk, es hatekony illesztesi algoritmust kerestunk.

Az illesztesi eredmenykent kapott suru pontfelhot elemeznunk kell, hogymegtudjuk, hol helyezkednek el akadalyok a robot utjaban. Megalkottunk egyegyszeru dontesi logikat, amely alapjan a robot kepes a pontfelho alapjan kikerul-ni az akadalyokat.

Jelen cikkben eloszor attekintjuk az alkalmazott 3D rekonstrukcios modszert,majd leırjuk a hasznalt navigacios szabalyokat. Ezek utan berendezett akadaly-palyakon vegzett kıserletek eredmenyeit mutatjuk be.

Surveyor SVS robot navigacio sztereo rekonstrukcio segıtsegevel 275

1. abra: A Surveyor SVS (stereo vision system) robot elforgatott fejjel

1.1. Eszkozok bemutatasa

Az altalunk hasznalt Surveyor SVS roboton (1. abra) megtalalhato ket darabOmnivision OV9655 1,3 megapixeles kamera, amik egymassal parhuzamosanhelyezkednek el 107,5 mm-es tavolsagra, ket darab szervomotor a fej mozgatasaraes tovabbi ket motor a gumilanctalpak hajtasara. A kameramodulok nincseneklerogzıtve, az egyik oldalon a foglalat tartja, a masik oldalon csak tavtartokvannak, amiken nem lehet allıtani. A PC-vel a kommunikacio WLAN 802.11g-ntortenik. Tovabbi informaciok az SVS-rol megtalalhatoak a gyarto honlapjan [1,2].

A kepek feldolgozasa es a robot iranyıtasa a PC-rol tortenik. Az adatokfeldolgozasahoz az ingyenes es nyılt forraskodu OpenCV 2.1-es verziojat [3, 5]hasznaltuk.

2. Sztereo rekonstrukcio

A megfeleltetes megallapıtasahoz 320 × 240-es felbontasu kepeket hasznaltunk.Ennel nagyobb felbontasnal nem teljesulnek a valosideju navigaciohoz a sebessegfeltetelek.

A suru illesztes soran az egyik kepen szereplo osszes pontnak megkeressuka parjat ugy, hogy minden egyes pontot osszehasonlıtunk a masik kep osszespontjaval, a kapott eredmenyt elmozdulas terkeppel szoktuk abrazolni. Ez 320×240-es felbontasu kepek eseten kozel 6 · 109 osszehasonlıtas. Mivel elsodleges

276 Meszaros Adam, Megyesi Zoltan

szempont a sebesseg, ezert szukseg volt arra, hogy csokkenjen a keresesi ter. Egyszintbe kell hozni a kepeket (rektifikacio), hogy az azonos kepparok egy sorbaessenek, ıgy egy pont parjat csak a vele azonos sorban levo pontok kozott kellmegtalalni, jelen esetben 320 kozul, az osszehasonlıtasok szama ıgy korulbelul24,5·106-ra csokken.Ebben a fejezetben attekintjuk a 3D rekonstrukciohoz szukseges lepeseket:

1. kamera kozeppontok, es kepsıkok helyzetenek meghatarozasa (kalibracio)2. egymasnak megfelelo pontparok keresese (illesztes)3. kamera kozeppont osszekotese a megfeleltetett vetulettel (triangulacio)

2.1. Kamera kalibracio

A 3D rekonstrukciohoz szuksegesek a kamerak belso es kulso parameterei, ezeketa kalibracio soran kapjuk meg.

Az OpenCV-ben a cvStereoCalibrate fuggveny hasznalataval tudjuk egy-szerre kalibralni mindket kamerat. A fuggvenynek ehhez objektumpontokra vanszuksege. Ezeket a pontokat egy un. kalibracios objektummal gyujthetjuk ossze,ami egy sık, fekete-feher negyzethalos sakktabla, melynek sarokpontjai jol meg-hatarozhatoak. Az objektumpontok mozgasat kovetve lehet kovetkeztetni a belsoes kulso parameterekre. Ez az eljaras Zhangtol [7, 8] es Sturmtol [9] szarmazik.

A sakktabla sarkai kepenkent a cvFindChessboardCorners fuggvennyelgyujthetoek ossze, amely Harris sarokdetektalot hasznal. A tablat 3 szabadsagfokmenten kell forgatni, hogy tudjunk 3D-ben kalibralni. A pontosabb kalibracioerdekeben szukseges minel tobb felvetelt csinalni. Fontos, hogy a keppar mindketkepen latszodnia kell a teljes sakktablanak, hogy kepparonkent azonos objek-tumpontok legyenek (lasd 2. abra). A fuggveny bemenete 8 bites szurkearnyala-

2. abra: A robot bal es jobb kamerajaval keszıtett eredeti, legjobb minosegu, 320×240-es kepek. Az OpenCV berajzolta a talalt sarkokat.

tos kep, amin szerepel a sakktabla. A robottol 3 csatornas, csatornankent 8bites szınmelysegu kep erkezik, ezt kell atalakıtani a megfelelo formatumra. A

Surveyor SVS robot navigacio sztereo rekonstrukcio segıtsegevel 277

cvCvtColor az atalakıtashoz a lumat (Y) hasznalja, ami az R, G es B sulyozottatlagakent szamolhato:

Gray : Y = 0.299 · R+ 0.587 ·G+ 0.114 · B

A Nemzetkozi Tavkozlesi Egyesulet Radiotavkozlesi Szektor (ITU-R) 601-esajanlasa is tartalmazza ezt az osszefuggest a monokrom kep megjelenıtesehez[4].

A cvFindChessboardCorners altal visszaadott sarkok csak hozzavetolegesek.Gyakorlatban ez azt jelenti, hogy csak a kamera fizikai hatarain belul talalja mega sarkot, ami egy pixel. Egy kulon fuggveny szukseges ahhoz, hogy finomıtsa asarkok pozıciojat subpixel pontossaggal. Ehhez az eredeti szurkearnyalatos kepetes a sarkok elobb megkapott hozzavetoleges elhelyezkedeset kell megadni. Azeljaras attekintesehez es ujabb technikakert lasd Lucchese [10] es Chen [11].

A tobb felvetelbol kapott objektumpontokbol cvStereoCalibrate megha-tarozza a kamerak belso parametereit kulon-kulon (kamera matrix: M, torzıtasiparameter: D) valamint a ket kamera kapcsolatat jellemzo kulso parametereket, aforgatasi matrixot (R) es az eltolas vektort (T), opcionalis esetben az esszencialis(E) es fundamentalis matrixot (F). A belso parameterek meghatarozasara afuggveny Zhang [7] eljarasan alapulo algoritmust, a torzıtasi parameterekhezpedig Brown [12] modszeren alapulo algoritmust hasznal. A kalibralas eredme-nyet lasd a 3. abran.

Ha a kamerak nem mozdıthatoak es a belso parametereik valtozatlanok,akkor a kalibralast eleg egyszer elvegezni, ıgy a kapott matrixok es vektorokkesobb is felhasznalhatoak.

3. abra: A kamera kalibracioja utan a 2. abran lathato keppar rektilinearis lett

2.2. Rektifikacio

Cel az, hogy a keppar egymasnak megfelelo sorai a rektifikalas utan egybeessenek, ıgy a sztereo megfeleltetes megbızhato es megfeleloen gyors lesz. AzOpenCV lehetosegei kozul Bouguet algoritmuson alapulo fuggvenyet hasznaltuk

278 Meszaros Adam, Megyesi Zoltan

(cvStereoRectify),mert a rotacios matrix (R) es az eltolasi vektor (T) mar ren-delkezesre all a kalibraciobol. A fuggvenytol megkapjuk a bal es a jobb kepre arektifikalt rotacios (R1, R2), vetıtesi matrixokat (P1, P2) es a projektıv matrixot(Q), amivel majd a 3D-s koordinatakat ki tudjuk szamolni. A parameterben megkell adni, hogy a kepen levo nem hasznalt reszeket ne vegye figyelembe, kulonbena kapott Q matrixszal nem lehet a valos tavolsagokat kiszamolni. A Bouguet al-goritmus az eloszor publikalo Tsai [13] es Zhang [7, 8] eljarasanak egy befejezesees egyszerusıtese.

Megvannak a kepparok, az atalakıtasahoz szukseges matrixok, most mar lekell kepezni a regi kepeket a rektifikaltra. A kepek atalakıtasara a cvRemap

szolgal, ami lekepezi a regi kep pontjait egy ujra (lasd 4. abra), ıgy megkapjuka rektifikalt kepeket. A lekepezeshez szukseges a keppel megegyezo meretu mat-rixokat a cvInitUndistortRectifyMap-bol nyerhetjuk.

4. abra: A 3. abra a rektifikacio utan, ugyanazon pontok egy sorba kerultek

2.3. Sztereo megfeleltetes, BM algoritmus

Az OpenCV implementalt egy gyors es eredmenyes mintailleszto sztereo algorit-must, a cvFindStereoCorrespondenceBM-t, ami a Kurt Konolige [14] eljarasanalapul.

Az illesztes egy ,,hibak abszolut osszege” ablakot hasznal arra, hogy meg-talalja az egyezo pontokat a bal es a jobb rektifikalt kepen:

SAD :∑

(i,j)∈W

|I1(i, j)− I2(x+ i, y + j)| (1)

Az algoritmus csak az erosen illeszkedo (erosen texturalt) pontokat talaljameg a ket kep kozott. Igy a gyengebben texturalt helyszınen, peldaul egy folyosonkevesebb parosıtast fog megtalalni.

A sztereo megfeleltetesi mintailleszto algoritmus vegrehajtasa harom lepes-ben tortenik:

Surveyor SVS robot navigacio sztereo rekonstrukcio segıtsegevel 279

1. Eloszures, normalizalja a kep fenyesseget es kiemeli a texturaltsagat.2. Egy SAD ablakkal megfelelteteseket keres az egymasnak megfelelo sorok

menten.3. Utoszures, ahol torli a rosszul megfeleltetett talalatokat.

Az elso lepesben normalizalja a kepeket ugy, hogy csokkenti a fenyessegbelikulonbsegeket es fokozza a kep texturaltsagat. Ezt ugy teszi, hogy vegigmegya kepen egy 5× 5-os, 7× 7-es (ez az alapertelmezett) vagy akar 21× 21-es (ez amaximum) ablakkal a kepen. Az ablak kozepen talalhato pontot (Ic) lecsereli a(2) kepletbol kiszamıtott ertekre, ahol a I az ablakban szereplo ertekek atlaga,az Icap pedig a megadott pozitıv szam, aminek az alapertelmezett erteke 30.

Ic = min[

max(

Ic − I ,−Icap)

, Icap]

(2)

Bal Jobb

(x0,y0) (x0,y0)

x x

y y

minDisparity

numberOfDisparities

5. abra: A BM algoritmus 2. lepese

Az 5. abran lathato, mi tortenik a masodik lepesben. Egy csuszo SAD ablaksegıtsegevel szamoljuk a megfelelteteseket. Minden egyes sajatossaghoz a balkepen megkeressuk a legjobb egyezoseget a jobb kepen ugyanabban a sorban.

A minDisparity parameterrel allıthato, hogy a jobb kepen hol kezdje el akeresest. Segıtsegevel a nem szukseges tavoli targyak kiszurhetoek. Alapertelme-zetten ez az ertek 0, ilyenkor a bal kepen szereplo (x0, y0) pontot a jobb kepenis ugyanabban a (x0, y0)-ban kezdi el keresni. Ha ez a szam negatıv, akkor ajobbra, ha pozitıv akkor balra tolodik a jobb kepen ez a pont.

A masik parameter a numberOfDisparities pedig az adja meg, hogy akereses soran maximum hany pixelt mozdulhat el a SAD ablak. A parameternekpozitıvnak es 16-tal oszthatonak kell lennie, alapertelmezett erteke 64. Kame-ra parametereitol fugg, de ha tul alacsonyra allıtjuk be ezt az erteket, akkor afuggveny a kozeli targyakat nem talalja meg.

Minel kisebb a numberOfDisparities es a minDisparity kulonbsege, annalkevesebb osszehasonlıtas szukseges, ıgy gyorsabban jutunk eredmenyhez.

280 Meszaros Adam, Megyesi Zoltan

A megfeleltetes utan a harmadik lepesben az utoszures kovetkezik. Gyakranelofordulhat, hogy egy zajos kepen a fuggveny egy eros kozponti csucsot korul-vevo reszeken talal parosıtasokat. Ezeknek a hibas paroknak kiszuresere az egyiklehetoseg az uniquenessRatio parameter. Ez egy szazalekban kifejezett ertek,ami meghatarozza a legjobb ertek (min match) es az aktualis ertek (match val)kozti maximalis kulonbseget. Ha egy ertek a (3) osszefugges alapjan a parameter-tol nagyobb szazalekban ter el a legjobb ertektol, az torlodik.

uniquenessRatio>match val−min match

min match(3)

A masodik lehetoseg a textureThreshold, ami egy hatart szab meg a SADablaknak, hogy a nagy csucsokat jelento zajos reszeket ne vegye figyelembe.

A harmadik lehetoseg pedig az ugynevezett folt (speckle) hasznalata. Min-den mintaillesztest hasznalo algoritmusnal problema lep fel, ha egy objektumhatarahoz er. Egy lokalis terulet egyik reszen kicsik a masik reszen pedig magasakaz elmozdulasi ertekek. A hatarvonal menti parok megelozesere hasznalhatjuk afolt detektalot.

A BM fuggveny vegeredmenye a bal kepre elkeszıtett suru elmozdulas terkep,az egyes pixelekhez az x-ben mert elmozdulas erteke kerul: xl − xr . Ahol nemsikerult parosıtast talalni, ott a pixel erteke minDisparity− 1 lesz.

2.4. Bal-jobb konzisztencia

Elozoekben megismerhettuk, hogyan keszul el a bal kepre az elmozdulas terkep,de a megfelelo beallıtasok ellenere is elofordul, hogy olyan parosıtasokat talal, aminem letezik az eredeti kepeken. Ezeknek a hibaknak egy kikuszobolesi lehetosegea bal-jobb konzisztencia (left-right consistency, LRC), amihez ki kell szamolni abal majd a jobb kepre is az elmozdulas terkepet.

A BM fuggveny csak bal kepre tudja megcsinalni az elmozdulas terkepet, ıgyszukseges az alapbeallıtasok megvaltoztatasa. A 6. abran lathatoak a kezzel mertelmozdulasok, amik megegyeznek a 7. abran lathato szamolt elmozdulasokkal.

A bal elmozdulas terkep szamıtasahoz a numberOfDisparities erteket 96-ravettuk, a minDisparity erteket pedig hagytuk 0-n, minden mas az alapertelme-zett maradt.

A jobbhoz a BM parametereknel felcsereltuk a jobb es a bal kepet, a number-OfDisparities ertek maradt 96, a minDisparitity erteket pedig −96-ra allı-tottuk, ıgy az eredeti ponttol a keresest 96 pixellel jobbra kezdi el. A 7. abranlathato, milyen elmozdulasokat szamolt.

A bal es jobb elmozdulas terkepek csak negatıv elojelben terhetnek el egymas-tol. Minden egyes pixelt meg kell vizsgalni, ha a (4) egyenlotlenseg teljesul, akkora talalt parosıtas jo (8. abra).

disp left(x, y) + disp right(x− disp left(x, y), y) < threshold (4)

Surveyor SVS robot navigacio sztereo rekonstrukcio segıtsegevel 281

6. abra: A kezzel megmert pixeltavolsagok ertekei. A jobb oldali kepen levo X-ek bol320-at ki kell vonni.

bal jobb

7. abra: A 6. abra alapjan a bal es jobb kepekre keszıtett elmozdulas terkepek

8. abra: A 7. abran lathato elmozdulas terkepek felhasznalasaval a bal elmozdulasterkep LRC-vel megszurt eredmenye

282 Meszaros Adam, Megyesi Zoltan

2.5. 3D rekonstrukcio

Miutan megvan a normalizalt elmozdulas terkep, 3D-s rekonstrukciora, vagymelysegterkepre van szukseg. A cvReprojectImageTo3D az elmozdulas terkepes a Q matrix segıtsegevel kiszamolja minden egyes pixelhez (x, y) az X, Y es Zkoordinatakat:

[X Y ZW ]T= Q · [x y disparity(x, y) 1]

T

3DImage(x, y) = (X/W, Y/W,Z/W )

A kapott koordinatakbol (9. abra) csak a Z-t hasznaltuk fel, mert egy akadalymegallapıtasahoz ez is elegendo.

9. abra: A 8. abran lathato parosıtott pontok elmozdulas terkepbol keszıtett 3D-srekonstrukcionak a Z ertekei mm-ben

3. Navigacio

Az elozo fejezetben ismertetett, megfeleloen parameterezett eljarasokat felhasz-nalva egy megbızhato algoritmust kellett kidolgozni, amivel a robot elkerulhetiaz utkozest.

3.1. Meresek

A cel az volt, hogy a robot egyenletes sebesseggel haladjon elore, es mikorakadalyt eszlel maga elott, akkor alljon meg, valassza ki a megfelelo iranyt,forduljon arra, ami megfelelo es haladjon tovabb.

A robot kulonbozo sebessegekkel tud haladni, de ha tul gyorsan megy, akkora fejnehez robot csak mosodott kepeket tud tovabbıtani az eros razkodas miatt,amit nem lehet felhasznalni a feladathoz. A helyes sebesseg az alapertelmezettol6 egysegnyivel lassabb volt.

Surveyor SVS robot navigacio sztereo rekonstrukcio segıtsegevel 283

Teszteket vegeztunk ahhoz, hogy megallapıtsuk, hogy a bal kepre keszıtett3D-s kepbol a Z ertekeket, amik mm-ben vannak megadva, hogyan ertelmezze.

Az elmozdulas terkepekbol megallapıthato volt, hogy a robot, a tavoli ka-merak miatt, korulbelul fel meternel tavolabb levo targyaknak a kepet tudjaparosıtani, ezert a fel meteren torteno fordulas lett a cel. A −500-nal kisebb Zertekkel rendelkezo pixeleket fogja szamolni a program.

Meg kellett tovabba allapıtani, hogy a kepen szereplo pixelek kozul melyektartoznak a robottal szemben levo terre. A mereseink szerint (lasd pl. 6. abra)az X ertekenek 130 es 210 koze kell esnie, az Y-ra nem tettunk feltetel. Tobbtereptarggyal torteno kıserlet utan, ha 3500 darab −500-nal kisebb Z ertekettalal a megadott keptartomanyban, akkor az akadalynak minosul.

Ha a numberOfDisparities erteke 96, akkor 0–102 kozotti X-en nem leszparosıtas, 128 ertek eseten pedig 0–134 pixelen.

A 8. abran eszreveheto, hogy az LRC szamolas utan a kep bal es jobb szelenszinte alig talalhato parosıtas. Ahhoz, hogy a robot megallapıtsa, balra vagyjobbra induljon el, el kell forgatnia a fejet. Balra es jobbra maximum 45◦–45◦-sszogbe tudja elfordıtani a kamerakat, ezert erre a szogre kellett megallapıtaniazokat a motorutasıtas erteket, amelyre pont ennyit tud fordulni. Ezeket azertekeket kulonbozo padloknal mindig ujra ki kell merni. A fejforgatas parancskiadasa utan egy kis szunetet kell beiktatni, mert a mozgatas is idobe telik, hatul hamar hıv le kepet a program, akkor az eredmeny ugyancsak elmosodott keplesz, amin alig talalhato parosıtas.

3.2. Algoritmus

A navigalas ugy tortenik, hogy miutan meglettek a 3D-s adatok, a programa tartomanyban megszamolja, hogy mennyi Z ertek tul kicsi. Ha ez a szammeghaladja a kuszobot, akkor elotte akadaly van, el kell fordulni.

CiklusKozeli pontok szamanak meghatarozasaHa kozeli pontok szama tul sok

AlljFejet balra, kozeli pontok szamanak meghatarozasaFejet jobbra, kozeli pontok szamanak meghatarozasaFejet egyenesbe fordıtaniHa balra megfelelobb, fordulj balraHa jobbra megfelelobb, fordulj jobbra

EgyebkentElore

Ciklus vege

4. Eredmenyek

Sikerult egy olyan programot ırnunk, amivel a robot ki tudja kerulni az ele kerultakadalyokat.

284 Meszaros Adam, Megyesi Zoltan

4.1. Elmozdulasok

A BM algoritmus segıtsegevel sikerult megfelelo szamu elmozdulast talalni, ıgylehetsegesse valt a navigacio. A kozelebb levo targyak elmozdulasa nagyobb lett,mint a tavolabb levo targyaknak (10. abra), de nem csak a tavolsaguk, hanemaz alakjuk is kiveheto (11. abra).

A hasznalt 96 erteku numberOfDisparities eseten 35 cm-re levo targyat iskepes volt eszlelni, 128 ertek eseten ez a tavolsag 25 cm-re csokkent.

10. abra: A 8. abran lathato elmozdulas terkep ,,fentrol”, az elmozdulas felol nezve.Jol kiveheto a robotra meroleges ket sık doboz oldala es koztuk levo tavolsag

Ellenorzeskent rahelyeztuk az elmozdulas terkepet az eredeti kepre, hogymennyire talalta meg pontosan a dobozokat (12. abra).

4.2. Sebessegtesztek

Mivel a robot folyamatosan halad elore, ezert szukseges, hogy az akadaly szamo-lasa real-time legyen. Sebessegteszteket vegeztunk egy szalon, majd tobb szalonfuto programmal, hogy a robot milyen sebesseggel dolgozza fel a kepparokat.A fekete kepnel a robot csak feketeseget latott, ıgy a kuldott kep a lehetolegkisebb volt, statikusnal egy targyra iranyultak a kamerak. Az 1. tablazatbana masodpercenkent feldolgozott kepparok szama szerepel.

4.3. Z ertekek

A 2. tablazatban lathato a szamıtott, a valodi tavolsagok es a kozottuk levoelteres.

Surveyor SVS robot navigacio sztereo rekonstrukcio segıtsegevel 285

1. tablazat: Az akadalyszamolas sebessegtesztje keppar/masodpercben. A tovabbıtottkep: 320 × 240, legjobb minoseg.

1,6 GHz-es, egy magos CPU

Egy szal Tobb szal

Fekete kep Elo kep Fekete kep Elo kep

Csak kep kuldes 11 FPS 3,9–4 FPS 11 FPS 3,9–4 FPS

Navigacio 6,2–6,3 FPS 2,9–3 FPS 9,9–10 FPS 3,8–3,9 FPS

3,1 GHz-es, ket magos CPU

Egy szal Tobb szal

Fekete kep Elo kep Fekete kep Elo kep

Csak kep kuldes 10–10,2 FPS 3,8 FPS 10–10,2 FPS 3,8 FPS

Navigacio 6,8–6,9 FPS 3,2–3,3 FPS 10–10,2 FPS 3,7–3,8 FPS

2. tablazat: Amert es a tenyleges tavolsagertekek, a Z tengely ellenkezo iranyba mutat,ezert negatıvat az ertekek. A 13. meresnel a numberOfDisparities erteke 128 volt, atobbinel 96. 2 meter utan jelentosen no az elteres a mert es a valos tavolsagok kozott.

Meres Tavolsag (mm) Z erteke (mm) Elteres (mm)

1. 1590 −1670 80

2. 1400 −1480 80

3. 1290 −1335 45

4. 1210 −1250 40

5. 1100 −1140 40

6. 1020 −1070 50

7. 910 −940 30

8. 830 −860 30

9. 720 −745 25

10. 640 −664 24

11. 530 −543 13

12. 450 −470 20

13. 250 −275 25

286 Meszaros Adam, Megyesi Zoltan

bal kep

LRC-vel tisztıtott bal elmozdulas terkep

11. abra: A bal oldalon lathato kepre keszıtett elmozdulas terkepen jol kiveheto ameroleges sarok

bal jobb LRC-s bal

12. abra: A megtalalt elmozdulasok rahelyezve a 6. abran lathato kepekre

4.4. Palyabejaras

A program tudasat ket akadalypalyan probaltuk ki. Az egyik esetben egy felkoralaku (14. abra) palyat kellett kovetnie, a masik esetben pedig egy L alakucsatornan kellett vegighaladnia utkozes nelkul. Mindket palyat teljesıtette, akihelyezett akadalyokat fel meteren belul eszlelte. A tesztek soran kiderult, hogya robotnak a hagyomanyos lampak fenye sotetedes utan nem mindig elegendo.A homogen feluletu targyakat rendszerint nem latta meg, a palyat jol texturaltelemekbol epıtettuk fel, pl. konyvekbol, mintas dobozokbol.

5. Konkluzio es tovabbi lepesek

Bemutattunk egy sztereo rekonstrukcion alapulo robot navigacios alkalmazast,amely jol hozzaferheto elemekre epul, de szamos modosıtast tartalmaz. A meg-bızhatosag erdekeben alkalmaztuk a bal-jobb konzisztencia megszorıtast, es a

Surveyor SVS robot navigacio sztereo rekonstrukcio segıtsegevel 287

13. abra: A 9. abrat rahelyezve az eredeti kepre, a nem parosıtott ertekek nemlatszanak

Foto a palyarol

Start

Stop

A palyan bejart ut

14. abra: Az O alaku palya bejarasa

parhuzamos implementacio segıtsegevel valos ideju feldolgozast ertunk el. Meg-mutattuk, hogy a robot kepes a megfeleloen texturalt targyak hatarat felismernies elnavigalni A pontbol B pontba. Az elmozdulasok es a 3D-s adatok nem voltakteljesen pontosak, de a biztos navigalashoz ez is megfelelo volt.

Tovabbi lepesek lehetnek az erosen texturalt padlok kiszurese, hogy mineltobb helyen kepes legyen navigalni. Szeretnenk, ha fel tudna majd ismerni,hogy milyen akadalyon tud meg athaladni. Tervezzuk meg, hogy mozgas kozbenletaroljuk a 3D-s adatokat es a hozzajuk tartozo tavolsagokat, majd ezekbolrekonstrualjuk es megjelenıtjuk a bejart palyat. Masik celunk az, hogy kihasznal-juk a robot mozgekonysagat arra, hogy egy helyben, minden lehetseges iranybolfelvett kepbol rekonstrualjuk a szınteret.

288 Meszaros Adam, Megyesi Zoltan

Foto a palyarol

1 23

4

5

6

7

8

A palyan bejart ut

15. abra: Az L alaku palya bejarasa. Eloszor 1-es es 2-es iranyba nez szet, majd a 2-esirany fele fordul. Ez is tul kozel van, 3-as es 4-es iranyba nez szet, majd 4-es iranybafordul. Tovabbhalad, itt a falat tavolabbrol eszreveszi, ıgy 5-os iranyba is halad egykicsit, mielott ujra erzekelne a falat.

Koszonetnyilvanıtas

A cikk vegen szeretnenk megkoszonni Dr. Kovacs Tamas es Pasztor Attila ok-tatoknak, hogy a Surveyor SVS robototot a munka idejere a rendelkezesunkrebocsajtottak.

Irodalom

1. http://www.surveyor.com/stereo/stereo info.html

2. http://www.surveyor.com/blackfin/OV9655-datasheet.pdf

3. http://opencv.willowgarage.com/

4. http://inst.eecs.berkeley.edu/~cs150/Documents/ITU601.PDF

5. Gary Bradski and Adrian Kaehler: Learning OpenCV: Computer Vision with the

OpenCV Library. O’Reilly Media, Inc., 1st edition, October 2008.

6. Milan Sonka, Vaclav Hlavac, and Roger Boyle: Image Processing, Analysis, and

Machine Vision. Cengage-Engineering, March 2007.

7. Z. Zhang: A flexible new technique for camera calibration. IEEE Transactions onPattern Analysis and Machine Intelligence 22 (2000): 1330–1334

8. Z. Zhang: Flexible camera calibration by viewing a plane from unknown orienta-

tions. Proceedings of the 7th International Conference on Computer Vision (pp.666–673), Corfu, September 1999.

9. P. F. Sturm and S. J. Maybank: On plane-based camera calibration: A general

algorithm, singularities, applications. IEEE Conference on Computer Vision andPattern Recognition, 1999.

10. L. Lucchese and S. K. Mitra: Using saddle points for subpixel feature detection

in camera calibration targets. Proceedings of the 2002 Asia Pacific Conference onCircuits and Systems (pp. 191–195), December 2002.

11. D. Chen and G. Zhang: A new sub-pixel detector for x-corners in camera calibration

targets. WSCG Short Papers (2005): 97–100.

Surveyor SVS robot navigacio sztereo rekonstrukcio segıtsegevel 289

12. D. C. Brown: Close-range camera calibration. Photogrammetric Engineering 37(1971): 855–866.

13. R. Y. Tsai: A versatile camera calibration technique for high accuracy 3D ma-

chine vision metrology using off-the-shelf TV cameras and lenses. IEEE Journal ofRobotics and Automation 3 (1987): 323–344.

14. K. Konolige: Small vision system: Hardware and implementation. Proceedings ofthe International Symposium on Robotics Research (pp. 111–116), Hayama, Japan,1997.