IndoorOSM on Android

From OpenStreetMap Wiki
Jump to navigation Jump to search

Link to the GSOC proposal:

Project Overview

Though mapping all parts of the world may still be a challenge, cities are quickly getting mapped in details. The next big step for mapping is to go indoors. I am really fascinated by the idea of being able to navigate through a building by using a GPS kind of device. The project I am proposing here is a step in that direction.

A part of this indoor localization puzzle is mapping the indoors. OSM is doing a great job in mapping outdoors and this effort can be extended to the indoors as well by using the same infrastructure. In fact some work has already been started to this end and it can be found here http://wiki.openstreetmap.org/wiki/IndoorOSM. The main purpose of such an application is to make it easy enough for the OSM community to pick it up easily and start mapping the indoors. An web based application for this Indoor OSM data can be found here http://indoorosm.uni-hd.de/. This approach extends the current model of nodes, ways and relations to map indoors by defining new entities to tag the indoors.

My project will be to port the 2-d web based application to the Android platform. Currently the web application is customized for use for only one building. The Android app will however be more general allowing any mapped building with any number of floors to be viewed from the app. It will also have a calculate route function. On top of this basic functionality, we will allow for building maps to be locally saved on the phone. A social layer can also be added as an extra feature to find out if your friends are in the same building.

How I envision it is, when a person using the application is in a building which has been indoor mapped, the map of that building loads and the UI is similar to the web application. The person can then see the levels or compute routes from one part of the building to another. Also I will be extending the ontology mentioned in the IndoorOSM wiki to include more information like Wifi Access points etc. which might later be helpful in extensions such as indoor localization and GPS like indoor-navigation.

Student

Ishan Agrawal http://wiki.openstreetmap.org/wiki/User:Ishanagrawal90

My CV http://wiki.openstreetmap.org/wiki/File:CV_Ishan_Agrawal.pdf

Proposed Timeline

My exams end on May 1st week.

May7 to May17 (10 days) - studying the specifications and the code, and discussions with the mentor and community on its interpretation and how the final workflow would look like when implemented.

May18 to May28 (10 days) – Enhancing the ontology and mapping known buildings to indoor using that ontology to ease the testing of any further development.

May28 to June 18 (3 weeks) – coming up with the prototype (first version) Android app. This application should be able to load the specific building map according to the location and switch levels.

June 18 to July9 (3 weeks) –based on the feedback of previous iteration, improvements and modifications (2nd version). Also buffer time for any glitches before mid-term evaluation.

July9 to July23 (2 weeks) – Adding computing and displaying route and doing extensive testing.

July23 to July30 (2 week) -Enabling saving building maps to work offline.

July23 to Aug13 (2 weeks) – Tying up loose ends, ensuring the code is integrated, documented and available on the public repositories. Extra feature if time permits, adding a social layer where people can find out if there friends are in the same building.

Aug13 to Aug20 (1 week) – Buffer week.

Features

Indoor Maps with levels

Indoor maps of the building user is in are displayed. User can switch levels.

Route calculation

User can see a route from one part of the building to another.(Similar to the web application)

Offline functionality

The mapped can be cached for offline viewing for the user.

Social plugins

User can find his friends in the building using the application.

Future Work

Indoor localization and navigation which enables you to find out where exactly in the building you are, and can help you to navigate to another place in the same building. I am currently working on a indoor localization application for my research project at my university. I would like to extend the OSM app created in this project to include a easily deployable and scalable indoor localization system in the future. A summary and critique of the current methods for localization can be found in a report I wrote for my research here. http://wiki.openstreetmap.org/wiki/File:Indoorlocalizationprojectproposal.pdf

Other ideas for IndoorOSM

- Improvements to the mapping process by making plugins more customized for indoor map editor. Right now the process is a bit tedious. Adding a room should be as easy as adding a POI on the OSM.

- PhoneGap can be used for the proposed Android application so it is portable to other platforms. Some reasons why I think a native application will be better.

1) One of the features of the app is, that it is extensible to include indoor navigation and localization later. This would require the application to use sensors on the phone. Phonegap does not provide api's for sensors like gyroscope and barometer. Phonegap also does not have an api to measure wifi signal strengths, which is one of the main methods for indoor localization.

2) Offline functionality - local storage as key-value pairs is allowed in phonegap, but from what I gather from forums on the internet its not very friendly with offline functionality, since the web applications ported require internet. The web application needs to be modified for offline functionality.

3) Computation - With localization later the application will be more computation intensive, and Mobile Jquery is slower compared to a native application.

In conclusion, I don't think it is a good idea to go with a phonegap application as it would depend on the phone gap api and its limitations which might affect the functionality of the localization feature that can be implemented later. I would really like to extend this application to be able to have a easily deployable and scalable indoor localization feature in the future and i think our current application should be extensible to do that