Full text
me Equation Chapter 1 Section 1 Trabajo Fin de Grado Grado en Ingeniería en Tecnologías de Telecomunicación Evaluación de dispositivos UWB para localización en interiores con medidas de distancia Autor: Luis De la Calle Rozadillas Tutor: Eva Arias de Reyna Domínguez Dep. Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2017
iii Trabajo Fin de Grado Grado en Ingeniería en Tecnologías de Telecomunicación Evaluación de dispositivos UWB para localización en interiores con medidas de distancia Autor: Luis De la Calle Rozadillas Tutor: Eva Arias de Reyna Domínguez Profesora Contratada Doctora Dep. de Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2017
v Proyecto Fin de Carrera: Evaluación de dispositivos UWB para localización en interiores con medidas de distancia Autor: Luis De la Calle Rozadillas Tutor: Eva Mª Arias de Reyna Domínguez El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2017 El Secretario del Tribunal
vii A mi familia A mis maestros
ix Agradecimientos En primer lugar, me gustaría agradecer a Dña Eva Mª Arias de Reyna Domínguez la oportunidad de poder realizar este proyecto, de estar siempre disponible y ayudarme en todo lo necesario. Por supuesto agradecerle todo el material con el que he trabajado, desde el equipo para realizar los experimentos hasta la regla con la que medí los últimos datos. Al departamento de Teoria de la señal y comunicaciones, por permitirme realizar las pruebas en una habitación dedicada para ello. A todos mis profesores que he tenido, desde el colegio hasta ahora, porque las ganas de seguir aprendiendo son gracias a ellos. A mis padres y mi hermana, porque gracias a ellos he conseguido llegar hasta aquí, sobre todo agradecerles la paciencia que han tenido estos años y el esfuerzo que han tenido que hacer. A todos mis compañeros de universidad, en especial a Miguel, por todas las teorías, deducciones y problemas que hemos sacado juntos. Sevilla, 2017
xvii ÍNDICE DE FIGURAS Ilustración 2-i. Comparación de la densidad espectral de potencia y frecuencia según el ancho de banda. 14 Ilustración 2-ii. Escenario militar con UWB (Fuente: Lawrence Livermore National Laboratory). 15 Ilustración 2-iii. Comparación del rango frente a la tasa de datos entre tecnologías inalámbricas. 17 Ilustración 2-iv. Comparación de la densidad espectral de potencia y frecuencia según la frecuencia central. 18 Ilustración 2-v. Comparación de pulsos en los dominios del tiempo y frencuencia. 19 Ilustración 2-vi. Diagrama de bloques de un sistema de posicionamiento. 20 Ilustración 3-i. Kit decaWave. 23 Ilustración 3-ii. EVB1000. 23 Ilustración 3-iii. Placa de evaluación que contiene el DW1000. 24 Ilustración 3-iv. EVB1000 24 Ilustración 3-v. Emparejamiento. 27 Ilustración 3-vi. Intercambio de datos. 27 Ilustración 3-vii. Tiempos de propagación. 28 Ilustración 3-viii. Configuración INT-INT. 30 Ilustración 3-ix. Configuración TAG 31 Ilustración 3-x. Configuración ANCLA 31 Ilustración 3-xi. Medida de distancia INT-INT. 32 Ilustración 3-xii. Conexión USB 32 Ilustración 3-xiii. Indicador de conexión USB. 33 Ilustración 3-xiv. Situación con dos aplicaciones de PC. 33 Ilustración 3-xv. Situación con una aplicación de PC. 34 Ilustración 3-xvi. Situación ilustrativa. 36 Ilustración 3-xvii. Situación real. 37 Ilustración 3-xviii. Las tres situaciones distintas, de izquierda a derecha: larga, media y corta distancia. 38 Ilustración 4-i. Extracto de señal recibida 40 Ilustración 4-ii. Respuesta impulsiva en magnitud. 40 Ilustración 4-iii. Histograma de las medidas de distancia 42 Ilustración 4-iv. Curva Gaussiana 42 Ilustración 4-v. Histograma con función de densidad normal. 43 Ilustración 4-vi. Distribución de la probabilidad. 44
Ilustración 4-vii. Histograma de las medidas de distancia para la situación de visión directa (LOS) en el caso de transmisores a 1.5m. 45 Ilustración 4-viii. Histograma de las medidas de distancia para la situación de visión no directa (NLOS) en el caso de transmisores a 3m de distancia con una pared en medio como obstáculo. 45 Ilustración 4-ix. ECDF 46 Ilustración 4-x. Proceso seguido para modelar la distancia medida, para una distancia real determinada. 47 Ilustración 4-xi. Media de las medidas de distancia en función de la distancia real. A la izquierda, Rango 0-1m y a la derecha Rango 0-5m. 47 Ilustración 4-xii. Media de las medidas de distancia en función de la distancia real. Rango 0-20m. 48 Ilustración 4-xiii. Media de las medidas de distancia en función de la distancia real. Rango 0-60m. 48 Ilustración 4-xiv. Desviación típica de las medidas de distancia en función de la distancia real. 49 Ilustración 4-xv. Aproximación por mínimos cuadrados de la media de las medidas de distancia, en función de la distancia real. 50 Ilustración 4-xvi. Aproximación por mínimos cuadrados de la desviación típica de las medidas de distancia, en función de la distancia real. 51 Ilustración 4-xvii. Proceso seguido a partir de los experimentos hasta el modelo de la distancia medida. 52 Ilustración 4-xviii. Diagrama de bloques del modelo de la distancia medida. 53 Ilustración 5-i. Diagrama de bloques del proceso de localización usando el modelo de distancia medida. 54 Ilustración 5-ii. Diagrama de bloques del proceso de localización usando las medidas reales obtenidas del kit de DecaWave. 55 Ilustración 5-iii. Algoritmo de posicionamiento 56 Ilustración 5-iv. Intersección de 3 esferas proyectadas sobre el eje XY con medidas sin error. 56 Ilustración 5-v. Situación de las anclas en el plano XY. 57 Ilustración 5-vi. Esquema del proceso de localización para el caso de medidas simuladas. 59 Ilustración 5-vii. Habitación. 60 Ilustración 5-viii. Habitación con móvil. 61 Ilustración 5-ix. Posición estimada. 62 Ilustración 5-x. Habitación con posiciones de desplazamiento. 63 Ilustración 5-xi. Movimiento 64 Ilustración 5-xii. Caso basado en medidas reales. 65 Ilustración 5-xiii. Habitación vacía 66 Ilustración 5-xiv. Habitación con móvil. 67 Ilustración 5-xv. Posición estimada 68 Ilustración 6-i. Obstrucción parcial del rayo directo con una pared como obstáculo. 69 Ilustración 6-ii. Amplitud de la señal recibida en magnitud, para el caso de visión directa 70 Ilustración 6-iii. Amplitud de la señal recibida en magnitud, para el caso de visión directa incluyendo valores reales e imaginarios. 70 Ilustración 6-iv. Pared como obstáculo. 70 Ilustración 6-v. Rayo por debajo del umbral. 71 Ilustración 6-vi. Rayo por encima del umbral 71 Ilustración 6-vii. Obstrucción total del rayo directo con un objeto metálico como obstáculo. 72
xix Ilustración 6-viii. Distancia corta 73 Ilustración 9-i. Software 82 Ilustración 9-ii 83 Ilustración 9-iii. Instalación 83 Ilustración 9-iv. Estado inicial del software 84 Ilustración 9-v. Configuración del Ancla. 85 Ilustración 9-vi. Mensajes ‘blink’. 86 Ilustración 9-vii. Ranging. 87 Ilustración 9-viii. Trama TX 88 Ilustración 9-ix. Trama RX 88 Ilustración 9-x. Respuesta impulsiva 88 Ilustración 9-xi. Tráfico SPI 89
xxi ÍNDICE DE TABLAS Tabla 1. Comparación de distintas tecnologías de comunicación. 16 Tabla 2. Comparación de frecuencias y anchos de banda con distintas tecnologías. 18 Tabla 3. Acontecimientos importantes. 20 Tabla 4. Configuración de los interruptores S1. 25 Tabla 5. Modos de operación. 26 Tabla 6. Parámetros y definición. 55
Notación MSE Mean square error RMSE < Root mean square error Menor o igual > Mayor o igual GPS Global Positioning System RSS nivel de potencia AoA ángulo de llegada ToA tiempo de llegada UWB Ultra-Wide Band IEEE Institute of Electrical and Electronics Engineers FCC Federal Communications Commission B Ancho de banda. 𝑓0 Frecuencia central dB Decibelio 𝑓𝑈 frecuencia superior 𝑓𝐿 frecuencia inferior NB NarrowBand WB WideBand WPAN Wireless Personal Area Network WLAN Wireless Local Area Network EIRP Límite de emisión HDR/VHDR High/Very High Data Rate LDR/LDR-LT Low Data Rate with Location Tracking
xxiii
1 INTRODUCCIÓN L A geolocalización siempre me ha entusiasmado, mapas, GPS, brújulas… cualquier artilugio con el que poder orientarte, el día que empecé la carrera ya sabía que mi proyecto final tenía que estar relacionado con la localización, y lo he conseguido, aunque no tal y como esperaba. Siempre que hablamos de localización de personas u objetos, pensamos en la tecnología GPS, yo el primero hasta hace unos meses, es sin duda la más extendida, tanto en el ámbito civil como militar, y más actualmente, donde casi todos los dispositivos que se venden tienen incorporado un GPS, pero, ¿Qué pasa cuando entramos en un edificio? Perdemos la señal, GPS es incapaz de funcionar en entornos interiores. La tecnología GPS (Global Positioning System) está ampliamente extendida, la mayoría de dispositivos inteligentes suelen incorporar esta tecnología, desde relojes inteligentes o ‘smartWatch’ hasta los ya conocidos y tradicionales sistemas de navegación para los automóviles. Pero sin duda, donde más se está explotando el GPS es en los dispositivos móviles, por la cantidad de aplicaciones que se pueden desarrollar. Sin entrar en detalles, GPS se nutre de una constelación nominal formada por 24 satélites operativos que transmiten señales unidireccionales. [1] Sin embargo, esa señal sufre una gran degradación cuando nos encontramos en posiciones interiores o indoor. Actualmente existen muchas tecnologías para determinar la posición en dicha situación, la más conocida es 802.11 o más conocida como WiFi, no obstante, existen grandes desventajas y limitaciones en cuanto a su alcance y coste. UWB es posiblemente una de las mejores alternativas, y lo mejor aún, está sin explotar. Sus grandes prestaciones a corto alcance, así como su bajo coste, otorgan a esta tecnología un papel con un futuro muy prometedor. Existen distintas técnicas para estimar la posición de un objeto según el nivel de potencia (RSS), tiempo de llegada (ToA) y ángulo de llegada (AoA) de la señal recibida. Nosotros según el Hardware del que disponemos vamos a desarrollar este proyecto usando la técnica ToA. 1.1 Motivación La motivación de este proyecto es estudiar el comportamiento de un sistema UWB actual en el estándar IEEE 802.15.4-2011 en situaciones reales, principalmente con línea de visión directa. Para llevar a cabo esta investigación contamos con un Kit de DecaWave compuesto por dos transmisores UWB para hacer las pruebas necesarias. Este proyecto me causa un gran interés, ya que une mi pasión por la localización con una nueva tecnología aun por explotar. Espero que les guste tanto como a mí, ya que he disfrutado cada párrafo que he escrito en este documento.
UWB 18 18 A continuación, vemos una tabla con las distintas frecuencias centrales y anchos de banda que usan las principales tecnologías de comunicación de hoy en día. GSM UMTS WI-FI GPS B aproximado 200 KHz a 25Mhz 3.8 MHz 16.6 MHz 20 MHz 𝑓0 aproximado 900,1800 MHz 1950, 2150 MHz 2400, 5200 MHz 1600 MHz B (%) 0.02-3% 0.2% 0.7% 1.3% Tabla 2. Comparación de frecuencias y anchos de banda con distintas tecnologías. UWB se caracteriza por su gran ancho de banda en comparación con el resto de tecnologías, como vemos en la siguiente imagen 2-iv, UWB ocupa parte del espectro de las demás tecnologías, pero al estar delimitada en potencia, esta no llega a interferir en las demás. Ilustración 2-iv. Comparación de la densidad espectral de potencia y frecuencia según la frecuencia central. Por último, vamos a comparar los pulsos según el ancho de banda en el dominio del tiempo y la frecuencia. UWB se basa como ya sabíamos, en pulsos muy estrechos con una duración que tiende a 0s. Esto en el dominio de la frecuencia se traduce en un ancho de banda grande.
19 Ilustración 2-v. Comparación de pulsos en los dominios del tiempo y frencuencia. Los pulsos en banda estrecha (NarrowBand) tienen una duración en el dominio del tiempo que tiende a infinito, por lo que en el dominio frecuencial se traduce en un ancho de banda muy pequeño al contrario de lo que sucede en UWB. 2.2. Localización en interiores Hemos usado las siguientes referencias para el desarrollo de este apartado: [7] [8] [14] [15] La localización en interiores es una tecnología aun en desarrollo, especialmente en el ámbito civil. Los casos en los que resulta útil esta tecnología son muy diversos, si hablamos del ámbito civil podemos citar, por ejemplo: - Comercios: localizar objetos en tiendas o almacenes. - Hospitales y sanidad: monitorizar personas con necesidades especiales, localizar equipos u objetos en hospitales. - Edificios públicos: geolocalizar personas y orientarlas en cualquier situación. Si hablamos del ámbito militar, nos encontramos por ejemplo con: - Seguridad pública: controlar individuos en prisión, operaciones de búsqueda y rescate. - Misiones militares: misiones en interiores, localización de equipos y personas. Todos estos ejemplos son solo algunos casos de aplicaciones de la tecnología UWB en interiores, que han despertado el interés de muchos fabricantes en desarrollar productos de geolocalización de interiores usando UWB.
UWB 20 20 Ilustración 2-vi. Diagrama de bloques de un sistema de posicionamiento. Como hemos comentado en el apartado anterior, UWB está basada en pulsos ultracortos, los transmisores y receptores pueden determinar el tiempo de llegada (ToA) con precisión de nanosegundos, lo que quiere decir una precisión de unos pocos centímetros, como comprobaremos en posteriores apartados. En la figura 2-vi podemos apreciar un diagrama de bloques del caso general de un sistema de posicionamiento usando la tecnología UWB. La distancia entre las anclas y el nodo se puede calcular siguiendo distintas técnicas, aunque en este proyecto solo utilizaremos TOA. A continuación, utilizando un algoritmo de posicionamiento se determina la posición estimada del objeto. 2.3. Acontecimientos importantes En este último apartado teórico vamos a citar y definir brevemente los acontecimientos más importantes en la historia de la tecnología UWB. En la siguiente tabla vemos las fechas más significativas: [8] [16] [2] [17] [18] ACONTECIMIETO AÑO ONDAS ELECTROMAGNÉTICAS 1893 SISTEMAS DE RADAR POR FASE 1950s AVANCES EN EL DESARROLLO ELECTROMÁGNETICO EN EL DOMINIO DEL TIEMPO 1960s TRANSISTOR DE AVALANCHA Y DIODO TUNEL Principio de los 70s SENSOR RADAR DE CORTO ALCANCE 1972 DISPOSITIVOS DE PULSO EN BANDA ESTRECHA Finales de los 70s AVANCES EN TECNOLOGIA RADAR 1980s, 1990s COMERCIALIZACIÓN DE DISPOSITIVOS UWB 2000s ESTANDAR IEEE 2000s Tabla 3. Acontecimientos importantes.
21 A día de hoy, las ondas sinusoidales son el método dominante de Comunicaciones inalámbricas. Sin embargo, los primeros sistemas de comunicaciones estaban basados en pulsos, igual que nuestra tecnología UWB. En 1983, Heinrich Hertz uso una descarga de chispas para producir ondas electromagnéticas. A finales de los años cincuenta, el Lincoln Laboratory & Sperry hicieron un esfuerzo para desarrollar sistemas de radar por fase. El Radar de Escaneo Electrónico (ESR) de Sperry empleó una denominada Matriz de Fase Híbrida Butler que era una interconexión de acopladores de línea ramificada de 3 dB conectados de tal manera que formaba una red de puerto 2-N. El desarrollo del osciloscopio sampling a inicios de los 60s y las correspondientes técnicas para generación de pulsos en banda base en menos de un nanosegundo aceleró el desarrollo de UWB. De las técnicas de medición en los años 60, el foco principal se movió al desarrollo de los dispositivos del radar y de las comunicaciones. El radar de penetración de tierra se desarrolló posteriormente, ya que los componentes de baja frecuencia eran útiles en objetos penetrantes. En 1973 fue concedida la primera patente en EEUU para comunicaciones UWB. La mayoría de las aplicaciones y desarrollos en esa fecha fueron en el ámbito militar, debido a la baja probabilidad de interceptación de las comunicaciones y la gran precisión que ofrecía la tecnología UWB. A comienzo de los 2000s se comenzó a comercializar dispositivos y sistemas de comunicaciones UWB. Compañías como TimeDomain y en particular emprendedoras como XtremeSpectrum fueron pioneras usando UWB.
Entorno de trabajo 22 22 3 ENTORNO DE TRABAJO S muy importante conocer el entorno de trabajo en el que se ha desarrollado este proyecto, a continuación se intentará detallar de la mejor forma posible la situación, parámetros, y cualquier otra información importante para conocer la forma en que se ha realizado este proyecto. 3.1. Introducción En este apartado vamos a describir el entorno de investigación en el cual se ha realizado este Proyecto. Hemos usado las siguientes referencias para el desarrollo de este apartado: [19] [20] [21] [22] [23] [24] [11] 3.2. Equipos Para desarrollar este proyecto, contamos con el kit EVK1000 Evaluation Kit, el cual incluye: • 2 placas EVB1000. • 2 antenas. • 2 cables USB 2.0. • Guía de inicio rápido. E
23 Ilustración 3-i. Kit decaWave. La placa de evaluación EVB1000 mide 7cm x 7cm. La parte frontal contiene una pantalla LCD que se utiliza para mostrar información de las medidas de distancia, también disponemos de un interruptor (S1) que controla el modo de operación. Ilustración 3-ii. EVB1000. La parte trasera contiene el DW1000 IC, el ARM IC, el botón de ARM reset, dos interruptores DIP (S2 y S3), el conector JTAG, la conexión externa SPI y varios conectores y jumpers para configurar el modo de operación.
Entorno de trabajo 24 24 Ilustración 3-iii. Placa de evaluación que contiene el DW1000. 3.2.1 Transmisores Este Kit incluye dos placas EVB1000. Ilustración 3-iv. EVB1000 3.2.1.1 Características • Cumple IEEE 802.15.4-2011 UWB y las máscaras definidas por FCC y ETSI. • Soporta 6 bandas RF de 3.5GHz a 6.5GHz.
25 • Programación de la potencia de salida. • Soporta voltaje de 2.8V a 3.6V. • Tasa de datos de 110kbps, 850 kbps y 6.8Mbps. • Longitud máxima del paquete 1023 bytes para determinadas aplicaciones. • Soporta Ranging TDOA . 3.2.1.2 Beneficios • Localización con una precisión de 10 cm. • Rango de operación hasta de 290m con 110kbps de tasa de datos en estructuras RTLS . • Alta inmunidad frente desvanecimiento multitrayecto. • Batería de larga duración. 3.2.1.3 Ajuste Las posibilidades de ajustar y modificar el comportamiento de nuestro hardware son prácticamente ilimitadas, pero en este trabajo vamos a abordar principalmente las funcionalidades con respecto a la comunicación de nuestro sistema. En este sentido, tenemos el interruptor S1, compuesto a su vez por 8 interruptores. Interruptor OFF ON Descripción S1-1 Desactivar ARM Activar ARM Funcionalidad ARM (si no es necesaria puede dejarse a OFF) S1-2 Desactivar fast-ranging (150ms) Activar fast-ranging (5ms) Ajusta el tiempo de respuesta de las medidas S1-3 Activar USB to SPI Desactivar USB to SPI Necesario para poder ejecutar la aplicación DecaRanging S1-4 Activa el rol TAG Activa el rol ANCLA Cambia el rol S1-5 Modos de operación S1-6 S1-7 S1-8 Desactiva la configuración remota del tiempo de respuesta Activa la configuración remota del tiempo de respuesta Permite a la aplicación DecaRanging modificar el tiempo de respuesta. Tabla 4. Configuración de los interruptores S1.
Entorno de trabajo 26 26 Modos de operación: S1-5 S1-6 S1-7 Modo Canal Tasa de datos PRF Preámbulo Código de preámbulo Off Off Off 1 2 110 kbps 16 1024 3 On Off Off 2 2 6.8 Mbps 16 128 3 Off On Off 3 2 110 kbps 64 1024 9 On On Off 4 2 6.8 Mbps 64 128 9 Off Off On 5 5 110 kbps 16 1024 3 On Off On 6 5 6.8 Mbps 16 128 3 Off On On 7 5 110 kbps 64 1024 9 On On On 8 5 6.8 Mbps 64 128 9 Tabla 5. Modos de operación. La comparación de los distintos modos de operación podemos verla en el Apartado 3.4.3 Configuración de parámetros 3.2.2 Software Véase Apéndice B. Instalación y uso del Software 3.3. Estimación de la distancia. ‘Ranging’. En las medidas de distancia usaremos un conjunto de tres mensajes para determinar la distancia a la que se encuentran dos nodos. El tiempo desde que enviamos el mensaje hasta que obtenemos la respuesta, es el retardo del viaje de ida y vuelta entre nuestros dos nodos, calculando ese retardo (Td en la Ilustración 3-vi) podremos obtener de forma aproximada la distancia que los separa. 3.3.1 Emparejamiento Al principio, tanto el TAG como el ANCLA no está asociados a ningún dispositivo. En la situación inicial, el TAG está constantemente enviando mensajes ‘blink’ (cada segundo), los cuales incluyen su propia dirección. Se muestra el mensaje ‘awaiting response’ en la pantalla LCD de nuestro TAG. El ANCLA se mantiene en el estado de escucha, a la espera de recibir un mensaje ‘blink’. En la pantalla LCD
27 podemos ver el mensaje ‘awaiting poll’. Una vez el ANCLA recibe un mensaje ‘blink’ y decide emparejarse con ese TAG, envía un mensaje de inicio de Ranging para asociarse y terminar la fase de emparejamiento. Ilustración 3-v. Emparejamiento. 3.3.2 Intercambio de datos El procedimiento es muy simple, al comienzo se adjudica a uno de los extremos la funcionalidad de TAG y al otro extremo la funcionalidad de ANCLA. El ANCLA está continuamente escuchando los mensajes del TAG. Una medida de distancia se inicia cuando el TAG envía el mensaje de sondeo, una vez el ancla recibe este mensaje envía el mensaje de respuesta. Al recibir este mensaje el TAG, podemos decir que ya están ‘asociadas’ y comienza la trasmisión de datos (como hemos explicado en la sección anterior). Ilustración 3-vi. Intercambio de datos. El TAG envía el mensaje final con los datos de transmisión y recepción, la respuesta anterior del ANCLA y el mensaje en sí. Este mensaje es utilizado por el ANCLA junto a sus propios datos de transmisión y recepción para calcular el tiempo de ida y vuelta en la comunicación.
Entorno de trabajo 34 34 Ilustración 3-xv. Situación con una aplicación de PC. 3.4.3 Configuración de parámetros En este apartado vamos a ver las diferentes formas de configurar nuestro equipo. En interiores el rango aumenta en comparación con el espacio libre, ya que las reflexiones de trayectorias múltiples dan señal adicional al receptor. Podemos distinguir dos formas de propagación, LOS y NLOS: • LOS (Line of sight) propagación en espacio libre con visión directa. • NLOS (Non Line of sight) Propagación en espacio libre con visión no directa (parcial o completamente obstruida). El rango operacional depende de tres factores principalmente: 1. Tasa de datos de la trama. 2. Longitud del preámbulo. 3. Frecuencia central del canal y ancho de banda. A continuación, vamos a explicar las diferencias de comportamiento según como ajustemos nuestro sistema. 3.4.3.1 Tasa de datos de la trama • TASA DE DATOS: Las velocidades de datos más bajas tienen un rango mayor que las velocidades de datos más altas, por lo que para maximizar el rango debe seleccionarse la velocidad de datos más baja (110 kbps). A menor tasa de datos, mayor precisión y rango de operación.
35 3.4.3.2 Preámbulo Primero definiremos el preámbulo, el cual no es más que una secuencia repetida de pulsos que sigue un patrón definido según la IEEE 802.15.4. Los dispositivos en el mismo canal físico usando distintos códigos de preámbulo operan simultáneamente como si fueran canales separados. • LONGITUD DEL PREAMBULO: En términos generales, la operación de largo alcance requiere una longitud de preámbulo larga para dar al receptor el mayor tiempo posible para "entrenar" a la señal entrante. La longitud del preámbulo debe seleccionarse conjuntamente con la velocidad de datos. No tiene sentido utilizar un preámbulo muy largo con una velocidad de datos rápida a largo alcance porque el receptor no podrá recibir los datos independientemente de la longitud del preámbulo. Sin embargo, a velocidades de datos lentas, los preámbulos más largos dan un aumento en el rango operativo. Para maximizar el alcance, debe elegirse una velocidad de datos lenta en conjunción con un preámbulo largo (2048). 3.4.3.3 Canal y ancho de banda Es importante resaltar que en cada región se aplica un reglamento distinto, por lo que deberíamos revisar la norma antes de operar. IEEE 802.15.4 UWB PHY define los canales de 0 a 10 GHz, además debemos tener en cuenta que los canales pueden tener la misma frecuencia central pero diferente ancho de banda. • FRECUENCIA CENTRAL DEL CANAL: A mayor frecuencia central, menos rango operacional, como ya sabemos, a menor frecuencia, las comunicaciones sufren menos. De ese modo, las frecuencias más bajas se propagan más lejos que las frecuencias más altas. Finalmente concluimos, para maximizar el rango debe seleccionarse la frecuencia de canal más baja posible (Canal 1: 3,5 GHz). • ANCHO DE BANDA DEL CANAL: Un ancho de banda de canal más amplio, permite que se transmita más energía al canal que un ancho de banda más estrecho. Para maximizar el rango se debe usar el ancho de banda del canal más ancho. En realidad, en el DW1000, debido a que el primer canal de banda ancha está a 4 GHz y el canal de frecuencia más baja está a 3,5 GHz, el beneficio debido al aumento de ancho de banda a 4 GHz es compensado por la mayor frecuencia central, y los mejores resultados se consiguen en el canal 1. 3.4.3.4 PRF • PRF: La frecuencia de repetición de impulsos tiene un impacto muy pequeño, en el rango de las comunicaciones, una PRF de 64 MHz da un rendimiento algo mejor que 16 MHz.
Entorno de trabajo 36 36 El EVK1000 viene preconfigurado al modo 3. Este es el modo de operación preprogramado con el rango más largo. Utiliza el canal preprogramado de frecuencia más baja (canal 2), la velocidad de transmisión de datos más lenta (110 kbps) y el preámbulo preprogramado más largo (1024). Por defecto, solo los modos 3 y 5 están calibrados de fábrica. Usaremos estos dos métodos para la realización de nuestros experimentos. Para ver más, consultar el apartado 3.5.2 Parámetros y situación. Por tanto, en nuestro Proyecto, las pruebas se han realizado con los modos de operación 3 y 5. 3.5. Laboratorio 3.5.1 Introducción En esta sección explicaremos con más detalle la colocación de cada equipo: En la figura 3-v podemos ver la situación explicada anteriormente “INT-EXT”, recordamos que consiste en un transmisor conectado a un ordenador en el que se ejecutaba el software Decaranging y otro transmisor que utiliza internamente una aplicación de software instalada, EVB1000 ON-BOARD RANGING APPLICATION, esta aplicación controla el IC DW1000 para hacer todo el procedimiento de análisis de medidas de manera automática, mostrando el resultado en la pantalla LCD frontal. Las tomas de datos que hemos utilizado en los posteriores análisis se han realizado en esta situación. Ilustración 3-xvi. Situación ilustrativa. A continuación, vemos en la foto de la figura 3-xvii la situación real ilustrada en la figura anterior 3-xvi. En la foto podemos ver un portátil con el software del fabricante DecaWave corriendo, conectado vía USB a un transmisor UWB. Al otro lado de la mesa, en la parte inferior derecha, tenemos el otro transmisor UWB conectado a una batería.
37 Ilustración 3-xvii. Situación real. 3.5.2 Parámetros y situación Es importante describir los parámetros que se han configurado y la situación. Las medidas de distancia se han realizado siempre dentro de la ETSI, en concreto en 3 situaciones distintas: - Pasillo E2 que conecta el departamento de Ingeniería de sistemas y automática. - Pasillo central del departamento de Teoría de la señal y comunicaciones. - Sala de investigadores del anterior departamento. Y los experimentos han sido los siguientes: 3.5.2.1 Medidas de larga distancia (1m – 60m): Estas medidas fueron realizadas en intervalos de un metro, en el pasillo de la planta E2. Se usó como ancla un nodo configurado como tal y conectado a un ordenador en el que se ejecutaba el software Decaranging. El funcionamiento fue INT-EXT. En el otro extremo se colocó un nodo conectado a una batería, configurado con el rol TAG y el cual se iba alejando en línea recta. Ambos nodos fueron colocados con un taburete como base y usando el modo de operación 5. 3.5.2.2 Medidas de media distancia (1m – 25m): Estas medidas fueron realizadas en intervalos de un metro, en el pasillo central del departamento de Teoría de la señal y comunicaciones.
Entorno de trabajo 38 38 Se usó como ancla un nodo configurado como tal y conectado al software “DecaRanging”. El funcionamiento fue INT-EXT. En el otro extremo se colocó un nodo conectado a una batería, configurado con el rol TAG y el cual se iba alejando en línea recta. Ambos nodos fueron colocados con un taburete como base y usando el modo de operación 5. 3.5.2.3 Medidas de corto alcance (1m-5m): Estas medidas fueron realizadas en intervalos de 50 cm, en la sala de investigadores del departamento de Teoría de la señal y comunicaciones. En esta habitación se realizaron la mayoría de los experimentos, podemos distinguir las siguientes situaciones: - INT-INT: se realizaron una serie de medidas sin ningún tipo de software externo, únicamente con los dos nodos conectados a sus respectivas baterías, en este caso se usó el modo de operación 3. - INT-EXT: en uno de los nodos se usó la aplicación de software “DecaRanging” configurado como ancla, esta toma de medidas es similar a las de media y larga distancia. - INT-INT y INT-EXT con obstáculos: en esta situación se usaron como obstáculos el armario y la estantería metálica que había en dicha habitación, también se usaron las paredes que las componen, situando los nodos en diferentes posiciones, como analizamos en el capítulo 6 Obstáculos Ilustración 3-xviii. Las tres situaciones distintas, de izquierda a derecha: larga, media y corta distancia. Todas las medidas INT-INT pueden consultarse en Apéndice A: Tablas , mientras que las medidas INT-EXT pueden consultarse en los scripts de Matlab Apéndice C: Ficheros de Matlab * En el caso de INT-EXT cada media y desviación típica fue obtenida con un mínimo de 50 medidas.
39 4 MODELO n esta sección tenemos como objetivo obtener un modelo lo más preciso posible del error de nuestro sistema. Comenzaremos analizando la señal que recibimos en uno de nuestros nodos, a continuación, veremos las distintas fuentes de error que nos afectan y por último vamos a analizar los experimentos realizados para obtener nuestro modelo. Representaremos la media y desviación típica de nuestras medidas y usando la aproximación por mínimos cuadrados definiremos nuestro modelo de la distancia medida. Por último. describiremos un modelo alternativo modelando el error. 4.1. Introducción En este capítulo, gracias a las mediciones realizadas en el laboratorio y a una serie de scripts de Matlab, vamos a modelar la distancia medida de nuestro sistema UWB. Con el fin de determinar con precisión las prestaciones de nuestro sistema de medida de distancia basado en DW1000 es necesario adoptar un enfoque sistemático para la evaluación y posterior análisis de los datos. El proceso seguido es colocar los dos nodos (uno de ellos configurado como ancla y otro como tag) a una distancia física conocida, tomar varias mediciones y calcular la media y la desviación estándar de los valores medidos. Este proceso se puede repetir para tantas distancias físicas como sean requeridas para la aplicación deseada. En nuestro caso las pruebas han sido realizadas con visión directa. En esta sección se han utilizado los siguientes scripts de Matlab (los podemos encontrar en el Capítulo 10): signalUWB.m distribucionNormalDefinitiva.m minimosCuadrados.m medidasDeDistancia.m 4.2. Análisis de la señal recibida Un sistema LTI queda completamente caracterizado por su respuesta a impulso, ya que cualquier señal se puede descomponer en suma de impulsos, basta conocer esta respuesta para conocer la respuesta a cualquier señal. [13] A continuación, vemos una imagen (4-i) obtenida con Matlab, en ella se representa la respuesta impulsiva del canal para una posición concreta de nuestros transmisores UWB, en concreto, esta señal proviene de un nodo configurado como ANCLA, en el modo de operación 5 y con línea de visión directa con el TAG objetivo. E
Modelo 40 40 Ilustración 4-i. Extracto de señal recibida Si hacemos zoom y aplicamos la formula Magnitud=sqrt(valorReal^2+valorImaginario^2) podemos representar la señal para un análisis más profundo: Ilustración 4-ii. Respuesta impulsiva en magnitud. Como vemos en la figura 4-ii, claramente estamos en una situación de visión directa, sin apenas obstáculos, ya que el rayo directo corresponde con el primer rayo por encima del umbral que recibe nuestra ANCLA. A la derecha de nuestro rayo directo, vemos todos los rayos que han llegado reflejados, ya que tienen un retardo mayor que el camino directo. Ambas figuras son obtenidas mediante el script signalUWB.m , el cual usa los datos del log de decaWave. Para activar el log ver el apartado 9.2: Uso
41 4.3. Fuentes de error En este apartado vamos a definir las principales fuentes de error que afectan a nuestro sistema. [21] [22] [5] [10] [25] [7] [8] [2] ❖ Ruido térmico Afecta a SNR, determina el error fundamental. ❖ Desvanecimiento multitrayecto La dispersión multi-trayecto siempre existe, resultado de la interferencia constructiva y destructiva de las diferentes trayectorias. En el apartado anterior, podemos ver una imagen donde aparece este efecto. (Ilustración 4 ii. Respuesta impulsiva en magnitud). ❖ Bloqueo en el rayo directo Cuando hay obstáculos bloqueando totalmente el rayo directo, las únicas señales recibidas son reflexiones, por lo que las medidas resultantes son incorrectas, aumentando el retardo de la señal y en consecuencia aumentando la distancia calculada entre los dos nodos (suele ser un error positivo). Para ver más, consultar el apartado 6.3 Obstrucción total del rayo directo ❖ Rayo directo con retardo en exceso Si los obstáculos no bloquean totalmente el rayo directo, dependiendo de los materiales que atraviese, el tiempo de propagación varía, lo que supone una componente de error en la medida. (la medida siempre va a tener cierto error). Consultar el apartado 6.2 Obstrucción parcial del rayo directo 4.4. Histograma Una vez realizados todos los experimentos, es el momento de analizar nuestros resultados. Hemos usado la siguiente bibliografía, además de la citada en el texto de este apartado: [26] [27] [28] En este caso no partimos de las situaciones descritas en el apartado 3.5.2 Parámetros y situación; para analizar un histograma, necesitamos el máximo número de muestras posibles a una distancia fija. Por tanto, para esta sección, hemos usado el software de decaWave para almacenar los logs en cada distancia, esperando aproximadamente cinco minutos en cada posición. En el apartado 9.2.2 Exportar datos con Matlab se explica el proceso para obtener los datos en Matlab. Una vez tenemos exportados los ficheros, representamos el histograma de las medidas de distancia en cada posición mediante nuestro script distribucionNormalDefinitiva.m, obteniendo lo siguiente: En la Ilustración 4-iii se representa el histograma de las medidas de distancia para diferentes casos de distancia real. Todos los casos se corresponden con línea de visión directa excepto los dos últimos.
Modelo 42 42 Ilustración 4-iii. Histograma de las medidas de distancia De la gráfica anterior podemos sacar las siguientes conclusiones: -Para el caso LOS (línea de visión directa), vemos que el histograma de las medidas de distancia tiene forma aproximada de la famosa Campana de Gauss (ilustrada en la figura 4-vi), esta campana sale centrada aproximadamente en la distancia real, por lo que el error es una Gaussiana de media cercana a cero. -Para la situación de NLOS (línea de visión no directa), aunque se pudiera representar con una Gaussiana para cada posición particular, el sesgo en cada posición particular será diferente ya que depende de la posición de los obstáculos. Entonces, cuando se unen los resultados de distintas posiciones para obtener un modelo global, sale un histograma que no sigue una campana de Gauss. [29] [29] [30] Ilustración 4-iv. Curva Gaussiana
43 A continuación, representamos el histograma anterior de las medidas de distancia junto a su función de densidad normal, como comentamos anteriormente, el histograma de la media de la distancia tiene forma de la famosa Campana de Gauss, por tanto, representamos el histograma con su función de densidad normal para comprobar que, efectivamente, tiene una forma acampanada y es simétrica respecto de un determinado parámetro estadístico (en el caso de visión directa). Esta función se corresponde con una función gaussiana. [31] Ilustración 4-v. Histograma con función de densidad normal. Por último, vamos a representar el histograma de la distribución de la probabilidad, en la figura 4-vi.
Modelo 50 50 4.6. Mínimos cuadrados En este apartado, vamos a aplicar la técnica de mínimos cuadrados para ajustar la media y la desviación típica con el criterio de mínimo error cuadrático. Concretamente vamos a partir de la situación de larga distancia (Ver el apartado 3.5.2.1 Medidas de larga distancia (1m – 60m):) ya que es la situación con mayor rango. Hemos usado la siguiente bibliografía además de la ya citada en este apartado: [37] [25] [38] [39] [40] [41] [42] Para aplicar esta técnica hemos usado el script de Matlab minimosCuadrados.m. y hemos empleado la siguiente función de Matlab: - polyfit: p = polyfit(x, y, n) ,devuelve los coeficientes de un polinomio p(x) de grado n (en nuestro caso de grado 1) que es un mejor ajuste (mínimos cuadrados) para los datos en y. Los coeficientes p son en potencias descendentes, y la longitud de p es n+1. A continuación, vamos a usar el script de Matlab medidasDeDistancia.m 4.6.1 Modelo de la media de las medidas de distancia, en función de la distancia real. Como vemos en la siguiente imagen, la media de las medidas de distancia en función de la distancia real queda aproximada a una línea con pendiente igual a 1, con tan solo unos centímetros de error casi inapreciables en esta gráfica. En este caso, hemos aplicado mínimos cuadrados a la situación de larga distancia, ya que es la situación a partir de la cual vamos a modelar nuestro error. Ilustración 4-xv. Aproximación por mínimos cuadrados de la media de las medidas de distancia, en función de la distancia real.
51 4.6.2 Modelo de la desviación típica de las medidas de distancia, en función de la distancia real. Para la desviación típica de las medidas de distancia obtenemos un leve aumento, modelado como lineal, al aumentar la distancia real. Ilustración 4-xvi. Aproximación por mínimos cuadrados de la desviación típica de las medidas de distancia, en función de la distancia real. Vemos en la figura 4-xvi que, en 60 m de distancia real, el valor de la desviación típica no llega a superar los 4 cm. 4.6.3 Modelos Vamos a resumir lo que tenemos hasta aquí, hemos sacado histograma de las medidas de distancia y obtenido la siguiente conclusión: Para el caso LOS (línea de visión directa), vemos que el histograma de las medidas de distancia tiene forma de la famosa Campana de Gauss, esta campana sale centrada aproximadamente en la distancia real, por lo que el error puede modelarse como una Gaussiana de media cercana a cero. A continuación, hemos aplicado el algoritmo de “mínimos cuadrados” a la media y desviación típica en la situación de larga distancia, ya que es en la que más rango tenemos. En este proyecto se podrían haber seguido dos caminos distintos, dos modelos totalmente compatibles:
Modelo 52 52 - Modelo de la distancia medida, el aplicado en este proyecto, la distancia simulada se modela como una Variable aleatoria que sigue una distribución normal cuyos parámetros dependen de la distancia real: Medida simulada=Variable aleatoria (distancia real) - Modelo de error, la distancia simulada se modela como la suma de la distancia real más un error que sigue una distribución normal: Medida simulada = Medida real + error aleatorio Cualesquiera de los dos modelos son válidos a la hora de usar un algoritmo de posicionamiento, como veremos en el capítulo 5 Sistema de posicionamiento 4.6.3.1 Modelo de distancia medida A continuación, en la figura 4-xvii podemos ver el proceso seguido desde que realizamos los experimentos hasta finalmente modelar la distancia medida, explicado en el apartado anterior 4.6.3 Modelos. Ilustración 4-xvii. Proceso seguido a partir de los experimentos hasta el modelo de la distancia medida. El modelo de distancia medida es el modelo que usaremos en los apartados posteriores, básicamente modelamos la distancia medida como una variable aleatoria en función de la distancia real. Medida simulada = Variable aleatoria (medida real).
53 Ilustración 4-xviii. Diagrama de bloques del modelo de la distancia medida. En la figura 4-xviii vemos el diagrama de bloques correspondiente al modelo de la distancia medida.
Sistema de posicionamiento 54 54 5 SISTEMA DE POSICIONAMIENTO Hay algo que da esplendor a cuanto existe, y es la ilusión de encontrar algo a la vuelta de la esquina. (Gilbert Keith Chesterton) n este capítulo vamos a aplicar nuestro modelo de la distancia medida a distintas situaciones reales y simuladas donde intentaremos estimar la posición de un objeto u objetos mediante un algoritmo de localización. 5.1 Introducción Vamos a diferenciar dos situaciones, en la primera, a partir de medidas reales, le aplicaremos nuestro modelo de distancia para obtener las medidas simuladas y posteriormente un algoritmo de localización para obtener la localización aproximada (figura 5-i). Ilustración 5-i. Diagrama de bloques del proceso de localización usando el modelo de distancia medida. En la segunda, usaremos medidas reales obtenidas mediante el kit de DecaWave a las que le aplicaremos el mismo algoritmo de localización para estimar la localización (figura 5-ii). E
55 Ilustración 5-ii. Diagrama de bloques del proceso de localización usando las medidas reales obtenidas del kit de DecaWave. Es importante detallar el significado de cada variable, en la siguiente tabla podremos encontrarlos. Símbolo Significado Unidades Descripción d Distancia real m Distancia física real entre dos nodos d’ Medida de distancia m Medida simulada mediante nuestro modelo r Medida de distancia experimental m Medida de distancia que nos proporciona nuestro sistema DW1000 (La distancia que aparece en los LCD de las placas) (𝒙 , 𝒚 ) Posición estimada (m,m) Posición estimada Tabla 6. Parámetros y definición.
Sistema de posicionamiento 56 56 5.2. Algoritmo de localización Existen cientos de algoritmos y métodos distintos para calcular de forma más o menos precis la posición de un objeto, en nuestro caso se ha elegido la trilateración por simplicidad y rapidez. [43] Ilustración 5-iii. Algoritmo de posicionamiento Como indicamos anteriormente, este método destaca por su simplicidad. Con un mínimo de tres anclas y sus respectivas medidas podemos aproximar la situación de objeto, esto se consigue trazando una circunferencia con radio ‘distancia medida’ y centro en cada ancla. La región determinada por la intersección de las esferas nos determina la posición estimada. Cuantas más anclas tengamos más precisión obtendremos. Nuestro algoritmo trabaja en tres dimensiones, encontrando las intersecciones entre las tres esferas, pero proyecta sobre el plano XY para encontrar la solución única al problema En la siguiente imagen podremos ver un ejemplo en el caso que las medidas fueran perfectas, sin error. Ilustración 5-iv. Intersección de 3 esferas proyectadas sobre el eje XY con medidas sin error.
57 5.2.1 Implementación en Matlab En este apartado vamos a explicar los pasos a seguir para estimar la posición usando la trilateración en Matlab. Para hallar la posición de nuestro punto objetivo (P a partir de ahora), basta con encontrar la intersección de las tres esferas que forman las 3 anclas. Estas esferas tienen de radio cada una la medida de distancia que hemos simulado con nuestro modelo. Comenzamos ubicando nuestras tres anclas en el plano xy. Como estamos en dos dimensiones, z=0. A continuación, debemos aplicar dos limitaciones al elegir la posición de los ejes para hallar la derivación de la solución del problema de trilateración tridimensional. Una de las anclas debe estar en el origen y otra en el eje X. En la siguiente imagen podemos ver la posición de nuestras anclas. Hemos colocado P1 en el origen, P2 en el ejeX y por comodidad P3 en el eje Y. Ilustración 5-v. Situación de las anclas en el plano XY. Es importante destacar que la posición de las anclas respecto del plano XY puede ser cualquiera, ya que podemos trasladar cualquier conjunto de tres puntos para cumplir con las limitaciones anteriores, encontrar el punto objetivo y luego invertir la traslación para volver al sistema de coordenadas original. Comenzamos definiendo las ecuaciones de las tres esferas. 𝑟1 2= 𝑥2+ 𝑦2+ 𝑧2 III 𝑟2 2= (𝑥 − 𝑑)2+ 𝑦2+ 𝑧2 IV
Sistema de posicionamiento 58 58 𝑟3 2= (𝑥 − 𝑖)2+ (𝑦 − 𝑗)2+ 𝑧2 V Para encontrar las intersecciones de la primera y segunda esfera, restamos la primera ecuación (III) menos la segunda (IV): 𝑟1 2− 𝑟2 2= 𝑥2−(𝑥2+ 𝑑2− 2𝑥𝑑) 𝑟1 2− 𝑟2 2= −𝑑2+ 2𝑥𝑑 𝑥 = 𝑟1 2− 𝑟2 2+ 𝑑2 2𝑑 VI Sustituyendo en cualquiera de las dos primeras ecuaciones obtenemos la intersección de ellas. Sustituimos en la primera por simplicidad (III): 𝑟1 2= (𝑟1 2− 𝑟2 2+ 𝑑2 2𝑑 )2+ 𝑦2+ 𝑧2 VII Ya tenemos dos posibles puntos objetivos, usamos la tercera ecuación (V) para determinar cuál es la solución. Despejamos las incógnitas “y” y “z” en la tercera ecuación (V) y esta última (VII): 𝑦2+ 𝑧2= 𝑟1 2− (𝑟1 2− 𝑟2 2+ 𝑑2 2𝑑 )2 𝑟3 2= (𝑥 − 𝑖)2+ (𝑦 − 𝑗)2+ 𝑧2 𝑟3 2= (𝑥 − 𝑖)2+ 𝑦2+ 𝑗2− 2𝑦𝑗 + 𝑧2 𝑦2+ 𝑧2= 𝑟3 2−(𝑥 − 𝑖)2− 𝑗2+ 2𝑦𝑗 Igualamos: 𝑟3 2−(𝑥 − 𝑖)2− 𝑗2+ 2𝑦𝑗 = 𝑟1 2− (𝑟1 2− 𝑟2 2+ 𝑑2 2𝑑 )2 Sabemos de (VI) que 𝑥 = 𝑟1 2− 𝑟2 2+ 𝑑2 2𝑑 Por tanto: 𝑟3 2−(𝑥 − 𝑖)2− 𝑗2+ 2𝑦𝑗 = 𝑟1 2− 𝑥2 Despejando para y obtenemos: 𝑦 = 𝑟1 2− 𝑟3 2− 𝑥2+ (𝑥 − 𝑖)2+ 𝑗2 2𝑗 = 𝑟1 2− 𝑟3 2+ 𝑖2+ 𝑗2 2𝑗 − 𝑖 𝑗𝑥 VIII
59 Con lo que obtendríamos nuestra posición estimada {x,y} *En nuestro caso, i=0, ya que P3 está sobre el eje Y 5.3. Medidas simuladas En esta situación hemos utilizado los siguientes scripts de Matlab (Apéndice C. Ficheros de Matlab): scriptModelo.m variableAleatoria.m trilateracion.m minimosCuadrados.m 5.3.1 Introducción. En esta primera situación vamos a partir de una situación imaginaria, como una habitación vacía de 10x10m. Primero vamos a calcular la distancia real de las anclas con el nodo objetivo, es importante destacar que en todo momento estamos suponiendo que este nodo está quieto en esa posición. Usando un script de Matlab, vamos a modelar la distancia medida como explicamos anteriormente, siguiendo una distribución normal con una media y desviación típica obtenida de la toma de datos en los experimentos con el hardware de decaWave. Esa medida de distancia simulada es lo que en nuestro segundo caso consideramos medidas obtenidas de nuestras antenas de decaWave. Por último, gracias al algoritmo de localización explicado anteriormente, calcularemos la posición aproximada de nuestro objeto. En la siguiente imagen 5-vi podemos ver esto de forma analítica. Ilustración 5-vi. Esquema del proceso de localización para el caso de medidas simuladas.
Sistema de posicionamiento 66 66 5.4.2 Habitación Como hemos comentado, partimos de la situación de una habitación vacía de 3x3m sin ningún tipo de obstáculo en su interior. Las anclas están colocadas en cada esquina, dejando una vacía. Ilustración 5-xiii. Habitación vacía
67 5.4.3 Posición exacta Ya definidas las posiciones de las anclas, vamos a colocar nuestro nodo, lo identificaremos con una cruz azul. Ilustración 5-xiv. Habitación con móvil.
Sistema de posicionamiento 68 68 5.4.4 Posición estimada Una vez ejecutemos nuestro script de Matlab, nos representará la estimación de la posición y el error cuadrático medio, como vemos la estimación tiene una precisión de cms. El error de localización en este caso es de 0.0172m., lo definimos como la distancia entre la posición verdadera y la posición estimada (Lo obtenemos gracias al script scriptDeca.m). Ilustración 5-xv. Posición estimada
69 6 OBSTÁCULOS Hasta ahora hemos considerado que siempre estaremos en la situación de visión directa, y esto no se ajusta a la realidad, en la que frecuentemente tendremos algún tipo de obstáculo que limite parcial o completamente la visión en nuestro sistema de comunicación. Este tema sería interesante para proponerse como un futuro TFG, ya que lo que aquí se explica será una breve introducción. 6.1. Introducción Para realizar los siguientes experimentos nos hemos ubicado en el departamento de Teoría de la señal y comunicaciones. En una habitación destinada para ello, usando como obstáculos paredes, sillas o armarios metálicos. En esta sección se ha utilizado el siguiente script de Matlab: SignalUWB.m 6.2. Obstrucción parcial del rayo directo En esta situación, hemos usado paredes o cualquier tipo de objeto no metálico para realizar las mediciones. Podemos consultar la tabla XX para ver el resultado exacto de las mediciones. Ilustración 6-i. Obstrucción parcial del rayo directo con una pared como obstáculo.
Obstáculos 70 70 Vamos a recordar la forma de la señal recibida cuando nos encontrábamos en la situación de visión directa: Ilustración 6-ii. Amplitud de la señal recibida en magnitud, para el caso de visión directa Ilustración 6-iii. Amplitud de la señal recibida en magnitud, para el caso de visión directa incluyendo valores reales e imaginarios. Y ahora vemos la señal recibida, con una pared como obstáculo (distancia real de 2,5m): Ilustración 6-iv. Pared como obstáculo. Como vemos en la figura 6-iv, la pared atenúa levemente el rayo directo (en comparación con el caso de visión directa representado en las figuras 6-ii y 6-iii), de manera que ya no se corresponde con el de máxima energía. Sin embargo, hay algoritmos de estimación del tiempo de llegada que pueden solventar esta dificultad
71 reduciendo el error de estimación al valor debido al retardo por propagación a través de un medio material distinto del aire. Por ejemplo, en la figura puede apreciarse que el algoritmo implementado por defecto por DecaWave ofrece una estimación satisfactoria. 6.2.1 Análisis Vamos a colocar los nodos a una distancia de 140 centímetros (valdría cualquier situación) con una pared entre los nodos que impida la visión directa entre ellos. A continuación, analizamos la señal recibida en dos instantes diferentes. Ilustración 6-v. Rayo por debajo del umbral. En la figura 6-vii, aunque no podemos ver el rayo directo, sabemos que se ha tomado como ruido porque el error en la medida ha sido bastante grande. También podemos apreciar como no se ha elegido como rayo directo un rayo anterior al elegido, ya que no sobrepasa el umbral de potencia. La medida de distancia en ese instante de tiempo fue de 3.41 metros. Tanto en la figura 6-vii como en la figura 6-viii vemos en el inferior un parámetro FPhw, este parámetro indica el valor del tiempo donde el sistema ha estimado que está el camino directo y será muy útil en los próximos análisis. Ilustración 6-vi. Rayo por encima del umbral En la figura 6-viii, en cambio, el algoritmo interno del transmisor DW1000 ha considerado un nuevo rayo
Obstáculos 72 72 como rayo directo o ‘first path’, ya que ha superado el umbral mínimo de potencia para no ser considerado como ruido. Observando el parámetro FPhw, vemos que en la figura 6-viii ‘FPhw ‘es menor que en la figura 6-vii, esto quiere decir que el considerado como nuevo rayo directo tiene un tiempo de propagación menor que en la situación anterior de la figura 6-vii. La medida de distancia en ese instante de tiempo fue de 3.005 metros. Esta medida tiene un error menor que en la situación anterior de la figura 6-vii, ya que el rayo que se ha elegido como rayo directo ha tenido un tiempo de propagación menor, y por tanto se ha estimado una distancia menor. Ambas mediciones (figuras 6-vii y 6-viii) se han realizado en la misma situación y distancia, sin embargo, la atenuación que sufre la señal varía en cada momento y depende de muchos factores que no podemos controlar. Igualmente, en ambas situaciones (figuras 6-vii y 6-viii), debido al error tan grande al estimar la distancia medida, podemos concluir que estamos en la situación de visión no directa (NLOS), ya que se ha tomado como ‘first path’ una reflexión, aumentando así el tiempo de propagación y como resultado la distancia medida. Lo que se correspondería con la realidad, ya que hemos situado los nodos sin visión directa entre ellos. *Según DecaWave, si la diferencia entre la potencia de la señal recibida y del primer rayo por encima del umbral, es inferior a 6dB el canal es probable que sea LOS, mientras que si la diferencia es mayor que 10dB el canal es probable que sea NLOS. 6.3. Obstrucción total del rayo directo En esta situación, vamos a usar un armario de metal como obstáculo, realizaremos distintas pruebas a diferentes distancias para estudiar su comportamiento. Es de esperar que el resultado sea bastante peor que en la situación anterior (pared) debido a un bloqueo total del rayo directo por parte del metal. Ilustración 6-vii. Obstrucción total del rayo directo con un objeto metálico como obstáculo.
73 6.3.1 Análisis Empezamos realizando pruebas a una distancia corta (medio metro entre los nodos). En este caso obtenemos una medida de distancia de 1.25 metros (media de 50 mediciones), una medición con un error de 75 cms, totalmente inaceptable en la mayoría de aplicaciones de alta precisión. Ilustración 6-viii. Distancia corta Esto es debido a que el primer rayo, correspondiente a la línea de visión directa entre los dos nodos, ha sido bloqueado totalmente. Al no haber un rayo directo que supere el umbral de potencia, en el instante que correspondería a ese rayo directo solamente hay ruido. Por tanto, el rayo elegido por el algoritmo ('first path') se correspondería con la primera reflexión que supere el umbral de potencia. Al calcular la distancia medida, obtendremos un desfase positivo por el siguiente motivo. El software de nuestro sistema tiene un umbral de potencia recibida por la cual decide cúal ha sido el rayo directo o ‘first path’. En el caso de que nuestro rayo directo no supere ese umbral (por atenuación al atravesar distintos materiales), se tomará como rayo directo el siguiente que sobrepase ese umbral. Esto quiere decir que tratará una reflexión como el rayo directo, provocando así un retardo positivo en el tiempo de propagación y por lo tanto un error positivo en el resultado de la medición.
Resultados y Conclusiones 74 74 7 RESULTADOS Y CONCLUSIONES En este apartado vamos a exponer las conclusiones finales de este proyecto. Diferenciamos claramente dos partes; la parte del modelado de la medida de distancia y el sistema de posicionamiento. En el modelado de la distancia medida, en el caso de visión directa, llegamos a la conclusión de que podemos modelar nuestra distancia medida como una variable aleatoria que sigue una distribución normal de media μ(d) y desviación típica σ(d), siendo d la distancia real entre los nodos considerados. Hemos observado que es útil considerar el modelo como función de la distancia real, ya que la desviación típica de las medidas aumenta con la misma. El modelo obtenido permite hacer una simulación realista de un sistema de localización basado en un dispositivo actual con tecnología UWB. Para el caso de visión no directa, no podemos aplicar este modelo, por lo que quedaría como línea de trabajo futura. En la parte del sistema de posicionamiento, hemos tomado dos caminos: - Utilizando nuestro modelo de distancia medida: En esta situación, hemos obtenido una precisión de centímetros, tal y como garantiza el fabricante DecaWave, para la situación de un objeto fijo en una habitación vacía con tres anclas y en todo momento sobre el plano XY (bidimensional). También se ha simulado el posible movimiento de un objeto, simulando varias posiciones y obteniendo la raíz del error cuadrático medio del total de las posiciones simuladas. En los casos simulados el RMSE ha sido del orden de cm, no superando los 3 cm. - Partiendo de medidas reales obtenidas con el kit del fabricante DecaWave: En esta situación utilizamos los transmisores y el software que nos proporciona DecaWave. Los resultados varían según el lugar donde realicemos los experimentos: o Cuando nos encontramos en una habitación vacía y con visión directa en todas las mediciones, los resultados son idénticos al caso en que utilizamos el modelo de distancia medida, en cuanto a orden de magnitud del error. Destacar que, dentro de la Escuela Técnica Superior de Sevilla, lugar donde se han realizado los experimentos, con visión directa, no hemos encontrado una distancia entre los transmisores donde el error empiece a ser significativo, lo cual podría interpretarse como el alcance del sistema. (Distancia máxima comprobada: 65m). o En el momento que existe algún obstáculo (visión no directa), la precisión varía notablemente, dependiendo del tipo de obstáculo la precisión se ve afectada en mayor o menor medida.
75 La finalidad del presente proyecto es la evaluación de un dispositivo actual basado en tecnología UWB en la aplicación de la localización en interiores. En concreto, un dispositivo del fabricante DecaWave basado en el estándar IEEE802.15.4-2011. Concluimos, por tanto: La tecnología UWB es apropiada para la localización en interiores. En los casos en los que el objeto a localizar tenga visión directa con al menos tres anclas, la estimación tiene un error de escasos centímetros, y lo mejor aún, el alcance es mayor al resto de tecnologías con las que compite. Además, destacamos su capacidad de penetración en los casos sin visión directa frente a otras tecnologías, aunque habrá tipos de obstáculos que provoquen un error importante, por lo que la mitigación de los errores en los casos sin línea de visión directa sigue constituyendo un reto vigente. Gracias a su inmunidad al efecto multi-camino, es posible distinguir entre la señal directa y las señales reflejadas en los obstáculos. Todas estas ventajas sin interferir en otros sistemas de comunicaciones (los demás sistemas ven las señales UWB como ruido). La alta precisión obtenida en el caso de visión directa sugiere que los sistemas UWB basados en una estrategia de detección y descarte de las medidas sin línea de visión directa constituyen una alternativa prometedora para los sistemas de localización. El único punto negativo encontrado para esta tecnología es su coste de implantación en la actualidad. Hay pocos fabricantes en comparación con otras tecnologías y existe menos competencia. Además, la tecnología no está tan extendida en el usuario medio como el resto de tecnologías, por lo que resulta más complicado vender un sistema UWB para localizar, por ejemplo, alimentos en un centro comercial, que vender un sistema basado en WiFi para el mismo propósito, ya que es una tecnología más conocida. Sin embargo, los estudios de esta tecnología están aumentando en los últimos años notablemente, queda claro que, si aumentan de la misma forma los fabricantes de transmisores UWB, tal y como está ocurriendo (Agilion, CDS Wireless, Eliko, LLC RTLS, Sewio, Zigpos...), pronto veremos muchos sistemas de localización basados en esta tecnología en situaciones cotidianas.
Apéndice B. Instalación y uso del Software 82 82 Ilustración 9-i. Software B) Descargamos el fichero “stsw-stm32102.zip”, una vez descargado lo ejecutamos y seguimos las instrucciones para completar la instalación:
83 Ilustración 9-ii Ilustración 9-iii. Instalación C) Ya podemos lanzar nuestra aplicación, ejecutamos el fichero “DecaRanging.exe”
Apéndice B. Instalación y uso del Software 84 84 Ilustración 9-iv. Estado inicial del software 9.2. Uso En esta sección vamos a explicar cómo usar nuestro software proporcionado por decaWave. Una vez instalado nuestro programa según Instalación , recordaremos la situación inicial: Por un lado, tenemos un nodo configurado como ancla, el cual está conectado vía USB a un PC con la aplicación DecaRanging (véase INT-EXT), y por otro lado tenemos un nodo configurado como tag controlado por EVB1000 ON-BOARD RANGING APPLICATION. A continuación, vamos a emparejar nuestros nodos, como vimos en Emparejamiento, nuestro tag comienza a enviar ‘blink’ a la espera de ser escuchado y respondido por otro nodo. Tenemos que configurar nuestra ancla para que pueda escuchar estos mensajes blink. Para ello, configuramos los parámetros para que operen en el mismo canal y con la misma configuración.
85 Ilustración 9-v. Configuración del Ancla. Esta es la configuración elegida ya que nuestro tag opera con esos parámetros (Véase Ajuste , para la configuración del nodo). Es importante destacar que tenemos que configurar nuestra ancla al principio con el rol de ‘listener’, para que se mantenga a la escucha y a la espera de ser emparejada. Si hemos configurado correctamente ambos nodos, comenzaremos a recibir los mensajes ‘blink’. Lo siguiente que haremos será cambiar el rol a ‘anchor’ (ancla), nos aparecerá un mensaje y tendremos que elegir la dirección de nuestro tag. En la imagen podemos ver de fondo los mensajes ‘blink’ y el cuadro de diálogo con la elección de nuestro tag.
Apéndice B. Instalación y uso del Software 86 86 Ilustración 9-vi. Mensajes ‘blink’. Estos pasos son los que definen el emparejamiento, a continuación, el ancla envía un mensaje de inicio de Ranging para asociarse y terminar la fase de emparejamiento. En la pantalla de nuestro PC Podemos ver la distancia estimada:
87 Ilustración 9-vii. Ranging. 9.2.1 Logs En este apartado vamos a explicar los distintos logs que podemos conseguir usando la aplicación de decaWave. En las opciones que tenemos en la parte superior de la ventana, es ‘Debug’, en ella tenemos dos opciones destacadas para guardar los logs. La primera opción es Log Channel Responses en la cual guardamos toda la información sobre las tramas enviadas y la respuesta impulsiva del canal. La segunda opción es Log SPI Activity, en esta opción almacenamos todo el tráfico SPI, esta opción es menos relevante, pero en otros proyectos puede ser de gran ayuda. Cuando pulsamos en cualquiera de las opciones, comienza el debug, en la parte inferior derecha aparece un botón ‘stop logging’ el cual una vez pulsado detiene el debug y guarda automáticamente un nuevo fichero. Este nuevo fichero se encuentra dentro de la raíz de la aplicación, con la extensión xxxSPI.log para la segunda opción y xxxAccum.log para la primera opción. A continuación, vamos a ver un ejemplo de cada opción. 9.2.1.1 Log Channel Responses En este tipo de fichero nos encontramos con dos tipos de tramas, por un lado, las tramas enviadas y por otro las recibidas junto con la distancia estimada. El intervalo de envío de tramas es de un segundo, por lo tanto, tendremos tantas tramas como segundos dure nuestro debugging. Ejemplo de trama enviada:
Apéndice B. Instalación y uso del Software 88 88 Ilustración 9-viii. Trama TX Ejemplo de trama recibida: Ilustración 9-ix. Trama RX Cada trama va acompañada de la respuesta impulsiva del canal en ese instante, se representa con dos columnas, una con los valores imaginarios y la otra con los valores reales. Ejemplo de respuesta impulsiva: Ilustración 9-x. Respuesta impulsiva
89 Lo más importante de este fichero es la respuesta impulsiva del canal para su posterior análisis, y la distancia estimada en cada trama recibida, para obtener la media y desviación típica de la misma. 9.2.1.2 Log SPI Activity. En nuestra situación, esta opción tiene menos interés, ya que la información que obtenemos no es relevante para estimar la posición. Un ejemplo del tráfico SPI sería el siguiente: Ilustración 9-xi. Tráfico SPI 9.2.2 Exportar datos con Matlab A continuación, vamos a ver cómo exportar estos datos a Matlab y cómo tratarlos. Partimos de un fichero generado con la opción Log Channel Responses. Mediante la consola de Linux creamos el siguiente script: #!/bin/bash # -*- ENCODING: UTF-8 -*- sudo cat $2 | grep -ao "Dist:.*. m" >>$1 sed -i 's/Dist: //g' "$1" sed -i 's/ m//g' "$1" Para llamarlo desde la consola seguimos la siguiente nomenclatura (en la misma carpeta que el script): ./script.sh {ficheroDeSalida} {ficheroDeEntrada} El funcionamiento de este script es fácil, las dos primeras líneas son comunes a la hora de crear un script, en la tercera línea mostramos por pantalla el contenido del fichero de entrada y le aplicamos el filtro para que solo guardemos en el fichero de salida las líneas que contengan “Dist: …m”. Sabemos de Log Channel Responses que, de toda la trama recibida, el único dato que nos interesa para el análisis del histograma es la distancia estimada en cada trama. Por tanto, con grep, nos quedamos solo con todas las distancias estimadas dentro del fichero. Recordar que los logs se corresponden a medidas fijas en una determinada posición. Las dos líneas siguientes tienen como función despejar los datos y dejar una columna con todas las distancias estimadas. Una vez tenemos “limpio” el fichero, procedemos a la exportación a Matlab. Con los siguientes comandos exportamos los datos a nuestro entorno de trabajo:
Apéndice B. Instalación y uso del Software 90 90 A = importdata('150cmLISTO.log'); figure(1) histogram(A) Esto es un extracto del fichero distribucionNormalDefinitiva.m Un ejemplo de un fichero sería el siguiente: 4.885205 4.840646 4.860580 4.878169 4.868788 4.891068 4.882859 4.889895 4.925073 4.909829 4.880514 4.881687 4.878169 4.923900 4.906311 4.928590 4.920382 4.926245 4.899276 4.925073 9.2.3 Ficheros En esta sección se van a describir los ficheros obtenidos por el software del fabricante DecaWave y utilizados en Matlab: • 150cmLISTO.log Visión directa a 1.5m • 3mconparedLISTO.log Visión no directa a 3m con una pared como obstáculo • 3mmetalLISTO.log Visión no directa a 3m con un armario de metal como obstáculo • 5mLISTO.log Visión directa a 5m • 8mLISTO.log Visión directa a 8m • 12mmLISTO.log Visión directa a 12m • 16mLISTO.log Visión directa a 16m • 200mLISTO.log Visión directa a 2m Estos ficheros están disponibles en: https://drive.google.com/file/d/0B-
91 GMCMvDvSZQTVE3RGlIYmZDZEE/view?usp=sharing .
10 Apéndice C. Ficheros de Matlab 98 98 %valores %% %distancia larga %Media X=[1.0108, 2.0669, 2.9739, 4.0620, 5.0036, 5.9330, 6.9595, 7.9331, 8.9285, 9.9347, 10.9924, 11.9588, 12.9369, 13.9565, 14.9097, 15.93577,17.0258,18.0650,19.0774,20.0077, 21.1010,22.2090,23.0120,24.1143,25.2231,26.0786,27.1412,28.0738,29.3876,30.0104,31.1595, 32.0781,33.1990,34.3096,35.0413,36.2581,37.3391,38.0840,39.4510, 40.0498,41.0976,42.0769,43.1714,44.2764, 45.0740,46.1184,47.2374,48.0597,49.1621,50.1057,51.0110,52.1745,53.3309,54.0812, 55.0451,56.0057,57.0024,58.3157,59.2030,60.1013]; %desviación tipica Z=[1.98,1.61, 1.49, 1.53, 1.68,1.20,1.35,1.15,1.71,2.25,1.09,1.86,1.65,1.90,1.14,2.01,2.15,2.02,1.42,1.95,2.48,2,1.85,1.83, 1.63,2.11,1.82,1.85,2.57,2.33,2.70,2.41,1.2,1.36,1.75,2.10,1.86,1.73,1.31,1.57,2.93,2.16,2.67,1.3 7,2.91,2.49,1.56,2.48,2.03,2.69,2.33,2.51,2.98,3.29,2.16,3.12,2.75,2.75,1.96,2.06]; %valores Y=1:60; %% %distancia media %media X2=[0.81,1.85,2.80,3.88,4.87,5.77,6.72,7.75,8.70,9.74,10.76,11.74,12.72,13.74,14.83,15.73,16.8 0,17.56]; %valores Y2=1:18; %desviación tipica Z2=[2.70,1.93,1.70,1.69,1.96,2.14,2.08,2.60,1.51,1.42,1.70,1.44,1.27,2.31,2.38,2.28,2.45,2.54]; %% %distancia corta %media X3=[14,17.21,22.6,25.88,38.36,41.4,48,59,69,70,77.82,86,97.2,147,195.6,246,298,348.2,398.2]/ 100; %valores Y3=[20,25,30,38,42,50,52,62,72,75,80,90.5,100,150,200,250,300,350,400]/100; %desviación tipica Z3=[2.31,1.22,1.75,1.92,1.88,1.46,2.09,1.66,2.65,1.61,2.01,2.52,2.11,1.08,2.17,2.89]; %% %representacion Media figure(1) plot(Y,X,'*'); %plot(X,Y,'-r'); % legend('Valores medidos') xlabel('Distancia Real (m)'); ylabel('Media (m)');
99 axis([ 0 65 0 65 ]); grid on figure(2) plot(Y2,X2,'*'); %plot(X,Y,'-r'); % legend('Valores medidos') xlabel('Distancia Real (m)'); ylabel('Media (m)'); axis([ 0 20 0 20 ]); grid on figure(3) plot(Y3,X3,'*'); %plot(X,Y,'-r'); % legend('Valores medidos') xlabel('Distancia Real (m)'); ylabel('Media (m)'); axis([ 0 5 0 5 ]); grid on %% %representacion desviación tipica %Z=[1.98,1.61, 1.49, 1.53, 1.68,1.20,1.35,1.15,1.71,2.25,1.09,1.86,1.65,1.90,1.14,2.01,3.15,3.02,1.42,1.95,3.48,2,1.85,1.83, 1.63,2.11,1.82,1.85,2.57,2.33,2.70]; %Z=Z/10; figure(4) plot(Y,Z,'*'); % legend('Valores medidos') xlabel('Distancia Real (m)'); ylabel('Desviación tipica (cm)'); axis([ 0 60 0 10 ]); grid on %Representación del Histograma % figure(5); % Thist=0:0.5:5; % hist(Z,Thist); % legend('Histograma') % xlabel('Varianza (cm^2)'); %Minimos cuadrados-->media mcMed=polyfit(Y,X,1); % y=mc(0)*x+mc(1) %representamos la recta Yminc=Y; Ypm=polyval(mcMed,Yminc);
10 Apéndice C. Ficheros de Matlab 100 100 figure(6); hold on plot(Yminc,Ypm) plot(Y,X,'*'); %plot(X,Y,'-r'); legend('Mínimos cuadrados','Media de los valores medidos'); grid on xlabel('Distancia Real (m)'); ylabel('Media (m)'); hold off %Minimos cuadrados-->desviación tipica mcVar=polyfit(Y,Z,1); % 1-->recta 2-->curva %representamos la recta YmincVar=Y; Ypv=polyval(mcVar,YmincVar); figure(7); hold on plot(YmincVar,Ypv) grid on plot(Y,Z,'*'); xlabel('Distancia Real (m)'); ylabel('Desviación tipica (cm)'); legend('Mínimos cuadrados','Desviación típica de los valores medidos'); axis([ 0 60 0 10 ]); hold off
101 10.2 Sistema de Posicionamiento Ficheros de Matlab utilizados en el capítulo 5. 10.2.1 Medidas simuladas 10.2.1.1 scriptModelo.m % Script BASE para la ejecucion del algoritmo de posicionamiento % se parte de las distancias reales entre un nodo y las anclas, la distancia % se modela como una variable aleatoria que sigue una distribucion normal, % a esa distancia simulada se le aplica el algoritmo de localización % APARTADO 5 -> POSICIONAMIENTO %Autor: Luis de la Calle %% %---------------------------Datos hardcodeados--------------- % POSICION DE LAS ANCLAS % RESTRICCIONES: % - todas las anclas deben estar en el plano z=0 % - Un ancla debe estar en el origen y otra sobre el eje X % ANCLA 1-->(0,0) % ANCLA 2-->(10,0) % ANCLA 3 -->(0,10) AnclasX=[0,10,0]; AnclasY=[0,0,10]; a=3;%numero de anclas s=1; %numero de nodos %posicion de los nodos NodoX=[1,2,3,4,5]; NodoY=[5,4,3,2,2]; %-------------------------------------------------------------------- %para cada ancla y nodo, inicializamos las matrices % Nodo1 Nodo2 Nodo3 % MATRIZ = [ d11 , d12 , d13 ] Ancla 1 % [ d21 , d22 , d23 ] Ancla 2 % [ d31 , d32 , d33 ] Ancla 3 dAncla=zeros(a,s); dSimulada=zeros(a,s); errorAcumuladoTotal=0;
10 Apéndice C. Ficheros de Matlab 102 102 for c = 1:1:s %para cada nodo for cd = 1:1:a %para cada ancla %distancia real dAncla(cd,c)=sqrt( (abs(AnclasX(cd)-NodoX(c))^2) + (abs(AnclasY(cd)-NodoY(c))^2) ); %distancia simulada dSimulada(cd,c)=variableAleatoria(dAncla(cd,c)); end [posx(c),posy(c),errorCuadratico]=trilateration(a,AnclasX,AnclasY,dSimulada(:,c),NodoX(c),NodoY (c)); errorAcumuladoTotal=errorAcumuladoTotal+errorCuadratico; end MSE=(sum(errorAcumuladoTotal)/(s)); % Mean Squared Error RMSE = sqrt(MSE) % Root Mean Squared Error 10.2.1.2 variableAleatoria.m % Función variableAleatoria.m, esta función obtiene del fichero % minimosCuadrados.mat la recta de minimos cuadrados de la media y desviación típica de nuestra toma de datos, % a continuación calculamos la variable aleatoria normal en funcion de la media y desviación típica anterior, esta sería % nuestra distancia estimada, que es lo que devuelve nuestra funcion % APARTADO 5 -> POSICIONAMIENTO %Autor: Luis de la Calle %% function [medidaSimulada] = variableAleatoria(distReal ) load('minimosCuadrados.mat') %calculamos la media y desviación típica media= mcMed(1)*distReal+mcMed(2); %mc(0)*X+mc(1) desvTipica=mcVar(1)*distReal+mcVar(2); % Distribucion normal rng(0,'twister'); a = desvTipica; b = media; y = (a)*randn(1) + b; medidaSimulada=y; end
103 10.2.1.3 trilateracion.m % Algoritmo de localizacion BASE, en este caso usamos la trilateracion % La explicación la encontramos en el APARTADO v del presente documento %Autor: Luis de la Calle %% function [x, y,errorCuadratico] = trilateration(a, AnclasX,AnclasY, dSimulada,NodoX,NodoY ) %limpiamos las figuras clf(figure(1)); clf(figure(2)); clf(figure(3)); % clf(figure(4)); % Numero y posicion de las anclas nAnclas=a; P=zeros(a,2); for c = 1:1:a %para cada nodo D(c)=dSimulada(c,1); P(c,1)=AnclasX(c); P(c,2)=AnclasY(c); end posicionAncla = P; posicionMovil= [NodoX NodoY]; %% Transformación % i = dot(ex, (P(3,:) - P(1,:))); i = 0; %en nuestro caso i=0 porque P3 esta en el eje Y ex = (P(2,:) - P(1,:)) / (norm(P(2,:) - P(1,:))); %eje X ey = (P(3,:) - P(1,:) - i*ex) / (norm(P(3,:) - P(1,:) - i*ex)); %eje Y d = norm(P(2,:) - P(1,:)); %distancia entre las anclas 1 y 2 sobre el eje X j = dot(ey, (P(3,:) - P(1,:))); %distancia entre las anclas 1 y 3 sobre el eje Y %% Estimacion x = ((D(1)^2) - (D(2)^2) + (d^2))/(2*d); %ejeX y = (((D(1)^2) - (D(3)^2) + (i^2) + (j^2))/(2*j)) - ((i/j)*x); %ejeY %% Representación %habitación
10 Apéndice C. Ficheros de Matlab 104 104 figure(1); plot(posicionAncla(:,1),posicionAncla(:,2),'ko','MarkerSize',8,'lineWidth',2,'MarkerFaceColor','k'); grid on hold on title(['Habitacion']) legend('Anclas') axis([-0.1 1.1 -0.1 1.1]*10) xlabel('x (m)'); ylabel('y (m)'); %habitacion con movil figure(2); plot(posicionAncla(:,1),posicionAncla(:,2),'ko','MarkerSize',8,'lineWidth',2,'MarkerFaceColor','k'); grid on hold on plot(posicionMovil(:,1),posicionMovil(:,2),'b+','MarkerSize',8,'lineWidth',2); title(['Habitacion con movil']) legend('Anclas','Movil') axis([-0.1 1.1 -0.1 1.1]*10) xlabel('x (m)'); ylabel('y (m)'); %Estimación figure(3) plot(posicionAncla(:,1),posicionAncla(:,2),'ko','MarkerSize',8,'lineWidth',2,'MarkerFaceColor','k'); grid on hold on %posicion fija plot(posicionMovil(:,1),posicionMovil(:,2),'b+','MarkerSize',8,'lineWidth',2); %posicion estimada plot(x,y,'ro','MarkerSize',8,'lineWidth',2); axis([-0.1 1.1 -0.1 1.1]*10) legend('Anclas','Movil','Posicion estimada') axis([-0.1 1.1 -0.1 1.1]*10) xlabel('x (m)'); ylabel('y (m)'); %Root Mean Squred Error posicionMovilEst=[x,y]; error=(posicionMovilEst-posicionMovil); % error cuadrático para cada posición errorCuadratico=error.^2;
105 %ETSI %plot biblio http://blogs.mathworks.com/steve/2007/01/01/superimposing-line-plots/ % figure(4) % bw = imread('biblioteca.JPG'); % minX=0; % maxX=10; % minY=0; % maxY=10; % imagesc([minX maxX],[minY maxY],flipud(bw)); % %posicionAncla; % %posicionMovil; % hold on; % plot(posicionAncla(:,1),posicionAncla(:,2),'ko','MarkerSize',8,'lineWidth',2,'MarkerFaceColor','k'); % grid on % %posicion fija % plot(posicionMovil(:,1),posicionMovil(:,2),'b+','MarkerSize',8,'lineWidth',2); % %posicion estimada % plot(x,y,'ro','MarkerSize',8,'lineWidth',2); % set(gca,'ydir','normal'); % legend('Anclas','Movil','Posicion estimada') end
10 Apéndice C. Ficheros de Matlab 106 106 10.2.2 Medidas reales 10.2.2.1 scriptDeca.m % Script BASE para la ejecucion del algoritmo de posicionamiento % se Parte de las distancias estimadas que porporciona nuestro Hardware de decaWave entre un nodo y las anclas, % a esa distancia estimada se le aplica el algoritmo de % localización %Autor: Luis de la Calle %% %---------------------------Datos hardcodeados--------------- % POSICION DE LAS ANCLAS % ANCLA 1-->(0,0) % ANCLA 2-->(0,10) % ANCLA 3 -->(10,10) AnclasX=[0,3,3]; AnclasY=[0,0,2]; a=3;%numero de anclas s=1; %numero de nodos NodoX=[2,2,3,4,5]; NodoY=[1,4,3,2,2]; %NodoX=3; %NodoY=5; %-------------------------------------------------------------------- %para cada ancla y nodo dAncla=zeros(a,s); dSimulada=zeros(a,s); errorAcumuladoTotal=0; dSimulada(1,1)=2.1940; dSimulada(2,1)=1.3827; dSimulada(3,1)=1.3904; for c = 1:1:s %para cada nodo [posx(c),posy(c),errorCuadratico]=trilateracionDeca(a,AnclasX,AnclasY,dSimulada(:,c),NodoX(c),N odoY(c)); errorAcumuladoTotal=errorAcumuladoTotal+errorCuadratico; end MSE=(sum(errorAcumuladoTotal)/(s)); % Mean Squared Error RMSE = sqrt(MSE) % Root Mean Squared Error
107 10.2.2.2 trilateracionDeca.m function [x, y,errorCuadratico] = trilateracionDeca(a, AnclasX,AnclasY, dSimulada,NodoX,NodoY ) %limpiamos las figuras clf(figure(1)); clf(figure(2)); clf(figure(3)); %%LLAMADA nAnclas=a; P=zeros(a,2); for c = 1:1:a %para cada nodo D(c)=dSimulada(c,1); P(c,1)=AnclasX(c); P(c,2)=AnclasY(c); end posicionAncla = P; posicionMovil= [NodoX NodoY]; %% Transformación ex = (P(2,:) - P(1,:)) / (norm(P(2,:) - P(1,:))); %eje X i = dot(ex, (P(3,:) - P(1,:))); ey = (P(3,:) - P(1,:) - i*ex) / (norm(P(3,:) - P(1,:) - i*ex)); %eje Y d = norm(P(2,:) - P(1,:)); %distancia entre las anclas 1 y 2 sobre el eje X j = dot(ey, (P(3,:) - P(1,:))); %distancia entre las anclas 1 y 3 sobre el eje Y %% Estimacion x = ((D(1)^2) - (D(2)^2) + (d^2))/(2*d); %ejeX y = (((D(1)^2) - (D(3)^2) + (i^2) + (j^2))/(2*j)) - ((i/j)*x); %ejeY %% Representación %habitación figure(1);
Referencias 114 114 https://es.mathworks.com/help/matlab/ref/polyfit.html.. [43] Wikipedia, «Trilateración,» [En línea]. Available: https://es.wikipedia.org/wiki/Trilateraci%C3%B3n. [44] The MathWorks, Inc., «Display image with scaled colors,» [En línea]. Available: https://es.mathworks.com/help/matlab/ref/imagesc.html. [45] S. Eddins, «Superimposing line plots on images,» 2007. [En línea]. Available: http://blogs.mathworks.com/steve/2007/01/01/superimposing-line-plots/. [46] The MathWorks, Inc., «Random Numbers from Normal Distribution with Specific Mean and Variance,» [En línea]. Available: https://es.mathworks.com/help/matlab/math/random-numbers-with-specific-meanand-variance.html. [47] Aenor, «UNE-EN 12504-4:2006,» [En línea]. Available: http://www.aenor.es/aenor/normas/normas/fichanorma.asp?tipo=N&codigo=N0035266#.WOUSVaLvIU. [48] D. A. C. Velázquez, Cobertura dentro de construcciones para Comunicaciones Personales Móviles Vía Satélite . Modelo de propagación para interiores. [49] «Comportamiento de solidos heterogéneos (hormigón) frente a solicitaciones ultrasónicas,» [En línea]. Available: http://propagaciondeondascom1.blogspot.com.es/2012/11/atenuacion-y-absorcion-deondas.html.
115
Referencias 116 116