Professional Documents
Culture Documents
Instytut Informatyki
Łódź, 9.05.2023
Instytut Informatyki
90-924 Łódź, ul. Wólczańska 215, budynek B9
tel. 042 631 27 97, 042 632 97 57, fax 042 630 34 14 email: office@ics.p.lodz.pl
i
Abstract
English
The aim of the work was to create an alternative system of indoor location. The
solution is based on the Bluetooth protocol. Compared to the existing solutions, the
novelty is the use of dynamic infrastructure, i. e. the need to install dedicated devices
and instead the use of already existing electronic equipment, household appliances,
computers or mobile phones. In addition, this infrastructure can be managed in
real time via the administration interface. The system also has the ability to detect
the location of devices without dedicated software, such as wireless headphones or
watches, as long as they emit a Bluetooth Low Energy signal. As part of the project,
software for android phones and Linux computers was created. We also implemented
a server application that sets and records location history, as well as an interface
for visualizing positions on the map. A location determination algorithm has also
been designed, which, by taking into account the mutual location of users, makes
it possible to determine the position of devices even with very few reference points.
Using the implemented system, an experiment was conducted, where the accuracy
of measuring location in a living space of 120 m2 with the presence of 10 devices (6
rasperry pi, watch, keychain, desktop computer and mobile phone) was tested. As
a result of the measurements, an average measurement error of about 3 meters was
determined.
ii
Polish
iii
Spis treści
1 Wstęp 2
1.1 problematyka i zakres pracy . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 opis problemu . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 zastosowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.3 hipoteza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Cele pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Metoda Badawcza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Przegląd literatury w dziedzinie . . . . . . . . . . . . . . . . . . . . . 5
1.5 Układ pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 IPS 7
2.1 definicje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 rozwiązania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.1 GPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2 IPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.3 Algorytmy range-based . . . . . . . . . . . . . . . . . . . . . . 10
2.2.4 Algorytmy range-free . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 wady . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3 Opis Technologii 13
3.1 Definicje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Sprzęt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3 Oprogramowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3.1 aplikacje użytkownika . . . . . . . . . . . . . . . . . . . . . . . 15
3.3.2 aplikacje administracyjne . . . . . . . . . . . . . . . . . . . . . 15
iv
SPIS TREŚCI SPIS TREŚCI
4 Opis Projektu 22
4.1 Analiza wymagań . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1.1 studium możliwości . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1.2 wymagania funkcjonalne . . . . . . . . . . . . . . . . . . . . . 24
4.1.3 ograniczenia projektu . . . . . . . . . . . . . . . . . . . . . . . 25
4.2 Algorytm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2.1 źródło danych . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2.2 struktura danych . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2.3 wyznaczanie pozycji . . . . . . . . . . . . . . . . . . . . . . . 28
4.3 Architektura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.4 konserwacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5 Implementacja 37
5.1 tribeacon-server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.1.1 Kod Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.1.2 Kod JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.2 tribeacon-emulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3 tribeacon-client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3.1 tribeacon-linux . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3.2 tribeacon-android . . . . . . . . . . . . . . . . . . . . . . . . . 40
6 Eksperyment 41
6.1 Opis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.2 Wizualizacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.3 Wyniki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7 Dyskusja 49
7.1 Założenia zrealizowane . . . . . . . . . . . . . . . . . . . . . . . . . . 49
v
SPIS TREŚCI SPIS TREŚCI
Bibliografia 55
Spis rysunków 57
Spis tabel 58
A Instrukcja uruchomienia 59
A.1 TriBeacon Serwer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
A.2 TriBeacon Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
A.3 TriBeacon Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
A.4 TriBeacon Emulator . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
1
Rozdział 1
Wstęp
2
ROZDZIAŁ 1. WSTĘP 1.1. PROBLEMATYKA I ZAKRES PRACY
1.1.2 zastosowanie
2. nawigacja
3. bezpieczeństwo
(a) weryfikacja miejsc zajmowanych przez gości np. w teatrze, kinie, na kon-
cercie
1.1.3 hipoteza
3
1.2. CELE PRACY ROZDZIAŁ 1. WSTĘP
4
ROZDZIAŁ 1. WSTĘP 1.4. PRZEGLĄD LITERATURY W DZIEDZINIE
"Range Based" [1] oraz "Range Free" [2] (zwane także "Fingerprinting"), bę-
dących przekrojowym opisem powszechnie stosowanych systemów i technik
IPS.
2. istniejące IPS
Co do samych IPS przeważająca część informacji to materiały reklamowe, pro-
mujące i zachęcające do zakupu gotowych już systemów. Inforamcje tego typu
trudno uznać za wiarygodne źródło informacji. Znaleziono jednak dwie prace
naukowe [2] [3] opisujące przekrojowo stosowane systemy IPS, obie pozycje w
języku angielskim.
3. protokół bluetooth
W studium technologii bluetooth wykorzystano oficjalną dokumentację biblio-
tek i narzędzi wykorzystanych w implementacji [4], z czego więkoszść urzymy-
wana jest zarówno w wersji angielskiej jak i polskiej.
4. narzędzia i technologie
Wybór narzędzi dokonany został na podstawie oficjalnych dokumentacji bi-
bliotek i frameworków [5] [6] [7] [8] [9] oraz dotychczasowych doświadczeń
5
1.5. UKŁAD PRACY ROZDZIAŁ 1. WSTĘP
6. Rozdział szósty zawiera opis oraz wyniki eksperymentu mającego na celu wy-
znaczenie dokładności zaproponowanego IPS
6
Rozdział 2
7
2.1. DEFINICJE ROZDZIAŁ 2. IPS
transmitowanego sygnału.
8
ROZDZIAŁ 2. IPS 2.2. ROZWIĄZANIA
2.2.1 GPS
GPS jest oparty o połączenie satelitarne o średniej dokładności 5 metrów [10], jed-
nak błąd pomiarowy wzrasta w pomieszczeniach zamkniętych. Ze względu na zróż-
nicowaną strukturę budynków może osiągać wartości zbliżone do rozmiaru całej
budowli. Jest to dokładność uniemożliwiająca wykorzystanie GPS dla większości
systemów wykorzystujących lokalizację wewnątrzbudynkową. Pomijając jednak ten
aspekt, GPS jest najczęściej stosowaną w praktyce metodą lokalizacji, stosowaną
w nieprzerwanie od wielu lat na masową skalę w nawigacji samochodowej i pieszej,
transporcie, tworzeniu map, technologiach wojskowych itd. W większości tego ty-
pu zastosowań przybliżona dokładność 5 metrów jest w zupełności wystarczająca.
W pewnych szczególnych przypadkach, takich jak technologie wojskowe stosowany
jest GPS o większej dokładności, dochodzącej nawet do kilku centymetrów. Jest to
jednak rozwiązanie niestosowane komercyjnie ze względu na wysokie koszty oraz
ekskluzywny charakter infrastruktury GPS.
2.2.2 IPS
1. Wifi
2. Bluetooth
9
2.2. ROZWIĄZANIA ROZDZIAŁ 2. IPS
Algorytmy tego typu [1] polegają na wyznaczaniu lokalizacji przy użyciu pewnych
parametrów sygnału Bluetooth lub WiFi. Najczęściej stosowane parametry: RSSI,
pomiar kąta, Tx-Power, LQ. Głównym założeniem jest obliczenie pozycji urządze-
nia przy pomocy obliczeń np. trygonometrycznych uwzględniających odległości lub
kąty między odbiornikiem a nadajnikiem. Rozwiązania tego typu ściśle polegają na
parametrach transmitowanego sygnału, tak więc wymagają stosowania jednakowych
sensorów o odpowiednim poziomie zaawansowania. Np. Bluetooth 4.0 zainstalowany
w większości telefonów starszych niż 3 lata, nie obsługuje opcji takich jak Tx-power
control czy pomiar kąta między urządzeniami.
Algorytmy te stosują tak zwany fingerprinting [2], a więc metodę wyznaczania lo-
kalizacji przy pomocy wcześniej przeprowadzonych pomiarów treningowych. W tego
typu systemach również obecna jest stała sieć kotwic, jednak nie wymaga ona jed-
nolitości stosowanych urządzeń czy mocy sygnału. W algorytmach range-free po
zainstalowaniu infrastruktury przeprowadza się serię pomiarów, w których zaznacza
się rzeczywistą lokalizację urządzenia zaraz po wykonaniu skanu przez odbiornik. Te
pomiary, wraz z przyporządkowaną im lokalizacją są zwane zbiorem treningowym.
Po zakończeniu tej fazy cały zbiór treningowy trafia do bazy danych. Wyznaczanie
lokalizacji odbywa się na zasadzie przyporządkowania najbardziej podobnego skanu
ze zbioru treningowego.
10
ROZDZIAŁ 2. IPS 2.3. WADY
2. WiFi
4. Algorytmy range-based
11
2.3. WADY ROZDZIAŁ 2. IPS
5. Algorytmy range-free
12
Rozdział 3
Opis Technologii
3.1 Definicje
13
3.2. SPRZĘT ROZDZIAŁ 3. OPIS TECHNOLOGII
3.2 Sprzęt
1. Telefon Komórkowy
Urządzenie wykorzystywane jako aktywna kotwica, aktywny użytkownik oraz
narzędzie do przeprowadzania pomiarów. Wymagania sprzętowe:
— połączenie z internetem
2. Raspberry Pi Zero W
Urządzenie wykorzystywane jako aktywna kotwica, Zostało wykorzystane ze
względu na dostępność urzdądzeń tego modelu w laboratorium Instytutu In-
formatyki. (50 - metrowy przewód ethernetowy z rozmieszczonymi co około 7
metrów Raspberry pi)
— system Raspbian
— połączenie Ethernetowe
— lokalizator do kluczy
— dostęp do internetu
14
ROZDZIAŁ 3. OPIS TECHNOLOGII 3.3. OPROGRAMOWANIE
3.3 Oprogramowanie
15
3.4. TECHNOLOGIE ROZDZIAŁ 3. OPIS TECHNOLOGII
1. Java [12]
Obiektowy język programowania wysokiego poziomu, stworzony przez Jamesa
Goslinga i jego zespół w Sun Microsystems (obecnie należy do Oracle Cor-
poration) w latach 90. Java jest jednym z najbardziej popularnych języków
programowania na świecie, a jego główną zaletą jest to, że jest platformą nie-
zależną, co oznacza, że kod napisany w języku Java może być uruchamiany
na każdym urządzeniu, które posiada JVM (Java Virtual Machine). Java, ze
16
ROZDZIAŁ 3. OPIS TECHNOLOGII 3.4. TECHNOLOGIE
2. JavaScript [13]
Interpretowany, dynamiczny język programowania, stworzony w latach 90.
przez Brendan Eich dla firmy Netscape. Jest językiem skryptowym, co ozna-
cza, że jego kod jest wykonywany przez przeglądarkę internetową. JavaScript
jest głównym językiem stosowanym do tworzenia interaktywnych elementów
na stronach internetowych, takich jak formularze i animacje. JavaScript jest
również używany poza przeglądarkami, np. jako język do tworzenia aplikacji
serwerowych (Node.js) oraz aplikacji desktopowych i mobilnych. JavaScript
jest jednym z najważniejszych języków programowania na świecie i jest wciąż
intensywnie rozwijany. W projekcie został wykorzystany do stworzenia inter-
fejsu użytkownika dla administratora. Dostępność bibliotek z gotowymi, gra-
ficznymi komponentami (takimi jak react bootstrap) pozwoliło na stworzenie
przyjaznego interfejsu użytkownika przy niewielkim nakładzie czasu.
3. Bash [14]
Bourne Again Shell jest powłoką, czyli interpreterem poleceń, dla systemów
operacyjnych z rodziny Unix. Jest to jedena z najbardziej popularnych powłok i
jest standardowo dostarczana z większością dystrybucji Linuksa. Bash umożli-
wia użytkownikom interakcję z systemem operacyjnym poprzez wprowadzanie
poleceń w linii poleceń. Jest również językiem skryptowym, co oznacza, że użyt-
kownik może napisać serię poleceń, które zostaną automatycznie wykonane, co
umożliwia automatyzację czynności i ułatwia zarządzanie systemem operacyj-
nym. Bash oferuje wiele funkcji, takich jak wsparcie dla regularnych wyrażeń,
przekierowywanie wejścia/wyjścia, programowanie funkcji i pętli. Został wy-
korzystany w celu napisania skryptu zastępującego aplikację użytkownika w
komputerach stacjonarnych, raspberry pi i laptopach posiadających system li-
nux. Uniwersalna składnia basha pozwoliła stworzyć skrypt uruchamialny na
wielu różnych systemach operacyjnych, w przypadku urządzeń wykorzystanych
w projekcie były to: Fedora 34, Ubuntu 18 oraz Raspbian.
17
3.4. TECHNOLOGIE ROZDZIAŁ 3. OPIS TECHNOLOGII
4. Python [15]
Dynamiczny, wysokopoziomowy język programowania o otwartym kodzie źró-
dłowym, stworzony w latach 80. przez Guido van Rossum. Python jest jednym
z najbardziej popularnych języków programowania na świecie ze względu na
swoją czytelność i prostotę składni. Python jest często używany do tworzenia
aplikacji webowych, analizy danych, aplikacji scientific computing, automaty-
zacji i itp. Python posiada bogate biblioteki i narzędzia, które umożliwiają
łatwe i szybkie tworzenie aplikacji. Python jest również językiem, który jest
łatwy do nauki dla początkujących programistów, dlatego jest często wykorzy-
stywany jako pierwszy język programowania. W projekcie został wykorzystany
ze względu na dostępność prostych w użyciu bibliotek do obsługi protokołu blu-
etooth na komputerach stacjonarnych. Skrypt pythonowy razem ze skryptem
bashowym uruchomione równocześnie na komputerze są w stanie odtworzyć
wszystkie funkcjonalności androidowej aplikacji klienta.
3.4.2 Biblioteki
18
ROZDZIAŁ 3. OPIS TECHNOLOGII 3.4. TECHNOLOGIE
2. React [8]
Biblioteka JavaScript, stworzona przez firmę Facebook, umożliwiająca tworze-
nie dynamicznych aplikacji przeglądarkowych. React pozwala programistom
na budowanie interfejsu użytkownika za pomocą komponentów, które są nie-
zależne i łatwe do utrzymania. React wykorzystuje koncepcję Virtual DOM,
która pozwala na szybką aktualizację interfejsu użytkownika bez konieczno-
ści przeładowywania całej strony. Dzięki temu aplikacje napisane w React są
szybkie i wydajne.
19
3.4. TECHNOLOGIE ROZDZIAŁ 3. OPIS TECHNOLOGII
Android SDK jest dostępne w języku Java lub Kotlin. Dla spójności i ograni-
czenia liczby wykorzystanych technologii wykorzystano język java i przy jego
pomocy stworzono aplikację dla klienta na telefon komórkowy, niezbędnej w
systemie TriBeacon.
3.4.3 Architektura
1. REST API
20
ROZDZIAŁ 3. OPIS TECHNOLOGII 3.4. TECHNOLOGIE
wane w formie danych, takich jak JSON lub XML. REST API jest prostym
i elastycznym sposobem na integrację różnych systemów i aplikacji, a jego
popularność wynika z łatwości implementacji i wszechstronności.
2. Programowanie Obiektowe
21
Rozdział 4
dynamiczne kotwice
22
ROZDZIAŁ 4. OPIS PROJEKTU 4.1. ANALIZA WYMAGAŃ
zagęszczenie użytkowników
podstawy prawne
dokładność pomiarowa
23
4.1. ANALIZA WYMAGAŃ ROZDZIAŁ 4. OPIS PROJEKTU
3. aplikacja serwerowa
24
ROZDZIAŁ 4. OPIS PROJEKTU 4.1. ANALIZA WYMAGAŃ
1. pomiar błędu
25
4.2. ALGORYTM ROZDZIAŁ 4. OPIS PROJEKTU
4.2 Algorytm
W poniższej sekcji opisano zasadę działania algorytmu do wyznaczania lokalizacji
zaimplementowanego w ramach projektu TriBeacon.
26
ROZDZIAŁ 4. OPIS PROJEKTU 4.2. ALGORYTM
27
4.2. ALGORYTM ROZDZIAŁ 4. OPIS PROJEKTU
28
ROZDZIAŁ 4. OPIS PROJEKTU 4.2. ALGORYTM
29
4.2. ALGORYTM ROZDZIAŁ 4. OPIS PROJEKTU
30
ROZDZIAŁ 4. OPIS PROJEKTU 4.2. ALGORYTM
Drugim etapem algorytmu jest ograniczenie obszaru przy użyciu kotwic, z którymi
nie ma bezpośredniego połączenia. W tym jednak przypadku wykorzystano parametr
zasięgu minimalnego, aby wykluczyć możliwość niepoprawnej redukcji obszaru ze
względu na niestabilne połączenie.
Ograniczenie obszaru polega na odjęciu przestrzeni wyznaczającej zasięg niepo-
łączonych kotwic od wcześniej wyznaczonego obszaru lokalizacji urządzenia. Dotyczy
to wszystkich kotwic, z którymi nie znaleziono bezpośredniego połączenia. W ten
sposób można wykluczyć wszystkie obszary objęte zasięgiem kotwic, nieznajdujące
się w pobliżu urządzenia.
31
4.2. ALGORYTM ROZDZIAŁ 4. OPIS PROJEKTU
32
ROZDZIAŁ 4. OPIS PROJEKTU 4.2. ALGORYTM
33
4.3. ARCHITEKTURA ROZDZIAŁ 4. OPIS PROJEKTU
4.3 Architektura
System TriBeacon składa się z aplikacji serwerowej oraz z dwóch typów aplikacji
klienckich.
TriBeacon serwer
Aplikacja serwerowa napisana w języku Java jest głównym elementem systemu Tri-
Beacon. Posiada ona wbudowaną bazę danych. Ze względu na brak wymagań funk-
cjonalnych związanych z bazą zdecydowano się na przetrzymywanie danych jedynie
w pamięci podręcznej, wszystkie przeprowadzone eksperymenty i badania wymagały
zapisu danych jedynie w obrębie jednej sesji. Serwer przetwarza i zapisuje w bazie
wszystkie informacje o urządzeniach przychodzące z aplikacji użytkowników. Dzie-
je się to przez Bluetooth Scan Rest Api, wystawiające endpointy pozwalające na
przesłanie wiadomości z nazwą raportującego urządzenia oraz listą bezpośrednich
połączeń. Na podstawie tych wiadomości serwer decyduje również, czy urządzenia
uznawane są za bierne, czy za aktywne.
Drugim interfejsem udostępnionym przez serwer jest Beacon Management Rest
Api, pozwalające administratorowi na manualne ustawienie, które urządzenia pełnić
będą rolę kotwic oraz wskazanie ich dokładnej pozycji na mapie budynku.
Trzeci interfejs serwera to Estimated Position Rest Api, obliczające na żądanie
estymowane pozycje wszystkich użytkowników w systemie. W aktualnej postaci sys-
temu jest ono wykorzystywane jedynie do wizualizacji i obliczania błędu lokalizacji,
jednak w przypadku wdrożenia może zostać rozbudowane w celu dostarczania do-
wolnego rozwiązania bazującego na wyznaczonej lokalizacji (np. zliczać liczbę wejść/
wyjść z pomieszczeń, zbierać informacje o natężeniu ruchu, nawigować po budynku,
itd.).
Ostatnią funkcjonalnścią zaimplementowaną na serwerze jest Ground Truth Rest
Api, umożliwiające raportowanie informacji o rzeczywistej lokalizacji urządzeń, w
celu ich przyszłego wykorzystania do pomiaru błędu systemu.
34
ROZDZIAŁ 4. OPIS PROJEKTU 4.3. ARCHITEKTURA
TriBeacon Frontend
35
4.4. KONSERWACJA ROZDZIAŁ 4. OPIS PROJEKTU
testy
baza danych
36
Rozdział 5
Implementacja TriBeacon
5.1 tribeacon-server
Kod napisany w języku Java oraz JavaScript przy użyciu narzędzia do budowania
projektów Maven.
Kod umieszczony w katalogu src/main/java składa się z dwóch klas main (punktów
startowych programów) oraz z pakietów zawierających logikę.
3. pakiet api zawiera model wykorzystywany przez API oraz implementację wszyst-
kich REST endpointów:
37
5.1. TRIBEACON-SERVER ROZDZIAŁ 5. IMPLEMENTACJA
38
ROZDZIAŁ 5. IMPLEMENTACJA 5.2. TRIBEACON-EMULATOR
5.2 tribeacon-emulator
TriBeacon emulator jest klonem kodu tribeacon-server, posiada jednak modyfika-
cje umożliwiające dodawanie wirtualnych urządzeń z poziomu intefejsu użytkow-
nika oraz manipulowanie ich pozycją. Każde w ten sposób utworzone urządzenie
asynchronicznie wysyła do serwera wynik wirtualnego skanu w postaci listy innych
wirtualnych urządzeń będących w zasięgu.
Emulator służy tylko i wyłącznie do celu prezentacji działania algorytmu. Nie
zaleca się wykonywania na nim eksperymentów, ze względu na brak błędu pomia-
rowego skanu urządzeń wirtualnych.
5.3 tribeacon-client
Kod zawierający implementację dwóch aplikacji klienckich:
5.3.1 tribeacon-linux
39
5.3. TRIBEACON-CLIENT ROZDZIAŁ 5. IMPLEMENTACJA
5.3.2 tribeacon-android
kod napisany w języku java, jest to projekt budowany przy pomocy narzędzia Gradle.
Najbardziej istotne elementy impelementacji to:
40
Rozdział 6
Eksperyment
6.1 Opis
41
6.1. OPIS ROZDZIAŁ 6. EKSPERYMENT
42
ROZDZIAŁ 6. EKSPERYMENT 6.2. WIZUALIZACJA
6.2 Wizualizacja
Poniżej przedstawiono zrzuty ekranu z wizualizaji w aplikacji webowej w czasie
wykonywania eksperymentu.
43
6.2. WIZUALIZACJA ROZDZIAŁ 6. EKSPERYMENT
44
ROZDZIAŁ 6. EKSPERYMENT 6.3. WYNIKI
minimum range (m) maximum range (m) calculated positions average error (cm)
1 2 3/16 175.4
2 5 16/16 267.3
5 10 16/16 534.7
6.3 Wyniki
Poniżej przedstawiono tabele z uśrednionymi oraz dokładnymi wynikami podczas
przeprowadzonych eksperymentów dla różnych parametrów algorytmu.
45
6.3. WYNIKI ROZDZIAŁ 6. EKSPERYMENT
Tabela 6.3: Błąd pomiarowy dla skanów przy parametrach min=2 m max=5 m.
46
ROZDZIAŁ 6. EKSPERYMENT 6.3. WYNIKI
Tabela 6.4: Błąd pomiarowy dla skanów przy parametrach min=1 m max=2 m.
47
6.3. WYNIKI ROZDZIAŁ 6. EKSPERYMENT
Tabela 6.5: Błąd pomiarowy dla skanów przy parametrach min=5 m max=10 m.
48
Rozdział 7
Dyskusja
49
7.2. ZAŁOŻENIA NIEZREALIZOWANE ROZDZIAŁ 7. DYSKUSJA
50
ROZDZIAŁ 7. DYSKUSJA 7.5. OCENA MOŻLIWOŚCI WDROŻENIA
51
7.6. DALSZE BADANIA ROZDZIAŁ 7. DYSKUSJA
7.6.1 Eksperymenty
52
ROZDZIAŁ 7. DYSKUSJA 7.7. PODSUMOWANIE
nych połączeń, liczba iteracji algorytmu itd. Żaden z powyższych parametrów nie
został zoptymalizowany, a wartości wykorzystane w eksperymencie zostały dobrane
na podstawie zaledwie kilku testowych pomiarów. Ze względu na brak wystarczają-
co dużego zbioru danych testowych nie przeprowadzano optymalizacji powyższych
wartości. Kwestię tę należy rozstrzygnąć w dalszych badaniach.
7.7 Podsumowanie
53
7.7. PODSUMOWANIE ROZDZIAŁ 7. DYSKUSJA
54
Bibliografia
[3] Jiří Kárník and Jakub Streit. “Summary of Available Indoor Location Tech-
niques”. In: IFAC-PapersOnLine. 14th IFAC Conference on Programmable
Devices and Embedded Systems PDES 2016 49.25 (Jan. 1, 2016), pp. 311–
317. issn: 2405-8963. doi: 10.1016/j.ifacol.2016.12.055. url: https:
/ / www . sciencedirect . com / science / article / pii / S240589631632691X
(Ostatni dostęp: 11/2/2023).
[5] Spring Boot. Spring Boot. url: https://spring.io (Ostatni dostęp: 11/2/2023).
[7] JTS Topology Suite. LocationTech, Feb. 10, 2023. url: https://github.com/
locationtech/jts (Ostatni dostęp: 11/2/2023).
55
BIBLIOGRAFIA BIBLIOGRAFIA
[10] GPS.Gov: GPS Accuracy. url: https : / / www . gps . gov / systems / gps /
performance/accuracy/ (Ostatni dostęp: 9/2/2023).
[15] Welcome to Python.Org. Python.org. Feb. 10, 2023. url: https : / / www .
python.org/ (Ostatni dostęp: 11/2/2023).
[16] JTS Topology Suite. LocationTech, Feb. 10, 2023. url: https://github.com/
locationtech/jts/blob/436f1e8c91ebdfe9e8f76f3dc35c2aa65fa453e7/
LICENSES.md (Ostatni dostęp: 11/2/2023).
56
Spis rysunków
57
Spis tabel
58
Dodatek A
Instrukcja uruchomienia
http://localhost:8080/
59
A.2. TRIBEACON ANDROID DODATEK A. INSTRUKCJA URUCHOMIENIA
(d) W przypadku błędów "nie znaleziono polecenia npm" lub "nie znaleziono
polecenia lt" należy zrestartować komputer po instalacji oprogramowania.
60
DODATEK A. INSTRUKCJA URUCHOMIENIA A.3. TRIBEACON LINUX
bluetoothctl
menu advertise
name "PC" // można zastąpić dowolną nazwą
discoverable on
back
advertise on
61
A.4. TRIBEACON EMULATOR
DODATEK A. INSTRUKCJA URUCHOMIENIA
http://localhost:8080/
62