+ All Categories
Home > Documents > SISTEMA PARA LA CREACIÓN DE BASES DE DATOS DE …

SISTEMA PARA LA CREACIÓN DE BASES DE DATOS DE …

Date post: 21-Oct-2021
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
63
SISTEMA PARA LA CREACIÓN DE BASES DE DATOS DE LOCALIZACIÓN MEDIANTE HUELLAS DE SEÑAL Proyecto final de grado Escola Tècnica d'Enginyeria de Telecomunicació de Barcelona Universitat Politècnica de Catalunya por David García Álvarez En parcial cumplimiento de los requisitos para el grado de INGENIERIA EN TELEMATICA Tutor: Israel Martín Escalona Barcelona, Julio 2018
Transcript

SISTEMA PARA LA CREACIÓN DE BASES DE DATOS

DE LOCALIZACIÓN MEDIANTE HUELLAS DE SEÑAL

Proyecto final de grado

Escola Tècnica d'Enginyeria de Telecomunicació de

Barcelona

Universitat Politècnica de Catalunya

por

David García Álvarez

En parcial cumplimiento de los requisitos para el grado

de INGENIERIA EN TELEMATICA

Tutor: Israel Martín Escalona

Barcelona, Julio 2018

1

Abstract

The objective of this project has been to make an Android application for the construction of a database dedicated to saving the necessary data for localization in interior, using fingerprinting.

This application is responsible for obtaining radio frequency signal measurements at different points of a previously created map and saving them in a database.

The implantation of a screen where being able to visualize a heat map with all the signals captured superimposed on the real map.

Before the implementation of the application, a study has been carried out where the technologies and applications that currently exist have been analysed.

2

Resumen

El objetivo de este proyecto ha sido el de realizar una aplicación Android para la construcción de una base de datos dedicada a guardar los datos necesarios para la localización en espacios interiores mediante mapas de señales de huella de potencia

(fingerprinting).

Dicha aplicación será la encargada de obtener medidas de señales de radiofrecuencia en distintos puntos de un mapa previamente creado y guardarlos en una base de datos.

También se implementará la opción de poder visualizar un mapa de calor con todas las

señales captadas sobrepuesto en el mapa real.

Este proyecto se ha hecho lo más pautadamente posible, es por eso, que se ha puesto gran hincapié en la realización de un estudio previo, en el análisis de las tecnologías y aplicaciones existentes actualmente, la toma de requerimientos y diseño.

3

Agradeciminetos

A mi familia y a mi tutor Israel Martin.

4

Registro de revisiones

Revision Date Purpose

0 20/06/2018 Creación documento

1 29/06/2018 Revisión documento

1 2/07/2018 Revisión documento

DOCUMENT DISTRIBUTION LIST

Name e-mail

David Garcia Alvarez [email protected]

Israel Martin Escalona [email protected]

Written by: David García Reviewed and approved by: Israel Martín

Date 2/7/2018 Date 2/7/2018

Name David García Álvarez Name Israel Martín

Position Project Author Position Project Supervisor

5

Tabla de contenídos

Abstract ................................................................................................................................. 1

Resumen .............................................................................................................................. 2

Agradeciminetos ................................................................................................................... 3

Registro de revisiones .......................................................................................................... 4

Tabla de contenídos ............................................................................................................. 5

Lista de Figuras .................................................................................................................... 7

Lista de Tablas: .................................................................................................................... 9

1. Introducción ................................................................................................................. 10

1.1. Objetivo ................................................................................................................ 11

1.2. Plan de trabajo ..................................................................................................... 12

2. Evaluación tecnológica ............................................................................................... 14

2.1. Técnicas de localización ...................................................................................... 14

2.1.1. Técnicas de localización .............................................................................. 14

2.1.1.1. Técnicas de localización basadas en distancia ......................................... 15

2.1.1.2. Técnicas de localización basadas en mapas de potencia ........................ 17

2.1.2. Tecnologías actuales ................................................................................... 19

2.2. Aplicaciones actuales .......................................................................................... 23

Situm Mapping Tool .................................................................................................... 23

IndoorAtlas MapCreator 2 ........................................................................................... 23

HERE Indoor Radio Mapper ....................................................................................... 24

MapWize ..................................................................................................................... 25

2.2.1. Estudio comparativo de las aplicaciones actuales ...................................... 26

3. Requerimientos y especificaciones ............................................................................ 27

3.1. Requerimientos .................................................................................................... 27

3.1.1. Requerimientos funcionales ......................................................................... 27

3.1.2. Requerimientos no funcionales .................................................................... 27

3.2. Especificaciónes .................................................................................................. 28

3.2.1. Estructura ..................................................................................................... 28

3.2.1.1. Pantalla Captura......................................................................................... 28

3.2.1.2. Pantalla HeatMap ....................................................................................... 29

3.2.1.3. Pantalla Gestor de datos ........................................................................... 29

3.3. Diagrama de flujo ................................................................................................. 30

3.4. Diagrama de clases ............................................................................................. 33

6

4. Captura de datos ......................................................................................................... 34

4.1. Parámetros de captura ........................................................................................ 34

4.2. Parámetros de calidad ......................................................................................... 35

5. Diseño e implementación de UI .................................................................................. 36

5.1. Diseño de UI ........................................................................................................ 36

5.1.1. App bar y navegación ................................................................................... 36

5.1.2. Captura de datos .......................................................................................... 37

5.1.3. HeatMap ....................................................................................................... 40

5.1.4. Gestor de datos ............................................................................................ 41

5.2. Implementación.................................................................................................... 44

6. Diseño e implementación de la Base de Datos.......................................................... 46

6.1. Diseño de la base de datos ................................................................................. 46

6.2. Implementación de la base de datos .................................................................. 47

6.2.1. Room ............................................................................................................ 47

6.2.1.1. Creación de entidades ............................................................................... 47

6.2.1.2. Acceso a datos usando DAOs ................................................................... 48

6.2.2. Gestión de procesos .................................................................................... 49

7. Esquema clases .......................................................................................................... 52

8. Resultados .................................................................................................................. 53

8.1. Prueba de uso...................................................................................................... 53

9. Presupuesto ................................................................................................................ 59

10. Conclusiones y futuros desarrollos ......................................................................... 60

11. Bibliografía ............................................................................................................... 61

7

Lista de Figuras

Figura 1: Multilateración ............................................................................................................................................................... 16 Figura 2: AOA/DOA ........................................................................................................................................................................... 16 Figura 3: Fingerprinting, Ejemplo mapa de calor ............................................................................................................... 17 Figura 4: Diagama funcionamiento fingerprinting ........................................................................................................... 18 Figura 5: tag UWB ............................................................................................................................................................................. 19 Figura 6: RFID ..................................................................................................................................................................................... 20 Figura 7: Zigbee .................................................................................................................................................................................. 20 Figura 8: UWB ..................................................................................................................................................................................... 21 Figura 9: Situm Mapping tool ....................................................................................................................................................... 23 Figura 10: IndoorAtlas..................................................................................................................................................................... 23 Figura 11: Here indoor radio mapper 1 ................................................................................................................................... 24 Figura 12: Here indoor radio mapper 1 ................................................................................................................................... 24 Figura 13: MapWize.......................................................................................................................................................................... 25 Figura 14: Diagrama de flujo, 1 ................................................................................................................................................... 30 Figura 15: Diagrama de flujo, 3 ................................................................................................................................................... 31 Figura 16: Diagrama de flujo, 2 ................................................................................................................................................... 31 Figura 17: Diagrama de flujo, 4 ................................................................................................................................................... 32 Figura 18: Diagrama de clases ..................................................................................................................................................... 33 Figura 19: Esquema temporal ...................................................................................................................................................... 34 Figura 20: App Bar ............................................................................................................................................................................ 36 Figura 21: Menú.................................................................................................................................................................................. 36 Figura 22: Prototipo Crear Mapa................................................................................................................................................ 37 Figura 23: Prototipo Cargar Mapa............................................................................................................................................. 37 Figura 24: Prototipo, Guardar Mapa ......................................................................................................................................... 38 Figura 25: Prototipo, Captura ...................................................................................................................................................... 38 Figura 26: Prototipo, Capturando .............................................................................................................................................. 39 Figura 27: Prototipo, resultado captura .................................................................................................................................. 39 Figura 28, Prototipo, cargar mapa ............................................................................................................................................ 40 Figura 29: Prototipo, heatmap ..................................................................................................................................................... 41 Figura 30, Prototipo gestor 1 ........................................................................................................................................................ 41 Figura 31: Prototipo cargar mapa gestor ............................................................................................................................... 42 Figura 32: Prototipo, seleccionar rango fecha gestor ........................................................................................................ 42 Figura 33: Prototipo, cargar medidas....................................................................................................................................... 43 Figura 34: Prototipo eliminar medidas .................................................................................................................................... 43 Figura 35: Prototipo, confirmer subir datos .......................................................................................................................... 43 Figura 36: Prototipo, confirmación eliminar ......................................................................................................................... 43 Figura 37: Fragments vs Actividades ........................................................................................................................................ 44 Figura 38: UI, Captura ..................................................................................................................................................................... 45 Figura 39: UI, heatmap .................................................................................................................................................................... 45 Figura 40: UI menú ............................................................................................................................................................................ 45 Figura 41: UI, gestor datos ............................................................................................................................................................. 45 Figura 42: UI gestor .......................................................................................................................................................................... 45 Figura 43: Base de datos ................................................................................................................................................................. 46 Figura 44: Crear entidad ................................................................................................................................................................ 47 Figura 45: Crear DAO ....................................................................................................................................................................... 48 Figura 46: SQLite Studio ................................................................................................................................................................. 49 Figura 47: MyAsyntask .................................................................................................................................................................... 50 Figura 48: Clase Manager .............................................................................................................................................................. 50 Figura 49: Clase ejemplo Myasynctask ..................................................................................................................................... 51

8

Figura 50: Prueba de uso, menú .................................................................................................................................................. 53 Figura 51: Prueba de uso, cargar mapa ................................................................................................................................... 54 Figura 52: Prueba de uso, nuevo mapa .................................................................................................................................... 54 Figura 53: Prueba de uso, guardar nuevo mapa .................................................................................................................. 55 Figura 54: Prueba de uso, coordenada origen ...................................................................................................................... 55 Figura 55: Prueba de uso, precaptura ...................................................................................................................................... 56 Figura 56: Prueba de uso, dialogo capturando ..................................................................................................................... 56 Figura 57: Prueba de uso, resultado captura ........................................................................................................................ 57 Figura 58: Prueba de uso, Heat map, cargaar mapa.......................................................................................................... 57 Figura 59: Prueba de uso, heatmap ........................................................................................................................................... 58

9

Lista de Tablas:

Tabla 1: Diagrama de Gantt ________________________________________________________________________________ 13 Tabla 2: Comparación de tecnologías ______________________________________________________________________ 22 Tabla 3: Comparación de Apps _____________________________________________________________________________ 26 Tabla 4: Esquema de clases _________________________________________________________________________________ 52 Tabla 5: Presupuesto ________________________________________________________________________________________ 59

10

1. Introducción

El tradicional GPS resulta ser de una gran herramienta para exteriores, pero cuando se

enfrenta a lugares cerrados donde la señal no puede llegar, o zonas donde se necesite de

una gran precisión (<15m) esta tecnología resulta insuficiente.

Es por eso que en los últimos años ha existido una gran ambición en la búsqueda de

nuevos y mejores sistemas de localización en interior en tiempo real (RTLS).

Actualmente existe un gran uso de estos sistemas en la indústria 4.0 como pueden ser:

• Localización y seguimiento de personal y pacientes

• Seguridad del personal

• Optimización de flujos de trabajo y procesos

• Monitorización y censado del entorno

• Vigilancia y seguridad

• Soporte a la navegación robótica

Pero a la vez, cada vez existen nuevas aplicaciones de dicha tecnología para el uso

personal, como pueden ser:

- En centros comerciales, ferias, aeropuertos, u otros lugares amplios, donde resulta útil al

usuario ver donde se encuentra en tiempo real y poder trazar una ruta hasta una tienda,

stand o lugar de interés.

- Para marketing, por ejemplo, al pasar una persona enfrente de una tienda, esta puede

detectar su presencia y enviar una notificación al dispositivo del usuario avisando de las

ofertas disponibles.

En este trabajo se analizarán todas las opciones disponibles actualmente, y se diseñará e

implementará una de ellas, en concreto, se realizará una aplicación Android que permitirá

la localización en interiores a partir de señales de radiofrecuencia, como pueden ser Wifi,

BLE..., usando una técnica llamada fingerprinting.

11

1.1. Objetivo

Este proyecto se enmarca dentro de otro más ambicioso cuyo propósito es el de construir

un sistema de captura y procesado de datos de localización basado en huellas de señal o

fingerprinting. Este sistema, ofrecerá una vía para explotar dichos datos y poder proponer

y refinar soluciones de localización presentes y futuras.

Las técnicas basadas en fingerprinting basan su funcionamiento en la comparación de la

potencia de la señal recibida en un determinado punto, procedente de un conjunto de

emisores de una o varias tecnologías radio, con un mapa de potencias previamente creado

en la zona donde se desplegará el servicio de localización.

El sistema global esta estructurado en 3 subsistemas:

- Subsistema cliente, formado por una aplicación que tendrá un doble objetivo:

o Toma de medidas de las señales radio recibidas y obtención de la

información reportada por los diferentes sensores existentes en el

terminal y de utilidad para el ámbito de la localización.

o Creación del mapa de la zona a cubrir.

o Visualización de los datos obtenidos.

o Gestión y envío de los datos obtenidos por el subsistema cliente, al

subsistema servidor.

- Subsistema servidor, encargado de:

o Recibir la información procedente de diferentes subsistemas cliente.

o Generar un repositorio de información, replicable y accesible por

diferentes subsistemas gestor.

- Subsistema gestor, que constará de un conjunto de aplicaciones capaces de

acceder a la información almacenada en el subsistema servidor y de aplicar

sobre dichos datos diferentes técnicas con las que obtener la posición donde

se encuentra un conjunto indeterminado de usuarios.

Tal y como puede apreciarse, se trata de una idea muy ambiciosa. Por lo tanto, este

proyecto se centrará en el diseño e implementación únicamente del subsistema cliente,

excluyendo también las actividades que requieran de la interacción con el subsistema

servidor.

La aplicación desarrollada estará enfocada para correr en dispositivos que operen bajo el

sistema Android. Tendrá una base de datos donde se guardarán los mapas creados, y las

diferentes medidas obtenidas en diferentes puntos y orientaciones.

Se hará un gran hincapié en tomar las medidas lo más ricas posibles, guardando esos

datos sin aplicarles ningún tratamiento (responsabilidad que recaerá sobre las

aplicaciones del subsistema gestor).

La aplicación permitirá el filtrado y visualización de todas las señales guardadas, tanto de

forma individual en las diferentes posiciones bajo estudio, como global en forma de mapa

de calor.

.

12

1.2. Plan de trabajo

El plan de trabajo que se siguió se detalla en la Tabla 1.

Paquete de trabajo 1: Estado del arte. Primero se realizó un estudio del estado del arte

referente a los sistemas de localización en interiores, centrándose en las siguientes tareas:

• Las tecnologías de localización para interiores existes actualmente, su

funcionamiento y las ventajas y desventajas que ofrecen.

• El análisis de las principales aplicaciones existentes, cuyo propósito sea similar al

establecido para el subsistema cliente.

Paquete de trabajo 2: Análisis de requerimientos. Este paquete de trabajo comprende el

estudio de los requerimientos solicitados expresamente por el demandante del proyecto,

así como todos aquellos que pudieran derivarse del estudio del estado del arte realizado

en el paquete de trabajo anterior. Con ello se pretende cubrir de forma exhaustiva el qué

debe hacer la aplicación.

Paquete de trabajo 3: Diseño de la aplicación. Una vez identificados todos los

requerimientos, se inició el diseño de la aplicación. En primer lugar, mediante un diagrama

de actividad, para tener claro el funcionamiento de la App en cada punto. Seguidamente

se realizó un diseño de prototipo completo que reflejara de forma visual el diagrama de

actividad de la aplicación. En concreto, se ilustró el diseño de todas las pantallas y cuadros

de diálogo, así como la interacción entre todos sus componentes. Finalmente, se generó

un diagrama de clases que respondiera al prototipo diseñado y se formalizó el diseño de

la base de datos que debía dar persistencia a los datos recogidos.

Paquete de trabajo 4: Implementación. Una vez acabada la fase de diseño, se pasó a la

fase de desarrollo, donde se construyó en primer lugar las interfaces de usuario (UI) que

debía reflejar el prototipo obtenido en el paquete de trabajo 3. Acto seguido se formalizó

el código necesario para dotar de persistencia a los datos, de acuerdo al diseño alcanzado

para la base de datos y finalmente se procedió al desarrollo completo de la App.

Durante el mes de julio se también se destinó una gran parte del tiempo en documentar y

confeccionar la memoria del proyecto.

Paquete de trabajo 5: Documentación. Una vez en la fase final del proyecto se confeccionó

un pequeño manual, y esta memoria.

Paquete de trabajo 6: formación. Este paquete es trasversal y su ejecución se solapa en

tiempo con varios de los paquetes de trabajo anteriores. En mi caso concreto, era la

primera vez que programaba aplicaciones para dispositivos Android. Este hecho hizo que

el esfuerzo en tiempo destinado a este paquete de trabajo fuera grande (ej. realización de

dos cursos online de Coursera con una duración total de 11 semanas dedicándole una

media de 4h/semana). [1]

13

Tabla 1: Diagrama de Gantt

14

2. Evaluación tecnológica

2.1. Técnicas de localización

En general se puede hablar de que las técnicas de localización para interiores pueden

agruparse, en función de la señal observada, en tres grandes familias:

- Las técnicas basadas en multilateración [1], que usan distancias sobre varios

puntos de referencia para después conseguir obtener el punto del usuario

usando técnicas de triangulación o multilateración.

- Las técnicas basadas en fingerprinting [2], que se basan en el contraste de

medidas tomadas en tiempo real con las almacenadas previamente durante

una fase de creación de mapas de potencia .

- Las técnicas basadas en ángulo (AoA) o dirección de llegada (DoA)

Además de estas técnicas, también existen otras, como pueden ser las basadas en

conectividad o proximidad. Sin embargo, estas técnicas son usadas generalmente para la

detección del objeto deseado en un espacio más reducido, es decir, tienen como objetivo

detectar la presencia de un elemento en un espacio determinado, pero no proporcionar su

localización de manera precisa.

2.1.1. Técnicas de localización

Las técnicas de localización basadas en multilateración basan su funcionamiento en medir

distancias desde el punto que se desea localizar hasta tres (posicionamiento 2D) o más

(posicionamiento 3D) puntos de referencia cuyo emplazamiento es conocido.

Estos puntos de referencia, también conocidos como landmarks o beacons, se encuentran

estratégicamente ubicados para cubrir todo el espacio a localizar de forma óptima.. Las

técnicas basadas en multilateración emplean las distancias obtenidas para superponer

curvas que definen los posibles emplazamientos del usuario. En una situación ideal (libre

de error), la superposición de estas curvas confluye en un único punto, que coincide con

la posición del elemento a ubicar, pero en la realidad, esta intersección de todas las curvas

en un punto no siempre se produce, es entonces cuando se han de introducir modelos de

errores a fin de calcular una aproximación.

La distancia entre el punto en el que se encuentra el dispositivo a posicionar y los

landmarks se puede calcular de dos formas: 1) A partir de la potencia de señal recibida

(RSS) o 2) a través del tiempo de vuelo de la señal (ToF).

Los sistemas RadioFrecuencia (RF) que usan el ToF de ondas electromagnéticas para

medir distancias tienden a proveer posiciones más precisas, generalmente en la franja de

1.5-3m [3], aunque en conjunción con tecnologías radio como Ultra Wide Band (UWB)

pueden alcanzarse precisiones del orden de centímetros [4]. Sin embargo, un factor a

tener en cuenta es que el error producido por la propagación multicamino aumenta en

espacios interiores, debido al choque de las ondas con paredes u objetos bloqueantes. Es

por eso que se requiere de la captura de múltiples muestras para una misma ubicación y

landmark, para posteriormente realizar un intensivo filtrado posterior con el que obtener

solo aquellas medidas que presenten una calidad adecuada. Sin embargo, el principal

15

hándicap de estas técnicas radica en el hecho de que la mayor parte de las tecnologías

radio no permiten de forma nativa ni establecer marcas temporales con la suficiente

precisión (del orden de nanosegundos) ni acceder a este tipo de información.

La información de RSS por el contrario es un dato que está disponible en la práctica

totalidad de los dispositivos radio empleados. Los sistemas que realizan el cálculo

mediante RSS, obtienen la distancia al emisor mediante el cálculo de la atenuación

esperada. Es decir, emplean un modelo radio analítico, previamente calibrado, que

relaciona la potencia transmitida desde un landmark (valor conocido a priori), con la

potencia recibida en el punto a ubicar (valor obtenido en tiempo real). Esta relación guarda

relación con la distancia entre el punto transmisor y receptor de la señal, por lo que, con

la parametrización adecuada, puede llegar a obtenerse la información de la distancia.

Generalmente son menos precisos, ya que el nivel de potencia de señal es más propenso

a sufrir fluctuaciones debido a todo tipo de fenómenos: difracción, reflexión, interferencia

con otras señales, influencias medioambientales (ej. mayor o menor humedad), etc.

Un dato a tener en cuenta es que el nivel de potencia recibida también depende de la

orientación de la antena del dispositivo, ya que las antenas empleadas en los equipos

receptores, frecuentemente, no son perfectamente isotrópicas.

La obtención de las distancias al punto de referencia mediante RSS no es por tanto muy

fiable. Como alternativa comenzaron a aparecer propuestas encaminadas a hacer uso de

un mapa de potencia preestablecido.

Las técnicas de localización basadas en mapas de potencia (fingerprinting), basan su

funcionamiento en la comparación de la potencia de señal recibida procedente de un

conjunto de emisores de señal (landmarks/beacons) en tiempo real, con un mapa de

potencias previamente creado. [2]

De manera general se podría decir que las técnicas basadas en ToF tienen mayor potencia

en cuanto a precisión que las basadas en RSS, pero presentan el inconveniente de

requerir el despliegue de una infraestructura específica para ello. Además, mayormente

usa tecnologías que no están disponibles en dispositivos de uso cotidiano, lo que hace

que el usuario tenga que adquirir y/o llevar con él nuevos dispositivos.

Los landmarks no tienen por qué ser fijos.

2.1.1.1. Técnicas de localización basadas en distancia

Como se comenta en el apartado anterior las técnicas basadas en distancia más usadas

son la multilateración y la triangulación:

- La multilateración calcula la posición del objeto deseado a través de su

distancia respecto a múltiples referéncias. Para obtener la posición en 2D

se necesita un mínimo de 3 referencias, y si se quiere obtener la posición

en 3D son requeridas un mínimo de 4 referencias [1], [5].

16

Figura 1: Multilateración

- La estimación AOA/DOA es la base de muchas aplicaciones como puede ser

radar, sonar, exploración sísmica, radioastronomía, y obviamente navegación

y seguimiento de objetos.

Este método se basa en trilateration mediante el uso de un array de antenas

sensitivas a la dirección en los receptores de manera que se pueda obtener la

dirección hacia el emisor. El ángulo de llegada se calcula trazando una línea

entre el receptor y emisor y otra desde el receptor hacia una dirección conocida

como pueden ser los puntos cardinales. Usando varios receptores en

posiciones conocidas se puede determinar la posición del transmisor mediante

triangulación. Para tomar estas mediciones se requiere de varias antenas

sensitivas a la dirección en varias ubicaciones, la precisión de este aumenta

según el número de antenas utilizadas.

Figura 2: AOA/DOA

17

2.1.1.2. Técnicas de localización basadas en mapas de potencia

Esta técnica se estructura en dos fases: offline y online. Durante la fase offline se procede

a la medición de los valores de potencia recibidos en los máximos puntos posibles del área

de localización. Estos valores se almacenan en una base de datos de localización, que

conserva una huella de la señal obtenida en cada uno de los puntos medidos.

Una vez creada dicha base de datos, se inicia la fase online. El dispositivo a localizar,

comparará en tiempo real el nivel de potencia de las señales recibidas en ese instante con

las almacenadas en la base de datos, para así poder, en base a la similitud de ambas

fuentes de datos, obtener la posición actual en la que se ubica el dispositivo.

Figura 3: Fingerprinting, Ejemplo mapa de calor

Al usar esta técnica, comúnmente suelen surgir dos errores [2]:

- Los puntos de acceso (AP) pueden pasarse por alto en un ciclo de escaneo,

tanto en la fase de creación de medidas, como en la fase de localización.

- La segunda, hace referencia a la posibilidad de que diferentes dispositivos

puedan recibir fuerzas de señal distintas debido a variación de la atenuación en

la antena de cada dispositivo.

Para resolver ambos errores se tendrán que tratar los datos guardados y desechar los que

no sean idóneos.

A continuación, en la [Figura 4] se muestra un diagrama de dicha técnica.

18

Figura 4: Diagama funcionamiento fingerprinting

19

2.1.2. Tecnologías actuales

Actualmente existen un gran número de tecnologías en que pueden apoyarse en las

técnicas anteriormente comentadas

Las más extendidas hoy en día son: UWB, RFID, BLE, ZigBee y WiFi.

UWB (Ultra Wide Band)

Se trata de una tecnología de radio de bajo alcance que puede usar frecuencias que van

desde 3.1GHz hasta 10.6GHz.

Los sistemas de localización que emplean esta tecnología están basados

fundamentalmente en técnicas “Time of Flight” (ToF) para el cálculo de distancias, que,

unido a métodos de multilateración permite el cálculo la posición del objeto deseado.

Tiene un rango de alcance máximo de 100m y una precisión <30cm. [6] La principal ventaja

que ofrece esta tecnología es su bajo consumo, bajo coste y su alta productividad. Su

principal desventaja radica en el coste de los dispositivos y la necesidad de desplegar

infraestructura específica para el sistema de localización.

Figura 5: tag UWB

RFID (radio-frequency identification) [4]

Esta tecnología se utiliza principalmente para identificar la presencia de objetos. Se basa

en la medida del ToF, para obtener datos con los que posicionar. Ofrece 5m como rango

máximo de alcance en caso de usar la banda UHF (868MHz), lo que hace que no sea

recomendable para su uso en sistemas de posicionamiento y que esté más enfocado a la

detección de presencia.

Existes dos tipos de etiquetas RFID, activas y pasivas.

Los tags activos transmiten información a intervalos de tiempo predeterminados.

Las más populares (y también económicas) son las etiquetas pasivas, su principal ventaja

es que no necesitan batería ya que se activan con la propia energía RF, lo que causa que

tengan un menor coste y menor tamaño. La contrapartida es que tienen un alcance

máximo de 1m. Son ideales en caso que solo se necesite saber la zona donde se

encuentra el objeto sin importar la ubicación exacta. [8]

RFID en su versión pasiva se ha popularizado en los últimos años por ser la tecnología

con el tag de menor coste.

20

Figura 6: RFID

ZIGBEE

Zigbee es el nombre de la especificación de un conjunto de protocolos de alto nivel de

comunicación inalámbrica para su utilización con radiodifusión digital de bajo consumo,

basada en el estándar IEEE 802.15.4. Su objetivo son las aplicaciones que requieren

comunicaciones seguras con baja tasa de envío de datos y maximización de la vida útil de

sus baterías.

Experimentos realizados usando técnicas basadas en RSS en una red de sensores con

una densidad de 0.27 nodos por m2 y una distancia máxima de 20m arrojan un error de

posicionamiento inferior a 2m. [9]

Actualmente su mercado se limita fundamentalmente a redes de sensores de carácter

industrial y domótico gracias al uso de un estándar sencillo y abierto, y su bajo consumo.

Figura 7: Zigbee

21

BLE (Bluetooth Low Energy)

Se trata de la versión bluetooth 4.0 que viene incorporado en la mayoría de smartphones

desde 2013. Emite una señal de 2.4Ghz con un alcance de hasta 100 metros.

Usando beacons estratégicamente colocados que envían señales periódicas, se puede

determinar la localización del objeto deseado con un margen de error de 3m y una longitud

efectiva de hasta 50m.

Esta es una de las mejores opciones que hay actualmente ya que se trata de una

tecnología que incorporan muchos teléfonos móviles y otros dispositivos y donde antenas

referencias son de un coste muy bajo.

Como las tecnologías anteriormente comentadas, esta también necesita un despliegue de

infraestructura.

Figura 8: UWB

IEEE 802.11 (WiFi)

La principal ventaja de esta tecnología es su gran despliegue en términos de

infraestructura. Además, se la puede considerar como la tecnología de red de área local

más accesible, principalmente debido a su gran penetración en la sociedad, ya que la

práctica totalidad de los smartphone pueden y hacen uso de ella

La cobertura máxima de las redes IEEE 802.11 depende del de la norma empleada y del

equipo emisor y receptor, pero generalmente en interiores es inferior a 60m.

En el caso de WiFi y Bluetooth, presentan la ventaja de ser tecnologías se encuentran

disponibles en muchos dispositivos móviles, así como su elevada penetración entre los

usuarios. Sin embargo, WiFi cuenta con una vasta infraestructura de comunicación ya

desplegada, cosa que no se puede decir de Bluetooth. Esto permite que se pueda usar

cualquier infraestructura WiFi creada previamente para construir un mapa de huellas de

potencia a partir de las señales emitidas por los diferentes puntos de acceso.

En la siguiente tabla se muestra las especificaciones de cada tecnología: (por 1

dispositivo)

22

TECNOLOGIA PRECISIÓN ALCANCE ¿INFRAESTRUCTURA

DEDICADA PARA LA

LOCALIZACIÓN?

PRECIO

UWB 20cm <100m Si 25€/tag

[7]

RFID 10cm <5m Si 0.3€/tag

300€/elector

[8]

ZIGBEE 2m <100m Si 12€/tag

[9]

BLE 3m <50m Si 18€/beacon

[10]

WIFI 5m <90m No 0

Tabla 2: Comparación de tecnologías

En resumen, se podría decir que existen tecnologías que permiten un posicionamiento

preciso, como UWB, pero que habitualmente incurren en costes elevados.La mejor opción

en relación calidad precio se trataría Zigbee, pero seguimos necesitando una

infraestructura dedicada y aunque cada vez encontramos más opciones en el mercado

que lleven dicha tecnología, aún es muy inferior respecto al BLE o wifi.

La posibilidad que nos da la tecnología Wifi de usar cualquier red y cualquier smartphone,

hace que esta sea la opción más adecuada para lugares donde no se necesite una gran

precisión y en aquellos despliegues donde la escalabilidad sea un requerimiento

fundamental (número elevado de potenciales usuarios).

Para poder estudiar un sistema basado en WiFi Fingerprinting, es imprescindible poder

construir el mapa de señal de la fase offline. Es por eso que este trabajo va encaminado

a proveer de una aplicación para smartphones que permita recoger la información

necesaria para conformar las huellas de señal y generar los mapas de señal que

fundamenten una futura solución para el posicionamiento en interiores, basada en WiFi

Fingerprinting.

23

2.2. Aplicaciones actuales

Actualmente encontramos una gran variedad de aplicaciones que permiten la localización

en espacios de interior.

Situm Mapping Tool

Situm pone a disposición de los usuarios, una herramienta de calibración, localización y

navegación en interiores que permite la navegación en edificios que el mismo usuario

hayas creado previamente y calibrado.

Este sistema hace uso únicamente de las señales 3G/4G, de la brújula y del acelerómetro

del dispositivo.

Con esta aplicación, el usuario podrá:

- Calibrar sus edificios, permitiendo la localización en su interior.

- Ver los mapas y puntos de interés de los edificios creados

previamente en su dashboard (dashboard.situm.es).

- Navegar por el interior de los edificios ya calibrados y establecer

rutas hasta los puntos de interés.

[11]

IndoorAtlas MapCreator 2

Indoor Atlas es una aplicación para localización en interiores que afirma ser la más

completa de todas. Al igual que las anteriores también ofrece la posibilidad de traza de

rutas, pero además añade la opción de la visualización de un mapa de cobertura.

Lo que hace más interesante a esta aplicación el uso del campo magnético terrestre en el

interior de los edificios como principal fuente de información.

Los creadores afirman que el campo magnético interactúa de una manera diferente al

encontrarse con metal u otros materiales que se encuentran en el interior de edificios, lo

que hace fácil la caracterización del campo en cada posición. A estos datos se le añaden

los obtenidos por los sensores de redes inalámbricas Wifi, GPS y barómetro de presión.

Además, también ofrece la posibilidad de uso de Beacons BLE.

La aplicación también destaca por la posibilidad de cargar y descargar los mapas creados

por otros usuarios (aunque esta fase aún está en modo Beta).

[12]

Figura 9: Situm Mapping tool

Figura 10: IndoorAtlas

24

HERE Indoor Radio Mapper

HERE Indoor Radio Mapper es una aplicación para la creacón de mapas de interior a

través de la información obtenida por señales BLE y Wifi georeferenciadas.

La aplicación crea un mapa caracterizado por la potencia recibida de los puntos de acceso

Wifi y/o beacons BLE. Dicho mapa se mostrará en modo de mapa de calor y dará las

opciones de filtrar por calidad de señal, calidad de la infraestructura (número de beacons)

y por cantidad de medias.

Una vez se ha construido dicho mapa, se puede usar para la localización indoor.

El verdadero valor que tiene la aplicación es la gran importancia que le da al clouding,

haciendo posible que cualquier usuario pueda tener acceso a todos los mapas públicos de

una manera rápida y sencilla. [13]

Figura 12: Here indoor radio mapper 1

Figura 11: Here indoor radio mapper 1

25

MapWize

MapWize se define como la plataforma mapeado de interiores para edificios inteligentes.

La aplicación permite al usuario visualizar el interior y alrededores de cualquier edificio o

campus. Tiene una gran integración con los tradicionales mapas “outdoor”. El sistemas

esta centrado en la locacalización de productos de una tienda, piezas de arte en un museo,

estaciones de carga en un aeropuerto, asientos en una sala de conciertos e incluso en

caso de emergencia se puede usar para encontrar kits de emergencia, salidas de

emergencia o extintores de fuego. Para descargar un mapa el usuario tan solo tendrá que

escanear un código QR que encontrará en el edificio.

Usa las tecnologías BLE, WI-FI, LI-FI…

Figura 13: MapWize

26

2.2.1. Estudio comparativo de las aplicaciones actuales

Como se ha visto, el mercado de las aplicaciones para el RTSL está en pleno auge y cada

vez son más las aplicaciones que quieren ofrecer más opciones.

En las aplicaciones vistas en el apartado anterior se ve que como cada vez más se intenta

dar importancia a la acción de compartir los mapas creados por el usuario, y a la posibilidad

de obtener nuevos mapas creados por otros usuarios o por empresas de una manera muy

sencilla.

Situm Mapping

Tool

Indoor Atlas Map

creator

Here Indoo

Radio Mapper

MapWize

Obtiene datos de

RSS wifi ampliable a mas señales (BLE…)?

+ 3G/4G

+ brújula

+ acelerómetro

+ campo magnético

+ Wifi

+ BLE

+Acelerómetro

+Barómetro presión

+WIFI

+BLE

+ Wifi

+ (ampliable a cualquier tecnología)

Parámetros de

medición editables No No No No

Visualización de detallada de cada medida

No No No No

Guardar datos en crudo en la BD

No No No No

Mapa de calor

personalizable No No Si No

Cargar/descargar mapas

Si Si (en un futuro) Si Si

Tabla 3: Comparación de Apps

Como se puede ver, las aplicaciones existentes actualmente, hacen uso del “clouding”

para poder compartir los mapas creados fácilmente. Y es que, el que los usuarios puedan

acceder fácilmente a los mapas creados es una prioridad.

En algunas el usuario ha de hacer una búsqueda manual del mapa. En otras como en el

caso de MapWize, ofrecen la opción de que el creador del mapa lo comparta mediante un

código QR. Por ejemplo, en un recinto, ese código QR se pondría en un punto de

información tradicional, entonces el usuario leería ese código, automáticamente se

descargaría el mapa, y ya podría realizar búsquedas de lugar de interés y seguir una ruta

para llegar a ellos.

Es por eso que para nuestra aplicación el poder centralizar las medidas de todos los

usuarios en una misma base de datos es vital. El objetivo es plantear en un futuro un

repositorio de mapas de señal accesible para toda la comunidad de usuarios, reutilizable

y ampliable, con el que desplegar nuevos servicios y favorecer la investigación de nuevos

algoritmos de posicionamiento basados en WiFi fingerprinting.

27

3. Requerimientos y especificaciones

Este Proyecto tiene como objetivo cumplir una serie de requerimientos y especificaciones:

3.1. Requerimientos

3.1.1. Requerimientos funcionales

- RF01: Ha de ser una aplicación que permita la creación de un número

indeterminado de mapas y adición de medidas en él de forma sencilla.

- RF02: Los mapas creados en el pasado se deben poder recuperar y visualizar

los datos vinculados al mismo.

- RF03: Ha de permitir la visualización de mapas de calor de acuerdo a múltiples

criterios, como por ejemplo:

o Seleccionando el tipo de señales que se quiere mostrar

o Numero de AP’s: en función del número de puntos de acceso de los que

se puedan tener en cuenta en los determinados puntos

o Coverage indicator: en función del nivel de señal recibido en los distintos

puntos

- RF04: Visualización de los datos tomados en un punto: Se ha de poder ver un

registro completo de la señal capturada durante un espacio de tiempo.

- RF05: Aunque esta versión solo funcionará con señales Wifi, se ha de seguir

una metodología que permita ser ampliable con otras tecnologías (ej.

Bluetooth)

- RF06: Para cada medida se tendrá que indicar: el tipo de señal medido,

orientación y ubicación unívoca de los datos (ej. edificio, planta, x,y,z), y fecha

en la que se produjo la captura de los datos.

- RF07: El usuario ha de poder personalizar en cualquier momento los

parámetros en que se hará la medición: sampling rate, tiempo de medición,

repeticiones y tiempo entre repeticiones.

- RF08: Se ha de poder gestionar los datos en la propia aplicación (eliminación

de medidas tomadas y selección de las correctas).

- RF09: La aplicación ha de tener una manera de poder cargar/ descargar los

datos en un Web Service.

3.1.2. Requerimientos no funcionales

- RNF01: La aplicación tendrá que soportar Android 4.4 o superior

- RNF02: Deberá ser accesible para dispositivos con pantalla de 5’’ o más.

- RNF03: Se tendrá que poder usar en móvil o tableta.

- RNF04: Se tendrá que tener en cuenta la posibilidad de uso de la aplicación en

dispositivos con capacidades indeterminadas.

- RNF05: Todas las medidas se tendrán que guardar en crudo y a la vez se

tendráN que tratar los datos para poderlos visualizar de manera sencilla

- RNF06: De acuerdo con las recomendaciones que da Google para la

comunidad de desarrolladores, se seguirán las guías marcadas por Material

Design.

- RNF07: Se intentará reducir al mínimo la cantidad de información almacenada

en el dispositivo a cuenta de los datos almacenados.

- RNF08: La aplicación debe ser usable

28

- RNF09: La curva de aprendizaje debe ser suave

3.2. Especificaciónes

3.2.1. Estructura

La aplicación creada, tal y como se ha comentado anteriormente, se enmarca en el

subsistema cliente. El diseño planteado constará de 3 pantallas principales (o actividades):

- Captura de datos: Donde se cargará el mapa y se realizaran las capturas de

señal.

- HeatMap: Donde se podrá visualizar en forma de mapa de calor todos los datos

obtenidos de cada mapa

- Gestor de datos: Donde se podrá eliminar los mapas o medidas creadas.,

descargar las medidas hechas por otros usuarios que se encuentran en un

servidor o subir las creadas.

El hecho de disponer de un número reducido de actividades se enfoca a dar cumplimiento

al requerimiento RF01.

La aplicación tendrá que tener un menú lateral desplegable que permita navegar de forma

sencilla entre las tres pantallas.

A continuación, se explicará en detalle el funcionamiento y especificaciones de las

diferentes pantallas.

Finalmente, en el punto 3.3 se mostrará un diagrama de flujo completo.

3.2.1.1. Pantalla Captura

El usuario tendrá que cargar un mapa usado previamente o crear uno de nuevo.

En caso de crear uno de nuevo tendrá que indicar:

- Nombre del mapa

- Edificio

- Planta

- Imagen

El usuario podrá elegir entre tomar una fotografía al momento un cargar un previamente

guardada en la memoria del teléfono.

Una vez el mapa este cargado, en la pantalla se mostrarán los siguientes apartados:

- Imagen del mapa donde se pueda marcar el punto a medir.

- Campos para rellenar con la coordenada y el ángulo.

- Una lista con todas las señales que capta el dispositivo en ese instante

detalladas.

- Un apartado donde se puedan ver y editar los parámetros que se van a usar

para realizar la medición.

- Un botón que al ser tocado realice la captura de la medida.

29

Una vez ha empezado la medida, tendrá que aparecer un dialogo donde se muestre en

tiempo real la progresión de la captura (número de muestra actual, muestras totales,

repetición…)

Una vez la captura de señal a finalizado se tendrá que poder visualizar en detalle todos

los datos de ella: datos de la medida (mapa, punto, fecha, parámetros), todos los puntos

de acceso capturados y su detalle (SSID, BSSID y media, varianza y calidad). Idealmente

se tendrá que poder ver una gráfica con la progresión temporal de las muestras de cada

punto de acceso.

3.2.1.2. Pantalla HeatMap

Se llegará a esta pantalla seleccionando “HeatMap” en el menú lateral.

Primeramente, el usuario tendrá que seleccionar el mapa.

A continuación, se mostrará una pantalla formada por la imagen del mapa, un campo

donde poder introducir la coordenada, otro donde indicar el tipo de señal y otro donde

indicar el rango de fechas de la creación de la medida a mostrar.

El usuario podrá filtrar los datos que quiere que represente el mapa de calor y las variables

que represente (según nivel de cobertura, según calidad, número de puntos de acceso…).

El usuario podrá marcar y desmarcar los puntos de acceso que quiere o no que se

muestren.

3.2.1.3. Pantalla Gestor de datos

Se llegará a esta pantalla seleccionando “Gestor de mapas” en el menú lateral.

Una vez en dicha pantalla, el usuario podrá elegir entre sincronizar datos o eliminar.

A continuación, se seleccionará él o los mapas creados en un determinado rango de

fechas.

En ambos casos, se mostrará la misma pantalla:

- Imagen del mapa con todos los puntos medidos sobrepuestos

- Un seleccionable donde poder elegir entre todas las coordenadas disponibles.

- Un cuadro donde se muestren todas las medidas que corresponden con dichos

parámetros

El usuario entonces podrá seleccionar fácilmente todas las medidas que desee, y

diferenciando si está en el modo sincronizar datos o eliminar, podrá subirlos a un servidor

o eliminarlos de la base de datos de la memoria del dispositivo.

30

3.3. Diagrama de flujo

A continuación, se muestra el diagrama de flujo completo de la aplicación:

Figura 14: Diagrama de flujo, 1

31

Figura 16: Diagrama de flujo, 2

Figura 15: Diagrama de flujo, 3

32

Figura 17: Diagrama de flujo, 4

33

3.4. Diagrama de clases

Aunque este proyecto se ha centrado únicamente en la toma de medidas de redes wifi, uno de los requerimientos iniciales es la posibilidad de poder captar y manejar señales de todo tipo, como por ejemplo BLE (RF05). Es por eso que la aplicación se ha de desarrollar pensando en una futura ampliación que permita añadir nuevos casos de uso de manera sencilla

A continuación, se muestra el diagrama de clases. Basándonos en la premisa de una

futura ampliación de la aplicación, se puede ver como la estación base será una clase

abstracta de la que heredarán los diferentes tipos de puntos de acceso. Lo mismo pasa

con las medidas, se ha de dejar la puerta abierta a las mejoras que vendrán en un futuro.

Figura 18: Diagrama de clases

34

4. Captura de datos

Como se ha dicho anteriormente el gran problema de los sistemas que usan nivel de

potencia de señal para la localización, es su fluctuación.

Incluso en una localización fija, la fuerza de la señal en un punto puede presentar

variaciones que se mantiene en un rango de 10 dB.

Es por eso que en este caso cobra vital importancia obtener unas medidas lo más

fidedignas a la realidad. Para ello es muy importante capturar la señal recibida durante un

periodo de tiempo amplio para después poder obtener parámetros estadísticos de ella, y

poder así, en un futuro minimizar el error de localización.

4.1. Parámetros de captura

A fin de solventar los problemas nombrados en el 0 durante la fase de tomas de medidas,

se ha de realizar un escaneo completo que obtenga todas las medidas de todos los puntos

de acceso disponibles, y repetir este proceso varias con tal de obtener unos datos lo más

representativos posibles de la realidad.

Se tendrán cuatro parámetros a tener en cuenta:

- Numero de repeticiones: cuantas más repeticiones se hagan, más información

en diferentes condiciones se obtendrá.

- Tiempo entre repeticiones: permite obtener diferentes mediciones en diferentes

condiciones.

- Número de muestras en cada repetición: permite obtener suficiente información

de posicionamiento para el procesado posterior.

- Tiempo entre Muestras: Permite obtener información a cerca de la periodicidad

con la que los puntos de acceso se dan a conocer mediante paquetes Beacon,

a fin de poder desechar los APs menos activos en la fase de localización.

En el siguiente esquema temporal se podrá ver claramente la función de cada parámetro:

Figura 19: Esquema temporal

Se implementará de la siguiente manera:

Mediante la clase BroadcastReceiver, perteneciente a Android, se realizará un escaneo

de las redes wifi disponibles donde se obtendrán muestras. Acto seguido se espera el

35

período marcado, y se volverá a hacer un escaneo. Esta acción se repite tantas veces

como hayamos indicado en el parámetro “Numero de muestras en cada repetición”.

Una vez se haya alcanzado ese número de muestras, el proceso se esperará los

milisegundos marcados en el parámetro “Tiempo entre repeticiones”. Al finalizar ese

tiempo, el proceso entero se volverá a repetir tantas veces como se haya indicado en el

parámetro “Numero de Repeticiones”.

A continuación se muestran los logs de una medida usando los parámetros

4.2. Parámetros de calidad

A partir de los resultados obtenidos se podrá obtener información que caracterice el nivel

de señal respecto un punto de acceso como pueden ser la media, la varianza o la calidad.

La calidad se podrá calcular fácilmente de la siguiente forma:

𝐶𝑎𝑙𝑖𝑑𝑎𝑑 =𝑛ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑚𝑢𝑒𝑠𝑡𝑟𝑎𝑠 𝑑𝑒 𝑢𝑛 𝐴𝑃

𝑛ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑚𝑢𝑒𝑠𝑡𝑟𝑎𝑠 𝑡𝑜𝑡𝑎𝑙𝑒𝑠= 0 𝑜𝑟 1

Además, también se podrán calcular otras variables que caractericen un punto concreto

del mapa, como pueden ser la cobertura, numero de AP disponibles, varianza de la calidad

de los diferentes AP’s…

Todos estos parámetros se podrán usar como variables para la posterior creación del

mapa de calor.

Muestras = 2, Periodo = 400ms, Repeticiones = 2, Tiempo = 2.

MAC: 00:1a:2b:8a:02:3c SSID: WLAN_744A POTENCIA[dBm]: -64Timestamp: 396067755378 mSamples: 0 numMuestra: 0

MAC: 00:1a:2b:85:04:fb SSID: WLAN_2A5E POTENCIA[dBm]: -82Timestamp: 396067755570 mSamples: 3 numMuestra: 0

MAC: a8:d3:f7:27:98:47 SSID: Orange5G-9844 POTENCIA[dBm]: -85Timestamp: 396067755534 mSamples: 6 numMuestra: 0

MAC: 98:01:a7:e8:86:62 SSID: Barcelona1 POTENCIA[dBm]: -91Timestamp: 396067756185 mSamples: 7 numMuestra: 0

I/ScanWifi: New scan

MAC: 00:1a:2b:8a:02:3c SSID: WLAN_744A POTENCIA[dBm]: -60Timestamp: 396072444468 mSamples: 0 numMuestra: 1

MAC: 00:1a:2b:85:04:fb SSID: WLAN_2A5E POTENCIA[dBm]: -77Timestamp: 396072444528 mSamples: 1 numMuestra: 1

MAC: a8:d3:f7:27:98:47 SSID: Orange5G-9844 POTENCIA[dBm]: -85Timestamp: 396072444556 mSamples: 5 numMuestra: 1

MAC: 98:01:a7:e8:86:62 SSID: Barcelona1 POTENCIA[dBm]: -88Timestamp: 396072444603 mSamples: 8 numMuestra: 1

I/ScanWifi: New scan

MAC: 00:1a:2b:8a:02:3c SSID: WLAN_744A POTENCIA[dBm]: -57Timestamp: 396077158843 mSamples: 0 numMuestra: 0

MAC: 00:1a:2b:85:04:fb SSID: WLAN_2A5E POTENCIA[dBm]: -76Timestamp: 396077159087 mSamples: 2 numMuestra: 0

MAC: 98:01:a7:e8:86:62 SSID: Barcelona1 POTENCIA[dBm]: -88Timestamp: 396077159235 mSamples: 8 numMuestra: 0

MAC: a8:d3:f7:27:98:46 SSID: Orange-9844 POTENCIA[dBm]: -88Timestamp: 396077159271 mSamples: 10 numMuestra: 0

I/ScanWifi: New scan

MAC: 00:1a:2b:8a:02:3c SSID: WLAN_744A POTENCIA[dBm]: -58Timestamp: 396081866873 mSamples: 0 numMuestra: 1

MAC: 00:1a:2b:85:04:fb SSID: WLAN_2A5E POTENCIA[dBm]: -76Timestamp: 396081867025 mSamples: 2 numMuestra: 1

MAC: a8:d3:f7:27:98:46 SSID: Orange-9844 POTENCIA[dBm]: -88Timestamp: 396081867226 mSamples: 9 numMuestra: 1

36

5. Diseño e implementación de UI

5.1. Diseño de UI

Una vez especificados al detalle que requerimientos ha de tener cada pantalla se realiza

el diseño de ellas.

Para ello se han de tener en cuenta las pautas y componentes proporcionados por Material Design. [14]

Para ello se ha realizado un prototipo usando el programa Adobe XD, y el pack de

componentes de Material Desings. [15]

5.1.1. App bar y navegación

La aplicación contará con una App bar donde se podrá ver; un icono de navegación (1), el

título de la pantalla actual (2), y un “overflow menú” (3) que se podrá usar para añadir un

dialogo de ajustes o información.

Figura 20: App Bar

Al clicar el icono de navegación o al hacer un desplazamiento con el dedo desde el lateral

izquierdo hacia el centro de la pantalla aparecerá en menú de navegación (navigation

drawer).

Ese menú nos permitirá navegar entre las diferentes pantallas disponibles.

Figura 21: Menú

(1) (2) (3)

37

5.1.2. Captura de datos

A esta pantalla entraremos clicando la opción “Captura de datos” del menú de navegación.

Justo al cargarse la pantalla aparecerá un dialogo que nos mostrará una lista de mapas

cargados previamente.

Podremos seleccionar uno de la lista o dar clic en “Nuevo mapa” para crear uno de nuevo

Si elegimos crear un nuevo mapa aparecerá un nuevo dialogo, donde el usuario tendrá que introducir: el Nombre del mapa, edificio donde se encuentra y la planta:

Finalmente, al clicar en “Cargar imagen” se abrirá la cámara para realizar la fotografía.

Estos campos serán obligatorios, no se habilitará el botón “Cargar imagen” hasta que estos estén rellenados.

Figura 23: Prototipo Cargar Mapa Figura 22: Prototipo Crear Mapa

38

Una vez cargada la imagen, aparecerá el siguiente dialogo donde se mostrarán los datos e imagen introducidos. El usuario podrá entonces Guardar los datos o cancelar y

empezar el proceso de nuevo.

Una vez seleccionado el mapa de la lista o creado uno de nuevo, el usuario podrá ver la siguiente pantalla. En ella se mostrará el mapa, con una línea de campos donde introducir las coordenadas y Angulo.

En la mitad inferior de la pantalla se podrán ver todos los puntos de acceso que capta el terminal de manera detallada, y un conjunto de cuatro campos editables donde el usuario

podrá introducir los parámetros con que se tomará la captura.

Figura 25: Prototipo, Captura

En cuanto el usuario clique en “Start” empezará la captura

Figura 24: Prototipo, Guardar Mapa

39

Mientras la captura esta en proceso, se mostrará un diálogo donde se podrá ver información del progreso de la captura y con un botón para poder cancelarla.

Figura 26: Prototipo, Capturando

Una vez finalizada la captura se mostrará un nuevo diálogo donde se mostrarán los parámetros de la medición y los resultados obtenidos.

Figura 27: Prototipo, resultado captura

Si el usuario, clica en guardar, se guardaran los resultados en la base de datos, por el contrario, si se elige cancelar se desecharán.

Seguidamente la aplicación volverá a la pantalla principal de captura de datos donde el usuario podrá crear otra medida de nuevo.

40

5.1.3. HeatMap

A esta pantalla se entrará clicando la opción “Captura de datos” del menú de navegación.

Justo al cargarse la pantalla aparecerá un dialogo que nos mostrará una lista con los

mapas disponibles, entre los que tendrá que elegir el usuario.

Figura 28, Prototipo, cargar mapa

Una vez cargado el mapa aparecerá una pantalla, donde se podrá ver:

- El mapa con un mapa de calor sobrepuesto - Un campo donde introducir las coordenadas - Un campo donde seleccionar el tipo de mapa que se desea mostrar - Dos campos donde poder indicar un rango de fechas para filtrar las medidas. - Un apartado donde aparecerá una lista con los datos de la medida tomada en

la coordenada seleccionada.

41

Figura 29: Prototipo, heatmap

5.1.4. Gestor de datos

A esta pantalla se entrará clicando la opción “Gestor de datos” del menú de navegación.

Justo al cargarse la pantalla aparecerá una pantalla donde podremos elegir la acción que

queremos hacer: sincronizar datos o eliminarlos.

Figura 30, Prototipo gestor 1

Una vez escogida la opción deseada se mostrará un dialogo donde el usuario podrá elegir

uno o múltiples mapas.

42

A continuación, se mostrará otro diálogo donde el usuario indicará el rango de fechas de las medidas que quiere usar.

Seguidamente la aplicación mostrará la pantalla de gestión de datos específica para la acción que haya indicado.

En ambas opciones se podrá visualizar:

- Mapa con todos los puntos con medidas realizadas - Una línea de campos donde poder introducir una coordenada y ángulo - Un botón de check - Una lista con todas las medidas filtradas por los campos introducidos - Un botón para volver a la pantalla de selección de acción - Un botón para resetear la lista a su estado original - Un botón “Aceptar” para ejecutar la acción

En caso de seleccionar la acción Eliminar aparecerán todos los puntos deseleccionados y el usuario tendrá que seleccionarlos uno a uno o todos haciendo uso del check.

En el caso de Sincronizar aparecerá el check “Todos” marcado, y el usuario podrá eliminar medidas de la lista apretando la “X” roja de cada elemento.

Figura 31: Prototipo cargar mapa gestor

Figura 32: Prototipo, seleccionar rango fecha gestor

43

Una vez seleccionadas las medidas deseadas, al aceptar saldrá una advertencia que se tendrá que aceptar para que la aplicación ejecute la acción.

Figura 34: Prototipo eliminar medidas

Figura 33: Prototipo, cargar medidas

Figura 36: Prototipo, confirmación eliminar

Figura 35: Prototipo, confirmer subir datos

44

5.2. Implementación

Una vez se ha acabado la fase de diseño empieza la fase de desarrollo.

Para este proyecto se ha optado por Android Studio como IDE, ya que se trata del oficial

de la plataforma Android. [16]

Como la aplicación consta de un panel de navegación, se optó por crear un proyecto

marcando la opción Navigation Drawer Activity que nos da Android Studio.

Esta opción simplifica mucho la implementación de la navegación entre las diferentes

pantallas.

Siguiendo los consejos que da la guía de desarrolladores de Android se han usado

Fragments para la implementación de todas las pantallas.

Algunas de las ventajas que ofrece el uso de Fragments son las siguientes:

- Posibilidad de combinar múltiples fragments en una actividad.

- Cada fragmento tiene un ciclo de vida propio, que se puede alterar mientras la

actividad se esté ejecutando. (idea de subactividad).

- Control de varios fragments simultáneamente desde una misma actividad

- Cada fragmento tiene su propio diseño de vista.

- Fácil interacción entre la actividad padre u otros fragments.

- Posibilidad de creación de diseños mas dinámicos y flexibles en grandes

pantallas como las tablets.

Figura 37: Fragments vs Actividades

45

A continuación, se mostrará el layout que usará cada fragment y la actividad principal:

(las capturas que se muestran son solo del layout creado, por lo tanto, carecerá de datos)

Main Activity: Captura de datos: HeatMap:

Gestor de datos:

Figura 40: UI menú Figura 38: UI, Captura Figura 39: UI, heatmap

Figura 42: UI gestor Figura 41: UI, gestor datos

46

6. Diseño e implementación de la Base de Datos

6.1. Diseño de la base de datos

El esquema que usará la base de datos será el siguiente:

Figura 43: Base de datos

A partir de este esquema cabe destacar lo siguiente:

- El campo IMG de Mapa, contiene el path donde se encuentra la imagen. - Cada coordenada guarda el identificador del mapa al que pertenece, las

coordenadas X,Y,Z y el pixel X e Y de la imagen al que pertenecen esas coordenadas.

- Cada mapa ha de tener coordenada origen - Pueden haber infinitas medidas para una misma coordenada. - En los campos fecha inicio y final de medida, se indica el momento en que se

empieza a tomar la captura y el momento en que finaliza. - La tabla muestras, sirve para diferenciar las diferentes repeticiones. - El objeto Muestra indica el calor de potencia de una muestra respecto un

punto de acceso.

47

6.2. Implementación de la base de datos

Primeramente, se realizó la base de datos mediante SQLite editor, ya que, en Android, la

forma típica para crear, actualizar, y conectar con una base de datos SQLite es a través

de una clase auxiliar llamada SQLiteOpenHelper

Pero la verdad es que, aunque la API SQLiteOpenhelper es muy potente, actualmente

desde la propia guía de desarrollo de Android la desaconsejan, ya que es de muy bajo

nivel y requiere una gran cantidad de tiempo y esfuerzo de implementación. Es por eso

que actualmente se recomienda usar la recientemente creada librería Room [20], que

actúa como una capa de abstracción para acceder a la información de la base de datos

SQLite de la aplicación.

Room se encuentra dentro del conjunto de bibliotecas Architecture Components

presentadas en el Google I/O de 2017.

Dentro de este conjunto de bibliotecas se encuentran:

- Room

- LiveData

- Handling Lifecycle

- ViewModel

Todos estos componentes están realizados para simplificar al desarrollador la creación de

base de datos, su manejo, y la posibilidad de actualizar la UI de una manera muy sencilla

en casos de bases de datos que cambian constantemente por terceros.

En este proyecto solo se usará la librería Room

6.2.1. Room

6.2.1.1. Creación de entidades

Como se ha dicho anteriormente Room accede a la base de datos SQLite de la aplicación

con objetos integrados en la aplicación y realiza las verificaciones en tiempo de

compilación.

Gracias a ello, la creación de las entidades de la base de datos resulta idéntica a la manera

en cómo se declaran las clases tradicionalmente.

Por ejemplo:

Figura 44: Crear entidad

Para indicar que ese objeto representa una entidad dentro de la base de datos basta con

poner la notación “@Entity”.

48

Seguidamente se indican las diferentes claves foráneas tal y como se ve en el ejemplo.

Para identificar la Clave Primaria basta con poner la notación “@PrimaryKey” justo encima

del atributo deseado.

En caso querer asignar un identificador automático a la entidad, se añadirá la

propiedad ”autoGenerate”

6.2.1.2. Acceso a datos usando DAOs

Una vez creadas todas las entidades se debe definir la interfaz DAO (Data Acces Object).

En esa interfaz se encontrarán todas las operaciones que podrá usar nuestra aplicación

para consultar o modificar la base de datos.

Las operaciones se pueden definir de una manera muy sencilla usando lenguaje SQL

Figura 45: Crear DAO

Esta interfaz deberá llevar al inicio la anotación @Dao.

Para cada operación que se defina se tendrá que poner una notación:

@Query para para las funciones de consulta.

@Insert para las de creación.

@Delete para las de eliminación.

@Update para las de actualización.

49

Una vez instalada la aplicación en el dispositivo podremos ver que en la carpeta

“Data/Data/com.upc.tfg.WifiMapBuilder/Database” se habrá creado un archivo que

contiene esa base de datos.

Por ejemplo, podemos usar

SQLiteStudio para abrir ese

archivo y ver todos los datos de

las tablas.

6.2.2. Gestión de procesos

Debido a que la entrada en base de datos en Android es desaconsejable realizarla en el

thread principal, es necesario crear un sistema para poder organizar todas las consultas

en segundo plano. En Android se deben usar clases que extiendan de Asynctask.

Esta clase permite realizar operaciones en segundo plano y publicar resultados en el

subproceso de interfaz de usuario de manera sencilla.

Como en nuestro caso habrá un gran número de métodos a implementar se ha decidido

por:

- Crear la clase “Manager” que contenga los métodos más comunes y haga

llamadas a la interficie DAO

- La clase MyAsyntask, se encargara de manejar dichos métodos en segundo

plano, mostrar en la UI el progreso, y control de errores.

Figura 46: SQLite Studio

50

Figura 47: MyAsyntask

Estos son los métodos que encontramos dentro de la clase Manager:

Figura 48: Clase Manager

51

Y aquí un ejemplo de la implementación de uno de ellos:

Figura 49: Clase ejemplo Myasynctask

52

7. Esquema clases

A continuación, se muestra un esquema con las principales clases que actúan.

Tabla 4: Esquema de clases

Para ver y descargar el código, acceder a:

https://gitlab.com/imartin/WifiMapBuilder.git

53

8. Resultados

Durante la realización del proyecto han surgido múltiples dificultades que han limitado el

alcance del mismo. Entre las más destacables se sitúan:

Paquete de trabajo 1 y 2. Estos paquetes de trabajo son críticos y se invirtió mucho tiempo

en analizar las soluciones existentes y establecer los requerimientos a cumplir.

Paquete de trabajo 3. Se invirtió un esfuerzo especial en el diseño previo de la interfaz, de

forma que fuera especialmente usable y capaz. La generación de un prototipo navegable,

independiente de la tecnología finalmente usada, fue también un factor que retrasó el

proceso de implementación.

Paquete de trabajo 4. A lo largo del proyecto surgieron múltiples dificultades. por ejemplo,

la realización de la base de datos mediante SQLOpenHelper para posteriormente volverla

a rehacer desde el principio usando Room (de acuerdo a las guías reportadas en Android

Developer), implementación de las diferentes pantallas navegables de acuerdo a las

directrices acordadas en el prototipo funcional, etc.

Paquete de trabajo 6. El tener que invertir tiempo en la formación de programación en

Android, junto con la formación en sistemas de posicionamiento impidieron el correcto

avance en tiempo del proyecto, según la planificación inicial.

Por todo ello, se decidió no implementar la pantalla encargada de la gestión de datos y de

la subida de ellos a un Web Service. Esta funcionalidad se delega en un futuro a la

construcción del subsistema servidor, en tanto en cuanto se deberá establecer la interfaz

de comunicación con el mismo.

8.1. Prueba de uso

A continuación, se documentará una prueba completa de funcionamiento.

1- Visionado del menú y perfecto funcionamiento de la appBa

Figura 50: Prueba de uso, menú

54

2- Al entrar en “Captura de datos” se muestra diálogo con lista de mapas

Figura 51: Prueba de uso, cargar mapa

3- Al seleccionar Nuevo Mapa se mostrará el siguiente diálogo donde se

introducirán los datos del mapa.

Figura 52: Prueba de uso, nuevo mapa

55

4- Una vez cargada la foto aparecerá el siguiente dialogo donde se pedirá confirmación para guardar el mapa en la base de datos.

Figura 53: Prueba de uso, guardar nuevo mapa

5- Una vez cargado el mapa, se pedirá al usuario que introduzca la coordenada

origen en el mapa clicando en el punto deseado de la imagen.

Figura 54: Prueba de uso, coordenada origen

56

6- A continuación, se mostrará la pantalla captura de datos. Se podrán realizar escaneos rápidos de las señales disponibles. Una vez introducida la posición y clicando en el punto deseado en la imagen, el usuario debe apretar “Select”, modificar los parámetros si lo desea y darle a “Start” para empezar la captura de datos.

Figura 55: Prueba de uso, precaptura

7- Mientras se realiza la captura se mostrará un diálogo donde se muestra el

progreso.

Figura 56: Prueba de uso, dialogo capturando

57

8- Una vez a finalizada la captura aparecerá un diálogo donde se podrán ver los resultados de la medida realizada. Al clicar en “Aceptar” la aplicación volverá al punto 6.

Figura 57: Prueba de uso, resultado captura

9- El usuario podrá entrar en la pantalla “HeatMap” a través del menú lateral. Al entrar aparecerá un dialogo donde el usuario tendrá que escoger un mapa de la lista.

Figura 58: Prueba de uso, Heat map, cargaar mapa

58

10- El mapa se cargará. Una vez cargado el usuario escogerá la variable que quiera visualizar (de momento solo esta implementado la cobertura, a través del número de puntos de acceso). Al clicar en el tipo filtro se visualizará el heatMap.

Figura 59: Prueba de uso, heatmap

11- El usuario podrá escoger un punto y aparecerá un recuadro con los datos de la

medida tomada en ese punto (en desarrollo)

(captura con varios puntos)

59

9. Presupuesto

A lo largo de este proyecto se han realizado tareas de todo tipo: análisis de diferentes

tecnologías, estudio de mercado, diseño, programación…

Es por eso que en este proyecto tendrían que estar involucrados trabajadores con distintos

perfiles:

- Un Consultor que se encargaría de hacer el trabajo funcional: véase estudio de

las tecnologías existente, análisis de mercado, toma de requerimientos y

especificaciones, y diseño de los casos de uso de la aplicación.

- Un diseñador, al que se le asignarían las tareas de: diseño del prototipo y de

todos los grafismos necesarios.

- Un programador, el cual tendría una dedicación completa al proyecto, al que se

le asignarían las tareas más técnicas: diagrama de clases, diseño y creación

de base de datos y el desarrollo de la aplicación.

El diseñador y el programador tendrán un nivel junior, en cambio el consultor que hará al

mismo tiempo de Project Manager será necesario que sea de un perfil más senior.

A continuación, se mostrará el cuadro con el presupuesto final detallado:

Como se puede ver, el desarrollo de este proyecto, tendrá un precio total de 9035€.

Dado que el sistema de gestión de datos no se llegó a implementar por falta de tiempo,

este se hará en un futuro sin cargo alguno.

State of art 2 6 25 300

Analisis de Requerimientos 3 5 25 375

Casosde uso (diagramas de actividad) 3 4 25 300

Diseño de prototipo UI 4 8 12 384

Diagramas de clase 3 4 18 216

Diseño Base de Datos 3 8 18 432

Construccion UI 5 10 12 600

Implementación Creacion BD 3 15 18 810

Desarrollo 7 25 18 3150

Documentacion Memoria 3 12 25 900

Estudio Curso Coursera 11 4 0 0

7467 TOTAL

9035,07 TOTAL+IVA

€/H TOTAL €Mòdulo Tarea

Estudio PREVIO

DISEÑO

Semanas h/semana

Precio la hora

Consultor 25

Diseñador 12

Programador 18

Tabla 5: Presupuesto

60

10. Conclusiones y futuros desarrollos

Como se comentó en el punto 1.1 esta aplicación se encuentra dentro de un sistema

formado por 3 subsistemas. La aplicación desarrollada en este proyecto, el servidor, y la

aplicación de localización. Es por eso, que en un futuro se tendrían que implementar los

dos subsistemas restantes.

Como se dice en el punto 8, Durante la realización del proyecto han surgido múltiples

dificultades que han limitado el alcance del mismo. Aun así, se ha hecho un gran trabajo

dado el tiempo establecido.

Los principales objetivos del proyecto están completados, solo quedará realizar la

implementación del sistema de gestión de datos que quedará delegado al subsistema

siguiente.

A nivel personal, podría extraer la satisfacción de haber aprendido a programar Android

desde 0, y a haber llegado a realizar una aplicación, que en un principio destacaba por su

dificultad, casi al completo.

61

11. Bibliografía

[1] M. S. E. O. E. Doukhnitcha, «An efficient approach for trilateration in 3D positioning,» Elsevier, 2008.

[2] C. B. a. M. Klepal, «Fingerprinting Based Localisation Revisited,» de 2012 International Conference on

Indoor Positioning and Indoor Navigation, 13-15th November 2012 , Cork, Ireland , 2012.

[3] X. Y. J. C. *. a. F. D. Jiahong Li, «A Novel Robust Trilateration Method Applied to Ultra-Wide Bandwidth

Location Systems,» Beijing Institute of Technology,, Beijing, 2017.

[4] K. W. H. Arthaber, «https://rainrfid.org/wp-content/uploads/2016/03/RAIN-RFID-TUGraz.pdf,» [En

línea]. Available: https://rainrfid.org/wp-content/uploads/2016/03/RAIN-RFID-TUGraz.pdf.

[5] «RFID Tag Maximum Read Distance,» 2015. [En línea]. Available:

http://skyrfid.com/RFID_Tag_Read_Ranges.php.

[6] M. Sugano, «INDOOR LOCALIZATION SYSTEM USING RSSI MEASUREMENT OF WIRELESS

SENSOR NETWORK BASED ON ZIGBEE STANDARD,» School of Comprehensive rehabilitation

Osaka Prefecture University , Osaka .

[7] Decawave, «UWB Tag to buy,» [En línea]. Available:

https://www.semiconductorstore.com/cart/pc/viewPrd.asp?idproduct=50013.

[8] atlasrfidstore, «Rfid Tg buy,» [En línea]. Available: https://www.atlasrfidstore.com/rfid-tags/.

[9] Ebay, «Zigbee module,» [En línea]. Available: https://www.ebay.com/itm/2-Pack-Digi-XBee-S2-Series-

2-Zigbee-module-U-FL-connector-XB24-Z7UIT-004-/122643530923.

[10] accent-systems, «BLE Beacon,» [En línea]. Available: https://accent-systems.com/product/ibks-105/.

[11] Situm, «Situm Mapping Tool,» [En línea]. Available:

https://play.google.com/store/apps/details?id=es.situm.maps&hl=es.

[12] IndoorAtlas, «IndoorAtlas MapCreator 2,» [En línea]. Available:

https://play.google.com/store/apps/details?id=com.indooratlas.android.apps.jaywalker.

[13] H. I. Radio, «HERE Indoor Radio Mapper,» [En línea]. Available:

https://play.google.com/store/apps/details?id=com.here.hirmu.

[14] A. Material Design, «Material Desings,» 2018. [En línea]. Available: https://material.io/design/.

[15] Adobe, «Adobe xd,» 2018. [En línea]. Available: https://www.adobe.com/es/products/xd.html.

[16] A. Developer, «Android Developer,» [En línea]. Available: https://developer.android.com/.

[17] S. M. I. a. F. L. H. S. M. I. Y. Alvarez, «ZigBee-based Sensor Network for Indoor,» Área de Teoría de la

Señal y Comunicaciones, Universidad de Oviedo, Oviedo.

[18] J. M. C. S. W. B. Johannes Wendeberg, «Robust Tracking of a Mobile Beacon using Time Differences

of Arrival with Simultaneous Calibration of Receiver Positions,» de Department of Computer Science,

University of Freiburg, Germany, 2012.

62

[19] H. Augur, «kontakt,» 20 2 2017. [En línea]. Available: https://kontakt.io/blog/real-time-location-system-

rtls-study-how-do-rfid-and-ble-differ/.

[20] Coursera, «Coursera,» [En línea]. Available: https://www.coursera.org/learn/desarrollo-de-

aplicaciones/home/welcome.


Recommended