Lokalizace a tvorba modelu prostředí v inteligentní robotice
Transkript
Lokalizace a tvorba modelu prostředí v inteligentní robotice
Lokalizace a tvorba modelu prostředí v inteligentní robotice Mgr. Miroslav Kulich disertační práce 8. září 2003 2 Obsah Seznam obrázků ii Seznam tabulek vi Matematické značení ix 1 Úvod 1 2 Architektura a základní komponenty 2.1 Motorický subsystém . . . . . . . . . 2.2 Senzorický subsystém . . . . . . . . 2.3 Řídicí subsystém . . . . . . . . . . . 2.4 Komunikační subsystém . . . . . . . robotického . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . systému . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 6 7 9 3 Definice problému 11 3.1 Lokalizace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2 Stavba modelu světa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4 Cíle disertace 15 5 Stav řešení ve světě 5.1 Senzory pro lokalizaci a mapování . . . . . . . . . . . . . . . . . . . . . . 5.1.1 Odometrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.2 Akcelerometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.3 Sonarový hloubkoměr . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.4 Laserový hloubkoměr . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.5 Další senzory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Metody kontinuální lokalizace polohy . . . . . . . . . . . . . . . . . . . . . 5.2.1 Základní pojmy a definice . . . . . . . . . . . . . . . . . . . . . . . 5.2.2 Lokalizace na pravděpodobnostních mřížkách obsazenosti . . . . . 5.2.3 Metody založené na porovnávání sad nezpracovaných senzorických měření . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.4 Lokalizace s využitím geometrické mapy . . . . . . . . . . . . . . 5.2.5 Další metody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i . . . . . . . . . 17 17 17 19 21 22 22 23 23 24 . 27 . 31 . 34 5.3 Metody geometrického mapování prostředí robotu . . . . . . . . . . . . . . 34 6 Metoda Line-To-Line pro lokalizaci polohy 6.1 Aproximace senzorických měření úsečkami . . . . 6.2 Nalezení párů korespondujících úseček . . . . . . 6.3 Optimalizace penalizační funkce . . . . . . . . . . 6.4 Určení otočení počátečního bodu . . . . . . . . . 6.5 Určení polohy počátečního bodu . . . . . . . . . 6.6 Zobecnění pro větší odchylky mezi sadami měření . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 41 47 52 53 54 55 7 Mapování prostředí 7.1 Extrakce hranic překážek z pravděpodobnostní mřížky . . . . 7.1.1 Tvorba pravděpodobnostní mřížky . . . . . . . . . . . 7.1.2 Segmentace mřížky . . . . . . . . . . . . . . . . . . . . 7.1.3 Úprava segmentované mřížky . . . . . . . . . . . . . . 7.1.4 Nalezení a úprava kostry . . . . . . . . . . . . . . . . . 7.1.5 Rozdělení kostry na posloupnosti buněk . . . . . . . . 7.1.6 Aproximace posloupností . . . . . . . . . . . . . . . . 7.2 Použití neuronových sítí pro získání popisu hranice překážky 7.2.1 Předzpracování senzorických měření . . . . . . . . . . 7.2.2 Rostoucí neuronový plyn . . . . . . . . . . . . . . . . 7.2.3 Aproximace neuronové sítě úsečkami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 59 60 62 63 64 65 67 68 70 70 72 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Experimentální výsledky 75 8.1 Lokalizace polohy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 8.2 Mapování prostředí . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 9 Shrnutí, dosažené cíle disertace 9.1 Shrnutí a přínos práce . . . . . . . . 9.2 Lokalizace polohy . . . . . . . . . . . 9.3 Mapování prostředí . . . . . . . . . . 9.4 Dosažené cíle disertace, porovnání se . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . stanovenými cíli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 87 88 88 89 10 Závěr 91 Literatura 92 ii Seznam obrázků 2.1 2.2 2.3 Základní blokové schéma mobilního robotu . . . . . . . . . . . . . . . . . . Kognitivní systém založený na fungnční dekompozici . . . . . . . . . . . . . Uživatelská rozhraní robotických systémů. Vlevo obrazovka systému ROBÍK vyvinutého na MFF UK v Praze, vpravo grafické okno řídícího systému COSYNA vzniklého na Katedře kybernetiky ČVUT. . . . . . . . . . . . . . 6 7 9 3.1 Proces kontinuální lokalizace . . . . . . . . . . . . . . . . . . . . . . . . . . 12 5.1 Vývoj systematické chyby způsobené rozdílným průměrem kol. Zelená křivka zobrazuje skutečnou trajektorii robotu, modrá pak trajektorii naměřenou odometrií. Poloměr kola byl uvažován 10 cm, přičemž skutečný průměr pravého kola je o 0.5 mm větší. Vzdálenost mezi koly je jeden metr a robot se pohybuje rychlostí 1 otáčka/s. Po 5 minutách jízdy, kdy robot ujel přibližně 188 metrů byla chyba polohy od 754 cm do 867 cm a otočení 54◦ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data z akcelerometru. Vlevo porovnání skutečné a naměřené rychlosti, vpravo skutečně ujetá vzdálenost a vzdálenost získaná z akcelerometru. . Tvar vyzařovaného signálu sonarového hloubkoměru Polaroid 6500. . . . . Protože souřadné systémy lokální a globální mřížky se liší, každá buňka jedné mřížky překrývá buňky mřížky druhé. . . . . . . . . . . . . . . . . . Tří-hodnotová mřížka obsazenosti a histogramy. Obsazené buňky jsou zobrazeny bíle, volné černě a neznámé hodnoty jsou reprezentovány šedě. . . Pravidla pro hledání korespondencí. Vlevo pravidlo nejbližšího bodu, vpravo pravidlo podobného dosahu. Zelená elipsa reprezentuje referenční scan proložený úsečkami, modré body aktuální scan a křížek polohu robotu. . . . . Korespondence bodů pro lokalizaci pomocí tečných přímek. . . . . . . . . 5.2 5.3 5.4 5.5 5.6 5.7 6.1 6.2 6.3 6.4 . 19 . 20 . 21 . 24 . 27 . 29 . 29 Funkční schéma algoritmu Line-To-Line, vstupem jsou referenční a aktuální scan a výstupem korigovaná pozice a orientace robotu. . . . . . . . . . . . . SEF detekuje konec segmentu v případě, že rozdíl dvou po sobě následujících naměřených vzdáleností je větší než definovaný práh T (|d4 − d5 | > T ) LT ukončí segment, pokud vzdálenost zpracovávaného bodu od aktuálního segmentu je větší než práh T . . . . . . . . . . . . . . . . . . . . . . . . . . Segmentace senzorických dat algoritmem IEPF. . . . . . . . . . . . . . . . . iii 40 41 42 42 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15 6.16 6.17 6.18 6.19 6.20 6.21 6.22 6.23 6.24 Seskupování. Jednotlivé skupiny jsou odlišeny barvami . . . . . . . . . . . IEPF aplikovaný na skupiny bodů. . . . . . . . . . . . . . . . . . . . . . . Vlastní čísla a vlastní vektory kovarianční matice. . . . . . . . . . . . . . Nalezení krajních bodů úsečky reprezentující množinu bodů. . . . . . . . . Konečný výsledek po segmentaci. Modře jsou zobrazena senzorická měření, černě vysegmentované úsečky. . . . . . . . . . . . . . . . . . . . . . . . . . Křížové vzdálenosti mezi krajními body úseček . . . . . . . . . . . . . . . Řez funkce corrSkrz pro rovnoběžné a stejně dlouhé úsečky. . . . . . . . . Řez funkce corrKul pro rovnoběžné a stejně dlouhé úsečky. . . . . . . . . . Vrstevnice řezu funkce corrSkrz pro rovnoběžné úsečky, kde poměr délek |u1 | |u2 | = 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vrstevnice řezu funkce corrKul pro rovnoběžné úsečky, kde poměr délek |u1 | |u2 | = 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vrstevnice řezu funkce corrSkrz pro rovnoběžné a stejně dlouhé úsečky. . . Vrstevnice řezu funkce corrKul pro rovnoběžné a stejně dlouhé úsečky. . . Vrstevnice řezu funkce corrSkrz pro rovnoběžné úsečky, kde poměr délek |u1 | 1 |u2 | = 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vrstevnice řezu funkce corrKul pro rovnoběžné úsečky, kde poměr délek |u1 | 1 |u2 | = 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vrstevnice řezu funkce corrSkrz pro rovnoběžné úsečky, kde poměr délek |u1 | 1 |u2 | = 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vrstevnice řezu funkce corrKul pro rovnoběžné úsečky, kde poměr délek |u1 | 1 |u2 | = 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vrstevnice řezu funkce corrKul pro úsečky s odchylkou 30◦ a poměrem délek |u1 | |u2 | = 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vrstevnice řezu funkce corrKul pro úsečky s odchylkou 30◦ a poměrem délek |u1 | |u2 | = 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vrstevnice řezu funkce corrKul pro úsečky s odchylkou 30◦ a poměrem délek |u1 | 1 |u2 | = 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vrstevnice řezu funkce corrKul pro úsečky s odchylkou 30◦ a poměrem délek |u1 | 1 |u2 | = 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.25 6.26 6.27 6.28 6.29 . . . . 43 44 45 46 . . . . 47 48 49 49 . 50 . 50 . 50 . 50 . 51 . 51 . 51 . 51 . 51 . 51 . 52 . 52 Úsečky referenčního (modře) a aktuálního scanu(zeleně). . . . . . . . . . . . Nalezené páry úseček. Korespondující úsečky jsou nakresleny stejnou barvou. Korekce aktuálního scanu z obr. 6.25 po otočení o úhel ∆φ̄. . . . . . . . . . Korekce scanu z obr. 6.25 po posunutí o vektor (∆x̄, ∆ȳ). . . . . . . . . . . Transformace aktuálního scanu z obrázku 6.28 na základě parametrů získaných optimalizací. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.30 Diskrétní okolí bodu. Červeně je zobrazen orientovaný bod a modře jeho diskrétní okolí. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 53 53 54 54 55 56 Míra obsazenosti (červeně) a míra volnosti (modře) pro kvadratický model laserového hloubkoměru. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 iv 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 7.10 7.11 7.12 7.13 7.14 7.15 7.16 7.17 7.18 7.19 7.20 7.21 7.22 7.23 7.24 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 Konstantní model laserového hloubkoměru. Buňka, v které leží měření (červená) bude mít hodnotu p(r|obs(a)) rovnu KObs . Pro modré buňky bude platit, že p(r|obs(a)) = KV ol . . . . . . . . . . . . . . . . . . . . . . . . . . . Histogram hodnot buněk mřížky. . . . . . . . . . . . . . . . . . . . . . . . . Strukturní element S8 . Černé čtverečky reprezentují body strukturního elementu, křížkem je označen počátek soustavy souřadné. Strukturní element S8 je tedy množina {−1, 0, 1}2 . . . . . . . . . . . . . . . . . . . . . . . . . Kostra obdélníku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pravděpodobnostní mřížka obsazenosti vygenerovaná z laserových dat z obrázku 7.20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Segmentovaná mřížka obsazenosti. . . . . . . . . . . . . . . . . . . . . . . . Mřížka po aplikování dilatace. . . . . . . . . . . . . . . . . . . . . . . . . . . Mřížka po aplikaci eroze. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kostra mřížky. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Upravená kostra mřížky. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rozdělení upravené kostry na oblasti. . . . . . . . . . . . . . . . . . . . . . . Výsledná geometrická reprezentace laserových dat. . . . . . . . . . . . . . . Aproximace dvou spirál Kohonenovou mapou ve tvaru řetízku délky 100. . Aproximace dvou spirál Kohonenovou mapou ve tvaru mřížky 10 × 10. . . . Aproximace dvou spirál rostoucím neuronovým plynem (ukončovací podmínka: počet neuronů=100). . . . . . . . . . . . . . . . . . . . . . . . . . . . Aproximace obdélníků různé velikosti Kohonenovou mapou ve tvaru řetízku délky 100. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aproximace obdélníků spirál Kohonenovou mapou ve tvaru mřížky 10 × 10. Aproximace dvou obdélníků rostoucím neuronovým plynem (ukončovací podmínka: počet neuronů=100). . . . . . . . . . . . . . . . . . . . . . . . . Hrubá senzorická data po lokalizaci polohy. . . . . . . . . . . . . . . . . . . Senzorická data po odfiltrování šumu. . . . . . . . . . . . . . . . . . . . . . Aproximace senzorických měření rostoucím neuronovým plynem. . . . . . . Odstranění spojnic neuronů s malou váhou. . . . . . . . . . . . . . . . . . . Výsledná geometrická reprezentace senzorických dat. . . . . . . . . . . . . . Robot ER-1 vybavený laserovým hloubkoměrem SICK PLS-100. . . . . . . Prostředí s krabicemi, v kterém byly prováděny experimenty. . . . . . . . . Kancelářské prostředí, v kterém byly prováděny experimenty. . . . . . . . . Data z laserového hloubkoměru po určení polohy v prostředí chodby (sada 3) Rozdíl poloh mezi dvěmi scany po lokalizaci (prostředí chodby - sada 3) . . Data z laserového hloubkoměru po určení polohy v prostředí s krabicemi (sada 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rozdíl poloh mezi dvěmi scany po lokalizaci (prostředí s krabicemi - sada 1) Data z laserového hloubkoměru po určení polohy v kancelářském prostředí (sada 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rozdíl poloh mezi dvěmi scany po lokalizaci (kancelářské prostředí - sada 3) v 62 63 63 65 67 67 67 67 68 68 68 68 69 69 69 69 69 69 73 73 73 73 74 76 77 77 78 78 79 79 80 80 8.10 Objekt ve tvaru „Iÿ. Černě zobrazena skutečná poloha objektu, modře obrys objektu získaný algoritmem na extrakci hranic z pravděpodobnostní mřížky obsazenosti a zeleně hranice objektu generovaný metodou GNG. . . . . . 8.11 Objekty ve tvaru krabice, „Sÿ, „Yÿ a „Lÿ. Černě zobrazena skutečná poloha objektu, modře obrys objektu získaný algoritmem na extrakci hranic z pravděpodobnostní mřížky obsazenosti a zeleně hranice objektu generovaný metodou GNG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.12 Geometrický model prostředí z dat na obrázku 8.4. Vlevo model generovaný z pravděpodobnostní mřížky, vpravo metodou GNG. . . . . . . . . . . . . 8.13 Geometrický model prostředí z dat na obrázku 8.6. Vlevo model generovaný z pravděpodobnostní mřížky, vpravo metodou GNG. . . . . . . . . . . . . 8.14 Geometrický model prostředí z dat na obrázku 8.8. Vlevo model generovaný z pravděpodobnostní mřížky, vpravo metodou GNG. . . . . . . . . . . . . vi . 82 . 83 . 84 . 84 . 85 Seznam tabulek 8.1 8.2 8.3 8.4 8.5 Technické parametry laserového hloubkoměru SICK PLS-100. . . . . . . Přesnost Line-To-Line lokalizace v prostředí s malým počtem překážek. Přesnost Line-To-Line lokalizace v prostředí s krabicemi. . . . . . . . . . Přesnost Line-To-Line lokalizace v běžném kancelářském prostředí. . . . Přesnost algoritmů stavby modelu prostředí. . . . . . . . . . . . . . . . . vii . . . . . . . . . . 75 78 79 80 81 viii Matematické značení {a, . . . , b} A×B a⊕b |a|, |A| M = {Mxy }nx,y=1 n M3 = M3xy Hr on x,y=1 (Hxr )nx=1 ), H s = (Hi )ni=0 M∆φ ∆,Φ (x, y, φ) Om,n množina všech celých čísel x, pro které platí a ≤ x ≤ b kartézský součin množin A a B součet a + b modulo π absolutní hodnota, velikost množiny (pravděpodobnostní) mřížka obsazenosti o rozměru n tříhodnotová mřížka obsazenosti o rozměru n = (Hys )ny=1 řádkový, resp. sloupcový histogram zkrácená verze zápisu vektoru (H0 , H1 , . . . Hn ) transformační matice popisující otočení o úhel ∆φ diskrétní okolí bodu (x, y, φ) ix x Kapitola 1 Úvod robot: programovatelný systém, který je schopen orientovaně vnímat a rozpoznávat prostředí, popř. manipulovat s předměty a pohybovat se. (Encyklopedie Diderot, 2002) robot: (z českého robota - nucená práce) 1. Stroj, který vypadá jako lidská bytost a provádí různé úkony jako člověk(např. chůze a řeč) 2. Automaticky řízený mechanismus (Merriam-Webster Collegiate Dictionary, 1999) robot: programovatelný, multifunkční manipulátor navržený k přemísťování materiálů, nástrojů a dalších specializovaných zařízení pomocí programovatelných pohybů (Robot Institute of Amerika, 1979) Co je to robot? Různých definic tohoto pojmu existuje mnoho, ale obvykle se slovem robot označuje programovatelný stroj napodobující chování inteligentní bytosti - člověka. Abychom mohli stroj označit robotem, měl by mít dvě základní vlastnosti: 1. získávat a zpracovávat informace o svém bezprostředním okolí a 2. provádět nějakou fyzickou činnost, např. pohybovat se nebo manipulovat s okolními předměty Přestože robotika, věda studující chování robotů, se plně rozvíjí až v průběhu posledních desetiletí, lidé se vždy snažili sestrojit stroje, které by jim usnadňovali jejich práci. Poprvé se o automatických strojích zmiňuje Aristoteles ve 4. století před naším letopočtem: „Kdyby každý nástroj mohl provádět práci plníce a předvídajíce přání ostatních. . . Kdyby tkalcovský člunek mohl tkát a lyra hrát aniž by je vedla lidská ruka, kdyby páni nepotřebovali sluhů. . .ÿ (Malone, 1978) V 17. století japonští vynálezci a řemeslníci vytvořili první automat - dřevěnou loutku pro servírování čaje (karakuri ningyo). Loutka sloužila spíše pro pobavení hostů než jako 1 skutečný servírovací automat. Host položil šálek na tác držený loutkou, což spustilo mechanismus, který uvedl loutku do pohybu. Pokud se šálek odebral, loutka se zastavila. V evropě se automaty objevily v 18. století. Mechanické hračky, které se chovaly tak, jako by byly poháněny vlastním zdrojem energie, se tehdy staly zajímavou atrakcí na evropských dvorech. Různé formy automatů byly rovněž námětem četných fikcí a lidových pověstí. K nejznámějším patří historky o golemovi nebo Frankensteinovi. První pokusy přiblížit fantazii realitě se objevily na přelomu 18. a 19. století s nástupem průmyslové revoluce. V roce 1750 vytvořili švýcarští řemeslníci automat s hodinovým mechanismem, který uměl přehrávat melodie a psát. V roce 1804 francouzský vynálezce Joseph Jacquard vyvinul programovatelný tkalcovský stav vykonávající instrukce uložené na děrných páskách. První stav ještě dělníci obávající se o svou práci rozbili, ale v roce 1812 se ve Francii těchto stavů používalo již kolem 1100. Poprvé se slovo ”robot” objevuje v roce 1920 ve hře Karla Čapka R.U.R pro mechanické dělníky pracující na tovární lince. První roboty tak jak si je představujeme dnes, byly ale sestrojeny až po druhé světové válce, což souviselo s nástupem počítačů. S nimi přišla idea vybavit stroje samostatným myšlením. V 50. letech položili John McCarthy a Marvin Minsky z Massachusetts Institute of Technology základy umělé inteligence a jedním z jejich cílů se stalo vytvoření robota. Koncem 50. let se roboty začínají prosazovat v průmyslu. Joseph F. Engelberger a George Devol vyvinuli prvního průmyslového robota - Unimate - který byl instalován ve firmě General Motors v roce 1961. Jednalo se o robotickou paži, která zvedala součástky a pokládala je na dopravní pás. Unimate neuměl reagovat na změny prostředí, byl schopný pouze precizně opakovat naprogramované chování. Učení probíhalo tak, že Engelberger s Devolem s robotem hýbali takovým způsobem, jak by odpovídalo dané práci. Robot si pohyby zaznamenával a pak je „přehrávalÿ podobně jako magnetofon. Roboty se nejvíce rozšířily v automobilovém průmyslu, kde mohly provádět fyzicky náročnou a monotónně se opakující práci ve zdraví škodlivém prostředí. Brzy se roboty objevují rovněž v potravinářském a elektronickém průmyslu. Také akademická obec nezahálí a v roce 1964 jsou založeny první výzkumné laboratoře zabývající se umělou inteligencí a robotikou na Massachucetts Institute of Technology, Stanford University, Stanford Research Institute a University of Edinburgh. První autonomní mobilní robot (robot schopný se samostatně pohybovat) byl vytvořen v letech 1966-1972 v Stanford Research Institute vědeckým týmem vedeným Charlesem Rosenem. Robot se jmenoval ”Shakey”, byl vybavený videokamerou, hloubkoměrem a nárazníky a byl spojen s řídícím počítačem rádiovou linkou. Shakey byl schopen plánovat cestu mezi startovní a cílovou pozicí, pohybovat se po místnosti a velice jednoduše reagovat na změny ve svém okolí. Mobilní robotika se rozvíjí také na dalších univerzitách. V roce 1973 konstruuje tým Ichiro Katy na Waseda Univerisity v Tokiu první humanoidní robot velikosti člověka Wabot 1 (Waseda Robot). Ve stejném roce vzniká první mezinárodní časopis o robotice - ”The Industrial Robot”. Významná skupina se vytváří na Stanford University kolem Hanse Moravce a později s jeho přesunem na Carnegie-Mellon University (Moravec, 1980) (Moravec, 1983). Dalších zajímavých úspěchů dosáhla robotika v osmdesátých letech. Robotický systém 2 řízený na dálku vyvinutý v Carnegie Mellon’s Field Robotics Center pomohl „vyčistitÿ poškozenou jadernou elektrárnu v Three Mile Island v Pennsylvanii (1983) a jeho následovník Pioneer se podílel na likvidaci následků výbuchu elektrárny v Černobylu. Další roboty Dante I a Dante II sestoupily do aktivních vulkánů v Antarktidě a na Aljašce. V tuzemsku se mobilní robotika rozvíjí až v posledních deseti letech a to hlavně na univerzitách. K nejvýznamnějším patří zejména pracoviště na Katedře kybernetiky na Elektrotechnické fakultě ČVUT v Praze, Ústav automatizace a měřicí techniky na Fakultě elektotechniky a komunikačních technologií na VUT v Brně a skupina na Matematickofyzikální fakultě University Karlovy v Praze. V dnešní době si už bez robotů některé obory lidské činnosti ani nedovedeme představit. Kromě robotů používaných v průmyslu, v kosmickém výzkumu a lékařství již roboty pronikají i do oblastí běžného života. Jmenujme např. automatickou travní sekačku firmy Husqvarna, která v ohraničeném prostoru pracuje zcela nezávisle. Rovněž výrobci vysavačů vyvíjejí přístroj umožňující autonomně vysávat (Electrolux, Siemens, Samsung, . . .). Zajímavá je také informace z ledna 2002, že Tokijské národní muzeum vědy a výzkumu zaměstnává humanoidní robot firmy Honda jménem Asimo. Za plat v přepočtu 150 tisíc dolarů ročně pracuje 120 centimetrů vysoký a 43 kilogramů těžký robot jako průvodce. Dokáže odpovídat na celou řadu otázek a je do značné míry autonomní, v případě potřeby ho na dálku řídí operátor prostřednictvím PC. V současnosti je robotika multidisciplinární obor zasahující do mnoha oblastí vědy od metod systémů řízení, plánování, rozpoznávání až po rozhodování. V této práci se budeme zabývat úlohou lokalizace polohy autonomního mobilního robotu a vytváření modelu prostředí, v němž se robot pohybuje. V následující kapitole popíšeme architekturu a základní komponenty robotického systému. V kapitolách 3 a 4 potom podrobně popíšeme úlohy, jejichž řešením se budeme v této práci zabývat a definujeme hlavní cíle, které se budeme snažit v práci splnit. První z těchto úloh je problém kontinuálního určování polohy robotu (lokalizace) z měření získaných ze senzorů měřících vzdálenost (např. sonarová čidla nebo laserové hloubkoměry). Automatické vytvoření geometrické reprezentace prostředí, v kterém se robot pohybuje (mapování), je pak druhým řešeným problémem. Kapitola 5 obsahuje popis stavu řešení výše zmíněných úloh ve světě. V první části kapitoly jsou diskutovány základní charakteristiky senzorických systémů, které lze pro lokalizaci a mapování použít. Dále je podán přehled v současnosti používaných metod kontinuální lokalizace a stavby geometrického modelu prostředí. Jádrem této práce je kapitola 6, v které se budeme zabývat návrhem vlastní lokalizační metody. Kapitola 7 pak pojednává o vytváření geometrického popisu prostředí. V této části jsou popsány dvě původní metody vycházející z dávkového zpracování senzorických měření. Všechny vyvinuté metody byly implementovány a testovány na reálných robotických systémech. Výsledky experimentů a jejich vyhodnocení se věnuje kapitola 8. V posledních dvou kapitolách je pak celá práce shrnuta a dosažené výsledky porovnány s vytyčenými cíli. 3 4 Kapitola 2 Architektura a základní komponenty robotického systému V této kapitole se budeme zabývat architekturou autonomních mobilních robotů a popíšeme základní komponenty tvořící mobilní roboty, jejich funkci a činnost. Ukážeme možné přístupy k návrhu a tvorbě jednotlivých komponent tak, jak byly navrženy a publikovány různými autory a dále uvedeme problémy, které je nutno řešit při vlastním vývoji robotického systému. Architekturou mobilního robotu se rozumí systém hardwarových a softwarových komponent, které spolupracují a navzájem spolu komunikují. Vývoj robotických systémů je složitý a náročný, proto se inženýři zabývající se designem těchto systémů snaží architekturu robotu dekomponovat na jednodušší části (subsystémy), kde každá část řeší partikulární problém. Dekompozice, struktura a činnost jednotlivých subsystémů závisí na úkolech, které má konkrétní robot plnit a na prostředí, v kterém se pohybuje. Například architektura navržená pro teleoperované systémy bude nevhodná pro plně autonomní vozík. Z hardwarového hlediska můžeme robot rozdělit do následujících čtyř vrstev (Havel, 1980)(Dudek a Jenkin, 2000): • Motorický subsystém. Tato vrstva slouží k fyzickému pohybu robotu v prostředí. • Senzorický subsystém pomocí kterého robot získává informace o okolním prostředí. • Řídící (kognitivní) subsystém je počítač nebo skupina počítačů řídící činnost robotu. • Komunikační subsystém umožňující robotu komunikovat s lidskou obsluhou. Vazby mezi jednotlivými subsystémy jsou znázorněny na obrázku 2.1 2.1 Motorický subsystém Motorický systém slouží k fyzickému pohybu robotu v prostředí. Vzhledem k tomu, že 5 %&' ( $# " ! )*+ , Obrázek 2.1: Základní blokové schéma mobilního robotu mobilní roboty jsou nasazovány v různých aplikacích, bylo navrženo mnoho motorických systémů, které lze rozdělit do několika kategorií v závislosti na prostředí, v kterém se ten který robot pohybuje. Nejrozšířenějším typem jsou pozemní(terestriální) roboty, které se pohybují po pevném povrchu. Většina z nich je kolových a pásových, ale existují i roboty, jenž mohou chodit (s různým počtem nohou), šplhat, plazit se atd. Výhodou kolových a pásových robotů je jejich snažší ovládání, proti jejich použití naopak hovoří nemožnost pohybovat se v nerovném terénu. Akvatické roboty operují na vodní hladině nebo pod vodou. Tyto roboty používají pro svůj pohyb lodní šroub nebo vodní trysky. Akvatické roboty mají širokou možnost použití, neboť většina zemského povrchu je pokryta oceány, jejichž hlubiny jsou pro člověka nedostupné (Kim et al., 1999). Roboty pohybující se ve vzduchu napodobují letadla a ptáky - byly navrženy robotické helikoptéry, automaticky řízené padáky a roboty-letadla. Létající roboty mají s akvatickými mnoho společného, například nutnost pohánění i v situacích, kdy má robot pouze setrvat na místě. Příkladem létajícího robotu je autonomní helikoptéra vyvinutá na Carnegie Melon Univeristy (Miller et al., 1999). Vesmírné roboty jsou koncipovány pro pohyb v prostředí s malou gravitací, případně ve volném vesmíru. Jejich nasazení se předpokládá hlavně při vesmírných misích. Tyto roboty buď šplhají (např. po vesmírné lodi) nebo létají. Vývojem tohoto druhu robotů se zabývá například Space Robotic Laboratory na MIT (Dubowsky a Papadopoulos, 1993). V souvislosti s návrhem motorického subsystému se řeší problémy spojené s konstrukcí kinematického popisu robotu a jeho dynamiky. Toto téma je však mimo rozsah předkládané práce a v dalším se mu již věnovat nebudeme. Případným zájemcům doporučujeme k prostudování např. (Král et al., 1998) a (Král, 1998). 2.2 Senzorický subsystém Jak již bylo řečeno, jednou ze základních činností mobilního robotu je získávání a zpracování informací o prostředí, ve kterém se robot pohybuje. Tyto informace robot získává prostřednictvím různých čidel - senzorů. Senzory lze dělit na interní a externí. Interní čidla zjišťují interní parametry vlastního robotického systému, například polohu a rychlost robotu, stav vybití baterií, atd. 6 Externí senzory měří okolní svět robotu: rozměry, tvar, barvu a další fyzikální vlastnosti objektů v prostředí a obecné vlastnosti samotného prostředí (teplotu, zvuk, přítomnost různých chemických látek, . . .). Dále pak externí čidla mohou zjišťovat charakteristiky fyzikálních polí (elektromagnetické, magnetické, gravitační, . . .). Externí senzory můžeme dále dělit na kontaktní, tj. takové, které se při své činnosti dotýkají okolních objektů (např. nárazníky, taktilní receptory) a bezkontaktní. K bezkontaktním čidlům patří například sonarové a laserové hloubkoměry nebo kamery. Další dělení senzorů je na aktivní a pasivní. Aktivní senzory vysílají do prostředí energii nebo své okolí nějakým způsobem mění. Naproti tomu pasivní čidla pouze energii pasívně přijímají. Příkladem pasívního čidla je kamera, kdežto laserový hloubkoměr, který vysílá laserový paprsek a měří dobu jeho letu je aktivní. Některým senzorům pro lokalizaci a mapování se budeme podrobněji věnovat v kapitole 5.1. 2.3 Řídicí subsystém Kognitivní subsystém je tvořen počítačem nebo skupinou počítačů a realizuje veškerou poznávací, rozhodovací a řídicí činnost. V tomto subsystému se uchovávají a zpracovávají veškeré informace o stavu a poloze robotu a také znalosti, které robot získal během své činnosti. Z těchto znalostí si poté robot vytváří interní představu o svém okolí - tzv. model prostředí. Typickým výstupem řídicího subsystému je pak plán tvořený právě na základě modelu prostředí. #+'.1 &'( &) &%*+ #$% &'( &) &%*+ ,- ./ &'( &) &%*+ !" 0% - ./ &'( &) &%*+ Obrázek 2.2: Kognitivní systém založený na fungnční dekompozici První robotické systémy byly konstruovány hlavně k tomu, aby bylo možno získat reálná data ze senzorů a vlastní zpracování dat tak bylo podružné. Z toho vyplývá i to, že řídící subsystémy byly velice jednoduché a skládaly se z pevné sekvence volání jednotlivých modulů, kdy výstup jednoho modulu byl vždy vstupem modulu následujícího (Moravec, 1983). S dalším rozvojem robotiky a výpočetní techniky však byly na robotické systémy kladeny stále větší nároky a proto vznikl požadavek i na jejich dokonalejší architekturu. 7 V mnoha existujících systémech jsou implementovány architektury tzv. funkční (horizontální) dekompozice vycházející z klasické metody analýzy shora dolů (Hu a Brady, 1996). Řídicí činnost robotu je rozdělena na diskrétní množinu akcí a událostí, které na sebe navazují (získávání a zpracování informací ze senzorů, vytvoření modelu prostředí, plánování akcí robotu, vykonávání plánu a řízení pohybu). Na rozdíl od systémů založených na funkční dekompozici, které akce robotu plánují, v reaktivních systémech jednotlivé moduly přímo ovládají senzory i motorický systém robotu podle vlastních, předem daných nebo naučených schémat (Arkin a Murphy, 1990). Každému vstupu a vnitřnímu stavu robotu poté odpovídá konkrétní akce. Reaktivní řízení je inspirováno chováním jednoduchých živočichů. Akce robotu nejsou plánovány na základě složitého rozhodovacího procesu, ale předem definovanými schématy chování. Poté, co byly navrženy první robotické systémy, se ukázalo, že procedurální reprezentace není ideálním mechanismem pro řešení komplexnějších úkolů. Proto byly hledány alternativní postupy založené na formalismech logiky prvního řádu a deklarativním uvažování. Na těchto principech je postaven například systém FINDORDER napsaný v Prologu (Peng a Cameron, 1994), systém GOLOG (Levesque et al., 1997) využívající situační kalkulus nebo systém GRAMMPS (Generalized Robotic Autonomous Mobile Mission Planning System) postavený na formálních gramatikách (Brumitt a Stentz, 1998). Mnoho aplikací v mobilní robotice rovněž využívá poznatky z oblasti softcomputingu. Asi nejznámější je systém ALVINN pro řízení robotu ALV (Autonomous Land Vehicle) tvořený neuronovou sítí typu back-propagation (Pomerleau, 1993). Široké použití nalezly také genetické algoritmy, jimiž lze řešit problémy od řízení robotu na nízké úrovni, modelování chování senzorů až po plánování akcí na vyšší úrovni (Beauchemin a Barron, 1996) (Ram et al., 1994). V praxi je řídicí systém robotu většinou kombinací výše uvedených přístupů. Řídicí systém je rozdělen do vrstev, stejně jako je tomu u systémů založených na funkční dekompozici, přičemž k řešení jednotlivých vrstev se používají různé druhy architektur. Pro řízení na nízké úrovni, které vyžaduje rychlou reakci na omezenou množinu podnětů z okolního prostředí, je výhodná architektura reaktivních systémů. Pro plánování jednotlivých cest, kdy je potřeba analyzovat stav světa a plánovat cestu s ohledem na pohyblivé objekty, jsou využívány metody funkční dekompozice. Pro plánování akcí robotu, které povedou ke splnění cíle zadaného operátorem, jsou velmi vhodné metody plánování na vyšší abstraktní úrovni. Většina robotických systémů sestává z jednoho robotu, ale v posledních letech se řada výzkumníků začala zabývat rovněž vývojem týmů robotů kooperujících při řešení společného úkolu (prohledávání neznámého prostoru, uklízení specifikované oblasti, přemisťování objektů) (Parker, 1995) (Mataric et al., 1995) (Rus et al., 1995). Ačkoliv spolupráce několika robotů přináší některé výhody – jednotlivé roboty mohou být jednodušší, neboť mohou řešit jen dílčí úkoly, mohou se soustředit pouze na řešení parciálních úkolů, porouchání jednoho robotu nemusí vést k selhání celého systému, . . . – je nutno řešit problémy související s komunikací a koordinací akcí jednotlivých robotů. To vede k novým pohledům na architekturu řídícího systému (Jung a Zelinsky, 2000) (Arkin a Balch, 1998) (Vainio et al., 1998). 8 2.4 Komunikační subsystém Většina mobilních robotů musí komunikovat s lidskou obsluhou (operátorem) a to přinejmenším z toho důvodu, aby operátor mohl zadat úkol, který má robot plnit. V mnoha aplikacích operátor vkládá apriorní mapu okolí robotu a další informace o prostředí, v kterém se robot pohybuje. Může se též robota tázat na vlastnosti prostředí, polohu robotu v tomto prostředí a sledovat jeho vnitřní stavy a plány činností, které se robot chystá vykonat. Naopak, robotu by mělo být umožněno, aby kladl operátoru dotazy, potřebuje-li si doplnit informace, které mu k řešení dané úlohy chybí. Obrázek 2.3: Uživatelská rozhraní robotických systémů. Vlevo obrazovka systému ROBÍK vyvinutého na MFF UK v Praze, vpravo grafické okno řídícího systému COSYNA vzniklého na Katedře kybernetiky ČVUT. Je tedy zřejmé, že komunikace mezi lidskou obsluhou a operátorem není pouze jednostranná, ale má charakter dialogu. Technická řešení takového dialogu jsou rozličná a vyznačují se různým stupněm složitosti. Základním prostředkem pro komunikaci mezi mobilním robotem a člověkem, kterým je vybavena drtivá většina robotických systémů, se stal počítač. Dialog probíhá prostřednictvím grafického uživatelského prostředí sestávajícího typicky z 2D reprezentace prostředí se senzorickými měřeními, naplánovanou trajektorií robotu, jeho aktuální pozicí a dalších údajů popisujících stav robotu (viz obr 2.3). Složitější systémy umožňují vést dialog prostřednictvím textového okna, v kterém operátor píše v přirozeném jazyce jednoduché povely a dotazy a robot odpovídá (Torrance, 1994). Další možností komunikace (a pro člověka přirozenější) je použití přirozeného jazyka. Problematika zpracování a porozumění mluvené řeči se zatím jeví jako příliš složitá na to, aby konverzace mezi člověkem a robotem mohla probíhat bez omezení. V současné době se proto využívá přirozeného jazyka spíše ve formě jednoduchých povelů vybraných z předem definovaného slovníku („dopředuÿ, „dozaduÿ, „dolevaÿ, „dopravaÿ, „zastavÿ, atd.) (Jelínek a Kazakov, 1996) (Jelínek et al., 1998). 9 10 Kapitola 3 Definice problému Jedním z hlavních požadavků kladených na inteligentní mobilní roboty je schopnost poznávat prostředí, ve kterém se pohybují a vytvářet si o tomto prostředí vlastní představu (model). Součástí takového modelu musí být rovněž znalost vlastní polohy. Bez dostatečně přesné informace o své aktuální pozici není robot schopen budovat kvalitní model světa (mapu). Na druhou stranu, ke správnému určení polohy je nezbytná znalost prostředí. Je tedy zřejmé, že tyto dvě úlohy spolu úzce souvisí a nelze provádět jednu bez druhé. Právě otázkami souvisejícími se současnou lokalizací robotu a budování modelu světa se budeme zabývat v této práci. Jelikož problém současné lokalizace a mapování (SLAM) je velice široký a závisí na konkrétní konfiguraci robotického systému a na prostředí, ve kterém se robot pohybuje, uveďme nyní základní předpoklady specifikující problém trochu detailněji: • Uvažujme terestriální robot operující v běžném kancelářském prostředí a pohybující se na rovné, horizontální ploše (tj. vylučujeme např. schody, nakloněnou rovinu). • Objekty v prostředí robotu lze dostatečně přesně reprezentovat polygony, které vzniknou projekcí objektů do roviny, v níž se robot pohybuje. • Většina objektů je statická a detekovatelná senzory, kterými je robot vybaven. 3.1 Lokalizace Důležitým aspektem lokalizace polohy je to, zda známe pozici robotu alespoň přibližně či nikoliv. Případ, kdy apriorní informace o poloze robotu není k dispozici (např. pokud je robot poprvé nastartován nebo po kompletním selhání navigačního systému) bývá označován jako globální (absolutní) lokalizace nebo též „Lost Robot Problemÿ. Základní princip řešení této úlohy spočívá v získávání senzorických měření z několika různých pozic. Po každé změně polohy se vygenerují možné předpokládané pozice a porovnají se s kandidáty z předchozího kroku. Tímto procesem dochází k eliminaci možných pozic do té doby, než lze polohu určit jednoznačně (Dudek et al., 1995) (Gerecke, 1998). 11 Přístup založený na Markovovských modelech vychází z předchozího postupu s tím rozdílem, že v každém kroku počítá rozložení pravděpodobnosti pro všechny možné pozice (Fox et al., 1998). (Thrun et al., 2001) nevyjadřuje posteriorní pravděpodobnosti parametrickou formou, ale množinou náhodně zvolených příkladů, které požadovanou pravděpodobnost aproximují (lokalizace Monte Carlo). Olson se ve své práci (Olson, 2000) inspiroval hledáním vzorů v počítačovém vidění, kde se pro ohodnocení shody dvou obrázků používá Hausdorffova vzdálenost. Skutečná pozice robotu potom odpovídá takovému umístění mapy generované v aktuální pozici, které má nejmenší Hausdorffovu vzdálenost od dříve získané mapy prostředí. Častější a z hlediska SLAM i zajímavější je kontinuální (lokální) lokalizace, tj. korekce polohy během jízdy robotu. Proces kontinuální lokalizace se typicky skládá ze čtyř akcí, které se neustále cyklicky opakují: 1. Robot se přemístí z pozice A do pozice B. 2. Na základě znalosti pozice A, řídicích povelů pro motorický systém a případně informací z čidel měřících ujetou vzdálenost jsme schopni odhadnout novou polohu. 3. Robot provede senzorická měření. 4. Nyní je možné porovnáním naměřených senzorických dat s modelem světa korigovat odhad polohy. Z předchozího odstavce mimo jiné vyplývá, že během kontinuální lokalizace se poloha robotu nehledá v celém stavovém prostoru, ale pouze v nejbližším okolí pozice odhadnuté v kroku 2. Tím se stává tento problém lehčím než globální lokalizace, na druhou stranu je požadována mnohem větší přesnost. Obrázek 3.1: Proces kontinuální lokalizace 12 3.2 Stavba modelu světa Druhou součástí problému SLAM a zároveň jednou z klíčových úloh současné mobilní robotiky je stavba modelu světa. Bez alespoň částečné znalosti svého prostředí by robot nebyl schopen se v tomto prostředí bezkolizně pohybovat a plnit další úkoly. Volba struktury reprezentace prostředí závisí na druhu použitých senzorů, požadovaném stupni abstrakce a úloze, kterou konkrétní mobilní robot řeší. Jmenujme nyní alespoň nejrozšířenější typy modelů světa. Senzorické mapy obsahují buď přímo jednotlivá senzorická měření nebo tato měření nějakým způsobem zpracovaná. Typickým příkladem modelu zpracování senzorických dat jsou (pravděpodobnostní) mřížky obsazenosti (Elfes, 1989) (Elfes, 1990). Mřížkou se rozumí dvourozměrné pole buněk, kde každá buňka reprezentuje čtverec reálného světa a určuje pravděpodobnost, s jakou je v dané oblasti překážka. Výpočet pravděpodobnosti v každé buňce se skládá ze dvou kroků. Nejprve se vytvoří pravděpodobnostní model senzoru, který umožní určit hodnotu pravděpodobnosti v každé buňce pro jednotlivé senzorické měření a takto získané pravděpodobnosti se poté kombinují (např. pomocí Bayesova pravděpodobnostního přístupu, věrohodnostního přístupu Dempster-Shaferovi teorie nebo teorie fuzzy množin). Velmi efektivní reprezentací prostředí jsou geometrické mapy (Klapka a Majer, 1996) popisující objekty pomocí geometrických primitiv v kartézském souřadném systému: úseček, polygonů, oblouků, splinů, atd. Nad tímto popisem se často vytváří další struktury podporující plánování cesty robotu (např. grafy viditelnosti, obdélníková dekompozice). Topologické mapy neuchovávají informace o absolutních souřadnicích objektů, ale zaznamenávají topologické vztahy mezi významnými body v prostředí (Dudek et al., 1993) (Lefèvre et al., 1994). Mapa pak má formu grafu, kde vrcholy reprezentují detekované body v prostředí a hrany vztahy mezi těmito body. Pro komunikaci s uživatelem na nejvyšším stupni abstrakce se používají symbolické mapy (Malý a Štěpánková, 2000) obsahující informace, které robot nemůže zjistit svými senzory, ale pomocí kterých lze zadávat příkazy v přirozeném jazyce. Implementace tohoto typu map bývá prováděna v některém deklarativním jazyku - v Prologu nebo Lispu. Každý z uvedených modelů má svoje klady i zápory. Senzorické umožňují pracovat s nepřesnou senzorickou informací, ale jsou naopak velmi náročné na paměť. Topologické reprezentace lze používat pro popis velkých prostorů, neboť jejich paměťová náročnost je malá. Navíc jejich tvorba není na rozdíl od geometrických a senzorických map závislá na znalosti polohy. Na druhou stranu jsou nepoužitelné pro přesnou lokalizaci a zjišťování metrických informací o objektech. Výhodou geometrických map je to, že jsou srozumitelné pro člověka, který tak může apriorní informace o objektech v okolí robotu zadávat právě formou geometrické reprezentace. Navíc pro mnoho budov je geometrická mapa hotova ve formě architektonických plánů. Velmi lákavou se ukazuje možnost ovládat robot v přirozeném jazyce, což je doména symbolických map. Vývoj v této oblasti však teprve probíhá, takže jejich nasazení v reálných aplikacích je v současné době minimální. Dosud vyvinuté systémy často kombinují dva modely světa. Senzorickou reprezentaci v tomto přístupu lze chápat jako krátkodobou paměť, neboť zaznamenává informace pouze 13 o bezprostředním okolí robotu. Proto se také někdy nazývá lokální mapa prostředí. Globální model obsahující popis celého světa robotu je realizován topologickou nebo geometrickou mapou. Zatímco lokální mapa slouží zejména k řešení kolizních situací a k detekci překážek, dlouhodobé plánování se provádí na globální mapě. V této práci se zaměříme na přenos informace ze senzorické reprezentace do geometrické. Konkrétně se budeme věnovat získávání geometrického popisu hran objektů ve formě úseček a tvorbu geometrické mapy prostředí ze senzorických map a to buď přímo z nezpracovaných informací z čidel nebo z již vytvořených mřížek obsazenosti. 14 Kapitola 4 Cíle disertace Cílem této disertační práce je: 1. Podat přehled o senzorických systémech používaných v oblasti mobilní robotiky pro lokalizaci polohy robotu a pro vytváření modelu prostředí, popsat základní princip jednotlivých senzorů a uvést jejich základní klady a nedostatky pro řešení zmíněných úloh. Shrnout v současné době používané metody kontinuální lokalizace a tvorby geometrického modelu okolního prostředí robotu, které pracují s daty ze senzorů měřících vzdálenost od překážky. 2. Na základě studia používaných metod navrhnout novou metodu kontinuální korekce polohy pouze na základě změřených vzdáleností robotu od okolních překážek. Základní požadavky, které by měla metoda splňovat, jsou rychlost výpočtu a přesnost určení polohy. V neposlední řadě by neměla být metoda náchylná k nepřesnostem v senzorických datech a měla by být schopná korigovat i větší odchylky pozic mezi dvěmi měřeními. 3. Navrhnout novou metodu pro vytváření geometrického popisu prostředí, ve kterém se robot pohybuje. Tento popis by měl být tvořen s ohledem na jeho další použití v symbolických mapách, které vyžadují, aby objekty v prostředí byly reprezentovány polygony. Metoda by měla pracovat ve všech prostředích a být dostatečně robustní vůči šumu senzorických dat. 4. Experimentálně ověřit výše uvedené metody na reálném systému v různých typech prostředí a navržené metody kvalitativně ohodnotit. 15 16 Kapitola 5 Stav řešení ve světě V této kapitole se nejprve budeme zabývat popisem nejrozšířenějších senzorů, které se v oblasti mobilní robotiky používají pro určení polohy robotu a pro tvorbu modelu světa. Popíšeme základní princip jednotlivých senzorů a nejdůležitější přednosti a nedostatky jejich nasazení při lokalizaci a mapování. Dále se budeme blíže věnovat metodám kontinuální lokalizace pomocí senzorů měřících vzdálenost od překážky v daném směru (sonarové a laserové hloubkoměry). Tato část obsahuje přehled metod, které byly v posledních deseti letech vyvinuty různými autory. Závěrečná část této kapitoly pak bude věnována popisu ve světě používaných algoritmů získávání geometrického popisu překážek ze sonarových a laserových měření a metod stavby modelu okolního prostředí robotu. 5.1 Senzory pro lokalizaci a mapování 5.1.1 Odometrie Nejjednodušší a tedy i nejrozšířenějším senzorem pro určování polohy je odometrie měřící počet pulsů generovaných otočením kol robotu. Na základě znalosti velikosti kola a kinematiky robotu lze jednoduše určit změnu pozice v určitém časovém intervalu. Absolutní poloha se potom získá integrací jednotlivých změn pozice: ~x1 = ~x0 + kde t1 . d~ x dt Z t1 d~x t0 dt dt, je změna pozice (a tedy rychlost) a x~0 a x~1 jsou pozice robotu v čase t0 respektive Pro nejběžnější systém se dvěma koly na jedné nápravě lze polohu vyjádřit následující soustavou rovnic: nr + nl xt = xt−1 + K cos(α) 2 nr + nl sin(α) yt = yt−1 + K 2 nr + nl αt = αt−1 + K , l 17 kde [xt , yt , αt ] a [xt−1 , yt−1 , αt−1 ] jsou souřadnice robotu v kartézské soustavě souřadnic a jeho otočení v čase t a t − 1. nl a nr je počet pulsů z levého a pravého čidla v intervalu < t − 1, t >, l vzdálenost mezi koly a K je konstanta definovaná takto: K= 2πr , P kde r označuje poloměr kola a P počet pulsů na jednu otáčku kola. Odometrie poskytuje velmi dobrou krátkodobou přesnost, je levná a umožňuje aktualizovat pozici s velkou frekvencí. Na druhou stranu, hlavní idea tohoto senzoru spočívající v integraci změn pozice v čase vede nevyhnutelně ke sčítání (akumulaci) chyb. Akumulace chyb v orientaci robotu způsobuje v konečném důsledku velkou chybu v pozici, která se proporcionálně zvětšuje s délkou ujeté dráhy. Největším problémem je to, že odometrie vychází z předpokladu, že otáčky motorů mohou být přesně převedeny na lineární změnu pozice. Toto bohužel platí jen v omezené míře, neboť na přesnost měření působí řada nejrůznějších faktorů způsobujících dva druhy chyb: systematické a nesystematické. Systematické chyby měření jsou způsobené nedokonalým návrhem a implementací kinematického systému robotu. Chyby tohoto typu závisí na specifikaci vozítka a většinou zůstávájí v čase konstantní, takže mohou být jednoduše detekovány a eliminovány. Jednoduchý postup, jak kompenzovat systematické chyby je popsán v (Borenstein a Feng, 1996). Hlavní myšlenka spočívá v měření odchylky pozice robotu během provádění definované trajektorie a v následné kalkulaci parametrů systému tak, aby odchylka byla minimální. Nejčastější příčiny vedoucí k systematickým chybám jsou následující: • rozdílný průměr kol. • použití průměrné hodnoty velikosti, která se většinou nepatrně liší od skutečné • nepřesnost v určení vzdálenosti kol • vychýlení kol v ose • konečné rozlišení snímače otáček • omezená maximální vzorkovací frekvence snímačů Nesystematické chyby měření jsou vyvolány nepředpokládanými vlastnostmi prostředí, které během jízdy působí na robotický systém a chováním robotu v nestandardních situacích. Mezi hlavní příčiny tohoto druhu chyb patří: • nerovný nebo kluzký povrch po kterém se robot pohybuje • neočekávané objekty na podlaze • zrychlení nad možnosti vzorkování měřícího systému • rychlé zatáčení vedoucí ke smyku • interakce s jinými objekty v prostředí (např. náraz do překážky) • deformace kol a podložky při zatížení 18 QDPHQiWUDMHNWRULH VNXWHþQiWUDMHNWRULH \>P@ \>P@ QDPHQiWUDMHNWRULH VNXWHþQiWUDMHNWRULH [>P@ [>P@ QDPHQiWUDMHNWRULH VNXWHþQiWUDMHNWRULH \>P@ [>P@ Obrázek 5.1: Vývoj systematické chyby způsobené rozdílným průměrem kol. Zelená křivka zobrazuje skutečnou trajektorii robotu, modrá pak trajektorii naměřenou odometrií. Poloměr kola byl uvažován 10 cm, přičemž skutečný průměr pravého kola je o 0.5 mm větší. Vzdálenost mezi koly je jeden metr a robot se pohybuje rychlostí 1 otáčka/s. Po 5 minutách jízdy, kdy robot ujel přibližně 188 metrů byla chyba polohy od 754 cm do 867 cm a otočení 54◦ . Nesystematické chyby se vyskytují neočekávaně a je tedy velice problematické tento druh chyb detekovat a eliminovat. Navíc jsou i v krátkém časovém okamžiku schopné způsobit poměrně velkou odchylku mezi naměřenou a skutečnou pozicí. Proto se často současně s odometrií používají další senzory a metody. 5.1.2 Akcelerometry Další ze senzorů, který neměří okolní prostředí, ale změny některé veličiny charakterizující pohyb, je akcelerometr detekující zrychlení v jedné ose. Pro výpočet délky ujeté trajektorie je tedy nutné dvojí integrace. První integrací se získá rychlost objektu, na kterém je 19 akcelerometr umístěn: v(t) = Z t 0 a(t)dt, kde a(t) (v(t)) je zrychlení, respektive rychlost v čase t. Pro ujetou dráhu d(t) potom platí, že je integrálem rychlosti: d(t) = Z t 0 v(t)dt = v(t) = Z tZ t 0 0 a(t)dtdt. Konstrukce akcelerometru je založena na čipu, který má v sobě zaintegrováno malé hmotné tělísko (”setrvačnou hmotnost”), které působí na speciální tlakové senzory. Z naměřeného tlaku lze poté snadno odvodit zrychlení. Alternativní řešení používají hmotné tělísko jako desku kondenzátoru a odečítají kapacitu. Největší chyba čidla je způsobena právě jeho konstrukcí, kdy se tělísko při nulovém zrychlení nevrátí přesně do nulové pozice, ale zůstává mírně vychýleno (tzv. drift). Vzhledem k dvojné integraci i malá chyba dramaticky zvyšuje přesnost naměřené trajektorie, což často vede k nepoužitelnosti tohoto senzoru pro přesné zjišťování polohy v delších časových intervalech. QDPHQiU\FKORVW VNXWHþQiU\FKORVW GUiKD>P@ U\FKORVW>PV@ QDPHQiGUiKD VNXWHþQiGUiKD þDV>V@ þDV>V@ Obrázek 5.2: Data z akcelerometru. Vlevo porovnání skutečné a naměřené rychlosti, vpravo skutečně ujetá vzdálenost a vzdálenost získaná z akcelerometru. Jedna z možností jak eliminovat drift spočívá v kombinaci akcelerometru s jiným čidlem (např. odemetrem) a následném odhadu driftu na základě porovnání měření obou senzorů.(Mázl et al., 2002) Na obrázku 5.2 jsou zobrazeny rychlosti a vzdálenosti z akcelerometru umístěného na lokomotivě. V tomto případě byl drift odhadnut jako konstantní pro celou dobu jízdy ze znalosti charakteristik senzoru. Jak již bylo řečeno, akcelerometr měří zrychlení pouze v jednom směru a proto pro určení polohy v dvojrozměrné soustavě souřadnic je potřeba dvou čidel umístěných kolmo na sebe. V některých systémech se též používá kombinace akcelerometru s kompasem nebo gyroskopem, které měří absolutní natočení respektive úhlové zrychlení. 20 5.1.3 Sonarový hloubkoměr Začátkem devatesátých let byl v oblasti mobilní robotiky nejpoužívanějším senzorem pro mapování a lokalizaci sonar, který patří ke skupině čidel emitujících energetický puls. Tento puls (v případě sonaru ultrazvukový signál) se v odrazí od nejbližší překážky a vrátí se zpět k senzoru. Na základě změřené doby letu je tak možné zjistit vzdálenost překážky ve směru vyslaného pulsu. 90 120 60 150 30 180 0 210 330 240 300 270 Obrázek 5.3: Tvar vyzařovaného signálu sonarového hloubkoměru Polaroid 6500. Výhodou senzorů měřících dobu letu je jednoduchá interpretace dat z nich získaných. Absolutní vzdálenost od překážky se totiž získá přímo bez složité analýzy výstupních hodnot senzoru. Potenciální chyby sonarových systémů lze rozdělit do následujících kategorií: • Změny rychlosti šíření signálu. Rychlost šíření zvuku se mění s typem prostředí, ve kterém sonar operuje, zejména pak na teplotě, tlaku a vlhkosti. Jelikož jsou většinou tyto vlastnosti prostředí neznámé a během měření se mění, naměřená vzdálenost je zatížená nepřesností. Například změna teploty o 1◦ C může na vzdálenost 10 metrů způsobit chybu až 30cm (Everett, 1985). • Povrch překážek Nezbytnou podmínkou pro detekci překážky a přesné změření její vzdálenosti od sonaru je to, aby se ultrazvukový signál od této překážky odrazil. Překážky vyrobené z materiálů pohlcujících zvuk (např. textilie) tuto podmínku nesplňují a proto jsou sonarem špatně detekovatelné. • Vícenásobné odrazy Utrazvukový signál se chová podle zákona dopadu a odrazu. V případě, že nedopadne na překážku kolmo, neodrazí se zpět k sonarovému čidlu, ale „putujeÿ prostředím. Při vhodné konfiguraci prostředí (zejména v rozích) může dojít k tomu, že se signál vrátí k čidlu až po několikerém odrazu od překážek. Při vyhodnocování vzdálenosti je poté překážka chybně detekována za původní překážkou ve vzdálenosti odpovídající polovině délky trajektorie, po které se signál pohyboval. 21 • Tvar signálu Jelikož zvukový signál se nešíří po přímce, ale vyzařovací charakteristika má tvar několika laloků (viz obrázek 5.3), může nastat situace, kdy není detekován objekt ležící přímo v ose senzoru, ale některá bližší překážka nacházející se v prostoru signálu. Z vyzařovacích charakteristik je zřejmé, že čím dále bude překážka od senzoru a čím širší bude vyzařovací charakteristika, tím větší bude velikost prostoru, ve kterém bude překážka detekována. Je důležité si uvědomit, že tvar vyzařovacího laloku je trojrozměrný a sonarem lze tedy získat informace i o objektech ležících mimo rovinu umístění senzoru. To je vhodné zejména v případech, kdy se tvar překážek mění s jejich výškou jako jsou například stůl nebo židle. Jeden sonar je schopný měřit vzdálenost pouze v jednom směru, což je pro robotické aplikace velmi limitující. Některé reálné systémy proto používají otočný sonar, který se otáčí kolem své osy v diskrétních krocích a v každé poloze provede měření. Jiným řešením je rozmístit několik sonarů po obvodu robotu. 5.1.4 Laserový hloubkoměr V posledních letech si popularitu čím dál více získává laserový hloubkoměr. Tento senzor rovněž pracuje na principu měření doby letu vyslaného signálu, v tomto případě laserového paprsku (některé typy neměří dobu letu, ale fázový posuv mezi vyslaným a přijmutý signálem). Paprsek běžných laserů je navíc rozmítán v jedné rovině, což znamená, že v jednom okamžiku získáme informace o vzdálenostech v celém itervalu úhlů. Například π hloubkoměr SICK-PLS 100 je schopen současně provést 181 měření v intervalu < −π 2 , 2 > s rozlišením půl stupně. Vzhledem k tomu, že šířka laloku vyzařovací charakteristiky laseru je zanedbatelná, lze tímto senzorem měřit pouze objekty v rovině rozmítání paprsku, přičemž jedním paprskem se detekuje objekt ležící v jeho ose. Rovněž ostatní chyby popsané pro sonarový dálkoměr se u laseru nevyskytují. Hloubkoměry jsou schopny v běžném kancelářském prostředí detekovat objekty s jakýmkoliv povrchem. Také změny vlastností prostředí jako teplota, tlak a vlhkost nemají na měření pozorovatelný vliv. Podrobněji se některými vlastnostmi konkrétního laserového hlubkoměru SICK-PLS 100 budeme zabývat v kapitole 8 v souvislosti s popisem testovací platformy, na které jsme prováděli experimenty. 5.1.5 Další senzory V oblasti mobilní robotiky se vyskytuje velké množství dalších typů senzorů. Na tomto místě zmiňme alespoň krátce některé z nich. Na podobném principu jako akcelerometry pracují gyroskopy s tím rozdílem, že gyroskop měří úhlové zrychlení. Tímto senzorem lze tedy získat informaci o natočení robotu. Dalšími zařízeními měřícími orientaci jsou compasy a inklinometry. Zatímco první z nich zjišťuje svou orientaci vzhledem k magnetickému poli země, druhé čidlo měří své naklonění vůči vektoru gravitačnímu zrychlení. 22 Zcela odlišný způsob určování polohy používají systémy založené na tzv. majácích. Základní princip spočívá v tom, že senzor přijímá signál (typicky vzdálenost) od několika majáků rozmístěných v jeho okolí. Za předpokladu znalosti poloh jednotlivých majáků a vzdálenosti senzoru od nich lze triangulací určit i polohu senzoru. Nejznámnějším představitelem tohoto typu navigace je GPS (Global Positioning System) - celosvětový satelitní systém určování polohy. Infračervená proximitní čidla jsou další z řady senzorů měřících vzdálenost a mohou pracovat ve dvou módech. V prvním provádějí pouze detekci výskytu objektu v pevně nastavené vzdálenosti a jejich činnost tak lze přirovnat k bezkontaktnímu nárazníku. Ve druhém módu jsou infračervená čidla schopna v omezeném rozsahu (řádově desítky centimetrů) měřit vzdálenost od překážek. Při výčtu senzorů používaných v mobilní robotice nelze zapomenout na jeden z nejrozšířenějších - kameru, kterou byly vybaveny již první robotické systémy jako Shakey, CMU Rover nebo Standford cart. Kamera poskytuje značné množství dat, jejichž zpracování bývá složité a časově náročné, navíc i odlišné od způsobu zpracování dat ze senzorů měřících vzdálenost, a proto kamerám věnujeme v této práci menší pozornost, než jaký je jejich skutečný význam. 5.2 5.2.1 Metody kontinuální lokalizace polohy Základní pojmy a definice Než přistoupíme k vlastnímu popisu jednotlivých tříd lokalizačních algoritmů, definujme některé základní pojmy, které budeme v této kapitole používat. Trojici (x, y, φ) nazveme pozicí (polohou) robotu, jestliže (x, y) ∈ R2 jsou souřadnice robotu v kartézské soustavě souřadnic a φ ∈ h0, 2π) jeho natočení. Jak již bylo uvedeno dříve, naprostá většina robotů bývá vybavena senzorickým systémem. Obecně se souřadnice senzorů nemusí shodovat se souřadnicemi robotu. Vzájemnou tranformaci těchto souřadných systémů lze ale jednoduchým způsobem odvodit, a proto v dalším textu považujme bez újmy na obecnosti souřadnice senzoru ekvivalentní souřadnicím robotu. Výstupem senzorů měřících vzdálenost od překážek, jejichž zpracování je hlavní náplní této práce, je vektor vzdáleností senzoru od nejbližšího objektu v daném směru. Abychom mohli s těmito daty dále pracovat, zavedeme pojem senzorický scan. (Senzorický) scan S je dvojice (P, M ), kde P je poloha robotu a M množina dvojic mi = (αi , ri ). Každá dvojice (αi , ri ) reprezentuje jedno senzorické měření, kde ri ∈ R je naměřená vzdálenost od objektu k senzoru a αi ∈ h0, 2π) je úhel, který svírá měřící paprsek s osou senzoru. Při zpracování scanu se v metodách lokalizace a mapování často vyžaduje, aby byl scan vyjádřen ve formě kartézských souřadnic bodů reprezentujících jednotlivá měření. Transformace mezi oběmi vyjádřeními se provede podle následujícího vztahu: [xi , yi ] = [cos(φ + αi )ri + x, sin(φ + αi )ri + y], 23 kde (x, y, φ) je poloha robotu, (αi , ri ) senzorické měření a [xi , yi ] souřadnice bodu v kartézských souřadnicích. Jednou z možností reprezentace prostředí, ve kterém se robot pohybuje, jsou tzv. mřížky obsazenosti (Elfes, 1990), (Abidi a Gonzalez, 1992). Prostředí je dekomponováno na stejně velké části typicky čtvercového tvaru, přičemž mřížka obsazenosti je matice, jejíž každý prvek nese informaci o pravděpodobnosti obsazení dané části prostředí objektem. Tato informace je budována postupně z měření získaných z různých pozic robotu, případně i z více senzorů. (Pravděpodobnostní) mřížkou obsazenosti rozumíme dvojrozměrnou čtvercovou matici m11 , ..., m1n M = ...... ...... ...... , mn1 , ..., mnn kde mxy ∈ h0, 1i pro všechna x, y ∈ {1, . . . , n}. Číslo n nazveme rozměrem mřížky obsazenosti. 5.2.2 Lokalizace na pravděpodobnostních mřížkách obsazenosti Mnoho postupů používajících mřížku obsazenosti jako reprezentaci prostředí provádí lokalizaci hledáním optimální korespondence mezi lokální a globální mřížkou. Zatímco lokální mřížka je generována pouze z aktuálního senzorického měření, globální mřížka je tvořena během jízdy robotu integrací všech měření. Úloha lokalizace pak spočívá v nalezení takové transformace lokální mřížky skládající se z posunutí o vektor (∆x, ∆y) a otočení ∆φ takové, aby si odpovídající si buňky mřížek byly co nejvíce podobné. Obrázek 5.4: Protože souřadné systémy lokální a globální mřížky se liší, každá buňka jedné mřížky překrývá buňky mřížky druhé. Formálně lze lokalizaci na mřížkách definovat jako optimalizační úlohu: max corr(t(L), G), t (5.1) kde L a G označuje lokální, respektive globální mřížku mřížku obsazenosti, corr korelační funkci a t transformaci. 24 Vzhledem k tomu, že po transformaci nemají lokální a globální mřížka stejný souřadný systém, dochází k tomu, že se buňky obou mřížek překrývají (viz obr. 5.4) a nelze tedy jednoznačně určit, které buňky si navzájem odpovídají. V (Yamauchi a Langley, 1997) se pro každou buňku Lxy v lokální mřížce vypočítá její geometrický střed cxy . Korespodující buňka v globální mřížce je potom taková, která obsahuje střed cxy . Robustnější technika pro určení korespondencí mezi buňkami je popsána v (Thrun, 1998). Jak ukazuje obrázek 5.4, každá buňka Gxy globální mřížky je překrytá několika buňkami transformované lokální mřížky - LTxi yi . Globální buňka Gxy je potom porovnávána s fiktivní buňkou LFxy vzniklou interpolací hodnot čtyř nejbližších buněk v lokální mřížce: P4 LFxy = T i=1 |x − xi ||y − yi |Lxi yi . P4 i=1 |x − xi ||y − yi | Klíčovou výhodou takto definované interpolace oproti výběru pouze nejbližší hodnoty je to, že interpolační funkce je hladká a diferencovatelná. Díky tomu lze pro výpočet maxima ve vztahu 5.1 použít některou sofistikovanější optimalizační metodu. Poslední otázkou zůstává výpočet podobnosti dvou mřížek. Yamauchi a Langley (Yamauchi a Langley, 1997) počítají pro každý pár odpovídajících si buněk následující metriku: 1 1 jestliže LFxy > p0 a Gxy > p0 jestliže LFxy < p0 a Gxy < p0 corrY am (LFxy , Gxy ) = 1 jestliže LFxy = p0 a Gxy = p0 0 jinak, kde p0 je apriorní pravděpodobnost, že buňka odpovídá prostoru obsazenému překážkou. Jinými slovy, dvě buňky si odpovídají, jestliže pravděpodobnost obsazení překážkou je u obou větší než apriorní nebo u obou současně menší, případně do obou buněk nezasáhlo žádné senzorické měření. Celková korespondence dvou mřížek je sumací přes všechny odpovídající si buňky: corrY am (LF, G) = n X n X corrY am (LFxy , Gxy ) x=1 y=1 Moravec a Blackwell (Moravec a Blackwell, 1992) vycházejí ze skutečnosti, že pravděpodobost obsazení obou korespodujících buněk je dána jejich součinem a pravděpodonost, že jsou obě volné součinem jejich doplňků. Pravděpodonost, že obě mřížky reprezentují to samé, je pak dána vztahem: corr∗ M or (LF , G) = n Y n ³ Y ´ LFxy Gxy + (1 − LFxy )(1 − Gxy ) (5.2) x=1 y=1 Obecně má hodnota corr∗ M or definovaná vztahem 5.2 velmi malou hodnotu, proto se tento výraz ještě logaritmuje. Navíc přidáním jedničky ke každému činiteli dosáhneme toho, že korelace buňek s největší jistotou (tedy mající hodnotu 0 nebo 1) bude 1, zatímco 25 pro buňku s neznámým stavem (0.5) bude korelace při porovnání s libovolnou buňkou nulová: F corrM or (L , G) = n + log2 n Y n Y (LFxy Gxy + (1 − LFxy )(1 − Gxy )) = x=1 y=1 = n X n X (1 + log2 (LFxy Gxy + (1 − LFxy )(1 − Gxy ))) x=1 y=1 Hlavní nevýhodou lokalizace na základě porovnávání mřížek je velká výpočetní složitost (pro každý krok optimalizačního algoritmu O(n2 ), kde n je velikost mřížky), kterou lze sice snížit zvětšením rozměrů jedné buňky mřížky a tím i zmenšením velikosti celé mřížky, ale pouze na úkor přesnosti určení polohy. Proto se někteří autoři snaží nálézt vylepšení výše uvedených metod, které by byly méně výpočetně náročné. Schiele a Crowley (Schiele a Crowley, 1994) popisují tři různé modifikace předchozích algoritmů, kdy jsou z mřížky obsazenosti extrahovány informace o hranicích překážek ve formě přímkových úseků (segmentů). První přístup hledá korespondence mezi úseky získanými z lokální a globální mřížky. Na dvojici nejvíce si odpovídajících segmentů jsou poté aplikovány dva nezávislé Kalmanovy filtry. První z nich koriguje orientaci robotu, zatímco druhý jeho polohu. Další metoda extrahuje úseky pouze z lokální mřížky a hledá korelaci mezi extrahovanými úseky a globální mřížkou. K tomu se vytváří tzv. maska segmentu obsahující pravděpodobnosti lokální mřížky ležící „podÿ extrahovaným segmentem. Poté se hledá taková transformace skládající se z otočení a posunutí segmentů, aby se odpovídající hodnoty v masce a globální mřížce co nejvíce shodovaly. Princip poslední modifikace je stejný jako v předešlém případě s tím rozdílem, že se hledá korespondence mezi lokální mřížkou a segmenty získanými z globální mřížky. Zcela jiný přístup popisují Ducket a Nehmzov (Duckett a Nehmzow, 1999a) (Duckett a Nehmzow, 1999b), kteří neporovnávají přímo mřížky obsazenosti, ale páry histogramů generované z těchto mřížek. Základním předpokladem jejich postupu je znalost orientace robotu, jenž lze získat například použitím kompasu. Každá z pravděpodobnostních mřížek M ∈ {L, G} se nejprve převede na tříhodnotovou mřížku M3 se stavy Obsazeno (O), Volno (V) a Neznámo (N) jednoduchou segmentací: O jestliže Mxy > 0.5 3 N jestliže Mxy = 0.5 Mxy = V jestliže M < 0.5, xy Ve druhém kroku se poté pro nově vzniklé tří-hodnotové mřížky vytvoří dva histogramy - řádkový (H r = (Hxr )nx=1 ) a sloupcový (H s = (Hys )ny=1 ) sečtením počtu obsazených, volných a neznámých buněk v každém sloupci, respektive každém řádku (viz též obrázek 5.5): Hxr = (Oxr , Nxr , Vxr ) ³ Hys = Oys , Nys , Vys ´ µ ¯n on ¯¯ ¯¯n on ¯¯ ¯¯n on ¯¯ ¶ ¯ ¯ M3 = O ¯ , ¯ M3 = N ¯ , ¯ M3 = V ¯ xy xy xy ¯ y=1 ¯ ¯ y=1 ¯ ¯ y=1 ¯ ³ ¯n on ¯ ¯n on ¯ ¯n on ¯ ´ ¯ ¯ ¯ ¯ ¯ ¯ = ¯ M3xy = O ¯ , ¯ M3xy = N ¯ , ¯ M3xy = V ¯ = x=1 26 x=1 x=1 Obrázek 5.5: Tří-hodnotová mřížka obsazenosti a histogramy. Obsazené buňky jsou zobrazeny bíle, volné černě a neznámé hodnoty jsou reprezentovány šedě. Korespondence dvou řádkových histogramů H 1 = (Ox1 , Nx1 , Vx1 ) a H 2 = (Ox2 , Nx2 , Vx2 ) je vypočítána následujícím vztahem: corrDuc (H 1 , H 2 ) = n X (min(Ox1 , Ox2 ) + min(Ux1 , Ux2 ) + min(Nx1 , Nx2 )). x=1 Pro zjištění posunu polohy robotu v x-ovém směru se posouvá histogramem H 2 a hledá se takové posunutí ∆x, pro které funkce corrDuc nabývá maxima. Hodnoty elementů histogramů, které se díky posunutí nepřekrývají, jsou definovány jako neznámé. Korespondence sloupcových histogramů se vypočte obdobným způsobem jako pro řádkové, čímž se získá hodnota posunutí v y-ovém směru ∆y. Hledaná transformace polohy robotu je pak určena posunutím (∆x, ∆y). 5.2.3 Metody založené na porovnávání sad nezpracovaných senzorických měření Další třídou lokalizačních metod jsou postupy pracující přímo z hrubými senzorickými daty. Vstupem algoritmu je tedy dvojice scanů - referenční S ref a aktuální S akt . Problém lokalizace v tomto případě spočívá v hledání nejlepšího umístění aktuálního scanu vzhledem k referenčnímu tak, aby se minimalizovala suma kvadrátů vzdáleností odpovídajících si bodů v referenčním a aktuálním scanu. Lu a Milios presentují v (Lu a Milios, 1994) iterativní algoritmus, jehož idea je následující: 1. Referenční scan S ref se aproximuje křivkou K ref tak, že sousední body ve scanu se spojí úsečkou. 27 2. Pro každý bod Pi ∈ S akt se nalezne korespondující bod Pi0 ∈ K ref . 3. Ze všech nalezených dvojic odpovídajících si bodů se metodou nejmenších čtverců určí relativní otočení ∆φ a posunutí T , které se získají minimalizací funkce E: E(φ, T ) = n X |Pi M∆φ + T − Pi0 |2 , (5.3) i=1 kde M∆φ je transformační matice popisující otočení o úhel ∆φ: " M∆φ = cos(∆φ) sin(∆φ) − sin(∆φ) cos(∆φ) # . 4. Tento postup se iterativně opakuje tak dlouho, dokud nekonverguje. Klíčovým problémem se pro porovnávání dvou scanů jeví nalezení korespondencí mezi jednotlivými body obou scanů. Obecně používané pravidlo k danému bodu z jednoho scanu vybere nejbližšího souseda z druhého scanu. Toto pravidlo nazývané pravidlo nejbližšího bodu (closest point rule) je ilustrováno na obrázku 5.6(a). Výše popsaný postup je specíálním případem algoritmu ICP (iterative closest point) vyvinutým Beslem a McKayem. Dá se dokázat (Besl a McKay, 1992), že pro pravidlo nejbližšího bodu a distanční funkci definovanou v 5.3 konverguje ICP monotónně k lokálnímu minimu. Jak ukázaly experimenty, pokud je rotace ∆φ malá, tento algoritmus pracuje velmi dobře. Nevýhodou ICP je to, že konverguje velmi pomalu. To je způsobeno tím, že páry generované pravidlem nejbližšího bodu mají nekonzistentní směry (viz obr. 5.6(a)), což vede k tomu, že je informace o rotaci téměř nulová. Další problém nastává, pokud se aktuální řešení přiblíží k lokálnímu minimu. I v tomto případě je rychlost konvergence velmi malá. Malou rychlost konvergence v blízkosti lokálního minima lze zvýšit (Besl a McKay, 1992), ale problém s rotací jednoduše odstranit nelze. Proto Lu a Milios navrhli další kritérium a nazvali ho pravidlo podobného dosahu (Matching range point). Toto kritérium upřednostňuje rotační složku oproti translační. Předpokládejme bod P = (α, r) ∈ S akt a jemu odpovídající bod P 0 = (α0 , r0 ) = P M∆φ + T ∈ K ref . Pokud zanedbáme posunutí, pak r ≈ r0 . Na druhou stranu, úhly α a α0 jsou svázány vztahem α = α0 + ∆φ. To znamená, že odpovídající si body mají přibližně stejnou naměřenou vzdálenost od senzoru a jejich úhly reprezentující tyto body v polárních souřadnicích se liší o ∆φ. Lze předpokládat, že i v případě, kdy mezi scany bude malé posunutí, bod P 0 koresponduje s P , pokud mají stejnou vzdálenost od senzoru. Aby bylo zajištěno, že pravidlo najde správnou korespondenci, musíme uvažovat pouze body P 0 , jejichž úhel α0 se od α liší o hodnotu ±Φ. Φ je konstanta definující toleranci. Pravidlo podobného dosahu lze tedy definovat takto: Pro bod P = (α, r) ∈ S akt je korespondující bod P 0 = (α0 , r0 ) ∈ K ref , pro který platí, že |r − r0 | je minimální pro všechny body splňující |α − α0 | ≤ Φ. 28 (a) (b) Obrázek 5.6: Pravidla pro hledání korespondencí. Vlevo pravidlo nejbližšího bodu, vpravo pravidlo podobného dosahu. Zelená elipsa reprezentuje referenční scan proložený úsečkami, modré body aktuální scan a křížek polohu robotu. Obrázek 5.6(b) ukazuje příklad použití pravidla podobného dosahu pro scany ve tvaru elipsy. Je vidět, že vektory spojující korespondující body poměrně přesně indikují rotační složku transformace, což vede k rychlé konvergenci rotace. Naopak translační složka konverguje pomaleji než u algoritmu ICP. Protože pravidlo nejbližšího bodu hledá velmi rychle posunutí mezi scany, zatímco pravidlo podobného dosahu jejich otočení, navrhli Lu a Milios algoritmus, který obě pravidla kombinuje. V každém kroku iteračního cyklu se počítají korespondující body pomocí obou pravidel, přičemž výsledná transformace je složením translace nalezené prvním pravidlem a rotace nalezené druhým. Jiný algoritmus popsaný v (Lu a Milios, 1994) využívá k lokalizaci tzv. tečné přímky. Tečná přímka k danému bodu P ve scanu je taková přímka, jejíž suma kvadrátů vzdáleností od bodů sousedících s P je nejmenší. Obrázek 5.7: Korespondence bodů pro lokalizaci pomocí tečných přímek. 29 Mějme bod P ∈ S akt a směrnici jeho tečné přímky ~n. Pokud je známo otočení ∆φ, pak korespondující bod P 0 ∈ K ref se nalezne jako průsečík vektoru P M∆φ a K ref (viz obr. 5.7). Pokud nalezený bod P 0 neleží daleko od bodu P ∗ , který skutečně odpovídá bodu P , pak lze odvodit, že platí (~nM∆φ + ~n0 )T ≈ (~nM∆φ + ~n0 )(P 0 − P M∆φ ), (5.4) kde n~0 je směrnice tečné přímky příslušná k P 0 a T = (∆x, ∆y) je hledané posunutí. Rovnici 5.4 jde přepsat do lineární formy C x ∆x + C y ∆y ≈ D, kde C x , C y a D jsou koeficienty odvozené z rovnice 5.4. Nyní lze definovat penalizační funkci pro dva scany v závislosti na parametrech ∆φ a T : E(∆φ, T ) = n X (Cix ∆x + Ciy ∆y − Di )2 , (5.5) i=1 kde n je počet bodů v aktuálním scanu. Pro známé ∆φ je tedy možné nalézt posunutí T minimalizací funkce E. Jelikož však ∆φ známé není, je nutné jej rovněž spočítat. Toho lze dosáhnout minimalizací funkce Ecelk 1 : Ecelk (∆φ) = min E(∆φ, T ). T Pro minimalizaci funkce Ecelk je potřeba aplikovat nějakou optimalizační procedura. Jelikož však penalizační funkce není hladká, nelze použít gradientní metody. Proto byla použita iterační metoda, která v každém kroku hledá novou hodnotu otočení pomocí zlatého řezu. Lokalizační algoritmus se tedy skládá z následujících kroků: 1. Pro každý bod v referenčním i aktuálním scanu se nalezne tečná přímky a spočítá její směrnice 2. Zlatým řezem se odhadne otočení ∆φ. 3. Pro každý bod v aktuálním scanu se nalezne korespondující bod z K ref . 4. Ze vztahu 5.5 se spočítá posunutí T . 5. Kroky 2-4 se opakují, dokud se nedosáhne požadovaná přesnost. Efektivní lokalizační metoda byla vyvinuta Hinkelem a Knieriemenem (Hinkel a Knieriemen, 1988) a o několik let později zdokonalena Weißem a spol. (Weißet al., 1994). Tato metoda počítá transformaci mezi dvěma scany korelováním dvojic histogramů vytvořených ze scanů. V prním kroku algoritmu se vytvoří pro každý scan tzv. úhlový histogram, což je histogram úhlů, které svírají vždy dvě sousední měření jednoho scanu: H = (Hi )ni=0 , 1 Ve skutečnosti je penalizační funkce trochu složitější, neboť během hledání korespondencí lze detekovat chybná měření, které tato funkce zohledňuje. 30 ¢ kde Hi je počet úhlů v intervalu i πn , (i + 1) πn . Lokální maxima úhlového histogramu odpovídají hlavním směrům překážek ve scanu, tj. v kancelářském prostředí směrům zdí. Navíc, pro dva scany stejného prostředí získané ze dvou různých (ale blízkých) pozic a s jiným natočením, budou úhlové histogramy vůči sobě posunuté, ale jinak velice podobné. Tato vlastnost je použita pro získání rotační diference dvou scanů minimalizací korelační funkce odpovídajících úhlových histogramů: corrHin (H act , H ref , p) = n X ref Hiact Hi⊕p . i=1 Znak ⊕ značí sčítání modulo π. Použití této operace je smysluplné, neboť úhlové histogramy jsou periodické. Pro výpočet posunutí se podobně jako u mřížkových histogramů používají dvě dvojice histogramů - jedna pro určení x-ové složky posunutí a druhá pro určení y-ové složky. Při výpočtu těchto histogramů může často nastat problém, že x-ové a y-ové souřadnice bodů scanu jsou rozmístěny téměř rovnoměrně (a tedy histogramy neobsahují výrazné extrémy), ačkoliv v samotném scanu jsou zřetelné obrysy překážek. To lze obejít tím, že se scany natočí tak, aby x-ová i y-ová osa byla paralelní s nejvýraznějšími překážkami, které odpovídají největším lokálním maximům v úhlovém histogramu. 5.2.4 Lokalizace s využitím geometrické mapy V řadě systémů je k dispozici geometrická mapa prostředí ve formě seznamu úseček reprezentujících hranice překážek. Tato mapa může být zadaná uživatelem nebo generovaná automaticky z posledního nebo několika senzorických měření. MacKenzie a Dudek: point-to-line Jednoduchý iterační postup pracující s geometrickou mapou je popsán v (MacKenzie a Dudek, 1994). Postup předpokládá, že je známa orientace robotu a pracuje pak ve dvou fázích. Nejprve se pro každý bod Pi v aktuálním scanu nalezne korespondující úsečka z mapy M ref ucorrM ac (i) , jejíž vzdálenost je od bodu Pi minimální: corrM ac (i) = j ≡ ∀uk ∈ M ref |Pi , uj | ≤ |Pi , uk | (5.6) Zároveň se pro každý bod a jemu odpovídající úsečku určí tzv. korekční vektor (dxi , dyi ), který je definovaný bodem Pi a jeho kolmou projekcí na přímku danou úsečkou ucorrM ac (i) . Posunutí scanů (∆x, ∆y) se pak vypočítá jako vážená suma jednotlivých korekčních vektorů: Pn i=1 σ(di )dxi ∆x = P n i=1 σ(di ) Pn i=1 σ(di )dyi ∆y = P , n i=1 σ(di ) přičemž σ(d) = 1 − 31 dm dm + cm je sigmoida určená parametry c a m a di je vzdálenost |Pi ucorrM ac (i) |. Aplikace sigmoidy má ten význam, že preferuje body, jejichž vzdálenost ke korespondující úsečce je malá, čímž se eliminuje vliv nepřesných měření. Obě fáze algoritmu se opakují tak dlouho, dokud se nedosáhne požadované přesnosti. Gomes-Mota a Ribeiro: Simulované point-to-point Další metoda je prezentována v (Gomes-Mota a Ribeiro, 1998). Množina úseček mapy je nejprve použita k simulaci senzorického scanu S sim z pozice, ve které byl sejmut aktuální scan S akt . Korespondence mezi body jednotlivých scanů se určí přímočaře: body Pi ∈ S akt a Pj0 ∈ S sim se prohlásí za korespondující, pokud mají stejný index, tj. pokud i = j. Hledaná transformace se poté získá minimalizací vztahu 5.3 metodou nejmenších čtverců podobně jako v předchozí kapitole. Pokud je korespondence bodů v simulovaném a aktuálním scanu přesná, jedna iterace algoritmu nalezne nejlepší řešení. Bohužel, takový případ nastává zřídka, proto se výše popsaný algoritmus volá iterativně, dokud se hodnota penalizační funkce E nestabilizuje. Cox: point-to-line I. Cox vyvinul algoritmus, jehož hlavní myšlenka spočívá v nalezení korespondencí mezi seznamem úseček mapy M ref a aktuálním scanem S akt (Cox, 1991). Algoritmus je opět iterační a skládá se z následujících kroků: 1. Pro každý bod Pi v aktuálním scanu se stejně jako ve vztahu 5.6 nalezne úsečka ucorrCox (i) , jejíž vzdálenost je od tohoto bodu minimální). 2. Určí se taková transformace t = (∆φ, T ), která minimalizuje součet čtverců vzdáleností mezi body scanu a jim odpovídajících úseček: t = min τ n ¯ ¯2 X ¯ ¯ ¯τ (Pi ), ucorrCox (i) ¯ i=1 3. Body ve scanu se transformují podle nalezené transformace. 4. Kroky 1-4 se opakují, dokud metoda nekonverguje. Nejvíce výpočetně náročné jsou kroky 1 a 2. Krok 1 vyžaduje, aby se pro každý z n bodů nalezla korespondující (nejbližší) úsečka z množiny úseček velikosti m. Jelikož mapa je neuspořádaná, složitost této operace je O(nm). Pokud se ale nad mapou vytvoří Voroného diagram (v čase O(m log m), zjištění nejbližší úsečky pro všechny body bude mít složitost O(n log(m)). Přístup popsaný v (Gonzalez et al., 1995) je založený na mřížkách. Každá buňka mřížky obsahuje seznam úseček, které buňkou procházejí. Korespondence se pak hledá ve dvou krocích. Nejprve se pro každý bod nalezne množina nejbližších neprázdných buněk a poté se prohledají pouze ty úsečky, které leží v nalezených buňkách. Složitost tohoto postupu závisí na velikosti buněk a rozmístění překážek. V ideálním případě může být složitost O(n), v nejhorším pak O(nm). 32 Fortarezza a kol.: line-to-line Fortarezza a spol. uvažují, že kromě geometrické mapy je seznamem úseček reprezentovaný i aktuální scan (Fortarezza et al., 1995). Klíčovou otázkou metody je tedy nalézt korespondence mezi úsečkami mapy M ref a scanu M akt . Každá úsečka v tomto pojetí je vyjádřena trojicí (x, y, α), kde [x, y] jsou souřadnice středu úsečky Obdobně jako v předchozí metodě úsečka mapy u0j = (x0 , y 0 , α0 ) ∈ M ref koresponduje s ui = (x, y, α) ∈ M akt tehdy, pokud její vzdálenost od ui je ze všech úseček mapy minimální: corrF or (i) = j ≡ ∀u0k ∈ M ref |ui , u0j | ≤ |ui , u0k | Vzdálenost úseček je přitom definována takto: ¯ ¯ ¯ ¯ ¯ui , u0j ¯ = (x − x0 )2 + (y − y 0 )2 + k(α − α0 )2 , kde k je konstanta určující váhu úhlu, který úsečky svírají. V dalším n onikroku je každá úsečka ui aktuálního scanu kvantizací konvertována na seznam bodů Pji . Body jsou na úsečce rozmístěny rovnoměrně, přičemž jejich počet závisí j=0 na délce úsečky. Konečně, pro určení transformace se minimalizuje suma vzdáleností bodů od úsečky mapy korespondující s úsečkou scanu, který daný bod reprezentuje: t = min τ ni ¯ n X ¯2 X ¯ ¯ ¯τ (Pji ), u0corrF or (i) ¯ . i=1 j=1 Houghova transformace Houghova transformace je známá metoda počítačového vidění k detekci tvarů (respektive jejich parametrického popisu) z množiny bodů. Ukazuje se, že může být úspěšně použita také pro získání popisu úsečkových segmentů z laserových a sonarových dat a následně k lokalizaci polohy robotu (Iocchi a Nardi, 1999). Kostra lokalizačního algoritmu se skládá z následujících kroků: 1. Konverze všech úseček mapy do polárních souřadnic (θ, %). 2. Transformování aktuálního scanu S act do Houghovy diskrétní mřížky H(θ, %). 3. Detekce lokálních maxim v Houghově mřížce, čímž se získá popis úseček v aktuálním scanu. 4. Nalezení korespondencí mezi lokálními maximy z kroku 3. a konvertovanými úsečkami mapy. Korespondující úsečka k danému maximu je obdobně jako v předešlých algoritmech ta k němu nejbližší (v rovině (θ, %)). 5. Transformace se získá zvlášť pro otočení a zvlášť pro posunutí. Otočení se vypočítá jako aritmetický průměr odchylek směrnic korespondujících úseček, zatímco posunutí bude takové, aby minimalizovalo sumu kvadrátů odchylek vzdáleností odpovídajících si úseček. To lze vyjádřit analyticky metodou nejmenších čtverců. 33 Houghovu transformaci je možné použít i v případě, že se hledá korespondence přímo mezi dvěmi scany. V takovém případě se referenční scan transformuje do Houghovy mřížky stejně jako aktuální scan v krocích 2 a 3 výše uvedeného algoritmu (Grossmann a Poli, 1999). 5.2.5 Další metody Lokalizace polohy robotu je jedním ze základních problémů inteligentní robotiky a v posledních letech bylo o této problematice publikováno kromě výše zmíněných metod velké množství článků, jejichž detailnější rozbor by přesáhl prostor této práce. Na tomto místě alespoň stručně uvedeme některé další třídy lokalizačních metod, na které se nedostalo v předchozích odstavcích. Přirozeným pokračováním v cestě od práce s hrubými senzorickými daty přes mřížky obsazenosti až po extrakci hranic objektů ve formě úseček se jeví rozpoznávání významných objektů v prostředí(tzv. landmarků). Za významné objekty lze považovat rozličné geometrické tvary detekovatelné senzory (konvexní i konkávní rohy, dlouhé stěny, otevřené dveře, atd.). Olle Wijk a kol. prezentují algoritmus pro detekci kovexních rohů pomocí triangulace sousedních senzorických měření (Wijk et al., 1998) (Wijk a Christensen, 2000). Jiný přístup je použitý v (Lee et al., 2000), kde jsou rohy skládány z dvou následujících přímkových segmentů. Zajímavá je rovněž metoda popsaná v (Howard et al., 2002), která současně lokalizuje jednotlivé členy robotího týmu, přičemž jako landmarky jsou uvažovány přímo roboty. Všechny dosud popsané metody počítají „přesnouÿ polohu robotu, tj. výstupem je vždy pouze jediná pozice, která je považována za správnou. Valná většina vstupních údajů pro lokalizaci je však více či méně nepřesná, ať již se jedná o kvalitu senzorických dat, apriorní znalost polohy robotu nebo rozmístění překážek. Z tohoto důvodu by bylo rozumné, aby metoda uměla vypočítat pravděpodobnost přesnosti zjištěné pozice, případně distribuci této pravděpodobnosti v prostoru všech možných pozic robotu. Pravděpodobnostními metodami lokalizace se zabývají například (Crowley, 1989), (Castellanos a Tardós, 1999), (Thrun, 2000) nebo (Olson, 2000) (Pfister et al., 2002). Většina moderních robotických systémů je vybavena několika druhy senzorů, které sami o sobě jsou schopny lokalizace. Na druhou stranu, získání informací z více senzorů vede k přesnějšímu určení polohy a proto je snaha sdružovat data z různých čidel. Asi nejpopulárnější metodou v této oblasti je Kalmanův filtr (Leonard et al., 1992), (Crowley, 1996), (Pears, 2000). V literatuře se rovněž objevují další postupy sdružování informace založené na fuzzy množinách (Saffiotti a Wesley, 1996), pravidlových systémech (Hackett a Shah, 1990) nebo teorii statistického rozhodování (McKendall, 1990). 5.3 Metody geometrického mapování prostředí robotu Na rozdíl od metod lokalizace robotu, o kterých bylo prezentováno množství metod založených na různých principech, je situace v oblasti získávání geometrického popisu prostředí poněkud jednodušší, neboť publikací věnujících se tomuto tématu není mnoho. To je dáno zejména tím, že senzory umožňující detekovat překážky s dostatečnou přesností (zejména 34 laserové hloubkoměry), se staly dostupnými až v posledním desetiletí. Navíc pro řadu robotických úloh a aplikací není geometrický popis prostředí nutný a proto se pro jejich řešení používají jiné modely zmíněné v kapitole 3.2 (např. pravděpodobnostní mřížky nebo topologické mapy). Geometrická reprezentace má však nesporné výhody a proto lze očekávat, že v blízké době dojde k jejímu většímu rozšíření. Topologické modely totiž neobsahují informace o tvaru, velikosti ani poloze překážek, což eliminuje jejich použití při lokalizaci a při detailním plánování trajektorie. Pravděpodobností mřížky sice informace o obsazenosti prostoru překážkami poskytují, ale jejich nevýhodou je velká paměťová náročnost. Geometrické mapy navíc mají formu srozumitelnou člověku a díky tomu jím mohou být vytvářeny a modifikovány, což rovněž zvyšuje jejich použitelnost. Jak již bylo řečeno, obecně se geometrickým popisem rozumí reprezentace prostředí pomocí geometrických primitiv jako jsou například úsečky, polygony, eliptické oblouky či spliny. Vzhledem k tomu, že práce se složitějšími útvary je výpočetně náročnější a lze je vhodně aproximovat úsečkami, budeme se v dalším textu zabývat pouze modely skládajícími se z úseček, případně polygonů. Dále rovněž předpokládejme, že je v každém okamžiku známa přesná pozice senzoru (ať již některou lokalizační metodou či jinak), kterým se provádí měření a že tedy tato měření nejsou zatížena chybou polohy. Hlavní proud v oblasti mapování založeném na zpracování dat ze senzorů měřících vzdálenost spočívá v sekvenčním zpracování jednotlivých scanů a jejich postupném přidávání do budované mapy. Základní kostru algoritmu lze popsat v následujích krocích: 1. Inicializuj mapu M podle apriorní znalosti prostředí. Pokud apriorní znalost není, pak M bude prázdná. 2. Získej aktuální senzorický scan S akt . 3. Aproximuj tento scan (respektive jeho vyjádření v kartézské soustavě souřadnic) množinou úseček M akt . Tyto úsečky tak reprezentují části hranic objektů. 4. Na základě definovaného korespondenčního kritéria se nalezne množina odpovídajíakt ∈ M akt . Korespondenční kritérium cích si dvojic úseček (ui , uakt j ), kde ui ∈ M a uj je voleno tak, aby jej splňovaly dvojice úseček odpovídající jedné hraně reálného objektu. 5. Úsečky uakt ∈ M akt , pro které nebyla nalezena žádná odpovídající úsečka v mapě, j přidej do mapy. 6. Úsečky mapy, které by měly být senzorem detekovatelné a k nimž nebyla nalezena žádná odpovídající úsečka aktuálního scanu, odstraň z mapy. 7. Každou úsečku z mapy, pro kterou byla nalezena korespondující úsečka aktuálního scanu, uprav s ohledem na tuto korespondující úsečku. 8. Kroky 2 až 7 opakuj do té doby, dokud jsou dostupná data ze senzoru. 35 Algorimy jednotlivých autorů se pak liší v konkrétním provedení jednotlivých částí tohoto abstraktního schématu. Cílem aproximace v kroku 3 je nalézt k množině bodů scanu takovou množinu úseček, která tyto body co nejlépe popisuje. Protože tento postup budeme používat rovněž v metodě Line-To-Line lokalizace, detailněji se mu budeme věnovat až v kapitole 6.1. Problém geometrického mapování je těžký ze dvou důvodů. Jednak proto, že díky nepřesnosti senzorů dostaneme různá měření stejné scény a to dokonce i tehdy, pokud se pozice senzoru nemění. Situace je o to složitější, že se robot pohybuje a v různých okamžicích „vidíÿ jinou část scény. Jedna konkrétní hrana překážky tak může být měřena z různých pozic, přičemž v každé pozici je detekována jiná její část. To se projeví tak, že pro jednu hranu získáme několik úseček jejichž délka, pozice a natočení je různá. Na kvalitu výsledné mapy tak má největší vliv nalezení takových úseček, které odpovídají jedné hraně překážky a jejich následné zpracování (sloučení) tak, aby tato hrana byla reprezentována právě jednou výslednou úsečkou. Protože se mapování provádí sekvenčně scan po scanu, stačí v každé iteraci nalézt korespondence mezi úsečkami aktuálně zpracovávaného scanu a dosud vybudovanou mapou a na základě těchto korespondencí mapu změnit, což se provádí v krocích 4 až 7. Nejjednodušší způsob hledání korespondencí je popsán v (Dudek et al., 1996). Dvě úsečky jsou prohlášeny za odpovídající si, pokud jsou skoro paralelní a pokud jejich vzdálenost není příliš velká, přičemž to jak moc mají být úsečky paralelní a blízké, je dáno pevně stanovenými konstatntami. Sofistikovanější přístup používají autoři (Kwon a Lee, 1999), (Crowley, 1989) a další. Ti při aproximaci bodů scanu počítají kromě parametrů úseček rovněž kovarianční matici bodů, z kterých daná úsečka vznikla. Z této matice se poté určí prahy definující, jak moc se mohou úsečky lišit. Podrobněji se k tomuto přístupu vrátíme v kapitole 6.2, kde se budeme zabývat hledáním korespondencí pro lokalizaci. Poslední korespondenční kritérium, které bychom rádi zmínili, je popsáno v (Skrzypczyński, 1995). Hlavní myšlenka spočívá ve výpočtu tzv. křížových vzdáleností mezi krajními body porovnávaných úseček. Pokud tyto vzdálenosti splňují jistá kritéria, pak jsou úsečky prohlášeny za korespondující. Detailněji se tímto kritériem budeme zabývat opět v kapitole 6.2. Modifikace mapy se skládá ze tří dílčích akcí: přidání nově detekovaných úseček (krok 5), vymazání úseček, které nebyly scanováním potvrzeny (krok 6) a modifikace existujících úseček, ke kterým byly nalezeny korespondující protějšky (krok 7). Proces jednoduchého přidávání a mazání úseček v okamžiku, kdy je úsečka detekována, případně nedetekována senzorem, lze vylepšit tím, že se pro každou úsečku udržuje míra věrohodnosti. Pokud je tato míra menší než definovaný práh, potom je úsečka z mapy vymazána. Pro přidávání je kromě aktuální mapy vytvořen seznam „kandidátůÿ, tj. seznam nově detekovaných úseček. Kandidát je přidán do mapy pouze v tom případě, pokud jeho míra věrohodnosti dosáhne dostatečně velké hodnoty. Tímto postupem se docílí větší stability mapy, neboť pro její změnu je nutné dané pozorování několikrát potvrdit. V (Mázl a Přeučil, 2000) se jako míra věrohodnosti používá počet měření, v kterých byla úsečka detekována. Jestliže je úsečka nalezena ve třech po sobě jdoucích scanech, potom je přidána do mapy. Odebírání úseček se v této práci neřeší. (Leonard et al., 1992) popisují věrohodnost úsečkového segmentu pomocí počtu scanů 36 di , ve kterých byla úsečka detekována a počtu scanů ni , ve kterých detekována nebyla. Z těchto dvou čísel se v každém kroku spočítá věrohodnost ci : ci = 1 − eαdi −βni , kde α a β jsou konstanty definující míru učení a zapomínání. Nové parametry těch úseček mapy, které byly detekovány v aktuálním scanu, se v kroku 7 naleznou jako vážený průměr starých parametrů úsečky mapy a jí odpovídající úsečky aktuálního scanu. Jako váhy jsou použity typicky prvky kovarianční matice získané při aproximaci (Crowley, 1989), (Kwon a Lee, 1999) a (Wullschleger et al., 1999). Závěrem ještě uveďme metodu publikovanou v (Shaffer, 1995). V této práci není jedna hrana objektu reprezentována pouze jednou úsečkou, ale množstvím krátkých spojených lineárních úseků, které tvoří tzv. konturu. Další rozdíl proti algoritmu popsaném výše spočívá v tom, že aktuální scan není aproximován úsečkami, ale zpracovává se přímo jako skupina bodů. Aktualizace mapy se provádí pomocí tří operací: vytváření nové kontury, rozšíření staré kontury a spojování kontur. K vytvoření nové kontury dojde tehdy, pokud žádný z bodů scanu, tvořících souvislou hranici nekoresponduje s žádnou existující konturou v mapě. Jestliže část bodů scanu koresponduje s koncovými úseky existující kontury a zbytek ne, potom se tato kontura rozšíří. Konečně, dvě kontury budou spojeny, jestliže existuje takový spojitý úsek bodů scanu, jehož jeden konec koresponduje se začátečními úseky první kontury a druhý s koncovými úseky druhé kontury. 37 38 Kapitola 6 Metoda Line-To-Line pro lokalizaci polohy V kapitole 5.2 jsme popsali řadu metod lokalizace polohy robotu na základě dat za sonarových a laserových čidel. Tyto metody se liší zejména v předzpracování senzorických dat a v jejich reprezentaci v lokální i globální mapě, což je dáno různým stupněm abstrakce dat v mapách. Obecně lze říci, že čím jednodušší entity jsou ze senzorických dat extrahovány a uchovávány v mapách, tím větší je časová náročnost lokalizačních algoritmů a naopak jejich robustnost je menší. Drtivá většina popsaných algoritmů je založena na hledání korespondencí mezi entitami v globální a lokální mapě. Je tedy nasnadě, že pokud jsou tyto entity jednoduché (např. jednotlivé body z nezpracovaných měření v algoritmu ICP), potom je jich počet větší než pro složitější struktury (např. landmarky). Nalezení korespondencí pro velký počet jednoduchých objektů je zřejmě těžší (a tedy časově náročnější) než pro malý počet složitějších (a tedy snáze rozlišitelných) struktur. Protože většina algoritmů nalezení korespondencí je založena na pouhé geometrické vzdálenosti, problém nalezení korespondencí se navíc u jednoduchých objektů stává složitějším s rostoucí odchylkou aktuální polohy robotu od referenční. Pro korekci větších chyb v poloze robotu jsou tedy tyto metody ve své základní podobě téměř nepoužitelné. Na druhou stranu, metody detekce významných objektů vyžadují, aby tyto objekty byly v prostředí přítomny a detekovány. Pro určení pozice robotu sice teoreticky stačí např. pouze jedna dvojice korespondujících konvexních rohů, ale vzhledem k tomu, že senzorická měření jsou nepřesná, vyšší počet detekovaných objektů umožňuje přesnější určení polohy. Tyto metody tedy nejsou vhodné pro málo strukturovaná prostředí, v kterých se vyskytuje malé množství rozlišitelných objektů. Rovněž v případech, kdy se lokální a globální mapa liší natolik, že nelze nalézt dostatek dvojic odpovídajících si objektů, tyto metody selhávají. V této kapitole popíšeme původní lokalizační algoritmus, který se snaží odstranit výše popsané slabiny ostatních algoritmů a zároveň si zachovává jejich pozitiva. Základní vlastnosti tohoto algoritmu by měly tedy být zejména rychlost a robustnost. Robustností se v tomto pojetí rozumí odolnost metody proti šumu senzorických vstupů, schopnost algoritmu korigovat větší chyby v poloze robotu a vypořádat se s pohybujícími se objekty. 39 Při návrhu lokalizačního algoritmu je třeba nejprve rozhodnout, jakým způsobem budou reprezentována data v lokální a globální mapě a tedy s jakými entitami bude algoritmus pracovat. My jsme se rozhodli aproximovat senzorická měření úsečkami popisujícími hranice objektů v prostředí robotu. Tato reprezentace se zdá býti vhodná zejména proto, že počet úseček extrahovaných z jednoho scanu leží mezi počtem bodů scanu a množstvím landmarků z tohoto scanu získaných. Jak ukazují experimenty, počet úseček v typickém kancelářském prostředí se pohybuje od 4 do až 30 úseček, což zaručuje nízkou výpočetní náročnost algoritmu. Tento počet je navíc příslibem toho, že bude nalezeno několik dvojic korespondujících úseček, díky čemuž lze polohu robotu lokalizovat s dostatečnou přesností. Referenèní scan Referenèní úseèky Hledání párù úseèek Segmenace Aktuální scan Aktuální úseèky Páry úseèek Korekce orientace ∆φ ∆φ Korekce pozice ∆x ∆y Numerická optimalizace ∆φ ∆x ∆y Obrázek 6.1: Funkční schéma algoritmu Line-To-Line, vstupem jsou referenční a aktuální scan a výstupem korigovaná pozice a orientace robotu. Typická metoda popsaná v předchozí kapitole se skládá ze čtyř kroků: 1. Zpracování sejmutých senzorických dat. 2. Nalezení korespondujících objektů v lokální a globální mapě. 3. Na základě nalezených korespondencí vypočítat transformaci mezi globální a lokální mapou a tím i pozici robotu. Podle této kostry byl navržen i prezentovaný Line-to-Line algoritmus (Kulich et al., 2001), (Mázl et al., 2001), (Přeučil et al., 2002). Vstupem algoritmu jsou dva scany aktuální a referenční, výstupem pak korekce polohy, v které byl pořízen aktuální scan. Vlastní lokalizaci lze pak popsat následujícím algoritmem: 1. Aktuální scan S akt se aproximuje množinou úseček M akt . Obdobně aproximací referenčního scanu S ref se získá množina úseček M ref . 2. Na základě definovaného korespondenčního kritéria se naleznou dvojice odpovídajíref akt ∈ M akt a uref ∈ M ref . cích si úseček (uakt i , uj ), kde ui j 40 3. Mezi množinami úseček M akt a M ref se spočítá úhlová diference ∆φ tak, aby se minimalizovala daná penalizační funkce. Každá úsečka z množiny Miakt je poté o tuto diferenci otočena tak, že vznikne množina M akt : n o M akt = uakt | uakt = M∆φ̄ v akt , v akt ∈ M akt . 4. Pro množiny M akt a M ref se nalezne takové posunutí T = (∆x, ∆y), které minimalizuje chybu vzdáleností mezi těmito dvěmi množinami. 5. Numerickou optimalizační metodou se nalezne otočení ∆φ a posunutí T = (∆x, ∆y) mezi množinami M akt a M ref minimalizující definovanou penalizační funkci. Jako inicializační parametry pro optimalizační metodu jsou použity hodnoty ∆φ a T spočítané v předchozích krocích metody. Numerické optimalizační metody (Levenberg-Marqaurdt, Gauss-Newton) vyžadují pro svůj výpočet počáteční nastavení parametrů vůči kterým optimalizují. Jednou z možností je tyto metody inicializovat náhodně, což však vede k většímu počtu iterací algoritmu nebo ke konvergenci k lokálnímu minimu. Z tohoto důvodu se jeví vhodné nastavit počáteční hodnoty co nejblíže ke skutečnému optimu. Krok 2 obecného algoritmu byl proto v Lineto-Line metodě doplněn o výpočet počátečních parametrů ∆φ a T (kroky 2 a 3). V následujících kapitolách popíšeme jednotlivé části Line-to-Line algoritmu podrobněji. 6.1 Aproximace senzorických měření úsečkami Prvním krokem Line-to-Line algoritmu je segmentace senzorických měření, to znamená aproximace aktuálního a referenčního scanu množinami úseček reprezentujících hranice objektů. Klasické algoritmy řešící tuto úlohu vycházejí z metod segmentace hran vyvinutých původně pro zpracování obrazu. Tyto metody lze podle způsobu přístupu k datům rozdělit do dvou hlavních skupin - sekvenční a dávkové algoritmy. P P P P P P P P |d − d| P P d d Obrázek 6.2: SEF detekuje konec segmentu v případě, že rozdíl dvou po sobě následujících naměřených vzdáleností je větší než definovaný práh T (|d4 − d5 | > T ) 41 Během sekvenčního zpracování jsou naměřená data zpracovávána postupně, zatímco dávkové algoritmy pracují s celým scanem najednou. Výhodou sekvenčních algoritmů je to, že není nutné čekat na příjem všech dat scanu, takže celkový čas naměření dat, jejich přijmutí a následného zpracování je menší než když se tyto kroky provádí samostatně. Na druhou stranu, segmentace dávkovými algoritmy dává lepší výsledky, neboť z principu mají tyto algoritmy více informace (Siadat et al., 1997). P P P P P P P P |d − d| P P Obrázek 6.3: LT ukončí segment, pokud vzdálenost zpracovávaného bodu od aktuálního segmentu je větší než práh T K sekvenčním algoritmům patří například SEF (Succesive Edge Following) nebo LT (Line Tracking) (Vandorpe et al., 1996). SEF algoritmus pracuje přímo s naměřeným senzorickým scanem (tedy bez jeho transformace do kartézských souřadnic). Hranový segment je ukončen tehdy, pokud rozdíl dvou po sobě naměřených vzdáleností je větší než definovaný práh (viz obr. 6.2). Obrázek 6.4: Segmentace senzorických dat algoritmem IEPF. Vstupem metody LT je množina bodů vzniklých transformací senzorického scanu. V každém kroku se určí vzdálenost zpracovávaného bodu Pn od přímky reprezentující aktuální segment. Tato přímka se získá proložením bodů aktuálního segmentu např. metodou minimálních čtverců. Pokud je vzdálenost bodu od přímky větší než definovaný práh, pak se aktuální segment ukončí v předchozím bodě Pn−1 a vytvoří se nový seg42 ment začínající v bodě Pn . Jestliže naopak vzdálenost definovaný práh nepřesáhne, přidá se zpracovávaný bod k aktuálnímu segmentu a přepočítá se přímka prokládající aktuální segment (viz obr. 6.3). Nejznámějším dávkovým algoritmem je IEPF (Iterative End Point Fit), který rovněž pracuje s množinou bodů v kartézských souřadnicích. Tento algoritmus rekurzivně rozděluje množinu množinu bodů M = {P1 , P2 , . . . , Pn } do dvou podmnožin M1 = {P1 , P2 , . . . , Ps } a M2 = {Ps , Ps+1 , . . . , Pn }. Ps je takový bod, jehož vzdálenost je od přímky procházející body P1 a Pn největší. Pokud je tato vzdálenost větší než definovaný práh TIEP F , pak se množina M rozdělí a algoritmus je rekurzivně volán na obě podmnožiny M1 a M2 . Obrázek 6.5: Seskupování. Jednotlivé skupiny jsou odlišeny barvami Náš přístup je založen na metodě IEPF zejména vzhledem k tomu, že je z uvedených algoritmů nejpřesnější a že data z nám dostupných senzorů jsou přijímána najednou, což eliminuje výhody sekvenčních algoritmů. Bohužel algoritmus IEPF nelze použít na senzorická data přímo, neboť algoritmus neumí rozpoznat prázdný prostor. Tento nedostatek se projevuje tím, že jsou jednotlivé „opravdovéÿ hrany pospojovány hranami „falešnýmiÿ, jak je ukázáno na obr. 6.4. Z tohoto důvodu nejprve nalezneme skupiny bodů (respektive jim odpovídajících měření), které tvoří souvislou hranici jednoho objektu. Tato hranice může být tedy tvořena několika hranovými segmenty. Oddělení jednotlivých skupin bodů lze provést postupem podobným algoritmu SEF. Formálně můžeme seskupování ve scanu S popsat takto: 1. s = 0, Skupina0 = {r0 } 2. Pro všechna měření ri ∈ S \ {d0 } prováděj: (a) Pokud |ri − ri−1 | > TSEF potom s=s+1 Skupinas = ∅ (b) Skupinas = Skupinas ∪ {ri } 43 Pro každou skupinu bodů lze nyní aplikovat algoritmus IEPF, který skupiny „rozlámeÿ na množiny úseček. Výstupem je posloupnost úseček U = {ui }ni=1 , kde každá úsečka reprezentuje posloupnost bodů {bzaci , bzaci +1 , bzaci +2 , . . . bkoni } a je jednoznačně určena indexy svých krajních bodů: ui = (zaci , koni ). Výsledek je zobrazen na obr. 6.6. Obrázek 6.6: IEPF aplikovaný na skupiny bodů. Přesnost algoritmu IEPF lze regulovat velikostí prahu TIEP F . Pro všechny body platí, že jejich vzdálenost od nejbližší úsečky je menší nebo rovna TIEP F . Čím volíme velikost prahu větší, tím nepřesnější bude aproximace bodů. Takto se může stát, že dvě sousedící skutečné hrany objektů budou reprezentovány pouze jednou úsečkou. Proto je výhodnější volit práh TIEP F menší, čímž se ale jedna skutečná hrana může rozpadnout na dvě úsečky (tato situace nastala na obrázku 6.6 pro žlutou a fialovou skupinu bodů). Z tohoto důvodu je nutné takto rozpadlé hrany znovu spojit. Pro spojování použijeme jednoduchý sekvenční algoritmus, který postupně prochází úsečky generované metodou IEPF a pokud dvě sousedící odpovídají spojovacímu kritériu, pak je spojí: 1. V ystup = ∅, a = u1 2. Pro všechny úsečky ui ∈ U \ {u1 } prováděj: (a) Pokud ui lze spojit s a potom a = a ∪ ui (b) jinak V ystup = V ystup ∪ {a}, a = ui 3. Pokud a ∈ / V ystup potom V ystup = V ystup ∪ {a} Pro zjištění, zda lze dvě úsečky spojit, budeme používat kovarianční matice. Předpokládejme úsečku u reprezentující body {Pi }ni=1 , kde Pi = (xi , yi ). Kovarianční matice je definována # " σx2 σxy , C= σxy σy2 44 kde σx2 a σy2 jsou rozptyly x-ové, respektive y-ové souřadnice bodů Pi a σxy je jejich kovariance: σx2 Pn = σy2 = σxy = µ Pn a m = (mx , my ) = i=1 n P n − mx )2 x2 = i=1 i − m2x n n Pn Pn 2 (y − m ) y2 y i=1 i = i=1 i − m2y n n Pn Pn (x − m )(y − m xi yi x i y) i=1 i = i=1 − mx my n n i=1 (xi xi Pn , i=1 n yi ¶ těžiště (průměr) bodů Pi . Vlastní čísla a vlastní vektory kovarianční matice určují elipsu, která popisuje množinu bodů Pi . Vlastní vektory odpovídají vektorům poloos elipsy a odmocniny vlastních čísel jejich velikosti, jak ukazuje obrázek 6.7. Vlastní čísla lze spočítat z následujících vztahů: λ1 = λ2 = σx2 + σy2 + σx2 + σy2 − q 2 (σx2 − σy2 )2 + 4σxy q 2 a 2 (σx2 − σy2 )2 + 4σxy 2 Vlastní čísla indikují, jak moc jsou body rozptýlené okolo průměru m. Jestliže je λ1 o hodně větší než λ2 , potom body leží velice blízko přímky určené hlavní poloosou a lze tedy předpokládat, že náleží jedné hranici. Pokud naopak λ1 ≈ λ2 , značí to, že body buď odpovídají dvěma překážkám nebo šumu. √ √ λ λ Obrázek 6.7: Vlastní čísla a vlastní vektory kovarianční matice. Nyní můžeme definovat spojovací kritérium. Pro úsečky ui a uj spočítáme kovarianční matici bodů odpovídající sjednocení těchto úseček. Potom, pokud je poměr vlastních čísel této kovarianční matice Λ = λλ21 větší než definovaný práh, lze úsečky spojit. Navíc poměr Λ slouží jako jednoduché filtrační kritérium. Pokud je jeho hodnota pro jednu úsečku větší než definovaný práh, pak úsečka reprezentuje šum a může být z dalšího zpracování vyloučena. Postupem popsaným v předchozích odstavcích jsme pro každou detekovanou hranu překážek v prostředí získali skupinu (respektive uspořádaný seznam) bodů, které této 45 hraně odpovídají. Posledním krokem zbývajícím při segmentaci vyřešit, je reprezentace každé takové skupiny úsečkou ve formě čtveřice (lx1 , ly1 , lx2 , ly2 ), kde [lx1 , ly1 ] a [lx2 , ly2 ] jsou souřadnice krajních bodů úsečky. PN lx , ly lx, ly P Obrázek 6.8: Nalezení krajních bodů úsečky reprezentující množinu bodů. K výpočtu můžeme s výhodou použít kovarianční matici získanou ve fázi spojování úseček. Pro přímku určenou hlavní poloosou elipsy (a tedy vlastním vektorem příslušejícím většímu vlastnímu číslu) a procházející těžištěm bodů m totiž platí, že suma čtverců vzdáleností bodů od přímky je minimální mezi všemi přímkami. Toto tvrzení vyplývá přímo z konstrukce metody minimálních čtverců a důkaz najde čtenář v libovolné učebnici numerické matematiky. V tomto okamžiku je důležité, že jsme získali koeficienty parametrickém tvaru přímky, která reprezentuje danou množinu bodů: x = mx + tvx y = my + tvy , vx = σy2 − vy = σxy , σx2 + t ∈ (−∞, ∞) q (σx2 − 2 σy2 )2 2 + 4σxy = λ1 − σx2 kde (vx , vy ) je vlastní vektor příslušející vlastnímu číslu λ1 . Nyní už zbývá pouze určit krajní body úsečky ležící na této přímce. Ty získáme tak, že k bodům P1 a Pn nalezneme takové body na přímce, které k nim leží nejblíže (viz obrázek 6.8). Pro bod P1 to znamená, že hledáme takové t, které minimalizuje funkci d(t) = (mx + tvx − x1 )2 + (mx + tvx − x1 )2 Po vyřešení a dosazení t do parametrického tvaru přímky dostáváme lx1 = mx + vx [vx (x1 − mx ) + vy (y1 − my )] ly1 = my + vy [vx (x1 − mx ) + vy (y1 − my )] Obdobně z bodu Pn získáme souřadnice druhého krajního bodu: lx2 = mx + vx [vx (x2 − mx ) + vy (y2 − my )] ly2 = my + vy [vx (x2 − mx ) + vy (y2 − my )] Výstupem segmentačního algoritmu je tedy seznam úseček, kde každá úsečka je reprezentována souřadnicemi svých krajních bodů.Ukázka takového výstupu je zobrazena na 46 Obrázek 6.9: Konečný výsledek po segmentaci. Modře jsou zobrazena senzorická měření, černě vysegmentované úsečky. obr. 6.9. Kromě toho jsme získali další parametry, které popisují kvalitu úsečky - poměr Λ vlastních čísel kovarianční matice a počet bodů N , které jsou úsečkou aproximovány. Tyto parametry lze použít v dalších krocích lokalizačního algoritmu pro vážení vlivu jednotlivých úseček na přesnost lokalizace. 6.2 Nalezení párů korespondujících úseček Nalezení párů korespondujících úseček je klíčovovou částí Line-To-Line algoritmu, která má největší vliv na úspěšnost a přesnost lokalizace. Pokud se dostatečný počet odpovídajících si dvojic úseček nalézt nepodaří, potom celý lokalizační algoritmus zkolabuje. Definujme nyní problém více formálněji. Předpokládejme dvě množiny úseček. Množina act } označuje úsečky aktuálního scanu, zatímco M ref = {uref |i ∈ I ref } M act = {uact i |i ∈ I i jsou úsečky referenčního scanu. Symboly I act a I ref značí množiny indexů {1, . . . , nact }} respektive {1, . . . , nref }}. Cílem je nalézt takové párovaní, tj. takovou podmnožinu P kartézského součinu I act × I ref , že každý index i ∈ I act a j ∈ I ref se vyskytuje v P maximálně jednou. To znamená, že pro P musí platit následující: (1) P ⊂ I act × I ref (2) (i, j) ∈ P ∧ (i, k) ∈ P ⇒ j = k (3) (i, j) ∈ P ∧ (k, j) ∈ P ⇒ i = k. Podmínka na maximálně jeden výskyt jedné úsečky v párování popsaná vztahy (2) a (3) má své opodstatnění. Pokud totiž předpokládáme, že každé hraně objektu v prostředí odpovídá právě jedna úsečka získaná segmentací, potom např. výskyt dvojic (i, j) a (i, k), kde j 6= k znamená, že hrana detekovaná v aktuálním scanu odpovídá dvěma různým hranám v referenčním scanu. To by v dalších fázích lokalizačního algoritmu vedlo k tomu, že by se „aktuálníÿ hrana snažila umístit mezi dvě příslušné hrany v refenčním scanu. 47 Splnění podmínek (2) a (3) zajistíme tak, že při hledání korespondencí budeme vyčíslovat, jak moc si jsou úsečky podobné. Pokud nalezneme pro danou úsečku více úseček s ní korespondujících, potom z nich vybereme takovou, jejíž „podobnostÿ je největší. b y x a d c Obrázek 6.10: Křížové vzdálenosti mezi krajními body úseček V literatuře se korespondence úseček objevuje pouze v souvislosti se stavbou mapy prostředí, konkrétně se slučováním několika scanů do jedné mapy. V (Crowley, 1989) (Schiele a Crowley, 1994) jsou úsečkové segmenty reprezentovány sedmicemi (φi , σφ2 i , ρi , σρ2i , xi , y, hi ), kde φi je úhel, který svírá normála úsečky s osou x, ρi vzdálenost přímky určené úsečkou od počátku souřadného systému, σφ2 i a σρ2i neurčitosti (rozptyly) hodnot φi a ρi , (xi , yi ) souřadnice středu úsečky a hi polovina délky úsečky. Dvě úsečky u1 a u2 jsou považovány za korespondující, pokud jsou splněny všechny tři následující podmínky: φ1 − φ2 ≤ σφ2 1 + σρ22 ρ1 − ρ2 ≤ σρ21 + σρ22 (x1 − x2 )2 + (y1 − y2 )2 ≤ h1 + h2 Nevýhodou tohoto přístupu je zejména to, že vrací pouze binární hodnotu. Vzhledem k tomu, že pro Line-To-Line algoritmus je nezbytná rovněž hodnota míry podobnosti, je tento postup nepoužitelný. Jiné korespondenční kritérium bylo prezentováno v (Skrzypczyński, 1995), které vychází z křížových vzdáleností mezi body úseček, jak je ukázáno na obrázku 6.10. Aby dvě úsečky byly prohlášeny za korespondující, musí být splněna alespoň dvě z následujících podmínek: a + b < x + T ol c + d < x + T ol a + c < y + T ol b + d < y + T ol, kde T ol je předem definovaná tolerance. Takto definované kritérium sice rovněž vrací pouze binární hodnotu ano/ne, ale hodnotu podobnosti jednoduše získáme tak, že určíme minimální hodnotu T ol, pro kterou jsou úsečky považovány za korespondující. Formálně můžeme definovat funkci corrSkrz takto: corrSkrz (ui , uj ) = smin ({a + b − x, c + d − x, a + c − y, b + d − y}) , 48 kde funkce smin(M ) vrací druhý nejmenší prvek množiny M . Funkce corrSkrz závisí na délce úseček, vzdálenosti jejich středů a úhlu, který úsečky svírají. Abychom získali představu o jejím tvaru, musíme ji zobrazovat v několika řezech. Na obrázku 6.11 je jeden takový řez ukázán. Tento řez odpovídá situaci, kdy jedna úsečka u1 je určena krajními body [−10, 0] a [10, 0]. Parametrem zobrazované funkce je střed druhé úsečky u2 , jejíž délka je 20 a která je rovnoběžná s osou x (a tedy i s úsečkou u1 ). Například hodnota zobrazené funkce v bodě [20, 30] odpovídá hodnotě funkce corrSkrz pro úsečku s krajními body [10, 30] a [40, 30] a úsečku u1 . Na obrázku 6.15 jsou zachyceny „vrstevniceÿ (křivky spojující body se stejnou funkční hodnotou) řezu z obrázku 6.11. Obrázky 6.13, 6.17, 6.19 pak zobrazují řezy pro různé délky druhé úsečky. 0 0 −0.5 −20 −1 −40 −1.5 −60 −2 −80 −2.5 −100 40 −3 30 40 20 40 10 20 20 0 −10 40 0 0 20 −20 −20 −30 y −40 −40 0 −20 y x Obrázek 6.11: Řez funkce corrSkrz pro rovnoběžné a stejně dlouhé úsečky. −20 −40 x Obrázek 6.12: Řez funkce corrKul pro rovnoběžné a stejně dlouhé úsečky. Ani Skrzypczyńského kritérium bohužel není pro lokalizaci vhodné. Proč, to je zřejmé zejména z obrázků 6.15 a 6.17. Zde je vidět, že v některých případech hodnota kritéria klesá s rostoucí vzdáleností úseček. To se v některých případech může hodit pro stavbu mapy, kde se kritérium používá pro spojování úseček reprezentujících různé části jedné hrany, které byly získány z během jízdy robotu z různých (i vzdálených) pozic. Za předpokladu přesné znalosti polohy totiž rovnoběžné úsečky, jejichž středy leží blízko sebe, pravděpodobně reprezentují dvě různé hrany. Naopak, pokud středy leží dál od sebe, ale vzdálenost úseček je stejná nebo trochu větší než v předešlém případě, pak šance, že úsečky tvoří části jedné hrany, se zvětšuje. Pro lokalizaci platí opačné předpoklady. Pozici robotu totiž neznáme, ale naopak předpokládáme, že vzdálenost pozic, v kterých byly snímány referenční a aktuální scan, je malá. Z tohoto důvodu by funkce korespondence měla klesat s rostoucí vzdáleností úseček. Abychom toho dosáhli, zavedli jsme vlastní funkci, která je definována jako: corrKul (ui , uj ) = min({a, b}) + min({c, d}) , x+y 49 40 40 30 30 20 20 10 10 0 0 y y kde parametry a, b, c, d, x a y mají stejný význam jako u Skrzypczyńského kritéria. Tvar funkce je možno nahlédnout z obrázků 6.11, 6.16, 6.18 a 6.20 – 6.24. Poslední čtyři obrázky zachycují řezy, kdy odchylka směrnic úseček je 30◦ . Dvě úsečky ui a uj považujeme za korespondující, pokud hodnota kritéria corrKul (ui , uj ) je menší než definovaný práh TCorr . Ani toto kritérium však není zcela dostačující, neboť málo penalizuje velké odchylky směrnic úseček. Proto pro dvojice úseček, jejichž rozdíl směrnic je větší než definovaný práh Tφ , přičítáme k hodnotě funkce corrKul dostatečně velkou konstantu Kφ . Tak zaručíme, že tyto páry úseček budou prohlášeny za nekorespondující. Příklad nalezení párů odpovídajích si úseček je ukázán na obrázcích 6.25 a 6.26. −10 −10 −20 −20 −30 −30 −40 −40 −30 −20 −10 0 x 10 20 30 −40 −40 40 40 40 30 30 20 20 10 10 0 0 −10 −10 −20 −20 −30 −30 −40 −40 −30 −20 −10 0 x 10 20 30 −30 −20 −10 0 x 10 20 30 40 Obrázek 6.14: Vrstevnice řezu funkce corrKul pro rovnoběžné 1| úsečky, kde poměr délek |u |u2 | = 2. y y Obrázek 6.13: Vrstevnice řezu funkce corrSkrz pro rovnoběžné |u1 | úsečky, kde poměr délek |u = 2. 2| −40 −40 40 Obrázek 6.15: Vrstevnice řezu funkce corrSkrz pro rovnoběžné a stejně dlouhé úsečky. −30 −20 −10 0 x 10 20 30 Obrázek 6.16: Vrstevnice řezu funkce corrKul pro rovnoběžné a stejně dlouhé úsečky. 50 40 40 30 30 20 20 10 10 0 0 y y 40 −10 −10 −20 −20 −30 −30 −40 −40 −30 −20 −10 0 x 10 20 30 −40 −40 40 100 100 80 80 60 60 40 40 20 20 0 −20 −40 −40 −60 −60 −80 −80 −100 −100 −100 −100 −60 −40 −20 0 x 20 40 60 80 100 100 100 80 80 60 60 40 40 20 20 0 −20 −40 −40 −60 −60 −80 −80 −100 −100 −100 −100 −40 −20 0 x 20 40 60 80 10 20 30 40 −80 −60 −40 −20 0 x 20 40 60 80 100 0 −20 −60 0 x Obrázek 6.20: Vrstevnice řezu funkce corrKul pro rovnoběžné 1 1| úsečky, kde poměr délek |u |u2 | = 5 . y y Obrázek 6.19: Vrstevnice řezu funkce corrSkrz pro rovnoběžné 1 1| úsečky, kde poměr délek |u |u2 | = 5 . −80 −10 0 −20 −80 −20 Obrázek 6.18: Vrstevnice řezu funkce corrKul pro rovnoběžné 1 1| úsečky, kde poměr délek |u |u2 | = 2 . y y Obrázek 6.17: Vrstevnice řezu funkce corrSkrz pro rovnoběžné 1 1| úsečky, kde poměr délek |u |u2 | = 2 . −30 100 −80 −60 −40 −20 0 x 20 40 60 80 Obrázek 6.22: Vrstevnice řezu funkce corrKul pro úsečky s odchylkou 30◦ a poměrem délek |u1 | |u2 | = 1. Obrázek 6.21: Vrstevnice řezu funkce corrKul pro úsečky s odchylkou 30◦ a poměrem délek |u1 | |u2 | = 2. 51 100 100 100 80 80 60 60 40 40 20 20 y y 0 0 −20 −20 −40 −40 −60 −60 −80 −80 −100 −100 −100 −100 −80 −60 −40 −20 0 x 20 40 60 80 100 Obrázek 6.23: Vrstevnice řezu funkce corrKul pro úsečky s odchylkou 30◦ a poměrem délek |u1 | 1 |u2 | = 2 . 6.3 −80 −60 −40 −20 0 x 20 40 60 80 100 Obrázek 6.24: Vrstevnice řezu funkce corrKul pro úsečky s odchylkou 30◦ a poměrem délek |u1 | 1 |u2 | = 5 . Optimalizace penalizační funkce V předchozí kapitole jsme nalezli párování P = {(ik , jk )}nk=1 odpovídající korespodujícím dvojicím úseček aktuálního a referenčního scanu. Dalším krokem Line-To-Line lokalizace je určení takové transformace aktuálního scanu skládájící se z otočení a posunutí, která minimalizuje chybu mezi aktuálním a referenčním scanem vyjádřenou penalizační funkcí. Pro definici této penalizační funkce předpokládejme, že každá úsečka referenčního scanu je popsána v obecném tvaru: ujk : ajk x + bjk y + cjk = 0 a úsečka aktuálního scanu s ní korespondující souřadnicemi svých krajních bodů: uik = ([x1ik , yi1k ], [x2ik , yi2k ]). Penalizační funkce E potom vyjadřuje váženou sumu čtverců vzdáleností bodů aktuálního scanu od přímek určených úsečkami referenčního scanu: E(px , py , pφ ) = n X k=1 wk 2 X (ajk x̄pik + bjk ȳipk + cjk )2 , p=1 kde [x̄pik , ȳipk ] je bod [xpik , yipk ] otočený o úhel pφ a posunutý o (px , py ): [x̄pik , ȳipk ] = [xpik , yipk ]Mpφ + [px , py ]. 52 wk určuje váhu k-tého páru, kterou definujeme jako minimum počtu bodů, z nichž úsečky páru vznikly (wk = min({Niact , Njref })). Vážením zajistíme, aby úsečky aproxik k mující větší počet bodů (a tedy určené přesněji) měli větší vliv na výsledek než úsečky získané z několika bodů. Hledanými parametry tranformace pak budou hodnoty minimalizující penalizační funkci: (∆x, ∆y, ∆φ) = min E(px , py , pφ ). px ,py ,pφ Minimimum bohužel nelze vyjádřit analyticky, a proto jej musíme hledat iteračně, některou z numerických metod. Vzhledem k tomu, že penalizační funkce má tvar sumy čtverců, použijeme metody optimalizace nelineárními nejmenšími čtverci. K nejpoužívanějším algoritmům tohoto typu patří Gauss-Newton (Dennis, 1977) nebo LevenbergMarquardt (Moré, 1977). My jsme se rozhodli pro první z nich, neboť pro funkce, jejichž minimum leží v blízkosti nuly (což je náš případ), je efektivnější, protože pro nalezení extrému potřebuje menší počet vyčíslení penalizační funkce. Na druhou stranu, LevenbergMarquardt vykazuje obecně větší robustnost (MathWorks, 2002). Obrázek 6.26: Nalezené páry úseček. Korespondující úsečky jsou nakresleny stejnou barvou. Obrázek 6.25: Úsečky referenčního (modře) a aktuálního scanu(zeleně). Obě zmíněné optimalizační metody startují svůj výpočet v počátečním bodě, který je metodě předán zvnějšku. Je zřejmé, že čím blíže se podaří počáteční bod nastavit tak, aby byl blíže globálnímu minimu, tím je větší šance, že metoda neuvázne v lokálním minimu a nalezne minimum globální. Navíc lze takto snížit počet iterací. Nastavením počátečního bodu se budeme zabývat v následujících odstavcích. 6.4 Určení otočení počátečního bodu Výpočet počátečního bodu (∆x̄, ∆ȳ, ∆φ̄) provedeme ve dvou krocích. V prvním kroku budeme předpokládat, že posunutí (∆x̄, ∆ȳ) je nulové a vypočteme ∆φ̄. Na základě takto získaného otočení poté určíme i posunutí. Definujme tedy nejprve φk jako odchylku směrnic úseček k-tého páru. Otočení ∆φ̄ pro párování P = {(ik , jk )}nk=1 nalezneme tak, aby vážená suma čtverců odchylek směrnic 53 jednotlivých dvojic od ∆φ̄ byla minimální: ∆φ̄ = min φ n X wk (φk − φ)2 , k=1 Vztah 6.4 má jednoznačné řešení a sice vážený aritmetický průměr odchylek. Úhlová diference tedy bude: Pn k=1 wk φk ∆φ̄ = P . n k=1 wk Příklad otočení aktuálního scanu o vypočtený úhel ∆φ̄ je zobrazen na obr. 6.27. Obrázek 6.28: Korekce scanu z obr. 6.25 po posunutí o vektor (∆x̄, ∆ȳ). Obrázek 6.27: Korekce aktuálního scanu z obr. 6.25 po otočení o úhel ∆φ̄. 6.5 Určení polohy počátečního bodu Ze předpokladu, že známe otočení ∆φ̄ aktuálního scanu vůči referenčnímu, můžeme určit posunutí minimalizací funkce E2 : E2 (px , py ) = n X k=1 wk 2 X (ajk x̃pik + bjk ỹipk + cjk )2 , p=1 kde [x̃pik , ỹipk ] získáme otočením bodu [xpik , yipk ] o úhel ∆φ̄: [x̃pik , ỹipk ] = [xpik , yipk ]M∆φ̄ . 54 Po zderivování dostaneme soustavu dvou rovnic o dvou neznámých, která má jednoznačné řešení: AD − BC ∆ȳ = D2 − EC A − D∆ȳ ∆x̄ = , C kde A = n X 2 X i=1 j=1 B = n X 2 X i=1 j=1 n X C = −2 D = −2 E = −2 i=1 n X i=1 n X wk ak (ajk x̃pik + bjk ỹik + cjk ), wk bk (ajk x̃pik + bjk ỹik + cjk ), wk a2jk , wk ajk bjk , a wk b2jk . i=1 Na obrázcích 6.28 a 6.29 je zobrazen transformovaný scan po získání posunutí počátečního bodu, respektive po získání parametrů optimalizací penalizační funkce. Obrázek 6.29: Transformace aktuálního scanu z obrázku 6.28 na základě parametrů získaných optimalizací. 6.6 Zobecnění pro větší odchylky mezi sadami měření Základní verze Line-To-Line algoritmu tak jak byla popsána v předchozích kapitolách, pracuje velice přesně a spolehlivě v případech, kdy rozdíl v poloze a natočení referenčního a aktuálního scanu je relativně malá. V opačném případě metoda z principu selhává, 55 neboť páry odpovídajících si úseček nebudou nalezeny správně. Například úsečky, jejichž úhlová diference je vinou otočení scanů větší než práh Tφ definovaný v kapitole 6.2, jsou považovány za nekorespondující. Jiné páry mohou být naopak mylně prohlášeny za korespondující díky tomu, že rozdíl poloh scanů je opačný než rozdíl poloh úseček. V tomto případě se oba rozdíly eliminují a úsečky se zdají být blízké. Hlavní myšlenkou postupu, který by eliminoval výše zmíněné nedostatky, je umístit (tj. posunout a otočit) aktuální scan zkušebně do různých pozic. V těchto pozicích se poté vypočítá „míra podobnostiÿ posunutého aktuálního scanu s referenčním a vybere se takové umístění, pro které je míra podobnosti největší. Párování odpovídající tomuto umístění je pak použito pro výpočet skutečného vzájemného posunutí a otočení aktuálního a referenčního scanu. Obrázek 6.30: Diskrétní okolí bodu. Červeně je zobrazen orientovaný bod a modře jeho diskrétní okolí. Pro formálnější popis zobecněného Line-To-Line algoritmu definujme nejprve diskrétní okolí bodu: Mějme trojici [x, y, φ], reprezentující orientovaný bod o souřadnicích [x, y] a natočení ∆,Φ (x, y, φ) nazveme množinu bodů, pro které platí: φ. Diskrétním okolím Om,n © ª ∆,Φ Om,n (x, y, φ) = (x + x0 ∆, y + y 0 ∆, φ + φ0 Φ) , kde x0 = {−m, . . . , m}, y 0 = {−m, . . . , m} a φ0 = {−n, . . . , n}. Zobecněný Line-To-Line algoritmus bude mít stejnou strukturu jako základní verze popsaná na straně 40 s tím rozdílem, že krok 2. bude nahrazen následujícím postupem: ∆,Φ (0, 0, 0) se provede transformace 1. Pro každý bod (x, y, φ) z diskrétního okolí Om,n množiny úseček M akt tak, že se každá úsečka množiny M akt otočí o úhel φ a posune akt . o vektor (x, y). Takto vzniklou množinu úseček označíme Mx,y,φ akt nalezneme pomocí korespondenčního kritéria dvojice 2. Pro každou množinu Mx,y,φ korespondujících úseček, respektive párování Px,y,φ . 3. Pro každé párování vypočítáme míru podobnosti pomocí následujícího vztahu: pod(P) = X (Tcorr − corrKul (uik , ujk )) (ik ,jk )∈P 56 4. Ze všech párování Px,y,φ vybereme takové, které má největší hodnotu míry podobnosti. Toto párování je poté vstupem do dalších kroků algoritmu. Nastavení parametrů m, n, ∆ a Φ závisí na velikosti a charakteru rozdílu poloh aktuálního a referenčního scanu, který je dán zejména kvalitou počáteční znalosti o poloze robotu (získanou například z odometrie). Druhým aspektem, na který je třeba brát zřetel při nastavování parametrů je čas, v kterém má být lokalizace provedena. Je zřejmé, že pokud rychlost výpočtu nehraje významnou roli, lze volit větší diskrétní okolí a tedy prohledávat prostor možných transformací podrobněji. 57 58 Kapitola 7 Mapování prostředí Metody budování geometrického modelu prostředí popsané v kapitole 5.3 sekvenčně zpracovávají senzorická data tak, jak jsou postupně snímána. Tento přístup má výhodu v tom, že v každém okamžiku je model aktuální s ohledem na všechna dosud získaná data. Navíc lze senzorická data (která mívají řádově větší paměťovou náročnost než odpovídající geometrická reprezentace) po zpracování „zapomenoutÿ a dále pracovat pouze s geometrickou reprezentací. Na druhou stranu, sekvenční postup má své nedostatky. Právě díky postupnému zpracování scanů se ztrácí globální pohled na data, což vede k tomu, že se přichází o vztahy mezi jednotlivými scany. Typicky se tato ztráta projevuje tak, že jedna reálná hrana se může rozpadnout na dvě úsečky, které nejsou spojené, neboť koresponenční kritérium nenalezne správně jejich korespondenci, případně nedojde k jejich správnému spojení v kroku 7 v algoritmu na straně 35. Rovněž detekce objektů je velmi problematická, protože sekvenční metody sice většinou správně detekují jejich jednotlivé hrany, ale již neumějí úsečky aproximující jednotlivé hrany spojit tak, aby vznikl jeden polygon reprezentující celý objekt. Zmíněné chyby lze sice částečně odstranit použitím heuristik, ale tím se ztratí univerzálnost algoritmů. Postupy, které budou prezentovány v následujících odstavcích, se snaží výše uvedeným nevýhodám předejít již z principu. Tyto algorimy totiž nezpracovávají senzorická data sekvenčně, nýbrž dávkově. To znamená, že geometrická mapa není vytvářena průběžně a postupně, ale vždy je vybudována celá znovu ze všech dosud dostupných měření. První metoda, kterou popíšeme v kapitole 7.1, nejprve vytváří pravděpodobnostní mřížku a poté v této mřížce hledá překážky a vytváří jejich geometrickou interpretaci. Druhá metoda shromažďuje hrubá senzorická data a tyto data aproximuje množinou úseček za použití neuronových sítí. Podrobněji se jí budeme věnovat v kapitole 7.2. 7.1 Extrakce hranic překážek z pravděpodobnostní mřížky Pravděpodobnostní mřížky obsazenosti si v oblasti mobilní robotiky získali velkou oblibu zejména proto, že jsou ideálním prostředkem pro fúzi senzorických měření z různých pozic. Jejich předností je schopnost vyrovnat se s šumem vstupních dat i drobnými nepřesnostmi 59 v určení polohy. Prezentovaná metoda stavby mapy (Kulich et al., 1999b), (Kulich et al., 1999c), (Kulich et al., 2000) se snaží využít zmíněných předností pravděpodobnostních mřížek při fúzi dat a ze získané mřížky extrahovat úsečky a polygony odpovídající hranicím objektů. Seznam těchto geometrických primitiv pak tvoří geometrickou mapu. Algoritmus její tvorby probíhá v následujících krocích: 1. Získej aktuální senzorický scan S akt . 2. Pravděpodobnostní mřížku M aktualizuj daty ze scanu S akt . 3. Kroky 1 a 2 opakuj, pokud je k dispozici další senzorický scan. 4. Proveď segmentaci mřížky M tak, aby vznikla binární mřížka MS . Buňka binární mřížky bude mít hodnotu 1, pokud je velká pravděpodobnost výskytu překážky v prostoru reprezentován touto buňkou. V opačném případě nastav hodnotu buňky nulovou. 5. Metodami matematické morfologie spoj oblasti, které se rozpadly vinou špatné segmentace. Výsledná mřížka bude označena MM . 6. Najdi kostru MK mřížky MM a z této kostry dále odstraň buňky tak, jak je popsáno v 7.1.4. 7. Kostru rozděl na oblasti buněk tak, aby každá oblast reprezentovala jednu nebo několik sousedních hran jednoho objektu. 8. Každou oblast aproximuj lomenou čarou nebo polygonem. V dalším textu popíšeme jednotlivé části algoritmu podrobněji. 7.1.1 Tvorba pravděpodobnostní mřížky Proces vytváření mřížky obsazenosti probíhá ve dvou fázích (Elfes, 1990). Nejprve je potřeba definovat model senzoru, který pro každé senzorické měření určuje rozložení pravděpodobnosti v jednotlivých buňkách mřížky. Ve druhém kroku se pravděpodobnosti vypočtené z jednoho měření integrují do výsledné mřížky. Model senzoru závisí na konkrétním typu senzoru, z kterého se pravděpodobnostní mřížka vytváří. Pro sonarová čidla existuje několik modelů popsaných např. v (Elfes, 1989), (Štěpán a Přeučil, 1996) nebo (de Weerdt et al., 1998). Vzhledem k tomu, že my budeme používat laserové hloubkoměry, zaměříme se na model tohoto senzoru. V (Štěpán, 2001) je uveden poměrně rozsáhlý statistický rozbor měření z laserového hloubkoměru SICK-PLS 100. Na základě tohoto rozboru byl pak určen kvadratický model, který pro senzorické měření (α, r) získané z pozice P jemuž odpovídá bod M v kartézských souřadnicích definuje hodnoty pravděpodobnosti pro každou buňku ležící na polopřímce 60 −−→ P M . Model lze popsat následujícími rovnicemi: 1− modelvr (δ) = 0 1− modelor (δ) = 0 ³ δ r−² δ−r ² ´2 ´2 , pro δ ∈< 0, r − ² > jinak (7.1) , pro δ ∈< r − ², r + ² > jinak, kde modelor (δ) označuje míru obsazenosti pro buňku ležící ve vzdálenosti δ od P , zatímco modelvr (δ) míru její volnosti. Konstanta ² určuje přesnost senzoru. Hustota pravděpodobnosti obsazenosti buňky a, jejíž poloha je v souřadné soustavě senzoru daná polárními souřadnicemi (alpha, δ), je pak definována takto: p(r|obs(a)) = modelrv /modelro lx ³ 1 + modelor (δ) − modelvr (δ) . 2 (7.2) . . . . r− r r δ Obrázek 7.1: Míra obsazenosti (červeně) a míra volnosti (modře) pro kvadratický model laserového hloubkoměru. Integrace měření (respektive pravděpodobností daných modelem) do mřížky obsazenosti se provádí pomocí následujícího vzorce, který je aplikací Bayesova vztahu: P (obs(a)|r) = p(r|obs(a))P (obs(a)) , p(r|obs(a))P (obs(a)) + (1 − p(r|obs(a)))(1 − P (obs(a))) kde P (obs(a)|r) je nová hodnota pravděpodobnosti obsazenosti buňky a P (obs(a)) její předchozí hodnota. Protože chyba laserového hloubkoměru ² je srovnatelná s velikostí buňky v mřížce, je možno funkce ve vztazích 7.1 nahradit konstantami. Po úpravách a dosazení pak získáváme nový vztah pro integraci: P (obs(a)|r) = KObs P (obs(a)) KObs P (obs(a)) + (1 − KObs )(1 − P (obs(a))) KV ol P (obs(a)) KV ol P (obs(a)) + (1 − KV ol )(1 − P (obs(a))) kde KObs a KV ol jsou konstanty určené vztahem 7.2. 61 pro δ = r jinak, Předchozí vztah znamená, že pravděpodobnost buňky, v které leží měření, bude zvýšena, zatímco pro všechny ostatní buňky na úsečce P M se pravděpodobnost obsazenosti sníží (viz obr. 7.2). Obrázek 7.2: Konstantní model laserového hloubkoměru. Buňka, v které leží měření (červená) bude mít hodnotu p(r|obs(a)) rovnu KObs . Pro modré buňky bude platit, že p(r|obs(a)) = KV ol . 7.1.2 Segmentace mřížky Mějme pravděpodobnostní mřížku obsazení M = {Mxy | x, y ∈ {1, . . . , n}}, kterou jsme b získali postupem popsaným n o v 7.1.1. Cílem segmentace je vytvořit binární matici M = Mbxy | x, y ∈ {1, . . . , n} takovou, že Mbxy = 1 právě tehdy, jestliže buňka Mxy reprezentuje hranici nějakého objektu ve scéně. Ostatní buňky matice pak budou mít hodnotu nula. Segmentační algoritmy jsou standardními postupy počítačového vidění a zpracování obrazu. K základním segmentačním metodám patří prahování (Šonka et al., 1993), které lze vyjádřit vztahem: Mbxy = 1 ≡ Mxy > Práh, kde Práh je předem definovaná konstanta. Vzhledem k tomu, že v pravděpodobnostních mřížkách generovaných laserovým hloubkoměrem se víceméně vyskytují tři druhy hodnot hodnoty v oblastech kolem 0 (značící prázdný prostor), 0.5 (neprozkoumaný nebo neznámý prostor) a 1 (překážka), je prahování pro segmetaci naprosto dostačující. Zmíněná „tří-hodnotovostÿ mřížky (viz též obr. 5.5) umožňuje rovněž snadné stanovení hodnoty Práh, neboť při drobných změnách tohoto parametru dochází pouze k malým změnám v segmentované mřížce. Tento jednoduchý postup lze použít pouze pro mřížky zpracovávající data laserového hloubkoměru. Sonarová čidla generují více šumu, navíc další problémy jsou způsobeny vícenásobnými odrazy. Několikanásobné odrazy se totiž mohou naintegrovat v pravděpodobnostní mřížce tak, že odpovídající buňky mají vysokou pravděpodobnost výskytu překážky. Tyto buňky tudíž nelze odfiltrovat pouze jedním prahem. Naštěstí se ukazuje, 62 že v buňkách odpovídajícícm několikanásobným odrazům jsou nižší hodnoty velikosti gradientu než v buňkách odpovídajícím reálným objektům. Proto jsme pro detekci hranice objektu v sonarových mřížkách použili následující podmínku (Kulich et al., 1999b): Mbxy = 1 ≡ Mxy > Práh ∧ |∇Mxy | > Phrana , kde ∇ značí gradient (maximální rozdíl hodnoty v buňce a jejich sousedů v 8-okolí) a Phrana předdefinovanou konstantu. Při vlastní imlementaci jsme z předchozí nerovnosti odstranili absolutní hodnotu, čímž se zamezí tomu, aby se každá hrana detekovala dvakrát (pro obě sousedící buňky). Bez absolutních hodnot se bude detekovat hrana pouze v buňce s větší hodnotou. 8000 6000 4000 2000 0 0.1 . 0.3 . 0.5 . 0.7 . 0.9 Obrázek 7.3: Histogram hodnot buněk mřížky. 7.1.3 Úprava segmentované mřížky Vlivem nepřesností senzorů se často stává, že hrana jednoho objektu se segmentací rozpadne na několik souvislých množin buněk, mezi kterými leží jedna až dvě buňky detekované jako prázdný prostor. K opětovnému spojení rozpadlých množin používáme metodu matematické morfologie - uzavření. Uzavření se skládá ze dvou operací - dilatace následované erozí. Obrázek 7.4: Strukturní element S8 . Černé čtverečky reprezentují body strukturního elementu, křížkem je označen počátek soustavy souřadné. Strukturní element S8 je tedy množina {−1, 0, 1}2 63 Binární matici lze rovněž reprezentovat jako množinu bodů, jež odpovídají souřadnicím buněk s hodnotou 1: n o X = (x, y) | Mbxy = 1 . Dilatace skládá body dvou množin pomocí vektorového součtu: n o X ⊕ S = b ∈ N 2 | b = x + s, x ∈ X , s ∈ S , kde množina S se nazývá strukturní element a může nabývat různých tvarů. Pro naši potřebu budeme používat standardní strukturní element S8 z obrázku 7.4. Dilatací matice Mb o strukturní element S8 dostaneme matici Md , přičemž pro každý prvek Mbxy ∈ Mb platí, že v matici Md budou hodnoty 1 nabývat všichni jeho sousedé v 8-sousednosti včetně jeho samého. Přesněji: Mdxy = 1 ≡ ∃ xx, yy ∈ {−1, 0, 1} : Mbx+xx,y+yy = 1. Dilatací se spojili oblasti buněk ležící blízko sebe (odstranili se mezery velikosti dvou buněk). Na druhou stranu se však oblasti nafoukly, což je pro další zpracování nevhodné. Proto se používá operace eroze, která odtraní pixely z hranic objektů. Eroze je duální transformací k dilataci a je definována takto: n o X ª S = b ∈ N 2 | b + s ∈ X pro ∀s ∈ S . Eroze byla provedena opět strukturním elementem S8 , což znamená, že buňka ve výsledné mřížce Mm bude nabývat hodnoty 1 právě tehdy, pokud všichni její sousedé v mřížce Mr mají hodnotu 1: Mexy = 1 ≡ ∀ xx, yy ∈ {−1, 0, 1} : Mdx+xx,y+yy = 1. 7.1.4 Nalezení a úprava kostry Z obrázku 7.9 je patrné, že po aplikaci morfologických operací jsou ještě hranice objektů příliš tlusté, což je důsledek jednak nepřesného určení polohy a jednak nepřesností senzorů. Protože rozložení chyby laserových hloubkoměrů je symetrické, lze předpokládat, že skutečná hrana objektu povede středem „tlustýchÿ hranic mřížky Me . Tomuto předpokladu odpovídá kostra množiny bodů, kterou tvoří takové body, jejichž vzdálenost od alespoň dvou různých částí hranice množiny je stejná. Formálnější definici kostry lze nalézt v (Šonka et al., 1993). Takto definovaná kostra má však tu nevýhodu, že počet komponent kostry může být větší než počet komponent původní množiny bodů. Proto pro detekci hranic objektů použijeme tzv. homotopickou kostru, která počet komponent zachovává. Abychom mohli popsat algoritmus nalezení homotopické kostry, zavedeme nejprve operaci hit or miss, která je definována vztahem M ⊗ S = (M ª S1 ) ∩ (Mc ª S2 ), kde Mc je doplněk k množině M (tj. množina bodů mřížky, které mají hodnotu 0) a S = (S1 , S2 ) složený strukturní element skládající se ze dvou strukturních elementů. 64 Nyní můžeme definovat ztenčování množiny M složeným strukturním elementem S: M ® S = (M \ (M ⊗ S), kde \ označuje operaci jednostranného množinového rozdílu. Konečně, kostru lze získat sekvenčním ztenčováním posloupností 8 strukturních elementů. Takových posloupností existuje opět celá řada (tzv. Golayova abeceda), přičemž pro nalezení kostry se používají strukturní elementy L. Každý složený strukturní element S = (S1 , S2 ) lze popsat jedinou maticí, kde jedničky označují, že prvek patří elementu S1 . Prvky elementu S2 jsou reprezentovány nulou na příslušném místě matice a prvky, jež nemají na srovnání vliv jsou označeny hvězdičkou. Strukturní elementy L lze poté vyjádřit následující posloupností: 0 0 0 ∗ 0 0 1 ∗ 0 ∗ 1 ∗ L1 = ∗ 1 ∗ , L2 = 1 1 0 , L3 = 1 1 0 , L4 = 1 1 0 1 1 1 ∗ 1 ∗ 1 ∗ 0 ∗ 0 0 1 1 1 ∗ 1 ∗ 0 ∗ 1 0 0 ∗ L5 = ∗ 1 ∗ , L6 = 0 1 1 , L7 = 0 1 1 , L8 = 0 1 1 . 0 0 0 0 0 ∗ 0 ∗ 1 ∗ 1 ∗ Sekvenční ztenčování se aplikuje tak dlouho, dokud se výsledek dvou po po sobě následujících iterací neliší. Nevýhodou kostry získané sekvenčním ztenčováním posloupností elementů L je množství drobných výběžků vzniklých při skeletonizaci širších hran. To je způsobeno tím, že kostra obdélníku není úsečka, ale tvar z obrázku 7.5. Obrázek 7.5: Kostra obdélníku. Naštěstí lze tyto drobné výběžky jednoduchým způsobem zrušit tak, že se odstraní všechny buňky, jejichž počet sousedů je roven jedné. Aplikací tohoto filtru n-krát se odstraní výběžky jejichž délka je větší nebo rovna n. Bohužel takto se zkrátí délky i ostatních hran, na což je potřeba brát zřetel při dalším zpracování. 7.1.5 Rozdělení kostry na posloupnosti buněk Kostra získaná v předchozí kapitole se obecně skládá z několika spojitých oblastí, kde buňky odpovídající hranici jedné překážky náleží stejné oblasti (obráceně toto tvrzení neplatí, neboť jedna oblast může obsahovat buňky různých překážek, viz obr. 7.12). Aby bylo možné kostru aproximovat geometrickými primitivy, musíme ji nejprve rozštěpit na oblasti buněk tak, aby každá oblast odpovídala jednomu primitivu. Navíc je pro 65 další zpracování vhodné buňky jednotlivých oblastí uspořádat do lineární posloupnosti tak, aby buňky sousedící v mřížce po sobě následovaly i v posloupnosti. Algoritmus štěpení na oblasti lze popsat takto: 1. Inicializuj seznam primitiv jako prázdný: P = ∅. 2. Pro každou buňku b kostry spočítej její stupeň (počet sousedních buněk ležících v oblasti) δ(b). 3. Buňky se stupněm větším než 2 seskup do oblastí tak, aby dvě buňky náležely stejné oblasti právě tehdy, když spolu sousedí. Označme Oi i-tou oblast a O množinu těchto oblastí: O = {Oi | i = 1 . . . |O|}. Oblasti odpovídají místům, kde se stýká více hranic překážek. 4. Inicializuj počet seznamů buněk k = 0. 5. Najdi dosud nezpracovanou buňku b kostry s nejnižším stupněm, vytvoř nový seznam buněk Sk = {b}. 6. Dokud (a) buňka b není v seznamu O a zároveň δ(b) > 0 nebo (b) velikost seznamu S je 1, prováděj následující kroky: (a) najdi libovolného nezpracovaného souseda s buňky b (b) sniž stupeň b i s: δ(b) = δ(b) − 1, δ(s) = δ(s) − 1. (c) přidej souseda na konec seznamu buněk S a označ b = s. 7. Pokud je počet buněk v seznamu S menší než stanovená mez, potom seznam reprezentuje šum a z dalšího zpracování je vyloučen. 8. Pokud nebyly zpracovány všechny buňky, zvyš k o jedna a jdi na krok 5. 9. Projdi všechny oblasti Oi . Pokud krajní body dvou seznamů leží ve stejné oblasti Oi , potom tyto dva seznamy spoj. Toto spojení může mít tři různé podoby. Jestliže v oblasti leží počáteční bod jednoho seznamu a koncový bod druhého seznamu, pak spojení proběhne pouhým přidáním prvního seznamu za druhý. Pokud leží ve stejné oblasti počáteční body obou seznamů, potom spojení vznikne otočením prvního seznamu a přidáním druhého na jeho konec. Konečně, pokud v oblasti leží koncové body seznamů, pak se otočený první seznam přidá na konec druhého seznamu. Jak bylo zmíněno v předchozí kapitole, odstraněním výběžků kostry se rovněž zkrátila délka všech ostatních hran. Proto nakonec všechny vzniklé seznamy na obou stranách prodloužíme o tolik, kolikrát jsme aplikovali filtr z kapitoly 7.1.4. To provedeme tak, že ke každému krajnímu bodu seznamů nalezneme posloupnost pixelů, které byly filtrem odstraněny a s níž krajní bod sousedí a tuto posloupnost přidáme k seznamu postupem z kroku 9. Pokud pro jeden krajní bod existuje takových posloupností více, vybere se z nich náhodně jedna. 66 7.1.6 Aproximace posloupností Po aplikaci algoritmu štěpení z kapitoly 7.1.5 jsme získali pro každé geometrické primitivum posloupnost pixelů, kterou toto primitivum reprezentuje. Jelikož tyto posloupnosti mají stejný charakter jako senzorická data, můžeme pro jejich aproximaci použít principy popsané v kapitole 6.1. Jedinou odchylkou je to, že posloupnosti mohou popisovat uzavřené objekty, což se při aproximaci musí zohlednit. Obrázek 7.6: Pravděpodobnostní mřížka obsazenosti vygenerovaná z laserových dat z obrázku 7.20. Obrázek 7.7: Segmentovaná mřížka obsazenosti. Obrázek 7.8: Mřížka po aplikování dilatace. Obrázek 7.9: Mřížka po aplikaci eroze. 67 7.2 Obrázek 7.10: Kostra mřížky. Obrázek 7.11: Upravená kostra mřížky. Obrázek 7.12: Rozdělení upravené kostry na oblasti. Obrázek 7.13: Výsledná geometrická reprezentace laserových dat. Použití neuronových sítí pro získání popisu hranice překážky Na úlohu získání geometrického popisu překážek ze senzorických dat lze rovněž pohlížet jako na optimalizační problém. Cílem takto formulované úlohy je pro množinu bodů reprezentující senzorická data nalézt množinu primitiv, která minimalizuje penalizační funkci charakterizující chybu vzdálenosti dat od reprezentujících primitiv. K možným postupům, jak řešit takovéto optimalizační úlohy, patří speciální druh neuronových sítí – tzv. samoorganizující struktury. Nejznámnějším představitelem samoorganizujících struktur jsou Kohonenovy mapy. Jejich základní nevýhodou je pevný počet neuronů a neměnná topologie. Díky tomu se 68 tyto parametry musí volit pro kažkou úlohu znovu s ohledem na vstupní data. Vzhledem variabilitě prostředí, v kterých se robot může pohybovat, je těžké (pokud ne přímo nemožné) topologii sítě i počet neuronů nastavit optimálně. Navíc existuje řada i relativně jednoduchých příkladů, kde Kohonenovy mapy zcela selhávají nebo nedávají uspokojivé výsledky, viz obr. 7.14–7.19. Obrázek 7.14: Aproximace dvou spirál Kohonenovou mapou ve tvaru řetízku délky 100. Obrázek 7.15: Aproximace dvou spirál Kohonenovou mapou ve tvaru mřížky 10 × 10. Obrázek 7.16: Aproximace dvou spirál rostoucím neuronovým plynem (ukončovací podmínka: počet neuronů=100). Obrázek 7.17: Aproximace obdélníků různé velikosti Kohonenovou mapou ve tvaru řetízku délky 100. Obrázek 7.18: Aproximace obdélníků spirál Kohonenovou mapou ve tvaru mřížky 10 × 10. Obrázek 7.19: Aproximace dvou obdélníků rostoucím neuronovým plynem (ukončovací podmínka: počet neuronů=100). Pro úlohu mapování prostředí jsme se proto rozhodli použít jiný druh samoorganizujících struktur - rostoucí neuronový plyn (Growing Neural Gas) (Fritzke, 1997). Učení 69 zmíněné metody začíná se dvěmi neurony, přičemž další neurony a spoje mezi nimi se přidávají a odstraňují podle potřeby, díky čemuž je rostoucí neuronový plyn univerzálnější a lépe popisuje vstupní data. Podrobněji popíšeme algoritmus učení GNG v kapitole 7.2.2. Mapování prostředí pomocí neuronových sítí pak probíhá ve třech krocích: 1. Ze získaných senzorických dat odstraň šum. 2. Aplikuj algoritmus GNG. 3. Aproximuj neuronovou síť geometrickými primitivy. Tento algoritmus lze obecně použít na data z libovolného typu senzoru měřícího vzdálenost. Jedinou částí, která bude specifická pro každý druh čidla je filtrace v kroku 1. My se v dalším textu opět zaměříme na laserový hloubkoměr, který jsme měli k dispozici. 7.2.1 Předzpracování senzorických měření Na rozdíl od mřížek obsazenosti, které jsou poměrně dobře uzpůsobeny pro práci se nepřesnými daty, metoda GNG se sama od sebe neumí vypořádat zejména s vícenásobnými odrazy a se situacemi, kdy je nejbližší překážka od senzoru příliš daleko. Proto před aplikací neuronové sítě musíme naměřená data upravit pomocí dvojice filtrů, které se provádějí postupně na všechna měření (alphaki , rik ) všech scanů Sk . První filtr odstraňuje měření, která jsou od senzoru dál, než specifikovaná vzdálenost Tmax : Pokud rik > Tmax , pak měření (αik , rik ) odstraň z dalšího zpracování. Druhý filtr vychází ze skutečnosti, že délky naměřené v sousedních měřeních jednoho scanu by se od sebe neměly příliš lišit. Pokud ano, pak bude měření odstraněno: k | > T k k k k Pokud |rik − ri−1 mez ∧ |ri − ri+1 | > Tmez , pak měření (alphai , ri ) odstraň z dalšího zpracování. 7.2.2 Rostoucí neuronový plyn Hlavní myšlenkou metody rostoucího neuronového plynu je postupné přidávání nových neuronů do původně malé sítě na základě odhadu lokální chyby vypočtené během předchozích adaptačních kroků. Topologie sítě je generována rovněž během učícího se procesu kompetitivním hebbovským učením. Kompletní algoritmus lze popsat takto: 1. Inicializuj množinu neuronů N obsahující dva neurony n1 a n2 , jejichž souřadnice jsou zvoleny náhodně: N = {n1 , n2 }. 2. Inicializuj množinu spojů C, C ⊂ N × N jako prázdnou množinu: C = ∅. 3. Vyber náhodně bod b reprezentující senzorické měření z množiny všech senzorických měření M. 70 4. Najdi v množině N nejbližší a druhý nejbližší neuron k bodu b a označ je s1 , respektive s2 : s1 = arg min ||b − n|| n∈N s2 = arg min n∈N \{s1 } ||b − n|| 5. Pokud dosud neexistuje spojení (hrana) mezi s1 a s2 , pak jej vytvoř: C = C ∪ {(s1 , s2 )} . Zároveň vynuluj stáří spojení: vek(s1 ,s2 ) = 0. 6. Přidej čtverec vzdálenosti mezi bodem a nejbližším neuronem k lokální chybě: Es1 = Es1 + ||b − s1 ||2 . 7. Adaptuj polohy nejbližšího neuronu a jeho topologických sousedů tak, že se přiblíží o konstantu ²b (respektive ²n ) k bodu n: s1 = s1 + ²b (b − s1 ) ni = ni + ²b (b − ni ) ∀ni ∈ Ns1 , kde Ns1 je množina sousedů neuronu s1 : Ns1 = {ni | (s1 , ni ) ∈ C} . 8. Zvyš stáří všech hran vedoucích z s1 : vek(s1 ,ni ) = vek(s1 ,ni )+1 ∀ni ∈ Ns1 . 9. Odstraň všechny hrany, jejichž stáří je větší než definovaný práh amax . Pokud odstraněním hran vznikne neuron, z kterého nevede žádná hrana, potom odstraň rovněž tento neuron. 10. Pokud počet cyklů je beze zbytku dělitelný danou konstantou λ, vytvoř nový neuron následujícím způsobem: • Najdi neuron nq s maximální lokální chybou: nq = arg max Eni . ni ∈N • Ze sousedů nq vyber ten neuron, jehož lokální chyba je největší: nn = arg max Eni . ni ∈N\q 71 • Definuj nový neuron r ležící ve středu úsečky nq nn a tento neuron přidej do množiny neuronů: nq + nn , N = N ∪ {r}. r= 2 • Do seznamu hran vlož hrany spojující nový neuron r s neurony nq a nn a odstraň z něj hranu mezi nq a nn : C = C ∪ {(nq , r), (nn , q)} \ {(nq , nn )}. • Zmenši lokální chyby neuronů nq a nn o násobek definované hodnoty α: Enq = Enq − αEnq , Enn = Enn − αEnn . • Interpoluj lokální chybu neuronu r z hodnot Enq a Enn : Er = Enq + Enn . 2 11. Zmenši lokální chybu všech neuronů o násobek β: Eni = Eni − αEni ∀ni ∈ N . 12. Pokud není splněno ukončovací kritérium jdi na krok 3. Ukončovací kritérium může být obecně různé. V našem případě algoritmus ukončíme tehdy, pokud ke každému bodu senzorického měření existuje neuron, jehož vzdálenost od tohoto bodu je menší než předem definovaný práh P : max min |mj − ni | < P. mj ∈M ni ∈N 7.2.3 Aproximace neuronové sítě úsečkami Výstupem algoritmu GNG je množina neuronů daných svými kartézskými souřadnicemi spolu s množinou spojení těchto neuronů, přičemž platí, že neurony aproximují senzorická měření (obrázek 7.22). Z hlediska lokalizace by ale bylo vhodnější, aby senzorická měření byla aproximována množinou úseček a tedy spojů. Toho lze dosáhnout tak, že ke každému spoji neuronů přiřadíme ta senzorická měření, která jsou k tomu kterému spoji nejblíže. Pro každý spoj tak získáme počet měření, jež tento spoj reprezentuje a tedy jakousi váhu určující kvalitu spoje, kterou lze použít pro odstranění spojů, jež odpovídají malému počtu měření(viz obr. 7.23). Počet neuronů a spojů generovaných metodou GNG je příliš velký na to, aby mohly být použity pro geometrický model prostředí. Proto posledním krokem bude redukce jejich počtu, kterou provedeme postupným slučováním spojů. Postupně budeme procházet všechny neurony mající počet sousedů roven právě 2, na které budeme aplikovat následující postup: 72 1. Nechť neuron ni sousedí s neurony na a nb . 2. Jestliže je vzdálenost ni od přímky na nb menší než definovaný práh Tprec , pak (a) Odstraň neuron ni společně se spoji na ni a ni nb . (b) Přidej nový spoj na nb . Na závěr ještě odstraníme samostatné úsečky, jejichž délka je menší než stanovená mez. Takto upravená síť již bude tvořit výsledný geometrický model prostředí, jak je ukázáno na obrázku 7.24. Obrázek 7.20: Hrubá senzorická data po lokalizaci polohy. Obrázek 7.21: Senzorická data po odfiltrování šumu. Obrázek 7.22: Aproximace senzorických měření rostoucím neuronovým plynem. Obrázek 7.23: Odstranění spojnic neuronů s malou váhou. 73 Obrázek 7.24: Výsledná geometrická reprezentace senzorických dat. 74 Kapitola 8 Experimentální výsledky V této kapitole popíšeme experimentální výsledky, na kterých budeme demonstrovat základní výhody a nevýhody Line-To-Line lokalizace i obou metod pro tvorbu geometrické mapy prostředí. K získání senzorických dat byl použit mobilní robot ER1 od firmy Evolution Robotics (http://www.evolution.com/er1), přičemž data byla získána laserovým hloubkoměrem PLS-100 firmy SICK. Základní technické parametry tohoto hloubkoměru jsou uvedeny v tabulce 8.1. Úhel záběru Úhlové rozlišení Minimální detekovatelná vzdálenost Maximální detekovatelná vzdálenost Šířka vysílaného signálu Přesnost měření Doba měření 180◦ 0.5◦ 0.1 m 60 cm 0◦ 5 cm 50 ms Tabulka 8.1: Technické parametry laserového hloubkoměru SICK PLS-100. Další testování metod během jejich vývoje jsme prováděli rovněž na experimentální mobilní platfomě Glbot vyvinuté na katedře kybernetiky FEL ČVUT v Praze (Štěpán et al., 1999)(Kulich et al., 1999a). Vlastní implementace algoritmů byla provedena v prostředí systému MATLAB, přičemž veškeré výpočty popsané dále v této kapitole běžely na počítači Pentium IV, 2.8Ghz. 8.1 Lokalizace polohy Metodu Line-To-Line pro lokalizaci polohy v zobecněné verzi jsme testovali ve třech různých prostředích – v chodbě, místnosti s krabicemi a kancelářském prostředí. Vzhledem k tomu, že nemáme k dispozici prostředky pro přesné měření polohy v každém okamžiku jízdy robotu, prováděli jsme experimenty následujícím způsobem. Nejprve jsme označili startovní pozici robotu a do této pozice jsme robot umístili. Poté robot provedl jízdu v daném prostředí tak, aby jeho skutečná cílová poloha byla stejná jako poloha počáteční. Na 75 Obrázek 8.1: Robot ER-1 vybavený laserovým hloubkoměrem SICK PLS-100. základě naměřených laserových dat byla metodou Line-To-Line vypočtena poloha robotu, přičemž odchylka mezi počáteční a cílovou pozicí robotu byla prohlášena za chybu. V každém prostředí jsme provedli pět různých jízd. Tím jsme pro každou jízdu získali sadu laserových měření, na které jsme poté aplikovali lokalizační algoritmus. Takto jsme získali pozice, z kterých byla laserová data snímána a ty jsme dále desetkrát zašuměli tak, že jsme každou x-ovou a y-ovou souřadnici každé pozice náhodně posunuli v rozmezí 0 − 10 cm a natočení jsme rovněž náhodně změnili o 0 − 15◦ , takže maximální odchylka mezi polohami dvou měření mohla být v x-ové i y-ové souřadnici až 20 cm a v otočení až 30◦ . Na zašumělá data jsme poté opět aplikovali lokalizační metodu Line-To-Line, čímž jsme pro každou sadu obdrželi dalších deset hodnot. Výsledky experimentů v jednotlivých prostředích jsou popsány v tabulkách 8.2-8.4. V prvním řádku tabulek je uveden počet scanů naměřených v každé sadě, dále délka trajektorie (v centimetrech), průměrný počet detekovaných hran v každém scanu, průměrný počet detekovaných párů mezi dvěmi scany, doba běhu algoritmu (v sekundách) a průměrný čas zpracování jednoho scanu. V dalších řádcích následují hodnoty chyb lokalizace. Řádek označený „origÿ udává chybu lokalizace z dat naměřených během jízd robotu, zatímco řádky „1.ÿ-„10.ÿ popisují chyby uměle zašuměných dat. Ve sloupcích označených „∆dÿ jsou uvedeny vzdálenosti mezi skutečnou a vypočtenou polohou (v centimetrech) a ve sloupcích označených „∆φÿ rozdíl v jejich natočení (ve stupních). Konečně poslední řádek tabulky udává průměrnou procentuální chybu určení souřadnic [x, y] polohy vzhledem k ujeté vzdálenosti. Číslo před lomítkem odpovídá chybě naměřených dat, zatímco za lomítkem je uvedena průměrná chyba přes všech 10 zašumělých jízd. První prostředí, v kterém se robot pohyboval, je chodba (viz obr. 8.4). Toto prostředí se vyznačuje malým počtem překážek a tedy i počet detekovaných hran je nízký. Díky tomu Line-To-Line algoritmus v tomto typu prostředí pracuje velice rychle. Navíc dlouhé stěny chodby se poměrně dobře dají aproximovat úsečkami, což zaručuje velkou přesnost lokalizace, jak je uvedeno v tabulce 8.2. Chyba v určení pozice se v tomto prostředí pohybuje kolem 0.5% a chyba v natočení je zanedbatelná vzhledem k tomu, že přesnost určení skutečného natočení byla odhadem 1 − 2◦ . Největší chyby v lokalizaci byly způsobeny zejména špatnou detekcí drobných výčnělků ve zdi (radiátory, dveře), která vyplývá 76 z rozlišení senzoru. Pokud robot projíždí dlouhou chodbou a nevidí její konec, jsou tyto výčnělky často jedinými orientačními body pomocí nichž lze určit souřadnici polohy ve směru délky chodby. Tato chyba se projevila zejména u sady 5. Principiálním problémem ve scénách s malým počtem překážek by mohlo být to, že senzor „vidíÿ pouze jednu hranu (stěnu chodby), což je pro Line-To-Line lokalizaci nedostatečné a metoda v takovém případě selhává. Toto je však obecný nedostatek všech lokalizačních metod založených na zpracování dat čidel měřících vzdálenost. Řešením je použít pro lokalizaci jiná čidla, případně snímat celých 360◦ okolí robotu. Obrázek 8.2: Prostředí s krabicemi, v kterém byly prováděny experimenty. Obrázek 8.3: Kancelářské prostředí, v kterém byly prováděny experimenty. Dalším typem prostředí, ve kterém jsme prováděli experimenty, byla místnost s rozmístěnými krabicemi (obrázky 8.2 a 8.6). To je charakteristické zejména větším počtem překážek, které jsou dobře detekovatelné a od sebe dobře rozlišitelné. V tomto prostředí je algoritmus velice přesný a stabilní vzhledem k tomu, že v každém okamžiku je detekováno několik hran s různou orientací, což je pro správné určení polohy nezbytné. Drobné nepřesnosti lze pak opět přičíst malému rozlišení laserového hloubkoměru, díky němuž se špatně určily polohy jednotlivých objektů a tím i poloha robotu. Poslední měření jsme získali v typickém kancelářském prostředí s několika stoly, židlemi a množstvím drobných předmětů (viz obr. 8.3 a 8.8). Tyto objekty jsou špatně detekovatelné laserovými čidly (například ze židle je sejmuta pouze její noha). Navíc se tyto objekty překrývají, což vede k tomu, že se scéna rozpadne na relativně velké množství krátkých úseček a Line-To-Line lokalizace je proto v tomto prostředí nejpomalejší a nejméně přesná. Závěrem lze říci, že popsaná metoda určování pozice pracuje velice přesně a rychle ve strukturovaných prostředích, kde se vyskytují překážky dobře detekovatelné laserovým hloubkoměrem a jejichž hranice lze dobře aproximovat úsečkami. Zejména chyba určení orientace v takovýchto prostředích se pohybuje v mezích, v kterých jsme byli schopni určit reálnou orientaci. Naopak v prostředích s množstvím malých překážek, které navíc nemusí mít polygonální tvar dosahuje metoda horších, přesto však použitelných výsledků. 77 ◦ x x φ − −10 − Obrázek 8.4: Data z laserového hloubkoměru po určení polohy v prostředí chodby (sada 3) počet scanů délka trajektorie detekované hr. nalezené páry. doba běhu prům. čas na scan orig. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. chyba (%) sada 1 731 2627.1 8.70 6.08 68.93 0.13 ∆d ∆φ 6.2 -1.5 3.3 -1.4 8.5 -1.5 8.0 -1.4 7.5 -1.5 9.3 -1.4 3.0 -1.4 10.0 -1.4 6.0 -1.5 7.0 -1.4 4.7 -1.5 0.23/0.25 Obrázek 8.5: Rozdíl poloh mezi dvěmi scany po lokalizaci (prostředí chodby - sada 3) sada 2 546 2489.5 9.47 6.36 73.65 0.14 ∆d ∆φ 15.3 2.3 8.9 1.5 11.2 2.0 6.1 1.6 19.0 2.7 28.8 2.6 20.0 2.2 21.9 3.0 24.8 3.1 17.3 2.5 14.7 2.0 0.61/0.69 sada 3 652 2954.7 8.96 6.52 83.40 0.13 ∆d ∆φ 2.1 -0.9 2.0 -1.2 4.5 -0.9 7.4 -0.9 4.1 -1.0 6.6 -0.9 6.4 -1.4 4.2 -1.3 6.0 -0.3 1.3 -1.2 7.7 -0.4 0.07/0.17 sada 4 646 3147.4 10.76 7.36 93.18 0.14 ∆d ∆φ 7.6 -0.8 7.5 -1.0 9.1 -1.1 11.1 -1.2 17.6 -1.1 15.6 -0.8 8.6 -1.1 8.7 -0.9 24.9 0.0 14.9 -1.0 2.1 -0.6 0.24/0.38 sada 5 731 3624.3 10.92 7.43 104.76 0.14 ∆d ∆φ 27.8 0.3 20.8 -1.2 16.8 -1.1 17.2 -1.0 26.1 -1.8 19.2 -1.2 28.6 0.2 20.1 -1.4 21.4 -1.2 21.3 0.0 19.3 -1.3 0.77/0.58 Tabulka 8.2: Přesnost Line-To-Line lokalizace v prostředí s malým počtem překážek. 78 x x φ ◦ − −10 − Obrázek 8.6: Data z laserového hloubkoměru po určení polohy v prostředí s krabicemi (sada 1) počet scanů délka trajektorie detekované hr. nalezené páry. doba běhu prům. čas na scan orig. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. chyba (%) sada 1 358 1524.5 19.32 13.24 90.841 0.25 ∆d ∆φ 4.9 1.0 6.1 -2.3 6.6 1.0 4.1 -0.5 3.4 1.1 4.9 0.6 2.8 1.3 4.2 0.8 2.7 0.8 2.0 1.0 4.7 0.7 0.32/0.27 150 250 350 Obrázek 8.7: Rozdíl poloh mezi dvěmi scany po lokalizaci (prostředí s krabicemi - sada 1) sada 2 282 986.4 16.82 12.85 63.18 0.22 ∆d ∆φ 9.8 1.3 9.6 1.3 10.2 1.2 9.9 1.2 9.9 1.2 9.9 1.5 8.4 1.5 9.8 1.3 9.4 1.2 9.5 1.3 9.5 1.4 0.99/9.97 sada 3 298 1235.1 16.49 12.22 59.82 0.20 ∆d ∆φ 6.0 2.7 9.3 2.9 9.0 3.2 14.7 2.6 9.9 3.0 12.6 2.1 7.4 2.6 8.6 2.7 9.6 2.6 8.4 2.8 9.1 2.9 0.48/0.80 sada 4 330 1398.5 16.69 13.52 68.12 0.21 ∆d ∆φ 4.7 0.5 5.4 0.5 7.8 0.4 5.8 0.5 6.9 0.4 11.3 0.0 6.9 0.4 5.8 0.4 6.5 0.4 5.6 0.1 5.5 0.7 0.33/0.48 sada 5 424 1514.7 20.09 15.212 113.41 0.27 ∆d ∆φ 8.4 -1.4 5.9 -1.2 7.6 -2.0 3.9 0.2 4.3 -1.3 3.3 -2.0 4.2 0.0 5.9 -1.4 3.9 -1.8 5.4 -1.1 7.9 -2.6 0.55/0.35 Tabulka 8.3: Přesnost Line-To-Line lokalizace v prostředí s krabicemi. 79 x x φ ◦ − −10 − −20 Obrázek 8.8: Data z laserového hloubkoměru po určení polohy v kancelářském prostředí (sada 1) počet scanů délka trajektorie detekované hr. nalezené páry. doba běhu prům. čas na scan orig. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. chyba (%) sada 1 387 1639.7 23.77 16.36 139.03 0.36 ∆d ∆φ 14.8 3.0 22.9 1.7 11.6 2.1 5.5 2.8 4.5 2.7 12.2 2.9 6.3 3.6 7.4 5.1 19.2 6.1 7.2 3.3 12.1 1.7 0.90/0.66 150 250 350 Obrázek 8.9: Rozdíl poloh mezi dvěmi scany po lokalizaci (kancelářské prostředí - sada 3) sada 2 315 1196.8 28.69 19.17 143.37 0.46 ∆d ∆φ 18.1 7.7 24.1 7.5 26.7 9.1 21.0 8.7 18.8 8.8 16.0 9.0 15.0 7.9 20.1 7.8 25.5 5.5 9.6 4.5 21.7 5.4 1.51/1.66 sada 3 262 1038.8 29.31 19.74 118.07 0.45 ∆d ∆φ 17.4 4.8 13.0 4.2 8.5 1.7 10.8 4.3 18.1 3.7 15.6 2.0 10.7 2.8 11.3 3.3 8.4 3.6 12.7 2.6 12.3 2.0 1.67/1.17 sada 4 281 995.1 28.0 18.88 115.74 0.41 ∆d ∆φ 13.4 -6.0 19.4 -3.9 15.9 -5.5 14.7 -5.9 16.7 -1.9 17.5 2.0 7.6 -4.7 5.7 -5.3 17.4 0.1 10.3 -1.8 13.6 -5.3 1.35/1.39 sada 5 298 939.9 27.94 19.49 123.58 0.42 ∆d ∆φ 15.9 2.0 21.3 1.0 24.9 -0.6 19.7 0.0 22.4 0.6 21.4 -0.3 20.1 -0.9 22.2 0.9 19.9 0.0 20.5 3.3 22.5 -0.5 1.69/2.29 Tabulka 8.4: Přesnost Line-To-Line lokalizace v běžném kancelářském prostředí. 80 8.2 Mapování prostředí Jelikož kvalita výstupu algoritmů mapování prostředí nezávisí pouze na vzdálenosti skutečných objektů od jejich obrazů v generované mapě, ale rovněž na topologickém uspořádání objektů, použili jsme pro hodnocení a porovnání těchto algoritmů dva různé přístupy. První spočívá v tom, že jsme z krabic vytvořili pět objektů různých tvarů. Pro každý z těchto objektů jsme provedli pět jízd, kde jízda se skládala z objetí objektu po jeho obvodu zhruba ve vzdálenosti půl metru, nasnímání laserových dat, jejich lokalizaci a vygenerování hranic objektu oběmi metodami popsanými v kapitole 7. Poté jsme vytvořený popis hranice (obraz) porovnali se vzorem získaným ručním měřením skutečného objektu. Porovnání obrazu se vzorem byla provedena tak, že na hranici vzoru byly rovnoměrně vygenerovány body. Ke každému bodu se poté spočítala vzdálenost od obrazu a průměrná vzdálenost přes všechny tyto body byla prohlášena za míru podobnosti. Pro každý z objektů bylo provedeno pět různých jízd, jejichž výsledky jsou shrnuty v tabulce 8.2. Jednotlivé řádky tabulky udávají míry podobnosti metod založených na rostoucím neuronovém plynu (GNG) a mřížkách obsazenosti pro jízdy 1-5. V posledním řádku je poté vypočtena průměrná hodnota přes všechny jízdy. Na obrázcích 8.10 a 8.11 jsou navíc nalezené hranice objektů zobrazeny. Z výše uvedených experimentů vyplývá, že metoda založená na rostoucím neuronovém plynu je o něco přesnější, rozdíly však nejsou nikterak velké. 1. 2. 3. 4. 5. průměr krabice GNG MO 1.12 1.50 1.44 1.16 1.64 1.03 1.56 1.47 0.96 1.66 1.344 1.364 I GNG 1.95 0.65 1.01 0.89 0.66 1.032 MO 2.04 0.65 1.42 1.76 1.13 1.4 S GNG 1.42 1.61 1.24 1.04 1.3 1.322 MO 1.81 1.90 2.32 1.19 2.48 1.94 Y GNG 1.89 2.23 1.41 2.12 1.78 1.886 L MO 2.06 3.31 2.8 2.8 1.7 2.523 GNG 1.53 1.05 1.51 2.41 1.66 1.632 MO 1.39 1.69 1.29 1.73 1.95 1.61 Tabulka 8.5: Přesnost algoritmů stavby modelu prostředí. Protože vyhodnocení kvality geometrického modelu prostředí je velice složité a dosud nebyla vypracována metodologie, jak takovéto vyhodnocení provést, v druhé části této kapitoly se budeme zabývat čistě subjektivním porovnáním obou metod. Za tímto účelem jsme zmíněnými metodami vygenerovali mapy prostředí ze senzorických dat, které byly naměřeny během experimentů s lokalizací polohy. Vytvořené mapy z dat na obrázcích 8.4, 8.6 a 8.8 jsou postupně na obrázcích 8.12, 8.13 a 8.14. Obecně lze říci, že obě metody vykazují dobré chování v dobře strukturovaných prostředích, kde objekty mají polygonální tvar. Obě metody dobře nalezly hranice krabic i stěny na chodbě a v místnosti s krabicemi. V takovýchto scénách se opět projevuje větší přesnost algoritmu GNG, který nalezl i drobné výčnělky na chodbě, zatímco mřížkový přístup její stěny „vyhladilÿ. Na druhou stranu, mřížky se lépe vyrovnávají s místy, kdy je informace o objektech nedostatečná buď díky šumu nebo objekt byl detekován malým 81 počtem měření. To se projevilo například ve scéně s krabicemi, kde objekty v levém dolním rohu (pojízdný stoleček se zásuvkami a židle) nebyly mřížkou detekovány, zatímco GNG se je neúspěšně pokusil aproximovat. Mřížkový přístup je rovněž méně náchylný k chybám lokalizace. Ty se v senzorických datech promítnou jako rozmazaná tlustá „čáraÿ nebo dokonce dvě blízké rovnoběžné čáry. Zatímco metoda založená na mřížkách aproximuje tuto překážku úsečkou vedoucí středem takového shluku bodů, neuronový algoritmus ji proloží klikatou lomenou čarou, jak je demonstrováno na obrázku 8.13. Největší problémy působilo oběma metodám kancelářské prostředí, kde se nacházelo množství malých předmětů, které lze polygony reprezentovat velmi těžko. Ne zcela přesné určení polohy rovněž způsobilo „rozmazáníÿ laserových dat, což proces mapování rovněž ztížilo. Z porovnání obou metod subjektivně opět vychází lépe algoritmus zpracovávající mřížky obsazenosti, neboť jím generovaný výstup je vizuálně hezčí a hranice objektů působí hladším dojmem. Závěrem lze konstatovat, že obě metody jsou dobře použitelné v prostředích s polygonálními překážkami, kde je o něco lepší algoritmus založený na neuronových sítích, což je dáno jeho větší přesností. Naopak metoda pracující s mřížkami obsazenosti je robustnější vzhledem k chybám v určení polohy, šumu senzorických dat a tvaru překážek. To ji činí obecně vhodnější, zejména pak pro mapování nestrukturovaných prostředí. Obrázek 8.10: Objekt ve tvaru „Iÿ. Černě zobrazena skutečná poloha objektu, modře obrys objektu získaný algoritmem na extrakci hranic z pravděpodobnostní mřížky obsazenosti a zeleně hranice objektu generovaný metodou GNG. 82 Obrázek 8.11: Objekty ve tvaru krabice, „Sÿ, „Yÿ a „Lÿ. Černě zobrazena skutečná poloha objektu, modře obrys objektu získaný algoritmem na extrakci hranic z pravděpodobnostní mřížky obsazenosti a zeleně hranice objektu generovaný metodou GNG. 83 Obrázek 8.12: Geometrický model prostředí z dat na obrázku 8.4. Vlevo model generovaný z pravděpodobnostní mřížky, vpravo metodou GNG. Obrázek 8.13: Geometrický model prostředí z dat na obrázku 8.6. Vlevo model generovaný z pravděpodobnostní mřížky, vpravo metodou GNG. 84 Obrázek 8.14: Geometrický model prostředí z dat na obrázku 8.8. Vlevo model generovaný z pravděpodobnostní mřížky, vpravo metodou GNG. 85 86 Kapitola 9 Shrnutí, dosažené cíle disertace 9.1 Shrnutí a přínos práce V předkládané práci jsou řešeny dva základní problémy současné mobilní robotiky - určování pozice robotu při jízdě v neznámém prostředí a automatického vytváření modelu tohoto prostředí. Protože zejména úloha lokalizace je široký pojem, úvodní kapitoly se věnují popisu řídicího systému mobilního robotu a jeho základních komponent, přičemž byly obě výše zmíněné úlohy detailněji definovány a specifikovány cíle jejich řešení. V další části jsou detailně rozebrány v současné době používané senzorické systémy, umožňující lokalizaci polohy a tvorbu mapy prostředí. Byly popsány základní principy jejich činnosti spolu s nejčastějšími problémy, s kterými je možno se při řešení zmíněných úloh pomocí těchto senzorů setkat. Rovněž jsme podali poměrně podrobný přehled metod a postupů jiných autorů zabývajících se problematikou lokalizace a mapování. Hlavním přínosem této práce je prezentovaná metoda Line-To-Line lokalizace pracující pouze s daty získanými ze senzorů měřících vzdálenost od překážky, které se věnuje kapitola 6. Dále byly navrženy dva algoritmy pro automatické vytváření geometrického modelu prostředí. Zatímco první metoda ze senzorických dat nejprve vytváří pravděpodobnostní mřížku obsazenosti a v ní hledá geometrickou interpretaci hranic objektů v prostředí, základem druhé metody je aproximace senzorických dat pomocí samoorganizující se struktury. Všechny uvedené metody byly implementovány v prostředí MATLAB (s vyjímkou části kódu algoritmu GNG, který byl napsán v jazyce C++) a testovány na autonomním mobilním robotu Glbot katedry kybernetiky FEL ČVUT v Praze. Většina algoritmů byla také převedena do řídicího systému autonomního robotu Glbot a stala se tak součástí prototypu v České republice unikátní experimentální platformy. Veškeré experimenty uvedené v této práci pak byly provedeny s mobilním robotem ER1 firmy Evolution Robotics. Zmíněné algoritmy se tak staly základem nové verze řídicího systému vyvíjeného pro tento mobilní robot. Dále uvedeme podrobné shrnutí nových metod a přístupů vytvořených v rámci této práce. 87 9.2 Lokalizace polohy Na základě studia ve světě používaných přístupů určování polohy robotu se nám podařilo navrhnout vlastní algoritmus kontinuální lokalizace, který jsme nazvali Line-To-Line. Vstupem tohoto algoritmu jsou dva scany - referenční a aktuální spolu s polohami, v kterých byly získány. Cílem je potom korigovat polohu aktuálního scanu tak, aby úsečky nalezené v jednotlivých scanech si co nejvíce odpovídaly. Míra toho, jak moc si úsečky (respektive scany) odpovídají, je přitom dán definovanou penalizační funkcí. Výstupem algoritmu je tedy korekce původní polohy aktuálního scanu ve formě transformace dané posunutím o vektor (∆x, ∆y) a otočením o úhel ∆φ. Přínos práce je uveden v následujícím výčtu: • Byla navržena kostra Line-To-Line algoritmu pro kontinuální lokalizaci, který pracuje s úsečkami získanými segmentací měření aktuálního a referenčního scanu. Hlavní myšlenka spočívá právě v použití segmentovaných úseček pro zjištění rozdílu poloh mezi dvěmi scany. Za další přínos lze rovněž považovat nastavení počátečních parametrů požadované transformace, které jsou poté použity jako vstup pro numerickou optimalizaci. • V kapitole 6.1 byla navržena metoda aproximace senzorických měření množinou úseček, která vychází ze známých algoritmů IEPF a SEF. Metoda byla dále doplněna o spojování sousedních úseček reprezentujících jednu hranu skutečného objektu a filtr vylučující z dalšího zpracování úsečky reprezentující šum. • Bylo definováno kritérium pro ohodnocení míry korespondence dvou úseček, které odpovídá předpokladům, z nichž se vychází při lokalizaci. Toto kritérium bylo použito pro nalezení párů korespondujících úseček v referenčním a aktuálním scanu. Dále bylo možné pomocí tohoto kritéria ohodnotit kvalitu nalezeného párování úseček dvou scanů, což bylo použito pro korekci větších odchylek poloh mezi sadami měření. • Byla definována penalizační funkce vyjadřující pro množiny úseček referenčního a aktuálního scanu a míru shody. Optimalizací penalizační funkce pak byla nalezena transformace polohy aktuálního scanu. • Základní verze Line-To-Line algoritmu byla zobecněna pro větší odchylky mezi dvěmi scany. Toto zobecnění zvyšuje přesnost a robustnost určování polohy. 9.3 Mapování prostředí Druhým tématem, kterému se tato práce věnuje, je automatická tvorba geometrického modelu prostředí z dat získaných senzory měřícími vzdálenost od překážky. Geometrickým modelem je zde myšlena množina polygonů a lomených čar reprezentujících hranice objektů nacházejících se v pracovním prostředí robotu. Na rozdíl od dosud známých přístupů pracují prezentované metody dávkově. To znamená, že výsledný model prostředí je zkonstruován až po získání všech senzorických dat 88 a nikoliv během jízdy robotu. Výhodou dávkového přístupu je možnost pracovat se všemi daty najednou, což umožňuje vytvoření kvalitnější reprezentace prostředí. Tento klad je na druhou stranu vykoupen nemožností používat takto vytvořenou mapu již během jízdy (např. pro lokalizaci). V předkládané práci byly navrženy dvě metody vytváření geometrického modelu prostředí, každá pracující na zcela jiném principu. Přínos je tedy následující: • Byla vyvinuta metoda mapování prostředí založená na zpracování pravděpodobnostních mřížek obsazenosti. V této části navazujeme na disertační práce L. Krále (Král, 1998) a P. Štěpána (Štěpán, 2001) zabývající se právě tvorbou mřížek obsazenosti. Kromě výše uvedeného je hlavní výhodou navrženého postupu zejména její malá náchylnost k chybám způsobených šumem v senzorických datech a nepřesným určením polohy. • Byl navržen algoritmus aproximace hranice překážek pomocí neuronových sítí. Hlavní myšlenkou tohoto algoritmu je minimalizovat penalizační funkci charakterizující chybu vzdálenosti předzpracování senzorických dat od množiny geometrických primitiv reprezentujících mapu prostředí. Vlastní optimalizace pak byla provedena druhem samoorganizující struktury - rostoucím neuronovým plynem, jejíž výstup byl dále upraven tak, aby se zmenšil počet primitiv ve vybudované mapě. Kladem tohoto přístupu je zejména jeho přesnost v situacích, kdy nedochází k chybám v určování polohy senzoru. 9.4 Dosažené cíle disertace, porovnání se stanovenými cíli V tomto odstavci uvedeme závěrečné shrnutí dosažených cílů s ohledem k jejich zadání, jak byly uvedeny v kapitole 4. 1. V kapitole 5.1 je uveden přehled v mobilní robotice nejrozšířenějších senzorů, které lze použít pro úlohy určování polohy robotu a tvorbu modelu prostředí, ve kterém se robot pohybuje. Byly popsány základní charakteristiky jejich činnosti spolu s problémy, s kterými je možno se při jejich používání setkat. Kapitola 5.2 se věnuje ve světě publikovaným metodám kontinuální lokalizace pomocí senzorů měřících vzdálenost od překážky. Dále jsou v kapitole 5.3 popsány používané postupy tvorby geometrického modelu prostředí z dat naměřených těmito senzory. 2. V kapitole 6 byla navržena původní metoda lokalizace polohy, která pracuje s množinami úseček vzniklými aproximací dvou po sobě následujících senzorických scanů. Díky tomuto předzpracování je metoda rychlá a nenáchylná k senzorickému šumu. Základní algoritmus byl rovněž rozšířen tak, aby byl schopen korigovat větší odchylky v pozicích mezi dvěmi scany. 3. Kapitola 7 popisuje dva různé přístupy k vytváření geometrického modelu prostředí - zpracování mřížky obsazenosti a extrakci založenou na neuronových sítích. Díky dávkovému zpracování všech dostupných dat jsou obě metody schopné nejen detekovat hranice objektů, ale tyto hranice rovněž spojovat do polygonů a lomených čar, 89 což je nezbytná podmínka pro další použití takto generovaných map v symbolických reprezentacích. 4. Všechny navržené algoritmy byly experimentálně ověřeny s reálnými daty z laserového hloubkoměru v různých typech prostředí. Dále byla vyčíslena přesnost těchto algoritmů v závislosti na charakteru prostředí, ve kterém se robot pohybuje. 90 Kapitola 10 Závěr Předkládaná disertační práce se zabývá dvěmi ze základních úloh současné mobilní robotiky - kontinuálním určováním polohy robotu a následnou tvorbou modelu prostředí. Tyto dvě úlohy jsou spolu úzce spjaty, neboť přesné určení polohy je nezbytnou podmínkou pro vytvoření korektního modelu a znalost mapy naopak velice usnadní lokalizaci. Úspěšné zvládnutí zmíněných problémů navíc umožňuje řešit další úlohy vedoucí k plné autonomnosti robotických systémů. V předchozích kapitolách jsme navrhli a diskutovali nové metody určování polohy a mapování, jejichž činnost byla dále ověřena v praxi na dvou mobilních robotech. Ukázali jsme, že navržené metody pracují dostatečně přesně a robustně, aby mohly být použity jako základní stavební prvek složitějších systémů. Tímto navazujeme na úspěšně obhájené disertační práce P. Štěpána a L. Krále zabývající se architekturou řídicího systému robotu a mřížkou obsazenosti jako základní reprezentací prostředí pro senzorickou vrstvu. Spojením výsledků všech tří prací vznikl unikátní systém pro řízení a navigaci mobilních robotů. Další okruhy, které navazují a rozvíjejí tuto disertační práci, se týkají zejména využití geometrické mapy pro lokalizaci. To vyžaduje, aby byly prezentované algoritmy pro stavbu modelu prostředí upraveny tak, aby mohly být použity během jízdy robotu a zachovaly si přitom dávkový charakter zpracování. Modely generované zmíněnými metodami mohou být přímo použity pro vytvoření symbolické vrstvy mapy, což by umožnilo komunikaci robotu s člověkem v přirozeném jazyce. Rovněž by bylo vhodné nezůstat pouze u 2D reprezentace prostředí, ale rozšířit uvedené metody pro práci s trojrozměrnými daty. Tato témata jsou v současné době předmětem dalšího intenzivního výzkumu. 91 92 Literatura Abidi, M. A. a Gonzalez, R. C., Eds.) (1992). Data Fusion in Robotics and Machine Intelligence. Vol. I. Academic Press, Inc. (ISBN 0-12-042120-8). Oval Road, London. Arkin, R. a Balch, T. (1998). Cooperative multiagent robotic systems. In: Artificial Intelligence and Mobile Robots (D. Kortenkamp, R.P. Bonasso a R. Murphy, Eds.). MIT/AAAI Press. Cambridge, MA. Arkin, R. a Murphy, R. (1990). Autonomous navigation in a manufacturing environment. IEEE Trans. Robotics and Automation 6(4), 445–454. Beauchemin, S. S. a Barron, J. L. (1996). Biologically inspired control of autonomous robots. Robotics and Autonomous Systems 18, 21–31. Besl, P.J. a McKay, Neil D. (1992). A method for registration of 3-d shape. IEEE Transactions on Pattern Analysis and Machine Intelligence 14(2), 239–256. Borenstein, J. a Feng, L. (1996). Measurement and correction of systematic odometry errors in mobile robots. IEEE Journal of Robotics and Automation 12(6), 869–880. Brumitt, B. L. a Stentz, A. (1998). Grammps: A generalized mission planner for multiple mobile robots. In: IEEE International Conference on Robotics and Automation. Leuven, Belgium. Castellanos, J. A. a Tardós, J. D. (1999). Mobile Robot Localization and Map Building: A Multisensor Fusion Approach. Kluwer Academic Publishers. Boston. Cox, I. (1991). Blanche-an experiment in guidance and navigation of an autonomous robot vehicle. IEEE Transactions on Robotics and Automation 7(2), 193–204. Crowley, J. L. (1989). World modeling and position estimation for a mobile robot using ultrasoning ranging. IEEE Conf. on Robotics and Autonomous Systems 1989, Scottstale. Crowley, J. L. (1996). Mathematical foundations of navigation an perception for an autonomous mobile robot. In: Workshop on Reasoning with Uncertainty in Robotics (L. Dorst, Ed.). Springer Verlag. 93 de Weerdt, M., de Boer, F., van der Hoek, W. a Ch, J. (1998). Specifying uncertainty for mobile robots. Technical Report INF-SCR98 -19. . Utrecht University, Utrecht. Dennis, J.E., Jr. (1977). Nonlinear least-squares. In: State of the Art in Numerical Analysis (D. Jacobs, Ed.). Academic Press. pp. 269–312. Dubowsky, S. a Papadopoulos, E. (1993). The kinematics, dynamics and control of freeflying and free-floating space robotic systems. Duckett, T. a Nehmzow, U. (1999a). Knowing your place in real world environments. In: EUROBOT ’99, 3rd European Workshop on Advanced Mobile Robots. IEEE Computer Society Press. Duckett, T. a Nehmzow, U. (1999b). Self-localisation and autonomous navigation by a mobile robot. In: Proceedings of TIMR UK 99. Manchester University Technical Report UMCS-99-3-1, ISSN 1361-6161. Dudek, G. a Jenkin, M. (2000). Computational Principles of Mobile Robotics. Cambridge University Press. The Edinburg Building, Cambridge CB2 2RU, UK. Dudek, G., Freedman, P. a Hadjres, S. (1993). Using local information in a non-local way for mapping graph-like worlds. In: Proceedings of Intl. Joint Conference of Artifical Intelligence. Chambery, France. Dudek, G., Freedman, P. a Rekleitis, I. (1996). Just-in-time sensing: efficiently combining sonar and laser range data for exploring unknown worlds. In: Proceedings of IEEE Conference on Robotics and Automation. Vol. 1. pp. 667–672. Dudek, G., Romanik, K. a Whitesides, S. (1995). Localizing a robot with minimum travel. In: Proceedings of the 6th SODA: ACM-SIAM Symposium on Discrete Algorithms (A Conference on Theoretical and Experimental Analysis of Discrete Algorithms). San Francisco, California. pp. 437–446. Elfes, A. (1989). A Probalistic Framework for Robot Perception and Navigation. Carnegie– Mellon University. Elfes, A. (1990). Occupancy grids: A stochastic spatial representation for active robot perception. In: Proceedings of the Sixth Conference on Uncertainty in AI. Morgan Kaufmann Publishers, Inc. . 2929 Campus Drive, San Mateo, CA 94403. Everett, H. R. (1985). A multielement ultrasonic ranging array. Robotics Age pp. 16–20. Fortarezza, G., Oriolo, G., Ulivi, G. a Vendittelli, M. (1995). Robot localization method for inceremental map building and navigation. In: Proceedings of the 3rd International Symposium on Intelligent Robotic Systems ’95 (Colombo Carlos a Crowley James L., Eds.). Pisa, Italy. pp. 57–65. Fox, D., W. Burgard, W. a Thrun, S. (1998). Active Markov localization for mobile robots. Robotics and Autonomous Systems 25, 195–207. 94 Fritzke, B. (1997). Some competitive learning methods. Technical Report Draft. Institue for Neural Computation. Ruhr-Univesität Bochum. Gerecke, U. (1998). Accuracy, Reliability and Speed of SOM Ensemble Architectures for a Quick and Dirty Robot Localization Method. PhD thesis. The University of Sheffield, Department of Computer Science, Sheffield. Gomes-Mota, J. a Ribeiro, M. I. (1998). A multi-layer robot localisation solution using a laser scanner on reconstructed 3D models. In: Proceedings of the 6th International Symposium on Intelligent Robotic Systems, SIRS’98. Edinburgh, Scotland, UK. pp. 213–222. Gonzalez, J., Stentz, A. a Ollero, A. (1995). A mobile robot iconic position estimator using a radial laser scanner. Journal of Intelligent & Robotic Systems 13, 161–179. Grossmann, A. a Poli, R. (1999). Robust mobile robot localisation from sparse and noisy proximity readings. Technical Report CSRP-99-06. University of Birmingham, School of Computer Science. Hackett, J. a Shah, M. (1990). Mutli-sensor fusion: A perspective. In: International Conference on Robotics and Automation. pp. 1324–1330. Havel, M (1980). Robotika - Úvod do teorie kognitivních robotů. SNTL. Praha. Hinkel, R. a Knieriemen, T. (1988). Environment perception with a laser radar in a fast moving robot. In: Symposium on Robot Control 1988 (SYROCO ’88´). Karlsruhe, Germany. pp. 68.1–68.7. Howard, A., Matarić, M. J. a Sukhatme, G. S. (2002). Team localization: A maximum likelihood approach. Submitted to IEEE Transactions on Robotics and Autonomous Systems. Hu, H. a Brady, M. (1996). A parallel processing architecture for sensor-based control of intelligent mobile robots. Robotics and Autonomous Systems 17, 232–257. Iocchi, L. a Nardi, D. (1999). Hough transform based localization for mobile robots. In: Advances in Intelligent Systems and Computer Science (N. Mastorakis, Ed.). World Scientific Engineering Society. Jelínek, L. a Kazakov, D. (1996). Man-robot natural language interaction. Research report GL-09/96. ČVUT FEL, Katedra řídicí techniky - Gerstnerova laboratoř. Praha. Jelínek, L., Kazakov, D., Malý, K. a Štěpánková, O. (1998). Speech support for control. In: ISMCR’98 (TC17) Proceedings of the Eighth International Symposium on Measurement and Control in Robotics. Czech National Committee IMEKO/CTU Prague. pp. 271–277. Jung, D. a Zelinsky, A. (2000). Grounded symbolic communication between heterogeneous cooperating robots. Autonomous Robots 8(3), 269–292. 95 Kim, M. Y., Ko, K.W. a Cho, H.S. (1999). The design and application of an underwater inspection robot for decommissioned nuclear power plants. In: Proc. of International Conference on Mechatronic Technology (ICMT’99). Pusan, Korea. pp. 101–106. Klapka, Š. a Majer, O. (1996). General framework for 2D world representation. Technical Report 5855. Czech Technical University in Prague, Department of Control Eng. . Karlovo náměstí 13, Prague 6. Král, L., Přeučil, L. a Štěpán, P. (1998). Trajectory control for an intelligent mobile robot. In: IEEE International Conference on Intelligent Vehicles. Stuttgart, Germany. Král, L. (1998). Sdružování znalostí pro navigaci mobilního robotu. Doktorská práce (Ph.D.). ČVUT FEL, Katedra kybernetiky. Kulich, M., Mázl, R. a Přeučil, L. (2001). Self-localization methods for autonomous mobile robots based on range scan-matching. In: Proceedings of Field and Service Robotics Conference. Vol. 1. FSA-Finnish Society of Automation. Helsinki. pp. 373–378. Kulich, M., Přeučil, L., Štěpán, P. a Mařík, V. (1999a). Intelligent robot control system design. In: Advances in Artificial Inteligence and Engineering Cybernetics. Vol. 6. Windsor : IIAS. pp. 34–39. Kulich, M., Štěpán, P. a Přeučil, L. (1999b). Feature Detection and Map Building Using Ranging Sensors. In: Proceeding of the 1999/IEEJ/JSAI International Conference on Intelligent Transportation Systems. The Institute of Electrical Engineers of Japan (ISBN 0-7803-4975-X). Tokyo, Japan. pp. 201–206. Kulich, M., Štěpán, P. a Přeučil, L. (1999c). Knowledge acquisition for mobile robot environment mapping. In: Proceeding of the Database and Expert Systems Applications ’99, volume 1. Vol. 1. Heidelberg: Springer. Florence, Italy. pp. 123–134. Kulich, M., Štěpán, P. a Přeučil, L. (2000). Data fusion and map building in intelligent robotics. In: EUREL European Advanced Robotics Systems Master Class and Conference. Vol. 2. University of Salford. Salford. pp. 114–121. Kwon, Y. a Lee, J. (1999). A stochastic map building method for mobile robot using 2-D laser range finder. Autonomous Robots 7, 187–200. Lee, S., Amato, N. M. a Fellers, J. P. (2000). Fast localization of mobile robots using visibility sectors. Technical Report TR00-002. Department of Computer Science, Texas A&M University. Lefèvre, P., Prüß A. a Zimmer, U. R. (1994). Alice - topographic exploration, cartography and adaptive navigation on a simple mobile robot. In: TSRPC ’94. Leeuwenhorst, The Netherlands. Leonard, J. J., Durrant-Whyte, H. F. a Cox, I. J. (1992). Dynamic map building for an autonomous mobile robot. International Journal of Robotics Research 11(4), 286–298. 96 Levesque, Hector J., Reiter, Raymond, Lesperance, Yves, Lin, Fangzhen a Scherl, Richard B. (1997). GOLOG: A logic programming language for dynamic domains. Journal of Logic Programming 31(1-3), 59–83. Lu, F. a Milios, E. (1994). Robot pose estimation in unknown environments by matching 2d range scans. In: Proc. IEEE Comp. Soc. Conf. on Computer Vision and Pattern Recognition. Seattle, WA. pp. 935–938. MacKenzie, P. a Dudek, G. (1994). Precise positioning using model-based maps. In: Proceedings of IEEE International Conference on Robotics and Automation. San Diego, CA. pp. 1615–1621. Malone, R. (1978). The robot book. Harvest/HBJ book. New York : Harcourt Brace Jovanovich. A Push Pin Press book. Malý, K. a Štěpánková, O. (2000). Symbolic world model for intelligent mobile robot. In: EUREL - 2000. Salford : University of Salford. pp. 137–140. Mataric, M. J., Nilsson, M. a Simsarian, K. T. (1995). Cooperative multi-robot boxpushing. In: IEEE International Conference on Intelligent Robots and Systems (IROS). pp. 556–561. MathWorks (2002). Optimization Toolbox User’s guide. The MathWorks, Inc. Natick, MA. Mázl, R. a Přeučil, L. (2000). Building a 2d environment map from laser range-finder data. In: Proceedings of the IEEE Intelligent Vehicles Symposium. Dearborn, Michigan, USA. pp. 290–295. Mázl, R., Kulich, M. a Přeučil, L. (2001). Range scan-based localization methods for mobile robots in complex environments. In: Proceedings of Intelligent Transportation Systems Conference. Vol. 1. IEEE Computer Society Press. New York. pp. 280–285. Mázl, R., Kulich, M., Pavlíček, J. a Přeučil, L. (2002). Úvodní studie k projektu vlakového lokátoru - fúze dat z akcelerometru a odometru. Technical Report GLR 66/02. ČVUT FEL, Praha, K333 - Gerstnerova laboratoř. McKendall, R. (1990). Statistical decision theory for sensor fusion. IUW 90, 861–866. Miller, James Ryan, Amidi, Omead a Delouis, Mark (1999). Arctic test flights of the CMU autonomous helicopter. In: Proceedings of the Association for Unmanned Vehicle Systems International 1999, 26th Annual Symposium. Moravec, H. P. (1980). Obstacle Avoidance and Navigation in the Real World by a Seeing Robot Rover. PhD thesis. Stanford University, Stanford, California. Moravec, H. P. (1983). The Stanford cart and the CMU rover. In: Proceedings of the IEEE. Vol. 71. pp. 872–884. 97 Moravec, H. P. a Blackwell, M. (1992). Learning sensor models for evidence grids. Robotics Institute Research Review, Pittsburgh, PA. Moré, J. J. (1977). The Levenberg-Marquardt algorithm: Implementation and theory. In: Lecture Notes in Mathematics 630 (G. A. Watson, Ed.). Springer-Verlag. pp. 105–116. Olson, C. F. (2000). Probabilistic self-localization for mobile robots. IEEE Transactions on Robotics and Automation 16(1), 55–66. Parker, L. (1995). The effect of action recognition and robot awareness in cooperative robotic teams. In: IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). pp. 212–219. Pears, N. (2000). Feature extraction and tracking for scanning range sensors. Robotics and Autonomous Systems 33, 43–58. Peng, J. a Cameron, S. (1994). Task planning. In: Advanced guided vehicles (S. Cameron a P. Probert, Eds.). World Scientific Press, Singapore. pp. 205–225. Pfister, S. T., Kriechbaum, K. L., Roumeliotis, S. I. a Burdick, J. W. (2002). Weighted range sensor matching algorithms for mobile robot displacement estimation. In: Proceedings of the 2002 IEEE International Conference on Robotics and Automation. Washington D.C. (to appear). Pomerleau, D.A. (1993). Neural networks for intelligent vehicles. In: In Proc. Intelligent Vehicles. Tokyo. pp. 19–24. Přeučil, L., Král, L., Štěpán, P. a Kulich, M. (1998). Intelligent and mobile robotics. In: Eight International Symposium on Measurement and Control in Robotics (J. Volf a S. Papežová, Eds.). IMEKO. CTU Prague. Prague, Czech Rep. . pp. 265–270. Přeučil, L., Štěpán, P., Kulich, M. a Král, L. (1998). An intelligent service vehicle for indoor environments. In: Proceedings of the IEEE 98. Rundle Mall: CAUSAL Production. pp. 557–562. Přeučil, L., Štěpán, P., Kulich, M. a Mázl (2002). Towards environment modeling by autonomous mobile system. In: Knowledge and Technology Integration in Production and Services. Kluwer Academic / Plenum Publishers. New York. pp. 509–516. Ram, A., Arkin, R., Boone, G. a Pearce, M. (1994). Using genetic algorithms to learn reactive control parameters for autonomous robotic navigation. Adaptive Behavior 2(3), 277–304. Rus, D., Donald, B. a Jennings, J. (1995). Moving furniture with teams of autonomous robots. In: IEEE International Conference on Intelligent Robots and Systems (IROS). pp. 235–242. 98 Saffiotti, A. a Wesley, L.P. (1996). Perception-based self-localization using fuzzy locations. In: Reasoning with Uncertainty in Robotics — Proceedings of the International Workshop (M. van Lambalgen L. Dorst a F. Voorbraak, Eds.). pp. 368–385. LNAI 1093, Springer. Berlin, Germany. Schiele, B. a Crowley, J. L. (1994). A comparison of position estimation techniques using occupancy grids. In: Proceedings of the 1994 IEEE International Conference on Robotics and Automation. San Diego, CA. pp. 1628–1634. Shaffer, Gary (1995). Two-Dimensional Mapping of Expansive Unknown Areas. PhD thesis. Robotics Institute, Carnegie Mellon University. Pittsburgh, PA. Siadat, Ali, Kaske, Axel, KLAUSMANN, Siegfried, DUFAUT, Michel a HUSSON, René (1997). An optimized segmentation method for a 2d laser-scanner applied to mobilerobot navigation. In: 3rd IFAC SYMPOSIUM ON INTELLIGENT COMPONENTS AND INSTRUMENTS FOR CONTROL APPLICATIONS. Annecy, France. pp. 153– 158. Skrzypczyński, P. (1995). Building geometrical map of environment using IR range finder data. In: Proceedings of International Conference on Intelligent Autonomous Systems (U. Rembold et al., Ed.). IOS Press. Karlsruhe, Germany. Štěpán, P. (2001). Vnitřní reprezentace prostředí pro autonomní mobilní roboty. PhD thesis. ČVUT FEL, Katedra kybernetiky. Praha. Štěpán, P., Král, L., Kulich, M. a Přeučil, L. (1999). Open Control Architecture for Mobile Robot. In: Proceeding of the 14World Congress of IFAC. Exeter-England: Elsevier Science. Beijing, China. pp. 163–168. Thrun, S. (2000). Probabilistic algorithms in robotics. AI Magazine 21(4), 93–109. Thrun, S., Fox, D., Burgard, W. a Dellaert, F. (2001). Robust Monte Carlo localization for mobile robots. Artificial Intelligence. Thrun, Sebastian (1998). Learning metric-topological maps for indoor mobile robot navigation. Artificial Intelligence 99(1), 21–71. Torrance, M. C. (1994). Natural communication with robots. S. M. thesis. MIT Department of Electrical Engineering and Computer Science. Vainio, M., Appelqvist, P. a Halme, A. (1998). Generic control architecture for a cooperative robot system. In: IEEE/RSJ International Conference on Intelligent Robots and Systems. Victoria, Canada. Vandorpe, J., Brussel, H. V. a Xu, H. (1996). Exact dynamic map building for a mobile robot using geometrical primitives produced by a 2D range finder. In: Proceedings of the IEEE International Conference on Robotics and Automation. pp. 901–908. 99 Šonka, M., Hlaváč, V. a Boyle, R. (1993). Image Processing, Analysis and Machine Vision. Chapman and Hall Computing, London. Štěpán, P. a Přeučil, L. (1996). Statistical approach to range-data fusion and interpretation. In: Proceedings of the 1st Euromicro Workshop on Advanced Mobile Robots EUROBOT’96. IEEE Computer Society Press. Kaiserslautern, Germany. pp. 18–23. Weiß, G., Wetzler, C. a von Puttkamer, E. (1994). Keeping track of position and orientation of moving indoor systems by correlation of range- finder scans. In: Proceedings of the International Conference on Intelligent Robots and Systems. pp. 595–601. Wijk, O. a Christensen, H. (2000). Localization and navigation of a mobile robot using natural point landmarks extracted from sonar data. Robotics and Autonomous Systems 31(special issue), 31–42. Wijk, O., Jensfelt, P. a Christensen, H. (1998). Triangulation based fusion of ultrasonic sensor data. In: In Proceedings of International Conference on Robotics and Automation. Vol. 4. IEEE. Leuven, Belgium. pp. 3419–24. Wullschleger, F.H., Arras, K.O. a Vestli, S.J. (1999). A flexible exploration framework for map building. In: Proceedings of the Third European Workshop on Advanced Mobile Robots (Eurobot 99). Zurich, Switzerland. pp. 49–56. Yamauchi, B. a Langley, P. (1997). Place recognition in dynamic environments. Journal of Robotic Systems 14, 107–120. 100