PROJECTE FINAL DE CARRERA
Improvement of algorithms to identify transportation modes for MobilitApp, an Android Application to anonymously track citizens in Barcelona
Degree: Telecommunications Engineering Author: Gerard Marrugat Torregrosa Director: Mónica Aguilar Igartua Co-Director: Silvia Puglisi
Date: May 2016
Dedicated to all friends, colleagues and family who are always supporting me
Resum del projecte
MobilitApp (http://mobilitapp.noip.me/) es una aplicació Android que té com a objectiu obtenir dades de mobilitat dels ciutadans de l´Àrea Metropolitana de Barcelona. En aquest projecte ens hem centrat en la recerca d’algoritmes més fidels i robustos en la decisió del mitjà de transport utilitzat per l’usuari basant-nos en tècniques d’accelerometria.
L’algoritme desenvolupat agafa dades de l’acceleròmetre i giroscopi del mòbil i les guarda en un fitxer que posteriorment es enviat al servidor. Aquest procediment es realitzà en segon pla sense interferir en l’activitat principal de l’aplicació. Les dades recollides i emmagatzemades al servidor han sigut processades i utilitzades per a realitzar un anàlisi del comportament del patró de mobilitat que té cada medi de transport. El resultat obtingut han sigut uns paràmetres que permetran modelar l’activitat de cada mitjà i dissenyar un algoritme de detecció de la modalitat de transport que utilitzi informació obtinguda a partir dels sensors del mateix mòbil.
L’aplicació segueix realitzant la seva funcionalitat principal, la monitorització de les dades de mobilitat dels ciutadans. En futures versions s’integrarà en local la solució a la detecció del mitjà de transport proposada, d’aquesta manera l’aplicació farà ús d’informació que pot obtenir del mateix dispositiu i així no dependre d’altres serveis.
1
Resumen del proyecto
MobilitApp (http://mobilitapp.noip.me/) es una aplicación Android que tiene como objetivo obtener datos de movilidad de los ciudadanos del Área Metropolitana de Barcelona. En este proyecto nos hemos centrado en la búsqueda de algoritmos más fiables y robustos en la decisión del medio de transporte utilizado por el usuario basándonos en técnicas de acelerometría.
El algoritmo desarrollado coge datos del acelerómetro y el giroscopio del móvil y los guarda en un fichero que posteriormente es enviado al servidor. Este procedimiento se realiza en segundo plano sin interferir en la actividad principal de la aplicación. Los datos recogidos y almacenados en el servidor han sido procesados y utilizados para realizar un análisis del comportamiento del patrón de movilidad que presenta cada medio de transporte. El resultado obtenido han sido unos parámetros que permitirán modelar la actividad de cada medio y diseñar un algoritmo de detección de la modalidad de transporte que utilice información obtenida a partir de los sensores del propio móvil.
La aplicación sigue realizando su funcionalidad principal, la monitorización de los datos de movilidad de los ciudadanos. En futuras versiones se integrará en local la solución a la detección del medio de transporte propuesta, de esta manera la aplicación hará uso de información que puede obtener del mismo dispositivo y así no depender de otros servicios.
2
Abstract
MobilitApp (http://mobilitapp.noip.me/) is an Android application whose objective is to obtain mobility data from the citizens of the metropolitan area of Barcelona. The current project is based on the research of more trustful and stronger transport decision algorithms using advantages of accelerometry techniques.
The developed algorithm reads data from the mobile’s accelerometer and gyroscope and writes it in a file that is afterwards sent to the server. This process is executed in background without interfering in the main application activity. Collected data has been processed and used to analyze the behaviour of the mobility pattern of the distinct transport modalities. The obtained result has been parameters which allow us to configure a model for each mean activity and designing a transport mode detection algorithm which would use information obtained from the mobile´s own sensors.
MobilitApp is still executing its main functionality, monitoring mobility data from the citizens. In future versions the solution proposed to detect the transport systems will be integrated into the application, in this way the app will work with information obtained from the device and will not depend on any other services.
3
Index Resum del projecte ...... 1 Resumen del proyecto ...... 2 Abstract ...... 3 List of figures ...... 7 List of tables ...... 9 Glossary of acronyms ...... 10 1. Introduction ...... 13 2. Mobility Area ...... 15 2.1 Smart Cities and Mobility ...... 15 2.1.1 Smart City Concept ...... 15 2.1.2 Smart Mobility ...... 15 2.2 Mobility Applications. State of the Art ...... 17 2.2.1 MobilitApp ...... 17 2.2.2 Moovit ...... 18 2.2.3 Citymapper ...... 19 2.2.4 Waze ...... 20 2.3 Conclusion about Smart Solutions on Mobility Applications ...... 21 3. Accelerometer Sensor Listener ...... 23 3.1 MobilitApp Architecture...... 23 3.1.1 APIs. Application Programming Interfaces ...... 23 3.1.2 MobilitApp Workflow ...... 25 3.2 Local Data and Modeling Transport´s Behaviour ...... 32 3.3 Listening Mobile Sensors ...... 33 3.3.1 Motion Sensors on Android devices. Accelerometer & Gyroscope ...... 33 3.3.2 Accelerometer Sensor Listener Development ...... 34 4. Upgrading MobilitApp ...... 43 4.1 Including the Accelerometer Sensor Listener ...... 43 4.1.1 Sensor Data and Sensor Data List ...... 43 4.1.2 Select Transport Fragment ...... 45 4.2 Accelerometer Sensor Listener Running in Background inside MobilitApp ...... 47 4.2.1 Initializing MobilitApp ...... 47 4.2.2 Calling Accelerometer Sensor Listener ...... 47
4
4.2.3 Sensor Listener Intent Service ...... 49 4.2.4 Data Storage and Uploading Files to Server ...... 51 4.3 Technological Infrastructure ...... 52 5. Analyzing Mobility Data ...... 55 5.1 Collecting Data ...... 55 5.1.1 Description of the Context ...... 55 5.2.1 Statistical Analysis of the Sampled Data ...... 56 5.2.2 Representation of the Horizontal Acceleration Magnitude ...... 60 5.2.3 Results for each modality ...... 63 5.3 Mobility Patterns ...... 79 5.3.1 Interpretation of the results ...... 79 5.3.2 Classification Diagram ...... 79 6. Conclusions & Future Work ...... 81 6.1 Conclusions...... 81 6.2 Future Work ...... 81 7. References ...... 83 8. Annexes ...... 87 Annex A – Setting a server up with Raspberry Pi ...... 87 1. Introduction ...... 88 Hardware ...... 88 Software...... 88 2. Raspbian Operating System ...... 89 Once we are inside the Raspberry Pi, we can start making the first configurations...... 92 VNC (Virtual Network Computing) ...... 93 3. Defining static IP address for our Raspberry ...... 96 4. Accessing from outside the local network ...... 100 Crate a new user and change the default pi password ...... 103 New user´s creation ...... 103 SSH Configuration ...... 104 5. LAMP Configuration ...... 105 Apache ...... 105 MySQL ...... 105 PHP5 ...... 105 Annex B – Extra Features ...... 107
5
Web Page...... 107 Promotional Video...... 109 Annex C – Android Phones, Tablets and Watches which do not receive accelerometer events in standby (screen off) ...... 111
6
List of figures
Fig. 2-1: Web Application ...... 17 Fig. 2-2: Consulting DataBase ...... 17 Fig. 2-3: Real time traffic state information ...... 18 Fig. 3-1: Axis Orientation ...... 34 Fig. 3-2: Launching ASL ...... 35 Fig. 3-3: Accelerometer Listener ...... 36 Fig. 3-4: Accelerometer Data ...... 40 Fig. 4-1: Select Transport Fragment ...... 45 Fig. 4-3: MobilitApp Web Site ...... 52 Fig. 4-2: Sensor Data Files in Server ...... 52 Fig. 4-4: MobilitApp on Google Play...... 53 Fig. 5-1: Bus Histogram 1 ...... 63 Fig. 5-2: Bus Histogram 2 ...... 64 Fig. 5-3: Bus Histogram 3 ...... 64 Fig. 5-4: Bus Horizontal Acceleration 1 ...... 65 Fig. 5-5: Bus Horizontal Acceleration 2 ...... 65 Fig. 5-6: Bus Horizontal Acceleration 3 ...... 65 Fig. 5-7: Car Histogram 1 ...... 67 Fig. 5-8: Car Histogram 2 ...... 67 Fig. 5-9: Car Histogram 3 ...... 68 Fig. 5-10: Car Horizontal Acceleration 1...... 68 Fig. 5-11: Car Horizontal Acceleration 2...... 69 Fig. 5-12: Car Horizontal Acceleration 3...... 69 Fig. 5-13: Motorbike Histogram 1 ...... 70 Fig. 5-14: Motorbike Histogram 2 ...... 70 Fig. 5-15: Motorbike Histogram 3 ...... 71 Fig. 5-16: Motorbike Horizontal Acceleration 1 ...... 71 Fig. 5-17: Motorbike Horizontal Acceleration 2 ...... 72 Fig. 5-18: Motorbike Horizontal Acceleration 3 ...... 72 Fig. 5-19: Metro Histogram 1 ...... 73 Fig. 5-20: Metro Histogram 2 ...... 73 Fig. 5-21: Metro Histogram 3 ...... 74 Fig. 5-22: Metro Horizontal Acceleration 1 ...... 74 Fig. 5-23: Metro Horizontal Acceleration 2 ...... 75 Fig. 5-24: Metro Horizontal Acceleration 3 ...... 75 Fig. 5-25: Train Histogram 1 ...... 76 Fig. 5-26: Train Histogram 2 ...... 76 Fig. 5-27: Train Histogram 3 ...... 77 Fig. 5-28: Train Horizontal Acceleration 1 ...... 77 Fig. 5-29: Train Horizontal Acceleration 2 ...... 78 Fig. 5-30: Train Horizontal Acceleration 3 ...... 78 Fig. 5-31: Classification Diagram 1 ...... 80
7
Fig. 5-32: Classification Diagram 2 ...... 80
8
List of tables
Table 3-1: Mobile Components Consumption ...... 33 Table 5-1: Bus Statistics ...... 64 Table 5-2: Bus Peak Parameters ...... 66 Table 5-3: Car Statistics ...... 68 Table 5-4: Car Peak Parameters ...... 69 Table 5-5: Motorbike Statistics ...... 71 Table 5-6: Motorbike Peak Parameters ...... 72 Table 5-7: Metro Statistics ...... 74 Table 5-8: Metro Peak Parameters ...... 75 Table 5-9: Train Statistics ...... 77 Table 5-10: Train Peak Parameters ...... 78 Table 5-11: Statistics Parameters ...... 79 Table 5-12: Road Peak Parameters ...... 79 Table 5-13: Rail Peak Parameters ...... 79
9
Glossary of acronyms
AMB Àrea Metropolitana de Barcelona
API Application Programming Interface
APK Android Application Package
APP Application
ASL Accelerometer Sensor Listener
ATM Autoritat del Transport Metropolità
C02 Carbon Dioxide
CSV Comma-Separated Values
DGT Dirección General de Tráfico
DNS Domain Name Server
GPS Global Positioning System
GUI Graphical User Interface
HTTP HyperText Transfer Protocol
ICT Information and Communications Technology
JSON JavaScript Object Notation
MySQL My Structured Query Language
PHP Pre Hypertext Processor
RMSE Root Mean Square Error
SDK Software Development Kit
SSH Secure Shell
STD Standard Deviation
UPC Universitat Politècnica de Catalunya
VNC Virtual Network Computing
Wi-Fi Wireless-Fidelity
XML eXtensible Markup Language
WPS Wi-Fi based Positioning System
10
11
12
1. Introduction
In this project, we are going to develop an Android application called MobilitApp [1] to obtain data regarding the mobility of citizens in Barcelona. In collaboration with Autoritat del Transport Metropolità, this project´s main objective is to use this data to determine mobility patterns that could be used to improve current transportation infrastructure.
Android Platform is used to develop MobilitApp for two main reasons: