Diplomová práce. Plánování cesty robota ve spojitém prostředí

Rozměr: px
Začít zobrazení ze stránky:

Download "Diplomová práce. Plánování cesty robota ve spojitém prostředí"

Transkript

1 Diplomová práce Plánování cesty robota ve spojitém prostředí vypracoval: Michal Šíma vedoucí práce: RNDr. Jiří Dvořák, CSc. obor: Inženýrská informatika a automatizace specializace: Informatika 2006

2 Strana 2

3 Strana 3 Vysoké učení technické v Brně, Fakulta strojního inženýrství Ústav: Ústav automatizace a informatiky Akademický rok 2005/2006 ZADÁNÍ DIPLOMOVÉ PRÁCE pro: Michala Šímu který/která studuje v magisterském studijním programu obor: Inženýrská informatika a automatizace Ředitel ústavu Vám v souladu se zákonem č.111/1998 o vysokých školách a se Studijním a zkušebním řádem VUT v Brně určuje následující téma diplomové práce: Plánování cesty robota ve spojitém prostředí v anglickém jazyce: Robot Path Planning in Continuous Environment Stručná charakteristika problematiky úkolu a cíle diplomové práce: Úkolem systému pro plánování dráhy robota je najít cestu z výchozího do cílového bodu tak, aby se robot nedostal do kolize se známými překážkami a aby nebyla porušena případná omezení kladená na pohyb robota.. Cíle diplomové práce: 1. Analyzovat problematiku plánování dráhy robota se zaměřením na metody RRT (Rapidly-exploring Random Trees). 2. Popsat vybrané metody a případně navrhnout jejich modifikace. 3. Prozkoumat možnost kombinace těchto metod s případovým usuzováním. 4. Implementovat vybrané a navržené metody a na základě výpočetních experimentů provést jejich srovnání.

4 Strana 4 Rozsah grafických prací: dle požadavků vedoucího práce Rozsah průvodní zprávy: cca 50 stran Seznam odborné literatury: [1] Meyer J.-A., Filliat D.: Map-Based Navigation in Mobile Robots: II. A Review of Map-Learning and Path-Planning Strategies. Cognitive Systems Research, 4 (2003), pp [2] LaValle, S.M., Kuffner, J.J.: "Rapidly Exploring Random Trees: Progress and Prospects". In proceedings of the Workshop on the Algorithmic Foundation, [3] Haigh K.Z., Shewchuk J.R.: Geometric Similarity Metrics for Case-Based Reasoning. In Case-Based Reasoning: Working Notes from the AAAI-94 Workshop, Seattle, WA, August 1994, AAAI Press, p [4] Rouzek, P. Plánování dráhy robota pomocí případového usuzování. Diplomová práce. VUT FSI, Brno, Vedoucí diplomové práce: RNDr. Jiří Dvořák CSc. Termín odevzdání diplomové práce je stanoven časovým plánem akademického roku 2005/06. V Brně dne L.S. Doc. RNDr. Ing. Miloš Šeda, Ph.D ředitel ústavu Prof. Ing. Josef Vačkář, CSc. děkan

5 Strana 5 Anotace Tato práce se zabývá plánováním cesty robota pomocí pravděpodobnostních stromů (RRT) a analyzuje možnosti jejich použití v kombinaci s případovým usuzováním (CBR). Teoretická část obsahuje popis základních pojmů, přehled metod používaných pro plánování cesty robota, popis pravděpodobnostních stromů a případového usuzování. Praktická část popisuje implementaci navržené metody, která pro plánování cesty neholonomického mobilního robota ve dvourozměrném pracovním prostoru se statickými polygonálními překážkami používá pravděpodobnostní stromy s případovým usuzováním. Tato práce byla zpracována v rámci vědecko-výzkumného záměru MSM "Simulační modelování mechatronických soustav". Annotation This thesis deals with robot path planning by means of Rapidly-exploring Random Trees (RRT) and analyzes possibilities of their use in combination with Case-Based Reasoning (CBR). The theoretic part contains description of basic terms, overview of robot path planning methods, description of RRT and CBR. The practical part describes implementation of proposed method using RRT with CBR for path planning of nonholonomic mobile robot in 2D workspace with static polygonal obstacles. This thesis was created in the project MSM "Simulation Modelling of Mechatronic Systems".

6 Strana 6

7 Strana 7 Obsah 1. Úvod Robot a okolní prostředí Autonomní mobilní robot Pracovní prostor Konfigurační prostor Metrika v konfiguračním prostoru Plánování pohybu Globální a lokální plánování Holonomické a neholonomické plánování Kompletní algoritmy plánování pohybu Metody pro plánování cesty robota Metody rozkladu do buněk Exaktní rozklad Aproximativní rozklad Mapy cest Deterministické metody Graf viditelnosti Redukovaný graf viditelnosti (graf tečen) Voronoiův diagram Pravděpodobnostní metody Pravděpodobností mapy cest (Probabilistic Roadmaps PRM) Pravděpodobnostní stromy (Rapidly-exploring Random Trees RRT) Potenciálová pole Pravděpodobnostní stromy (Rapidly-exploring Random Trees RRT) Základní algoritmus RRT Popis základního algoritmu RRT Plánovače na bázi RRT Plánovač se spádem k cíli (RRT-GoalBias) Plánovač se zaměřením na cíl (RRT-GoalZoom) Dvoustromový RRT plánovač Ostatní vylepšení RRT plánovače Limitní případ RRT plánovače Vlastnosti RRT Vysvětlení některých vlastností RRT Případové usuzování (Case-Based Reasonig CBR) Historie Základní pojmy CBR Případy Případová báze Účinnost CBR Proces případového usuzování Nalezení případu Použití případu Ověření případu Uchování případu CBR a plánování cesty robota Implementace Model robota... 35

8 Strana Metrika Inkrementální simulátor Překážky a detekce kolizí RRT CBR Vzorkování Přidání nové cesty do případového grafu Optimalizace případového grafu Nalezení vhodného případu v případovém grafu Algoritmus RRT s CBR Editor překážek Funkce pro kreslení a práci s objekty Požadavky programu na PC Simulační program Hlavní okno programu Hlavní menu a příkazy Příkazy v nabídce Akce Příkazy v nabídce Nastavení Nastavení RRT metody Načtení překážek Nastavení robota Nastavení CBR Generování náhodných konfigurací robota Zobrazení výsledků a import do Excelu Požadavky programu na PC Experimenty Stanovení optimální velikosti případového grafu Srovnání RRT a RRT+CBR Závěr... 61

9 Strana 9 1. Úvod Během posledních tří desetiletí se plánování pohybu robota ukázalo jako rozhodující a produktivní výzkumná oblast robotiky. Základním problémem plánování pohybu je nalezení nekolizní cesty robota mezi statickými překážkami. To je čistě geometrický problém, který vypadá zdánlivě jednoduše. Ve skutečnosti, s výjimkou robotů s několika málo stupni volnosti, je výpočetně velmi náročný. V polovině 80. let byla většina rozšířených plánovačů stěží schopná spočítat nekolizní cesty pro posouvající se a rotující rovinné objekty ve dvoudimenzionálních pracovních prostorech. Od té doby byl učiněn velký pokrok a dnešní plánovače běžně řeší složité praktické problémy často zahrnující roboty s mnoha stupni volnosti v komplikovaných prostředích. Příkladem může být plánovač použitý neurochirurgy k výpočtu pohybu kloubového robota s lineárním pohonem (Cyberknife) pro operaci nádorů mozku. Jako další příklad lze uvést plánovač, který byl úspěšně použit při montáži řídící sekce střely vzduch-vzduch Huges AIM-9X (sestava obsahovala 472 částí popsaných 55 MB dat z CAD systému). V posledních 10 letech bylo uvedeno množství nových algoritmů pro plánování pohybu, které jsou mimořádně úspěšné v řešení náročných problémů plánování pohybu, včetně problémů s mnoha stupni volnosti. Příkladem nových technik je plánovač cesty založený na náhodě použitý u pravděpodobnostních map cest (Probabilistic Roadmaps) nebo pravděpodobnostních stromů (Rapidly-exploring Random Trees). Plánování pohybu našlo uplatnění i mimo oblasti tradiční robotiky, jako jsou průmyslový design, počítačová animace a počítačové hry, mikroinvazivní chirurgie, spojování a dělení molekul. Problémy vyplývající z těchto oblastí jsou předmětem výzkumu plánování pohybu přinejmenším stejně jako množství robotických problémů. Základní problém plánování pohybu lze rozšířit o pohybující se překážky, kinematická a dynamická omezení pohybu robota, výpočet optimálních trajektorií nebo koordinaci více robotů. Podobně jako základní problém plánování pohybu, některá z těchto rozšíření, mají řešení, která mohou být použita v praxi, ale ještě vyžadují větší výzkum. Změny v robotických technologiích, stejně tak jako jejich nové aplikace, vyvolávají nové druhy problémů, které je třeba řešit.

10 Strana 10

11 Strana Robot a okolní prostředí Robot je mechanické zařízení, které je schopné provádět naprogramované úlohy. Robot může pracovat pod přímým řízením člověka (např. robotická ruka raketoplánu) nebo autonomně pod řízením naprogramovaného počítače. Roboty lze rozdělit na manipulátory (průmyslové roboty) a mobilní roboty. Mobilní roboty mají schopnost se přesouvat po svém pracovním prostředí a nejsou fixovány na jednu fyzickou lokaci. V kontrastu s nimi manipulátory tvoří kloubová ruka, která je připevněna k pevnému povrchu. Nejběžnější skupinou mobilních robotů jsou roboty s koly. Druhou skupinu tvoří chodící roboty a poslední nejmenší skupina obsahuje létající roboty (např. bezpilotní letadla). Nás budou zajímat v této práci především autonomní mobilní roboty. 2.1 Autonomní mobilní robot Autonomní mobilní robot je inteligentní stroj schopný vykonávat úkoly samostatně, bez lidské pomoci. Příkladem takového robota může být autonomní helikoptéra, ale i autonomně řízený automobil. Obr. 1 Autonomní mobilní robot Rover Sojourner na Marsu (NASA) Nejdůležitější vlastností autonomního robota je jeho schopnost reagovat na změny. Za tu většinou vděčí svému mozku počítači, který je zodpovědný více méně za vše, počínaje zpracováváním vstupních údajů, rozhodováním i konečným provedením vybraných akcí. Vstupní údaje počítači poskytují senzory. Senzor je zařízení, které je schopné měřit nějakou vlastnost prostředí. Příkladem takového senzoru může být třeba i obyčejný spínač. Tento spínač může robot využít jako nárazník. Měřená vlastnost prostředí je tedy fakt, že se v cestě nachází překážka. Naopak působit na své prostředí může robot pomocí efektorů. Typickým příkladem efektoru je elektromotor. Po připojení na kolo umožní robotu pohyb. V závislosti na velikosti robota se můžeme setkat i s dalšími typy efektorů, ať už to jsou spalovací motory či hydraulika.

12 Strana 12 Z nutných součástí zbývá zmínit ještě zdroj energie, nejčastěji akumulátor, který poskytuje energii senzorům, počítači i většině efektorů. Větší roboty vybavené spalovacími motory mívají alternátory, které akumulátor průběžně dobíjí, a doba, po kterou je robot schopen operovat autonomně, je tím značně prodloužena. Některé roboty používají i solární panely (např. roboty vyslané na Mars). Pokud má robot mapu prostředí, ve kterém se pohybuje, tak ho zajímá, kde se nachází (lokalizace), případně jak se dostat na jiné místo (plánování). Pokud nemá robot mapu k dispozici, tak musí řešit souběžně lokalizaci i plánování. V této práci se budeme zabývat pouze případem, kdy robot má mapu prostředí a řeší tedy jenom problém plánování. 2.2 Pracovní prostor Každý robot se pohybuje v nějakém pracovním prostoru W. Pracovní prostor lze reprezentovat jako N-rozměrný euklidovský prostor R N, kde N = 2, 3 podle toho, jestli je dvourozměrný nebo trojrozměrný. V pracovní prostoru W se navíc mohou vyskytovat překážky, které omezují pohyb robota. Aby bylo možné matematicky popsat pozici a orientaci robota v pracovním prostoru, byl zaveden pojem konfigurační prostor C. 2.3 Konfigurační prostor Konfigurační prostor je množina všech konfigurací robota, ve kterých se může robot nacházet. Jeho dimenze odpovídá počtu stupňů volnosti robota. Při zvětšení překážek o tělo robota lze robot v konfiguračním prostoru C zredukovat na bod (obr. 2), čímž se problém jeho reprezentace značně zjednodušuje. Obr. 2 Robot v pracovním prostoru W (vlevo) se redukuje na bod v C (vpravo) Konfigurace robota q představuje vektor, jehož složky jednoznačně určují pozici a orientaci robota v konfiguračním prostoru. Protože v pracovním prostoru robota se obvykle vyskytují různé překážky, nejsou všechny konfigurace robota přípustné. Proto byl zaveden volný konfigurační prostor C free. Volný konfigurační prostor je prostor všech konfigurací, které nekolidují s žádnou překážkou a ve kterých nejsou porušeny omezující podmínky kladené na robot (např. maximální úhel natočení kloubu). Jinými slovy jsou to všechny přípustné pozice robota. Protikladem volného konfiguračního prostoru C free je kolizní konfigurační prostor C obs, který je definován jako prostor všech konfigurací robota, při kterých dochází ke kolizi robota s některou překážkou nebo jsou porušena omezení kladená na pohyb robota. Jedná se tedy o prostor všech nepřípustných konfigurací.

13 Strana 13 Aby plánování mohlo být vůbec úspěšné, musí start i cíl náležet volnému konfiguračnímu prostoru. Problém hledání cesty, případně sekvence dovolených pohybů se potom převede na hledání přípustné křivky ve volném konfiguračním prostoru. Pro robot ve dvourozměrném pracovním prostoru, který může provádět translaci a rotaci, vypadá situace následovně. Robot má tři stupně volnosti (translace je možná v osách x, y a rotace okolo osy z), takže konfigurační prostor je třírozměrný. Pozici robota v konfiguračním prostoru jednoznačně určují souřadnice x, y a natočení θ. Tedy q = (x, y, θ) R 2 [0, 2π). Celá situace je znázorněna na obr. 3. pracovní prostor θ konfigurační prostor y robot 2π referenční směr θ referenční bod y cesta x x Obr. 3 Pracovní a konfigurační prostor robota 2.4 Metrika v konfiguračním prostoru Plánovací algoritmus potřebuje funkci, která dokáže určit vzdálenost mezi dvěma body (konfiguracemi) v C. Vzdálenost dvou bodů d v prostoru je určena tzv. metrikou. θ konfigurační prostor 2π (x 1,y 1,θ 1 ) y d (x 2,y 2,θ 2 ) Obr. 4 Vzdálenost d mezi dvěmi konfiguracemi robota v C x

14 Strana 14 2 Metrika ρ v C je zobrazení ρ : ( q1, q2 ) C ρ( q1, q2 ) 0 pro které platí: 1) podmínka totožnosti ρ(q 1, q 2 ) = 0 jestliže q 1 = q 2 2) podmínka symetrie ρ(q 1, q 2 ) = ρ(q 2, q 1 ) 3) podmínka trojúhelníkové nerovnosti ρ(q 1, q 2 ) ρ(q 1, q 3 ) + ρ(q 3, q 2 ) Hodnota ρ(q 1,q 2 ) se potom nazývá vzdáleností d. Speciálním, všeobecně známým, případem metriky je Euklidovská metrika. Ta je definována pro n-rozměrný Euklidovský prostor vztahem: ρ kde X = (x 1, x 2,, x n ) R n a Y = (y 1, ( X, Y ) = ( x1 y1) + ( x2 y2 ) ( x n yn ) y 2,, y n ) R n. V praxi se potom používají různé druhy metrik (Euklidovská je pouze jednou z nich) podle vhodnosti pro řešenou úlohu. Popis různých metrik lze nalézt např. v [4].

15 Strana Plánování pohybu 3.1 Globální a lokální plánování Cílem globálního plánování je nalezení nekolizní cesty z počáteční do cílové konfigurace. Globální plánování se provádí ještě před tím, než robot vykoná první pohyb a vyžaduje, aby prostředí bylo kompletně známé, tzn. aby byla k dispozici mapa, a to včetně všech statických překážek, kterým je třeba se vyhnout. Tato cesta se poté předá lokálnímu plánovači, který podle ní řídí robota a zohledňuje případná omezení (omezení pohybu robota, nové překážky apod.), které se vyskytnou během průchodu po cestě. Úkolem lokálního plánování je tedy vlastní řízení pohybu robota po cestě, která se naplánuje při globálním plánování. U některých metod není hranice mezi lokálním a globálním plánováním úplně zřejmá, a proto je problém je od sebe na první pohled odlišit. 3.2 Holonomické a neholonomické plánování Podle omezení kladených na pohyb robota rozlišujeme dva základní druhy plánování pohybu holonomické a neholonomické. V klasické mechanice může být systém definován jako holonomický pokud všechna jeho omezení jsou holonomická. Holonomická omezení jsou taková, která lze vyjádřit jako funkce f(x 1, x 2, x 3,...x n, t) = 0, tj. omezení závisí pouze na souřadnicích systému a času. Omezení nezávisí na rychlosti nebo hybnosti systému. Příkladem holonomického systému 2 2 je například jednoduché kyvadlo o délce L vyjádřené jako ( x + y ) L = 0. V robotice holonomičnost vyjadřuje vztah mezi počtem řiditelných stupňů volnosti robota a jejich celkovým počtem. Jestliže počet řiditelných stupňů volnosti je stejný jako jejich celkový počet, potom můžeme říct, že robot je holonomický. Pokud je počet řiditelných stupňů volnosti menší než jejich celkový počet, potom je robot neholonomický. Příkladem neholonomického systému je auto, protože jeho pohyb do stran je omezen maximálním natočením předních kol. 3.3 Kompletní algoritmy plánování pohybu Algoritmus pro plánování pohybu je kompletní, pokud garantuje nalezení cesty mezi dvěma danými konfiguracemi robota, jestliže cesta existuje, a v opačném případě ohlásí, že cesta neexistuje. Kompletní algoritmy jsou někdy označovány jako exaktní.

16 Strana 16

17 Strana Metody pro plánování cesty robota Metod pro plánování cesty robota existuje poměrně velké množství a každá z nich má spoustu různých subvariant, které vznikly modifikací původního algoritmu. Proto budou uvedeny v následujícím přehledu jen ty základní. Podrobnější informace lze nalézt např. v [4, 6, 11]. V podstatě lze rozlišit tři skupiny plánovacích metod: 1) Metody rozkladu do buněk (Cell decomposition) 2) Mapy cest (Roadmaps) 3) Potenciálová pole (Potential fields) Každá metoda má dvě fáze. V první fázi se provádí tzv. předzpracování, kdy se metoda snaží popsat volný pracovní prostor robota pomocí grafu nebo funkce. Ve druhé fázi tzv. dotazovací je vyhledávána cesta v grafu mezi počáteční a cílovou konfigurací robota. K vyhledání cesty je možné použít různé druhy algoritmů pro nalezení cesty v grafu (např. Dijkstrův algoritmus, algoritmus A*). Často se také používají, především u metod rozkládajících prostředí do buněk, genetické algoritmy. 4.1 Metody rozkladu do buněk Tato skupina metod nejprve rozloží pracovní prostor do buněk různého tvaru. U každé z buněk se určí, jestli obsahuje překážku nebo ne. Z buněk, které neobsahují překážku, se vytvoří vrcholy grafu. Vrcholy představující sousední buňky se spojí hranou. V takto vytvořeném grafu se potom vyhledává cesta. K dělení do buněk se používá exaktní nebo aproximativní rozklad Exaktní rozklad Základní myšlenkou je rozdělit volný prostor do množiny nepřekrývajících se buněk. Jejich tvar by měl být jednoduchý, aby bylo možné jednoduše spočítat cestu mezi dvěma pozicemi robota uvnitř buňky. Musí být také snadné zjistit hranice mezi buňkami, protože je nutné určit bod přejezdu do sousední buňky. Jako buňky se často používají lichoběžníky nebo trojúhelníky. Tato metoda je kompletní, tzn. že vždy nalezne cestu (pokud existuje), v opačném případě ověří, že neexistuje. Obr. 5 Cesta nalezená pomocí exaktního rozkladu

18 Strana Aproximativní rozklad U této metody se rozkládá do buněk celý pracovní prostor (i překážky). Všechny buňky mají stejný tvar, který je velmi jednoduchý, např. čtverce. Proto je výpočet rozkladu podstatně jednodušší než u exaktního způsobu, kde jsou tvary buněk složitější. Existuje i varianta rozkladu do kvadrantů, u níž není velikost buňky konstantní. Tato metoda není kompletní, protože se může stát, že nenajde cestu, která ve skutečnosti existuje. To je způsobeno tím, že za překážku se považuje i buňka, jejíž prostor překážka vyplňuje jen částečně. 4.2 Mapy cest Obr. 6 Aproximativní rozklad na čtvercové buňky konstantní velikosti Metody patřící do této skupiny vytváří graf (tzv. roadmapu) reprezentující volný pracovní prostor. Jeho hrany představují cesty, po kterých se může robot pohybovat. Vrcholy tvoří různé body v pracovním prostoru (podle konkrétní metody). Pokud do grafu přidáme počáteční a cílovou pozici robota jako další vrcholy grafu, přechází problém nalezení cesty ze startu do cíle na problém hledání cesty v grafu. K nalezení cesty se používají standardní algoritmy pro hledání cesty v grafu. Metody map cest lze dále rozdělit na deterministické a pravděpodobnostní Deterministické metody Graf viditelnosti Vrcholy grafu tvoří start, cíl a vrcholy překážek. Hrany grafu představují spojnice vrcholů, které neprochází žádnou překážkou. Mezi hrany grafu je možné zařadit i hrany překážek. Graf viditelnosti lze aplikovat jenom na pracovní prostor s polygonálními překážkami. Nepolygonální překážky (např. kružnice) musí být nahrazeny polygonem, který co nejvíce odpovídá jejich tvaru.

19 Strana 19 Obr. 7 Graf viditelnosti Redukovaný graf viditelnosti (graf tečen) Princip je stejný jako u grafu viditelnosti, ale jako hrany se berou jenom tečny. Hledání cesty je oproti grafu viditelnosti rychlejší (menší počet hran) a je možné použít i nepolygonální překážky Voronoiův diagram Obr. 8 Redukovaný graf viditelnosti Robot se pohybuje po hranách Voronoiova diagramu pro množinu překážek, které určují možné průchody mezi překážkami maximalizující vzdálenost od překážek. Výjimkou jsou pouze první a poslední úsek cesty. Po jejich zahrnutí se nalezení optimální trasy robota redukuje na určení nejkratší cesty po hranách Voronoiova diagramu mezi jeho body danými koncovými body přidaných úseků. Tuto úlohu lze řešit např. Dijkstrovým algoritmem.

20 Strana Pravděpodobnostní metody Obr. 9 Voronoiův diagram Pravděpodobností mapy cest (Probabilistic Roadmaps PRM) Algoritmus funguje ve dvou fázích učící a dotazovací. V první fázi se vygeneruje graf cest (roadmapa) a ve druhé fázi se hledá cesta v grafu. 1) fáze učení Graf cest je pravděpodobnostní náhodně se vybírá konfigurace robota a ověřuje se zda náleží do C free. Pokud ano, tak je vytvořen nový vrchol grafu a algoritmus se pokouší tuto konfiguraci propojit s ostatními přímou cestou. Je-li tato cesta celá v C free, přidá do grafu novou hranu. Tento proces opakuje, dokud je dostatek času, paměti, případně je možné použít složitější test, zda již vzniklý graf dobře popisuje C free. Obr. 10 Učící fáze 2) fáze zpracování dotazu na cestu V druhé fázi je třeba nejprve napojit start a cíl. To se provádí stejným způsobem jako náhodné konfigurace popsané v předešlém odstavci. Pak se hledá cesta v grafu. Pokud existuje, tak je zaručeno, že je platná. Pokud však cesta nebyla nalezena, tak to ještě neznamená, že neexistuje, protože pokrytí v první fázi nemuselo být dostatečné. Aby se pokrytí zlepšilo, je možné opakovat první fázi.

21 Strana 21 Obr. 11 Dotazovací fáze Pravděpodobnostní mapy fungují dobře především pro pracovní prostory se statickými překážkami, kdy stačí první fázi provést pouze jednou a druhá, dotazovací fáze, se může několikrát opakovat Pravděpodobnostní stromy (Rapidly-exploring Random Trees RRT) Protože jsou základem této práce, budou popsány podrobně v následující kapitole. 4.3 Potenciálová pole Princip této metody spočívá v pokrytí celého pracovního prostoru potenciálovým polem, které je definováno jako potenciálová funkce E(x, y). Počáteční pozice robota má větší potenciál než cílová. Místa, kde jsou překážky, mají potenciál větší než jejich okolí (tvoří kopce ). Robot hledající cestu se potom pohybuje ve směru opačného gradientu potenciálové funkce. Lze si ho tedy představit jako míč jedoucí z kopce. Obr. 12 Potenciálové pole

22 Strana 22

23 Strana Pravděpodobnostní stromy (Rapidly-exploring Random Trees RRT) Tato metoda byla poprvé představena v [12] v roce 1998, jako metoda navržená pro širokou skupinu problémů plánování cesty se zaměřením především na neholonomické plánování (včetně dynamických omezujících podmínek) robotů s vysokým počtem stupňů volnosti. Základní myšlenkou je inkrementální vytváření prohledávajícího stromu, který se snaží rychle a rovnoměrně prohledat konfigurační prostor. Před použitím metody RRT je třeba definovat: 1) Konfigurační prostor C 2) Počáteční a cílovou konfiguraci q init C a q goal C 3) Detektor kolizí Funkce D: C {true, false}, která určuje zda konfigurace q C free. 4) Množinu vstupů U Specifikuje vstupy nebo akce, které mohou ovlivnit konfiguraci robota (např. natočení kol, rychlost apod.). 5) Inkrementální simulátor Počítá jakou konfiguraci q bude mít robot po čase t, během kterého provádí akci u U. V podstatě jde o integraci pohybových rovnic robota. Pro integraci se používá některá numerická metoda (např. Eulerova nebo Runge-Kutta). 6) Metriku 5.1 Základní algoritmus RRT Následující algoritmus zapsaný v pseudojazyce představuje pouze základní verzi RRT algoritmu, tak jak byl popsán v [13]. function BUILD_RRT(q init ) 1) T.init(q init ); 2) for k = 1 to K do 3) q rand RANDOM_CONF( ); 4) EXTEND(T, q rand ); 5) return T; function EXTEND(T, q rand ) 1) q near NEAREST_NEIGHBOR(q rand, T); 2) if NEW_CONF(q rand, q near, q new, u new ) then 3) T.add_vertex(q new ); 4) T.add_edge(q near, q new, u new ); 5) if q new = q rand then 6) return Reached; 7) else 8) return Advanced; 9) return Trapped;

24 Strana Popis základního algoritmu RRT Strom T se vytváří iteračně tak, že se v každé iteraci rozroste směrem k náhodně vygenerované konfiguraci robota o nový vrchol. Vrcholy stromu představují konfigurace robota a jeho hrany akce robota. Funkce BUILD_RRT Ve funkci BUILD_RRT se nejprve za kořen stromu dosadí počáteční konfigurace robota q init (krok 1). Potom se v K iteracích volají funkce RANDOM_CONF a EXTEND. Funkce RANDOM_CONF vygeneruje náhodnou konfiguraci robota q rand, která leží v jeho konfiguračním prostoru. Funkce EXTEND následně realizuje růst stromu směrem ke q rand. Funkce EXTEND Ve funkci EXTEND se nejdříve volá funkce NEAREST_NEIGHBOR (krok 1), která vybere vrchol stromu T s nejmenší vzdáleností od náhodné konfigurace q rand. Tento vrchol je označen jako q near. K výpočtu vzdálenosti se použije zvolená metrika. Úkolem funkce NEW_CONF (krok 2) je spočítat pohyb robota z q near do q rand. Tato funkce vlastně představuje inkrementální simulátor. Pohyb vznikne aplikací vstupu u U po nějaký časový inkrement t (časový inkrement může být jiný než v integrační metodě). Vstup u může být vybrán náhodně, nebo se zkusí všechny možné vstupy a z nich se vybere ten, který je nejblíže k q rand. Jestliže je množina U nekonečná, pak se používá aproximace. Funkce NEW_CONF také volá funkci pro detekci kolizí, která zjistí, zda nová konfigurace q new (a všechny mezilehlé konfigurace) robota je nekolizní a splňuje případná další omezení. Pokud funkce NEW_STATE skončí úspěšně, pak se nová konfigurace q new vloží jako nový vrchol do stromu (krok 3) a spojí se hranou s nejbližším vrcholem stromu q near (krok 4). Ohodnocením hrany je vstup u new vypočítaný ve funkci NEW_CONF. Mohou nastat tři situace, podle kterých vrací funkce EXTEND následující hodnoty: 1) Reached (dosažen) nový vrchol q new je totožný s q rand. Pro neholonomické plánování se netestuje úplná shoda q new s konfigurací q rand, ale počítá se vzdálenost mezi q new a q rand. Pokud je vzdálenost mezi nimi menší než nějaké δ, je q rand prohlášen za dosažený. Jako δ se volí malé kladné číslo. 2) Advanced (rozšířen) nový vrchol q new q rand byl vložen do stromu. 3) Trapped (uvězněn) funkci NEW_STATE se nepodařilo nalézt novou konfiguraci ležící v C free. Princip tvorby stromu a činnost funkce EXTEND ukazuje obr. 13. Obr. 13 Činnost funkce EXTEND

25 Strana Plánovače na bázi RRT V principu může být jako plánovač použit i základní algoritmus RRT. V praxi se ovšem tato základní varianta RRT nepoužívá. Jejím hlavním problémem je především příliš pomalá konvergence k cíli, protože strom se rozrůstá na všechny strany stejně. K řešení tohoto a dalších problémů základní varianty RRT plánovače byly navrženy následující upravené verze. V praktických aplikacích se většinou používají jejich kombinace s různými vylepšeními a modifikacemi pro danou konkrétní aplikaci Plánovač se spádem k cíli (RRT-GoalBias) Tento plánovač se vyznačuje podstatně rychlejší konvergencí stromu k cíli, než základní varianta RRT plánovače. Zrychlení je dosaženo malou úpravou funkce RANDOM_CONF. Spád stromu k cíli je vytvořen tím, že tato funkce vrací s malou pravděpodobností (např. 0,05) místo náhodné konfigurace, konfiguraci cílovou (q goal ). Pravděpodobnost ale nesmí být příliš velká, protože jinak se může stát, že dojde k uváznutí stromu v lokálním minimu Plánovač se zaměřením na cíl (RRT-GoalZoom) Tato varianta zrychluje konvergenci stromu k cíli a zároveň zmenšuje riziko uváznutí v lokálním minimu, které hrozí u plánovače se spádem k cíli. Opět jde o modifikaci funkce RANDOM_CONF. Funkce RANDOM_CONF vrací náhodné konfigurace z nějakého okolí cílové konfigurace q goal. Na začátku je toto okolí velké a jak se blíží strom k cíli, tak se velikost okolí zmenšuje. Stále ovšem hrozí uvíznutí v lokálním minimu. Všeobecně se zdá nejlepší nahradit funkci RANDOM_CONF funkcí generující náhodné konfigurace robota s nerovnoměrnou hustotou pravděpodobnosti, která roste směrem k cíli Dvoustromový RRT plánovač Tento plánovač při prohledávání konfiguračního prostoru používá dva stromy místo jednoho. První strom roste z q init a druhý z q goal. Cesta je nalezena, když se oba stromy potkají. Algoritmus dvoustromového RRT plánovače popsaného v [13] vypadá takto: function RRT_BIDIRECTIONAL(q init, q goal ) 1) T a.init(q init ); T b.init(q goal ); 2) for k = 1 to K do 3) q rand RANDOM_CONF(); 4) if not (EXTEND(T a, q rand ) = Traped) then 5) if (EXTEND(T b, q new ) = Reached) then 6) return PATH(T a, T b ); 7) SWAP(T a, T b ); 8) return Failure; Funkce RRT_BIDIRECTIONAL rozděluje výpočet na dvě části. První část výpočtu tvoří prohledávání konfiguračního prostoru a druhou snaha o spojení obou stromů. V každé iteraci se jeden strom rozroste o nový vrchol q new směrem k náhodné konfiguraci q rand (krok 4) a druhý strom se pokouší napojit na nový vrchol q new v prvním stromu (krok 5). Potom se oba stromy prohodí (krok 7) a výpočet se opakuje. Cesta je nalezena, když dojde ke spojení obou stromů (krok 6). Problémem tohoto plánovače (především u neholonomického plánování) je napojení obou stromů na sebe.

26 Strana Ostatní vylepšení RRT plánovače Úpravou výrazně zrychlující konvergenci stromu ke q goal je změna funkce EXTEND. Místo rozšiřování RRT inkrementačně po krocích, může být funkce EXTEND opakována, dokud strom nedosáhne náhodné konfigurace q rand nebo nedojde ke kolizi s překážkou. Algoritmus funkce CONNECT, která toto provádí, vypadá následovně: CONNECT(T, q rand ) 1) repeat 2) S EXTEND(T, q rand ); 3) until not (S = Advanced); 4) return S; Další možností, jak zrychlit konvergenci, je dynamicky měnit velikost kroku ε použitého pro konstrukci stromu. Pomocí dané metriky se zjistí vzdálenost aktuální konfigurace robota od nejbližší překážky. Pokud je robot daleko, může být krok větší, než když je blízko překážky Limitní případ RRT plánovače V této poměrně extrémní variantě začíná nový strom růst z každé nově vygenerované náhodné konfigurace q rand. Vždy, když je vygenerován první vrchol stromu, tak se spustí funkce CONNECT. V případě, že funkce CONNECT uspěje, dojde ke spojení dvou stromů do jednoho grafu. Výsledkem je algoritmus, který se chová jako pravděpodobnostní mapy (PRM). 5.3 Vlastnosti RRT V této časti se zaměříme na některé vlastnosti RRT, které z této metody dělají ideální řešení pro širokou škálu praktických problémů plánování cesty. 1) Strom má snahu růst směrem k ještě neprohledaným částem prostoru 2) Algoritmus RRT je relativně jednoduchý 3) Vrcholy stromu zůstávají vždy propojeny 4) RRT algoritmus může být implementován jako speciální modul pro plánování cesty, který lze potom začlenit do různých plánovacích systémů 5) RRT algoritmus je pravděpodobnostně kompletní Vysvětlení některých vlastností RRT Ad 1) Tendence stromu růst směrem k ještě neprohledaným částem prostoru je způsobena velikostí Voronoiových oblastí pro jednotlivé vrcholy stromu. Největší Voronoivy oblasti patří vrcholům, které představují listy stromu. Algoritmus RRT vybere jako vrchol stromu pro růst ten, který je nejblíže k náhodně vygenerovanému vrcholu. V případě rovnoměrného rozložení pravděpodobnosti je pravděpodobnost, že tento náhodně vygenerovaný vrchol bude ležet uvnitř nějaké Voronoiovy oblasti přímo úměrná velikosti této oblasti. Tendence stromu růst směrem k ještě neprohledaným částem prostoru je vidět na obr. 14.

27 Strana 27 Obr. 14 Levý sloupec zobrazuje RRT stromy a pravý sloupec Voronoivy oblasti pro jejich vrcholy Ad 3) Zachování propojení všech vrcholů do souvislého stromu představuje zásadní rozdíl mezi RRT a pravděpodobnostními mapami (PRM). U PRM, především v případech, kdy pracovní prostor obsahuje překážky s úzkými průchody, dochází k rozpadnutí roadmapy

28 Strana 28 na několik nepropojených segmentů (obr. 15). Pokud ovšem start a cíl cesty leží v různých segmentech, není možné cestu nalézt. Tento problém se potom musí řešit nějakou metodou, která segmenty propojí. Obr. 15 Rozpad roadmapy na segmenty u metody PRM Ad 5) Pravděpodobnostně kompletní plánovací algoritmus je slabší variantou kompletního plánovacího algoritmu. U algoritmu RRT totiž nalezení cesty závisí na počtu vrcholů stromu. Pravděpodobnost, že strom rostoucí z počáteční konfigurace obsahuje cílovou konfiguraci se blíží k jedné, když se blíží počet vrcholů stromu k nekonečnu.

29 Strana Případové usuzování (Case-Based Reasonig CBR) Případové usuzování (CBR) je metoda pro řešení nových problémů inspirovaná postupem, který využívají při své práci lidé. Pro člověka je zcela přirozená a běžná věc, že pro řešení nových problémů využívá předchozích znalostí. Například lékař, který při vyšetření pacienta pozoruje podobné symptomy, jaké viděl u jiného pacienta, kterému byla v minulosti úspěšně stanovena diagnóza a byl úspěšně vyléčen, se na základě této zkušenosti rozhodne pro stejnou léčbu. Dalším příkladem je finanční poradce, který rozhoduje, zda nějaké společnosti má být poskytnut úvěr. Určitě si vzpomene, že v minulosti už o poskytnutí úvěru pro společnost s podobnými problémy rozhodoval a tehdy doporučil, aby poskytnutí úvěru bylo zamítnuto. Na základě této zkušenosti vydá s největší pravděpodobností negativní stanovisko i k této nové žádosti. CBR tedy přistupuje k řešení nového problému tak, že při řešení využije předešlých zkušeností. Je v základě odlišné od hlavních přístupů umělé inteligence. Místo spoléhání se na široké znalosti z oblasti řešeného problému nebo tvorby asociací podle obecných vztahů mezi popisem problému a závěry, je CBR schopné zužitkovat specifické znalosti získané z předchozích zkušeností při řešení konkrétních problémových situací (případů). Nový problém je vyřešen nalezením podobného minulého případu a jeho znovupoužitím v této nové situaci. Druhým důležitým rozdílem je také přístup k učení, kdy po každém vyřešeném problému se zkušenosti uchovávají a jsou okamžitě dostupné pro budoucí řešení nových problémů. Tím se samozřejmě zvyšuje efektivita systému založeného na CBR a také jeho kompetentnost při rozhodování. Oblast CBR se v posledních letech značně rozrůstá, jak lze vidět ze zvětšujícího se počtu článků na vědeckých konferencích, dostupných komerčních nástrojů, či na úspěšných aplikacích v řadě vědních oborů. 6.1 Historie Kořeny CBR vedou k práci Rogera Schanka a jeho studentů z Yale University na začátku 80. let. Jeho práci Dynamic memory: a theory of reminding and learning in computers and people z roku 1982 lze považovat za počátky případového usuzování v umělé inteligenci. Tato práce pojednává o teorii učení založené na zapamatování si zkušeností v dynamicky se rozvíjející se paměťové struktuře. První systém případového usuzování byl systém CYRUS (Janet Kolodner) vyvinutý na Yale University v rámci skupiny R. Schanka. Tento systém byl založen na zmíněném paměťovém modelu a MOP teorii řešení problémů a učení. Byl to v podstatě systém odpovídající na otázky ohledně cest a návštěv ministra zahraničí, které uchovával v bázi případů. Případový paměťový model vyvinutý pro tento systém byl později použit jako základ v řadě dalších systémů případového usuzování (MEDIATOR, PERSUADER, CHEF, JULIA, CASEY). Další základy případového usuzování položil B. Porter a jeho skupina z Texaské Univerzity v Austinu systémem PROTOS. Tento systém integroval hlavní znalosti daného oboru a specifické znalosti případu do jednotné struktury. Tím propojil bázi případů a jednotlivé případy. Tato kombinace znalostí a jednotlivých případů byla dále použita v systému GERBE (Branting), což byla aplikace pracující v oboru práva. Dalším významným příspěvkem k případovému usuzování byla práce Edwina Risslanda a jeho skupiny z Univerzity v Massachusetts v Armhearstu. S několika odborníky na právo se snažili vytvořit systém pro řešení soudních sporů, který místo jednoduché odpovědi poskytoval argumenty pro obě strany sporu na základě tzv. precedentů. Výsledkem jejich snahy byl systém HYPO a později systém CABARET.

30 Strana 30 V Evropě započal výzkum CBR o něco později než ve Spojených Státech. Mezi jednu z prvních prací se řadí systém MOLTKE pro komplexní technické diagnózy Michaela Richtera, Klause D. Althoffa a jejich skupiny z Univerzity v Kaiserslauternu. Tento systém sloužil jako základ pro systém PATDEX Stefana Bosse a jeho kolegů a později i pro řadu dalších systémů (REFINER, IULIAN, CREEK). V dnešní době celosvětově zájem o systémy případového usuzování rychle roste a prosazují se v nejrůznějších vědních oborech včetně robotiky. Výzkumem případového usuzování se zabývají vědečtí pracovníci především v Německu, Japonsku, Indii, ale i dalších zemích. 6.2 Základní pojmy CBR Případy Systémy CBR se pokouší adaptovat řešení podobných problémů řešených v minulosti na nový řešený problém. Aby byl tento postup možný, musí CBR systém uchovávat popis předchozích problémů i jejich řešení, a to ve formě tzv. případů. Případ tedy obsahuje popis situace, se kterou se systém již setkal, a řešení této situace, které systém použil. V nejjednodušší variantě je reprezentován jako uspořádaná dvojice (problém, řešení), kde problém je obvykle popsán pomocí vektoru hodnot atributů ( a 1,..., a n ). Tato podoba odpovídá pravidlu a,..., a 1 n řešení. Atribut může být číselný, symbolický (řetězce znaků s definovanými významy) nebo vágně lingvistický (lingvistická hodnota je reprezentována pomocí odpovídající fuzzy množiny). Jednotlivé případy nemusí představovat jenom informace o úplně vyřešených problémech, ale i informace o částečně vyřešeném problému může být užitečná Případová báze Protože CBR při řešení nového problému využívá znalosti o předchozích řešených problémech (případy) je nutné tyto informace někde uchovávat, aby mohly být v budoucnu použity. Proto se nové případy ukládají do speciální databáze, tzv. báze případů. Reprezentace báze znalostí závisí na druhu řešených úloh a také na struktuře již dostupných dat. Může se jednat o reprezentaci využívající principů databázových technik, vztahů mezi objekty, teorie grafů či predikátové logiky v závislosti na konkrétní úloze a její implementaci. Na počátku může být báze znalostí systému zcela prázdná, v tom případě je nutné doplnit do systému také nástroje a postupy schopné řešit celou úlohu úplně od začátku nezávisle na CBR. Mohou nastat i jiné situace, než je prázdná báze, jako např. když není v bázi případů dostatek informací nutných pro navržení řešení nebo pokud řešení navrhované systémem případového usuzování není dostatečně kvalitní. Potom je nutné využít jiných postupů k nalezení řešení. 6.3 Účinnost CBR Účinnost CBR systému závisí na několika parametrech. Prvním z nich je volba vhodné reprezentace případu a celé báze, protože s narůstajícím počtem zapamatovaných případů bude samozřejmě vzrůstat i čas potřebný k jejich zpracovávání. Lze ji dále také výrazně zvyšovat volbou vhodné strategie pro výběr případů do báze, výběrem druhu informací uchovávaných o případech (např. úspěšná nebo neúspěšná řešení), případně i doplněním o vhodné metody navrhování pro případ, že adaptované řešení bude nevhodné nebo nebude nalezen dostatečně podobný případ.

31 Strana Proces případového usuzování Celý proces případového usuzování má v obecném případě čtyři následující fáze: 1) Nalezení případu (retrieve) spočívá v procházení celé případové báze, při kterém se hledá nejvhodnější podobný případ. 2) Použití případu (reuse) v případě, že předchozí krok nalezne v bázi vhodný případ, tak se zkusí použít jeho řešení na nový problém. 3) Ověření případu (revise) jedná se o ověření, zda je nalezené řešení možné skutečně použít. 4) Uchování případu (retain) uložení znalostí získaných řešením problému do případové báze. Posloupnost těchto čtyř fází tvoří tzv. obecný cyklus případového usuzování (obr. 16) Nalezení případu Obr. 16 Obecný cyklus případového usuzování Fáze nalezení případu začíná s popisem nyní řešeného problému a končí, když byl v bázi nalezen nejlepší odpovídající případ. Nejprve je třeba určit hlavní rysy nově

32 Strana 32 řešeného problému, na základě kterých se vyhledá podobný případ uložený v bázi. Identifikace podobných odpovídajících případů lze řešit tzv. mírou podobnosti (podobnostní metrikou), která odhaduje podobnost případů právě řešenému problému. Potom probíhá prohledávání případové báze. Při prohledávání se na základě podobnostní metriky najde nejlépe odpovídající případ nebo jejich skupina Použití případu Po úspěšném určení podobného případu (případů) v minulém kroku následuje jeho adaptace na konkrétní řešený problém. Samozřejmě může nastat i případ, kdy adaptace není nutná a problém lze vyřešit přímým použitím řešení nalezeného případu. Tato situace může nastat, např. pokud řešíme stejný případ, který jsme již v minulosti vyřešili. Obvyklejší je ale situace, kdy je nutné nalezené řešení adaptovat. Adaptace je závislá na oblasti, pro kterou je systém určen, a na konkrétní reprezentaci případů, proto nelze obecně popsat postupy použitelné pro jakýkoliv CBR systém Ověření případu V této fázi se provede ověření, zda nalezené řešení je skutečně použitelné pro řešený problém. Pokud známe výsledek řešení problému, stačí porovnat dosažený výsledek s výsledkem požadovaným. Samotné ověření nabízeného řešení však nezaručuje, že se jedná o řešení optimální. Z tohoto důvodu je vhodné v tomto kroku zavést nějaký kontrolní mechanismus, který by posoudil i jeho kvalitu. Toho se dá docílit pomocí vhodných algoritmů nebo může řešení ohodnotit operátor (člověk), který ho v případě potřeby upraví Uchování případu Poslední fáze ukládá řešení nového problému do báze znalostí. Kromě úspěšných řešení může být někdy prospěšné ukládat i neúspěšná nebo částečná řešení. Pokud by se ovšem do báze ukládaly všechna nová řešení, její velikost by prudce narůstala a časem by práce s ní byla neúnosně pomalá. Proto je dobré zvolit nějakou vhodnou strategii, která určí, co do báze případů ukládat a co ne. Je například zbytečné ukládat do báze případ, který tam už je nebo je velmi podobný. Jenom by se tak zvětšovala redundance případové báze. Další možnost omezení nárůstu velikosti báze nabízí ukládání jenom částí případů, která nesou z hlediska báze nějakou novou informaci. I když omezíme ukládání stejných nebo podobných případů do báze, její velikost se bude neustále zvětšovat. Existuje určitá optimální velikost báze, při které je využití případového usuzování nejefektivnější. Lze předpokládat, že optimální velikost báze nesmí být příliš malá, protože potom by systém CBR neměl dostatek informací a většinu nových problémů by bylo nutné řešit nějakou jinou metodou, ale ani příliš velká, kvůli již zmiňované nízké rychlosti práce s případovou bází. Optimální velikost báze je možné většinou alespoň přibližně stanovit. Nejjednodušší variantou je nastavit limit velikosti báze na její optimální velikost nebo velikost o něco větší. Po dosažení tohoto limitu se do báze už nové případy nebudou ukládat. Tím ovšem přicházíme o největší výhodu CBR, a to schopnosti učit se z minulých zkušeností. O něco lepší způsob je po dosažení maximální velikosti báze začít nahrazovat nejstarší případy novými. Takto ale může dojít ke zhoršení navrhovaných řešení, pokud z báze odstraníme úspěšná stará řešení. Mnohem lepší je způsob, kdy nahrazujeme nejméně úspěšná řešení. Tím zachováme flexibilitu systému a zároveň se nepřipravíme o kvalitní řešení. Také můžeme u každého případu ukládat kromě úspěšnosti i počet jeho

33 Strana 33 využití, případně jenom počet využití. V podstatě je možné ohodnocovat případy na základě kombinace různých hledisek, která se zohlední právě při odstraňování přebytečných případů. 6.5 CBR a plánování cesty robota Předchozí popis se týkal obecných vlastností CBR. Nyní se podívejme, jak lze CBR aplikovat na konkrétní problém, a to plánování cesty robota. Využití CBR při plánování cesty robota vychází z předpokladu, že se robot často pohybuje po stejných nebo podobných cestách jako v minulosti. Nalezení každé cesty je poměrně výpočetně náročný problém. Aplikací CBR lze částečně odstranit opakování výpočtů pro stejné, případně podobné cesty, které byly již jednou v minulosti provedeny nebo alespoň snížit jejich složitost a časovou náročnost. Největších časových úspor se dosáhne při hledání cest mezi starty a cíli podobnými těm z minulosti, kdy se nejvíce využije uchovaných znalostí. Namísto složitého hledání nových cest, stačí nalézt nejpodobnější případy (cesty) v případové bázi a ty adaptovat na nový start a cíl. Při plánování cesty robota jsou tedy jednotlivé případy v bázi představovány cestami, kterými robot v minulosti již prošel. Způsoby reprezentace případů a případové báze mohou být různé podle metody použité pro plánování nebo prostředí ve kterém plánování probíhá (mřížka, spojité). Ve [2] je případ chápán jako cesta, která je dána svým startovním bodem s[x, y], cílovým bodem c[x,y] a je tvořena posloupností směrů pohybu robota po dané cestě. Nevýhoda tohoto přístupu je v tom, že jednotlivé případy jsou izolované (nepropojené žádnou strukturou) a báze se vyznačuje značnou redundancí. Jsou tam totiž uloženy kompletní cesty, i když obsahují části již existujících případů. Tyto nedostatky lze odstranit aplikací případového grafu, který byl použit např. v [15] pro úlohu plánování cesty robota ve spojitém prostředí. V uvedené práci bázi případů reprezentuje tzv. případový graf. Při ukládání cesty do báze případů je cesta uložena buď celá jako jeden případ, nebo se rozdělí do několika částí, které jsou uloženy jako samostatné případy (pokud se ovšem ještě tyto případy nebo případy jim podobné v bázi případů nevyskytují). Segmenty cest (uložené případy) mohou mít společné pouze své krajní body. Pokud cesta protíná nějaký již existující případ, pak tato cesta i případ jsou rozděleny do menších případů tak, aby byla splněna výše uvedená podmínka. Případy (segmenty) reprezentují hrany výsledného grafu a vrcholy tohoto grafu jsou krajními body těchto segmentů. K nalezení cesty v případovém grafu je použitá kombinace Delauneyho triangulace s Dijkstrovým algoritmem. Případový graf použitý v [15] znázorňuje obr. 17.

34 Strana 34 Obr. 17 Případový graf Kromě reprezentace případové báze a případů je třeba stanovit parametry, na základě kterých bude v bázi vyhledán optimální případ (cesta). Optimálnost cesty nemusí být dána pouze její délkou, ale i dalšími faktory, jako jsou obtížnost průjezdu, pravděpodobnost výskytu překážek cestou, počet změn směru apod. U případového grafu lze na základě těchto hledisek ohodnotit jednotlivé hrany. Toto ohodnocení se potom zohlední při nalezení cesty v grafu, např. Dijkstrovým algoritmem. Plánování cesty robota se ale i v případě použití CBR neobejde bez některé další metody hledání cest. Použití jiné metody je nezbytné v situacích, kdy systém případového usuzování začíná pracovat s prázdnou bází případů nebo když získané řešení není dost dobré a musí být přepracováno.

35 Strana Implementace Jedním z cílů diplomové práce bylo navrhnout systém plánování cesty robota, který využívá RRT stromy v kombinaci s případovým usuzováním (CBR). Navržený systém se skládá ze dvou programů. Prvním z nich je editor překážek, ve kterém se vytváří 2D mapa pracovního prostoru robota. Překážky představují polygony. Při plánování cesty je tedy mapa pracovního prostoru robota již dopředu známa. Druhým programem je vlastní simulátor plánování cesty robota. Ten využívá mapy pracovního prostoru robota a umožňuje plánování cesty jak samotným algoritmem RRT, tak i pomocí RRT kombinovaného s CBR. Díky tomu lze vzájemně porovnat obě metody a posoudit, zda je použití CBR pro RRT přínosem. Obě aplikace byly napsány v prostředí Microsoft Visual C++.NET Editor překážek je navržen jako aplikace MFC (Microsoft Foundation Class) postavená na architektuře Dokument/Pohled. Implementaci simulačního programu lze rozdělit na uživatelské rozhraní a samotné algoritmy potřebné pro plánování. Uživatelské rozhraní je napsáno pomocí Win32 API (Windows Application Programming Interface) a pro grafické výstupy používá knihovnu OpenGL. Algoritmy jsou potom napsány v čistém C++ s využitím funkcí, algoritmů a především kontejnerů nabízených knihovnou STL (Standard Template Library), která je součástí normy ANSI/ISO pro C Model robota Program simuluje pohyb robota, jehož konstrukce odpovídá jednoduchému autu. Jedná se tedy o neholonomický mobilní robot. Jako každé auto může robot jezdit dopředu i dozadu a natáčet přední kola podle směru, kterým se chce pohybovat. Maximální úhel natočení předních kol je ovšem limitován. Robot a jeho jednotlivé parametry znázorňuje obr. 18. Obr. 18 Použitý model robota Jak je zřejmé z obr. 18, natočení předních kol je dáno úhlem φ. Pro úhel natočení kol platí omezení φ φ max, kde φ max je maximální úhel natočení předních kol a jeho hodnota musí ležet v intervalu [0, π/2]. Dalším parametrem robota je vzdálenost mezi přední a zadní osou označená jako L. Referenčním bodem robota, který určuje jeho pozici v

36 Strana 36 pracovním prostoru, je střed zadní osy definovaný pomocí souřadnic x a y. Celkové natočení robota určuje úhel θ. Vzdálenost ρ znázorňuje poloměr projížděné zatáčky a lze ji vypočítat podle vztahu ρ = L / tan φ. Pozici a orientaci robota tedy popisují souřadnice x, y a celkové natočení θ. Z toho je zřejmé, že jeho konfigurace je vektor q = (x, y, θ) a jeho konfigurační prostor bude tedy třírozměrný. Robot je popsán následujícími pohybovými rovnicemi: dx = v cos( φ) cos( θ ) dt dy = v cos( φ) sin( θ ) dt dθ v = sin( φ) dt L Tyto pohybové rovnice popisují auto s náhonem na přední kola, které bylo použito v [16]. Rychlost robota v může být 1, 0, nebo 1 podle toho jestli auto couvá, stojí nebo jede dopředu.vstup u U, který modifikuje konfiguraci robota, tedy obsahuje rychlost v a natočení předních kol φ, takže u = (v, φ). 7.2 Metrika Použitá metrika je stejná jako v práci [16]. Tato metrika vystihuje vzdálenost mezi konfiguracemi použitého robota lépe než standardní Euklidovská metrika a navíc výpočet vstupu u, který minimalizuje vzdálenost mezi dvěma konfiguracemi, lze poměrně jednoduše vypočítat pomocí funkce arctan. Použitá metrika: d ( p, q) = ( p. x q. x) + ( p. y q. y) + L min[( p. θ q. θ ),( p. θ q. θ + 2π ),( p. θ q. θ 2π kde p a q jsou konfigurace robota a L je vzdálenost os robota. 7.3 Inkrementální simulátor Implementovaný simulátor používá pro integraci pohybových rovnic metodu Runge- Kutta 4. řádu. Pro vstupní konfiguraci q i počítá novou konfiguraci q n, která vznikne aplikací vstupu u na q i po dobu t 0. Integrační časová konstanta t 0 je nastavena na t 0 = 2. t 0 = 2 )] 2 u q i Simulátor q n Obr. 19 Použitý inkrementální simulátor

37 Strana Překážky a detekce kolizí Překážky mohou být tvořeny jednoduchými polygony (konkávními nebo konvexními). Editor překážek sice umožňuje kreslit i komplexní polygony, ale tento typ není podporován v simulačním programu, kde by mohl způsobit problémy. Rozdíl mezi jednotlivými druhy polygonů znázorňuje obr. 20 a obr. 21. Obr. 20 Jednoduché polygony (vlevo konvexní, vpravo konkávní) Obr. 21 Komplexní polygon Pro detekci kolizí se používá jednoduché testování průsečíků úseček. Kolize s překážkami se testují vůči obdélníku, uvnitř kterého je uzavřen celý robot. Velikost obdélníku je o něco větší než samotný robot, čímž je zajištěno, že mezi robotem a překážkou zůstane vždy nějaký volný prostor. Detekce kolizí probíhá tak, že se testuje, zda některá ze čtyř úseček tvořících obdélník neprotíná některou z hran polygonů, které přestavují překážky. Protože RRT strom se rozrůstá po krocích určité velikosti, musí se zajistit, že nová konfigurace robota q new, která se přidává do stromu, nepřeskočí hranu polygonu, čímž by se robot dostal dovnitř překážky. Protože se testuje průsečík úseček, kolize robota a překážky by tak nebyla zachycena. V použité implementaci je velikost kroku omezena tak, aby se to nestalo, integrační časovou konstantou t 0, která určuje vzdálenost, kterou robot ujede, a tím i krok, o který se RRT strom může rozrůst během jedné iterace. Implementovaná detekce kolizí je tedy velmi jednoduchá, ale její efektivita by v případě velkých scén s množstvím složitých překážek byla žalostná. Ovšem pro použitou velikost scény a překážky s nízkým počtem hran se ukazuje jako dostačující. Její výhodou je i univerzálnost, protože ji lze, na rozdíl od jiných druhů detekce kolizí, použít na konvexní i konkávní polygony, aniž by bylo nutné počítat triangulaci konkávních polygonů a tím je převádět na konvexní.

38 Strana 38 V případě složitých rozsáhlých scén a robotů se složitým tvarem by bylo nutné použít např. metodu s hierarchií ohraničujících těles (Bounding Volume Hierarchy). Ta je ovšem implementačně podstatně náročnější. 7.5 RRT Pro plánování cesty se používá RRT plánovač s jedním stromem. Důvodem, proč byla použita jednostromová varianta RRT je, v případě neholonomického robota, problematické napojení stromů v místě jejich setkání. Implementovaný algoritmus RRT plánovače vychází z varianty RRT s CONNECT funkcí a se zaměřením na cíl (RRT-GoalZoom). CONNECT funkci, s jistými modifikacemi, odpovídá cyklus 2 v níže uvedeném algoritmu. Počet iterací je na rozdíl od základní verze CONNECT funkce omezen, protože jinak měl robot příliš velkou tendenci jezdit po kružnicích a zbytečně si tak prodlužoval cestu. V simulačním programu jsou implementovány dva RRT plánovače. Jeden pro použití bez CBR a druhý, který CBR využívá. Algoritmy obou plánovačů se od sebe příliš neliší. V této kapitole bude popsán algoritmus RRT plánovače bez CBR. Algoritmus RRT, který využívá CBR, bude popsán až v následují kapitole o CBR, protože úzce souvisí se způsobem implementace CBR. Algorimus RRT (bez CBR): function RRT(q start, q goal ) 1) Nastav normální mód konvergence (Normal Mode) 2) Jako kořen stromu použij q start 3) V K iteracích opakuj (Cyklus 1) a. Vygeneruj náhodnou konfiguraci q rand b. Najdi vrchol stromu q near, který je nejblíže q rand c. Vypočítej optimální vstup u = (v, φ) (viz. funkce OPT_ACTION) d. Jestliže u.v = 0 potom se všechny následující kroky přeskoč a začni další iteraci cyklu 1 (viz. krok a.) e. Vypočítej novou konfiguraci robota q new, která vznikne aplikací vstupu u na q near (využití inkrementálního simulátoru) f. Přidej q new do stromu jako nový vrchol g. Spoj q new a q near hranou ohodnocenou vstupem u h. Jestliže je vzdálenost mezi q new a q goal menší než D GoalMode, zapni cílový mód konvergence (Goal Mode) - pokud už není zapnut i. Jestliže je vzdálenost mezi q new a q goal menší než D End (cílová konfigurace q goal byla dosažena), ukonči cyklus 1 - přesun na krok 4 j. V R iteracích opakuj (Cyklus 2) i. Poslední konfiguraci q new označ jako lastq new ii. Vypočítej novou konfiguraci robota q new, která vznikne aplikací již vypočítaného vstupu u na lastq new (využití inkrementálního simulátoru) iii. Vypočítej vzdálenost δ mezi q new a q rand iv. Pokud je vzdálenost δ větší než v předchozí iteraci (strom se vzdaluje od q rand ) nebo q new je kolizní konfigurace, potom ukonči cyklus 2 v. Přidej q new do stromu jako nový vrchol vi. Spoj q new a lastq new hranou ohodnocenou vstupem u

39 Strana 39 vii. Jestliže je vzdálenost mezi q new a q goal menší než D GoalMode, zapni cílový mód konvergence (Goal Mode) - pokud už není zapnut viii. Jestliže je vzdálenost mezi q new a q goal menší než D End (cílová konfigurace q goal byla dosažena), ukonči cykly 2 i 1 - přesun na krok 4 4) Najdi vrchol stromu q end, která je nejblíže q goal 5) Najdi cestu stromem z jeho kořene q start do q end Aby měl strom tendenci rychleji růst ke q goal (spád), generuje se náhodná konfigurace robota q rand tak, že za q rand je vybrána s pravděpodobností PG cílová konfigurace q goal a s pravděpodobností PG1 náhodná konfigurace, která leží v nějakém okolí D od q goal. V ostatních případech je q rand úplně náhodná a může ležet kdekoliv v konfiguračním prostoru. Algoritmus funguje ve dvou módech konvergence, v nichž se nastavení hodnot PG, PG1 a D liší.v případě, že rostoucí RRT strom je ještě daleko od q rand, je žádoucí, aby spád k cíli nebyl příliš velký a strom se rozrůstal do všech stran přibližně rovnoměrně. Pokud by spád byl příliš silný, hrozilo by uvíznutí v lokáním minimu a strom by se zastavil o některou z překážek, protože by ji nedokázal obejít a stále by se snažil růst nejkratší cestou k cíli. Na druhou stranu, jestliže strom je již kousek od q goal, je vhodné, aby se rozrůstal především směrem ke q goal. Právě tyto změny spádu RRT stromu při růstu zajišťují již zmíněné módy. Pokud je RRT strom ještě daleko od q goal, pracuje algoritmus v normálním módu (Normal Mode), ale pokud se RRT strom dostane blíže než D GoalMode, přepne se do cílového módu (Goal Mode), který má standardně nastaven větší spád k cíli. Klíčovým bodem RRT algoritmu je nalezení takového vstupu u, který minimalizuje vzdálenost mezi q near a q rand. Celá situace je navíc komplikována překážkami v pracovním prostoru. Použitý algoritmus, který hledá optimální vstup u minimalizující vzdálenost mezi q near a q rand, vypadá následovně: function OPT_ACTION(q rand, q near ) 1) Najdi optimální vstup u minimalizací funkce pro výpočet vzdálenosti 2) Aplikuj vstup u na q near, výslednou konfiguraci označ q new (využití inkrementálního simulátoru) 3) Pokud není q new kolizní, vrať q new a ukonči funkci 4) Opakuj dokud je u.φ < φ max a. u.φ = u.φ + φ b. Aplikuj nový vstup u na q near, výslednou konfiguraci označ q new c. Pokud není q new kolizní, vrať q new a ukonči funkci 5) Opakuj dokud je u.φ > -φ max a. u.φ = u.φ - φ b. Aplikuj nový vstup u na q near, výslednou konfiguraci označ q new (využití inkrementálního simulátoru) c. Pokud není q new kolizní, vrať q new a ukonči funkci 6) Překážce se nelze vyhnout, nastav u.v = 0, vrať u a skonči Funkce OPT_ACTION nejprve vypočítá samotný optimální vstup u pomocí minimalizace funkce pro výpočet vzdálenosti. V kroku 2 se použije inkrementální simulátor, čímž se získá nová konfigurace robota q new, která je blíže ke q rand. Pokud q new není kolizní, tak ji funkce vrátí a skončí. V případě kolize se potom zkouší měnit

40 Strana 40 po malých krocích φ optimální natočení předních kol u.φ tak, aby se robot překážce vyhnul. Pokud se funkci OPT_ACTION nepodaří najít žádný vstup u, protože jakýkoliv přípustný pohyb robota zmenšující vzdálenost od q rand by znamenal kolizi s překážkou, vrací funkce vstup u, ve kterém je rychlost robota v nulová. Cesta z q start do q goal je nalezena, jestliže vzdálenost mezi q new a q goal je menší než D End, protože u neholonomického robota je v podstatě nemožné dosáhnout přesné shody q new s q goal v rozumném čase. Cesta stromem z jeho kořene q start do q end (konfigurace, která je nejblíže ke q goal ) se vyhledá v obráceném směru od q end do q start (protože se jedná o strom je nalezení cesty tímto způsobem rychlejší a jednodušší než ve směru q start q end ) a otočí se. Výslednou cestu tvoří seznam konfigurací robota Q path = {q 1, q 2,, q n } a seznam vstupů U path = {u 1, u 2,, u n-1 }, které realizují přechody mezi nimi. 7.6 CBR V použité implementaci je případová báze reprezentována případovým grafem. Případ tedy představuje cesta robota z q start do q goal. Ta se ovšem neukládá do báze celá jako jeden úsek, ale z každé cesty se uloží pouze některé konfigurace robota, tzv. kontrolní body (Waypoints WP). Tyto kontrolní body potom tvoří vrcholy případového grafu. Hranami se propojují ty vrcholy (kontrolní body), které leží blízko sebe. Vzdálenost mezi nimi určuje již popsaná metrika. Při každém plánování nové cesty se systém nejprve pokusí najít cestu (případ) v případovém grafu (případové bázi) využitelnou pro právě řešený problém plánování cesty z konfigurace q start do q goal. Pokud je taková cesta nalezena, RRT strom se na ni napojí a roste podél této cesty od jednoho kontrolního bodu k druhému. Celý postup je hodně podobný práci autopilota, který řídí letadlo. Nejprve jsou do letového plánu zaneseny kontrolní body popisující celou trasu letu a autopilot potom řídí letadlo od jednoho kontrolního bodu k dalšímu. Vždy když letadlo dosáhne kontrolního bodu, jako cíl se určí následující kontrolní bod a autopilot změní směr letu k novému kontrolnímu bodu. To se opakuje tak dlouho, dokud letadlo nedoletí k poslednímu kontrolnímu bodu cesty. Při použití tohoto způsobu CBR inspirovaného autopilotem v letadle je sice nutné pokaždé počítat celou cestu znovu pomocí RRT, ale i přesto je výpočet rychlejší než u klasického RRT bez CBR, protože RRT strom zná díky kontrolním bodům směr, kterým má růst tak, aby se vyhnul překážkám a zároveň dosáhl cílové konfigurace robota. Navíc tento způsob má oproti ukládání celých úseků cest do případového grafu některé výhody. U varianty, kdy se do případového grafu ukládají celé úseky cest, totiž práci značně komplikují omezení kladená na neholonomický robot a je třeba vyřešit následující problémy: přesné napojení RRT stromu na cestu nalezenou v případovém grafu propojení cest v případovém grafu, které se kříží, tak aby mohl robot přejít z jedné cesty na druhou nalezení průjezdné cesty v případovém grafu (nelze projet jakoukoliv zatáčku) Při použití navrženého systému CBR není nutné řešit tyto problémy a díky tomu je mnohem méně náročný na implementaci.

41 Strana 41 Jinak systém řešící problém nalezení cesty robota pomocí kombinace metod RRT a CBR s případovým grafem, do kterého se ukládají celé úseky cest, popisuje práce [5]. Zajímavá i když výpočetně složitá metoda pro přesné napojení byla popsána v [17], kde je pro spojení dvou RRT stromů použitá deformace trajektorie Vzorkování Kontrolní body se z nalezené cesty získají tak, že se prochází seznam konfigurací Q path a jako kontrolní bod se vybere prvá konfigurace robota, jejíž vzdálenost od poslední konfigurace použité pro kontrolní bod je větší nebo stejná jako D WP. Celý postup popisuje následující algoritmus. Cesta pro vzorkování: Cesta = {Q path, U path }, kde Q path = {q 1, q 2,, q n } je seznam konfigurací a U path = {u 1, u 2,, u n-1 } je seznam vstupů Vytvářený seznam kontrolních bodů: WP list = {wp 1, wp 2,,wp m } Algoritmus vzorkování: function WP_LIST(Q path ) 1) WP list.add(q 1 ) 2) For i = 0 to Q path.size do a. Jestliže d(wp list.last, Q path [i]) D WP potom WP list.add(q path [i]) 3) return WP list Přidání nové cesty do případového grafu Každá nová cesta, která se má přidat do případového grafu, je reprezentována již uvedeným seznamem kontrolních bodů WP list. Tento seznam se postupně prochází a jednotlivé kontrolní body se vkládají do případového grafu jako nové vrcholy. Do případového grafu má ovšem smysl ukládat jenom ty kontrolní body, které nejsou stejné nebo příliš podobné již existujícím vrcholům grafu. Proto se přidávají jenom takové kontrolní body, jejichž vzdálenost od nejbližšího vrcholu je větší nebo stejná jako D same. V opačném případě se provede substituce, tzn. že nový kontrolní bod se do grafu nepřidá, ale místo něho se použije již existující vrchol grafu, který je k němu nejblíž. Další fází je propojení nových a starých vrcholů hranami. Do případového grafu se přidávají jen takové hrany, které neprotínají žádnou z překážek. Po každém vložení nového vrcholu do případového grafu se vyhledají vrcholy, které leží v jeho okolí definovaném vzdáleností D neigh. Nově přidaný vrchol se potom spojí hranou se všemi vrcholy, které leží v okolí D neigh. Výjimku tvoří kontrolní body, které nebyly do grafu přidány, ale byly nahrazeny (substituce). V tom případě se vrchol, kterým byl nahrazen kontrolní bod, propojí jen s těmi vrcholy ležícími v D neigh, se kterými ještě není spojen. Aby se nestalo, že jednotlivé vrcholy cesty zůstanou nepropojeny hranou, je třeba, aby vzorkovací vzdálenost D WP byla o něco menší než okolí D neigh, ve kterém se provádí propojení vrcholů. Speciálním případem jsou opět kontrolní body, které byly nahrazeny vrcholem grafu (substituce). Tyto vrcholy jsou totiž oproti původním kontrolním bodům různě posunuty a mohlo by se stát, že zůstanou osamoceny bez propojení na případový graf. Proto je třeba zajistit jejich připojení, i když neleží v okolí D neigh.

42 Strana 42 Algoritmus přidání nové cesty do případového grafu: function ADD_PATH(WP list ) 1) Opakuj kroky 2 a 3 pro všechny wp WP list 2) Jestliže v případovém grafu G existuje vrchol V, pro který platí d(v, wp) < D same a. Propoj V hranou se všemi vrcholy ležícími v okolí o velikosti D neigh (pokud hrana už neexistuje a pokud neprotíná překážku) b. Jestliže předchozí vrchol byl získán substitucí a není připojen k V, potom přidej mezi nimi hranu 3) Jinak a. Přidej wp do G jako nový vrchol V n b. Propoj V n hranou se všemi vrcholy ležícími v okolí o velikosti D neigh (pokud hrana neprotíná překážku) c. Jestliže předchozí vrchol byl získán substitucí a není připojen k V n, potom přidej mezi nimi hranu Optimalizace případového grafu I když se do případového grafu neukládají nové vrcholy, které jsou stejné nebo podobné těm již uloženým, časem by stejně došlo k velkému nárůstu velikosti grafu a tím i ke značnému zpomalení práce s ním. Proto systém udržuje počet vrcholů pod hodnotou V max tak, že po každém vložení nové cesty do případového grafu ověří, jestli došlo k překročení V max a pokud ano, zmenší velikost báze na V min. Hodnoty V min a V max závisí na optimálním počtu vrcholů případového grafu V opt, při kterém je CBR nejefektivnější. V max je hodnota o něco větší než V opt, kdy CBR ještě výrazně nezpomaluje celý systém. V min je potom hodnota o něco menší než V opt, taková aby úspěšnost CBR nebyla příliš nízká. Stanovení V max a V min bude provedeno v kapitole 11. Aby bylo možné určit, které vrcholy odstranit a které v grafu ponechat, ohodnocuje se každý vrchol podle počtu použití (tzn. vrchol byl využit jako kontrolní bod). Nový vrchol grafu má ohodnocení nula a za každé použití se hodnota ohodnocení zvýší o jedna. Celý systém optimalizace případového grafu funguje tedy tak, že po vložení kontrolních bodů nové cesty do grafu se ověří zda došlo k překročení hodnoty V max a pokud ano, odstraní se tolik vrcholů (včetně jejich hran) s nejmenším ohodnocením, aby počet vrcholů v případovém grafu byl V min. Po této operaci ovšem mohou v grafu zůstat vrcholy s nulovou aritou, jejichž výskyt je nežádoucí, protože snižují úspěšnost CBR. Proto se provede ještě odstranění těchto vrcholů Nalezení vhodného případu v případovém grafu Nejprve se najde vrchol V s případového grafu s nejmenší vzdáleností od počáteční konfigurace q start a potom vrchol V g, který má nejmenší vzdálenost od q goal. Následuje hledání nejkratší cesty případovým grafem z vrcholu V s do vrcholu V g. K hledání nejkratší cesty je použit Dijkstrův algorimus s haldou (funkce FIND_PATH). Samozřejmě je třeba ověřit, zda je nalezená cesta vhodná pro nový případ a nebude znamenat zhoršení výkonu celého systému. To zajišťuje krok 3 v následujícím algoritmu. Nalezená cesta, kterou funkce FIND_BEST_CASE vrací, je představována seznamem vrcholů, které se použijí jako kontrolní body pro RRT.

43 Strana 43 Algoritmus nalezení vhodného případu: function FIND_BEST_CASE(q start, q goal ) 1) najdi vrchol grafu V s s minimální vzdáleností od q start 2) najdi vrchol grafu V g s minimální vzdáleností od q goal 3) Pokud je d(v s, q start ) >Ds max nebo d(v g, q goal ) > d(q start, q goal ), potom skonči nebyl nalezen vhodný případ 4) Path FIND_PATH(V s, V g ) 5) return Path 7.7 Algoritmus RRT s CBR Pokud byl v bázi nalezen vhodný případ může RRT využít získané informace pro aktuálně hledanou cestu z q start do q goal. Kvůli využití informací získaných pomocí CBR musel být původní algoritmus RRT bez CBR modifikován. Implementovaný algoritmus RRT využívající CBR vypadá následovně: Algoritmus RRT s CBR: function RRT_WITH_CBR(q start, goals) 1. Nastav normální mód konvergence (Normal Mode) 2. Jako kořen stromu použij q start 3. V K iteracích opakuj (Cyklus 1) a. Vygeneruj náhodnou konfiguraci q rand b. Najdi vrchol stromu q near, který je nejblíže q rand c. Vypočítej optimální vstup u = (v, φ) (viz. funkce OPT_ACTION) d. Jestliže u.v = 0, potom všechny následující kroky přeskoč a začni další iteraci cyklu 1 (viz. krok a.) e. Vypočítej novou konfiguraci robota q new, která vznikne aplikací vstupu u na q near (využití inkrementálního simulátoru) f. Přidej q new do stromu jako nový vrchol g. Spoj q new a q near hranou ohodnocenou vstupem u h. Jestliže GOALS_TEST(goals, q new ) = TRUE, ukonči cyklus 1 i 2 (přesun na krok 4) i. V R iteracích opakuj (Cyklus 2) i. Poslední konfiguraci q new označ jako lastq new ii. Vypočítej novou konfiguraci robota q new, která vznikne aplikací již vypočítaného vstupu u na lastq new (využití inkrementálního simulátoru) iii. Vypočítej vzdálenost δ mezi q new a q rand iv. Pokud je δ větší než v předchozí iteraci (strom se vzdaluje od q rand ) nebo q new je kolizní konfigurace, potom ukonči cyklus 2 v. Přidej q new do stromu jako nový vrchol vi. Spoj q new a lastq new hranou ohodnocenou vstupem u vii. Jestliže GOALS_TEST(goals, q new ) = TRUE ukonči cyklus 1 i 2 (přesun na krok 4) 4. Najdi vrchol stromu q end, který je nejblíže goals.last 5. Najdi cestu stromem z jeho kořene q start do q end

44 Strana 44 function GOALS_TEST(goals, q new ) 6. Jestliže goals.size > 1 (existují nedosažené kontrolní body) a. Najdi v seznamu goals poslední kontrolní bod, který byl dosažen b. Pokud byl nějaký kontrolní bod dosažen, odstraň ho ze seznamu goals včetně všech kontrolních bodů před ním a přepni na CBR mód (CBR Mode) c. Pokud d(q new, goals.last) < D GoalMode, zapni cílový mód (pokud už není zapnut) a vymaž všechny kontrolní body z goals kromě posledního (goals.last) d. Jestliže d(q new, goals.last) < D End (cílová konfigurace q goal byla dosažena) return TRUE 7. Jinak (v goals je už jen cílová konfigurace q goal (= goals.last) ) a. Jestliže je RRT v CBR módu, přepni na normální mód (pokud už není zapnut) b. Pokud d(q new, goals.last) < D GoalMode, zapni cílový mód konvergence (Goal Mode) - pokud už není zapnut c. Jestliže d(q new, goals.last) < D End (cílová konfigurace q goal byla dosažena) return TRUE 8. return FALSE Jak již bylo uvedeno, při každém hledání nové cesty se systém nejprve pokusí najít cestu (případ) v případovém grafu (případové bázi) využitelnou pro právě řešený problém hledání cesty z konfigurace q start do q goal. To provádí také již popsaná funkce FIND_BEST_CASE. Pokud je nalezen vhodný případ, vrací tato funkce seznam kontrolních bodů představujících cestu. Na tuto cestu se RRT strom napojí a roste podél ní od jednoho kontrolního bodu k druhému. Pokud by nebyl žádný vhodný případ nalezen, použije se místo modifikovaného RRT plánovače využívajícího CBR standardní plánovač RRT. Seznam kontrolních bodů z FIND_BEST_CASE je předán funkci RRT_WITH_CBR jako seznam goals, přičemž na jeho konec se přidá cílová konfigurace robota q goal. Celý algoritmus je v podstatě stejný jako u RRT bez CBR. Liší se jen funkcí GOALS_TEST, která určuje kontrolní bod, ke kterému má RRT aktuálně konvergovat. Aktuální kontrolní bod představuje vždy první prvek seznamu goals. Ve funkci GOALS_TEST se nejprve provede test, zda seznam goals obsahuje ještě nějaké kontrolní body, kterých RRT strom nedosáhl. To je splněno tehdy, když počet prvků goals je větší než 1. Pokud je počet prvků jedna, zbývá v goals už jen cílová konfigurace q goal. Pokud má goals více než jeden prvek, je prvním krokem nalezení kontrolního bodu, který už byl dosažen, přičemž se hledá ten, který je nejblíže ke konci seznamu goals, protože RRT strom může být např. už u 4. kontrolního bodu a předchozí tři přitom vůbec nemusel projít. Za dosažený kontrolní bod se považuje takový, jehož vzdálenost od q new je menší než nějaké D NextWP. Jinými slovy to znamená, že RRT strom se dostal do okolí kontrolního bodu. Protože kontrolní body mohly být původně získány pro opačný směr jízdy robota, musí se testovat i vzdálenost vůči kontrolnímu bodu (konfiguraci) otočenému o 180. Pokud byl nějaký kontrolní bod dosažen, tak se provede jeho odstranění z goals včetně všech kontrolních bodů před ním a RRT nastaví parametry PG, PG1 a D podle CBR módu (CBR Mode). CBR mód se používá pro růst RRT stromu mezi kontrolními body a je nastaven tak, aby měl RRT strom větší spád k aktuálnímu kontrolnímu bodu (první v goals). Větší spád

45 Strana 45 je možný, protože vzdálenost mezi dvěma kontrolními body je poměrně malá a na cestě mezi nimi se většinou nevyskytují překážky, čili riziko uváznutí v lokálním minimu je malé. V následujícím kroku se ověří, zda se RRT strom nedostal k cílové konfiguraci q goal (odpovídá goals.last) blíže než D GoalMode. Pokud ano, zapne se cílový mód a ze seznamu goals se vymažou všechny prvky kromě posledního představujícího q goal. Když už zbývá v goals pouze q goal, přepne se RRT zpět do normálního módu, protože cesta do q goal může být ještě komplikovaná a spád nemůže být tak velký, jako je v CBR módu. Potom konverguje RRT strom už jenom ke q goal a práce algoritmu je v podstatě stejná jako u RRT bez CBR.

46 Strana 46

47 Strana Editor překážek Editor překážek slouží k vytváření mapy pracovního prostoru, kterou lze poté použít v simulačním programu. Velikost pracovního prostoru je 800x600 bodů. V editoru lze kreslit komplexní i jednoduché polygony, ale simulační program podporuje pouze jednoduché (konvexní i konkávní). S editorem se pracuje podobně jako s každým jiným grafickým editorem. Umožňuje mapy ukládat i otevírat, kreslit obdélníky nebo obecné polygony a nakreslené objekty samozřejmě i mazat. Obr. 22 Hlavní okno editoru překážek 8.1 Funkce pro kreslení a práci s objekty Výběr funkcí se provádí kliknutím na příslušnou ikonku v panelu nástrojů. Obr. 23 Panel nástrojů pro kreslení a práci s objekty Kreslení obdélníku levým tlačítkem myši se nejprve určí levý horní bod obdélníku a potom pravý dolní bod (opět levým tlačítkem). Kreslení lze zrušit klávesou ESC.

48 Strana 48 Kreslení obecného polygonu vrcholy polygonu se zadávají levým tlačítkem myši a uzavření polygonu se provede spojením posledního vloženého vrcholu s prvním po stisknutí pravého tlačítka myši. Kreslení lze zrušit klávesou ESC. Označení objektu označení se provede stisknutím levého tlačítka myši nad plochou objektu a je signalizováno červeným orámováním. Vymazání objektu DELETE. vymaže aktuálně označený objekt. Stejnou funkci má i klávesa 8.2 Požadavky programu na PC Podporované OS: Windows 2000, Windows XP Minimální rozlišení 1024x768

49 Strana Simulační program Simulační program slouží k plánování cesty robota v pracovním prostoru definovaném mapou nakreslenou v editoru překážek. K plánování využívá implementovaný RRT plánovač kombinovaný s případovým usuzováním (CBR). 9.1 Hlavní okno programu V hlavním okně se zobrazuje mapa pracovního prostoru. Tu je třeba nejprve načíst ze souboru *.obs, který byl vytvořen v editoru překážek (Nastavení\Načtení překážek). Obrysy překážek jsou vykresleny černě, počáteční konfigurace robota zeleně a cílová fialově. Robot v cílové a počáteční konfiguraci je zobrazen jako obdélník, vůči kterému se testují kolize. Souřadnice x a y pro počáteční konfiguraci se zadávají levým tlačítkem myši. Při jeho stisknutí se za x a y dosadí hodnoty podle aktuální polohy kurzoru myši v mapě. Souřadnice přestavují polohu středu zadní osy auta, který je vyznačen černou tečkou. Celkové natočení robota θ lze změnit kolečkem myši. Natočení se opět provádí vůči středu zadní osy auta. Pro cílovou konfiguraci je to podobné, jenom se místo levého tlačítka používá pravé a pro nastavení natočení je třeba použít kombinaci klávesy CTRL s kolečkem myši. Nastavení počáteční a cílové konfigurace je možné i přes nabídku Nastavení\RRT metoda. Aby bylo plánování cesty úspěšné, nesmí zadaná počáteční a cílová konfigurace robota kolidovat s žádnou překážkou nebo ležet mimo pracovní prostor vymezený okrajem okna. Během výpočtu a po jeho skončení se v okně zobrazuje červenou barvou RRT strom a modrou případový graf. Vykreslování RRT stromu i případového grafu lze samozřejmě vypnout. Obr. 24 Hlavní okno programu

50 Strana Hlavní menu a příkazy Hlavní menu má dvě podnabídky. Nabídka Akce obsahuje příkazy pro spuštění výpočtu a ukončení programu. V nabídce Nastavení, jak už název napovídá, lze nastavit parametry modelu robota, RRT metody, CBR a dalších částí systému Příkazy v nabídce Akce Výpočet lze spustit v automatickém nebo manuálním módu. V manuálním módu se provede výpočet pouze jedné cesty ze zadané počáteční konfigurace do cílové. Poté je uživatel dotázán, zda chce spustit simulaci jízdy robota. Simulace jízdy robota graficky znázorňuje, jak by po nalezené cestě, která je v červeném RRT stromu vyznačena černými tečkami, projížděl skutečný robot. Pokud je zapnuto CBR, ukládá se každá nová cesta do případového grafu. Naproti tomu v automatickém módu se počítají cesty mezi více konfiguracemi, které vygeneruje generátor náhodných konfigurací (Nastavení\Generátor náhodných konfigurací). Cesta se hledá vždy z aktuální konfigurace q n do následující q n+1 (v pořadí, ve kterém byly vygenerovány) tak, jak by se pohyboval reálný robot, tedy z jednoho místa na druhé. Každá vypočítaná cesta se zanáší do případového grafu (pokud je CBR zapnuto) a výsledky pro jednotlivé cesty se ukládají do souboru. Automatický mód je určený pro testování efektivity implementovaného RRT a CBR a není v něm možná simulace jízdy robota. Příkaz Start pro automatický mód je možné použít až po vygenerování náhodných konfigurací v Nastavení\Generátor náhodných konfigurací Příkazy v nabídce Nastavení Obr. 25 Nabídka Akce Obsahuje příkazy vyvolávající dialogy pro nastavení parametrů jednotlivých částí systému. Všechny dialogy budou popsány v následujícím textu. Protože však nelze vytrhávat popis jednotlivých nastavitelných parametrů z kontextu celého algoritmu, bude popis pouze orientační s tím, že podrobnosti lze nalézt v kapitole o implementaci. V závorce za názvem je uvedeno stejné označení, jaké bylo použito v popisu implementace. Obr. 26 Nabídka Nastavení

51 Strana Nastavení RRT metody Počet iterací (K) počet iterací RRT algoritmu (cyklus 1 v RRT algoritmu). Po dosažení této hodnoty výpočet končí. Proto nesmí být tato hodnota příliš malá, jinak se může stát, že cílová konfigurace nebude dosažena. Odchylka od cíle (D End ) vzdálenost mezi dosaženou a skutečnou cílovou konfigurací. Po dosažení této vzdálenosti od cílové konfigurace se výpočet ukončí a cesta se považuje za nalezenou. Čím menší hodnota, tím větší přesnost dosažení cílové konfigurace, ale tím delší čas výpočtu. Opakování akce (R) počet opakování optimální akce (cyklus 2 v RRT algoritmu). Malé hodnoty zpomalují konvergenci, velké prodlužují cestu (robot jezdí po kružnicích). Normální mód nastavení PG, PG1 a D pro normální mód. Cílový mód nastavení PG, PG1 a D pro cílový mód. Hodnota D se bere i jako vzdálenost D GoalMode, při které se cílový mód aktivuje. CBR mód nastavení PG, PG1 a D pro CBR mód. Položka Další WP odpovídá vzdálenosti D NextWP. Zobrazovat strom zapnutí/vypnutí zobrazování RRT stromu. Na pomalých počítačích může vypnutí zrychlit výpočet. Použít CBR zapnutí/vypnutí případového usuzování. Obr. 27 Dialog pro nastavení parametrů RRT metody Počáteční konfigurace robota nastavení souřadnic x, y a celkového natočení CITA (θ) v radiánech pro počáteční konfiguraci robota.

52 Strana 52 Cílová konfigurace robota nastavení souřadnic x, y a celkového natočení CITA (θ) v radiánech pro cílovou konfiguraci robota. 9.4 Načtení překážek Po vybrání tohoto příkazu se objeví standardní dialog pro otevření souboru. V něm je třeba zvolit soubor *.obs vytvořený v editoru překážek. Načtená mapa bude potom použita jako pracovní prostor robota. 9.5 Nastavení robota Jednotlivé parametry robota jsou zakreslené do obrázku. Červený obdélník odpovídá obdélníku, vůči kterému budou testovány kolize. KX, KY délka a šířka kol robota CX, CY nastavení obdélníku pro testování kolizí L vzdálenost os robota W šířka robota P přední a zadní přesah přes osu MAXFI maximální natočení předních kol robota ve stupních 9.6 Nastavení CBR Obr. 28 Dialog pro nastavení parametrů robota Aktuální velikost báze zobrazuje aktuální počet vrcholů v případovém grafu. Max. velikost báze (V max ) počet vrcholů případového grafu po jehož překročení se provede vyčištění báze, tzn. že se odstraní nepoužívané vrcholy případového grafu.

53 Strana 53 Velikost vyčištěné báze (V min ) počet vrcholů případového grafu po vyčištění báze. Maximální vzdálenost startu (Ds max ) maximální vzdálenost počáteční konfigurace od nejbližšího vrcholu případového grafu. Pokud je vzdálenost počáteční konfigurace od nejbližšího vrcholu případového grafu větší než Ds max, v bázi nebude nalezen podobný případ. Propojovací okolí (D neigh ) okolí nového vrcholu v případovém grafu ve kterém se budou hledat staré vrcholy, aby se propojily hranou s nově vloženým vrcholem. Vzorkování (D WP ) vzorkovací vzdálenost, podle které se vytváří kontrolní body z nově nalezené cesty. Substituce (D same ) vzdálenost mezi novým a starým vrcholem případového grafu pro provedení substituce nového vrcholu. Pokud je vzdálenost mezi novým a starým vrcholem menší než D same, nový vrchol se nepřidá, ale nahradí se starým. Zobrazovat případový graf zapnutí / vypnutí zobrazování RRT stromu. Na pomalých počítačích může vypnutí zrychlit výpočet. Vymazat bázi stiskem tohoto tlačítka se smaže celý případový graf. Obr. 29 Dialog pro nastavení parametrů CBR 9.7 Generování náhodných konfigurací robota Počet generovaných konfigurací počet náhodných konfigurací, které budou vygenerovány. Cesta robota při spuštění plánování v automatickém módu se potom hledá z aktuální konfigurace do následující v pořadí, ve kterém byly vygenerovány.

54 Strana 54 Obr. 30 Dialog pro generování náhodných konfigurací Generování konfigurací, tlačítko Generování spuštění procesu generování náhodných konfigurací. Tato operace může trvat při velkém počtu konfigurací delší dobu. Vymazání náhodných konfigurací, tlačítko Vymazat odstranění náhodně vygenerovaných konfigurací. Zobrazovat náhodné konfigurace zapnutí / vypnutí zobrazování náhodných konfigurací, které jsou v hlavním okně vykreslovány šedou barvou. 9.8 Zobrazení výsledků a import do Excelu Po skončení výpočtu se zobrazí okno s informacemi o proběhlém plánování cesty. Okno ukazuje obr. 31. Obr. 31 Informace o proběhlém plánování cesty Při použití automatického módu se navíc vytváří soubor statdat.txt, který obsahuje základní informace o výpočtu každé cesty. Jeho formát je definován tak, aby informace byly snadno zpracovatelné v programu MS Excel. Jedná se o textový soubor s následujícím uspořádáním dat: 0;143;0.46;0 6;716;7.03;1

55 Strana 55 29;326;0.66;1 37;391;0.75;1 37;428;1.40;1 47;92;0.07;1 Jsou v něm čtyři sloupce oddělené středníky. Každý řádek odpovídá jedné cestě. První sloupec obsahuje velikost báze v počtu vrcholů případového grafu, která se použila pro plánování cesty. V druhém sloupci je výsledná délka cesty v hranách RRT stromu. Třetí sloupec obsahuje dobu trvání výpočtu cesty v sekundách. V posledním, čtvrtém sloupci může být 0 nebo 1 podle toho, zda byl nalezen v bázi vhodný případ pro plánovanou cestu. Jako oddělovač desetinných míst slouží tečka. Soubor lze otevřít a zpracovávat v Excelu s tím, že při otvírání se zvolí textový soubor. Jako oddělovač sloupců je nutné nastavit středník a jako oddělovač desetinných míst tečku. 9.9 Požadavky programu na PC Podporované OS: Windows 2000, Windows XP Doporučena grafická karta s akcelerací OpenGL Minimální rozlišení 1024x768

56 Strana 56

57 Strana Experimenty Prvním experimentem bylo stanovení optimálního počtu vrcholů případového grafu V opt. Na základě V opt se určí maximální počet vrcholů případového grafu V max a počet vrcholů po vyčištění případového grafu V min. Při hodnotě V max je spuštěno čištění grafu. Následně byly provedeny testy pro srovnání výkonu a efektivity samotného RRT plánovače bez CBR a plánovače RRT s CBR. Pro experimenty byly použity dvě mapy pracovního prostoru o různé složitosti. Tu jednodušší z hlediska počtu a složitosti překážek přestavuje mapa 1 (obr. 32). Mapa 2 (obr. 33) potom popisuje složitější variantu pracovního prostoru robota, kdy pracovní prostor připomíná bludiště. Veškeré testování probíhalo na PC s konfigurací AMD Athlon XP 1600+, 512 MB RAM, NVIDIA GeForce FX MB a OS Windows 2000 SP4. Obr. 32 Mapa 1 (jednodušší) Obr. 33 Mapa 2 (složitější)

Úvod do mobilní robotiky AIL028

Úvod do mobilní robotiky AIL028 Pravděpodobnostní plánování zbynek.winkler at mff.cuni.cz, md at robotika.cz http://robotika.cz/guide/umor05/cs 12. prosince 2005 1 Co už umíme a co ne? Jak řešit složitější případy? Definice konfiguračního

Více

Úvod do mobilní robotiky AIL028

Úvod do mobilní robotiky AIL028 md at robotika.cz, zbynek.winkler at mff.cuni.cz http://robotika.cz/guide/umor07/cs 27. listopadu 2007 1 Mapa světa Exaktní plánování 2 3 Plánování s otáčením Mapa světa - příklad Obsah Mapa světa Exaktní

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh Algoritmizace prostorových úloh Vektorová data Daniela Szturcová Prostorová data Geoobjekt entita definovaná v prostoru. Znalost jeho identifikace, lokalizace umístění v prostoru, vlastností vlastních

Více

Multirobotická kooperativní inspekce

Multirobotická kooperativní inspekce Multirobotická kooperativní inspekce prostředí Diplomová práce Multirobotická kooperativní inspekce prostředí Diplomová práce Intelligent and Mobile Robotics Group Laboratory for Intelligent Decision Making

Více

Základní vlastnosti křivek

Základní vlastnosti křivek křivka množina bodů v rovině nebo v prostoru lze chápat jako trajektorii pohybu v rovině či v prostoru nalezneme je také jako množiny bodů na ploše křivky jako řezy plochy rovinou, křivky jako průniky

Více

Triangulace. Význam triangulace. trojúhelník je základní grafický element aproximace ploch předzpracování pro jiné algoritmy. příklad triangulace

Triangulace. Význam triangulace. trojúhelník je základní grafický element aproximace ploch předzpracování pro jiné algoritmy. příklad triangulace Význam triangulace trojúhelník je základní grafický element aproximace ploch předzpracování pro jiné algoritmy příklad triangulace Definice Triangulace nad množinou bodů v rovině představuje takové planární

Více

Úvod do mobilní robotiky NAIL028

Úvod do mobilní robotiky NAIL028 md at robotika.cz http://robotika.cz/guide/umor08/cs 11. listopadu 2008 1 2 PID Sledování cesty Modely kolových vozidel (1/5) Diferenční řízení tank b Encoder Motor Centerpoint Motor Encoder Modely kolových

Více

PLÁNOVÁNÍ CESTY MOBILNÍHO ROBOTU POMOCÍ MRAVENČÍCH ALGORITMŮ MOBILE ROBOT PATH PLANNING BY MEANS OF ANT ALGORITHMS

PLÁNOVÁNÍ CESTY MOBILNÍHO ROBOTU POMOCÍ MRAVENČÍCH ALGORITMŮ MOBILE ROBOT PATH PLANNING BY MEANS OF ANT ALGORITHMS VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV AUTOMATIZACE A INFORMATIKY FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF AUTOMATION AND COMPUTER SCIENCE

Více

Kompatibilita a import CAD

Kompatibilita a import CAD Kompatibilita a import CAD Import a automatické rozpoznání 3D vlastností CATIA V5 WorkNC nyní nabízí import a automatické rozpoznání vlastností vrtaných otvorů z CATIA V5. V modulu automatického vrtání

Více

Moderní systémy pro získávání znalostí z informací a dat

Moderní systémy pro získávání znalostí z informací a dat Moderní systémy pro získávání znalostí z informací a dat Jan Žižka IBA Institut biostatistiky a analýz PřF & LF, Masarykova universita Kamenice 126/3, 625 00 Brno Email: zizka@iba.muni.cz Bioinformatika:

Více

24.11.2009 Václav Jirchář, ZTGB

24.11.2009 Václav Jirchář, ZTGB 24.11.2009 Václav Jirchář, ZTGB Síťová analýza 50.let V souvislosti s potřebou urychlit vývoj a výrobu raket POLARIS v USA při závodech ve zbrojení za studené války se SSSR V roce 1958 se díky aplikaci

Více

Metoda Monte Carlo a její aplikace v problematice oceňování technologií. Manuál k programu

Metoda Monte Carlo a její aplikace v problematice oceňování technologií. Manuál k programu Metoda Monte Carlo a její aplikace v problematice oceňování technologií Manuál k programu This software was created under the state subsidy of the Czech Republic within the research and development project

Více

Automatická detekce anomálií při geofyzikálním průzkumu. Lenka Kosková Třísková NTI TUL Doktorandský seminář, 8. 6. 2011

Automatická detekce anomálií při geofyzikálním průzkumu. Lenka Kosková Třísková NTI TUL Doktorandský seminář, 8. 6. 2011 Automatická detekce anomálií při geofyzikálním průzkumu Lenka Kosková Třísková NTI TUL Doktorandský seminář, 8. 6. 2011 Cíle doktorandské práce Seminář 10. 11. 2010 Najít, implementovat, ověřit a do praxe

Více

VYUŽITÍ MATLABU PRO VÝUKU NUMERICKÉ MATEMATIKY Josef Daněk Centrum aplikované matematiky, Západočeská univerzita v Plzni. Abstrakt

VYUŽITÍ MATLABU PRO VÝUKU NUMERICKÉ MATEMATIKY Josef Daněk Centrum aplikované matematiky, Západočeská univerzita v Plzni. Abstrakt VYUŽITÍ MATLABU PRO VÝUKU NUMERICKÉ MATEMATIKY Josef Daněk Centrum aplikované matematiky, Západočeská univerzita v Plzni Abstrakt Současný trend snižování počtu kontaktních hodin ve výuce nutí vyučující

Více

Diferenciální rovnice a jejich aplikace. (Brkos 2011) Diferenciální rovnice a jejich aplikace 1 / 36

Diferenciální rovnice a jejich aplikace. (Brkos 2011) Diferenciální rovnice a jejich aplikace 1 / 36 Diferenciální rovnice a jejich aplikace Zdeněk Kadeřábek (Brkos 2011) Diferenciální rovnice a jejich aplikace 1 / 36 Obsah 1 Co to je derivace? 2 Diferenciální rovnice 3 Systémy diferenciálních rovnic

Více

1 Rozdělení mechaniky a její náplň

1 Rozdělení mechaniky a její náplň 1 Rozdělení mechaniky a její náplň Mechanika je nauka o rovnováze a pohybu hmotných útvarů pohybujících se rychlostí podstatně menší, než je rychlost světla (v c). Vlastnosti skutečných hmotných útvarů

Více

2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013

2. úkol MI-PAA. Jan Jůna (junajan) 3.11.2013 2. úkol MI-PAA Jan Jůna (junajan) 3.11.2013 Specifikaci úlohy Problém batohu je jedním z nejjednodušších NP-těžkých problémů. V literatuře najdeme množství jeho variant, které mají obecně různé nároky

Více

Matematické modelování dopravního proudu

Matematické modelování dopravního proudu Matematické modelování dopravního proudu Ondřej Lanč, Alena Girglová, Kateřina Papežová, Lucie Obšilová Gymnázium Otokara Březiny a SOŠ Telč lancondrej@centrum.cz Abstrakt: Cílem projektu bylo seznámení

Více

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: CZ.1.07/1.5.00/34.0410 Číslo šablony: 1 Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek:

Více

REGRESNÍ ANALÝZA V PROSTŘEDÍ MATLAB

REGRESNÍ ANALÝZA V PROSTŘEDÍ MATLAB 62 REGRESNÍ ANALÝZA V PROSTŘEDÍ MATLAB BEZOUŠKA VLADISLAV Abstrakt: Text se zabývá jednoduchým řešením metody nejmenších čtverců v prostředí Matlab pro obecné víceparametrové aproximační funkce. Celý postup

Více

PROGRAMOVÁNÍ ROBOTŮ LEGO MINDSTORM S VYUŽITÍM MATLABU

PROGRAMOVÁNÍ ROBOTŮ LEGO MINDSTORM S VYUŽITÍM MATLABU PROGRAMOVÁNÍ ROBOTŮ LEGO MINDSTORM S VYUŽITÍM MATLABU J. Mareš*, A. Procházka*, P. Doležel** * Ústav počítačové a řídicí techniky, Fakulta chemicko-inženýrská, Vysoká škola chemicko-technologická, Technická

Více

Euklidovský prostor. Funkce dvou proměnných: základní pojmy, limita a spojitost.

Euklidovský prostor. Funkce dvou proměnných: základní pojmy, limita a spojitost. Euklidovský prostor. Funkce dvou proměnných: základní pojmy, limita a spojitost. Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a

Více

Manuál k obsluze simulátoru KKK ELO 2011 pro studenty, popis laboratorní úlohy

Manuál k obsluze simulátoru KKK ELO 2011 pro studenty, popis laboratorní úlohy Manuál k obsluze simulátoru KKK ELO 2011 pro studenty, popis laboratorní úlohy 1. Koncepce simulátoru a řídicího systému Uspřádání testovacího zařízení je navrženo tak, aby bylo možné nezávisle ovládat

Více

Kalibrační proces ve 3D

Kalibrační proces ve 3D Kalibrační proces ve 3D FCC průmyslové systémy společnost byla založena v roce 1995 jako součást holdingu FCC dodávky komponent pro průmyslovou automatizaci integrace systémů kontroly výroby, strojového

Více

Implementace A* algoritmu na konkrétní problém orientace v prostoru budov

Implementace A* algoritmu na konkrétní problém orientace v prostoru budov Implementace A* algoritmu na konkrétní problém orientace v prostoru budov Popis problému Orientaci ve známém prostředí lze převést na problém nalezení cesty z místa A do místa B. Obecně platí, že robot

Více

Architektura počítačů

Architektura počítačů Architektura počítačů Studijní materiál pro předmět Architektury počítačů Ing. Petr Olivka katedra informatiky FEI VŠB-TU Ostrava email: petr.olivka@vsb.cz Ostrava, 2010 1 1 Architektura počítačů Pojem

Více

Strojové učení se zaměřením na vliv vstupních dat

Strojové učení se zaměřením na vliv vstupních dat Strojové učení se zaměřením na vliv vstupních dat Irina Perfilieva, Petr Hurtík, Marek Vajgl Centre of excellence IT4Innovations Division of the University of Ostrava Institute for Research and Applications

Více

100 1500 1200 1000 875 750 675 600 550 500 - - 775 650 550 500 450 400 350 325 - -

100 1500 1200 1000 875 750 675 600 550 500 - - 775 650 550 500 450 400 350 325 - - Prostý kružnicový oblouk Prostý kružnicový oblouk se používá buď jako samostatné řešení změny směru osy nebo nám slouží jako součást směrové změny v kombinaci s přechodnicemi nebo složenými oblouky. Nejmenší

Více

Buněčné automaty a mřížkové buněčné automaty pro plyny. Larysa Ocheretna

Buněčné automaty a mřížkové buněčné automaty pro plyny. Larysa Ocheretna Buněčné automaty a mřížkové buněčné automaty pro plyny Larysa Ocheretna Obsah Buněčný automat: princip modelu, vymezení pojmů Mřížkový buněčný automat pro plyny Příklady aplikace principů mřížkových buněčných

Více

e-mail: RadkaZahradnikova@seznam.cz 1. července 2010

e-mail: RadkaZahradnikova@seznam.cz 1. července 2010 Optimální výrobní program Radka Zahradníková e-mail: RadkaZahradnikova@seznam.cz 1. července 2010 Obsah 1 Lineární programování 2 Simplexová metoda 3 Grafická metoda 4 Optimální výrobní program Řešení

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Numerické řešení variačních úloh v Excelu

Numerické řešení variačních úloh v Excelu Numerické řešení variačních úloh v Excelu Miroslav Hanzelka, Lenka Stará, Dominik Tělupil Gymnázium Česká Lípa, Gymnázium Jírovcova 8, Gymnázium Brno MirdaHanzelka@seznam.cz, lenka.stara1@seznam.cz, dtelupil@gmail.com

Více

Úloha ve stavovém prostoru SP je , kde s 0 je počáteční stav C je množina požadovaných cílových stavů

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů Stavový prostor a jeho prohledávání SP = formalismus k obecnějšímu uchopení a vymezení problému, který spočívá v nalezení posloupnosti akcí vedoucích od počátečního stavu úlohy (zadání) k požadovanému

Více

Úvod do mobilní robotiky AIL028

Úvod do mobilní robotiky AIL028 zbynek.winkler at mff.cuni.cz, md at robotika.cz http://robotika.cz/guide/umor05/cs 5. prosince 2005 1 Mapa světa Exaktní plánování 2 3 Plánování s otáčením (náznak řešení) Mapa světa - příklad Obsah Mapa

Více

MATURITNÍ TÉMATA Z MATEMATIKY

MATURITNÍ TÉMATA Z MATEMATIKY MATURITNÍ TÉMATA Z MATEMATIKY 1. Základní poznatky z logiky a teorie množin Pojem konstanty a proměnné. Obor proměnné. Pojem výroku a jeho pravdivostní hodnota. Operace s výroky, složené výroky, logické

Více

Studentská tvůrčí a odborná činnost STOČ 2015

Studentská tvůrčí a odborná činnost STOČ 2015 Studentská tvůrčí a odborná činnost STOČ 2015 POUŽITÍ FUZZY LOGIKY PRO ŘÍZENÍ AUTONOMNÍHO ROBOTA - 2D MAPOVÁNÍ PROSTORU Michal JALŮVKA Ostravská univerzita v Ostravě Dvořákova 7 701 03 Ostrava 23. dubna

Více

Vzorce počítačové grafiky

Vzorce počítačové grafiky Vektorové operace součet vektorů rozdíl vektorů opačný vektor násobení vektoru skalárem úhel dvou vektorů velikost vektoru a vzdálenost dvojice bodů v rovině (v prostoru analogicky) u = B A= b a b a u

Více

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly. Kapitola Reprezentace grafu V kapitole?? jsme se dozvěděli, co to jsou grafy a k čemu jsou dobré. rzo budeme chtít napsat nějaký program, který s grafy pracuje. le jak si takový graf uložit do počítače?

Více

Emergence chování robotických agentů: neuroevoluce

Emergence chování robotických agentů: neuroevoluce Emergence chování robotických agentů: neuroevoluce Petra Vidnerová, Stanislav Slušný, Roman Neruda Ústav Informatiky, AV ČR Kognice a umělý život VIII Praha 28. 5. 2008 Evoluční robotika: EA & neuronové

Více

Neuronové časové řady (ANN-TS)

Neuronové časové řady (ANN-TS) Neuronové časové řady (ANN-TS) Menu: QCExpert Prediktivní metody Neuronové časové řady Tento modul (Artificial Neural Network Time Series ANN-TS) využívá modelovacího potenciálu neuronové sítě k predikci

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

3. Optimalizace pomocí nástroje Řešitel

3. Optimalizace pomocí nástroje Řešitel 3. Optimalizace pomocí nástroje Řešitel Rovnováha mechanické soustavy Uvažujme dvě různé nehmotné lineární pružiny P 1 a P 2 připevněné na pevné horizontální tyči splývající s osou x podle obrázku: (0,0)

Více

Kapitola 2. o a paprsek sil lze ztotožnit s osou x (obr.2.1). sil a velikost rovnou algebraickému součtu sil podle vztahu R = F i, (2.

Kapitola 2. o a paprsek sil lze ztotožnit s osou x (obr.2.1). sil a velikost rovnou algebraickému součtu sil podle vztahu R = F i, (2. Kapitola 2 Přímková a rovinná soustava sil 2.1 Přímková soustava sil Soustava sil ležící ve společném paprsku se nazývá přímková soustava sil [2]. Působiště všech sil m i lze posunout do společného bodu

Více

Úvod do mobilní robotiky AIL028

Úvod do mobilní robotiky AIL028 SLAM - souběžná lokalizace a mapování {md zw} at robotika.cz http://robotika.cz/guide/umor07/cs 10. ledna 2008 1 2 3 SLAM intro Obsah SLAM = Simultaneous Localization And Mapping problém typu slepice-vejce

Více

D E T E K C E P O H Y B U V E V I D E U A J E J I C H I D E N T I F I K A C E

D E T E K C E P O H Y B U V E V I D E U A J E J I C H I D E N T I F I K A C E D E T E K C E P O H Y B U V E V I D E U A J E J I C H I D E N T I F I K A C E CÍLE LABORATORNÍ ÚLOHY 1. Seznámení se s metodami detekce pohybu z videa. 2. Vyzkoušení si detekce pohybu v obraze kamery ÚKOL

Více

3. přednáška z předmětu GIS1 atributové a prostorové dotazy

3. přednáška z předmětu GIS1 atributové a prostorové dotazy 3. přednáška z předmětu GIS1 atributové a prostorové dotazy Vyučující: Ing. Jan Pacina, Ph.D. e-mail: jan.pacina@ujep.cz Pro přednášku byly použity texty a obrázky z www.gis.zcu.cz Předmět KMA/UGI, autor

Více

Mezi jednotlivými rozhraními resp. na nosníkových prvcích lze definovat kontakty

Mezi jednotlivými rozhraními resp. na nosníkových prvcích lze definovat kontakty Kontaktní prvky Mezi jednotlivými rozhraními resp. na nosníkových prvcích lze definovat kontakty Základní myšlenka Modelování posunu po smykové ploše, diskontinuitě či na rozhraní konstrukce a okolního

Více

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná. Průběžná klasifikace Nová verze modulu Klasifikace žáků přináší novinky především v práci s průběžnou klasifikací. Pro zadání průběžné klasifikace ve třídě doposud existovaly 3 funkce Průběžná klasifikace,

Více

1 Strukturované programování

1 Strukturované programování Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ.1.07/2.2.00/28.0118 1 Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů,

Více

TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ

TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ ÚVOD Technologie elastické konformní transformace rastrových obrazů je realizována v rámci webové aplikace NKT. Tato webová aplikace provádí

Více

CATIA V5 vs CATIA V4 Martina Staňková

CATIA V5 vs CATIA V4 Martina Staňková CATIA V5 vs CATIA V4 Martina Staňková Obsah: 1) 2) 3) 4) Použití softwaru CATIA v automobilovém průmyslu Společné vlastnosti obou verzí Odlišný přístup k řešení konstrukčních úloh Zhodnocení 1) Použití

Více

Automatické rozpoznávání dopravních značek

Automatické rozpoznávání dopravních značek ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA DOPRAVNÍ Jiří Hofman Automatické rozpoznávání dopravních značek Semestrální práce z předmětu ITS 2012 Obsah 1. Automatické rozpoznávání dopravních značek (ATSR)...

Více

8. přednáška z předmětu GIS1 Rastrový datový model a mapová algebra

8. přednáška z předmětu GIS1 Rastrový datový model a mapová algebra 8. přednáška z předmětu GIS1 Rastrový datový model a mapová algebra Vyučující: Ing. Jan Pacina, Ph.D. e-mail: jan.pacina@ujep.cz Pro přednášku byly použity texty a obrázky z www.gis.zcu.cz Předmět KMA/UGI,

Více

PRODUKTY. Tovek Tools

PRODUKTY. Tovek Tools jsou desktopovou aplikací určenou k vyhledávání informací, tvorbě různých typů analýz a vytváření přehledů a rešerší. Jsou vhodné pro práci i s velkým objemem textových dat z různorodých informačních zdrojů.

Více

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28. Zdokonalování gramotnosti v oblasti ICT Kurz MS Excel kurz 6 1 Obsah Kontingenční tabulky... 3 Zdroj dat... 3 Příprava dat... 3 Vytvoření kontingenční tabulky... 3 Možnosti v poli Hodnoty... 7 Aktualizace

Více

Značení krystalografických rovin a směrů

Značení krystalografických rovin a směrů Značení krystalografických rovin a směrů (studijní text k předmětu SLO/ZNM1) Připravila: Hana Šebestová 1 Potřeba označování krystalografických rovin a směrů vyplývá z anizotropie (směrové závislosti)

Více

DIGITÁLNÍ ARCHIV VZDĚLÁVACÍCH MATERIÁLŮ

DIGITÁLNÍ ARCHIV VZDĚLÁVACÍCH MATERIÁLŮ DIGITÁLNÍ ARCHIV VZDĚLÁVACÍCH MATERIÁLŮ Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast CZ.1.07/1.5.00/34.0963 IV/2 Inovace a zkvalitnění výuky směřující k rozvoji matematické gramotnosti

Více

Počítačová grafika RHINOCEROS

Počítačová grafika RHINOCEROS Počítačová grafika RHINOCEROS Ing. Zuzana Benáková Základní otázkou grafických programů je způsob zobrazení určitého tvaru. Existují dva základní způsoby prezentace 3D modelů v počítači. První využívá

Více

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Jan Boháček [ÚLOHA 27 NÁSTROJE KRESLENÍ]

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Jan Boháček [ÚLOHA 27 NÁSTROJE KRESLENÍ] Aplikované úlohy Solid Edge SPŠSE a VOŠ Liberec Ing. Jan Boháček [ÚLOHA 27 NÁSTROJE KRESLENÍ] 1 CÍL KAPITOLY V této kapitole si představíme Nástroje kreslení pro tvorbu 2D skic v modulu Objemová součást

Více

Využití programu AutoCAD při vytváření geometrie konstrukce v prostředí programu ANSYS

Využití programu AutoCAD při vytváření geometrie konstrukce v prostředí programu ANSYS Využití programu AutoCAD při vytváření geometrie konstrukce v prostředí programu ANSYS Abstrakt Jan Pěnčík 1 Článek popisuje a porovnává způsoby možného vytváření geometrie konstrukce v prostředí programu

Více

Aproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2.

Aproximace funkcí. x je systém m 1 jednoduchých, LN a dostatečně hladkých funkcí. x c m. g 1. g m. a 1. x a 2. x 2 a k. x k b 1. x b 2. Aproximace funkcí Aproximace je výpočet funkčních hodnot funkce z nějaké třídy funkcí, která je v určitém smyslu nejbližší funkci nebo datům, která chceme aproximovat. Třída funkcí, ze které volíme aproximace

Více

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem. Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou

Více

Testování prvočíselnosti

Testování prvočíselnosti Dokumentace zápočtového programu z Programování II (NPRG031) Testování prvočíselnosti David Pěgřímek http://davpe.net Úvodem V různých oborech (například v kryptografii) je potřeba zjistit, zda je číslo

Více

Martin Milata, <256615@mail.muni.cz> 27.11.2007. Pokud je alespoň jeden rozměr čokolády sudý (s výjimkou tabulky velikosti 1x2, která už je od

Martin Milata, <256615@mail.muni.cz> 27.11.2007. Pokud je alespoň jeden rozměr čokolády sudý (s výjimkou tabulky velikosti 1x2, která už je od IB000 Lámání čokolády Martin Milata, 27.11.2007 1 Čokoláda s alespoň jedním sudým rozměrem Pokud je alespoň jeden rozměr čokolády sudý (s výjimkou tabulky velikosti 1x2, která už

Více

Microsoft Office. Excel vyhledávací funkce

Microsoft Office. Excel vyhledávací funkce Microsoft Office Excel vyhledávací funkce Karel Dvořák 2011 Vyhledávání v tabulkách Vzhledem ke skutečnosti, že Excel je na mnoha pracovištích používán i jako nástroj pro správu jednoduchých databází,

Více

Měření průtoku kapaliny s využitím digitální kamery

Měření průtoku kapaliny s využitím digitální kamery Měření průtoku kapaliny s využitím digitální kamery Mareš, J., Vacek, M. Koudela, D. Vysoká škola chemicko-technologická Praha, Ústav počítačové a řídicí techniky, Technická 5, 166 28, Praha 6 e-mail:

Více

Délka (dny) 150 - - 2 terénní úpravy (prvotní) 15-20 - příprava staveniště (výstavba přístřešku pro materiál)

Délka (dny) 150 - - 2 terénní úpravy (prvotní) 15-20 - příprava staveniště (výstavba přístřešku pro materiál) Skupinová práce. Zadání skupinové práce Síťová analýza metoda CPM Dáno: Výstavba skladu zásob obilí představuje následující činnosti: Tabulka Název činnosti Délka (dny) Optimální projekt. Optimální dělníků

Více

Výukové texty. pro předmět. Automatické řízení výrobní techniky (KKS/ARVT) na téma

Výukové texty. pro předmět. Automatické řízení výrobní techniky (KKS/ARVT) na téma Výukové texty pro předmět Automatické řízení výrobní techniky (KKS/ARVT) na téma Podklady k uspořádání řídícím systémům i řízení manipulátorů a robotů Autor: Doc. Ing. Josef Formánek, Ph.D. Podklady k

Více

ADAPTIVITA INFORMAČNÍCH SYSTÉMŮ INFORMATION SYSTEM ADAPTIVITY

ADAPTIVITA INFORMAČNÍCH SYSTÉMŮ INFORMATION SYSTEM ADAPTIVITY ADAPTIVITA INFORMAČNÍCH SYSTÉMŮ INFORMATION SYSTEM ADAPTIVITY Roman Malo Mendelova zemědělská a lesnická univerzita v Brně Provozně ekonomická fakulta, Ústav informatiky, malo@pef.mendelu.cz Abstrakt Problematika

Více

Novinky v Solid Edge ST7

Novinky v Solid Edge ST7 Novinky v Solid Edge ST7 Primitiva Nově lze vytvořit základní geometrii pomocí jednoho příkazu Funkce primitiv je dostupná pouze v synchronním prostředí Těleso vytvoříme ve dvou navazujících krocích, kde

Více

ROVNOMĚRNĚ ZRYCHLENÝ POHYB

ROVNOMĚRNĚ ZRYCHLENÝ POHYB ROVNOMĚRNĚ ZRYCHLENÝ POHYB Pomůcky: LabQuest, sonda čidlo polohy (sonar), nakloněná rovina, vozík, který se může po nakloněné rovině pohybovat Postup: Nakloněnou rovinu umístíme tak, aby svírala s vodorovnou

Více

1 Linearní prostory nad komplexními čísly

1 Linearní prostory nad komplexními čísly 1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)

Více

Algoritmy I, složitost

Algoritmy I, složitost A0B36PRI - PROGRAMOVÁNÍ Algoritmy I, složitost České vysoké učení technické Fakulta elektrotechnická v 1.01 Rychlost... Jeden algoritmus (program, postup, metoda ) je rychlejší než druhý. Co ta věta znamená??

Více

Výpočetní geometrie Computational Geometry

Výpočetní geometrie Computational Geometry Datové struktury a algoritmy Část 11 Výpočetní geometrie Computational Geometry Petr Felkel 20.12.2005 Úvod Výpočetní geometrie (CG) Příklady úloh Algoritmické techniky paradigmata řazení - jako předzpracování

Více

Projekt Poohří. Výstavba modelových sítí a automatizace v rámci tvorby modelových sítí. Zpráva o stavu řešení problematiky

Projekt Poohří. Výstavba modelových sítí a automatizace v rámci tvorby modelových sítí. Zpráva o stavu řešení problematiky Projekt Poohří. Výstavba modelových sítí a automatizace v rámci tvorby modelových sítí. Zpráva o stavu řešení problematiky RNDr. Blanka Malá, Ph.D., NTI, TUL Ing. Jan Pacina, Ph.D., UJEP Obsah: 1. Problematika

Více

11 Zobrazování objektů 3D grafiky

11 Zobrazování objektů 3D grafiky 11 Zobrazování objektů 3D grafiky Studijní cíl Tento blok je věnován základním algoritmům zobrazení 3D grafiky. Postupně budou probrány základní metody projekce kolmé promítání, rovnoběžné promítání a

Více

Efektivní hledání nejkratších cest v sítích hromadné přepravy osob

Efektivní hledání nejkratších cest v sítích hromadné přepravy osob DIPLOMOVÁ PRÁCE Efektivní hledání nejkratších cest v sítích hromadné přepravy osob Autor: Vladislav Martínek Vedoucí: RNDr. Michal Žemlička, Ph.D. Motivace Jak se co nejrychleji dostat z bodu A do bodu

Více

Pravděpodobnost, náhoda, kostky

Pravděpodobnost, náhoda, kostky Pravděpodobnost, náhoda, kostky Radek Pelánek IV122, jaro 2015 Výhled pravděpodobnost náhodná čísla lineární regrese detekce shluků Dnes lehce nesourodá směs úloh souvisejících s pravděpodobností krátké

Více

StatSoft Jak vyzrát na datum

StatSoft Jak vyzrát na datum StatSoft Jak vyzrát na datum Tento článek se věnuje podrobně možnostem práce s proměnnými, které jsou ve formě datumu. A že jich není málo. Pokud potřebujete pracovat s datumem, pak se Vám bude tento článek

Více

Modul Konfigurace. 2006... MTJ Service, s.r.o.

Modul Konfigurace. 2006... MTJ Service, s.r.o. Modul Konfigurace Modul Konfigurace Představení Menu konfigurace sdružuje všechny konfigurační příkazy k celému systému Soft-4-Sale. Dále konfigurace kopíruje jednotlivé moduly systému tzn. že existuje

Více

13 Barvy a úpravy rastrového

13 Barvy a úpravy rastrového 13 Barvy a úpravy rastrového Studijní cíl Tento blok je věnován základním metodám pro úpravu rastrového obrazu, jako je např. otočení, horizontální a vertikální překlopení. Dále budo vysvětleny různé metody

Více

45 Plánovací kalendář

45 Plánovací kalendář 45 Plánovací kalendář Modul Správa majetku slouží ke tvorbě obecných ročních plánů činností organizace. V rámci plánu je třeba definovat oblasti činností, tj. oblasti, ve kterých je možné plánovat. Každá

Více

Algoritmy a datové struktury

Algoritmy a datové struktury Algoritmy a datové struktury 1 / 34 Obsah přednášky Základní řídící struktury posloupnost příkazů podmínka cyklus s podmínkou na začátku cyklus s podmínkou na konci cyklus s pevným počtem opakování Jednoduchá

Více

7. Geografické informační systémy.

7. Geografické informační systémy. 7. Geografické informační systémy. 154GEY2 Geodézie 2 7.1 Definice 7.2 Komponenty GIS 7.3 Možnosti GIS 7.4 Datové modely GIS 7.5 Přístup k prostorovým datům 7.6 Topologie 7.7 Vektorové datové modely 7.8

Více

II. Zakresli množinu bodů, ze kterých vidíme úsečku délky 3 cm v zorném úhlu větším než 30 0 a menším než 60 0.

II. Zakresli množinu bodů, ze kterých vidíme úsečku délky 3 cm v zorném úhlu větším než 30 0 a menším než 60 0. Ukázky typových maturitních příkladů z matematiky..reálná čísla. 3} x R; I. Zobrazte množiny A = {x є 3} < + x R; B = {x є II. Zapište ve tvaru zlomku číslo, 486.Komplexní čísla. I. Určete a + b, a - b,

Více

Vnější směrovací protokoly

Vnější směrovací protokoly Vnější směrovací protokoly 1 Předmět: Téma hodiny: Třída: Počítačové sítě a systémy Vnější směrovací protokoly _ 3. a 4. ročník SŠ technické Autor: Ing. Fales Alexandr Software: SMART Notebook 11.0.583.0

Více

Dolování asociačních pravidel

Dolování asociačních pravidel Dolování asociačních pravidel Miloš Trávníček UIFS FIT VUT v Brně Obsah přednášky 1. Proces získávání znalostí 2. Asociační pravidla 3. Dolování asociačních pravidel 4. Algoritmy pro dolování asociačních

Více

Státní závěrečná zkouška z oboru Matematika a její použití v přírodních vědách

Státní závěrečná zkouška z oboru Matematika a její použití v přírodních vědách Státní závěrečná zkouška z oboru Matematika a její použití v přírodních vědách Ústní zkouška z oboru Náročnost zkoušky je podtržena její ústní formou a komisionálním charakterem. Předmětem bakalářské zkoušky

Více

Obecná rovnice kvadratické funkce : y = ax 2 + bx + c Pokud není uvedeno jinak, tak definičním oborem řešených funkcí je množina reálných čísel.

Obecná rovnice kvadratické funkce : y = ax 2 + bx + c Pokud není uvedeno jinak, tak definičním oborem řešených funkcí je množina reálných čísel. 5. Funkce 9. ročník 5. Funkce ZOPAKUJTE SI : 8. ROČNÍK KAPITOLA. Funkce. 5.. Kvadratická funkce Obecná rovnice kvadratické funkce : y = ax + bx + c Pokud není uvedeno jinak, tak definičním oborem řešených

Více

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem ČVUT FEL X36PAA - Problémy a algoritmy 3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem Jméno: Marek Handl Datum: 1. 1. 2009 Cvičení: Pondělí 9:00 Zadání Naprogramujte

Více

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz Vývoj moderních technologií při vyhledávání Patrik Plachý SEFIRA spol. s.r.o. plachy@sefira.cz INFORUM 2007: 13. konference o profesionálních informačních zdrojích Praha, 22. - 24.5. 2007 Abstrakt Vzhledem

Více

Předpokládané znalosti žáka 1. stupeň:

Předpokládané znalosti žáka 1. stupeň: Předpokládané znalosti žáka 1. stupeň: ČÍSLO A POČETNÍ OPERACE používá přirozená čísla k modelování reálných situací, počítá předměty v daném souboru, vytváří soubory s daným počtem prvků čte, zapisuje

Více

Oblasti ovlivňující přesnost a kvalitu obrobení povrchu (generované dráhy).

Oblasti ovlivňující přesnost a kvalitu obrobení povrchu (generované dráhy). Oblasti ovlivňující přesnost a kvalitu obrobení povrchu (generované dráhy). 1 - Přesnost interpretace modelu (Tato oblast řeší, jak SC interpretuje model pro jednotlivé technologie obrábění 2D, 3D+HSM,

Více

MATEMATIKA. Doc. RNDr. Eduard Fuchs, CSc., Přírodovědecká fakulta MU Brno. Ing. Milan Hausner, ZŠ Lupáčova, Praha 3

MATEMATIKA. Doc. RNDr. Eduard Fuchs, CSc., Přírodovědecká fakulta MU Brno. Ing. Milan Hausner, ZŠ Lupáčova, Praha 3 MATEMATIKA Vypracovala skupina pro přípravu standardů z matematiky ve složení: Vedoucí: Koordinátor za VÚP: Členové: Doc. RNDr. Eduard Fuchs, CSc., Přírodovědecká fakulta MU Brno RNDr. Eva Zelendová, VÚP

Více

9 Prostorová grafika a modelování těles

9 Prostorová grafika a modelování těles 9 Prostorová grafika a modelování těles Studijní cíl Tento blok je věnován základům 3D grafiky. Jedná se především o vysvětlení principů vytváření modelů 3D objektů, jejich reprezentace v paměti počítače.

Více

zdroj světla). Z metod transformace obrázku uvedeme warping a morfing, které se

zdroj světla). Z metod transformace obrázku uvedeme warping a morfing, které se Kapitola 3 Úpravy obrazu V následující kapitole se seznámíme se základními typy úpravy obrazu. První z nich je transformace barev pro výstupní zařízení, dále práce s barvami a expozicí pomocí histogramu

Více

Vzdělávací oblast: Matematika a její aplikace Vzdělávací obor: Matematický kroužek pro nadané žáky ročník 9.

Vzdělávací oblast: Matematika a její aplikace Vzdělávací obor: Matematický kroužek pro nadané žáky ročník 9. Vzdělávací oblast: Matematika a její aplikace Vzdělávací obor: Matematický kroužek pro nadané žáky ročník 9. Školní rok 2013/2014 Mgr. Lenka Mateová Kapitola Téma (Učivo) Znalosti a dovednosti (výstup)

Více

POHYB TĚLESA. Mgr. Jan Ptáčník - GJVJ - Fyzika - Sekunda

POHYB TĚLESA. Mgr. Jan Ptáčník - GJVJ - Fyzika - Sekunda POHYB TĚLESA Mgr. Jan Ptáčník - GJVJ - Fyzika - Sekunda Pohyb Pohyb = změna polohy tělesa vůči jinému tělesu. Neexistuje absolutní klid. Pohyb i klid jsou relativní. Záleží na volbě vztažného tělesa. Spojením

Více

12 Metody snižování barevného prostoru

12 Metody snižování barevného prostoru 12 Metody snižování barevného prostoru Studijní cíl Tento blok je věnován základním metodám pro snižování barevného rozsahu pro rastrové obrázky. Postupně zde jsou vysvětleny důvody k použití těchto algoritmů

Více