Académique Documents
Professionnel Documents
Culture Documents
Julio, 2015
Julio, 2015
Declaracin de Autora
Yo, Jos Molina Gracia con DNI 47446913Y, declaro que soy el nico autor del trabajo fin
de grado titulado Aplicacin mvil Android para seguimiento de rutas en entrenamientos a
pie y que el citado trabajo no infringe las leyes en vigor sobre propiedad intelectual y que
todo el material no original contenido en dicho trabajo est apropiadamente atribuido a sus
legtimos autores.
Albacete, a 21 de junio de 2015.
Resumen
Agradecimientos
A mi familia, a mis amigos y a la
guitarra.
Dedicatorias
A todos los que me han ayudado.
.
NDICE
CAPTULO 1. INTRODUCCIN............................................................................. 9
1.1
MOTIVACIN ................................................................................................ 9
1.2
OBJETIVOS .................................................................................................. 10
1.3
2.3
3.5
3.6
4.1.1
4.1.2
4.1.3
4.1.4
CONCLUSIONES ......................................................................................... 67
5.2
BIBLIOGRAFA ........................................................................................................ 69
LIBROS Y ARTICULOS ....................................................................................... 69
ENLACES INTERNET .............................................................................................. 70
CONTENIDO DEL CD .............................................................................................. 73
NDICE DE FIGURAS
Ilustracin 1. Arquitectura del S.O. Android.............................................................. 15
Ilustracin 2. Captura de pantalla del IDE Android Studio ........................................ 15
Ilustracin 3. Disponiblidad de sensores segn la versin Android ........................... 17
Ilustracin 4. Sistema de coordenadas de posicin de los smartphones Android ..... 20
Ilustracin 5. Patrones de movimiento de acelermetro............................................. 22
Ilustracin 6. Esquema trilaterizacin ........................................................................ 23
Ilustracin 7. Explicacin latitud y longitud .............................................................. 24
Ilustracin 8. Explicacin orientacin entre coordenadas .......................................... 25
Ilustracin 9. Orientacin entre dos puntos. ............................................................... 25
Ilustracin 10. Distribucin normal. ........................................................................... 28
Ilustracin 11. Ejemplo de filtro de partculas .......................................................... 31
Ilustracin 12. Ejemplo ruta ruidosa........................................................................... 33
Ilustracin 13. Ejemplo inicializacin nube de partculas .......................................... 38
Ilustracin 14. Diagrama de clases de la aplicacin Android..................................... 43
Ilustracin 15. Diagrama de secuencia. Inicializacin ............................................... 45
Ilustracin 16. Diagrama de secuencia. Captura de paso. .......................................... 46
Ilustracin 17. Diagrama de secuencia. Finalizacin. ................................................ 47
Ilustracin 18. Captura versin Release ..................................................................... 49
Ilustracin 19. Captura versin Debug ....................................................................... 50
Ilustracin 20. Ruta ejemplo para determinar N......................................................... 52
Ilustracin 21. Resultados de experimento N ............................................................. 53
Ilustracin 22. Ruta ejemplo para determinar p ......................................................... 56
Ilustracin 23. Resultados experimento p................................................................... 56
Ilustracin 24. Ruta para determinar alpha ................................................................. 58
Ilustracin 25. Resultados de determinar alpha .......................................................... 58
Ilustracin 26. Ruta para determinar beta ................................................................... 59
Ilustracin 27. Resultados de determinar beta ............................................................ 60
Ilustracin 28. Ruta para ajuste precisin ................................................................... 61
Ilustracin 29. Resultados ajuste precisin................................................................. 62
Ilustracin 30. Ruta para prdidas de seal 1. ............................................................ 63
Ilustracin 31. Resultado prdidas de seal 1............................................................. 63
Ilustracin 32. Resultado prdidas de seal ruidosa 2. ............................................... 64
Ilustracin 33. Ejemplo suavizado ruta 1. .................................................................. 65
Ilustracin 34. Ejemplo suavizado ruta 2. .................................................................. 65
VII
NDICE DE TABLAS
Tabla 1. Error cuadrtico medio en funcin de N ...................................................... 54
Tabla 2. Tiempos de ejecucin en funcin de N ........................................................ 54
CAPTULO 1: INTRODUCCIN
CAPTULO 1. INTRODUCCIN
En este captulo se introducen los motivos que han llevado a la realizacin de este
proyecto, los principales objetivos a desarrollar y la estructura de esta memoria, es decir
un resumen de los contenidos y su distribucin.
Se plantea el desarrollo de una aplicacin mvil Android para el seguimiento de rutas
utilizando los datos de sensores del dispositivo como el GPS y el acelermetro. El objetivo
de este sistema es atenuar los posibles fallos derivados de la precisin de la ubicacin
recibida por el receptor GPS o de la ausencia de la misma.
1.1
MOTIVACIN
CAPTULO 1: INTRODUCCIN
1.2
OBJETIVOS
Objetivo principal:
El principal objetivo del trabajo es el desarrollo de una aplicacin mvil que permita
estimar la posicin de un usuario en tiempo real. El algoritmo de localizacin se basa en el
mtodo de Monte Carlo y debe permitir el seguimiento de rutas a pie. El registro de la ruta
debe realizarse de la forma ms precisa y robusta posible.
El sistema debe ser robusto ante la presencia de situaciones desfavorables para la
recepcin de seal GPS. Adems, debe ser eficiente en cuanto al consumo de recursos para
un correcto funcionamiento en dispositivos con una capacidad limitada de procesamiento,
tales como los dispositivos mviles.
La implementacin de este trabajo est orientada a los dispositivos mviles o
smartphones. Se busca aplicar la informacin procesada del acelermetro (utilizada como
un podmetro) para mejorar la localizacin del usuario tras la deteccin de un paso.
CAPTULO 1: INTRODUCCIN
Ante la ausencia de seal GPS durante un largo perodo de tiempo, el sistema debe
seguir funcionado. Para ello, se basar en las posiciones que el sistema estim para el
usuario en los instantes anteriores, a pesar de un inherente descenso en la precisn de la
estimacin.
Subobjetivos:
Estudiar y procesar los datos de los diferentes sensores que ofrecen los terminales
basados en Android.
Estudiar los modelos necesarios para poder razonar bajo la incertidumbre de las
medidas de los diferentes sensores para integrarlos y poder estimar de forma
fiable la localizacin instantnea de un corredor durante una carrera o
entrenamiento.
1.3
ESTRUCTURA DE LA MEMORIA
11
CAPTULO 1: INTRODUCCIN
CAPTULO 5
2.1
Algoritmos de localizacin.
CAPTULO 5
Un poco de historia.
Este sistema operativo fue desarrollado inicialmente por Android Inc., una empresa
comprada por Google en 2005. En 2007 se lanz la Open Handset Alliance, que agrupaba a
un conglomerado de fabricantes de telfonos mviles, chipsets y desarrolladores. Ese mismo
ao se public la primera versin del sistema con el SDK disponible al pblico, y desde
entonces se han visto un gran nmero de actualizaciones del sistema operativo base. Estas
actualizaciones tpicamente corrigen fallos de programa y agregan nuevas funcionalidades.
Desde abril de 2009, las versiones de Android han sido desarrolladas bajo un nombre
en clave y sus nombres siguen un orden alfabtico: Apple Pie, Banana Bread, Cupcake,
Donut, clair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, KitKat y
Lollipop 5.1 La actualizacin ms reciente es Android M, que fue anunciadao oficialmente
en mayo de 2015, durante la conferencia I/O de Google.
Arquitectura
Ncleo Linux: Algunos servicios base del sistema como la seguridad, la gestin
de memoria, gestin de procesos, pila de red y modelo de controladores son
manejados por el ncleo Linux. Este acta como una capa de abstraccin entre el
hardware y el resto de capas software.
Entorno de programacin:
El IDE utilizado en este caso es Android Studio. En la actualidad, es el IDE oficial
para el desarrollo de aplicaciones Android. Est basado en la versin para la comunidad de
desarrolladores open-source IntelliJ IDEA, un IDE genrico para el desarrollo de software.
Algunas de las ventajas que ofrece este entorno es el autocompletado avanzado de
cdigo, y herramientas de refactoring y anlisis de cdigo. En [20] se hace un resumen de
la herramienta.
CAPTULO 5
15
CAPTULO 5
2.1.1
-Qu es un sensor?
Es un dispositivo capaz de dar una respuesta elctrica a estmulos fsicos externos. Se
trata de un elemento que traduce una magnitud fsica y real (temperatura, aceleracin,
longitud) en unidades que pueden ser interpretadas por un dispositivo electrnico. Estas
magnitudes son traducidas por el sensor a una unidad elctrica, generalmente a voltaje.
Despus de ser procesado, el voltaje es analizado por un sistema inteligente que da respuesta
a la accin que se haya llevado a cabo sobre el dispositivo mvil en el que est integrado.
En el universo Android, los sensores integrados estn divididos en tres categoras:
1. Movimiento: Miden fuerzas de aceleracin y rotacin en los tres ejes (X, Y, Z).
Esta categora incluye acelermetros, sensores de gravedad, giroscopios y sensores
de vector rotacional.
2. Posicin: Miden la posicin fsica de un dispositivo. Por ejemplo, los sensores de
orientacin y los magnetmetros.
3. Ambiental: Estiman algunos parmetros ambientales como la temperatura
ambiente del aire, la presin, iluminacin o humedad. En esta categora, se
encuentran los barmetros, fotmetros y termmetros.
Se puede acceder a los datos que producen los sensores disponibles en el dispositivo a
travs del framework de sensores de Android, que proporciona clases e interfaces para
realizar tareas relacionadas con ellos. Se podra usar este framework para: determinar qu
sensores hay disponibles en el dispositivo, determinar las caractersticas de estos (rango de
valores, fabricante, requisitos de potencia y resolucin), adquirir datos de los sensores y
definir la frecuencia con qu se desean recibir, o registrar listeners (escuchadores) para
recibir una seal cada vez que el sensor cambie.
Algunos sensores son basados en hardware, es decir, son componentes fsicas
integradas dentro del dispositivo y derivan los datos que producen a travs de la medida de
las propiedades ambientales, como puede ser la aceleracin o la fuerza del campo magntico.
Los sensores basados en software no son dispositivos fsicos, sino que imitan el
comportamiento de los sensores basados en hardware y derivan los datos de otros sensores
fsicos. La aceleracin lineal o el sensor de gravedad son algunos ejemplos.
Framework de sensores.
Este framework es parte del paquete android.hardware e incluye las siguientes clases
e interfaces:
CAPTULO 5
Framework de localizacin.
El receptor GPS integrado en los dispositivos mviles no se considera un sensor como
tal, ya que no da una respuecta directa a estmulos fsicos, solamente recibe las seales de
los satlites proveedores, las procesa y determina la ubicacin del usuario, y otros datos de
inters (hora, velocidad, precisin, nombre).
Sin embargo, el framework destinado a manejar los servicios de localizacin de los
terminales Android, no solo permite gestionar la informacin del GPS, tambin la de otros
proveedores de localizacin, como el caso del proveedor de red.
El GPS tiene ms precisin, slo funciona en exteriores, consume la batera muy
rpido y, a veces, no devuelve la ubicacin del usuario con la prontitud que se deseara.
17
CAPTULO 5
Movimiento del usuario: Se debe tener en cuenta el movimiento por la reestimacin de la ubicacin del usuario cada cierto tiempo.
CAPTULO 5
mnima con que se desea recibir las actualizaciones de localizacin y la distancia mnima
entre notificaciones (en metros). Dejando estos dos parmetros a 0, se reciben notificaciones
con la mxima frecuencia posible.
El mtodo getLastKnownLocation(provider) devuelve la ultima ubicacin
almacenada en la cach del dispositivo. Esta ubicacin puede ser nula, si no hay ninguna
almacenada en la cach. Es til para las ocasiones en que el dispositivo tarda demasidado en
adquirir una nueva seal, como al inicio de la recepcin, cuando an no se ha adquirido
correctamente la informacin de los satlites.
Hay que especificar un LocationListener que implemente unos mtodos callback que
la clase LocationManager cuando se recibia una actualizacin de posicin de usuario o el
estado del servicio cambie:
-
19
CAPTULO 5
Por esta razn, cuando el dispositivo est sobre una mesa (sin aceleracin), el
acelermetro mide una magnitud de = 9.81 / 2. De igual forma, un dispositivo en cada
libre leera una aceleracin de = 0 / 2 . Para medir solo la aceleracin real del
dispositivo, se puede aislar la fuerza de gravedad mediante la aplicacin de un filtro pasoalta.
CAPTULO 5
Podmetro
Un podmetro tiene la funcin de detectar los pasos de un usuario. Es posible
implementar un podmetro procesando los datos generados por los sensores de un
dispositivo mvil Android.
Por ejemplo, el acelermetro genera los datos de la aceleracin en cada uno de los ejes
de coordenadas. Podra analizarse la seal resultante para implementar un filtro que detecte
los picos de seal que correspondan a los pasos dados por el usuario.
En la literatura [2, 3, 4], se han desarrollado varias formas de captar gestos o patrones
de movimiento basndose en la informacin procedente del acelermetro, o combinndola
con la de otros sensores como el magnetmetro.
Un podmetro sencillo, como el que se ha aplicado en este trabajo, bsicamente recoge
los valores del acelermetro con la mxima frecuencia que permite el dispositivo, y en cada
paso, encuentra un mnimo y un mximo, y si la diferencia es mayor que un valor dado
(sensibilidad), se cuenta un paso. La implementacin del podmetro que se utiliza en este
trabajo se ha extrado de una aplicacin de cdigo abierto (repositorio online en [25]).
Para extraer los pasos de la seal del acelermetro se aplica un proceso genrico de
anlisis de seal. El proceso que realiza este algoritmo de deteccin de pasos es el siguiente:
1. Adquiere los datos procedentes del acelermetro (3 ejes: X, Y, Z).
2. Se preprocesan sus valores para compararlos con los de las iteraciones previas. Se
aaden a una ventana deslizante de un tamao establecido.
3. Se aplica un filtro diferencial que cuente un paso cuando se supere el umbral
establecido.
Dependiendo de la parte del cuerpo a la que se tenga acoplado el dispositivo y del tipo
de ejercicio realizado, la informacin procedente del acelermetro puede variar. En la
Ilustracin 5 , se pueden comprobar distintos patrones en la seal correspondientes a la
realizacin de tareas distintas.
21
CAPTULO 5
2.2
Control: Son las estaciones de control que monitorizan y controlan los satlites.
Ajustan sus rbitas y sincronizan los relojes de los satlites.
Usuario: Son los dispositivos receptores que reciben la seal de los satlites y usan
esta informacin para calcular la posicin tridimensional.
CAPTULO 5
Latitud: Especifica la posicin de norte a sur. Es un ngulo que parte del Ecuador
(ngulo 0) a los polos norte y sur (90).
CAPTULO 5
Bearing
Tambin denominado orientacin, rumbo o azimuth, indica el ngulo que forma una
posicin de la superfice terrestre con otro punto, teniendo como referencia la lnea que forma
dicha posicin con el norte geogrfico, en el sentido de las agujas del reloj.
CAPTULO 5
La formula utilizada para calcular el bearing inicial entre un punto origen y un punto
destino es la siguiente:
= 2( 2 , 1 2 1 2 )
25
CAPTULO 5
Donde es la latitud, la longitud, el bearing inicial (en el sentido de las agujas del reloj
respecto al norte), es la distancia angular d/R; siendo d la distancia recorrida, y R el radio
medio de la Tierra.
La referencia de la que sea han extraido todas estas funciones es [17].
2.3
ALGORITMOS DE LOCALIZACIN
CAPTULO 5
el GPS. Estos mtodos pueden adolecer de un alto coste computacional, baja frecuencia de
actualizacin y una precisin pobre.
Se ha de tener en cuenta que las estimaciones resultantes de los sensores puede
contener ruido y errores, es decir, hay que contemplar la incertidumbre asociada al entorno.
Localizacin probabilstica
Las aproximaciones probabilsticas son las candidatas ms prometedoras a la hora de
abordar el problema de la localizacin en tiempo real. La localizacin se puede describir
como una instancia de un problema de estimacin bayesiana.
Si se mira el problema desde la perspectiva probabilstica, se puede decir que el robot
tiene una creencia de dnde se encuentra. No se considera la posibilidad de estar o no en
una sola ubicacin, sino en el espacio entero de ubicaciones. Un robot puede creer que se
encuentra en una ubicacin con una determinada probabilidad.
Concretamente, estamos interesados en estimar el estado (ubicacin) del robot en el
instante de tiempo , dados un estado inicial y todas las medidas = { , = 1 }
realizadas hasta el instante actual. Se quiere construir la funcin de densidad de probabilidad
( | ) del estado dadas todas las medidas hasta el momento.
Resumiendo, para localizar un robot es necesario calcular recursivamente la funcin
de densidad ( | ) en cada paso. Esto se hace en dos fases:
( | )( |1 )
( |1 )
27
CAPTULO 5
Distribucin normal.
En estadstica y probabilidad se llama distribucin normal o gaussiana, a las
distribuciones de probabilidad de variable continua que aparecen con ms frecuencia en los
fenmenos reales.
La grfica de su funcin de densidad (PDF) tiene forma de campana y es simtrica
respecto de un determinado parmetro estadstico. Esta curva se conoce como campana de
Gauss y es el grfico de una funcin gaussiana. Es habitual representar las funciones de
probabilidad con esta distribucin.
Una variable aleatoria continua , sigue una distribucin de probabilidad de media
y desviacin tpica , y se designa como (, ), si se cumplen las siguientes condiciones:
1. La variable puede tomar cualquier valor real: (, +).
2. La funcin de densidad, es la expresin, en trminos de ecuacin matemtica de la
campana de Gauss.
1 2
1
() =
2( )
2
Tipos de representacin
Dependiendo de la forma en que se represente la funcin de probabilidad, los
algoritmos existentes para la localizacin se pueden dividir en dos grupos: los que discretizan
el espacio de estados y los que lo consideran continuo.
CAPTULO 5
Filtros de Kalman
Un filtro de Kalman (KF) es una herramienta matemtica para estimar el estado de un
sistema dinmico ruidoso usando mediciones ruidosas, relacionadas con el estado.
Si tanto el modelo de movimiento, como el modelo de medida (mencionados en las
fases de la funcin de localizacin), y el estado inicial, se pueden representar como funciones
gaussianas, entonces la funcin de densidad ( | ) resultante seguir siendo una funcin
gaussiana.
Los KF pueden ser usados para propagar la creencia a travs del tiempo e incorporar
informacin de las medidas del entorno. Si el sistema dinmico se puede describir usando
ecuaciones lineales, se considera que el KF es un estimador ptimo.
Los KF han demostrado ser robustos y bastante precisos para el seguimiento de la
posicin del robot. Debido a la representacin usada, tambin se trata de un algoritmo muy
eficiente. Sin embargo, como desventaja, este algoritmo tiene una forma restrictiva de
representar el espacio de estados, ya que representa una distribucin unimodal, la cual no
permite tener varias posibles ubicaciones. Solo hay una posible mejor estimacin de la
posicin, que corresponde con la media de la funcin gaussiana.
Los KF slo se usan para resolver el problema del seguimiento de la localizacin.
En su forma ms pura, los filtros de Kalman no soportan correctamente los modelos
de movimiento y medida no lineales y no gaussianos. Son incapaces de recuperarse de los
fallos en el seguimiento y no pueden tratar con distribuciones multimodales.
Existen algunas modificaciones de este algoritmo, como los filtros de Kalman
extendidos (EKF), que corrigen algunas de las restricciones inherentes a la representacin
con distribuciones gaussianas.
Markov Grid
Si el espacio de estados es discreto y est compuesto por un nmero finito de estados,
la distribucin de probabilidad se puede representar como un conjunto de celdas de un
tamao fijo. El contenido de cada celda corresponde con la probabilidad que se asigne a esa
posicin determinada. Cuanto mayor sea la resolucin de estas celdas, ms preciso es este
mtodo de localizacin.
Esta representacin soporta distribuciones multimodales (puede estar en varios
estado).
Los mtodos ue usasn este tipo de representacin son muy potentes, pero sufren la
desventaja de un sobrecoste computacional y del ajuste previo del tamao de celda.
29
CAPTULO 5
CAPTULO 5
31
CAPTULO 5
2.4
SITUACIN
ACTUAL
DE
SEGUIMIENTO DE RUTAS.
APLICACIONES
MVILES
PARA
CAPTULO 5
33
CAPTULO 5
CAPTULO 5
CAPTULO 3. ALGORITMO
3.1
35
CAPTULO 5
3.1.1
3.1.2
Consideraciones previas.
La inicializacin solo se ejecuta una vez, al comienzo del algoritmo, mientras que
el resto de procesos son iterativos y corresponden al esquema de la localizacin de
prediccin-actualizacin.
CAPTULO 5
3.2
stepLength es el nombre de la variable que indica la longitud media del paso (en
metros).
3.2.1 Inicializacin:
Se inicializa la nube de partculas. Se crea una lista de N partculas (copias del punto
inicial), y a cada una de ellas, se les aplica ruido gaussiano:
-
Para la distancia que ha de moverse cada una, se crea un valor aleatorio resultante
de una distribucin gaussiana de = stepLength y = stepLength.
Para la orientacin que debe tener cada partcula, se toma como de , la orientacin
de la partcula inicial, y como = 4 radianes (o 45).
Se aplica la funcin de mover un punto (coordenada) dada una orientacin y una
distancia, a cada partcula.
Para concluir, se inicializa tambin el array de pesos, y a todas partculas se les asocia
la misma probabilidad (1/N).
37
CAPTULO 5
3.2.2
Movimiento de la nube:
= + ( = 0, = )
8
-
corta.
= + (0,
-
)
4
CAPTULO 5
Donde:
-
1
2
1 (,) 2
(
)
Esta funcin dar mayor peso a aquellas partculas ms cerca de la media . Tiene la
ventaja de tener en cuenta la precisin, al contrario de una funcin que midiese el peso en
funcin de la distancia inversa al punto .
El parmetro m es muy importante. Si la precisin del punto obtenido del GPS es un
valor grande, la distribucin normal quedar ms suavizada, por lo que asignara pesos ms
parecidos a todas las partculas.
Despus, se calcula la probabilidad de cada partcula dado su peso, normalizando estos
valores. Se almacena en el array de pesos.
39
CAPTULO 5
3.2.4
3.2.5
En esta fase, se calcula la media aritmtica de todos los valores de las partculas de la
nube (como han sido remuestreadas, es como hacer una media ponderada):
-
3.2.6
Se crea una nueva partcula cuyos parmetros son: la media de las latitudes, la
media de las longitudes y la media de las orientaciones.
Se calcula el ngulo entre la prticula principal y la resultante del clculo de las
medias. Esta es la orientacin del ltimo paso ( 1 ).
La partcula media se convierte en la nueva partcula principal = . Es la
devuelta por el algoritmo.
Hay dos funciones para aprender estos valores en la iteracin, basndose en los
parmetros y :
CAPTULO 5
= (1 ) + (1 )( )
41
CAPTULO 5
DESARROLLO DE LA APLICACIN
3.3
APLICACIN ANDROID:
La aplicacin diseada para la plataforma Android tiene como finalidad mostrar la ruta
que el usuario realiza en un trayecto a pie. Consta de una nica pantalla (o Activity en el
paradigma Android) que muestra un mapa. Los servicios de ubicacin deben ser activados
manualmente en Android.
3.3.1
Estructura
La estructura se explica con un diagrama de clases. La aplicacin est formada por una
sola Activity (la componente principal de la interfaz grfica de una aplicacin en Android)
y un conjunto de clases, que son creadas desde esta Activity.
CAPTULO 5
Clases:
43
CAPTULO 5
3.3.2
Funcionamiento
Para iniciar el registro de una ruta, debe pulsarse el botn START. En este punto, si
el dispositivo ha encontrado un proveedor de localizacin disponible y est recibiendo seal
GPS, se tomar el punto recibido en ese instante como el punto inicial, a partir del cual se
inicia el algoritmo PF. El atributo bearing del objeto Location recibido se tomar como la
orientacin del punto inicial.
Si no hay seal en el instante de inicio, el algoritmo tomar como punto inicial aquella
posicin que el usuario seleccione en el mapa, y como direccin, el ngulo formado por el
punto que se seleccione a continuacin del primero.
A cada paso detectado, se usar la ltima posicin recibida por el GPS para pasarla al
filtro de partculas. Si el estado del receptor GPS es no disponible, no se pasa ninguna
posicin al filtro, y realiza la iteracin sin actualizar la creencia.
La aplicacin tambin permite visualizar la ruta, ya que se van dibujando las
coordenadas a cada paso: las recibidas por el GPS, sin filtrar, son marcadas como una lnea
roja, mientras que las devueltas por el filtro de partculas, se indican con una lnea azul.
Cuando se quiere finalizar la ruta, se pulsa el botn FINISH, se omiten las nuevas
seales recibidas y se restablece la interfaz de usuario al estado de inicio.
CAPTULO 5
45
CAPTULO 5
CAPTULO 5
47
CAPTULO 5
3.4
VERSIN DEBUG
3.5
VERSIN DE ESCRITORIO:
Esta versin se trata simplemente te un proyecto JAVA que contiene las clases Particle
y ParticleFilter. Se usa para la prueba de trazas de coordenadas offline, es decir, se le pasa
un fichero de texto con coordenadas (como el generado en la versin debug), y devuelve
otro fichero con la salida del algoritmo. Se considera cada coordenada del fichero como un
paso del usuario (o un nmero de pasos determinado). El objetivo de este proyecto de
escritorio es el ajuste de parmetros.
Se ha hecho uso de una herramiento web [19] para el dibujo de rutas a mano con el fin
de simular un recorrido realista a pie. Esta herramienta tambin permite visualizar ficheros
de coordenadas en un mapa fsico.
CAPTULO 5
3.6
CAPTURAS DE LA APLICACIN
La aplicacin release simplemente traza la ruta recibida por el GPS (en rojo) y la
generada por el filtro de partculas (en azul), a cada paso detectado. Sus nicas opciones son
START y FINISH.
La aplicacin debug permite ver las mismas caractersticas que la versin release, pero
con algunas opciones adicionales como ver las partculas en cada iteracin (puntos verdes),
ajustar a mano la sensibilidad del podmetro (con unas teclas de subir y bajar valores). El
botn SETTINGS da acceso a la pantalla para introducir a mano los parmetros del
algoritmo.
49
CAPTULO 5
CAPTULO 5
En los siguientes experimentos, se han realizado una serie de pruebas para demostrar
la eficacia del algoritmo. Concretamente se han realizado tres estudios:
1. El ajuste de parmetros necesario para el correcto seguimiento de la ruta del
usuario.
2. La demostracin de seguimiento de una ruta real, es decir, que puede ser poco
precisa o presentar tramos con ausencia de seal.
3. El suavizado de la ruta generada.
4.1
Hay otros parmetros que afectan directamente a la calidad de los resultados y estn
relacionados con los mencionados anteriormente. Por ejemplo, el calibrado de la
sensibilidad del podmetro y la precisin de las seales recibidas. Sin embargo, no se ha
51
CAPTULO 5
considerado necesario dedicar unos apartados para estos ajustes, porque son especficos de
cada dispositivo mvil y depende de la calidad de sus sensores y de las prestaciones del
terminal. Se analizar su repercusin tras analizar los principales parmetros.
4.1.1
Para hallar el nmero de partculas necesario para que algoritmo funcione como se
espera, se han realizado varias pruebas sobre una misma ruta. Esta ruta de 45 puntos tiene
una forma especfica para comprobar que el nmero de partculas influye en la deteccin de
los cambios de direccin, porque en una ruta en lnea recta (con una precisin variable o
grande), a partir de un nmero pequeo de partculas (en torno a unas cincuenta), no tiene
problemas para ajustarse.
CAPTULO 5
El resto de parmetros (p, y ) se han fijado para adecuarse lo mejor posible a la ruta
seleccionada. La precisin de todos los puntos es de dos metros.
53
CAPTULO 5
NMERO DE
PARTCULAS (N)
Ejecucin 1
Ejecucin 2
25
5.509897708892822
5.024143695831299
75
2.8331820964813232 2.4974451065063477
100
2.442910671234131
3.3868768215179443
250
2.0933711528778076
2.297816753387451
400
1.7437471151351929 1.7034193277359009
500
1.6492313146591187 1.7081141471862793
1000
1.5682421922683716 1.6104127168655396
5000
1.400103211402893
1.3798444271087646
26
27
75
52
51
100
62
65
250
90
92
400
109
117
500
122
118
1000
165
170
5000
1264
1255
CAPTULO 5
Los tiempos de ejecucin son abordables. No hay que perder de vista que el
objetivo es que se procese una iteracin del algoritmo en cada paso. Es mejor
apostar por un nmero de partculas cercano a 400.
55
CAPTULO 5
CAPTULO 5
57
CAPTULO 5
Se han realizado pruebas con tres valores distintos para (0.1, 0.5 y 0.9):
CAPTULO 5
En mi opinin, el valor de no debe ser muy bajo (mayor que 0.5) porque tiene
que ser un poco robusto a los fallos del dispositivo, pero tambin debe ajustarse
a la ruta.
59
CAPTULO 5
Como se esperaba, los valores bajos de , reducen el error a la hora de adaptarse a los
cambios bruscos de direccin. Es recomendable adoptar un valor bajo, ya que, a la larga, un
valor alto producir ms error.
El parmetro se ve influido por N y p, porque son bastante determinantes a la hora
de detectar cambios de direccin.
Conclusiones:
CAPTULO 5
4.2
61
CAPTULO 5
4.2.2
Con una precisin pobre, los cambios de direccin son ms difciles de detectar
y solo se consiguen desviaciones leves.
CAPTULO 5
N = 500
p=1
= 0.3
= 0.1
Resultados:
63
CAPTULO 5
Como se puede valorar, desde una perspectiva subjetiva, los dos escenarios se
resuelven positivamente. En ambos, la trayectoria sigue la misma orientacin tras el corte de
la seal, y cuando sta se recupera, las trayectorias se corrigen rpidamente. Esta es una de
las caractersticas ms relevantes de los algoritmos de filtros de partculas.
4.3
Esta comprobado que los filtros de partculas aplicados al seguimiento de rutas, aparte
de solucionar posibles prdidas, tambin funcionan como un filtro suavizante (smoothing
filter). Esto es, cuando se presenta una ruta cuyos valores no siguen una trayectoria en lnea
recta, sino que son ruidosas o presentan aristas, el algoritmo es capaz de generar una
trayectoria que filtre los valores demasiado alejados de la media y adems tenga una forma
ms suavizada.
Esta situacin puede ocurrir en el caso en que la seal GPS recibida se poco imprecisa
y la ruta marque sea escalonada.
Para demostrar esta caracterstica, se ha diseado una ruta muy ruidosa, pero que sigue
una direccin principal. El objetivo del experimento es que ella direccin del seguimiento
corresponda con esta direccin principal y que salga una ruta lo ms suavizada posible.
CAPTULO 5
Conclusiones:
CAPTULO 5
CAPTULO 5
CAPTULO 5. CONCLUSIONES Y
PROPUESTAS
5.1
CONCLUSIONES
CAPTULO 5
5.2
Realizar ajustes a la aplicacin para que sea capaz de estimar otros valores,
como la velocidad, ritmo Tambin que permita el almacenamiento de rutas
en un formato legible por el resto de aplicaciones y herramientas GPS.
BIBLIOGRAFA
BIBLIOGRAFA
LIBROS Y ARTICULOS
[1]
Khandelwal, S., Sharma, S., & Kumar, P. Tracking Location in the absence of GPS using
smart phones.
[2]
Horita, Y., Sekine, M., Tamura, T., Kuwae, Y., Higashi, Y., & Fujimoto, T. (2008, June). New
attempt of proposing the pedometer algorithm in the elderly. In Medical Devices and
Biosensors, 2008. ISSS-MDBS 2008. 5th International Summer School and Symposium
on (pp. 111-112). IEEE.
[3]
Mladenov, M., & Mock, M. (2009, June). A step counter service for Java-enabled devices
using a built-in accelerometer. In Proceedings of the 1st international workshop on contextaware middleware and services: affiliated with the 4th international conference on
communication system software and middleware (COMSWARE 2009) (pp. 1-5). ACM.
[4]
[5]
Chon, J., & Cha, H. (2011). Lifemap: A smartphone-based context provider for locationbased services. IEEE Pervasive Computing, (2), 58-67.
[6]
Arulampalam, M. S., Maskell, S., Gordon, N., & Clapp, T. (2002). A tutorial on particle filters
for online nonlinear/non-Gaussian Bayesian tracking. Signal Processing, IEEE Transactions
on, 50(2), 174-188.
[7]
Huang, R., & Zruba, G. V. (2007). Location tracking in mobile ad hoc networks using particle
filters. Journal of Discrete Algorithms, 5(3), 455-470.
[8]
Roth, M., Gustafsson, F., & Orguner, U. (2012, July). On-road trajectory generation from
GPS data: A particle filtering/smoothing application. InInformation Fusion (FUSION), 2012
15th International Conference on (pp. 779-786). IEEE.
[9]
[10]
Zhu, X., Li, Q., & Chen, G. (2013, April). APT: Accurate outdoor pedestrian tracking with
smartphones. In INFOCOM, 2013 Proceedings IEEE (pp. 2508-2516). IEEE.
[11]
69
[12]
Ceranka, S., & Niedwiecki, M. (2003, July). Application of particle filtering in navigation
system for blind. In Signal Processing and Its Applications, 2003. Proceedings. Seventh
International Symposium on (Vol. 2, pp. 495-498). IEEE.
[13]
Marchetti, L., Grisetti, G., & Iocchi, L. (2007). A comparative analysis of particle filter based
localization methods. In RoboCup 2006: Robot Soccer World Cup X (pp. 442-449). Springer
Berlin Heidelberg.
[14]
Negenborn, R. (2003). Robot localization and Kalman filters (Doctoral dissertation, Utrecht
University).
[15]
Gustafsson, F., Gunnarsson, F., Bergman, N., Forssell, U., Jansson, J., Karlsson, R., &
Nordlund, P. J. (2002). Particle filters for positioning, navigation, and tracking. Signal
Processing, IEEE Transactions on, 50(2), 425-437
[16]
Dellaert, F., Fox, D., Burgard, W., & Thrun, S. (1999). Monte carlo localization for mobile
robots. In Robotics and Automation, 1999. Proceedings. 1999 IEEE International Conference
on (Vol. 2, pp. 1322-1328). IEEE
ENLACES INTERNET
[17]
[18]
[19]
[20]
[21]
[22]
BIBLIOGRAFA
https://developer.android.com/guide/topics/location/strategies.html
[23]
[24]
[25]
[26]
71
72
CONTENIDO DEL CD
CONTENIDO DEL CD
En el contenido del CD que acompaa a la memoria podemos encontrar los siguientes
recursos:
Memoria del trabajo en los formatos PDF, DOCX y DOC dentro del directorio
Memoria.
Cdigo fuente del trabajo dentro del directorio Cdigo fuente y fichero Leeme.txt
que explica el contenido de cada uno de los proyectos.
73
75