-
Indoor Navigation System
Final Project Report
Submitted to the Engineering Faculty
of the
University of Porto
In fulfillment of the requirements of the course
Integration Systems Laboratory
Porto, January 2010 By:
Corsino Martins Cristiana Ramos Jailson Moreira Lus Bastos
Marcos Brito Nuno Fonseca Ricardo Almeida
-
2
Abstract
This report describes the development of an indoor navigation
system on an Android Smartphone.
Research of existing technologies, their advantages and
limitations, preceded the development of
a new approach that uses data from the devices to determine user
position. A routing algorithm is
used to be able to lead the user to their final destination by
finding the shortest possible route and
leading the user along it. Since people spend most of their time
indoors, this is a developing area -
finding services and products in large indoor spaces, finding
people, and using this information for
commercial services.
-
3
Contents Introduction
...............................................................................................................................................
5
Positioning technologies
...........................................................................................................................
7
RFID
....................................................................................................................................................
7
GPS repeater
.....................................................................................................................................
7
Infrared
..............................................................................................................................................
7
Wi-Fi
...................................................................................................................................................
7
Barcodes
............................................................................................................................................
8
Mapping techniques
.................................................................................................................................
8
Text
.........................................................................................................................................................
8
2D maps
.................................................................................................................................................
8
3D maps
.................................................................................................................................................
9
Routing
algorithm......................................................................................................................................
9
Dijkstras Algorithm
...............................................................................................................................
9
Floyd-Warshall Algorithm
.....................................................................................................................
9
Bellman-Ford Algorithm
.....................................................................................................................
10
Ford-Fulkerson Algorithm
...................................................................................................................
10
Android
....................................................................................................................................................
11
Goal
......................................................................................................................................................
11
Objectives
............................................................................................................................................
11
Design
..................................................................................................................................................
12
Web portal
...............................................................................................................................................
13
Goal
......................................................................................................................................................
13
Objectives
............................................................................................................................................
13
Usage....................................................................................................................................................
13
1 Not registered user
..................................................................................................................
13
2 Registered
user.........................................................................................................................
13
3 Teacher
.....................................................................................................................................
14
4 Administrator
...........................................................................................................................
14
Design
..................................................................................................................................................
14
Communication
...................................................................................................................................
15
Technologies
............................................................................................................................................
16
ANDROID..............................................................................................................................................
16
JAVA/DALVIK
........................................................................................................................................
16
ANDROID SDK
......................................................................................................................................
16
ECLIPSE
.................................................................................................................................................
17
-
4
ZXing.....................................................................................................................................................
17
QR-CODE
..............................................................................................................................................
17
XML
......................................................................................................................................................
18
Web Portal
...............................................................................................................................................
18
MySQL (My Structured Query Language)
..........................................................................................
18
PHP (Hypertext
Preprocessor)............................................................................................................
19
JavaScript
.............................................................................................................................................
19
Graphical user interface
..........................................................................................................................
20
Web portal
...........................................................................................................................................
24
Web Portal Interface
.......................................................................................................................
24
Home
...............................................................................................................................................
24
Simulation........................................................................................................................................
24
Development
...................................................................................................................................
24
Register
............................................................................................................................................
24
Login.................................................................................................................................................
25
Simulation........................................................................................................................................
25
Testing and Results
..................................................................................................................................
29
Development
Activity..............................................................................................................................
30
Conclusion
...............................................................................................................................................
32
Future Directions
.....................................................................................................................................
33
Bibliography
.............................................................................................................................................
34
-
5
Introduction
For humans to orient themselves, information about time and
space is necessary. In the absence
of either one the human stays disoriented and sometimes lost.
Technologies have advanced a lot
in the last few years, in a way to help people to overpass these
limitations. Nowadays is possible to
have small equipments with a lot of processing power, increased
usability and functionality. Having
this in mind, soon companies started to develop portable
solutions of navigation systems.
Global positioning system (GPS) is a technology well spread
around the world, it covers almost
every point of the globe which permits people to know every time
where they are, avoiding to get
lost in unknown places. But despite extraordinary advances in
GPS, one of the biggest limitations
is the fact that signals cannot fully penetrate closed areas or
walls.
Nowadays, with technology advancement, it's possible to have
small integrated systems that can
be used to overpass GPS limitations. Mobile phones are one of
these systems. It's common for
people to have mobile phone devices with integrated GPS, Wi-Fi
and storage. Equipments like
these need to have capable operating systems that can handle all
these devices. There are some
in the market, each one with its upsides and downsides. One,
that is becoming very popular, is
Android.
Android is an open source mobile operating system, based on
Linux kernel that uses Java as
programming language. The capabilities of these devices, with a
capable operating system, allow
the implementation of systems that permit to obtain the exact
position of the user inside a building.
Indoor navigation is being developed by some companies, some
work is already being tested, like
the Nokia solution, and others are just, for now, internal use
only (Microsoft).
Microsoft prototype called GoMaps Indoor Navigation, obtains the
location reading a proprietary 2-
D barcode, and by inserting the destination, it gives the
shortest path that leads the user to the
final destination.
Nokia solution for indoor navigation is based on Wi-Fi. Until
now, they have already mapped more
than forty big buildings around the world and they are starting
to map the first airports, shopping
centers and universities. The system is now working, as an
experiment, in a shopping center in
Helsinki.
In this project a mobile system solution is presented to make
indoor navigation possible in an
academic environment, namely the I block of the Department of
Electrical Engineering in FEUP. It
was developed with the aim of being used for room localization
and showing the shortest path.
The project is divided in two parts;
- Android main application;
- Web portal.
The main application can be downloaded from the web portal and
installed in an android mobile
phone. After the download, the android uses a free and open
barcode standard to define the
starting position that can also be inserted directly by hand,
and then autonomously the application
-
6
leads the user to his destination. The web portal can also be
used to simulate paths, consult
system related info and see if teachers are available at their
office. This last feature is shared
between the web portal and the android by internet
connectivity.
What distinguishes this project from the others is the cost,
ease of implementation, scalability, a
friendly graphic user interface and a web portal that serves as
an auxiliary platform to the mobile
application.
In this document we will present the project interface including
different technologies used on the
implementation, describe why and how they were integrated into
this mobile navigation system and
present performance tests.
It's intended that this project will keep being developed,
expanding it to other buildings, services
and features.
-
7
Background research
Indoor navigation is a case study that is growing every day. A
careful investigation about all the
existing technologies, their advantages and limitations, was
needed. There are numerous
technologies available for user tracking and positioning. An
effort was made on choosing free and
open source technologies. With these criteria two main
objectives could be satisfied: reduced costs
of the final application and have a flexible and versatile
platform that could satisfy future
developments.
This section describes various techniques for positioning and
navigation that have been
researched before and are applicable to this project.
Positioning technologies
RFID
Radio-Frequency Identification its an automatic identification
system with a reader and a tag. The
tag can be passive, with no battery and small range, or active,
with bigger range but with the use of
a battery. To use RFID in a location system would mean that that
all the users would have a RFID
card always with them, a guest or a new user would have to get a
card and only after could start
using the system, all readers would have to be placed in
strategic spots in the building, which
would increment the systems costs significantly.
GPS repeater
A solution that is being studied is the use of GPS repeaters.
With this technology, regular GPS
systems could be used but it would demand a higher cost for the
building owners to install the
repeaters.
Infrared
Studies to implement infrared as location system have already
been made. It uses an active badge
system that emits a signal every 10 seconds to sensors placed in
all the building. The receivers
sensitivity to sunlight limit the functionality of the IR, due
to the technology low range, a large
number of sensors is required increasing substantially the cost
of the entire location system.
Wi-Fi
A Wi-Fi network can be used as a location system by measuring
the strength of the signal in at
least three different access points. The signal strength is
converted to a number, known as
received strength signal indicator (RSSI). There is no standard
conversion between RSSI and the
actual received signal strength and this value is different for
every manufacturer. Wi-Fi technology
is now present in most complex buildings, and it receives
signals through walls.
-
8
Signal strength is affected by walls, so the signal strength and
location of the access points had to
be subject to a survey.
Barcodes
Barcode can be used as a static positioning technology by
spreading different barcodes in the
building. It respects several industry standards, are easy to
implement and low cost associated.
It can use the built-in camera on mobile phones to photograph
and then decode the barcodes on
the device itself.
For barcode processing, free libraries available. The one chosen
for this project is ZXing zebra
crossing that is a free and open-source java library for reading
and decoding barcodes.
The use of this barcode decoding library will be focused on
getting and decoding a 2d barcode
(QR-code) with positional and other related information. This
library has also the benefit of being
developed by a Google team with focus on the Android platform
which by itself guarantees a good
level of interoperability with the main platform.
It has shown considerable acceptance by Android developers, with
preeminent use on top 8
market applications like: ShopSavvy and CompareEverywhere.
This integration can be via the use of Android Intents, thru the
already developed Android
Barcode Reader, or by incorporating the library in our own
code.
Mapping techniques
An important part of a navigation system is the map. Having a
good map is crucial to the success
of an application. Presenting an friendly interface to the user
is necessary for an intuitive position of
the map relative to other locations (latitude and longitude,
elevation, floor number, orientation) so
the user can know his exact location and from there follows the
desired path. Information can be
shown to the user in several ways, each one with their upsides
and downsides.
Text
Give the directions by text is very useful on old mobile phones
without image capabilities, but on
the other hand, the user would need to keep his eyes on the cell
phone to read all the indications.
Only reading can also cause misunderstanding of the correct
information and it can be quite
ambiguous in the starting point.
2D maps
Two dimensional maps are the ones which offer the best
cost/benefit relation, are easy to obtain or
to create. The information that can be gathered from a map image
is primarily the floor plan of a
building. These kinds of maps are frequently used to show routes
to the user, combined with text
they offer a very user friendly way to show information.
-
9
3D maps
Three-dimensional building models aggregate more information
than two dimensional models, can
be well read and understood. Floor connections, heights and
scale are present, but they are hard
to get, build and process, making them very expensive when
compared with 2D models.
Routing algorithm
Dijkstras Algorithm
A graph is an abstract representation of a set of objects where
some pairs of the objects are
connected by links. The interconnected objects are represented
by abstractions called vertices and
the links that connect the vertices are called edges.
In this project a graph is given by vertices as dots, and the
edges as lines connecting the dots.
There are many different ways to draw the same graph. Graphs are
good for modeling many
different things. For example, you can use graphs to model the
Web by thinking of every website
as vertices and edges between vertices as hyperlinks, or like in
this project use graphs to draw the
paths to take inside the building, the vertices/nodes being
rooms or points of interest and the
edges the connections between those nodes.
A path from x to y is a way to get from x to y following edges
of the graph, without visiting the same
vertices twice.
Fig. 1
Floyd-Warshall Algorithm
This algorithm its used to resolve the calculation of the
shortest path between all the pairs of
vertices of the graph with the respective weights. The
calculation of the path value between two
vertices its the sum of the values of all edges along the path.
The edges may have negative
values but the graph cant have any negative cycle. It allows for
each pair of vertices the
calculation of the lowest path of all paths to between the
vertices.
It does so by incrementally improving an estimate on the
shortest path between two nodes, until
the estimate is known to be optimal.
-
10
Bellman-Ford Algorithm
This algorithm also calculates the shortest path. Its normally
used when there are edges with
negative weights. It determines the best adjacent vertices (next
hop) in the path for each destiny.
Its distributed, interactive and asynchronous.
Ford-Fulkerson Algorithm
This algorithm says that as long as there is a path from the
source (start vertices) to the sink (end
vertices), with available capacity on all edges in the path, it
will send flow along one of these paths.
Then find another path, and so on. A path with available
capacity is called an augmenting path.
-
11
Project overview and design
This chapter presents the project overview, which contains the
goals and objectives of the project,
as well as the general design of the system. The project is
split in two parts Android and Web
Portal:
Android
Goal
The main goal of the indoor navigation system is to allow people
to navigate themselves around
unfamiliar places. In the development of this project we were
always careful to do an
implementation that would be intuitive for users and at low
cost. A development of this system,
Voice Navigation, was given a special attention for impaired
persons.
Objectives
To function as intended, the system must meet four primary
objectives:
o Be able to accurately determine its location in a
building;
o Guide a user along the shortest path to the destination;
o The device must have an intuitive user interface;
o Web Interface to download the application.
The first objective is to be able to locate the user in a
building. The user should give his location
using a barcode or the room identification and the device should
be able to locate its exact position
in relation to the map of the building.
The second objective is to use routing algorithms to be able to
guide a user along an optimal path
to their destination by finding the shortest path.
The third objective is to create a user interface that is
intuitive. User must be able to tell where he
is and be helped in the choice of possible destinations
(services, staff room, classroom, etc.), and
the device must be able to show the user a route to it.
And the fourth and last objective is to create a web interface
that allows a user to download the
application and simulate the route from a remote site.
-
12
Design
Communication
Design
User interfaceDataPositioning
Maps Teachers tablePointsZxing / Hand
InsertWi-Fi / Internet
Help Online teachers
Djiktras algorithm
Navigation
Data Search
Android
HTC
inFEUP
Fig. 2
In the image above is possible to see the design of the project
system. The project will be split into
four big parts.
Each subsystem has its own specific requirements. The User
Interface shall operate on an Android
smartphone. The interaction between the user and the UI should
be intuitive avoiding wasting time
learning how to use the device. The user is allowed to select
his position and choose his
destination within the search for rooms, services or teachers.
Finally the UI must be capable of
displaying the path on a 2-D map.
On the Database the user will have, the nodes for the
calculation of the shortest-path algorithm,
the list of teaches and their information, and shall also have
the maps of the building.
The positioning subsystem can be used in two different ways. In
one hand if the user is able to
take photos he can take a photo of a barcode that will be placed
at strategic points, and the device
should be able to decode the barcode into valid information and
search in the database for the
exact position. In the other hand, if the user sees the
identification of the place, the professor room
name, he can enter the position directly.
The navigation system will calculate internally, through
Dijkstra's algorithm, the shortest path
between the user's position and its destination. The application
shall navigate using the building
maps and the specific nodes (they will be placed at entrances,
exits, in front of points of interests
and inside each room) that are available in the database.
Finally the Android application shall be able to support a
communication link with the Web Portal.
Later on it will be exemplified how this link works. The
communication by 3G/Wi-Fi is important
because the device should have internet connection to download
the inFEUP application and to
implement one of its features: knowing the teacher's online
availability.
-
13
Web portal
Goal
The main goal on the development of the web portal was to have a
platform to support the Android
application.
Objectives
To support the Android main application, several objectives were
proposed:
- Show the shortest path between two locations;
- Host the mobile main application for download;
- Show the presence of a teacher in his office;
- Android application manuals and help.
The first objective pretends to give the user more platforms to
simulate the desired path. With the
web portal a preview study of the path can be made.
For the application to be publicly available, a user friendly
platform was needed to fulfill that
requirement.
On every teachers office at FEUP, a personal computer is
available to each professor, using them
the teacher can update his status to Online or Offline.
Help can be consulted at anytime in every place with an internet
connection.
Usage
There are several permissions in the system usage:
1. Not registered user;
2. Registered user;
3. Teacher;
4. Administrator.
1 Not registered user
A not registered user is the most limited level. With this
level, a user can download the android
application, search for the shortest path between two points and
consult the help.
2 Registered user
A registered user has the same permissions as the not registered
user plus the option to see if a
teacher is available at his office.
Every user can make a registration.
-
14
3 Teacher
Only system administrators can register teachers in the system.
A teacher can see if other teachers
are available, and can change his status to Online or
Offline.
4 Administrator
This is the top level. The system administrator has access to
all the functionalities, can register the
professors in the system, and update system locations.
Design
Plan Building UsersProfessors
List
Database
Graph
NodesRooms
Normal
UsersProfessors
Users
Algorithm
Djisktra
Interface
HelpSimulation
Teachers status
Fig. 3
The Web Portal was built under the idea that it should give a
support role for the Android
Application. For the implementation of this web portal, a server
with the following technologies was
used:
- Apache 2.2.11;
- PHP Version 5.3.0;
- MySQL Version 5.1.36.
This server is prepared to answer to requests from the web
portal or android.
As shown in the above figure, the Web Portal has three
subsystems, database, algorithm and the
interface. The database was built with phpmyadmin. Its purpose
is having elements to build the
path, like the nodes and rooms, and also information relative to
users of the system thats why, as
seen in the above figure, the database is divided in three
subsystems.
- Plan Building
o The database was built with phpmyadmin. Its purpose is having
elements to build
the path, like the nodes and rooms, and also information
relative to users of the
system thats why, as seen in the above figure, the database is
divided in three
-
15
subsystems. The Plan Building where the graph nodes and rooms
are. Users level
that can be normal ones, or professors and their status (in or
out the office).
Information like Professors List is also contained in the
database.
o Where the graph nodes and rooms are. Users level, professors
list and status (in
or out the office) or just logged users using at that moment the
web portal
functionalities are information stored in the database.
- Algorithm.
o This is considered a subsystem because it represents what the
Web Portal does.
Its because of this algorithm that the simulation is possible.
It makes the link
between the nodes and the shortest path that is shown to a user.
The used
algorithm, as been told before, is the Dijkstra algorithm.
- Interface
o This subsystem makes the link between what the user can see
and the database.
The interface is divided in two relevant subgroups. Simulation
and Help. The
simulation its where the Djisktra algorithm work is present, and
the database Build
Plan is shown. Its also where users can see each teachers state.
Help represents
an important role by having most of the web portal and android
systems information.
Communication
The communication in our system is represented in the above
image. The internet represents an important role in there. The web
portal and database are hosted in the server that is connected to
the internet. The user can access the system via web portal using
his personal computer or another device with internet connection
and a web browser. The Smartphone needs the internet connection for
downloading the application, it also can be downloaded from another
device, like a laptop and afterwards copied to the Smartphone.
Fig. 4
-
16
Implementation
Technologies
ANDROID
Android is a free and open source operating system for
Smartphones that runs on the Linux kernel
and that allows developers to write code in Java programming
language using the Android libraries
and the free SDK (Software Development Kit). The Java
programming language has a large
community around it, and it is multiplatform, the source code
can be used to a Smartphone
application or to a computer application.
The number of users and devices using this platform is
increasing every day, not only because its
free, but also because of the system capabilities, features like
GPS, compass, camera,
accelerometer, between others, are built in the platform
(hardware dependent). This features being
already in the platform, makes it a good choice for this project
objectives.
JAVA/DALVIK
Java is a multi-platform, object oriented, programming language.
Being a multi-platform language,
it runs on several architectures, from computers to mobile
devices. By using this programming
language we have access to a large community creating new
applications everyday, and the
developed code can be used directly in the mobile device or it
can be run in a PC.
The interpreter for Java on Android is called Dalvik, and
although not being byte-code compatible
with the default Java compilers, it is compatible with most of
the Java language and standard
libraries.
Java/Dalvik is also the defacto programming language for
developing applications on the Android
platform so our choice for using this technology is obvious.
ANDROID SDK
This is the default software development kit available for the
Android platform. The Android SDK
includes a comprehensive set of development tools. These include
a debugger, libraries, a handset
emulator, documentation, sample code, and tutorials. Currently
supported development platforms
include x86-architecture computers running Linux (any modern
desktop Linux distribution), Mac OS
X 10.4.8 or later, Windows XP or Vista. Requirements also
include Java Development Kit, Apache
Ant, and Python 2.2 or later.
Although there is another development kit, the Android NDK, that
allows development in other
languages (C/C++, etc) besides Java and in a more low-level
approach, this was not deemed
necessary in our application development.
-
17
ECLIPSE
The officially supported integrated development environment
(IDE) for the Android platform is
Eclipse (3.2 or later) using the Android Development Tools (ADT)
Plug-in, though developers may
use any text editor to edit Java and XML files then use command
line tools to create, build and
debug Android applications as well as control attached Android
devices.
It is based on Java programming language so its multi-platform,
meaning that the same project
can be written in different machines, different operating
systems in a collaborative way using the
same IDE.
We chose Eclipse for being free and open source, multi-platform
and for being the defacto
development environment (IDE) for the Android platform.
ZXing
For barcode processing there are several libraries available,
the one chosen for this project is
ZXing zebra crossing that is a free and open-source java library
for reading and decoding
barcodes.
The use of this barcode decoding library will be focused on
getting and decoding a 2d barcode
(QR-code) with positional and other related information. This
library has also the benefit of being
developed by a Google team with focus on the Android platform
which guarantees a good level of
interoperability with our development device.
It has shown considerable acceptance by Android developers, with
prominent use on top market
applications like: ShopSavvy and CompareEverywhere.
This integration can be via the use of Android Intents, through
the already developed Android
Barcode Reader, or by incorporating the library in our own
code.
Our choice of this library was due to the ease of integration
with our project, being already
developed in Java for the Android platform, and with given
proofs in the before mentioned Android
market applications.
QR-CODE
A QR Code is a two-dimensional matrix barcode created by
Japanese corporation Denso-Wave in
1994. The "QR" is derived from "Quick Response", as the creator
intended the code to allow its
contents to be decoded at high speed.
QR Code is one of the best supported types of barcodes in the
Zxing library. QR Codes are now
being used in a much broader context, including both commercial
tracking applications and
convenience-oriented applications aimed at mobile phone
users.
It can store different kinds of information, including URL's,
Positional data, etc.
Although not a truly open format, the format's specification was
once claimed to be available
royalty-free from its owner, who has promised not to exert
patent rights on it.
This barcode format was chosen for being free, for it's support
in the ZXing decoding library and for
it's flexibility in choosing the encoded content.
-
18
Fig.5
In fig.5 is possible to see on the left the barcode
corresponding to the entrance and on the right the
one corresponding to one of the elevators.
XML
XML (Extensible Markup Language) is a set of rules for encoding
documents electronically. XMLs
design goals emphasize simplicity, generality, and usability
over the Internet. It is a textual data
format, with strong support via Unicode for the languages of the
world. Although XMLs design
focuses on documents, it is widely used for the representation
of arbitrary data structures, for
example in web services.
We use XML as the base format / structure for the application's
database, namely for the
node/paths graph and related information storage and also for
the Android - Web Portal
interface/communication.
We chose XML for it's simplicity, ease-of-use, extensibility and
interoperability between different
platforms and devices.
Web Portal
MySQL (My Structured Query Language)
Its a relational database management system that allows storing
data in separate tables instead of
storing data in just one place, which gives higher speed and
flexibility. MySQL is open source and
uses SQL language as Interface. The motive of using MySQL is
based mainly on the fact of being
fast and reliable.
Characteristics:
Source code written in C and C++ and tested with many different
compilers;
Fast memory allocation system and based in processes;
Memory hash tables that are used as temporary tables;
Its easy to add other storage mechanisms;
Accepts many types of fields: Int, float, double, char, etc;
Fixed or variable size registers;
TCP/IP connection to MySQL;
-
19
Advantages:
Works in many Frameworks;
Supports many processors;
Supports till 16 indices by table;
Freeware;
Disadvantages
MySQL does not support ROLE, COMMIT, and Stored procedures in
versions less than 5.0;
PHP (Hypertext Preprocessor)
Its a language that allows the creation of dynamic web
applications, helping the interaction with
the user through forms, input parameters, and other
characteristics. The main difference between
PHP and other similar languages its that PHP is executed on
server, being sent to client only the
HTML code. In this way its possible to interact with existing
database and server applications. The
fact of being executed on the server allows users with low
processing PCs to execute those
applications, using for that, basically, a internet browser.
Besides the fact of PHP being an Open Source programming
language one of its great advantages
its being multi-platform. It runs in Windows, in Linux or UNIX
as well as other operative systems.
PHP also presents other interesting advantages:
Easy learning;
Easy access to data;
Speed and robustness;
Open source code;
Despite the many advantages it has also some disadvantages:
Compatibility between versions;
Security;
Web Services;
JavaScript
Its a programming language developed with the intention of
increasing interactivity of Web pages.
Javascript can create an active interface with the user,
validate forms or control the browser with
the opening or closing of windows for example. Its used with
scripts inside HTML documents.
Advantages:
Java syntax;
Multi-platform;
-
20
Commercial Application;
Disadvantages:
Archive operations not allowed;
Reserved words cant be used as name of variables or
functions;
Lack of standardization;
Programming Environment not friendly;
Limited Functionality;
Graphical user interface
The main application was tested in the HTC Magic phone. HTC
Magic phone is an Android
Smartphone device with touch screen interface.
To be able to install and use the indoor navigation it's
necessary that the user has internet access
to download the application from the web-portal. After
downloading, the application can be started
from the Android application list. In the application home
screen, the user will have four options to
choose:
- Navigation: here the user will have the menus to define the
route start and finish points,
and see the shortest path route. The information must be
fulfilled in the following order:
Fig. 6 Fig. 7
-
21
Fig. 8
o Start point: it must be the first option to fulfill. The start
point can be inserted by
writing it or using the barcode reader;
Fig. 9
o Finish point: second option to fulfill. The path destination
can be inserted by writing
the teachers name, room number or other services;
-
22
Fig. 10
o See route: after the other two options had being fulfilled,
the user can use this to
see the result path. An oriented line will appear indicating the
right way and
direction. To assist the use in the navigation, voice
instructions are also given. The
embedded phone scroll can be used to browse all the map.
Fig. 11
- See map: the I block map is showed. To optimize battery usage,
a black background was
used on the maps.
-
23
Fig. 12
- Preferences: the accessibility option can be set, and in this
case, the paths will elevators
will be preferred, and the web portal link can be defined.
Fig. 13
- Help: this option requires internet connection, since it will
redirect the user to the web portal
help section.
-
24
Web portal
Web Portal Interface The basic menu is shown in the next
image
Fig. 14
Home The main page of the web portal has the mobile application
for download and it can be used to
post updated news. It contains also a short introduction to the
project and web portal.
Simulation Here the user can see the shortest path between two
locations, if a teacher is available at his office
and, for example, search for the closest printer.
Development Here, the user can find some information about the
team who develops the system and some
challenges that appeared.
Register To register, a user will have to click in the menu
Register and fill in the fields. In case that the
username already exists, it will ask the user to choose another
one. There cannot be two equal
usernames.
Fig. 15
To have a professor level, after the registration, the user must
contact the administrator so he can
take the adequate and update the system.
Fig. 16
-
25
Login The user can do his login by filling the fields for that
purpose. There is information that will not be
available to unregistered users. He can only login if he has
already registered his username.
Fig. 17
The system identifies the permission level of the user. The
logout button will appear after the
correct login has been made.
If it's a teacher making the login, he will have extra options
like mentioned before, for example
saying if he is available in his office.
Fig. 18
Simulation In this option, the user can do a simulation of
paths, and on the left side, will have a table of online
professors at that moment. This table will be only visible to
the logged-in users.
-
26
Fig. 19
To do the path simulation, the user can use the mouse, by
clicking on the start and destination
place, or he can write the starting point (entrance or a room),
and as destination, the teachers
acronym, room number or a printer.
-
27
Fig. 20
The shortest path will appear printed on the map, and when
necessary, in several maps. To
navigate between them, arrows will appear on the right, and when
necessary for better
comprehension, instructions will also be present on the right
side.
-
28
Fig. 21
At any time, the users can consult online help, which explains,
step-by-step, how to use the web
portal and has the full list of the teachers acronyms. The web
portal help also hosts the mobile
application help.
An accessibility option is also present, to use it, in the
beginning of the simulation there is a
checkbox with that option, enabling it, stairs will be avoided
for optimized user paths, using only
elevators to travel between floors. This may be very useful for
handicap people.
-
29
Testing and Results
In order to verify the system and its functionalities described
on previous topics several tests were
done during the development.
In the Android tests, we realized some errors, namely: setting
the right coordinates on the map,
malfunctions in the routing algorithm, errors in the map drawing
functions.
However after several endurance testing and debugging we
achieved satisfactory results in both
the drawing and routing functionalities.
After that we started implementing additional functionalities,
like text and voice navigation, that also
were giving satisfactory results.
-
30
Development Activity
The elected team leader was Marcos Brito. He is responsible for
task distribution inside the group
and by collecting the sub-groups final work in the imposed
dates.
The group was divided in two main sub-groups:
- Android;
- Web Portal.
Despite the splitting of the group almost all persons can
contribute to the work done by the other
sub-groups. And for this reason the whole group met every
Thursday at 11am to discuss the work
in progress. (ie: if android works, including the interfaces)
and to receive inputs and opinions.
Corsino Carlos Ferreira Martins
Web Portal o Navigation node/paths definition
Android o User Interface development
Documentation o Initial research and development o Initial
Presentation structure o Final Report research and development
documentation o Web Portal development, objectives, requirements,
functionalities
Cristiana Monteiro Silva Ramos
Android o Initial Research & Development o Navigation
node/paths definition o User Interface development o Route-to-text
instructions algorithm development o Barcode creation
Documentation o Shortest Path algorithm research o Android user
help o Presentation structure and development o Specification &
Final Report structure and development
Jalson Duete Martins Moreira
Android o Help in development of Path drawing
Documentation o Initial Presentation structure
Lus Filipe Ferreira de Bastos
-
31
Web portal o Initial Research o Structure and development o
Integration of Dijkstra Algorithm o Drawing of path
Documentation o Shortest Path algorithm research o Specification
& Final Report development o Web portal help and other
documentation
Marcos Miguel Barros Brito
Android o Initial Research & Development o Research &
Development o User Interface development o Path drawing
Documentation o Shortest Path algorithm research o Specification
& Final Report research
Nuno Miguel Vieira da Fonseca
Android o Initial Research & Development o Zxing Barcode
reader integration o Shortest Path algorithm development o Node /
Path database integration and format conversion o User Interface
development o Route-to-text instructions algorithm development o
Route-text-to-speech development o Android Web Portal
integration
Documentation o Specification & Final Report development and
proofing
Ricardo Oliveira de Almeida
Web portal o initial research o structure and development
Documentation o Shortest Path algorithm research o Specification
& Final Report development o Web portal help and other
documentation
-
32
Conclusion
From the integration of existing systems, it was proposed to use
the idea of the indoor navigation
system that would allow people to navigate themselves around
unfamiliar places. As main
objectives, the application must be able to accurately determine
its location in a building, guide a
user along the shortest path to the destination. Also the device
must have an intuitive user
interface and as assist help a web-portal interface.
To achieve our objectives we made an extensive research about
all existing techniques and
technologies. As the next stage we chose the solutions to use on
the implementation in order to
keep the program simple and low cost. In the implementation
stage the various subsystems were
developed and integrated with each other. In the final stage we
verified the functionality of each
implementation made. After the tests we were able to improve our
program by implementing new
features.
As we described before, several techniques and technologies were
considered for accomplishing
this first objective. The decision was made taking into account
the cost and usability of the
Smartphone application. Based on the reasons argued previously
we decided for the barcode
technology. When the user is in a focus point he can take a
photo of the barcode and the device is
able to locate the right position.
With the help of the software Freehand, Excel and a custom
developed application we were able to
plot the edges and nodes of our. Dijkstras algorithm was chosen
for its low computational
complexity, its guarantee of determining the optimal path, and
potential for efficient handling of
sparse graphs.
The user interface was developed using the open source Google
Android SDK which enables
software development in a simple way to be easy to use for all
users. The user will be able to
determine their location, select a destination from a database
of professor, service and rooms, and
follow the route that the device determines.
Related to the Web Portal it can be said, that it works as an
auxiliary tool for the Android
Application. However, it can be very useful, for example, if you
are not in I Block of FEUP.
Imagining the user is in his home on his pc with a internet
connection, he can enter the web portal
and see a preview of the path that he intends to follow, and for
that, he just needs a browser. In the
web portal implementation there were no relevant problems. What
took more time was the Dijkstra
Algorithm implementation.
In a general way, we can say that we fulfilled our main
objectives and we were able to improve on
the program. Our project is ready to be used and extended into
other areas.
-
33
Future Directions
This project was developed in the discipline of LISI to allow
people to navigate themselves around
the I block of the Department of Electrical Engineering in FEUP
but there are several directions for
future research relevant to this project. It can be developed
into a highly commercial services. The
application can be implemented to finding services and products
in large places.
To require less intervention from the user and permit a real
time updated map location we could
improve the way to find the user by detecting the location by
triangulation of the Wi-Fi access
points. Thus would facilitate to integrate this application into
a large mapping system for an entire
city that integrates outdoor GPS based systems with multiple
indoor navigation systems.
-
34
Bibliography
The Web has been the biggest source for further research by the
team. Thus the addresses
of sites visited are listed below:
1 Wikipedia (online). http://www.wikipedia.org/
2 Microsoft indoor navigation application
http://blogs.msdn.com/lokeuei/archive/2009/08/25/gomaps-indoor-navigation.aspx
3 NAVindoor:
http://www.ssf.fi/pages/index.php?fid=23&pid=4
4 Dijkstras algorithm:
http://www.cs.sunysb.edu/~skiena/combinatorica/animations/dijkstra.html
5 ANNAs Project: http://code.google.com/p/annas/
6 Android home page: http://www.android.com/
7 Barcode library: http://code.google.com/p/zxing/
8 Barcode library: http://zbar.sourceforge.net/
9 Barcode library: http://bisqwit.iki.fi/barcode.html
10 Barcode library: http://www.ashberg.de/php-barcode/
11 Barcode library: http://www.gnu.org/software/barcode/
12 Barcode library: http://en.barcodepedia.com/
13 RFID: http://www.ansae.co.uk/eyeglass/lps.html
14 Nokia indoor navigation Project:
http://www.mobilewire.co.uk/04-06-2009-nokia-pilots-indoor-mobile-
navigation.html
15 Shortest path algorithms:
http://www.mpi-inf.mpg.de/~sanders/courses/algdat03/maxflow.pdf
Contact with specialist teachers in some of the areas involved
this project.
All information on the methodology for the development of the
project was obtained in the classes
of 'Laboratrio de Integrao de Sistemas', taught in 2009/2010 in
the 5th year of MIEEC.