You are on page 1of 111

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 Martnez del Horno

Junio de 2015
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 Martnez del Horno


Directores: Jesus Martnez Gomez
Luis Orozco Barbosa

Junio de 2015
Declaracion de Autora
Yo, Miguel Martnez 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 legtimos autores.
Albacete, a 8 de junio de 2015
Fdo: Miguel Martnez del Horno
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 tecnologa 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 tecnologa 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 permitira 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 partculas.
El proyecto ha sido desarrollado completamente en Android para poder utilizarse en
la mayora de smartphones, y ademas ha sido evaluado en un entorno real.
dedicado a todos los
que han estado ayudandome
al pie del canon
Agradecimientos
Esta es sin duda la parte mas difcil 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 quera 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 Benjamn 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 Mara 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.
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 partculas . . . . . . . . . . . . 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
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
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 partcula con una posicion muy verosmil 50
4.4. Ejemplo de ponderacion de una partcula con una posicion poco verosmil 51
4.5. Ejemplo de seleccion de partculas . . . . . . . . . . . . . . . . . . . . . 52

xi
xii INDICE DE FIGURAS

4.6. Ejemplo de visualizacion de 10 partculas 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
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 tpicas de aiboNET1 . . . . . . . . . . . . . . . . . . . . . 41
3.7. Valores de P0 para cada punto de acceso . . . . . . . . . . . . . . . . . 41

4.1. Pesos de las partculas en el ejemplo de seleccion . . . . . . . . . . . . . 51

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


5.2. Distancia eucldea media en metros para el experimento 1 . . . . . . . . 58
5.3. Error cuadratico medio en metros para el experimento 2 . . . . . . . . 59
5.4. Distancia eucldea media en metros para el experimento 2 . . . . . . . . 59
5.5. Error cuadratico medio en metros para el experimento 3 . . . . . . . . 60
5.6. Distancia eucldea 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 tpicas de aiboNET2 . . . . . . . . . . . . . . . . . . . . . 73
A.3. Valores reales y estimados de la potencia de aiboNET3 . . . . . . . . . 74
A.4. Desviaciones tpicas de aiboNET3 . . . . . . . . . . . . . . . . . . . . . 75
A.5. Valores reales y estimados de la potencia de aiboNET4 . . . . . . . . . 76
A.6. Desviaciones tpicas de aiboNET4 . . . . . . . . . . . . . . . . . . . . . 77
A.7. Valores reales y estimados de la potencia de aiboNET5 . . . . . . . . . 78
A.8. Desviaciones tpicas de aiboNET5 . . . . . . . . . . . . . . . . . . . . . 79

xiii
Captulo 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 tecnologa 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 tecnologas inalambricas
y los servicios de localizacion. Las redes inalambricas han sufrido una gran expansion

1
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 tecnologa 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 tecnologa 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
tecnologa predominante por encima de sus competidores iOS y Windows Phone. Todo
esto crea un entorno idoneo para crear aplicaciones de localizacion en interiores va
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 hbrido 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 (libreras, 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.
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 energa: 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*.


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 captulos que describen todo el desarrollo del
sistema de localizacion en interiores basado en Android.
En el segundo captulo, Antecedentes y Estado de la Cuestion, se describe el sistema
operativo Android, el sistema de procesamiento global (GPS), la tecnologa Wi-Fi y
diversos algoritmos de localizacion.
En el tercer captulo, Plataforma Inalambrica y Sistema de Telemetra, se muestra
la metodologa 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 captulo, Sistema de Localizacion en Interiores, expone el algoritmo de
localizacion a traves del cual el sistema estima la posicion del usuario en el entorno.
1.4. ESTRUCTURA DE LA MEMORIA 5

El quinto captulo, 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 captulo, Conclusiones y Propuestas, se exponen las conclusio-
nes obtenidas de los experimentos y se proponen nuevas propuestas y proyectos sobre
el tema en cuestion.
Captulo 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 captulo trata de dar una vision global de cada componente
tecnologico involucrado en la realizacion del proyecto.
En primer lugar, se describen las caractersticas mas relevantes del sistema operativo
Android. A continuacion se explican los principios de funcionamiento de las tecnologas
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
especficas haciendo uso de diversas tecnologas 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 tecnologa Linux. El codigo
del sistema operativo Android cuenta con mas de 12 millones de lneas escritas en los
lenguajes XML, C, C++ y Java. La mayora 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 crticas 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
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 naca 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 caractersticas 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 fsico tradicional y que poda ser utilizando tanto en posicion horizontal
como vertical. Se consiguieron avances en el tratamiento de vdeo, 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.
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 mayora, 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 batera 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.
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
permita 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 incluan 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 compana
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.
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 batera, etc.

2.1.2. Android en el mercado movil


A da 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 da 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
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 especficas 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.
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 cronometra 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 da. 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 mnimo 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 envan 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.
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
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 mnima variacion del tiempo puede ocasionar
kilometros de error. Es muy difcil obtener el tiempo exacto ya que los relojes no son
exactos, lo que se conseguira 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.
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 energa. El proveedor de red determina la posicion del usuario a
partir de las antenas de telefona movil y de las senales Wi-Fi tanto en exteriores como
en interiores con un menor consumo de energa.
Cada proveedor devuelve un objeto Location que contiene los siguientes campos,
entre otros:
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 mnimo en milisegundos entre dos actualizaciones de la loca-


lizacion.

3. Distancia mnima 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:
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 tecnologa 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
fsica (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 fsica define
la modulacion de las ondas de radio y las caractersticas 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 fsica.

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.
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 pas 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 vdeo.

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:
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
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
caractersticas (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
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 enva 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 enva 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.
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 enva 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 perodo de tiempo aleatorio antes de comenzar a enviar el mensaje de nuevo.
Con la tecnologa 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 recprocos 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 perodo 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,
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 enva
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 caractersticas de esta senal son:

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


el tiempo de forma logartmica, 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
energa. La energa 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 energa 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 caractersticas 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
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 lnea recta) ni siquiera en
situaciones de vision directa. Esto provoca que existan zonas en las que no hay senal y,
a los pocos centmetros, 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 asncrona cuando se completa un barrido de la red. Para ello, la
actividad que utiliza esta API debe registrar un BroadcastReceiver junto con la accion
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 (xt1 ) + 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.
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 mnimos 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 = Axt1 + ut1 (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 |b
x0 , P0 ), el desglose de operaciones es:

Actualizacion del tiempo (o Prediccion):


28 CAPITULO 2. ANTECEDENTES Y ESTADO DE LA CUESTION

1. Calculo del estado actual x


bt a priori:

b
x t = f (b
xt1 ) (2.5)

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

Pt = Ft Pt1 FtT + Qt1 (2.6)

Actualizacion de la observacion (o Correccion)

1. Obtencion de la ganancia de Kalman Kt :

Kt = Pt HtT (Ht Pt HtT + Rt )1 (2.7)

2. Actualizacion de la estimacion x
bt con la observacion yt :

x b
bt = x x
t + Kt (yt h(bt )) (2.8)

3. Actualizacion de la covarianza del error:

Pt = (I Kt Ht )Pt (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.
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 estadstico 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
estadstica con el fin de conocer algunas propiedades estadsticas 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 partculas para mantener una
distribucion de probabilidad sobre todas las posibles posiciones. Dicha probabilidad
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 partculas [6] (PF o Particle Filter ) es un metodo para el procesamiento
secuencia de senales, basado en la teora 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 ingeniera 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 partculas, las distribuciones se aproximan por muestras discretas
(i) (i)
aleatorias definidas por partculas xt y por los pesos t asociados a estas.
El algoritmo que sigue un filtro de partculas, para i = 1, ..., M y para cada instante
t, cuenta con las siguientes fases:

1. Inicializacion: muestreo de la distribucion a priori:

(i)
x0 p(x0 ) (2.10)

(i) 1
t = (2.11)
M
2. Ponderacion: se otorga el peso a las partculas segun la verosimilitud de sus
posiciones a partir de las observaciones:

(i) (i)
t = p(yt |xt ) (2.12)

(i)
(i)
t = PM t (k)
(2.13)
k=1 t

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


pesos:
M
X (i) (i)
xt = t xt (2.14)
i=1
2.3. ALGORITMOS DE LOCALIZACION PARA REDES INALAMBRICAS 31

4. Prediccion: se calculan las partculas del siguiente paso:


M
X
(i) (k) (k)
xt+1 t p(xt+1 |xt ) (2.15)
k=1
Captulo 3

PLATAFORMA INALAMBRICA
Y SISTEMA DE TELEMETRIA

En este captulo 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 captulo se
presentan los datos recogidos y la metodologa 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
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:
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
fsico 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.
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


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]):

4d
Pr (d) = P0 20log( ) (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 empricos 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.
38CAPITULO 3. PLATAFORMA INALAMBRICA Y SISTEMA DE TELEMETRIA

Muestra la intensidad media y actual de cada punto de acceso.

Muestra la desviacion tpica 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 tpica 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 tpica 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 estadsticas a 0.

Adquisicion de datos: se ha realizado un barrido de la red en cada punto en das


distintos para, de esta forma, obtener datos de la red en das 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)
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 captulo 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 das distintos, as como la desviacion tpica 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 das. Esta tabla contiene la distancia de cada punto a aiboNET1 (calculada mediante
el teorema de Pitagoras), las potencias reales obtenidas durante 5 das (en dB), la
potencia media de los 5 das 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 vara segun el entorno en el que


estemos.
40CAPITULO 3. PLATAFORMA INALAMBRICA Y SISTEMA DE TELEMETRIA

Punto Distancia Da 1 Da 2 Da 3 Da 4 Da 5 Valor medio Valor estimado


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
ZONA A

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
ZONA 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
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
ZONA C

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
1 16,166 -61 -60 -57 -57 -57,15 -58,37 -59,26
ZONA D

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


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

Punto Distancia Da 1 Da 2 Da 3 Da 4 Da 5 Valor medio


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
ZONA A

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
ZONA 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
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
ZONA C

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
1 16,166 5,00 5,12 5,33 5,00 4,95 5,08
ZONA D

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 tpicas 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


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 tpica de cada medida no depende del lugar en que se ha tomado


la medida.
Captulo 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 partculas descritos en el Captulo 2 de esta memoria. Una partcula representa una
posible posicion del usuario, es decir, cada partcula es una hipotesis de la posicion del
usuario. Las partculas cuentan con los siguientes atributos:

Posicion: coordenada relativa (x,y) de nuestro entorno donde se encuentra la


partcula.

Peso: representa la validez de una partcula, 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
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 partculas (N): numero de partculas 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 partculas, 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 caractersticas 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 caractersticas
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 lnea 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 partculas que se usan en el algoritmo no pueden salir
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 partculas.

2. Ponderacion: calculo de los pesos de las partculas.

3. Seleccion: eleccion de la siguiente poblacion de partculas.

4. Variacion: cambio de la posicion de las partculas.

5. Visualizacion: exposicion grafica de las partculas 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 partculas


La primera parte del algoritmo consiste en la inicializacion de las partculas que
usamos, cuyo numero viene dictaminado por el atributo que representa el numero de
46 CAPITULO 4. SISTEMA DE LOCALIZACION EN INTERIORES

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


Una de las partes fundamentales del algoritmo es la ponderacion de las partculas.
La ponderacion evalua la verosimilitud de estar posicionados en la localizacion que
representa la partcula dado el conjunto de lecturas recibidas desde los emisores. Con
el objetivo de desarrollar un sistema hbrido 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 partcula es calculado mediante la siguiente ecuacion:

N umAP
X
Wi = (Wi,j ) + Wi,GP S (4.1)
j=1

donde Wi es el peso de la partcula, Wi,j es el peso otorgado por cada punto de acceso
(AP) y Wi,GP S 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,GP S ), 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 P0
4d 10 20
Pr (d) = P0 20 log( ) = d(Pr ) = (4.2)
4

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 partcula 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 partcula 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
4.2. ALGORITMO DE LOCALIZACION 47

otorgado por un router a una partcula se calcula como:



0, si |dist(i, j) dist(pot(j)| > distmax ;
Wi,j = (4.3)
1 |d1 d2 | w , en otro caso.
distmax j

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 partculas. Esta variable (wj ) es el peso del punto de acceso que
esta otorgando el peso a la partcula. 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 tpica (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 tpica 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 tpica 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
partculas, es decir, para que su peso no sea cero. El algoritmo tambien cuenta con
el atributo desvmin que representa la desviacion mnima 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:


0, si desv desvmax ;

wj = 1 desv (4.4)
desvmax
, si desvmin < desv < desvmax ;



1, en otro caso.
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 partcula.
La otra fuente mediante la cual se otorga peso a las partculas 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.
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 partcula, 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) = Rarc cos(sin(latA )sin(latB )+cos(latA )cos(latB )cos(lonA lonB )) (4.5)

tan( lat2B + 4 )
= ln( ) (4.6)
tan( lat2A + 4 )

lon = |lonA lonB | (4.7)

lon
= arctan( ) (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 trigonometra, 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.
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 partculas. El GPS solo otorgara peso si la partcula 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,GP S ) se calcula como:

0, si dist(i, GP S) > precision GP S
Wi,GP S = (4.9)
1 distancia , en otro caso.
precision GP S

Si al final del calculo del peso de una partcula, este resulta ser cero, se aplica
la correccion de Laplace para que as todas las partculas tengan alguna posibilidad
(aunque sea mnima) de formar parte de la siguiente poblacion. Esta correccion implica
poner el peso de la partcula a 0.01.
Las figuras 4.3 y 4.4 muestran un ejemplo de ponderacion de una partcula. Se
puede observar el peso otorgado por cinco puntos de acceso (cuyos pesos son todo 1,
50 CAPITULO 4. SISTEMA DE LOCALIZACION EN INTERIORES

es decir, la calidad de su senal es buena) y por el GPS. La partcula de la primera


figura cuenta con una posicion muy verosmil, ya que obtiene un peso total de 4. Esta
partcula contara con muchas probabilidades de ser elegida para la siguiente poblacion.
La partcula de la segunda figura, sin embargo, cuenta con una posicion poco verosmil,
habiendo obtenido un peso total de 1.

Figura 4.3: Ejemplo de ponderacion de una partcula con una posicion muy verosmil

4.2.3. Seleccion de la siguiente poblacion de partculas


La siguiente fase del algoritmo es la seleccion de la siguiente poblacion de partculas.
Esta seleccion se hace en funcion de la suma de los pesos de todas las partculas,
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 partculas (sumapesos ) tantas veces
como partculas 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 partcula 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 partculas visitadas
hasta ahora (que no es sumapesos ) mas el peso de la partcula actual se anade
esa partcula a la siguiente poblacion.

Si no es menor se anade el peso de la partcula a la suma de los pesos y la partcula


no es escogida. Se continua con la siguiente partcula.
4.2. ALGORITMO DE LOCALIZACION 51

Figura 4.4: Ejemplo de ponderacion de una partcula con una posicion poco verosmil

Partcula 1 2 3 4 5
Peso 1 4 2 4 1

Tabla 4.1: Pesos de las partculas en el ejemplo de seleccion

Este procedimiento puede verse como una ruleta en la que los pesos de cada partcu-
la representan los numeros que pueden tocar. La ruleta se gira (lo que representa el
aleatorio que se obtiene) y se escoge la partcula donde pare la ruleta.
Para que no haya dudas con este protocolo, se va a exponer un ejemplo de seleccion
con 5 partculas. Supongamos las partculas con los pesos mostrados en la tabla 4.1,
donde la partcula 1 se corresponde con el ejemplo poco verosmil de la seccion anterior
y la partcula 2 se corresponde con el ejemplo muy verosimil.
Supongamos tambien que el aleatorio obtenido es 4. El algoritmo de seleccion em-
pezara preguntandose si 4 es menor o igual que la suma de los pesos de las partculas
visitadas hasta ahora (que es 0) mas el peso de la particula 1 (que es 1). Como esta
condicion no se cumple, la partcula no es escogida y se suma su peso al peso de las
partculas visitadas. Cuando el algoritmo escoge la siguiente partcula (partcula 2),
comprueba que en este caso el aleatorio s es menor o igual que la suma de los pesos de
las partculas visitadas hasta ahora (que es 1) mas el peso de esta partcula (que es 4).
Por tanto, el algoritmo de seleccion escogera la partcula 2 para la siguiente poblacion.
La figura 4.5 ilustra este ejemplo. En ella se muestra un grafico (ruleta) con los
pesos de cada partcula. El punto superior etiquetado como A sera el punto desde el
que la ruleta empezara a girar en sentido horario. Una vez girada la ruleta segun el
52 CAPITULO 4. SISTEMA DE LOCALIZACION EN INTERIORES

aleatorio obtenido (cuyo valor es 4) la ruleta quedara en la recta etiquetada como B,


por lo que la partcula escogida sera la partcula 2.

Figura 4.5: Ejemplo de seleccion de partculas

4.2.4. Variacion de las partculas


La ultima fase del algoritmo es la variacion de las posiciones de las partculas. Se
aplica la siguiente mutacion a la posicion de cada partcula:

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 partcula al aplicar la mutacion representada por ambos aleatorios sigue


dentro del entorno, la partcula muta su posicion. En caso contrario no se aplica
la mutacion.

4.2.5. Visualizacion de las partculas


Esta parte del algoritmo no forma parte del algoritmo en s, sino que es utilizada
para visualizar la posicion del usuario (y de las partculas) 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 partcula en cuestion. Las siguientes
ecuaciones, obtenidas de [13], nos permiten obtener un nuevo punto en latitud longitud:

latB = arcsin(sin(latA ) cos( Rd ) + cos(latA ) sin( Rd ) cos())


sin()sin( d )cos(latA )
lonB = lonA + arctan( cos( d )sin(lat
R
)
R A )sin(latB ))
4.3. EJECUCION DEL ALGORITMO 53

donde d es la distancia eucldea que hay entre la coordenada relativa (x,y) de la partcu-
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 trigonometra:

difX = |ref erenciaX particulaX |


difY = |ref erenciaY particulaY |
difY
angulo = arctan( dif X
)

Sin embargo, este no es el angulo que queremos, pues este angulo no estara 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 partculas 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 partculas, se muestra como la ubicacion
actual del usuario, con la misma representacion que usa Google Maps.

Las partculas son pintadas como un crculo con 0.5 metros de radio rellenado
de azul, sobre el que hay otro crculo de color negro sin relleno que representa el
peso de la partcula. 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
partculas. Se puede observar la posicion actual del usuario y las partculas 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.
54 CAPITULO 4. SISTEMA DE LOCALIZACION EN INTERIORES

Figura 4.6: Ejemplo de visualizacion de 10 partculas y la posicion del usuario

ponderacion(): metodo que implementa la ponderacion de las partculas. 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 partculas.

variacion(): metodo que implementa la variacion de las partculas.

visualizacion(): metodo que implementa la visualizacion de las partculas. Este


metodo devuelve un ArrayList<Particula> en el que las partculas tienen los
campos de latitud y longitud rellenos.

imprime(): metodo que imprime informacion de cada partcula por el Log de


Android, entre la que se encuentra el nombre, el peso y la coordenada.

getParticulaMediaPonderada(): obtiene la partcula media a traves de una


media ponderada por el peso de las posiciones x e y de todas las partculas.

obtenNuevaLatLong(Coordenada): metodo que obtiene una partcula 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
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 asncrona
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 partculas.
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 partcula de referencia, el numero de
partculas, 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.
Captulo 5

EXPERIMENTOS Y
RESULTADOS

Este captulo 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 partculas. 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 partculas que obtenga el mejor equilibrio entre la precision y el rendimiento
del sistema.

Uso del GPS. En esta prueba el numero de partculas 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 partculas 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 euclda 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
58 CAPITULO 5. EXPERIMENTOS Y RESULTADOS

Porcentaje Numero de partculas


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 partculas


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 eucldea 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 partcu-


las
El experimento 1 consiste en variar el numero de partculas (N) sin usar el GPS ni
los pesos dinamicos. Su objetivo es determinar el numero de partculas 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 eucldea media como
error. Ambas tablas relacionan el numero de partculas 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 partculas. Esta disminucion es menor a partir de N=100, donde el rendi-
miento del sistema empieza a caer al usarse un gran numero de partculas. Por ello, se
concluye que el mejor numero de partculas 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.
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 eucldea 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 partculas 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 eucldea 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.
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 eucldea 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 partculas 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 vara 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 eucldea 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 sera 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 varen mucho, provocando que los puntos de acceso tengan
poco peso y, por tanto, los pesos otorgados a las partculas 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 varan mas de esta forma y, como consecuencia, la precision del
sistema cae.
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 partculas 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
habra 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 estara
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.
Area A B C D
Error 2.659 3.849 3.065 2.879

Tabla 5.7: Error medio en metros de cada area


Captulo 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 partculas.
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 vara 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
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 partculas para estimar la po-
sicion del usuario dentro del entorno. Las partculas inicialmente se distribuyen aleato-
riamente por todo el entorno. Posteriormente se evalua la verosimilitud de la posicion
de cada partcula a partir de las medidas recibidas de la red. A partir de la evalua-
cion de todas las partculas, se obtiene la posicion del usuario como la media de las
posiciones de todas las partculas ponderada por el peso de cada una. Finalmente se
escogen las partculas 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 partculas
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, estanteras, etc. Por ello, se puede concluir que el
sistema cuenta con una precision aceptable.
El sistema podra 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 tecnologa 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 asncrona cada barrido
de la red cuando esta disponible.

Uso de otras tecnologas complementarias para la localizacion. La tecnologa


Blueetoth es una firme candidata a ayudar a la tecnologa 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


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 partculas en el sector por donde el usuario
entra en el entorno.
Bibliografa

[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 2121. 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):116126,
1997. 18

[3] Instituto de Ingeniera 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 13221328. 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 24902494. 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 4753. Citeseer, 2005. 37, 63

67
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):10671080, 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. Estadsticas 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
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
Apendice A

RESULTADOS OBTENIDOS DEL


ESTUDIO DE LA POTENCIA

Este captulo 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
72APENDICE A. RESULTADOS OBTENIDOS DEL ESTUDIO DE LA POTENCIA

Punto Distancia Da 1 Da 2 Da 3 Da 4 Da 5 Valor medio Valor estimado


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
ZONA A

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
ZONA 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
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
ZONA C

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
1 16,003 -55 -58 -58 -55 -54,70 -56,05 -53,21
ZONA D

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


73

Punto Distancia Da 1 Da 2 Da 3 Da 4 Da 5 Valor medio


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
ZONA A

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
ZONA 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
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
ZONA C

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
1 16,003 4,34 3,58 3,60 4,00 4,95 4,09
ZONA D

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 tpicas de aiboNET2


74APENDICE A. RESULTADOS OBTENIDOS DEL ESTUDIO DE LA POTENCIA

Punto Distancia Da 1 Da 2 Da 3 Da 4 Da 5 Valor medio Valor estimado


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
ZONA A

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
ZONA 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
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
ZONA C

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
1 7,889 -54 -55 -54 -52 -53,00 -53,86 -52,12
ZONA D

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


75

Punto Distancia Da 1 Da 2 Da 3 Da 4 Da 5 Valor medio


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
ZONA A

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
ZONA 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
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
ZONA C

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
1 7,889 3,36 3,83 2,74 4,45 3,00 3,48
ZONA D

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 tpicas de aiboNET3


76APENDICE A. RESULTADOS OBTENIDOS DEL ESTUDIO DE LA POTENCIA

Punto Distancia Da 1 Da 2 Da 3 Da 4 Da 5 Valor medio Valor estimado


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
ZONA A

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
ZONA 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
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
ZONA C

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
1 8,343 -53 -55 -54 -53 -53 -53,16 -52,66
ZONA D

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


77

Punto Distancia Da 1 Da 2 Da 3 Da 4 Da 5 Valor medio


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
ZONA A

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
ZONA 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
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
ZONA C

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
1 8,343 3,00 3,80 4,31 3,57 4,00 3,92
ZONA D

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 tpicas de aiboNET4


78APENDICE A. RESULTADOS OBTENIDOS DEL ESTUDIO DE LA POTENCIA

Punto Distancia Da 1 Da 2 Da 3 Da 4 Da 5 Valor medio Valor estimado


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
ZONA A

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
ZONA 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
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
ZONA C

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
1 2,222 -45 -46 -45 -44 -42 -44,39 -45,20
ZONA D

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


79

Punto Distancia Da 1 Da 2 Da 3 Da 4 Da 5 Valor medio


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
ZONA A

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
ZONA 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
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
ZONA C

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
1 2,222 4,00 3,57 4,77 4,77 2,22 3,83
ZONA D

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 tpicas de aiboNET5


Figura A.2: Relacion entre la distancia y la potencia de aiboNET3

Figura A.3: Relacion entre la distancia y la potencia aiboNET4


Figura A.4: Relacion entre la distancia y la potencia de aiboNET5
Apendice B

MANUAL DE USUARIO

La aplicacion para smartphones con tecnologa 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
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.
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 Ingeniera 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 partculas: numero de partculas 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.
86 APENDICE B. MANUAL DE USUARIO

Mostrar partculas: si esta activo, se visualizan las partculas 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 partculas 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
dirjase 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).
B.4. PANTALLA DE AJUSTES DE EJECUCION 87

Figura B.1: Orientacion del entorno


88 APENDICE B. MANUAL DE USUARIO

Figura B.2: Herramienta para obtener las coordenadas geograficas de un punto geografi-
co
B.4. PANTALLA DE AJUSTES DE EJECUCION 89

Figura B.3: Actividad inicial de Localizacion Indoor


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


B.4. PANTALLA DE AJUSTES DE EJECUCION 91

Figura B.6: Dialogo mostrado para activar la conexion GPS


92 APENDICE B. MANUAL DE USUARIO

Figura B.7: Actividad de ajustes de ejecucion de Localizacion Indoor


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)

You might also like