Exploración coordinada entre robot móvil terrestre y dron aéreo

Coordinación Robot Móvil-Dron

Información del documento

Especialidad Robótica Móvil
Tipo de documento Trabajo Final De Máster
Idioma Spanish
Formato | PDF
Tamaño 2.24 MB

Resumen

I.Metodología de Exploración Cooperativa con UGV y UAV

Este trabajo de investigación presenta una solución para la exploración cooperativa entre un vehículo terrestre no tripulado (UGV) y un vehículo aéreo no tripulado (UAV), utilizando un Turtlebot 2 y un Parrot Bebop 2, respectivamente. La principal meta es lograr el seguimiento del UGV por parte del UAV en un entorno desconocido. Para ello, se emplea el sistema operativo de robótica ROS y el paquete ar_track_alvar para el seguimiento de etiquetas AR, permitiendo la localización precisa del dron con respecto al robot terrestre. Se aborda el desafío del mapeado bidimensional y tridimensional del entorno, combinando la información de ambos robots para una representación más completa. El proyecto implica el desarrollo de un nodo en Python para gestionar la cooperación entre ambos robots, enfocándose en la simplificación del control del UAV para mantenerlo cerca del UGV a una distancia segura, mientras se gestionan las limitaciones impuestas por la precisión y el ruido de los datos de las etiquetas AR. Se exploraron alternativas como el uso de ORBSLAM2 y rpg_svo para la estimación de la odometría del dron, pero se optó por una solución más sencilla para cumplir con los objetivos del proyecto.

1. Objetivo Principal y Enfoque del Sistema

El objetivo central de la investigación es desarrollar un sistema de exploración cooperativa entre un robot terrestre (UGV) y un dron (UAV) para entornos desconocidos. El sistema se centra en lograr que el UAV siga al UGV, utilizando un Turtlebot 2 como UGV y un Parrot Bebop 2 como UAV. La comunicación y el control de ambos robots se gestionan a través del Robot Operating System (ROS), un marco de software ampliamente utilizado en robótica. Para resolver el problema de la localización relativa entre el UGV y el UAV, se utiliza un método basado en etiquetas AR (Augmented Reality), donde una etiqueta AR colocada en el UAV permite determinar su posición precisa respecto a la cámara del Turtlebot. La integración de este sistema de etiquetas AR con ROS se realiza mediante el paquete ar_track_alvar. Esta elección se basa en el artículo de referencia "Bird's Eye View", aunque se simplifica el proceso para centrarse en la cooperación básica entre los robots. El proyecto busca un método eficiente, considerando que el mapeado tridimensional del entorno, aunque relevante, es un objetivo secundario en esta fase de la investigación.

2. Consideraciones sobre el Mapeado y la Odometría

Una parte importante del trabajo considera la creación de mapas bidimensionales y tridimensionales del entorno. La información obtenida por ambos robots se utiliza para elaborar un mapa conjunto, con el dron contribuyendo a la generación del mapa 3D usando ORBSLAM2. Sin embargo, se reconoce la complejidad de obtener un mapa tridimensional preciso y robusto, considerando las limitaciones de la tecnología y las restricciones de tiempo del proyecto. Se abordan distintos métodos para la estimación de la odometría del dron. Se menciona la posibilidad de estimar la odometría del dron sumando las coordenadas de posición obtenidas de la etiqueta AR del dron respecto al Turtlebot, pero se reconoce que este método es susceptible a ruidos y requiere robustez adicional. Se exploran alternativas como el uso de ORBSLAM2 y el paquete rpg_svo para obtener información de odometría más precisa, aunque finalmente se opta por una solución más simplificada para cumplir con los objetivos del proyecto en el tiempo establecido. La complejidad de la integración completa de ORBSLAM2 con ROS es uno de los factores que motivan esta decisión.

3. Diseño e Implementación del Sistema de Seguimiento

El desarrollo del sistema de seguimiento se centra en la creación de un nodo que permite al UAV seguir al UGV. Se evaluaron diferentes estrategias de control. Inicialmente, se consideraron métodos de control PID, pero se descartaron por su complejidad e implicaciones en el tiempo de desarrollo, especialmente en la determinación de las constantes adecuadas para el control. Finalmente, se adoptó un enfoque más simple: se envía un comando al UAV únicamente cuando éste se encuentra fuera de los límites de posición deseados respecto a la cámara del UGV, corrigiendo así la componente de velocidad que está fuera de rango. Este sistema de control permite un funcionamiento más rápido de desarrollar, estableciendo una base para futuras mejoras. Se realizaron pruebas con diferentes velocidades lineales, notándose una pérdida de seguimiento con velocidades superiores a 0.1 m/s, limitando así la velocidad máxima de control. La monitorización del sistema mediante la visualización de datos (posición y velocidades) proporcionó información crucial para la evaluación de la eficacia del sistema de seguimiento. Las gráficas de los datos muestran la respuesta del sistema en una prueba de aproximadamente 7 minutos y medio.

4. Análisis de Resultados y Posibles Ampliaciones Futuras

Los resultados obtenidos demuestran la viabilidad de un sistema simplificado de seguimiento de un UGV por un UAV. Si bien el método de control es menos complejo que el propuesto en el artículo "Bird's Eye View", se logra la cooperación básica entre ambos robots. El trabajo destaca la importancia de considerar el ruido en la información de las etiquetas AR y la necesidad de implementar mecanismos de robustez. Se enfatiza que la precisión de los datos de las etiquetas AR afecta significativamente al rendimiento del sistema. El estudio concluye con sugerencias para futuras ampliaciones, incluyendo la integración de sistemas de mapeado 3D más robustos, como ORBSLAM2 o rpg_svo, lo que permitiría obtener un mapa más preciso del entorno. También se mencionan la posibilidad de añadir métodos de control más sofisticados y la exploración de estrategias para interactuar con objetos en el entorno, mejorando así la funcionalidad y aplicabilidad del sistema de cooperación robótica.

II.Componentes Hardware y Software

El sistema se basa en el Turtlebot 2 como UGV, equipado con un sensor similar al Kinect y ROS preinstalado; y el Parrot Bebop 2 como UAV, con control mediante ROS y capacidad de grabación en Full HD. La comunicación entre los nodos se realiza a través de ROS, utilizando Ubuntu como sistema operativo. Se utiliza el paquete ar_track_alvar para el seguimiento de las etiquetas AR y para obtener la posición y orientación de la etiqueta en el dron con respecto a la cámara del Turtlebot. Se implementan nodos en Python y C++ para el control y la comunicación entre los robots. La calibración de la cámara se realiza con el paquete camera_calibration.

1. Hardware UGV y UAV

El sistema de exploración cooperativa se basa en dos plataformas robóticas principales: un vehículo terrestre no tripulado (UGV) y un vehículo aéreo no tripulado (UAV). El UGV empleado es un Turtlebot 2, un robot de código abierto conocido por su bajo coste y su idoneidad para la educación e investigación. Este robot está equipado con una base Kobuki, un ordenador portátil dual-core, un sensor Orbbec Astra Pro (similar a un Kinect) y un giróscopo, ofreciendo una plataforma robusta y lista para su uso. ROS (Robot Operating System) está preinstalado y configurado en el portátil del Turtlebot. Como UAV se utiliza un Parrot Bebop 2, un dron capaz de ser teleoperado mediante un smartphone, respondiendo a los movimientos del dispositivo móvil gracias a su acelerómetro y mandos táctiles. Este dron destaca por su capacidad de grabación en Full HD 1080p y una cámara gran angular de 14 megapíxeles, permitiendo obtener secuencias de imágenes estables. Además, cuenta con una cámara inferior orientada hacia abajo para otras posibles tareas. Para la comunicación entre ambos robots se utilizaron dos ordenadores: uno integrado en el Turtlebot y otro que funciona como centro de operaciones, con ROS Indigo instalado y ejecutando los nodos necesarios para la cooperación.

2. Software ROS y Paquetes Adicionales

El sistema operativo de robótica ROS (Robot Operating System) es el pilar del software del proyecto, facilitando la comunicación entre los nodos y la ejecución del código en múltiples ordenadores. El sistema operativo base es Ubuntu 14.04 LTS Trusty Tahr. ROS proporciona la abstracción de hardware, el control de dispositivos de bajo nivel, la implementación de funcionalidades comunes, el paso de mensajes entre procesos y el mantenimiento de paquetes. El sistema admite la programación en lenguajes como Python, C++, y Lisp, con librerías experimentales en Java y Lua. La comunicación entre nodos se realiza mediante mensajes, enviados a través de topics con una semántica de publicación/suscripción. Se hace uso del paquete ar_track_alvar para la detección y seguimiento de las etiquetas AR, este paquete recibe como entrada la imagen de la cámara y la información de calibración y publica dos topics: uno con la información de la pose de la etiqueta (posición y orientación) y otro con un marcador rviz para visualizar la posición en una interfaz gráfica. El paquete usb_cam_node se utiliza para la comunicación con la cámara USB conectada al portátil del Turtlebot. Para la calibración de la cámara se utiliza el paquete camera_calibration que permite guardar automáticamente la configuración en un directorio accesible para el driver.

III.Desarrollo e Implementación del Nodo de Cooperación

El desarrollo del nodo de cooperación se centró en conseguir que el UAV siguiera al UGV, que es teleoperado. Se descartaron soluciones complejas como la implementación de un control PID multicomponente. En su lugar, se optó por un control más simple, enviando comandos individuales para corregir la posición del UAV cuando se sale de los márgenes deseados respecto a la cámara del Turtlebot. Se realizaron pruebas con diferentes velocidades lineales, determinando que valores superiores a 0.1 m/s causaban problemas de seguimiento. Los datos recopilados muestran la posición del dron (obtenida mediante las etiquetas AR) y las velocidades de control aplicadas al UAV.

1. Estrategias de Seguimiento Exploradas

El objetivo principal del desarrollo fue crear un nodo que permitiera al dron (UAV) seguir al robot terrestre (UGV) teleoperado. Se exploraron varias estrategias para lograr esta cooperación. Inicialmente, se consideró la implementación de un control PID de posición, similar al del artículo de referencia "Bird's Eye View", para centrar el Parrot en una posición específica (0,0,45) cm con respecto a la cámara del Turtlebot. Sin embargo, esta opción fue descartada debido a las limitaciones de tiempo para calcular las constantes del PID y la complejidad de gestionar un control PID multicomponente (posición y orientación). Se evaluó también un control PID por cada componente de posición y orientación, enviando comandos donde solo una componente de velocidad fuera superior a cero, pero esta alternativa fue descartada por su complejidad. Como alternativa final y por simplicidad, se optó por un control que envía comandos al Parrot solo cuando éste se encuentra fuera de los límites de posición especificados, corrigiendo la componente de velocidad que se ha salido de los márgenes. Esta estrategia, aunque menos sofisticada, proporcionó una base sólida para la implementación y permitió evaluar la viabilidad del sistema de cooperación.

2. Implementación del Nodo de Control y Pruebas

La implementación del nodo de control se realizó en Python, optándose por una solución sencilla en lugar de replicar el código del artículo de referencia debido a inconsistencias encontradas en el código original. El nodo tracking_nodev2 se suscribe al topic /ar_pose_marker para acceder a la pose del dron (obtenida a través de las etiquetas AR) y publica mensajes en el topic /bebop/cmd_vel para controlar el UAV. El control del Turtlebot se realiza mediante el nodo turtlebot_teleop, que viene preinstalado. Para las pruebas, se utilizó una cámara USB situada sobre el Turtlebot para obtener la imagen. Se realizaron pruebas con diferentes velocidades lineales iniciales, incrementando gradualmente la velocidad desde 0.09 m/s hasta un máximo de 0.1 m/s. Velocidades mayores resultaron en la pérdida de seguimiento del dron, requiriendo su redirección manual. Durante las pruebas, de aproximadamente 7 minutos y 30 segundos, se monitorizó la posición del dron (obtenida mediante las etiquetas AR) y las velocidades de control aplicadas, observando un alto nivel de perturbaciones en los datos, lo cual era esperado dado la precisión de la información obtenida de las etiquetas AR. Los resultados muestran la posición del dron en un eje de coordenadas (x,y,z), así como los valores de velocidad en 'x' para mantener la posición 'y' dentro de los márgenes.

3. Consideraciones sobre la Integración de ORBSLAM2

Aunque el artículo de referencia "Bird's Eye View" utiliza ORBSLAM2 para la estimación de la odometría del dron, en este proyecto se optó por una solución más simple debido a que ORBSLAM2 no publicaba su posición estimada directamente en ROS. Si bien en el nodo de cooperación se recogió la posición del dron, esta se obtuvo a partir de la posición de la etiqueta AR en el dron con respecto a la cámara del Turtlebot. Se optó por no integrar ORBSLAM2 por las dificultades que conllevaba su implementación en el tiempo disponible. A pesar de la mayor complejidad del sistema del artículo de referencia, la solución propuesta en este trabajo es más liviana en términos de recursos utilizados y proporciona una base más sólida para futuras ampliaciones. Se mencionan alternativas como el uso del paquete rpg_svo como una posible solución robusta, rápida y precisa para la odometría del dron, aunque requiere ROS Indigo o inferior.

IV.Resultados y Conclusiones

La investigación demostró la viabilidad de una cooperación simplificada entre un UAV y un UGV para el seguimiento en un entorno desconocido, utilizando ROS y etiquetas AR. Si bien se simplificó el control del UAV en comparación con enfoques más complejos (como en el artículo Bird's Eye View), se logró el objetivo principal. Se identificaron retos en la precisión de la información obtenida de las etiquetas AR y la necesidad de mejorar la robustez del sistema. El trabajo ofrece una base sólida para futuras investigaciones, incluyendo la integración de sistemas de mapeado 3D más robustos, como ORBSLAM2 o rpg_svo, y el desarrollo de algoritmos de control más avanzados para la navegación cooperativa.

1. Resultados del Sistema de Seguimiento

Las pruebas realizadas demuestran la viabilidad del sistema de cooperación entre el UGV y el UAV para el seguimiento. Se optó por un método de control sencillo, donde el dron recibe comandos solo cuando se sale de una zona predefinida alrededor del UGV. Las pruebas, que duraron aproximadamente 7 minutos y 30 segundos, mostraron que el sistema es capaz de mantener el dron cerca del UGV, aunque se observaron perturbaciones significativas en la posición del dron, esto se debe principalmente a la imprecisión inherente en el método de localización utilizado (etiquetas AR) y la sensibilidad a los ruidos en las señales. La velocidad máxima de control lineal del dron se limitó a 0.1 m/s debido a la pérdida de seguimiento observada con velocidades superiores. Se destaca que el nodo desarrollado es más ligero en cuanto a recursos en comparación con el sistema descrito en el artículo de referencia, "Bird's Eye View", al simplificar el control del dron, priorizando la posición sobre la orientación, sin embargo esto implicó perder la determinación de la posición del dron en el entorno.

2. Análisis de las Limitaciones y Problemas Encontrados

Se identificaron varios problemas durante la fase de investigación y desarrollo. La falta de claridad en algunos artículos de investigación, así como la falta de especificación y/o presencia de errores en algunos códigos fuente disponibles en repositorios como Github, dificultaron la reproducción de los resultados y la comprensión de las implementaciones. El alto nivel de ruido en los mensajes de posición proporcionados por el paquete ar_track_alvar representó un reto significativo para el sistema de control. La creación de un mapa conjunto preciso entre el dron y el Turtlebot también presentó dificultades, atribuidas a problemas de seguridad y limitaciones de tiempo para una integración completa. La decisión de priorizar la simpleza del control del dron en lugar de usar un control PID para el posicionamiento preciso simplificó el sistema, pero limitó la precisión en el seguimiento.

3. Conclusiones y Futuras Líneas de Investigación

El proyecto demostró la factibilidad de un sistema de cooperación entre un UGV y un UAV para el seguimiento, utilizando un enfoque simplificado. Se destaca la importancia de una mejor gestión del ruido en la información proporcionada por las etiquetas AR para mejorar la robustez del sistema de seguimiento. A pesar de la simplificación del sistema de control, se logró el objetivo principal de la cooperación. Se concluye que este sistema ofrece una base sólida para futuras investigaciones y desarrollos, en particular la integración de sistemas de mapeado 3D más robustos, como ORBSLAM2 o rpg_svo, para obtener una mayor precisión en la odometría y el mapeado del entorno. Se considera también la posibilidad de explorar técnicas de control más avanzadas para una mejor gestión de la posición y orientación del dron y la creación de algoritmos que permitan la interacción con objetos del entorno, incrementando la complejidad y el rango de acciones del sistema de cooperación robótica.

Referencia de documento