univerzita hradec králové1 1 Úvod již od pradávna je pro člověka důležité určování...

75
Univerzita Hradec Králové Fakulta informatiky a managementu Katedra informatiky a kvantitativních metod Využití herních principů při zjišťování rádiových otisků bezdrátových sítí Diplomová práce Autor: Bc. Martin Jedlička Studijní obor: Aplikovaná informatika Vedoucí práce: doc. Ing. Filip Malý, Ph.D. Hradec Králové Srpen 2016

Upload: others

Post on 02-Feb-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

Univerzita Hradec Králové

Fakulta informatiky a managementu

Katedra informatiky a kvantitativních metod

Využití herních principů při zjišťování rádiových otisků

bezdrátových sítí

Diplomová práce

Autor: Bc. Martin Jedlička Studijní obor: Aplikovaná informatika

Vedoucí práce: doc. Ing. Filip Malý, Ph.D.

Hradec Králové Srpen 2016

Page 2: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

Prohlášení:

Prohlašuji, že jsem diplomovou práci zpracoval samostatně a s použitím

uvedené literatury.

V Hradci Králové dne 15. 8. 2016 Bc. Martin Jedlička

Page 3: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

Poděkování:

Děkuji vedoucímu diplomové práce doc. Ing. Filipu Malému, Ph.D. za metodickou,

pedagogickou a odbornou pomoc a cenné rady, které mi pomohly při zpracování

diplomové práce. Poděkování patří i mým rodičům a známým, kteří mě

podporovali po celou dobu studia.

Page 4: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

Anotace

Diplomová práce se zabývá využitím mobilních zařízení pro získávání otisků

bezdrátových sítí za pomocí využití herních principů. Úvodní část práce se

zaměřuje na představení metod lokalizace. Je zde ve zkratce popsán GPS systém

a jeho funkčnost. Dále jsou v práci uvedeny způsoby, jak je možné navigovat

uživatele uvnitř budov a jaké metody k tomu lze využít. Dále jsou popsány síťové

modely, které je možné využít při stavbě komunikace. Obsahem druhé části

aplikace je vlastní řešení tohoto problému prostřednictvím Android aplikace

a využitím knihovny 2D OpenGL libGDX a aplikace Barcode Scanner, která

umožňuje čtení QR a čárových kódů. Řešení dále obsahuje webový server napsaný

v jazyce Java s frameworkem Spring MVC, pro ukládání otisků bezdrátových sítí.

Součástí těchto kapitol jsou ukázky zdrojových kódů, které souvisí

s obsahem a popis struktury aplikace. Na závěr se provádí šetření, zda se

navrhované řešení dá využít v praxi a jak je přesné. Dále se zmiňují další možnosti

rozšíření aplikace.

Annotation

Title: The use of game principles in determining the radio

fingerprint of wireless network

The diploma thesis deals with the use of mobile applications for gaining the

imprint of wireless network with the help of use of the game principles. The

opening part of the work focuses on the introduction of localization methods.

There is, briefly, described the GPS system and its functionality. Then there are

stated ways how to navigate users inside of buildings and which methods can be

used for doing so. Then there are described network models which can be used for

construction of communication. The content of the second part of the application is

a solution of this problem itself through the agency of Android application and

using 2D OpenGL libGDX library and application Barcode Scanner, which enables

reading QR and bar codes. The solution then contains web server which is written

Page 5: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

in a language Java with framework Spring MVC which is used for saving imprints of

wireless network.

As parts of this chapter there are demonstrations of source codes, which

are connected with the content and the description of application structure. Finally

there is provided a research whether the proposed solution can be used in practice

or not and how accurate it is. Next there are mentions of another possibilities of

application expansion.

Page 6: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

Obsah

1 Úvod ........................................................................................................................................................ 1

2 Metody lokalizace ............................................................................................................................. 3

2.1 Global Navitagion Satellite System .................................................................................. 3

2.2 Indoor navigace ........................................................................................................................ 5

3 Principy určení polohy uvnitř budovy ................................................................................... 7

3.1 Technologie pro určení polohy uvnitř budovy .......................................................... 7

3.1.1 Wi-Fi/ WLAN..................................................................................................................... 7

3.1.2 Bluetooth.......................................................................................................................... 10

3.1.3 RFID .................................................................................................................................... 12

3.1.4 Telefonní sítě mobilních operátorů .................................................................... 14

3.1.5 Optické senzory ............................................................................................................ 16

3.2 Metody a algoritmy pro určování polohy .................................................................. 18

3.2.1 Metoda nejbližšího přístupového bodu ............................................................ 18

3.2.2 Metoda trilaterace ....................................................................................................... 18

3.2.3 Time Of Arrival (TOA) ............................................................................................... 20

3.2.4 Time Difference Of Arrival (TDOA) ..................................................................... 20

3.2.5 Metoda „otisků signálů“ ............................................................................................ 21

4 Síťová komunikace a síťové modely .................................................................................... 24

4.1 Síťová architektura .............................................................................................................. 24

4.1.1 Model klient-server ..................................................................................................... 25

4.1.2 Peer-to-peer ................................................................................................................... 27

5 Analýza ............................................................................................................................................... 28

5.1 Požadavky na aplikaci ......................................................................................................... 28

5.2 Použité technologie .............................................................................................................. 29

5.2.1 Java ...................................................................................................................................... 29

Page 7: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

5.2.2 Android ............................................................................................................................. 29

5.2.3 OpenGL ES 2.0/3.1 ...................................................................................................... 30

5.2.4 libGDX ................................................................................................................................ 31

5.2.5 Barcode Scanner ........................................................................................................... 31

5.2.6 Spring Framework....................................................................................................... 32

5.2.7 Hibernate ......................................................................................................................... 32

5.2.8 MySQL ................................................................................................................................ 32

5.2.9 IntelliJ IDEA .................................................................................................................... 33

5.2.10 Git ........................................................................................................................................ 33

5.2.11 QR kód ............................................................................................................................... 33

5.2.12 Tiled Map Editor ........................................................................................................... 33

6 Implementace .................................................................................................................................. 35

6.1 Klientská část .......................................................................................................................... 35

6.1.1 Struktura aplikace ....................................................................................................... 35

6.1.2 Ukázka implementace klientské části ................................................................ 39

6.2 Serverová část......................................................................................................................... 44

6.2.1 Struktura aplikace ....................................................................................................... 44

6.2.2 Ukázka implementace serverové části .............................................................. 46

7 Shrnutí výsledků a testování.................................................................................................... 50

8 Závěr .................................................................................................................................................... 57

9 Seznam použité literatury ......................................................................................................... 59

10 Seznam obrázků ......................................................................................................................... 64

11 Seznam tabulek ........................................................................................................................... 65

12 Seznam rovnic ............................................................................................................................. 66

Příloha č.1 - CD.......................................................................................................................................... 67

Page 8: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

1

1 Úvod

Již od pradávna je pro člověka důležité určování polohy, orientace a plánování

trasy z počátečního bodu A do koncového bodu B. Historie map sahá hluboko do

minulosti, již první mapa byla vytvořena 14 tisíc let před naším letopočtem. Pro

vytvoření této dochované mapy bylo použito kamene a do něj vyryté čáry, které

měly znázorňovat důležité věci v okolí. Do prvních map se lidé snažili zaznamenat

toky řek, hory, jeskyně, vhodná místa pro pastvu a lov. [1] S poznáváním světa se

stávaly mapy čím dál důležitější a obsahovaly více informací, jako jsou například

kontinenty, obchodní trasy, cesty a města.

Mezi první přístroje pro určování polohy a orientace patří kompas, který

používali námořníci na svých plavbách. S nástupem informačních technologií tuto

úlohu částečně převzaly počítače, které s rozvojem internetu v 70. letech minulého

století umožňovaly po celém světě přístup k mapám.

V 70. letech minulého století byl zahájen vývoj systému GPS (Global

Positioning Systém), který znamenal průlom v určování pozice. Od jeho uvedení do

provozu v 80. letech navigaci plně převzaly počítače a to od distribuce až po

samotné vypočítávání tras. [2] Rozvoj chytrých telefonů, tato zařízení obsahují

různé moduly (například GPS, Wi-Fi), zapříčinil, že i tato zařízení mohou být

využita k navigaci a jejich hlavní výhodou je všudypřítomnost.

Aplikace pro mobilní zařízení (telefony a tablety) zažívají v současnosti

obrovského rozmachu. Úspěch aplikací je založen na vývoji chytrých telefonů

(smartphonů), které přinesly do informačních a komunikačních technologií

obrovskou revoluci a umožnily lidem pohodlně využívat jedno zařízení pro více

účelů. Pomocí dotykového displeje jsou uživateli pohodlně zobrazena data a dále

display umožňuje jednoduše ovládat zařízení pomocí dotyků a gest. Každé chytré

mobilní zařízení využívá operační systém a aplikační rozhraní, díky kterému si

každý uživatel může stáhnout jakoukoliv aplikaci, kterou se dá rozšířit

funkcionalita zařízení a přizpůsobit si ho podle svých představ.

Roku 1992 firma IBM představila svůj telefon Simon, jenž je prvním

chytrým telefonem, který se na trhu objevil roku 1994. Zařízení disponovalo 4,6“

černobílým dotykovým displejem. Umělo faxovat, přijímat a odesílat e-mail,

Page 9: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

2

v zařízení se například nacházely aplikace jako kalkulačka, světový čas, adresář,

kalendář, poznámky a další [3].

V roce 2007 představila firma Apple telefon iPhone, který ovlivnil svět

chytrých zařízení. Nejednalo se přímo o chytrý telefon, protože se do něj zatím

nedaly instalovat aplikace, ale svým uživatelským prostředím zcela jasně definoval

směr, kterým se vydaly všechny chytré telefony v dalších letech [4]. Téhož roku

vstoupila na trh s mobilními zařízeními společnost Google, která představila

operační systém Android. Jedním z mnoha faktorů rychlého rozšíření následujícího

operačního systému mezi vývojáře a uživatele je, že byl uvolněn jako open source.

Představení chytrých telefonů znamenalo velký posun ve světě mobilních

zařízení. Do té doby bylo nemožné, aby lidé mohli být 24 hodin denně připojeni

k internetu, využívat jeho možnosti a protokoly (například SMTP, FTP atd.)

a přitom být schopni se pohybovat kdekoliv.

Zajímavostí je porovnání růstu mobilních zařízení a počítačů v posledních

letech. Z článku na webu Smart Insights [5] lze vyčíst, že podíl chytrých mobilních

zařízení roste od roku 2003 vyšším tempem než podíl počítačů. Z tohoto důvodu

firmy investují velké množství peněz do mobilních aplikací.

V první části se diplomová práce bude zabývat průzkumem různých

způsobů navigace v budově, přičemž zvolení vhodné metody významně určuje

přesnost určování polohy. Dále zde budou popsány různé typy síťových modelů,

které jsou nezbytné pro některé způsoby orientace.

Cílem práce je čtenáři poskytnout přehled o možných způsobech navigování

v budovách. V práci budou popsány jednotlivé způsoby, jejich klady a zápory.

Praktická část si klade za cíl vytvoření mobilní hry pro platformu Android. Hra je

vytvořena z důvodu sběru otisků bezdrátových sítí a jejich ukládání na server. Dále

zde budou popsány jednotlivé použité komponenty a popis implementovaného

řešení.

Page 10: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

3

2 Metody lokalizace

Určování pozice a navigování pomocí GPS systému je již běžnou součástí lidského

života. Mnoho lidí, ať už se jedná o řidiče, cyklisty nebo turisty, si neumí představit

cestování bez této služby. Problém nastává ve vnitřních prostorách budov, kde je

systém GPS nefunkční. GPS systém spadá do Global Navigation Satellite

System (GNSS).

2.1 Global Navitagion Satellite System

GNSS jsou systémy, mezi které patří již výše zmíněný GPS systém, který je

spravovaný vládou USA, dále sem spadá ruský systém GLONASS1, evropský projekt

GALILEO.

Tyto výše uvedené satelitní systémy využívají ke své činnosti specifický

hardware – satelity, které se pohybují ve vzdálenosti asi 20 000km po eliptické

dráze kolem planety Země a díky nim se dá určit zeměpisná poloha přijímače

kdekoliv na světě.

V současné době obíhá planetu Zemi minimálně 24 funkčních družic

systému GPS. Aby družice mohly být funkční, využívají solární energii. Systém je

tvořen třemi segmenty. Kosmickým, řídícím a uživatelským segmentem. Tyto

segmenty musí mezi sebou tvořit „trojúhelník“ a musí být mezi nimi zajištěná

viditelnost. Pro určení polohy musí být dostupné všechny tři segmenty, jinak není

možné určit pozici. [6]

Pro stanovení polohy pomocí GPS zařízení existují dva principy. Prvním

z nich je princip časového intervalu, kde se poloha stanovuje pomocí vzdálenosti

mezi vysílačem a přijímačem pomocí časového intervalu mezi vysláním a přijetím

signálu. Signál tedy obsahuje informace, ze které družice byl vyslán a v jaký čas.

Princip stanovení polohy je zachycen na obrázku 1. Rovnice 1 zachycuje

zjednodušený výpočet, který probíhá při každé komunikaci mezi přijímačem

a satelitem. Rovnice 2 popisuje vzdálenost přijímače a satelitu.

1 Global Orbiting Navigation Satellite System

Page 11: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

4

Obrázek 1: Princip stanovení polohy změřením časového intervalu [6]

Rovnice 1 [6]

di – vzdálenost antény přijímače od i-tého satelitu

x, y, z – určované souřadnice

xs ,ys ,zs – souřadnice satelitu, které se získají z vysílaných údajů

o drahách satelitu daného systému

PRS – pseudovzdálenost mezi přijímačem a satelitem

T – časová chyba přijímače

ES – součet všech chyb systému satelitní navigace

Rovnice 2 [6]

tdi – doba mezi vysláním signálu ze satelitu do přijímače

c – rychlost šíření elektromagnetických vln

Druhým způsobem určení polohy je metoda protínání imaginárních kružnic,

takzvaná metoda trilaterace. Středy těchto kružnic se nacházejí ve středech družic

a poloměr kružnice je dán vzdáleností přístroje od družice. Obrázek 2 znázorňuje

princip určení polohy pomocí délek tří bodů a jejich protnutím.

Page 12: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

5

Obrázek 2: Princip stanovení polohy změřením délek [6]

2.2 Indoor navigace

Již mnoha lidem se stalo, že se ztratili ve velkých obchodních centrech či budovách.

Ze získaných statistických údajů se dá zjistit, že člověk denně průměrně tráví přes

80% svého času v budovách. Proto je lákavé se nechat navádět nebo si nechat určit

polohu i uvnitř v budově. Tyto služby nám nabízí systém IPS2.

Vnitřní polohový systém (IPS) je tedy obdobou GPS navigace, je využitelný

na místech (v budovách), kde nejsou funkční klasické GPS technologie. Z tohoto

důvodu je tato technologie často označována jako nová generace navigace, která

má využití v budovách. IPS není jen o zjištění polohy, pokud se v budově

nacházíme. Za hlavní cíl si klade orientaci v samotných budovách. Hlavní využití je

v rozlehlých komplexech, jako jsou nemocnice, výstaviště, letiště a nákupní centra.

Fungování systému pro zjištění aktuální pozice může být založeno na

několika způsobech. Jedná se o technologie založené na rádiových frekvencích,

které byly důkladně prozkoumány. Do rádiových frekvencí spadá například

Wireless Local Area Network (WLAN, také znám pod názvem Wi-Fi), sítě mobilních

operátorů, Bluetooth, rádio frekvenční identifikace (RFID), ultra širokopásmové

beacons, lasery atd. Tyto technologie dokážou dostatečně přesně určit pozici. [7]

Nejčastěji se používají technologie Wi-Fi nebo Bluetooth připojení nebo jejich

vzájemná kombinace.

Základem pro správné fungování navigace uvnitř budov je potřeba získat

mapové podklady, které nejsou součástí standardních navigací. Jedná se

2 Indoor positioning system

Page 13: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

6

o půdorysy budov, parkovišť atd. V těchto půdorysech jsou zaznamenány nejen

komunikace, jako jsou chodby, schodiště, výtahy, ale především konkrétní místa

(místnosti), ke kterým potřebuje uživatel dovést nebo se v nich orientovat.

Na vývoji jednotlivých aplikací založených na službě IPS se podílejí velké

společnosti například Google, Cisco, společnosti patřící do In-Location Alliance [8]

nebo některé menší společnosti či jednotlivci. V současné době (rok 2016) existuje

několik desítek komerčních a open-source aplikací vytvořených pro různé mobilní

platformy. Bohužel zatím tato služba není dostupná ve všech zemích. Například

z dokumentace Google [9] se můžeme dozvědět, kde jejich Google Maps podporují

navigaci v budovách.

Google Maps od verze 6.0 pro platformu Android umožňují navigování

v interiérech budov. [10] Na obrázku 3 v levé části je zobrazeno využití pouze

služby GPS. Jak můžeme vidět, podle tohoto mapového podkladu se uživatel

nemůže orientovat. Jak bylo výše uvedeno, v budově je GPS systém nepoužitelný

nebo velmi omezený, z tohoto důvodu by určování polohy uživatele bylo nepřesné

či nemožné. V pravé části obrázku můžeme vidět využití služby IPS, kde jsou

zmapována jednotlivá patra budovy. Díky této službě a jednotlivým podlažím je

možné přesně určit, kde se daný uživatel nachází. A díky tomu mu usnadnit

orientaci.

Obrázek 3: Obchod v Minneapolis v USA se službou GPS a IPS [10]

Page 14: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

7

3 Principy určení polohy uvnitř budovy

Jak již bylo výše zmíněno, pro lokalizaci v budovách je možné využít více

technologií. Některé z těchto technologií se pro určování polohy v budovách hodí

více, některé méně. Důvodů proč zvolit tyto technologie je více, ať už z vyšší

rozšířenosti či vyšší přesnosti.

3.1 Technologie pro určení polohy uvnitř budovy

V této kapitole budou popsány nejčastěji používané technologie pro určování

polohy uvnitř budov. V současné době jsou nejčastěji používány technologie Wi-Fi

a Bluetooth nebo jejich vzájemná kombinace, pomocí nichž se dá zlepšit přesnost

určování polohy.

3.1.1 Wi-Fi/ WLAN

S rozvojem internetového připojení a s následným rozvojem mobilních zařízení,

kdy v dnešní době člověk vlastní jedno či více chytrých zařízení nebo notebooků,

začal masivní rozvoj bezdrátových sítí. Na základě tohoto rozvoje začaly klesat

ceny zařízení (Routerů), které umožňují jednoduše připojit více zařízení, ať už

v domácnosti, v zaměstnání nebo v kavárně přes jednu internetovou přípojku. Díky

těmto routerům je vybudována infrastruktura, díky níž je možné navigovat

v budovách.

Wi-Fi je označení standardů založených na základě standardů IEEE3 802.11,

vyvinutých organizaci IEEE Standards Assaciations a popisující bezdrátovou

komunikaci v počítačových sítích. Standard 802.11 se dále dělí na různé verze

standardů, tyto verze jsou zachyceny v tabulce č. 1. Každá z uvedených verzí má

trochu jiné parametry. Liší se například ve frekvenci (nejčastěji se využívá 2.4GHz

nebo 5GHz), přenosové rychlosti a dosahu signálu. Nejčastěji používanými

standardy jsou 802.11g a 802.11n. [11]

3 IEEE – Institute of Electrical and Electronics Engineers

Page 15: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

8

Tabulka 1: Přehled standardů IEEE 802.11 [12]

Z tabulky č. 1 můžeme dále vyčíst, že dosah jednotlivých Wi-Fi sítí je

omezen, navíc tyto hodnoty jsou uváděny ve volném prostranství za optimálních

podmínek. Pokud se mezi routerem a koncovým zařízením vyskytne nějaká

překážka, dochází k útlumu signálu. Útlum materiálu je zachycen v tabulce č 2.

Dále odchylky v měření mohou být způsobeny elementy, jako jsou například

postavení člověka, naklonění telefonu nebo HW zařízení, v tomto případě WiFi

modulem.

Materiál Útlum signálu (dB)

Masivní dřevěné dveře 1.75" 6

Prosklené dveře 1.75"/0.5" 4

Ocelové/protipožární dveře 1.75"/2.5" 13/19

Ocelová sekvenční vrata 1.5" 11

Cihla 3.5" 6

Betonová zeď 18“ 18

Skleněné příčky 0.5" 12

Dutá příčka 4"/6" 5/9

Masivní příčka 5" 14

Mramor 2" 6

Neprůstřelné sklo 1" 10

Okna dvojitá 1" 13

Okna jednoduchá 0.5" 7

Okno vnitřní 1" 3

Bezpečnostní drátěné sklo 0.25"/1" 3/13

Tabulka 2: Útlum Wi-Fi signálu na základě materiálu [13]

Page 16: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

9

Signál též označený jako RSSI4 vysílaný z přístupového bodu neboli Wi-Fi

routeru může nabývat hodnot od 0dB do -99dB. Kde hodnota 0 znamená nejsilnější

sílu signálu. Hodnota -99 znamená, že Wi-Fi síť je nedostupná.

Wi-Fi router má v sobě několik spojených funkcí, které běžně zastává

několik různých zařízení. Jedná se například o Router a AP5. AP vysílají pomocí

všesměrových nebo směrových antén signál do okolí. Zde může docházet k útlumu,

protože větší anténa a její zisk nezvyšují její oblast pokrytí, jak si většina lidí myslí,

ale pouze její dosah. Vysílání všesměrové antény si lze představit jako „kapku“

kolmou k anténě, kde je její průměr, a tedy dosah signálu, je přímo úměrný zisku

antény. Viz obrázek č. 4. Z tohoto plyne, že při zvyšujícím průměru klesá tloušťka

této „kapky“. To znamená, pokud anténa má vyšší zisk, tak bude mít dobře pokryté

patro, na kterém se nachází vysílač, ale v ostatní patrech nebude buď žádný, nebo

velmi slabý signál. [14] Tomu se dá zabránit vhodným natočením antény, ale při

nesprávném natočení může docházet k horšímu šíření signálu.

Obrázek 4: Šíření signálu všesměrovou anténou [14]

4 RSSI – Received Signal Strength Indicator 5 AP – Access Point

Page 17: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

10

Z důvodu omezeného dosahu Wi-Fi sítí a jejich útlumům nebo výskytu více

firem vyžadujících vlastní připojení k internetu je pro rozlehlé objekty nutné

použít více Wi-Fi sítí. Pro pokrytí většího prostoru Wi-Fi sítěmi ve stejném

frekvenčním pásmu je potřeba nejlépe tří nepřekrývajících se kanálů. Určování

polohy pomocí síly signálu je populární záležitostí, jelikož sílu signálu dokáží

změřit všechna dostupná zařízení jako mobilní telefony, tablety, chytré hodinky

nebo notebooky. Jelikož v jednom objektu může existovat více Wi-Fi síti se stejným

názvem, k lokalizaci je potřeba využívat jedinečný identifikátor, jedná se

o specifikaci BSSID6 definující BSSID jako MAC7 adresu zařízení na AP.

3.1.2 Bluetooth

Technologie Bluetooth je bezdrátovou technologií umožňující lidem pohodlně

propojit svá zařízení s jinými přístroji, například mobilní telefony, bezdrátová

sluchátka (Handsfree), chytré hodinky, na krátkou vzdálenost (jedná se zhruba

o 10m). Původně byla tato technologie vytvořena se záměrem nahrazení

kabelového připojení. Často se navzájem propojují dvě zařízení, ale některá

zařízení umožňují být najednou připojena k více zařízením, nejvíce však

maximálně k 7 zařízením. Komunikace je řízená pomocí hlavního prvku, který vždy

iniciuje spojení. Aby zařízení mohla být vzájemně propojená, je potřeba je

spárovat. To znamená, buď zadat do obou zařízení stejný číselný kód, nebo jedno

ze zařízení, které chceme propojit má již vygenerovaný číselný kód, který je

potřeba vložit do druhého zařízení a poté zařízení mohou spolu navzájem

komunikovat a přeposílat si data.

Bluetooth pracuje v pásmu ISM8 2.4GHz, stejné pásmo je využíváno Wi-Fi

sítěmi, jenž lze využívat za předpokladu dodržení závazných podmínek pro

vyzářený výkon. Volné použití pásma tedy znamená, že není potřeba žádat

o přidělení frekvenčního pásma a ani za něj platit jakékoliv poplatky, proto je

označováno jako bezlicenční.

6 BSSID – Basic Services Set IDentifier. 7 MAC – Media Access Control 8 ISM – industrial,scientific and medical

Page 18: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

11

Pomocí standardu 802.15.1 je definována technologie Bluetooth, která

spadá do WPAN9 sítí. [15] Technologie Bluetooth se od svého objevení vyvíjela,

časem byly vytvořeny nové verze, které doplňují standardy 802.15.

Zařízení se dále dělí podle výkonnosti do tříd (class), což zachycuje tabulka

č. 3. Nelze jednoduše říct, že class 1 je lepší než ostatní class, protože s větším

dosahem stoupá energetická náročnost, která hraje u mobilních zařízení důležitou

roli. Pokud máme dvě zařízení, která podporují technologii Bluetooth a jedno

spadá do class 1 a druhé do class 2, tak zařízení budou moci spolu komunikovat

pouze na vzdálenost, která je rovna menšímu dosahu.

class maximální výkon dosah (přibližně)

class 1 100mW(20dBm) 100 m

class 2 2.5mW(4dBm) 10 m

class 3 1mW(0dBm) 1 m

Tabulka 3: Rozdělení zařízení podle výkonnosti [16]

Pro určování polohy pomocí Bluetooth se využívá technologie iBeacon. Tato

technologie vytvořená firmou Apple je založena na síti nízkoenergetických

Bluetooth (Bluetooth verze 4.0, též označována jako BLE 4.0) vysílačů. [17] Díky

technologii BLE 4.0 vydrží malá baterie do hodinek až 2 roky napájet vysílač, čímž

jsou zaručeny nízké pořizovací náklady. Tyto spoty (vysílače) se vhodně rozmístí

po budově, aby byla budova co nejlépe pokryta signálem. Dosah jednoho vysílače je

standardně okolo 70 metrů. Pro navigování uživatele je potřeba, aby jeho mobilní

zařízení podporovalo Bluetooth verze 4.0 a bylo zapnuto. Po splnění těchto

podmínek je možné uživatele navigovat či mobilní zařízení může reagovat na vstup

do určité zóny.

9 WPAN – Wireless Personal Area Network

Page 19: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

12

Obrázek 5: Princip fungování iBeaconu [18]

3.1.3 RFID

Jedná se o moderní technologii identifikace objektů pomocí radiofrekvenčních vln

bez nutnosti přímé viditelnosti. S touto technologií se můžeme setkat v mnoha

průmyslových odvětvích. Čipy mohou být například implementovány na různé

druhy zboží. V obchodech se s nimi nejčastěji setkáme jako se zabezpečením proti

krádeži, ve firmách mohou sloužit jako technologie pro sledování pohybu

materiálu (u vjezdu a výjezdu bude instalován RFID snímač, poté se čip nalepí na

zboží a při vjezdu do skladu se zvýší počet kusů, při vyvezení dojde ke snížení

počtu kusů na skladě).

Systém se skládá ze tří základních komponent. Jedná se o antény, přijímače/

vysílače a nosiče informace. Nosič informace je elektrický programovatelný čip,

který může být přepisovatelný. [19] Princip fungování je založen na čtečkách, které

hledají nejbližší vysílače nebo pasivní značky. Čtečky mohou být různého tvaru

a velikosti. Například mohou být implementovány do rámů dveří nebo příručních

zařízení. Systém se provozuje na různých vlnových délkách, které jsou zachyceny

v tabulce č.4. Na základě různých frekvencí je omezen dosah, rychlost čtení a tím

následné využití. Technologie RFID se dá rozdělit na aktivní a pasivní typy čipů.

Page 20: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

13

Frekvenční pásmo Čtecí

vzdálenost Rychlost čtení Využití Výhody + / nevýhody -

Nízkofrekvenční (LF) 125-134 KHz

do 0,5 m malá rychlost

čtení

-kontrola přístupů -identifikace a

sledování zvířat -imobilizéry aut

-identifikace kovových předmětů

+ možnost snímání na kovu a přes

kapalinu

- vysoké výrobní náklady

Vysokofrekvenční (HF) 13,56 MHz

do 1 m dostatečná

rychlost čtení

-chytré karty -bezkontaktní placení

-chytré etikety -označování zavazadel

při přepravě

+ nízká cena RFID tagů

+ celosvětově standardizována

frekvence

- vysoké výrobní náklady

- obtížné čtení přes kapalinu a

kov

Ultrafrekvenční (UHF) 860 - 960 MHz

do 3 m vysoká rychlost

čtení

-sledování palet při přepravě a ve skladě

-současná identifikace více zabalených

produktů -elektronické mýtné

-parkovací karty -sledování toku vratných obalů

+ levná výroba + možnost

vzdáleného čtení

- nečitelnost přes kapaliny

- obtížná čitelnost přes kovy

Mikrovlná 2,45 a 5,8 GHz

do 10 m rychlost i při extrémních rychlostech

-elektronické mýtné -identifikace

zavazadel při letecké přepravě

-bezdrátový záznam a přenos dat v reálném

čase

+ velká přenosová rychlost až 2Mb/s

- drahá a složitá

konstrukce

Tabulka 4: Rozdělení RFID podle standardizovaných nosných komunikačních frekvencí [20] [21]

Aktivní RFID čipy

Aktivní čipy jsou oproti pasivním čipům složitější a hlavně dražší z důvodu

vlastního energetického zdroje, který většinou vydrží 1-5 let. Kvůli těmto

podmínkám stoupají cenové náklady na pořízení aktivních čipů, i přes svoji znovu

použitelnost nejsou tak často využívány jako pasivní čipy. Tyto aktivní čipy vysílají

samy do svého okolí signál a čtečka (přijímač) pouze naslouchá. Dosah signálu je

Page 21: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

14

většinou několik desítek metrů a z tohoto důvodu jsou vhodné k lokalizaci

předmětů, osob, zvířat atd. [22]

Pasivní RFID čipy

Systém pasivních RFID čipů je bez svého energetického zdroje. Z tohoto důvodu

jsou pořizovací ceny těchto čipů minimální, ale jsou pouze na jedno použití. Pracují

na principu, kdy vysílač v určitých intervalech vysílá signál. Pokud se v okolí objeví

pasivní čip, vysílač přijímaný signál využije k nabití svého napájecího

kondenzátoru a odešle odpověď. [22]

Pasivní čipy se dají také využít pro navigaci v budovách. Protože není

potřeba přímé viditelnosti, lze čipy umístit zespod koberce či na zeď těsně

u podlahy. Takto se v budovách vytvoří různé trasy, které se poté uloží do chytrých

zařízení, které se propojí se snímací anténou RFID čipu. Tato technologie je

především rozšířená pro nevidomé lidi, kteří využívají speciální slepecké hole

(obsahuje akumulátory a ve špičce hole je umístěn snímač RFID čipu) a následně

z této hole jsou data přeposílána do mobilního zařízení, kde dojde ke zpracování

speciální aplikací a přiřazení fráze, která je uživateli přečtena. [23]

3.1.4 Telefonní sítě mobilních operátorů

Nejstarší pokusy určování polohy mobilních zařízení jsou založeny na sítích

mobilních operátorů. V české republice zajišťují mobilní operátoři téměř 99%

pokrytí území. Určování polohy probíhá pomocí GSM10 sítí, které se skládají

z několika subsystému. Jedná se o subsystém základových stanic BSS11, síťové

a spínací subsystémy NSS12 (telefonní ústředny), operační subsystémy OSS13

(kontrola obou předchozích subsystému) a mobilní stanice.

Pro určení polohy jsou nejdůležitější subjekty základových stanic - jejich

základové stanice (BTS14) a mobilní telefony. Každý mobilní operátor zná přesnou

polohu svých BTS stanic, jejich rozdělení do sektorů a identifikační čísla

10 GSM – Global System for Mobile 11 BSS – Base Station Subsystem 12 NSS – Network and Switching Subsystem 13 OSS – Operation Subsystem 14 BTS – Base Transceiver Station

Page 22: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

15

jednotlivých sektorů (označených jako Cell ID15 nebo CGI16). [24] BTS stanice jsou

rozmístěny po celém území každého státu. Toto území se rozděluje na jednotlivé

buňky, obsahující ve svých středech vysílače (BTS stanice). Každý vysílač má

nejčastěji několik antén se směrovým vyzařováním. Aby bylo pokryto celé okolí

okolo vysílače, používají se nejčastěji třísektorové BTS (výseč rozdělená po 120°)

nebo dvousektorové BTS (výseč rozdělená po 180°) či výjimečně jednosektorové

BTS (výseč o 360°), viz obrázek č.6. Dosah jednotlivých BTS stanicí je nejvíce 35

km, ale nejčastěji dosahují okolo 20 km, tato vzdálenost je ovlivněna terénem. [24]

Obrázek 6: Všesměrové a sektorové BTS stanice [25]

Hlavní nevýhodou této metody lokalizace je její nepřesnost, zvláště

v neobydlených či málo obydlených oblastech, kde není tolik GSM vysílačů. Pokud

se telefon nachází v oblasti, kde je několik vysílačů (jedná se převážně o města

a okolí dálnic), pak je zaměření – určení pozice mnohem přesnější. Navigování

pomocí mobilních operátorů není přesné jako pomocí výše uvedených metod.

Pomocí této metody se dá určit v jaké oblasti a budově se osoba nachází

a nabídnout jí nějaké výhody. Nejčastěji tento princip využívají jednotky

integrovaného záchranného systému, když pátrají po pohřešované osobě, nebo

když dochází k ověření místa výjezdu, aby nedošlo k výjezdu do stejně nazvané

obce, ale v jiném kraji.

15 Cell ID – jedinečný identifikátor každé BTS stanice 16 CGI – Cell Global Identity

Page 23: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

16

3.1.5 Optické senzory

Určování polohy pomocí optických senzorů již není pouze náplní sci-fi filmů.

S touto metodou se můžeme čím dál častěji setkat. Díky miniaturizaci jednotlivých

komponent a technologickému vývoji, který nám přinesl vyšší výpočetní výkon, je

možné v reálném čase zpracovávat digitální obraz. Zpracování digitálního obrazu

v reálném čase umožňuje vytvoření systému, který je schopen uživatele navigovat

uvnitř budov. Určování pozice pomocí optických senzorů je založeno na

technologii využívající CCD17 čipy nebo stále populárnější PSD18 čipy (můžeme se

s nimi setkat u robotických vysavačů) pro snímání okolí. [26] [27]

Určování polohy pomocí optických senzorů nejčastěji využívají autonomní

roboti. Téměř každý robot má několik senzorů (kamery s CCD čipy, PSD čipy,

lasery nebo ultrazvuk), pomocí nichž získává informace z okolí, a díky tomu se

dokáže orientovat a zvolit vhodnou cestu. Při vizuální navigaci robot získává z CCD

kamer / PSD čipů (ze vstupního obrazu) pouze směr. Pokud se v obrazu objeví stín,

robot ho chápe jako překážku a musí reagovat. Z tohoto důvodu jsou roboti často

ještě vybaveni ultrazvukem, aby se přesvědčili, zda se opravdu jedná o překážku

a nejen o špatně získaný obraz. [28] Dalším důležitým faktorem u této technologie

je úhel snímání. Tento údaj opět ovlivňuje přesnost a spolehlivost určení pozice

robota. Problém se špatně získaným úhlem se dá snadno vyřešit pomocí dvou nebo

více nezávislých CCD senzorů. Tento postup dokáže zajistit dvojité či vícenásobné

snímání, které se velmi podobá lidskému vidění (zde každé oko představuje

jednotlivý snímač). Pro zpřesnění metody určování pozice se využívá laserů, které

jsou schopny jako ultrazvuk určovat fyzickou vzdálenost od objektu a tím zpřesnit

získaná data v okolí. [29]

Určování pomocí optických senzorů doplněných o nějaké další senzory je

velmi přesné a podobá se lidskému vnímání světa.

17 CCD – Charged Coupled Device 18 PSD - Position Sensitiv Detector

Page 24: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

17

Metoda porovnání snímků

Metoda je založena na principu porovnávání snímků aktuálně získaných ze

senzorů se snímky předem pořízené trasy, které jsou uložený v databázi. Tímto

způsobem je možné určit aktuální polohu. Hlavní nevýhodou je rychlost

zpracování a porovnávání snímků, protože se nepředpokládá, že by bylo využito

aktivních nebo pasivních optických prvků, které by zjednodušovaly určování

pozice. Na snímku získaném pomocí senzoru se může nacházet stín, který může být

způsoben osvětlením. Toto osvětlení může způsobit získání jiné obrazové hodnoty

z databáze, která může zapříčinit špatné vyhodnocení pozice nebo nefunkčnost

robota. Dalším problém je velikost databáze, kde musí být uloženo velké množství

snímků interiéru budovy, aby se robot podle nich mohl orientovat. Prvními pokusy

bylo zjištěno, že pomocí této pozice se dá určit poloha v toleranci 30 cm. [30]

Optické orientační značky

Získávání polohy pouze pomocí metody porovnávání snímků může být za určitých

světelných podmínek velmi obtížné. Například různé fáze dne přináší různé

sluneční osvětlení, které může při porovnávání snímků dělat problém a histogram

by byl úplně jiný.

Za účelem zvýšení odolnosti a přesnosti systému se začaly využívat pro

lokalizaci orientační značky. Tyto značky jsou standardizovány pro dané systémy

a tím je zaručeno rychlejší vyhodnocení pozice. Pro každé místo je určená speciální

značka a z tohoto důvodu není potřeba složitých algoritmů pro výpočet pozice.

Ne v každé budově je možné rozmístit značky, které by umožňovaly

jednodušší orientaci. Tento problém se dá vyřešit pomocí optické projekce značek,

které mohou být viditelné i neviditelné. Pomocí infračerveného světla je možné

zajistit snímání těchto značek. Podmínkou je, aby snímací kamera nahlížela na

projekci značek ze stejného úhlu, jako má světelný zdroj. Tato metoda je

nejekonomičtější z důvodu nepotřeby úpravy interiéru a vytváření značek. Proto

se hodí například pro domácí robotické vysavače. [30]

Page 25: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

18

3.2 Metody a algoritmy pro určování polohy

V současnosti existuje několik základních metod, jak určit pozici uživatele pomocí

bezdrátových sítí. Jedná se například o určení nejbližšího přístupového bodu (AP),

trilateraci, použití směru nebo úhlu příchodu signálu, metody založené na čase

nebo nejčastěji používaná metoda „otisků signálu“.

3.2.1 Metoda nejbližšího přístupového bodu

Jedná se o nejjednodušší metodu umožňující určit pozici uživatele pomocí

bezdrátových sítí. Určování polohy je založeno na principu nejbližšího

přístupového bodu, ke kterému je uživatel připojen. Nejbližší přístupový bod je

takový vysílač, který poskytuje nejsilnější signál v okolí uživatele. Aby bylo možné

určit pozici je potřeba znát přesnou polohu vysílače. Následně uživateli bude

přiřazena pozice, na které se nachází vysílač.

Jak bylo výše uvedeno, v praxi tato metoda není přesná. Hned z několika

důvodů, závisí na množství vysílačů v okolí a jejich dosahu (nejsilnějšího signálu).

Dále je známá pozice vysílače, a že je k němu uživatel připojen, ale nevíme kde

přesně uživatel je. Zda se nachází východně, jižně, západně nebo severně od

vysílače. Určení polohy je tedy pouze přibližné a je založeno na principu opsané

kružnice kolem přístupového bodu. A kdekoliv v této kružnici se uživatel může

nacházet.

3.2.2 Metoda trilaterace

Jedná se o metodu určování relativní nebo absolutní polohy objektů pomocí

geometrie (vztahů v trojúhelníku). [31] Zjišťování polohy pomocí metody

trilaterace již bylo částečně popsáno u GPS systému, ale tato metoda umožňuje

určovat pozici i uvnitř budov.

Určování polohy pomocí metody trilaterace tedy vychází z předpokladu, že

jsou známy přesné polohy jednotlivých přístupových bodů. Pro určení polohy je

potřeba současně přijímat signál nejméně ze dvou vysílačů (přístupových bodů),

lépe však ze tří. Z matematického hlediska se v praxi nejčastěji využívá tří vysílačů,

což zaručuje vyšší přesnost pro určení pozice. Nutným prvkem je určit vzdálenost

mezi uživatelem (zařízením přijímající signál) a dvěma nebo třemi vysílači. Tuto

Page 26: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

19

vzdálenost lze získat, například pomocí metod Time of Arrival, Time Difference of

Arrival, nebo výpočtu ze signálu. Výpočet vzdálenosti pomocí signálu představuje

3.

Rovnice 3 [32]

di – vzdálenost od i-tého vysílače

pi – maximální dosah vysílače

mi – procentuální sila signálu z i-tého vysílače

Hodnoty signálu pro výpočet vzdálenosti jsou velmi ovlivněny rušivými

elementy, jako jsou okolní terén a povětrnostní podmínky. Následně získané

vzdálenosti nám určují poloměry kružnic, které jsou opsány okolo příslušných

vysílačů. Kružnice vytvoří průsečík, který tvoří jeden bod nebo výseč, která

představuje předpokládanou polohu uživatele. Princip určení pozice je zachycen

na obrázku č.7

Obrázek 7: Trilaterace pomocí tří přístupových bodů a) přesná poloha b) hrubý odhad polohy [33]

Souřadnice všech uzlů jsou dosazeny do obecných rovnic se středem

v bodě S[x?, y?]. Bod S[x?, y?] představuje polohu vysílače. Obecná rovnice má tvar

viz 4. Pro určení souřadnic xi a yi je potřeba zjistit vzájemnou polohu kružnic.

Protože máme tři rovnice o dvou neznámých, je třeba provést úpravy, po kterých

získáme dvě rovnice, viz 5. Z těchto rovnic je možné vypočítat polohu uživatele.

Rovnice 4

Page 27: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

20

Rovnice 5

3.2.3 Time Of Arrival (TOA)

Jedná se o metodu určování polohy podle doby, kterou zabere cesta signálu

z vysílače do mobilního zařízení. [34] Tato metoda pro určení vzdálenosti je

využívána při trilateraci k zjištění vzdálenosti mezi vysílačem a zařízením. Jedná se

o jednosměrné nebo obousměrné (zpáteční) šíření signálu v čase.

Jednosměrné šíření signálu vychází z principu, známe rychlosti a změření

doby od vyslání signálu z vysílače po přijetí signálu přijímačem. Důležitým prvkem

je, aby byla obě zařízení časové synchronizována, jinak dochází k posunu času

a tím k nepřesnosti při určení polohy. Tuto technologii využívají GPS systémy,

bezdrátové sítě tuto technologii nevyužívají z důvodu vysoké ceny a HW

omezení. [35]

Obousměrné šíření signálu opět měří čas od vyslání signálu vysílačem po

přijetí přijímačem, ale oproti jednosměrnému šíření je signál odeslán zpět

k vysílači. Tím odpadá problém se synchronizací času na vysílači a přijímači.

Problém u této metody představuje doba zpracování signálu přijímačem

(přijmutím signálu) a odesláním zpět na vysílač. Dobu zpracování je tedy potřeba

změřit a následně odečíst od celkového času přenosu signálu. [35]

3.2.4 Time Difference Of Arrival (TDOA)

Tato metoda opět využívá ke zjištění polohy rozdíly v čase mezi přijetím signálů

z jednotlivých vysílačů. Na rozdíl od metody TOA, kde je měřen absolutní čas, je

měřen rozdíl časů příchodu jednotlivých signálů. Aby byla metoda funkční, je

potřeba zajistit, aby jednotlivé vysílače byly časově synchronizovány. Tímto

způsobem je zaručena schopnost vysílat signály ve stejný čas. Přijímač podle

pořadí jednotlivých signálů a jejich časových rozdílů následně vypočítá, jak daleko

se uživatel od příslušných vysílačů nachází. Aby bylo možné vypočítat

Page 28: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

21

přepokládanou vzdálenost mezi uživatelem a vysílačem je potřeba přijímat signál

z několika vysílačů, u kterých je známá přesná pozice. Vypočtená vzdálenost

pomocí výše uvedeného principu se dosadí do trilaterační metody, pomocí niž se

určí poloha uživatele vůči vysílačům. [36]

3.2.5 Metoda „otisků signálů“

Metoda fingerprint („otisků signálů“) je založena na skenování bezdrátových sítí,

vytváření otisků jednotlivých sítí (intenzity RSSI) a jejich ukládání do databáze.

Jedná se o nejpoužívanější metodu pro lokalizaci pomocí rádiového signálu

z důvodu jednoduché implementace a nízkých nákladů na HW. Hlavním problém

této metody je vytvoření databáze otisků a udržování její aktuálnosti. Vytváření

otisků sítí může probíhat dvěma způsoby.

První způsob je pomocí empirického modelu šíření, který je popsán rovnicí

číslo6. Tento model rovněž bere v úvahu různé překážky mezi vysílačem

a přijímačem.

Rovnice 6 [37]

PL(d0)(dB) – výkon ve známé referenční vzdálenosti

n – spádový koeficient (koeficient útlumu), závisí na okolním prostředí

d – vzdálenost mezi přijímačem a vysílačem v metrech

d0 – vzdálenost typicky 1 metr

Xó – nulová střední hodnota Gaussova rozložení náhodné proměnné se střední

standardní odchylkou (vyjadřuje efekt stínění)

U této metody je potřeba získávat docela přesné vstupní data, pomocí nichž

se vytvoří model. I přes poměrně přesné vstupní data přináší tato metoda horší

výsledky než metoda pomocí měření z důvodu komplikovaného šíření rádiového

signálu v budovách. Kde dochází k šíření rádiové vlny od vysílače k přijímači

pomocí více cest, které jsou vytvořeny například pomocí lomu, ohybu a odrazu

signálu od různých překážek.

Page 29: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

22

Druhý způsob je založený na prvotním získávání otisků sítí, jedná se tedy

o skenování bezdrátových sítí. Pomocí skenování se vytvářejí otisky vlastností

jednotlivých sítí, u nichž se získávají různé informace. Jako jsou intenzita, název

přístupového bodu, kanál, adresa přístupového bodu (MAC adresa) a jiné.

Každému vytvořenému otisku je nutné přiřadit pozici, kde byl získán. Poté může

dojít k uložení na server. Po vytvoření otisků a jejich následném uložení je možné

si nechat určovat pozici pomocí průchodu zmapovanou oblastí. Určování pozice

probíhá následujícím způsobem. Aplikace porovnává bezdrátové sítě v okolí se

sítěmi uloženými v databázi a hledá nejlepší shodu, která představuje

nejpravděpodobnější místo, kde se uživatel nachází. [38] Celý proces je zachycen

na obrázku č. 8.

Obrázek 8: Určení pozice pomocí metody „otisku signálu“ [39]

Při získávání otisků bezdrátových sítí narážíme na problém s okolím AP. Jak

již bylo dříve zmíněno, při průchodu signálu přes různé materiály dochází ke

snížení intenzity. Proto například, když dojde k přestavení místností, zbourání zdi

či jiným interiérovým změnám je potřeba aktualizovat databázi otisků. Pokud by

nedošlo k této aktualizaci, tak by navigování neodpovídalo realitě a mohlo zmást

uživatele.

Dalším problémem je různorodost mobilních zařízení k lokalizaci a snímání

otisků bezdrátových sítí. HW prvky a síťové protokoly nejsou navrženy pro využití

Page 30: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

23

k navigování, ale pouze k přenosu dat. Z tohoto důvodu se můžeme setkat

s problémem, že mobilní zařízení od jiného výrobce bude ukazovat jiné naměřené

hodnoty RSSI. Proto je nutné provést více měření.

Page 31: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

24

4 Síťová komunikace a síťové modely

Síťová komunikace patří mezi nejvýznamnější pilíře moderních počítačů

a chytrých mobilních zařízení. Jedná se o souhrn činností umožňující komunikaci

(výměnu dat) mezi jednotlivými systémy, podle určitých pravidel. Protože se jedná

o složitý model, bylo potřeba vytvořit standard. Z tohoto důvodu vznikl referenční

model ISO/OSI, který je považován za nejpoužívanější standard v počítačových

sítích. Jedná se o vrstvový model, ve kterém jsou vrstvy na sobě nezávislé a těžce

nahraditelné. V práci se předpokládá, že uživatel zná tento referenční model

a základní síťové prvky.

Mobilní telefony si již nevystačí jen s jedním komunikačním standardem,

proto nabízí další technologie, jako jsou Wi-Fi, Bluetooth a NFC19, které se

navzájem doplňují a umožňují využívat telefon nejen ke komunikaci. Například

standard NFC je považován za technologii budoucnosti. Tato technologie je

založená na rádiové bezdrátové komunikaci mezi elektronickými zařízeními na

velmi krátkou vzdálenost. Proto se dá využít například jako elektronická

peněženka, náhrada klíčů nebo čipová karta.

Tato práce je zaměřená na technologii Wi-Fi, kterou již disponuje každý

chytrý telefon.

4.1 Síťová architektura

K navržení síťové architektury je potřeba zvolit nejvhodnější síťový model, který

splňuje požadavky daného zadání. Zvolení správného návrhu síťové logiky je

potřeba promyslet důkladně dopředu, protože při špatném návrhu může dojít ke

špatně postavené infrastruktuře a může docházet ke kolizím, špatnému přenosu

informací nebo dokonce k úplnému znehodnocení komunikace.

Rozdělení počítačových sítí probíhá podle postavení uzlů v síti. Síť tedy

může být typu peer-to-peer (rovnocenného typu), též nazývaná jako klient-klient

nebo typu klient-server (server nebo více serverů je nadřazeno klientovi nebo více

19 NFC – Near Filed Communication

Page 32: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

25

klientům). Na obrázku č. 9 jsou zobrazeny oba typy počítačových sítí podle

postavení uzlů.

Obrázek 9: Klient-server a peer-to-peer [40]

4.1.1 Model klient-server

Model klient-server je síťová architektura, ve které klient (často aplikace

s grafickým uživatelským rozhraním) přijímá nebo odesílá data na server

(hostitelský počítač).

Model klient-server je forma distribuovaného zpracování výpočetního

výkonu mezi serverem a koncovým zařízením, kteří si mezi sebou komunikují

a předávají si vzájemně informace přes počítačovou síť. Klient překládá požadavek

od uživatele tak, aby byl srozumitelný pro server. Zatímco klient čeká na odpověď,

server požadavek zpracuje a následně vrací zpět klientovi srozumitelnou odpověď,

kterou on přijme a zobrazí ji uživateli na obrazovce. V architektuře klient-server

tedy server zpracovává dotazy. Klient se stará o prezentaci přijatých odpovědí od

serveru, zajišťuje aplikační logiku a rozhraní pro uživatele. [41] Tento koncept

může být použit více způsoby, ale základ zůstává v podstatě stejný.

Tento model je jednou z hlavních myšlenek síťové topologie. Model se

uplatňuje především ve firemních či obchodních aplikacích a přístupu na web.

Například k internetovému bankovnictví, emailu atd.

Příkladem může být webový prohlížeč, což je klientský program na počítači,

pomocí nějž může uživatel přistupovat k libovolným informacím na libovolném

webovém serveru kdekoliv na světě. Například pokud se chce uživatel ze svého

Page 33: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

26

počítače podívat na přehled vyúčtování služeb mobilního operátora, webový

prohlížeč předá tento dotaz webovému serveru mobilního operátora, tento server

dále předá dotaz databázovému programu, který pošle dotaz na databázový server.

Z tohoto serveru je požadovaný přehled vyúčtování vrácen zpět stejnou cestou do

databázového programu operátora, který požadovaný přehled zašle zpět do

webového prohlížeče, pomocí nějž se přehled zobrazí.

Tenký klient

Jedná se o zjednodušenou variantu počítače s odlehčeným operačním systémem

nebo počítačový program, který při provádění své práce silně závisí na jiném

počítači z důvodu malého nebo žádného výpočetního výkonu.

Nejčastěji se jedná o webový prohlížeč, který komunikuje se serverem

pomocí bezstavového protokolu HTTP20 a má za úkol pouze zobrazovat obdržená

data. Tenký klient neprovádí rozhodovací logiku ani ukládání dat. Z této

skutečnosti vyplývá, že nároky na instalaci, konfiguraci a podporu tenkých klientů

jsou minimální. Z důvodu provedení všeho výpočetního výkonu na straně serveru

je potřeba zajistit, aby byl server dostatečně výkonný a měl dostatečnou

paměťovou kapacitu.

Tlustý klient

Na rozdíl od tenkého klienta obsahuje tlustý klient obvykle jak prezenční tak

i aplikační vrstvu a ze serveru získává pouze základní data, která také často zasílá

zpět na server. Z důvodu získávání dat a následného přeposílání dat zpět na server

je patrné, že přes síť se přenáší velké množství dat. Kromě výměny dat se serverem

nemusí tlustý klient vůbec na server spoléhat, protože všechny výpočty je schopen

provést sám. Z toho plyne, že instalace, konfigurace a podpora tlustých klientů je

časové a finančně daleko náročnější než u tenkých klientů, protože je musíme

dostat na každé zařízení, kde bude tlustý klient provozován.

20 HTTP –Hypertext transfer protokol

Page 34: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

27

Chytrý klient

Chytrý klient je vhodnou kombinací výhod tenkého a tlustého klienta a potlačuje

jejich nevýhody. Stejně jako tlustý klient využívá místní systémové zdroje, ale

dokáže využívat i síťové připojení k výpočetnímu serveru, aby mohl zpracovávat

určitá data. Ale jako tenký klient nevyužívá lokálního úložiště pro ukládání dat, ale

využívá serveru, čímž je zaručena podpora centrální správy. Běh programu je na

klientském počítači. Hlavní výhodou chytrého klienta je schopnost pracovat off-

line a využívat síťové připojení jen občas. Například při stahování nové verze

aplikace.

4.1.2 Peer-to-peer

Označení peer-to-peer se využívá pro sítě, které jsou založeny na vzájemné

komunikaci jednotlivých klientů. To znamená, že všichni klienti (počítače) si jsou

navzájem rovni a klienti sdílí své služby mezi ostatní. Viz obrázek 9. Často tato

architektura bývá označována jako klient - klient.

Tato architektura nevyužívá server, tím je znemožněno centrální

spravování a všechny procesy si jsou rovny a působí zároveň jako klient (přijímání,

vysílání požadavků) a server (zpracování požadavku a odeslání dat).

U architektury klient-server platí, že čím více klientů je připojeno k serveru, tím se

snižuje rychlost. U architektury Peer-to-peer je tomu naopak, protože při větším

množství klientů se vytváří robustnější síť, která umožňuje vyšší rychlost.

Typickým příkladem jsou tzv. torrenty, přes které lidé sdílejí různé soubory.

Page 35: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

28

5 Analýza

V této kapitole jsou uvedeny požadavky na aplikaci, architekturu a použité

technologie.

Při návrhu každé aplikace se musí definovat a správně setřídit požadavky,

které by měla aplikace splňovat. Tento úkol je důležité provést hned při samotném

zahájení projektu, aby bylo známo, co se má vytvořit a co vše požadovaná aplikace

musí umět. Důležitým faktem je si uvědomit, že aplikace neplní jen požadavky

zákazníka, ale je potřeba zohlednit i vlastnosti a požadavky systému a hardwaru.

Požadavky vyjadřují, co má aplikace dělat, ale nepopisují, jak to má udělat.

5.1 Požadavky na aplikaci

Při stanovení požadované funkcionality je soustředěno především na získávání

otisků bezdrátových sítí a následně jejich ukládání. Aplikace je rozdělená do dvou

částí a to klient a server. Protože klient je určen pro platformu Android,

implementační část je postavená na programovacím jazyce Java a platformě

Android. Z důvodu robustnosti serverové části je implementační část postavená na

programovacím jazyce Java s frameworkem Spring MVC.

Komunikační mechanismus je založen na modelu klient – server z důvodu

centrálního úložiště, které usnadňuje správu. Dalším důvodem, proč byl zvolen

tento model, je, že čím více lidí vytvoří otisk na daném místě, tím bude přesnější,

a v poslední řadě z důvodu širší dostupnosti.

Serverová část bude komunikovat s klientskou částí pomocí HTTP

protokolu. Komunikace mezi klientem a serverem bude řešená pomocí mobilního

internetu nebo pomocí Wi-Fi připojení. Z frameworků, které jsou volně dostupně,

byl vybrán libGDX, který splňuje všechny požadavky, jimiž jsou podpora

2D OpenGL, fyzikální model Box2D, podpora a cena.

Stanoveným cílem je vytvořit hru, pomocí které se budou získávat otisky

bezdrátových sítí. Při skenování otisků budou odemykány další mapy, které budou

umožňovat postup ve hře. Pořadí skenování QR kódů bude dáno aplikací. Dalším

cílem je vytvoření serveru, na který se budou ukládat otisky bezdrátových sítí

vytvořených pomocí klientské aplikace. Dále se budou ukládat informace o typu

Page 36: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

29

zařízení, z kterého byly otisky pořízené. Mezi další data, která se budou ukládat na

server, patří informace o mobilním operátorovi. Uloží se název operátora a také

intenzita signálu.

5.2 Použité technologie

Tato kapitola popisuje výčet jednotlivých technologií, které jsou využity k řešení

daného problému.

5.2.1 Java

Jedná se o vyspělý objektový programovací jazyk vytvořený společností Sun

Microsystems. Java je multiplatformní jazyk díky způsobu kompilace. To znamená,

že zdrojové kódy nejsou překládány do strojového kódu, ale jsou předzpracovány

do byte-kódu. Proto při spuštění java programu je zdrojový kód pomocí JVM21

přeložen do strojového kódu. Pro každý operační systém je různý JVM.

5.2.2 Android

Android je operační systém založený na linuxovém jádře a je především určený pro

mobilní zařízení. Jedná se o open source platformu podporovanou společností

Google.

V roce 2007 byla představená první verze tohoto operačního systému

a o rok později vyšel první mobilní telefon s tímto operačním systémem. Při vývoji

se myslelo na omezení, která sebou nesou mobilní zařízení. Jedná se například

o výdrž baterie, menší výkonnost atd. Zároveň se dbalo na to, aby jádro operačního

systému mohlo běžet na různém HW. Díky těmto krokům, a hlavně své otevřenosti

(volně dostupné zdrojové kódy, dostupný nástroj pro vývojáře zvaný Software

Developer Kit) se operační systém Android brzy po svém vydání vyrovnává

legendárnímu telefonu iPhone od společnosti Apple. V dnešní době (rok 2016) se

jedná o nejrozšířenější operační systém určený pro mobilní zařízení.

21 JVM – Java Virtual Machine

Page 37: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

30

Architektura je rozdělená do 5 základních vrstev, kde každá vrstva plní svůj

účel a nemusí být přímo oddělená od ostatních částí. Vrstvy jsou následující:

linuxové jádro, knihovny, Android Runtime, aplikační framework a aplikace.

Za zmínku stojí vrstva Android Runtime, která je primárně určená pro běh

aplikací. Protože aplikace jsou napsány v Java kódu a ne v nativním, musí se při

každém běhu přeložit. Toto zajišťuje virtuální stroj Dalvik, který je od verze 4.4

nahrazen běhovým prostředím ART22. Toto prostředí přeloží aplikaci do nativního

kódu ihned při instalaci, což zajišťuje vyšší rychlost při spuštění aplikace a vyšší

výdrž baterie. [42]

5.2.3 OpenGL ES 2.0/3.1

OpenGL ES je průmyslový standard pro vytváření 2D a 3D grafiky, především pro

chytré telefony, tablety. OpenGL ES je použitelné na různých operačních systémech

a podporuje několik programovacích jazyků (Java, C++ atd.). Na vývoji se podílí

nezisková skupina Khronos, což je holding společností ATI, NVIDIA a Intel.

Verze OpenGL ES 2.0 vychází ze známé grafické knihovny OpenGL 2.0

a přináší plně programovatelnou 3D grafiku. Tím umožňuje programátorovi plnou

kontrolu na renderovací pipeline. Aby OpenGL 2.0 mohlo co nejlépe pracovat

s mobilními zařízeními, bylo potřeba odstranit nějaké funkce, které mohly být

nahrazeny shadery. To zapříčinilo, že chybí kompatibilita se staršími verzemi 1.0

a 1.1. [43]

Nejnovější verzí je OpenGL ES 3.1, které je zpětně kompatibilní s verzi

OpenGL ES 2.0 a OpenGL ES 3.0 a poskytuje funkce odlehčeného OpenGL 4.4 pro

desktop prostředí. Nejdůležitější funkcí je přidání compute shaderu, který

poskytuje větší flexibilitu a volnost k programování obecných výpočtů než pixel

shader. Používá se tedy pro složitější algoritmy a akceleraci úloh, které nesouvisí

s vykreslováním grafiky. To by mělo přispět k lepšímu grafickému efektu a lepší

simulaci grafiky. Geometry shader stále není součástí OpenGL ES 3.1. [44]

22 ART – Android runtime

Page 38: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

31

5.2.4 libGDX

LibGDX je open source (spadá pod Apache licenci), multiplatformní (podporuje

tyto platformy iOS, Android, Desktop – Windows i Mac OS, HTML a BlackBerry)

vývojová herní knihovna založená na OpenGL. Tato knihovna umožňuje vývoj her

a tvorbu vizualizace pomocí programovacího jazyka Java.

Jednou z největších výhod tohoto frameworku je, že se kód pro všechny

platformy píše pouze jednou a je okamžitě spustitelný na všech podporovaných

platformách. Proto není potřeba při každé změně kompilovat zdrojový kód

a testovat ho na všech platformách, na kterých má aplikace běžet. Díky této

vlastnosti se urychluje vývojový cyklus aplikace. Podpora různých platforem je

možná díky tomu, že libGDX poskytuje vlastní API23, které zaobaluje rozdíly všech

platforem. Dále poskytuje transparentní API pro práci s OpenGL, kde pro každou

funkci existuje wrapper, který umožňuje spustit nativně kód na jakékoliv

platformě. Práce s knihovnou OpenGL je na spodní úrovni napsána v nativním

kódu a díky tomu je zaručen vysoký výkon. [45] Framework je především

zaměřený na vývoj 2D her, ale není problém pomocí něj vytvořit i 3D hru. Kromě

běžného API pro práci s grafikou, zvuky, kamerou, uživatelskými vstupy atd.,

knihovna obsahuje také integrovanou fyzikální knihovnu Box2D.

Knihovna obsahuje velké množství dodatečných rozšíření. Například nástroj

Hiero, který slouží ke generování bitmapových fontů. Dále Particle Editor, který

umožňuje generovat částicové efekty. A mnoho dalších rozšíření.

Dokumentace se dá považovat za velmi zdařilou a obsahuje několik

přehledných tutoriálů a ukázkových her, které usnadňují začátky vývoje. Za libGDX

stojí komunita vývojářů a stále se tato knihovna zdokonaluje a díky tomu se

zvyšuje podíl her založených na tomto frameworku.

5.2.5 Barcode Scanner

Barcode Scanner je aplikace, která pomocí fotoaparátu dokáže číst čárové kódy

nebo QR24 kódy. Aplikace je dostupná pro platformy Android, iOS, Windows 10

23 API – Application Programming Interface – rozhraní pro programování aplikací 24 QR – Quick Response

Page 39: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

32

Mobile, BlackBerry. Po spuštění této aplikace se z telefonu stává čtečka. Následně

je potřeba fotoaparát namířit na kód, který chceme naskenovat (vzdálenost mezi

kódem a telefonem by měla být přibližně 10 cm) a počkat dokud se neozve pípnutí.

Dochází k dekódování kódu a získání obsahu. Aplikace je vybavená automatickým

ostřením, rychlým rozpoznáváním a automatickým detekováním kódů.

5.2.6 Spring Framework

Spring Framework je populární open source framework pro vývoj webových

aplikací. Především je využívaný pro vývoj firemních aplikací. Je to modulární

framework, pomocí nějž se mohou vytvářet všechny vrstvy aplikace nebo pouze

vybrané vrstvy aplikace. Hlavním účelem tohoto frameworku je zjednodušit návrh

webových aplikací se zaměřením na architekturu aplikace než na použité

technologie.

V aplikaci byl Spring Framework využit pro serverovou část.

5.2.7 Hibernate

Hibernate je framework napsaný v jazyce Java pro objektově-relační mapování

a persistenci dat. To znamená, že Hibernate převede Java objekty na entity

v databázi a udržuje je i po ukončení běhu aplikace (v persistentním stavu). Po

vytvoření objektů v databázi je možné se na ně dotazovat pomocí jazyka HQL25,

který je odvozen od jazyka SQL26 a je mu velmi podobný. Jazyk HQL je plně

objektově orientovaný jazyk – umožňuje dědění, polymorfismus nebo asociaci.

5.2.8 MySQL

MySQL je open source databázový systém vyvíjený společností Oracle. Hlavní

výhodou je, že se jedná o multiplatformní databázi. To znamená, že může být

instalován na jakémkoliv operačním systému. Dalšími výhodami jsou vysoký výkon

a rychlost. MySQL je tedy relační databáze typu DBMS a využívá deklarativního

programovacího jazyka SQL.

25 HQL – Hibernate Query Language 26 SQL – Structured Query Language

Page 40: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

33

5.2.9 IntelliJ IDEA

IntelliJ IDEA je komerční vývojové prostředí od české společnosti JetBrains. Kromě

komerční verze (Ultimace) je dostupná i bezplatná verze (Community). Hlavním

cílem tohoto IDE je dosažení co nejvyšší produktivity programátora. Dále je

jediným prostředím pro Javu, které nabízí ihned po instalaci komplexní sadu

nástrojů pro nejmodernější technologie, bez potíží s doplňky.

5.2.10 Git

Jedná se o multiplatformní verzovací systém pro správu souborů. Git je

distribuovaný systém správy verzí. To znamená, že každý vývojář má lokální kopii

všech verzí programu a může pracovat nezávisle na internetovém připojení.

Pomocí tohoto programu lze zaznamenávat historii úprav projektu, značení verzí

nebo poskytovat aktuální zdrojový kód více uživatelům.

5.2.11 QR kód

OR kódy jsou obdobou čárových kódů, ale proti nim dokáží zakódovat větší

množství informací. Informace jsou ukládány do čtverců bílé a černé barvy, které

jsou uspořádány do čtvercové matice. Velikost této matice je dána počtem

informací, které chceme uložit do QR kódu. Pro rozkódování QR kódu je potřeba

mít nainstalovanou nějakou QR čtečku (například Barcode Scanner). Uplatnění

těchto kódů se dá využít téměř kdekoliv, kde je potřeba rychle předat větší

množství informací a informace nechceme ručně přepisovat.

5.2.12 Tiled Map Editor

Tiled Map Editor je multiplatformní a volně dostupný program. Tento program

nabízí tvorbu herních prostředí, map a jejich editaci. Editor umožňuje vývojáři

jednoduše vytvářet dlaždicové mapy pomocí jednoduchého klikání myší. Pro

tvorbu map lze využít vlastních grafických prvků, existujících prvků nebo pouze

geometrických tvarů bez grafických elementů. Existující grafické prvky jsou

dostupné například na adrese: http://www.spriters-resource.com/nes/.

Page 41: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

34

Pomocí objektové vrstvy, která musí obsahovat slovo enemis, lze vytvořit

a rozmístit nepřítele a pomocí vrstvy nesoucí název collision, jsou řešeny pevné

objekty – objekty, přes které se nedá projít.

Tiled Map Editor ukládá vytvořené mapy do formátu TMX27, který má

strukturu XML28 formátu.

27 Translation Memory eXchange 28 Extensible Markup Language

Page 42: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

35

6 Implementace

V této části je popsána implementace navrženého modelu aplikace pro získávání

otisků bezdrátových sítí a jejich ukládání. Jak již bylo výše zmíněno, aplikace je

rozdělená na dvě části, na klientskou část a serverovou část. Pro obě části je

rozebrána struktura aplikace a popsány ukázky zajímavých částí samotné

implementace.

6.1 Klientská část

Veškerý zdrojový kód této části byl psán ve vývojovém prostředí Android Studio,

které je založené na vývojovém prostředí IntelliJ IDEA. Z důvodu použití knihovny

libGDX má projekt rozdílnou strukturu oproti klasickým Android aplikacím.

6.1.1 Struktura aplikace

Aplikace je rozdělená pomocí Gradle na tři sub-projekty (moduly): android, core,

desktop. Rozdělení modulů s popisem se nachází na adrese:

https://github.com/libgdx/libgdx/wiki/Project-Setup-Gradle. Modul core

obsahuje společný kód, ke kterému smí přistupovat ostatní moduly, které

odpovídají platformě, na které má aplikace běžet. V projektu android je umístěn

Assets Manager, který představuje správce souborů a slouží jako jednotné místo

v rámci celé aplikace, přes které se přistupuje k datovým souborům.

Projekt dostal označení MyGame a jednoznačný identifikátor (package

name) cz.uhk.fim.jedlima3.game, tento identifikátor musí být jedinečný z důvodu

distribuce v marketu Google Play.

V kořenovém modulu core se nachází třída MyGame a šest balíčků. Každý

z těchto balíčků obsahuje třídy, které provádějí určitou činnost. Zapouzdření tříd

do balíčků se využívá z důvodu zpřehlednění kódu a určení, které třídy k sobě

patří.

Pro pochopení projektu budou vysvětleny jednotlivé balíčky a funkcionalita

nejdůležitějších tříd. Na obrázku č. 10 je zachycena struktura modulu core.

MyGame – jedná se o spouštěcí třídu, která se nachází v kořenovém modulu

core. Tato třída je potomkem třídy Game, která zodpovídá za životní cyklus

Page 43: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

36

grafické knihovny. Struktura cyklu je velmi podobná jako u obyčejné activity

Androidu. Obsahuje tedy metody create(), render(), pause(), resume() a dispose().

Jedná se o třídu, která tvoří základ aplikace a umožňuje použití obrazovek třídy

Screen, které lze dynamicky měnit. Tedy každá obrazovka je specializována pouze

na jednu činnost. Například menu, nápověda atd.

control – v balíčku se nachází jedna třída pojmenovaná Control. V této třídě

je nastaveno rozložení tlačítek pro platformu Android, aby bylo možné snadno

ovládat postavu.

json – balíček reprezentuje třídy starající se o načítání JSON souboru, který

obsahuje pozice QR kódů. Pomocí těchto QR kódů je umožněn postup ve hře

(odemykají se další mapy). JSON formát byl zvolen z důvodu snadné implementace

ve všech modulech.

scenes – balíček obsahující třídu Hud, která má na starost zobrazovat

uživateli informace o tom, v kterém levelu se nachází a jaké je jeho aktuální skóre.

screenes – balíček obsahuje třídy implementující třídu Screen. Třída Screen

je dalším stavebním prvkem knihovny libGDX při vývoji her. Každý objekt

implementující tuto třídu představuje ve hře jednu obrazovku. V tomto balíčku se

tedy nachází jednotlivé obrazovky, které se vyskytují ve hře.

sprites – balíček obsahuje třídy, pomocí kterých jsou vytvořeny postavy

a body ve hře.

tools – balíček obsahující dvě třídy. Třídu WorldCreator, která se stará

o vytváření světa. Tato třída bude dále více popsána. Druhou třídou je třída

WorldContactListener. Tato třída má na starost řešení situace, kdy dojde ke kolizi

mezi běžcem (postava, kterou uživatel ovládá) a nepřítelem nebo s bodem.

utils – v tomto balíčku se nachází třídy, které obsahují konstanty, přístup

k nastavení aplikace (level, skóre, zda je naskenován správný QR kód).

Page 44: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

37

Obrázek 10: Struktura modulu core (zdroj: vlastní)

Dalším modulem, který je nutné popsat je modul android, viz obrázek č. 11.

Zde se nachází zdrojové kódy pro platformu Android. V kořenovém adresáři se

nachází třídy MainActivity a AndroidLauncher, dále se zde nachází osm balíčků.

Každý z těchto osmi balíčků představuje jinou část aplikace.

AndroidLauncher – jedná se o třídu, která umožňuje spuštění aplikace na

platformě Android a načíst kód, který se nachází v modulu core.

MainActivity – třída, která se stará o aktivitu v Androidu. Tato třída bude

dále podrobněji popsána.

determine – v balíčku se nachází čtyři třídy, které slouží jako pomocné

třídy pro určování požadovaných informací.

Page 45: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

38

dialogs – v tomto balíčku se nachází tři třídy, které obsahují podtřídy

AlertDialogu. Tyto podtřídy jsou potomky třídy Dialog. Třídy, které se nachází

v balíčku, slouží k zobrazení informačních nebo chybových dialogů.

dto – balíček obsahuje tři třídy, které slouží jako pomocné třídy pro

předávání dat. Jedná se o tzv. „Data transfer object“.

jsonParser – balíček obsahující jednu třídu, která slouží k parsování

odpovědi ze serveru. Pomocí této třídy je uživateli oznámeno, kde se nachází.

postData – balíček obsahuje jednu třídu, která převádí získaná data do

objektu ve formátu JSON a poté odešle post na příslušnou adresu serveru.

utils – tento balíček obsahuje dvě pomocné třídy. První třída obsahuje

konstanty a druhá třída má za úkol kontrolu, zda je povoleno a zda je aktivní

připojení k internetu nebo Wi-Fi síti.

wifiInfo – balíček obsahuje třídu WifiScanReceiver, která bude dále více

popsána.

xmlParser – v balíčku se nachází třída, která zajišťuje parsování XML

dokumentu. V tomto případě se jedná o parsování naskenovaného QR kódu. Pro

parsování je využit XmlPullParser, který je založen na postupném čtení kódu

složeného z tagů pomocí metody next().

Page 46: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

39

Obrázek 11: Struktura modulu android (zdroj: vlastní)

6.1.2 Ukázka implementace klientské části

První třídou, která byla zvolena pro ukázku implementace, je třída WorldCreator,

nacházející se v modulu core a stará o vytváření světa. V této třídě jsou vytvářeny

mapy, postavy a další. Vytváření těchto prvků probíhá pomocí načítání

objektových vrstev, které jsou vytvořeny pomocí Tiled Map Editor. Načítání

objektových vrstev je zachyceno na obrázku č. 12. Nejprve se načte příslušná

vrstva, které se přiřadí typ těla. Typ StaticBody je využit například u překážek

nebo bodů, kde objekt bude přesně na definovaných souřadnicích a nesmí se

pohybovat. Typ DynamicBody je využit u nepřítele (enemies), kde je vyžadováno,

Page 47: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

40

aby se pohyboval. Poté se nastaví, jaký má mít vytvořený objekt tvar (kruh nebo

krabice) a nastaví se rozměry.

Obrázek 12: Načítání objektových vrstev z Tiled Map Editor (zdroj: vlastní)

Další třídou, která byla zvolena pro ukázku, je třída WorldContactListener,

která má za úkol zachytávat kolize mezi běžcem (Runner) a ostatními prvky

a vyhodnocovat, co se má stát. Tato třída implementuje metody z třídy

ContactListener, která je vestavěnou třídou libGDX. V třídě WorldContactListener

se nachází metoda beginContact (Contact contact). Metoda je automaticky volána

při střetu běžce s nějakým prvkem, který se nachází v herním světě. Aby mohla být

tato metoda zavolána, je potřeba u běžce vytvořit senzory, které budou zachytávat

tuto událost.

Po zachycení události a detekování srážky dojde k vyhodnocení a určení, co

se má stát. Detekování srážek běžce s okolními prvky je zachyceno na obrázku

č. 13.

Page 48: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

41

Obrázek 13: Zjištění kolize běžce s překážkou a provedení příslušné operace (zdroj: vlastní)

Další třídou, u které bude nastíněná implementace, je třída Settings. V této

třídě se nacházejí metody, které mají za úkol načítat a ukládat skóre, level

a nastavení, zda je načten správný QR kód, pomocí kterého se odemyká další level.

Pro ukládání dat je využito tzv. properties souboru.

Poslední třídou z modulu core pro ukázku implementace je třída PlayScreen.

Tato třída má za úkol vykreslování herní scény. V této třídě je inicializována

kamera, která se má pohybovat s běžcem, aby bylo možné zobrazit herní svět. Dále

jsou zde inicializovány všechny potřebné objekty, aby bylo možné hrát hru. Jedná

se například o načtení světa, nepřátel, běžce. V této třídě se nachází metoda

update(float dt), která má za úkol zajišťovat a aktualizovat vykreslování světa. Tato

metoda reprezentuje stav běžící (running) a je volána v nekonečné smyčce. Jedná

se tedy o hlavní metodu, ve které se volají funkce pro vykreslení dat na obrazovku

a také funkce pro aktualizaci dat ve hře. V tomto případě se z metody volá metoda

update.

Page 49: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

42

Z modulu android je první třídou zvolenou k ukázce implementace třída

MainActivity dědící z Activity. Po ověření, dostupnosti aplikace Barcode scanner se

zavolá startActivityForResult(intent,0);, která dává najevo, že si přeje získat data

vrácená spuštěnou aktivitou. Získání těchto dat proběhne pomocí metody

onActivityResult(int requestCode, int resultCode, Intent intent). Aby spouštěcí

aktivita poznala, která spuštěná aktivita ji něco vrací, je využito resultCode.

V metodě onActivityResult(int requestCode, int resultCode, Intent intent)

dochází k ověření, zda se jedná o správný QR kód. Ověření probíhá pomocí metody

získání prvních tří a posledních osmi znaků a porovnání s předpokládanými

hodnotami. Po ověření správnosti QR kódu se porovná id QR kódu s číslem QR

kódu a pokud souhlasí, odemkne se další level. Pokud ne, dojde pouze

k naskenování QR kódu a odeslání otisků bezdrátových sítí a dalších informací na

server. Metoda je zachycená na obrázku číslo 14.

Page 50: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

43

Obrázek 14: Metoda onActivityResult (zdroj: vlastní)

Další třídou zvolenou z modulu android je třída WifiScanReceiver dědící od

třídy BroadcastReceiver. Ve třídě se nachází metoda onReceive(Context c,

Intent intent), pomocí které se zjišťují Wi-Fi sítě v okolí. Princip zjišťování

a ukládání bezdrátových sítí do ArrayListu je znázorněn na obrázku č. 15.

Page 51: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

44

Obrázek 15: Zjištění Wi-Fi sítí v okolí (zdroj: vlastní)

6.2 Serverová část

Zdrojové kódy této části byly napsány ve vývojovém prostředí IntelliJ IDEA

s frameworkem Spring MVC 4.2.0 RELEASE. Server běží nad databází od

společnosti Microsoft (MySQL).

6.2.1 Struktura aplikace

Serverová část aplikace je napsána pomocí architektury softwarového návrhového

vzoru MVC (Model View Controllor). Toto řešení od sebe odděluje datový model

aplikace, uživatelské rozhraní a řídící logiku do tří nezávislých komponent. Tento

model zaručuje, že modifikace některé komponenty má minimální vliv na ostatní

komponenty.

Na obrázku č. 16 je zachycená struktura javovského kódu, která je složená

z 10 balíčků a kde každý balíček představuje určitou část aplikace.

checkDatabase – jedná se o balíček, který obsahuje pomocné třídy, které

mají na starost zajistit, jestli se zadaný údaj nachází v databázi či ne.

controller – v balíčku se nachází controllery webového přístupu. Jejich

úkolem je přijímat požadavky od klienta a odesílat data uživateli.

domain – v tomto balíčku se nachází třídy, které se využívají pro přenos dat

objektů a zapouzdření dat, která jsou přenášena mezi vrstvami nebo subsystémy.

entity – třídy, které slouží pro vytváření objektů reprezentující data

v databázi. Typicky entitní třída reprezentuje tabulku v relační databázi a každá

instance této třídy odpovídá jednomu řádku v tabulce. Každá entitní třída musí

splňovat určité podmínky, jako jsou například anotace.

Page 52: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

45

enumeration – tento balíček obsahuje třídu, která obsahuje deklaraci

výčtového typu jednotlivých rolí, které mohou být nastaveny uživateli. Podle

těchto rolí jsou přidělena práva uživatelům.

position – balíček obsahuje třídu CalculateDistance pro výpočet uživatelské

pozice. Tato třída bude dále podrobněji popsána.

repository – v balíčku se nachází třídy přistupující k databázi. K databázi se

přistupuje pomocí modulu usnadňující implementaci repositářů postavených na

JPA29. Dotazy je možné skládat buď pomocí připravených CRUD30 operací nebo

pomocí anotací s JPQL31/HQL32 dotazy. Dotazy mohou být také složeny z prvků,

které mají obsahovat. Například: public User findUserByUsername(String

username);. Takto deklarovaný dotaz se přeloží do JPQL/HQL, který je poté předán

frameworku Hibernate, který dotaz převede na SQL dotaz, který je aplikován na

databázi.

security – zde se nachází třída, která má za úkol převést heslo do

zašifrované podoby pomocí BCryptPasswordEncoder, aby nebylo možné ho zjistit.

service – jedná se o mezivrstvu, přes kterou komunikují controllery

s domain. Balíček obsahuje rozhraní pro jednotlivé objekty. Nachází se zde balíček

imp, který obsahuje třídy implementující rozhraní a vytváří tak objekty.

validators – balíček obsahuje třídy, které mají za úkol provádět kontrolu

správnosti vyplněných formulářů na webové stránce.

29 JPA – Java Persistence API 30 CRUD – Create, Read, Update, Delete 31 JPQL – Java Persistence Query Language 32 HQL – Hibernate Query Language

Page 53: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

46

Obrázek 16: Struktura serverové části (zdroj: vlastní)

6.2.2 Ukázka implementace serverové části

Třída, která byla zvolena k ukázce implementace má za úkol ukládat pozici

uživatele s WiFi sítěmi v okolí. Nejprve je potřeba přijmou požadavek od klientské

části, o to se stará třída JsonController a v ní metoda addPoint. Metoda má vstupní

parametr JSON a je mapována na webovou adresu domena/json a metoda HTTP je

post. Vně metody se volá třída CheckPoint, obsahující metodu check();.

Page 54: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

47

Metoda check má za úkol zjistit, zda se daný bod nachází v databázi. Pokud

se najde shoda, je potřeba provést kontrolu Wi-Fi sítí. Pokud se v databázi nachází

všechny Wi-Fi sítě, provede se pouze update dat (navýšení počtu skenování,

přičtení aktuální intenzity, porovnání maximální a minimální intenzity). Pokud by

se síť v databázi nevyskytovala je potřeba ji přidat k existujícímu bodu. A pokud se

bod vůbec v databázi nenachází, je potřeba ho vytvořit a přiřadit k němu sítě

nacházející se v okolí. Na obrázku č. 17 je zachycen průběh zjištění, porovnání nebo

vytvoření bodu do databáze.

Obrázek 17: Zjištění zda se síť nachází v databázi (zdroj: vlastní)

Dále byl pro ukázku implementace vybrán požadavek na určení pozice

uživatele. Nejdříve se přijme požadavek od uživatele, to má za úkol třída

JsonController a v ní metoda getWifi, jak je vidět na obrázku č. 18. Vstupním

parametrem je JSON s aktuálními Wi-Fi sítěmi v okolí. Anotace nad třídou

znamená, že webový přístup bude následující domena/wifi a metoda HTTP je

POST. Uvnitř metody se volá třída CalculateDistance, pomocí niž dochází k výpočtu

pozice.

Page 55: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

48

Obrázek 18: Metoda pro přijmutí Wi-Fi sítí a vrácení odpovědi (zdroj: vlastní)

Třída CalculateDistance obsahuje metodu nearestPoint(), pomocí které je

určená nejpravděpodobnější poloha uživatele. Metoda je zachycená na obrázku

č. 19. V metodě se nejdříve načtou všechny body uložené v databázi. Poté se

porovnávají hodnoty ze vstupu s otisky, které se nacházejí v databázi. Pokud se

najde shoda, změní se hodnota z mínus 99 na hodnotu příslušného otisku. Když je

nalezena shoda hodnot na vstupu s hodnotou v databázi, příslušná hodnota ze

vstupu je odstraněna, aby docházelo k rychlejšímu prohledávání listu. Po projití

celého listu se vypočítává Euklidova vzdálenost, podle které se zjistí, který bod je

nejblíže k uživateli.

Page 56: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

49

Obrázek 19: Zjištění pozice uživatele (zdroj: vlastní)

Rovnice Euklidovy vzdálenosti spadá do algoritmů nejbližších sousedů

a vypadá následovně:

Rovnice 7 [46]

2)(= d ii ba

kde a, b jsou vektory o stejném počtu prvků a d je vypočtená vzdálenost.

Page 57: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

50

7 Shrnutí výsledků a testování

Výsledná aplikace splňuje všechny požadavky na aplikaci, které jsou zmíněny

v kapitole 5.1 Požadavky na aplikaci a jsou využity všechny popsané technologie.

Architektura aplikace klient – server je zvolená z důvodu, aby aplikace byla

co nejjednodušší a aby všechny složité výpočty byly odkloněny od klientské části

a prováděny na výkonném serveru. Dalším důvodem ke zvolení této architektury je

využití jednoho centrálního úložiště, které je dostupné všem uživatelům. Využití

databáze na straně serveru má výhodu v tom, že čím více měření bude v daném

místě provedeno, tím přesnější bude uložená hodnota otisku.

Nejdříve bylo potřeba navrhnout, jak bude probíhat sběr bezdrátových sítí

a bylo zaručeno, že každému otisku bude přiřazena poloha, kde byl otisk pořízen.

Z tohoto důvodu je využito QR kódů, které budou rozmístěny na určitá místa

v budově. Dalším důležitým bodem bylo navrhnout strukturu a obsah textu, který

se bude nacházet v QR kódu. Pro uložení dat do QR kódu je zvoleno formátu XML,

který umožňuje jednoduše a efektivně zpracovávat obsažený text. Formát

uloženého textu do QR kódu je zobrazen níže s vysvětlením. Dalším faktorem byla

motivace, jak přimět uživatele sbírat QR kódy. Z tohoto důvodu byla navržena

a vytvořena hra, kde je potřeba sbírat QR kódy, aby si uživatel musel odemykat

další mapy a mohl postupovat ve hře. Struktura QR kódu je následující:

<id>4</id><building>H</building><floor>2NP</floor><indication>J8</indicatio

n><area>15.219</area><doors>1</doors><priority>8</priority><typ>mistnost<

/typ><coordX>8.05</coordX><coordY>9.215</coordY>

id - datový typ int, unikátní číslo qr kódu

building - datový typ String, zkratka budovy

floor - datový typ String, určuje podlaží (1PP,1NP)

indication - datový typ String, název místnosti

area - datový typ double, velikost místnosti v m2

doors - datový typ int, počet dveří v místnosti

priority - datový typ int, udává prioritu místnosti (10 - chodba, 9 -

průchozí místnost, 8 – koncový pokoj)

Page 58: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

51

typ - datový typ String, určuje, o jaký typ místnosti se jedná (chodba,

výtah, mísnost) a zda je bezbariérový označení bz_TYP

coordX - datový typ double, pozice X místnosti

coordY - datový typ double, pozice Y místnosti

Obrázek č. 20 zachycuje návrh vytváření otisků bezdrátových sítí pomocí klientské

aplikace.

Obrázek 20: Vývojový diagram vytvoření otisku sítě (zdroj: vlastní)

Page 59: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

52

Na obrázku č. 21 je úvodní obrazovka s hlavním menu celé hry. Pomocí

tohoto menu uživatel může začít hrát hru nebo v ní pokračovat, přečíst si

nápovědu nebo ukončit hru.

Obrázek 21: Úvodní obrazovka (zdroj: vlastní)

Po spuštění hry se zobrazí obrazovka s herním světem, což zachycuje

obrázek č. 22. Z obrázku je patrné, že v levém dolním rohu se nachází ovládání pro

pohyb běžce do stran a v pravém dolním rohu se nachází tlačítko, pomocí něhož se

provádí skok. Dále je z obrázku patrné, že se zde nachází různé překážky. Jedná se

o krabice, které jsou většinou spojené s podkladem. Dále je zde vidět menší

krabice, která představuje bod, který může uživatel sbírat. Také jsou zde zobrazeni

nepřátelé. Jedná se o růžové kruhy s čepicí, které jde zničit skokem na jejich hlavu.

Dále za zmínění stojí zobrazení aktuálního skóre a levelu.

Page 60: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

53

Obrázek 22: Začátek hry (zdroj: vlastní)

Obrázek č. 23 zachycuje místo, pomocí kterého je možné se dostat do

dalšího levelu. Jedná se o horu před běžcem. Pro přejití do dalšího levelu je potřeba

vyskočit na horu a zmáčknou šipku nahoru. Tím dojde k ukončení aktuálního

levelu.

Obrázek 23: Místo, pomocí kterého se dostane běžec do dalšího levelu (zdroj: vlastní)

Po dokončení levelu se uživateli zobrazí instrukce, které je potřeba vykonat

pro odemčení další mapy. Tyto instrukce zachycuje obrázek č. 24. Po dojití na dané

místo je potřeba zmáčknout tlačítko „Skenovat“ a poté se zobrazí obrazovka

s dvěma tlačítky „start scan“ a „position“. Pomocí tlačítka „start scan“ se přejde do

aplikace Barcode Scanner a je možné naskenovat příslušný QR kód. Pomocí tlačítka

„position“ se dá určit poloha, kde se uživatel nachází. Po naskenování správného

kódu se odblokuje mapa a uživatel může pokračovat ve hře.

Page 61: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

54

Obrázek 24: Místo, kde se nachází QR kód pro otevření další mapy (zdroj: vlastní)

Na obrázku č. 25 je zobrazen webový server s tabulkou obsahující již

naskenované QR kódy spolu s informacemi, které obsahují dané kódy. V pravé části

tabulky se v každém řádku nachází dvě tlačítka. Pomocí prvního tlačítka se uživatel

dostane na přehled Wi-Fi sítí v okolí, viz obrázek č. 26. Pomocí druhého tlačítka

dojde ke smazání daného QR kódu s Wi-Fi sítěmi náležícími danému kódu.

Obrázek 25: Přehled naskenovaných bodů (zdroj: vlastní)

Page 62: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

55

Obrázek 26: Přehled příslušných Wi-Fi sítí u daného bodu (zdroj: vlastní)

Testování finální aplikace bylo rozděleno do několika částí. Nejprve se

testovala klientská část. U ní se v první řadě testovalo zjišťování Wi-Fi sítí v okolí

a jejich intenzity, zjištění mobilního operátora, typ a výrobce zařízení a verzi

operačního systému. Zde bylo potřeba se zaměřit na zařízení, které nepodporují

SIM karty, aby se u těchto zařízení nezjišťoval operátor. Dále se u klientské části

testovala hra. Zde se kladl důraz, aby se na různých obrazovkách stejně

vykreslovala. Především tlačítka sloužící k ovládání postavy, aby při hraní

docházelo k požadovanému chování apod.

Dalším krokem testování byla serverová část. Zde se testovalo ukládání

a aktualizování záznamů v databázi a jejich správa. Zde bylo potřeba upravit

ukládání otisků bezdrátových sítí z důvodu, že každé zařízení na stejné pozici

získalo otisk bezdrátových sítí s různými intenzitami. Při testování

nejpravděpodobnější pozice, kde se nachází uživatel, docházelo ke zdlouhavému

a náročnému výpočtu. Z časové úspory a snížení vytížení HW zařízení byl výpočet

upraven, aby byl jednodušší a snížil se čas a zatížení HW.

Posledním dílčím krokem bylo opět testování klientské aplikace a to

přesnost určování pozice zařízení na počtu Wi-Fi sítí v okolí, což zachycují

následující tabulky. Tímto krokem se zjišťuje přesnost získaných otisků.

Page 63: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

56

název místnosti

vzdálenost 1m vzdálenost 2m

pokus č. 1 pokus č. 2 pokus č. 3 pokus č. 1 pokus č. 2 pokus č. 3

místnost 1 ANO ANO ANO ANO ANO ANO

místnost 2 ANO ANO ANO - - -

místnost 3 ANO ANO ANO ANO NE ANO

místnost 4 ANO ANO ANO ANO ANO ANO

místnost 5 ANO ANO ANO ANO ANO ANO

místnost 6 ANO ANO ANO ANO ANO ANO

místnost 7 ANO ANO ANO ANO ANO ANO Tabulka 5: Zjištění, zda se jedná o stejnou místnost v určité vzdálenosti od QR kódu (zdroj:

vlastní)

Jak můžeme vidět, v tabulce číslo 5 je znázorněno určování polohy pomocí

QR kódů, které se nacházejí ve středu místností. Měření bylo provedeno v každé

místnosti v určité vzdálenosti, která je uvedená v tabulce. Pro každou vzdálenost

byla provedena tři měření. Když se uživatel nacházel v dané místnosti, do tabulky

byla doplněna hodnota ANO, pokud ne, tak hodnota NE. U místnosti číslo 2

nemohlo být provedeno měření ve vzdálenosti dvou metrů z důvodu malého

rozměru místnosti.

Na základě tohoto úsudku a měření lze říci, že získané otisky jsou přesné

a dají se využít v reálném světě pro vnitřní navigaci.

Page 64: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

57

8 Závěr

Cílem práce bylo naprogramování hry „My Game“, která slouží k získávání otisků

bezdrátových sítí a vytvoření webového serveru, na který se budou ukládat

získané otisky bezdrátových sítí.

Samotná hra, která je určená pro platformu Android je postavena na herní

knihovně libGDX s fyzikálním rozšířením Box2D. Hra dále využívá externí aplikace

Barcode Scanner, pomocí níž jsou skenovány QR kódy. Webový server je postaven

na programovacím jazyce Java s frameworkem Spring MVC a databází MySQL.

Server slouží jako centrální úložiště otisků bezdrátových sítí a dále na něm

probíhají výpočty uživatelovi pozice.

Tento text shrnul techniky využitelné pro indoor navigace. Věnoval se

popisu existujících technik pro navigaci, kde zdůraznil jejich specifické vlastnosti.

Dále se zde nachází algoritmy, pomocí nichž je možné určit pozici uživatele.

V teoretické části jsou dále popsány typy síťové komunikace a modely síťové

architektury.

Testování aplikace bylo prováděno na reálných zařízeních HTC Desire X,

s operačním systémem Android verze 4.1.1 a Nexus 7 2013 s verzí operačního

systému Android 6.0.1. U testování nenastaly žádné problémy mezi kompatibilitou

systému a aplikace, všechny požadované informace se podařilo získat. Pouze

u zařízení Nexus 7 2013 nebylo možné získat informace o operátorovi, protože

neobsahuje 3G modul.

Co se týče možnosti budoucího vývoje hry, je potřeba se zaměřit na její

úpravu. Zde je potřeba především vytvořit grafické prvky, které nejsou součástí

této práce a z tohoto důvodu nebyly implementovány. Mezi další rozšíření by

mohlo patřit vytvoření více hracích map, které by obsahovaly těžší překážky

a další nástrahy.

Další rozšíření by mohlo dostat i určování polohy, kde by bylo vhodné

doplnit mapové podklady a v nich vykreslovat pozici uživatele.

Na straně serveru by mohlo dojít v budoucnu k vytvoření jednotlivých

uživatelských profilů pro hráče, kteří by byli registrováni ve hře. Pomocí

registrovaných profilů by se dalo zjišťovat, zda hráč byl opravdu na určitém místě

Page 65: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

58

a pokud by došlo k podvádění, tak by bylo možné ho smazat ze systému

a znemožnit mu hraní hry.

Page 66: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

59

9 Seznam použité literatury

1. Nejstarší mapa světa má čtrnáct tisíc let. Deník.cz [online]. 7. srpen 2009 [vid. 27. leden 2016]. Získáno z: http://www.denik.cz/ze_sveta/nejstarsi-mapa-sveta-ma-ctrnact-tisic-let20090806.html

2. Global positioning system, standard positioning service, performance standard [online]. 2008. Získáno z: http://www.gps.gov/technical/ps/2008-SPS-performance-standard.pdf

3. První smartphone na světě je na prodej, připravte si nejméně 16 000 korun - iDNES.cz [online]. [vid. 18. listopad 2015]. Získáno z: http://mobil.idnes.cz/prvni-smartphone-sveta-ibm-simon-v-aukci-na-ebay-ftm-/mob_tech.aspx?c=A120908_161925_mob_tech_vok

4. Smartphonům je 20 let. Projděte si jejich historii. iDNES.cz [online]. [vid. 18. listopad 2015]. Získáno z: http://mobil.idnes.cz/smartphonum-je-20-let-projdete-si-jejich-historii-fus-/mob_tech.aspx?c=A121028_220246_mob_tech_vok

5. Mobile marketing statistics 2016. Smart Insights [online]. 22. červenec 2015 [vid. 1. únor 2016]. Získáno z: http://www.smartinsights.com/mobile-marketing/mobile-marketing-analytics/mobile-marketing-statistics/

6. SCHEJBAL, Ctirad (1936- ), Vladimír HOMOLA a František STANĚK. Geoinformatika. [Seňa]: PONT, 2004. ISBN 80-967611-8-8.

7. ZHANG, Peng, Qile ZHAO, You LI, Xiaoji NIU, Yuan ZHUANG a Jingnan LIU. Collaborative WiFi Fingerprinting Using Sensor-Based Navigation on Smartphones. Sensors [online]. 2015, roč. 15, č. 7, s. 17534–17557. Získáno z: doi:10.3390/s150717534

8. THALJAOUI, A., T. VAL, N. NASRI a D. BRULIN. BLE localization using RSSI measurements and iRingLA. In: 2015 IEEE International Conference on Industrial Technology (ICIT): 2015 IEEE International Conference on Industrial Technology (ICIT) [online]. 2015, s. 2178–2183. Získáno z: doi:10.1109/ICIT.2015.7125418

9. O službě - Mapy Google [online]. [vid. 23. prosinec 2015]. Získáno z: https://www.google.com/maps/about/partners/indoormaps/

10. A new frontier for Google Maps: mapping the indoors. Official Google Blog [online]. [vid. 4. únor 2016]. Získáno z: https://googleblog.blogspot.com/2011/11/new-frontier-for-google-maps-mapping.html

Page 67: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

60

11. KOS, Antonín Trčálek, Dušan. Nový standard Wi-Fi: Gigabit vzduchem. Živě.cz [online]. [vid. 11. únor 2016]. Získáno z: http://www.zive.cz/clanky/novy-standard-wi-fi-gigabit-vzduchem/sc-3-a-165687/

12. HUFF, Lisa. How Wireless Local Area Networks Affect Connector Content. Connector and Cable Assembly Supplier [online]. 2. únor 2015 [vid. 11. únor 2016]. Získáno z: http://www.connectorsupplier.com/how-wireless-local-area-networks-affect-connector-content/

13. Cumberland, MD [online]. Získáno z: http://www.cumberlandmd.gov/DocumentCenter/View/962

14. A.S, Mladá fronta. Wi-Fi: Jak si zajistit velké pokrytí, rychlost a silný signál - 2 .kapitola. Živě.cz [online]. [vid. 13. únor 2016]. Získáno z: http://www.zive.cz/clanky/wi-fi-jak-si-zajistit-velke-pokryti-rychlost-a-silny-signal/anteny-a-jejich-nastaveni-deformace-a-ztrata-signalu-mereni/sc-3-a-172347-ch-90933/

15. What is 802.15? - Definition from WhatIs.com. SearchMobileComputing [online]. [vid. 14. únor 2016]. Získáno z: http://searchmobilecomputing.techtarget.com/definition/80215

16. Bluetooth Power Classes: Class 1, 2 and 3 [online]. [vid. 16. únor 2016]. Získáno z: http://bluetoothinsight.blogspot.cz/2008/01/bluetooth-power-classes.html

17. Mobile Marketing conference 2014: iBeacons jsou budoucností geolokačního marketingu. www.m-journal.cz [online]. [vid. 16. únor 2016]. Získáno z: http://www.m-journal.cz/cs/podpora-prodeje/mobile-marketing-conference-2014--ibeacons-jsou-budoucnosti-geolokacniho-marketingu__s282x10898.html

18. How does an Estimote Beacon work? Estimote Community Portal [online]. [vid. 16. únor 2016]. Získáno z: http://community.estimote.com/hc/en-us/articles/204086423-How-does-an-Estimote-Beacon-work-

19. WEBSERVIS.CZ. RFID ve výrobě a skladech? [online]. [vid. 17. únor 2016]. Získáno z: http://www.systemonline.cz/clanky/rfid-ve-vyrobe-a-skladech.htm

20. Id Karta - identifikační systémy. RFID - Identifikace - ČIPY, karty a náramky [online]. [vid. 17. únor 2016]. Získáno z: http://www.id-karta.cz/identifikace-3/rfid-34/

21. (WWW.OPTIMATO.CZ), Optimato a SKA TOM TOM, RAM, ZEM. Obecně o RFID technologii - Eprin. Čárové kódy, sklady, etiketovací systémy [online]. [vid. 17. únor 2016]. Získáno z: http://www.eprin.cz/rfid-technologie.html

Page 68: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

61

22. KOCHANÍČEK, Bc Ludvík. Seznámení s RFID čipy. http://www.kodys.cz/rfid.html http://www.eprin.cz/index.php?info=r-tech http://www.rfidportal.cz/ http://cs.wikipedia.org/wiki/RFID http://www.kzk.cz/carovy-kod-rfid A. Dokoupil - Podpora práce s RFID čipy ve firemním informačním systému [online]. 16. únor 2011 [vid. 17. únor 2016]. Získáno z: http://coptel.coptkm.cz/index.php?action=2&doc=12149

23. NAVIGÁTOR PRO NEVIDOMÉ - Navigační slepecká hůl | Helpnet. AVIGÁTOR PRO NEVIDOMÉ - Navigační slepecká hůl | Helpnet [online]. Získáno z: http://www.helpnet.cz/aktualne/navigator-pro-nevidome-navigacni-slepecka-hul

24. Jak se zjišťuje poloha mobilního telefonu? iDNES.cz [online]. 23. červenec 2001 [vid. 20. únor 2016]. Získáno z: http://mobil.idnes.cz/jak-se-zjistuje-poloha-mobilniho-telefonu-fi3-/mob_tech.aspx?c=A010719_0036942_mob_tech

25. 3. Base Station Subsystem (BSS) - gsmtheory [online]. [vid. 20. únor 2016]. Získáno z: https://sites.google.com/site/gsmtheory/home/4-2-bearer-independent-circuit-switched-core-network-umts-release-4-/3-base-station-subsystem-bss-

26. WWW.OXYONLINE.CZ, oxy Online s r o. Fotomobily: snímací čipy CMOS vs. CCD. Digimanie.cz [online]. [vid. 21. únor 2016]. Získáno z: http://www.digimanie.cz/fotomobily-snimaci-cipy-cmos-vs-ccd/2885

27. ADAMS, Martin David. Sensor Modelling, Design and Data Processing for Autonomous Navigation. B.m.: World Scientific, 1999. ISBN 978-981-02-3496-6.

28. CHOI, S., T. JIN a J. LEE. Obstacle avoidance algorithm for visual navigation using ultrasonic sensors and a CCD camera. Artificial Life and Robotics [online]. 2003, roč. 7, č. 3, s. 132–135. ISSN 1433-5298, 1614-7456. Získáno z: doi:10.1007/BF02481161

29. KOHOUTEK, Tobias K., Rainer MAUTZ a Andreas DONAUBAUER. Real-time indoor positioning using range imaging sensors. In: [online]. 2010, s. 77240K–77240K–8 [vid. 21. únor 2016]. Získáno z: doi:10.1117/12.853688

30. MAUTZ RAINER a TILCH SEBASTIAN. Survey of optical indoor positioning systems. IPIN. 2011, roč. 11, s. 1–7.

31. HENNIGES ROBIN. Current approaches of Wi-Fi positioning. IEEE Conference Publications. nedatováno, roč. 2012, s. 1–8.

32. MAHIDDIN, Nor Aida, Noaizan SAFIE, Elissa NADIA, Suhailan SAFEI a Engku FADZLI. INDOOR POSITION DETECTION USING WIFI AND TRILATERATION TECHNIQUE. In: The International Conference on Informatics and Applications (ICIA2012) [online]. B.m.: The Society of Digital Information and Wireless

Page 69: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

62

Communication, 2012, s. 362–366 [vid. 20. prosinec 2015]. Získáno z: http://sdiwc.net/digital-library/indoor-position-detection-using-wifi-and-trilateration-technique

33. RVMILLER. Wifi-based trilateration on Android. Ryan Miller’s Blog [online]. [vid. 5. březen 2016]. Získáno z: http://rvmiller.com/2013/05/part-1-wifi-based-trilateration-on-android/

34. NAYEF ALSINDI, Xinrong Li. Analysis of Time of Arrival Estimation Using Wideband Measurements of Indoor Radio Propagations. Instrumentation and Measurement, IEEE Transactions on [online]. 2007, roč. 56, č. 5, s. 1537–1545. ISSN 0018-9456. Získáno z: doi:10.1109/TIM.2007.904481

35. MAHALIK, Nitaigour P. Sensor Networks and Configuration: Fundamentals, Standards, Platforms, and Applications. B.m.: Springer Science & Business Media, 2007. ISBN 978-3-540-37366-7.

36. WEBB, T. A., P. D. GROVES, P. A. CROSS, R. J. MASON a J. H. HARRISON. A new differential positioning method using modulation correlation of signals of opportunity. In: Position Location and Navigation Symposium (PLANS), 2010 IEEE/ION: Position Location and Navigation Symposium (PLANS), 2010 IEEE/ION [online]. 2010, s. 972–981. Získáno z: doi:10.1109/PLANS.2010.5507270

37. III, Stanley L. Cebula. Empirical Channel Model for 2.4GHz IEEE 802.11 WLAN *. 2012.

38. QUAN, Michael, Eduardo NAVARRO a Benjamin PEUKER. Wi-Fi Localization Using RSSI Fingerprinting. Computer Engineering [online]. 2010. Získáno z: http://digitalcommons.calpoly.edu/cpesp/17

39. CHEN, Lina, Binghao LI, Kai ZHAO, Chris RIZOS a Zhengqi ZHENG. An Improved Algorithm to Generate a Wi-Fi Fingerprint Database for Indoor Positioning. Sensors [online]. 2013, roč. 13, č. 8, s. 11085–11096. Získáno z: doi:10.3390/s130811085

40. DAVISON, Andrew. Killer Game Programming in Java. B.m.: O’Reilly Media, Inc., 2005. ISBN 978-0-596-55290-9.

41. MANAGEMENTMANIA. Architektura klient-server. ManagementMania.com [online]. [vid. 7. červenec 2016]. Získáno z: https://managementmania.com/cs/architektura-klient-server

42. CHROUST, Martin. Google mění Android: přepněte si na ART. MobilMania.cz [online]. [vid. 11. červenec 2016]. Získáno z: http://www.mobilmania.cz/bleskovky/google-meni-android-prepnete-si-na-art/sc-4-a-1325316/default.aspx

Page 70: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

63

43. S.R.O, oxy Online. OpenGL ES 2.0: plně programovatelná 3D akcelerace pro mobilní zařízení i PS3. Svethardware.cz [online]. [vid. 13. červenec 2016]. Získáno z: http://www.svethardware.cz/opengl-es-20-plne-programovatelna-3d-akcelerace-pro-mobilni-zarizeni-i-ps3/12396

44. OpenGL ES 3.1 je hotové. Mobilním GPU dává compute shader a další nové funkce | Cnews.cz [online]. [vid. 13. červenec 2016]. Získáno z: http://www.cnews.cz/opengl-es-31-je-hotove-mobilnim-gpu-dava-compute-shader-dalsi-nove-funkce

45. libgdx [online]. [vid. 12. červenec 2016]. Získáno z: https://libgdx.badlogicgames.com/features.php

46. WEISSTEIN, Eric W. Distance [online]. [vid. 6. srpen 2016]. Získáno z: http://mathworld.wolfram.com/Distance.html

Page 71: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

64

10 Seznam obrázků

Obrázek 1: Princip stanovení polohy změřením časového intervalu [6] ........................ 4

Obrázek 2: Princip stanovení polohy změřením délek [6] ..................................................... 5

Obrázek 3: Obchod v Minneapolis v USA se službou GPS a IPS [10] ................................. 6

Obrázek 4: Šíření signálu všesměrovou anténou [14] .............................................................. 9

Obrázek 5: Princip fungování iBeaconu [18] ............................................................................. 12

Obrázek 6: Všesměrové a sektorové BTS stanice [25] .......................................................... 15

Obrázek 7: Trilaterace pomocí tří přístupových bodů a) přesná poloha b) hrubý

odhad polohy [33] ................................................................................................................................... 19

Obrázek 8: Určení pozice pomocí metody „otisku signálu“ [39] ...................................... 22

Obrázek 9: Klient-server a peer-to-peer [40] ............................................................................ 25

Obrázek 10: Struktura modulu core (zdroj: vlastní) .............................................................. 37

Obrázek 11: Struktura modulu android (zdroj: vlastní) ...................................................... 39

Obrázek 12: Načítání objektových vrstev z Tiled Map Editor (zdroj: vlastní) ........... 40

Obrázek 13: Zjištění kolize běžce s překážkou a provedení příslušné operace

(zdroj: vlastní) .......................................................................................................................................... 41

Obrázek 14: Metoda onActivityResult (zdroj: vlastní) .......................................................... 43

Obrázek 15: Zjištění Wi-Fi sítí v okolí (zdroj: vlastní) ........................................................... 44

Obrázek 16: Struktura serverové části (zdroj: vlastní)......................................................... 46

Obrázek 17: Zjištění zda se síť nachází v databázi (zdroj: vlastní) ................................. 47

Obrázek 18: Metoda pro přijmutí Wi-Fi sítí a vrácení odpovědi (zdroj: vlastní) ..... 48

Obrázek 19: Zjištění pozice uživatele (zdroj: vlastní) ........................................................... 49

Obrázek 20: Vývojový diagram vytvoření otisku sítě (zdroj: vlastní) ........................... 51

Obrázek 21: Úvodní obrazovka (zdroj: vlastní)........................................................................ 52

Obrázek 22: Začátek hry (zdroj: vlastní) ..................................................................................... 53

Obrázek 23: Místo, pomocí kterého se dostane běžec do dalšího levelu (zdroj:

vlastní) .......................................................................................................................................................... 53

Obrázek 24: Místo, kde se nachází QR kód pro otevření další mapy (zdroj: vlastní)

.......................................................................................................................................................................... 54

Obrázek 25: Přehled naskenovaných bodů (zdroj: vlastní) ............................................... 54

Obrázek 26: Přehled příslušných Wi-Fi sítí u daného bodu (zdroj: vlastní) .............. 55

Page 72: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

65

11 Seznam tabulek

Tabulka 1: Přehled standardů IEEE 802.11 [12] ........................................................................ 8

Tabulka 2: Útlum Wi-Fi signálu na základě materiálu [13] ................................................... 8

Tabulka 3: Rozdělení zařízení podle výkonnosti [16] ........................................................... 11

Tabulka 4: Rozdělení RFID podle standardizovaných nosných komunikačních

frekvencí [20] [21] .................................................................................................................................. 13

Tabulka 5: Zjištění, zda se jedná o stejnou místnost v určité vzdálenosti od QR kódu

(zdroj: vlastní) .......................................................................................................................................... 56

Page 73: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

66

12 Seznam rovnic

Rovnice 1 [6] ................................................................................................................................................. 4

Rovnice 2 [6] ................................................................................................................................................. 4

Rovnice 3 [32] ........................................................................................................................................... 19

Rovnice 4 ..................................................................................................................................................... 19

Rovnice 5 ..................................................................................................................................................... 20

Rovnice 6 [37] ........................................................................................................................................... 21

Rovnice 7 [46] ........................................................................................................................................... 49

Page 74: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

67

Příloha č.1 - CD

Součástí diplomové práce je CD s následujícím obsahem:

zdrojové kódy aplikace (klient – server)

diplomová práce v digitální podobě

manuál

qr kódy

sql insert do tabulky User a UserRole

Page 75: Univerzita Hradec Králové1 1 Úvod Již od pradávna je pro člověka důležité určování polohy, orientace a plánování trasy z počátečního bodu A do koncového bodu B

68