scieee AI-readable full text Open interactive document viewer

Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad

Tévar Ruiz, Juan Alonso

Abstract

El siguiente proyecto nace en el Departamento de Sistemas y Automática (DISA) de la Universidad Politécnica de Valencia (UPV), de la idea de dotar un vehículo quad de autonomía. El trabajo se divide en dos proyectos principales: la primera parte consiste en usar un telémetro láser para adquirir y procesar señales del entorno, para después analizarlas y trazar una trayectoria segura. La segunda parte se trata de tomar esta información acerca de la trayectoria y dotar al vehículo de los mecanismos adecuados para trazarla correctamente. En este caso el proyecto está vinculado únicamente a la primera parte, a la adquisición y procesamiento de la información recibida del sensor láser.

Full text

Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad PROYECTO FINAL DE CARRERA ALUMNO: Juan Alonso Tévar Ruiz TUTOR: Enrique J. Bernabéu Soler Ingeniería Informática Escuela Superior de Ingeniería Informática (ETSINF) Universidad Politécnica de Valencia (UPV) CURSO 2011/2012 Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 2 AGRADECIMIENTOS A mis padres, por brindarme la oportunidad de cursar esta titulación, encargarse de mí y construirme como persona. A ellos les debo el haber llegado tan lejos. A mi novia, por su apoyo incondicional y su infinita paciencia; por aguantar todo este tiempo a mi lado dándome ánimos y fuerzas para continuar. A mis profesores, por ilustrarme en este mundo tan complicado que es la informática. Por la formación que me han aportado y los conocimientos que me han brindado. A mis compañeros, porque todos estos años lejos de casa ellos han sido mi familia. Porque sin ellos los años de universidad no hubieran tenido sentido fuera de las aulas. Por los buenos momentos juntos y los ratos que aún nos quedan. Al departamento, por dejarme formar parte de este proyecto que tanto me sedujo desde el primer momento. Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 3 INDICE Resumen .................................................................... 5 Capitulo 1. El problema a tratar ................................. 6 Capitulo 2. Estado del arte ......................................... 7 2.1 Introducción al concepto de robots móviles autónomos ........................................................ 7 2.2 Sistemas de control de robots ..................... 8 Capitulo 3. Especificación .......................................... 12 3.1 Análisis de requisitos ................................... 12 3.2 Especificación del sistema ........................... 12 3.3 Planificación y estimación de costes ............ 14 Capitulo 4. Desarrollo del proyecto ............................ 16 4.1 Análisis ........................................................ 16 4.2 Diseño ......................................................... 18 4.3 Implementación ............................................ 20 Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 4 Capitulo 5. Pruebas y resultados ............................... 22 5.1 Descripción de Experimentos....................... 22 5.2 Resultado de las pruebas ............................ 23 Capitulo 6. Conclusiones y trabajo futuro ................... 24 6.1 Conclusiones ............................................... 24 6.2 Trabajo futuro .............................................. 25 Referencias ............................................................... 26 Índice de tablas y figuras ........................................ 27 Anexos ....................................................................... 28 Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 5 RESUMEN El siguiente proyecto nace en el Departamento de Sistemas y Automática (DISA) de la Universidad Politécnica de Valencia (UPV), de la idea de dotar un vehículo quad de autonomía. El trabajo se divide en dos proyectos principales: la primera parte consiste en usar un telémetro láser para adquirir y procesar señales del entorno, para después analizarlas y trazar una trayectoria segura. La segunda parte se trata de tomar esta información acerca de la trayectoria y dotar al vehículo de los mecanismos adecuados para trazarla correctamente. En este caso el proyecto está vinculado únicamente a la primera parte, a la adquisición y procesamiento de la información recibida del sensor láser. El problema a tratar surge de la dificultad que tienen los autómatas de tomar sus propias decisiones, dado que su capacidad de autonomía reside en el programa que ejecuta el robot. Se puede programar el dispositivo para que trace una ruta predeterminada, pero se corre el riesgo de encontrar algún tipo de obstáculo que impida que la tarea llegue a buen fin. De ahí que se piense en incorporar sensores capaces de interactuar con el medio de un modo on-line o dicho de otro modo, a medida que el robot se mueva por el entorno. Esto permitirá al autómata tomar la decisión más adecuada ante situaciones imprevistas. De esta manera, nos encontramos en un caso en el que tenemos que saber interpretar las señales leídas por los sensores y determinar cómo debe actuar nuestro autómata en consecuencia. La manera de abordar esta situación depende del programador, aunque la idea está clara: evitar que el móvil colisione con los objetos que le rodean encontrando un camino libre por el cual poder transitar. Como este proyecto se centra en la primera parte del objetivo final, no se podrá probar sobre el vehículo en un caso real, de manera que se ha generado una interfaz gráfica con un visor donde se representarán los datos adquiridos mediante el sensor. Dicha interfaz incorporará botones que permitirán al usuario definir el rango de lectura así como la precisión de las medidas. El presente documento recoge las fases por las que ha pasado el proyecto, desde la concepción de la idea hasta las conclusiones obtenidas del mismo y que demuestran la evolución del proyecto. Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 6 Capítulo 1.- El problema a tratar El objetivo del presente proyecto consiste en la implementación de un software de recepción y tratamiento de los datos enviados por un telémetro láser modelo SICK LMS 220. Dicho software está orientado a dotar de autonomía un vehículo de tipo quad, un prototipo que está siendo desarrollado por el Departamento de Ingeniería de Sistemas y Automática (DISA). El problema de la cinemática del vehículo no será tratado en este proyecto, de manera que en este caso trataremos únicamente la información de un modo off-line. No obstante, se tendrán en cuenta las dimensiones del vehículo a la hora de hacer los cálculos. La idea que se persigue es recibir las señales del dispositivo láser, tratarlas y elegir una dirección que permita al vehículo seguir avanzando sin toparse con ningún obstáculo. Dado que hay que tratar con la información de manera off-line, se diseñará una interfaz con el fin de interactuar con el dispositivo así como de visualizar los resultados Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 7 Capitulo 2. Estado del Arte 2.1. Introducción al concepto de Robots móviles autónomos En mecánica, el movimiento se define como un cambio de posición en el espacio por parte de un sistema o de alguno de sus elementos con respecto a ellos mismos o a una referencia. En referencia a los sistemas robotizados, surge el concepto de movilidad, que denota la capacidad del robot para realizar dichos movimientos, ya sea mediante traslación o mediante la rotación del dispositivo o de alguna de sus partes. El primero de los casos implica un desplazamiento, y es lo que se asocia al concepto de robot móvil. Los robots móviles pueden desplazarse siguiendo una trayectoria programada o interactuando con el medio, en cuyo caso se habla de autonomía. Para que un robot sea autónomo debe ser capaz de tomar decisiones en función de la información suministrada por los sensores de acuerdo a una estrategia de actuación. Uno de los aspectos más importantes de la robótica móvil es la navegación, o técnica que permite al móvil desplazarse de un punto a otro, salvando los obstáculos que pueda haber por el camino, ya sea en un entorno predefinido o en uno desconocido. El proceso de la navegación se podría dividir en tres subprocesos, atendiendo a la intencionalidad del móvil de encontrar un camino que le lleve del punto origen al punto destino: - Proceso de percepción: reconocimiento de elementos característicos del entorno que permiten obtener un modelo del mismo, mediante el empleo de información previa y/o de la proporcionada por sensores externos - Proceso de planificación: partiendo del modelo anterior, emplear una estrategia adecuada para la obtención de un camino libre de obstáculos que lleve a la meta (la meta puede plantearse como un punto intermedio del recorrido, de manera que se divide el problema en sub-problemas fácilmente abordables), así como de las trayectorias a seguir. - Proceso de actuación o reacción: seguimiento del camino y reajuste de la ruta seguida en función de los cambios en el entorno, lo que Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 8 implica hacer frente a circunstancias imprevistas haciendo uso de los sensores para adquirir información en tiempo real. La navegación y la localización es un aspecto muy importante y en el que se ha investigado mucho en los últimos años. El problema de los sistemas de localización y mapeo simultáneo (Simultaneous Localization and Mapping, SLAM), es su dificultad para la implantación en aplicaciones reales. Estos sistemas intentan resolver de manera concurrente dos problemas: construir un mapa del entorno, identificando las zonas libres y las ocupadas y localizarse en el mapa que se está construyendo. En el caso que nos ocupa, se construirá un mapa de visión a partir de las mediciones que el sensor láser obtenga del entorno. La idea general en la planificación de trayectorias consiste en desvincular el problema de la cinemática y dinámica del robot del de la obtención de una ruta (óptima o no) libre de obstáculos. 2.2. Sistemas de control de robots Los robots son controlados generalmente por programas que previamente han sido implementados en algún tipo de lenguaje de programación por el desarrollador. Estos programas dicen al robot lo que tiene que hacer en todo momento, como moverse hacia delante o detenerse porque hay un obstáculo. Desde los inicios de la robótica, estos programas siempre han estado limitados a lo que el diseñador haya especificado en ellos, por lo el robot siempre ejecuta las mismas acciones, no es capaz de resolver nuevas situaciones por sí solo. Para aumentar el grado de autonomía de los robots e intentar que estos lleguen a simular diferentes comportamientos, cada vez existen más dispositivos sensoriales capaces de medir diferentes aspectos del entorno del robot, como por ejemplo la distancia hasta un obstáculo, la temperatura del ambiente, o la posición global por citar algunos de ellos. Dejando a un lado las capacidades de los robots en cuanto a autonomía y comportamiento se refiere, todo sistema de control de un robot se basa en los mismos conceptos, los cuales permiten construir sistemas muy sencillos o sistemas realmente complejos y avanzados. En este apartado se describe brevemente los conceptos básicos por los que se rige cualquier sistema de control de robots, con el fin de comprender mejor alguno de los objetivos de este proyecto. Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 9 2.2.1. Sistemas de bucle abierto Los sistemas de control de bucle abierto, son aquellos sistemas en los que no existe una retroalimentación, es decir, que no se utiliza la información de salida para reajustar la entrada de los datos al controlador. Un ejemplo del uso de este tipo de sistemas, sería por ejemplo si el programa de control estuviera diseñado para hacer que el robot se mueva hacia delante continuamente, sin comprobar nada. Figura 2.1 – Sistema de bucle abierto 2.2.2. Sistemas de bucle cerrado Los sistemas de control de bucle cerrado, son aquellos sistemas en los que existe una retroalimentación, es decir, que los datos obtenidos a la salida del controlador se utilizan de nuevo para realizar ajustes en las siguientes iteraciones del programa de control. Esto resulta muy útil cuando se necesita conocer el resultado de ciertas acciones para realizar las siguientes. Estos sistemas se utilizan con los robots sensorizados, ya que se utiliza la información de los sensores para reajustar ciertos aspectos en el comportamiento del robot. Figura 2.2 – Sistema de bucle cerrado Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 16 CAPITULO 4. DESARROLLO DEL PROYECTO 4.1.- ANÁLISIS El objetivo de este proyecto es crear un software capaz de recoger, analizar e interpretar las señales enviadas por un sensor láser. Además, el programa debe ser capaz de decidir la dirección a la que se debe dirigir un robot móvil en función de estas señales. Dado que no es posible integrar este software en el robot, se creará una interfaz gráfica con el fin de interactuar con el telémetro además de visualizar los resultados obtenidos del tratamiento de los datos. Dicha interfaz incluirá controles que permitan al usuario definir la resolución, la profundidad mínima de hueco y la anchura mínima del mismo, así como una pantalla donde se representará la información obtenida por el mismo. El software estará compuesto por un programa principal que actuará como intermediario entre el usuario y el dispositivo láser. El método de establecer esta comunicación será una interfaz gráfica. Por otro lado, el programa se comunicará con el sensor a través de una subrutina, para encapsular por un lado la interfaz de usuario y por otro el intercambio de datos entre la aplicación y el láser. Por último se dispondrá de una serie de funciones y algoritmos destinados a tratar los datos y obtener la solución esperada. 4.1.1.- Casos de uso En nuestro caso, interviene únicamente un actor que es el usuario que ejecuta el programa e interactúa con él. Dispone de tres casos de uso a ejecutar: Lectura continua, Lectura única y Paro de lectura continua. #1. Caso de uso: Lectura continua Actores: Usuario Precondición: El láser no está en funcionamiento Flujo de eventos: 1.- El usuario puede elegir alguna de las opciones que presenta la interfaz como precisión de lectura o lectura máxima, o por el contrario, puede tomar las opciones por defecto y no cambiar nada. 2.- El usuario acciona el botón de Lectura continua situado en la parte Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 17 izquierda de la interfaz. 3.- La aplicación deshabilita la parte de configuración de precisión y lectura máxima 4.- La aplicación muestra en la parte derecha una gráfica con los datos leídos y la solución elegida. La gráfica se actualiza constantemente con los datos actuales del sensor. Excepciones: 3.1.- La aplicación detecta un error a la hora de abrir el puerto para comunicarse con el sensor y muestra un mensaje de aviso. No mostrará nada en la parte gráfica 3.2.- La aplicación detecta un error en los datos devueltos por el sensor y muestra un mensaje de aviso. No mostrará nada en la parte gráfica. Tabla 4.1 – Caso de uso #1 #2. Caso de Uso: Lectura única Actores: Usuario Precondición: El láser no está en funcionamiento Flujo de eventos: 1.- El usuario puede selecciona la precisión y el rango de lectura o quedarse con la configuración por defecto. 2.- El usuario acciona el botón Lectura única situado en la parte derecha de la interfaz 3.- La aplicación muestra en la parte derecha una gráfica con los datos leídos y la solución encontrada. Excepciones: 3.1.- La aplicación detecta un error a la hora de abrir el puerto para comunicarse con el sensor y muestra un mensaje de aviso. No mostrará nada en la parte gráfica 3.2.- La aplicación detecta un error en los datos devueltos por el sensor y muestra un mensaje de aviso. No mostrará nada en la parte gráfica. Tabla 4.2 – Caso de uso #2 #3. Caso de Uso: Paro de Lectura Actores: Usuario Precondición: El programa se encuentra en modo Lectura continua. El láser se encuentra en funcionamiento. Flujo de eventos: 1.- El usuario acciona el botón Stop situado en la parte izquierda de la interfaz. 2.- La aplicación habilita de nuevo los botones de selección de precisión y el área de distancia máxima. 3.- En el área de la parte derecha permanecerá la última gráfica mostrada. Tabla 4.3 – Caso de uso #3 Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 18 4.2.- DISEÑO Como se ha definido en el análisis, el software contará con 3 módulos principales: interfaz de usuario, comunicación con el dispositivo y algoritmos de toma de decisiones. 4.2.1.- Interfaz de usuario: La interfaz se basa en las librerías MFC (Microsoft Foundation Classes). Estas librerías constituyen un paquete bastante potente con el que crear interfaces amigables e intuitivas para el usuario. Nuestra interfaz consta de tres botones en la parte izquierda, un par de grupos de botones radiales junto a un campo de texto en la parte central y un área destinada a albergar una gráfica en la parte izquierda. Figura 4.1 –Interfaz gráfica detallada 4.2.2.- Comunicación con el dispositivo. Para comunicarse con el telémetro láser, partimos de unos drivers proporcionados por el departamento y desarrollados en lenguaje C para un dispositivo de características similares, de la misma marca pero un modelo anterior. Apoyándonos en ellos y adecuándolos a las características de este modelo, se creará un subproceso que se ejecutará paralelamente a la interfaz, con el fin de conseguir que la lectura no acapare el foco de la aplicación y la interfaz siga recibiendo acciones por parte del usuario, a la vez que lee continuamente los datos enviados por el sensor. Este hilo será el encargado de abrir el puerto de conexión con el sensor, enviar los parámetros de configuración adecuados al telémetro y recoger los datos generados por el mismo. Una vez obtenidos los datos, se almacenarán en 2 estructuras: Una es Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 19 un vector que almacena la distancia recorrida por cada rayo (el láser emitirá un rayo cada 0,5º o 1º) y el valor del ángulo en el que se emite el rayo. La otra es un vector de puntos resultado de transformar los valores de distancia y ángulo a coordenadas cartesianas. Esta parte está desarrollada en C/C++, y no usa más que estructuras estándar de datos y operaciones básicas de lectura y escritura en ficheros. 4.2.3.- Algoritmos de toma de decisiones. Tenemos un último módulo donde encontramos funciones de tratamiento y algoritmos de toma de decisiones sobre los datos obtenidos. Este módulo está desarrollado en C++ y su funcionamiento se divide en dos partes fundamentales. Una parte obtiene los huecos libres de obstáculos a la distancia definida por el usuario. Una vez obtenidos, se pasan a la segunda parte, que se encarga de decidir que hueco es el más adecuado basándose en uno de los dos criterios a decidir por el usuario: el hueco más grande o el más centrado. 4.2.3.1.- Obtención de huecos La manera de decidir qué huecos son susceptibles de formar parte de una solución se basa en las medidas obtenidas por cada rayo. En primer lugar, declaramos una estructura Hueco que consiste en un punto inicio, un punto fin y un valor en coma flotante anchura. Antes de empezar, el usuario definirá mediante uno de los cuadros de texto de la interfaz la distancia más corta a la que se puede dirigir el vehículo. Esta distancia será el discriminante que determinará si un punto es o no un obstáculo. Tomaremos cada una de las medidas obtenidas y si la distancia es mayor a la definida por el usuario, asumiremos que se puede pasar. De este modo, recorremos en orden el conjunto de valores devueltos por el láser y el primero que cumpla la condición de ser mayor que el valor de referencia lo tomaremos como inicio del hueco y nos quedaremos con los valores cartesianos del punto anterior (el último que supone un obstáculo). Seguiremos recorriendo los valores hasta encontrar un punto cuya distancia sea menor a la de referencia, tomaremos esta medida como fin del hueco y nos quedaremos con los valores cartesianos de este punto. De este modo, tenemos dos puntos inicio y fin en el espacio cartesiano que representan los bordes del espacio por donde podríamos pasar. La distancia entre ellos representa la anchura del hueco. Eso sí, antes de dar este hueco por válido, tenemos que comprobar si la anchura del hueco es suficiente para que el vehículo pueda pasar sin problemas. La validación de este hueco pasa nuevamente por comparar la anchura con un parámetro proporcionado por el usuario mediante el campo de texto correspondiente en la interfaz. Una Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 20 vez validado se almacena en un vector, si lo rechazamos por tener una anchura insuficiente se descarta. Posteriormente seguimos recorriendo el conjunto de valores en busca del siguiente punto que esté más alejado del vehículo que la distancia mínima, que tomaremos como inicio del siguiente hueco. 4.2.3.2.- Decisión de hueco óptimo Aunque se vayan a representar todos los huecos que pueden formar parte de la solución, el algoritmo decidirá cuál es el más apropiado. El usuario elegirá en la interfaz uno de los dos criterios disponibles, el hueco más grande o el más centrado. La obtención del hueco más grande es inmediata, puesto que la estructura Hueco almacena tanto los puntos de inicio y fin como la anchura. En este caso basta con quedarse con el hueco que presente un valor de anchura mayor. En el caso del hueco más centrado, basta con calcular el punto medio de cada uno de los huecos, quedándonos con el que presente un valor X en coordenadas cartesianas más cercano a 0, puesto que el origen de coordenadas se ubica en la posición del láser. 4.3.- IMPLEMENTACION El primer problema al que nos enfrentamos es establecer una vía de comunicación entre el PC y el dispositivo. Para ello se dispone de un cable RS232 que conecta el puerto del PC de este tipo con la entrada/salida de datos del telémetro. Internamente el programa crea un descriptor de fichero mediante el cual escribirá tramas de comando y recibirá los datos resultantes de las lecturas efectuadas. Una vez establecida la conexión, se presenta el problema de saber interpretar la información proporcionada por el láser. Este dispositivo devuelve por el puerto RS232 una serie de datos correspondientes a la distancia desde el dispositivo hasta el objeto más cercano. Por tanto, devolverá un valor por cada rayo emitido por el dispositivo. Por ejemplo, leyendo en un rango de 180º con una resolución de 1º, obtendremos 181 valores (0º ~ 180º). Antes de comenzar el volcado de datos por parte del sensor, es necesario enviar una trama al láser con una serie de bytes que determinarán el comportamiento del mismo. Para obtener los datos, haremos una llamada a una subrutina para evitar perder el foco en la ventana principal. Esta subrutina es un hilo que se ejecutará paralelamente al programa principal con el único fin de comunicarse con el sensor. El hilo se ejecutará de forma continua, favoreciendo el reconocimiento del entorno a medida que el autómata va avanzando. La Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 21 subrutina abrirá el puerto serie la primera vez que se ejecute el bucle principal y enviará los parámetros adecuados para las opciones seleccionadas mediante la interfaz. Una vez recuperados los datos, los almacenaremos en dos vectores. Uno contendrá tanto la distancia en centímetros desde el dispositivo hasta el primer objeto encontrado por el rayo como el ángulo que forma dicho rayo y el otro contendrá los puntos en el espacio en coordenadas cartesianas correspondientes a la localización de los distintos objetos, tomando como origen de coordenadas el propio sensor. Una vez los tengamos, los pasaremos al programa principal, donde serán tratados. Mediante el programa principal se puede definir una profundidad mínima de hueco. Esto quiere decir que para distancias menores que esta profundidad, asumiremos que no es una solución posible. Puede variar entre 1 y 81 metros, aunque no tiene sentido tomar un valor inferior a 2-3 metros, teniendo en cuenta las limitaciones del vehículo para efectuar un giro. De este modo, si el usuario propone una distancia inferior a los 3 metros, el programa asumirá que esta distancia no es válida y trabajará con una distancia mínima de 3 metros. Los vectores que contienen las lecturas del láser se pasarán a un algoritmo, que se encarga en primer lugar de calcular los huecos por los que puede pasar nuestro robot y posteriormente elegirá el más conveniente. El criterio de selección de hueco hacia el que acudir, o salida depende nuevamente de dos factores. Se puede elegir el hueco más centrado (el que requiera menor giro del autómata) o el hueco de mayor tamaño. Una vez elegido, la aplicación dibujará una gráfica en la parte destinada a tal efecto. La gráfica mostrada en el apartado Gráfica de visión incluye dos semicircunferencias en línea negra discontinua, que representan la distancia máxima y la mitad de la distancia máxima (81 y 40,5 metros respectivamente), una línea azul continua que dibuja el contorno de los objetos detectados por el sensor, una o varias líneas rectas rojas punteadas que supone las posibles soluciones o huecos y una línea continua más gruesa que representa la solución elegida como más adecuada en dirección a la salida. El programa refrescará esta información, y actualizará adecuadamente la gráfica de visión del robot y la salida elegida por el mismo. Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 22 CAPITULO 5. PRUEBAS Y RESULTADOS 5.1.- Descripción de experimentos Dado que no se puede integrar el software en el propio vehículo, las pruebas a ejecutar se limitarán a pruebas de comportamiento simulado y pruebas de rendimiento. Experimento #1. La primera prueba realizada fue una simulación de movimiento del vehículo con el láser incorporado. Subido el láser a una silla con ruedas de las que hay en el laboratorio, el experimento consistía en empujar la silla por el laboratorio para corroborar que la gráfica se actualizaba correctamente, con una frecuencia aceptable y adecuadamente a lo que se esperaba Experimento #2. La segunda prueba fue una prueba de rendimiento. Se ejecutó el programa en uno de los PCs de laboratorio y se dejó en funcionamiento, en modo de lectura continua durante 30-40 minutos. El objetivo del experimento era comprobar cómo afectaba el funcionamiento continuado al rendimiento del PC, si consumía muchos recursos, etc. Experimento #3. Este experimento fue llevado a cabo al mismo tiempo que el #2. Se dejó el programa en funcionamiento durante mucho tiempo para comprobar que la frecuencia de las lecturas realizadas era adecuada con respecto a la frecuencia con que el láser proporciona datos. La idea inicial suponía que si después de algún tiempo con el programa en marcha no se producían lags entre la representación gráfica de la lectura y lo que se esperaba de la lectura actual, la frecuencia de lectura era correcta. Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 23 5.2.- Resultado de las pruebas Experimento #1. Tras varias rutas alrededor del laboratorio, la respuesta de la gráfica era la esperada, con una tasa de refresco adecuada y una representación bastante fiable. Experimento #2. Se comprobó de acuerdo al administrador de tareas de Windows que el programa utiliza una cantidad de memoria fija que no variaba por mucho tiempo que estuviera el programa en funcionamiento. En cuanto al uso de la CPU, oscilaba regularmente entre unos valores, sin crecer demasiado. Se puede concluir, que el programa utiliza unos recursos fijos que no se incrementan con el tiempo de ejecución del programa. Experimento #3. Por más que pasaba el tiempo, la gráfica seguía refrescándose de forma periódica, aparentemente con la misma frecuencia que el láser realizaba lecturas. Tras 30 minutos de ejecución, la gráfica mostraba en tiempo real los resultados de las lecturas. Se puede concluir que la frecuencia de refresco de la gráfica es igual o mayor a la de lectura del láser. Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 24 CAPÍTULO 6. CONCLUSIONES Y TRABAJO FUTURO 6.1.- Conclusiones En el presente proyecto se perseguía establecer una vía de comunicación entre un PC y un dispositivo de medición láser y una vez establecida la comunicación, el intercambio de datos y la interpretación de los mismos. Si bien el proyecto está orientado a formar parte de otro mayor en el futuro, la meta intermedia que se presentaba en este desarrollo era el análisis e interpretación de los datos, preparando el camino para desarrollos venideros. Para llevarlo a cabo se ha optado por encaminar el trabajo a la comunicación con el dispositivo, enviándole órdenes y recibiendo respuestas. Más en detalle, los desarrollos llevados a cabo son: - Establecimiento de la conexión mediante un puerto serie RS232. - Construcción y envío de tramas al dispositivo - Recepción y tratamiento de los datos - Construcción de una interfaz gráfica donde representar los datos obtenidos Así mismo, la interfaz ha servido de herramienta para que el usuario pueda comunicarse con el láser de una forma más dinámica y eficiente, enviando los parámetros adecuados a las necesidades del usuario. El dispositivo láser ha resultado ser una herramienta bastante fiable, con una precisión más que aceptable y una estabilidad a la hora de percibir el entorno satisfactoria. De este modo, el telémetro se perfila como una herramienta muy útil de cara al proyecto futuro de dotar de autonomía a un vehículo móvil. En cuanto al algoritmo de tratamiento de datos, obtención de soluciones y elección de la más adecuada satisface la meta original aportando soluciones válidas. Aunque en el futuro, la parte de selección de la solución óptima se verá modificada por algoritmos de búsqueda global, ya que a este nivel todas las soluciones encontradas responden a un criterio local, al no disponer de una meta final. No obstante, la aportación de este algoritmo de soluciones “a corto plazo” cubre las necesidades que presentaba el proyecto. Procesamiento de la información recibida de un sensor láser ubicado en un vehículo tipo Quad 25 6.2.- Trabajo Futuro En el futuro, se espera poder usar el resultado del proyecto como parte de la automatización de un vehículo tipo Quad. En concreto, este programa se encargará de comunicarse con el sensor láser, tratar la información y determinar qué zonas del entorno son susceptibles de formar parte de la solución. Una vez obtenidas las soluciones, se enviarán a un algoritmo de decisión global que tendrá en cuenta la posición actual del robot respecto de la meta y efectuará los mecanismos de control adecuados para poner el vehículo rumbo a la ruta seleccionada.