Faculty of Media Engineering and Technology
German University in Cairo
WiGuide: Indoor System for LBS
Bachelor Thesis
Author: Ahmed Ali Sabbour
Supervisor: Prof. Dr. Amal Elnahas
July, 2007
WiGuide: Indoor System for LBS
Declaration
I declare that this thesis comprises only my original work toward the BachelorDegree. Information derived from the published and unpublished work of others hasbeen acknowledged in the text and a list of references is given.
Ahmed Ali SabbourJuly 11, 2007
ii
WiGuide: Indoor System for LBS
Abstract
The rapid advances in wireless technology as well as in the manufacturing of portable
devices caused a growing interest in location aware services. A location sensing
system responsible for locating a mobile user, is a crucial factor for the success of
such services. With the prevalence of wireless hotspots and wireless area networks,
the use of a wireless network infrastructure as basis for an indoor positioning system
becomes a viable option.
In this work, we propose an indoor guide system that provides information about
points of interest and objects within the vicinity of the user. Our system can be
deployed on a university campus or inside a museum equipped with a wireless net-
work. The system uses the fingerprinting technique to associate position dependent
information such as the strength of the received signal with a location.
A range based matching algorithm for matching the physical signal strength
with the fingerprints in the database is used and its performance is compared to an
Euclidean distance based matching algorithm. The properties of the wireless signals
and their distribution under several controlled experiments are analyzed.
iii
Contents
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Objectives and challenges . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Thesis organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 Indoor localization . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1.1 Trilateration . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1.2 Angulation . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.1.3 Scene analysis and Fingerprinting . . . . . . . . . . . 10
2.1.1.4 Proximity . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.2 Outdoor localization . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.2.1 Global Positioning System . . . . . . . . . . . . . . . 12
2.1.2.2 Cellular Networks . . . . . . . . . . . . . . . . . . . 14
2.2 Technologies and related applications . . . . . . . . . . . . . . . . . . 14
2.2.1 Examples of indoor localization systems . . . . . . . . . . . . 14
2.2.1.1 ActiveBadge (infrared) . . . . . . . . . . . . . . . . . 14
2.2.1.2 Cricket (ultrasonic) . . . . . . . . . . . . . . . . . . . 15
2.2.1.3 EasyLiving (scene analysis) . . . . . . . . . . . . . . 15
2.2.1.4 SpotON (radio frequency) . . . . . . . . . . . . . . . 15
2.2.2 Indoor tour guide systems . . . . . . . . . . . . . . . . . . . . 15
2.2.2.1 Cyberguide . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.2.2 Marble Museum . . . . . . . . . . . . . . . . . . . . 16
2.2.2.3 IrReal . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.2.4 Hippie . . . . . . . . . . . . . . . . . . . . . . . . . . 18
iv
3 WiGuide design and implementation . . . . . . . . . . . . . . . . . 19
3.1 Localization approach . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 WiGuide design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.1 Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.2 Wireless signal acquisition . . . . . . . . . . . . . . . . . . . . 31
3.2.3 Message passing protocols . . . . . . . . . . . . . . . . . . . . 31
3.2.4 Fingerprinting algorithm . . . . . . . . . . . . . . . . . . . . . 33
3.2.5 Matching algorithm . . . . . . . . . . . . . . . . . . . . . . . . 36
3.2.5.1 Range based matching . . . . . . . . . . . . . . . . . 37
3.2.5.2 Euclidean distance matching . . . . . . . . . . . . . . 38
3.2.6 Location presentation . . . . . . . . . . . . . . . . . . . . . . . 39
4 Conclusion and Future Work . . . . . . . . . . . . . . . . . . . . . . 40
Appendix A Screenshots . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
A.1 Client interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
A.2 Fingerprinter interface . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Appendix B Installation instructions . . . . . . . . . . . . . . . . . . . 46
B.1 Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
B.1.1 Installation of the NDIS driver . . . . . . . . . . . . . . . . . . 46
B.1.2 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
B.2 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
B.2.1 Installation of Abyss web server and configuration of PHP . . 47
B.2.2 Installation of Oracle 10g XE and running the Database . . . 47
B.2.3 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
B.3 Running . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
v
Acknowledgments
I would like to thank all of the people who made it possible for me to finish this
thesis. I would like to express my gratitude to my supervisor Prof. Dr. Amal
Elnahas for her continuous support and guidance throughout the duration of the
project. I would also like to thank my friends and colleagues, specially Raed Rizk,
for being there and providing me with moral support. Finally, I would like to thank
my family, for helping me getting good education and for being supportive and
patient.
vi
List of Figures
2.1 Location Based Services applications. . . . . . . . . . . . . . . . . . . 4
2.2 Location Based Service components . . . . . . . . . . . . . . . . . . . 6
2.3 Triangulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Classification of outdoor localization technologies . . . . . . . . . . . 13
3.1 Effect of sampling period on the distribution of the signals from access
point xA7C8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Effect of the number of access points on probability of correct location
estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 Effect of user presence. AP: xA7C8 . . . . . . . . . . . . . . . . . . . 23
3.4 Coverage of an Omnidirectional antenna . . . . . . . . . . . . . . . . 24
3.5 Experiment location . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.6 Experiment setup of orientation. AP: xA7C8 . . . . . . . . . . . . . 25
3.7 Effect of user orientation while parallel to antenna. AP: xA7C8 . . . 26
3.8 Effect of user orientation while perpendicular to antenna. AP: xA7C8 26
3.9 Relation between the average signal strength and the signal distribution 27
3.10 Client-Server architecture of the system . . . . . . . . . . . . . . . . . 28
3.11 Database ERD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.12 The fingerprinting algorithm . . . . . . . . . . . . . . . . . . . . . . . 34
3.13 Determining the group leader . . . . . . . . . . . . . . . . . . . . . . 35
3.14 Calculating the unfiltered range . . . . . . . . . . . . . . . . . . . . . 36
3.15 Calculating the filtered range . . . . . . . . . . . . . . . . . . . . . . 37
3.16 The client side of the matching algorithm . . . . . . . . . . . . . . . . 38
A.1 Location in progress . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
A.2 Services associated with the room . . . . . . . . . . . . . . . . . . . . 42
A.3 Location of the room on the map . . . . . . . . . . . . . . . . . . . . 42
A.4 Adding/Removing buildings . . . . . . . . . . . . . . . . . . . . . . . 43
A.5 Adding/Removing rooms . . . . . . . . . . . . . . . . . . . . . . . . . 44
A.6 Adding/Removing services . . . . . . . . . . . . . . . . . . . . . . . . 44
A.7 Setting location of a room on the map . . . . . . . . . . . . . . . . . 45
vii
A.8 Fingerprinting of rooms . . . . . . . . . . . . . . . . . . . . . . . . . 45
viii
Chapter 1
Introduction
This thesis presents an indoor location based system that provides users with location
sensitive information. The motivation, objectives and the challenges addressed in
order to achieve the desired results are outlined in the following sections.
1.1 Motivation
With the rapid advances in wireless telecommunication and portable devices tech-
nologies, the need for smart applications that could offer personalized services to
the mobile users has attracted a lot of research interest in the past few years. This
interest has led to the development of a range of services called “Location Based
Services”. Location based services are aimed at making use of geospatial location
information as well as user context in order to provide the end-user with useful per-
sonalized information. Several usage trends have been observed in location based
services among which emergency services, information services, tracking services and
entertainment services where the most general.
Nevertheless, most of the previous implementations of location based services
focused on outdoor localization and outdoor services due to the widespread use of
GPS systems. Only a few, discussed in Chapter 2, addressed indoor localization.
Those systems that could locate users indoors relied on installing sensor networks
and other options that increased the cost of system deployment. With the prevalence
of wireless LAN infrastructure as well as the ever decreasing cost of wireless access
points, the use of wireless access points as a basis for location determination becomes
an attractive option.
1
CHAPTER 1. INTRODUCTION 2
1.2 Objectives and challenges
The primary aim of this project is to design a system that would be able to locate
mobile users in an indoor environment as well as provide them with location sensitive
information in the most efficient and cost effective way. The proposed system could
be deployed in multiple applications. Inside a museum, for example, tourists carrying
a PDA and moving inside the museum sections, would be able to know what kind
of art is present in the section they are standing in. Another example would be new
students visiting a campus. Students moving with their PDAs or laptops would be
able to determine where the nearest food outlets or copy centers are.
We based our localization system on a fingerprinting approach, where a finger-
print database is generated for the selected location. This fingerprint database con-
sists of the measured signal strength at different locations. A user’s signal strength
is measured and compared against the database in order to find the location.
To be able to realize that aim, the project is subdivided into several goals:
� Creating an application that provides administrators with means to add new
buildings, rooms and services through an intuitive interface. Developing an
algorithm to generate the fingerprints of a location and providing the admin-
istrators with a tool to allow rapid fingerprinting of locations.
� Creating a server that could handle multiple clients simultaneously.
� Streamlining the client application for easy deployment on devices with limited
processing power.
� Developing an algorithm to match a location to a fingerprint.
The measurement and collection of the wireless signals in different locations im-
poses many challenges such as the instability of the wireless signal and its lognormal
Gaussian distribution, the granularity of the system and its effect on the accuracy
and the effect of user orientation on the signals collected. These challenges are
analyzed in detail in Chapter 3.
1.3 Thesis organization
The thesis is organised as follows.
In chapter 2, location based services and their components are discussed. A
survey of the current location matching technologies with the focus on indoor po-
sitioning techniques is presented. In addition, different applications proposed for
indoor tour guide systems are viewed.
CHAPTER 1. INTRODUCTION 3
The system implementation including different algorithms used are discussed in
chapter 3.
Finally, in chapter 4, the conclusion and suggestions for possible future enhance-
ments are presented.
Chapter 2
Background
Several usage trends have been observed in location based services among which
emergency services, information services, tracking services and entertainment ser-
vices where the most general. Emergency services usage include providing the user
with recent security alerts and public safety announcements such as earthquake and
hurricane warnings. Information services usage include providing the user with the
latest news, sports results, weather forecasts, stock quotes as well as routing as-
sistance. Tracking services involve asset, fleet and logistic monitoring in addition
to individual person tracking [1]. The anatomy of different location based services
applications presented in [2], are shown in Figure 2.1.
Figure 2.1: Location Based Services applications.
A location based service system involves four enabling technologies as Figure 2.2
depicts [2]. The user device is the component by which the user requests information
4
CHAPTER 2. BACKGROUND 5
and views the resulting services. It acts as a method to interface between the user of
the service and the service itself. It could be any mobile device such as a smartphone,
a PDA, a laptop or a tablet PC. Depending on the portability, any of those devices
could perform this function. For example, a PDA or a mobile phone may prove to be
the most portable device but this could result in sacrificing some of the information
that could be presented due to the limited battery and processing power these
devices might have. On the other hand, a laptop could be very un portable (in
case of performing an on-foot tour, for example), but can make up for this with the
ability to display large maps.
The content provider is an entity which provides services and information based
on the given location of a user. This provider might be implemented specifically for
the purpose of the system, such as in the case of a campus or museum guide. In
other cases, it can be a more generic one such as Yellow Pages, providing users with
information added through third party content providers.
The network component is a crucial part of the system because it is the back-
bone of information delivery and data transmission between the user device and the
content provider. The communication network through which the user is connected
to the service provider affects the amount of data that could be transferred to the
user. If the user is using a WiFi Wireless network, then it would be safe to assume
that the user is on a high bandwidth network and probably a low cost one. On the
other hand, if the user is connected through a cellular network like GPRS , then the
cost of data transfer should be taken into account as well as the limited bandwidth
availability.
Every location based service system involves a positioning component of some
sort. The positioning component, also known as localization component, is responsi-
ble for locating the user at any time.Depending on the intended usage of the system,
the system could resort to positioning using several technologies including using the
mobile network, GPS, WLAN, radio beacons and active badges as will be discussed
in the following sections.
2.1 Localization
Localization process involves several issues and characteristics that need to be de-
fined before we can start discussing the several approaches. Each approach maybe
suitable in one application over the other. According to the following comparison
criteria, a choice regarding which location-sensing system could be chosen would be
made.
CHAPTER 2. BACKGROUND 6
Figure 2.2: Location Based Service components
Physical Position and Symbolic Location Physical position is the position ob-
tained from the system using physical co-ordinates such as those obtained from
a GPS device. The GPS device usually provides the user with co-ordinates in
the form of lateral and longitudinal degrees as well as altitude with respect
to the sea. On the other hand, a symbolic location is a location that has a
meaning in its context. For example, a symbolic location system could inform
users that they are in the living room instead of giving them co-ordinates.
Usually, a physical positioning system can provide the co-ordinates to another
interface that would query a database of symbolic locations in order to emulate
a symbolic location system [3].
Absolute vs. Relative In an absolute positioning system, if two mobile devices
are located at the same spot, their position will be the same (for example, in a
GPS system). On the other hand, if a relative positioning system is used, the
device will report its location with respect to a specific reference point or in
case of locating other devices, with respect to itself. As the case with physical
position and symbolic location, either systems; absolute or relative, can be
augmented to simulate the other, though with limited success [3]. In case of
an absolute positioning system, the system could emulate relative positioning
by searching for a reference point and modifying the reported location to be
with respect to that reference point. In case of relative positioning, one could
use the knowledge of the position of other reference points in order to determine
the absolute location.
Location Computation The location computation parameters defines whether
the client is the one that calculates the location using a specific algorithm
or that it is a centralized server that manages this calculation. This choice
would depend upon the size as well as the designated power consumption of
CHAPTER 2. BACKGROUND 7
the client. If the client computes its location (for example using triangulation
from GPS signals), it would need to have sufficient computational power in
order to calculate its position in adequate time. This computational power
would translate as more electronic power consumption. On the other hand, a
device that relies on an external server to locate it by broadcasting a beacon
signal or receiving the locations directly from the server would not need much
computational power but would mean that the server would have to undertake
more responsibilities which might affect the number of clients that could be
served simultaneously. On another note, having the server compute the clients’
locations and possibly saving them raises privacy concerns [4].
Accuracy and Precision Accuracy represents how much is the location deviated
from the actual position. Precision is the percentage of time the system is able
to determine the location and achieve the specified accuracy. Both accuracy
and precision are important when determining the effectiveness of a specific
positioning system. Depending on the intended application, a 50m accurate
system might be sufficient, for example in an outdoor city tour guide. In con-
trast, the same system might not be effective at all if the intended application
was indoor positioning since this 50m window of error is simply too large that
it might span the whole building. New research is directed towards the use of
information from several sources by aggregating them into a statistical model
in effort to increase both the accuracy and precision of the system.
Responsiveness and Latency For the application to be productive, it has to be
responsive which means that the location of the user would have to be calcu-
lated in real-time. This can sometimes pose a challenge because if the user
device was to rely on the server for location calculation, there might be some
latency when obtaining the information due to the effects of network prop-
agation delays. The other option of letting the device calculate its position
might also prove challenging since the device might not have enough processing
power in order to calculate the information in real time [5].
In general, localization techniques can be broadly classified into 2 main categories:
indoor and outdoor.
2.1.1 Indoor localization
Several interesting location-aware applications for indoor environments are emerging
in the research fields [5]. Some of the examples are as follows.
Asset tracking and monitoring of objects such as projectors for ease of finding
as well as theft protection.
CHAPTER 2. BACKGROUND 8
People tracking inside a facility, like doctors in a hospital to quickly route the
nearest doctor to emergencies.
Shopping assistance in shopping malls by giving the users the ability to find the
locations of specific items in stores as well as displaying information about
those items such as the price and where is the cheapest place to get them.
Museum guide systems that inform the visitors of a museum with the location
of the various attractions as well as providing specific information about those
attractions once the user is near them.
The common factor in the above applications is that they are mostly indoor
applications thus, they need an efficient indoor localization algorithm in order to
function properly. Several indoor localization techniques have been developed such
as [6–10]. The following section presents one of the possible classifications of the
different techniques that can be used in localization as well as their implementations.
2.1.1.1 Trilateration
Trilateration falls under the category of Triangulation where the geometric proper-
ties of triangles are used to compute the objects’ locations. The lateration technique
works by measuring the distance to three distinct non-collinear reference points from
the object of interest X and then applying a triangulation algorithm to obtain the
position of the object. The triangulation algorithm is achieved by drawing a circle
of radius d which centered at the reference point, where d is the measured distance
from the access point to the object of interest at X. Using three access points, three
circles could be drawn which would intersect at a point X. This point would indi-
cate the location of the user. [11]. In order to measure such distance, three general
approaches exist.
a) Direct
This method involves physically measuring the distance between the mobile
object and three different reference points which is infeasible and inapplicable
to the applications of indoor positioning. It generally involves robots that
measure the distances through extension of probes.
b) Time-of-flight
Time-of-flight works by recording the time it takes for a signal to propagate
from a transmitter to a receiver at a known velocity. Since this method in-
volves time measurement, a specific clock resolution must be attainable by the
CHAPTER 2. BACKGROUND 9
Figure 2.3: Triangulation
system according to the timing technology used. Ultrasound based systems
[10][8], do not require a very good resolution as the waves travel at the speed of
sound so the differences to be measured are usually in the milliseconds range.
On the other hand, systems using RF Signals [12] such as WLAN and Blue-
tooth would need to have a much higher clock resolution since radio waves
travel at the speed of light so the time difference is usually in the nanosecond
range which is 6 times less in the order of magnitude than the ultrasound
based technologies [3].
According to the timing technology, two systems for measuring the time-of-
flight exist. In the first one, which could be used with ultrasound, the devices
must have highly accurate synchronized clocks so that the difference in the
time of transmission of the signal and the time of its arrival at the other end
can be measured and converted into a distance. For the other system that can
be used with WLAN, a method based on round trip time is used where the
sender sends a signal and expects a reply. The time it takes for receiving the
reply implies the distance between the two nodes [10]. This system overcomes
the need for an accurately synchronized clock because the sender’s clock would
only need to be accurate enough for it to measure the round trip time.
A challenge that has to be faced when using the time-of-flight method is how
the receiver could distinguish between the direct pulses and pulses arriving
after reflecting off objects in the environment, specially that they look identical
to the receiver. Such reflecting pulses would have traveled a longer path and
CHAPTER 2. BACKGROUND 10
hence have a longer time-of-flight which would imply to the receiver that the
sender is further away than the actual distance resulting in a reduced accuracy.
Some implementations such as [10] make use of statistical analysis and analysis
of the reflective properties of the environment to prune some of the pulses
which are reflected, resulting in improved accuracy [3]. Some of the systems
that are based on the time-of-flight method include GPS[13], ActiveBat[10],
Cricket[8], Bluesoft[14] and PulsON[15].
c) Attenuation
The intensity of the emitted signal is inversely proportional to the square of
the distance from the source. Using this relation and given the signal strength
at the source, the measured signal strength could be used to estimate the dis-
tance of the object from the source. Measuring the distance using attenuation
is usually less accurate than using time-of-flight specially in environments with
many obstructions which cause a lot of signal reflection [12].
2.1.1.2 Angulation
In angulation, angles instead of distances are used to determine the location of
an object. To compute the position, two angle measurements in addition to one
length measurement between the two reference points are required. Using an array
of multiple phased antennas with a known distance between them, by measuring
the phase shift angle between the signal arriving at the first antenna and the signal
arriving at the second antenna and given the differences in arrival time and the
geometry of the array, the system can compute the angle from which the transmission
was emitted [3].
2.1.1.3 Scene analysis and Fingerprinting
The scene analysis technique depends on analyzing the “scene” to obtain features
that are easily compared and represented. A scene can be described either by images
for the location or by the signal strength at that location. In static scene analysis,
the observed features are looked up in the database that maps objects to locations.
In differential scene analysis, the difference between successive scenes is tracked [3].
Those differences will imply that the user has moved. If features are known to be
at specific locations, the observer can compute its location relative to them. The
advantage of such system is that it can act independently from an external server
by storing the database locally which means that less power is required for data
transmission and the privacy of the user could be maintained. The disadvantages
CHAPTER 2. BACKGROUND 11
include the need for a pre-built lookup database of the features that might need to
be rebuilt if the features of the scene change.
Fingerprinting is a type of scene analysis. Usually, the fingerprinting approach
consists of two stages.
� The first stage is the calibration stage. At specific points called reference
points within the environment, the signal strength, along with other parame-
ters such as the signal to noise ratio at each point is recorded and saved in a
database. For the fingerprinting database to be accurate, a significant number
of reference points should be made available which increases the time needed
for the calibration phase [11].
� The second phase which is the actual positioning phase where the object mea-
sures the signal strength at its current position and then, using a matching
algorithm, the measured signal is matched with vales stored in the database in
order to obtain an approximation on the user’s current position. The matching
could be done on the client side which requires that the database of finger-
prints is stored locally, thus increasing the storage and memory requirements
on the client. The other option is matching on the server side which increases
the load on the server and possibly the load on the network.
The algorithm by which the location of a user could be determined could either
be deterministic [6][16] or probabilistic [17][18]. The deterministic method is a
straightforward method where the average signal strength received from each
access point is measured at the location to be identified and the result is stored
as a “fingerprint” which is a vector
~F = (f1, f2, ..., fN)
consisting of N readings f where each reading consists of an access point identi-
fier and a minimum and maximum Received Signal Strength Indicator (RSSI)
value. When matching, the Euclidean distance
distance =
√√√√ n∑i=1
(ri − fi)2
between the actual reading vector ~R and each fingerprint vector ~F stored in the
database is calculated. The fingerprint that generates the minimum Euclidean
distance is considered the best match [19].
CHAPTER 2. BACKGROUND 12
On the other hand, the probabilistic approach using Bayesian probability
works by defining the fingerprint as a likelihood function where the proba-
bility of a being at a location observing a fingerprint is given by the equation
p(l|f) =p(f |l)p(l)
p(f)
is calculated [17][20]. Using the probabilistic approach requires choosing a
likelihood function p(f |l) as well as having pre knowledge of the wireless sig-
nal propagation model of the environment. The probabilistic approach yields
better results in terms of accuracy [11][21].
2.1.1.4 Proximity
The proximity technique is useful in knowing whether an object is near a specific
location rather than knowing the exact location. One type of proximity detection
relies on the presence of physical proximity detectors such as pressure pads. Another
type of proximity detection relies on the usage of automatic ID systems such as ATM
machines or point-of-sale credit card machines where accessing an ATM at a certain
time gives an indicator of the place of that user at that time. In a university for
example, the use of computer login history can help in estimating the possible user
location. The accuracy of the proximity detection system is usually lower than other
methods so it cannot be used alone and could be used together with another method.
2.1.2 Outdoor localization
Outdoor localization involves locating users in a relatively open environment with no
obstacles. The applications of outdoor localization include mapping services as well
as providing location sensitive information where the exact location of the user is not
necessarily known. Current technologies for outdoor localization can be classified
into 3 main classes as in [22]:
� Handset Based
� Cellular Network Based
� Hybrid Approaches
2.1.2.1 Global Positioning System
The Global Positioning System (GPS), which is the most widely used outdoor posi-
tioning system, relies on the 24 active satellites as well as the 3 redundant satellites
deployed by the United States and Russian military. A device that is capable of
CHAPTER 2. BACKGROUND 13
Figure 2.4: Classification of outdoor localization technologies
CHAPTER 2. BACKGROUND 14
locating itself using GPS is able to know its latitude, longitude, time as well as
height at anytime during the day and night. For the positioning to work, the user
device has to calculate its distance from four or more satellites. This distance can
be calculated by measuring the round trip time difference [13]. Generally, GPS can-
not work indoors or in places with heavy forestations due to the fact that it needs
at least a signal level of -130Bm in order to work. For the GPS to work indoors,
retransmitters called pseudolites have to be installed. These pseudolites work by
relaying the GPS signal from outside the building inside. The drawback of using
this method is the reduction in accuracy [23].
2.1.2.2 Cellular Networks
Cellular networks such as GSM (Global Standard for Mobile Communications) and
UMTS (Universal Mobile Telecommunication System) are network systems used to
provide mobile telecommunication services. Locating a user on one of these networks
can be done differently as follows.
The first method is the cell-of-origin method, the coverage area is divided into
cells. At any given time, the mobile user, using the cellular network, has to register
with the cell he is currently in, which enables the system to locate him at any
given time. The radius of the range that a cell could cover is in the order of a few
kilometers [23]. Positioning accuracy of up to 1km can be achieved using GSM.
The other two methods that can be used with cellular networks are somehow
similar to the methods used indoors. The first one is based on a trilateration time-
of-flight approach as described before. The second method is based on the finger-
printing approach where the signal characteristics at several areas are measured
and stored in a database. Both of these methods have a better accuracy than the
cell-of-origin method averaging between 150m to 300m [23].
2.2 Technologies and related applications
2.2.1 Examples of indoor localization systems
Several research and commercial localization systems have been developed. In the
following section, some of those systems are examined.
2.2.1.1 ActiveBadge (infrared)
The ActiveBadge system was developed by the Olivetti Research Laboratory [9].
It uses infrared transmitters that are attached to users’ badges. Infrared sensors
are attached through out the building. A central server collects the unique tags
CHAPTER 2. BACKGROUND 15
that are transmitted by the users’ badges and associates them with the infrared
sensor that is fixed inside the room. ActiveBadge localization system is room based
localization system, and it provides a programmable application interface that allows
applications to be developed on top of the system.
2.2.1.2 Cricket (ultrasonic)
The Cricket localization system [8] uses ultrasound technology. Emitters are dis-
tributed within the environment and the receivers are embedded within the objects
to be located. The devices that are to be located perform triangulation and time-
of-flight calculations in order to locate themselves. The Cricket system can identify
and ignore ultrasound signals that result from reflection, thus increasing the accu-
racy. Embedding the receivers in the devices and forcing them to computer their
own location increases the power and processing requirements of such devices.
2.2.1.3 EasyLiving (scene analysis)
The EasyLiving system is a system based on image analysis [24]. It uses a Digiclops
3D camera to record the features of a location and compare it to a database of
scenes. EasyLiving requires high-performance cameras as well as systems that have
adequate processing power in order to analyze the images captured and match them
with the database.
2.2.1.4 SpotON (radio frequency)
SpotON is an ad hoc location-sensing system [12]. It uses low cost radio tags as
well as radio receiving base stations as a basis for the localization system. Each
radio tag transmits a unique identification number. Each base station then, sends a
central server the unique number along with the signal strength that it is receiving
from the tag. The central server then uses the trilateration technique to compute
the location of the tag.
2.2.2 Indoor tour guide systems
There have been several previous implementation of indoor tour guide system. In
the following section, some of those systems are described.
2.2.2.1 Cyberguide
Cyberguide is a tour guide system developed in Georgia Institute of Technology in
order to guide users during exhibits held in the GVU (Graphic, Visualization and
Usability) center [25]. The system was implemented on an Apple MessagePad 100
CHAPTER 2. BACKGROUND 16
with the Newton 1.3 operating system as well as pen-based PCs running Windows
for Pen Computing 1.0. The design of the system is highly modular with three main
components namely positioning, mapping and information components, working
together in order to provide the services.
The first component is the navigator which is concerned with positioning. It is
responsible for determining the user’s location as well as orientation on the map.
The indoor version of Cyberguide used an active beacon system in order to locate
the users. Using an array of infrared remote controls, each remote control transmits
a unique beam pattern. Using an infrared receiver that is connected to the Apple
MessagePad using a serial port, these unique patters are used to identify which cell
the user is currently in, hence the location of the user could be updated on the map.
The range of each infrared cell is small, so it makes the process of wide deployment
of infrared remote controls a rather expensive process.
The mapping component, called cartographer, provides the maps of the environ-
ment that the system is used in. The maps are interchangeable and can be based
on bitmap graphics or vector graphics. Bitmap maps are easily obtained through
scanning existing hard copy maps but were difficult to handle during scaling and
rotation as well as representing the points of interest. The vector map proved to be
of higher quality and was easier to rotate and scale. Drawing a path representing
a tour for example was easier on the vector based map but expensive in terms of
computation, specially on small hand held devices with limited processing power.
The third component, the librarian is the information component. that repre-
sents the database of information attached to each point of interest. Each point of
interest is marked on the map with a star. When the user selects a star, its name is
displayed and the information attached to it is fetched from the information repos-
itory to be displayed on the screen. The system also provides means for the user to
search the repository.
2.2.2.2 Marble Museum
This tour guide application was developed to support the human tour guides in the
Marble Museum in Italy. The system was implemented on Compaq IPAQ PDAs
running the Windows CE operating system with an additional 1Gb memory card
that stores the various multimedia such as photos and audio files needed for the tour.
The usage of an internal memory reduced the need for a high bandwidth network
in order to support the different users requesting the files.
The location determination technology used in this application is infrared bea-
cons. Each entrance to a section in the museum is fitted with an infrared transmitter
on the ceiling. The transmitter can cover up to 90°and the user is assumed to hold
the PDA almost vertically when entering a new section. The transmitters transmit
CHAPTER 2. BACKGROUND 17
8 characters per second. From those 8 characters, 3 are used to identify the section
and 3 more to validate the correctness of the signal. When the PDA receives the
8 character signal, the application will translate it into a section, play a sound to
confirm and then automatically present the user with a map of the current section.
As soon as the user is in a section, an audio commentary regarding that section
is played which minimizes the users interaction with the PDA and letting them
concentrate on enjoying their visit.
Currently, the system cannot adapt the map to the user orientation and offers
limited support of “path finding”, where a user requests to see the route to a specific
artwork [26].
2.2.2.3 IrReal
IrReal is a system that was originally implemented in the CeBIT2000 computer fair
that was held in Hannover. It is currently being used in the Computer Science build-
ing in the University of Saarbrucken in Germany to provide users with information
such as the current food menu as well as the bus schedule of the bus that passes
infront of the computer science building [27].
It is based on strong infrared transmitters and PalmPilot PDAs but can as
well run on any IrDA [28] enabled PDA. The system is based on an adapted idea
of the European video text system. The idea behind this project was to use an
infrastructure of strong infrared transmitters that have a range of about 30 meters
to transmit location sensitive information without the need of an additional database
stored on the client or an access to a wireless network to obtain information.
Each infrared transmitter is connected via a serial port to the nearest computer
workstation. Using the localized information on this computer, or information ob-
tained through a wired network, the transmitter sends formatted text and graphics.
Each mobile device is loaded with a small application called BrowsIR that is
capable of displaying the information that is currently being transmitted by the
nearby infrared transmitter.
To control the localization of the broadcasted information, each infrared trans-
mitter is tuned to a specified range which also increases the accuracy as infrared
beams do not cross walls. In addition, the infrared receivers on the PDAs are sensi-
tive to orientation. This orientation sensitivity has allowed the system to be deployed
in such a way that, depending on the user’s orientation, different information will
be received.
CHAPTER 2. BACKGROUND 18
2.2.2.4 Hippie
Hippie is an Internet-based nomadic information system which allows users to ac-
cess information independent of the device that they are currently using. It has
been developed for cultural environments providing various information about art
exhibitions [29].
The system allows pre planning of the visits at home through an Internet browser.
A web based interface provides several visitor activities such as browsing the exhibit
database, printing summary information, checking of the opening hours as well as
ticket pricing and making virtual tours.
The location of users in the exhibit is detected by means of an infrared infras-
tructure which detects the position of the user as well as an electronic compass which
detects the orientation. The infrared transmitters are fixed next to the various art
items where each transmitter sends out a unique ID identifying which art item is
currently being looked at. An infrared receiver that is either attached to the cloth-
ing of the visitor or is embedded in a hand held device receives the ID. Information
related to the received ID is downloaded through wireless LAN and is presented to
the user in the form of text, pictures as well as audio clips.
Hippie allows the visitors of the exhibition to search the different sections, leave
comments on the art work and contact other visitors by leaving them notes. Finally,
Hippie takes into consideration the user preferences by adapting the results to display
artwork that the user is interested in as well as providing tips about similar artwork.
Chapter 3
WiGuide design and
implementation
This project has been designed to serve as a tourist guide in a museum. However,
it has been tested on the campus of the German University in Cairo. It is a guide
application where a student moving with his laptop would be able to locate himself
within the university buildings. Upon successful location, the application would
display his location on the map and then provide him with the services and points of
interest that are in his vicinity. In this chapter, the approach chosen for localization
as well as the challenges faced, the matching algorithm are described in details.
3.1 Localization approach
Fingerprinting is chosen as the localization approach as fingerprinting has a higher
accuracy then other approaches such as time-of-flight specially in indoor environ-
ments with multi path effects. Also using methods such as the time-of-flight requires
accurate synchronization of the clocks of both the mobile device and the access points
because an error small error in time measurement can result in an relatively large
error in the detected position [30].
As the fingerprinting approach relies heavily on the signal strength, many factors
needed to be studied before implementing our system such as the sampling period,
grid granularity and the length of the fingerprint vector.
Sampling period Building fingerprint database requires selecting calibration points
where samples of the singal strength are measured and saved in the database
to represent this point. As the signal can be considered as a random property
and has a lognormal Gaussian distribution [19], taking more than one reading
is necessary. In addition, the duration of the sampling period as well as the
sampling rate are important factors to be determined. In order to decide upon
19
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 20
the proper values, a testing experiment is done at a specific location where the
number of samples taken were chosen to be 10, 20, 50 and 100 readings. The
sampling rate was chosen to be one sample per second.
The results as shown in Figure 3.1, show the strength of the signal received
from the nearest access point which was xA7C8 as opposed to the frequency of
appearance. We define a leader signal to be the one with the highest frequency.
It is worth noticing that the RSSI varies in all cases between 17 and 64. In
order to decrease the variation, a filtered range, explained later in more detail,
which is a range excluding the readings that are below a certain threshold, was
calculated. This threshold was chosen to be 30% of the number of readings
of the leader. The effect of choosing different sampling periods for measuring
the signal strength at a specific location on the range and the filtered range
is summarized in Table 3.1. The sampling period chosen is 30 seconds. It
was chosen because 10 seconds did not always yield a representative range,
specially in cases where the signal was unstable. Choosing a period that is
more than 30 seconds would impose a large delay on the user of the system
and would reduce the user experience.
60 61 620
1
2
3
4
5
6
7
8
9
10
10 Readings
RSSI
FRE
Q
21 45 56 58 60 61 620
10
20
30
30 Readings
RSSI
FRE
Q
21 22 45 49 51 54 56 58 60 61 62 63 640
10
20
30
40
50
50 Readings
RSSI
FRE
Q
17
18
20
21
22
44
45
48
49
50
51
52
53
54
55
56
57
58
60
61
62
63
64
0
10
20
30
40
50
60
70
80
90
100
100 Readings
RSSI
FRE
Q
Figure 3.1: Effect of sampling period on the distribution of the signals from accesspoint xA7C8
Grid granularity The distance between the different reference points to take will
affect the granularity of our system. As shown in Table 3.2, making the spacing
between the grid points small, and increasing the number of reference points
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 21
will increase the accuracy of the system but at the same time, it will increase
the time it takes to generate the database dramatically [11]. It will also increase
the search time while trying to obtain a match. It is also worth saying that
the increasing the number of reference points beyond a certain limit will have
little to no effect on the accuracy, as the rate of increase of accuracy decreases
because there is simply not enough variations in the signal strength [19].
Length of fingerprint vector The number of access points to consider when the
fingerprint database is being built as well as when the client is trying to match
his location is important. In a study made in [31], Figure 3.2 shows that
a higher number of access points does increase the precision, specially when
the standard deviation of the samples is large, though the rate of increase of
the precision decreases when the number of access points is greater than five.
Unfortunately, the number of access points that are observed by a client might
be less than five most of the times. This has led to the choice of relying on
three access points.
Figure 3.2: Effect of the number of access points on probability of correct locationestimation
samples leader sd filteredsd range filteredrange10 60 0.84 0.58 60 to 62 60 to 6230 61 14 0.54 47 to 75 60 to 6250 63 11.15 1.12 51 to 75 61 to 65100 63 14.82 13.33 48 to 78 49 to 77
Table 3.1: Effect of sampling period on signals from access point xA7C8
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 22
points error(m)132 1.7599 1.6366 1.7433 1.7816 2.25
Table 3.2: Effect of number of reference points on the distance error
User body and orientation In most modern laptops with built in wireless cards,
the wireless antenna is embedded in the LCD screen. The human body is
mainly composed of water. Since the resonance frequency of water is 2.45
GHz and the frequency at which the wireless signals propagate is 2.4 GHz, the
human body acts as a barrier and absorbs a significant amount of the signal
that is propagating [19]. Due to this, the received signal strength is affected
by the presence of the user.
Due to the previous observation, the orientation of the user affects the strength
of the signal received, depending on where the user is standing with respect
to the access point. The effect of the presence of the user is also studied in
Figure 3.3. Although it is insignificant to our application because a user will
always be holding the device, nevertheless, as the graphs in Figure 3.3 show,
the difference between the signal distribution in presence and absence of the
user is negligible.
The antennas on most wireless access points are omnidirectional antennas. As
Figure 3.4 shows, omnidirectional antennas transmit their signal uniformly in
one plane only. Hence, the positioning of the antennas on the access points
and the position of the user relative to the antenna affect the signal strength.
An experiment like the setup in Figures 3.5 and 3.6 has been done. The ex-
periment was done by measuring the signal strength for a period of 30 seconds
at the locations marked parallel and perpendicular. Those locations represent
measurements that are parallel to the axis of the antenna and perpendicular
to the axis of the antenna, respectively. In Figures 3.7 and 3.8, the effect of
both, the user orientation as well as the position of the user with respect to
the antennas is shown. The graphs show that there is indeed a difference be-
tween the readings taken parallel to the antenna axis and the readings taken
perpendicular to the antenna access. The results taken perpendicular to the
antenna access are more stable (having the same leader), than their parallel
counterpart. As for the orientation, it is obvious that the orientation affects
the distribution of the signals, specially when the readings are taken parallel to
the antenna. When the readings are taken perpendicular to the antenna, the
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 23
14
17
18
20
22
23
24
26
27
28
29
30
32
33
34
35
38
39
41
42
43
44
45
46
47
48
49
50
51
53
54
55
56
57
58
59
60
63
64
0
2
4
6
8
10
12
14
16
18
With User
14
17
18
20
22
23
24
26
27
28
29
30
32
33
34
35
38
39
41
42
43
44
45
46
47
48
49
50
51
53
54
55
56
57
58
59
60
61
63
64
0
2
4
6
8
10
12
14
16
18
Without user
Figure 3.3: Effect of user presence. AP: xA7C8
effect of the user orientation affects the frequency of the leader. The readings
taken in the South and West orientations have a leader frequency which is
greater than 10, while the readings taken in the North and East orientations
have a leader frequency which is less than 10.
Signal sensitivity The mapping between the actual radio signal strength and the
signal strength reported by the wireless card in dBm is non linear. It is in fact
logarithmic [19]. This leads to the signal strength not being different enough
to distinguish between different locations close to the access point which leads
to ambiguity with respect to certain locations. In Figure 3.9, it is obvious that
as the average signal strength increases when the user is near the access point,
the more the distribution becomes left skewed. This means that as we move
away from the access point, the probability of an error in location detection
increases. At the same time, as we move closer to the access point, it becomes
more difficult to identify the location, because the values of the RSSI reported
by the wireless card would be very similar to each other. [19].
Who senses the location The wireless signals that are used to locate the user
can be measured at both, the client device as well as the access point that
is transmitting the signal. If the signal measurement is going to be done on
the access point, access to the API of each access point must be provided in
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 24
Figure 3.4: Coverage of an Omnidirectional antenna
order to program it to provide a list of clients that are currently associated
with it. This approach was unfavorable due to the complexity of the different
access points’ APIs and due to the fact that it would require a different imple-
mentation for each access point manufacturer. On the other hand, the second
approach which relies on the client device to read the signals received is more
appropriate for future expansion because if more access points are added, no
further reprogramming of the access points is required.
Who calculates the position Calculating the position of the user requires access
to the database of fingerprints and locations. Implementing the location al-
gorithm on the client side would require storing the database on the client’s
device which could pose a problem on small devices such as PDAs because of
the large memory requirements that a database management system needs.
Location computation also needs a device with adequate processing power so
that the localization could be done in a short time. For these reasons, cal-
culating the position on the server is considered a better solution although it
puts a greater load on the server as well as the network due to the network
traffic needed to transmit location information back and forth between the
server and the client.
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 25
Figure 3.5: Experiment location
Figure 3.6: Experiment setup of orientation. AP: xA7C8
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 26
20 30 32 33 38 41 42 43 440
10
20
30
North
20 24 26 29 30 32 33 38 41 42 43 44 45 49 51 540
10
20
30
South
20 29 30 32 33 38 41 42 43 44 45 49 51 540
10
20
30
East
20 24 26 27 28 29 30 32 33 38 41 42 43 44 45 49 51 540
10
20
30
West
Figure 3.7: Effect of user orientation while parallel to antenna. AP: xA7C8
2024262728293032333841424344454649505154555758
0
10
20
30
North
182023242627282930323338414243444546495051535455565758596364
0
10
20
30
South
2023242627282930323338414243444546495051545557586364
0
10
20
30
East
1820232426272829303233353841424344454647495051535455565758596364
0
10
20
30
West
Figure 3.8: Effect of user orientation while perpendicular to antenna. AP: xA7C8
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 27
Figure 3.9: Relation between the average signal strength and the signal distribution
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 28
3.2 WiGuide design
Our WiGuide system has been designed according to the client-server architecture.
The system model is shown in Figure 3.10. The client is a thin client with only an
interface to the application. This design would allow the system to be easily imple-
mented on devices with limited processing power and limited memory availability
such as PDAs and mobile phones. The client collects wireless signals through the
PlaceLab library.
Figure 3.10: Client-Server architecture of the system
The server consists of a database as a backend to store the various data entities
which are described in detail in the following sections. A background service is
always running at the server listening for connections from clients and processing
the information. Finally, a webserver is installed on the server as a frontend for
providing the results to the client.
The server and the client interact together using protocols that use XML as the
message format.
Several external libraries and applications have been used in order to facilitate
the development of the application.
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 29
PlaceLab NDIS Wrapper to add functionality to Java to enable the collection
and use of raw data acquired from the wireless card.
Hibernate a powerful high performance object/relational persistence and query
library to map database entities into classes that conform to the Enterprise
Java Beans (EJB) standards.
JDOM v1.0 a Java-based solution for accessing, manipulating, and outputting
XML data from Java code. It is used in implementing the protocol of passing
messages between the server and the client.
OpenChart v2.1.1 an open source Java library and toolkit for creating different
kinds of charts and embedding them into web applications or Swing applica-
tions. It is used in the statistical analysis application for drawing bar charts
of signal distributions.
The Jakarta Mathematics Library is a library of lightweight, self-contained math-
ematics and statistics components. It is used in the fingerprinting algorithm
as well as the location algorithm. It is also used in the statistical analysis
application.
Oracle 10g XE as the back end database for storing the different data required
by the application.
Abyss Web Server v2.4 as the gateway to provide the users with the services
and content in the form of HTML web pages.
PHP 5 as the programming language to interface with the database and render
the content with the help of the Abyss Web Server.
3.2.1 Database
The database consists of 5 tables that are pictured in the Entity Relationship Dia-
gram (ERD) in Figure 3.11, and are described below.
AccessPoint This table represents access point entries. An access point is identi-
fied by its MAC address.
Building This table contains the different buildings that could be present within
the environment. A building can be given a name, for example, B4.
Room A room is the main area where a client is located. A room belongs to a
building and has a name, a number and two co-ordinates that represent the
location of the room on the map. These co-ordinates are pixel co-ordinates
and not actual physical co-ordinates.
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 30
(1,3)
(1,16)
Figure 3.11: Database ERD
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 31
Section A section is a point within a room where a reading is taken. The room is
divided into 16 sections that are 2 meters apart. In the case that one side of
the room is longer than the other or if the room is not symmetric, then the
sections are divided arbitrarily so that they could cover the whole room.
Reading A reading consists of a signal strength received from the access point and
a MAC address identifying this reading with the access point that it came
from.
Service When a client is located, he is presented with a list of services that are
associated with the room. A service could represent actual entities that are
physically present within the room such as a computer or a printer, or it could
represent points of interest that are near that room.
3.2.2 Wireless signal acquisition
Java does not provide a way to access the wireless card and obtain readings from it
directly. Fortunately, Java provides a feature called Java Native Interface (JNI) that
allows a Java application to interface with libraries that are not written in Java. In
Windows, the driver that is responsible for the wireless cards is called NDIS driver,
which stands for Network Driver Interface Specification and is written in C++.
A possible solution to access the wireless driver is to write an interface to the
NDIS C++ driver using JNI. The other solution relies on a library that has been
developed in Java and already wraps the NDIS C++ driver. This library is called
PlaceLab [32].
PlaceLab has been developed by Intel Research in Seattle and has been released
to the open-source community. Using the PlaceLab library to read the signals from
the wireless card involves initializing a WiFiSpotter and then invoking a method in
the PlaceLab library to get the array of readings.
The above is repeated according to the sampling period that is chosen with a
delay of one second between each sample and the other.
3.2.3 Message passing protocols
Messages are passed between the client and the server in 2 situations.
� When the client passes the observed signal vector to the server.
� When the server passes the location information back to the client.
The protocol needed to transfer information between the server and the client,
a protocol needed to be implemented. The chosen method was to implement the
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 32
protocol using Extensible Markup Language (XML) which is a standard for data
sharing and data exchange between different systems.
The Java Document Object Model (JDOM) library is an open-source Java library
that is used to create, parse and interpret XML documents [33]. JDOM is used in
order to construct the XML protocol messages that are sent between the client and
the server and is also used in parsing those messages to obtain useful information.
The protocol implemented is composed of 2 main components as follows:
� Client-Server protocol defines the message that is passed from the client
to the server. It includes information about the observed signal vector that
is supposed to be matched. The signal vector consists of a series of access
points where the Medium Access Control (MAC) address of each access point
is recorded along with the Received Signal Strength Indicator (RSSI) value.
<?xml version="1.0" encoding="UTF-8"?>
<message>
<accesspoint apid="0">
<mac>00184D320A0C</mac>
<signal>67</signal>
</accesspoint>
<accesspoint apid="1">
<mac>00147F741F85</mac>
<signal>16</signal>
</accesspoint>
</message>
� Server-Client protocol defines the message that is passed back to the client
either indicating a successful location or indicating that an error has occurred.
It consists of a flag that indicates whether there were results returned from
the database or not. If results have indeed been returned from the database
and the client could be located, the server sends the database ID of the room
where the client has been located, along with the exact row and column of the
reading. The latter row and column are only used in determining the precision
of the system and they make no difference in the result of positioning. An
accuracy level indicator is also returned to specify the confidence level of such
detection.
No results found
<?xml version="1.0" encoding="UTF-8"?>
<content valid="0" />
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 33
Successful location
<?xml version="1.0" encoding="UTF-8"?>
<content valid="1">
<room roomid="7" accuracy="2" nr="2" nc="2" mapx="390" mapy="22">
<name>Photocopier room</name>
<num>223</num>
<building>B4</building>
</room>
</content>
3.2.4 Fingerprinting algorithm
The fingerprinting algorithm is the algorithm that is used to build the database of
fingerprints. It is used in the initial stages of deployment.
For a user to be located within a certain room, it has to be fingerprinted. The
room to be fingerprinted is divided into 16 sections that are roughly 2 meters apart.
If the room is not symmetric, the 16 sections are divided so that they cover the area
of the whole room.
The fingerprinting algorithm starts by collecting the reading samples then, pro-
cessing those readings because of the variations of the signal strength between sam-
ples, as shown in figure 3.12. Processing the readings implies selecting a leader which
represents the reading that has the maximum frequency of occurrence, then calcu-
lating a filtered range of signal strengths that can be represented by that point. The
calculations of the frequency distribution are done using the Jakarta Mathematics
Library. The details of each of those steps is explained below.
Collecting samples The process of fingerprinting first starts by standing in the
section to be fingerprinted and then initiating the fingerprinting algorithm. For
30 seconds, which is the time that has been decided as the sampling period, the
system administrator should be standing still while the computer is recording
the wireless signals received.
Grouping signals After the 30 seconds have passed, the algorithm will start ag-
gregating the signals received by the MAC address of the access point that
transmitted it. After the process of aggregation, we will end up with N groups
representing N access points that were observed during the 30 second sampling
period. Usually the number of access points observed varied from one point
to the other, depending one how many access points are seen by that point.
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 34
30 times
Yes
No
Figure 3.12: The fingerprinting algorithm
Determining the leader of each group The leader is the signal whose received
signal strength indicator (RSSI) is the most within a group of signals belonging
to the same access point. The process of determining the leader works by first
sorting the group by the frequency of repetitions of each RSSI. Normally, the
first reading in the group should now be the leader. But, in the case of several
readings having the same number of repetitions, the leader in this case is the
mean of those readings. The flowchart for the algorithm of determining the
leader is presented in Figure 3.13.
Determining the unfiltered range and the filtered range The unfiltered range
is simply the minimum and maximum readings to be considered in the group
to be used in calculating the filtered range explained below. In the case of
having only one leader, those minimum and maximum values are both equal
to the RSSI of the leader. Otherwise, the minimum is the minimum RSSI
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 35
add to
Yes, add to
No
Store as
Store as
Figure 3.13: Determining the group leader
that has the same number of repetitions as the leader of that group, and the
maximum is the RSSI value of the leader of that group. The flowchart of
calculating the unfiltered range is presented in Figure 3.14.
Because sometimes the variations of the signal within a group are so large, they
often include signals with very low RSSI values and having very low frequencies
as well. Those signals hugely affect the value of the standard deviation of the
group which in turn, affects the accuracy of the system.
As a solution for this problem, a threshold defined as the minimum percentage
of frequency of occurrence of a reading for it to be considered in calculations,
is used in order to control which signals take part in calculating the standard
deviation of a group as shown in Figure 3.15. It is used to filter out readings
that are very infrequent but evenly spaced within the range so that they don’t
affect the standard deviation of the readings.
The threshold frequency is calculated by multiplying the threshold by the fre-
quency of the group leader. After that, when calculating the filtered standard
deviation, any reading whose frequency is less than the threshold frequency is
disregarded.
The filtered range is determined by just adding the filtered standard deviation
to the maximum value of the unfiltered range that has been calculated before,
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 36
Yes
No
Figure 3.14: Calculating the unfiltered range
and subtracting the filtered standard deviation from the minimum value of the
unfiltered range.
Finally, the strongest and most frequent 3 access points along with their RSSI and
the minimum and maximum values of the filtered range are stored in the database,
associated with the current section. This process repeats until no more sections for
that room are left to be fingerprinted.
3.2.5 Matching algorithm
When a client wants to get located, the client application starts taking readings for
30 seconds, determines the group leader just like in the fingerprinting algorithm, and
constructs a signal vector, containing the signal strength of the top three groups. The
top three groups are determined by multiplying each group leader by its frequency,
sorting the groups using this number descendingly and then selecting the first three
groups.
The signal vector is then sent to the server through an XML message as in
Figure 3.16. The server upon receiving the client’s signal vector, runs a matching
algorithm to match this vector against its database entry, then sends the room ID
and the location on the map to the client.
In WiGuide, two algorithms have been developed in order to match a user: a
range based algorithm, and an Euclidean distance based algorithm, presented in [6].
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 37
add toYes,
Yes
No
No
Figure 3.15: Calculating the filtered range
According to the selected matching algorithm, the server would then perform
the matching and determine a best location match of the user. The server would
then send the room ID of the matched room to the client for the next step.
3.2.5.1 Range based matching
The range based algorithm is based on the idea that the received signals from the
client are being matched with the ranges that are stored in the database for each
access point.
If the server gets an XML message with 3 observations A,B and C, it tries to find
a reading, where an access point with MAC address A.MAC exists and the received
signal strength A.RSSI lies within the range of that reading. The server tries this
with each observation received from the client in order to filter down the result set.
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 38
30 times
Figure 3.16: The client side of the matching algorithm
The results obtained are then grouped by the rooms that are associated with
the readings. The results are then sorted by the number of occurrences that a room
appears in the result set. Sorting by the room occurrences will ensure that if a
reading is repeated several times within a room, this means that this room has a
higher probability of being the correct location.
Finally, the server returns the ID of the first room in the results as well as the x
and y coordinates for the map that are associated with that room.
3.2.5.2 Euclidean distance matching
The Euclidean distance between two vectors, ~R = (r1, r2, ..., rn) and ~F = (f1, f2, ..., fn),
can be represented by
distance =
√√√√ n∑i=1
(ri − fi)2
CHAPTER 3. WIGUIDE DESIGN AND IMPLEMENTATION 39
where n represents the fingerprint size and the observation size. The fingerprint size
is the number of access points that has been saved in the database for a particular
reading vector. The observation size is the number of access points that have been
“seen” in this observation. The value of n is equal to the length of the vectors ~R
and ~F , where |~R| = |~F |. The length of the vectors be equal to 3, 2 or 1.
At the beginning, the server issues an SQL query to return all the fingerprints
that have sizes equal to the size of the observation vector. The Euclidean distance
based algorithm works by calculating the Euclidean distance between the observed
readings vector ~R and each fingerprinting vector ~F returned from the database.
Sometimes, only a subset of the access points in an observation can be matched
with a fingerprint vector, in this case, a penalty which is equal to the square of the
RSSI value of the reading that was not found in the fingerprint vector is added to
the value of the distance.
Finally, after calculating the Euclidean distances between the observation vector
and all the fingerprints that were returned, the fingerprint vector that yields the
minimum distance is considered the best match. The room ID associated with this
fingerprint is returned to the client, as well as the x and y coordinates for the map
that are associated with that room .
3.2.6 Location presentation
An XML reply from is sent from the server to the client as explained above. The
client, then, parses the room ID part and includes it in an HTML request that is
sent to a page written in PHP stored on the server. This room ID is used by PHP
to query the database for services associated with this room and then output it in
an HTML form. The client then just displays this HTML page and presents the
user with the services located in his/her current location.
In addition, the x and y coordinates sent by the server are used to plot this point
on the map as seen in Figure A.3.
Chapter 4
Conclusion and Future Work
Designing location-aware systems that provide location sensitive information in-
volves several components that cooperate in a seamless way.
In this project, a WiGuide system is proposed that provides a push-based location-
based service. The system is based on the client/server architecture and consists
of 2 main components: a localization component and a data related component.
The localization component uses the finterprinting algorithm along with a matching
algorithm to locate a user. The matching algorithm is either using the Euclidean
distance based or a range based algorithm. The system is able to locate a user cor-
rectly with an accuracy of 70% for the Euclidean distance based algorithm and 60%
for the range based algorithm with a mean error of 4 meters which is acceptable for
room based localization.
In the future, the system’s accuracy could be enhanced by using a probabilistic
approach in fingerprinting instead of the deterministic approach that is currently
being used. Instead of the currently used Euclidean distance algorithm, a more
accurate algorithm such as taking the k -nearest neighbors into account may be
used. Deploying more wireless access points and distributing them over the area
to be localized will enhance the accuracy as well. Taking the orientation of the
user into account, by using an electronic compass will enable the application to
provide orientation sensitive information which is important in case of deployment
in a museum.
For the services, more interaction could be built, which should be easy to extend
because the current services frontend is based on HTML instead of being hard coded
into the application. Providing the user with audio and video based services for
museum deployments, or providing the user with the schedule of the current room
that he is standing in would be an interesting development.
The current prototype is implemented on a laptop. For a truly mobile applica-
tion, this project could be implemented using J2ME, so that it work on any Java
enabled mobile device.
40
Appendix A
Screenshots
A.1 Client interface
Figure A.1: Location in progress
41
APPENDIX A. SCREENSHOTS 42
Figure A.2: Services associated with the room
Figure A.3: Location of the room on the map
APPENDIX A. SCREENSHOTS 43
A.2 Fingerprinter interface
Figure A.4: Adding/Removing buildings
APPENDIX A. SCREENSHOTS 44
Figure A.5: Adding/Removing rooms
Figure A.6: Adding/Removing services
APPENDIX A. SCREENSHOTS 45
Figure A.7: Setting location of a room on the map
Figure A.8: Fingerprinting of rooms
Appendix B
Installation instructions
B.1 Client
B.1.1 Installation of the NDIS driver
In order for the fingerprinter and the client to be able to access the wireless card,
you have to install a driver
a) Open your Wireless Network Card properties
b) Click [Install...]
c) Select Protocol
d) Click [Add...]
e) Click [Have Disk...]
f) Browse for 〈Your installation directory〉\driver\
g) Select ndisplab.inf
h) Finally, open a command prompt and type: net start ndisplab
B.1.2 Configuration
Editing settings.properties for configuration.
#settings.properties
showExactLocation=1
readingThreshold=30
serverPort=7803
fingerprinterSamples=30
clientSamples=30
46
APPENDIX B. INSTALLATION INSTRUCTIONS 47
serverHostname=<HOSTNAME OF THE WEBSERVER>
serverPath=C\:\\Abyss Web Server\\htdocs\\
mapPath=wiguide/maps/map.png
useEuclidean=1
showExactLocation When enabled, the exact section where the user was detected
will be displayed in the interface.
readingThreshold This is the minimum frequency percentage of the leader fre-
quency. Any reading with a frequency less than this will not be taken into
consideration when fingerprinting.
serverPort The port that the server uses to listen for connections from the client.
fingerprinterSamples The sampling period of the fingerprinter.
clientSamples The sampling period of the client.
serverHostname Hostname of the webserver that provides the content.
serverPath The path of the server’s web documents folder.
mapPath The path of image of the map. It should be 270x270 pixels.
useEuclidean Selects either the Euclidean distance based matching algorithm or
the Range based matching algorithm.
B.2 Server
B.2.1 Installation of Abyss web server and configuration of
PHP
a) Install Abyss web server from 〈Your installation directory〉\requirements\webserver\Abyss.exe
b) Configure PHP (See Abyss documentation)
c) Extract 〈Your installation directory〉\requirements\webserver\webserver.zip
into 〈Abyss installation directory〉
B.2.2 Installation of Oracle 10g XE and running the Database
a) Install Oracle 10g XE from 〈Your installation directory〉\requirements\database\OracleXE.exe
b) Creating a user in the database with the username tourguide
c) Running the DatabaseInitScript.txt in SQL*Plus
APPENDIX B. INSTALLATION INSTRUCTIONS 48
B.2.3 Configuration
Editing settings.properties and hibernate.properties for configuration.
#settings.properties
showExactLocation=1
readingThreshold=30
serverPort=7803
fingerprinterSamples=30
clientSamples=30
serverHostname=<HOSTNAME OF THE WEBSERVER>
serverPath=C\:\\Abyss Web Server\\htdocs\\
mapPath=wiguide/maps/map.png
useEuclidean=1
showExactLocation When enabled, the exact section where the user was detected
will be displayed in the interface.
readingThreshold This is the minimum frequency percentage of the leader fre-
quency. Any reading with a frequency less than this will not be taken into
consideration when fingerprinting.
serverPort The port that the server uses to listen for connections from the client.
fingerprinterSamples The sampling period of the fingerprinter.
clientSamples The sampling period of the client.
serverHostname Hostname of the webserver that provides the content.
serverPath The path of the server’s web documents folder.
mapPath The path of image of the map. It should be 270x270 pixels.
useEuclidean Selects either the Euclidean distance based matching algorithm or
the Range based matching algorithm.
#hibernate.properties
hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver
hibernate.connection.url=jdbc:oracle:thin:@//<HOSTNAME OF DATABASE SERVER>:1521/xe
hibernate.connection.username=tourguide
hibernate.connection.password=tourguide
hibernate.connection.pool_size=1
hibernate.dialect=org.hibernate.dialect.Oracle9Dialect
APPENDIX B. INSTALLATION INSTRUCTIONS 49
B.3 Running
In the bin folder, you have 3 executable files. Make sure you run them as an
Administrator.
Fingerprinter.exe Runs the fingerprinting application that does fingerprinting
and other configuration tasks.
WiGuideServer.exe Runs the server to listen for clients.
WiGuideClient.exe Runs the client.
Bibliography
[1] Mohapatra, D. Suma, and S.B., “Survey of location based wireless services,”
International Conference on Personal Wireless Communications, 2005.
[2] S. Steiniger, M. Neun, and A. Edwardes, “Foundations of location based ser-
vices,” 2006.
[3] J. Hightower and G. Borriello, “A survey and taxonomy of location systems
for ubiquitous computing,” Tech. Rep. UW-CSE 01-08-03, University of Wash-
ington, Computer Science and Engineering, Box 352350, Seattle, WA 98195,
August 2001.
[4] M. Satyanarayanan, “Pervasive computing: vision and challenges,” Personal
Communications, IEEE [see also IEEE Wireless Communications], vol. 8, no. 4,
pp. 10–17, 2001.
[5] N. Lemieux, “Reading course on indoor systems,” 2006.
[6] P. Bahl and V. Padmanabhan, “RADAR: An in building RF based user location
and tracking system,” in IEEE Infocom Volume 2, pp. 775–784, March 2000.
[7] M. Paciga and H. Lutfiyya, “Herecast: An Open Infrastructure for Location-
Based Services using WiFi,” IEEE International Conference on Wireless and
Mobile Computing, Networking and Communications WiMob, 2005.
[8] N. Priyantha, A. Chakraborty, and H. Balakrishnan, “The Cricket location-
support system,” Proceedings of the 6th annual international conference on
Mobile computing and networking, pp. 32–43, 2000.
[9] R. Want, A. Hopper, V. Falcao, and J. Gibbons, “The active badge location
system,” ACM Trans. Inf. Syst., vol. 10, pp. 91–102, January 1992.
[10] A. Harter, A. Hopper, P. Steggles, A. Ward, and P. Webster, “The anatomy
of a context-aware application,” Wireless Networks, vol. 8, pp. 187–197, March
2002.
50
BIBLIOGRAPHY 51
[11] B. LI, J. SALTER, A. DEMPSTER, and C. RIZOS, “Indoor Positioning Tech-
niques Based on Wireless LAN,” 2007.
[12] J. Hightower, R. Want, and G. Borriello, “SpotON: An indoor 3D location sens-
ing technology based on RF signal strength,” UW CSE 00-02-02, University of
Washington, Department of Computer Science and Engineering, Seattle, WA,
February, 2000.
[13] “Global positioning system.” http://www.gps.gov.
[14] A. Bensky, S. Berliner, U. Holzkaner, E. Mirodin, et al., “Accurate distance
measurement using RF techniques,” Feb. 22 2005. US Patent 6,859,761.
[15] A. Petroff and P. Withington, “Time Modulated Ultra-Wideband (TM-UWB)
Overview,” Wireless Symposium/Portable by Design Feb, vol. 25, pp. 1–10,
2000.
[16] S. Saha, K. Chaudhuri, D. Sanghi, and P. Bhagwat, “Location Determination
of a Mobile Device using IEEE 802.11 Access Point Signals,” 2003. S. Saha, K.
Chaudhuri, D. Sanghi and P. Bhagwat, Location Determination of a Mobile De-
vice using IEEE 802.11 Access Point Signals, IEEE Wireless Communications
and Networking Conference (WCNC) 2003.
[17] A. Ladd, K. E. Bekris, A. Rudys, L. E. Kavraki, and D. S. Wallach, “Robotics-
based location sensing using wireless ethernet,” Wireless Networks, vol. 11,
no. 1-2, pp. 189–204, 2005.
[18] M. A. Youssef, A. Agrawala, and A. U. Shankar, “WLAN Location Determi-
nation via Clustering and Probability Distributions,” Dec. 24 2003.
[19] K. Kaemarungsi, Design of Indoor Positioning Systems Based on Location Fin-
gerprinting Technique. PhD thesis, 2005.
[20] T. Roos, P. Myllymaki, H. Tirri, P. Misikangas, and J. Sievanen, “A Proba-
bilistic Approach to WLAN User Location Estimation,” International Journal
of Wireless Information Networks, vol. 9, pp. 155–164, July 2002.
[21] M. Youssef and A. Agrawala, “The Horus WLAN location determination sys-
tem,” Proceedings of the 3rd international conference on Mobile systems, appli-
cations, and services, pp. 205–218, 2005.
[22] B. Preissl, H. Bouwman, and C. Steinfield, E-Life After the Dot Com Bust,
ch. 4. Physica-Verlag, 2004.
BIBLIOGRAPHY 52
[23] R. Bill, C. Cap, M. Kofahl, and T. Mundt, “Indoor and outdoor positioning
in mobile environments a review and some investigations on wlan positioning,”
GeoInformation Science Journal, vol. 10, 2005.
[24] S. Shafer, J. Krumm, B. Brumitt, B. Meyers, M. Czerwinski, and D. Robbins,
“The New EasyLiving Project at Microsoft Research,” Proceedings of the 1998
DARPA/NIST Smart Spaces Workshop, pp. 127–130, 1998.
[25] S. Long, R. Kooper, G. D. Abowd, and C. G. Atkeson, “Rapid prototyping of
mobile context-aware applications: the Cyberguide case study,” in MobiCom
’96: Proceedings of the 2nd annual international conference on Mobile comput-
ing and networking, (New York, NY, USA), pp. 97–107, ACM Press, 1996.
[26] C. Ciavarella and F. Paterno, “The design of a handheld, location-aware guide
for indoor environments,” Personal Ubiquitous Comput., vol. 8, no. 2, pp. 82–
91, 2004.
[27] A. Butz, J. Baus, and A. Kruger, “Augmenting buildings with infrared infor-
mation,” Augmented Reality, 2000.(ISAR 2000). Proceedings. IEEE and ACM
International Symposium on, pp. 93–96, 2000.
[28] “Infrared data association.” http://www.irda.org.
[29] R. Oppermann and M. Specht, “A nomadic information system for adaptive
exhibition guidance,” in ICHIM, pp. 103–109, 1999.
[30] “Wi-fi location-based services: Design and deployment considerations,” tech.
rep., Cisco Systems.
[31] K. Kaemarungsi and P. Krishnamurthy, “Modeling of indoor positioning sys-
tems based on location fingerprinting,” INFOCOM 2004. Twenty-third An-
nualJoint Conference of the IEEE Computer and Communications Societies,
vol. 2, 2004.
[32] A. LaMarca, Y. Chawathe, S. Consolvo, J. Hightower, I. Smith, J. Scott,
T. Sohn, J. Howard, J. Hughes, F. Potter, et al., “Place Lab: Device Posi-
tioning Using Radio Beacons in the Wild,”
[33] “JDOM Java Document Object Model.” http://www.jdom.org.