Evaluación de técnicas de localización para un sistema RFID
Abstract
La localización en interiores es objeto de muchos estudios en la actualidad, ya que cada vez se hace más necesaria la integración de tecnologías que lo implementen, tanto en el ámbito industrial como personal. Por ello, se presenta la tecnología RFID como posible solución a dicha problemática. Este proyecto se basa en el estudio de métodos de estimación de la localización que pueden ser integrados en sistemas RFID. De este modo, se realiza la implementación en Matlab de dichos métodos para el posterior estudio de los resultados obtenidos tras la realización de distintas simulaciones. El análisis muestra, principalmente, la precisión de la estimación frente al número de readers necesarios para obtenerla.
Full text
Equation Chapter 1 Section 1 Trabajo Fin de Grado Grado en Ingeniería de las Tecnologías de Telecomunicación Evaluación de técnicas de localización para un sistema RFID Dep. Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Autor: María Dolores Sancho Martín Tutor: Eva María Arias de Reyna Domínguez Sevilla, 2015 - 2016
iii Trabajo Fin de Grado Grado en Ingeniería de las Tecnologías de Telecomunicación Evaluación de técnicas de localización para un sistema RFID Autor: María Dolores Sancho Martín Tutor: Eva María Arias de Reyna Domínguez Profesor titular Dep. de Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2015-2016
v Agradecimientos En primer lugar, agradecer a mis padres, mi hermano, abuelos y toda mi familia el apoyo incondicional junto con las palabras de aliento necesarias para alcanzar las metas que me he propuesto a lo largo de mi vida. También a mi novio por haber sido y ser un gran pilar para llevar a cabo estos años de duro trabajo. A todos esos amigos con los que he compartido estos años de estudio y que han acabado formando parte de mi vida. Finalmente, a mi tutora Eva Mª Arias de Reyna Domínguez por su gran esfuerzo y ayuda para la realización de este proyecto.
vii Resumen La localización en interiores es objeto de muchos estudios en la actualidad, ya que cada vez se hace más necesaria la integración de tecnologías que lo implementen, tanto en el ámbito industrial como personal. Por ello, se presenta la tecnología RFID como posible solución a dicha problemática. Este proyecto se basa en el estudio de métodos de estimación de la localización que pueden ser integrados en sistemas RFID. De este modo, se realiza la implementación en Matlab de dichos métodos para el posterior estudio de los resultados obtenidos tras la realización de distintas simulaciones. El análisis muestra, principalmente, la precisión de la estimación frente al número de readers necesarios para obtenerla.
ix Abstract Nowadays, many studies are based on indoor location because there are a lot of factories which require the services that it offers. It will also be helpful for mobile phones. Therefore, RFID technology is presented as a possible solution to this problem. Positioning methods, which can be integrated into RFID systems, are studied in this project and they are implemented by Matlab. Finally, the analysis shows how the reliability of results is subjected to the number of readers.
1 INTRODUCCIÓN n la actualidad, las nuevas tecnologías se encuentran en constante avance y crecimiento. Un campo que se está explorando en profundidad hoy en día es el de la localización, el cual está tomando gran relevancia en el ámbito empresarial, como por ejemplo en la parte de producción, logística, industria farmacéutica, textil, etc. Aunque se esté desarrollando dentro de la alta tecnología, también es utilizado en el día a día de las personas, basta con mirar nuestros teléfonos móviles. Por ello, en una sociedad en la que todo está conectado, cada vez es más importante que un dispositivo, objeto, persona o animal pueda ser localizado en cualquier momento. Para tal fin se emplean los sistemas de localización en tiempo real (RTLS - Real Time Location System). Un tema que aún no está lo suficientemente explotado a nivel mundial es la localización en interiores, debido a que se están realizando estudios e implantaciones al respecto, ya que se desea una buena relación calidad-precio. Con calidad se refiere a la fiabilidad de las estimaciones que realice una tecnología, que sean lo más precisas posible, pero a un precio lo suficientemente asequible. La tecnología conocida mundialmente para la localización es GPS, sin embargo, dentro de edificios no ofrece resultados suficientemente precisos. Por ello, se encuentran en estudio otras tecnologías para dicho propósito, como es RFID. La identificación por radiofrecuencia (RFID: Radio Frequency IDentification) es una forma de comunicación inalámbrica que utiliza ondas de radio para identificar y rastrear objetos. El sistema consta de readers (o lectores) y tags (etiquetas) que se comunican, realizando un traspaso de información entre ellos. Las tags son muy pequeñas y requieren de muy poca potencia para funcionar, por lo que no necesitan baterías para almacenar datos o para realizar el intercambio de información con los lectores. Esto hace que sea fácil y barato aplicar etiquetas a todo aquello que se desee identificar o rastrear [1]. Un ejemplo del aumento del uso de dicha tecnología puede verse en la Figura [1-1], donde se puede ver el aumento exponencial de las ventas de equipos RFID. Además, este aumento es inversamente proporcional al coste de los mismos, como se puede apreciar en la Figura [1-2]. Estas gráficas muestran la gran aceptación que ha tenido esta tecnología en muy pocos años, por lo que dan una visión de futuro próspero para la tecnología RFID en los próximos años. Por todo ello y por más razones que se explicarán a lo largo del proyecto, se ha decidido realizar este proyecto de evaluación de técnicas de estimación en base a la tecnología RFID. E Para ver claro, basta con cambiar la dirección de la mirada. - Antoine de Saint-Exupery -
Introducción 2 2 Figura 1-1. Inversión en tecnología RFID. Figura 1-2. Coste etiquetas RFID. 1.1 Objetivo El objetivo de este proyecto es el estudio de diferentes métodos de estimación de la localización, mostrando la precisión ofrecida en las estimaciones de la tag para cada uno de ellos y ofrecer la mejor alternativa de predisposición de readers dentro de una habitación, buscando el equilibrio entre precisión y coste.
3 1.2 Estructura del proyecto Se comenzará realizando un breve y simple resumen de las tecnologías que se emplean para la localización, así como sus ventajas e inconvenientes, dejando para el final la tecnología objetivo de este proyecto que es RFID. Se continuará con la descripción de los componentes en los que se basa el sistema RFID y el funcionamiento de los mismos. Tras esto, se explicarán todos los pasos que se han seguido para el diseño e implementación del modelo en lenguaje M para Matlab y se finalizará con un análisis de los resultados obtenidos.
Introducción 4 4
5 2 ANÁLISIS TECNOLOGÍAS DE LOCALIZACIÓN n este capítulo se realiza un análisis de las distintas tecnologías que se emplean en la localización en interiores. La investigación destinada a dicha localización se origina tras la comprobación de la inexactitud de los sistemas GPS en el posicionamiento de un dispositivo que se encuentre fuera de la LoS (Line of Sight), es decir, al encontrarse en interiores bajo techo, la señal GPS no llega correctamente como para ofrecer una localización fiable. También tuvo lugar debido a que el sistema nombrado puede tener un error de varios metros, por lo que no cubre la necesidad de precisión que requiere la localización en interiores. Por ello, se analizarán las ventajas y desventajas de distintas tecnologías para la implementación de las mismas en RTLS (Real Time Location Systems) en interiores. 2.1 GPS La localización mediante GPS es la tecnología por excelencia para dicha tarea en nuestros días. Los localizadores por GPS reciben el soporte de una constelación de hasta 24 satélites, que orbitan por todo el globo terrestre enviando sus señales a todo aquel que lo necesite. Un receptor de GPS que quiere localizarse dentro del globo terráqueo localiza al menos a cuatro satélites (cuanto mayor sea el número de satélites encontrados, mejor será la estimación de la posición) y de cada uno de ellos obtiene la posición del satélite emisor y el tiempo de envío de cada muestra recibida. Con estos datos, el localizador GPS calcula por triangulación su posición absoluta dentro de la Tierra (latitud, longitud y altitud) gracias a que los satélites emiten en el mismo preciso momento su señal, pero ésta le llega retardada al receptor por razones obvias de distancia [2]. La constelación de satélites de GPS tendría una apariencia como la mostrada en la Figura [2-1]. Este sistema tiene una precisión que puede llegar a ser mejor de 10 metros si se toman en consideración más de cuatro satélites, lo cual es bastante interesante para localizar en el mundo a nivel global, pero no tiene mucho sentido usarlo para localización dentro de un área pequeña, como puede ser un edificio. E La tecnología se alimenta a sí misma. La tecnología hace posible más tecnología. - Alvin Toffler -
Análisis tecnologías de localización 6 6 Figura 2-1. Constelación de satélites GPS. Otro inconveniente adicional es que al necesitar línea de visión directa (LoS), hay veces que no se encuentran suficientes satélites al alcance para permitir una localización correcta. Además, las señales del GPS viajan muchos kilómetros y son bastante tenues, por lo que un receptor GPS en el interior de un edificio lo tendrá muy complicado para encontrar señales procedentes de los satélites y más aún para conseguir que estas señales le sirvan para localizarse. No obstante, el GPS, como su nombre indica, es un sistema de posicionamiento global y no está desarrollado para permitir la localización a nivel local. Otra última diferencia básica entre lo que ofrece el GPS y lo que debería ser un sistema de localización en interiores es que, en un edificio, la referencia debe ser local, ya que la referencia absoluta que emplea GPS no ofrece unos datos fácilmente legibles como es la altura respecto al suelo, ya que sería más útil, si estamos en un edificio de varias plantas, situarnos en función de la planta en la que estemos. 2.2 GSM Otra alternativa posible, que además no necesitaría la implantación de hardware adicional, sería la red de telefonía móvil GSM. Existen operadoras de telefonía móvil que ofrecen la opción de localización vía móvil a sus abonados. Sin embargo, la falta de precisión sitúa a esta tecnología en clara desventaja respecto de otras, ya que los sistemas de localización de este tipo no pueden dar precisiones mayores de 50 metros, por lo que no son funcionales en interiores. Esto es debido a que la localización con el uso de la red de telefonía móvil se basa en la detección de la célula a la que está conectada el teléfono móvil. Un esquema aproximado de dicho funcionamiento es el mostrado en la Figura [2-2]. En zonas urbanas la precisión es de decenas de metros, sin embargo, en las zonas rurales donde se necesitan menos células para dar servicio a menor población, esta precisión es mucho menor. Por tanto, ésta es una clara desventaja de la tecnología GSM que hace totalmente inapropiado su uso para la localización en interiores.
7 Figura 2-2. Funcionamiento localización mediante GSM. 2.3 Infrarrojos La localización por infrarrojos se puede desechar en un primer momento para la localización en interiores por ser de corto alcance (unos 2 metros) y porque, además, se requieren enlaces LoS. Por su corto alcance habría que incluir una cantidad enorme de emisores de infrarrojos, y aun así serían imposibles de detectar ciertas localizaciones por el problema de LoS. Existe un proyecto llamado WIPS (Wireless Indoor Positioning System) que se basa en la existencia de beacons (mensajes cortos para indicar la situación) emitidos vía infrarrojos y SmartBadges que llevan los usuarios del sistema de posicionamiento para localizarse tanto de forma pública como de forma anónima [2]. 2.4 Bluetooth En este caso la localización se basa en la colocación de puntos de posicionamiento bluetooth, pero es el terminal móvil el que calcula la posición mediante triangulación. El terminal móvil ha de estar conectado a la red wifi para volcar la información y realizar los cómputos en un ordenador para tal fin. Este sistema permite obtener una gran precisión en el cálculo de la posición y su despliegue es rápido, ya que la instalación de las balizas es muy sencilla. Sin embargo, en comparación con la tecnología que empleamos en este proyecto sigue siendo más cara y el dispositivo a localizar debe tener una batería y ser inteligente, como un teléfono móvil, por lo que no se podría reducir el tamaño de este dispositivo en gran medida. 2.5 Wi-Fi Las soluciones basadas en esta tecnología calculan el posicionamiento mediante distintos métodos. Por ejemplo, mediante triangulación. Para ello son necesarios tres o más puntos de acceso que midan la intensidad de la señal WiFi que emite el terminal móvil, y así poder calcular su posición. El terminal necesita tener el WiFi encendido, pero no hace falta estar conectado a ninguna red. Tampoco es necesario tener instalada en el terminal ninguna app. Otra técnica es “fingerprinting”, donde se plantea hacer mapas de medidas de potencia. Estos mapas se almacenan y cuando el target hace sus medidas de potencia, se comparan con los mapas. Aunque no es la solución que ofrece mayor precisión, permite reaprovechar la infraestructura WiFi ya existente en los edificios y en muchos dispositivos. Sin embargo, como ocurría con los dispositivos bluetooth, el dispositivo a localizar debe recibir la señal, procesarla y retransmitirla haciendo uso de su batería.
Análisis tecnologías de localización 8 8 2.6 Wi-Max La tecnología Wi-Max sigue el estándar 802.16 [3]. Está pensada para la intercomunicación de áreas muy extensas, de hasta 48 kilómetros de radio, y puede llegar a transmitir hasta 70Mbps. Debido al gran alcance no se puede pensar en establecer un sistema de localización en interiores usando esta tecnología. 2.7 Zig-Bee Esta tecnología es una buena opción para la localización en interiores, siendo similar a Wi-Fi, y su viabilidad ya ha sido estudiada en algunos trabajos como [4]. Sin embargo, su alcance es más reducido que en Wi-Fi y la señal fluctúa de igual manera cuando cambian las condiciones del entorno, o con el movimiento de personas. La ventaja principal de esta tecnología es su bajo coste y baja potencia de emisión, pero su bajo ancho de banda hace que su utilidad sea reducida. 2.8 UWB (Ultra Wideband) La tecnología UWB parece una buena candidata para la localización en interiores. En estos momentos se encuentra en estudio de aplicabilidad y de explotación. La precisión alcanzada con este sistema es de un metro con lo que quedan patentes sus posibilidades en este ámbito. Su ventaja principal es su robustez ante obstáculos y cambios del entorno (puertas, paredes, presencia o movimientos de personas, etc.). 2.9 UltraSound Son sistemas basados en la utilización de nodos emisores y receptores de ultrasonidos que utilizan principalmente el tiempo de vuelo entre ondas ultrasónicas como métrica de localización para determinar la localización del usuario. Los ultrasonidos se han convertido en una alternativa dentro del mercado RTLS debido a que proporcionan una alta precisión, pero debido a su baja cobertura y a la necesidad de desarrollar una infraestructura propia con un elevado número de nodos fijos en el entorno, puesto que es necesario garantizar una línea de visión directa entre los dispositivos, sus costes resultan muy elevados. 2.10 RFID (Radio Frequency Identification) Este sistema basa su funcionamiento en la comunicación mediante radiofrecuencia entre dispositivos emisores/receptores (readers) y etiquetas (tags), donde se produce el almacenamiento y posterior recuperación de datos con el propósito de transmitir la identidad de un objeto. Las etiquetas RFID son unos dispositivos pequeños, similares a una pegatina, que pueden ser adheridas o incorporadas a un producto, animal o persona. Contienen antenas para permitirles recibir y responder a peticiones por radiofrecuencia desde un emisor-receptor RFID. Las etiquetas pasivas no necesitan alimentación eléctrica interna, mientras que las activas sí lo requieren.
9 Un ejemplo de un sistema de localización que usa RFID es Cricket, un sistema ideado por ingenieros del MIT (Massachusetts Institute of Technology), cuya precisión es 2 centímetros y ha sido empleado en otros proyectos como seguimiento de objetos, control de robots, etc. [5] Una de las ventajas que presenta esta tecnología es que no necesita línea de visión directa con la etiqueta (al contrario que los infrarrojos y los ultrasonidos). Otra ventaja es que dentro de un emplazamiento se empleará el mismo número de readers para la localización tanto de una como de cientos de tags, suponiendo esto un ahorro respecto a otros sistemas como UWB, ya que el coste de una etiqueta pasiva ronda pocos céntimos de euro. El mayor coste del despliegue reside en los readers y, como se ha comentado, no es necesario en el empleo de gran número de estos. Como contrapartida la cobertura del sistema es limitada, pero esto se puede solucionar utilizando etiquetas activas en vez de pasivas. 2.11 Conclusiones análisis de tecnologías Así que se toma la tecnología RFID como una buena opción para la implementación de un sistema de localización en interiores ya que cubre los requisitos que se desean, tanto en fiabilidad como en coste. Para poder verlo de una manera más gráfica, en comparativa con otros métodos tradicionales, la tecnología RFID aporta las ventajas mostradas en la Figura [2-3]. Figura 2-3. Ventajas Tecnología RFID.
Descripción del sistema 16 16 3.3.2 Recepción mensaje de petición de localización en el reader El propósito de los mensajes emitidos es que lleguen hasta una o varias tags, éstas al verse alteradas por la señal electromagnética, reciben y procesan el mensaje incluyendo en el mismo la información propia (la que está contenida en cada tag). Una vez hecho esto, retransmiten la señal regresando a cada reader un porcentaje de los mensajes que había emitido. Este porcentaje variará en función de las condiciones que se estén dando en dicho momento. Al tener una tag y un reader, la gran variable será la distancia entre los mismo. Si la tag está cerca del reader (el cual tiene una posición fija), el porcentaje de mensajes recibidos de vuelta será alto. En cambio, si la tag se encuentra a gran distancia del reader, puede ser que este porcentaje sea bajo o inclusive cero si la señal no tiene la potencia suficiente para dicho alcance. Como comentario, recordar que la recepción del mensaje emitido desde la tag se recibe a través de la misma antena que fue emitido ya que las antenas empleadas son dispositivos transpondedores (capaces tanto de emitir como de recibir), por lo cual el cálculo de la distancia es sencillo. 3.3.3 Procesamiento de la información Una vez se haya recopilado toda la información posible al haber emitido y recibido los mensajes, es decir, el porcentaje de recepción de los mensajes de respuesta de cada reader que es lo que nos interesa, y teniendo las coordenadas que ocupa cada reader dentro del mapa, se introduce en la unidad de control. Este se encarga de realizar una estimación de la posición de la tag en función de estos dos parámetros: posiciones de los readers y número de respuestas recibidas desde la tag, haciendo uso de varios métodos de estimación de la localización.
17 4 DISEÑO DEL SISTEMA ste capítulo se centra, una vez descrito en qué consiste el sistema de localización RFID, en cómo se ha llevado a cabo el desarrollo del entorno de trabajo y las distintas metodologías de estimación de la situación de una tag respecto a un conjunto de readers. 4.1 Puesta a punto El objetivo de esta sección es obtener todos los parámetros necesarios para el desarrollo de los distintos métodos de aproximación a la localización. Para ello, se emplea como modelo el perteneciente al experimento [6] llevado a cabo en la Universidad de Stony Brook en Nueva York, el cual define un ámbito óptimo experimental donde se podrán realizar las simulaciones. Así que se ha adaptado este entorno a la programación en la que se basa Matlab. El principal parámetro a calcular es el número de queries que llegan de vuelta hasta el reader que las había transmitido, tras haber llegado hasta una tag, ser procesada por esta y retransmitida. A este número le denominaremos “n” y será como máximo el número total de solicitudes de localización que el reader ha emitido en un primer momento, el cual será “N”. Como se puede entender, “n” puede hacerse igual a cero, esto ocurre cuando la distancia existente entre el reader y la tag es mayor del alcance que tienen las antenas propias del reader. Por lo tanto, desde un principio se ha de tener en cuenta que la distancia es el factor más importante para realizar el cálculo de “n”. Por otro lado, en este apartado también se explicará cómo se ha realizado la distribución de los readers a lo largo del mapa. Estas localizaciones serán conocidas y controladas dentro del diseño del sistema ya que, gracias a estas y a las “n” propias de cada reader para una prueba de estimación de la posición, serán las que nos permitan calcular dicha aproximación de posición de la tag. 4.1.1 Cálculo de parámetro “n” para un reader A continuación, se explican los pasos que se han seguido para poder realizar el cómputo de una variable “n” específicamente perteneciente a un reader tras la realización de una simulación. Como ya se ha escrito anteriormente, esta variable está ligada fuertemente a la distancia existente entre un reader y una tag, por lo tanto, ha de tenerse presente para los próximos cálculos. E Los que se enamoran de la práctica sin la teoría son como los pilotos sin timón ni brújula, que nunca podrán saber a dónde van. - Leonardo Da Vinci -
Diseño del sistema 18 18 A modo de introducción, los pasos generales seguidos en esta sección son los siguientes: 1. Para cada pareja tag-reader, se calcula la distancia “d” existente entre ellos. 2. A partir de “d” se calcula la esperanza y varianza de la probabilidad de detección según el modelo seguido en el estudio [6]. 3. Con la esperanza y la varianza, se obtienen los valores numéricos de “” y “”, los cuales dependen de “d”. 4. Además, se halla la probabilidad de detección de una tag por parte de un reader que se encuentra a una distancia “d”, “p(d)”. 5. Así pues, gracias a “p(d)”, se genera el valor de “n” como una realización de una variable aleatoria. 4.1.1.1 Media o esperanza de probabilidad de detección En primer lugar, siguiendo el método propuesto en el experimento [6], para el modelado de la esperanza de la probabilidad de detección de una tag a una distancia “d” del reader se asume que tiene la forma: ( ) = 1 1 + ( ) (4–1) En el modelo [6] se ha escogido esta ecuación porque tiene carácter decreciente cuanto mayor sea “d”. La probabilidad “p(d)” se asume como una variable aleatoria, cuya distribución sigue la distribución Beta. Como se puede observar, esta ecuación depende de tres parámetros que se han obtenido gracias a los experimentos llevados a cabo en Stony Brook [6]: : es un parámetro que se ha tomado del estudio [6] como =0.8471 para modelar las observaciones tomando las distancias en la Figura [4-1]. Además, ha de cumplirse que 0. : es la distancia desde el reader a la que la probabilidad de detección es igual a 1/2. Este parámetro ha resultado de [6] como =5.2972 al tomar las distancias en la Figura [4-1]. También tiene que cumplirse que 0. : es la distancia existente entre un reader y una tag. Esta será una variable se introducirá a modo de parámetro cada vez que se desee obtener la esperanza. Como se ha nombrado anteriormente para la estimación de parámetros, se comienza el experimento situando una tag a ciertas distancias del reader en cuestión. Para verlas de forma gráfica se ha realizado el código que se encuentra en “Anexos –Puesta a punto – Cálculo de “n” – Media probabilidad detección – regla_inic_dist “. En la Figura [4-1] se ve el resultado gráfico que da regla_inic_dist. Figura 4-1. Distancias experimentales entre tag y reader. En el estudio de [6] se presenta la gráfica de la Figura [4-3], donde se pueden ver, en una nube de puntos, los valores experimentales tomados para realizar el modelo. Además, se ha realizado el polinomio de ajuste de sexto grados de dichos puntos. Para ilustrar que la Ecuación (4-1) se ha implementado correctamente en Matlab, se obtiene la esperanza tomando las mismas distancias de la Figura [4-1].
19 Esto puede verse en la Figura [4-2], la cual se asemeja considerablemente a la presentada por el modelo [6]. El código implementado para calcular la esperanza puede consultarse en “Anexos –Puesta a punto – Cálculo de “n” – Media probabilidad detección – mean_p”. Figura 4-2. Esperanza obtenida para diferentes distancias entre tag y reader, mean_p. Figura 4-3. Exponencial de ajuste de los valores experimentales obtenidos. [6]
Diseño del sistema 20 20 4.1.1.2 Varianza En este apartado se quiere modelar la varianza de los valores de “p(d)” en función de la distancia. Para ello, se toman los valores experimentales del estudio [6] y se realiza el ajuste de los mismos con un polinomio. En la Figura [4-5] se observan los valores experimentales aportados por el documento [6] y el polinomio de sexto grado que los ajusta. En este proyecto se ha realizado la implementación de la varianza en Matlab y se puede consultar en “Anexos –Puesta a punto – Cálculo de “n” – Varianza – var_p”. Gracias a esta función se muestra por pantalla la Figura [4-4], la cual es muy semejante a la Figura [4-5] aportada por [6]. Figura 4-4. Valores varianza tomados de [6] y polinomio de ajuste de sexto grado, var_p. Figura 4-5. Valores promediados de la varianza y polinomio de ajuste de sexto grado. [6]
21 Por otra parte, se ha de tener en cuenta que las distancias entre tag y reader, tomadas para la obtención de la esperanza y la varianza en el esperimento [6], se encuentran dentro del rango 1.2 metros < “d” < 7.6 metros. Esto quiere decir que el modelo [6] no está diseñado para trabajar por debajo o por encima de este rango, por lo que presenta problemas de cálculos para esas distancias. El principal problema reside en el cálculo de la varianza, ya que el polinomio de sexto grado provoca que la varianza sea negativa fuera de estos rangos, lo cual no puede darse. Así que, para dar solución a esta problemática y hacer el código más robusto, se ha procedido a realizar dos truncamientos en la función de la varianza: Para “d” < 1.2 metros: la varianza se iguala a cero, asumiendo que no habrá equivocación en los datos al estar a tan corta distancia el reader de una tag. Para “d” > 7.6 metros: se toma la varianza con el valor cero por el hecho de que están tan alejados que ni si quiera se lee ningún query de vuelta, al no tener la potencia suficiente la señal para realizar el camino de ida y vuelta entre el reader y la tag. Concluyendo, la función var_p recibe como parámetro de entrada la distancia existente entre reader y tag “d” y devuelve como salida la varianza de la probabilidad de detección para dicha distancia, “V”. 4.1.1.3 Parámetros y A continuación, se desarrolla el procedimiento llevado a cabo para calcular los parámetros alpha y beta, los cuales son necesarios en la obtención de la probabilidad de detección “p(d)” de la siguiente sección. Se ha de tener en cuenta que p(d) es una variable aleatoria que sigue la distribución Beta. Anteriormente se ha asumido que la esperanza de dicha variable era (4-1). Además, dado que la esperanza de una variable aleatoria Beta viene dada por: ( ) = ( ) ( ) + ( ) (4–2) Se puede decir que: ( ( ) ) = 1 1 + ( ) = ( ) ( ) + ( ) (4–3) Esta información se obtiene de [6]. Para continuar, se ha de tener también en cuenta la definición de la varianza de una variable X que sigue una distribución Beta, la cual se obtiene de [7]: [ ] = ( + + 1 ) ( + ) (4–4) Entonces, haciendo tres cambios de variables tales como: X = p(d), a = α, b = , se obtienen para este caso específico: ( ( ) ) = ( ) ( ) ( ( ) + ( ) + 1 ) ( ( ) + ( ) ) (4–5) Ahora se despejan las variables () y () de las ecuaciones (4-2) y (4-5). Para mejor visualización de los cálculos, no se ha especificado la dependencia de “α” y “β” con “d”. = α α + β → α + β = α → β = α − α = α ( 1 − ) → β = α ( 1 − ) (4–6)
Diseño del sistema 22 22 = αβ (α+β+1)(α+β)= α α ( 1 − ) α+α(1−) +1α+α(1−) =α1− α+α(1−) +1α+2α(1−) +α(1−) =α1− α+ α =α1− α+α =α1− αα+ =(1−) α+→α+=−→ → α = 2 − 3 − (4–7) Una vez obtenidos estos resultados de manera algebraica, se pasa a la implementación de los mismos a código Matlab. A esta función se le denomina “parametros”, la cual se puede consultar en “Anexos – Puesta a punto – Cálculo de “n” – Alpha y beta – parametros”, que recibe como entrada la esperanza y varianza de “p(d)”. Como "" y "" ya se han obtenido a partir de un valor de distancia “d”, se están obteniendo los parámetros de salida alpha (“α”) y beta (“β”) en función de esta misma. 4.1.1.4 Probabilidad de detección de un reader Ahora se va a obtener la probabilidad “p(d)” tan nombrada anteriormente que permitirá la obtención de “n”. Como se sabe que la distribución de dicha variable sigue una distribución beta [6], lo hacemos de la manera que se presenta en la función “distbeta” (“Anexos –Puesta a punto – Cálculo de “n” – Probabilidad detección”). A esta función se le introduce como entrada la distancia entre el reader y la tag, “d”, y como salida la probabilidad “p(d)” que se le nombra como “prob”. Además, ofrece como salida otros parámetros que les son necesarios a funciones que llama a esta, como son “alpha”, “beta” y “d”. Para asegurar que “prob” siempre obtiene un valor coherente, cuando “d” se encuentre fuera de los límites tomados por el experimento [6], se han puesto dos condiciones en el código al respecto: Si “d” < 1.2 metros: “prob” = 1 ya que la tag y el reader están muy juntos y se asegura que existirá detección de la tag a dicha distancia Si “d” > 7.6 metros: “prob” = 0 ya que la tag y el reader están tan alejados que no se podrá detectar. 4.1.1.5 Parámetro “n” Finalmente se calcula “n”, que es el propósito de esta sección y se realiza mediante la función “n_acks”. Según [6], este parámetro está modelado por una distribución binomial. Así pues, “n” se calcula mediante la función “n_acks”, que se puede consultar en “Anexos –Puesta a punto – Cálculo de “n” – Parámetro “n” – n_acks. Gracias a la “p(d)” obtenida anteriormente y al número total de peticiones que han sido mandadas por el reader (“number_msgs_Tx” en el código o “N” como se toma en este proyecto)”, es posible calcular “n” simplemente implementando la función de Matlab binornd.
23 4.1.2 Distribución de los readers en el mapa En esta sección se lleva a cabo la asignación de un “n” a cada reader para una tag en concreto. Los lectores se encuentran distribuidos en un mapa al que se le han asignado unas dimensiones específicas (“x” e “y”). Para ello, se ha creado la función “mapa_rdrs_acks” (“Anexos –Puesta a punto – Distribución readers en el mapa” – mapa_rdrs_acks”), a la que se le pasa como parámetros de entrada las dimensiones “x” e “y”, “dist” que es la distancia de separación entre readers, “number_msgs_Tx” y las coordenadas de una tag genérica (“xtag”,” ytag”). Esta función emite como salida dos parámetros: mapa_acks: matriz que tiene como tamaño las dimensiones que se le ha asignado al mapa y donde se ha sustituido, en cada coordenada donde se encontraría un reader, el valor “n” correspondiente a ese reader para la posición dada de una tag. mapa_lectores: es similar a la anterior conceptualmente, pero esta matriz tiene menor dimensión al incluir únicamente los valores “n” en cada reader, es decir, sólo muestra los readers, siendo sus dimensiones “x/dist” y “y/dist”. Esta matriz es para poder visualizar el número de “n” que recibe cada reader por el WorkSpace. Como ejemplo para su entendimiento se expone el siguiente: Ejemplo 4–1. Para un mapa de dimensiones 10x10 metros y una separación entre readers de 5 metros, donde se sitúa una tag en la posición (3,7) metros y los readers emiten 100 solicitudes de localización lo que se puede ver en el WorkSpace es lo siguiente Mapa representante del número de acks que recibe cada reader: mapa_lectores = 66 91 0 87 98 7 0 1 0 4.2 Métodos de estimación empleados Las metodologías que se han seguido para la estimación de la posición de una tag dentro del mapa tienen, como principales parámetros, la distribución de readers dentro del propio mapa y el número de queries que ha recibido cada uno, “n”. Se emplean cuatro métodos de estimación distintos, como son el “método de asociación”, “método del centroide”, “método del centroide ponderado” y “aproximación al método de máxima verosimilitud”. Se comienza explicando el método más simple, a nivel conceptual y de desarrollo, para terminar con el que ofrece mayor complejidad. 4.2.1 Método de asociación Este método es el más básico a la hora de estimar la posición de una tag ya que basa su funcionamiento en asociar como localización de la tag las coordenadas del reader que tenga el mayor número de respuestas a sus peticiones, “n”. Con esto se presupone que ese sería el reader más cercano a la tag y se asignan las coordenadas del mismo como las coordenadas de la tag estimada.
Diseño del sistema 24 24 4.2.1.1 Estimación de la posición de la tag La implementación de este método de estimación de una tag se puede ver en “Anexos – Métodos de estimación – Método de asociación – Estimación posición de la tag – aproxtag_1metodo”. La función “aproxtag_1metodo” recibe como entrada únicamente el parámetro “mapa_acks”; gracias a este, se computa el índice o coordenadas del mapa donde se encuentra el mayor “n”, así que la tag estimada se sitúa en las mismas coordenadas de dicho reader. Como salida, la función “aproxtag_1metodo” ofrece las coordenadas de la tag estimada (“xaprox_tag”,”yaprox_tag”). También ofece a modo de traspaso para la función que llama a ésta, las coordenadas de los readers que reciben queries (“x_rdrsRx”,” y_rdrsRx”), es decir, donde “n” > 0, resultando “x_rdrsRx” y “y_rdrsRx” vectores (ya que no interesa que sólo lea un reader, sino varios para poder estimar la posición correctamente). Para hacer el código más robusto y coherente, se ha tenido en cuenta la situación de que el máximo “n” se de en varios readers a la vez, lo cual ocasionaría un problema de cómputo. Para solventar dicha problemática, pero haciendo que la estimación sea lo más simple posible, para tal ocasión se toma el primer reader que se encuentra con la máxima “n”, es decir, el que se encuentra más próximo a la posición (0,0) metros. 4.2.1.2 Representación gráfica Mediante la función “primer_metodo” lo que se realiza básicamente es la representación gráfica del resultado obtenido en “aproxtag_1metodo” y devuelve como salida el error cuadrático (square error - se) cometido en la estimación de la posición de la tag respecto de la posición de la tag real “se1metodo”. Esta función se puede consultar en “Anexos – Métodos de estimación – Método de asociación – Representación gráfica – primer_metodo”. Para ello, se dibujan en un mapa o grid con las dimensiones que tiene la variable “mapa_acks”: Readers: la posición de todos los readers desplegados en el mapa se representan mediante círculos verdes. Readers que han recibido ack/s: todos aquellos readers en los que “n” > 0 se identifican en el mapa dibujando una cruz superpuesta a los círculos de los readers. Tag real: la posición de la tag real se representa mediante un cuadrado, así ofrecerá de una forma visual al lector el error de la estimación de la tag que se ha producido al poder visualizar ambas. Tag estimada: se representa mediante un asterisco la posición de la tag que se ha estimado en el método. Para poder realizar estos cálculos, la función “primer_metodo” requiere como parámetros de entrada el mapa donde se distribuyen los “n” (“mapa_acks”), “dist_rdrs” que es la distancia entre readers y las coordenadas de la tag real (“xtag_real”,”ytag_real”) para poder realizar el error cuadrático. A continuación, se muestra un ejemplo [4-2] para mejor visualización de lo descrito. Ejemplo 4–2. Para un mapa de dimensiones 10x10 metros y una separación entre readers de 5 metros, donde se sitúa una tag en la posición (3,7) metros y los readers emiten 100 queries, la estimación mediante asociación resulta como en la Figura [4-6], que sigue el mapa_acks del Ejemplo [4-1]
25 Figura 4-6. Ejemplo método de asociación. 4.2.2 Método del centroide El segundo método que tratamos es algo más complejo que el anterior, pero se puede considerar que sus estimaciones son más exactas. Se basa en tener en cuenta sólo los readers que han recibido alguna petición de vuelta desde la tag, es decir, todos aquellos en los que “n” > 0 y se hace la media de todas las posiciones de los mismos, situando la tag estimada justo en el centro de estos lectores. 4.2.2.1 Estimación de la posición de la tag Considerando que a la posición de una tag estimada se le denota con el vector =[ ], dentro de un mapa constituido por coordenadas x e y, la fórmula de estimación de la posición de la tag [8] es: = 1 (4–8) Donde “L” es el número de readers que han recibido acks y el vector “” constituye las coordenadas correspondientes a cada reader, =[ ]. Se denota como “j” a un reader en concreto. La implementación del mismo se puede ver en “Anexos – Métodos de estimación – Método del centroide – Estimación posición de la tag – aproxtag_2metodo”. La función “aproxtag_2metodo” recibe como entrada el parámetro “mapa_acks”; gracias a este, se extrae las coordenadas de los readers que leen los acks o respuestas, situando la tag estimada justo en el centro de ellos siguiendo la fórmula (4-8). Como salida, la función “aproxtag_2metodo” ofrece las coordenadas de la tag estimada (“xaprox_tag”,”yaprox_tag”) y las coordenadas de los readers que reciben queries (“x_rdrsRx”,”y_rdrsRx”), es decir, donde “n” > 0.
Diseño del sistema 32 32 4.2.5 Comparativa métodos de estimación Una vez expuestos los cuatro métodos de estimación, se procede a agruparlos para poder tener una mejor visualización de los mismos y poder hacer una comparativa rápida de los resultados que han dado cada uno. 4.2.5.1 Representación gráfica Como se puede ver en “Anexos – Métodos de estimación – Representación todos los métodos de estimación de la posición – metodos”, “métodos” es la función encargada de llamar a los cuatro métodos de estimación de la localización, proporcionándoles los parámetros que necesiten y ofrecerles un título dentro de una misma figura. Esto es posible porque, dentro de cada método, antes de la representación de cada uno se ha añadido el comando subplot, asignándole así a cada uno una posición en la figura. Para mejor entendimiento, se expone el ejemplo (4-7). En cuanto a los parámetros de salida, esta función devuelve todos los errores cuadráticos (square errors - se) proporcionados por los distintos métodos (“se1metodo”, “se2metodo”, “se3metodo” y “se4metodo”), ya que se hará uso de ellos posteriormente. Además, ofrece como salida la matriz de estimación de máxima verosimilitud para su representación en otra función superior a ésta. Ejemplo 4–7. Para un mapa de dimensiones 10x10 metros y una separación entre readers de 5 metros, donde se sitúa una tag en la posición (3,7) metros, los readers emiten 100 queries y se exige una precisión de 0.1metros, la estimación de cada método resulta como en la Figura [4-11], que sigue el mapa_acks del Ejemplo [4-1]. Figura 4-11. Comparativa visual métodos de estimación.
33 4.3 Variación de condiciones de entorno y errores de estimación Para poder valorar realmente la fiabilidad de los métodos de estimación empleados, se someten a varias pruebas donde varían los parámetros que reciben como entrada. 4.3.1 Variación distancia entre readers Para la modificación de los parámetros de entrada de la función “métodos” se ha creado la función “test_dimensionfija”, la cual se puede ver en “Anexos –Variación condiciones de entorno y errores de estimación de localización – Distancia entre readers variable”. Ésta recibe como parámetros de entrada los que pueden ser modificados para especificar las condiciones deseadas: xmap, ymap: ancho y largo del mapa o habitación donde queremos desarrollar la simulación. number_msgs_Tx: también conocido como “N” en este documento. Es el número total de queries emitidos por cada reader. precision: se especifica para la utilización en la aproximación al método de máxima verosimilitud vista en la sección anterior. Simboliza la precisión que deseamos alcanzar en la estimación de la tag dentro de dicho método. dist_rdrs: este es el más importante y el que sufre más modificación, ya que en una llamada a la función “test_dimensionfija” la función “métodos” se llevará a cabo tantas veces como valores tenga este parámetro, una iteración del mismo para cada distancia entre readers. Otro parámetro importante es la posición de la tag real, la cual no se pasa como parámetro de entrada ya que se desea que sea tomada de forma aleatoria en cada llamada a esta función. En el código se le denominan “xtag_real” y “ytag_real” a las coordenadas donde se sitúa dicha tag dentro del mapa. Se emplea para poder hallar el error que se ha cometido en la predicción de la tag estimada en cada método, los cuales se proporcionan como parámetros de salida. Pese a que se tomen valores aleatorios, también pueden prefijarse a un lugar específico fácilmente. El objetivo de “test_dimensionfija” es que el usuario pueda realizar un estudio visual de los resultados obtenidos para diferentes distancias entre readers para un mapa con unas dimensiones fijas. 4.3.2 Errores de estimación en los distintos métodos Para medir la fiabilidad de los métodos expuestos en el proyecto y como principal objetivo del mismo, se procede a mostrar gráficamente el error de estimación de la posición de la tag que se ha producido en cada método. Para tal fin se emplea la raíz del error cuadrático medio (RMSE: Root Mean Square Error), el cual se basa en la fórmula (4-14), descomponiendo el error cuadrático en la ecuación (4-15). = 1 (4–14) = | | − | | (4–15) Para realizar el cálculo de este RMSE, se han empleado dos sencillas funciones “square_error” y “rmse” que pueden consultarse en “Anexos –Variación condiciones de entorno y errores de estimación de localización – Errores de estimación”. En la primera, se implementa ecuación (4-15) en lenguaje M. La función “square_error” es llamada dentro de cada función que implementa a un método de estimación, es por ello que todas ellas lo tenían como parámetro de salida. Por otro lado, el parámetro de entrada de la función “rmse” es el error cuadrático “se”. Para ver dónde se emplea la llamada a dicha función se explica en la siguiente sección “RMSE para distintos métodos y distancias entre readers”.
Diseño del sistema 34 34 4.3.3 RMSE para distintos métodos y distancias entre readers Para poder realizar el valor medio dentro del RMSE se debe tener varios valores a los que realizar la media aritmética, es decir, tener varias estimaciones de tags dentro de un mismo método con las mismas condiciones de entorno. Para hacer esto posible, se ha creado la función “resultados_test”, la cual es la encargada de realizar un número de iteraciones (“iteraciones”), prefijado antes de la simulación, de la función “test_dimensionfija”, lo que supone la toma de tantas posiciones aleatorias distintas de la tag real como el número “iteraciones”. Así pues, en cada iteración se obtienen los vectores de los errores cuadráticos de cada método de estimación, correspondiendo cada término del vector a una distancia entre readers. Tras la obtención de los mismos, se agrupan en matrices propias de cada método, resultándonos cuatro matrices como la mostrada para el primer método (método de asociación que devuelve se1) en la Figura (4-12). Las filas presentan el se obtenido en una iteración y en las columnas el valor propio del mismo para cada distancia entre readers. Esta matriz se le pasa como parámetro a la función “rmse” que le calcula la media y raíz, obteniendo una matriz fila donde se han promediado los valores para las diferentes distancias entre readers, siendo este el parámetro a analizar en las gráficas mostradas en el siguiente capítulo Resultados. Figura 4-12. Matriz “square error” para primer método en resultados_test.
35 5 RESULTADOS n el presente capítulo se dispondrán los resultados finales del diseño expuesto anteriormente. De este modo, se realizará un análisis de las situaciones óptimas en las que los resultados obtenidos son lo suficientemente exactos y puedan desarrollarse favorablemente en la vida real. Para tal propósito, se van a realizar las observaciones en base a los resultados mostrados por la función “resultados_test”, definida en el capítulo anterior de este proyecto. Antes de realizar una simulación de dicha función, es necesario prefijar los parámetros que definirán el entorno de trabajo. Éstos son cinco y de ellos dependerá el tiempo empleado en cada simulación. A continuación, se comentan estos parámetros: El número de iteraciones que se desee realizar del modelo, denominado como “iteraciones” dentro de “resultados_test”. Cada iteración lo que supone es un cambio en la posición de la tag, que se le da de forma aleatoria. Así que, como es lógico, a mayor número de iteraciones, más veces se deberá repetir el cómputo de los métodos para todas las posibles distancias entre readers, tardando más la obtención de los resultados. Sin embargo, a mayor número de pruebas realizadas, mejor serán los resultados al obtener un mayor muestrario de resultados al que realizar la media aritmética. Por ejemplo, 100 posiciones distintas de la tag dentro del mapa es un número suficientemente grande del que obtener resultados fiables para el análisis. Las dimensiones del mapa (“xmap”,”ymap”) donde se sitúen los readers. A mayor extensión, mayor carga computacional. La precisión tomada para analizar la aproximación al método de máxima verosimilitud, denominada “precision”, supondrá mayor carga de trabajo al programa cuanto menor sea esta. Esto es debido a que si se desea que los resultados sean más exactos, dicho método realizará más operaciones para el cálculo. El número de diferentes distancias entre readers también supondrá tiempo añadido por cada elemento de la matriz “dist_readers”. Cabe decir que cuanto mayor sea la distancia entre readers, menor será el número de readers distribuidos en el mapa, agilizando los tiempos de simulación. Por último, el parámetro “N”, o como se muestra en el código “number_msgs_Tx”. Este número debe ser lo suficientemente grande para que haya un gran número de muestras a tener en cuenta, pero sin pasar el límite de 100 queries, ya que el propio Matlab es incapaz de realizar el cómputo debido a sus limitaciones numéricas. Un número óptimo es N = 50 queries. Así pues, en este capítulo se mostrarán los resultados obtenidos en combinaciones diferentes de estos parámetros y se analizarán cuáles son las situaciones más óptimas. E El éxito es el resultado de la perfección, trabajo duro, aprender del fracaso, lealtad y persistencia. - Colin Powell -
Resultados 36 36 Las gráficas resultantes pueden clasificarse en tres, que son las que mejor muestran una visión de la situación: Mapas de dimensiones prefijadas, mostrando los resultados de los distintos métodos en función de la distancia entre readers. Valores de la función de verosimilitud de la aproximación al método de máxima verosimilitud, para comprobar los resultados de dicho método. RMSE producido en los distintos métodos de localización en función de la distancia entre readers Estos tres tipos serán presentados y analizados en cada ejemplo de los que se exponen a continuación. 5.1 Primer ejemplo A modo de primer ejemplo, se toman unos parámetros que requieren de poco tiempo de cómputo para una primera presentación. Ejemplo 5–1. La tag es situada únicamente en 3 posiciones distintas en un pequeño mapa de dimensiones 8x8 metros. Las separaciones entre readers tomadas son 2, 4 y 8 metros. Los readers emiten 20 queries y se exige una precisión de 1 metro. Para empezar, se muestran los mapas de las Figuras [5-1], [5-2] y [5-3], los cuales se diferencian en las distancias que separan los readers. Éstas son un ejemplo para una tag en concreto, situada aleatoriamente en (2.742, 6.656) metros. En las gráficas se observan cuatro mapas, representantes de los resultados de cada método de estimación. En la leyenda se denotan los cuatro elementos principales a distinguir en ellos. Figura 5-1. Primer ejemplo. Mapas, distancia entre readers 2 metros.
37 Figura 5-2. Primer ejemplo. Mapas, distancia entre readers 4 metros. Figura 5-3. Primer ejemplo. Mapas, distancia entre readers 8 metros.
Resultados 38 38 Para poder visualizar cómo ha procedido el método de máxima verosimilitud para estimar la mejor posición aproximada de la tag, se presentan las gráficas correspondientes a cada figura anterior, en función de la separación entre readers, de los valores que toma la función de verosimilitud. Figura 5-4. Primer ejemplo. Función verosimilitud, distancia entre readers 2 metros. Figura 5-5. Primer ejemplo. Función verosimilitud, distancia entre readers 4 metros.
39 Figura 5-6. Primer ejemplo. Función verosimilitud, distancia entre readers 8 metros. La Figura [5-4] presenta los valores tomados por la función de verosimilitud correspondiente al mapa de la Figura [5-1], con una separación entre readers de 2 metros. El grid está dividido en recuadros de 1x1 metro, ya que es la precisión que se ha tomado. Lo que muestra es una “pirámide” que tiene su pico en la posición (2, 6) metros. Como se puede ver en la Figura [5-1], la estimación de la tag se encuentra efectivamente en dichas coordenadas. Respecto a la figura [5-5], correspondiente a la Figura [5-2], con la separación entre readers de 4 metros, ya no se obtiene una pirámide, sino que los valores cercanos al pico anterior también toman cierta relevancia. Esto es debido a que, a mayor separación entre readers, éstos reciben menos queries o ninguno, lo que hace que la función de verosimilitud no muestre un máximo que destaque tanto como anteriormente para menos distancia entre readers. En cuanto a la Figura [5-6] correspondiente a una separación entre readers de 8 metros de la Figura [5-3], se observan varios picos considerables. Esto ocurre, como se ha explicado anteriormente, por decrecer el número de readers, que en este caso sólo se han utilizado 4, uno en cada esquina del mapa. Como el rango de distancias entre tag y reader del experimento [6] llega hasta los 7.6 metros, es probable que con sólo 4 readers en un grid de 8x8 metros alguno no reciba queries de vuelta. Como se observa en la Figura [5-3], el reader situado en la esquina inferior derecha no recibe ningún query, mientras que los demás sí. De este modo, los cálculos pueden oscilar de mayor manera al tener pocos readers que hayan leído. Así se puede ver que los resultados dependerán en gran medida de la separación entre readers.
Resultados 40 40 5.2 Segundo ejemplo Se seguirá con un ejemplo donde el mapa es el mismo pero se toman más posiciones de tag para tener mayor número de pruebas realizadas, además se toma una mejor precisión y mayor número de queries transmitidos por cada reader, para así mejorar los resultados. Ejemplo 5–2. La tag es situada en 100 posiciones distintas en un mapa de dimensiones 8x8 metros. Las separaciones entre readers tomadas son 2, 4 y 8 metros. Los readers emiten 50 queries y se exige una precisión de 0.5 metros. Como anteriormente, se toma como muestra una tag para representar los mapas de las Figuras [5-7], [5-8] y [5-9], los cuales se diferencian en las distancias que separan los readers. Figura 5-7. Segundo ejemplo. Mapas, distancia entre readers 2 metros.
41 Figura 5-8. Segundo ejemplo. Mapas, distancia entre readers 4 metros. Figura 5-9. Segundo ejemplo. Mapas, distancia entre readers 8 metros.
Resultados 48 48 Figura 5-19. Cuarto ejemplo. Mapas, distancia entre readers 3 metros. Figura 5-20. Cuarto ejemplo. Mapas, distancia entre readers 4 metros.
49 Figura 5-21. Cuarto ejemplo. Mapas, distancia entre readers 6 metros. Figura 5-22. Cuarto ejemplo. Mapas, distancia entre readers 8 metros.
Resultados 50 50 Por su parte, las figuras de la función de verosimilitud serán: para una separa ción de 4 metros la Figura [5-23], para una separación de 6 metros la Figura [5-24] y para una separación de 8 metros la Figura [5-25 ]. En los casos en los que las distancias entre readers es de 2 o 3 metros, las gráficas de la función de verosimilitud son tan picudas que no son facilmente interpretables, por lo que no se incluyen en este documento. Sin embargo, comentar que para estas dos últimas distancias será para la s que se obtengan mejores resultados de la estimación de la tag, ya que apenas se producirán fallos al no tener muchos resultados simulares cercanos al máximo que lo distorsionen , lo cual se comprobará más adelante en la gráfica del RMSE. Figura 5-23. Cuarto ejemplo. Función verosimilitud, distancia entre readers 4 metros. Figura 5-24. Cuarto ejemplo. Función verosimilitud, distancia entre readers 6 metros.
51 Figura 5-25. Cuarto ejemplo. Función verosimilitud, distancia entre readers 8 metros. Finalmente, se muestra en la Figura [5-26] el RMSE en metros producido en función de la distancia entre readers. Figura 5-26. RMSE cuarto ejemplo. Analizando la Figura [5-26], donde se han obtenido curvas más suaves que la de anteriores ejemplos al realizar más iteraciones, se puede decir que según la técnica de estimación de la tag empleada:
Resultados 52 52 Método de asociación: en dicha curva se puede observar un leve decrecimiento de unos dos decímetros del error que se produce cuando los readers están a dos y tres metros de distancia. Sin embargo, a partir de los 3 metros crece de forma monótona del RMSE. Esto es debido a que, a tan corta distancia entre readers como son los 2 metros, varios readers leen el número máximo de queries emitidos, siendo asignado como mejor posición entre ellos el que se encuentra más próximo a (0,0) metros, como ya se comentó en la descripción del método de asociación en este documento. Entonces, para este ejemplo se puede concluir que para emplear dicho método la mejor separación entre readers a tomar es la de 3 metros. Esta técnica se puede considerar como la que peor estimación de la tag ofrece, pudiendo estar el error entre 2 y 3 metros. Método del centroide: en este método también ocurre un decrecimiento al comienzo de la curva, que esta vez se alarga hasta la separación de 4 metros entre readers. Las razones de ello se proporcionaron en el segundo ejemplo de este mismo capítulo. Aún así, tras los 4 metros de distancia se comporta de una forma lógica, siendo peor la estimación de la tag conforme más se separan los readers. En cuanto a este método, ofrece una mejora considerable en sus estimaciones de la tag respecto al método anterior. Método del centroide ponderado: en esta curva ocurre lo mismo que en el método anterior, la única diferencia es que se produce a valores menores de RMSE. Ésta sería la segunda mejor técnica que aquí se presenta, rondando un error en la estimación de la tag de 1 metro, siendo muy parecido el resultado al ofrecido por el siguiente método para una distancia entre readers de 6 y 8 metros. Método aproximado a la máxima verosimilitud: la curva de esta técnica es la única que presenta una monotonía creciente en todo su recorrido. Esta es la única que cumple que con lo que se podría presuponer a priori, que a mayor distancia entre readers, peor serán las estimaciones de la tag tomadas. Como se puede observar, ésta es la técnica que presenta menor error en sus estimaciones, no siendo mayor de 1 metro para una separación entre readers de 8 metros en este ejemplo y llegando a ser de 0.25 metros para una distancia entre readers de 2 metros. 5.5 Quinto ejemplo Para este último ejemplo, se ha tomado un mapa con las mismas características que el ejemplo anterior, con la excepción de que la precisión se ajusta aún más. Por este hecho, debido al tiempo de simulación que es necesario para tomar los resultados del mismo, se ha tomado una pequeña muestra de posiciones distintas de la tag para poder realizar una comparativa con las gráficas anteriores. Ejemplo 5–5. La tag es situada en 7 posiciones distintas en un mapa de dimensiones 24x24 metros. Las separaciones entre readers tomadas son 2, 3, 4, 6 y 8 metros. Los readers emiten 50 queries y se exige una precisión de 0.1 metros. Se toma como muestra una tag para representar los nuevos mapas de las Figuras [5-27], [5-28], [5-29], [5-30] y [5-31] correspondientes a las distintas distribuciones de los readers según la distancia de separación entre estos.
53 Figura 5-27. Quinto ejemplo. Mapas, distancia entre readers 2 metros. Figura 5-28. Quinto ejemplo. Mapas, distancia entre readers 3 metros.
Resultados 54 54 Figura 5-29. Quinto ejemplo. Mapas, distancia entre readers 4 metros. Figura 5-30. Quinto ejemplo. Mapas, distancia entre readers 6 metros.
55 Figura 5-31. Quinto ejemplo. Mapas, distancia entre readers 8 metros. Como se puede ver en los mapas, por ejemplo en la Figura [5-31], el método del centroide ponderado ha estimado exactamente la posición de la tag, mientras que la aproximación al método de máxima verosimilitud, pese a que se le exige una precisión de 0.1 metros, no lo ha conseguido. Estos resultados son correctos debido a que es simplemente una muestra aislada, pero no es lo que ocurriría en el mayor porcentaje de los casos si se tomaran muchas más muestras de la simulación. Para esta muestra de ejemplo, las figuras de la función de verosimilitud serán: para una separación de 4 metros la Figura [5-32], para una separación de 6 metros la Figura [5-33] y para una separación de 8 metros la Figura [5-34]. Al igual que ocurría en el Ejemplo [5-4], la función de verosimilitud para las distancias entre readers de 2 y 3 metros no se muestran. En la Figura [5-32] se ve que dicho valor es realmente picudo, por ello, para distancias menores, lo será aún más. Como se puede ver, a mayor número de readers, menos picudo será el resultado y mayor puede ser el error producido en la estimación.
Resultados 56 56 Figura 5-32. Quinto ejemplo. Función verosimilitud, distancia entre readers 4 metros Figura 5-33. Quinto ejemplo. Función verosimilitud, distancia entre readers 6 metros.
57 Figura 5-34. Quinto ejemplo. Función verosimilitud, distancia entre readers 8 metros. Se ha de decir que la gráfica de la Figura [5-34] ha sido girada para una mejor visualización de la misma. A continuación, se muestra en la Figura [5-35], al igual que en el ejemplo [5-3], el error de estimación de la tag cometido por el método aproximado a la máxima verosimilitud para las distintas distancias entre readers. Éstos son valores puntuales ya que se muestran a modo de nube de puntos para las 7 pruebas. Figura 5-35. RSE quinto ejemplo.
Anexos: código matlab 64 64 1.1.1.2 Varianza %Devuelve los valores estimados de la varianza function V = var_p(d) %Varianza estimada según la distancia de la tag al reader %Distancia del tag al reader varesx = [1.2, 1.85, 2.15, 2.45, 2.8, 3.05, 3.2, 3.7, 3.95, 4.2, 4.6, 4.9, 5.1, 5.5, 5.85, 6.1, 6.4, 6.7, 7, 7.3, 7.6]; %Varianza estimada varesy = [0.002, 0.0025, 0.0025, 0.0035, 0.008, 0.0375,0.035, 0.004, 0.0325, 0.037, 0.038, 0.0325, 0.02, 0.019, 0.009, 0.0145, 0.005, 0.0175, 0.013, 0.019, 0.003]; %Polinomio de ajuste de sexto grado ci = polyfit(varesx,varesy,6); % Como el experimento no tiene en cuenta las distancias que están por %debajo de 0.9151 metros ni por encima de 7.682 los tomamos de la siguiente %manera ya que sabemos que deben darnos esos valores. De no tomar esta %precaución, la varianza nos daría negativa, lo cual provoca a posteriori %que la alpha y beta sean negativas, cosa que no puede ocurrir if (d < 1.2) || (d > 7.6) V = 0; else %Obtener resultados del polinomio para una distancia dada V = polyval(ci,d); end % Representar puntos estimados en el experimento de la varianza plot(varesx,varesy,'r*'),hold on % Representar polinomio de sexto grado plot(varesx,V,'-*'),grid on xlabel('Distancia (metros)') ylabel('Varianza p(d)') legend('Valores experimentales varianza','Polinomio 6º grado') hold off end 1.1.1.3 Alpha y beta % Obtención de los parámetros necesarios para una distribución beta function [alpha,beta] = parametros(E,V) % Calcular alpha y beta en función de los valores de la esperanza y la varianza alpha = (E^2 - E^3 - E*V) / V; beta = (E^3 - 2*(E^2) + E*(1+V) - V) / V; end
65 1.1.1.4 Probabilidad detección function [prob,d,alpha,beta] = distbeta(d) % Obtenemos las matrices fila tanto de la media como esperanza en función de %la distancia (21 distancias distintas), implementadas en otros ficheros E = mean_p(d); V = var_p(d); % Obtención de los parámetros requeridos para una distribución beta [alpha,beta] = parametros(E,V); % Probabilidad de que le llegue de vuelta al reader la petición de tag en %función de la distancia a la que esté la tag % Para asegurarnos de que, aunque esté por debajo de los %límites de detección o por encima, de que da un valor coherente lo forzamos if (d > 1.2) && (d < 7.6) prob = betarnd(alpha,beta); elseif d <= 1.2 prob = 1; elseif d >= 7.6 prob = 0; end end 1.1.1.5 Parámetro “n” function n = n_acks(number_msgs_Tx,d) %Obtener la probabilidad de enviarse un mensaje desde un Tx a una tag a 21 %distancias (d) distintas comprendidas entre 0 y 8 metros [p,~,~,~] = distbeta(d); num = binornd(number_msgs_Tx,p); % Redondea hacia abajo porque no es válido que nos llegue la mitad de un %mensaje, sólo son válidos los mensajes completos recibidos n = floor(num); for i=1:length(d) fprintf('Para una distancia %1.2f metros llegarán %d de los %d transmitidos\n',d(i),n(i),number_msgs_Tx); end end
Anexos: código matlab 66 66 1.1.2 Distribución readers en el mapa function [mapa_acks,mapa_lectores] = mapa_rdrs_acks(x,y,dist,number_msgs_Tx,xtag,ytag) %Matriz correspondiente al mapa completo (en metros) del lugar donde se %desea localizar a la tag mapa_acks = zeros(x+1,y+1); %Número de readers dentro del mapa en dos dimensiones(+1 porque en (0,0) %hay otro reader) xrdrs = (x/dist)+1; yrdrs = (y/dist)+1; %Inicialización k = 0; %Matriz donde se representan solo los lectores como puntos y que cada uno %incluye el numero de acks que reciben desde la tag mapa_lectores = zeros(xrdrs,yrdrs); %Sitúo a los readers poniendo en el mapa el número de mensajes recibidos en %cada reader desde la tag for i = 0:xrdrs-1 for j = 0:yrdrs-1 %Calcula las distancias entre cada reader y la tag d = sqrt(((i*dist)-xtag)^2+((j*dist)-ytag)^2); aux = n_acks(number_msgs_Tx,d); if aux >= 0 mapa_acks((i*dist)+1,(j*dist)+1) = aux; end end end for i = 0:xrdrs-1 for j = yrdrs-1:-1:0 mapa_lectores(i+1,j+1) = mapa_acks((i*dist)+1,(k*dist)+1); k = k+1; end k = 0; end disp('Mapa representante del número de acks que recibe cada reader:') mapa_lectores = mapa_lectores' end
67 1.2 Métodos de estimación 1.2.1 Método de asociación 1.2.1.1 Estimación posición de la tag function [xaprox_tag,yaprox_tag,x_rdrsRx,y_rdrsRx] = aproxtag_1metodo(mapa_acks) %Inicializamos variables x_mapa = 0; y_mapa = 0; %Devuelve los índices del mapa donde está el/los reader/s que ha/n recibido más %mensajes if max(max(mapa_acks))~=0 [x_mapa,y_mapa] = find((mapa_acks==max(max(mapa_acks)))); end % Como las matrices en matlab comienzan por 1 y no por 0(que queremos que %sea la posición del primer reader (0,0) le restamos 1. Así tenemos las %posiciones de los readers que han recibido alguna notificación x_rdrsmaxacks = x_mapa-1; y_rdrsmaxacks = y_mapa-1; % Escojo como tag estimada la posición del primer reader (comenzando desde %la coordenada (0,0)metros) que encontramos que tiene el número mayor de %lecturas que se han recibido en los readers desde la tag xaprox_tag = x_rdrsmaxacks(1); yaprox_tag = y_rdrsmaxacks(1); %Para poder dibujar los readers lectores: %Devuelve los índices del mapa donde los readers han recibido más de un %mensaje [x_mapa_rdrs,y_mapa_rdrs] = find(mapa_acks>0); %Como las matrices en matlab comienzan por 1 y no por 0(que queremos que %sea la primera posición, 0 metros) le restamos 1 para que nos de los %metros donde se posiciona el reader más cercano a la tag x_rdrsRx = x_mapa_rdrs-1; y_rdrsRx = y_mapa_rdrs-1; end
Anexos: código matlab 68 68 1.2.1.2 Representación function se1metodo = primer_metodo(mapa_acks,dist_rdrs,xtag_real,ytag_real) [xtag_aprox,ytag_aprox,x_rdrsRx,y_rdrsRx] = aproxtag_1metodo(mapa_acks); %Representamos tanto readers, readers que han leido acks, la posicion real %de la tag y la posición estimada de la tag subplot(2,2,1) % Parámetros readers dentro del mapa donde estarán situados estratégicamente [xmap,ymap] = size(mapa_acks); xpos = 0:dist_rdrs:xmap; ypos = 0:dist_rdrs:ymap; % Para hacer una matriz cuadrada con las dimensiones del mapa [xpos_map,ypos_map] = meshgrid(xpos,ypos); % Dibuja readers dentro del mapa % Dibuja la tag real donde se sitúa % Dibuja los readers que reciben mensajes desde la tag % Dibujo posición aproximada donde se encuetra la tag plot(xtag_real,ytag_real,'ms',xtag_aprox,ytag_aprox,'*r',x_rdrsRx,y_rdrsRx, 'xb',xpos_map,ypos_map,'go') % Para mejor visualización del mapa 2D % Limito los ejes del mapa xlim([0-0.1 xmap-0.9]) ylim([0-0.1 ymap-0.9]) % Doy nombre a los ejes xlabel({'Eje "x" del mapa','(metros)'}) ylabel({'Eje "y" del mapa','(metros)'}) % Se escribe una leyenda con los distintos componentes que aparecen en el mapa leyenda = legend('Tag real','Tag estimada','Readers reciben ack','Readers','Location','northoutside','Orientation','horizontal'); set(leyenda,'FontSize',7); se1metodo = square_error(xtag_real,ytag_real,xtag_aprox,ytag_aprox); end
69 1.2.2 Método del centroide 1.2.2.1 Estimación posición de la tag function [xtag_aprox,ytag_aprox,x_rdrsRx,y_rdrsRx] = aproxtag_2metodo(mapa_acks) %Inicializamos variables x_mapa = 0; y_mapa = 0; xdist = 0; ydist = 0; %Devuelve los índices del mapa donde los readers han recibido más de un %mensaje [x_mapa,y_mapa] = find(mapa_acks>0); % Como las matrices en matlab comienzan por 1 y no por 0(que queremos que %sea la posición del primer reader (0,0) le restamos 1. Así tenemos las %posiciones de los readers que han recibido alguna notificación x_rdrsRx = x_mapa-1; y_rdrsRx = y_mapa-1; %Suma de ambas coordenadas de los readers que reciben mensajes de la tag for i = 1:length(x_rdrsRx) xdist = xdist+x_rdrsRx(i); ydist = ydist+y_rdrsRx(i); end %En esta segunda aproximacion la tag se situa a la distancia media entre %todos los nodos que reciben mensajes desde la tag xtag_aprox = xdist/length(x_rdrsRx); ytag_aprox = ydist/length(y_rdrsRx); end
Anexos: código matlab 70 70 1.2.2.2 Representación function se2metodo = segundo_metodo(mapa_acks,dist_rdrs,xtag_real,ytag_real) [xtag_aprox,ytag_aprox,x_rdrsRx,y_rdrsRx] = aproxtag_2metodo(mapa_acks); %Representamos tanto readers, readers que han leido acks, la posicion real %de la tag y la posición estimada de la tag subplot(2,2,2) % Parámetros readers dentro del mapa donde estarán situados estratégicamente [xmap,ymap] = size(mapa_acks); xpos = 0:dist_rdrs:xmap; ypos = 0:dist_rdrs:ymap; % Para hacer una matriz cuadrada con las dimensiones del mapa [xpos_map,ypos_map] = meshgrid(xpos,ypos); % Dibuja readers dentro del mapa % Dibuja la tag real donde se sitúa % Dibuja los readers que reciben mensajes desde la tag % Dibujo posición aproximada donde se encuetra la tag plot(xtag_real,ytag_real,'ms',xtag_aprox,ytag_aprox,'*r',x_rdrsRx,y_rdrsRx, 'xb',xpos_map,ypos_map,'go') % Para mejor visualización del mapa 2D % Limito los ejes del mapa xlim([0-0.1 xmap-0.9]) ylim([0-0.1 ymap-0.9]) % Doy nombre a los ejes xlabel({'Eje "x" del mapa','(metros)'}) ylabel({'Eje "y" del mapa','(metros)'}) % Escribo una leyenda con los distintos componentes que aparecen en el mapa leyenda = legend('Tag real','Tag estimada','Readers reciben ack','Readers','Location','northoutside','Orientation','horizontal'); set(leyenda,'FontSize',7); se2metodo = square_error(xtag_real,ytag_real,xtag_aprox,ytag_aprox); end
71 1.2.3 Método del centroide ponderado 1.2.3.1 Estimación posición de la tag function [xtag_aprox,ytag_aprox,x_rdrsRx,y_rdrsRx] = aproxtag_3metodo(mapa_acks,number_msgs_Tx) %Inicializamos variables xdist = 0; ydist = 0; sum_pesos = 0; %Devuelve los índices del mapa donde los readers han recibido algún mensaje [x_mapa,y_mapa] = find(mapa_acks>0); % Como las matrices en matlab comienzan por 1 y no por 0(que queremos que %sea la posición del primer reader (0,0) le restamos 1. Así tenemos las %posiciones de los readers que han recibido alguna notificación x_rdrsRx = x_mapa-1; y_rdrsRx = y_mapa-1; %Suma de ambas coordenadas de los readers que reciben mensajes de la tag for i = 1:length(x_rdrsRx) peso = (mapa_acks(x_mapa(i),y_mapa(i)))/number_msgs_Tx; xdist = xdist + peso*(x_rdrsRx(i)); ydist = ydist + peso*(y_rdrsRx(i)); sum_pesos = sum_pesos+peso; end %En esta segunda aproximacion la tag se situa a la distancia media entre %todos los nodos que reciben mensajes desde la tag xtag_aprox = xdist/sum_pesos; ytag_aprox = ydist/sum_pesos; end
Anexos: código matlab 72 72 1.2.3.2 Representación function se3metodo = tercer_metodo(mapa_acks,dist_rdrs,xtag_real,ytag_real,number_msgs_Tx) [xtag_aprox,ytag_aprox,x_rdrsRx,y_rdrsRx] = aproxtag_3metodo(mapa_acks,number_msgs_Tx); %Representamos tanto readers, readers que han leido acks, la posicion real %de la tag y la posición estimada de la tag subplot(2,2,3) % Parámetros readers dentro del mapa donde estarán situados estratégicamente [xmap,ymap] = size(mapa_acks); xpos = 0:dist_rdrs:xmap; ypos = 0:dist_rdrs:ymap; % Para hacer una matriz cuadrada con las dimensiones del mapa [xpos_map,ypos_map] = meshgrid(xpos,ypos); % Dibuja readers dentro del mapa % Dibuja la tag real donde se sitúa % Dibuja los readers que reciben mensajes desde la tag % Dibujo posición aproximada donde se encuetra la tag plot(xtag_real,ytag_real,'ms',xtag_aprox,ytag_aprox,'*r',x_rdrsRx,y_rdrsRx, 'xb',xpos_map,ypos_map,'go') % Para mejor visualización del mapa 2D % Limito los ejes del mapa xlim([0-0.1 xmap-0.9]) ylim([0-0.1 ymap-0.9]) % Doy nombre a los ejes xlabel({'Eje "x" del mapa','(metros)'}) ylabel({'Eje "y" del mapa','(metros)'}) % Escribo una leyenda con los distintos componentes que aparecen en el mapa leyenda = legend('Tag real','Tag estimada','Readers reciben ack','Readers','Location','northoutside','Orientation','horizontal'); set(leyenda,'FontSize',7); se3metodo = square_error(xtag_real,ytag_real,xtag_aprox,ytag_aprox); end
73 1.2.4 Método de máxima verosimilitud 1.2.4.1 Estimación posición de la tag function [xtag_aprox_4metodo,ytag_aprox_4metodo,x_rdrsRx,y_rdrsRx,emv_matriz] = aproxtag_4metodo(mapa,dist_rdrs,number_msgs_Tx,precision) % Inicializacion m = 1; k = 1; [xmapa,ymapa] = size(mapa); % Devuelve los índices del mapa donde los readers han recibido más de un %mensaje [x_mapa,y_mapa] = find(mapa > 0) % Como las matrices en matlab comienzan por 1 y no por 0(que queremos que %sea la posición del primer reader (0,0) le restamos 1. Así tenemos las %posiciones de los readers que han recibido alguna notificación x_rdrsRx = x_mapa-1; y_rdrsRx = y_mapa-1; % Va obteniendo las probabilidades de que la tag real este en distintas %posiciones supuestas, recorriendo el mapa según la precisión que se desee %mediante la función "estimacionmaxveros" que sigue una función betabinomial for i = 1:precision:xmapa for j = 1:precision:ymapa emv_matriz(k,m) = estimacionmaxveros(i-1,j- 1,dist_rdrs,number_msgs_Tx,mapa); m = m+1; end m = 1; k = k+1; end % Escogemos el valor mayor de probabilidad, que así es como se define el %metodo de maxima verosimilitud [xtag_aprox,ytag_aprox] = find(emv_matriz==max(max(emv_matriz))); xtag_aprox_4metodo = (xtag_aprox-1)*precision; ytag_aprox_4metodo = (ytag_aprox-1)*precision; end function emv = estimacionmaxveros(x_puntoestim,y_puntoestim,dist_rdrs,number_msgs_Tx,mapa_ acks) % Inicialización emv = 1; % Obtengo el valor de las probabilidades de cada posición estimada a cada %reader para incluirlas posteriormente en el metodo de máxima verosimilitud betabinf = betabinfunc(x_puntoestim,y_puntoestim,dist_rdrs,number_msgs_Tx,mapa_acks); [xsize_betabinf,ysize_betabinf] = size(betabinf); % Multiplicación para método de máxima verosimilitud (emv: estimación %máxima verosimilitud) como indica su definición for k = 1:xsize_betabinf for j = 1:ysize_betabinf emv = betabinf(k,j)*emv; end end end