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

Podobné dokumenty