111
UNIVERSIDAD DE CASTILLA-LA MANCHA ESCUELA SUPERIOR DE INGENIER ´ IA INFORM ´ ATICA GRADO EN INGENIER ´ IA INFORM ´ ATICA TRABAJO FIN DE GRADO TECNOLOGIA ESPECIFICA DE COMPUTACI ´ ON Sistema de localizaci´ on para entornos de interior basado en Android Miguel Mart´ ınez del Horno Junio de 2015

Sistema de localización para entornos de interior basado en Android

Embed Size (px)

Citation preview

Page 1: Sistema de localización para entornos de interior basado en Android

UNIVERSIDAD DE CASTILLA-LA MANCHA

ESCUELA SUPERIOR DE INGENIERIA INFORMATICA

GRADO EN INGENIERIA INFORMATICA

TRABAJO FIN DE GRADO

TECNOLOGIA ESPECIFICA DE COMPUTACION

Sistema de localizacion para entornos de interior

basado en Android

Miguel Martınez del Horno

Junio de 2015

Page 2: Sistema de localización para entornos de interior basado en Android
Page 3: Sistema de localización para entornos de interior basado en Android

UNIVERSIDAD DE CASTILLA-LA MANCHA

ESCUELA SUPERIOR DE INGENIERIA INFORMATICA

Departamento de Sistemas Informaticos

TRABAJO FIN DE GRADO

TECNOLOGIA ESPECIFICA DE COMPUTACION

Sistema de localizacion para entornos de interior

basado en Android

Autor: Miguel Martınez del Horno

Directores: Jesus Martınez Gomez

Luis Orozco Barbosa

Junio de 2015

Page 4: Sistema de localización para entornos de interior basado en Android
Page 5: Sistema de localización para entornos de interior basado en Android

Declaracion de Autorıa

Yo, Miguel Martınez del Horno con DNI 04628217L, declaro que soy el unico au-

tor del trabajo fin de grado titulado Sistema de localizacion para entornos de interior

basado en Android y que el citado trabajo no infringe las leyes en vigor sobre pro-

piedad intelectual y que todo el material no original contenido en dicho trabajo esta

apropiadamente atribuido a sus legıtimos autores.

Albacete, a 8 de junio de 2015

Fdo: Miguel Martınez del Horno

Page 6: Sistema de localización para entornos de interior basado en Android
Page 7: Sistema de localización para entornos de interior basado en Android

Resumen

El problema de la localizacion ha sido objeto de estudio e investigacion durante

toda la historia de la humanidad. En los ultimos anos, se ha encontrado una solucion a

este problema en entornos de exterior mediante la tecnologıa GPS (Global Positioning

System o Sistema de Posicionamiento Global), que hace uso de una constelacion de

satelites que permiten el posicionamiento en cualquier punto de la Tierra. El problema

de esta tecnologıa se produce cuando no tenemos vision directa con los satelites, lo que

ocurre en entornos de interior.

Estos entornos de interior suelen estar equipados con emisores Wi-Fi, cuya senal

se puede recibir con cualquiera de los smartphones o telefonos inteligentes actuales.

Utilizando la potencia de la senal como estimador de la distancia a estos emisores,

podremos desarrollar un algoritmo de localizacion si conocemos la ubicacion inicial de

los emisores en el entorno. Sin embargo, esta potencia de emision es altamente ruidosa

y sufre grandes variaciones debido a reflexiones, ası como a la aparicion de obstaculos

entre el emisor y el receptor (muros, personas, etc). Por ello, es necesario integrar estas

mediciones en un algoritmo recursivo que aporte robustez y pueda trabajar con datos

ruidosos. El desarrollo de este sistema en el sistema operativo Android permitirıa su

aplicacion para un elevado numero de usuarios finales, debido a la popularidad de este

sistema y su implantacion en un gran numero de telefonos moviles.

En este trabajo fin de grado se presenta una solucion al problema de la localizacion

en entornos de interior basada en dos elementos clave: a.- el procesamiento de la senal

Wi-Fi y b.- el uso del metodo de Monte Carlo, el cual se basa en un filtro de partıculas.

El proyecto ha sido desarrollado completamente en Android para poder utilizarse en

la mayorıa de smartphones, y ademas ha sido evaluado en un entorno real.

Page 8: Sistema de localización para entornos de interior basado en Android
Page 9: Sistema de localización para entornos de interior basado en Android

dedicado a todos los

que han estado ayudandome

al pie del canon

Page 10: Sistema de localización para entornos de interior basado en Android
Page 11: Sistema de localización para entornos de interior basado en Android

Agradecimientos

Esta es sin duda la parte mas difıcil de escribir de toda la memoria a mi parecer,

ya que es imposible agradecer a todo el mundo que me ha ayudado durante estos 4

maravillosos anos. Sin embargo, voy a hacer un esfuerzo y espero no olvidarme de

nadie.

En primer lugar querıa agradecer la ayuda y el tiempo prestado de mis tutores Luis

y Jesus, ası como la oportunidad que me han ofrecido con la realizacion de este TFG.

Su ayuda ha sido primordial para la realizacion de este proyecto, al igual que la de

Ismael y Luis, quienes me llevaron a ellos.

En segundo lugar quiero agradecer a Manuel la gran contribucion que realizo en las

primeras partes de este proyecto, cuando yo mas perdido estaba.

No quisiera olvidarme de la gran cantidad de amistades que he forjado durante estos

4 anos, tanto en clase como en la residencia universitaria en la que me he hospedado,

la Benjamın Palencia. Sin duda esto ha sido lo mejor de esta etapa de mi vida.

Por ultimo, agradecer todo a los verdaderos culpables de que yo este escribiendo

estas palabras en estos instantes, mis padres Luis Miguel y Marıa Luisa. Sin su apoyo

incondicional no hubiera podido llegar a ser lo que soy, al igual que sin el apoyo de mi

hermana Ana y de Laura, quien me ha acompanado durante todo este viaje.

Page 12: Sistema de localización para entornos de interior basado en Android
Page 13: Sistema de localización para entornos de interior basado en Android

Indice general

INDICE DE FIGURAS XI

Lista de Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii

INDICE DE TABLAS XIII

Lista de Tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1. INTRODUCCION 1

1.1. Motivacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3. Plataforma experimental . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.4. Estructura de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . 4

2. ANTECEDENTES Y ESTADO DE LA CUESTION 7

2.1. Sistema operativo Android . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2. Sistemas de Posicionamiento y Redes Wi-Fi . . . . . . . . . . . . . . . 13

2.3. Algoritmos de localizacion para redes inalambricas . . . . . . . . . . . . 26

3. PLATAFORMA INALAMBRICA Y SISTEMA DE TELEMETRIA 33

3.1. Plataforma inalambrica . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.2. Estudio de la relacion entre la potencia y la distancia . . . . . . . . . . 37

4. SISTEMA DE LOCALIZACION EN INTERIORES 43

4.1. Consideraciones previas . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.2. Algoritmo de localizacion . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.3. Ejecucion del algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5. EXPERIMENTOS Y RESULTADOS 57

5.1. Experimento 1: variacion del numero de partıculas . . . . . . . . . . . . 58

5.2. Experimento 2: uso del GPS . . . . . . . . . . . . . . . . . . . . . . . . 59

5.3. Experimento 3: ponderacion dinamica . . . . . . . . . . . . . . . . . . . 60

5.4. Estudio del error por areas . . . . . . . . . . . . . . . . . . . . . . . . . 61

ix

Page 14: Sistema de localización para entornos de interior basado en Android

x INDICE GENERAL

6. CONCLUSIONES Y PROPUESTAS 63

6.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

6.2. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

BIBLIOGRAFIA 68

CONTENIDO DEL CD 69

A. RESULTADOS OBTENIDOS DEL ESTUDIO DE LA POTENCIA 71

B. MANUAL DE USUARIO 83

B.1. Consideraciones previas . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

B.2. Pantalla de bienvenida . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

B.3. Pantalla de localizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

B.4. Pantalla de ajustes de ejecucion . . . . . . . . . . . . . . . . . . . . . . 85

Page 15: Sistema de localización para entornos de interior basado en Android

INDICE DE FIGURAS

1.1. Router Wi-Fi Fonera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2. LG Nexus 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.1. Datos sobre la presencia en los dispositivos de las distintas versiones de

Android (Google 2015) . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2. Constelacion de satelites GPS alrededor de la Tierra . . . . . . . . . . . 14

2.3. Localizacion de las estaciones de seguimiento de GPS . . . . . . . . . . 15

2.4. Funcionamiento de GPS con un satelite . . . . . . . . . . . . . . . . . . 15

2.5. Funcionamiento de GPS con dos satelites . . . . . . . . . . . . . . . . . 16

2.6. Funcionamiento de GPS con tres satelites . . . . . . . . . . . . . . . . . 17

2.7. Escenario del modo infraestructura de una red Wi-Fi con un punto de

acceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.8. Escenario del modo infraestructura de una red Wi-Fi con varios puntos

de acceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.9. Escenario del modo ad-hoc de una red Wi-Fi . . . . . . . . . . . . . . . 22

2.10. Mecanismo de evasion de colisiones en una red Wi-Fi . . . . . . . . . . 23

2.11. Ejemplo de trilateracion . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.1. Planta baja del I3A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.2. Laboratorio ReTiCS con sus distintas areas marcadas . . . . . . . . . . 34

3.3. Puntos de acceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.4. Posicion de los puntos de medida . . . . . . . . . . . . . . . . . . . . . 37

3.5. Aplicacion para el estudio de la senal. Pantalla principal (izquierda, a)

y pantalla de preferencias (derecha, b) . . . . . . . . . . . . . . . . . . 38

3.6. Relacion entre la distancia y la potencia de aiboNET1 . . . . . . . . . . 42

4.1. Ejes y cuadrantes utilizados en el algoritmo de localizacion . . . . . . . 45

4.2. Representacion del angulo geografico . . . . . . . . . . . . . . . . . . . 49

4.3. Ejemplo de ponderacion de una partıcula con una posicion muy verosımil 50

4.4. Ejemplo de ponderacion de una partıcula con una posicion poco verosımil 51

4.5. Ejemplo de seleccion de partıculas . . . . . . . . . . . . . . . . . . . . . 52

xi

Page 16: Sistema de localización para entornos de interior basado en Android

xii INDICE DE FIGURAS

4.6. Ejemplo de visualizacion de 10 partıculas y la posicion del usuario . . . 54

5.1. Grafica de los errores de cada medida a partir del fichero de salida con

la mejor ejecucion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

A.1. Relacion entre la distancia y la potencia de aiboNET2 . . . . . . . . . . 71

A.2. Relacion entre la distancia y la potencia de aiboNET3 . . . . . . . . . . 80

A.3. Relacion entre la distancia y la potencia aiboNET4 . . . . . . . . . . . 80

A.4. Relacion entre la distancia y la potencia de aiboNET5 . . . . . . . . . . 81

B.1. Orientacion del entorno . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

B.2. Herramienta para obtener las coordenadas geograficas de un punto geografi-

co . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

B.3. Actividad inicial de Localizacion Indoor . . . . . . . . . . . . . . . . . . 89

B.4. Actividad de localizacion de Localizacion Indoor . . . . . . . . . . . . . 90

B.5. Dialogo mostrado para activar la conexion Wi-Fi . . . . . . . . . . . . 90

B.6. Dialogo mostrado para activar la conexion GPS . . . . . . . . . . . . . 91

B.7. Actividad de ajustes de ejecucion de Localizacion Indoor . . . . . . . . 92

B.8. Dialogos mostrados para la informacion de los routers. Anadir router

(izquierda), modificar router (centro) y borrar router (derecha) . . . . . 93

Page 17: Sistema de localización para entornos de interior basado en Android

INDICE DE TABLAS

2.1. Cuota de mercado de los sistemas operativos para smartphones . . . . 11

3.1. Ubicacion de los puntos de medida en la Zona A . . . . . . . . . . . . . 36

3.2. Ubicacion de los puntos de medida en la Zona B . . . . . . . . . . . . . 36

3.3. Ubicacion de los puntos de medida en la Zona C . . . . . . . . . . . . . 36

3.4. Ubicacion de los puntos de medida en la Zona D . . . . . . . . . . . . . 36

3.5. Valores reales y estimados de la potencia de aiboNET1 . . . . . . . . . 40

3.6. Desviaciones tıpicas de aiboNET1 . . . . . . . . . . . . . . . . . . . . . 41

3.7. Valores de P0 para cada punto de acceso . . . . . . . . . . . . . . . . . 41

4.1. Pesos de las partıculas en el ejemplo de seleccion . . . . . . . . . . . . . 51

5.1. Error cuadratico medio en metros para el experimento 1 . . . . . . . . 58

5.2. Distancia euclıdea media en metros para el experimento 1 . . . . . . . . 58

5.3. Error cuadratico medio en metros para el experimento 2 . . . . . . . . 59

5.4. Distancia euclıdea media en metros para el experimento 2 . . . . . . . . 59

5.5. Error cuadratico medio en metros para el experimento 3 . . . . . . . . 60

5.6. Distancia euclıdea media en metros para el experimento 3 . . . . . . . . 60

5.7. Error medio en metros de cada area . . . . . . . . . . . . . . . . . . . . 62

A.1. Valores reales y estimados de la potencia de aiboNET2 . . . . . . . . . 72

A.2. Desviaciones tıpicas de aiboNET2 . . . . . . . . . . . . . . . . . . . . . 73

A.3. Valores reales y estimados de la potencia de aiboNET3 . . . . . . . . . 74

A.4. Desviaciones tıpicas de aiboNET3 . . . . . . . . . . . . . . . . . . . . . 75

A.5. Valores reales y estimados de la potencia de aiboNET4 . . . . . . . . . 76

A.6. Desviaciones tıpicas de aiboNET4 . . . . . . . . . . . . . . . . . . . . . 77

A.7. Valores reales y estimados de la potencia de aiboNET5 . . . . . . . . . 78

A.8. Desviaciones tıpicas de aiboNET5 . . . . . . . . . . . . . . . . . . . . . 79

xiii

Page 18: Sistema de localización para entornos de interior basado en Android
Page 19: Sistema de localización para entornos de interior basado en Android

Capıtulo 1

INTRODUCCION

La posicion de un usuario en su entorno puede resultar de un gran interes para nu-

merosas aplicaciones, tales como la muestra de informacion personalizada dependiente

de la zona donde se encuentra el usuario, informar de rutas optimas para llegar a un

destino deseado, o informar de zonas de especial interes por algunas peculiaridades

(aglomeraciones, alertas meteorologicas, etc).

Este problema se ha resuelto en entornos de exterior gracias al uso de sensores

GPS, integrados en los telefonos moviles en las ultimas generaciones de smartphones.

Sin embargo, el uso del GPS no funciona en entornos de interior, lo cual reduce su

rango de actuacion.

En este Trabajo Fin de Grado (en adelante TFG), se propone un sistema de locali-

zacion para entornos de interior basado en Android. Este sistema se apoya en el uso de

emisores Wi-Fi, ampliamente utilizados en grandes edificios como centros comerciales o

universidades. Su desarrollo en Android permitira su despliegue en un elevado numero

de dispositivos moviles, ya que actualmente es la tecnologıa predominante por encima

de sus competidores iOS y Windows Phone.

El sistema de localizacion estima la posicion del usuario mediante una integracion

recursiva de las intensidades de senal para una serie de emisores, de los cuales conocemos

su posicion exacta. Esta intensidad es traducida en distancias gracias a una fase previa

de mediciones en el entorno final de actuacion. En lugar de triangular directamente las

distancias calculadas para obtener la posicion del usuario, el sistema propuesto hace

uso de un integrador matematico que aumenta la estabilidad del sistema y su robustez

ante el inherente ruido en el procesamiento de la senal.

1.1. Motivacion

En los ultimos anos se ha producido un gran auge de las tecnologıas inalambricas

y los servicios de localizacion. Las redes inalambricas han sufrido una gran expansion

1

Page 20: Sistema de localización para entornos de interior basado en Android

2 CAPITULO 1. INTRODUCCION

tanto interiores como en zonas urbanas, dando lugar a la aparicion de una serie de

servicios que las utilizan debido a su sencillez. Los servicios de localizacion se han

homogeneizado mediante el uso del GPS, al menos en entornos de exterior.

La localizacion en interiores es un problema aun no resuelto con gran precision, ya

que no existe una tecnologıa dedicada a ello. En estos entornos el GPS no funciona

debido a que no hay una conexion directa entre los satelites y el usuario. Debido a

la gran implantacion de redes Wi-Fi tanto en sitios publicos como en centros de ocio,

esta tecnologıa se convierte en un candidato a considerar. Por otra parte, Android

ha experimentado en los ultimos anos un gran auge, llegando a ser actualmente la

tecnologıa predominante por encima de sus competidores iOS y Windows Phone. Todo

esto crea un entorno idoneo para crear aplicaciones de localizacion en interiores vıa

Wi-Fi.

1.2. Objetivos

El objetivo principal del proyecto es desarrollar un sistema que permita localizar

dentro de un entorno de interior a usuarios a traves de sus dispositivos moviles. El

objetivo del proyecto es proponer un sistema hıbrido capaz de utilizar la senal de satelite

cuando el usuario se encuentre en el exterior, pero que utilice un sistema alternativo

cuando esta senal sea insuficiente. Para ello, se hara uso del procesamiento de la senal

inalambrica y los emisores Wi-Fi desplegados por el entorno.

Los subobjetivos del proyecto son:

Estudio del canal de comunicacion Wi-Fi en interiores a fin de determinar la

distancia entre el dispositivo movil a localizar y las balizas (puntos de acceso).

Integrar en tiempo real las distancias estimadas a diferentes emisores Wi-Fi en

una unica posicion final.

Desarrollar una aplicacion movil facil de usar y sin necesidad de requisitos adi-

cionales (librerıas, software de terceros, etc)

1.3. Plataforma experimental

Dentro de las actividades desarrolladas en el marco del TFG, se ha montado una

plataforma experimental compuesta de cinco puntos de acceso Wi-Fi que actuaran

como emisores de senal y un smartphone que actuara como receptor de la senal.

El punto de acceso Wi-Fi escogido se puede observar en la figura 1.1 y cuenta con

la siguiente especificacion:

Marca: Fonera.

Page 21: Sistema de localización para entornos de interior basado en Android

1.3. PLATAFORMA EXPERIMENTAL 3

Dimensiones: 93,5mm x 25,5mm x 70mm (excluyendo la antena).

Alimentacion: Entrada: 100-240V ∼ 50-60 Hz 0.3A. Salida: 5V, 2.0A DC

Consumo de energıa: 4 Watios Memoria Flash: 8MB / SDRAM: 16MB.

Conector de antena: conector RPSMA (SMA Inverso).

Antena: Antena omnidireccional desmontable (2dBi).

Autenticacion: WEP 64bit/128bit, WAP, WAP2, WPA mixed cifrado: TKIP,

AES, Mixed.

Estandares: IEEE 802.11b / 802.11g (54Mbps).

Figura 1.1: Router Wi-Fi Fonera

El smartphone utilizado tanto para realizar el estudio de la red como para la im-

plementacion del sistema se puede observar en la figura 1.2 y cuenta con la siguiente

especificacion:

Marca: LG.

Modelo: Nexus 5.

Dimensiones Alto x Ancho x Profundidad (mm): 137, 9× 69,2× 8, 6.

Sistema Operativo: AndroidTM 5.1, Lolipop R©.

Frecuencia: LTE CAT 4, HSPA+ 21 Mbps*.

Page 22: Sistema de localización para entornos de interior basado en Android

4 CAPITULO 1. INTRODUCCION

Red: 800 MHz/1900 MHz (CDMA), 1900 MHz (LTE), 850/900/1800/1900 MHz

(GSM) y 850/1900/2100 MHz (UMTS)

WiFi: 802.11a/b/g/n/ac.

Figura 1.2: LG Nexus 5

1.4. Estructura de la memoria

Esta memoria se divide en varios capıtulos que describen todo el desarrollo del

sistema de localizacion en interiores basado en Android.

En el segundo capıtulo, Antecedentes y Estado de la Cuestion, se describe el sistema

operativo Android, el sistema de procesamiento global (GPS), la tecnologıa Wi-Fi y

diversos algoritmos de localizacion.

En el tercer capıtulo, Plataforma Inalambrica y Sistema de Telemetrıa, se muestra

la metodologıa usada para el despliegue del entorno de localizacion y el estudio de la

relacion entre la potencia y la distancia de una senal Wi-Fi.

El cuarto capıtulo, Sistema de Localizacion en Interiores, expone el algoritmo de

localizacion a traves del cual el sistema estima la posicion del usuario en el entorno.

Page 23: Sistema de localización para entornos de interior basado en Android

1.4. ESTRUCTURA DE LA MEMORIA 5

El quinto capıtulo, Experimentos y Resultados, presenta los experimentos que se

han realizado a fin de evaluar la precision del sistema de localizacion desarrollado.

En el sexto y ultimo capıtulo, Conclusiones y Propuestas, se exponen las conclusio-

nes obtenidas de los experimentos y se proponen nuevas propuestas y proyectos sobre

el tema en cuestion.

Page 24: Sistema de localización para entornos de interior basado en Android
Page 25: Sistema de localización para entornos de interior basado en Android

Capıtulo 2

ANTECEDENTES Y ESTADO DE

LA CUESTION

La aplicacion desarrollada en este TFG para el posicionamiento en interiores se

realiza sobre el sistema operativo Android, utilizando como referencia para la localiza-

cion una red Wi-Fi. Este capıtulo trata de dar una vision global de cada componente

tecnologico involucrado en la realizacion del proyecto.

En primer lugar, se describen las caracterısticas mas relevantes del sistema operativo

Android. A continuacion se explican los principios de funcionamiento de las tecnologıas

GPS y Wi-Fi. Finalmente, se presentan los principios sobre los que se basan los sistemas

de localizacion por medio de redes inalambricas. Es importante mencionar que esta

presentacion se limita a los principios sobre los que se vienen desarrollando los sistemas

de localizacion en interiores haciendo uso de redes inalambricas, y no a propuestas

especıficas haciendo uso de diversas tecnologıas inalambricas. El lector intreresado en

esto utlimo puede consultar la referencia [10].

2.1. Sistema operativo Android

Android [12] [14] es un sistema operativo orientado a telefonos moviles inteligentes,

tabletas y dispositivos embebidos que esta basado en la tecnologıa Linux. El codigo

del sistema operativo Android cuenta con mas de 12 millones de lıneas escritas en los

lenguajes XML, C, C++ y Java. La mayorıa del codigo fuente esta liberado actualmente

bajo licencia Apache, una licencia libre y de codigo abierto. Por lo tanto, el codigo

fuente del sistema operativo Android puede ser utilizado y modificado tanto por los

fabricantes como por los desarrolladores.

En la actualidad, existen multitud de opiniones y crıticas acerca de si Android

es realmente un sistema operativo completamente abierto, ya que incumple algunas

premisas imprescindibles en el desarrollo de un proyecto de software libre, como la

7

Page 26: Sistema de localización para entornos de interior basado en Android

8 CAPITULO 2. ANTECEDENTES Y ESTADO DE LA CUESTION

transparencia total en la toma de decisiones de implementacion, la discriminacion entre

los distintos desarrolladores o la apertura de la totalidad del codigo fuente.

En el ano 2008, la comunidad de dsarrolladores de Android encontro una manera

para obtener permisos de superusuario (root) en el sistema operativo Linux de An-

droid. De esta forma nacıa la posibilidad de poder modificar los firmwares originales

de Android y reinstalarlos en el dispositivo a voluntad. Posteriormente, nacen comu-

nidades como Cyanogen o MIUI, que implementan versiones no oficiales de Android y

que ofrecen al usuario un sistema con caracterısticas que no se encuentran en las versio-

nes oficiales. Estas versiones no oficiales del sistema operativo Android se denominan

Read Only Memory (ROMs).

2.1.1. Historia de Android

La historia de Android empieza en el ano 2003 cuando Andy Rubin, ingeniero que

trabajo para la empresa Apple, funda su propia empresa llamada Android Inc. En el

ano 2005, Google compra la empresa de Andy Rubin y juntos comienzan el desarrollo

del sistema operativo Android con Andy a la cabeza. Dos anos despues, en noviembre

de 2007, Google presenta oficialmente Android, pero no es hasta el ano 2008 cuando se

ve por primera vez funcionando en un dispositivo movil (LG Go T-Mobile con Android

1.0).

Actualmente, Android ha alcanzado ya su decima version significativa del sistema

operativo llamada Lolipop. La nomenclatura de las versiones de Android esta basada

en nombres de postres populares siguiendo el orden alfabetico de la primera letra.

Seguidamente, se describen brevemente las aportaciones tecnologicas mas importantes

que introduce cada una de las versiones del sistema operativo.

Cupcake

Presentada en abril de 2009, Android 1.5 Cupcake es la primera version significativa

del sistema operativo Android. Anteriormente, se lanzaron tres versiones del sistema

(Android 0.9, Android 1.0 y Android 1.1) pero es a partir de Cupcake cuando se empie-

zan a apreciar cambios importantes en las distintas versiones de Android. Esta version

incorporo la posibilidad de usar un teclado virtual (teclado QWERTY), que reemplazo

al teclado fısico tradicional y que podıa ser utilizando tanto en posicion horizontal

como vertical. Se consiguieron avances en el tratamiento de vıdeo, tanto en la parte

de captura como en la parte de reproduccion. Ademas, se incorporo la funcionalidad

de compartir contenido multimedia con sistema como Picassa o YouTube. Se incluyo

la posibilidad de incorporar widgets de terceros en la pantalla de inicio del usuario,

anadiendo al Software Development Kit (SDK) las clases y la documentacion necesaria

para desarrollarlos.

Page 27: Sistema de localización para entornos de interior basado en Android

2.1. SISTEMA OPERATIVO ANDROID 9

Donut

Lanzada en septiembre de 2009, Android 1.6 Donut presento mejoras muy impor-

tantes a nivel de busquedas por medio del motor de Google, tanto en la parte local del

dispositivo como en Internet, introduciendo la llamada “Busqueda Universal”. Donut

tambien introdujo el sistema Speech to Text que permite al usuario realizar busquedas a

traves de ordenes de voz. Ademas de las busquedas, tambien se incorporaron avances en

la interfaz de usuario y en aplicaciones como Google Maps anadiendo funcionalidades

como el guiado paso a paso.

Eclair

Presentada en diciembre de 2009, Eclair abarco la version Android 2.0 y Android

2.1. La version Android 2.1 solo se limito a corregir algnos errores de su antecesora.

Eclair incorporo la posibilidad de sincronizar los contactos de la red social Facebook y

su compatibilidad con HTML5 y Flash para el navegador del sistema.

Froyo

Android 2.2 Froyo fue presentada en mayo de 2010. Las novedades que aporto esta

version estuvieron dirigidas, en su mayorıa, a la mejora del manejo de los recursos del

sistema operativo, haciendo que Android se convirtiese en un sistema mucho mas fluido.

Froyo incorporo, como novedad importante, la posibilidad de convertir el dispositivo

en un punto de acceso Wi-Fi. Tambien permitio que el sistema pudiese sincronizarse

con el correo electronico de Microsoft Exchange y ofrecio la posibilidad de realizar

videollamadas.

Gingerbread

Lanzada en diciembre de 2010, Android 2.3 Gingerbread estuvo dirigida a solven-

tar el gran problema de consumo de baterıa originado por la multitarea del sistema

operativo. Gingerbread anadio ademas la posibilidad de realizar conexiones Near Field

Communication (NFC) para intercambiar archivos y sincronizar dispositivos.

Honeycomb

Android 3.0 Honeycomb fue la version de Android optimizada para tabletas. Pre-

sentada en mayo de 2011, esta version incorporo muchos cambios a nivel de apariencia

en la interfaz de usuario. Mejoro la gestion de los procesos en la multitarea y permitio

al usuario anadir complementos a las tabletas mediante la interfaz USB. Honeycomb

continuo incorporando la posibilidad de realizar conexiones NFC y mejoro su navegador

anadiendo funcionalidades como el historial de visitas.

Page 28: Sistema de localización para entornos de interior basado en Android

10 CAPITULO 2. ANTECEDENTES Y ESTADO DE LA CUESTION

Ice Cream Sandwich

Android 4.0 Ice Cream Sandwich fue presentada en diciembre de 2011 y supuso un

cambio radical en la interfaz de usuario de los smartphones con respecto a Gingerbread.

Este cambio de interfaz estuvo inspirado en la apariencia que presento Honeycomb en

la que predominaban estilos azules y negros. Tambien heredo de Honeycomb la gestion

de la multitarea anadiendo una lista con aplicaciones ejecutadas recientemente, que

permitıa al usuario un acceso mas rapido a cada una de ellas. Como novedad llamativa,

Ice Cream Sandwich abrio las puertas al reconocimiento facial, haciendo que el usuario

pudiese desbloquear su dispositivo acercando su rostro a la camara delantera. Con esta

version, Android acabo de una vez por todas con su mala fama en el terreno de la

accesibilidad del sistema operativo para usuarios con discapacidad visual, anadiendo

la posibilidad de cambiar el control de navegacion a un control basado en gestos con

realimentacion auditiva.

Jelly Bean

Android 4.1 Jelly Bean fue lanzada en mayo de 2012 y tuvo como novedad principal

la mejor de la velocidad del sistema permitiendo una mejor experiencia de uso. Jelly

Bean no realizo cambios significativos a nivel de apariencia de interfaz con respecto

a su antecesora Ice Cream Sandwich. Esta version sı aporto nuevas funcionalidades,

como la posibilidad de utilizar el sintetizador de voz sin tener conexion a Internet, la

mejora de las notificaciones y el tratamiento de los widgets permitiendo que se pudiesen

redimensionar, mover y posicionar de una forma mas agil. En el campo de la seguridad,

Jelly Bean incorpora los sistemas Data Execution Prevention (DEP) y Address Space

Layout Randomization (ASLR) que ya incluıan otros sistemas como iOS o Windows

Phone. Estos sistemas se encargan de gestionar la memoria reservada de las aplicaciones

de forma segura. Con estas medidas, Android se refuerza en un campo en el que es

muy criticado.

Kit Kat

Android 4.4 Kit Kat fue lanzada en octubre de 2013 con un nombre que no se supo

hasta su lanzamiento. Su nombre original iba a ser Android 5.0 Key Lime Pie pero

durante el Mobile World Congress de Barcelona se firmo un acuerdo con la companıa

Nestle para que el nombre de la nueva version fuera Kit Kat. Esta version rebajo los

requisitos hardware para lograr un mejor rendimiento en dispositivos con menos de 512

MB de RAM, anadio servicios de almacenamiento en la nube integrados, incorporo el

Administrador de dispositivos Android, etc.

Page 29: Sistema de localización para entornos de interior basado en Android

2.1. SISTEMA OPERATIVO ANDROID 11

Sistema operativo Ventas 2014 Cuota de mercado 2014 Ventas 2013 Cuota de mercado 2013 Cambios ano por ano

Android 1059.3 81.5 % 802.2 78.7 % 32.0 %

iOS 192.7 14.8 % 153.4 15.1 % 25.6 %

Windows Phone 34.9 2.7 % 33.5 3.3 % 4.2 %

BlackBerry 5.8 0.4 % 19.2 1.9 % -69.8 %

Otros 7.7 0.6 % 2.3 0.2 % 234.8 %

Total 1300.4 100 % 1018.7 100 % 27.7 %

Tabla 2.1: Cuota de mercado de los sistemas operativos para smartphones

Lolipop

Android 5.0 Lolipop [17] es la ultima version de este sistema operativo y fue lanzada

en noviembre de 2014. Esta version cambio de nuevo la interfaz del sistema, utilizando

para ello Material Design, una nueva forma de disenar interfaces de usuario realizada

por Google. Esta version tambien introdujo soporte para pantallas pequenas (weara-

bles), renovo el sistema de notificaciones (permitiendo ahora ver las notificaciones sin

necesidad de desbloquear el dispositivo), aumento el tiempo de vida de la baterıa, etc.

2.1.2. Android en el mercado movil

A dıa de hoy, Android es el sistema operativo movil mas usado en todo el mundo,

con una cuota de mercado del 81.5 % a finales del ano 2014, segun IDC [11], tal y como

se puede ver en la tabla 2.1, la cual muestra las ventas (en millones de unidades) y la

cuota de mercado en los anos 2014 y 2013. En segunda posicion se encuentra iOS con

un 14.8 %, haciendo que solo un 3.7 % de la cuota de mercado mundial pertenezca a

otros sistemas operativos como Windows Phone o BlackBerry.

Actualmente, la version mas extendida de Android es Android 4.4 Kit Kat con

un 39.8 % segun Google [16] a dıa 4 de mayo de 2015, tal y como puede verse en la

figura 2.1. Poco a poco versiones anteriores como Android 2.3 Gingerbread han ido

desapareciendo debido a la aparicion de mejores dispositivos que soportan las ultimas

versiones de este sistema operativo.

2.1.3. Componentes basicos de una aplicacion Android

A continuacion se describen varios componentes o clases principales que aparecen

con mayor frecuencia en una aplicacion Android:

Activity: la clase Activity (actividad) representa el componente principal de la

interfaz grafica de una aplicacion en Android. Las Activities pueden verse como

las distintas pantallas o ventanas de las que se compone una aplicacion.

Service: la clase Service (servicios) son componentes que no presentan interfaz

grafica y que funcionan en un segundo plano. Los objetos Service son utilizados

Page 30: Sistema de localización para entornos de interior basado en Android

12 CAPITULO 2. ANTECEDENTES Y ESTADO DE LA CUESTION

Figura 2.1: Datos sobre la presencia en los dispositivos de las distintas versiones de

Android (Google 2015)

para realizar tareas especıficas como el lanzamiento de notificaciones, la actuali-

zacion de datos de la interfaz principal, etcetera.

View: la clase View representa el mecanismo basico en el que se apoyan todos

los elementos que construyen una interfaz. En Android existen mutitud de clases

para generar interfaces, las cuales heredan directa o indirectamente de la clase

View.

Content Provider: la clase ContentProvider representa el mecanismo basico

para compartir datos entre aplicaciones Android. Mediante los Content Provider,

es posible utilizar datos determinados en diversas aplicaciones sin necesidad de

mostrar detalles sobre la estructura o sobre su almacenamiento interno.

Broadcast Receiver: la clase BroadcastReceiver representa el componente

destinado a detectar y reaccionar ante determinados eventos que genera el sistema

operativo Android. Algunos de esos eventos pueden ser la conexion a una red Wi-

Fi, la entrada de una llamada, la llegada de un SMS, etc.

Intent: la clase Intent representa el componente de comunicacion entre ob-

jetos de la clase Activity u objetos de la clase Service. Esta clase permite la

transferencia de datos entre Activities o Services. Tambien permite iniciar nuevas

Activities o incluso iniciar aplicaciones externas.

Page 31: Sistema de localización para entornos de interior basado en Android

2.2. SISTEMAS DE POSICIONAMIENTO Y REDES WI-FI 13

2.2. Sistemas de Posicionamiento y Redes Wi-Fi

2.2.1. Sistema de posicionamiento global: GPS

El sistema de posicionamiento global [4] (en adelante GPS) es un sistema que per-

mite obtener la posicion de un objeto en cualquier punto de la Tierra. Se trata de

un sistema de radionavegacion creado por el Departamento de Defensa de los Estados

Unidos que ofrece servicios fiables de posicionamiento, navegacion y cronometrıa gra-

tuita e ininterrumpidamente a usuarios civiles en todo el mundo. El GPS se compone

de tres elementos: los satelites en orbita alrededor de la Tierra, las estaciones terrestres

de seguimiento de control y los receptores del GPS de los usuarios.

Satelites en orbita

El sistema GPS cuenta con una constelacion de 32 satelites que estan en orbita

con la Tierra, tal y como puede verse en la figura 2.2. Estos satelites se encuentran

a una altutid aproximada de 20000 km y circundan la Tierra dos veces al dıa. Los

satelites se organizan en seis planos orbitales igualmente espaciados en torno a la Tierra.

Cada plano tiene cuatro slots ocupados por los satelites de referencia. Esta disposicion

garantiza que los usuarios pueden ver al menos cuatro satelites desde cualquier punto

de la Tierra, que es el numero mınimo de satelites a los que un usuario tiene que tener

vision para que el sistema pueda obtener su posicion.

Estaciones de seguimiento

Las estaciones de seguimiento de control del GPS consiste en una red global de

instalaciones en tierra que realizan un seguimiento de los satelites GPS, monitorean

sus transmisiones, realizan analisis y envıan datos y comandos a la constelacion. Ac-

tualmente el control del GPS incluye una estacion de control principal, una estacion

de control maestra alternativa, doce antenas de mando y control y dieciseis lugares de

monitorizacion, tal y como puede verse en la figura 2.3.

Receptores GPS

Los receptores GPS que tienen los usuarios reciben las senales de los satelites GPS

y las procesan para obtener la posicion tridimensional del usuario y la hora precisa. Ac-

tualmente existen diversos dispositivos que cuentan con un receptor GPS: navegadores,

telefonos moviles, relojes inteligentes, etc.

Page 32: Sistema de localización para entornos de interior basado en Android

14 CAPITULO 2. ANTECEDENTES Y ESTADO DE LA CUESTION

Figura 2.2: Constelacion de satelites GPS alrededor de la Tierra

Funcionamiento

El sistema GPS [8] obtiene la posicion del usuario a partir de las efemerides, que

son las informaciones utiles que recibe el receptor GPS desde los satelites GPS. Cada

satelite cuenta con sus propias efemerides, en la que se encuentra su posicion en el

espacio, su hora atomica, si debe tenerse en cuenta para la triangulacion, etc. Por

tanto, las efemerides de cada satelite son unicas, pudiendo identificar ası el satelite.

Para obtener el punto geografico en el que se encuentra el usuario, los receptores

GPS miden el tiempo que tarda en contestar un satelite a la peticion. A partir de este

tiempo y sabiendo que las ondas se propagan a la velocidad de la luz (teoricamente), se

puede obtener la distancia que hay entre el receptor y el satelite mediante la formula

que relaciona la velocidad y el tiempo.

De esta forma, la posible posicion del usuario se reduce a un punto en la superficie

de la esfera que tiene como centro el satelite en cuestion y como radio la distancia

calculada, tal y como muestra la figura 2.4. Si obtenemos tambien la distancia a un

segundo satelite, la posicion se reduce a algun lugar dentro de la interseccion de ambas

Page 33: Sistema de localización para entornos de interior basado en Android

2.2. SISTEMAS DE POSICIONAMIENTO Y REDES WI-FI 15

Figura 2.3: Localizacion de las estaciones de seguimiento de GPS

esferas (figura 2.5). Con un tercer satelite la posicion del usuario se limita a dos posibles

puntos (figura 2.6), pero normalmente uno de ellos resulta ser muy improbable por su

ubicacion demasiado lejana de la superficie terrestre.

Figura 2.4: Funcionamiento de GPS con un satelite

Un cuarto satelite es necesario para obtener de manera mas fiable la posicion del

receptor. Esto es debido a que se necesita el tiempo exacto que tarda en llegar la senal

desde el satelite al receptor, ya que una mınima variacion del tiempo puede ocasionar

kilometros de error. Es muy difıcil obtener el tiempo exacto ya que los relojes no son

exactos, lo que se conseguirıa con la utilizacion de relojes atomicos, que aumenta el

coste del sistema. Por ello, solo los satelites utilizan estos relojes y, para evitar que los

receptores tambien tengan que utilizarlos, se utiliza este cuarto satelite. A todo esto

hay que anadir, ademas, los errores que ocasiona la atmosfera.

Page 34: Sistema de localización para entornos de interior basado en Android

16 CAPITULO 2. ANTECEDENTES Y ESTADO DE LA CUESTION

Figura 2.5: Funcionamiento de GPS con dos satelites

API de Android para GPS

Android [18] proporciona una serie de clases dentro del paquete android.location

para permitir a las aplicaciones acceder a los servicios de localizacion soportados por

el dispositivo. El componente principal de esta API es la clase LocationManager, que

viene implementada dentro de Android como un servicio del sistema y permite obtener

la localizacion o la orientacion del usuario, entre otros.

Para obtener una instancia de la clase LocationManager se debe llamar el meto-

do getSystemService(Context.LOCATION SERVICE) de Android, donde el argumento

representa el servicio del sistema al que queremos acceder. Esta instancia permite:

Obtener la ultima ubicacion conocida del usuario de cualquier proovedor de lo-

calizacion (LocationProvider) del dispositivo.

Registrar o borrar actualizaciones periodicas de la localizacion actual del usuario

desde uno o varios proveedores de localizacion.

Registrar o borrar un Intent para ser lanzado si el dispositivo se encuentra en

un area de interes (expresada en metros) de una posicion dada.

La API de Android para GPS permite obtener la localizacion por medio del GPS

(LocationManager.GPS PROVIDER) y del proveedor de red (LocationManager.NETWORK PROVIDER).

Aunque el GPS es mas preciso, no ofrece cobertura en entornos de interior y provoca

un mayor consumo de energıa. El proveedor de red determina la posicion del usuario a

partir de las antenas de telefonıa movil y de las senales Wi-Fi tanto en exteriores como

en interiores con un menor consumo de energıa.

Cada proveedor devuelve un objeto Location que contiene los siguientes campos,

entre otros:

Page 35: Sistema de localización para entornos de interior basado en Android

2.2. SISTEMAS DE POSICIONAMIENTO Y REDES WI-FI 17

Figura 2.6: Funcionamiento de GPS con tres satelites

Latitude: latitud del punto geografico del usuario.

Longitude: longitud del punto geografico del usuario.

Altitude: altitud del punto geografico del usuario.

Accuracy: precision de la medida.

Bearing: orientacion del punto geografico del usuario con respecto a la recta que

representa el Norte terrestre.

Para obtener la posicion de un usuario en Android se debe llamar al metodo

requestLocationUpdates() de LocationManager, el cual recibe:

1. Proovedor desde el cual se van a recibir las localizaciones.

2. Intervalo de tiempo mınimo en milisegundos entre dos actualizaciones de la loca-

lizacion.

3. Distancia mınima en metros entre dos actualizaciones de la localizacion.

4. Oyente del tipo LocationListener cuyo metodo onLocationChanged() recibira

la localizacion del usuario.

Antes de llamar al metodo requestLocationUpdates(), hay que implementar un

oyente del tipo LocationListener, el cual posee los siguientes metodos:

Page 36: Sistema de localización para entornos de interior basado en Android

18 CAPITULO 2. ANTECEDENTES Y ESTADO DE LA CUESTION

onLocationChanged(): llamado cuando una nueva localizacion del usuario esta

disponible.

onStatusChanged(): llamado cuando el estado de un proveedor ha cambiado.

onProviderEnabled(): llamado cuando un proovedor ha sido activado.

onProviderDisabled(): llamado cuando un proovedor ha sido desactivado.

Para dejar de recibir actualizaciones de la posicion del usuario, se debe llamar al

metodo removeUpdates() de la clase LocationManager, el cual recibe el oyente que

estaba obteniendo las actualizaciones de la localizacion.

2.2.2. Redes inalambricas: Wi-Fi

La tecnologıa Wi-Fi [3] [2] es un conjunto de estandares para redes inalambricas

basado en las especificaciones IEEE 802.11. Estos estandares, especificados por el Ins-

tituto de Ingenieros Electricos y Electronicos (IEEE o Institute of Electronical and

Electronics Engineers), definen las llamadas redes WLAN (Wireless Local Area Net-

work o Red de Area Local Inalambrica) como un sistema de comunicacion de datos

inalambricos flexible muy utilizado como alternativa a las redes LAN (Local Area Net-

work o Red de Area Local) cableadas o como una extension de estas.

El termino Wi-Fi fue acunado por el grupo Wi-Fi Alliance, anteriormente conocido

como WECA (Wireless Ethernet Compatibility Alliance), quienes garantizan la com-

patibilidad entre dispositivos que utilizan el estandar IEEE 802.11. Estos estandares

establecen de forma detallada los niveles inferiores del modelo OSI para las conexiones

que utilizan ondas electromagneticas, donde se encuentran los protocolos de la capa

fısica (PHY) y los protocolos de la capa de enlace de datos, que se divide en el Control

de Acceso al Medio (MAC) y el Control de Enlace Logico (LLC). La capa fısica define

la modulacion de las ondas de radio y las caracterısticas de senalizacion para la trans-

mision de datos mientras que la capa de enlace de datos define la interfaz entre el bus

del equipo y la capa fısica.

Estandares Wi-Fi

Las especificaciones IEEE 802.11 [3] constituyen una familia de estandares que han

sufrido diversas modificaciones con el objetivo de proporcionar mayor ancho de banda,

seguridad o compatibilidad. Varios de estos estandares son:

802.11a: este estandar cuenta con una velocidad maxima teorica de 54 Mbps,

que en la practica es de 30 Mbps. Opera en la banda de frecuencia de 5 GHz.

Page 37: Sistema de localización para entornos de interior basado en Android

2.2. SISTEMAS DE POSICIONAMIENTO Y REDES WI-FI 19

802.11b: este estandar ofrece una velocidad maxima teorica de 11 Mbps, que en

la practica es de 6 Mbps, y utiliza el rango de frecuencia de 2,4 GHz.

802.11c: este estandar no ofrece ningun interes para el publico general. Es utili-

zado para la comunicacion de dos redes distintas o de diferentes tipos.

802.11d: se trata de un complemento del estandar 802.11 que permite que dis-

tintos dispositivos intercambien informacion en rangos de frecuencia segun lo que

se permite en el paıs de origen del dispositivo.

802.11e: esta destinado a mejorar la calidad del servicio en el nivel de la capa

de enlace de datos. Su objetivo es definir los requisitos de diferentes paquetes

en cuanto al ancho de banda y al retardo de transmision para permitir mejores

transmisiones de audio y vıdeo.

802.11f : permite a un usuario itinerante cambiarse de punto de acceso mientras

esta en movimiento sin importar las marcas de puntos de acceso de la infraes-

tructura de la red a traves del protocolo IAPP.

802.11g: ofrece una velocidad maxima teorica de 54 Mbps, que en la practica

es de 30 Mbps. Utiliza el rango de frecuencias de 2,4 GHz. Este estandar es

compatible con su antecesor, el 802.11b, por lo que los dispositivos que cumplan

con este estandar tambien lo hacen con el 802.11b.

802.11h: su objetivo es unir el estandar 802.11 con el estandar europeo (Hiper-

LAN2) y cumplir con las regulaciones europeas con el uso de frecuencias y el

rendimiento energetico.

802.11i: esta destinado a mejorar la seguridad en la transferencia de datos a

traves del algoritmo de cifrado AES, permitiendo de esta forma cifrar las trans-

misiones de los estandares 802.11a, 802.11b y 802.11g.

802.11n: ofrece una velocidad maxima teorica de 600 Mbps a traves de un uso

simultaneao de las bandas de frecuencia de 2.4 GHz y 5 GHz. Proporciona com-

patibilidad con los estandares 802.11b y 802.11g.

802.11ac: ofrece una velocidad maxima teorica de 1,3 Gbps, que en la practica

es de 433 Mbps, operando en la banda de frecuencias de 5 GHz.

Dispositivos de una red Wi-Fi

Para conectarnos a una red Wi-Fi debemos contar con una serie de elementos

hardware que se detallan a continuacion:

Page 38: Sistema de localización para entornos de interior basado en Android

20 CAPITULO 2. ANTECEDENTES Y ESTADO DE LA CUESTION

Adaptadores inalambricos o controladores de la interfaz de red (Wire-

less adaptaters o Network Interface Controller - NIC): son tarjetas de red que

cumplen con el estandar 802.11 y que permiten a un equipo conectarse a una red

inalambrica. Podemos encontrarlos en tarjetas PCI, tarjetas PCMCIA y adap-

tadores USB. Un equipo que cuente con adaptador inalambrico se denomina

estacion.

Puntos de acceso: permiten a las estaciones acceder a una red Wi-Fi. El punto

de acceso es la union de entre la red y una estacion.

Modos de funcionamiento de una red Wi-Fi

El estandar 802.11 define dos modos de operacion en una red Wi-Fi: modo de

infraestructura y modo ad-hoc.

En el modo infraestructura, cada estacion se conecta a un punto de acceso a traves

de un enlace inalambrico. La configuracion formada por el punto de acceso y las estacio-

nes ubicadas dentro del area de cobertura del punto de acceso se conoce como conjunto

de servicio basico o BSS. Cada BSS se identifica a traves de un BSSID (identificador

de BSS) que es un identificador de 6 bytes que se suele corresponder con la direccion

MAC del punto de acceso. La figura 2.7 muestra un escenario del modo infraestructura

con un punto de acceso.

Figura 2.7: Escenario del modo infraestructura de una red Wi-Fi con un punto de

acceso

Es posible vincular varios puntos de acceso juntos (o con mas exactitud, varios BSS)

con una conexion llamada sistema de distribucion (o SD) para formar un conjunto de

Page 39: Sistema de localización para entornos de interior basado en Android

2.2. SISTEMAS DE POSICIONAMIENTO Y REDES WI-FI 21

servicio extendido o ESS. Un ESS se identifica a traves de un ESSID (identificador del

conjunto de servicio extendido o, de forma abreviada, SSID), que es un identificador

de hasta 32 caracteres en formato ASCII que actua como el nombre de red. La figura

2.8 muestra una red en modo infraestructura con dos puntos de acceso.

Figura 2.8: Escenario del modo infraestructura de una red Wi-Fi con varios puntos de

acceso

Cuando un usuario itinerante se desplaza de un BSS a otro mientras se mueve dentro

del ESS, el adaptador de la red inalambrica de su equipo puede cambiarse de punto de

acceso, segun la calidad de la senal que reciba de los distintos puntos de acceso. Los

puntos de acceso se comunican entre sı a traves de un sistema de distribucion con el

fin de intercambiar informacion sobre las estaciones y, si es necesario, para transmitir

datos desde estaciones moviles.

Para que una estacion se conecte a una red Wi-Fi con modo infraestructura, esta

tiene que enviar una solicitud de sondeo. Esta solicitud contiene el ESSID de la red y

el volumen de trafico que su adaptador inalambrico puede admitir. Si no se establece

ningun ESSID, la estacion escucha la red para escontrar un SSID. Cada punto de acceso

transmite una senal en intervalos regulares (diez veces por segundo aproximadamente).

Esta senal, que se denominada baliza o beacon, provee informacion de su BSSID, sus

caracterısticas (donde se encuentra el RSSI o indicador de fuerza de la senal recibida)

y su ESSID.

Cuando se recibe una solicitud de sondeo, el punto de acceso verifica el ESSID y la

Page 40: Sistema de localización para entornos de interior basado en Android

22 CAPITULO 2. ANTECEDENTES Y ESTADO DE LA CUESTION

solicitud del volumen de trafico encontrado en la senalizacion. Si el ESSID dado con-

cuerda con el del punto de acceso, este envıa una respuesta con datos de sincronizacion

e informacion sobre su carga de trafico. Ası, la estacion que recibe la respuesta puede

verificar la calidad de la senal que envıa el punto de acceso para determinar cuan lejos

esta. Por lo tanto, una estacion dentro del rango de muchos puntos de acceso (que

tengan el mismo SSID) puede elegir el punto que ofrezca la mejor proporcion entre

capacidad de carga de trafico y carga de trafico actual.

En el modo ad-hoc, los equipos cliente inalambricos se conectan entre sı para formar

una red punto a punto, es decir, una red en la que cada equipo actua como cliente y

como punto de acceso simultaneamente. La figura 2.9 muestra una red Wi-Fi en modo

ad-hoc.

Figura 2.9: Escenario del modo ad-hoc de una red Wi-Fi

La configuracion que forman las estaciones se llama conjunto de servicio basico

independiente o IBSS. Un IBSS es una red inalambrica que tiene al menos dos estaciones

y no usa ningun punto de acceso. Por eso, el IBSS crea una red temporal que le permite

a los usuarios que esten en la misma sala intercambiar datos. Se identifica a traves de

un SSID de la misma manera en que lo hace un ESS en el modo infraestructura.

En una red ad-hoc, el rango del BSS independiente esta determinado por el rango

de cada estacion. Esto significa que si dos estaciones de la red estan fuera del rango de

la otra, no podran comunicarse, ni siquiera cuando puedan “ver” otras estaciones. A

diferencia del modo infraestructura, el modo ad-hoc no tiene un sistema de distribucion

que pueda enviar tramas de datos desde una estacion a la otra. Por tanto, un IBSS es

una red inalambrica restringida.

Page 41: Sistema de localización para entornos de interior basado en Android

2.2. SISTEMAS DE POSICIONAMIENTO Y REDES WI-FI 23

Actualmente, las redes Wi-Fi mas extendidas y comunes son las del tipo infraes-

tructura.

Comunicacion en una red Wi-Fi

En una red LAN los equipos utilizan el metodo de acceso CSMA/CD, mediante el

cual cada equipo tiene la libertad de comunicarse en cualquier momento. Cada equipo

que envıa un mensaje verifica que no haya otro equipo enviando un mensaje al mismo

tiempo por el canal. Si alguno lo esta haciendo, entonces ambos equipos deben esperar

un perıodo de tiempo aleatorio antes de comenzar a enviar el mensaje de nuevo.

Con la tecnologıa inalambrica Wi-Fi este proceso no es posible, ya que dos estaciones

que se comunican con un receptor no pueden escucharse entre sı al mismo tiempo debido

a sus diferentes rangos de transmision. Por esta razon, el estandar 802.11 utiliza un

protocolo similar llamado CSMA/CA, donde se utiliza un mecanismo de evasion de

colisiones basado en mensajes recıprocos de acuse de recibo (ACK) que el transmisor

y receptor intercambian, como se observa en la figura 2.10.

Figura 2.10: Mecanismo de evasion de colisiones en una red Wi-Fi

La estacion que desea transmitir escucha a la red. Si esta ocupada, la transmision

se suspende hasta mas tarde. Por el contrario, si el medio permanece libre durante un

cierto perıodo de tiempo (llamado DIFS, que es el espacio entre tramas), la estacion

puede transmitir la senal.

En este contexto, la estacion transmite un mensaje ”Listo para enviar”(RTS o

“Ready To Send”) con informacion sobre la cantidad de datos que desea enviar y

su velocidad de transmision. El receptor, que por lo general es un punto de acceso,

Page 42: Sistema de localización para entornos de interior basado en Android

24 CAPITULO 2. ANTECEDENTES Y ESTADO DE LA CUESTION

responde con un mensaje “Permitido para transmitir” (CTS o “Clear To Send”) y

despues la estacion comienza a enviar datos.

Cuando se han recibido todos los datos enviados por la estacion, el receptor envıa

un aviso de acuse de recibo (ACK). En ese momento todas las estaciones cercanas

esperan el tiempo estimado necesario para transmitir esa cantidad de informacion a la

velocidad declarada.

Senal de una red Wi-Fi

La senal de una red Wi-Fi puede atravesar muros y obstaculos, lo que provoca un

deterioro de esta senal. Algunas caracterısticas de esta senal son:

Atenuacion por distancia: a mayor distancia, la potencia de la senal decrece con

el tiempo de forma logarıtmica, por lo que en las proximidades del emisor la

potencia recibida decrece rapidamente y en las distancias medias la potencia de

la senal decrece mas despacio.

Atenuaciones adicionales: si aparecen obstaculos entre el emisor y el receptor, la

atenuacion es mucho mayor que en espacio libre, por culpa del fenomeno de la

absorcion: cuando una onda se topa con un obstaculo, este absorbe parte de su

energıa. La energıa que se transmite al obstaculo es γd, donde γ es una constante

que depende del material del obstaculo y d es la distancia.

Reflexion: una senal que avanza por el espacio libre, al toparse con un obstacu-

lo pierde parte de su energıa por la absorcion recientemente comentada. Pero,

ademas, si el obstaculo es bastante grande en comparacion con la longitud de

onda de la senal, esta se refleja del mismo modo que lo hace la luz al llegar a un

espejo, ya que la luz es tambien una onda. La senal reflejada puede tener distinta

fase que la senal original, dependiendo de las caracterısticas del obstaculo.

Difraccion: cuando al senal se encuentra con un borde de un obstaculo, se forman

fuentes de onda secundarios en todas las direcciones, lo que se conoce como

difraccion. El grado de difraccion depende del obstaculo y de la amplitud o fase

de la onda.

Dispersion: esta causada por objetos que tienen dimensiones pequenas compa-

radas con la longitud de onda (al contrario que ocurre con la difraccion). Este

fenomeno tambien forma fuentes de onda secundarios.

Los fenomenos de reflexion, difraccion y dispersion son los responsables del mul-

titrayecto, es decir, entre la antena transmisora y la receptora nunca va a haber un

camino unico por el que transita la senal. Todos los frentes de onda que se forman

Page 43: Sistema de localización para entornos de interior basado en Android

2.2. SISTEMAS DE POSICIONAMIENTO Y REDES WI-FI 25

se suman o se restan vectorialmente unos con otros, por lo que la senal percibida por

el receptor no solo proviene del camino mas inmediato (la lınea recta) ni siquiera en

situaciones de vision directa. Esto provoca que existan zonas en las que no hay senal y,

a los pocos centımetros, la potencia recibida sea muy grande o que la potencia recibida

en una misma ubicacion cambie constantemente.

Hay dos tipos de multitrayecto: especular (debido a reflexiones) y difuso (debido

a difracciones o dispersiones). El multitrayecto difuso se puede modelizar como ruido

de fondo (ruido aleatorio pero de magnitud pequena en comparacion con la senal),

mientras que el multitrayecto especular no es tan aleatorio pero puede ser fatal para

la comunicacion al crear areas sin senal.

A todo lo anterior hay que anadir el efecto de otras transmisiones en el mismo

espectro de frecuencias, con lo cual la prediccion del comportamiento de la senal es

completamente imposible.

API de Android para Wi-Fi

Android [15] proporciona una serie de clases dentro del paquete android.net.wifi

para permitir a las aplicaciones comunicarse con punto de acceso Wi-Fi. El componente

principal de esta API es la clase WifiManager, que viene implementada dentro de

Android como un servicio del sistema y permite manejar todos los aspectos de una

conexion Wi-Fi, como puede ser escanear la red, conectarse a un punto de acceso,

obtener la velocidad de conexion, etc.

Para obtener una instancia de la clase WifiManager se debe llamar el metodo

getSystemService(Context.WIFI SERVICE) de Android, donde el argumento repre-

senta el servicio del sistema al que queremos acceder. Esta instancia permite:

Obtener la lista de redes configuradas. Esta lista puede ser visualizada o actua-

lizada.

Manejar la conexion Wi-Fi actual, si existe. Se puede obtener informacion de la

red y la conectividad puede ser establecida o disociada.

Obtener el resultado de un escaneo de puntos de acceso. Contiene informacion

como el SSID, el BSSID, el RSSI, etc.

Registrar o borrar un Intent para ser lanzado ante cualquier cambio del estado

del Wi-Fi.

La API de Android para Wi-Fi permite obtener escaneos de la red mediante la

llamada al metodo startScan() de la clase WifiManager. Este metodo devuelve sus

resultados de forma asıncrona cuando se completa un barrido de la red. Para ello, la

actividad que utiliza esta API debe registrar un BroadcastReceiver junto con la accion

Page 44: Sistema de localización para entornos de interior basado en Android

26 CAPITULO 2. ANTECEDENTES Y ESTADO DE LA CUESTION

SCAN RESULTS AVAILABLE ACTION mediante la llamada al metodo registerReceiver()

de las actividades. Cuando esa accion se complete, el BroadcastReceiver podra obte-

ner el resultado mediante la llamada al metodo getScanResults() de la clase WifiManager.

Para dejar de recibir actualizaciones de la red, la actividad tiene que borrar el registro

del BroadcastReceiver mediante la llamada al metodo unregisterReceiver().

La informacion de cada punto de acceso viene encapsulada dentro de un objeto de

tipo ScanResult. Esta clase cuenta con los siguientes campos:

BSSID: direccion MAC del punto de acceso.

SSID: nombre de la red.

capabilities: describe la autentificacion, la gestion de claves y los esquemas de

encriptacion soportados por el punto de acceso.

frequency: frecuencia en MHz del canal por el que se han comunicado el punto

de acceso y el cliente.

level: potencia de la senal el dBm, tambien conocida como RSSI.

timestamp: marca de tiempo en microsegundos desde que este resultado fue visto

por ultima vez.

2.3. Algoritmos de localizacion para redes inalambri-

cas

Existen una serie de algoritmos de localizacion [10] en una red inalambrica. Estos

algoritmos estiman la localizacion de un nodo a partir de las observaciones de la red

disponibles. Generalmente, estos algoritmos utilizan las siguientes ecuaciones de estado

(2.1) y de observacion (2.2) para estimar la posicion de un nodo:

xt = f(xt−1) + ut (2.1)

yt = h(xt) + nt (2.2)

Los algoritmos de localizacion estiman el estado xt a partir de las observaciones yt.

Los terminos ut y nt son vectores aleatorios que representan, respectivamente, el ruido

del proceso y el ruido de la observacion.

En esta seccion se van a estudiar algunos de estos algoritmos, entre los que se

encuentran los Filtros de Kalman, la Trilateracion y el algoritmo de Monte Carlo.

Page 45: Sistema de localización para entornos de interior basado en Android

2.3. ALGORITMOS DE LOCALIZACION PARA REDES INALAMBRICAS 27

2.3.1. Filtros de Kalman

El filtro de Kalman [1], o KF (Kalman Filter), es una solucion recursiva optima

por el metodo de mınimos cuadrados al problema de filtrado lineal de datos discretos,

publicado por R.E. Kalman en el ano 1960. Este filtro ha sido muy utilizado en sistemas

de navegacion asistida.

El Filtro de Kalman consiste en una serie de ecuaciones matematicas que propor-

cionan una eficiente solucion computacional recursiva al problema de filtrado en un

sistema lineal, soportando la estimacion de estados pasados, presentes y futuros, aun

cuando se desconoce de manera precisa la naturaleza del sistema modelado.

Con este algoritmo se puede afrontar el problema general de estimar el estado de

un sistema estocastico lineal gobernado por las ecuaciones de estado y observacion

xt = Axt−1 + ut−1 (2.3)

yt = Hxt + nt (2.4)

donde

xt ∈ Rn es el estado de un proceso discreto que cambia con el tiempo;

yt ∈ Rm son las observaciones del sistema;

A es una matriz n× n que relaciona el estado anterior con el actual;

H es una matriz m× n que relaciona el estado actual con las observaciones;

ut es el ruido del proceso, con distribucion de probabilidad normal de media nula

y matriz de covarianza: Qt : p(ut) = N(ut|0, Qt);

nt es el ruido de la observacion, con distribucion de probabilidad normal de media

nula y matriz de covarianza: Rt : p(nt) = N(nt|0, Rt);

El problema de este tipo de filtrado se tiene cuando el sistema que se quiere estimar

no es lineal, ya sea en la ecuacion del estado o en la ecuacion de observacion. Existe

una solucion a este problema mediante el uso del filtro de Kalman extendido o EKF

(Extended Kalman Filter).

El algoritmo seguido por el filtro de Kalman cuenta con dos fases principales,

prediccion y correccion, divididas a su vez en varias subfases. Suponiendo una fun-

cion de densidad de probabilidad a priori gaussiana y conocida para el estado inicial,

x0 ∼ N(x0|x0, P0), el desglose de operaciones es:

Actualizacion del tiempo (o “Prediccion”):

Page 46: Sistema de localización para entornos de interior basado en Android

28 CAPITULO 2. ANTECEDENTES Y ESTADO DE LA CUESTION

1. Calculo del estado actual xt a priori:

x−t = f(xt−1) (2.5)

2. Calculo de la covarianza del error actual Pt a priori:

P−t = FtPt−1FTt +Qt−1 (2.6)

Actualizacion de la observacion (o “Correccion”)

1. Obtencion de la ganancia de Kalman Kt:

Kt = P−t HTt (HtP

−t H

Tt +Rt)

−1 (2.7)

2. Actualizacion de la estimacion xt con la observacion yt:

xt = x−t +Kt(yt − h(x−t )) (2.8)

3. Actualizacion de la covarianza del error:

Pt = (I −KtHt)P−t (2.9)

2.3.2. Trilateracion

El metodo de la trilateracion [7] es un metodo que nos permite obtener la posicion

relativa de un objeto a partir de las distancias obtenidas a varios puntos de referencia

de los que se conoce su posicion real. Para poder determinar de forma unica y precisa

la localizacion relativa de un punto en un plano bidimensional usando trilateracion se

necesitan al menos 3 puntos de referencia. Este metodo es el usado por el GPS.

La trilateracion consta de las siguientes fases:

Con las distancias obtenidas a tres puntos de referencia se crea un sistema de

ecuaciones. Este sistema de ecuaciones representa tres circunferencias, cuyos ra-

dios son la distancia a cada punto de referencia.

Se resuelve el sistema de ecuaciones para obtener un conjunto de puntos, llamados

puntos de triangulacion.

Cada punto de triangulacion se considera el vertice de un triangulo.

Se forman todos los triangulos posibles y se calculan sus areas.

El centro del triangulo con el area mas pequena se toma como estimacion de la

posicion relativa que se quiere obtener.

Page 47: Sistema de localización para entornos de interior basado en Android

2.3. ALGORITMOS DE LOCALIZACION PARA REDES INALAMBRICAS 29

En la figura 2.11 se puede observar un ejemplo de trilateracion. En ella se muestran

tres puntos de referencia (P1, P2 y P3) y las distancias (r1, r2 y r3) hasta el punto que se

quiere obtener (B). A partir de P1 y r1 el punto que queremos obtener queda delimitado

a una circunferencia. Anadiendo P2 y r2, el punto que se quiere obtener queda reducido

a dos puntos (A y B), es decir, a la interseccion entre ambas circunferencias. Con P3

y r3, el punto que se quiere obtener queda reducido a la interseccion entre las tres

cincunferencias, que en este caso es B. Se recomienda tener un cuarto punto para

reducir y estimar el error.

Figura 2.11: Ejemplo de trilateracion

2.3.3. Metodo de Monte Carlo aplicado a la localizacion

El metodo de Monte Carlo [5] es un metodo no determinista o estadıstico numerico

usado para aproximar expresiones matematicas complejas y costosas. Esto se consigue a

traves del uso de una secuencia de numeros aleatorios para llevar a cabo una simulacion

estadıstica con el fin de conocer algunas propiedades estadısticas del sistema. Este

metodo debe su nombre al Casino de Monte Carlo (Principado de Monaco) por ser la

“capital del juego de azar”.

El sistema de localizacion de Monte Carlo es una forma del filtro de Bayes den-

tro del contexto de la localizacion. Emplea un filtro de partıculas para mantener una

distribucion de probabilidad sobre todas las posibles posiciones. Dicha probabilidad

Page 48: Sistema de localización para entornos de interior basado en Android

30 CAPITULO 2. ANTECEDENTES Y ESTADO DE LA CUESTION

asociada con cada posicion, se interpreta como el grado de confianza de que el termi-

nar se encuentre en dicha posicion en un momento determinado. Esta distribucion de

confianza se actualiza en respuesta a una nueva observacion del sensor.

El filtro de partıculas [6] (PF o Particle Filter) es un metodo para el procesamiento

secuencia de senales, basado en la teorıa Bayesiana y empleado para estimar el estado

de un sistema que cambia con el tiempo. Esta tecnica tiene muchas aplicaciones en la

ciencia y en la ingenierıa y es ademas especialmente util para su aplicacion en procesos

no lineal y/o no Gaussianos.

Se trata de un metodo secuencial cuya idea basica es el calculo recursivo de dis-

tribuciones de probabilidad relevantes utilizando los conceptos de muestreo enfatizado

(importance sampling) y de aproximacion de distribuciones de probabilidad a partir de

muestras discretas.

El objetivo del filtro es estimar la distribucion del estado xt (que representa la

localizacion del usuario) de forma recursiva a partir de las observaciones y1:t = y1, ..., yt

del sistema definido por las ecuaciones 2.1 y 2.2, es decir, se calcula recursivamente

una aproximacion de p(xt|y1:t) para t = 1, 2, ....

En el filtro de partıculas, las distribuciones se aproximan por muestras discretas

aleatorias definidas por partıculas x(i)t y por los pesos ω

(i)t asociados a estas.

El algoritmo que sigue un filtro de partıculas, para i = 1, ...,M y para cada instante

t, cuenta con las siguientes fases:

1. Inicializacion: muestreo de la distribucion a priori:

x(i)0 ∼ p(x0) (2.10)

ω(i)t =

1

M(2.11)

2. Ponderacion: se otorga el peso a las partıculas segun la verosimilitud de sus

posiciones a partir de las observaciones:

ω(i)t = p(yt|x(i)t ) (2.12)

ω(i)t =

ω(i)t∑M

k=1 ω(k)t

(2.13)

3. Estimacion: se estima la localizacion del usuario a partir de las partıculas y sus

pesos:

xt =M∑i=1

ω(i)t x

(i)t (2.14)

Page 49: Sistema de localización para entornos de interior basado en Android

2.3. ALGORITMOS DE LOCALIZACION PARA REDES INALAMBRICAS 31

4. Prediccion: se calculan las partıculas del siguiente paso:

x(i)t+1 ∼

M∑k=1

ω(k)t p(xt+1|x(k)t ) (2.15)

Page 50: Sistema de localización para entornos de interior basado en Android
Page 51: Sistema de localización para entornos de interior basado en Android

Capıtulo 3

PLATAFORMA INALAMBRICA

Y SISTEMA DE TELEMETRIA

En este capıtulo se describe primeramente la plataforma experimental desarrollada

consistente en una red inalambrica Wi-Fi y un sistema de captura del nivel de la

senal de cada uno de los puntos de acceso de la red. En la segunda parte del capıtulo se

presentan los datos recogidos y la metodologıa utilizada a fin de determinar la distancia

a partir del procesamiento del nivel de la senal de cada uno de los puntos de acceso.

Los resultados de esta primera fase seran utilizados en el desarrollo del sistema de

localizacion para interiores.

3.1. Plataforma inalambrica

El entorno necesario para implementar el sistema se ha desplegado en el labora-

torio ReTiCS (Real Time and Concurrent Systems) del Instituto de Investigacion en

Informatica de Albacete (en adelante I3A). La figura 3.1 muestra la planta baja del

I3A y el laboratorio ReTiCS recuadrado en negro.

Figura 3.1: Planta baja del I3A

33

Page 52: Sistema de localización para entornos de interior basado en Android

34CAPITULO 3. PLATAFORMA INALAMBRICA Y SISTEMA DE TELEMETRIA

El laboratorio ReTiCS se ha dividido, a su vez, en cuatro zonas diferentes de in-

teres en las que se ha desplegado la red y se han realizado las pruebas del sistema de

localizacion. La figura 3.2 muestra las cuatro zonas diferenciadas:

Zona A: zona principal donde se encuentran cuatro puntos de acceso y diversos

puntos para tomar medidas. Aparece coloreada con rojo en la figura 3.2.

Zona B: pasillo donde no hay ningun punto de acceso pero sı puntos para tomar

medidas. Aparece coloreada con azul en la figura 3.2.

Zona C: no alberga ningun punto de acceso pero sı puntos para tomar medidas.

Aparece coloreada con verde en la figura 3.2.

Zona D: sala de reuniones donde se encuentra un punto de acceso y puntos para

tomar medidas. Aparece coloreada con amarillo en la figura 3.2.

Figura 3.2: Laboratorio ReTiCS con sus distintas areas marcadas

La red desplegada cuenta con cinco puntos de acceso Wi-Fi colocados en la zona A

y en la zona D del laboratorio ReTiCS. La figura 3.3 muestra la ubicacion de los puntos

de acceso y el punto de inicio de coordenadas (O) desde el que se toma la distancia de

cada punto de medida. A partir de el se obtiene la longitud de cada eje, resultando ser

28.734 metros para el eje X y 6.361 metros para el eje Y. La superficie del entorno es,

por tanto, 182.78 metros cuadrados.

Figura 3.3: Puntos de acceso

Cada punto de acceso se ha establecido en un canal diferente a fin de no interferir

entre ellos, por lo cual cada punto de acceso emite en una banda de frecuencia distinta.

Los puntos de acceso utilizados son:

Page 53: Sistema de localización para entornos de interior basado en Android

3.1. PLATAFORMA INALAMBRICA 35

AiboNET1: situado en la zona A, es el punto de acceso etiquetado como R1 en

la figura 3.3. Emite en el canal 1 a 2412MHz de frecuencia y se encuentra en la

posicion (0.44, 5).

AiboNET2: punto de acceso etiquetado como R2 en la figura 3.3. Se encuentra

en la posicion (0.49, 0.47) emitiendo en el canal 3 a una frecuencia de 2422MHz.

AiboNET3: etiquetado como R3, se encuentra en la posicion (8.73, 0.44) emi-

tiendo en el canal 6 a una frecuencia de 2437MHz.

AiboNET4: ultimo punto de acceso ubicado en la zona A. Esta etiquetado

como R4 en la figura 3.3 en la posicion (8.96, 6.12) emitiendo por el canal 9 a

una frecuencia de 2452MHz.

AiboNET5: unico punto de acceso ubicado en la zona D. Esta etiquetado como

R5 y se encuentra en la posicion (17.1, 4.44) emitiendo en el canal 11 a una

frecuencia de 2462MHz.

Por ultimo, por todo el entorno se han marcado diversos puntos para tomar medidas

de las intensidades de la red. La posicion de cada punto se ha obtenido calculando la

distancia entre el punto y el inicio de coordenadas (en ambos ejes) mediante un medidor

laser de distancias. Se han desplegado un total de 26 puntos por todo el entorno:

Zona A: en ella se han puesto 10 puntos, los cuales pueden verse en la tabla 3.1.

En esta zona se han establecido 4 puntos de acceso y no existe ningun obstaculo

fısico que pueda obstruir la senal emitida, salvo la senal del punto de acceso R5

que se encuentra en la zona D.

Zona B: en esta zona se localizan 3 puntos, los cuales se muestran en la tabla 3.2.

Esta zona tiene vision directa con los puntos de acceso 2 y 3, habiendo paredes

como obstaculo para los demas puntos de acceso.

Zona C: esta zona cuenta con 9 puntos de medida (tabla 3.3). Esta zona no

tiene vision directa con ningun punto de acceso, ya que hay varias paredes como

obstaculo.

Zona D: tiene 4 puntos de medida que se exponen en la tabla 3.4. Esta zona es

una sala de reuniones en la que se encuentra el punto de acceso 5. Los demas

puntos de acceso no cuentan con vision directa ya que hay paredes.

La ubicacion de todos los puntos de medida se muestran en la figura 3.4, que muestra

la posicion de estos puntos de medida dentro de ReTiCS.

Page 54: Sistema de localización para entornos de interior basado en Android

36CAPITULO 3. PLATAFORMA INALAMBRICA Y SISTEMA DE TELEMETRIA

A1 A2 A3 A4 A5 A6 A7 A8 A9 A10

X 2,000 2,051 3,353 0,703 3,888 5,457 7,040 6,159 7,483 8,224

Y 3,255 0,847 1,052 2,421 2,427 3,217 5,068 2,209 3,167 1,859

Tabla 3.1: Ubicacion de los puntos de medida en la Zona A

B1 B2 B3

X 9,816 14,440 19,132

Y 0,256 0,921 0,800

Tabla 3.2: Ubicacion de los puntos de medida en la Zona B

C1 C2 C3 C4 C5 C6 C7 C8 C9

X 21,506 22,329 22,878 23,412 24,451 25,060 25,516 27,188 27,983

Y 1,669 4,640 3,000 1,068 2,520 1,730 4,084 3,182 4,674

Tabla 3.3: Ubicacion de los puntos de medida en la Zona C

D1 D2 D3 D4

X 16,39 14,198 15,239 13,231

Y 2,331 2,430 4,800 4,260

Tabla 3.4: Ubicacion de los puntos de medida en la Zona D

Page 55: Sistema de localización para entornos de interior basado en Android

3.2. ESTUDIO DE LA RELACION ENTRE LA POTENCIA Y LA DISTANCIA 37

Figura 3.4: Posicion de los puntos de medida

3.2. Estudio de la relacion entre la potencia y la

distancia

Una vez desplegado el entorno valido para la localizacion, es el turno del estudio

de la relacion entre la atenuacion de la senal y la distancia. Esta relacion viene dada

por la ecuacion 3.1 (obtenida de [9]):

Pr(d) = P0 − 20log(4πd

λ) (3.1)

donde Pr(d) representa el nivel de la senal, expresada en dB, en funcion de la distancia,

d, expresada en metros entre el emisor y el receptor, λ es el ratio entre la velocidad de

la luz y la frecuencia de emision y P0 es un termino independiente.

El objetivo de este estudio es fijar el valor del termino independiente P0 de la

ecuacion 3.1 con el objetivo de obtener una buena estimacion de la distancia para cada

combinacion de punto de acceso y dispositivo receptor. Este valor se establece como

una constante en funcion de resultados empıricos obtenidos previamente en el entorno

y cuyo valor depende del nivel de la senal, RSSI, obtenido experimentalmente y del

canal utilizado en la transmision. Por ello, P0 debe ser establecido de forma diferente

para cada combinacion de punto de acceso y receptor.

Para la adquisicion de este valor se ha seguido un protocolo para la recogida de

datos:

Aplicacion personalizada: se ha implementado una actividad para la recogida de

datos, la cual se puede ver en la figura 3.5a. Esta actividad permite capturar la

senal recibida por un punto de acceso Wi-Fi, lo que se consigue mediante la API

de Wi-Fi de Android (clase WifiManager). Esta actividad, ademas:

• Cuenta con un boton para empezar el barrido. El tiempo del barrido se puede

configurar mediante las preferencias de la actividad (figura 3.5b), las cuales

tambien permiten filtrar redes para una recogida de datos mas comoda.

Page 56: Sistema de localización para entornos de interior basado en Android

38CAPITULO 3. PLATAFORMA INALAMBRICA Y SISTEMA DE TELEMETRIA

• Muestra la intensidad media y actual de cada punto de acceso.

• Muestra la desviacion tıpica de cada punto de acceso.

Recepcion de senal en un punto fijo: en cada punto marcado en la figura 3.4

se ha obtenido la intensidad media y desviacion tıpica de cada punto de acceso

mediante un barrido de la red de 60 segundos de duracion. En cada punto el

usuario ha permanecido fijo pero haciendo una rotacion de 360 grados, con el

objetivo de tener senales directas desde cada punto de acceso y con el usuario de

por medio.

Nuevo barrido: una vez obtenidas la intensidad media y desviacion tıpica de cada

punto de acceso en un punto, el usuario se situa en otro punto y empieza otro

barrido con el mismo protocolo, poniendo ası las estadısticas a 0.

Adquisicion de datos: se ha realizado un barrido de la red en cada punto en dıas

distintos para, de esta forma, obtener datos de la red en dıas con condiciones

meteorologicas distintas y estudiar ası como esto afecta a la red.

Figura 3.5: Aplicacion para el estudio de la senal. Pantalla principal (izquierda, a) y

pantalla de preferencias (derecha, b)

Page 57: Sistema de localización para entornos de interior basado en Android

3.2. ESTUDIO DE LA RELACION ENTRE LA POTENCIA Y LA DISTANCIA 39

3.2.1. Resultados obtenidos en la recogida de datos

Una vez especificado el protocolo a seguir para la recogida de datos, procedemos

a mostrar los resultados obtenidos. Las pruebas, como se indico anteriormente, se han

realizado con el dispositivo LG Nexus 5. Para cada punto de acceso se ha determinado

el termino independiente a partir de los datos capturados. Dado que los procedimientos

de captura y el procesamiento de los datos de cada uno de los puntos de acceso son los

mismos, en este capıtulo solo se mostraran los datos para el punto de acceso aiboNET1.

Los datos de todos los otros puntos de acceso se han incluido en el apendice A.

De cada punto de acceso se ha adquirido la potencia media desde cada punto durante

5 dıas distintos, ası como la desviacion tıpica que presentan los datos. Posteriormente

estos datos han sido estudiados para determinar el valor de P0 que mejor representa

los datos obtenidos.

Punto de acceso aiboNET1

La tabla 3.5 muestra los datos obtenidos para el punto de acceso aiboNET1 durante

5 dıas. Esta tabla contiene la distancia de cada punto a aiboNET1 (calculada mediante

el teorema de Pitagoras), las potencias reales obtenidas durante 5 dıas (en dB), la

potencia media de los 5 dıas y el valor estimado optimo calculado por la ecuacion 3.1.

El valor estimado optimo se ha adquirido variando el termino independiente P0 hasta

encontrar la mejor representacion de los datos obtenidos. En el caso de este punto de

acceso el valor que mejor representa los datos es P0 = 3.

Por otro lado, la tabla 3.6 muestra las desviaciones asociadas a los datos de la tabla

3.5. La figura 3.6 muestra una grafica obtenida a partir de la tabla 3.5, en la cual se

puede ver como se comportan los datos y como se comporta la ecuacion con P0 = 3.

Los valores de P0 obtenidos para cada punto de acceso se encuentran en la tabla

3.7.

3.2.2. Conclusiones

Una vez mostrados los resultados obtenidos en la recogida de datos, procedemos a

mostrar las conclusiones que podemos adquirir de ellos:

La distancia optima para poder tratar los datos segun la formula de Kitasuka

(3.1) se encuentra entre 2 y 13 metros cuando tenemos visibilidad directa entre

emisor y receptor.

La relacion entre la potencia y la distancia varıa segun el entorno en el que

estemos.

Page 58: Sistema de localización para entornos de interior basado en Android

40CAPITULO 3. PLATAFORMA INALAMBRICA Y SISTEMA DE TELEMETRIA

Punto Distancia Dıa 1 Dıa 2 Dıa 3 Dıa 4 Dıa 5 Valor medio Valor estimado

ZO

NA

A

1 2,339 -49 -46 -47 -46 -49,45 -46,91 -42,47

2 4,453 -48 -47 -46 -48 -48,55 -47,58 -48,06

3 4,905 -46 -45 -48 -47 -45,70 -46,16 -48,90

4 2,592 -52 -51 -49 -48 -48,60 -49,53 -43,36

5 4,300 -49 -48 -48 -48 -48,50 -48,21 -47,76

6 5,322 -51 -48 -49 -50 -48,30 -49,15 -49,61

7 6,597 -51 -51 -49 -53 -50,40 -50,85 -51,48

8 6,631 -51 -51 -49 -50 -49,20 -50,13 -51,16

9 7,275 -52 -49 -49 -49 -49,75 -49,87 -52,33

10 8,391 -50 -51 -51 -52 -51,71 -51,10 -53,57

ZO

NA

B 1 10,505 -52 -57 -55 -52 -53,80 -53,80 -55,52

2 14,579 -62 -62 -63 -62 -58,05 -61,37 -58,36

3 19,155 -63 -63 -65 -63 -63,29 -63,36 -60,74

ZO

NA

C

1 21,325 -66 -68 -68 -68 -69,05 -67,77 -61,67

2 21,889 -69 -64 -65 -64 -63,90 -65,02 -61,89

3 22,524 -68 -67 -69 -67 -68,29 -67,72 -62,14

4 23,303 -69 -69 -70 -67 -69,90 -68,86 -62,44

5 24,136 -67 -67 -67 -66 -67,55 -66,96 -62,74

6 24,833 -67 -68 -69 -68 -67,81 -67,94 -62,99

7 25,090 -68 -68 -68 -69 -68,20 -68,49 -63,08

8 26,807 -68 -65 -67 -68 -67,55 -66,95 -63,65

9 27,542 -69 -63 -66 -65 -64,95 -65,54 -63,89

ZO

NA

D

1 16,166 -61 -60 -57 -57 -57,15 -58,37 -59,26

2 13,993 -58 -57 -59 -59 -58,50 -58,17 -58,01

3 14,797 -58 -59 -58 -57 -56,85 -57,79 -58,49

4 12,809 -60 -56 -55 -56 -57,40 -56,98 -57,24

Tabla 3.5: Valores reales y estimados de la potencia de aiboNET1

Page 59: Sistema de localización para entornos de interior basado en Android

3.2. ESTUDIO DE LA RELACION ENTRE LA POTENCIA Y LA DISTANCIA 41

Punto Distancia Dıa 1 Dıa 2 Dıa 3 Dıa 4 Dıa 5 Valor medioZ

ON

AA

1 2,339 3,35 4,90 4,00 3,17 9,15 4,92

2 4,453 5,21 3,90 3,87 4,32 4,72 4,40

3 4,905 6,19 4,27 6,50 4,81 4,68 5,29

4 2,592 5,60 4,00 4,45 3,94 4,84 4,57

5 4,300 4,60 4,48 3,84 3,53 2,80 3,85

6 5,322 4,32 4,93 5,92 4,71 4,00 4,78

7 6,597 5,70 5,36 5,12 4,55 4,27 5,00

8 6,631 4,68 4,24 3,56 3,42 4,00 3,98

9 7,275 4,41 4,17 5,50 5,15 5,00 4,85

10 8,391 4,95 3,36 3,77 3,83 5,88 4,36

ZO

NA

B 1 10,505 3,87 4,33 3,92 3,97 4,41 4,10

2 14,579 5,17 4,46 7,10 3,78 4,06 4,91

3 19,155 3,620 4,17 4,72 3,80 4,14 4,09

ZO

NA

C

1 21,325 3,34 3,21 4,27 3,20 3,28 3,46

2 21,889 4,56 4,60 3,68 5,40 4,17 4,48

3 22,524 6,51 2,70 4,13 3,40 3,70 4,09

4 23,303 4,20 3,26 3,00 2,91 2,83 3,24

5 24,136 3,40 3,95 3,60 3,67 3,20 3,56

6 24,833 4,42 3,83 4,80 3,58 4,04 4,33

7 25,090 3,22 4,31 3,66 4,27 4,72 4,04

8 26,807 5,31 4,06 4,92 5,40 3,38 4,61

9 27,542 3,65 6,00 5,00 5,19 5,36 5,04

ZO

NA

D

1 16,166 5,00 5,12 5,33 5,00 4,95 5,08

2 13,993 3,53 3,71 3,91 4,08 4,14 3,87

3 14,797 3,84 4,00 4,78 2,77 4,00 3,88

4 12,809 4,07 3,33 3,61 4,58 4,57 4,03

Tabla 3.6: Desviaciones tıpicas de aiboNET1

Punto de acceso

aiboNET1 aiboNET2 aiboNET3 aiboNET4 aiboNET5

P0 = 3 P0 = 5 P0 = 6 P0 = 2 P0 = 4

Tabla 3.7: Valores de P0 para cada punto de acceso

Page 60: Sistema de localización para entornos de interior basado en Android

42CAPITULO 3. PLATAFORMA INALAMBRICA Y SISTEMA DE TELEMETRIA

Figura 3.6: Relacion entre la distancia y la potencia de aiboNET1

Si existen obstaculos entre el emisor y el receptor, los valores recibidos se ven

afectados en general, obteniendo intensidades por debajo de las estimadas.

En posiciones alejadas a los puntos de acceso, las intensidades se encuentran

cercanas al valor estimado.

La desviacion tıpica de cada medida no depende del lugar en que se ha tomado

la medida.

Page 61: Sistema de localización para entornos de interior basado en Android

Capıtulo 4

SISTEMA DE LOCALIZACION

EN INTERIORES

Una vez desplegado el entorno valido para el sistema y obtenido el termino in-

dependiente P0 (relacion entre la potencia y la distancia) para cada punto de acceso

procedemos al diseno e implementacion del algoritmo de localizacion.

El algoritmo de localizacion ha sido disenado utilizando los principios de un filtro

de partıculas descritos en el Capıtulo 2 de esta memoria. Una partıcula representa una

posible posicion del usuario, es decir, cada partıcula es una hipotesis de la posicion del

usuario. Las partıculas cuentan con los siguientes atributos:

Posicion: coordenada relativa (x,y) de nuestro entorno donde se encuentra la

partıcula.

Peso: representa la validez de una partıcula, es decir, la probabilidad de que esta

represente la posicion en la que se encuentra el ente a localizar.

El algoritmo implementa un sistema de localizacion en el que se utilizan tanto las

medidas de la red (intesidades de cada punto de acceso) como la localizacion obtenida

por el GPS. Hay que tener en cuenta que el algoritmo esta pensado para interiores,

donde el GPS no tiene vision directa con los satelites, por lo que no tenemos por que

recibir continuamente localizaciones GPS ni que estas tengan buena precision.

El algoritmo tambien utiliza una ponderacion dinamica de los pesos de los puntos

de acceso usados. Esta ponderacion se basa en las ultimas medidas recibidas por cada

punto de acceso.

4.1. Consideraciones previas

Antes de meternos de lleno con las partes principales del algoritmo se van a comentar

varias consideraciones previas necesarias para la ejecucion del algoritmo de localizacion.

43

Page 62: Sistema de localización para entornos de interior basado en Android

44 CAPITULO 4. SISTEMA DE LOCALIZACION EN INTERIORES

El algoritmo de localizacion cuenta con varios atributos que deben ser inicializados

antes de la ejecucion de este. Estos atributos son:

Numero de partıculas (N): numero de partıculas que va a utilizar el algoritmo en

la ejecucion actual.

Tamano del entorno: tamano en metros del entorno tanto en el eje x como en

el eje y. El algoritmo cuenta con dos atributos que representan estos tamanos:

maxX y maxY

Informacion de los puntos de acceso: el algoritmo necesita conocer cierta informa-

cion sobre los puntos de acceso utilizados. Esta informacion es la posicion relativa

en el entorno, el BSSID, la frecuencia de emision y el termino independiente P0.

Punto de referencia: punto usado para la visualizacion de las partıculas, la vi-

sualizacion de la posicion del usuario y el calculo de la coordenada relativa del

GPS. Este punto debe estar en la posicion (0,0) de nuestro entorno y debe tener

rellenos los campos de la posicion real global (latitud, longitud) en la Tierra.

Posteriormente se describiran las caracterısticas que debe cumplir.

Orientacion del entorno (α): orientacion del entorno con respecto a los ejes

geograficos terrestres. Mas tarde se hablara de ella.

Se ha implementado una actividad que permite inicializar todos estos atributos con

facilidad.

Por otro lado, se van a definir los ejes utilizados en el entorno y las caracterısticas

que debe cumplir el punto de referencia. Como se puede observar en la figura 3.3, el

punto (0,0) se encuentra en la esquina inferior izquierda del entorno. Sin embargo, la

orientacion de esta figura no se corresponde con la orientacion del I3A en el mapa (y

por ende la orientacion de ReTiCS).

La figura 4.1 muestra el I3A con su verdadera orientacion. Esta figura muestra el

punto de referencia usado en nuestro caso (origen de coordenadas) representado como

un marcador de Google Maps, los ejes utilizados en nuestro entorno marcados en negro

(ası como los cuadrantes) y los ejes geograficos marcados con una lınea discontinua en

rojo. Notese que nuestros ejes estan desplazados segun la orientacion geografica del I3A

(aproximadamente α = 8), lo que habra que tener en cuenta a la hora de obtener la

visualizacion. Notese tambien que los cuadrantes no estan segun la convencion que se

suele utilizar para los ejes, es decir, en nuestro caso el primer cuadrante (coordenadas

x e y positivas) se encuentra en el cuadrante superior izquierdo, no en el cuadrante

superior derecho como suele ser.

El punto de referencia debe estar, por tanto, en la esquina inferior derecha de nuestro

entorno. Hay que aclarar que las partıculas que se usan en el algoritmo no pueden salir

Page 63: Sistema de localización para entornos de interior basado en Android

4.2. ALGORITMO DE LOCALIZACION 45

del entorno (en nuestro caso del primer cuadrante representado en la figura 4.1), pero

cuando se recibe una localizacion GPS, esta puede estar en cualquier cuadrante.

Figura 4.1: Ejes y cuadrantes utilizados en el algoritmo de localizacion

4.2. Algoritmo de localizacion

Una vez inicializados los atributos previos necesarios para la ejecucion del algoritmo,

se va a hacer una explicacion completa del algoritmo. El algoritmo de localizacion se

divide en cinco partes diferenciadas:

1. Inicializacion: creacion de las partıculas.

2. Ponderacion: calculo de los pesos de las partıculas.

3. Seleccion: eleccion de la siguiente poblacion de partıculas.

4. Variacion: cambio de la posicion de las partıculas.

5. Visualizacion: exposicion grafica de las partıculas y la posicion del usuario. La

visualizacion no es una parte en sı del algoritmo, pero sera tratada como ello en

la explicacion del mismo.

4.2.1. Inicializacion de las partıculas

La primera parte del algoritmo consiste en la inicializacion de las partıculas que

usamos, cuyo numero viene dictaminado por el atributo que representa el numero de

Page 64: Sistema de localización para entornos de interior basado en Android

46 CAPITULO 4. SISTEMA DE LOCALIZACION EN INTERIORES

partıculas. Esta inicializacion consiste en establecer la posicion (x,y) en el entorno.

La posicion en el entorno inicial se establece de manera aleatoria dentro del entorno

(ya que no se tiene un conocimiento previo de la posicion del usuario), es decir, las

partıculas se distribuyen aleatoriamente por todo el entorno sin salirse de el, lo que se

consigue mediante los atributos maxX y maxY .

4.2.2. Ponderacion de las partıculas

Una de las partes fundamentales del algoritmo es la ponderacion de las partıculas.

La ponderacion evalua la verosimilitud de estar posicionados en la localizacion que

representa la partıcula dado el conjunto de lecturas recibidas desde los emisores. Con

el objetivo de desarrollar un sistema hıbrido de localizacion, el uso del GPS se ha

incorporado en el algoritmo de localizacion para no desperdiciar la informacion de una

localizacion fiable del mismo.

El peso de cada partıcula es calculado mediante la siguiente ecuacion:

Wi =NumAP∑j=1

(Wi,j) +Wi,GPS (4.1)

donde Wi es el peso de la partıcula, Wi,j es el peso otorgado por cada punto de acceso

(AP) y Wi,GPS es el peso otorgado por el GPS.

Dado que tenemos dos fuentes para otorgar peso, se va a explicar por un lado el

peso otorgado por cada punto de acceso (Wi,j) y por otro lado el peso otorgado por

el GPS (Wi,GPS), ası como la obtencion de la coordenada relativa en el entorno de la

coordenada geografica obtenida por este.

En cada iteracion del algoritmo una medida de la intensidad de cada punto de

acceso es recibida. A partir de estas intesidades se calcula, primero de todo, la distancia

estimada que hay desde el usuario a cada punto de acceso. Para ello se hace uso de la

formula 3.1 con el termino independiente P0 ya establecido para cada punto de acceso

y con la distancia en funcion de las demas variables:

Pr(d) = P0 − 20 log(4πd

λ) =⇒ d(Pr) =

λ · 10Pr−P0−20

4π(4.2)

donde Pr es la potencia recibida.

Despues de obtener la distancia estimada a cada punto de acceso del usuario, cada

uno de ellos otorga un peso a cada partıcula en funcion de esta distancia obtenida.

El algoritmo cuenta con un atributo que representa la diferencia maxima (distmax)

en metros que puede haber entre la partıcula i y el punto de acceso j (dist(i, j)) y la

distancia estimada (dist(pot(j))) a ese mismo punto de acceso. A partir de esto, el peso

Page 65: Sistema de localización para entornos de interior basado en Android

4.2. ALGORITMO DE LOCALIZACION 47

otorgado por un router a una partıcula se calcula como:

Wi,j =

0, si |dist(i, j)− dist(pot(j)| > distmax;

1− |d1−d2|distmax

· wj, en otro caso.(4.3)

donde wj es el peso del punto de acceso que otorga el peso.

En la anterior ecuacion (4.3) se ha introducido una nueva variable que influye en

la ponderacion de las partıculas. Esta variable (wj) es el peso del punto de acceso que

esta otorgando el peso a la partıcula. La incorporacion de esta variable se debe a que,

como se vio anteriormente, un punto de acceso puede darnos distintas potencias de la

senal sin movernos del sitio. Por ello, se ha intentado evaluar la calidad de la senal del

punto de acceso otorgando tambien pesos a estos.

El peso de cada punto de acceso se calcula a partir de la desviacion tıpica (desv)

que tienen las ultimas medidas recibidas por el punto de acceso en cuestion. El numero

de ultimas medidas que se utilizan para calcular la desviacion tıpica es un parametro

configurable del algoritmo y esta representando por el atributo tamano de ventana

(tam ventana). Por tanto, si hemos recibido al menos las mismas medidas que el valor

de tam ventana, se calcula la desviacion tıpica de este numero de ultimas medidas.

El algoritmo cuenta con el atributo desvmax que representa la desviacion maxima

que pueden tener las medidas de un punto de acceso para que otorgue peso a las

partıculas, es decir, para que su peso no sea cero. El algoritmo tambien cuenta con

el atributo desvmin que representa la desviacion mınima a partir de la cual el peso es

siempre 1. A partir de estos atributos, el peso de un punto de acceso (wj) se calcula

como:

wj =

0, si desv ≥ desvmax;

1− desvdesvmax

, si desvmin < desv < desvmax;

1, en otro caso.

(4.4)

Si el peso de un punto de acceso despues de este proceso resulta ser 1, quiere decir

que la calidad de la senal de ese punto de acceso es buena y por tanto los pesos que

otorgue tienen la maxima verosimilitud. Si el peso es menor que 1 la calidad de la senal

del punto de acceso sera peor y, por tanto, la verosimilitud de sus pesos sera menor, es

decir, el punto de acceso otorgara un peso menor a cada partıcula.

La otra fuente mediante la cual se otorga peso a las partıculas es el GPS. Debido a

que estamos en un entorno de interior, el algoritmo no recibe localizaciones GPS con-

tinuamente. Por ello, el algoritmo de localizacion integra el GPS unicamente cuando

tenemos una localizacion recibida por este. Si por algun motivo se reciben varias loca-

lizaciones entre dos iteraciones del algoritmo, se escoge aquella localizacion que cuente

con mejor precision comparando para ello el campo accuracy del objeto Location que

se recibe del GPS.

Page 66: Sistema de localización para entornos de interior basado en Android

48 CAPITULO 4. SISTEMA DE LOCALIZACION EN INTERIORES

Cuando en una iteracion del algoritmo tengamos disponible una localizacion reci-

bida por el GPS, el algoritmo calcula en primer lugar la posicion relativa (x,y) del

entorno que corresponde a esa localizacion y despues, para cada partıcula, se calcula

el peso otorgado por esta localizacion.

Para obtener la posicion relativa (x,y) de la localizacion GPS nos ayudamos del

punto de referencia y de las ecuaciones 4.5, 4.6, 4.7 y 4.8 obtenidas de [13]. La primera

ecuacion (4.5) nos permite obtener la distancia que hay entre dos puntos A y B expre-

sados en latitud longitud, donde R es el radio de la Tierra. Las otras tres ecuaciones

nos permiten obtener el angulo geografico entre dos puntos expresados en latitud lon-

gitud, que es el angulo que se forma entre la recta que une ambos puntos y la recta que

representa el norte magnetico. La figura 4.2 muestra este angulo. En ella se muestran

dos puntos (A y B) unidos por una recta y el angulo geografico resultante, representado

en azul con la etiqueta β.

d(A,B) = R ·arc cos(sin(latA) ·sin(latB)+cos(latA) ·cos(latB) ·cos(lonA− lonB)) (4.5)

δφ = ln(tan( latB

2+ π

4)

tan( latA2

+ π4)) (4.6)

δlon = |lonA − lonB| (4.7)

θ = arctan(δlon

δφ) (4.8)

A traves de estas ecuaciones, siendo el punto A el punto de referencia y el punto

B la localizacion obtenida por el GPS, y de la trigonometrıa, podemos obtener la

coordenada relativa (x,y) del GPS mediante:

x = distancia · cos(θ)

y = distancia · sin(θ)

Ademas, estas posiciones deben situarse en el cuadrante correspondiente mediante

la comparacion del punto de referencia y el punto obtenido por el GPS:

Si la latitud del punto de referencia es menor que la del punto obtenido por el

GPS y la longitud del punto de referencia es mayor que la del punto obtenido por

el GPS, nos encontramos en el primer cuadrante. Por tanto, ambas posiciones

deben ser positivas.

Si la latitud del punto de referencia es menor que la del punto obtenido por el

GPS y la longitud del punto de referencia es menor que la del punto obtenido

por el GPS, nos encontramos en el segundo cuadrante. Por tanto, la posicion x

debe ser positiva y la posicion y negativa.

Page 67: Sistema de localización para entornos de interior basado en Android

4.2. ALGORITMO DE LOCALIZACION 49

Figura 4.2: Representacion del angulo geografico

Si la latitud del punto de referencia es mayor que la del punto obtenido por el

GPS y la longitud del punto de referencia es mayor que la del punto obtenido por

el GPS, nos encontramos en el tercer cuadrante. Por tanto, la posicion x debe ser

negativa y la posicion y positiva.

Si la latitud del punto de referencia es mayor que la del punto obtenido por el

GPS y la longitud del punto de referencia es menor que la del punto obtenido

por el GPS, nos encontramos en el cuarto cuadrante. Por tanto, ambas posiciones

deben ser negativas.

Una vez obtenida la coordenada relativa (x,y) de la localizacion GPS, estamos en

condiciones de que esta localizacion (que sera tratada como un emisor mas) otorgue

peso a las partıculas. El GPS solo otorgara peso si la partıcula esta dentro de la zona

probable que apunta el GPS, que se obtiene mediante la precision (campo accuracy)

de este. El peso que otorga el GPS (Wi,GPS) se calcula como:

Wi,GPS =

0, si dist(i, GPS) > precision GPS

1− distanciaprecision GPS

, en otro caso.(4.9)

Si al final del calculo del peso de una partıcula, este resulta ser cero, se aplica

la correccion de Laplace para que ası todas las partıculas tengan alguna posibilidad

(aunque sea mınima) de formar parte de la siguiente poblacion. Esta correccion implica

poner el peso de la partıcula a 0.01.

Las figuras 4.3 y 4.4 muestran un ejemplo de ponderacion de una partıcula. Se

puede observar el peso otorgado por cinco puntos de acceso (cuyos pesos son todo 1,

Page 68: Sistema de localización para entornos de interior basado en Android

50 CAPITULO 4. SISTEMA DE LOCALIZACION EN INTERIORES

es decir, la calidad de su senal es buena) y por el GPS. La partıcula de la primera

figura cuenta con una posicion muy verosımil, ya que obtiene un peso total de 4. Esta

partıcula contara con muchas probabilidades de ser elegida para la siguiente poblacion.

La partıcula de la segunda figura, sin embargo, cuenta con una posicion poco verosımil,

habiendo obtenido un peso total de 1.

Figura 4.3: Ejemplo de ponderacion de una partıcula con una posicion muy verosımil

4.2.3. Seleccion de la siguiente poblacion de partıculas

La siguiente fase del algoritmo es la seleccion de la siguiente poblacion de partıculas.

Esta seleccion se hace en funcion de la suma de los pesos de todas las partıculas,

calculada durante el proceso de ponderacion. Para ello, se obtiene un numero real

aleatorio entre 0 y la suma de los pesos de todas las partıculas (sumapesos) tantas veces

como partıculas haya, es decir, el tamano de la siguiente poblacion es el mismo que el

de la actual. Una vez obtenido el aleatorio, se selecciona la partıcula que estara en la

siguiente poblacion mediante el siguiente protocolo:

Si el aleatorio es menor o igual que la suma de los pesos de las partıculas visitadas

hasta ahora (que no es sumapesos ) mas el peso de la partıcula actual se anade

esa partıcula a la siguiente poblacion.

Si no es menor se anade el peso de la partıcula a la suma de los pesos y la partıcula

no es escogida. Se continua con la siguiente partıcula.

Page 69: Sistema de localización para entornos de interior basado en Android

4.2. ALGORITMO DE LOCALIZACION 51

Figura 4.4: Ejemplo de ponderacion de una partıcula con una posicion poco verosımil

Partıcula 1 2 3 4 5

Peso 1 4 2 4 1

Tabla 4.1: Pesos de las partıculas en el ejemplo de seleccion

Este procedimiento puede verse como una ruleta en la que los pesos de cada partıcu-

la representan los numeros que pueden tocar. La ruleta se gira (lo que representa el

aleatorio que se obtiene) y se escoge la partıcula donde pare la ruleta.

Para que no haya dudas con este protocolo, se va a exponer un ejemplo de seleccion

con 5 partıculas. Supongamos las partıculas con los pesos mostrados en la tabla 4.1,

donde la partıcula 1 se corresponde con el ejemplo poco verosımil de la seccion anterior

y la partıcula 2 se corresponde con el ejemplo muy verosimil.

Supongamos tambien que el aleatorio obtenido es 4. El algoritmo de seleccion em-

pezarıa preguntandose si 4 es menor o igual que la suma de los pesos de las partıculas

visitadas hasta ahora (que es 0) mas el peso de la particula 1 (que es 1). Como esta

condicion no se cumple, la partıcula no es escogida y se suma su peso al peso de las

partıculas visitadas. Cuando el algoritmo escoge la siguiente partıcula (partıcula 2),

comprueba que en este caso el aleatorio sı es menor o igual que la suma de los pesos de

las partıculas visitadas hasta ahora (que es 1) mas el peso de esta partıcula (que es 4).

Por tanto, el algoritmo de seleccion escogerıa la partıcula 2 para la siguiente poblacion.

La figura 4.5 ilustra este ejemplo. En ella se muestra un grafico (ruleta) con los

pesos de cada partıcula. El punto superior etiquetado como A serıa el punto desde el

que la ruleta empezarıa a girar en sentido horario. Una vez girada la ruleta segun el

Page 70: Sistema de localización para entornos de interior basado en Android

52 CAPITULO 4. SISTEMA DE LOCALIZACION EN INTERIORES

aleatorio obtenido (cuyo valor es 4) la ruleta quedarıa en la recta etiquetada como B,

por lo que la partıcula escogida serıa la partıcula 2.

Figura 4.5: Ejemplo de seleccion de partıculas

4.2.4. Variacion de las partıculas

La ultima fase del algoritmo es la variacion de las posiciones de las partıculas. Se

aplica la siguiente mutacion a la posicion de cada partıcula:

Se obtiene un numero aleatorio real entre −10 %maxX y +10 %maxX para el eje

x. Para el eje y se obtiene otro numero aleatorio de forma analoga.

Si la partıcula al aplicar la mutacion representada por ambos aleatorios sigue

dentro del entorno, la partıcula muta su posicion. En caso contrario no se aplica

la mutacion.

4.2.5. Visualizacion de las partıculas

Esta parte del algoritmo no forma parte del algoritmo en sı, sino que es utilizada

para visualizar la posicion del usuario (y de las partıculas) en el sistema. Para repre-

sentar un punto en Google Maps hay que obtener primero el punto geografico que se

corresponde con la coordenada relativa (x,y) de la partıcula en cuestion. Las siguientes

ecuaciones, obtenidas de [13], nos permiten obtener un nuevo punto en latitud longitud:

latB = arcsin(sin(latA) · cos( dR

) + cos(latA) · sin( dR

) · cos(θ))

lonB = lonA + arctan(sin(θ)·sin( d

R)·cos(latA)

cos( dR)−sin(latA)·sin(latB))

)

Page 71: Sistema de localización para entornos de interior basado en Android

4.3. EJECUCION DEL ALGORITMO 53

donde d es la distancia euclıdea que hay entre la coordenada relativa (x,y) de la partıcu-

la y la coordenada relativa de referencia, R es el radio de la Tierra y θ es el angulo

geografico (angulo que se forma entre la recta que une ambos puntos y la recta que

representa el norte magnetico).

El angulo geografico θ se obtiene mediante trigonometrıa:

difX = |referenciaX − particulaX |difY = |referenciaY − particulaY |

angulo = arctan( difYdifX

)

Sin embargo, este no es el angulo que queremos, pues este angulo no estarıa en nuestro

primer cuadrante. Por ello, hay que transportar este angulo:

θ = 360− (angulo+ orientacion)

donde orientacion representa la orientacion del entorno (comentada anteriormente).

Una vez que obtenemos la posicion de las partıculas y de la posicion del usuario en

coordenadas expresadas en latitud longitud, el sistema las pinta en el mapa:

La posicion del usuario, que es calculada mediante una media ponderada por el

peso de las posiciones x e y de todas las partıculas, se muestra como la ubicacion

actual del usuario, con la misma representacion que usa Google Maps.

Las partıculas son pintadas como un cırculo con 0.5 metros de radio rellenado

de azul, sobre el que hay otro cırculo de color negro sin relleno que representa el

peso de la partıcula. En las preferencias del sistema se puede elegir si se quiere

que se pinten o no.

La figura 4.6 muestra una ejecucion del algoritmo en la que se han utilizado 10

partıculas. Se puede observar la posicion actual del usuario y las partıculas con sus

respectivos pesos.

4.3. Ejecucion del algoritmo

Despues de la explicacion del algoritmo, se va a mostrar como ejecutarlo correcta-

mente. Todo lo explicado anteriormente, mas algunos metodos auxiliares, se encuentra

dentro de la clase NubeParticulas. Los metodos mas importantes de esta clase son:

inicializa(): metodo que implementa la inicializacion del algoritmo. Debe ser

llamado antes de empezar a ejecutar el algoritmo.

getReferencia(): metodo que obtiene el punto de referencia utilizado para ob-

tener los puntos en coordenadas latitud longitud y la coordenada relativa del

GPS.

Page 72: Sistema de localización para entornos de interior basado en Android

54 CAPITULO 4. SISTEMA DE LOCALIZACION EN INTERIORES

Figura 4.6: Ejemplo de visualizacion de 10 partıculas y la posicion del usuario

ponderacion(): metodo que implementa la ponderacion de las partıculas. Este

metodo utiliza la ultima medida de la red obtenida y la ultima posicion obtenida

por el GPS, en el caso de que exista.

seleccion(): metodo que implementa la seleccion de la siguiente poblacion de

las partıculas.

variacion(): metodo que implementa la variacion de las partıculas.

visualizacion(): metodo que implementa la visualizacion de las partıculas. Este

metodo devuelve un ArrayList<Particula> en el que las partıculas tienen los

campos de latitud y longitud rellenos.

imprime(): metodo que imprime informacion de cada partıcula por el Log de

Android, entre la que se encuentra el nombre, el peso y la coordenada.

getParticulaMediaPonderada(): obtiene la partıcula media a traves de una

media ponderada por el peso de las posiciones x e y de todas las partıculas.

obtenNuevaLatLong(Coordenada): metodo que obtiene una partıcula con los

campos latitud y longitud rellenos a partir de la coordenada pasada como parame-

tro.

addMedida(Medida): anade una nueva medida de la red al algoritmo. Este meto-

do pone la medida que se pasa como parametro como medida actual (la cual es

usada en el metodo ponderacion()).

addLocalizacion(Location): anade una nueva localizacion recibida por el GPS

al algoritmo. Este metodo calcula la mejor localizacion, en el caso de que se hayan

Page 73: Sistema de localización para entornos de interior basado en Android

4.3. EJECUCION DEL ALGORITMO 55

recibido varias antes de usarse en la ponderacion, y pone esta como la localizacion

actual, que sera la localizacion que use el metodo ponderacion().

Para una correcta ejecucion del algoritmo, hay que manejar correctamente la concu-

rrencia. Esto es debido a que la API de Android para Wi-Fi devuelve de forma asıncrona

el resultado de una nueva medida de la red. Por ello, tenemos que asegurarnos de que

el algoritmo usa la ultima medida recibida para ponderar las partıculas.

En nuestro caso se ha resuelto este problema mediante las clases ReentrantLock

y Condition de Java. En el inicio de cada iteracion del algoritmo (antes de llamar

al metodo ponderacion()), el hilo que ejecuta el algoritmo se duerme mediante la

llamada al metodo await() de la clase Condition. Cuando se recibe una nueva medida

de la red, se despierta a este hilo mediante la llamada al metodo signalAll() de la

condicion.

La secuencia de llamadas para ejecutar el algoritmo correctamente es:

Constructor de la clase NubeParticulas. Este constructor obtiene de las pre-

ferencias de la aplicacion (clase SharedPreferences) los atributos necesarios

para la ejecucion del algoritmo como son la partıcula de referencia, el numero de

partıculas, el tamano de la ventana o la informacion de los puntos de acceso.

Metodo inicializa().

Metodo ponderacion().

Metodo visualizacion().

Metodo getParticulaMediaPonderada().

Metodo seleccion().

Metodo variacion().

Las dos primeras llamadas de las secuencia anterior deben ser llamadas fuera del

bucle en el que estaran las llamadas a los demas metodos de esta secuencia.

Page 74: Sistema de localización para entornos de interior basado en Android
Page 75: Sistema de localización para entornos de interior basado en Android

Capıtulo 5

EXPERIMENTOS Y

RESULTADOS

Este capıtulo muestra las pruebas que se han realizado al algoritmo y los resultados

de estas. Se han creado un total de tres pruebas:

Variacion del numero de partıculas. En esta prueba no se usa ni el GPS ni pesos

dinamicos de los puntos de acceso. El objetivo de esta prueba es obtener el numero

de partıculas que obtenga el mejor equilibrio entre la precision y el rendimiento

del sistema.

Uso del GPS. En esta prueba el numero de partıculas se fija segun el mejor

resultado obtenido en la anterior prueba y no se usan los pesos dinamicos de los

puntos de acceso. Su objetivo es comprobar el impacto del uso del GPS en el

sistema.

Ponderacion dinamica. En esta prueba el numero de partıculas se fija siguiendo

el mismo protocolo que en la anterior prueba y se usa GPS. El objetivo de es-

ta prueba es determinar el mejor tamano de ventana cuando se utilizan pesos

dinamicos de los puntos de acceso. El tamano de ventana representa el numero

de medidas que se escogen para calcular el peso de cada punto de acceso.

Estas tres pruebas se han realizado utilizando un fichero creado por el modulo de

pruebas. Este fichero cuenta con aproximadamente 400 medidas, que se han obtenido

durante 20 minutos andando por nuestro entorno. Cada prueba se ha repetido tres

veces utilizando el 100 % del fichero, el 50 % del fichero (una medida de cada dos) y el

25 % del fichero (una medida de cada cuatro). Ademas, se ha evaluado el sistema de

localizacion en terminos del error cuadratico medio y de la distancia euclıda media.

Por ultimo se realizara un estudio del error por zonas a partir de la mejor ejecucion

de las tres pruebas anteriores. Con ello podremos determinar en que zonas de nuestro

57

Page 76: Sistema de localización para entornos de interior basado en Android

58 CAPITULO 5. EXPERIMENTOS Y RESULTADOS

Porcentaje Numero de partıculas

utilizado 10 20 50 100 200 500

100 % 42.512 23.297 16.527 11.255 11.192 10.448

50 % 67.228 41.118 17.500 14.958 16.916 19.934

25 % 54.286 66.381 43.401 36.593 33.189 32.603

Tabla 5.1: Error cuadratico medio en metros para el experimento 1

Porcentaje Numero de partıculas

utilizado 10 20 50 100 200 500

100 % 5.900 3.539 3.102 3.088 3.038 2.811

50 % 5.553 5.008 4.915 3.835 4.155 3.354

25 % 7.392 6.457 5.915 5.193 4.944 4.911

Tabla 5.2: Distancia euclıdea media en metros para el experimento 1

entorno el algoritmo de localizacion funciona peor para anadir nuevos puntos de acceso

y ası mejorar la precision del sistema.

5.1. Experimento 1: variacion del numero de partıcu-

las

El experimento 1 consiste en variar el numero de partıculas (N) sin usar el GPS ni

los pesos dinamicos. Su objetivo es determinar el numero de partıculas de tal forma

que la precision del sistema a la vez que el rendimiento del mismo sea aceptable.

Se ha utilizado los valores 10, 20, 50, 100, 200 y 500 para N. La tabla 5.1 muestra los

resultados de este experimento usando el error cuadratico medio como error, mientras

que la tabla 5.2 muestra los resultados utilizando la distancia euclıdea media como

error. Ambas tablas relacionan el numero de partıculas utilizado con el porcentaje

utilizado del fichero de pruebas.

Se puede observar en las anteriores tablas que el error disminuye segun aumenta el

numero de partıculas. Esta disminucion es menor a partir de N=100, donde el rendi-

miento del sistema empieza a caer al usarse un gran numero de partıculas. Por ello, se

concluye que el mejor numero de partıculas es N=100.

En cuanto al porcentaje utilizado del fichero, vemos que el error aumenta segun

disminuye el numero de medidas que escogemos. Esto es debido a que usando la mitad

o un cuarto del fichero el efecto conseguido es que el usuario vaya dando saltos y, por

tanto, es mas dificil que el algoritmo converja.

Page 77: Sistema de localización para entornos de interior basado en Android

5.2. EXPERIMENTO 2: USO DEL GPS 59

Porcentaje Uso del GPS

utilizado No Sı

100 % 14.861 13.666

50 % 22.962 22.602

25 % 52.119 38.843

Tabla 5.3: Error cuadratico medio en metros para el experimento 2

Porcentaje Uso del GPS

utilizado No Sı

100 % 3.241 3.029

50 % 3.370 3.963

25 % 5.423 5.067

Tabla 5.4: Distancia euclıdea media en metros para el experimento 2

5.2. Experimento 2: uso del GPS

El objetivo del experimento 2 es determinar el impacto del uso del GPS en el

sistema. Para ello se ha fijado el numero de partıculas a 100 sin utilizar pesos dinamicos.

La tabla 5.3 muestra los resultados de este experimento usando el error cuadrati-

co medio como error, mientras que la tabla 5.4 muestra los resultados utilizando la

distancia euclıdea media como error. Ambas tablas relacionan el uso del GPS con el

porcentaje utilizado del fichero de pruebas.

En la tabla 5.3 se observa que el uso del GPS permite disminuir el error. En el

caso de disponer del 25 % de los datos, el GPS permite una reduccion del error muy

significativa. Sin embargo, el error obtenido para este caso sigue siendo muy superior

a los resultados obtenidos al utilizar 100 % de los datos. Esto se debe a que el sistema

se ha evaluado en la planta inferior del I3A, donde no existe una vision directa con

los satelites y, por tanto, la precision del sistema GPS no es buena. Los resultados

muestran que es mejor utilizar el 100 % de los datos que hacer uso del sistema GPS

con un menor numero de datos.

La tabla 5.4 muestra que las mejores prestaciones del sistema se obtienen cuando

utilizamos el 100 % de los datos junto con la informacion proporcionada por el GPS. Al

igual que en los resultados anteriores el uso del GPS permite reducir significativamente

el error cuando se utiliza solo el 25 % de los datos.

De todo lo anterior se concluye que el uso de la informacion del GPS puede mejorar

la precision de un sistema de localizacion en interiores cuando se tiene poca informacion

disponible.

Page 78: Sistema de localización para entornos de interior basado en Android

60 CAPITULO 5. EXPERIMENTOS Y RESULTADOS

Porcentaje Tamano de ventana

utilizado 0 1 2 3 5

100 % 11.722 13.655 19.381 19.048 15.679

50 % 23.549 27.051 34.576 47.334 31.172

25 % 38.505 42.531 45.754 47.367 48.759

Tabla 5.5: Error cuadratico medio en metros para el experimento 3

Porcentaje Tamano de ventana

utilizado 0 1 2 3 5

100 % 3.069 3.333 3.216 3.861 3.416

50 % 3.548 3.851 4.759 4.665 4.357

25 % 5.608 5.264 4.746 6.158 5.521

Tabla 5.6: Distancia euclıdea media en metros para el experimento 3

5.3. Experimento 3: ponderacion dinamica

El experimento 3 consiste en utilizar o no los pesos dinamicos de los puntos de

acceso utilizando 100 partıculas y el GPS. Su objetivo es determinar el mejor tamano

de ventana.

En las pruebas en las que se han utilizado los pesos dinamicos de los puntos de

acceso se varıa el tamano de la ventana (V), con valores 1, 2, 3 y 5 para V, mientras

que en las que no se han utilizado el valor de V es 0. La tabla 5.5 muestra los resultados

de este experimento usando el error cuadratico medio como error, mientras que la tabla

5.6 muestra los resultados utilizando la distancia euclıdea media como error. Ambas

tablas relacionan el tamano de la ventana con el porcentaje utilizado del fichero de

pruebas.

En las anteriores tablas se observa que el sistema no mejora (de hecho empeora)

utilizando pesos dinamicos de los puntos de acceso. Esto es debido a que tenemos pocas

medidas de la red. Lo idoneo serıa tener una medida (al menos) por segundo, pero en

nuestro caso se obtiene una medida cada tres segundos. Esto implica que las potencias

de los puntos de acceso varıen mucho, provocando que los puntos de acceso tengan

poco peso y, por tanto, los pesos otorgados a las partıculas sean menores.

Utilizando la mitad o un cuarto del fichero los errores (como en los demas experi-

mientos) aumentan. En este experimento debe ser algo normal, ya que las potencias de

los puntos de acceso varıan mas de esta forma y, como consecuencia, la precision del

sistema cae.

Page 79: Sistema de localización para entornos de interior basado en Android

5.4. ESTUDIO DEL ERROR POR AREAS 61

5.4. Estudio del error por areas

A partir de la ejecucion en la que se utilizo el 100 % del fichero de experimentos con

100 partıculas junto con GPS sin pesos dinamicos (cuyo error medio en metros es 3.069),

se ha obtenido una grafica que muestra los errores de cada medida para ver en que zonas

funciona mejor el algoritmo de localizacion y de esta forma poder determinar donde

habrıa que incorporar nuevos puntos de acceso. Esta grafica se puede visualizar en la

figura 5.1. En ella se muestra una grafica de area con distintos colores que representan

la distintas zonas de nuestro entorno. El area A viene coloreada con rojo, el area B con

azul, el area C con verde y el area D con amarillo.

Figura 5.1: Grafica de los errores de cada medida a partir del fichero de salida con la

mejor ejecucion

Se puede comprobar en la grafica que el area de mayor fidelidad es el area A (para

una mejor visualizacion vease la tabla 5.7, que muestra el error medio en metros de

cada area). Este resultado es el esperado, ya que es el area en la que hay vision directa

de un mayor numero de puntos de acceso (en concreto 4). El area en el que el error

es mayor es el area B, es decir, el pasillo. Esto es debido a que solo se tiene vision

directa con el punto de acceso aiboNET3 y, por tanto, la senal que se recibe de los

demas puntos de acceso viene atenuada, provocando ası que se obtenga peor precision.

Ademas, el pasillo tiene apenas 1 metro de ancho, es decir, en esa zona el eje y estarıa

acotado entre 0 y 1, y no se han introducido limitaciones estructurales en el algoritmo.

Por otro lado, cabe destacar que la zona C, en la que no hay ningun punto de

acceso, obtiene un error menor que el de la zona B.

Page 80: Sistema de localización para entornos de interior basado en Android

Area A B C D

Error 2.659 3.849 3.065 2.879

Tabla 5.7: Error medio en metros de cada area

Page 81: Sistema de localización para entornos de interior basado en Android

Capıtulo 6

CONCLUSIONES Y

PROPUESTAS

6.1. Conclusiones

En este proyecto se ha realizado un prototipo de sistema de posicionamiento en

interiores utilizando para ello dispositivos con sistema operativo Android y una red Wi-

Fi desplegada en el laboratorio ReTiCS del Instituto de Investigacion en Informatica

de Albacete (I3A).

En la primera parte del proyecto se ha definido el entorno sobre el que se ha des-

plegado una red de puntos de acceso Wi-Fi que sera usada para la localizacion. La

segunda parte del proyecto ha consistido en un estudio de la senal Wi-Fi para poder

determinar la relacion entre la potencia de la senal (RSSI) y la distancia a traves de

la ecuacion de Kitasuka [9]. A partir de este estudio se ha implementado seguidamente

el sistema, el cual hace uso del metodo de Monte Carlo con un filtro de partıculas.

Finalmente se han realizado una serie de experimentos para obtener la precision del

sistema.

El algoritmo de localizacion toma sus decisiones a partir de la potencia recibida

por cada uno de los puntos de acceso, ası como de los datos recibidos por el GPS. Se

ha comprobado en el estudio de la senal que la potencia (RSSI) con que se recibe la

senal varıa mucho incluso sin cambiar de posicion. A Por ello, el sistema hace uso de

un integrador matematico para que esto no afecte tanto en el proceso de localizacion.

Uno de los mayores problemas encontrados en la realizacion del proyecto fue como

obtener las coordenadas geograficas expresadas en latitud y longitud de una coordenada

relativa a un punto de referencia de nuestro entorno. La primera propuesta para la

solucion de este problema fue a traves de las formulas de Haversine. Durante mas de

dos semanas se trabajo en esta direccion sin poder llegar a una solucion. Finalmente se

soluciono este problema cuando se encontraron por la red ([13]) una serie de ecuaciones

63

Page 82: Sistema de localización para entornos de interior basado en Android

64 CAPITULO 6. CONCLUSIONES Y PROPUESTAS

que permiten calcular el punto de destino a partir de un punto de referencia sabiendo

la distancia y el angulo que hay desde el punto de referencia al nuevo punto.

El algoritmo de localizacion hace uso de un filtro de partıculas para estimar la po-

sicion del usuario dentro del entorno. Las partıculas inicialmente se distribuyen aleato-

riamente por todo el entorno. Posteriormente se evalua la verosimilitud de la posicion

de cada partıcula a partir de las medidas recibidas de la red. A partir de la evalua-

cion de todas las partıculas, se obtiene la posicion del usuario como la media de las

posiciones de todas las partıculas ponderada por el peso de cada una. Finalmente se

escogen las partıculas que formaran parte de la siguiente poblacion a traves del peso

de cada una (a mayor peso, mayor probabilidad de ser escogida) y se muta la posicion

(sin salirse del entorno) de las mismas para conseguir un mayor numero de partıculas

en posiciones cercanas al usuario.

El sistema cuenta una precision de 3 metros dentro de nuestro entorno. Esta preci-

sion puede ser una precision mala en un entorno de interior pequeno pero buena en un

entorno grande. En nuestro caso, el entorno tiene 182.78 metros cuadrados y esta lleno

de obstaculos como paredes, mesas, estanterıas, etc. Por ello, se puede concluir que el

sistema cuenta con una precision aceptable.

El sistema podrıa ser mas preciso si se consiguiera obtener medidas de la red con

mayor frecuencia, ya que en el desarrollo del mismo se ha obtenido una medida cada

tres segundos. Para un usuario normal esta frecuencia es muy baja, ya que en tres

segundos este puede recorrer bastante distancia.

6.2. Trabajo futuro

El sistema de este proyecto, al ser un sistema experimental basado en el uso de

una tecnologıa que no esta pensada para la localizacion, presenta un gran numero de

propuestas para trabajo futuro:

Aumento de la frecuencia de recepcion de medidas de la red. La API de Android

que maneja el uso del receptor Wi-Fi no permite obtener de manera activa medi-

das de la red, es decir, no podemos establecer el tiempo que transcurre entre dos

barridos de la red, ya que esta API devuelve de manera asıncrona cada barrido

de la red cuando esta disponible.

Uso de otras tecnologıas complementarias para la localizacion. La tecnologıa

Blueetoth es una firme candidata a ayudar a la tecnologıa Wi-Fi para la locali-

zacion, ya que tambien hace uso de ondas radiomagneticas de las que se puede

obtener la potencia (RSSI).

Uso de puntos de acceso Wi-Fi que implementen el estandar IEEE 802.11n, es

Page 83: Sistema de localización para entornos de interior basado en Android

6.2. TRABAJO FUTURO 65

decir, puntos de acceso que emiten en la banda de frecuencias de 5 GHz. Esta

banda esta menos saturada que la banda de 2.4 GHz, por lo que hay menos

interferencias en la senal.

Inicializacion informada del algoritmo de localizacion. Se puede incorporar in-

formacion para la inicializacion del algoritmo utilizando para ello el GPS. Por

ejemplo, concentrar un mayor de partıculas en el sector por donde el usuario

entra en el entorno.

Page 84: Sistema de localización para entornos de interior basado en Android
Page 85: Sistema de localización para entornos de interior basado en Android

Bibliografıa

[1] Abdelmoula Bekkali, Horacio Sanson, and Mitsuji Matsumoto. Rfid indoor po-

sitioning based on probabilistic rfid map and kalman filtering. In Wireless and

Mobile Computing, Networking and Communications, 2007. WiMOB 2007. Third

IEEE International Conference on, pages 21–21. IEEE, 2007. 27

[2] Brian P Crow, Indra Widjaja, Jeong Geun Kim, and Prescott T Sakai. Ieee 802.11

wireless local area networks. Communications Magazine, IEEE, 35(9):116–126,

1997. 18

[3] Instituto de Ingenierıa Electrica y Electronica. 802.11: Wireless lans. http://

standards.ieee.org/about/get/802/802.11.html, 2015. 18

[4] Gobierno de los Estados Unidos. Sistema de posicionamiento global. http://www.

gps.gov/spanish.php, 2015. 13

[5] Frank Dellaert, Dieter Fox, Wolfram Burgard, and Sebastian Thrun. Monte carlo

localization for mobile robots. In Robotics and Automation, 1999. Proceedings.

1999 IEEE International Conference on, volume 2, pages 1322–1328. IEEE, 1999.

29

[6] Frederic Evennou, Francois Marx, and Emil Novakov. Map-aided indoor mobile

positioning system using particle filter. In Wireless Communications and Networ-

king Conference, 2005 IEEE, volume 4, pages 2490–2494. IEEE, 2005. 30

[7] Debora Gomez Bertoli. Estudio, implementacion y analisis de metodos de tri-

lateracion para la localizacion de usuarios desde sus terminales moviles. 2012.

28

[8] Pedro Gutovnik. Como funciona el sistema gps. http://www.elgps.com/

documentos/comofuncionagps/comofuncionagps.html, 1999. 14

[9] Teruaki Kitasuka, Kenji Hisazumi, Tsuneo Nakanishi, and Akira Fukuda. Posi-

tioning technique of wireless lan terminals using rssi between terminals. In PSC,

pages 47–53. Citeseer, 2005. 37, 63

67

Page 86: Sistema de localización para entornos de interior basado en Android

68 BIBLIOGRAFIA

[10] Hui Liu, Houshang Darabi, Pat Banerjee, and Jing Liu. Survey of wireless indoor

positioning techniques and systems. Systems, Man, and Cybernetics, Part C:

Applications and Reviews, IEEE Transactions on, 37(6):1067–1080, 2007. 7, 26

[11] Ramon Llamas, Melissa Chau, and Michael Shirer. Android and ios squeeze the

competition. http://www.idc.com/getdoc.jsp?containerId=prUS25450615,

2015. 11

[12] Miguel Angel Moreno Alvarez. Desarrollo de aplicaciones Android seguras.

0xWord, 2013. 7

[13] Varios. Sun earth tools. http://www.sunearthtools.com/es/tools/distance.

php, 2009. 48, 52, 63

[14] Varios. Android developers. http://developer.android.com/index.html, 2015.

7

[15] Varios. Android wi-fi api. http://developer.android.com/intl/es/guide/

topics/sensors/index.html, 2015. 25

[16] Varios. Estadısticas de android. http://developer.android.com/about/

dashboards/index.html, 2015. 11

[17] Varios. La historia de android. http://www.android.com/intl/es-419_mx/

history/, 2015. 11

[18] Varios. Location and sensors apis. http://developer.android.com/intl/es/

guide/topics/sensors/index.html, 2015. 16

Page 87: Sistema de localización para entornos de interior basado en Android

CONTENIDO DEL CD

En el contenido del CD que acompana a la memoria podemos encontrar los siguien-

tes recursos:

Memoria del trabajo en el formato PDF, dentro del directorio Memoria.

Codigo fuente del trabajo dentro del directorio Codigo fuente.

Documento que muestra el diseno de la experimentacion del sistema, dentro del

directorio Otros.

69

Page 88: Sistema de localización para entornos de interior basado en Android
Page 89: Sistema de localización para entornos de interior basado en Android

Apendice A

RESULTADOS OBTENIDOS DEL

ESTUDIO DE LA POTENCIA

Este capıtulo muestra los resultados obtenidos en el estudio de la relacion entre la

potencia y la distancia para los puntos de acceso aiboNET2, aiboNET3, aiboNET4 y

aiboNET5.

Figura A.1: Relacion entre la distancia y la potencia de aiboNET2

71

Page 90: Sistema de localización para entornos de interior basado en Android

72APENDICE A. RESULTADOS OBTENIDOS DEL ESTUDIO DE LA POTENCIA

Punto Distancia Dıa 1 Dıa 2 Dıa 3 Dıa 4 Dıa 5 Valor medio Valor estimado

ZO

NA

A

1 3,169 -45 -44 -47 -48 -47,65 -46,25 -39,14

2 1,604 -46 -45 -47 -46 -47,25 -46,07 -33,23

3 2,919 -47 -47 -47 -47 -47,40 -47,07 -38,43

4 1,965 -46 -45 -46 -45 -44,30 -45,54 -34,99

5 3,920 -45 -48 -47 -49 -46,65 -47,02 -40,99

6 5,675 -47 -47 -47 -46 -48,55 -47,07 -44,20

7 8,002 -51 -49 -50 -50 -48,70 -49,65 -47,19

8 5,928 -50 -50 -48 -46 -45,20 -47,79 -44,58

9 7,493 -48 -46 -46 -45 -45,55 -46,08 -46,62

10 7,855 -50 -50 -49 -47 -48,48 -48,91 -47,03

ZO

NA

B 1 9,325 -54 -57 -57 -56 -56,90 -56,23 -48,52

2 13,954 -57 -52 -51 -52 -53,00 -52,97 -52,02

3 18,642 -58 -56 -56 -56 -56,05 -56,42 -54,54

ZO

NA

C

1 21,047 -65 -64 -65 -64 -65,75 -65,17 -55,59

2 22,231 -64 -63 -63 -63 -63,76 -63,33 -56,06

3 22,528 -63 -65 -64 -64 -65,62 -64,18 -56,18

4 22,927 -63 -62 -64 -63 -65,75 -63,47 -56,33

5 24,046 -63 -64 -64 -63 -64,00 -63,57 -56,75

6 24,599 -63 -63 -63 -65 -64,05 -63,43 -56,94

7 25,283 -63 -66 -66 -66 -64,15 -64,08 -57,18

8 26,833 -65 -64 -66 -66 -66,10 -65,30 -57,70

9 27,810 -66 -66 -66 -68 -66,20 -66,31 -58,01

ZO

NA

D

1 16,003 -55 -58 -58 -55 -54,70 -56,05 -53,21

2 13,845 -55 -56 -55 -56 -56,20 -55,59 -51,95

3 15,369 -53 -53 -55 -53 -53,00 -53,49 -52,86

3 13,291 -56 -54 -54 -55 -55,70 -54,97 -51,60

Tabla A.1: Valores reales y estimados de la potencia de aiboNET2

Page 91: Sistema de localización para entornos de interior basado en Android

73

Punto Distancia Dıa 1 Dıa 2 Dıa 3 Dıa 4 Dıa 5 Valor medio

ZO

NA

A

1 3,169 6,33 6,63 4,42 3,69 9,18 6,05

2 1,604 5,07 5,00 4,50 4,00 4,72 4,66

3 2,919 5,12 5,35 5,10 4,89 4,68 5,03

4 1,965 4,88 5,74 6,50 5,94 4,84 5,58

5 3,920 5,06 4,76 4,57 4,00 2,80 4,24

6 5,675 3,70 5,50 7,16 6,26 4,00 5,32

7 8,002 5,89 3,95 3,80 3,75 4,27 4,33

8 5,928 4,14 5,54 5,60 5,00 4,00 5,28

9 7,493 7,15 3,82 5,15 5,29 5,00 5,28

10 ,855 5,20 5,53 5,16 4,31 5,88 5,22

ZO

NA

B 1 9,325 3,93 4,29 4,65 5,83 4,41 4,62

2 13,954 7,67 5,57 4,20 6,00 4,06 5,50

3 18,642 6,47 5,51 5,75 4,86 4,14 5,35

ZO

NA

C

1 21,047 3,09 4,10 2,70 3,65 3,28 3,36

2 22,231 5,10 3,72 4,15 3,94 4,17 4,22

3 22,528 4,07 3,36 5,20 3,85 3,70 4,04

4 22,927 3,22 3,04 4,00 4,20 2,83 3,46

5 24,046 3,57 4,49 5,10 4,68 3,20 4,21

6 24,599 4,57 4,45 3,53 3,05 4,04 3,93

7 25,283 3,00 3,52 4,53 3,94 4,72 2,94

8 26,833 3,90 3,86 4,34 3,36 3,38 3,77

9 27,810 4,08 3,56 3,94 3,53 5,36 4,09

ZO

NA

D

1 16,003 4,34 3,58 3,60 4,00 4,95 4,09

2 13,845 3,69 4,14 4,34 3,37 4,14 3,94

3 15,369 4,14 3,92 4,38 3,35 4,00 3,96

4 13,291 4,24 3,67 4,93 4,03 4,57 4,29

Tabla A.2: Desviaciones tıpicas de aiboNET2

Page 92: Sistema de localización para entornos de interior basado en Android

74APENDICE A. RESULTADOS OBTENIDOS DEL ESTUDIO DE LA POTENCIA

Punto Distancia Dıa 1 Dıa 2 Dıa 3 Dıa 4 Dıa 5 Valor medio Valor estimado

ZO

NA

A

1 7,292 -45 -46 -47 -50 -48,7 -47,23 -51,44

2 6,689 -50 -49 -48 -47 -47,00 -48,53 -50,69

3 5,410 -45 -46 -47 -48 -47,70 -46,67 -48,84

4 8,265 -55 -53 -49 -50 -48,65 -51,06 -52,52

5 5,231 -50 -45 -45 -45 -45,00 -46,02 -48,55

6 4,290 -48 -44 -45 -45 -46,50 -45,77 -46,83

7 4,924 -46 -43 -43 -44 -42,35 -43,42 -48,03

8 3,118 -45 -44 -42 -45 -42,10 -43,49 -44,06

9 2,996 -46 -43 -45 -42 -41,50 -43,43 -43,71

10 1,504 -40 -38 -39 -38 -38,14 -38,60 -37,72

ZO

NA

B 1 1,104 -38 -42 -40 -38 -38,70 -39,15 -35,04

2 5,732 -49 -46 -44 -44 -44,95 -45,78 -49,35

3 10,410 -47 -46 -48 -47 -48,71 -47,46 -54,53

ZO

NA

C

1 12,837 -56 -56 -56 -56 -58,40 -56,60 -56,35

2 14,234 -66 -59 -62 -61 -60,38 -61,77 -57,25

3 14,379 -62 -58 -59 -59 -60,43 -59,59 -57,33

4 14,697 -52 -53 -53 -52 -53,85 -52,76 -57,52

5 15,860 -60 -57 -58 -58 -58,15 -58,06 -58,18

6 16,383 -57 -53 -56 -56 -54,62 -55,51 -58,47

7 17,179 -62 -62 -63 -61 -63,45 -62,32 -58,88

8 18,662 -61 -60 -61 -58 -60,70 -59,97 -59,60

9 19,715 -62 -58 -60 -61 -62,50 -60,68 -60,07

ZO

NA

D

1 7,889 -54 -55 -54 -52 -53,00 -53,86 -52,12

2 5,820 -51 -54 -57 -54 -55,00 -54,28 -49,48

3 7,835 -54 -54 -55 -54 -53,90 -54,19 -52,06

4 5,904 -54 -52 -55 -52 -51,74 -52,83 -49,60

Tabla A.3: Valores reales y estimados de la potencia de aiboNET3

Page 93: Sistema de localización para entornos de interior basado en Android

75

Punto Distancia Dıa 1 Dıa 2 Dıa 3 Dıa 4 Dıa 5 Valor medio

ZO

NA

A

1 7,292 3,57 4,41 4,50 4,20 5,54 4,44

2 6,689 3,55 4,77 4,18 4,52 4,07 4,22

3 5,410 4,58 4,00 3,22 3,34 4,00 3,83

4 8,265 5,46 4,91 3,80 4,72 4,46 4,67

5 5,231 4,27 4,51 5,10 4,60 4,30 4,56

6 4,290 4,90 3,85 4,52 3,61 2,82 3,94

7 4,924 5,50 4,32 5,16 3,80 4,55 4,67

8 3,118 5,24 4,55 3,34 3,66 3,85 4,13

9 2,996 3,79 4,16 5,22 4,85 4,82 4,57

10 1,504 6,76 5,94 3,55 4,38 5,19 5,16

ZO

NA

B 1 1,104 5,49 4,52 4,27 5,54 5,15 4,99

2 5,732 5,85 4,47 3,75 3,75 4,27 4,42

3 10,410 4,55 3,95 5,83 4,00 5,00 4,67

ZO

NA

C

1 12,837 6,24 4,56 4,51 2,83 5,00 4,63

2 14,234 7,90 3,53 4,81 5,04 3,80 5,02

3 14,379 7,95 4,81 5,00 5,29 4,23 5,46

4 14,697 6,22 5,97 6,83 6,36 6,95 6,47

5 15,860 5,44 4,80 4,00 3,71 5,56 4,70

6 16,383 4,80 6,10 5,20 3,86 4,76 4,94

7 17,179 3,87 3,97 3,34 2,95 4,65 3,76

8 18,662 2,80 4,56 3,86 3,65 4,33 3,84

9 19,715 4,00 3,40 4,43 4,26 3,82 3,98

ZO

NA

D

1 7,889 3,36 3,83 2,74 4,45 3,00 3,48

2 5,820 3,30 3,89 2,54 3,26 4,58 3,51

3 7,835 3,97 3,20 5,47 3,62 4,85 4,22

4 5,904 2,80 3,76 4,85 3,47 3,47 3,67

Tabla A.4: Desviaciones tıpicas de aiboNET3

Page 94: Sistema de localización para entornos de interior basado en Android

76APENDICE A. RESULTADOS OBTENIDOS DEL ESTUDIO DE LA POTENCIA

Punto Distancia Dıa 1 Dıa 2 Dıa 3 Dıa 4 Dıa 5 Valor medio Valor estimado

ZO

NA

A

1 7,524 -45 -48 -49 -50 -52 -48,75 -51,76

2 8,691 -52 -47 -48 -49 -50 -48,93 -53,01

3 7,558 -52 -50 -50 -50 -51 -50,63 -51,80

4 9,046 -57 -54 -52 -52 -53 -53,73 -53,36

5 6,723 -52 -47 -48 -50 -49 -49,13 -50,18

6 4,549 -51 -46 -48 -48 -47 -47,94 -47,29

7 2,188 -42 -44 -43 -42 -42 -42,61 -41,03

8 4,811 -51 -49 -47 -47 -48 -48,47 -47,88

9 3,304 -47 -44 -45 -44 -44 -44,66 -44,61

10 4,327 -49 -48 -48 -48 -48 -48,21 -46,96

ZO

NA

B 1 5,931 -57 -57 -56 -55 -53 -55,80 -49,69

2 7,559 -59 -59 -58 -57 -57 -58,13 -51,80

3 11,485 -62 -62 -64 -62 -62 -62,23 -55,43

ZO

NA

C

1 13,317 -66 -65 -66 -65 -66 -65,71 -56,72

2 13,445 -68 -67 -67 -65 -66 -66,46 -56,81

3 14,268 -65 -67 -69 -66 -66 -66,61 -57,32

4 15,315 -68 -68 -69 -67 -70 -68,32 -57,93

5 15,909 -67 -67 -67 -67 -68 -67,17 -58,26

6 16,693 -69 -68 -67 -68 -67 -67,57 -58,68

7 16,685 -69 -69 -71 -68 -69 -69,31 -58,58

8 18,468 -65 -69 -68 -69 -67 -67,70 -59,56

9 19,082 -68 -68 -71 -68 -67 -68,35 -59,84

ZO

NA

D

1 8,343 -53 -55 -54 -53 -53 -53,16 -52,66

2 6,413 -51 -55 -53 -54 -54 -53,36 -50,37

3 6,421 -54 -56 -56 -55 -56 -55,53 -50,38

4 4,664 -55 -55 -54 -52 -55 -54,41 -47,61

Tabla A.5: Valores reales y estimados de la potencia de aiboNET4

Page 95: Sistema de localización para entornos de interior basado en Android

77

Punto Distancia Dıa 1 Dıa 2 Dıa 3 Dıa 4 Dıa 5 Valor medio

ZO

NA

A

1 7,524 2,84 5,37 4,36 4,87 4,14 4,69

2 8,691 3,50 4,40 5,04 4,79 4,19 4,61

3 7,558 5,30 5,12 5,88 4,13 4,10 4,81

4 9,046 4,82 4,00 3,65 2,80 3,70 3,54

5 6,723 3,21 5,85 3,00 3,36 3,63 3,96

6 4,549 5,74 5,26 5,86 4,91 5,38 5,35

7 2,188 6,09 7,94 6,94 5,71 6,34 6,73

8 4,811 4,86 6,36 4,90 4,31 4,10 4,92

9 3,304 5,70 6,45 4,26 5,45 5,00 5,29

10 4,327 5,07 5,53 4,85 5,31 5,03 5,18

ZO

NA

B 1 5,931 4,62 4,92 4,37 4,75 5,56 4,90

2 7,559 3,86 4,40 4,84 4,20 4,39 4,46

3 11,485 4,65 4,98 3,75 3,85 2,90 3,87

ZO

NA

C

1 13,317 3,86 3,70 2,90 2,41 3,40 3,10

2 13,445 4,07 3,34 3,00 4,20 3,54 3,52

3 14,268 4,05 4,13 3,22 4,12 2,13 3,40

4 15,315 4,20 3,65 3,40 2,95 2,35 3,09

5 15,909 3,46 3,30 3,10 2,84 3,46 3,18

6 16,693 3,36 4,29 3,52 5,44 2,55 3,95

7 16,685 4,72 3,60 4,33 3,96 4,28 4,04

8 18,468 3,46 3,35 3,00 3,57 3,61 3,74

9 19,082 3,46 4,31 3,28 3,77 3,61 3,74

ZO

NA

D

1 8,343 3,00 3,80 4,31 3,57 4,00 3,92

2 6,413 5,55 4,52 3,38 5,59 6,54 5,01

3 6,421 3,43 4,00 4,10 4,42 2,54 3,77

4 4,664 4,22 4,55 5,39 4,85 6,85 5,41

Tabla A.6: Desviaciones tıpicas de aiboNET4

Page 96: Sistema de localización para entornos de interior basado en Android

78APENDICE A. RESULTADOS OBTENIDOS DEL ESTUDIO DE LA POTENCIA

Punto Distancia Dıa 1 Dıa 2 Dıa 3 Dıa 4 Dıa 5 Valor medio Valor estimado

ZO

NA

A

1 15,148 -59 -61 -63 -63 -59 -60,77 -61,87

2 15,473 -62 -56 -59 -58 -59 -58,74 -62,06

3 14,159 -55 -56 -58 -55 -57 -56,19 -61,29

4 16,522 -64 -62 -61 -61 -61 -61,72 -62,63

5 13,366 -56 -57 -56 -57 -58 -56,80 -60,79

6 11,709 -60 -58 -57 -59 -57 -58,29 -59,64

7 10,082 -56 -56 -55 -58 -55 -55,79 -58,34

8 11,167 -61 -57 -57 -56 -55 -57,28 -59,23

9 9,702 -58 -55 -56 -57 -55 -56,26 -58,00

10 9,244 -58 -55 -58 -56 -55 -56,53 -57,58

ZO

NA

B 1 8,399 -55 -56 -57 -55 -55 -55,84 -56,75

2 4,408 -54 -50 -51 -50 -49 -50,72 -51,15

3 4,163 -53 -53 -55 -51 -52 -52,88 -50,66

ZO

NA

C

1 5,201 -55 -54 -54 -54 -55 -54,34 -52,59

2 5,231 -54 -51 -52 -53 -52 -52,34 -52,64

3 5,952 -55 -54 -55 -54 -56 -54,75 -53,76

4 7,152 -56 -56 -56 -55 -55 -55,66 -55,36

5 7,594 -54 -54 -54 -54 -55 -54,46 -55,88

6 8,405 -57 -55 -58 -56 -57 -56,64 -56,76

7 8,421 -53 -55 -55 -56 -53 -54,42 -56,78

8 10,164 -58 -57 -57 -61 -56 -57,65 -58,41

9 10,884 -58 -56 -57 -57 -57 -57,08 -59,00

ZO

NA

D

1 2,222 -45 -46 -45 -44 -42 -44,39 -45,20

2 3,529 -44 -46 -44 -44 -44 -44,52 -49,22

3 1,898 -42 -42 -42 -42 -41 -41,77 -43,84

4 3,875 -47 -42 -43 -43 -43 -43,57 -50,03

Tabla A.7: Valores reales y estimados de la potencia de aiboNET5

Page 97: Sistema de localización para entornos de interior basado en Android

79

Punto Distancia Dıa 1 Dıa 2 Dıa 3 Dıa 4 Dıa 5 Valor medio

ZO

NA

A

1 15,148 3,90 4,78 3,63 5,69 5,95 5,01

2 15,473 3,73 5,15 4,70 3,95 4,15 4,49

3 14,159 4,42 6,00 3,96 4,18 4,45 4,65

4 16,522 4,11 4,24 4,32 4,67 6,70 4,98

5 13,366 5,75 4,50 4,40 3,96 5,21 4,52

6 11,709 5,25 3,73 4,11 4,84 5,30 4,50

7 10,082 3,48 4,50 2,55 4,32 3,65 3,76

8 11,167 4,58 4,241 3,87 3,37 3,89 3,998

9 9,702 4,55 3,29 4,40 3,72 3,10 3,63

10 9,244 4,95 3,29 3,82 2,89 3,70 3,43

ZO

NA

B 1 8,399 4,23 4,39 5,30 3,45 4,58 4,43

2 4,408 5,00 4,25 4,72 4,16 4,55 4,42

3 4,163 4,12 4,42 5,19 4,50 4,10 4,55

ZO

NA

C

1 5,201 4,90 4,61 3,25 4,42 5,42 4,43

2 5,231 6,50 5,56 3,10 4,27 3,77 4,18

3 5,952 4,00 5,89 3,33 4,55 5,42 4,80

4 7,152 4,85 5,61 4,91 4,93 5,95 5,35

5 7,594 3,84 5,17 5,50 5,77 5,40 5,46

6 8,405 4,53 3,97 5,32 3,72 4,82 4,46

7 8,421 3,85 5,00 5,43 5,66 4,64 5,18

8 10,164 3,73 3,62 4,22 4,35 4,05 4,06

9 10,884 3,65 5,52 5,53 5,35 9,00 6,35

ZO

NA

D

1 2,222 4,00 3,57 4,77 4,77 2,22 3,83

2 3,529 4,41 5,68 4,82 4,15 3,58 4,56

3 1,898 3,55 5,10 3,80 2,96 5,00 2,22

4 3,875 4,20 4,36 4,91 4,73 4,00 4,50

Tabla A.8: Desviaciones tıpicas de aiboNET5

Page 98: Sistema de localización para entornos de interior basado en Android

Figura A.2: Relacion entre la distancia y la potencia de aiboNET3

Figura A.3: Relacion entre la distancia y la potencia aiboNET4

Page 99: Sistema de localización para entornos de interior basado en Android

Figura A.4: Relacion entre la distancia y la potencia de aiboNET5

Page 100: Sistema de localización para entornos de interior basado en Android
Page 101: Sistema de localización para entornos de interior basado en Android

Apendice B

MANUAL DE USUARIO

La aplicacion para smartphones con tecnologıa Android Localizacion Indoor es una

aplicacion que permite la localizacion en interiores mediante el uso de puntos de acceso

Wi-Fi colocados por el entorno en el que queremos localizarnos y la localizacion en

exteriores mediante el uso del GPS.

Este manual de usuario muestra las diversas pantallas de las que se compone la

aplicacion ası como la forma de uso de estas.

B.1. Consideraciones previas

Antes de comenzar la localizacion es necesario definir el entorno de localizacion

en el que se realizara el despliegue de una red de puntos de acceso Wi-Fi. La unica

restriccion con la que debe contar este entorno es que debe ser un entorno rectangular

en el que ninguna ubicacion se quede sin la cobertura de al menos tres puntos de acceso

Wi-Fi.

El entorno queda especificado con los siguientes parametros:

Tamano del entorno en metros para el eje x.

Tamano del entorno en metros para el eje y.

Orientacion del entorno en grados.

Latitud del punto de referencia.

Longitud del punto de referencia.

Informacion de los puntos de acceso, entre la que esta:

• Nombre.

• BSSID (MAC).

83

Page 102: Sistema de localización para entornos de interior basado en Android

84 APENDICE B. MANUAL DE USUARIO

• Posicion en el entorno.

• Frecuencia de emision en MHz.

• Termino independiente P0.

La orientacion del entorno α es el grado de desfase que hay entre los ejes de nuestro

entorno y los ejes de la Tierra. En el entorno en el que se desarrollo la aplicacion la

orientacion era α = 8. Se puede visualizar en la figura B.1 este angulo, ası como los

ejes del entorno (en negro) y los ejes de la Tierra (en rojo discontinuo). El usuario debe

disenar su entorno de forma que quede de una forma analoga al entorno mostrado por

esta figura y obtener la orientacion del mismo.

El punto marcado como (0,0) en la figura B.1 es el punto de referencia que se ha co-

mentado anteriormente. Se debe especificar la latitud y longitud geograficas de este pun-

to. Para obtener la latitud y la longitud de un punto geografico se puede utilizar la he-

rramienta que se encuentra en http://www.bufa.es/google-maps-latitud-longitud/,

la cual se puede visualizar en la figura B.2. Esta herramienta obtiene las coordenadas

geograficas de la posicion a la que apunta el punto etiquetado con “+”. Lo unico que

debe hacer el usuario es buscar el punto de referencia en esta herramienta y obtener el

valor de la latitud y la longitud de este punto

En la informacion de los puntos de acceso se ha comentado un campo llamado

termino independiente P0. Este termino se debe obtener mediante un estudio del com-

portamiento de la red. Su valor esta entre 0 y 10.

Todos estos parametros se pueden establecer y modificar en la pantalla de ajustes

de ejecucion (vease seccion B.4).

B.2. Pantalla de bienvenida

La primera pantalla (o actividad) que se nos muestra cuando iniciamos la aplicacion

es la que se muestra en la figura B.3. Esta actividad cuenta con tres botones:

Comenzar localizacion: comienza la localizacion en interiores en el entorno des-

plegado.

Ajustar parametros de ejecucion: permite establecer y modificar ciertos parame-

tros de los que depende la ejecucion.

Vista de administrador: abre la vista de administrador, para lo que hay que

ingresar una contrasena. El usuario no debe entrar en esta zona de la aplicacion.

Page 103: Sistema de localización para entornos de interior basado en Android

B.3. PANTALLA DE LOCALIZACION 85

B.3. Pantalla de localizacion

La pantalla de localizacion muestra el mapa de la aplicacion Google Maps, tal y

como puede observarse en la figura B.4. El usuario aparecera representado en el mapa

cuando se calcule su posicion, tanto en lugares de exterior como en nuestro entorno. La

aplicacion detecta automaticamente cuando el usuario esta en un entorno de exterior

y cuando esta dentro de nuestro entorno de interior.

Esta actividad tambien detecta dos puntos de interes: el Instituto de Investiga-

cion en Informatica (I3A) y la Escuela Superior de Ingenierıa Informatica de Albacete

(ESIIAB). Cuando nos encontramos en la puerta de uno de estos dos edificios, la apli-

cacion crea una notificacion en la barra de notificaciones de Android.

Si al iniciar la actividad la conexion Wi-Fi o la conexion GPS no estan activadas, se

muestran dialogos que permiten activarlas. El dialogo que se muestra si la conexion Wi-

Fi esta desactivada se puede observar en la figura B.5, mientras que el dialogo mostrado

si la conexion GPS no esta activada se puede observar en la figura B.6. Ambos dialogos

cuentan con dos botones: cancelar y ajustes. Si se pulsa el boton cancelar de alguno de

estos dialogos, la actividad no permite la localizacion y termina su ejecucion, volviendo

a la pantalla de bienvenida. Si se pulsa el boton ajustes del dialogo de la conexion

Wi-Fi, se abren los ajustes de la conexion Wi-Fi de Android que permiten activar esta

conexion. El boton ajustes del dialogo de la conexion GPS realiza la misma operacion

pero con los ajustes de la conexion GSP.

B.4. Pantalla de ajustes de ejecucion

La pantalla de ajustes de ejecucion permite establecer y modificar varios parametros

de los que depende la localizacion. Se puede observar en la figura B.7.

Esta actividad permite establecer y modificar los siguientes parametros:

Numero de partıculas: numero de partıculas que usa el algoritmo de localizacion

en interiores.

Usar GPS: si esta activo, el algoritmo de localizacion en interiores se ayuda del

GPS. Si no, el GPS no es usado.

Usar pesos dinamicos: si esta activo, el algoritmo de localizacion en interiores

utiliza ponderacion dinamica de los puntos de acceso.

Tamano de ventana: establece el numero de medidas que se utilizan para calcular

los pesos de los puntos de acceso, siempre y cuando el campo usar pesos dinamicos

este activo.

Page 104: Sistema de localización para entornos de interior basado en Android

86 APENDICE B. MANUAL DE USUARIO

Mostrar partıculas: si esta activo, se visualizan las partıculas usadas por el al-

goritmo de localizacion en interiores ası como los pesos de estas. Utilizar esta

opcion puede sobrecargar la aplicacion si el numero de partıculas es alto.

Orientacion: orientacion del entorno con respecto a los ejes de la Tierra.

Tamano del entorno: tamano del entorno en metros en el eje x y en el eje y.

Punto de referencia: latitud y longitud del punto de referencia.

Informacion de los routers: permite modificar y eliminar la informacion de los

routers.

Anadir router: boton que permite anadir un nuevo router.

Guardar: boton que permite guardar los ajustes.

Los parametros por defecto de la aplicacion son los parametros que se han usado

para el desarrollo de la aplicacion. Los parametros de orientacion, tamano del entorno,

punto de referencia e informacion de los routers se debe modificar segun el entorno en

el que se quiera obtener la localizacion. Para saber como establecer estos parametros

dirıjase a la seccion B.1.

La figura B.8 muestra los dialogos mostrados para la informacion de los routers. El

dialogo mostrado cuando se pulsa el boton anadir un router se ilustra en la figura de

la izquierda. En la informacion de los routers, si el usuario pulsa sobre un router, se

despliega un dialogo que le permite modificar la informacion de este (centro), mientras

que si el usario hace un click largo sobre un router se muestra un dialogo que le permite

borrar toda la informacion de ese router (derecha).

Page 105: Sistema de localización para entornos de interior basado en Android

B.4. PANTALLA DE AJUSTES DE EJECUCION 87

Figura B.1: Orientacion del entorno

Page 106: Sistema de localización para entornos de interior basado en Android

88 APENDICE B. MANUAL DE USUARIO

Figura B.2: Herramienta para obtener las coordenadas geograficas de un punto geografi-

co

Page 107: Sistema de localización para entornos de interior basado en Android

B.4. PANTALLA DE AJUSTES DE EJECUCION 89

Figura B.3: Actividad inicial de Localizacion Indoor

Page 108: Sistema de localización para entornos de interior basado en Android

90 APENDICE B. MANUAL DE USUARIO

Figura B.4: Actividad de localizacion de Localizacion Indoor

Figura B.5: Dialogo mostrado para activar la conexion Wi-Fi

Page 109: Sistema de localización para entornos de interior basado en Android

B.4. PANTALLA DE AJUSTES DE EJECUCION 91

Figura B.6: Dialogo mostrado para activar la conexion GPS

Page 110: Sistema de localización para entornos de interior basado en Android

92 APENDICE B. MANUAL DE USUARIO

Figura B.7: Actividad de ajustes de ejecucion de Localizacion Indoor

Page 111: Sistema de localización para entornos de interior basado en Android

B.4. PANTALLA DE AJUSTES DE EJECUCION 93

Figura B.8: Dialogos mostrados para la informacion de los routers. Anadir router (iz-

quierda), modificar router (centro) y borrar router (derecha)