Bepalen van de nauwkeurigheid van location based services door...
Transcript of Bepalen van de nauwkeurigheid van location based services door...
Faculteit Toegepaste Wetenschappen
Vakgroep Informatietechnologie
Voorzitter: Prof. Dr. Ir. P. LAGASSE
Bepalen van de nauwkeurigheid van
location based services door middel van simulatie
door
Tom Genbrugge
Promotoren: Prof. Dr. Ir. B. Dhoedt, Dr. Ir. D. Colle
Scriptie begeleider: Ir. Matthias Strobbe
Scriptie ingediend tot het behalen van de academische graad van
licentiaat in de informatica
Academiejaar 2005–2006
Faculteit Toegepaste Wetenschappen
Vakgroep Informatietechnologie
Voorzitter: Prof. Dr. Ir. P. LAGASSE
Bepalen van de nauwkeurigheid van
location based services door middel van simulatie
door
Tom Genbrugge
Promotoren: Prof. Dr. Ir. B. Dhoedt, Dr. Ir. D. Colle
Scriptie begeleider: Ir. Matthias Strobbe
Scriptie ingediend tot het behalen van de academische graad van
licentiaat in de informatica
Academiejaar 2005–2006
Voorwoord
Allereerst zou ik mijn promotoren, Prof. Dr. Ir. B. Dhoedt en Dr. Ir. D. Colle en mijn begeleider,
Ir. Matthias Strobbe willen bedanken voor het uitschrijven van dit onderwerp. Hierbij zou ik
zeker Matthias van harte willen bedanken voor zijn goede begeleiding gedurende het hele jaar.
Zonder de inbreng van zijn kennis en ervaring over dit onderwerp, zijn adequate antwoorden
op verschillende vragen en het luisteren naar mijn soms chaotische uitleg, was deze thesis niet
geworden wat hij nu is. Ook dank ik hem voor het nalezen en verbeteren van deze tekst. Mijn
grote broer, mijn kleine broer en mijn ouders dank ik daar trouwens ook voor. Mijn vriendin
wil ik in de bloemetjes zetten voor haar steun en bemoedigende woorden tijdens het werken aan
deze opdracht.
Tenslotte zou ik mijn ouders hartelijk willen bedanken voor mij al die jaren onvoorwaardelijk
te steunen. Het zijn zij die mij de mogelijkheid hebben gegeven om te studeren. Ook hun
bijdragen tot dit geheel valt niet te onderschatten.
Tom Genbrugge, augustus 2006
Toelating tot bruikleen
“De auteur geeft de toelating deze scriptie voor consultatie beschikbaar te stellen en delen van
de scriptie te kopieren voor persoonlijk gebruik.
Elk ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder met betrek-
king tot de verplichting de bron uitdrukkelijk te vermelden bij het aanhalen van resultaten uit
deze scriptie.”
Tom Genbrugge, augustus 2006
Bepalen van de nauwkeurigheid van location
based services door middel van simulatiedoor
Tom Genbrugge
Scriptie ingediend tot het behalen van de academische graad vanlicentiaat in de informatica
Academiejaar 2005–2006
Promotoren: Prof. Dr. Ir. B. Dhoedt, Dr. Ir. D. ColleScriptie begeleider: Ir. Matthias Strobbe
Faculteit Toegepaste WetenschappenUniversiteit Gent
Vakgroep InformatietechnologieVoorzitter: Prof. Dr. Ir. P. LAGASSE
Samenvatting
De laatste tijd is er een grote opkomst van “location based services”. Deze systemen biedendiensten aan, gebaseerd op de positie van de gebruiker (bv. een gebruiker die in een luchthavennaar een gate begeleid wordt mbv. een navigatiesysteem). In deze scriptie werd een mana-gementstool geımplementeerd waarmee men het nut kan bepalen om een dergelijk systeem teinstalleren. Dit door het simuleren van personen die in een gebouw rondwandelen. Het bepalenvan een positie binnen een gebouw is tegenwoordig nog niet zo nauwkeurig, zodat een gebruikerwel eens verkeerd gestuurd wordt. Deze nauwkeurigheid kan men verbeteren door bv. meermetingen te doen, wat meer tijd in beslag neemt, of door meer apparatuur te plaatsen, wateen hogere kost met zich meebrengt. Natuurlijk is er ook een limiet aan het plaatsen van meerapparatuur en de nauwkeurigheid zal nooit perfect zijn. Men moet ook rekening houden dat eengebruiker niet altijd de aangeduide weg volgt en hoeveel zijn afwijking zal zijn.
Dit alles kan men ingeven/instellen in deze applicatie. Men kan tijdens het simuleren de personen(en de gegevens die ervan veranderen) volgen. Eens ze hun eindlocatie bereikt hebben kan mende nodige informatie aflezen (bv. hoe ver was het (gemiddelde) kortste pad en hoe ver werd ergemiddeld over gedaan).
Men kan ook gedurende elk stadium (bv. opbouw van de plattegrond, voor, tijdens en na desimulatie) alle gegevens opslaan, zodat men achteraf van dat punt verder kan werken.
Trefwoorden
Location based services, nauwkeurigheid, simulatie.
Providing the accuracy of location based services bymeans of simulation.
Tom Genbrugge
Supervisor(s): Prof. Dr. Ir. B. Dhoedt, Dr. Ir. D. Colle, Ir. Matthias Strobbe
Abstract— This article describes a management-tool which can be usedto estimate the precision of a location based system. This is done by meansof simulation. Nowadays the precision to locate a person within a buildingis not exact. For instance, when we use an navigation system it could give usthe wrong direction. The precision of the system can be made better by, e.g.measuring more points, which takes more time, or by placing more trans-mitters, which has a higher cost. We must also take into account that peoplemake mistakes (e.g. because they are distracted) and therefore people cantake the wrong path.
To configure the application with all its properties, one can visually fol-low the persons and the properties of these persons who inserted into theapplication, once the simulation is started. Once they reached the end oftheir path, one can read the necessary information to evaluate the proper-ties of the system.
One can also save all of the data, e.g. the floor-plan, of the applicationbefore, during and after the simulation.
Keywords—Location based services, precision, simulation.
I. INTRODUCTION
NOWADAYS location based services are becoming moreand more current. Those services rely on the information
that you are on a specific position and they provide you witha service (such as finding the shortest path to your gate on theairport) based on that position. The most widely known systemis the Global Positioning System or GPS[1]. Nowadays we useGPS to locate the car for instance. When the system knows ourposition, a navigation system will tell us which direction youhave to follow to reach your destination. The big disadvantageof this system is that it does not work inside a building. Othersystems, such as Wi-Fi [2] and Bluetooth [3], can be used to getyour location. These services have, at the moment of writing,not the ideal accuracy. This accuracy can be improved by e.g.placing more transmitting equipment, which has a higher cost.
In this thesis we build a management-tool to estimate theprofit of installing a location based system. We should be able tohave the possibility to create a floor plan (with doors and rooms)and to add transmitters, hardware and its price and how this in-fluences the accuracy of the system. We should also have the op-portunity to create and add people with several properties (suchas their speed, are they rapidly distracted, and so on). We shouldalso be able to give a starting point (where a person enters thebuilding) and a destination point (e.g. an office in a office build-ing) to those people. Once the simulation is started, the systemshould (as it were) navigate the people to their destination point.The system will make mistakes because the (bad) position of thetransmitters (lower accuracy), as a result, people will not always
T. Genbrugge is a final-year student in the master in computer science. Themaster thesis corresponding to this article has been written in collaboration withthe INTEC Broadband Communications Networks research group, Ghent Uni-versity (UGent), Gent, Belgium.
follow the shortest path. We must also take into account thatpeople can make mistakes too. During and after the simulationwe can view and save the characteristics of the application.
II. THE ARCHITECTURE
The application is build in Java with two types of classes, onefor the data and calculations and one for the GUI (GraphicalUser Interface). Each class will be placed in the correspondingpackage (GUI classes in the GUI package, data classes in thedata package). We will describe the important parts in the fol-lowing. But first let us explain how the environment is broughtinto the system.
Door 1
Door 2
Door 3
Room
Fig. 1. A graph representing a room with two doors
The environment is represented in the computer by a graph(see figure 1). A door is represented as a vertex. A direct pathbetween two doors (belonging to the room) is represented by aedge. By a direct path, we mean a path that a human being canfollow physically without leaving the room. The room repre-sents a set of all connections possible between its doors. Theweight of the edge is the distance between the correspondingdoors. Now we can find the shortest path from the start locationto the destination.
A. Data-package
To calculate the shortest path we use a free Java graph libraryviz. JGraphT[4]. The class simulator simulates the movementsof the persons. One can give the update frequency of the de-vice the (virtual) person is wearing. The higher this frequency,the more accurate the system will be. But there is a limit to theupdate frequency because the system has to calculate the esti-mated position and that is time-consuming. There is also a limitto the precision of the system. With the given technology atthe moment, we cannot precisely tell where a person is located.Once we start the simulation, we can let the people move tothere destination. This is done by calculating the next positionto its previous one (whether or not wrongfully estimated, due
to the inaccuracy of the system), considering that a person candeviate from the right path. Once we have got this location, welook at the accuracy of the system. For instance when the sys-tem has an accuracy of 3.5 meters (which is realistic), the nextlocation could differ 3.5 meters. One can see the path the personis following, and at the end compare it with the shortest path.
B. GUI-package
This package makes all the previous ones visible to the user.We can see persons walking around, see where the transmittersare, add rooms, add doors, etc. One can also follow one particu-lar person and see where he has been, what his current locationis, where the system thinks he is, etc. One can also see what thesystem accuracy is at a persons location by the size of an sur-rounding circle. The larger the radius, the smaller the accuracyis.
III. TESTRESULTS
We first have built an example of the floor plan (which youcan find in the application by clicking the menu help –> LoadDemo Data). Then we added about 200 people to walk in thissimulation. Before starting the test we set the chance that a per-son is distracted to zero and we let vary the systems accuracy.After the tests we can observe that the systems (in)accuracy isrealistic. When we have a near perfect system, the length of thepath is not much further then the shortest path. When the sys-tem is very inaccurate, the persons will travel a lot further thanthe shortest path. We also tested when the person is distracted.We came to the same conclusion: when he is a lot distracted hewill travel a lot further then when he is not. Both the systemaccuracy and the people’s distraction concur nicely and give theexpected results.
IV. CONCLUSIONS
We have created a management-tool which can be used to es-timate the precision of a location based system. We can draw afloor plan, add transmitters, persons,etc. We can also adjust thesystem accuracy. During the simulation we can follow the per-son. After the simulation we can view and save the end results.
REFERENCES
[1] Introduction to GPS.http://www.cmtinc.com/gpsbook/index.htm
[2] WiFihttp://www.wi-fi.org/
[3] http://www.bluetooth.com/bluetooth/[4] JGraphT a free Java graph library
http://jgrapht.sourceforge.net/
INHOUDSOPGAVE i
Inhoudsopgave
1 Inleiding 1
1.1 Situering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Doelstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Voorafgaande studie 3
2.1 Bestudeerde technologieen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.1 GPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.2 RADAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.3 GSM en UMTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.4 Smart Floor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.5 Active Badge en Active Bat . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.6 RFID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.7 Bluetooth en Zigbee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.8 WiFi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 Voorbeelden van lokalisatie bepalingen met WiFi . . . . . . . . . . . . . . . . . . 7
2.2.1 Lokalisatiebepaling met Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.2 Practical Robust Localisation over Large-Scale 802.11 Wireless Networks 8
3 Requirements 9
3.1 Algemeen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 Requirements per component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.1 Omgevingsmodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.2 Algoritme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.3 Simulatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.4 Persoon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
INHOUDSOPGAVE ii
3.2.5 Apparatuur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.6 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.7 Persistentie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4 Architectuur en Implementatie 13
4.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 Het datapakket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2.1 Algoritmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2.2 Simulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2.3 Persoon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2.4 Apparaten, ZendApparaten en Hardware . . . . . . . . . . . . . . . . . . 15
4.2.5 Ruimtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2.6 Kamer en Gang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.2.7 Doorgang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2.8 Deur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2.9 Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2.10 LeesSchrijfData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.2.11 Punt3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.3 Het guipakket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.3.1 MyMenuBar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.3.2 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.3.3 Wereld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.3.4 Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.3.5 JDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3.6 AddHardwareDialog en AddZendApparaatDialog . . . . . . . . . . . . . . 21
4.3.7 AddDeurDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3.8 AddKamerDialog en AddGangDialog . . . . . . . . . . . . . . . . . . . . . 21
4.3.9 AddPersoonDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3.10 SetSysNauwkDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.3.11 SelecteerPersoonDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.3.12 SetDELAYDialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
INHOUDSOPGAVE iii
5 Evaluatie 24
5.1 Opstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.2 Variatie van de systeemnauwkeurigheid . . . . . . . . . . . . . . . . . . . . . . . 25
5.2.1 Globale systeem onnauwkeurigheid . . . . . . . . . . . . . . . . . . . . . . 26
5.2.2 De nauwkeurig hangt af van de zendapparaten . . . . . . . . . . . . . . . 27
5.2.3 Besluit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.3 Variatie van de errorprobabiliteit van de persoon . . . . . . . . . . . . . . . . . . 28
5.3.1 Errorprobaliliteit van 0,1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.3.2 Errorprobaliliteit van 0,5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.3.3 Errorprobaliliteit van 0,9 . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.3.4 Besluit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.4 Variatie van systeemnauwkeurigheid en errorprobabiliteit van persoon . . . . . . 31
5.5 Besluit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6 Conclusie 33
A Layout van de bijgevoegde CD-ROM 36
INLEIDING 1
Hoofdstuk 1
Inleiding
1.1 Situering
De laatste tijd is er een grote opkomst van “location based services”. Deze services hebben
allemaal te maken met het bepalen van de positie en de verschillende mogelijkheden die deze
extra informatie biedt. Het bekendste voorbeeld hiervan is het Global Positioning System of
GPS systeem[2, 3]. Dit systeem werd ontwikkeld voor de Amerikaans marine om wereldwijd
de plaats te kunnen bepalen van hun schepen. Tegenwoordig gebruikt men GPS in de auto
om een route te bepalen. Het grote nadeel van GPS is dat het niet binnen in een gebouw kan
gebruikt worden omdat het dan geen of bijna geen ontvangst heeft van de zendapparaten (hier
satellieten). Andere (nieuwere) systemen, die men op het eerste gezicht niet zou associeren met
positiebepaling kunnen dit echter wel. Denk bv. aan de WiFi-technologie [4], die vooral gebruikt
wordt om draadloos te surfen, de Bluetooth-technologie, die gebruikt wordt voor overdracht van
gegevens op korte afstand of de Zigbee-technologie [6], die gebruikt wordt voor draadloze lage
data-rate transportnetwerken.
Dergelijke diensten zijn nuttig als men bv. in een groot kantoren complex binnen komt en
zijn weg daar niet kent. Men kan dan de plattegrond en de routeplanner inladen op zijn mobiel
apparaat (vb. PDA), dat de lokalistietechnologie gebruikt, om zo al wandelend bv. een bureau
of een vergaderzaal te bereiken. Enig probleem met deze service is dat deze niet altijd even
nauwkeurig is, waardoor het systeem denkt dat de gebruiker zich op een andere locatie bevindt
zodat deze laatste verkeerd gestuurd kan worden. Ook mag men niet vergeten dat mensen altijd
mensen blijven en dus niet altijd de aangeduide weg volgen omdat ze bv. afgeleid zijn.
1.2 Doelstelling 2
1.2 Doelstelling
De doelstelling van deze thesis is een managementstool te creeren om het nut van location based
services te gaan bepalen. Een bepaalde ruimte moet gemodelleerd kunnen worden, bv. een
luchthaven of een groot kantoorgebouw. Men moet kunnen aangeven waar een persoon vertrekt
(het gebouw binnen komt) en wat zijn eindbestemming is (bv. gates, vergaderzalen, ...). Er
kan opgegeven worden welk soort kortstepad-algoritme er gebruikt wordt, wat de gemiddelde
nauwkeurigheid gaat bepalen en wat de kost is om zo een nauwkeurigheid te verkrijgen. Ook de
plaatsing van het materiaal (bv. access points) in de ruimte kan opgegeven worden. Dit bepaalt
de specifieke nauwkeurigheid binnen het gebouw. Het materiaal brengt natuurlijk ook een kost
met zich mee dat ingebracht moet worden.
Simulaties kunnen dan uitgevoerd worden waarbij mensen zich van een van de ingangen
naar een van de eindbestemmingen begeven, waarbij ze dus zogezegd naar hun bestemming
genavigeerd worden via het lokalisatiesysteem. Afhankelijk van het gebruikte algoritme en de
plaatsing van de apparatuur, zal het systeem nu en dan fouten maken, waardoor de mensen niet
steeds het kortste pad zullen volgen. Ze kunnen natuurlijk ook zelf fouten maken, wanneer ze
bv. even een koffie willen drinken. Tijdens en na de simulatie kunnen dan de karakteristieken
van het systeem afgelezen worden. bv. Het afstandsverschil tussen de werkelijke locatie van de
persoon en de locatie waar het systeem denkt dat de persoon is. Of bv. het verschil tussen het
gemiddelde kortste pad en het gemiddelde werkelijke pad. Op die manier kan het nut van het
installeren van een dergelijk systeem bepaald worden.
VOORAFGAANDE STUDIE 3
Hoofdstuk 2
Voorafgaande studie
Dit hoofdstuk behandelt de studie die voorafging aan het ontwerpen en implementeren van de
applicatie. Vooreerst wordt er gekeken welke technologieen er mogelijk zijn om dan uit te zoeken
hoe men (op dit moment) de locatie kan bepalen en hoe nauwkeurig dat allemaal wel is.
2.1 Bestudeerde technologieen
Hierbij wordt gekeken of de techniek toepasbaar is binnen in gebouwen, of de kost niet te groot
is om zo een systeem op poten te zetten en of de nauwkeurigheid groot genoeg is.
2.1.1 GPS
GPS is het systeem bij uitstek om uw positie te laten bepalen op aarde[3]. GPS is nauwkeurig
tot op 15 meter, maar met moderne technieken kan men zelf een nauwkeurigheid van 10 cm
verkrijgen. Dit lijkt ideaal, maar het grote nadeel van dit systeem is dat het een ’line of sight’
moet hebben om functioneel te zijn. Het moet dus een rechtstreekse (satelliet) verbinding
kunnen maken met minstens 4 satellieten, wat voor onze toepassing echter onmogelijk is omdat
we binnen in een gebouw bijna nooit contact kunnen maken het nodige aantal stations.
2.1.2 RADAR
Het welgekende RADAR-systeem [7] kan natuurlijk ook een positie bepalen. Denk maar aan een
vliegtuig dat een ander vliegtuig zou willen onderscheppen. Bij RADAR wordt er een signaal
uitgestuurd en wacht men tot het signaal, na terugkaatsing op een voorwerp, terug ontvangen
wordt. Men kan dan de afstand bepalen door het verschil in tijd te meten tussen zenden en
2.1 Bestudeerde technologieen 4
ontvangen (en de snelheid van het signaal). Het probleem hiermee is dat het systeem werkt met
terugkaatsing en dus niet door permanente uitgezonden signalen van de zendapparaten (ook wel
’access points’ genoemd). Hierdoor wordt het onbruikbaar voor onze toepassing. RADAR kan
anderzijds ook geen signalen ontvangen als het een signaal aan het versturen is. Hierdoor moet
men een minimum afstand hebben tov het voorwerp (anders wordt het niet gedetecteerd).
2.1.3 GSM en UMTS
Met een GSM [8] kan je binnen in een gebouw telefoneren, dus denk je dat deze technologie wel
iets kan bieden. De eenvoudigste manier om een positie te bepalen met de GSM-technologie
is het zogenaamde Cell Identification. Het systeem kijkt met welke zendmast je in contact
bent en weet dan in welk gebied je je bevindt. Echter kan zo een gebied oplopen tot 30 km
(bv. op het platteland), wat dus onaanvaardbaar is voor deze toepassing. Men zou dan met
bv. 3 basisstations kunnen werken. Men vraagt dan de signaalsterktes op, waaruit men kan
afleiden hoe ver elk station van ons verwijderd is. Met deze drie afstanden en de locaties van de
zendmasten kan men de positie bepalen via trilateratie (zie Figuur 2.1).
5 m
5 m
3 m
Figuur 2.1: vb. van trilaterie, een positie bepalen met drie punten en drie afstanden
Wanneer je bv. 5 meter van punt 1, 5 meter van punt 2 en 3 meter van punt 3 verwijderd
bent, hebben de cirkels (die als straal de afstand hebben) een gemeenschappelijk snijpunt nl. de
positie waar je staat, gemeen. Dit werkt alleen in het vlak. In de ruimte (zoals positiebepaling
met GPS (zie 2.1.1)) heb je vier satellieten nodig (je werkt dan met snijpunten van bollen ipv
2.1 Bestudeerde technologieen 5
met cirkels).
In de praktijk is het werken met drie zendmasten echter niet bruikbaar omdat er teveel
’ruis’ op zit. Het verzonden signaal van de masten kan weerkaatsen op gebouwen en andere
voorwerpen waardoor het systeem denkt dat de masten verder staan en zo de positie verkeerd
inschatten.
Een nieuwer systeem is het zogenaamd derde-generatienetwerk wat officieel gekend is als
UMTS (Universal Mobile Telecommunicatien System[9]). Hiermee kan een betere nauwkeurig-
heid geboden worden, omdat men met kleinere cellen werkt. Maar met een nauwkeurigheid van
75 to 125 meter is het ook niet geschikt voor onze toepassing.
2.1.4 Smart Floor
De “Smart Floor”[10] probeert om een persoon te lokaliseren via de vloer. Er worden onder elke
tegel druksensoren geplaatst. Wanneer een individu over een tegel wandelt, meten die sensoren
hoeveel druk erop gezet wordt. Men kan dus met 100 procent nauwkeurigheid te weten komen
dat daar een persoon staat. Nu kan men door het trainen van het systeem voor een kleine groep
van mensen met 90 procent nauwkeurigheid schatten wie daar staat. Het probleem van zo’n
systeem is dat de vloer ervoor moet uitgebroken worden, wat een serieuze extra kost met zich
meebrengt. Een ander probleem stelt zich wanneer er heel veel mensen op de vloer aanwezig
zijn. Deze technologie moet nog wat verder uitgewerkt worden om effectief in de praktijk te
kunnen worden toegepast voor grotere groepen.
2.1.5 Active Badge en Active Bat
Het Active Badge Systeem[11] werkt met een uniek infrarood signaal. Het apparaatje (de badge)
zendt elke 10 seconden een signaal uit. Nu kan men zijn positie bepalen door in de ruimtes
(kantoren, vergaderzalen,...) netwerksensoren te plaatsen die deze signalen kunnen detecteren.
Men kan dan de locatie opvragen via het WWW Active Badge Service, wat ook niet zo handig is
omdat men dan met het internet dient verbonden te zijn. Een ander nadeel is dat het zonlicht en
fluorescerend licht interfereren met het infrarood signaal. Een verbeterde versie van het Active
Badge systeem is het Active Bat systeem. Bij dit systeem kunnen de (nu ultrasone) signalen
de ruimte verlaten en worden dan ontvangen door sensoren op het plafond. Het heeft een
nauwkeurigheid van 9cm wat het uitermate geschikt maakt voor onze doeleinden. Een nadeel
met dit systeem is de extra kost en omdat men maar een bereik heeft van een zestal meter,
2.1 Bestudeerde technologieen 6
zullen er veel sensoren nodig zijn.
2.1.6 RFID
Radio Frequency Identification (RFID)[12] (Identificatie met radiogolven) is een methode om
van een afstand informatie op te slaan en te lezen van zogenaamde RFID-”tags”die op of in
objecten zitten. Er bestaan RFID-tags in de meest uiteenlopende vormen en afmetingen. Ze
kunnen passief of actief zijn. Passieve tags hebben geen eigen energiebron, ze benutten het
elektromagnetische veld van een lezer om een stroom te induceren in de chip, hierdoor gaat het
signaal niet over een grote afstand, maar slechts van enkele centimeters tot ongeveer twee meter.
Wat in onze toepassing zou betekenen dat er enorm veel passieve tags zouden moeten geplaatst
worden. Actieve tags hebben daarentegen een batterij om de chip te activeren en kunnen een
signaal over een grotere afstand (van zo’n 100 meter tot zelfs een paar kilometer) uitzenden.
Wat een stuk beter is voor onze toepassing.
2.1.7 Bluetooth en Zigbee
Bluetooth[5] is een radioverbinding (in de 2,45 GHz band) voor spraak en data op de korte
afstand. Met Bluetooth kunnen bijvoorbeeld adresgegevens tussen mobiele telefoons worden
uitgewisseld, kan snel vanaf een handheld computer worden geprint, of kan een mobiele telefoon
worden uitgerust met een draadloze headset. Het werkt dus als vervanger voor korte kabels.
Bluetooth heeft een reikwijdte van 1 tot 10 meter, maar wanneer het zendvermogen wordt
opgevoerd, kan tot 100 meter worden gehaald. Het signaal kan ook door vaste materialen zoals
muren en deuren (zolang het maar geen metaal is) zodat het geen ’line of sight’ nodig heeft.
Een ander voordeel van Bluetooth is dat er geen ononderbroken verbinding tussen zender en
ontvanger nodig is (in tegenstelling tot infrarood verbindingen). Het nadeel van Bluetooth is
dat het een trage setup-fase heeft. Zigbee[6] is als technologie gelijkaardig aan Bluetooth, met
het verschil dat Zigbee minder stroom verbruikt en het beter geschikt is voor grote netwerken
dan Bluetooth. Nadeel is dat het dan een lagere datasnelheid heeft. Beide technieken komen
dus in aanmerking voor onze applicatie.
2.1.8 WiFi
Wi-Fi[4] staat voor Wireless Fidelity en is een certificatielabel (’logo’) voor draadloze datanet-
werkproducten, die werken volgens de internationale standaard IEEE 802.11 (beter bekend als
2.2 Voorbeelden van lokalisatie bepalingen met WiFi 7
draadloos internet). Producten die volgens deze standaard werken maken gebruik van radiofre-
quenties in de 2,4 GHz en/of 5,0 GHz band (welke gratis zijn). Aangezien het radiofrequenties
zijn gaan ze dus ook door muren, ramen ed. WiFi werkt met twee verschillende topologieen:
Ad-Hoc en Infrastructuur. In de Ad-hoc mode wordt er direct van client naar client gecommu-
niceerd, wat voor ons van minder belang is. Van groter belang is de Infrastructuur mode. Hier
wordt gewerkt met basisstations, in 802.11 termen ’Access Points’ genoemd. De basisstations
zijn onderling verbonden door een Ethernet-infrastructuur. Tegenwoordig worden in vele pu-
bliek toegankelijke locaties zoals vliegvelden, hotels en bibliotheken basisstations geınstalleerd
zodat de infrastructuur reeds aanwezig is en enkel de software aangekocht dient te worden.
De manier waarop de positiebepaling gebeurt is in principe detzelfde die door sommige van
de voorgaande systemen ook gebruikt wordt, nl. de signaalsterkte die varieert naargelang men
zich dichter of verder van het toestel bevindt. Zo kan men met een drietal stations redelijk
precies de positie bepalen op eenzelfde verdieping. Met nog meer stations kan men zelfs bepalen
op welke verdieping men zich bevindt. De gemiddelde nauwkeurigheid van deze technologie kan
tegenwoordig gegarandeerd worden tot op 5 meter (in realistische omgevingen).
In de praktijk zijn er reeds heel wat projecten geweest die de locatie bepaalden via WiFi.
De volgende sectie behandelt er enkele voorbeelden van.
2.2 Voorbeelden van lokalisatie bepalingen met WiFi
De volgende projecten werden bestudeerd zodat een realistische simulatie van locatie gebaseerde
systemen kon gemaakt worden.
2.2.1 Lokalisatiebepaling met Wi-Fi
Dit was een vakoverschrijdend project van de 1ste Proef Burgerlijk Elektrotechnisch Ingenieur
aan de Universiteit van Gent (2004-2005)[13]. Het project (dat van de vakgroep INTEC uitging)
exploreert de mogelijkheden om met de bestaande draadloze netwerktechnologie lokalisatiebe-
paling in een complexe binnenomgeving uit te voeren. Het bestaat uit twee luiken: Enerzijds
richt het zich op het ontwikkelen van een computerapplicatie om de locatie van een gebruiker
te bepalen. Anderzijds wordt er gezocht of een signaalpropagatiemodel in staat was om op
nauwkeurige wijze de signaalsterktes van de verschillende access points te voorspellen.
Er worden enkele WiFi acces points opgesteld binnen een testruimte. Dan wordt er binnen
de testruimte gemeten wat de signaalsterktes zijn van de verschillende access points. Deze
2.2 Voorbeelden van lokalisatie bepalingen met WiFi 8
metingen gebeuren op welbepaalde afstanden van elkaar (een grid ahw.). Deze informatie wordt
dan samen met de bijhorende positie opgeslagen in een databank op een server. Met deze
gegevens kunnen dan schattingen gemaakt worden van waar de persoon zich bevindt. Men
kan uit de testresultaten besluiten dat, als er geen invloed is van aanwezige personen, en men
gebruik maakt van drie access points, men een positie kan bepalen met een nauwkeurigheid van
3.5 meter.
Het grote nadeel van deze aanpak is echter dat men in elke kamer een grid moet opmeten,
waarbij elke meting ongeveer een minuut duurt. Voor een kleine kantoorruimte kan dit misschien
nog te doen zijn, maar voor een groot kantoorgebouw zou dat heel veel tijd in beslag nemen.
Ook al zou de meting versneld kunnen worden, dan nog zou het veel tijd kosten.
Een andere techniek komt in het volgende bestudeerde project naar voren.
2.2.2 Practical Robust Localisation over Large-Scale 802.11 Wireless Net-
works
Dit was een project aan de Rice University in de USA[14]. Hier wordt er gedemonstreerd
dat men met een op probabilistische technieken gebaseerd systeem zeer accuraat een persoon
kan lokaliseren met alleen maar een build-in signaal intensiteitsmeter van een standaard 802.11
kaart. Zoals we in het vorig project zagen, wordt er veel manuren gestoken in het opbouwen van
de signaal-map. In dit project is er echter minder dan 1 minuut nodig per kantoor of andere
ruimte om het systeem te trainen. Hiermee kunnen ze een gebruiker exact lokaliseren in 95
procent van de gevallen. Zelfs in de slechtste gevallen wordt een persoon bijna nooit verder dan
1 naburig bureau gelokaliseerd. Een gebruiker kan deze nauwkeurigheid bereiken met slechts
twee of drie signaal intensiteitsmeters (access points). Voor de robuustheid van het systeem
wordt een Gaussian fit sensor model gebruikt. Er wordt in het algemeen een goede algemene
performantie en een uitstekende robuustheid van het systeem verkregen. Het systeem is klaar
om te gebruiken op hun campus voor mensen die locatiebewuste applicaties willen gebruiken.
In een latere fase zal het systeem ook beschikbaar zijn voor andere gebouwen zolang ze maar
een 802.11 netwerk hebben geınstalleerd.
Maar voor men zo een netwerk wil/kan installeren is het altijd belangrijk om de kost van
zo´ n systeem te kunnen inschatten. Hier komt dan dit geleverd werk handig van pas om eens
te simuleren wat de kost zou zijn om een bepaalde nauwkeurigheid te verkrijgen.
REQUIREMENTS 9
Hoofdstuk 3
Requirements
Nu we weten hoe er aan lokalisatie bepaling gedaan wordt, kunnen we de requirements van het
systeem opstellen. Dit hoofdstuk geeft een overzicht van de componenten die nodig zijn voor
onze applicatie.
3.1 Algemeen
We hebben verschillende componenten nodig die de besturing van het programma vlot moeten
laten verlopen. In het algemeen zijn er twee soorten van klassen. De eerste soort zijn de klassen
die te maken hebben met het verwerken en bijhouden van de data (de zogenaamde controller).
De tweede soort zijn klassen die te maken hebben met de werking van de GUI (Grafische User
Interface).
Voor het bijhouden van data (tijdens het draaien van de applicatie) wordt er geopteerd
voor het omgevingsmodel. Ook wordt er een klasse aangemaakt waar men het kortstepad laat
berekenen. Tenslotte is er nog de klasse waar het simulatiegedeelte geregeld wordt.
Voor de werking van de GUI zijn er natuurlijk de verschillende dialoogvensters nodig die de
invoer van nieuwe gegevens moeten regelen. Ook zijn er verschillende panelen om de opbouw
van de ruimte en de simulatie kunnen volgen.
In wat volgt geven we meer specifieke uitleg over de requirements (vereisten) van de verschil-
lende onderdelen.
3.2 Requirements per component 10
3.2 Requirements per component
3.2.1 Omgevingsmodel
Deur 1
Deur 2
Deur 3
Kamer
Figuur 3.1: Kamer met 2 deuren
Een omgeving wordt voorgesteld door middel van een graaf (zoals bv. in Figuur 3.1). Een
deur stelt een knoop voor terwijl een rechtstreekse verbinding tussen twee deuren een boog
voorstelt (de twee deuren behoren tot dezelfde kamer). Een kamer stelt dan een verzameling
van alle verbindingen die mogelijk zijn tussen een aantal deuren voor. Het gewicht van die boog
is dan gelijk aan de afstand tussen twee deuren. Zo kan men de graaf opstellen en gemakkelijk het
kortste pad berekenen. Het omgevingsmodel moet ook bijhouden waar er apparatuur aanwezig
is en wat het effect is op de nauwkeurigheid. Er moet ook bijgehouden worden hoeveel personen
er aanwezig zijn en waar ze zich bevinden (volgens het systeem ).
3.2.2 Algoritme
Het gebruikte kortstepad algoritme moet kunnen aangegeven worden. Men kan dan de algoritmes
vergelijken om dan later een keuze te maken welke het beste is voor die bepaalde toepassing.
3.2.3 Simulatie
Dit gedeelte zorgt voor het eigenlijk simuleren van de bewegingen van de personen. Men moet
hier de updatefrequentie voor het bepalen van zijn positie kunnen ingeven. Hoe hoger die
frequentie is, hoe nauwkeuriger het systeem wordt. Men kan ook niet oneindig nauwkeurig
gaan omdat de apparatuur dat niet toelaat. Ook kan men niet constant updaten, omdat de
3.2 Requirements per component 11
berekening van de locatie een bepaalde tijd in beslag neemt en een te hoge updatefrequentie
zorgt er immers ook voor dat de batterij van het draagbare toestel een stuk intensiever gebruikt
zal worden. Verder moet men de kans op het fout lopen van een persoon, of de kans dat het
systeem de persoon fout lokaliseert kunnen te weten komen.
De simulatie, eenmaal gestart, bestaat dan uit een aantal stappen bepaald door de snelheid
van de gebruiker en de updatesnelheid van het lokalisatiesysteem. Eerst wordt bepaald, uit de al
dan niet verkeerd verkregen positie van de vorige stap, welke afstand er dient afgelegd te worden
en in welke richting de persoon moet gaan. Deze richting wordt ook beınvloed door de kans dat
de persoon verkeerd loopt. Eens we die locatie hebben, wordt er gekeken naar de precisie van
het systeem. Als bv. een systeem tot op 3.5 meter nauwkeurig is, kan die locatie dus 3.5 meter
verschillen van de effectieve locatie. De eigenlijke weg die de gebruiker aflegt wordt bijgehouden
en kan dan op het einde van de simulatie vergeleken worden met het kortste pad tussen begin-
en eindpunt. Over alle gebruikers kan dan een gemiddelde afstand van de kortste paden en de
gemiddelde afgelegde afstand getoond worden.
3.2.4 Persoon
Een persoon moet ook gemodelleerd kunnen worden. Hij zal een start-en eindlocatie toegewezen
krijgen. De simulatie zal dan moeten simuleren welk pad die persoon zal volgen. Ook krijgt de
persoon een naam en heeft hij een snelheid. De kans dat hij een fout maakt en de afwijking
van de richting als hij een fout maakt moet kunnen worden ingegeven. Er moet dan ook een
mogelijkheid bestaan om aan te geven hoeveel personen met deze specificaties zullen rondlopen.
3.2.5 Apparatuur
Door plaatsing van de apparatuur zal ervoor gezorgd worden dat de nauwkeurigheid in het
gebouw niet overal dezelfde is. Aangezien ze een specifieke locatie hebben moeten ze dan ook
ingebracht worden in het model en als resultaat wordt een foutmargeverdeling van de hele
plattegrond verkregen die dan gebruikt wordt bij de simulaties.
3.2.6 GUI
Met behulp van de GUI (Graphical User Interface of in het Nederlands de grafische gebrui-
kersomgeving) kunnen de parameters van de simulatie gemakkelijk ingesteld worden, kan de
3.2 Requirements per component 12
apparatuur geplaatst worden, kunnen er personen toegevoegd worden en kan de volledige plat-
tegrond getekend worden. Eens gestart, zal men de simulatie visueel kunnen volgen nl. de
bewegingen van de personen.
3.2.7 Persistentie
Alles wat men met de GUI kan tekenen moet kunnen opgeslagen worden. Ook de verschillende
instellingen van de personen (zoals de start-en eindlocatie, de huidige locatie,...) of de alge-
menere instellingen van het systeem (welk kortstepad algoritme wordt er gebruikt, wat is de
updatefrequentie,...). Eens een simulatie is uitgevoerd zal men ook de verzamelde informatie
moeten kunnen opslaan.
ARCHITECTUUR EN IMPLEMENTATIE 13
Hoofdstuk 4
Architectuur en Implementatie
Nu we weten wat we nodig hebben gaan we de architectuur opbouwen.
4.1 Inleiding
We verdelen best de klassen in twee packages (pakketten), zodat de data gescheiden wordt van
het uiterlijk (de GUI). Het ene pakket noemen we het datapakket, het andere het guipakket (zie
Figuur 4.1).
Packagedata
Packagegui
Figuur 4.1: De twee pakketten met de interfaces en klassen
Deze twee pakketten zullen gemakkelijk met elkaar kunnen communiceren. vb. op het
moment dat de GUI een locatie van een persoon nodig heeft, of wanneer men de data wil
verkrijgen over een deur die geplaatst wordt. In de volgende punten zullen deze twee pakketten
nader bekeken worden.
4.2 Het datapakket
In het datapakket staat het model centraal (zie Figuur 4.2). Vanuit deze klasse kan men alle
andere (datapakket) klassen bereiken. Om bv. een luchthaven te simuleren is er natuurlijk
4.2 Het datapakket 14
een grondplan nodig. De twee basiscomponenten van een grondplan zijn doorgangen (vb. een
deur, trap,lift,...) en ruimtes (vb. kamer, gang,...). Beide componenten/interfaces beschrijven
de algemene kenmerken van de onderliggende klassen. Zo kan je bv. aan een doorgang vragen
wat zijn beginpunt is en wat zijn eindpunt is. Verder moeten er dan Apparaten toegevoegd
worden in de vorm van zendapparaten. Deze zullen dan voor de precisie van het systeem
moeten zorgen. Hoe meer zendapparaten hoe beter de nauwkeurigheid, maar hoe groter de
kost. Eens deze geınstalleerd zijn kunnen de personen toegevoegd worden. (De volgorde van
toevoegen is eigenlijk gelijk. Men kan bv. eerst personen toevoegen, dan zendapparatuur en
dan het grondplan tekenen.)
Nu alles op zijn plaats is kan er begonnen worden met het simuleren van de wandelingen van
de personen door ”het gebouw”. Daarvoor zorgt de simulator. Deze laatste maakt gebruik van
de klasse Algoritmes om het kortste pad te verkrijgen tussen twee punten (vb. startlocatie en
eindlocatie, maar evengoed tussen gelijk welke andere punten binnen het gemaakte grondplan).
Model
SimulatorAlgoritmes
<<interface>>Ruimte
<<interface>>Doorgang
<<interface>>Apparaat
Package data
Persoon
LeesSchrijfData
Punt3D
Figuur 4.2: De details van het datapakket
In de volgende puntjes zullen we de klassen en interfaces wat meer in detail bekijken.
4.2 Het datapakket 15
4.2.1 Algoritmes
In deze klasse wordt het kortste pad berekend (mbv. een graaf-pakket JGraphT [15]) volgens
het Dijksta-of volgens het BellmanFord-algoritme. De graaf wordt er opgebouwd (met de init()
methode) door eerst alle doorgangen als knopen toe te voegen, dan directe paden tussen twee
deuren als bogen toe te voegen (met direct bedoelen we een fysiek mogelijk wandelpad van een
persoon van de ene doorgang naar de andere, zonder door een andere doorgang te wandelen).
Het gewicht is dan de wandel afstand tussen beide.
4.2.2 Simulator
Deze klasse is ook een soort van timer. Hij zal per keer er moet geupdate worden de effectieve
locatie (door de al dan niet juiste verplaatsing van de persoon) en de locatie waar het systeem
denkt dat de persoon staat, berekenen. Dit allemaal volgens de ingestelde updatefrequentie.
Een persoon zal dan per update een bepaalde afstand hebben afgelegd, afhankelijk van zijn
snelheid (zie volgend puntje). Men kan dus de simulatie heel snel laten uitvoeren (want per
keer er geupdate wordt legt de persoon een vaste afstand af) om zo tot een snel eindresultaat
te komen, of men kan de simulatie traag laten verlopen zodat men het verschil tussen de locatie
waar de persoon zich bevindt en de locatie waar het systeem denkt dat de persoon zich bevindt
kan bekijken. Men kan ook de simulatie stoppen en weer starten wanneer men maar wil. Als
men de simulatie stopt, dan zal zij weer starten met de waarden waarmee zij gestopt is.
4.2.3 Persoon
In de klasse persoon worden heel wat informatie over de persoon bijgehouden. Zo kan je er de
naam, snelheid, start-en eindlocatie, de effectieve locatie, de systeem locatie (waar het systeem
denkt dat de persoon staat), de geschiedenis van al de locaties, de reeds afgelegde afstand, ’of
een persoon het einde reeds bereikt heeft, en dergelijke meer instellen. Ook houdt een persoon
bij wat zijn te volgen pad is (ga eerst door deze deur, dan door de volgende, enz.). De kans dat
een persoon verkeerd loopt en de richtingsafwijking als gevolg van het verkeerd lopen kunnen
hier veranderd worden.
4.2.4 Apparaten, ZendApparaten en Hardware
Het belangrijkste van de interface Apparaten is dat het een kost heeft en een locatie. De afgeleide
klassen ZendApparaten en Hardware implementeren die interface(zie Figuur 4.3).
4.2 Het datapakket 16
ZendApparaat Hardware
<<interface>>Apparaat
Figuur 4.3: De Apparaat interface en bijhorende afgeleide klassen
4.2.5 Ruimtes
Deze interface zorgt ervoor dat het model eenduidig kan communiceren met objecten die de
algemene eigenschappen hebben van een ruimte (bv. een kamer, gang, bureau,..). Zo kan men
het programma later gemakkelijk uitbreiden met objecten die onder de categorie van Ruimte
vallen (denk bv. aan een klaslokaal waar je je niet zo gemakkelijk kan in verplaatsen)(zie Figuur
4.4).
Kamer Gang
<<interface>>Ruimte
Figuur 4.4: De Ruimte interface en bijhorende afgeleide klassen
4.2.6 Kamer en Gang
De klassen Kamer en Gang moeten dus de eigenschappen van Ruimte implementeren. Een
Kamer (en ook een gang, maar een gang en een kamer verschillen niet echt veel van elkaar, alleen
in vorm dan) wordt opgebouwd door telkens de coordinaten van de hoekpunten toe te voegen
aan de kamer (zie onderdeel 4.3.8 puntje AddKamer en AddGang). Men kan ook rechtstreeks
een Doorgang verbinden met de Kamer om zo een graaf te creeren. Men kan ook de afmetingen
opvragen en kijken of een punt al dan niet in de kamer ligt.
4.2 Het datapakket 17
4.2.7 Doorgang
De interface Doorgang staat voor alle objecten waar men zogezegd kan doorlopen (bv. een deur
of een poort), maar men het kan ook ruimer zien. Als men bv. een soort van klein afgeschermd
bureautje heeft (in een ruimte met meerdere van die opstellingen), maar dat ”kotje”heeft geen
een deur, maar eerder een plaats waar men een deur zou kunnen steken, dan voegt men gewoon
bij die grote ruimte een kleinere ruimte met een zogenaamde ”virtuele deur”. Een Doorgang
heeft bv. ook een doorloopsnelheid. Denk bv. aan een lift waar je even op moet wachten. Men
kan ook Ruimtes toevoegen waartussen deze doorgang zich bevindt.
Deur Lift
<<interface>>Doorgang
Figuur 4.5: De Doorgang interface en bijhorende afgeleide klassen
4.2.8 Deur
De klasse Deur erft en implementeert dus alle methodes van de ouder-interface Doorgang. Zo
heeft een deur een beginpunt en een eindpunt (volgorde speelt geen rol). Zo kan men ook de
lengte van de deur opvragen.
4.2.9 Model
In het model worden alle lijsten van Doorgangen, Ruimtes, ZendApparaten, Hardware en Per-
sonen bijgehouden. Wil men in de simulatie een kamer toevoegen, dan zal men dit moeten doen
door de kamer toe te voegen aan het model. Ook de klassen Algoritmes en d Simulator zijn
hier in terug te vinden. Zo kan men, als men bv. een persoon toevoegt gemakkelijk de GUI
verwittigen dat er iets veranderd is.
Men kan hier ook de nauwkeurigheid (of beter gezegd de nauwkeurigheidsgradaties) instel-
len. Het instellen van de gradaties gebeurt via het guipakket, meer bepaald met de klasse
SetSysNauwkDialog (zie onderdeel 4.3.10 puntje SetSysNauwkDialog)
4.3 Het guipakket 18
4.2.10 LeesSchrijfData
Deze klasse zorgt voor de persistentie. Men kan een bestand openen en men kan de reeds ver-
zamelde gegevens in een bestand opslaan. Zo kan je, eens je een plattegrond hebt, deze opslaan
voor later gebruik. Ook al de apparaten, personen en de instellingen (zoals de updatesnelheid)
worden bewaard.
4.2.11 Punt3D
Aangezien java (de taal waarin deze simulatie is geschreven) geen voorzieningen heeft voor een
punt in de 3-dimensionale ruimte weer te geven, zijn we genoodzaakt om zelf een klasse te
schrijven. Het bevat een x-,y- en z-coordinaat (die men kan instellen of opvragen)en men kan
de afstand tussen twee punten opvragen. Deze klasse wordt in praktisch elke andere klasse van
deze simulatie gebruikt.
4.3 Het guipakket
Het guipakket zorgt voor de grafische voorstelling van de gegevens. Centraal staat de klasse
gui. Vanuit deze klasse worden de verschillende dialoogvensters (uitbreidingen van JDialog)
opgeroepen. In het guipakket zit ook nog een klasse die de menubar voorstelt (nl. MyMenuBar)
en nog twee klassen die grafisch iets weergeven nl. Wereld en Info. In de klasse Wereld wordt de
plattegrond en daarbij horende apparatuur ed. voorgesteld, terwijl de klasse Info zowel algemene
(bv hoeveel is de gemiddelde afgelegde afstand op dit moment), als persoonsafhankelijke (hoe
snel loopt deze persoon) weergeeft. Een meer gedetailleerde beschrijving vinden we in wat volgt.
4.3.1 MyMenuBar
In MyMenuBar wordt de menubar gecreeerd. Met de menubar kan je alle opties en mogelijkheden
van dit programma instellen en gebruiken. Het heeft als actionListener de klasse GUI.
4.3.2 GUI
Deze klasse is een extensie van de klasse JFrame. Hier worden alle (grafische) componenten op
geplaatst nl. het Wereldscherm en het Infoscherm. Ook worden hier de nodige dialoogvensters
aangemaakt en getoond, in het kader van dat de GUI een actionlistener is.
4.3 Het guipakket 19
Package gui
gui
AddDeurDialog
SetDELAYDialog SelecteerPersoonDialog
MyMenuBar
Info
AddZendApparaatDialog
AddPersoonDialog
AddKamerDialogAddHardwareDialog
Wereld
SetSysNauwkDialog
Figuur 4.6: De details van het guipakket
4.3.3 Wereld
De klasse Wereld is een paneel waar de plattegrond op getekend wordt. Het nulpunt wordt aan-
gegeven en de Kamers en Deuren worden er op gevisualiseerd. Als de te tekenen objecten buiten
het venster zouden liggen, past het zich vanzelf aan, door ofwel, als de tekening niet groter is
dan het kijkvenster, verschuift het kijkvenster vanzelf totdat de gehele figuur te zien is, ofwel
worden er scrollbars aan toegevoegd. Na het tekenen van de plattegrond worden daarboven de
apparaten en de hardware geplaatst. Als laatste worden de personen erop gezet. Dit vraagt
nog om enige verduidelijking. Bij het tekenen van een persoon zal een klein blauw bolletje zijn
effectieve locatie tonen. Dit bolletje ligt in het midden van een blauwe cirkel. De straal van deze
cirkel is recht evenredig met de nauwkeurigheid. (vb. een nauwkeurigheid van 3, zal een cirkel
opleveren van 3). Zo is het gemakkelijk te zien wat de nauwkeurigheid is op de positie van de per-
soon. De positie waar het systeem denkt dat de persoon is, wordt gevisualiseerd door een groen
4.3 Het guipakket 20
bolletje. Zo kan het bolletje nooit buiten de “nauwkeurigheidscirkel” liggen. Als laatste worden
alle locaties waar de persoon effectief heeft gestaan op het paneel aangebracht. Zo kan men in
een oogwenk zien waar de persoon overal geweest is (zie ook puntje “SelecteerPersoonDialog”
van dit onderdeel (4.3.11) om een andere persoon te kunnen selecteren).
4.3.4 Info
Zoals je in Figuur 4.7 kan zien heb je bovenaan algemene info zoals het aantal personen, deuren,
kamers,... De kost van alle apparatuur wordt ook weergegeven. Als er reeds personen werden
toegevoegd, zal hier ook verschijnen hoeveel het gemiddelde kortste pad is en hoeveel de ge-
middelde reeds afgelegde afstand is. Verder kan men nog zien of iedereen is aangekomen of
niet.
Figuur 4.7: Voorbeeld van het infopaneel
Onder de voorgaande informatie worden specifieke gegevens van een persoon getoond. Deze
persoon kan je selecteren door op Opties –> Selecteer persoon te klikken. Je kan de naam
van de persoon zien, de effectieve locatie en de locatie waar het systeem denkt dat de persoon
staat. Extra duidelijk wordt ook aangegeven hoeveel afstand er ligt tussen deze laatste twee.
Daarnaast wordt ook nog de nauwkeurigheid van het punt waar de persoon staat getoond, samen
met de reeds afgelegde afstand. De lengte van het kortste pad en de snelheid van de persoon
kunnen er eveneens terug gevonden worden, evenals de kans dat hij of zij een fout maakt (Error
Probabiliteit) en welke maximum afwijking in graden dat dan kan zijn. Tenslotte wordt ook nog
zijn eindlocatie weergegeven.
Wanneer nu alle personen zijn aangekomen worden het totale gemiddelde kortste pad en
de totale gemiddelde afgelegde afstand rood gekleurd. Als een persoon aangekomen is zal het
4.3 Het guipakket 21
opvallen dat ook zijn afgelegde afstand en de lengte van zijn kortste pad in het rood worden
aangegeven.
4.3.5 JDialog
JDialog is een standaardklasse uit de javax.swing bibliotheek waarmee je gemakkelijk dialoog-
venstertjes op het scherm kan tekenen. Men kan dan enkele gegevens ingeven om het al dan niet
correct af te sluiten. De GUI klasse zal dan het nodige doen om de acties te laten voltooien. De
volgende klassen zijn allemaal extensies (uitbreidingen) van JDialog, zodat ze de eigenschappen
overerven.
4.3.6 AddHardwareDialog en AddZendApparaatDialog
AddHardwareDialog en AddZendApparaatDialog zijn eenvoudige venstertjes waar je de locatie
en de kost van de zendapparaten en de andere hardware kan ingeven. Je kan ze laten verschijnen
door op Tekenen –> addHardware of door Tekenen –> addZandApp te klikken.
4.3.7 AddDeurDialog
De AddDeurDialog kan je ook laten verschijnen door op Tekenen –> addDeur... te klikken. De
AddDeurDialog toont een venstertje zodat je een deur kan toevoegen aan de applicatie. Men
hoeft alleen de begincoordinaat en de eindcoordinaat van de deur in te geven.
4.3.8 AddKamerDialog en AddGangDialog
Dit dialoogvenster komt te voorschijn als je in de menubar op tekenen –> addKamer... klikt. Je
krijgt er dan drie lijntjes om coordinaten in te geven. Deze stellen de hoekpunten voor van de
kamer voor. Initieel wordt er dus een driehoekige kamer getekend. Als je een vier- of vijfhoekige,
of in het algemeen een meer dan driehoekige kamer wil moet je op de bovenste knop duwen zodat
er een coordinaat extra kan toegevoegd worden. De coordinaten moeten wel in de juiste volgorde
toegevoegd worden (zie Figuur 4.8).
4.3.9 AddPersoonDialog
Dit dialoogvenster (in Tekenen –> addPersoon) laat u in de mogelijkheid om een persoon toe
te voegen. Men kan er de start-en eindlocatie, de naam en de snelheid van die persoon ingeven.
De kans dat de persoon fout loopt is een getal tussen 0 en 1. De maximale afwijking in graden
4.3 Het guipakket 22
Kamer 1 Kamer 2
0,0 0,10
10,100,10
0,0 0,10
10,100,10
a. b.
Figuur 4.8: Voorbeeld van goed en fout ingeven van de coordinaten. In a. is de volgorde (0,0)
(10,0) (10,10) (0,10), terwijl het in b. (0,0) (10,10) (0,10) (10,0) is.
heeft in principe geen limiet. Als men bv. 90 graden zou invullen betekend dit dat de persoon
maximum 90 graden met de wijzers van de klok mee, of maximum 90 graden tegen de wijzers
van de klok in kan draaien. Tenslotte wordt er ingegeven hoeveel personen met die instellingen
worden gecreerd. Als men meer dan een persoon creert, wordt er bij de naam een extra nummer
toegevoegd zodat we de individuen gemakkelijk van elkaar kunnen scheiden. vb. als er tien
Jannen tegelijk toegevoegd worden, zal de eerste Jan de naam “Jan 1” dragen, de tweede “Jan
2”,enz.
4.3.10 SetSysNauwkDialog
SetSysNauwkDialog of voluit “set systeem nauwkeurigheid dialoog venster” werkt met hetzelfde
principe als AddKamerDialog, nl. als je er nog een lijntje bij wil, moet je maar op de bovenste
knop klikken van het venstertje.
Uit de voorafgaande studie blijkt dat de nauwkeurigheid van het systeem afhangt van twee
parameters, nl. de afstand van een persoon tot het zendapparaat en het aantal zendapparaten.
Om dit te kunnen simuleren kan in dit dialoogvenstertje de nodige granulariteit ingeven worden.
Omdat het om een simulatie gaat zal men de nauwkeurigheid niet effectief kunnen meten, maar
moet men die ook ingeven. Men geeft als eerste parameter het aantal apparaten in, als tweede
parameter de afstand dat die apparaten maximaal van de persoon mogen verwijderd zijn en als
laatste welke nauwkeurigheid dit geeft.
Om dat allemaal in te stellen klik je op Opties –> Set Systeem Nauwkeurigheid.
Om nu bv. de nauwkeurigheid van het vakoverschrijdend project (uit de voorstudie) te simu-
leren, kan men als eerste parameter (het aantal apparaten) vier opgeven, als tweede parameter
4.3 Het guipakket 23
(het aantal meter dat ze maximaal van de persoon verwijderd zijn) bv. 18 en als derde (de
nauwkeurigheid) 3,5. Let wel op dat als een persoon (meer bepaald het apparaat dat de persoon
draagt) niet genoeg zendapparaten in zijn buurt vindt, dat hij hopeloos verdwaald loopt. Wat
je best kan doen is een algemene regel toevoegen op het einde van het lijstje in de zin van: 1
apparaat op 500 meter geeft een nauwkeurigheid van 50. Er moet niet op volgorde van nauw-
keurigheid of zo ingegeven worden, wel moet men er op letten dat wanneer men nieuwe gradaties
toevoegt aan het systeem, de oude verdwenen zijn.
4.3.11 SelecteerPersoonDialog
Door dit dialoogvenster op te roepen (via Opties –> Selecteer Persoon) kan men een persoon
selecteren die men dan in het Wereldpaneel, en de details in het Infopaneel, kan volgen.
4.3.12 SetDELAYDialog
Dit dialoogvenster, eveneens onder het menu Opties, stelt de updatefrequentie in. Hoe kleiner
het getal, hoe sneller de simulatie een stap verder zal zetten, ongeacht de snelheid van de persoon.
Dit getal komt overeen met het aantal milliseconden dat er tussen twee stappen zit. Daarom
mag het ingegeven getal niet kleiner zijn dan 1 (omdat de Timer-klasse van java alleen werkt
met gehele getallen).
EVALUATIE 24
Hoofdstuk 5
Evaluatie
In dit hoofdstuk voeren we testen uit op onze implementatie. Eerst beschrijven we de opstelling
van de plattegrond, de apparatuur en de personen die we gaan creeren. Voorts laten we de
personen wandelen zonder dat ze fouten maken, maar de globale systeemnauwkeurigheid laten
we varieren. Daarna stellen we de systeemnauwkeurigheid op nul in (zodat het systeem de
perfecte route aangeeft) en laten we de kans dat een persoon een fout maakt en zodus een
verkeerde richting volgt veranderen. Tenslotte testen we de combinatie van de twee.
Figuur 5.1: De test-opstelling
5.1 Opstelling
De opstelling kan gemakkelijk worden teruggevonden door in het help menu op de Load Demo
Data te klikken of het bestand DemoData.dat te openen. Voor een voorstelling van de omgeving
5.2 Variatie van de systeemnauwkeurigheid 25
zie Figuur 5.1.
Er worden vier kamers, zes deuren en twaalf zendapparaten toegevoegd.
Figuur 5.2: Nauwkeurigheid = 0, kans dat de persoon afwijkt van de aangegeven richting = 0
Tenslotte voegen we 200 personen toe (we voegen 200 personen toe omdat we zo een beter
gemiddelde krijgen van de resultaten). Elke persoon heeft als naam Jan <nr> (met nr het
volgnummer), startlocatie (0,0), eindlocatie (300,199), snelheid = 2,0, errorprobabiliteit = 0,0
en de afwijking in graden = 90. Dit laatste geeft hier wel geen effect omdat de errorprobabiliteit
gelijk is aan 0. We werken voorlopig met een algemene systeem nauwkeurigheid. In deze
opstelling gaan we er van uit dat het systeem perfect verloopt. We geven dan bv. de volgende
getallen in: 1 (zend apparaat in een straal van) 5000 ((meter) geeft een systeem nauwkeurigheid
van) 0. Omdat we snel het eindresultaat willen bereiken stellen we de updatesnelheid op 1
milliseconde in. Nu laten we de simulatie lopen. Het eindresultaat kan u zien op Figuur 5.2.
Na aankomst zien we dat het gemiddelde kortste pad gelijk is aan de gemiddelde afgelegde
afstand. Het aantal kamers, deuren, zendapparatuur, hardware, de kost (van de zendapparatuur
en de hardware) en de personen worden allemaal netjes uitgeschreven. Alles is klaar om te testen.
In wat volgt zal de lengte van het kortste pad altijd even lang blijven nl.382,13 (meter).
5.2 Variatie van de systeemnauwkeurigheid
We laten de persoon het perfecte pad volgen, maar laten een onnauwkeurigheid van het systeem
toe. Eerst zal het systeem globaal onnauwkeurig zijn, later zal het dan afhangen van de positie
van de zendapparatuur.
5.2 Variatie van de systeemnauwkeurigheid 26
Figuur 5.3: Nauwkeurigheid = 1, kans dat de persoon afwijkt = 0
5.2.1 Globale systeem onnauwkeurigheid
• Het systeem is globaal nauwkeurig tot op 1 meter
Met een globale systeem nauwkeurigheid van 1 meter zien we (in Figuur 5.3) dat de
gemiddelde afgelegde afstand gelijk is aan 390,83 meter, wat een verschil is van ongeveer
8 meter. Het wandelpad van Jan 1 is nu ook niet meer zo rechtlijnig. Deze Jan heeft
het blijkbaar beter gedaan dan het gemiddelde aangezien hij er maar 389,85 meter over
gedaan heeft. Bemerk ook dat de systeemlocatie ietsje verschilt van de locatie waar Jan
effectief staat. Het verschil is 0,4977 meter.
• Het systeem is globaal nauwkeurig tot op 5 meter
We stellen de globale nauwkeurigheid in op 5 meter. We pauzeren even de simulatie (zie
Figuur 5.4) en zien dat tussen (50,50) en (100,100) de personen niet zo mooi het ideale
pad meer volgen. Dit komt overeen met onze verwachtingen.
Eens ze allemaal waren aangekomen was de gemiddelde kortste afstand gelijk aan 594,43
meter wat al een heel pak meer is dan bij een nauwkeurigheid van 1 meter. Met een
nauwkeurigheid van 5 meter loopt men dus ongeveer 50% verder dan het kortste pad.
• Het systeem is globaal nauwkeurig tot op 20 meter
Wanneer we nu een stuk extremere waarden aannemen voor de nauwkeurigheid (bv. 20
meter), is de gemiddelde globale afgelegde afstand gelijk aan 1598,43 meter. Dit is meer
5.2 Variatie van de systeemnauwkeurigheid 27
Figuur 5.4: Een moment-opname. Nauwkeurigheid = 5, kans dat de persoon afwijkt = 0
dan vier keer het kortste pad (gelijk aan 382,13 meter)! We moeten dus opletten dat ons
systeem niet te onnauwkeurig wordt, anders wordt het pad veel te lang.
5.2.2 De nauwkeurig hangt af van de zendapparaten
Laten we nu de volgende drie regels invoeren als granulariteit:
4 zendapparaten in een straal van 50 (meter) geeft een systeem nauwkeurigheid van 1,
3 zendapparaten in een straal van 110 (meter) geeft een systeem nauwkeurigheid van 5 en
3 zendapparaten in een straal van 5000 (meter) geeft een systeem nauwkeurigheid van 20.
Figuur 5.5: De nauwkeurigheid hangt af van de positie
Starten we nu de simulatie. Nadat iedereen is aangekomen zien we (op Figuur: 5.5) dat de
5.3 Variatie van de errorprobabiliteit van de persoon 28
gemiddelde afstand 589,58 is. Dit is net ietsje beter dan de globale nauwkeurigheid van 5 meter.
Dit hadden we ergens wel verwacht omdat er een stuk tussen zit waar de personen nauwkeuriger
lopen.
Laten we nu even nader de weg van Jan 22 bekijken. In het begin liep hij redelijk goed. Hij had
(zogezegd met zijn toestel) een precisie van 5 meter en is vlot naar de andere kamer kunnen gaan.
In die kamer werd hij hier en daar verkeerd gestuurd totdat hij 4 zendapparaten in een straal
van 50 meter had. We zien dat hij nu bijna perfect naar de deur geleid wordt. Wanneer hij dan
in de kamer ernaast terug maar 3 zendapparaten binnen een straal van 110 meter heeft, wordt
hij terug niet goed begeleid door het systeem en kronkelt zijn pad naar de eindlocatie. Jan 22
zelf heeft een afstand afgelegd van 798,84, wat ongeveer 200 meter meer is dan het gemiddelde
en 400 meter meer dan het kortste pad.
5.2.3 Besluit
We kunnen dus besluiten dat de systeemnauwkeurigheid op een realistische manier wordt gesi-
muleerd. Bij een zeer nauwkeurig systeem zal de afgelegde afstand niet veel meer zijn dan het
kortste pad, terwijl bij een minder nauwkeurig systeem de afstand soms zeer ver kan zijn.
5.3 Variatie van de errorprobabiliteit van de persoon
Na de nauwkeurigheid van het systeem getest te hebben, gaan we eens kijken hoe de persoon
het ervan afbrengt als hij verkeerd loopt. In het volgende zal steeds de systeemnauwkeurigheid
gelijk zijn aan 0, wat het ideale systeem zou zijn. De persoon zal eerst een errorprobaliliteit van
0,1 en dan een van 0,5 hebben. We eindigen met een test waar de persoon in 90 procent van de
gevallen fout loopt.
5.3.1 Errorprobaliliteit van 0,1
Stel nu dat het systeem perfect loopt, maar de persoon niet. Laten we, om te starten, beginnen
met kleine waarden. Stel dat een persoon een errorprobabiliteit van 0,1 wordt toegewezen. Dit
wil zeggen dat de persoon een op de tien keer verkeerd loopt. We stellen nu zijn maximumaf-
wijking op 45 graden in. Wat wil zegen dat, als hij verkeerd loopt, hij maximaal 45 graden van
de juiste richting zal afwijken. Starten we nu de simulatie. Op het moment dat alle personen
aangekomen zijn krijgen we een gemiddelde afstand van 386,5 meter, wat maar 4,37 meter ver-
schilt van het kortste pad (dat gelijk is aan 382,13 meter). In het totaal komt er maar 1% van
5.3 Variatie van de errorprobabiliteit van de persoon 29
de afstand bij.
We veranderen nu even de hoek van 45 graden naar 90 graden (de errorprobabiliteit blijft
gelijk). We verkrijgen een totale gemiddelde afstand van 396,38 meter. Dit is ongeveer 10 meter
verder dan de test met 45 graden en 15 meter (of 4%)verder dan het kortste pad.
Laten we nog steeds een errorprobabiliteit van 0,1 gebruiken, maar nu de maximale rich-
tingsafwijking op 180 graden instellen. De uitkomst is dat ze er gemiddeld 423,76 meter over
gedaan hebben. Hetgeen ongeveer 25 meter slechter is dan het vorige resultaat met 90 graden,
37 meter verschilt van de test met 45 graden en 21 meter (of 5%) scheelt met het kortste pad.
We kunnen uit deze resultaten besluiten dat als de persoon in 10 procent van de gevallen
een fout maakt, zijn totale afstand vermeerderd wordt met 1% bij 45 graden, 4% bij 90 graden
en 5% bij 180 graden.
5.3.2 Errorprobaliliteit van 0,5
De persoon krijgt nu een errorprobabiliteit van 0.5 wat wil zeggen dat hij een op de twee keer een
verkeerde richting neemt. Stel nu, als hij een verkeerde richting neemt, zijn afwijking maximaal
45 graden is. Het gemiddelde kortste pad bedraagt nu 403,67, wat iets minder dan 6% verder is
dan het kortste pad.
Als we nu een hoek van 90 graden als maximale afwijking nemen, blijkt dat er gemiddeld
465,65 meter over gedaan wordt. Dit is ongeveer 80 meter of bijna een vierde verder dan het
kortste pad.
Stel nu dat de persoon, de fout maakt in een richting die maximaal 180 graden kan afwijken.
We laten de simulator lopen en zien op Figuur 5.6 dat de gemiddelde afgelegde afstand 753,97
is, wat bijna het dubbele is van de lengte van het kortste pad.
Omdat er eigenlijk geen limiet zit op het aantal graden dat een persoon verkeerd kan lopen
proberen we eens te lopen met een maximum afwijking van de richting van 270 graden. Het
resultaat is een beetje bevreemdend. Men zou denken dat die personen ongeveer even ver lopen
als de test hiervoor, maar na het runnen van de simulatie werd er gemiddeld een afstand van
953,41 meter afgelegd. Dit is zo’n 200 meter verder dan de vorige test en ongeveer 2,5 keer het
kortste pad. Dit komt omdat hij, als hij een fout maakt, meer kans heeft om achteruit te lopen
dan vooruit te lopen. Als je 270 graden kan afwijken, is dat 1 op 3 kans dat je vooruit loopt en
2 op 3 dat je achteruit loopt.
5.3 Variatie van de errorprobabiliteit van de persoon 30
Figuur 5.6: Een persoon loopt voor de helft van de tijd verkeerd met een afwijkende richting
van 180 graden
5.3.3 Errorprobaliliteit van 0,9
Stellen we nu de errorprobabiliteit van een persoon op 0,9. Als eerste testen we wat hij zou doen
als hij een maximale afwijking zou hebben van 45 graden. We passen de simulator aan en laten
hem lopen. Wat blijkt, de gesimuleerde personen lopen maar 10% (of 40 meter) verder dan het
kortste pad. Laten we dit even nader bekijken.
Alhoewel een persoon voor 90 procent verkeerd loopt, zal zijn effectieve afwijking maar
maximaal 45 graden verschillen van de juiste richting, wat nog steeds ongeveer de goede richting
is. Maar als hij dan in een volgende stap terug verkeerd loopt, maar nu met een tegengestelde
hoek (bv. eerst liep hij 20 graden verkeerd, nu loopt hij -20 graden verkeerd), komt hij terug op
het juiste pad terecht.
Als nu de maximale afwijking op 90 graden staat bekomen we een gemiddelde afstand van
570,72 meter. Wat 50% verder is dan het kortste pad.
Een laatste test met een errorprobaliliteit van 0,9 voeren we uit met een afwijking van 180
graden. Na enige tijd merken we dat de personen nogal wat in het rond aan het lopen zijn (zie
Figuur 5.7). Let vooral op de gemiddelde afgelegde afstand. Deze is dan ook al vijf keer de
afstand van het kortste pad. Uiteindelijk komen alle personen aan is en het gemiddelde pad
3287,86 meter, wat 8,6 keer verder is dan het kortste pad.
5.4 Variatie van systeemnauwkeurigheid en errorprobabiliteit van persoon 31
Figuur 5.7: Tussenresultaat voor 90% kans op verkeerdlopen en een afwijking van 180 graden
5.3.4 Besluit
Bij een errorprobaliliteit van 0,1 volgt de persoon nog goed het kortste pad (hij loopt max 6%
verder in onze test). Als nu de errorprobabiliteit 0,5 is, dan is de afwijking van 45 graden
nog aanvaardbaar (6% verder), deze van 90 graden een stuk minder aanvaardbaar (25% verder)
en is de afwijking van 180 graden niet meer aanvaardbaar (het dubbele van het kortste pad).
Voor de extreme gevallen waar de persoon in 90 procent van de gevallen verkeerd liep, werd
voor een maximale afwijking van 45 graden maar 10% verder gelopen. Dit komt waarschijnlijk
doordat als een persoon in een ene stap een bepaalde afwijking van richting had, deze afwijking
gecompenseerd werd door een andere stap. Voor een grotere afwijking van de richting werd er
bij de bovengrens van 90 graden 50% verder gelopen en werd bij een bovengrens van 180 graden
de afstand van het kortste pad meer den verachtvoudigd.
5.4 Variatie van systeemnauwkeurigheid en errorprobabiliteit
van persoon
Nu we weten dat de systeemnauwkeurigheid en het errorprobabiliteitssyteem goed werken kun-
nen we ze beiden tegelijk gaan testen. Stellen we nu dezelfde granulariteit in als in onderdeel
5.2.2. We brengen terug 200 personen aan met een kans op afwijking van 0,25 en een maximale
afwijking van de richting van 45 graden. Dit geeft een gemiddelde afstand van 605,09 meter,
wat 59% verder is dan de kortste afstand.
5.5 Besluit 32
We geven nu de personen een errorprobabiliteit van 0,5 meter en een afwijking van maximaal
90 graden als ze verkeerd lopen. Nadat alle personen zijn aangekomen hebben we een gemiddelde
afstand van 728,44 meter, wat bijna het dubbele is van het kortste pad.
Figuur 5.8: Tussenresultaat voor 90% kans op verkeerdlopen en een afwijking van 180 graden
We stellen nu wat extremere waarden in voor de persoon nl. een errorprobabiliteit van 0.9
en een afwijking van maximaal 360 graden. Een tussen resultaat kan je zien op figuur 5.8.
Iedereen loopt een beetje overal, wat ook wel te verwachten was. We zijn maar gestopt toen
ze een gemiddelde afstand van 2500 meter hadden afgelegd, omdat het toch niet veel nut meer
heeft.
We kunnen dus samenvatten dat met beide onnauwkeurigheden, het systeem en de persoon,
de simulatie een realistisch beeld schept.
5.5 Besluit
We kunnen nu uit de testen besluiten dat de simulator werkt volgens verwachting als je alleen
maar systeemonnauwkeurigheid hebt, alleen een persoon die af en toe verdwaald hebt, of de
combinatie van de twee vorige hebt.
CONCLUSIE 33
Hoofdstuk 6
Conclusie
We hebben met deze thesis onze doelstelling bereikt. We hebben een managementstool gecreeerd
zodat het nut van location based services kan bepaald worden (door simulatie). Er kan een
plattegrond getekend worden met kamers en deuren. Zendapparatuur en hardware hebben een
bepaalde kost en kunnen toegevoegd worden. Zendapparatuur heeft ook een invloed op de
nauwkeurigheid van het systeem. Men kan meerdere personen toevoegen en ingeven waar men
vertrekt en waar men zal aankomen. Men kan ook tussendoor opslaan (bv. men heeft de kamers
en deuren getekend, maar men wil testen met verschillende opstellingen van zendapparatuur).
De simulatie kan dan gestart worden en de gesimuleerde personen kunnen dan genavigeerd
worden (goed of fout, afhankelijk van de nauwkeurigheid) naar hun eindlocatie. De gebruiker
van deze applicatie zal dan de “wandeling” van de ingevoerde personen kunnen volgen. Tijdens
het verloop van de simulatie kan men ook verschillende info raadplegen zoals de reeds afgelegde
afstand, hoeveel kamers, deuren, zendapparatuur er zijn,... Men kan ook als men de simulatie
tussendoor even stopt, deze gegevens opslaan.
Eens de simulatie gestopt is (alle personen hebben hun eindbestemming bereikt) kan men
de bekomen gegevens bezichtigen en opslaan om ze later te raadplegen als dat nodig zou zijn.
BIBLIOGRAFIE 34
Bibliografie
[1] http://java.sun.com/
[2] Wikipedia, the free encyclopedia that anyone can edit.
http://en.wikipedia.org
[3] Inleiding tot de GPS.
http://www.gps.oma.be/nl/lbesch nl ok css.htm
[4] WiFi
http://www.wi-fi.org/
[5] http://www.bluetooth.com/bluetooth/
[6] zigbee
http://www.zigbee.org
[7] RADAR
http://www.radarpages.co.uk/
[8] R. Periannan, “Existing Technology of Cellular Networks-Mobile Phones”,
http://www.doc.ic.ac.uk/nd/surprise 96/journal/vol1/pr4/article1.html
[9] http://www.umtsworld.com/
[10] smartfloor
http://www-static.cc.gatech.edu/fce/smartfloor/
[11] The Active Badge System
http://www.cl.cam.ac.uk/Research/DTG/attarchive/ab.html
[12] RFID
http://www.rfid-technologie.nl/index.php
BIBLIOGRAFIE 35
[13] J.Leybaert, D. Thom, W. Vandendriessche, R. Verplancke, “Localisatiebepaling met Wi-Fi”
in Vakgroep INTEC, Universiteit Gent, 2005.
[14] A. Haerberlen, E. Flannery, A. M. Ladd, A. Rudys, D. S. Wallach, L. E. Kavraki “Practical
Robust Localization over Large-Scale 802.11 Wireless Networks” Rice University, 2004.
[15] JGraphT a free Java graph library
http://jgrapht.sourceforge.net/
LAYOUT VAN DE BIJGEVOEGDE CD-ROM 36
Bijlage A
Layout van de bijgevoegde CD-ROM
Op de bijgevoegde CD-Rom bevindt zich alle gebruikte software:
• De broncode van de applicatie
• De applicatie zelf
• De broncode en het pdf bestand van deze scriptie
U kan de applicatie starten door op thesis.bat te klikken in de map programma.