Indendørs Positionering Mobilt Bluetooth Peer-to-Peer Kollaborativ Lokaliserings Service



Relaterede dokumenter
Ikke bare endnu en e-bog... CoMPreNDo. Sådan kommer du i gang med din egen app. Og hvad skal virksomheden overhovedet bruge en app til?

INDHOLDSFORTEGNELSE. Godt i gang med Android tablet... Indledning. KAPITEL ET... De første trin med din Android-enhed. KAPITEL TO...

Sikkerhedsanbefaling. Forholdsregler ved ophør af serviceopdateringer til Windows XP Embedded

XProtect-klienter Tilgå din overvågning

Novell Vibe Quick Start til mobilenheder

Mobilitet og anvendelse af smartphones

ECdox som favorit. Indledning 1. Internet Explorer 2. Chrome 4. Safari 5. Favorit på mobile enheder 6 Android 6 IOS 7. ECdox på mobile enheder 7

Tech College Aalborg. HomePort. Projekt Smart Zenior Home

Oticon Opn trådløst tilbehør. Alt, hvad du behøver for at være på

KRISTIAN LANGBORG-HANSEN. Godt i gang med Android tablet

Lokationsbestemmelse. Mikkel Baun Kjærgaard ISIS Software Katrinebjerg Department of Computer Science University of Aarhus

Netbaserede kontekstafhængige services LaCoMoCo November 11, 2004

Forretningsmodeller for mobile applikationer

GUIDE TIL CLOUD DRIVE

Sikkerhed på smartphones og tablets

Guide til Epson Connect NPD DA

Velkommen. Valg af Smartphone

Kvik guide: GT-Command Mobile

INDHOLDSFORTEGNELSE. INDLEDNING... 7 Kristian Langborg-Hansen. KAPITEL ET... 9 I gang med App Inventor. KAPITEL TO...

Dan Rolsted PIT. Side 1

Apps og smartphones HMI. mobil devices og produktions-it. Anders Rolann, evikali A/S

BRUGER GUIDE. Waoo Web TV på iphone FIBERBREDBÅND TV TELEFONI

Guide til et privatliv på din smartphone

\ \ Computerens Anatomi / /

PRODUKTINDEKS. S3 support 26. Vil jeg få en fejlmelding på min S3, hvis der opstår problemer? 27. Vil jeg modtage teknisk support på min ipad mini?

1 Ordliste 2. 2 Indledning Problemstillinger Problemformulering Problemafgrænsning Mål med projektet...

Med Fokus på Fremtiden

Samsung Gear 360 (2017) kamera + Gear 360 Action Director software

BRUGER GUIDE. Waoo Web TV på telefon iphone og Android. Waoo leveres af dit lokale energiselskab

Oticon Opn trådløst tilbehør Alt hvad du behøver for at være på

Bedrebolig.htk.dk. Beskrivelse af version juni 2015

Det Nye Testamente lyd-app. v. Stefan Lykkehøj Lund

Regeringen, KL og Danske Regioner indgik i 2011 Den Fællesoffentlige Digitaliseringsstrategi : DEN DIGITALE VEJ TIL FREMTIDENS VELFÆRD.

QUICK GUIDE. Waoo Web TV på ipad FIBERBREDBÅND TV TELEFONI

Trådløst netværk med private enheder for ansatte og studerende

Vejledning. Trådløst netværk med private enheder

BRUGERVEJLEDNING MOBIL APP

BRUGER GUIDE. Waoo Web TV på telefon iphone og Android FIBERBREDBÅND TV TELEFONI

Kom godt i gang med Klasseværelse 2.1. Lærervejledning om Klasseværelse-appen til ipad

Se DR TV på dit fjernsyn

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

Media College Aalborg Side 1 af 11

BRUGER GUIDE. Waoo Web TV på tablet ipad og Android FIBERBREDBÅND TV TELEFONI

BRUGER GUIDE. Waoo Web TV på tablet ipad og Android FIBERBREDBÅND TV TELEFONI

Automatisk Vandingssystem

Netprøver.dk. Nødprocedurer ved afvikling af prøver i Netprøver.dk

GB-HD8272C-W. Kom godt i gang

BRUGER GUIDE. Waoo leveres af dit lokale energiselskab. Er du. Waoo Web TV PÅ COMPUTER, TABLET OG TELEFON

GB-HD9604T-PL / GB-HD9716T-PL. Kom godt i gang

GB-HD2635-W. Kom godt i gang

BRUGER GUIDE. Waoo Web TV PÅ COMPUTER, TABLET OG TELEFON FIBERBREDBÅND TV TELEFONI

INTERTON APP BRUGERVEJLEDNING

BRUGER GUIDE. Waoo Web TV PÅ COMPUTER, TABLET OG TELEFON FIBERBREDBÅND TV TELEFONI

OpenTele datamonitoreringsplatform

Brugeradfærd i idræts- og kulturhuse - Målinger med RFID teknologi Suenson, Valinka

EG Data Inform. Byggebasen. WCF og webservices. Jens Karsø

Positionering Nokia N76-1

Brugervejledning til Connection Manager

GB-HD Kom godt i gang

MyWay. ios & Android

BEYOND: Two Souls BEYOND Touch Applikationen


QR koder kræver dels en fysisk genstand at klistre koden på, og dels er operationen noget omfattende med print af kode og fysisk opsætning af denne.

Hold styr på aftalerne på både pc og mobil VELKOMMEN TIL GOOGLE-SKOLEN 4. DEL

Underbilag 2.24 Kommunernes it-miljø

BKOOL LANCERER ONE, DEN MEST PRISBILLIGE HOMETRAINER MED PROGRESSIV MODSTANDSKURVE

Detaljeret information om cookies

GUIDE TIL CLOUD DRIVE

GUIDE TIL DIN STREM BOX.

Professionel hjemmesikkerhed. Alarm Scan-appen i X-serien Brugervejledning

GB-HD Kom godt i gang

Mobil IT Sikkerhed. / Mette Nikander

KORT VEJLEDNING TIL NOKIA MODEM OPTIONS

Velkommen til BEHRINGER PODCAST hurtigstart guiden

ereolen.dk -Sådan downlåner du -Sådan anvender du på ebogslæser, tablet og smartphone

Håndbog. - MobilePass. Udarbejdet af: Maria Mathiesen Gældende fra: 25. februar 2015

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

BUSINESSMAIL Delt kommunikation

MakeRoute. Bruger manual

Projektansøgning til Campusstrategi

Windows 8 en ny undervisnings udfordring ved. John R. H. Rask LollandBibliotekerne

Brugermanual. Tripple Track Fleet

Babbo Buddy FAQ. Her kan du få svar på de mest oplagte spørgsmål til den smarte Babboe Buddy GPS tracker.

Brugervejledning S6evo indendørs SmartCam

REGISTRERING AF TRÆNGSEL

Kvik start opsætning af kamera det første du skal gøre:

Kom godt i gang med Klasseværelse. Lærervejledning om Klasseværelse-appen til Mac

Hvor er mine runde hjørner?

GB-HD3172RCL-W. Kom godt i gang

ViKoSys. Virksomheds Kontakt System

Brugerskabte data en national service (BSD) - produktbeskrivelse

Politik om cookies. Introduktion Om cookies

BRUGER GUIDE. Waoo TV Go PÅ COMPUTER, TABLET OG TELEFON FIBERBREDBÅND TV TELEFONI

Efficient Position Updating

QUICK GUIDE. Waoo Web TV på iphone FIBERBREDBÅND TV TELEFONI

SwanMobile Brugervejledning K2051-A

10 gode grunde. - derfor skal du vælge Office365

WiFi Vejledning. Smart serien 2016

Pædagogisk IT. Vejledning i Office 365 Til elever og familier. Side 1. Kan udfyldes for at hjælpe med at huske

COOKIE-POLITIK RINGSTED FORSYNING A/S

Transkript:

Indendørs Positionering Mobilt Bluetooth Peer-to-Peer Kollaborativ Lokaliserings Service Aalborg University Computer Science 5 th Semester Student Project

Aalborg Universitet Cassiopeia Datalogi Selma Lagerlöfs Vej 300 Telefon 96 35 97 31 Fax 98 13 63 93 http://cs.aau.dk Titel: Indendørs Positionering Mobilt Bluetooth Peer-to-Peer Kollaborativ Lokaliserings Service Themes: Bluetooth, P2P, Positioning, Indoor, Collaborative, Network, Android Projektperiode: Computer Science 5 Projektgruppe: d506e12 Gruppemedlemmer: Elias Ringhauge Kasper A. Svendsen Mathias M. Andersen Morten H. Pedersen Jens Thomas Vejlby Nielsen Vejleder: Rene Hansen Antal oplag: 2 Antal sider: 105 Synopsis: The purpose of this project is to enhance the possibilities for indoor positioning. For devices running the Android operating system there exists applications for indoor positioning. One such application is SmartCampusAAU. For ios and Windows Phone 7, indoor positioning is not currently possible. The product of this project is an Android application that can share locations with other Android devices. When Bluetooth 4.0 is more widespread, it will be able to share indoor positions between any device platform. While creating a location sharing application, we ve also created a generic message-passing network, which can be used for many other purposes, and with other communication technologies than Bluetooth. Antal bilag: 2 Afsluttet den 20-12-2012 Rapportens indhold er frit tilgængeligt, men offentliggørelse (med kildeangivelse) må kun ske efter aftale med forfatterne.

Forord Denne rapport er et resultat af 5. semesters Datalogi projekt på Aalborg Universitet. Studiemålet for projektet er, at udvikle et massivt parallelt system. Temaet for projektet har været indendørs positionering. I projektet udvikles en Kollaborativ Lokaliserings Service, som anvender en eksisterende indendørs positionerings service, kaldt SmartCampusAAU, som er et forskningsprojekt på Aalborg Universitet. Udviklingen af dette system, er dokumenteret i denne rapport. Der vedlægges en CD med rapporten. CD en indeholder produktet som kildekode og i kompileret udgave, samt rapporten i PDF format. Kildehenvisning bliver angivet med [x], hvor x repræsenterer kilde nummer, som findes i litteraturlisten til sidst i rapporten. Projektgruppen vil gerne takke Rene Hansen for kyndig vejledning.

Morten H. Pedersen Jens Thomas Vejlby Nielsen Mathias M. Andersen Kasper A. Svendsen Elias Ringhauge 1

Indhold 1 Indledning 4 2 Indledende analyse 8 2.1 Hvorfor indendørs positionering?................ 8 2.2 Location Fingerprinting med SmartCampusAAU........ 9 2.3 Kollaborativ Lokalisering..................... 10 2.4 Problemformulering........................ 12 3 Problemanalyse 13 3.1 Kommunikationsteknologi.................... 13 3.2 Operativsystemer til mobile enheder.............. 18 3.3 Netværksarkitektur........................ 21 3.4 Opsummering........................... 23 4 Design 25 4.1 Systemoversigt.......................... 25 4.2 Use cases............................. 30 4.3 Modul: Applikation........................ 32 4.4 Modul: Kollaborativ Lokaliserings Service............ 34 4.5 Modul: Network Manager.................... 34 4.6 Interface: IConnectionAdapter.................. 38 4.7 Modul: SmartCampusAAU.................... 39 4.8 Problemet hvis blinde enheder deler deres lokation....... 40 4.9 Andre kilder til unøjagtigheder i lokaliseringen......... 44 2

5 Implementation 48 5.1 Arkitektur............................. 49 5.2 Sekvensdiagrammer........................ 51 5.3 Android teori........................... 55 5.4 SimpleBluetoothAdapter..................... 61 5.5 Network Manager......................... 68 5.6 Kollaborativ Lokaliserings Service................ 80 5.7 Afslutning på implementation.................. 84 6 Test 85 6.1 Testhardware........................... 85 6.2 Test 1: Virker systemet, og hvor hurtigt er det......... 85 6.3 Test 2: Kommunikation med nærmeste enhed.......... 87 7 Konklusion 89 8 Diskussion og Perspektivering 91 8.1 Miljømæssige krav for brug af KLS............... 91 8.2 Videre udvikling før systemet kan lanceres........... 92 8.3 Sikkerhed............................. 92 8.4 Android Bluetooth ustabilitet.................. 92 8.5 Selvkonfiguration......................... 93 8.6 Brug af Kollaborativ Lokaliserings algoritmer......... 94 8.7 Eksempel på brug af Lokaliseringen............... 99 8.8 Alternativ brug af message-passing netværket......... 99 Literaturliste 102 A Om den vedhæftede CD 103 A.1 Installation af applikation.................... 103 B Taksonomi 105 3

Indledning 1 I en verden hvor samfundets infrastrukturs voksende kompleksitet gør det sværere at navigere rundt, har computerens udbredelse givet nye muligheder for hjælp til navigering. Global Positioning System (GPS)-teknologien er den mest udbredte teknologi til lokalisering og navigering. De fleste nye smartphones og tablets (mobile enheder) sendes i dag på markedet med GPSteknologien indbygget. GPS-teknologien er det hidtil mest anvendte indenfor global lokalisering, positionering og navigering. Teknologien har dog sine begrænsninger. Helt centralt ved GPS-teknologien er, at den benytter satellitter, hvor brugerens position trianguleres. Brug af GPS teknologien kræver derfor, at signaler er tilgængelige fra flere GPS-satellitter. Dette krav gør, at indendørs positionering ved hjælp af GPS er problematisk, da bygningskonstruktioner kan blokere dette signal. [11] Selvom GPS-signaler ikke kan gennemtrænge mange bygninger findes der alternative teknologier som giver mulighed for indendørs positionering. En teknik til indendørs positionering er lokalisering ved hjælp af WiFi adgangspunkters signalstyrke. At kunne lokalisere sig selv indendørs med WiFi, har den fordel at WiFi infrastrukturen er udbredt i mange bygninger. Dertil kommer at WiFi teknologien er udbredt i mange smartphones og tablets. Et eksempel på en teknik til indendørs positionering ved hjælp af WiFi er Location Fingerprinting. Før Location Fingerprinting kan bruges i en bygning, skal bygningen kortlægges. Kortlægningen foregår ved, at man fra manuelt angivne lokationer i bygningen, opsamler målinger af signalstyrken til alle synlige WiFi adgangspunkter. 4

For at lave en lokalisering, sammenlignes nuværende signalstyrker til synlige WiFi-adgangspunkter med tidligere målinger. Den tidligere opsamlede måling, som passer bedst antages som værende den nuværende lokation. Teknikken har dog det problem, at det indtil videre kun er muligt på Android operativsystemet. Dette skyldes, at producenterne af ios og Windows Phone 7 har blokeret funktioner, som er nødvendige for WiFi lokalisering. Det betyder, at enheder, som kører ios eller Windows Phone, ikke har mulighed for indendørs positionering ved hjælp af Location Fingerprinting. Da enheder, som kører ios og Windows Phone 7 er afskåret, for muligheden for indendørs lokalisering ved hjælp af Location Fingerprinting, findes der en stor gruppe af enheder, som på nuværende tidspunkt ikke har mulighed for indendørs lokalisering. Dette er dog et problem, som kan løses ved hjælp af Kollaborativ Lokalisering. Kollaborativ Lokalisering er en teknik, som går ud på at benytte information fra andre nærværende enheder til at opnå en lokation. I praksis betyder det at Android enheder deler deres lokation med enheder, som ikke selv har mulighed for WiFi positionering ved hjælp af Location Fingerprinting (blinde enheder). Enheder som har mulighed for positionering ved hjælp af Location Fingerprinting, kaldes hjælpende enheder. Dette projekt har som mål, at muliggøre delingen af lokationer, fra hjælpende enheder til blinde enheder. For på denne måde, at give de blinde enheder mulighed for indendørs lokalisering. Følgende er en oversigt over rapportens kapitler samt deres indhold. Kapitel 2 - Indledende analyse giver læseren et nødvendigt indblik i teknikker såsom WiFi positionering ved hjælp af Location Fingerprinting og Kollaborativ Lokalisering. Disse teknikker er centrale for projektet. Til sidst i kapitlet gives rapportens problemformulering. Kapitel 3 - Problemanalyse giver læseren indblik i kommunikationsteknologier, netværksarkitektur og software-platforme. For at kunne dele lokationer mellem hjælpende og blinde enheder, er det nødvendigt, at analysere hvilke kommunikationsteknologier, der egner sig bedst. Samtidig indeholder kapitlet også en analyse af Android, ios og Windows Phone styresystemerne, samt hvad der skal til, for at lade Android enheder dele deres lokation med ios og Windows Phone-enheder. Yderligere analyseres netværksarkitekturer, der egner sig til Kollaborativ Lokalisering i mobile enheder. 5

Kapitel 4 - Design beskriver de valgte specifikationer for løsningen. Løsningen er designet med det øjemed at den ikke kun kan bruges til at løse lokationsdelingsformålet, som er målet for dette projekt. Det er et vigtigt mål for projektet at lave en teknologi-agnostisk løsning. Det betyder at løsningen vil kunne bruges i mange andre sammenhænge (f.eks. spil) og med en hvilken som helst kommunikationsteknologi (f.eks. Bluetooth 4.0). Ved at lave løsningen i moduler med hver sit formål og ansvarsområde, opnås mulighed for simpel udskiftning af moduler, så længe denne udskiftning overholder modulernes grænsefladekrav. Løsningen indeholder tre primære moduler: Kollaborativ Lokaliserings Service, Network Manager og IConnectionAdapter-interfacet. Kollaborativ Lokaliserings Service (KLS) har til formål at håndtere udvekslingen af lokationer. Network Manager modulet bygger et Message-passing netværk af nærværende enheder. IConnectionAdapter-interfacet er lavet, så netværket er uafhængigt af hvilken kommunikationsteknologi, der anvendes. I dette projekt er implementationen af IConnectionAdapter et modul som kaldes Simple- BluetoothAdapter (SBA). SBA bruger Bluetooth version 2.1. Med en anden implementation kan interfacet bruge en hvilken som helst anden kommunikationsteknologi. Eksempelvis kunne en implementation udvikles til Bluetooth version 4.0. Kapitel 5 - Implementation giver en gennemgang af hvordan Kollaborativ Lokaliserings Service (KLS), Network Manager og SBA er implementeret og udgør projektets produkt. Kapitel 6 - Test Med en kørende implementation af løsningen er det relevant at teste systemet. Der foretages acceptance test, som har til formål at bekræfte at systemet virker efter hensigten. Altså at en blind enhed faktisk kan opnå en lokation fra en nærværende hjælpende enhed. Desuden testes det hvor lang tid det tager fra opstart af en blind enhed til at har opnået en lokation (hvor der er en hjælpende enhed i nærheden). Yderligere testes det hvorvidt en blind enhed altid forbinder til den nærmeste enhed, når der er flere hjælpende enheder inden for rækkevidde. Kapitel 7 - Diskussion og Perspektivering med en færdig implementation og tests afsluttet er det på tide at tage et skridt tilbage og analysere projektet som helhed. I dette kapitel beskrives nogle ustabilitetsproblemer som løsningen har. Derudover beskrives hvordan en mere avanceret Kollaborativ Lokaliserings-algoritme kan optimere lokaliseringspræcisionen. Til sidst gives et eksempel på hvordan et spil kunne kunne benytte det udviklede 6

message-passing netværk. Kapitel 8 - Konklusion er det afsluttende kapitel for rapporten, som konkluderer rapporten. 7

Indledende analyse 2 Dette kapitel indeholder en beskrivelse af emner, som er grundlæggende for at forstå rapportens problemformulering, som er beskrevet til sidste i kapitlet. Først i kapitlet beskrives hvorfor indendørs positionering overhovedet er interresant. Yderligere indeholder kapitlet en beskrivelse en applikation til indendørs positionering ved navn SmartCampusAAU samt teknikken bag applikationen. SmartCampusAAU er en Android applikation der benytter Location Fingerprinting til WiFi positionering. Yderligere er teknikken Kollaborativ Lokalisering beskrevet. Kapitlet afsluttes med rapportens problemformulering. 2.1 Hvorfor indendørs positionering? Indendørs positionering er et teknologisk område under udvikling. Områdets problemstilling går på at skabe en lokaliseringsevne indendøre. Udendøre anvendes GPS teknologien, men denne teknologi er uanvendeligt indendøre, da GPS satellitternes signal ikke når gennem bygninger. De bygninger hvor indendørs lokalisering, er relevant, er større bygninger hvor der ofte kommer personer som ikke er bekendt med hele eller dele af bygningen. Eksempler på sådanne bygninger er; lufthavne, messer eller større indkøbscentre. Et bud på at skabe en løsning på indendørs lokalisering-problemstillingen er Location fingerprinting. Location Fingerprinting er beskrevet i Afsnit 2.2 om SmartCampusAAU, som er en applikation der anvender Location Fingerprinting-teknikken. 8

2.2 Location Fingerprinting med SmartCampusAAU Et eksempel på anvendelsen af Location fingerprinting til indendørs positionering er SmartCampusAAU, et forskningsprojekt på Aalborg Universitet. Formålet med projektet er at skabe et hjælpemiddel til navigation og lokalisering indendørs. Forskerne bag projektet har udviklet en applikation til Android-platformen. Applikationen gør brug af den WiFi-teknologi, som i dag er udbredt i mange bygninger, samt mobile enheder. Location fingerprinting i SmartCampusAAU går ud på, at brugerne af systemet kortlægger en bygnings WiFi adgangspunkters signalstyrke fra kendte lokationer. Kortlægningen fungerer ved, at måle på et kendt punkts signalstyrke til alle synlige WiFi adgangspunkter. Målingerne, samt de tilsvarende adgangspunkters MAC adresse, sendes til en server, hvor de samles i et såkaldt radiokort. Et eksempel på et radiokort kan ses i Tabel 2.1. Tabellen viser 2 målinger i et radiokort. Hver måling indeholder tre adgangspunkters MAC-adresse og deres tilhørende signalstyrke. Koordinater (Lat,Long,Alt) Adgangspunkts MAC-adresse Signalstyrke 00:20:18:61:F1:8A -20 dbm (94.33, 29.33, 13.37) 00:20:18:61:B1:E1-40 dbm 00:20:18:61:FE:12-3 dbm 00:20:18:61:F1:8A -23 dbm (79.45, 54.32, 12.44) 00:20:18:61:B1:E1-5 dbm 00:20:18:61:FE:12-15 dbm Tabel 2.1: Eksempel på 2 i et radiokort Når en bruger vil lokalisere sig selv, hentes radiokortet ned på den mobile enhed, og en måling udføres, dataen fra målingen holdes op mod radiokortet, og et estimat på brugerens placering gives. Estimatet er ikke nødvendigvis præcist da signalstyrken til adgangspunkterne påvirkes af bygningsmaterialer, åbnede og lukkede døre, vinduer, menneskemængder med videre. Dette betyder at målingerne kan variere meget og derfor ikke altid giver en præcis lokation. [28] [23] Figur 2.1 viser et bygningskort hvor hver måling er markeret med en stjerne. Hver stjerne svarer til en måling i radiokortet. 9

Figur 2.1: Eksempel på bygningskort. Hver måling i radiokortet er markeret med en stjerne. [23] For at kunne bruge Location Fingerprinting, skal enheder kunne modtage en liste, fra enhedens operativsystem, over synlige adgangspunkter og signalstyrken til hver af dem. Listen danner udgangspunkt for en måling. En sådan måling bruges både til, at konstruere radiokortet, men også til at lokalisere sig selv, ud fra et eksisterende radiokort. 2.3 Kollaborativ Lokalisering Kollaborativ Lokalisering (KL) er en teknik til samarbejde om lokalisering mellem enheder. Samarbejdet består af at dele lokationer. Enten for at optimere nuværende lokation, eller for at opnå en lokation. Projektets fokus er at enheder uden en lokation, skal opnå en lokation. Dette gøres ved hjælp af andre enheder, som kender deres egen lokation. Der skelnes mellem blinde enheder, og hjælpende enheder. En blind enhed er en enhed der ikke kan lokalisere sig selv. En hjælpende enhed er en enhed, der har mulighed for at dele en lokation med en blind enhed. Figur 2.2 viser en situation med en blind enhed, med en hjælpende enhed inden for rækkevidde. 10

Figur 2.2: En blind enhed med en hjælpende enhed inden for rækkevidde 11

2.4 Problemformulering Dette afsnit har til formål klart at definere det problem, som projektet forsøger at løse. Ud fra den indledene analyse af problemet med Indendørs Lokalisering, og teknikker til dette, er projektets overordnede problem formuleret således: Hvordan kan man benytte Kollaborativ Lokalisering til at forbedre mulighederne for lokalisering af enheder, som ikke har mulighed for indendørs WiFi lokalisering? For at kunne benytte Kollaborativ Lokalisering, og samtidig lave et distribueret system, er det nødvendigt at analysere emner som omhandler kommunikation mellem mobile enheder. Hvilke kommunikationsteknologier er egnet til kommunikation mellem mobile enheder? Hvilken netværksarkitektur egner sig bedst til Kollaborativ Lokalisering? Kapitel 3 behandler analysen af disse emner. 12

Problemanalyse 3 I dette kapitel analyseres teknologiske muligheder til udveksling af information blandt mobile enheder. For at kunne benytte kollaborativ lokalisering i mobile enheder, er enhederne nødt til at kommunikere med hinanden. Af denne årsag undersøges gængse teknologier til mobil kommunikation. Disse kommunikationsteknologier sammenlignes på følgende punkter; maksimale rækkevidde, om signalstyrken kan bruges til distanceestimering og om der er hardwareunderstøttelse i gængse mobile enheder. Kapitlet indeholder også en analyse af mobile operativ systemerne: Android, ios og Windows Phone 7. Da vi ved at indendørs WiFi positionering kun er muligt for Android enheder, er formålet med denne analyse at undersøge hvordan Android, kan komme til at kommunikere med ios og Windows Phone 7 enheder og opnå platformuafhængig indendørs Kollaborativ Lokalisering. I kapitlet analyseres mulige netværksarkitekturer til at lave et Kollaborativt Lokaliserings system. Det er samtidigt meget vigtigt at lave et generisk netværk, der kan bruges til at bygge andre services. Til slut i kapitlet er en opsamling på valg af kommunikationsteknologi og netværksarkitektur. 3.1 Kommunikationsteknologi Kommunikationen mellem mobile enhederne, kan foregå med forskellige teknologier. Dette afsnit har til formål at analysere og diskutere fordele og ulem- 13

per ved udvalgte trådløse kommunikationsteknologier. De analyserede kommunikationsteknologier er; Infrarød, Zigbee, WiFi og Bluetooth. Analysen er foretaget med henblik på teknologierenes egnethed til at kommunikere direkte med hinanden. Teknologierne vil blive sammenlignet på følgende overordnede punkter: Hvad er den maksimale rækkevidde på teknologien? Denne rækkevidde er afgørende for de konklusioner, man kan opnå om præcisionsgraden af en lokalisering. Hvis det eneste viden man har er, at man er maksimalt 100 meter væk fra en enhed, giver det ikke meget mulighed for indendørs positionering, i forhold til, hvis man ved brug af en anden teknologi, kunne sige at man maksimalt er 10 meter væk fra en enhed. Derudover har den maksimale rækkevidde også inflydelse på antallet af enheder en bruger kan forvente at opdage. Med en længere rækkevidde, er sandsynligheden for at opdage enheder, som kan kommunikeres med, forøget. Kan en teknologi f.eks. maksimalt detektere enheder som er 1 meter væk, vil det i mange tilfælde være umuligt at benytte Kollaborativ Lokalisering, da der ikke findes nogen enheder man kan kommunikere med indenfor den maksimale signalradius. Der er altså et trade-off mellem at man skal kunne indsamle så meget data som muligt, samtidig med at dataen er så brugbar som muligt. Kan teknologien benyttes til præcise distancemålinger? For at finde ud af, om signalstyrke kan tolkes som en distance, og dermed opnå viden om distancen mellem enheder udfra signalstyrken. Hardwareunderstøttelse i eksisterende mobile enheder Et vigtigt punkt i valget af kommunkationsteknologien er hardwareunderstøttelse i eksisterende mobile enheder. Hvis hardwaren som understøtter teknologien ikke er udbredt afskærer dette en mængde af enheder. Dette formindsker chancen for at man i en given situation kan finde brugbare enheder. Det er derfor vigtigt at teknologien har en vis udbredelse i nuværende og fremtidige mobile enheder. Til slut i kapitlet er en opsummering af udvælgelsesprocessen af kommunikationsteknologi. 14

3.1.1 Infrarød kommunikation Infrarød teknologi er baseret på infrarød lys. Et eksempel på brug af infrarød er i fjernbetjeninger til fjernsyn. Teknologien kan være en- eller to-vejs kommunikation. Til to-vejs kommunikation skal enheder have henholdsvis afsender- og modtagehardware. En fjernbetjening har kun en infrarød afsender og fjernsynet har kun en infrarød modtager, der er derfor kun en-vejs kommunikation mellem disse. [16] Enheder som har brug for både at kunne sende og modtage har både sendeog modtage-hardware. Det er nødvendigt at disse peger deres sende-hardware mod modtagerens modtage-hardware. Infrarød teknologi findes ikke i mange nyere mobiltelefoner og andre bærbare enheder. Med udbredelsen af Bluetooth og WiFi i mange nyere telefoner, har der ikke været brug for infrarød. Det har tidligere været mere udbredt i mobiltelefoner, hvor infrarød var den mest anvendte metode til at overføre data mellem to nærværende enheder. [16] 3.1.2 Zigbee Zigbee er en netværksprotokol, der er kontrolleret af Zigbee Alliance, som definerer standarden for hvordan Zigbee protokollen bruges. Zigbee er en IEEE standard, kaldet IEEE 802.15.4. Zigbee har en rækkevidde op til 1600 meter, afhængig af miljøet og strømstyrken [5][4]. Zigbee er velegnet til brug i indlejrede systemer, da den bruger meget lidt strøm, har en lille formfaktor og er billig at producere. Til måling af korte afstande er Zigbee velegnet, da signalstyrken degraderer hurtigt indenfor en afstand af 2 meter. Den er derfor i stand til at give relativt præcise distanceestimeringer på afstande op til 2 meter. Over 2 meter kan Zigbee ikke bruges til distanceestimering. [15]. Zigbee er udbredt indenfor indlejrede systemer, især indenfor styring af hjemmet - såsom opvaskemaskiner, lys, ovn, mediecenter m.m [5][4]. Zigbee er ikke særlig udbredt indenfor smartphone markedet. 3.1.3 WiFi WiFi er en meget udbredte trådløs kommunikationsteknologi blandt eksisterende mobile enheder. Mange bygninger, både virksomheder og private hjem, er i dag udstyret med et eller flere trådløse adgangspunkter. Et trådløst adgangspunkt kan f.eks. være en trødløs router. Rækkevidden på et normalt WiFi adgangspunkt er varierende, og en faktisk 15

rækkevidde på signalet er afgjort i høj grad af omgivelserne (mure, mennesker, døre, vinduer m.m.) for et givet adgangspunkt. Det antages dog, at et gennemsnitligt WiFi adgangspunkt rækker op til 30 m indendørs og 100 m udendørs.[26] WiFi-Direct WiFi-Direct, tidligere kendt som WiFi-P2P, er et sæt nye funktioner til certificerede WiFi enheder. WiFi-Direct giver mulighed for automatisk at skabe et ad-hoc netværk, som er forsimplet betydeligt via automatisering. WiFi-Direct funktionerne bygger ovenpå den samme hardware, hvor adhoc netværket er baseret på et software adgangspunkt, hvilket en eller flere enheder kan forbinde til. WiFi-Direct fokuserer på at effektivisere mindre netværk mellem par eller små grupper af enheder. For at forbinde til andre enheder, skal man invitere eller inviteres til et netværk. En invitation skal accepteres af den adspurgte enhed. En ulempe ved WiFi-Direct er at det ikke er muligt at være tilkoblet et normalt adgangspunkt (såsom router), mens man er sammenkoplet til et ad-hoc netværk. Dette betyder i de fleste tilfælde, at det ikke er muligt at forbinde til Internettet, mens WiFi-Direct anvendes. [3][2] 3.1.4 Bluetooth Bluetooth specifikationen administreres af Bluetooth SIG (Special Interest Group). Teknologien er meget anvendt i både smartphones og computere. I computersammenhæng er den ofte brugt til kommunikation mellem trådløse enheder (f.eks. tastatur, mus, osv.). I smartphones bruges den både til kommunikation mellem telefoner, men også til forbindelse til trådløse enheder (f.eks. headset). Bluetooth er baseret på energieffektive microchips. Disse microchips findes i 3 forskellige energiklasser. Hver energiklasse har sin egen maksimale rækkevidde [1]. Energiklasse 1 bruger mest strøm og klasse 3 bruger mindst strøm. Klasse 1 har en rækkevidde på op til 100 meter og er ikke udbredt i mobile enheder. Klassen bruger mest strøm af de tre klasser. Klasse 2 rækker op til 10 meter og er den gængse klasse af Bluetooth man finder i de fleste mobile enheder, samt det meste trådløse udstyr, der benytter Bluetooth. 16

Klasse 3 er den mest energibesparende klasse, der dog kun tilbyder en maksimal rækkevidde på op til 5 meter. Rækkevidden kan sjældent defineres præcist, da radiosignalet påvirkes af materialet imellem sender og modtager, antennekonstruktion og strømforhold. Usikkerheden for rækkevidden er et gennemgående tema for Bluetooth teknologien.[9] 3.1.5 Valg af kommunikationsteknologi Dette afsnit konkluderer kommunikationsteknologianalysen. Det er besluttet hvilken teknologi der egner sig bedst baseret på sammenligningsparametrene. Af de analyserede teknologier, er ZigBee den eneste teknologi der er i begrænset omfang, i stand til at måle distance mellem enheder. En vigtig parameter er, at kommunikationsteknologien er til stede i nyere mobile enheder. Derfor er Infrarød og ZigBee fravalgt. WiFi er, i modsætning til både infrarød og Zigbee, meget udbredt i mange mobile enheder. WiFi teknologien er blandt andet fravalgt til dette projekt på grund af dens relativt lange maksimale distance. Vores endelige valg af kommunikationsteknologi er faldet på Bluetooth. Valget er faldet, da den meste udbredte Bluetooth klasse, klasse 2, har en rækkevidde på 10 meter. En rækkevidde på 10 meter, giver muligheder for at drage konklusioner om den maksimale afstand mellem enheder. Dette er passende i forhold til WiFi, som har en længere rækkevidde. Tabel 3.1 på side 17 viser en opsummeret sammenligning. Område Infrarød Zigbee WiFi Bluetooth (klasse 2) Signalets maksimale - op til 1600m op til 100m op til 10m rækkevidde Kan distancen Nej Under 2m Nej Nej afgøres udfra signalstyrken Hardware findes i mobile enheder Nej Nej Ja Ja Tabel 3.1: Kommunikationsudvælgelsesprocessens vigtigste parametre 17

3.2 Operativsystemer til mobile enheder Formålet med afsnittet er at analysere de forskellige operativsystemer med henblik på, at lave en løsning der kan kommunikere gennem Bluetooth. Størstedelen af smartphones og tablets benytter et af følgende styresystemer; Android, ios eller Windows Phone. Som beskrevet tidligere i rapporten, kan ios og Windows Phone ikke lave indendørs lokalisering gennem Location Fingerprinting over WiFi, og alle enheder med disse operativsystemer er blinde enheder. Da brugerne af en applikation, som benytter Kollaborativ Lokalisering, har fordel af at kunne samarbejde med så mange enheder som muligt, og derfor prøve at inkludere de nævnte styresystemer. Desuden beskriver dette afsnit restriktioner og muligheder i Bluetoothkommunikation på tværs af de forskellige styresystemer. Ved de forskellige operativsystemer, er der mulighed for at opnå ekstra funktionalitet, ved at jailbreake eller oplåse adgangen til root. Disse ekstra funktionaliteter ses der bort fra i analysen, da et produkt ikke vil blive godkendt til udgivelse gennem officielle kanaler, hvis produktet kræver yderligere adgang end producenten af enheden tillader. Denne analyse analyserer på de, i skrevne stund, nuværende versioner af operativsystemerne, når der sammenlignes muligheder. Der kan potentielt være flere funktionaliteter i fremtidige versioner. 3.2.1 Bluetooth kommunikation Bluetooth findes i flere versioner, og forskellige versioner er brugt på forskellige platforme. Bluetooth version 2.1 er den mest anvendte version, som findes i f.eks. i de fleste håndfri til bilen, samt de fleste smartphones. I september 2012 blev ios 6 udgivet. Dette operativsystem understøtter Bluetooth 4.0 på enheder, som har hardware understøttelse f.eks. iphone 4S og nyere. Profiler i Bluetooth En profil i Bluetooth beskriver en samarbejdsaftale mellem to enheder. Dette kunne f.eks. være hands-free profilen, som benyttes af en håndfri installation i bilen til kommunikation med en mobil enhed. 18

En profil identificeres af et UUID (Universally unique identifier). Dette UUID er valgfrit for applikationer. Der findes nogle foruddefinerede profiler, identificeret med et UUID, som er øremærket til standard formål. Dette kan eksempelvis være hands-free. Dette betyder, at der er nogle faste retningslinjer for denne profil, og dem der ønsker at anvende denne profil, skal følge disse retningslinjer. Dette giver mulighed for at enhver telefon som anvender hands-free profilen kan kommunikere med alle håndfri headsets. [29] For at kunne finde ud af om to enheder kan kommunikere med hinanden, altså understøtter samme profil, benyttes Service Discovery Lookup (SDP). SDP giver mulighed for at en enhed kan undersøge, om en anden enhed understøtter samme profil. [29] Bluetooth version 4.0 Med Bluetooth 4.0 er Bluetooth Low Energy blevet introduceret. Dette er en teknologi der er optimeret til at sende små datamængder, hvor teknologien altså ikke er tiltænkt overførelse af video, billeder, lyd eller lignende. Low Energy rettes mod eksempelvis trådløse mus, hjerterytmemålere eller lignende letvægtsogaver, hvor et meget lavt strømniveau kan opretholdes. Bluetooth 4.0 er i forhold til version 2.1, ikke udbredt i tablets eller smartphones, hvor det hovedsageligt er Apple med iphone 4s, 5 og ipad 3 som leverer Bluetooth 4.0 understøttelsen på markedet. Google har endnu ikke annonceret Bluetooth 4.0 understøttelse på Android, hvor fremtiden for deres anvendelse af teknologien altså er uklar. Det antages at Android, kommer til at understøtter Bluetooth 4.0. 3.2.2 ios ios operativsystemet er udviklet af Apple og er deres bud på et operativsystem til smartphones og tablets som firmaet selv producerer. Som beskrevet tidligere i rapporten, er det på nuværende tidspunkt ikke muligt at lave WiFi positionering på ios enheder, da Apple s SDK for ios ikke giver mulighed for at opsamle signalstyrke for nærtliggende trådløse netværk [6]. Dette er en restriktion fra Apple. ios understøtter Bluetooth 2.1 funktionalitet, hvilket giver adgang til et begrænset sæt prædefinerede profiler. Benyttes Gamekit frameworket[7], giver dette mulighed for at kommunikere over Bluetooth med andre ios enheder. Gamekit frameworket er understøttet i ios version 3.0 og nyere. Der understøttes altså ikke kommunikation med eksempelvis Android. [20] Apple 19

har siden projektstart udgivet ios 6, som understøtter Bluetooth 4.0, som giver mulighed for at kommunikere med andre enheder end blot dem som kører ios. Bluetooth 4.0 leverer en vigtig mulighed for det Kollaborative Lokaliseringssystem, da ios nu tillader tvær-platform kommunikationen over Bluetooth 4.0. [19] Dette betyder altså at ios og Android enheder, når Android får understøttelse for Bluetooth 4.0, vil være i stand til at kommunikere. På den måde vil de blinde ios enheder kunne modtage lokationer fra de hjælpende Android enheder. [8] [25] 3.2.3 Android Android er et operativsystem hovedsageligt henvendt til smartphones og tablets (benyttes også på eksempelvis Google TV). Android blev i 2005 opkøbt af Google Inc. og herefter udgivet og videreudviklet som open-source. Android er blevet implementeret af mange forskellige producenter (HTC, Samsung, Sony, med flere), som alle sælger smartphones med et operativsystem baseret på Android. Androids SDK giver mulighed for Bluetooth 2.1 til både at opdage, forbinde, kommunikere og måle signalstyrke til andre Bluetooth enheder. Fra Android version 2.3.3 er det muligt at oprette usikre forbindelser. En usikker forbindelse er etableret uden at der skal angives PIN-kode. Dette giver mulighed for at forbinde enheder automatisk uden brugerens indblanding. Dette giver mulighed for at oprette et automatisk netværk, som styres alene af en applikation. Android understøtter endnu ikke Bluetooth 4.0, men der findes flere producenter som har lavet deres eget API til Android for Bluetooth 4.0, som kun virker på producentens egne produkter. Eksempelvis har Motorola udgivet et API, som understøtter Bluetooth 4.0, der kan benyttes kun på Motorola Android telefoner [21]. I forhold til Bluetooth 4.0 kommunikationen mellem ios og Android, kræves det altså, at Android kommer til at understøtte teknologien. 3.2.4 Windows Phone 7 Windows Phone er udviklet af Microsoft, og er deres svar på et operativsystem til moderne mobile enheder. Windows Phone operativsystemet er blandt andet installeret på Nokias nye populære telefon serie Lumia [22]. Windows Phone 7 giver ikke udviklere adgang til Bluetooth 2.1 kommunikation. Det 20

betyder at det ikke er muligt at sende data direkte mellem enheder. Windows Phone 8 blev udgivet i slutningen af projektperioden, og Bluetooth understøttelse er ikke undersøgt nærmere. 3.2.5 Opsummering af de mobile operativsystemer Som beskrevet er det på nuværende tidspunkt ikke muligt at kommunikere platform-uafhængigt med Bluetooth. Bluetooth 2.1 kan ikke bruges platformuafhængigt på ios. Det forventes, at når Android, samt Windows Phone 8, kommer til at understøtter Bluetooth 4.0, vil det være muligt at kommunikere på tværs af operativsystemer, da ios allerede har Bluetooth 4.0 platform uafhængig kommunikation. Det betyder at det på nuværende tidspunkt ikke er muligt at hjælpe blinde enheder der anvender ios og Windows Phone. 3.3 Netværksarkitektur Som beskrevet i Afsnit 2.3 om Kollaborativ Lokalisering, er det nødvendigt for enheder at kunne kommunikere, så deres lokation kan deles. For at enheder kan kommunikere, og hermed dele lokationer, skal der etableres et netværk. En Blind enhed opretter et netværk med det formål at finde kandidater til den geografisk nærmeste enhed. I denne rapport defineres Et netværk som et netværk bestående af de enheder som er inden for en given enheds Bluetooth signalrækkevidde, som for Klasse 2 er 10 meter. De enheder som udgør netværket, antages som værende de geografisk nærmeste. I dette projekt er det kun disse enheder, der er relevante for Kollaborativ Lokalisering. Det kunne tænkes at en mere avanceret brug af Kollaborativ Lokalisering kunne drage nytte af, at kunne kommunikere med enheder, som ikke blot er inden for en enheds signalrækkevidde. Dette afsnit vil analysere en Peer-To-Peer (P2P) arkitektur, samt en centraliseret server arkitektur, til at danne netværket. 3.3.1 Decentraliseret Peer-To-Peer arkitektur Et Peer-To-Peer (P2P) netværk er defineret som en klasse af systemer og applikationer der anvender en arkitekturmodel, hvor hver enhed i netværket agerer både server og klient. Enhver enhed i netværket har samme ansvar og rettigheder. [10] I en P2P netværksarkitektur, hjælper enhederne (Peers), hinanden med at opnå et resultat. I dette projekt er resultatet at blinde enheder skal opnå 21

en lokation. Alt den nødvendige information findes i netværket. Enhedernes ansvar er at dele deres egen lokation hvis de har en. Enhedernes rettighed er at spørge efter en lokation i netværket. Der findes forskellige underkategorier af P2P netværksarkitekturen. Der findes P2P systemer, der har centraliserede punkter. Dette kendes f.eks. fra BitTorrent P2P fildelings-netværket. Alle peers slår op i et centraliseret katalog (Tracker), som indeholder informationer om hvilke peers, der har en bestemt ressource (fil). For at peers kan finde hinanden, er et opslag i det centraliserede katalog (Tracker) derfor nødvendigt. [10] I dette projekt kan der oprettes et P2P netværk, som ikke kræver et centraliseret punkt. Dette kan gøres, da Bluetooth giver mulighed for at opdage andre peers, som er i nærheden. Derved dannes et netværk, uden et centraliseret punkt, men hvor netværket består af de peers, som er indenfor rækkevidde af enheden. Et sådan netværk kaldes et Pure P2P netværk. [10] Da der bruges Bluetooth som kommunikationsteknologi vides det at enheder i netværket er indenfor 10 meter. For at opnå en lokation ønskes lokationen på den nærmeste enhed. Den nærmeste enhed antages at være den enhed, med den stærkeste signalstyrke. Hvis den hjælpende enhed kender sin præcise lokation, ved den blinde enhed, som maksimalt er 10 meter væk, at usikkerheden på lokationen højest er 10 meter. Når der benyttes en Pure P2P netværksarkitektur, skal den brugte kommunikationsteknologien understøtte både udveksling af data, og opdagelse af andre enheder. 3.3.2 Centraliseret server arkitektur Alternativt til Pure P2P arkitekturen kunne en centraliseret server arkitektur benyttes. I dette projekt kunne en centraliseret server arkitektur benyttes. Hermed menes at alle enheder snakker med en central server og ikke direkte med hinanden. Denne server skal stå for at holde styr på alle enheders lokation. Det sker ved, at hjælpende enheder skal sende deres lokation, til serveren. Serveren gemmer information om, hvor de hjælpende enheder befinder sig. Når en blind enhed ønsker at få en lokation, spørges serveren. Den blinde 22

enhed sender samtidig en liste over de enheder, som er indenfor den blinde enheds rækkevidde, samt signalstyrken til enhederne. Det er herefter serverens opgave at vælge den hjælpende enhed med stærkest signalstyrke ud fra den medsendte liste. Dette kan lade sig gøre, fordi de enheder som optræder på listen, er indenfor 10 meter, hvis der for eksempel benyttes Bluetooth. Denne løsning drager fordel af at enhederne ikke behøver udveksle information direkte med hinanden. Den kræves dog, at hjælpende enheder hele tiden opdaterer deres lokation på serveren. Et problem med denne løsning er dog, at personlige oplysninger om personers færden gemmes et centralt sted, hvilket kan kompromitere privatlivets fred. Dette problem kan dog afhjælpes ved eksempelvis at introducere hashing af enheders Id, inden Id et sendes til serveren. Serveren opbevarer stadig oplysninger om alle enheder, men det bliver svært at koble oplysningerne om en enhed til en person. Det antages dog at der er en minimal risiko for at sikkerhedsproblematikken bliver et reelt problem. 3.3.3 Valg af netværksarkitektur Både Pure P2P arkitekturen og den centraliserede server arkitektur, kan anvendes til Kollaborativ Lokalisering. I dette projekt udvikles der et Kollaborativ Lokaliseringsservice, baseret på Pure P2P arkitekturen. Dette er et valg taget i projektet. Der er ikke nogen entydig årsag for at Pure P2P arkitekturen er bedre end den centraliserede server arkitektur. De har som beskrevet hver deres fordele og ulemper. 3.4 Opsummering I problemanalysen er der blevet analyseret på kommunikationsteknologier, mobile enheders operativsystemer, samt netværksarkitekturer. Bluetooth er blevet udvalgt som projektets kommunikationsteknologi. Bluetooth klasse 2, giver en rækkevidde på 10 meter. 10 meter er som beskrevet en fornuftig rækkevidde, da den giver det bedste kompromis, mellem at der er nogen enheder at kommunikere med, mens disse ikke er for lang væk. Det større rækkevidden er det større er unøjagtigheden på lokationen. I skrevne stund er det ikke muligt for ios og Android at kommunikere med den udbredte Bluetooth version 2.1, da ios ikke tillader applikationer 23

at kommunikere med andre enheder, end ios enheder. Bluetooth kan med version 4.0 give mulighed for at lokationer kan deles mellem ios og Android operativsystemerne. ios understøtter Bluetooth 4.0, men hverken Android eller Windows Phone 7 understøtter i skrevne stund Bluetooth 4.0. Det er i projektet blevet valgt at benytte Pure P2P netværksarkitekturen, til Kollaborativ Lokalisering, baseret på Bluetooth. 24

Design 4 I dette kapitel designes en løsning til Android platformen. Denne løsning er en Bluetooth P2P Kollaborativ Lokaliserings Service. Denne løsning har til formål at gøre det muligt for mobile enheder at oprette et netværk, der inkluderer nærværende enheder. Igennem det oprettede P2P netværk, kan blinde enheder ansøge om en lokation, mens hjælpende enheder kan dele deres lokation med blinde enheder. Der er fokus på at designe et generisk netværk som kan bruges til andre formål end blot Kollaborativ Lokaliserings Service. Samtidig er det vigtigt at løsningen ikke er øremærket en bestemt kommunikationsteknologi. Kommunikationsteknologien, som løsningen benytter er, som beskrevet i Kapitel 3, Bluetooth. Da det antages at Bluetooth 4.0 er på vej, er det vigtigt at løsningen designes, så den gør overgangen til en nyere version af Bluetooth så let som muligt. Kapitlet giver først et overblik over løsningens komponenter. Herefter følger en mere detaljeret gennemgang af komponenterne. 4.1 Systemoversigt Formålet for Bluetooth P2P Kollaborativ Lokaliserings Servicen er at give mulighed for at opnå en lokation, eller at hjælpe andre med at opnå en lokation. Enheder som har deres egen lokation, f.eks. fra en service som SmartCampusAAU (som beskrevet i Afsnit 2.2) eller GPS, er Hjælpende Enheder. Enheder som ikke har mulighed for at opnå en lokation er Blinde Enheder. Der skelnes altså mellem to forskellige roller som enheder tager. 25

I udviklingen af systemet har det været en generel designfilosofi at systemet skal være så modulært som muligt. Da potentialet for brug af et generisk Bluetooth netværk til Android er vidstrakt, ønskes det ikke at systemet er øremærket til en bestemt type brug. I dette projekt er netværket brugt som en Bluetooth P2P Kollaborativ Lokaliserings Service. Det ønskes både at lave en Kollaborativ Lokaliserings Service (KLS), samt det netværk KLS anvender. Dette netværk er generisk og kan benyttes i andre sammenhænge. Systemet har to forskellige dele. Den ene del er specifik for projektet, nemlig lokalisering. Den anden del er generel og er et værktøj som i dette projekt benyttes til lokalisering. Dette værktøj er et netværk, som gør det muligt at kommunikere med andre mobile enheder. Denne opdeling af systemet er beskrevet yderligere i næste afsnit. 4.1.1 Modulerne i systemet For at gøre det muligt at definere en fornuftig opdeling af systemet er det nødvendigt at analysere hvilke opgaver, som skal løses for at kunne opfylde både målet for lokaliseringen men også for en generel netværksprotokol. Nedenstående liste viser de nødvendige opgaver samt hvilken af de to systemdele opgaven hører ind under. Definere og benytte kollaborativ lokalisering algoritme Systemdel: Lokalisering Beskrivelse: For at benytte kollaborativ lokalisering er det nødvendigt at der findes en algoritme som afgør hvem man skal spørge. Derudover er det også nødvendigt at vide hvordan man benytter den indhentede information til at opnå sin egen lokation. Afsendelse og modtagelse af beskeder til og fra andre enheder Systemdel: Netværk Beskrivelse: For at enheder kan udveksle information er det nødvendigt at have en form for kommunikation. Denne kommunikation foregår ved udveksling af beskeder. Afsendelse og modtagelse af beskeder er nødvendigt for enhver brug af netværket, ikke blot en Kollaborativ Lokaliserings Service. Forstå, læse og skrive beskeder Systemdel: Lokalisering 26

Beskrivelse: Samtidig med at beskeder skal kunne transporteres, skal beskederne også kunne afkodes af den modtagene enhed. Alle beskeder skal følge en standard så både modtager og afsender kan forstå beskeden. Dette skal gøres så beskedstandarden er platformuafhængig. Det betyder at der er en opgave i at skabe beskeder som definerer en type af forespørgsel eller svar til en modtagende enhed. Opretholde et opdateret overblik over enheder i netværket Systemdel: Netværk Beskrivelse: Da mobile enheder nemt kan flyttes, er det antageligt at disse enheder også til tider må bevæge sig. Eksempelvis når en enheds ejer bevæger sig til et andet rum i en bygning. Der vil altså være løbende ændringer i hvilke enheder som udgør en enheds netværk. For at undgå for mange forsøg på at sende beskeder til enheder som ikke længere er inden for rækkevidde, skal netværket hele tiden holdes opdateret. For at implementere en opdeling af de ovenstående opgaver dannes to moduler. De to moduler er navngivet henholdsvis Kollaborativ Lokaliserings Service forkortet KLS og Network Manager. KLS modulet står for alle opgaver omkring lokalisering og Network Manager håndterer alle netværksopgaver. Alle moduler ses på Figur 4.1. 27

Kolaborativ Lokations Service (KLS) Network Manager (NM) <<Interface>> IConAdapter Bluetooth 2.1 Bluetooth 4.0 Andet Figur 4.1: Moduler i systemet KLS og Network Manager modulerne er uafhængige af hvilken kommunikationsteknologi der bruges til at udføre deres respektive opgaver. For ikke at låse systemet fast på en specifik teknologi introduceres et interface, som har til formål at give Network Manager modulet de nødvendige metoder til at løse sine opgaver. Dette interface kaldes IConnectionAdapter. Interfacet giver adgang til at opdage andre enheder, oprette forbindelser, samt sende og modtage data. I dette projekt er IConnectionAdapter interfacet implementeret af et modul med navn Simple Bluetooth Adapter (SBA), som benytter Bluetooth 2.1. Ved blot at have et interface er det muligt at udskifte SBA med en hvilken som helst anden form for kommunikationsadapter, så længe den nye kommunikaionsadapter implementerer interfacet. Interfacets metoder er beskrevet i Afsnit 4.6. Figur 4.1 viser modulerne, som udgør P2P Kollaborativ Lokaliserings Servicen. På Figuren ses det at systemet indeholder KLS og Network Manager og IConnectionAdapter interfacet. Figuren viser, at systemet er forberedt på at skifte kommunikationsadapter, til eksempelvis en der benytter Bluetooth 4.0. Denne mulighed for nem udskiftning gør, at når Bluetooth 4.0 kommer, skal der blot udvikles en adapter der passer til den nye version af Bluetooth. En sådan ændring kræver ikke nogen ændringer i de øvrige moduler. Bå- 28

de KLS, Network Manager, IConnectionAdapter interfacet og SBA er alle beskrevet i detaljer, senere i dette kapitel. Yderligere udvikles en grafisk grænseflade for systemet. Denne grænseflade er ikke en del af P2P Kollaborativ Lokaliserings Servicen. Grænsefladen har til formål at gøre debugging og afprøvning af systemet muligt. Grænsefladens eneste formål er at vise information fra KLS. Denne grænseflades udseende og interaktionsmuligheder er beskrevet senere i kapitlet. Figur 4.2 viser en samlet oversigt over modulernes sammenhæng med hinanden, og væsentlige aktører på en Android enhed. Denne figur viser hele systemet, på en Android enhed. 29

Figur 4.2: Systemet til Android i kontekst 4.2 Use cases I dette afsnit viser den sekventielle række af handlinger, som udfolder sig, når en enhed benytter systemet. Der findes to forskellige scenarier: Når en blind enhed ønsker en lokation og Når en hjælpende enhed deler sin lokation. 30

4.2.1 Når en blind enhed ønsker en lokation Figur 4.3 viser hvad der sker i de forskellige moduler når en blind enhed ønsker at få en lokation fra netværket. Handlingerne er vist sekventielt i Figur 4.3. Figur 4.3: Sekvensdiagram for en typisk situation hvor en blind enhed ønsker at finde sin lokation 4.2.2 Når en hjælpende enhed deler sin lokation Figur 4.4 beskriver hvad der sker i de forskellige moduler når en hjælpende enhed deler sin lokation med en blind enhed. Handlingerne er vist sekventielt i Figur 4.4. 31

Figur 4.4: Sekvensdiagram for en typisk situation hvor en hjælpende enhed har en lokation og deler den 4.3 Modul: Applikation Applikationsmodulet er brugergrænsefladen for systemet. Designet af brugergrænsefladen er, i dette projekt, proof-of-concept, for at vise det underliggende systems handlinger. Formålet er at vise hvordan KLS virker. For at opnå dette, er det nødvendigt at applikationen kan levere information omkring data der sendes, og forbindelser der oprettes. Information på skærmen kommer som følge af en af disse begivenheder: Lokation opdateret Indhold: Indeholder information om hvem lokationen er modtaget fra, samt lokationens latitude, longitude og altitude Forekomst: Forekommer når en ny lokation bliver modtaget fra KLS eller SmartCampusAAU 32

Peers fundet Indhold: Indeholder en liste af de peers som er fundet Forekomst: Forekommer når en søgning efter peers har returneret mindst 1 peer Lokation delt Indhold: Indeholder information om hvem man delt sin lokation med samt den faktiske lokationsdata Forekomst: Forekommer når enhedens lokation deles med en anden enhed Ingen lokation Indhold: Indeholder information om hvilken peer har svaret at den ikke har nogen lokation Forekomst: Forekommer når en enhed svarer med at den ikke har nogen lokation at dele En skitsering af brugergrænsefladen kan ses på Figur 4.5. Brugergrænsefladen indeholder to elementer. En knap med teksten Start Positionering og en Log over tekstbeskeder fra det underliggende system. Loggen er bygget op af en mængde af strenge. Hver gang en ny besked vises i loggen tilføjes den til bunden af listen. Knappen starter lokaliseringsprocessen. Figur 4.5: Brugergrænsefladens elementer 33

4.4 Modul: Kollaborativ Lokaliserings Service Modulet Kollaborativ Lokaliserings Service, også kaldet KLS, har til formål at håndtere udvekslingen af lokationer i netværket. KLS benytter det underliggende modul Network Manager til at kommunikere med andre enheder. En blind enhed bruger KLS til at anmode om en lokation ved hjælp af netværket. KLS skal sende en besked af typen LocationRequest over Network Manager til en hjælpende enhed. Når en hjælpende enhed modtager en LocationRequest, svares den spørgende enhed over netværket med en LocationResponse, som indeholder den hjælpende enheds lokation. Hermed har den blinde enhed opnået en lokation. Enheder har kun lov til at dele deres lokation gennem KLS, hvis den har opnået sin lokation gennem SmartCampusAAU eller eksempelvis GPS. Det er altså ikke tilladt at dele sin lokation, som er opnået gennem KLS. Begrænsningen med at blinde enheder ikke må dele deres lokation er introduceret da en kæde af blinde enheder, der delte deres position ville kunne lede til store unøjagtigheder. Denne problemstilling er beskrevet i detaljer i Afsnit 4.8 på side 40. 4.4.1 KLS-modulets metoder Applikationer som bruger KLS har mulighed for at benytte følgende metode: Start positioneringsservice Beskrivelse: Metode der indleder processen til at bestemme eller dele den nuværende lokation. Hvis enhedens lokation allerede kendes fra eksempelvis SmartCampusAAU er formålet at dele denne lokation til nærværende enheder. Hvis enhedens lokation ikke kendes er formålet at prøve at opnå en lokation fra netværket. Parametre: Ingen Returnerer: void Asynkront svar: Hver gang KLS modtager en ny lokation 4.5 Modul: Network Manager Network Manager modulet skal holde styr på hvilke enheder, der findes inden for enhedens signals rækkevidde samt at sende og modtage beskeder til og fra peers i netværket. 34