Ontwikkeling van een indoorlokalisatiesysteem op basis van het Viterbi-algoritme Jens Trogh Promotoren: prof. dr. ir. Wout Joseph, prof. dr. ir. Luc Martens Begeleider: dr. ir. David Plets Masterproef ingediend tot het behalen van de academische graad van Master of Science in de ingenieurswetenschappen: elektrotechniek Vakgroep Informatietechnologie Voorzitter: prof. dr. ir. Daniël De Zutter Faculteit Ingenieurswetenschappen en Architectuur Academiejaar 2013-2014 Ontwikkeling van een indoorlokalisatiesysteem op basis van het Viterbi-algoritme Jens Trogh Promotoren: prof. dr. ir. Wout Joseph, prof. dr. ir. Luc Martens Begeleider: dr. ir. David Plets Masterproef ingediend tot het behalen van de academische graad van Master of Science in de ingenieurswetenschappen: elektrotechniek Vakgroep Informatietechnologie Voorzitter: prof. dr. ir. Daniël De Zutter Faculteit Ingenieurswetenschappen en Architectuur Academiejaar 2013-2014 Voorwoord Het kiezen van een masterproef is niet vanzelfsprekend, mijn interesse in draadloze telecommunicatie en nieuwe technologie¨en in het algemeen hebben me uiteindelijk naar dit onderwerp geleid. Het was een interessant en uitdagend project, dat mij altijd heeft kunnen motiveren. Ik had graag nog een kort dankwoord gehouden voor alle mensen die me hebben geholpen bij het tot stand komen van deze thesis. Vooreerst mijn begeleider David Plets, die me altijd van snelle feedback en nieuwe invalshoeken kon voorzien, Bart Jooris en Stefan Bouckaert voor de hulp met het testbed en de mobiele node, Kris Vanhecke voor het opzetten van de visualisatietool en mijn promotoren Wout Joseph en Luc Martens voor het mogelijk maken van deze masterproef. Als laatste moet ik natuurlijk ook mijn ouders, familie en vrienden bedanken, voor hun steun tijdens deze thesis en mijn studies in het algemeen. Jens Trogh, juni 2014 Toelating tot bruikleen De auteur geeft de toelating deze masterproef voor consultatie beschikbaar te stellen en delen van de masterproef te kopi¨eren voor persoonlijk gebruik. Elk ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder met betrekking tot de verplichting de bron uitdrukkelijk te vermelden bij het aanhalen van resultaten uit deze masterproef. Jens Trogh, juni 2014 Ontwikkeling van een indoorlokalisatiesysteem op basis van het Viterbi-algoritme door Jens TROGH Masterproef ingediend tot het behalen van de academische graad van Master of Science in de ingenieurswetenschappen: elektrotechniek Academiejaar 2013-2014 Promotoren: Prof. Dr. Ir. Wout Joseph, Prof. Dr. Ir. Luc Martens Begeleider: Dr. Ir. David Plets Faculteit Ingenieurswetenschappen en Architectuur Universiteit Gent Vakgroep Informatietechnologie Voorzitter: Prof. Dr. Ir. Dani¨el De Zutter Samenvatting In deze thesis wordt een indoorlokalisatiesysteem ontwikkeld dat gebaseerd is op het Viterbialgoritme, in plaats van enkel de meest waarschijnlijke huidige positie te voorspellen, wordt het meest waarschijnlijke traject geconstrueerd. Op deze manier wordt bij iedere voorspelling het verleden van een traject in rekening gebracht. Trefwoorden Indoorlokalisatiesysteem, Viterbi-algoritme, Padverliespredictiealgoritme, RSSI Fingerprinting, Wireless Sensor Network, WiFi Development of an indoor localization system based on the Viterbi-algorithm Jens Trogh Supervisor(s): Wout Joseph, Luc Martens, David Plets Abstract— In this work an indoor localization system based on the Viterbi-algorithm is developed. Instead of determining just the most likely current position, the most likely sequence of locations is determined. The developed algorithm is tested by simulation and implemented on a wireless testbed for real-life testing. Next the algorithm is adjusted to work in realtime and finally a sensitivity analysis is conducted to examine the influence of all parameters. Keywords—Indoor Localization, Viterbi-algorithm, Path loss prediction algorithm, Wireless Sensor Network, RSSI fingerprinting I. I NTRODUCTION N door localization systems have applications in many domains, think of the healthcare sector, military sector, industrial sector,. . . Examples of these applications are: tracing of elderly, navigation through a building, equipment tracking, museum guidance,. . . To perform the localization of an object, a tracking device that broadcasts beacons is often used. The location is estimated based on the comparison of the measured signal strength with reference values. Due to the complexity of many indoor environments there can be a large variability on these measured signal strengths which often results in an insufficient accuracy of the localization algorithm. By using new and advanced techniques this accuracy can be improved. I II. PATH LOSS MODELS A. RSSI To determine the path loss, the Received Signal Strength Indicator (RSSI) is used, this value gives an indication of the received power level in dB. We will use these RSSI values, averaged over a certain time-interval, to calculate the path losses from this certain moment. These measurements will be used as input for the localization algorithm, where they are compared with the reference values from the fingerprint database, to find the most likely next position. This fingerprint database is constructed with four different path loss models. B. Path loss models A free-space, one-slope, two-slope and the WiCa Heuristic Indoor Propagation Prediction Tool (WHIPP) [2] will be used for prediction of the path losses. Because of the difference between the measured RSSI values and the predicted path losses, all four models are calibrated once. By broadcasting packets on five different places in the testbed the ideal shift is determined (this testbed is further explained in Section IV). C. Offline phase In the offline phase all reference path losses for all gridpoints are calculated and stored in the fingerprint database. These grid- points are the possible locations on the floor plan where the object, that is being traced, can be located. III. L OCALIZATION ALGORITHM A. Simple algorithm A simple localization system is used to compare and estimate the improvement of the developed localization algorithm. This standard localization algorithm makes no use of the history of the current trajectory or the tracings object’s environment. Only the Mean Square Error (MSE) is used to determine the most likely current position (gridpoint), this MSE is calculated between the measured path losses and the reference path losses of a gridpoint from the fingerprint database. MSE = N 1X 2 (P Lavg,n − P Lref,n ) n n=1 (1) Where PLavg,n is the average measured path loss from a node n and PLref,n is the reference path loss from the fingerprint database for the same node n. B. Developed algorithm As already mentioned, the developed localization algorithm is based on the Viterbi-algorithm [3]. This comes down to determining the most likely sequence of positions instead of only the most likely current position. This is done by keeping the measurements of the past and include them in the calculation of the new most likely location. With each location update (by processing the measurements of the last moment), the possible trajectories and their associated total costs are updated in the memory of the location algorithm. The last position of the trajectory with the lowest total cost in that moment is taken as most likely current position. Besides including the past of a trajectory, it is ensured that the reconstructed trajectories are physically possible: no wallcrossing, using the doors to leave a room and an adjustable maximum speed. In this way no impossible jumps are made along a traveled path. IV. T ESTBED IMPLEMENTATION A. w-iLab.t The w-iLab.t is an experimental, generic, heterogeneous wireless testbed from iMinds, located in Zuiderpoort (Ghent), it is used for developing and testing wireless applications [1]. All (fixed) wireless nodes are connected to a wired backbone network for management, logging and processing of the measured data during an experiment. B. Mobile node Two kinds of mobile nodes are used to conduct the experiments, both broadcast beacons with a send rate of 10 packets per second but use a different wireless technology: ZigBee and WiFi. The mobile nodes have an antenna with a gain of 5 dBi. These broadcasted packets are received by the fixed nodes from the testbed and are, after preprocessing, used as input for the localization algorithm. C. Real-time visualization For visualizing the trajectory in real-time, there are two MySQL databases used, one for logging and reading the measured RSSI values from the testbed (this database is always used) and another database for storing the current most likely trajectory. The WHIPP web service gets regular updates from the second database to plot the trajectory in the visualization tool. V. R ESULTS A. Accuracy and standard deviation The column Viterbi Huidig is the trajectory consisting of the locations, that where most likely on a current moment along the walked path, whereas Viterbi is the final most likely trajectory (all measurements considered). Both score better than the simple algorithm, the accuracy has improved by 0.94 m and the standard deviation even by 1.86 m (averaged over ZigBee and WiFi). This can be explained by considering all previous locations in combination with the maximum speed parameter which does not allow huge (irregular) jumps along a path. B. Visualization Besides the absolute performance measures, the reconstructed trajectories can also be plotted on the floor plan to have a visual interpretation of the performance differences between the simple and the developed localization algorithm. In Figures 1 - 2, the visualization of the reconstructed trajectory with the simple and developed algorithm is shown (made with the mobile ZigBee node). The red, green and black trajectory are the ground truth, simple and developed algorithm respectively. The starting point is indicated with a circle. To validate the developed algorithm, two performance measures are used: the accuracy and the standard deviation of this accuracy. The accuracy is the average error between the predicted trajectory and the ground truth. The ground truth is the trajectory with the exact locations of the object that is being traced. The accuracy and standard deviation are calculated for each location update and averaged over all locations from the considered trajectory. T q 1X 2 2 (xgt,t − xpred,t ) + (ygt,t − ypred,t ) T t=1 (2) erroravg = v u T u1 X 2 σ=t (errort − erroravg ) T t=1 (3) Where erroravg is the average accuracy along a trajectory, T is total number of location updates (time steps) from an experiment, (xgt,t , ygt,t ) and (xpred,t , ypred,t ) are the coordinates from the ground truth and the predicted location at time step t, σ is the standard deviation and errort is the accuracy at time step t. In total nine test trajectories are used, taken at normal speed and with an average length of 87 m. The averaged results over all locations from all test trajectories for ZigBee and WiFi are summarized in Table I (whilst using the WHIPP path loss model, which gave best results). TABLE I ACCURACY (A) AND S TANDARD DEVIATION (S) Algorithm → Simple Viterbi Huidig Fig. 1. Visualization with the simple algorithm Viterbi Mobile node ↓ A [m] S [m] A [m] S [m] A [m] S [m] ZigBee 2.94 3.32 2.83 1.94 2.26 1.44 WiFi 3.89 3.45 3.29 2.23 2.7 1.62 Fig. 2. Visualization with the developed algorithm It can immediately be seen that the trajectory of the simple algorithm is not physically possible, many walls are crossed and irregular jumps are present (which will lead to a high standard deviation on the accuracy), whereas the trajectory of the developed algorithm is a regular one. Towards the end, the reconstructed path finds itself in the wrong room but the average error remains under 3 m. The exact accuracy and standard deviation can be found in Table II. It is confirmed that the simple al- TABLE III G LOBAL OPTIMUM gorithm has indeed a much higher standard deviation: 4.82 m compared to 1.54 m. Algorithm → TABLE II ACCURACY (A) AND S TANDARD DEVIATION (S) FOR F IGURES 1 - 2 Path loss model ↓ WHIPP Algorithm → Simple Testpath number ↓ 1 Viterbi A [m] S [m] A [m] S [m] 3.61 4.82 2.77 1.54 free-space C. Sensitivity analysis In this analysis the influence of noise (variations on the measurements, for example caused by multipath fading), number of fixed nodes, memory usage, execution time, sample rate, walking speed, radiation power, different cost functions and a more accurate modeling of the floor plan are tested. The accuracy and standard deviation of the localization algorithm were tested whilst increasing the variations on the measurements by simulation (parameter stdDev [dB]), there was averaged over the same nine test trajectories, each five times simulated (see Figure 3). The performance of the simple algorithm was degrading at a faster rate than the developed algorithm, which was more robust to noise. Simple Viterbi Huidig Viterbi 12 Viterbi Huidig Viterbi N [m] S [m] N [m] S [m] N [m] S [m] ZigBee 2.96 3.63 2.58 1.7 2.18 1.31 WiFi 3.38 3.13 2.45 1.69 2.2 1.46 ZigBee 3.45 3.4 3.04 1.87 2.61 1.5 WiFi 3.59 2.12 3.46 2.03 3.35 1.96 the standard deviation of the accuracy improved a lot. By using the advanced path loss model (WHIPP) there is always progress compared to the results with the free-space path loss model, only with the simple algorithm it has to give in a little on the standard deviation. VI. C ONCLUSION We can conclude that the usage of the past and environment of a trajectory can improve the accuracy and standard deviation of a (random) indoor localization system. Visual inspection of the reconstructed trajectories showed realistic paths. In the sensitivity analysis it was shown that the robustness against measurement variations improved and that decent results with only few fixed nodes could be obtained, which was not the case for the simple algorithm. Overall the developed localization algorithm kept performing better than the simple algorithm, with accuracies around 2.2 m. R EFERENCES 10 accuracy [m] Simple Mobile node ↓ [1] Stefan Bouckaert, Wim Vandenberghe, Bart Jooris, Ingrid Moerman, Piet Demeester, The w-iLab. t testbed, Testbeds and Research Infrastructures. Development of Networks and Communities, pp. 145-154, Stockholm, Springer, 2011. [2] David Plets, Wout Joseph, Kris Vanhecke, Emmeric Tanghe, Luc Martens, Coverage prediction and optimization algorithms for indoor environments, EURASIP Journal on Wireless Communications and Networking, pp. 1-23, Springer, 2012. [3] Andrew J. Viterbi, Error bounds for convolutional codes and an asymptotically optimum decoding algorithm, Information Theory, IEEE Transactions on, vol. 13, pp. 260-269, IEEE, 1967. 8 6 4 2 0 0 2 4 6 8 10 12 14 16 18 20 stdDev [dB] Fig. 3. Influence of noise (simulation) It was also shown that with less fixed nodes, still a good result could be obtained with the developed localization algorithm. For the memory usage: there is no need to retain all possible trajectories during the localization, because the performance saturated upwards retaining the 100 best trajectories at each location update. The average execution time for a location update was 345.02 µs, which makes it suited to work in real-time. A sample rate between 1 s-1 and 2.5 s-1 , which means a new input every 0.4 s - 1 s, gave the best results. The influence of walking speed and radiation power was negligible. A more detailed floor plan, which included the state of a door (open or closed) resulted in a small improvement. The ultimate performance with these ideal parameters for both the free-space and the WHIPP path loss model can be found in Table III. As expected the developed localization algorithm resulted in a better for performance for both path loss models, especially INHOUDSOPGAVE x Inhoudsopgave Extended abstract x Lijst met afkortingen xiii 1 Inleiding 1 1.1 Probleemstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Doelstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3 Overzicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Literatuur 2.1 2.2 3 Algemeen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.1 Rangingtechnieken en draadloze technologie¨en . . . . . . . . . . . . . . . 3 2.1.2 Driehoeksmeting en statistische methoden . . . . . . . . . . . . . . . . . . 4 State of the art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3 Lokalisatiealgoritme 3.1 3.2 3.3 6 Simpel algoritme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1.1 Grondplan en roosterpunten . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1.2 Fingerprinting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.1.3 Metriek: Mean Square Error . . . . . . . . . . . . . . . . . . . . . . . . . 7 Viterbi-algoritme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2.1 Algemeen principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2.2 Toegepast op lokalisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2.3 Eenvoudig voorbeeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2.4 Viterbi en Viterbi Huidig . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Optimalisatie van het lokalisatiealgoritme . . . . . . . . . . . . . . . . . . . . . . 10 INHOUDSOPGAVE 3.4 xi 3.3.1 Muren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3.2 Deuren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3.3 Maximale snelheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3.4 Robuustheid tegen verkeerde beginpositie . . . . . . . . . . . . . . . . . . 11 3.3.5 Selectie van padverliesmetingen . . . . . . . . . . . . . . . . . . . . . . . . 12 Prestatiemaat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.4.1 Constructie ground truth . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.4.2 Nauwkeurigheid en spreiding . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.4.3 Overige criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4 Padverliesmodellen 16 4.1 RSSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.2 Padverliesmodellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2.1 Free-space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2.2 One-slope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2.3 TGn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2.4 WHIPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Uitvoeringstijd offline-fase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.3 5 Implementatie in testbed 20 5.1 Eigenschappen testbed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.2 Mobiele node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.2.1 ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.2.2 WiFi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.3 Calibratie padverliesmodellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 5.4 Real-time implementatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 5.4.1 MySQL databank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.4.2 Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6 Resultaten 25 6.1 Testpaden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 6.2 ZigBee: vergelijking padverliesmodellen . . . . . . . . . . . . . . . . . . . . . . . 27 6.3 ZigBee versus WiFi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 6.4 Combinatie ZigBee en WiFi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 INHOUDSOPGAVE xii 6.5 Visualisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.6 Reproduceerbaarheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6.7 Sensitiviteitanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.7.1 Ruis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.7.2 Selectie aantal access points . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.7.3 Beperkt aantal vaste nodes . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.7.4 Geheugen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6.7.5 Uitvoeringstijd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.7.6 Sample rate en uitmiddeling . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.7.7 Wandelsnelheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 6.7.8 Zendvermogen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 6.7.9 Minimum padverlies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 6.7.10 Kostfunctie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 6.7.11 Open en gesloten deuren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Globaal optimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 6.8 7 Toekomstig werk 44 7.1 RSSI alternatieven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 7.2 ZigBee en WiFi alternatieven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 7.3 A-priori kennis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 7.4 Ruis en outlierfiltering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 7.5 Meerdere verdiepingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 7.6 Inbedding in indoornavigatiesysteem . . . . . . . . . . . . . . . . . . . . . . . . . 45 8 Conclusie 46 Bibliografie 48 Lijst van figuren 49 Lijst van tabellen 50 LIJST MET AFKORTINGEN xiii Lijst met afkortingen AoA Angle of Arrival AP Access Point DAoA Difference Angle of Arrival DSSS Direct-Sequence Spread Spectrum DToA Difference Time of Arrival IEEE Institute of Electrical and Electronics Engineers LoS Line of Sight MSE Mean Square Error PL Path Loss RFID Radio-Frequency Identification RSSI Received Signal Strength Indication ToA Time of Arrival USB Universal Serial Bus UWB Ultra-Wide Band WHIPP WiCa Heuristic Indoor Propagation Prediction Tool WiCa Wireless & Cable WiFi Wireless Fidelity WSN Wireless Sensor Network INLEIDING 1 Hoofdstuk 1 Inleiding 1.1 Probleemstelling Indoorlokalisatiesystemen hebben toepassingen in vele domeinen, denk maar aan de zorgsector, bedrijvensector, industri¨ele sector,. . . Voorbeelden van dergelijke toepassingen zijn: het traceren van ouderen, navigatie door een gebouw, equipment tracking, begeleiding doorheen een museum,. . . Om aan lokalisatie te doen, wordt meestal een tracking device gebruikt dat beacons uitzendt om, bijvoorbeeld via de gemeten signaalsterkte, zo de locatie te schatten. Maar door de fysieke complexiteit van vele indooromgevingen kan er een grote variabiliteit op de gemeten signaalsterkte zitten waardoor lokalisatiealgoritmen vaak nog niet voldoende nauwkeurig zijn. Door gebruik te maken van nieuwe en geavanceerde technieken kan deze accuraatheid worden verbeterd. 1.2 Doelstelling De bedoeling van deze thesis is het ontwikkelen van een nauwkeurig algoritme voor indoorlokalisatiebepaling met behulp van het Viterbi-algoritme. Dit komt neer op het bepalen van de meest waarschijnlijke sequentie van posities in plaats van enkel de meest waarschijnlijke huidige positie. Hiervoor worden de meetwaarden uit het verleden bijgehouden en telkens opnieuw in rekening gebracht om zo de nieuwe meest waarschijnlijke positie te bepalen. Daarna is het de bedoeling om het ontwikkelde lokalisatiealgoritme te testen via simulaties en te valideren in real-life omstandigheden. 1.3 Overzicht 1.3 2 Overzicht Eerst wordt er in Sectie 2 een overzicht gegeven van (indoor)lokalisatiealgoritmen en de huidige state of the art uit de literatuur. In Sectie 3 wordt er zowel een simpel als een op het Viterbialgoritme gebaseerd lokalisatiesysteem uiteengezet. De tweede zal telkens getoetst worden aan de eerste om de verbetering van het ontwikkelde lokalisatiealgoritme te kunnen onderzoeken in dezelfde omstandigheden. In Sectie 4 worden de gebruikte padverliesmodellen toegelicht, daarna in Sectie 5 komt de implementatie in het sensor lab van de Zuiderpoort (Gent) aan bod, gevolgd door een uitbreiding die in real-time het afgelegde traject visualiseert. De resultaten komen aan bod in Sectie 6, hier worden de prestaties van het ontwikkelde lokalisatiealgoritme en de sensitiviteitsanalyse van verscheidene parameters besproken. Er wordt afgesloten met toekomstig werk in Sectie 7 en een conclusie in Sectie 8. LITERATUUR 3 Hoofdstuk 2 Literatuur 2.1 Algemeen Indoorlokalisatiesystemen maken meestal gebruik van een vaste infrastructuur en een mobiel toestel (tracking device), waarbij er onderling signalen (beacons) kunnen worden uitgewisseld. Deze systemen onderscheiden zich van elkaar op volgende manieren [10]: • gebruikte rangingtechniek • gebruikte draadloze technologie • manier waarop de locatie wordt voorspeld 2.1.1 Rangingtechnieken en draadloze technologie¨ en Met rangingtechniek wordt de karakterisatie van afstand, tijd of hoek die de beacons afleggen, bedoeld. De draadloze technologie is deze die wordt gebruikt om de beacons uit te zenden. De meest courante rangingtechnieken en draadloze technologie¨en worden samengevat in Tabel 2.1. De rangingtechnieken die gebruik maken van Time of Arrival (ToA) of Angle of Arrival (AoA) leveren nauwkeurige metingen op maar hebben extra hardware nodig, bijvoorbeeld in het geval van AoA worden er directionele antennes gebruikt die duurder zijn en relatief meer energie verbruiken. Methoden gebaseerd op ontvangen signaalsterkte maken meestal gebruik van Received Signal Strength Indication (RSSI) [17] en aangezien de meeste draadloze toestellen deze functionaliteit hebben ingebouwd, brengt dit geen extra kost met zich mee. Bij de draadloze technologie¨en heeft Ultra-Wide Band (UWB), zoals de naam al aangeeft, een veel hogere bandbreedte dan bijvoorbeeld WiFi en dus ook een veel hogere temporele resolutie, wat het dus 2.2 State of the art 4 geschikt maakt voor zeer nauwkeurige lokalisatie toepassingen [8]. Het nadeel van UWB is dat een groot deel van de huidige systemen nog niet zijn uitgerust met deze (nieuwe) technologie. Voor de voorspelling van de locatie kan men gebruik maken van driehoeksmeting of statistische methoden. Tabel 2.1: Rangingtechnieken en draadloze technologie¨en Rangingtechniek ToA DToA AoA Time of Arrival: verschil in tijd tussen het zenden en ontvangen van een beacon Difference Time of Arrival Angle of Arrival: gebruikt directionele antennes om de hoek te bepalen DAoA Difference Angle of Arrival RSSI Received Signal Strength Indication: indicatie van ontvangen vermogen bij de ontvanger Draadloze technologie 2.1.2 Afkorting / Beschrijving Afkorting / Beschrijving RFID Radio-frequency identification DSSS Direct-sequence spread spectrum, wordt o.a. gebruikt door ZigBee WiFi Wireless Fidelity UWB Ultra Wide Band Driehoeksmeting en statistische methoden Bij lokalisatie met behulp van driehoeksmeting zijn er minstens 3 punten (metingen via een rangingtechniek) nodig, om de positie te bepalen. Een voorbeeld hiervan is geometrische multilateratie. Bij statistische methoden worden distributies van de afstanden gebruikt voor de locatie te voorspellen. Er zijn hoofdzakelijk drie aanpakken: statistische multilateratie, maximale likelihood schatters en Bayesiaanse schatters. Een overzicht van lokalisatie technieken met behulp van geometrische of statistische technieken wordt gegeven in [12]. 2.2 State of the art Enkele huidige state of the art algoritmen maken gebruik van a-priori kennis om bijvoorbeeld via probabilistische distributies de beweging van de mobiele node te modelleren. Deze a-priori kennis wordt in [9] met een gewichtsfactor in rekening gebracht om zo de meest waarschijnlijke huidige locatie te voorspellen. In [14] wordt semantische informatie ge¨extraheerd uit de interactie van een gebruiker met zijn omgeving, deze informatie wordt in combinatie met RSSI als rangingtechniek gebruikt om aan lokalisatie te doen. Voor een indooromgeving is het interessant om het gebruikte propagatiemodel te tunen voor dit 2.2 State of the art 5 specifieke gebouw, maar dit is zeer tijdrovend omdat er veel metingen voor nodig zijn. In [15] wordt een empirisch model voor het padverlies opgesteld dat wordt gematcht aan een deterministisch ray tracing model, zodat er geen uitgebreide metingen nodig zijn. Er werd aangetoond dat dit veel sneller ging zonder veel aan nauwkeurigheid in te boeten. In [18] wordt een multipath gebaseerd indoornavigatiesysteem uiteengezet, meer bepaald werd hier de informatie van reflectiecomponenten expliciet gebruikt om virtuele anchors te plaatsen, die worden gebruikt als extra datapunten in het lokalisatiealgoritme. Dit indoornavigatiesysteem werd in [11] gevalideerd, een real-time implementatie werd ontwikkeld om de performantie en invloeden in verscheidene omgevingen te testen. De draadloze technologie UWB in combinatie met ToA als rangingtechniek levert in [2] zeer nauwkeurige resultaten op voor de lokalisatie van sensoren op het lichaam binnen een kleine test setting (1.5 x 1.5 m2 ). In [1] wordt een indoor radio channel simulation platform beschreven dat een volledig gevectoriseerde UWB ray tracing tool voor indoor scenario’s aanbiedt (gebaseerd op grafentheorie). Er wordt rekening gehouden met de positie op het lichaam en het stralingspatroon van de antenne evenals de beweging van het menselijke lichaam (gemodelleerd via een Multi Cylinders Model ). Dit levert zeer nauwkeurige predicties op die onder andere kunnen worden gebruik om referentiepadverliezen in een lokalisatiealgoritme te voorspellen. Netwerklokalisatie en navigatie in co¨operatieve draadloze netwerken wordt onderzocht in [5]. Hierin wordt informatie over de omgeving, verkregen door waveforms te onderzoeken met channel state identification technieken, gebruikt om ranging errors weg te werken (range error mitigation). Dit resulteerde in een significante verbetering van de prestaties van location-aware networks. Deze thesis verschilt van de vorige technieken in het opzicht dat er geen gebruik wordt gemaakt van gebruikersinteractie om semantische informatie te verkrijgen of datasets om probabilistische distributies te modelleren maar enkel een eenvoudige calibratie, een gedetailleerd grondplan en het verleden van het afgelegde traject. LOKALISATIEALGORITME 6 Hoofdstuk 3 Lokalisatiealgoritme 3.1 3.1.1 Simpel algoritme Grondplan en roosterpunten Het vertrekpunt van het lokalisatiealgoritme is een grondplan van een gebouw of verdieping, in het geval van deze thesis is dat een grondplan van de derde verdieping van het Complex Zuiderpoort in Gent, waar ook het w-iLab.t testbed zich bevindt [4]. Op dit testbed zullen de real-life testen van het ontwikkelde algoritme en het valideren van de simulaties worden uitgevoerd. Dit grondplan meet 16.8 m bij 90 m en zowel de muren (beton of drywall ) als de deuren worden aangegeven, evenals de locaties van alle 57 access points (zie Figuur 3.1). Deze deuren zijn nodig voor de werking van het ontwikkelde lokalisatiealgoritme (zie Sectie 3.3.2). Figuur 3.1: Grondplan Dit grondplan wordt verdeeld in roosterpunten (gridpoints), een roosterpunt stelt een mogelijke positie op het grondplan voor (waar het tracking device zich kan bevinden). Het aantal roosterpunten per oppervlakte eenheid wordt bepaald door de roosterpuntresolutie. Deze roosterpuntresolutie zal dus de maximaal haalbare nauwkeurigheid voor een deel bepalen omdat 3.1 Simpel algoritme 7 op deze manier de locaties waar de te traceren mobiele node zich kan bevinden, alreeds worden vastgelegd. Om te starten wordt er een roosterpuntresolutie van 1 m gebruikt (zie Figuur 3.2). Figuur 3.2: Roosterpuntresolutie van 1 m 3.1.2 Fingerprinting Voor alle roosterpunten op het grondplan moet het padverlies tot alle vaste access points van het testbed worden berekend, zodat er referentiewaarden beschikbaar zijn waarmee de metingen kunnen worden vergeleken tijdens de online-fase (het effectief lokaliseren van de mobiele node). Deze fingerprintingmethode bestaat uit het aanmaken van een referentiedatabase met behulp van een padverliesmodel en wordt ook wel de offline-fase genoemd. De uitvoeringstijd van deze offline-fase wordt bepaald door het gebruikte padverliesmodel en door de ingestelde roosterpuntresolutie, aangezien er bij een fijnere resolutie voor meer roosterpunten het padverlies tot alle access points zal moeten worden berekend (zie Sectie 4.3). De gebruikte padverliesmodellen komen aan bod in Sectie 4.2. 3.1.3 Metriek: Mean Square Error De online-fase bestaat uit het vergelijken van de gemeten padverliezen met deze uit de referentiedatabase om zo de meest waarschijnlijke positie te bepalen. Om te starten gebruiken we in dit simpele algoritme de Mean Square Error (MSE) tussen de laatste metingen en de referentiepadverliezen (van een roosterpunt) uit de fingerprintdatabase om zo de meest waarschijnlijke positie (roosterpunt) te bepalen: N 1X (P Lgem,n − P Lref,n )2 MSE = n (3.1) n=1 Waarbij PLgem,n het gemeten padverlies van een vaste node n voorstelt, PLref,n het padverlies van dezelfde vaste node n maar uit de referentiedatabase en N het totaal aantal vaste nodes in het testbed voorstelt. 3.2 Viterbi-algoritme 3.2 8 Viterbi-algoritme In tegenstelling tot het simpele algoritme van Sectie 3.1 houden we hier wel rekening met het verleden van een traject en bepalen we de meest waarschijnlijke sequentie van locaties. Eerst wordt het algemene principe uitgelegd, daarna wordt dit toegepast op het lokalisatiealgoritme. 3.2.1 Algemeen principe Het Viterbi algoritme is een in 1967 door Andrew Viterbi ontwikkeld algoritme [16]. Oorspronkelijk werd dit gebruikt voor het decoderen van een convolutionele code over een (ruizig) digitaal communicatiekanaal. Ondertussen heeft het echter een breed toepassingsgebied, onder andere in deep-space communicatie, bio-informatica en spraakherkenning. Het algoritme zoekt de meest waarschijnlijke sequentie van verborgen toestanden – het Viterbi pad – dat resulteert in de geobserveerde toestanden. 3.2.2 Toegepast op lokalisatie Om dit principe toe te passen op een (indoor)lokalisatiesysteem, moeten we het Viterbi pad vrij letterlijk nemen. In plaats van op ieder moment met de huidige meetwaarden de beste nieuwe positie van de mobiele node te voorspellen (zoals in het simpele algoritme van Sectie 3.1), gaan we op ieder tijdstip het meest waarschijnlijke, tot nu toe afgelegde, traject bepalen. De vorige gemeten padverliezen worden in rekening gebracht door ook het verleden van een traject bij te houden en bovendien alle waarschijnlijke trajecten verder op te bouwen in het geheugen van het lokalisatiesysteem. Aan ieder traject zit een bepaalde kost gekoppeld, namelijk de som van alle MSE’s langs het traject in kwestie: costi = T X M SEi,t (3.2) t=1 Waarbij costi de kost van traject i is, i is de nummer van een traject dat in het geheugen wordt opgebouwd, T is het aantal tijdstappen die tot nu toe zijn gepasseerd en MSEi,t stelt de Mean Square Error, zoals gedefinieerd in Sectie 3.1.3, van traject i op tijdstip t voor. De laatste locatie van het traject dat op dit moment, van alle bijgehouden trajecten, de laagste kost heeft, wordt als meest waarschijnlijke huidige locatie genomen. Het reconstrueren van het verleden van de huidige meest waarschijnlijke locatie (dus zijn traject) kan worden gezien als een vorm van backtracking. 3.2 Viterbi-algoritme 3.2.3 9 Eenvoudig voorbeeld Om dit principe te illustreren wordt een vereenvoudigde situatie geschetst in Figuur 3.3. Het te traceren object kan zich enkel op een lijn voortbewegen (eendimensionaal), er zijn 5 mogelijke locaties (0 tot en met 4), het startpunt is locatie 2 en er kan maximaal 1 eenheid naar links of naar rechts worden bewogen per tijdstap. De input (metingen) zijn: 1, 0, 3, 4. Er zijn twee mogelijke trajecten getekend waarbij de kost per stap en de totale kost is berekend, bijvoorbeeld in de eerste stap is de input 1 en beide trajecten bewegen naar locatie 1 dus de kost is 0 (1 − 1 = 0), in stap 2 is de input 0 en het bovenste traject gaat naar locatie 0 (dus de totale kost blijft 0), maar het onderste traject keert reeds terug naar locatie 2 dus de totale kost wordt hier 2 (2 − 0 = 2). Omdat de totale kost als metriek wordt genomen, zal in de laatste stap het onderste traject toch als meest waarschijnlijke globale traject worden bekomen. Met huidige locatie wordt de huidige meest waarschijnlijke locatie bedoeld dus de output van het lokalisatiealgoritme bij iedere locatieupdate. Figuur 3.3: Eenvoudig voorbeeld Viterbi principe Ter vergelijking: in het ontwikkelde algoritme worden als input de padverliezen tot alle vaste nodes gebruikt i.p.v. een locatie, de kostfunctie is de MSE i.p.v. het verschil en de mogelijke locaties zijn de roosterpunten van het grondplan i.pv. de eendimensionale lijn. 3.2.4 Viterbi en Viterbi Huidig Een ander verschil ten opzichte van het originele Viterbi-algoritme, namelijk het decoderen van een convolutionele code, is dat daar meestal enkel het globale resultaat van belang is (dus wanneer alle data is ontvangen). Bij lokalisatie in ware tijd, is het belangrijk dat er tijdens het verwerken van input er op ieder moment ook de meest waarschijnlijke positie als output kan 3.3 Optimalisatie van het lokalisatiealgoritme 10 worden weergeven. Om dit verschil te duiden, wordt er bij de resultaten (zie Sectie 6) onderscheid gemaakt tussen Viterbi en Viterbi Huidig, waarbij deze laatste de meest waarschijnlijke positie op het huidige moment als output neemt, terwijl met Viterbi het globale meest waarschijnlijke traject wordt bedoeld, dus wanneer alle verzamelde data van het experiment in rekening is gebracht. Concreet komt dit er op neer dat Viterbi wordt gelijkgesteld aan het traject dat op het einde van het experiment de laagste kost heeft, dus wanneer de eindlocatie is bereikt. 3.3 Optimalisatie van het lokalisatiealgoritme Om de performantie van het lokalisatiealgoritme te verbeteren worden er enkele additionele beperkingen aan het gevolgde traject toegevoegd. 3.3.1 Muren Op het grondplan van Sectie 3.1.1 zijn ook de muren aangegeven; om de nauwkeurigheid van het lokalisatiealgoritme te verbeteren, wordt ervoor gezorgd dat enkel daadwerkelijk afgelegde trajecten als output kunnen worden gegenereerd. Door de roosterpunten per kamer (de gangen worden hier ook als kamers gezien) in een aparte lijst te stockeren, is het mogelijk om realistische trajecten op te bouwen waarbij het te traceren object niet door muren kan. 3.3.2 Deuren Een traject passeert doorgaans door meerdere kamers dus het moet mogelijk zijn om van een lijst van roosterpunten (refererend naar een kamer) te switchen naar de lijst van roosterpunten die overeenstemmen met een aangrenzende kamer. Hiervoor gebruiken we de deuren die op het grondplan zijn getekend. Met de instelbare parameter minDistDoor wordt aangegeven hoe dicht men zich bij een deur moet bevinden om in aanmerking te komen om de kamer te kunnen verlaten. Standaard wordt deze ingesteld op 2 m. Omdat deze 2 m ervoor kan zorgen dat het afgelegde traject schijnbaar toch door een muur gaat is ervoor geopteerd om bij het verlaten van een kamer het exacte midden van een deur als roosterpunt aan het afgelegde traject toe te voegen (zie Figuur 3.4). Dit is vooral belangrijk voor het visuele resultaat en dit extra roosterpunt wordt dan ook niet in rekening gebracht bij het bepalen van de gemiddelde error en standaardafwijking (zie Sectie 3.4.1). Een nadeel van deze aanpak is dat wanneer de deuren niet op het grondplan zouden zijn aangeduid, dit wel nog (manueel) moet gebeuren voor de werking van het algoritme. Dit kan wel op een snelle manier gebeuren omdat de minDistDoor parameter 3.3 Optimalisatie van het lokalisatiealgoritme 11 een kleine fout op de aanduiding van een deur toelaat. Het belangrijkste is dat er een deur is getekend zodat het te traceren object niet vast komt te zitten in een kamer. Figuur 3.4: Realistischer traject door toevoegen midden deur 3.3.3 Maximale snelheid Omdat de mobiele node zich niet oneindig snel kan verplaatsen, is het ook mogelijk om een maximale snelheid (parameter maxSnelheid ) in te stellen. Samen met de parameter sampleRate (in deze context: het tempo waaraan nieuwe gemeten padverliezen als input aan het algoritme worden aangeboden), bepalen deze de maximaal toegestane verplaatsing (parameter maxDist) tussen twee opeenvolgende samples. Het is deze maxDist die de mobiele node maximaal kan afleggen per locatieupdate langs een traject: maxDist = maxSnelheid sampleRate [m] (3.3) Bijvoorbeeld wanneer de maximale snelheid is ingesteld op 1.67 m/s (= 6 km/u) en de sample rate is ingesteld op 1 s-1 , is de maximale verplaatsing bij een locatieupdate gelijk aan 1.67 m. Aangezien de roosterpuntresolutie 1 m is, komt dit neer op 8 mogelijke volgende posities (zie Figuur 3.5). 3.3.4 Robuustheid tegen verkeerde beginpositie Een nadeel van dit algoritme is dat de globale prestatie wel afhankelijk is van de beginpositie. Wanneer bijvoorbeeld het traceren begint in de buurt van een muur en het lokalisatiealgoritme voorspelt als initi¨ele positie de andere kant van de muur, dan moet eerst een realistisch traject worden opgebouwd dat naar de juiste kamer leidt, vooraleer de predictie accuraat kan zijn. Wanneer er geen kort traject is naar de echte kamer kan het wel even duren vooraleer het algoritme zal stabiliseren. Een oplossing hiervoor is, om enkel bij de beginpositie, naburige 3.3 Optimalisatie van het lokalisatiealgoritme 12 Figuur 3.5: Mogelijke volgende posities bij een bepaalde maxSnelheid en sampleRate roosterpunten als extra startpunten toe te voegen en van daar ook trajecten op te bouwen in het geheugen. Deze methode (voegBeginPosToe) heeft 2 argumenten: aantalLevels en interDist. Per level worden er 8 roosterpunten toegevoegd, die op een cirkel rond de beste, voorspelde, beginpositie liggen en waarbij de levels een afstand interDist uit elkaar liggen. Omwille van de roosterpuntresolutie van 1 m, zullen de alternatieve beginposities niet exact op de cirkel liggen. Figuur 3.6 geeft een voorbeeld met de parameters aantalLevels = 2 en interDist = 1 m, dus vanaf het eerste tijdstip worden er hier 17 trajecten opgebouwd (2 · 8 + 1 = 17), dit aantal stijgt bij iedere locatieupdate omdat er steeds meer mogelijke trajecten bijkomen. Het aantal opgebouwde paden in het geheugen zal satureren wanneer dit gelijk is aan de parameter aantalPaden, vanaf dan wordt er steeds een selectie van beste trajecten gemaakt (om de uitvoeringstijd te beperken zodat het algoritme in ware tijd kan werken en om geheugen problemen te vermijden). De kost die aan elk roosterpunt van de extra beginposities wordt gehecht, is het verschil in MSE tussen de referentiewaarden van dit roosterpunt en deze van de metingen. Wanneer vanaf de tweede locatieupdate de metingen (en predicties) nauwkeuriger worden, kan het algoritme zich op deze manier snel corrigeren en zal een ander traject (en beginpositie) als meest waarschijnlijke worden bekomen. 3.3.5 Selectie van padverliesmetingen Omdat de padverliesmodellen nauwkeurigere predicties geven voor de padverliezen tussen een roosterpunt en zijn nabije access points (APs), wordt er in het lokalisatiealgoritme meer belang gehecht aan de laagste padverliezen. De parameter aantalAPs geeft aan hoeveel van de sterkste metingen (laagste padverliezen) tot de vaste nodes in het testbed worden meegerekend voor de volgende meest waarschijnlijke locatie te bepalen. Hiervoor worden de padverliezen gesorteerd 3.4 Prestatiemaat 13 Figuur 3.6: Extra beginposities toevoegen voor robuustheid tegen foute initi¨ele predictie van klein naar groot. In Sectie 6.7.2 wordt de invloed en beste waarde van deze parameter onderzocht; standaard wordt deze op 15 ingesteld. Er wordt ook getest met scenario’s waarbij enkel een selectie van de vaste nodes uit het testbed werken (zie Sectie 6.7.3), het verschil met het vorige is dat daar normaal wel alle vaste nodes werken en er een selectie (aantalAPs) wordt gemaakt van de gemeten padverliezen. Voor het uiteindelijke algoritme in pseudocode zie Algoritme 1 op pagina 14. 3.4 3.4.1 Prestatiemaat Constructie ground truth Om de prestaties en nauwkeurigheid van verschillende experimenten en scenario’s te kunnen vergelijken, is er nood aan een ground truth en een metriek. Met de ground truth worden de exacte locaties bedoeld, dus het effectief bewandelde traject. Voor de simulaties is dit eenvoudig omdat er eerst een traject wordt uitgestippeld en pas daarna de overeenkomstige padverliezen (uit de fingerprintdatabase) worden bepaald om als input te dienen (nadat er eventueel ruis is aan toegevoegd). Maar voor real-life testen ligt dit iets minder voor de hand omdat er tijdens het broadcasten van pakketten met de mobiele node continu wordt gewandeld, er vervolgens een uitmiddeling van de gemeten padverliezen over een bepaald tijdsinterval plaatsvindt, om dan als inputargumenten aan het algoritme te worden doorgegeven. Aangezien ook de invloed van de parameter sampleRate wordt onderzocht, zal niet elke test uit evenveel tijdstippen of locatieupdates bestaan. De testtrajecten worden bij benadering aan constante snelheid afgelegd en de grote lijnen van het afgelegde traject worden op het grondplan getekend. Een methode (maakExactePad ) deelt deze grote lijnen op in exact evenveel tijdstappen als er locatieupdates 3.4 Prestatiemaat Algoritme 1 Ontwikkeld lokalisatiealgoritme in pseudocode maxDist ← maximale stapgrootte tussen 2 locatieupdates minDistDoor ← minimum afstand tot een deur om er door te gaan aantalAP s ← aantal beste access points in rekening te brengen bij MSE berekening aantalP aden ← maximaal aantal paden die worden opgebouwd in geheugen aantalLevels ← aantal levels rond de beginpositie die worden toegevoegd interDist ← afstand tussen de levels bij het toevoegen van extra beginposities while nieuwe PLgem als input do sorteer PLgem (voor selectie van beste APs bij MSE berekening) paden ← alle paden in het geheugen padenCost ← bijhorende kost van alle paden for all pad in paden do huidigeP os ← laatste locatie van pad huidigeRoom ← kamer waarin huidigePos zich bevindt huidigeT otalCost ← kost van dit pad mogelijkeP os ← lege lijst voor mogelijke volgende posities in te stockeren for all roosterpunt in huidigeRoom do if afstand huidigePos tot roosterpunt ≤ maxDist then voeg roosterpunt toe aan lijst mogelijkePos end if end for if afstand huidigePos tot een deur van huidigeRoom ≤ minDistDoor then voeg roosterpunten aan andere kant van deur toe aan lijst mogelijkePos end if for all roosterpunt in mogelijkePos do bepaal MSE tussen PLgem en PLref van beste aantalAPs waarden tempCost ← huidigeT otalCost + M SE stockeer link tussen roosterpunt en tempCost end for sorteer tempCost if beginpositie then voegBeginPosToe(aantalLevels, interDist) end if update paden (hou beste aantalPaden bij, via tempCost) update padenCost if huidigeRoom van een pad is veranderd then voeg het midden van een deur toe als vorig roosterpunt end if end for end while 14 3.4 Prestatiemaat 15 zijn in de test (waarbij de hoekpunten altijd worden behouden). Op deze manier kan ieder experiment en scenario in absolute cijfers worden beoordeeld. 3.4.2 Nauwkeurigheid en spreiding Eenmaal voor een testscenario de co¨ordinaten van de ground truth zijn aangemaakt (zoals besproken in Sectie 3.4.1), kan de nauwkeurigheid en spreiding ten opzichte van de co¨ ordinaten van de predictie worden bepaald: errorgem = T T q 1X 1X (xgt,t − xpred,t )2 + (ygt,t − ypred,t )2 errort = T T t=1 (3.4) t=1 v u T u1 X σ=t (errort − errorgemiddeld )2 T (3.5) t=1 Hierbij stelt errorgem de gemiddelde nauwkeurigheid voor, errort is de nauwkeurigheid (afwijking) op tijdstap t, T het aantal locatieupdates (tijdstappen) van een experiment, (xgt,t , ygt,t ) en (xpred,t , ypred,t ) zijn de co¨ ordinaten van respectievelijk de ground truth en de predictie op tijdstap t. De spreiding (standaardafwijking) wordt in de formule voorgesteld door σ. 3.4.3 Overige criteria In deze thesis ligt de meeste nadruk op nauwkeurigheid en spreiding als criteria om het ontwikkelde algoritme te evalueren, daarnaast wordt er nog gekeken naar de rekencomplexiteit. Wanneer de klemtoon elders wordt gelegd, kunnen tal van andere factoren ook meespelen. Zo is energie-effici¨entie belangrijk voor wanneer alle gegevens in een mobiele node (met klein vermogen) moeten worden verwerkt. Bij toepassingen in grote gebouwen met veel verdiepingen of met zeer veel vaste nodes zal schaalbaarheid belangrijker worden. PADVERLIESMODELLEN 16 Hoofdstuk 4 Padverliesmodellen 4.1 RSSI RSSI staat voor Received Signal Strength Indicator en geeft een indicatie van het ontvangen power level uitgedrukt in dB. Bij de real-life testen van het lokalisatiealgoritme gebruiken we deze RSSI-waarden, uitgemiddeld over een bepaald tijdsinterval, om zo de padverliezen van een bepaald moment te berekenen. Deze worden dan gebruikt als input, waar ze worden vergeleken met de referentiewaarden (uit de fingerprintdatabase), om zo de meest waarschijnlijke volgende positie te bepalen. Alle gains en losses van het medium tussen zender en ontvanger zitten vervat in het link budget: PRX = PTX + GTX − LTX − PL − LX + GRX − LRX [dB] (4.1) Waarbij PRX het ontvangen vermogen is, PTX het zendvermogen, GTX en GRX de antenna gain van zender en ontvanger, LTX en LRX de verliezen in zender en ontvanger, PL is het padverlies en LX de overige verliezen (bijvoorbeeld door multipath fading). In dit lokalisatiealgoritme gebruiken we enkel het padverlies dus is er een calibratie van de metingen nodig om deze te kunnen vergelijken met de padverliezen uit de referentiedatabase (zie Sectie 5.3). Hierna volgt de beschrijving van vier verschillende padverliesmodellen en de principes waarop deze gebaseerd zijn. In Sectie 6.2 worden deze padverliesmodellen met elkaar vergeleken. 4.2 Padverliesmodellen 4.2 4.2.1 17 Padverliesmodellen Free-space Het free-space padverliesmodel is het verlies in signaalsterkte van een elektromagnetische golf als gevolg van een line-of-sight (LoS) pad door free-space (meestal lucht), waarbij de elektromagnetische golf geen obstakels kruist en er dus geen rekening wordt gehouden met reflectie of diffractie. De formule voor dit free-space model: PLfree-space = 20 log10 4π df c [dB] (4.2) Waarbij PLfree-space [dB] het totale padverlies berekend met het free-space model is, c de snelheid is van het licht in vacu¨ um: 3 × 108 m/s, d [m] de afstand is tot de ontvangende of zendende node en f [Hz] de frequentie is van het uitgezonden signaal. Aangezien we hier een mobiele ZigBee en WiFi node gebruiken is deze frequentie gelijk aan 2.4 GHz. 4.2.2 One-slope Een one-slope padverliesmodel ziet er als volgt uit: PLone-slope = P L0 + 10n log10 (d) [dB] (4.3) Waarbij PLone-slope [dB] het totale padverlies berekend met het one-slope model is. Dit model wordt gefit aan empirische data, waarbij de twee parameters: PL0 [dB] (het padverlies op een referentieafstand d0 [m]) en de padverliesexponent n [-] (slope) worden bepaald. In [3] werd dit gedaan voor de beschouwde verdieping van het testbed in de Zuiderpoort, beide parameterwaarden staan in Tabel 4.1. Tabel 4.1: Parameterwaarden one-slope padverliesmodel 4.2.3 PL0 [dB] n [-] 27 2.85 TGn Het TGn model is een two-slope padverliesmodel dat bestaat uit free-space padverlies (met slope n1 ) tot een bepaalde breekpuntafstand en vanaf daarna een bijkomend padverlies met slope n2 . 4.2 Padverliesmodellen 18 Deze breekpuntafstand is gerelateerd aan de antennehoogte bij welke de slope van het padverlies verandert [7]. Dit leidt tot de volgende formule: PLTGn = ( P L0 + 10n1 log10 (df ) d ≤ dBP d P L0 + 10n1 log10 (df ) + 10n2 log10 ( 0.01 ) d > dBP [dB] (4.4) Waarbij PLTGn [dB] het totale padverlies berekend met het TGn model is, PL0 [dB] het padverlies is op een afstand d0 , n1 [-] de eerste padverliesexponent, n2 [-] de bijkomende padverliesexponent, d [m] de afstand tot de ontvangende of zendende node, d0 [m] is een referentieafstand, dBP [m] de breekpuntafstand en f [Hz] de frequentie van het uitgezonden signaal. De parameterwaarden staan in Tabel 4.2. Tabel 4.2: Parameterwaarden TGn padverliesmodel 4.2.4 PL0 [dB] n1 [-] n2 [-] d0 [m] dBP [m] 32.4 2 3.5 10 10 WHIPP De WiCa Heuristic Indoor Propagation Prediction Tool (WHIPP model) is het meest geavanceerde padverliesmodel van de vier en wordt beschreven in [13]. Dit heuristische algoritme is speciaal ontwikkeld voor een indooromgeving en bestaat uit drie bijdragen: distance loss, cumulated wall loss en interaction loss. Dit resulteert in de volgende formule: PLWHIPP = P L0 + 10n log10 | {z distance loss d d0 } + X LWi i | {z } cumulated wall loss + X LB,j [dB] (4.5) j | {z } interaction loss Waarbij PLWHIPP [dB] het totale padverlies berekend met het WHIPP model is, PL0 [dB] het padverlies is op een afstand d0 , n [-] is een padverliesexponent, d [m] is een afstand tussen zender en ontvanger en d0 [m] is een referentieafstand. De eerste twee termen stellen het padverlies door de afgelegde afstand van het signaal voor (distance loss), de derde term (cumulated wall loss) is de som van de verliezen wanneer het signaal door een muur propageert en de vierde term (interaction loss) houdt rekening met het verlies als gevolg van het veranderen van propagatierichting langs het propagatiepad tussen zender en ontvanger. 4.3 Uitvoeringstijd offline-fase 4.3 19 Uitvoeringstijd offline-fase De uitvoeringstijden van de offline-fase, dus het aanmaken van de fingerprintdatabase met referentiepadverliezen gegenereerd door deze vier modellen, uitgevoerd op een laptop met Intel Core i7 3610QM 2.4 GHz processor en 4 GB DDR3-SDRAM, staan in Tabel 4.3. Verdubbeling van de roosterpuntresolutie (van 1 m naar 2 m) zal de uitvoeringstijd door 4 delen, aangezien het grondplan tweedimensionaal is. Tabel 4.3: Uitvoeringstijden offline-fase voor alle padverliesmodellen Padverliesmodel → free-space one-slope TGn WHIPP Uitvoeringstijd [s] 0.0307 0.0397 0.0880 971.76 Enkel met het WHIPP padverliesmodel neemt dit een niet verwaarloosbare tijd in beslag. Aangezien deze waarden voor alle experimenten kunnen worden hergebruikt, worden ze eenmalig berekend en vervolgens lokaal gestockeerd om dan bij het begin van een experiment opnieuw te worden ingeladen. Op deze manier is de duur van de opstartfase van het lokalisatiealgoritme altijd te verwaarlozen. IMPLEMENTATIE IN TESTBED 20 Hoofdstuk 5 Implementatie in testbed 5.1 Eigenschappen testbed Het w-iLab.t is een experimenteel, generic, heterogeen draadloos testbed van iMinds in de Zuiderpoort (Gent), dat is uitgerust met ongeveer 200 sensor en WiFi nodes [4]. Het gebouw bestaat uit verscheidene kantoorruimtes, vergaderzalen, PC-klassen,. . . Het wordt gebruikt voor het ontwikkelen en testen van draadloze applicaties, zowel WiFi gebaseerde mesh als ad-hoc netwerken. Alle draadloze nodes zijn aangesloten op een wired backbone netwerk voor het beheer, verwerken en loggen van gegevens tijdens een experiment. Op deze manier kunnen de resultaten ook achteraf worden geanalyseerd. In deze thesis worden de experimenten op de derde verdieping uitgevoerd, zie Figuur 5.1. Figuur 5.1: Derde verdieping van het w-iLab.t testbed 5.2 Mobiele node 5.2 21 Mobiele node Om het ontwikkelde algoritme te valideren in een real-life omgeving, gebruiken we een mobiele node die beacons uitzendt aan een tempo van 10 pakketten per seconde. Er worden twee draadloze technologie¨en gebruikt: ZigBee en WiFi. Beide gebruiken een externe antenne met een gain van 5 dBi (niet isotroop dus de ori¨entatie van de antenne heeft invloed op de ontvangen signaalsterkte) en hebben een indoor range van ongeveer 100 m. De mobiele nodes worden gevoed met een batterij van 19 Volt, deze kan tegelijkertijd beide nodes van stroom voorzien: de ZigBee node via USB en de WiFi node via een gewone kabel (zie Figuur 5.2). Figuur 5.2: Mobiele nodes (links WiFi, rechts ZigBee en batterij) 5.2.1 ZigBee ZigBee is een draadloze technologie gebaseerd op de IEEE 802.15 standaard met het oog op een open globale standaard voor het opzetten van low-power, low-cost, wireless mesh netwerken. Het device om beacons te verzenden is een TMote Sky sensor node [6] uitgerust met een Chipcon CC2420 radio chip die werkt bij een frequentie van 2.4 GHz, meer specifiek wordt channel 26 van ZigBee gebruikt (2480 MHz). Deze mobiele node draait RadioPerf voor het verzenden van pakketten. De node heeft een zendvermogen van 5 dBm (exclusief antenne) en de gebruikte bandbreedte is 2 MHz. 5.2.2 WiFi WiFi is eveneens een draadloze technologie maar is gebaseerd op de IEEE 802.11 standaard en vooral bekend van de WLAN-toepassingen om toegang tot het internet te verlenen. Het 5.3 Calibratie padverliesmodellen 22 mobiele toestel is hier een iNode, dit is een embedded PC met een WiFi interface. Het heeft een patched kernel die phyclick draait met madwifi als wireless driver. Er wordt gebruik gemaakt van channel 1 van WiFi (2412 MHz). Het zendvermogen van deze mobiele node is instelbaar van 0 dBm tot en met 23 dBm en de gebruikte bandbreedte is 20 MHz. 5.3 Calibratie padverliesmodellen Zowel voor de ZigBee als de WiFi mobiele node wordt een calibratie uitgevoerd omdat de RSSImetingen onder andere afhankelijk zijn van het uitgezonden vermogen en er in het algoritme enkel naar het padverlies wordt gekeken (zie Sectie 4.1). Er wordt een vaste shift verondersteld dus de calibratie wordt slechts eenmaal uitgevoerd. Hiervoor wordt op vijf locaties, verspreid over het testbed, gedurende 30 seconden beacons gebroadcast aan een tempo van 10 pakketten per seconde dus in totaal 300 RSSI-metingen per locatie. Het gemiddelde van deze 300 RSSI-metingen wordt, voor alle vier de padverliesmodellen uit Sectie 4.2, gematcht aan hun referentiepadverliezen. De gemiddelde shift van deze vijf locaties nemen we als ideale shift. Zo hebben we dus vier ideale shiften, ´e´en voor elke padverliesmodel (zie Tabel 5.1). Tabel 5.1: Ideale shift voor de vier padverliesmodellen Padverliesmodel free-space one-slope TGn WHIPP Ideale shift (ZigBee) [dB] 17.472 20.949 9.542 11.927 Ideale shift (WiFi) [dB] 106.204 103.984 117.962 113.653 De ideale shiften voor de mobiele WiFi node zijn veel groter, omdat de padverliezen hier op een andere manier worden gelogd als bij de mobiele ZigBee node. Bijvoorbeeld: een groot padverlies bij de ZigBee node is ongeveer −90, terwijl dit bij de WiFi node dan 10 is en een klein padverlies bij de ZigBee node is ongeveer −40, terwijl dit bij WiFi node dan 60 is. Beide zouden moeten worden gemapped naar −100 en −50 voor groot en klein referentiepadverlies respectievelijk, voor het WHIPP padverliesmodel is deze shift ongeveer 10 en 110 voor ZigBee en WiFi respectievelijk: −90 − 10 = −100 en 10 − 110 = −100. 5.4 Real-time implementatie Voor de visualisatie in ware tijd wordt bij iedere locatieupdate de meest waarschijnlijke positie, samen met zijn trajectverleden, naar een databank weggeschreven en vervolgens uitgelezen door 5.4 Real-time implementatie 23 de WHIPP webservice. Het trajectverleden van de huidige meest waarschijnlijke positie wordt telkens mee weggeschreven omdat dit gaandeweg kan veranderen. 5.4.1 MySQL databank Om de trajecten naar een MySQL databank weg te schrijven, wordt het java.sql package gebruikt. De databank tabel heeft 1 kolom en een entry heeft de volgende structuur: x1,y1,x2,y2,type Dit stelt een lijnstuk voor waarbij (x1,y1) de vorige locatie is, (x2,y2) de positie die deze entry voorstelt en type kan exact, simple of viterbi zijn (zie Tabel 5.2). Tabel 5.2: Verklaring types type Uitleg exact Het traject dat de ground truth voorstelt simple Het traject gegenereerd met het simpele lokalisatiealgoritme viterbi Het traject gegenereerd met het ontwikkelde lokalisatiealgoritme Deze drie types worden gebruikt om het traject in een andere kleur weer te geven zodat het onderscheid kan gemaakt worden tussen de ground truth (zie Sectie 3.4.1), het simpele algoritme (zie Sectie 3.1) en het ontwikkelde algoritme (zie Sectie 3.2). Deze drie types worden in de visualisatietool weergegeven in het rood, groen en zwart respectievelijk. Op deze manier wordt een heel traject opgebouwd uit meerdere lijnstukken (´e´en extra per locatieupdate en per type), Figuur 5.3 geeft een voorbeeld van hoe deze drie soorten trajecten worden weergegeven in de visualisatietool van de WHIPP webservice. Figuur 5.3: Visualisatie van de drie soorten trajecten 5.4 Real-time implementatie 5.4.2 24 Delay De vertraging tussen effectief op een bepaalde positie staan en de locatieupdate in de visualisatietool, is van meerdere factoren afhankelijk. De RSSI-metingen worden weggeschreven naar een databank, vanaf er bijvoorbeeld 10 nieuwe metingen zijn (komt overeen met 1 seconde wanneer de mobiele node aan een tempo van 10 pakketten per seconde broadcast), worden deze uitgelezen door het lokalisatiealgoritme en wordt het gemiddelde ervan berekend. Vervolgens wordt de nieuwe meest waarschijnlijke positie berekend en wordt het volledige verleden van dit traject geconstrueerd via backtracking. Dit traject wordt uiteindelijk weggeschreven naar een andere databank, waar de visualisatietool om de 2 seconden een update uit haalt. De processing delay van het lokalisatiealgoritme zelf wordt onderzocht in Sectie 6.7.5 en zal te verwaarlozen blijken ten opzichte van de andere factoren zoals de communicatiedelay. Deze vari¨erende communicatiedelays zijn moeilijk te voorspellen maar gemiddeld gezien lag de totale vertraging van de visualisatietool in de praktijk rond de 4 seconden. RESULTATEN 25 Hoofdstuk 6 Resultaten 6.1 Testpaden In totaal worden er negen testpaden gebruikt (zie Figuur 6.1), het startpunt van ieder testpad wordt aangegeven met een rode cirkel. De afgelegde afstand van de testpaden varieert van 50 m tot 100 m, er werd aan normale snelheid gewandeld en er werd nergens stilgestaan (zie Tabel 6.1). Ter referentie: 1.11 m/s komt overeen met 4 km/u. De trajecten werden afgelegd met de mobiele node in de hand op een hoogte van ongeveer 1.5 m, deze werd hierbij zo ver mogelijk van het lichaam gehouden om de eventuele invloed van het lichaam op het signaal te beperken. Tabel 6.1: Eigenschappen testpaden Testpad nummer Afstand [m] Gemiddelde snelheid [m/s] 1 84.46 1.24 2 111.0 0.74 3 76.17 1.07 4 70.07 1.09 5 68.06 1.05 6 45.73 1.14 7 89.83 1.18 8 99.05 1.25 9 138.56 1.15 Gemiddeld 86.99 1.10 6.1 Testpaden 26 (a) Testpad 1 (b) Testpad 2 (c) Testpad 3 (d) Testpad 4 (e) Testpad 5 (f) Testpad 6 (g) Testpad 7 (h) Testpad 8 (i) Testpad 9 Figuur 6.1: Testpaden 6.2 ZigBee: vergelijking padverliesmodellen 6.2 27 ZigBee: vergelijking padverliesmodellen In Tabel 6.2 staan de nauwkeurigheid en spreiding (in het vervolg afgekort met N en S) voor de vier padverliesmodellen uit Sectie 4.2, waarbij voor ieder padverliesmodel zijn ideale shift is toegepast (zoals berekend in Sectie 5.3). Er is uitgemiddeld over de data van de negen testpaden, afgelegd met de mobiele ZigBee node, en de gebruikte instellingen van het ontwikkelde algoritme staan in Tabel 6.3. De parameter aantalPaden geeft aan hoeveel trajecten er in het geheugen worden opgebouwd (en bijgehouden) en staat standaard op 1000, in Sectie 6.7.4 wordt de invloed van deze parameter onderzocht. Tabel 6.2: Vergelijking vier padverliesmodellen Algoritme → Padverliesmodel ↓ Simpel Viterbi Huidig Viterbi N [m] S [m] N [m] S [m] N [m] S [m] free-space 3.48 3.39 3.17 2.0 2.61 1.59 one-slope 4.05 3.44 3.89 2.26 2.97 1.77 TGn 5.68 4.31 5.34 2.45 4.04 2.31 WHIPP 2.94 3.32 2.83 1.94 2.26 1.44 Tabel 6.3: Instellingen lokalisatiealgoritme Instelling Waarde maxSnelheid 1.67 m/s sampleRate 1 sample/s minDistDoor 2m aantalAPs 15 aantalPaden 1000 aantalLevels 5 interDist 1m Het WHIPP predictie model scoort zowel voor het simpele als het ontwikkelde algoritme altijd het best en het TGn model overal het minst. Het free-space model is iets beter dan het one-slope model (door de ideale shift wordt het verschil tussen deze twee vooral bepaald door de slope, deze is 2 voor free-space en 2.85 voor one-slope). Verder is het ontwikkelde algoritme, zowel Viterbi als Viterbi Huidig (zie Sectie 3.2.4 voor het verschil tussen beiden), voor alle padverliesmodellen nauwkeuriger dan het eenvoudige algoritme (Simpel ). Naast een nauwkeuriger resultaat is er ook een aanzienlijk verschil in spreiding (standaardafwijking op de nauwkeurigheid), deze trend zal zich in alle resultaten verder zetten. Onderling is Viterbi 6.3 ZigBee versus WiFi 28 ook altijd beter dan Viterbi Huidig wat te verklaren is doordat alle data in rekening werd gebracht voor het globaal beste traject te bepalen. In de volgende secties zal steeds het WHIPP padverliesmodel worden gebruikt. De procentuele verbetering die dit padverliesmodel oplevert, wordt in Sectie 6.8 berekend ten opzichte van het free-space model omdat dit de tweede beste resultaten gaf. 6.3 ZigBee versus WiFi Naast de mobiele ZigBee node, is er ook getest met een mobiele WiFi node. Om te vergelijken zijn testpaden 1, 7 en 9 ook afgelegd met deze WiFi node. De vergelijking tussen de twee mobiele nodes (uitgemiddeld over dezelfde drie testpaden) staat in Tabel 6.4, dezelfde instellingen uit Tabel 6.3 werden gebruikt samen met WHIPP als padverliesmodel. Tabel 6.4: Vergelijking ZigBee met WiFi als draadloze technologie Algoritme → Draadloze technologie ↓ Simpel Viterbi Huidig Viterbi N [m] S [m] N [m] S [m] N [m] S [m] ZigBee 3.0 4.44 2.61 1.76 2.16 1.54 WiFi 3.89 3.45 3.29 2.23 2.7 1.62 De mobiele ZigBee node scoort op alle vlakken iets beter, buiten de spreiding bij Simpel. De overige trends zetten zich ook bij de mobiele WiFi node voort: er is verbetering bij het ontwikkelde algoritme ten opzichte van het simpele algoritme en Viterbi komt er als beste van de drie uit. 6.4 Combinatie ZigBee en WiFi Bij het combineren van beide mobiele nodes, kunnen de signalen interfereren omdat deze in dezelfde frequentieband werken. Om de interferentie tot een minimum te beperken, zijn de gebruikte kanalen zo ver mogelijk uit elkaar gekozen. Voor de sensor node gebruikten we dus ZigBee channel 26 (2480 MHz) en voor de WiFi node gebruikten we WiFi channel 1 (2412 MHz). Het zendvermogen van de mobiele WiFi node wordt, net zoals de ZigBee node, op 5 dBm ingesteld. Indien een vaste node uit het testbed beide signalen ontvangt, is er een extra datapunt als input voor het algoritme. De resultaten (nauwkeurigheid en spreiding, uitgemiddeld over testpaden 1, 7 en 9) worden samengevat in Tabel 6.5, waarbij de rijen ZigBee en WiFi de 6.5 Visualisatie 29 resultaten zijn van hetzelfde experiment (dus met de twee mobiele nodes tegelijk wandelen) maar apart bekeken. Dit verklaart het verschil met Sectie 6.3. Tabel 6.5: Combinatie ZigBee en WiFi Algoritme → Simpel Viterbi Huidig Viterbi mobiele node ↓ N [m] S [m] N [m] S [m] N [m] S [m] ZigBee 4.64 3.51 5.12 2.77 2.81 1.6 WiFi 3.35 2.88 3.2 1.99 2.68 1.62 ZigBee + WiFi 3.41 2.81 3.78 2.06 2.55 1.48 De nauwkeurigheid en spreiding van ZigBee+WiFi is bij Viterbi net iets beter dan deze van ZigBee of WiFi apart, maar de verbetering blijft beperkt. In vergelijking met Tabel 6.4 valt vooral op dat de prestatie van de mobiele ZigBee node minder goed is wanneer het experiment met twee mobiele nodes tegelijkertijd wordt uitgevoerd. Beide mobiele nodes worden tijdens het afleggen van de trajecten ongeveer een halve meter uit elkaar gehouden (want worden tegelijk door ´e´en persoon gedragen), dit zou de prestaties kunnen be¨ınvloeden. 6.5 Visualisatie Naast de absolute maatstaven om het ontwikkelde algoritme te beoordelen, kunnen de trajecten ook op het grondplan worden geplot om een visueel beeld te krijgen van de prestaties en verschillen met het eenvoudige lokalisatiealgoritme. Zie Figuren 6.2a – 6.2d voor de visualisatie van testpad 1, eens met en zonder gesimuleerde ruis, voor zowel het eenvoudige als het ontwikkelde algoritme (in Sectie 6.7.1 wordt uitgelegd hoe deze ruis wordt gesimuleerd). De visualisatie van hetzelfde testpad maar afgelegd met de mobiele ZigBee node (dus geen simulatie) kan worden teruggevonden in Figuren 6.2e – 6.2f. De gebruikte instellingen zijn opnieuw deze uit Tabel 6.3, alleen staat bij de simulatie de parameter maxSnelheid op 2 m/s, omdat het anders soms voorviel dat het beste roosterpunt nog net niet kon worden bereikt. Wanneer er geen ruis wordt toegevoegd (geen afwijkingen op de referentiepadverliezen), is het meest waarschijnlijke traject niet exact gelijk aan de ground truth (van Sectie 3.4.1) omdat een gereconstrueerde traject zich enkel via de roosterpunten kan voortbewegen (terwijl de ground truth enkel uit rechte lijnen bestaat), vandaar dat de gevonden nauwkeurigheid en spreiding niet exact nul zullen zijn. De gereconstrueerde trajecten bij de simulaties geven in het geval zonder ruis voor beide 6.5 Visualisatie 30 (a) Simulatie zonder ruis (b) Simulatie zonder ruis (c) Simulatie met ruis (stdDev = 12 dB) (d) Simulatie met ruis (stdDev = 12 dB) (e) Mobiele ZigBee node (f) Mobiele ZigBee node Figuur 6.2: Visualisatie van testpad 1 onder verschillende omstandigheden (links Simpel, rechts Viterbi ) lokalisatiealgoritmen zo goed als hetzelfde resultaat (alleen bij een van de laatste locatieupdates is er een klein verschil). Wanneer er wel ruis (variatie op de padverliezen) wordt toegevoegd, werkt Viterbi duidelijk beter, het gereconstrueerde traject vertoont geen onregelmatig sprongen of outliers zoals bij het eenvoudige lokalisatiealgoritme (Simpel ). Voor het experiment met de mobiele ZigBee node zien we een gelijkaardig resultaat alleen bevinden beide lokalisatiealgoritmen zich op het einde in de verkeerde kamer en zit er een nog grotere variatie op het traject van Simpel. De bijhorende nauwkeurigheid en spreiding van de zes visualisaties staan in Tabel 6.6 en bevestigen deze resultaten. Bij dit traject van de mobiele ZigBee node is ook de werking van de methode voegBeginPosToe (uit Sectie 3.3.4) zichtbaar: oorspronkelijk begint Viterbi op 6.6 Reproduceerbaarheid 31 dezelfde plaats als Simpel maar in het uiteindelijke traject, is deze beginpositie iets opgeschoven naar de exacte beginpositie (de beginposities zijn met een cirkel aangeduid). De oorspronkelijke bedoeling van deze methode was om worst case scenario’s met foute beginposities te vermijden maar ook bij mindere afwijkingen, kan het een (lichte) verbetering geven. Tabel 6.6: Nauwkeurigheid en spreiding van de visualisaties uit Figuur 6.2 Algoritme → 6.6 Simpel Viterbi Situatie ↓ N [m] S [m] N [m] S [m] Simulatie zonder ruis 0.39 0.14 0.4 0.15 Simulatie met ruis (stdDev = 12 dB) 3.31 3.0 1.97 1.69 Mobiele ZigBee node 3.61 4.82 2.77 1.54 Reproduceerbaarheid De testtrajecten zijn eens met de mobiele ZigBee node, eens met de mobiele WiFi node en eens met beide mobiele nodes tegelijk afgelegd. Om de invloed van de omgeving of aanwezige mensen op het resultaat te onderzoeken, zijn testtrajecten 1 en 2 (zie Figuur 6.1) vijfmaal met de mobiele ZigBee node afgelegd. De gemiddelde resultaten (G) en de afwijking op deze resultaten (A) staan voor beide trajecten in Tabel 6.7. Tabel 6.7: Reproduceerbaarheid van de resultaten Algoritme → Simpel Viterbi Huidig Viterbi Testtraject ↓ N [m] S [m] N [m] S [m] N [m] S [m] 1 (G) 3.538 4.518 3.514 2.094 2.77 1.598 1 (A) 0.517 2.203 0.271 0.326 0.320 0.387 2 (G) 3.81 3.144 3.714 2.072 2.93 1.544 2 (A) 0.469 1.782 0.244 0.186 0.188 0.159 De gemiddelde afwijking op de nauwkeurigheid en spreiding is voor het ontwikkelde algoritme slechts 0.256 m en 0.265 m respectievelijk, terwijl dit voor het simpele algoritme 0.493 m en 1.992 m is. Dus vooral op de spreiding (S) bij het simpele algoritme zit een relatief grote variatie voor de vijf metingen. 6.7 Sensitiviteitanalyse 6.7 6.7.1 32 Sensitiviteitanalyse Ruis Om de invloed van afwijkingen van de ideale padverliezen op de nauwkeurigheid van de predictie te onderzoeken, bijvoorbeeld door multipath fading, wordt er aan de ideale input, via simulatie, ruis met een zekere standaardafwijking (parameter stdDev [dB]) toegevoegd. Met ideale input worden de referentiepadverliezen van de exacte posities langs een testpad bedoeld. Hiervoor wordt een nieuwe ruiswaarde voor ieder padverlies tot een vaste node gegenereerd met het java.util.Random package: j a v a . u t i l . Random r = new j a v a . u t i l . Random ( ) ; L i s t <Double> PL input = new A r r a y L i s t <Double > ( ) ; f o r ( double PL ref : t e s t p a d P L r e f ){ PL input . add ( P L r e f + r . n e x t G a u s s i a n ( ) ∗ stdDev ) ; } Waarbij PL input de input voor het lokalisatiealgoritme is, testpad PL ref de lijst met de exacte padverliezen van een tijdstap langs het testpad en stdDev de te vari¨eren parameter is. Opnieuw worden de negen testpaden uit Sectie 6.1 gebruikt. De gebruikte instellingen zijn voor alle ruisniveaus en alle testpaden dezelfde (zie Tabel 6.3), alleen staat de parameter maxSnelheid opnieuw op 2 m/s om dezelfde reden als in Sectie 6.5. De invloed van ruis (variatie op de metingen) op de prestaties van zowel het simpele als het ontwikkelde algoritme wordt getest met de parameter aantalAPs op 15 en 57, in dat laatste geval worden dus de metingen van alle vaste nodes uit het testbed bij iedere locatieupdate gebruikt (zie Figuren 6.3a – 6.3b). De x-as stelt het toegevoegde ruisniveau in dB voor (parameter stdDev, stapgrootte 2 dB) en op de y-as staat de nauwkeurigheid met de spreiding als errorbars (uitgemiddeld over de simulaties van alle negen testpaden, vijf keer herhaald). De prestaties van Simpel verslechteren aan een sneller tempo dan deze van Viterbi of Viterbi Huidig. Wanneer de metingen van alle beschikbare access points worden gebruikt bij de voorspelling, is het resultaat voor het eenvoudige algoritme gemiddeld 1.06 m en 1.07 m beter en voor het ontwikkelde algoritme is dit 0.85 m en 0.75 m (voor de nauwkeurigheid en spreiding respectievelijk). Het verschil wordt groter naarmate er meer variatie aan de metingen wordt toegevoegd, bij stdDev = 20 dB, is dit verschil voor het eenvoudige algoritme reeds 2.04 m en 6.7 Sensitiviteitanalyse 33 Simpel Viterbi Huidig Viterbi 12 10 nauwkeurigheid [m] 10 nauwkeurigheid [m] Simpel Viterbi Huidig Viterbi 12 8 6 4 8 6 4 2 2 0 0 0 2 4 6 8 10 12 14 16 18 20 0 2 4 6 stdDev [dB] (a) aantalAPs = 15 8 10 12 14 16 18 20 stdDev [dB] (b) aantalAPs = 57 Figuur 6.3: Invloed van ruis op nauwkeurigheid (simulatie) 1.91 m en voor het ontwikkelde algoritme 1.95 m en 1.78 m (voor de nauwkeurigheid en spreiding respectievelijk). Maar in realiteit zal de stelling dat op iedere meting evenveel ruis zit (zoals bij de simulatie), los van hoe ver de vaste node zich bevindt, niet opgaan. In de volgende Sectie wordt de optimale waarde van deze parameter aantalAPs bepaald met real-life experimenten. 6.7.2 Selectie aantal access points Wanneer het zendvermogen van de mobiele node voldoende sterk is, ontvangen meestal ongeveer 20 vaste nodes (access points) de beacons. In het geval van de mobiele WiFi node, met een maximaal zendvermogen van 23 dBm, kunnen alle 57 vaste nodes uit het testbed de beacons opvangen, waar de mobiele node zich ook bevindt. Het padverliesmodel voorspelt meestal een betrouwbaarder padverlies voor de dichtstbijzijnde access points (APs), daarom wordt eerst een selectie gemaakt van de aantalAPs laagste padverliezen (waarbij aantalAPs een getal is). Vervolgens wordt er enkel met deze meetwaarden rekening gehouden bij het voorspellen van de nieuwe meest waarschijnlijke positie. Zowel voor de mobiele ZigBee als WiFi node wordt dit optimale aantal bepaald, door de nauwkeurigheid en spreiding in functie van aantalAPs te onderzoeken (zie Figuur 6.4). Opnieuw werd de data van alle negen de testpaden, afgelegd met de mobiele ZigBee node, en de data van testpaden 1, 7 en 9, afgelegd met de mobiele WiFi node, gebruikt. Bij de ZigBee node stagneert de nauwkeurigheid vanaf een aantalAPs waarde van 10, voor de WiFi node ligt dit aantal bij 16. Dit komt omdat er bij de mobiele WiFi node een sterker zendvermogen werd gebruikt (23 dBm versus 5 dBm), dus het signaal propageert verder waardoor er 6.7 Sensitiviteitanalyse 34 Invloed van aantalAPs (ZigBee) 10 8 6 4 2 0 Simpel Viterbi Huidig Viterbi 10 nauwkeurigheid [m] nauwkeurigheid [m] Invloed van aantalAPs (WiFi) Simpel Viterbi Huidig Viterbi 8 6 4 2 0 2 4 6 8 10 12 14 16 18 aantalAPs [−] 20 2 4 6 8 10 12 14 16 18 20 aantalAPs [−] Figuur 6.4: Sensitiviteitsanalyse van aantalAPs meer metingen zijn die een extra bijdrage tot de nauwkeurigheid en spreiding leveren. Aangezien het resultaat stagneert vanaf een bepaalde waarde (en niet slechter wordt), kunnen eigenlijk alle metingen worden gebruikt maar dit is in principe overbodig en zal de uitvoeringstijd van een locatieupdate enkel doen toenemen. 6.7.3 Beperkt aantal vaste nodes In ideale omstandigheden werken alle 57 vaste nodes uit het testbed, maar tijdens een experiment kunnen sommige nodes down zijn door node failure, maintenance,. . . In deze sectie wordt de robuustheid tegen steeds meer wegvallende vaste nodes onderzocht of voor gebouwen waar veel minder vaste nodes zijn ge¨ınstalleerd. Er worden vijf scenario’s onderzocht, de configuraties van scenario 1 tot en met 4 zijn afgebeeld in Figuur 6.5 (waarbij de nodes die down zijn in het grijs staan). Scenario 5 gebruikt alle (beschikbare) vaste nodes. De resultaten voor de mobiele ZigBee en WiFi node staan in Tabel 6.8. Bij ZigBee werd er uitgemiddeld over alle negen testpaden en bij WiFi over testpaden 1, 7 en 9, opnieuw met de instellingen uit Tabel 6.3. Omdat er bij scenario’s 1 en 2 minder dan 15 APs werken, wordt de aantalAPs parameter hier automatisch aangepast naar 5 en 10 respectievelijk. Beide mobiele nodes geven, zoals verwacht, het beste resultaat wanneer alle vaste nodes worden gebruikt. De ZigBee node is, op scenario 1 na, altijd beter dan de WiFi node. Dit is te verklaren omdat bij scenario 1, het aantal vaste nodes zeer schaars is maar de mobiele WiFi node deze nog wel altijd allemaal kan bereiken. Verder valt op dat in deze omstandigheden met weinig vaste nodes het eenvoudige algoritme met de mobiele ZigBee node veel slechter presteert in vergelijking met het ontwikkelde algoritme. Bijvoorbeeld bij scenario 2 is Viterbi 5.43 m 6.7 Sensitiviteitanalyse 35 (a) Scenario 1 (b) Scenario 2 (c) Scenario 3 (d) Scenario 4 Figuur 6.5: Scenario’s met verschillend aantal werkende vaste nodes uit het testbed nauwkeuriger en zit er 12.2 m minder spreiding op de resultaten ten opzichte van Simpel, terwijl dit bij scenario 5 nog maar 0.68 m en 1.88 m is. Dus het ontwikkelde algoritme heeft vooral een meerwaarde in omstandigheden met weinig beschikbare vaste nodes (bij de ZigBee node). 6.7.4 Geheugen Beperkt aantal paden Het geheugengebruik wordt vooral bepaald door het aantal paden die in het geheugen worden bijgehouden en opgebouwd. Dit is enkel van belang voor het ontwikkelde algoritme aangezien het simpele algoritme enkel de laatste meting gebruikt. In Figuur 6.6a wordt de nauwkeurigheid uitgezet in functie van de parameter aantalPaden op een logaritmische schaal (uitgemiddeld over de negen testpaden en overige instellingen zoals uit Tabel 6.3). Het simpele algoritme blijft dus over de hele lijn constant omdat er geen rekening wordt gehouden met het verleden. De nauwkeurigheid van het ontwikkelde algoritme blijft constant vanaf ongeveer 100 paden maar zelfs bij 1000 paden is de processing delay nog te verwaarlozen ten opzichte van de andere factoren dus dit is geen beperkende factor (zie verder Sectie 6.7.5). Enkel recent verleden Wanneer een node een zeer lange tijd moet worden getraceerd, kan het interessant zijn om enkel het recente verleden in rekening te brengen, zodat niet alle data uit het verleden moet worden bijgehouden. In deze sectie wordt gezocht naar het minimum aantal locaties uit het verleden die men nodig heeft om een bepaalde nauwkeurigheid en spreiding te halen. Om dit te 6.7 Sensitiviteitanalyse 36 Tabel 6.8: Nauwkeurigheid en spreiding voor de verschillende scenario’s ZigBee Algoritme → Simpel Viterbi Huidig Viterbi scenario ↓ #vaste nodes ↓ N [m] S [m] N [m] S [m] N [m] S [m] 1 5 8.28 11.45 7.25 10.28 5.02 7.7 2 10 8.81 15.31 4.73 3.88 3.38 3.11 3 20 4.67 7.72 3.51 2.27 2.82 1.84 4 30 3.73 5.4 3.22 2.22 2.53 1.62 5 57 2.94 3.32 2.83 1.94 2.26 1.44 1 5 4.97 3.43 5.21 3.67 3.52 2.24 2 10 4.63 2.94 4.88 2.93 4.1 2.54 3 20 3.65 2.25 3.88 2.56 3.12 2.04 4 30 3.53 2.62 3.51 2.59 2.74 1.69 5 57 3.89 3.45 3.29 2.23 2.7 1.62 WiFi bekijken wordt wel het volledige pad bijgehouden (om achteraf de nauwkeurigheid en spreiding te kunnen bepalen) maar worden de beste paden geselecteerd op basis van de kost van de laatste aantalRecentVerleden posities. De nauwkeurigheid wordt uitgezet in functie van deze parameter aantalRecentVerleden, zie Figuur 6.6b (opnieuw uitgemiddeld over de negen testpaden en overige instellingen zoals uit Tabel 6.3). In een inti¨ele fase van het algoritme, kunnen er natuurlijk maar zoveel posities uit het verleden in rekening worden gebracht als er locatieupdates zijn geweest. Simpel Viterbi Huidig Viterbi 20 18 18 16 16 nauwkeurigheid [m] nauwkeurigheid [m] Simpel Viterbi Huidig Viterbi 20 14 12 10 8 6 14 12 10 8 6 4 4 2 2 0 0 0 10 1 2 10 10 aantalPaden [−] (a) Invloed van aantalPaden 3 10 2 4 6 8 10 12 14 16 18 20 aantalRecentVerleden [−] (b) Invloed van aantalRecentVerleden Figuur 6.6: Invloed van geheugen op prestatie Vooral het Viterbi traject is afhankelijk van deze parameter omdat Viterbi Huidig steeds kan verspringen van traject en Simpel geen rekening houdt met het verleden. Vanaf dat er rekening 6.7 Sensitiviteitanalyse 37 wordt gehouden met de laatste 14 metingen om de nieuwe positie te bepalen, treedt er nog maar weinig verbetering meer op bij de nauwkeurigheid en spreiding van Viterbi. 6.7.5 Uitvoeringstijd De uitvoeringstijd wordt vooral bepaald door het aantal paden dat in het geheugen worden opgebouwd. Het gemiddeld aantal microseconden nodig voor het berekenen van een locatieupdate (terwijl alle andere paden in het geheugen eveneens verder worden opgebouwd) is uitgezet in functie van de parameter aantalPaden in Figuur 6.7. Zowel de x-as als de y-as hebben een logaritmische schaal. Aangezien in Sectie 6.7.4 al werd aangetoond dat 1000 paden ruimschoots volstaat, nemen we dit als bovengrens. Een locatieupdate met het ontwikkeld lokalisatiealgoritme neemt dan, op een laptop met Intel Core i7 3610QM 2.4 GHz processor en 4 GB DDR3-SDRAM geheugen, gemiddeld 345.02 µs in beslag, dit volstaat ruimschoots om in ware tijd te kunnen werken. De uitvoeringstijd bij het simpele algoritme wordt niet be¨ınvloed door aantalPaden en was uitgemiddeld over dezelfde negen testpaden gelijk aan 4.86 µs met een standaardafwijking van 0.83 µs. 2 uitvoeringstijd [µs] 10 1 10 0 10 0 10 1 10 2 10 3 10 aantalPaden [−] Figuur 6.7: Uitvoeringstijd in functie van de parameter aantalPaden 6.7.6 Sample rate en uitmiddeling De mobiele nodes zenden 10 beacons per seconde uit, met sample rate bedoelen we hier de parameter (sampleRate) die aangeeft aan welk tempo het lokalisatiealgoritme nieuwe input (metingen) te verwerken krijgt. Meer uitmiddeling resulteert in nauwkeurigere metingen maar ook minder snel een locatieupdate en dus ook grotere stappen tijdens het traject wat de prestaties 6.7 Sensitiviteitanalyse 38 opnieuw kan be¨ınvloeden. Aangezien er tijdens het afleggen van de testpaden continu wordt gewandeld is er ergens een sweet spot (een optimale zone dat een afweging is tussen meer locatieupdates en meer uitmiddeling). Er wordt getest met 10 verschillende waarden voor sampleRate en telkens wordt de nauwkeurigheid en spreiding berekend (zie Figuur 6.8). Vanaf een bepaalde waarde van sampleRate (bij constante waarde van maxSnelheid ) wordt de maximaleVerplaatsing kleiner dan 1 m (zie Sectie 3.3.3); aangezien de roosterpuntresolutie op 1 m staat, zal het algoritme vast komen te zitten op een bepaalde positie. Om deze reden wordt de maximaleVerplaatsing altijd op minstens 1 m ingesteld. De resultaten zijn uitgemiddeld over testpaden 1, 7 en 9 afgelegd met de mobiele WiFi node omdat hier de pakketten werden gelogd per 100 ms zodat er voldoende vrijheid is om sampleRate te kiezen (bij de ZigBee node werd er al voor het wegschrijven naar de databank, uitgemiddeld over 10 metingen oftewel 1 seconde). 12 Simpel Viterbi Huidig Viterbi nauwkeurigheid [m] 10 8 6 4 2 0 0 1 10 10 sample rate [s−1] Figuur 6.8: Invloed van sample rate en uitmiddeling op nauwkeurigheid De beste resultaten worden verkregen met de parameter sampleRate tussen 1s-1 en 2.5s-1 , dit komt overeen met een nieuwe input om de 0.4 tot 1 seconde (dus uitmiddeling over 4 tot 10 pakketten). Voor de werking in ware tijd kan het eerste de beste keuze zijn want er is dan iets minder vertraging, in omstandigheden met veel variatie op de metingen is het tweede waarschijnlijk de betere keuze want meer uitmiddeling. 6.7.7 Wandelsnelheid Een tragere wandelsnelheid laat een grotere uitmiddeling of meer locatieupdates toe. Om de invloed hiervan te onderzoeken werd testpad 9, tegen drie snelheden afgelegd (traag, normaal, snel) tegen respectievelijk: 0.67 m/s, 1.14 m/s en 1.74 m/s met uitmiddeling over: 1, 2, 5, 10 6.7 Sensitiviteitanalyse 39 en 20 pakketten. De resultaten zijn samengevat in Tabel 6.9. Om de grootte van de tabel te beperken wordt enkel de gemiddelde nauwkeurigheid van het ontwikkelde algoritme (Viterbi ) over het volledige traject weergeven (Simpel en Viterbi Huidig zijn achterwege gelaten). De parameter maxSnelheid wordt aangepast aan de wandelsnelheid: 1 m/s, 1.67 m/s en 2 m/s voor de drie wandelsnelheden respectievelijk. Tabel 6.9: Nauwkeurigheid en spreiding bij verschillende snelheden en uitmiddeling Uitmiddeling → 1 pakket 2 pakketten 5 pakketten 10 pakketten 20 pakketten Snelheid ([m/s]) ↓ N [m] S [m] N [m] S [m] N [m] S [m] N [m] S [m] N [m] S [m] traag (0.67) 2.77 1.65 2.62 1.66 2.28 1.42 2.91 1.48 2.99 1.76 normaal (1.14) 2.89 1.78 2.59 1.72 2.34 1.57 2.34 1.63 3.12 1.96 snel (1.74) 2.75 1.64 2.41 1.32 2.46 1.36 3.4 2.3 4.31 2.88 Bij traag wandelen wordt het beste resultaat verkregen bij een uitmiddeling over 5 pakketten, dus het lokalisatiealgoritme krijgt een nieuwe input om de halve seconde (want er worden 10 beacons gebroadcast per seconde). Bij normaal en snel wandelen scoren twee opties ongeveer even goed: uitmiddelen over 5 of 10 pakketten bij normaal wandelen en uitmiddelen over 2 of 5 pakketten bij snel wandelen. Bij uitmiddeling over 2 pakketten kan er sneller een update worden gegenereerd, waar snel wandelen dus een voordeel uit kan halen. De verschillen blijven wel zeer klein dus we kunnen stellen dat de wandelsnelheid maar weinig impact heeft op de prestaties van het lokalisatiealgoritme. 6.7.8 Zendvermogen Het maximale zendvermogen van de mobiele WiFi node is 23 dBm, bij een groter zendvermogen zullen meer vaste nodes het signaal oppikken. Het nadeel van een groter zendvermogen is dat de batterij sneller leeg gaat en dat andere gebruikers (die in dezelfde frequentieband opereren) meer interferentie zullen ervaren. Deze twee factoren hebben wel geen invloed op de prestatie van het lokalisatiealgoritme. Testtraject 9 werd zes keer afgelegd met een verschillend zendvermogen en de nauwkeurigheid en spreiding werden voor alle zendvermogens voor dezelfde scenario’s als in Sectie 6.7.3 onderzocht (zie Figuur 6.5). De resultaten worden samengevat in Tabel 6.10. Opnieuw wordt enkel de nauwkeurigheid en spreiding van Viterbi weergeven teneinde de grootte van de tabel te beperken. De verschillen zijn klein vanaf een zendvermogen van 5 dBm of meer, indien het energieverbruik dus in rekening wordt gebracht, is een zendvermogen van 5 dBm een goede keuze. Het 6.7 Sensitiviteitanalyse 40 Tabel 6.10: Nauwkeurigheid en spreiding bij verschillende zendvermogens en scenario’s Scenario → 1 2 3 4 5 Zendvermogen [dBm] ↓ N [m] S [m] N [m] S [m] N [m] S [m] N [m] S [m] N [m] S [m] 0 3.71 1.6 3.27 1.97 3.41 1.86 2.87 1.9 3.8 2.82 5 2.67 1.5 3.26 2.09 2.94 1.72 2.78 1.69 2.67 1.6 10 3.45 1.96 4.75 2.74 3.65 2.13 2.83 1.84 2.75 1.83 15 2.84 1.67 4.29 2.65 3.2 1.84 2.52 1.59 2.64 1.77 20 3.14 1.63 4.31 2.5 3.23 1.73 2.78 1.54 2.7 1.54 23 2.97 1.71 4.48 2.54 2.8 1.73 2.45 1.69 2.64 1.65 meest nauwkeurige resultaat wordt nog wel altijd verkregen met een zendvermogen van 23 dBm terwijl het grootste deel van de vaste nodes werken, maar verschillen blijven miniem. 6.7.9 Minimum padverlies Wanneer men zich exact onder een vaste node bevindt, zullen de padverliesmodellen −∞ voorspellen en zal deze locatie nooit als meest waarschijnlijke positie worden gekozen. Met de mobiele ZigBee node werd onder 5 vaste nodes gebroadcast om het minimale experimentele padverlies te bepalen, uitgemiddeld kwam dit neer op 47.1 dB (waarbij de ideale shift al is doorgevoerd). De nauwkeurigheid en spreiding werd voor alle testpaden, afgelegd met de mobiele ZigBee node, opnieuw berekend (met dezelfde instellingen uit Tabel 6.3) en vergeleken met het geval zonder ondergrens op de referentiepadverliezen (PLref ), zie Tabel 6.11. Tabel 6.11: Nauwkeurigheid en spreiding zonder en met ondergrens voor PLref Algoritme → Simpel Viterbi Huidig Viterbi Minimum PL ↓ N [m] S [m] N [m] S [m] N [m] S [m] Zonder ondergrens 2.94 3.32 2.83 1.94 2.26 1.44 Met ondergrens 2.89 3.29 2.67 1.85 2.31 1.46 Er is verbetering bij Simpel en Viterbi Huidig maar deze blijft wel miniem, dit is deels te verklaren door de roosterpuntresolutie van 1 m waardoor de kans al klein is dat het te traceren object zich exact onder een vaste node bevindt. 6.7.10 Kostfunctie In het lokalisatiealgoritme werd tot nu toe steeds de MSE tussen de gemeten en de referentiepadverliezen gebruikt als kostfunctie. Een andere mogelijkheid is het gemiddelde verschil in 6.7 Sensitiviteitanalyse 41 absolute waarde: ABS = N 1 X |P Lgem,n − P Lref,n | N (6.1) n=1 Hierbij is ABS de absolute waarde, N het totaal aantal metingen, PLgem,n het gemeten padverlies van een vaste node n en PLref,n het referentiepadverlies van een vaste node n. Nog een optie is om het verschil tussen het gemeten en het referentiepadverlies nog eens te delen door het padverlies zelf zodat metingen met een lager padverlies zwaarder door wegen: MSEgewogen N 1 X (P Lgem,n − P Lref,n ) 2 = N P Lgem,n (6.2) n=1 Hierbij is MSEgewogen de gewogen Mean Square Error en zijn de overige parameters hetzelfde als bij de absolute waarde als kostfunctie. De resultaten, uitgemiddeld over alle negen testpaden en met de instellingen van Tabel 6.3, kunnen worden teruggevonden in Tabel 6.12. Tabel 6.12: Nauwkeurigheid en spreiding voor verschillende kostfuncties Algoritme → Kostfunctie ↓ Simpel Viterbi Huidig Viterbi N [m] S [m] N [m] S [m] N [m] S [m] MSE 2.94 3.32 2.83 1.94 2.26 1.44 Absolute Waarde 3.15 3.44 2.89 1.96 2.24 1.39 Gewogen MSE 2.94 3.31 2.86 1.91 2.24 1.42 Het valt meteen op dat er geen significante verschillen zijn tussen deze 3 kostfuncties. 6.7.11 Open en gesloten deuren Tot nu toe werden alle deuren op het grondplan gemodelleerd als gesloten, uit hout gemaakte, deuren. Het grondplan kan nog worden aangepast aan de situatie tijdens het afleggen van de testpaden: deuren die open stonden, werden gemodelleerd met een 0 dB lijn voor accuratere predicties van de padverliezen. In deze sectie wordt de impact hiervan onderzocht, opnieuw door de gemiddelde nauwkeurigheid en spreiding van alle negen testpaden in de twee gevallen te berekenen (met de instellingen van Tabel 6.3). De resultaten staan samengevat in Tabel 6.13. Het aangepast grondplan heeft gemiddeld gezien een hogere nauwkeurigheid en spreiding maar het verschil blijft klein. 6.8 Globaal optimum 42 Tabel 6.13: Aangepast grondplan Algoritme → 6.8 Simpel Viterbi Huidig Viterbi Grondplan ↓ N [m] S [m] N [m] S [m] N [m] S [m] Gesloten deuren 2.94 3.32 2.83 1.94 2.26 1.44 Aangepast aan situatie 3.0 3.57 2.75 1.86 2.18 1.36 Globaal optimum Wanneer voor elke parameter de waarde wordt gekozen, die in de sensitiviteitsanalyse meest ideaal bleek, verkrijgen we de instellingen van in Tabel 6.14. Er wordt dus niet alleen naar de nauwkeurigheid gekeken maar ook naar de minimale uitvoeringstijd die deze nauwkeurigheid kan halen. De uiteindelijke nauwkeurigheid en spreiding (uitgemiddeld over alle testpaden) voor zowel het free-space als het WHIPP padverliesmodel en voor zowel de mobiele ZigBee als WiFi node staan samengevat in Tabel 6.15. De procentuele verbeteringen van Viterbi ten opzichte van Simpel en WHIPP ten opzichte van free-space, uitgemiddeld over de mobiele ZigBee en WiFi node, kunnen worden teruggevonden in Tabel 6.16. Tabel 6.14: Globaal optimale instellingen Instelling ZigBee WiFi maxSnelheid 1.67 m/s 1.67 m/s sampleRate 1 sample/s 2.5 sample/s minDistDoor 2m 2m aantalAPs 10 16 aantalPaden 100 100 aantalLevels 5 5 interDist 1m 1m minPL 47.1 dB 47.1 dB kostfunctie MSE MSE aangepast grondplan ja ja Zoals verwacht levert het ontwikkelde lokalisatiealgoritme zowel bij het WHIPP als free-space padverliesmodel betere resultaten op voor zowel de nauwkeurigheid als de spreiding, er is zelfs een verbetering van 59% bij deze laatste. Onderling is de verbetering ten opzichte van Simpel voor Viterbi groter dan deze van Viterbi Huidig, wat ook te verwachten was. Door gebruik te maken van het geavanceerde padverliesmodel (WHIPP) is er altijd verbetering van de nauwkeurigheid ten opzichte van het free-space padverliesmodel. Bij Viterbi en Viterbi 6.8 Globaal optimum 43 Tabel 6.15: Globaal optimum Algoritme → Padverliesmodel ↓ WHIPP free-space Simpel Viterbi Huidig Viterbi Mobiele node ↓ N [m] S [m] N [m] S [m] N [m] S [m] ZigBee 2.96 3.63 2.58 1.7 2.18 1.31 WiFi 3.38 3.13 2.45 1.69 2.2 1.46 ZigBee 3.45 3.4 3.04 1.87 2.61 1.5 WiFi 3.59 2.12 3.46 2.03 3.35 1.96 Tabel 6.16: Procentuele verbeteringen Verbetering van ↓ ten opzichte van ↓ bij ↓ Nauwkeurigheid [%] Spreiding [%] Viterbi Simpel WHIPP 31 59 Viterbi Simpel free-space 16 32 Viterbi Huidig Simpel WHIPP 20 50 Viterbi Huidig Simpel free-space 8 25 WHIPP free-space Viterbi 25 19 WHIPP free-space Viterbi Huidig 22 13 WHIPP free-space Simpel 10 -27 WHIPP + Viterbi free-space + Simpel ZigBee 37 61 WHIPP + Viterbi free-space + Simpel WiFi 39 31 Huidig verbetert ook de spreiding op de resultaten maar bij Simpel gaat deze er wel op achteruit. Maximale verbetering wordt verkregen bij het vergelijken van de combinatie van WHIPP als padverliesmodel met Viterbi als lokalisatiealgoritme ten opzichte van free-space met Simpel : 37 % nauwkeuriger en 61 % minder spreiding op deze nauwkeurigheid. TOEKOMSTIG WERK 44 Hoofdstuk 7 Toekomstig werk 7.1 RSSI alternatieven De principes waarop het algoritme gebaseerd zijn, staan los van de gebruikte rangingtechniek. Zoals reeds aangehaald in Sectie 2.1.1, kan in de plaats van RSSI ook (D)ToA, (D)AoA of een hybride techniek worden gebruikt. De fingerprintdatabase zal eveneens moeten worden aangepast aan de gebruikte rangingtechniek, dus het behaalde voordeel met het WHIPP padverliesmodel valt weg. Maar voor de meeste rangingtechnieken zijn er wel padverliesmodellen beschikbaar. 7.2 ZigBee en WiFi alternatieven Vooral UWB lijkt veelbelovend om de nauwkeurigheid van indoorlokalisatiesystemen op te drijven. Net zoals hierboven reeds het geval was, is de werking van het algoritme ook onafhankelijk van de gebruikte draadloze technologie. Het testen op een testbed met ondersteuning voor deze nieuwe technologie¨en lijkt dan ook veelbelovend. 7.3 A-priori kennis Tot nu toe werd het verleden van een traject gebruikt om de meest waarschijnlijke sequentie van locaties en eveneens een realistisch traject te bepalen. Wanneer men beschikt over voldoende data van waarschijnlijke trajecten, kan men hier distributies voor modelleren en kan het verleden van het huidige traject hieraan worden gematcht. Deze (statistische) a-priori kennis kan dan bijvoorbeeld gewogen in rekening worden gebracht, om zo de nauwkeurigheid van de voorspelling te verbeteren. 7.4 Ruis en outlierfiltering 7.4 45 Ruis en outlierfiltering Aangezien het verleden van een traject beschikbaar is, kan men nieuwe meetwaarden vergelijken met deze uit de fingerprintdatabase die overeenkomen met de laatste locatie. Wanneer het verschil tussen deze twee een bepaalde threshold overschrijdt, is de kans groot dat het om een outlier of een met ruis behepte meting gaat. Vervolgens kan er minder belang worden gehecht aan deze meting of kan deze zelfs compleet worden genegeerd indien er voldoende andere metingen beschikbaar zijn. Indien de vorige locatie niet overeenkwam met de werkelijkheid, werkt deze manier van filtering natuurlijk averechts, dus het algoritme kan best eerst stabiliseren en dan na een bepaald aantal tijdstappen kan deze techniek worden ingeschakeld. 7.5 Meerdere verdiepingen Het ontwikkelde lokalisatiealgoritme is enkel ge¨ımplementeerd voor de werking op ´e´en verdieping maar kan makkelijk worden uitgebreid naar alle verdiepingen van een gebouw. Tot nu toe werden de deuren gebruikt om de overgang tussen twee kamers te verwezenlijken, de locatie van een lift kan deze werking overnemen voor naar een andere verdieping te gaan. Bijkomend kunnen ook de vaste nodes van meerdere verdiepingen tegelijk worden gebruikt, zodat er meer metingen beschikbaar zijn en de prestaties verder kunnen worden verbeterd. 7.6 Inbedding in indoornavigatiesysteem Om het ontwikkelde lokalisatiealgoritme echt tot zijn nut te laten komen, kan het worden ingebed in een indoornavigatiesysteem dat bijvoorbeeld compatibel is met een smartphone. De smartphone zal dan de rol van tracking en processing device op zich nemen, dus zowel het zenden van beacons als het verwerken van de data. Met het ontwikkelde algoritme kan dan de beste huidige locatie worden bepaald om zo instructies te kunnen geven aan de gebruiker om te navigeren naar een opgegeven plaats in het gebouw. Indien dit teveel zou eisen van de batterij van de smartphone, kan er ook voor worden geopteerd om bijvoorbeeld een extern tracking device te gebruiken en de smartphone enkel als thin client aan te wenden waarbij het ontwikkelde algoritme op een server draait en locatieupdates of navigatie instructies via een mobiele applicatie naar de gebruiker kunnen worden gestuurd. Indien dit zou werken, kan het eveneens worden gebruikt om data te loggen om zo distributies te modelleren van waarschijnlijke trajecten die dan kunnen worden gebruikt om de voorspelling te verbeteren zoals vermeld in Sectie 7.3. CONCLUSIE 46 Hoofdstuk 8 Conclusie In deze masterproef werd een indoorlokalisatiesysteem ontwikkeld dat in ware tijd werkt. Door het verleden van een traject in rekening te brengen, kunnen de prestaties van een (willekeurig) lokalisatiealgoritme worden verbeterd, zowel de nauwkeurigheid als de spreiding. Verder werd er aangetoond dat het ontwikkelde lokalisatiealgoritme ook robuuster is tegen variaties op de metingen ten opzichte van een standaard lokalisatiesysteem en dat er met een beperkt aantal vaste nodes in een gebouw al een goede nauwkeurigheid kan worden behaald, dit is interessant om de installatiekosten te beperken. Een ander voordeel is dat er voor het opzetten van het indoorlokalisatiesysteem in een (nieuw) gebouw maar weinig extra tweaking nodig is, zodat het snel toepasbaar is. Het eenmalig kalibreren van de padverliezen volstaat, wel is er nood aan een (gedetailleerd) grondplan. In een uitgebreide sensitiviteitsanalyse werd de invloed van alle parameters op de prestaties onderzocht, zodat voor een zekere toepassingen bepaalde afwegingen eenvoudig kunnen worden gemaakt. Naast het in rekening brengen van het verleden van een traject werd ook voor gezorgd dat de geconstrueerde paden realistisch (fysisch mogelijk) zijn, door gebruik te maken van de omgeving en een maximale snelheid waarmee een te traceren object zich kan voortbewegen. Bovendien biedt de werking in ware tijd, de mogelijkheid om het ontwikkelde indoorlokalisatiesysteem te inbedden in een navigatiesysteem. BIBLIOGRAFIE 47 Bibliografie [1] Nicolas Amiot, Meriem Mhedhbi, Stphane Avrillon, and Bernard Uguen. Pylayers: An indoor propagation tool for studying localization in wban context. http://www.pylayers. org, 2014. [2] Richa Bharadwaj, Clive Parini, and Akram Alomainy. Indoor tracking of human movements using uwb technology for motion capture, 2014. [3] Stefan Bouckaert. Design and evaluation of a self-configuring wireless mesh network architecture. PhD thesis, Ghent University, 2010. [4] Stefan Bouckaert, Wim Vandenberghe, Bart Jooris, Ingrid Moerman, and Piet Demeester. The w-ilab. t testbed. In Testbeds and Research Infrastructures. Development of Networks and Communities, pages 145–154. Springer, 2011. [5] Andrea Conti, Matteo Guerra, Davide Dardari, Nicolo Decarli, and Moe Z Win. Network experimentation for cooperative localization. Selected Areas in Communications, IEEE Journal on, 30(2):467–475, 2012. [6] Moteiv Corporation. Ultra low power ieee 802.15.4 compliant wireless sensor module. http: //www.crew-project.eu/sites/default/files/tmote-sky-datasheet.pdf, 2006. [7] Vinko Erceg, Larry J Greenstein, Sony Y Tjandra, Seth R Parkoff, Ajay Gupta, Boris Kulic, Arthur A Julius, and Renee Bianchi. An empirically based path loss model for wireless channels in suburban environments. Selected Areas in Communications, IEEE Journal on, 17(7):1205–1211, 1999. [8] Sinan Gezici, Zhi Tian, Georgios B Giannakis, Hisashi Kobayashi, Andreas F Molisch, H Vincent Poor, and Zafer Sahinoglu. Localization via ultra-wideband radios: a look at BIBLIOGRAFIE 48 positioning aspects for future sensor networks. Signal Processing Magazine, IEEE, 22(4):70– 84, 2005. [9] Akis Kokkinis, Marios Raspopoulos, Loizos Kanaris, Antonio Liotta, and Stavros Stavrou. Map-aided fingerprint-based indoor positioning. In Personal Indoor and Mobile Radio Communications (PIMRC), 2013 IEEE 24th International Symposium on, pages 270–274. IEEE, 2013. [10] Hui Liu, Houshang Darabi, Pat Banerjee, and Jing Liu. Survey of wireless indoor positioning techniques and systems. Systems, Man, and Cybernetics, Part C: Applications and Reviews, IEEE Transactions on, 37(6):1067–1080, 2007. [11] Paul Meissner, Erik Leitinger, Manuel Lafer, and Klaus Witrisal. Real-time demonstration of multipath-assisted indoor navigation and tracking (mint), 2014. [12] David Munoz, Frantz Bouchereau Lara, Cesar Vargas, and Rogerio Enriquez-Caldera. Position location techniques and applications. Academic Press, 2009. [13] David Plets, Wout Joseph, Kris Vanhecke, Emmeric Tanghe, and Luc Martens. Coverage prediction and optimization algorithms for indoor environments. EURASIP Journal on Wireless Communications and Networking, 2012(1):1–23, 2012. [14] Alessandro Polo, Federico Viani, Enrico Giarola, Giacomo Oliveri, Paolo Rocca, and A. Massa. Semantic wireless localization enabling advanced services in museums, 2014. [15] Zoltan Szalay and Lajos Nagy. Indoor localization using ism band radio modules, 2013. [16] Andrew J Viterbi. Error bounds for convolutional codes and an asymptotically optimum decoding algorithm. Information Theory, IEEE Transactions on, 13(2):260–269, 1967. [17] Xinwei Wang, Ole Bischoff, Rainer Laur, and Steffen Paul. Localization in wireless ad-hoc sensor networks using multilateration with rssi for logistic applications. Procedia Chemistry, 1(1):461–464, 2009. [18] Klaus Witrisal and Paul Meissner. Performance bounds for multipath-assisted indoor navigation and tracking (mint). In Communications (ICC), 2012 IEEE International Conference on, pages 4321–4325. IEEE, 2012. LIJST VAN FIGUREN 49 Lijst van figuren 3.1 Grondplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2 Roosterpuntresolutie van 1 m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.3 Eenvoudig voorbeeld Viterbi principe . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.4 Realistischer traject door toevoegen midden deur . . . . . . . . . . . . . . . . . . 11 3.5 Mogelijke volgende posities bij een bepaalde maxSnelheid en sampleRate . . . . . 12 3.6 Extra beginposities toevoegen voor robuustheid tegen foute initi¨ele predictie . . . 13 5.1 Derde verdieping van het w-iLab.t testbed . . . . . . . . . . . . . . . . . . . . . . 20 5.2 Mobiele nodes (links WiFi, rechts ZigBee en batterij) . . . . . . . . . . . . . . . . 21 5.3 Visualisatie van de drie soorten trajecten . . . . . . . . . . . . . . . . . . . . . . 23 6.1 Testpaden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6.2 Visualisatie van testpad 1 onder verschillende omstandigheden (links Simpel, rechts Viterbi ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.3 Invloed van ruis op nauwkeurigheid (simulatie) . . . . . . . . . . . . . . . . . . . 33 6.4 Sensitiviteitsanalyse van aantalAPs . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.5 Scenario’s met verschillend aantal werkende vaste nodes uit het testbed . . . . . 35 6.6 Invloed van geheugen op prestatie . . . . . . . . . . . . . . . . . . . . . . . . . . 36 6.7 Uitvoeringstijd in functie van de parameter aantalPaden . . . . . . . . . . . . . . 37 6.8 Invloed van sample rate en uitmiddeling op nauwkeurigheid . . . . . . . . . . . . 38 LIJST VAN TABELLEN 50 Lijst van tabellen 2.1 Rangingtechnieken en draadloze technologie¨en . . . . . . . . . . . . . . . . . . . . 4 4.1 Parameterwaarden one-slope padverliesmodel . . . . . . . . . . . . . . . . . . . . 17 4.2 Parameterwaarden TGn padverliesmodel . . . . . . . . . . . . . . . . . . . . . . . 18 4.3 Uitvoeringstijden offline-fase voor alle padverliesmodellen . . . . . . . . . . . . . 19 5.1 Ideale shift voor de vier padverliesmodellen . . . . . . . . . . . . . . . . . . . . . 22 5.2 Verklaring types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6.1 Eigenschappen testpaden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 6.2 Vergelijking vier padverliesmodellen . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.3 Instellingen lokalisatiealgoritme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.4 Vergelijking ZigBee met WiFi als draadloze technologie . . . . . . . . . . . . . . 28 6.5 Combinatie ZigBee en WiFi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.6 Nauwkeurigheid en spreiding van de visualisaties uit Figuur 6.2 . . . . . . . . . . 31 6.7 Reproduceerbaarheid van de resultaten . . . . . . . . . . . . . . . . . . . . . . . . 31 6.8 Nauwkeurigheid en spreiding voor de verschillende scenario’s . . . . . . . . . . . 36 6.9 Nauwkeurigheid en spreiding bij verschillende snelheden en uitmiddeling . . . . . 39 6.10 Nauwkeurigheid en spreiding bij verschillende zendvermogens en scenario’s . . . . 40 6.11 Nauwkeurigheid en spreiding zonder en met ondergrens voor PLref . . . . . . . . 40 6.12 Nauwkeurigheid en spreiding voor verschillende kostfuncties . . . . . . . . . . . . 41 6.13 Aangepast grondplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 6.14 Globaal optimale instellingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 6.15 Globaal optimum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.16 Procentuele verbeteringen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
© Copyright 2024 ExpyDoc