Indoor Navegation System

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 Luís Bastos Marcos Brito Nuno Fonseca Ricardo Almeida

description

Research of existing technologies, their advantages and limitations, preceded the development of a new approach that uses data from the device’s 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.

Transcript of Indoor Navegation System

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