Вы находитесь на странице: 1из 34

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

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.

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

Registered user......................................................................................................................... 13

Teacher ..................................................................................................................................... 14

Administrator ........................................................................................................................... 14

Design .................................................................................................................................................. 14
Communication ................................................................................................................................... 15
Technologies ............................................................................................................................................ 16
ANDROID.............................................................................................................................................. 16
JAVA/DALVIK ........................................................................................................................................ 16
ANDROID SDK ...................................................................................................................................... 16
ECLIPSE ................................................................................................................................................. 17
3

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

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 2D 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

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.

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.

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.

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.

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.

10

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;

Guide a user along the shortest path to the destination;

The device must have an intuitive user interface;

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.

11

Design
HTC

inFEUP

Android

Positioning

Communication

Navigation

Zxing / Hand
Insert

Wi-Fi / Internet

Djiktras algorithm

Help

User interface

Data

Maps

Points

Teachers table

Data Search

Design

Online teachers

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.

12

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.

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.

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.

13

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.

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
Users

Algorithm

Interface

Database

Plan Building

Graph
Nodes

Professors
List

Users

Rooms

Normal
Users

Djisktra

Simulation

Help

Teachers
status

Professors

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

14

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

Algorithm.
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.

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

Fig. 4
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.

15

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.

16

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.

17

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;

18

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;

19

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:

Fig. 6
-

Fig. 7

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:

20

Fig. 8

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

Finish point: second option to fulfill. The path destination can be inserted by writing
the teachers name, room number or other services;

21

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.

22

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.

23

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

24

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.

25

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.

26

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.

27

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.

28

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.

29

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

30

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

31

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.

32

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.

33

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-pilotsindoor-mobile- navigation.html

15 Shortest path algorithms: http://www.mpiinf.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.

34

Вам также может понравиться