En esta investigación se tiene como objetivo la detección y seguimiento de una plataforma de aterrizaje para que un UAV (Unmanned Aerial Vehicle) pueda aterrizar. Este sistema hace parte de un sistema de cooperación entre un vehÃculo aéreo no tripulado y un robot móvil terrestre.
Los VehÃculos aéreos no tripulados son dispositivos que pueden ser autónomos o controlados de manera remota, ya sea por medio de un control remoto o una aplicación. Estos artefactos también reciben el nombre de drones y son comúnmente utilizados para la supervisión aérea en grandes terrenos o como pasatiempo.
Uno de los inconvenientes más comunes que se tiene en el uso de drones es la corta duración de su baterÃa, debido al uso de periféricos al sistema y los altos costos económicos que implica aumentar el rendimiento energético. Para mitigar este problema se han desarrollado baterÃas de mayor duración e incluso se ha implementado sistemas de generación de energÃas alternativas para su uso. La cooperación entre robots con el fin de aumentar la eficiencia energética de drones es un área de la investigación poco explorada.
Un sistema de cooperación drone - robot móvil está compuesto de un subsistema encargado de la teleoperación del robot terrestre, y otro que se encarga de asegurar el aterrizaje autónomo del drone. Un sistema como este puede ser usado para que el vehÃculo aéreo pueda aprovechar la autonomÃa energética del vehÃculo terrestre y recargar su baterÃa por métodos inductivos o alternativos, incrementando asà su eficiencia energética y autonomÃa de vuelo.
No obstante, para que todo el sistema funcione de manera adecuada se requiere un módulo robusto de detección y seguimiento de la plataforma de aterrizaje, el cual permita tener al sistema noción de la ubicación de la misma en todo momento, incluso cuando esta no esté siendo detectada. Se hace hincapié en este punto debido a que el módulo de localización de la plataforma de aterrizaje es el encargado de enviar los datos de referencia al sistema de control para un adecuado aterrizaje del vehÃculo aéreo.
Fases del proyecto:
Resultados:
En el desarrollo de la primera fase del módulo de detección y seguimiento, se investigó sobre los diferentes métodos de visión computacional que permitan la detección de imagen y comparación de plantillas "Template Matching" para hacer la identificación de la plataforma de aterrizaje. Se encontró que entre los algoritmos y métodos indagados como por ejemplo extractores y descriptores de caracterÃsticas llamados SIFT (Scale Invariant Features Transform), SURF (Speeded-up Robust Features), FAST (Features From Accelerated Segment Test), ORB (Oriented Fast And Rotated Brief), entre otros, el SURF era el de mayor interés para realizar tareas de detección, debido a que métodos como SIFT y FAST presentan falencias a la hora de querer realizar detecciones a alturas superiores a 2 metros. El método de SURF es robusto frente a cambios de apariencia en el objeto de interés, como rotación, desenfoque, cambios de iluminación y escala.
Ahora bien para la implementación de dicha detección y seguimiento se utilizó una cámara Logitech C920 y un computador portátil con el sistema operativo Ubuntu en su versión 16.04 con ROS-Kinetic, en la cual se ejecutó el extractor y descriptor de caracterÃsticas SURF con ayuda de un paquete de ROS llamado find_object_2D, el cual permite la detección de un objeto basado en una plantilla previamente definida. Junto a lo anterior, se realizó un algoritmo en C++, el cual computa la posición de las esquinas del objeto y su centroide basado en la matriz de homografÃa y las dimensiones (en pÃxeles) del mismo.
Una vez implementado el sistema, se realizaron las pruebas correspondientes a la fase de detección en donde se filmó desde una altura de aproximadamente 4 metros la detección de la plataforma de aterrizaje, para validar dicha filmación se realizaron varios movimientos (rotaciones, desplazamientos y cambios de altura) en la cámara para realizar la toma de imágenes, para asà posteriormente pasar a calcular errores relativos y promedios para la posición de las esquinas arrojada por el detector y el valor real de estas en pixeles.
Se obtuvieron errores con un alto grado de error debido a la no detección de la plataforma de aterrizaje y se inició con la fase dos del trabajo, donde se indago sobre los diferentes métodos de seguimiento de objetos y se encontró que el filtro de Kalman permite estimar el comportamiento dinámico de objetos incluso cuando el estado no es completamente observable. Para implementar el filtro de Kalman se asumió que el movimiento de la plataforma de aterrizaje está sujeto a una dinámica lineal. Esta implementación fue hecha en lenguaje C++, donde se obtuvieron mejores resultados y errores menores a los obtenidos en la primera implementación.
Algunos vÃdeos y fotos acerca del proyecto:
VÃdeo del funcionamiento del sistema