Mendelova univerzita v Brně Provozně ekonomická fakulta
Aplikace Ackermanova řízení na mobilním robotu Bakalářská práce
Vedoucí práce: Ing. Jan Kolomazník
František Ostřížek
Brno 2013
Děkuji svému vedoucímu bakalářské práce Ing. Janu Kolomazníkovi a všem z týmu aistorm za cenné a konstruktivní rady, čas a trpělivost, které mi v průběhu tvorby závěrečné práce věnovali.
Prohlašuji, že jsem tuto práci vyřešil samostatně s použitím literatury, kterou uvádím v seznamu.
V Brně dne 20.05.2013
....................................................
Abstract Ostřížek, F. Ackerman application procedure on a mobile robot. Bachelor thesis. Brno, 2013 Final work visualizes and executes calculations Ackerman movement chassis, which is then used for the construction of an autonomous robot Mendel University. After the theoretical foundation is followed by the analysis, design and implementation of application, which finds application in mobile robots, which are transported by automobile chassis. Keywords: robot, management, planning, control, chassis, automobil
Abstrakt Ostřížek, F. Aplikace Ackermanova řízení na mobilním robotu. Bakalářská práce. Brno, 2013 Závěrečná práce vizualizuje a realizuje výpočty Ackermanova pohybu na podvozku, který je dále použit pro konstrukci autonomního robotu Mendelovy univerzity. Po teoretickém základu následuje analýza, návrh a postup implementace aplikace, která najde uplatnění na mobilních robotech, přepravujících se pomocí automobilového podvozku. Klíčová slova: robot, řízení, plánování, ovládání, podvozek, automobil
9
OBSAH
Obsah 1 Úvod a cíl práce 11 1.1 Úvod do problematiky . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2 Cíl práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2 Teoretická část 2.1 Pojmy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Princip Ackermanova řízení . . . . . . . . . . . . . . . . . . . . . . 2.3 Ackermanovy typy podvozků . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Tripod - podvozek s tříkolovým uspořádáním (tricykle drive) 2.3.2 Robot s Ackermanovým podvozkem (Ackerman steering nebo kingpin steering) . . . . . . . . . . . . . . . . . . . . . 2.4 Přístup ke komunikaci s uživatelem . . . . . . . . . . . . . . . . . . 2.5 Přístup ke komunikaci s hardwarem . . . . . . . . . . . . . . . . . . 2.5.1 Knihovny . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.2 Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Statistické ukazatele . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.1 Variační rozpětí . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.2 Modus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.3 Střední hodnota průměru . . . . . . . . . . . . . . . . . . . 2.6.4 Rozptyl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.5 Směrodatná odchylka . . . . . . . . . . . . . . . . . . . . . . 2.6.6 Variační koeficient . . . . . . . . . . . . . . . . . . . . . . .
. . . .
12 12 12 13 13
. . . . . . . . . . . .
15 17 18 18 18 21 21 21 21 22 22 22
3 Implementace a výpočty 3.1 rozhraní . . . . . . . . . . . . . . . 3.2 návrh aplikace . . . . . . . . . . . . 3.3 Práce s podvozkem a jeho testování 3.4 Porovnaní modelu s reálnými daty .
. . . .
23 23 23 26 29
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
4 Závěr a zhodnocení
31
5 Použitá literatura
33
6 Seznamy
35
7 Přílohy
37
10
OBSAH
1
ÚVOD A CíL PRÁCE
1 1.1
11
Úvod a cíl práce Úvod do problematiky
V dnešní době, kdy je práce člověka stále více automatizována za pomocí výpočetní techniky a moderní systémy sledují okolí cesty jako je například svislé dopravní značení nebo vodorovné bílé čáry na dopravní komunikaci, může autonomní jednotka vyhodnocovat situace ve kterých se nachází. Výsledky takovéto autonomní práce mohou být použity pro řízení samotné nebo kontroly zda řidič zvládá možnosti vozidla a pravidla silničního provozu. Nepřesnosti v řízení člověk koriguje intuitivně pohnutím volantu v závislosti na situaci, na rozdíl od člověka musí autonomní robot využít skoro všech svých vstupů a rozhodnout, jakou akci provést pro udržení se na vozovce. I s velkou snahou programátorů vnuknout ovládanému kusu život se pořád jedná o deterministické zařízení, které plní posloupnost pro robota smysluplných opakujících se příkazů. Jednou z možných nadstavem výstupů může být plánování úloh do fronty ke splnění nebo hledání optimální dráhy k aktuálním podmínkám v okolí, tak aby vozidlo při pohybu nesjelo z cesty. Typickou úlohou pro autonomní řízení pohybů mobilního robotu je prohledávání stavového prostoru a stavů, které mohou nastat a k nim přiřadit příslušnou reakci akčních členů. Důležitou součástí pro správné předpovězení stavů se kterými bude nutno něco dělat, je výpočet drah kam se mobilní robot bude ubírat. Takovéto výpočty se s použitým druhem podvozku mohou lišit v závislosti na podmínkách ve kterých se robot může vyskytnout nebo musí pohybovat. V moderních vozech je již lidské rozhodování zastupováno formou aktivních parkovacích asistentů, kteří bez lidské pomoci zvládnou dostat vozidlo ke krajnici do vytyčeného prostoru. Tak i robot Mendelovy univerzity by měl projet již naplánovanou cestou parkem. Proto je nezbytně nutné aplikovat výpočty pro pohyb mobilního robotu, aby vyšší software měl podklady pro rozhodování zda se ubírá požadovaným směrem. Každý kdo dostal autíčko na dálkové ovládání nebo již řídi skutečná vozidla sleduje a vyhodnocuje pohyby, kam se bude vozidlo ubírat, tak i mobilní robot musí zhodnotit, zda pro něj bude pokračování ve zvoleném směru vhodné a bezpečné.
1.2
Cíl práce
Cílem práce je aplikovat Ackermanovy výpočty pro pohyb automobilového podvozku mobilního robotu. Vytvořit uživatelské rozhraní, kde se dráhy budou simulovat pro lepší komunikaci s uživatelem a ladění chyb v důsledku špatných rozhodnutí vyššího software nebo uživatele. Provést testování s dálkově řízeným podvozkem a zaznamenané nepřesnosti v řízení zohlednit. Cílem je poskytovat vyššímu software podklady pro rozhodování kam se bude robot ubírat.
12
2
2
TEORETICKÁ ČÁST
Teoretická část
2.1
Pojmy
Slovo robot ve smyslu, robota, dřina, tvrdá práce se objevilo již v 17. století. Mírně pozměněné jej poprvé ve významu stroje použili před více než devadesáti lety bratři Čapkové. (a Karel Čapek řekl: Budiž robot, 2011) Robot je stroj pracující s určitou mírou samostatnosti, vykonávající určené úkoly, a to předepsaným způsobem a při různých mírách potřeby interakce s okolním světem a se zadavatelem: Robot je schopen své okolí vnímat pomocí senzorů, zasahovat do něj, případně si o něm vytvářet vlastní představu, model. Vnímáním světa nejenže může poznávat svět samotný, ale může také vyhodnocovat svůj vliv na něj a využívat tak zpětnou vazbu.(Robot, 2013) Řízení je cílevědomá činnost, při níž se hodnotí a zpracovávají informace o řízeném objektu nebo procesu i informace o dějích vně tohoto procesu a podle nich se ovládají příslušná zařízení tak, aby bylo dosaženo předepsaného cíle. Řízení se dělí na ovládání a regulaci. Kde ovládání je řízení bez zpětné kontroly měřením. Lze ho použít u jednoduchých, dobře poznaných procesů či objektů (např. pevně naprogramovaný algoritmus jednoduché automatické pračky).(Základní pojmy a definice: Řízení, 2002) Podvozek je součást dopravních prostředků, strojů a zařízení, které ke své funkci vyžadují pohyb po pevné, kapalné či sypké ploše. (Podvozek, 2012)
2.2
Princip Ackermanova řízení
Ackermanův princip řízení definuje geometrii, kterou lze aplikovat na všechna vozidla (dvoukolová, čtyřkolová) tak, aby byl zajištěn správný úhel natočení řídících kol při průjezdu zatáčkou. Než byl tento systém vyvinut, používalo se řízení pomocí paralelní řídící tyče. Tento způsob řízení nebyl dostatečně výhodný pro řízení vozidel. V principu se jedná o to, že když vozidlo jede do zatáčky, která má určitý poloměr, vnitřní kola jedou po menším poloměru kružnice než kola vnější. V případě, že jsou kola natočena pod stejným úhlem, dochází ke smýkání vnitřního kola, ke vzniku tepla vlivem tření a většího opotřebení pneumatiky. Tento problém lze eliminovat zvětšením úhlu natočení vnitřního kola oproti vnějšímu. Aby při průjezdu zatáčkou došlo k odlišnému úhlu natočení řídících kol, je nutné dodržet určitou geometrii řídícího mechanizmu. Tato geometrie je dána úhlem natočení řídící páky kola a její délkou.(Vodražka, 2010, s. 17) Nyní si popíšeme princip řízení pomocí paralelní řídící tyče a Ackermanova principu řízení popsaný na stránkách. (Burnhill, 2001) • Řídící tyč je umístěna rovnoběžně s řídící nápravou. Při průjezdu zatáčkou se obě kola na obrázku 1 natočí o stejný úhel a tím dojde k již výše zmíněným nežádoucím vlastnostem. Toto použití je zpravidla realizováno tam, kde řízení nevyžaduje přesnost. Uložení řídící tyče paralelně se používá u jednoduchých dálkově ovládaných modelů aut.
2.3
Ackermanovy typy podvozků
13
Obr. 1: Řízení pomocí paralelní řídící tyče Zdroj: http://www.rctek.com/technical/handling/ackerman steering principle.html
Obr. 2: Ackermanův princip řízení Zdroj: http://www.rctek.com/technical/handling/ackerman steering principle.html
• Využití mobilních robotů Ackermanův princip řízení – kola na řízené nápravě mají svoji páku řízení skloněnou o určitý uhel viz obrázek 2. Tento úhel a délka páky způsobuje různé natočení každého kola při průjezdu zatáčkou, viz obrázek 3. Důležitý poznatek je ten, že takovýto způsob zatáčení má exponenciální průběh. To znamená, že čím více vozidlo zatáčí, tím větší je rozdíl mezi úhly natočení. (Vodražka, 2010)
Obr. 3: Různý úhel natočení kol při průjezdu zatáčkou Zdroj: http://www.rctek.com/technical/handling/ackerman steering principle.html
2.3 2.3.1
Ackermanovy typy podvozků Tripod - podvozek s tříkolovým uspořádáním (tricykle drive)
U tohoto podvozku jsou zpravidla hnaná zadní kola a přední kolo je motoricky pouze natáčené, zatímco ve směru pohybu je obvykle pasivně odvalováno. Výhodou podvozku je jednoduché řízení, opět ovládáme jedním motorem směr pohybu a druhým motorem rychlost jízdy. Typické uspořádání je znázorněno na obrázku 4. Tento podvozek je již možno používat v těžším terénu a navíc umožňuje použití poměrně jednoduché odometrie. Je však nutné počítat s poměrně značnou chybou odometrického měření v případě pohybu v terénu, nárůst chyby způsobí i použití
14
2
TEORETICKÁ ČÁST
Obr. 4: Schématický nákres tříkolového podvozku Zdroj: (Paseka, 2006)
nafukovacích pneumatik. Další nevýhodou tříkolového podvozku je, že není možná rotace na místě, jako u jiných typů. Hrozí tedy uvíznutí robotu v úzkých a komplikovaných prostorách, rovněž autonomní řízení v takových prostorách představuje komplikovanou úlohu. Odometrie robotu s tříkolovým uspořádáním v závislosti na natočení řiditelného kolečka se tříkolka pohybuje buď po přímce nebo po kružnici, pro zjištění pozice je třeba dvou údajů – orientace řiditelného kolečka a jeho ujetá vzdálenost. Nechť je referenčním bodem střed nápravy pevných kol. Předpokládáme-li nenulové natočení řídícího kolečka a tedy pohyb po kružnici, bude střed této kružnice ležet na ose hnaných kol, jak je vidět na obrázku 5.
Obr. 5: Model tříkolového podvozku Zdroj: (Paseka, 2006)
Poloměr kružnice je dán rovnicí 1, využitím vztahu součtu vnitřních úhlů trojúhelníku vypočteme rameno pomocí sinovy věty, kde je R – poloměr kružnice [m], l – vzdálenost náprav [m], ϕ – úhel natočení řídícího kolečka [rad]. R = tan
l tan ϕ
(1)
2.3
15
Ackermanovy typy podvozků
(Paseka, 2006) 2.3.2
Robot s Ackermanovým podvozkem (Ackerman steering nebo kingpin steering)
Jde o typ známý z automobilů. V robotice bývá nejčastější uspořádání, kdy jsou hnaná pouze zadní kola a přední jsou natáčena každé jiným úhlem, protože každé kolo opisuje kružnici o jiném poloměru. Schématický nákres je na obrázku 6. Je možno použít i podvozek se stejně natáčenými koly, je však nutno počítat s většími prokluzy při zatáčení. Problémy se objeví zejména při vyšších rychlostech robotu. Ackermanův podvozek bývá používán zejména u větších vozidel, u kterých se předpokládá činnost na běžných silnicích s požadovanou velkou nosností nebo činnost v těžším terénu. I zde je možno použít odometrii, v praxi však její použití nebývá příliš běžné. Nevýhodou tohoto podvozku je nemožnost otáčky na místě.
Obr. 6: Schématický nákres Ackermanova podvozku Zdroj: (Paseka, 2006)
Pokud má být střed otáčení dobře definován, viz obrázek 6, je nutné, aby vnitřní kolo podvozku zatáčelo více než vnější. Úhly natočení kol popisují rovnice 3 pro vnější kola a rovnice 2 pro vnitřní kolo, kde je β in – uhel natočení vnitřního kola [◦ ], β out – uhel natočení vnějšího kola [◦ ], R – poloměr zatáčky [m], l – vzdálenost náprav [m], b – rozchod robotu [m].
tan β
tan β
out
in
=
l R
(2)
l R−b
(3)
=
16
2
TEORETICKÁ ČÁST
Pokud nahradíme přední kola tzv. virtuálním kolem, můžeme použít odometrii pro tříkolový podvozek. Virtuální kolo je umístěno ve středu přední nápravy (znázorněno na obrázku 7), je jeho úhel natočení závislý na natočení kol přední nápravy a spočte se podle rovnice 4, kde je βvr – uhel natočení virtuálního kola [◦ ],
Obr. 7: Model Ackermanova řízení Zdroj: (Paseka, 2006)
β β
– uhel natočení vnitřního kola [◦ ], ◦ out – uhel natočení vnějšího kola [ ]
in
cot β
vr
= cot β
out
−
b = cot β 2l
in
+
b 2l
(4)
(Paseka, 2006) Pro lokalizační účely je nutná implementace odometrie, která použije Ackermanovo řízení. Tato odometrie definuje geometrii, tak aby byla aplikována na vozidlo pro správné natočení kol před průjezdem zatáčkou. Tuto úlohu můžeme rozdělit do dvou typů: a) dobřednou úlohu Známe počáteční pozici a orientaci robotu a dopočítáme cílovou pozici za pomocí natočení kol a ujeté vzdálenosti. IRC – rotační snímač [m], R – poloměr zatáčky [m], l – vzdálenost náprav [m], ωr – natočení podvozku [rad], ϕ – úhel virtuálního kola βvr [rad].
∆ω
∆x=
r
=
IRC ∗ tan β 2∗l
vr
l ∗ (1 − cos ∆ωr ) tan βvr
(5)
(6)
2.4
17
Přístup ke komunikaci s uživatelem
∆y=
l ∗ (sin ∆ωr ) tan βvr
(7)
b) zpětnou úlohu Známe cílovou a počáteční pozici, musíme vypočíst natočení kol a vzdálenost. R=
∆ x2 + ∆ y 2 , ∆ x = |P0x − P1x |, ∆ y = |P0y − P1y | 2∆ x ∆ωr = arctan
2∆ x − ∆ y ∆ y 2 − ∆ x2
L = ∆ωr ∗ R
(8)
(9)
(10)
(Věchet et al., 2007) Pro dopočet natočení virtuálního kola při znalosti dvou odvěsen použijeme vztah v rovnici 11. √ R 2 − l 2 − ( R 2 + l 2 )2 π √ ) (11) ϕ = − arccos( 2 −2l( R2 + l2 ) (Pravoúhlý trojúhelník, 2012)
2.4
Přístup ke komunikaci s uživatelem
Při návrhu programu je nutno zohlednit různé přístupy k tvorbě výsledného dokumentu. Jednou z možností je WYSIWYG. WYSIWYG je akronym anglické věty „What you see is what you getÿ, česky „co vidíš, to dostanešÿ. Tato zkratka označuje způsob editace dokumentů v počítači, při kterém je verze zobrazená na obrazovce vzhledově totožná s výslednou verzí dokumentu. Nejčastěji se jako WYSIWYG označují některé textové procesory, ve kterých se editovaný text zobrazuje tak, jak bude vytištěn na papír. Opačným způsobem jak přistupovat k tvorbě dokumentu je WYSIWYM. WYSIWYM editory (What You See Is What You Mean = „Co vidíte, to máte na mysliÿ) jsou alternativa k WYSIWYG editorům. Namísto formátování nebo prezentace dokumentu se soustředí na zachování smyslu každého prvku. Například hlavičky, nadpisy, odstavce jsou označeny odpovídajícími tagy a celá stránka se tak v prohlížeči zobrazí zamýšleným způsobem. (WYSIWYG, 2013) i když oba způsoby vytvoří stejný dokument je obrovský rozdíl při práci a editaci. Typickými zástupci WYSIWYG programů jsou CAD (Computer aided design) systemy, kde uživatel vše projde téměř bez použití klávesového vstupu a vystačí si pouze s myší. Oproti tomu WYSISYM programy zachovávají podstatu prvku a proto v různých pohledech na výstup mohou vypadat odlišně, typickými zástupci mohou být terminálové služby oproti již výše zmiňovaným programům.
18
2
TEORETICKÁ ČÁST
Pro účely modulu je nutno se oprostit od grafických klikátek, protože vykreslovací plátno bude dostávat příkazy na pozadí a může být pod plátnem i vykreslená mapa. Z toho důvodu je nutné zajistit aby uživatel pohledem zjistil aktuální myšlení robotu. Tento pohled se může docenit právě při debbugování aplikace nebo zjišťování příčin kde a proč robot sjel z cesty.
2.5 2.5.1
Přístup ke komunikaci s hardwarem Knihovny
Intuitivní představu o významu pojmu knihovna mají asi všichni programátoři. Velmi vágně řečeno jde o soubor funkcí a tříd poskytující nějaký okruh služeb. Knihovnu mohou využívat různé aplikace, které ji typicky nebudou využívat samostatně, ale v kombinaci s dalšími knihovnami. Knihovny se také můžou využívat navzájem. Na nejnižší úrovni pak knihovny či samotná aplikace komunikují s vrstvami kódu pod sebou či přímo s hardwarem. Situace v aplikaci je popsána následujícím obrázkem. Pro knihovnu z popsaného způsobu využití plynou dva důležité požadavky: • Musí si rozumět s prakticky libovolnou aplikací. • Musí být schopna koexistence s dalšími knihovnami.
Obr. 8: Schéma aplikace založené na knihovnách Zdroj: http://majda.cz/zapisnik/265
Tyto dvě vlastnosti každý kus kódu poskytující nějaký okruh služeb rozhodně nemá. Aby jimi knihovna oplývala, nesmí především nijak ovlivňovat globální stav programu – všechen její vliv musí být lokalizovaný. Součástí toho je, že nesmí provádět policy decisions – říkat aplikaci, co se jak bude dělat.(Majda, 2009) 2.5.2
Framework
Právě možnost frameworku definovat policy decisions a přimět programátora aplikace k jejich dodržování považujeme za klíčovou vlastnost, která frameworky odlišuje od knihoven.(Majda, 2009)
2.5
Přístup ke komunikaci s hardwarem
19
Obr. 9: Schéma aplikace založené na frameworku Zdroj: http://majda.cz/zapisnik/265
Framework se skládá z tzv. frozen spots a hot spots. Frozen spots definují celkovou architekturu softwarové struktury, její základní komponenty a vztahy mezi nimi. Tyto části se nemění při žádném použití frameworku. Naproti tomu hot spots jsou komponenty, které spolu s kódem programátora vytvářejí zcela specifickou funkcionalitu, a proto jsou skoro pokaždé jiné.(Framework, 2013) Proto je námi použitý framework jakousi skořepinou obalující všechny projekty do jednoho celku s možností dílčím projektům definovat pohledy na daný modul, logovat všechny události a vytvářet události s posluchači událostí. Jednou z prvních věcí, které bylo nutné společně rozhodnout je, jaký implementační jazyk bude použit a v jakém prostředí? Tým Aistorm po probrání výhod i nevýhod jazyků a systémů zvolil jazyk java 1.6 v prostředí eclipse s balíčkovacím systémem maven pro závislosti na platformě windows 7 ve verzi 32 bitů. Eclipse je open source vývojová platforma, která je pro většinu lidí známa jako vývojové prostředí určené pro programování v jazyce Java. Oproti ostatním vývojovým prostředím v Javě je filozofie Eclipse úzce svázána právě s rozšířitelností pomocí pluginů. V základní verzi obsahuje Eclipse pouze integrované prostředky pro vývoj standardní Javy jako kompilátor, debugger atd., ale neobsahuje například nástroj pro vizuální návrh grafických uživatelských rozhraní desktopových aplikací nebo aplikační server – všechna taková rozšíření je potřeba dodat formou pluginů. Z tohoto důvodu přímo pod křídly Eclipse vznikly takzvané subprojekty, které zastřešují rozšíření pro jednotlivé oblasti softwarového vývoje v Javě. Tyto subprojekty usnadňují integraci potřebných rozšíření do samotného vývojového prostředí. Eclipse je v současnosti nejpopulárnější IDE pro Javu.(Eclipse, 2013) Apache Maven je software pro řízení projektů a nástroj k jeho porozumění. Na základě konceptu projekt objekt model zkraceně POM, může Maven spravovat projektové překládání zdrojových kódů, zpráv a na dokumentaci z centrálního uložiště.(Apache Maven, 2002) Za účelem týmové práce a skládání programů do jednoho celku byl navrhnut modulový přístup k projektu. Robot jako celek se skládá z částí, jejichž propojení je definováno xml souborem. Proto má každý uživatel možnost pracovat na svém programu, aniž by ovlivnil celek. V případě, že potřebuje komunikaci s jiným modulem zadefinuje xml soubor a sváže svůj projekt s někým jiným. V případě že by cizí
20
2
TEORETICKÁ ČÁST
projekt nebyl zcela připraven na integraci nebo použití, je možnost do xml souboru definovat „dummyÿ třídu, která zastoupí nepřipravenou třídu a zajistí strohé vrácení nebo náhodné generování požadovaných hodnot pro uspokojení potřeb projektu na něm navazující. Modul navigační matematiky, který definuje pohyb mobilního robotu, je aplikací matematického modelu pohybů na podvozek. Tento modul tedy zajišťuje výpočty pozic a jízdních parametrů pro vyšší software, který bude rozhodovat o tom, kam se robot bude ubírat. S každou vytvořenou událostí nebo provedenou akcí je nutné zajistit i zaznamenávání provedení pro zpětné sledování či odhalování logických chyb. Za tímto účelem framework poskytuje i logovací systém a pohled na logy samotné. Samotné logování je provedeno pomocí systému „slf4jÿ. Tento projekt je taktéž skořepinou obalující širokou škálu logovacích systémů, proto se užitím tohoto systému zajistí kompatibilita logování.
2.6
21
Statistické ukazatele
2.6
Statistické ukazatele
Statistický soubor je konečná neprázdná množina M objektů statistického pozorování shromážděných na základě toho, že mají jisté společné vlastnosti. Prvky této množiny se nazývají prvky statistického souboru (statistické jednotky). Počet n všech prvků statistického souboru se nazývá rozsah souboru. Statistický znak x je společná vlastnost prvků statistického souboru, jejichž proměnnost je předmětem statistického zkoumání. Jednotlivé údaje znaku se nazývají hodnoty znaku a značí se x1 , x2 , ..., xn . Znaky kvantitativní mají hodnoty vyjádřené čísly. Znaky kvalitativní mají hodnoty vyjádřeny slovním popisem.(Červinková, 2007, s. 206) Popisné charakteristiky statistických souborů jako jsou střední hodnoty nebo míry variability, nazýváme parametry, pokud se jedná o popis či charakteristiku základního souboru. V praxi nejsme, bohužel, obvykle schopni obsáhnou do statistického šetření celou množinu, tak aby bylo možno přesně stanovit skutečné hodnoty těchto popisných parametrů. Proto postupujeme tak, že ze základního souboru vybereme jeden nebo několik výběrových souborů a z těchto výběrových dat vypočteme tzv. výběrové charakteristiky, a ty pak používáme při odhadování skutečných parametrů základního souboru. Výpočtem odhadů přesných hodnot parametrů základního souboru se zabývají speciální statistické metody odhadování parametrů.(Bedáňová, 2013) 2.6.1
Variační rozpětí
Variační rozpětí nám udává rozsah mezi nejnižší a nejvyšší hodnotou ve výběrovém statistickém souboru. R = M ax − M in 2.6.2
(12)
Modus
Modus můžeme definovat jako nejčastěji se vyskytující hodnota proměnné v souboru (hodnota s největší četností). Odpovídá tedy vždy vrcholu křivky rozdělení. V tabulce rozdělení četností se modus určí jednoduše z hodnoty znaku, která má největší četnost. V rozděleních četností, kde jsou jednotlivé hodnoty řazeny do tříd s třídními intervaly (tj. u intervalového rozdělení četností), mluvíme o modálním intervalu (třída s nejvyšší četností).(Bedáňová, 2013) xˆ = dm + 2.6.3
fm − fm−1 ∗h 2 ∗ fm − fm−1 − fm+1
(13)
Střední hodnota průměru
Pojem střední hodnota je obvykle používán, máme-li na mysli přesný parametr m popisující skutečný střed (průměr) základního souboru. Střední hodnota (aritmetický průměr) je definován jako součet všech hodnot náhodné proměnné xi dělený
22
2
TEORETICKÁ ČÁST
počtem hodnot. Vypočtený průměr pak udává, jaká stejná část z úhrnu hodnot sledované číselné proměnné připadá na jednu jednotku souboru. (Bedáňová, 2013) Pn
i=1
µ= 2.6.4
xi
N
(14)
Rozptyl
Rozptyl je definován jako průměrná kvadratická odchylka měření od aritmetického průměru. Při větších rozsazích není rozdíl mezi dělením číslem n nebo n − 1 významný. Dělení číslem n se použije, jestliže rozptyl počítáme pro všechny prvky. (Hendl, 2006, s. 96) Progresivita této metody spočívá ve skutečnosti, že nesrovnáváme přímo aritmetické průměry, ale rozptyly, které přesněji než aritmetický průměr charakterizují „rozptýlenostÿ nebo „blízkostÿ dat okolo aritmetického průměru.(Základy statistiky, 2013, s. 2) 2
s = 2.6.5
Pn
x2i − n¯ x2 n−1
i=1
(15)
Směrodatná odchylka
Jedná se o kvadratický průměr odchylek hodnot znaku od jejich aritmetického průměru. Jedná se o odmocninu z rozptylu a vrací míru rozptýlenosti od měřítka původních dat. (Hendl, 2006, s. 96) √ (16) s = s2 2.6.6
Variační koeficient
Jde vlastně o jakousi míru relativní variability, která zhruba udává, jakou část aritmetického průměru představuje směrodatná odchylka. Používá se někdy u porovnávání několika souboru naměřených hodnot různých veličin, které jsou udávány ve značně rozdílných jednotkách.(Pavlik, 2005, s. 15) V =
s x¯
(17)
3
IMPLEMENTACE A VÝPOČTY
3 3.1
23
Implementace a výpočty rozhraní
Z důvodu možné výměny podvozku za jiný je potřeba stanovit rozhraní, které se musí dodržet aby projekty využívající tento modul nemuseli modifikovat svůj zdrojový kod. Proto byli stanoveny dvě rozhraní tak aby vytvořili standart v komunikaci. V jednom jsou definovány názvy metod s parametry pro volání výpočtů a druhý poslouží jako šablona přepravky vypočítaných hodnot. Toto předdefinované rozhraní musí implementovat každý podle použitého typu podvozku. Do rozhraní, které bude implementovat navigaci, jsou vloženy metody getExceptedPosition, getDriveParam, addNavigationEventListener, removeNavigationEventListener, NavigationEventListener a NavigationEvent. Metoda getExceptedPosition zajišťuje výpočty při znalosti jizdních vlastností jako jsou stará pozice, natočení virtuálního kola, natočení robotu, zámýšlená ujetá vzdálenost. Z těchto údajů je možno vyvodit dopředný pohyb, protože „Vím kde jsem a znám dráhu, tak kam se dostanu?ÿ. Při implementaci pásového nebo kráčejícího podvozku by virtuální kolo zůstávalo nejspíše nulové a třída implementující toto rozhraní by parametr nebrala v potaz. Metoda getDriveParam je inverzní k getExceptedPosition, ze znalostí koncových bodů s natočením vypočítá jízdní vlastnosti, což by odpovídalo větě „Vím od kud kam, ale nevím jak.ÿ. Metody addNavigationEventListener, removeNavigationEventListener, NavigationEventListener se starají o posluchače událostí které produkuje třída při kooperaci s jinými moduly a může na ně náležitě reagovat. V případě že by došlo k havarii robotu může každý posluchač provést nějakou nezbytnou akci aby napomohl systému k zotavení. V případě navigačního modulu může třída naslouchat senzoru GPS a aktualizovat si tak pozici pro výpočty. Metoda NavigationEvent zajišťuje smysluplné vyvolání události na kterou jsou všichni posluchači schopni reagovat. Tato metoda je důležitá z hlediska časového sledu protože systém jako takový může provádět další operace a vyhodnocení nemusí na sobě záviset, proto je touto metodou upozorněn o vykonání a jak na ni zareaguje už záleží na samotném posluchači události.
3.2
návrh aplikace
S využitím frameworkového konceptu je navrhnuta aplikace, která definuje pohled na data zpracované výpočty a vytváří desktopovou aplikaci. Navržená aplikace slouží pro lokalizaci robotu v mapovém podkladu, nebo vizualizaci myšlenkového počínání. Třída painter postupuje ve vykreslování od zadních prvků směrem k pozorovateli, takže nedochází ke ztrátě naposledy vykreslených obrazových prvků a stará se o vykreslení dráhy a autíčka, které jsou definovány třídami. Protože dráhy mají společné prvky a přesto jsou odlišné bylo přistoupeno ke generalizaci a dědičnosti tříd.
24
3
IMPLEMENTACE A VÝPOČTY
Obr. 10: UML- navrhovaná aplikace v programu Dia Zdroj: vlastní
Dráhy v rodičovské třídě sdílejí startovní pozici a úhel ve kterém začínají a poté co se rozhodne o jakou dráhu se jedná se doplní v případě rovné jízdy koncové body, nebo ostatní informace nezbytné k vykreslení části kružnice na podklad. Za účelem testování bylo nutné navrhnout i pohled zpracující toto vykreslení aby mohla být ověřena funkčnost zdrojového kódu. Pohled jako takový je definován anotací @view, ta v parametru přebírá název třídy, která se stará o zobrazení. Zbylé prvky zajišťující minimalizaci a maximalizaci pohledu včetně rámečku jsou dodány zastřešující třídou frameworku. Kromě anotací pro vykreslování bylo užito i projektu lombook pro generování metod zpřístupňujících atributy třídy a logovací šablony projektu „log4jÿ díky kterému je možno nezávisle na použitém systému zaznamenávat informace a události do souborů pro pozdější zpracování. Pohled můžeme rozdělit do tří částí podle návrhu na obrázku 11 na část informativní, vykreslovací a zadávací. V informativní části se promítají spočítané informace, v jednotkách SI. Jak si můžete povšimnout na návrhu (obrázek 10), většina použitých datových typů je double z důvodu zaokrouhlování při konverzi formátů a velkého číselného rozsahu. Prostřední část slouží pro samotné vykreslování pohybů, zde bychom měli odlišit souřadný systém robotu a podkladu. Samotnou reprezentaci autíčka tedy představují osy X a Y s naznačením přední a zadní nápravy ke kterým se vztahují veškeré výpočty.
3.2
návrh aplikace
25
Obr. 11: Návrh grafického zobrazení výpočtů v programu pencil Zdroj: vlastní
Poslední částí je příkazová řádka, která zastupuje dummy třídu vyššího software a zprostředkovává komunikaci se třídou a uživatelem. V příkazové řádce je definováno šest příkazů pro práci. • GO - přebere jako parametry natočení kola a zamýšlenou vzdálenost pro výpočet dopředného budoucího pohybu dle definice na straně 16 • CLEAR - se větví na ALL smazání všech doposud provedených příkazů a LAST smazání toho posledního • SET - vezme parametry polohy a natočení a uloží je pro výpočty • HERE - dosadí parametry do zpětné úlohy definované na straně 17 • EXIT - zajistí korektní ukončení pohledu a programu zároveň • HELP - vytvoří popup okno se seznamem příkazů a stručnou nápovědou k použití Příkazy jsou konečné a jestli-že uživatel zadá neplatnou kombinaci nebo parametry které se špatně zpracují, vyskočí na help line „BAD commandÿ a příkazový řádek se vyčistí pro nové zadání. Příkaz po odeslání programu klávesou enter se uloží do historie a její samotné procházení se provádí šipkami nahoru a dolů. Historie se uchovává pouze po dobu běhu programu, protože příkazy se dále nijak nezpracovávají. Tento typ zadávání příkazu jde použít i jako ruční ovládání robotu například pomocí vzdálené plochy a sítě ad-hoc. Výsledná implementace modulu je znázorněná na obrázku 12, kde je v samotném okně již vykresleno několik ukázkových pohybů. Framework je dle obrázku definován pohledem na zaznamenané logy za běhu programu a třídou navigační matematiky, která je popsána výše.
26
3
IMPLEMENTACE A VÝPOČTY
Obr. 12: Modul navigace v prostředí frameworku Zdroj: vlastní
3.3
Práce s podvozkem a jeho testování
Fyzický podvozek je tvořen z plastového dálkově řízeného terénního modelu auta s kovovými doplňky. Tento podvozek disponuje přední řízenou nápravou a náhonem na všechny čtyři kola. Řízení přední nápravy je zajištěno servomotorem a táhly poskládanými do ackermanova principu řízení. Z důvodu dodržení geometrie byli táhla seřízena před měřením pouze jednou podle rovnic 2,3,4, tak aby jsme zajistili rovnoměrné podmínky měření pro jízdy vpřed. Samotné měření probíhalo až po zhotovení odometrických senzorů které zajišťují odečet pootočení kola a v případě signalizace již ujeté vzdálenosti podvozek zastaví. Tyto senzory jsou umístěny na přední nápravě. Proto bylo s měřením nutné počkat až po ověření funkčnosti odometrie a softwaru ovládajícího podvozek. Jednou ze špatných vlastností osazení odometrických senzorů na ackermanův podvozek je velký rozdíl hodnot při průjezdu zatáčkou, čímž se nedodrží vzdálenost přesných pojezdů. Pro zhodnocení správnosti výpočtů bylo provedeno pět měření po padesáti vzorcích. Každý vzorek obsahuje dva páry souřadnic X a Y. Takto stanovené souřadnice jsou vztažené ke skutečné konstrukci robotu a vytyčeným bodům na podvozku za pomocí tetrixové stavebnice doplněné merkurovými díly. Každý pokus začínal na pozici 0,0 s 0 natočením a pro jeho vyhodnocení byl použit svinovací metr a nalepená matice z elektrikářské černé pásky na PVC podložce. Průběhy měření jsou vizualizovány v prostředí octave kdy se naměřená data převedla do csv souboru a vykreslila na plátno, viz přílohy na obrazcích 14,15,16,17,18. Už jen z předběžného pohledu na data je jasné jak se projevují nepřesnosti v řízení i když před samotným měřením byla provedena korekce táhel řízení. Z naměřených souřadnic je dobré zjistit i natočení podvozku v koncové poloze což se provede pomocí vektorových výpočtů a Pythagorovy věty. Matematicky se obvykle vektor zapisuje pomoci nějakého písmene (nejčastěji u nebo v). Velikost
3.3
27
Práce s podvozkem a jeho testování
vektoru je poměrně jednoduchá, rovná se délce úsečky, tvořící vektor viz rovnice 18. u = |AB| = B − A
(18)
Když už známe souřadnice vektorů, můžeme snadno vypočíst jejich velikost. Podle Pythagorovy věty docela snadno odvodíme, že velikost vektoru o souřadnicích (u1 , u2 ) v rovině je podle rovnice 19. |u| =
q
u21 + u22
(19)
Nulový vektor 0 je každý vektor, který má velikost nula.(Vektory, 2006) Při znalostí dvou bodů v rovině můžeme určit i ten třetí tak že použijeme y-složku prvního a x-složku druhého tím nám vznikne třetí bod pravoúhlého trojúhelníku a můžeme vypočítat jak odvěsny s přeponou tak i vnitřní úhly, protože součet vnitřních úhlů v trojúhelníku se rovná 180. ω = arcsin(
v u π ) 180
(20)
Pro Statistický výpočet použijeme tabulkového editoru. V něm si najdeme hledané funkce a jejich výpočty aplikujeme na měřená data. Výsledný výstup můžeme posoudit ve vybrané jízdě v následujícím textu a všechna měření i s výsledky k nim jsou uvedeny v příloze. Tab. 1: vypočítané statistické veličiny pro jízdu rovně
X [cm] hodnota/veličina aritmetický průměr -0.5 rozptyl 2.0 směrodatná odchylka 1.4 variační rozpětí 11.8 variační koeficient -307.5 modus 0
Y [cm]
X’ [cm]
Y’ [cm]
ω [◦ ]
148.8 1.3 1.1 9.2 0.8 149.0
-1.9 1.1 1.0 7.7 -53.7 -1.5
102.8 1.3 1.1 9.2 1.1 103.0
2.27 1.08 1.04 5.34 45.84 2.49
Z hodnot v ukázkové tabulce 1 můžeme vyčíst vlastnosti pro jízdu rovně. Zde při jízdě rovně můžeme předpokládat největší projevy špatně seřízeného mechanismu táhel, kdy nepřesně natočené kolo se smýká a stáčí celý podvozek. Jednou z možných příčin stáčení podvozku je i tření odometrických senzorů, které jsou založeny na principu prosvětlování potištěné folie a odečítání dílků nebo již opotřebených ozubených koleček v diferenciálech nápravy. Statistické ukazatele jako aritmetický průměr nám vypovídají o tom, že autíčko jezdí i při jízdě rovně mírným obloučkem doprava a střed všech jízd pro zadní bod je [-1.9,102.8] z čehož se dá vyvozovat přejetí vytyčené trasy. U předního bodu v
28
3
IMPLEMENTACE A VÝPOČTY
porovnání se zadním je mírný posun doprava [-0.5,148.8] z čehož vychází otočení podvozku. Vzorečkem bylo dopočítáno otočení robotu na základě souřadnic. Prů. měrné otočení robotu vychází ω = 2.27 stupňů doprava. Variační rozpětí pro přední a zadní body definuje obdélník do kterého daná část podvozku dojela. Tento ukazatel je tvořen z minima a maxima, proto obsahuje 100 % naměřených hodnot a moc přesně nevypovídá o tom, jestli podvozek v daném obdélníku dojíždí spíše k nějaké straně či je přesně uprostřed. Z provedených měření můžeme s jistotou konstatovat pohyb podvozku s chybovým zatížením podle modelu. Jestliže variační rozpětí podělíme dvěma a výsledek přičteme nebo odečteme k aritmetickému průměru, dostaneme interval, kam podvozek s jistotou dojel. V našem případě pro přední nápravu se jedná o obdélník s délkami stran 11.8 a 9.2 cm intervalově můžeme tvrdit, že měření se nacházejí v X< −6.4, 5.4 >, Y < 144.2, 153.4 >. Zadní nápravu tvoří taktéž obdélník o stranách 7.7 a 9.2 cm v intervalech X 0 < −5.8, 1.9 >, Y 0 < 98.2, 107.4 >. U zadní nápravy se dalo očekávat menší rozpětí v X složce odůvodněné vlečením nápravy za přední a nemožnosti otáčení kol. Rozptyl je hodnota charakterizující blízkost dat ve výběrovém statistickém souboru. Prakticky řečeno čím nižší hodnota rozptylu tím jsou si data podobnější. Jestliže by nastala ideální situace a rozptyl byl nulový, lze potvrdit rovnost bodů měření, kde měření n1 až nn jsou si rovny. V měření ale žádný takovýto úkaz nenastal. Proto je nutné vyvodit závěr konstatující průměrnou vzdálenost bodů od sebe v centimetrech. Z naměřených dat se potvrzuje hypotéza projevu špatného seřízení táhel mechanismu nebo smýkání některého z kol. V porovnání rozptylu s ostatními měřeními je zřejmé, že největší rozptýlenost vlastní i jízda doprava. Tato nepřesnost může být způsobena technickým řešením konstrukce odometrie. Víčko zakrývající měřící člen je otáčené společně s táhly a celým závěsem viz obrázek 21. Při otočení kola na maximální doraz vpravo zde můžeme vidět nedostatky v důsledku špatně uchyceného kabelu z měřícího členu. Tento kabel se při otáčení skřípe a tím brání nápravě se otočit při měření stejným směrem. Směrodatná odchylka v tabulce vypovídá o intervalu od aritmetického průměru ve kterém se nachází určitá množina hodnot. Jestliže je variační rozpětí pro osu X 11.8 cm tedy 100 % výběrového statistického souboru jízd, můžeme dopočítat že 1 % = 0.118 cm. Prostým vynásobením směrodatné odchylky získáme procentuální vyjádření pravděpodobnosti výskytu bodu právě v intervalu směrodatné odchylky. Výsledkem tedy dostaneme 16.8 % pravděpodobnost výskytu v intervalu < µ − s, µ >. Protože autíčko je na pravé straně obdélníku, použijeme k vycentrování pravděpodobnosti osovou souměrnost podle osy Y, můžeme brat v úvahu velikost odchylky v okolí aritmetického průměru a pravděpodobnosti sečíst. Pravděpodobnost s rostoucí vzdáleností od aritmetického průměru v intervalech roste než dosáhne měření krajní hranice jevu jistého. Intervaly jsou dány směrodatnou odchylkou a jejími násobky. Po dosáhnutí 100% pravděpodobnosti můžeme tvrdit že se podvozek někam ubírá, ale s jistou pravděpodobností např. již zmíněných 16.8 %, můžeme potvrdit dojetí autíčka při vzdálenosti 1 m do intervalu < µ − s, µ >.
3.4
Porovnaní modelu s reálnými daty
29
Modus definuje nejčetnější hodnotu ve výběrovém souboru a tedy i maximální hodnotu gausovy křivky. Právě tento ukazatel napomáhá odhalit, zda v souboru nedošlo k několika extrémním hodnotám, které by posunuly aritmetický průměr od středu gausovy křivky. Protože zkoumáme, zda změřené nepřesnosti jsou v námi určených tolerancích a zda autíčko je schopno podle výpočtů ujet souvislejší celky. Variační koeficient ukazuje míru variability mezi jízdami, protože každá jízda byla jiným směrem s jinou odchylkou, použijeme pro srovnání pravě tento ukazatel. Výsledky tohoto ukazatele jsou v procentech a pak li že je výsledek větší 50 % můžeme hovořit o nesourodosti. Tento ukazatel nám potvrzuje nesourodost v jízdách rovně a doprava což může být zapříčiněno technickými problémy s podvozkem. Dále tento ukazatel vyjadřuje procentuální velikost směrodatné odchylku oproti průměru a tím že jízda rovně se pohybuje v rovině X okolo nuly vyjde ukazatel nepřiměřeně vysoký. Jak je z tabulky patrné ukázková jízda rovně se odchyluje od vypočítaných souřadnic ve vzdálenosti jednotek centimetrů. V porovnání se skutečnými rozměry šířky povrchu vozovky metr a více, je tato odchylka téměř zanedbatelná. Význam jí můžeme přikládat v okamžiku skládání primitiv a delší souvislé jízdy. V případě jízdy rovně se jedná o chybu kumulativní, ta se může na větších vzdálenostech kompenzovat nebo sčítat. Podle tabulky 1 lze vyvodit nepřesnost na 10 metrech v intervalu < −20, 20 > centimetrů X-ové složky za předpokladu jízdy po rovině v malých rychlostech. Důležitou myšlenkou v pohybu robotu je i skutečnost, že robot po ujeté vzdálenosti kdy se nepřesnosti nasčítají, bude muset resetovat svoji pozici v mapovém software. Z výše vyvozených závěrů je zřejmé že robot už po deseti jízdách vlastní nejistotu ve výpočtech větší jak 40 centimetrů což při šířce cesty 1 metr může vést ke sjetí z vozovky. Takto nasbírané nepřesnosti lze kompenzovat GPS modulem, který po definovaném počtu jízd nebo ujeté vzdálenosti, pozici pro výpočty aktualizuje. Ulohu aktualizace souřadnic je z důvodu modulárnosti již přenechán vyššímu software, který jak již bylo zmíněno výše má na starosti ovládání robotu a jeho periferií. Z obrázku 13, který je vykreslením dat jízdy rovně lze patrně vidět světle modrou barvou provedená měření. Ve vykreslených měřeních je i zaznačen matematický model černou barvou. a statistické ukazatele jako aritmetický průměr červenou barvou. Červeně značená „Xÿ nesou dvourozměrné hodnoty referenčních bodů robotu viz obrázek 20. Vykreslený obdélník znázorňuje jednu směrodatnou odchylku na každou stranu od průměru charakterizující 33.7% dojezd podvozku složky X.
3.4
Porovnaní modelu s reálnými daty
Jestliže porovnáme zadní referenční bod a otočení robotu s modelem, viz tabulka 2, dostaneme rozdíl v představách robotu o skutečné poloze, která je mírně odlišná od skutečnosti. Tato skutečnost, že podvozek není schopen docílit požadovaného natočení a souřadnic současně, je způsobená setrvačností robotu při brzdění. Po
30
3
IMPLEMENTACE A VÝPOČTY
Obr. 13: Jízda rovně v prostředí octave (přiblížená) Zdroj: vlastní
ujetí vytyčené vzdálenosti robot reaguje na odometrické senzory brzděním a tím, než uvede vozidlo do klidu, je způsobeno rozdílné natočení modelu a skutečnosti. Kompenzace rozdílného natočení v koncových polohách modelu a fyzického vozidla je aktualizována kompasem, který je nesen společně s GPS senzorem na robotu. Samotnou obsluhu kompasu řeší modul podvozku, který je společně s odometrickými snímači připojen k jednotce arduino. Sběr a následné vyhodnocení již opět přebírá vyšší software, čímž by se měla docílit plná kontrola nad moduly a periferiemi robotu. Tab. 2: porovnání modelu s aritmetickým průměrem
Skutečnost průměr zadního ref. bodu [X, Y ] Doleva [32,75] Půlka doleva [27,90] Rovně [2,103] Půlka doprava [27,81] Doprava [33,72] Jízda
Model
ω
ϕ
ω
ϕ
62◦ 42◦ 2◦ 50◦ 72◦
-0.53 rad -0.26 rad 0 rad 0.26 rad 0.53 rad
50◦ 33◦ 0◦ 32◦ 50◦
-0.54 rad -0.30 rad 0 rad 0.31 rad 0.54 rad
4
4
ZÁVĚR A ZHODNOCENí
31
Závěr a zhodnocení
Záměrem práce bylo sestavit modul aplikace pro autonomní řízení robotu Mendelovy univerzity. Tento cíl byl úspěšně splněn a je popisován v práci samotné. Modul podle teoretického základu aplikuje matematické vztahy na použitý modelářský podvozek v předem domluveném programovacím jazyce a prostředí. Základní části modulu tvoří rozhraní, které stanovuje standarty v používání modulu a jeho aplikace na modelářský podvozek. Takto definované rozhraní poskytuje informace dalším kooperujícím modulům k samotnému řízení. V aplikační části byla kromě modelu navržena i zástupná logika vyššího software implementující rozhodování. Toto rozhodování je delegováno na uživatele pomocí příkazového řádku s množinou příkazů využívajících číselný parametrický vstup, jako komunikační jazyk. Po zadání syntakticky správné kombinace příkazů a parametrů se výsledné dráhy v programu promítají na připraveném plátně k možnému dalšímu zpracování. K vykreslování pohybů bylo přistoupeno metodou posouvání plátna, takže výsledná dráha se vždy spočítá pro první matematický kvadrant a překlopí se podle znamének parametrů. Důležité je si uvědomit že výstup může být promítnut ke zpětné kontrole myšlení robotu i lidem sestavující vyšší software a z toho důvodu bylo přistoupeno k implementaci vizualizace drah. Takto navržená aplikace je otevřená dalším úpravám, které by mohli zefektivnit odhalování logických chyb v programu vyššího software. Například se může jednat o vykreslení mapového podkladu pod dráhy nebo vytvoření elementární fronty úloh z prohledaného grafu cest a křižovatek. Takto vytvořené úlohy nemusejí být konečné a směrodatné protože fyzická cesta ne vždy musí odpovídat modelu. S fyzickým podvozkem bylo provedeno pět měření pro jízdy vpřed. Jízda vzad je vynechaná záměrně z konstrukčních důvodů viz obrázek 19. Hardwarové řešení modulu kamerového systému je zkonstruováno tak, aby kamery staticky zabíraly cestu před mobilním robotem a mohly poskytovat informaci o tom zda se robot nachází uprostřed nalezené cesty. Couvání po cestě je v modulu navigace implementováno i přes neschopnost korekce kamerami. Operace couvání bude tedy s možným rizikem prováděna naslepo pouze z odhadu vyššího software. Z naměřených dat jasně vyplívají odchylky od modelu pohybů. V provedených pěti měřeních o padesáti vzorcích v jednom směru jízdy se vozidlo vychyluje od průměrných souřadnic v řádech jednotek centimetrů. a proto můžeme tvrdit, že na pevné podložce se autíčko bude přibližovat modelu. Na sypké podložce může docházet k prokluzu, smýkání nebo boření kol do podložky. K eliminaci chyb matematické lokalizace mobilní robot nese kompas a senzor GPS (Global Positioning System). Téma této práce úzce souvisí se soutěží Robotour, která se koná v prostředí známých evropských parků. Mobilní robot má za úkol autonomně projet parkovými cestičkami k cíli a při tom uvést náklad představující pětilitrový soudek. Každý ročník přináší něco nového, aby soutěž zůstala atraktivní, a koná se každý rok na podzim.
32
4
ZÁVĚR A ZHODNOCENí
Tato práce bude ověřena v testovacích jízdách Arboretem Mendelovy univerzity a i v soutěžích robotů, kteří ke svojí přepravě využívají automobilový podvozek.
5
5
33
POUŽITÁ LITERATURA
Použitá literatura
a Karel Čapek řekl: Budiž robot. To si piš redakční blog [online]. 2011, 02.02.2011 [cit. 2013-05-10]. Dostupné z: http://blog.abchistory.cz/cl103-a-karel-capekrekl–budiz-robot.htm. BEDÁŇOVÁ, I. Popisné charakteristiky statistických souborů. Statistika a výpočetní technika: Multimediální výukový text pro studenty VFU Brno [online]. [cit. 2013-04-02]. Dostupné z: http://cit.vfu.cz/statpotr/POTR/Teorie/Predn1/strednih.htm. BURNHILL, Darren. Ackerman Steering Principle: Steering Arm Angles. Rctek [online]. 2001, 2009 [cit. 2012-11-12]. Dostupné z: http://www.rctek.com/technical/handling/ackerman steering principle.html. ČERVINKOVÁ, Petra. Odmaturuj z matematiky 1. 4. vyd. Brno: DIDAKTIS, 2007. ISBN 978-80-7358-102-2. Eclipse. Wikipedie [online]. [cit. 2013-05-11]. Dostupné z: http://cs.wikipedia.org/wiki/Eclipse %28v%C3%BDvojov%C3%A9 prost%C5 %99ed%C3%AD%29. Framework. Wikipedie [online]. [cit. http://cs.wikipedia.org/wiki/Framework.
2013-05-08].
Dostupné
z:
HENDL, Jan. Přehled statistických metod zpracování dat: analýza a metaanalýza dat. Vyd. 2., opr. Praha: Portál, 2006. ISBN 80-7367-123-9. . MAJDA, David. Knihovny vs. frameworky. David Majda – osobní stránky [online]. 2009, 14. 10. [cit. 2013-05-08]. Dostupné z: http://majda.cz/zapisnik/265 . PASEKA, Tomáš. Návrh a realizace autonomního robotu pro kategorii IEEE Micromouse [online]. Brno, 2006 [cit. 2012-11-12]. Dostupné z: robotika.yweb.sk/skola/AVR/avr%20projekty/Paseka.pdf. Diplomová práce. VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Vedoucí práce Ing. Tomáš Marada, Ph.D. . PAVLÍK, J. Aplikovaná Statistika. 1. vyd. Praha: VŠCHT, 2005. ISBN 80-7080569-2. . Podvozek. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001-2012, 10. 2. 2012 [cit. 2012-11-12]. Dostupné z: http://cs.wikipedia.org/wiki/Podvozek. Pravoúhlý trojúhelník: Základní vlastnosti. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001-2013, 9. 3. 2013 v 12:10 [cit. 2013-03-20]. Dostupné z: http://cs.wikipedia.org/wiki/Pravo%C3%BAhl%C3%BD troj%C3%BAheln %C3%ADk.
34
5
POUŽITÁ LITERATURA
Vektory. Matematika polopatě [online]. 2006 [cit. 2013-04-23]. Dostupné z: http://www.matweb.cz/vektory#gsc.tab=0. VĚCHET, S.; KREJSA, J.; ONDROUŠEK, V.; The Development of Autonomous Racing Robot Bender, článek v časopise Engineering Mechanics, Brno, Engineering Academy of the Czech Republic, Vol.14, No.4, 2007, pp. 277-287, ISSN: 1802-1484. . VODRÁŽKA, JAKUB. NÁVRH KONSTRUKCE MOBILNÍHO AUTONOMNÍHO ROBOTU [online]. Brno, 2010 [cit. 2012-11-12]. Dostupné DIPLOMOVÁ z: http://autnt.fme.vutbr.cz/szz/2010/DP Vodrazka.pdf. PRÁCE. VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Vedoucí práce ING. STANISLAV VĚCHET, PH.D. . Robot. Wikipedie [online]. [cit. http://cs.wikipedia.org/wiki/Robot.
2013-05-10].
Dostupné
z:
Statistický soubor s jedním argumentem: Zpracování rozsáhlého statistického souboru. VYSOKÁ ŠKOLa BÁŇSKÁ - TECHNICKÁ UNIVERZITa OSTRAVA. HomeN - Home Server with Novell Open Enterprise Server 2: Domovské WWW stránky uživatelů [online]. [cit. 2013-04-08]. Dostupné z: http://homen.vsb.cz/ oti73/cdpast1/KAP07/KAP07.htm. WYSIWYG. Wikipedie [online]. [cit. http://cs.wikipedia.org/wiki/WYSIWYG. .
2013-04-19].
Dostupné
z:
Welcome to Apache Maven. Apache Maven Project [online]. 2002, 2013-05-08 [cit. 2013-05-12]. Dostupné z: http://maven.apache.org/ . Základní pojmy a definice: Řízení. JIHOČESKÁ UNIVERZITA. EAmos [online]. 2002 [cit. 2013-05-11]. Dostupné z: http://eamos.pf.jcu.cz/amos/kat fyz/externi/kat fyz 5377/Kap01/Kap 01.htm . ZÁKLADY STATISTIKY [online]. 59 s. [cit. 08.04.2013]. Dostupné z: http://files.cfkr.eu/200000080-0f29110223/ZAKLADYstatistikySKRIPTA2.pdf.
6
6
SEZNAMY
35
Seznamy
Seznam obrázků Obr. 1: Řízení pomocí paralelní řídící tyče
13
Obr. 2: Ackermanův princip řízení
13
Obr. 3: Různý úhel natočení kol při průjezdu zatáčkou
13
Obr. 4: Schématický nákres tříkolového podvozku
14
Obr. 5: Model tříkolového podvozku
14
Obr. 6: Schématický nákres Ackermanova podvozku
15
Obr. 7: Model Ackermanova řízení
16
Obr. 8: Schéma aplikace založené na knihovnách
18
Obr. 9: Schéma aplikace založené na frameworku
19
Obr. 10: UML- navrhovaná aplikace v programu Dia
24
Obr. 11: Návrh grafického zobrazení výpočtů v programu pencil
25
Obr. 12: Modul navigace v prostředí frameworku
26
Obr. 13: Jízda rovně v prostředí octave (přiblížená)
30
Obr. 14: Jízda doleva v prostředí octave
37
Obr. 15: Jízda na dvojnásobný rádius doleva v prostředí octave
38
Obr. 16: Jízda rovně v prostředí octave
38
Obr. 17: Jízda na dvojnásobný rádius doprava v prostředí octave
39
Obr. 18: Jízda do doprava v prostředí octave
40
Obr. 19: Konstrukce robotu bez laptopu
41
Obr. 20: Referenčí body robotu
41
Obr. 21: Konstrukce krytu odometrie
42
36
SEZNAM TABULEK
Seznam tabulek Tab. 1: vypočítané statistické veličiny pro jízdu rovně
27
Tab. 2: porovnání modelu s aritmetickým průměrem
30
Tab. 3: vypočítané statistické veličiny pro jízdu doleva
37
Tab. 4: vypočítané statistické veličiny pro jízdu půlky levého intervalu 38 Tab. 5: vypočítané statistické veličiny pro jízdu rovně
39
Tab. 6: vypočítané statistické veličiny pro jízdu půlky pravého intervalu 39 Tab. 7: vypočítané statistické veličiny pro jízdu doprava
40
7
7
37
PŘíLOHY
Přílohy
Obr. 14: Jízda doleva v prostředí octave Zdroj: vlastní
Tab. 3: vypočítané statistické veličiny pro jízdu doleva
X [cm] hodnota/veličina aritmetický průměr 73.8 rozptyl 1.0 směrodatná odchylka 1.4 variační rozpětí 7.0 variační koeficient 1.9 modus 74.0
Y [cm]
X’ [cm]
Y’ [cm]
ω [◦ ]
97.8 0.8 1.0 4.4 1.0 98.0
32.8 0.7 0.9 3.8 2.8 33.0
75.9 0.8 1.0 4.5 1.3 74.7
61.82 0.73 1.05 6.29 1.70 61.67
38
7
PŘíLOHY
Obr. 15: Jízda na dvojnásobný rádius doleva v prostředí octave Zdroj: vlastní Tab. 4: vypočítané statistické veličiny pro jízdu půlky levého intervalu
X [cm] hodnota/veličina aritmetický průměr 58.6 rozptyl 1.6 směrodatná odchylka 2.0 variační rozpětí 7.6 variační koeficient 3.4 modus 58.5
Obr. 16: Jízda rovně v prostředí octave Zdroj: vlastní
Y [cm]
X’ [cm]
Y’ [cm]
ω [◦ ]
124.3 1.3 1.6 7.5 1.3 124.6
27.2 1.1 1.5 5.5 5.4 27.0
90.1 1.4 1.8 8.6 2.0 91.0
42.60 0.98 1.26 6.12 2.95 42.73
7
39
PŘíLOHY
Tab. 5: vypočítané statistické veličiny pro jízdu rovně
X [cm] hodnota/veličina aritmetický průměr -0.5 rozptyl 2.0 směrodatná odchylka 2.7 variační rozpětí 11.8 variační koeficient -580.3 modus 0
Y [cm]
X’ [cm]
Y’ [cm]
ω [◦ ]
148.8 1.3 1.7 9.2 1.1 149.0
-1.9 1.1 1.5 7.7 -77.5 -1.5
102.8 1.3 1.7 9.2 1.6 103.0
2.27 1.08 1.33 5.34 58.60 2.40
Obr. 17: Jízda na dvojnásobný rádius doprava v prostředí octave Zdroj: vlastní
Tab. 6: vypočítané statistické veličiny pro jízdu půlky pravého intervalu
X [cm] hodnota/veličina aritmetický průměr 62.1 rozptyl 1.5 směrodatná odchylka 1.9 variační rozpětí 8.3 variační koeficient 3.0 modus 60.7
Y [cm]
X’ [cm]
Y’ [cm]
ω [◦ ]
110.7 1.1 1.3 5.3 1.8 111.2
1.4 1.1 1.4 6.0 5.1 26.6
1.9 1.5 1.9 7.6 2.3 80.0
50.57 1.01 1.26 5.09 2.49 49.45
40
7
PŘíLOHY
Obr. 18: Jízda do doprava v prostředí octave Zdroj: vlastní
Tab. 7: vypočítané statistické veličiny pro jízdu doprava
X [cm] hodnota/veličina aritmetický průměr 87.5 rozptyl 3.1 směrodatná odchylka 3.9 variační rozpětí 17.3 variační koeficient 4.9 modus 81.0
Y [cm]
X’ [cm]
Y’ [cm]
ω [◦ ]
86.5 0.9 1.1 4.6 1.3 86.0
33.6 2.4 2.9 12 8.5 29.0
72.3 1.5 1.9 8.7 2.6 73.0
72.42 2.57 3.24 14.77 4.47 75.43
7
PŘíLOHY
Obr. 19: Konstrukce robotu bez laptopu Zdroj: vlastní
Obr. 20: Referenčí body robotu Zdroj: vlastní
41
42
Obr. 21: Konstrukce krytu odometrie Zdroj: vlastní
7
PŘíLOHY