Robotika Tvorba map v robotice - MRBT 3. března 2015 Ing. František Burian Komplexní inovace studijních programů a zvyšování kvality výuky na FEKT VUT v Brně OP VK CZ.1.07/2.2.00/28.0193
v pojetí mobilní robotiky Motivace Metrická mapa Topologická mapa je strojově čitelný popis prostředí, který lze využít k lokalizaci a navigaci robotu napříč tímto prostředím. Metrická mapa (2D zobrazení) Topologická mapa (teorie grafů)
Metrická mapa Motivace Metrická mapa Topologická mapa Ukládány kartézské souřadnice význačných bodů Náročné na přesnost měření, šum senzorů Lze jednoduše provádět sebelokalizaci [Hans P. Moravec - Robot Evidence Grids]
Topologická mapa Motivace Metrická mapa Topologická mapa Ukládány vzájemné vztahy význačných bodů Lze jednoduše provádět navigaci podél bodů D 6.2 4.2 C 1 1 A 3 B 2 2.5 3.5 E 3 F Uzly Hrany
y hotové mapy 3D Reálný (metrický) svět je složen z různě obsazených oblastí M. Hledáme způsob, jakým lze vyjádřit obsazenost tohoto světa. Pravděpodobnost obsazenosti Možnost obsazenosti (odds ratio)
- Pravděpodobnostní model y hotové mapy 3D Necht p(m O ) označuje ppst. obsazenosti buňky. 0, pokud je daná oblast světa neobsazená (M = E) p(m O ) = 0.5, pokud o dané oblasti nemáme informaci 1, pokud je daná oblast obsazená (M = O) Dále necht p(m E ) označuje ppst. volnosti (průchodivosti) buňky. Ze zákonů statistiky můžeme psát: 0 < p(m O ) < 1 0 < p(m E ) < 1 Nakonec uzavřeme skupinu jevů do celistvé skupiny 1 p(m O ) + p(m E ) = 1 Mapou obsazenosti rozumíme hodnoty obou veličin p(m O ) a p(m E ) 1 Pro účely jednoduššího pochopení, existují i jiné modely, kde toto nemusí platit.
- Model možností y hotové mapy 3D Vyjádřeme možnost, kterou má buňka, že je obsazená takto: O(M) = p(mo ) p(m E ) 0, pokud je daná oblast světa neobsazená (M = E) O(M) = 1, pokud o dané oblasti nemáme informaci, pokud je daná oblast obsazená (M = O) Mapou obsazenosti rozumíme hodnoty pouze jedné veličiny O(M)
Bayes - Odvození y hotové mapy 3D S p(a) p(b)
Bayes - Odvození y hotové mapy 3D S p(a) p(ab) p(b)
Bayes - Odvození y hotové mapy 3D S p(a) p(ab) p(b) p(a B) = p(ab) p(b)
Bayes - Odvození y hotové mapy 3D S p(a) p(ab) p(b) p(a B) = p(ab) p(b) p(b A) = p(ab) p(a)
Bayes - Odvození y hotové mapy 3D S p(a) p(ab) p(b) p(a B) = p(ab) p(b) p(b A) = p(ab) p(a) p(a B)p(B) = p(ab) = p(b A)p(A)
Bayes - Odvození y hotové mapy 3D S p(a) p(ab) p(b) p(a B) = p(ab) p(b) p(b A) = p(ab) p(a) p(a B)p(B) = p(ab) = p(b A)p(A) p(a B) = p(b A)p(A) p(b)
Bayes - Odvození y hotové mapy 3D S p(a) p(ab) p(b) p(a B) = p(ab) p(b) p(b A) = p(ab) p(a) nová informace p(a B) = p(b A)p(A) p(b) předchozí informace
Bayes - Odvození y hotové mapy 3D S p(a) p(ab) p(b) p(a B) = p(ab) p(b) p(b A) = p(ab) p(a) nová informace model senzoru p(a B) = p(b A)p(A) p(b) předchozí informace
Bayes - Odvození y hotové mapy 3D S p(a) p(ab) p(b) p(a B) = p(ab) p(b) p(b A) = p(ab) p(a) nová informace model senzoru p(a B) = p(b A)p(A) p(b) pravděpodobnost měření předchozí informace
Bayes - Odvození y hotové mapy 3D S p(a) p(ab) p(b) p(a B) = p(ab) p(b) p(b A) = p(ab) p(a) nová informace model senzoru p(a B) = p(b A)p(A) p(b) = předchozí informace likelihood prior evidence
Bayes - Odvození y hotové mapy 3D S p(a) p(ab) p(b) p(a B) = p(ab) p(b) p(b A) = p(ab) p(a) nová informace p(a B) = model senzoru p(b A)p(A) p(b A)p(A) + p(b A)p(A) předchozí informace
Možnost obsazenosti (odds ratio) y hotové mapy 3D S p(a) p(ab) p(b) p(a B) = p(ab) p(b) p(b A) = p(ab) p(a)
Možnost obsazenosti (odds ratio) y hotové mapy 3D S p(a) p(ab) p(b) p(a B) = p(ab) p(b) p(b A) = p(ab) p(a) O(A B) = p(a B) p(a B) = p(b A)p(A) p(b A)p(A) = λ(b A)O(A)
Možnost obsazenosti (odds ratio) y hotové mapy 3D S p(a) p(ab) p(b) p(a B) = p(ab) p(b) p(b A) = p(ab) p(a) nová informace O(A B) = p(a B) p(a B) = p(b A)p(A) p(b A)p(A) = λ(b A)O(A) předchozí informace
Možnost obsazenosti (odds ratio) y hotové mapy 3D S p(a) p(ab) p(b) p(a B) = p(ab) p(b) p(b A) = p(ab) p(a) nová informace model senzoru O(A B) = p(a B) p(a B) = p(b A)p(A) p(b A)p(A) = λ(b A)O(A) předchozí informace
y hotové mapy 3D Senzor připraven na měření
y hotové mapy 3D L Senzor změří vzdálenost L
y hotové mapy 3D f(x) L x Hustota pravděpodobnosti měření (normální rozdělení) f(x) = N(L, σ) = 1 σ 2π e (x L) 2 2σ 2
y hotové mapy 3D p(l M O ) L x - pravděpodobnost obsazenosti p(l M O ) x = p(l < x) = x 0 f(α)dα
y hotové mapy 3D p(l M E ) p(l M O ) L x - pravděpodobnost volného místa p(l M E ) x = p(l x) = 1 p(l = x) = 1 σ 2πf(x)
y hotové mapy 3D p(l M E ) p(l M O ) L x - Důvěryhodnost měření koeficient důvěry 0 < K < 1, obvykle K blízké 0.5 p(l M O ) x = (p(l M O ) x 0.5)K + 0.5 p(l M E ) x = (p(l M E ) x 0.5)K + 0.5
- pravděpodobnostní výpočet y hotové mapy 3D p(l M E ) p(l M O ) L x
- pravděpodobnostní výpočet L y hotové mapy 3D p(l M E ) p(l M E ) a p(l M O ) p(l M O ) a a x 1. Init: p(m O ) a = 0.5, p(m E ) a = 0.5 2. Měření1 (L 1): p(l 1 M O ) a = 0.22, p(l 1 M E ) a = 0.65 p(l 1) a = p(l 1 M O ) ap(m O ) a + p(l 1 M E ) ap(m E ) a = 0.22 0.5 + 0.65 0.5 = 0.43 p(m O L 1) a = p(l1 MO ) a p(m O ) a 0.22 0.5 = = 0.25 p(l 1) a 0.435 p(m E L 1) a = p(l1 ME ) a p(m E ) a 0.65 0.5 = = 0.75 = 1 p(m O L 1) a p(l 1) a 0.43
- pravděpodobnostní výpočet L y hotové mapy 3D p(l M E ) p(l M E ) a p(l M O ) p(l M O ) a a x 1. Init: p(m O ) a = p(m O L 1) a = 0.25, p(m E ) a = p(m E L 1) a = 0.75 2. Měření2 (L 2): p(l 2 M O ) a = 0.22, p(l 2 M E ) a = 0.65 p(l 2) a = p(l 2 M O ) ap(m O ) a + p(l 2 M E ) ap(m E ) a = 0.22 0.25 + 0.65 0.75 = 0.54 p(m O L 2) a = p(l2 O)a p(mo ) a 0.22 0.25 = = 0.10 p(l 2) a 0.54 p(m E L 2) a = p(l2 ME ) a p(m E ) a 0.65 0.75 = = 0.90 = 1 p(m O L 2) a p(l 2) a 0.54
- pravděpodobnostní výpočet y hotové mapy 3D p(l M E ) p(l M O ) L x p(m O Ln) p(m O ) x
- pravděpodobnostní výpočet y hotové mapy 3D p(l M E ) p(l M O ) L x p(m O Ln) p(m O ) p(m O L 1 ) x
- pravděpodobnostní výpočet y hotové mapy 3D p(l M E ) p(l M O ) L x p(m O Ln) p(m O ) p(m O L 1 ) p(m O L 2 ) x
- pravděpodobnostní výpočet y hotové mapy 3D p(l M E ) p(l M O ) L x p(m O Ln) p(m O ) p(m O L 1 ) p(m O L 2 ) p(m O L 3 ) x
- Možnostní výpočet y hotové mapy 3D p(l M E ) p(l M O ) L x
- Možnostní výpočet L y hotové mapy 3D p(l M E ) p(l M E ) a p(l M O ) p(l M O ) a a x 1. Init: O(M) a = 0.5 0.5 = 1 2. Měření1 (L 1): λ(l 1 M) a = 0.22 0.65 = 0.33 O(M L 1) a = λ(l 1 M) a O(M) a = 0.33 1 = 0.33
- Možnostní výpočet L y hotové mapy 3D p(l M E ) p(l M E ) a p(l M O ) p(l M O ) a a x 1. Init: O(M) a = O(M L 1) a = 0.33 2. Měření2 (L 2): λ(l 2 M) a = 0.22 0.65 = 0.33 O(M L 2) a = λ(l 2 M) a O(M) a = 0.33 0.33 = 0.10
- Možnostní výpočet y hotové mapy 3D p(l M E ) p(l M O ) L x O(M Ln) O(M) x
- Možnostní výpočet y hotové mapy 3D p(l M E ) p(l M O ) L x O(M Ln) O(M) O(M L 1 ) x
- Možnostní výpočet y hotové mapy 3D p(l M E ) p(l M O ) L x O(M Ln) O(M) O(M L 1 ) O(M L 2 ) x
- Možnostní výpočet y hotové mapy 3D p(l M E ) p(l M O ) L x O(M Ln) O(M) O(M L 1 ) O(M L 2 ) O(M L 3 ) x
(Occupancy grid) y hotové mapy 3D Celý svět disjunktně metricky (ekvidistantně) rozdělíme na oblasti
(Occupancy grid) y hotové mapy 3D Celý svět disjunktně metricky (ekvidistantně) rozdělíme na oblasti 1D: ekvidistantní úseky
(Occupancy grid) y hotové mapy 3D Celý svět disjunktně metricky (ekvidistantně) rozdělíme na oblasti 1D: ekvidistantní úseky 2D: ekvidistantní čtvercová mříž
(Occupancy grid) y hotové mapy 3D Celý svět disjunktně metricky (ekvidistantně) rozdělíme na oblasti 1D: ekvidistantní úseky 2D: ekvidistantní čtvercová mříž 3D: ekvidistantní krychlová mříž
(Occupancy grid) y hotové mapy 3D Celý svět disjunktně metricky (ekvidistantně) rozdělíme na oblasti 1D: ekvidistantní úseky 2D: ekvidistantní čtvercová mříž 3D: ekvidistantní krychlová mříž Každé buňce přiřadíme pravděpodobnost p(o) = 0.5
Krok 1. - Sebelokalizace y hotové mapy 3D Zjistíme polohu a směr senzoru (sebelokalizace) 1D: S = (S x, S sgn ) 2D: S = (S x, S y, S ϕ ) S ϕ 3D: S = (S x, S y, S z, S θ, S ψ, S ϕ )
Krok 2. - Projekce měření y hotové mapy 3D Změříme senzory okolí robotu 1D: M = (L, σ) 2D: M = (L, σ α, σ β ) 3D: M = (L, σ α, σ β, σ γ )
Krok 3. - Aplikace Bayese na mřížku y hotové mapy 3D Zjistíme buňky které měření ovlivnilo Pro každou buňku spočítat model senzoru Pro pravděpodobnostní model p(l M O ) a p(l M E ) Pro možnostní model λ(l M) Pro každou buňku mapy aplikovat bayese Pro pravděpodobnostní model p(m O L) a p(m E L) Pro možnostní model O(M L) 1D: M = (L, σ) 2D: M = (L, σ α, σ β ) 3D: M = (L, σ α, σ β, σ γ )
y mapy 2D y hotové mapy 3D Překážka Neznámo Volno
y mapy y hotové mapy 3D
y hotové mapy 3D Occupancy Grid obsahuje příliš mnoho informací pro navigaci v exteriéru Pro navigaci v exteriéru je lepší ukládat informaci o výšce terénu/překážky v dané mapě. Z výškové mapy (vrstevnice) lze vysledovat průjezdnost vozidla a překážky
Kam s ní? Motivace Klasická mřížka Quad tree K-D tree Octree Chceme pokrýt co největší detaily prostředí (stoly) Chceme mít co největší rozměr mapy (budova) To vede na velký objem uložených dat Mnoho dat je problém rychle a efektivně prohledávat Proto se téměř vždy snažíme o efektivní uložení dat
Lokalita bodu Motivace Klasická mřížka Quad tree K-D tree Octree
Lokalita bodu Motivace Klasická mřížka Quad tree K-D tree Octree
Lokalita bodu Motivace Klasická mřížka Quad tree K-D tree Octree
Lokalita bodu Motivace Klasická mřížka Quad tree K-D tree Octree
Vrstvený přístup Motivace Klasická mřížka Quad tree K-D tree Octree
Vrstvený přístup Motivace Klasická mřížka Quad tree K-D tree Octree
Vrstvený přístup Motivace Klasická mřížka Quad tree K-D tree Octree
Vrstvený přístup Motivace Klasická mřížka Quad tree K-D tree Octree
Vrstvený přístup Motivace Klasická mřížka Quad tree K-D tree Octree
Klasická mřížka obsazenosti Motivace Klasická mřížka Quad tree K-D tree Octree Popis Každý bod v mapě je uložen na výstupu Nejhorší varianta pamět ového záboru Rychlé na programování Size = D 2 size(pixel) 256 buněk
Quad tree Motivace Klasická mřížka Quad tree K-D tree Octree Popis Prostor je dělen vždy na 4 čtverce ukládají se pouze částečně zabrané čtverce Náročné na programování, úspora paměti 8 buněk
K-D tree Motivace Klasická mřížka Quad tree K-D tree Octree Popis Prostor je dělen vždy na 2 poloviny Osa dělení se vždy střídá Poloha dělení je závislá na četnosti dat (dělí vždy na polovinu četnosti) Ukládají se pouze částečně zabrané čtverce Velmi náročné na programování Velmi značná úspora paměti 3 buňky
Octree Motivace Klasická mřížka Quad tree K-D tree Octree Popis Prostor je dělen vždy na 8 krychlí ukládají se pouze částečně zabrané krychle Náročné na programování, úspora paměti
Děkuji za pozornost 3. března 2015 Ing. František Burian