0% encontró este documento útil (0 votos)
17 vistas73 páginas

Aterrizaje Autónomo de Drones con IBVS

Este trabajo de fin de grado presenta un sistema de aterrizaje autónomo para un cuadricóptero utilizando el algoritmo de control visual Image-Based Visual Servoing (IBVS). Se desarrolló en el contexto de la competencia IMAV 2021 y se destaca la eficacia del IBVS en escenarios con perturbaciones, mostrando su robustez y bajo coste computacional. El proyecto incluye fases de detección de la plataforma de aterrizaje, desarrollo del algoritmo y pruebas en simulación, utilizando herramientas como Aerostack y Gazebo.

Cargado por

growingsoul20
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
17 vistas73 páginas

Aterrizaje Autónomo de Drones con IBVS

Este trabajo de fin de grado presenta un sistema de aterrizaje autónomo para un cuadricóptero utilizando el algoritmo de control visual Image-Based Visual Servoing (IBVS). Se desarrolló en el contexto de la competencia IMAV 2021 y se destaca la eficacia del IBVS en escenarios con perturbaciones, mostrando su robustez y bajo coste computacional. El proyecto incluye fases de detección de la plataforma de aterrizaje, desarrollo del algoritmo y pruebas en simulación, utilizando herramientas como Aerostack y Gazebo.

Cargado por

growingsoul20
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

ATERRIZAJE DE UN DRON DE

Luis Alfonso Delbergue Chico


FORMA AUTÓNOMA CON
PERTURBACIONES MEDIANTE
ALGORITMO DE VISIÓN

SEPTIEMBRE 2021

TRABAJO FIN DE GRADO PARA Luis Alfonso Delbergue Chico


LA OBTENCIÓN DEL TÍTULO DE
GRADUADO EN INGENIERÍA EN DIRECTOR DEL TRABAJO FIN DE GRADO:

TECNOLOGÍAS INDUSTRIALES Pascual Campoy Cervera


U NIVERSIDAD P OLIT ÉCNICA DE M ADRID
E SCUELA T ÉCNICA S UPERIOR DE I NGENIEROS I NDUSTRIALES
G RADO EN I NGENIER ÍA EN T ECNOLOG ÍAS I NDUSTRIALES

T RABAJO F IN DE G RADO
Aterrizaje de un Dron Autónomo con Perturbaciones
mediante Algoritmo de Visión

Autor: Luis Alfonso Delbergue Chico

Director 1: D. Pascual Campoy Cervera


Catedrático
Director 2: Miguel Fernández Cortizas
Doctorando

Septiembre, 2021
“A mind that is stretched by a new experience
can never go back to its old dimensions.”
Oliver Wendell Holmes, Jr
Agradecimientos
Han sido años duros en la ETSII, aunque echando la vista atrás se ven solamente momentos
agradables. No me arrepiento de haber escogido esta carrera, por todos las situaciones estresan-
tes que me ha hecho superar. Por lo que en primer lugar querı́a agradecer a la escuela por su
exigencia y por prepararme para poder superar de ahora en adelante retos complicados.

Este trabajo no serı́a posible sin la ayuda del grupo CVAR que encabeza D. Pascual Cam-
poy. Desde un primer momento me orientó perfectamente en todo lo que iba a necesitar y me
propuso este proyecto con el que yo estaba ilusionado. Dentro del equipo tengo que dar un espe-
cial agradecimiento a Miguel Fernández cuya ayuda ha sido muy estimable con este complejo
nuevo mundo de los drones y Aerostack. Siempre muy servicial y con una sonrisa en la cara.

Este camino no hubiese sido posible sin los descansos entre estudios, en los que muchas
personas me han ayudado a desconectar. Todas las personas que he conocido en la escuela, el
equipo de esgrima con los he viajado por todo el mundo, los veranos pasados en el pueblo, que-
dadas con mis amigos de toda la vida y muchas más personas que no caben en estas cortas lı́neas.

Por último, mencionar a los más cercanos, que gracias a ellos comencé esta aventura inge-
nieril, y, aunque haya casi más discusiones que buenas palabras, los quiero mucho.

5
Resumen
En este trabajo de fin de grado se presenta un sistema para aterrizaje autónomo de un cua-
dricóptero mediante un sistema de control visual Image-Based Visual Servoing (IBVS). Se
ha realizado dentro del Grupo de Investigación en Visión por Computador y Robótica Aérea
(CVAR), del Centro de Automática y Robótica (CAR) de la Universidad Politécnica de Madrid
(UPM).

La idea de la que nace este trabajo es de la competición del IMAV (International Micro Air
Vehicle) 2021 que se celebrará en México. Una de las pruebas consiste en aterrizar un dron
de forma autónoma en una plataforma mientras unos ventiladores soplan horizontalmente en
la zona donde el dron realizará la maniobra hasta posarse. Éste podrá servir como campo de
pruebas en que se podrı́a aplicar este sistema de control para llevar a cabo un aterrizaje exitoso.
La ventaja de un aterrizaje autónomo frente a uno teleoperado es que se elimina el posible error
humano y se automatiza el proceso de posarse en una superficie objetivo, incluso con perturba-
ciones.

Antes de tomar la decisión final de usar el control visual IBVS, se ha realizado un estudio
de otras opciones para afrontar el aterrizaje del dron autónomo. Ası́ se presentan otras alter-
nativas posibles como Position-Based Visual Servoing, Machine Learning o Model Predictive
Controller. Las principales ventajas por la que han decantado la elección de IBVS han sido su
bajo coste computacional y su eficacial.

El IBVS consiste en un control realimentado en el que la entrada son los errores de posición
en pı́xeles del objetivo en el marco de la cámara. La salida es la velocidad que se envı́a a los
actuadores para mover al dron, también llamado end-effector.

Para el correcto funcionamiento de este algoritmo es necesario únicamente un sensor visual,


una cámara que capture las imágenes. Aprovechando esta ventaja, los programas se han desa-
rrollado de forma que son perfectamente portables a un dron con otra cámara.

Como se puede ver en la figura 1, tendrı́amos un cuadrado que simboliza el objetivo en


amarillo identificado inicialmente. En naranja, tendrı́amos la forma que queremos obtener fi-
nalmente. La finalidad del IBVS es enviar una velocidad al dron para convertir el cuadrado
amarillo en el naranja, que, en este trabajo serı́a aterrizar.

En este proyecto se distinguen tres fases: detección de la plataforma de aterrizaje, desarrollo


algoritmo del control IBVS y pruebas en simulación. En estos procesos se usa Aerostack [1],
un framework modular desarrollado por el CVAR basado en ROS que facilita el desarrollo de
algoritmos para al realización de misiones autónomas con drones. Ası́ se puede trabajar de for-
ma cómoda individualmente en cada parte, dividiendo en pequeños retos el problema a superar.

6
(a) (b) (c)

Figura 1: (a) Imagen del objeto en la posición inicial (b) Imagen del objeto en la posición
objetivo (c) Transformación de los vértices

Para la detección de la zona de aterrizaje, el objetivo es la identificación de la H central de


la plataforma. Por lo tanto, la finalidad es encuadrarla, obteniendo las esquinas, que utilizare-
mos más adelante para realizar el control. Una cámara cenital instalada en el dron obtiene las
imágenes y se envı́an al nodo que se ocupa de obtener los puntos que nos interesan del encuadre
de la H.

Figura 2: Imagen cenital de la plataforma inicial y después de encuadrar la H

Primero se realiza un pretratamiento de la imagen con OpenCV para obtener las caracterı́sti-
cas que más nos interesan de la imagen para trabajar con ellas: se hace filtro de color y se dilatan
los bordes. Se realiza a continuación la identificación de todas las figuras que se identifican y se
filtran por área y vértices para obtener la H. Por último, se unen lo vértices más externos para
encuadrarla, como se puede ver en verde en la figura 2.

Estos datos son utilizados en el control IBVS para obtener el error entre centros y obtener
la velocidad en los ejes x e y. De esta forma el dron se centra con la plataforma. La velocidad
de descenso se obtiene en función del área del rectángulo que encuadra la H.

La última parte del proyecto consiste en probar los programas realizados. Se hace uso del
entorno de simulación que ofrece Gazebo para crear un mundo en el que poder probar el dron.
Se comienza probando un aterrizaje sin perturbaciones para evaluar el correcto funcionamiento
de todos los programas y calibrar las ganancias. Para probar la eficacia y robustez de los algorit-
mos se experimentan distintas perturbaciones: plataforma en movimiento, carga extra y viento.
A lo largo de todas las pruebas se van recopilando datos y se comparan los resultados, mediante

7
la herramienta de Matlab.

Se ha podido probar la eficacia del algoritmo IBVS en los distintos escenarios. Se ha mos-
trado que es un control robusto, con un bajo coste computacional y con fácil portabilidad. El
mayor inconveniente reside en los giros bruscos en los que se produce una inclinación del dron
para el cambio de dirección y se balancea. Produce un movimiento de la cámara y se descentra
el rectángulo. Se podrı́a solucionar en un trabajo futuro utilizando una cámara giroestabilizada.
Existe un vı́deo resumen de todos los experimentos realizados en: [Link]
FfnEQFYtv6g. Todo el código utilizado: en Matlab, el proyecto con los archivos de Gazebo y
los programas de detección, control IBVS y plugins; se encuentran en el repositorio de github:
[Link]

8
Índice general

1. Introducción 11
1.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3. Estructura de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2. Estado del arte 15


2.1. Image-Based Visual Servoing (IBVS) . . . . . . . . . . . . . . . . . . . . . . 15
2.2. Position-Based Visual Servoing (PBVS) . . . . . . . . . . . . . . . . . . . . . 16
2.3. Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4. Competiciones de drones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5. Aterrizaje con perturbaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6. Detección de la H de plataforma de aterrizaje . . . . . . . . . . . . . . . . . . 19

3. Herramientas software 21
3.1. ROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2. Aerostack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3. Gazebo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4. OpenCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.5. Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4. Fundamentos y desarrollo 25
4.1. Detección de la plataforma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.1. Fundamentos teóricos . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.2. Desarrollo práctico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2. Image Based Visual Servoing (IBVS) . . . . . . . . . . . . . . . . . . . . . . 29
4.2.1. Fundamentos teóricos . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2.2. Desarrollo práctico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

5. Experimentos y resultados 36
5.1. Sin perturbaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.2. Carga extra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.3. Plataforma en movimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.4. Ráfagas de viento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.5. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

6. Conclusiones y lı́neas futuras 59


6.1. Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
6.2. Lı́neas futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

9
7. Planificación temporal y presupuesto 61
7.1. Diagrama de Gantt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
7.2. Presupuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

8. Bibliografı́a 63

Índice de figuras 67

Índice de tablas 68

Notación general 69

10 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

1. Introducción
1.1. Motivación
La robótica ha tenido una enorme evolución en las últimas décadas y sigue avanzando a
pasos agigantados. De esta forma se hacen realidad las pelı́culas de ciencia ficción que veı́amos
en el pasado.

Los drones son un claro ejemplo de esto por su popularidad estos últimos años, gracias a
su versatilidad y la gran cantidad de aplicaciones que tienen como por ejemplo transporte de
objetos, inspecciones, seguridad, uso militar o uso agroforestal. No se concibe una sociedad en
un futuro donde estos robots voladores no estén presentes.

Los vehı́culos aéreos no tripulados (VANT) o Unmanned Aerial Vehicle (UAV) son ae-
ronaves que vuelan sin tripulación. Pueden ser controlados a distancia por un piloto o estar
programados para realizar funciones de forma autónoma. Su origen es militar y se remonta a la
Primera Guerra Mundial (1914-1918). Reino unido construyó en 1916 el primer VANT contro-
lado por radio y servı́a como blanco de entrenamiento o como defensa de zepelines, el “Aerial
Target”.

Figura 1.1: Dibujo del “Aerial Target”. Fuente: [2]

Se siguieron usando en el ámbito militar obteniendo su mayor desarrollo a finales del siglo
XX cuando fueron operados por radiocontrol, demostrando su eficacia en las Guerras del Golfo
(1990-1991) y de Bosnia (1992-1995). Tras la caı́da del muro de Berlı́n (1989) se comenzó a
desarrollar la tecnologı́a militar para la industria civil y los drones se hicieron un hueco en el
mercado poco a poco.

Luis Alfonso Delbergue Chico 11


CAPÍTULO 1. INTRODUCCIÓN

Actualmente, grupos como CVAR (Computer Vision and Aerial Robotics) de la UPM (Uni-
versidad Politécnica de Madrid) compiten para mejorar las prestaciones que nos pueden dar. De
esta forma se abren nuevas lı́neas de investigación y se consiguen mejorar las capacidades de
los drones.

Una de esas competiciones es el IMAV (International Micro Air Vehicle Conference and
Competition) 2021 de México [3], donde se propone una serie de pruebas relacionada con el
rescate tras una catástrofe natural. Un cuadrocóptero es ideal para la inspección por su tamaño,
velocidad y campo de visión, sin poner en riesgo vidas humanas. En esta competición se propo-
nen pruebas como inspeccionar una zona con poca luz o humo, evitar objetos en movimiento o
aterrizar con perturbaciones de viento para evaluar al dron de cada equipo. Esta última prueba
es la que ha motivado este trabajo, a la que se tratará de poner solución.

Figura 1.2: Cuadrocóptero. Fuente: [3]

El control visual es la transmisión de información en forma de imagen para desempeñar una


tarea. El 80 % de la información sensorial que recibe el ser humano es a través de la vista y
ası́ podemos realizar una tarea. Por lo que el origen del control visual es el propio origen de la
vista. El visual servo es un tipo de control visual en la que se toma información de un sensor
visual y se controla el movimiento de un robot. Un claro ejemplo de esta moderna técnica son
los brazos robóticos para desempeñar una tarea en función de las imágenes que se reciben por
una cámara en tiempo real. En [4] se expone la unión de la robótica con los controles visuales.

Esta técnica ha sido elegida para ser la solución del problema anteriormente mencionado,
aterrizaje autónomo con perturbaciones, por su eficacia probada en otros vuelos y su bajo coste
computacional. Más adelante explicaremos otras posibles opciones, las diferentes técnicas de
visual servo y sus ventajas e inconvenientes.

1.2. Objetivos
El objetivo final de este trabajo es llevar a cabo un algoritmo de visión para controlar del
aterrizaje autónomo de un dron en una plataforma objetivo. Para ello se deben de cumplir una
serie de subobjetivos que se enumeran a continuación:
Aprendizaje de las herramientas digitales necesarias con las que se van a trabajar más
adelante.
• Repaso y ampliación de los conocimientos de C++, para obtener soltura en la pro-
gramación con este lenguaje. Aprendizaje de OpenCV (Open Computer Vision), una
librerı́a que facilita la implementación de algoritmos de tratamiento de imágenes.

12 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

• Instalación y aprendizaje general de Ubuntu (Linux) y estudio de los comandos del


terminal
• Aprendizaje de ROS (Robot Operating System) [5], un software que estructura los
algoritmos para la programación de robots. En ROS se basa otra herramienta crea-
da por el grupo CVAR que permite realizar vuelos con UAVs (Unmanned Aerial
Vehicle), imprescindible para la realización de este trabajo: Aerostack [6].
• Aprendizaje del entorno de simulación para realizar las pruebas de vuelos con el
dron: Gazebo [7].

Investigación de las distintas opciones presentes para resolver el problema y decidir la


opción con la que trabajar.

Programación del algoritmo de visión artificial para la detección de la plataforma, identi-


ficando la “H” central mediante OpenCV e implementarlo al sistemas de nodos de ROS.

Programación del algoritmo IBVS (Image Based Visual Servoing) e implementarlo a la


estructura.

Creación del mundo simulado donde implementar el dron donde realizar las pruebas.

Ajustes necesarios para llevar a cabo el aterrizaje de forma exitosa. Realización de distin-
tas pruebas con varias perturbaciones para probar la robustez del algoritmo, modificando
ganancias y el mundo simulado.

Analizar los resultados a través de Matlab. Proponer futuras lı́neas de investigaciones para
continuar con el estudio.

1.3. Estructura de la memoria


Esta memoria de divide en distintos capı́tulos con secciones y subsecciones, como aparece
en el ı́ndice. Al final aparece la bibliografı́a con todas las referencias que se hacen a lo largo del
trabajo. Más adelante se presentan los ı́ndices de figuras y tablas que también se referencian. En
el apartado final se presenta la notación general usada, con acrónimos y un glosario, para poder
consultarla en caso de necesitarlo.

El primer capı́tulo tras la introducción es el estado del arte. Se ponen en contexto algunas de
las últimas investigaciones en el sector de aterrizaje en drones e identificación de la plataforma.
Se explican brevemente las distintas opciones que se nos presentan mostrando sus ventajas e
inconvenientes.

A continuación se presentan las herramientas tecnológicas de las que nos hemos valido para
poder llevar a cabo el trabajo. Se explican los principios básicos para entender estas herramien-
tas al igual que los términos que se utilizarán más adelante para explicar el código.

Tras conocer el contexto del sector y la base software, se comienza a describir los algoritmos
llevados a cabo en el apartado de la metodologı́a. Éste se divide en dos partes: la detección de la
plataforma y el algoritmo de control visual para poder llevar a cabo el aterrizaje. En cada parte
se explican unos fundamentos teóricos y se muestra un esquema a modo de pseudocódigo para
explicar más visualmente el código en C++ que se puede encontrar en el repositorio de github

Luis Alfonso Delbergue Chico 13


CAPÍTULO 1. INTRODUCCIÓN

facilitado.

En el apartado cinco se describen los experimentos llevados a cabo. El primero consiste en


un aterrizaje sin perturbaciones y luego se hacen pruebas con distintas perturbaciones: carga
extra, plataforma en movimiento y viento. Se comentan los resultados de cada experimento.

El siguiente apartado se dan las conclusiones a las que se ha llegado con la realización del
trabajo. Se añaden también unas lı́neas de investigación para continuar con este estudio en un
futuro.

En el último capı́tulo se muestra la planificación temporal a través de un diagrama y el pre-


supuesto utilizado en la realización del trabajo.

14 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

2. Estado del arte


Para conocer el campo de aterrizaje autónomo de drones es importante investigar trabajos
de vanguardia. De esta forma se conocen los métodos por lo que distintos miembros de la co-
munidad robótica han podido lograr que un UAV detecte una plataforma y realizar un aterrizaje
exitoso por sı́ mismo sobre una plataforma.

2.1. Image-Based Visual Servoing (IBVS)


Esta técnica es ampliamente utilizada en diversas aplicaciones y ha sido estudiada a lo largo
de los años. Se tiene la imagen de un objeto, obtenida desde la posición objetivo. Se parte de una
posición inicial en la que se detectan las esquinas del objeto en cuestión y se forma su silueta.
Mediante una serie de operaciones con matrices de transformación de cada uno de los vértices,
el robot se pone en movimiento hacia su posición final, transformando el contorno hasta cua-
drarlo con el objetivo [8].

Da resultados satisfactorios ya que es estable y robusto con los errores de calibración de la


cámara, errores de calibración del robot y errores de medida de imagen. Tiene un bajo error de
posición objetivo gracias a su bucle cerrado del esquema de control. Por ello está muy extendido
y tiene muchas aplicaciones dentro del mundo de los drones como por ejemplo seguimiento de
objetos [9], agarrar y manipular objetos [10] o aterrizaje [11].

Sin embargo, presenta problemas de estabilidad y convergencia a la posición final si la tarea


está alejada del punto de operación que está linealizado. Esto se relaciona con el cálculo de la
imagen Jacobiana o Matriz de interacción que tiene un importante papel en el control del dron.
Otro incoveniente es que no se realiza un control sobre la imagen, lo que implica que el objeti-
vo puede salir del campo de visión de la cámara durante el proceso y terminar fracasando en la
misión.

En 2012, Lee et al [11] investigan sobre el aterrizaje y despegue de un UAV en una plata-
forma que se mueve mediante IBVS. Mediante esta técnica, el vehı́culo no tripulado sigue la
plataforma, generando una velocidad de salida en el mecanismo de control. Este proceso impli-
ca un bajo coste computacional ya que el IBVS no es tan sensible a la profundidad como otros
algoritmos de control basados en visión que reconstruyen una representación tridimensional
completa del objetivo.

Existe Image-Based Visual Servoing tanto tridimensional como bidimensional. El 3D es un


sistema con mayor estabilidad aunque tiene mayor coste computacional y es más sensible al
ruido que el 2D [12].

Luis Alfonso Delbergue Chico 15


CAPÍTULO 2. ESTADO DEL ARTE

En 2002, Enric Cervera [13] propone una alternativa frente al 2D y 3D monocular, haciendo
uso de una visión estéreo. De esta forma se se obtiene información sobre la profundidad sin
necesidad de un modelo geométrico. Se comprueba experimentalmente que este efecto de pro-
fundidad proporciona un mejor control de la técnica. Además se salvan los puntos de trabajo
singulares que tiene una sola cámara.

2.2. Position-Based Visual Servoing (PBVS)


Consiste en corregir el error de alineación entre la posición deseada y la identificada en ca-
da instante en un sistema de coordenadas cartesianas. Para ello se necesita una reconstrucción
3D de la posición del objeto, lo que genera mucho coste computacional y puede ser sensible a
errores. Este modelo geométrico del objeto y los parámetros conocidos de la cámara permiten
estimar la posición relativa del objeto. Se calcula el error de posición entre la posición deseada
y la inicial y se realiza el movimiento para corregirla [14].

A partir del Image-Based control y del Position-Based control surge una combinación de
ambos en el hybrid control. Trata de obtener lo mejor de cada método y unirlos. Como ejemplo
se puede apreciar como en [10] se hace uso de esta técnica. Un dron con un brazo robótico es
capaz de coger barras en distintas posiciones y dejarlas en el lugar deseado con precisión.

Otra alternativa que trata de mejorar los controles de visión clásicos (IBVS y PBVS) es el
de 2 1/2 D visual servoing [15]. Una ventaja de este sistema frente al PBVS es que no nece-
sita de un modelo geométrico tridimensional del objeto. Frente al IBVS, este sistema asegura
un buen control de convergencia en todo el espacio de trabajo y una mejora de la estabilidad.
Sin embargo también presenta puntos en contra. Para un objeto no plano, son necesarios ocho
puntos para la generación de la matriz de transformación, frente a los cuatro necesarios en los
otros métodos. Otro problema es que es más sensible al ruido en la imagen.

2.3. Machine Learning


El Reinforcement Learning es un tipo de aprendizaje automático (machine learning) en el
que una inteligencia artificial debe tomar decisiones para conseguir un objetivo. En función de
lo cerca que está del objetivo final consigue una compensación o una multa, equivalentes a una
puntuación positiva o negativa, teniendo que aumentar ésta hasta el máximo posible. De esta
forma el algoritmo comienza siendo aleatorio y mediante prueba y error se va puliendo hasta
terminar ejecutando la tarea propuesta. Es una técnica ampliamente utilizada en varios trabajos
de control y estabilización [16], seguimiento de objetos [17] o aterrizaje [18].

En este último paper [18], se expone un método en Deep Reinforcement Learning (DRL),
que combina el deep learning con el reinforcement learning, para realizar el aterrizaje de un
cuadricóptero. El deep learning es otro proceso de machine learning que hace uso de una red
neuronal artificial compuesta por niveles jerárquicos. En el primer nivel la información que ob-
tiene es algo sencillo. En el siguiente nivel coge la información del anterior y lo combina y ası́
sucesivamente. De esta forma, por ejemplo, puede conseguir identificar un tipo de objeto si se

16 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

entrena el algoritmo con suficientes datos (diferentes ángulos, distintas luces...).

El método DRL pretende sustituir los otros métodos tradicionales de aterrizaje que con-
sisten en caracterı́sticas geométricas y sensores externos para el acercamiento a la plataforma.
Permitirı́a, con imágenes de baja resolución en la cámara que mira hacia abajo, identificar la
zona de aterrizaje. Para lograrlo, se ha usado un enfoque en Deep Q-Networks. La función Q
es la función de distribución acumulativa complementaria de la distribución normal estándar.
Es decir, Q(x) es la probabilidad de que una variable aleatoria normal estándar tome un valor
mayor que x. El objetivo de Q-learning es obtener un conjunto de normas que le digan al agente
qué acción tomar, encontrando una polı́tica óptima. Lo que quiere decir que maximiza el valor
esperado de la recompensa total sobre todos los pasos sucesivos.

En 2017, Riccardo Polvara et al. [18] descomponen el problema en dos partes diferencia-
das. La primera es la detección de la plataforma y la segunda, el descenso vertical. Hace uso de
un doble Deep Q-Networks lo que permite reducir los problemas de sobreestimación, que sur-
gen en ambiente complejos. Además se implementa un control proporcional-integral-derivativo
(PID), que permite corregir el error del sistema mediante una realimentación. La parte propor-
cional aplica más acción cuanto más lejos esté del valor deseado, la integral tiene en cuenta los
errores anteriores y el derivado reacciona a la velocidad de cambio del error.

La unión del Reinforcement Learning y el Image-Based Visual Servoing se conoce como


RL-IBVS, con lo que se pretende subsanar los problemas de convergencia y estabilidad en un
punto alejado del punto de operación del IBVS. En [19], se usa este sistema basado en Deep
Deterministic Policy Gradient (DDPG), un tipo de algoritmo que hace uso de la función Q y
una polı́tica que consiste en qué hacer en qué situación. Lo que se busca es que un dron siga
un objeto manteniendo la posición relativa. Esto se consigue eficientemente tanto en RL-IBVS
2D como en 3D con un resultado muy preciso tanto en simulación (error de 6 pixeles) como
en vuelo real (error de 13 pixeles). El sistema es muy robusto ya que una de sus ventajas es
trasmisión casi directa de la simulación a un vuelo real. Prueba de ello es que en el entorno de
simulación se usó un dron distinto al de las pruebas reales.

En 2017, Rodriguez-Ramos et al. [20] presentan una comparación entre aterrizaje con Deep
Reinforcement Learning basado en DDPG y PBVS. Para ello se realizan distintas pruebas en
las que los dos sistemas han tenido éxito: plataforma se mueve a distintas velocidades lineal-
mente de forma periódica, en direcciones aleatorias dentro de una zona y linealmente en una
dirección. Se prueba como el algoritmo entrenado en simulación se extrapola fácilmente a la
realidad con distintos escenarios, sin necesidad de sensores externos adicionales [21]. Para ello
han sido necesarias unas 10 horas (más de 5000 episodios) de entrenamiento, aunque después
unas pocas horas se veı́a una mejora notable.

Con PBVS se realizan trayectorias más predecibles y tiene una mayor estabilidad y con RL
el dron es capaz de hacer maniobras más agresivas. En la última prueba, el vuelo con RL llega
a aterrizar con éxito cuando la plataforma va a 2 m/s, mientras que con PBVS la máxima velo-
cidad que alcanza es 1.5 m/s. Los dos enfoques han tenido una tasa de éxito similar en todas la
pruebas. El coste computacional en ambos sistemas no es elevado, aunque en RL es menor, al
no estar basado en la visión.

Luis Alfonso Delbergue Chico 17


CAPÍTULO 2. ESTADO DEL ARTE

2.4. Competiciones de drones


Las competiciones tienen una relevancia vital en los avances que se producen. Crean unas
lı́neas de investigación en las que muchos equipos trabajan y tratan de ser los mejores, consi-
guiendo grandes progresos rápidamente. Este trabajo se ve recompensado con la creación de
publicaciones, reputación y un aliciente económico.

Algunas pruebas de estos concursos consistı́an en aterrizaje autónomo. En el International


Micro Air Vehicle Conference and Competition 2016 (IMAV 2016) [22] celebrado en Pekı́n,
el dron tenı́a que aterrizar en una plataforma de un 1x1 m elvedada una altura de 0.56 m. Ésta
iba sobre unos raı́les circulares a una velocidad menor de 2 m/s. En 2017 Mohamed Bin Zayed
International Robotics Challenge (MBZIRC) [23] el reto consistı́a en identificar la plataforma
que iba en un camión y aterrizar. El camión podı́a moverse dentro de una zona de 90x60 m
e iba a una velocidad de 15km/h (4.17 m/s), sino se aterrizaba en los primeros 8 minutos, se
disminuirı́a la velocidad.

En 2017, Rodriguez-Ramos et al. [24] se publica una solución para la prueba del IMAV2016
en la que se usa un sistema sencillo pero aplicable a vuelos reales. En el primer experimento
el dron sobrevuela la trayectoria lineal periódica de la plataforma, va bajando y predice el mo-
mento para aterrizar. En el segundo experimento el dron estima la trayectoria de la plataforma,
mediante un modelo de velocidad constante, selecciona un punto y se queda sobrevolándolo a
la espera de que pase ésta para a realizar un aterrizaje rápido. El cálculo de la altura se realiza
con un altı́metro y un 1D-LIDAR.

En el MBZIRC los mejores equipos conseguı́an realizar el aterrizaje en 30s. después del
despegue. La mayorı́a de los equipos tomaron una solución de optimización de tiempo con un
Model Predictive Controller [25]. De esta forma se estimaba la trayectoria del camión y se
calculaba la trayectoria óptima para alcanzar el objetivo. En el momento que está cerca de la
plataforma se realiza una estimación más precisa con un control por visión 3D, para un aterri-
zaje más seguro [26] [27].

2.5. Aterrizaje con perturbaciones


Las estrategias de optimización y control de la trayectoria pueden tener en cuenta las per-
turbaciones que pueden surgir en el aterrizaje [28] [29]. Por otro lado usando un sistema basado
en las leyes de guiado usado en misiles, la incorporación de entradas prealimentadas (feed-
forward) permite una respuesta más rápida ante errores de trayectoria, como se pueden producir
en plataformas en el océano por el viento y las mareas [30] [31].

En 2016, Alessandro Rucco et al.. [29] crean una optimización de trayectoria en 3D toman-
do la dinámica y cinemática de un dron y un vehı́culo terrestre. Esta trayectoria que se seguirı́a
para llegar al punto en el que se encontrarı́an, tendrı́a en cuenta las perturbaciones de viento,
mediante un ı́ndice de agresividad en el ambiente problemático. De esta forma se podrı́a hacer
una trayectoria hacia el vehı́culo terrestre más agresiva o suave, variando ası́ también el tiempo
de vuelo.

18 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

En 2014, Kevin Ling et al. [28] proponen un experimento en la que un UAV realizase un
aterrizaje en una embarcación con perturbaciones de viento y marea. Primero el UAV hace un
primer acercamiento al objetivo con GPS y magnómetro. Cuando localiza la plataforma de ate-
rrizaje cambia a un sistema de control de sensores de visión con la unidad de medida inercial,
para tener más precisión y estar dentro del marco de un cuerpo fijo inercial. Éste es capaz de re-
chazar las perturbaciones del viento sin ningún requisito de estimaciones de estado en el marco
inercial. Los resultados muestran errores mayores a medio metro, por lo que son relativamente
elevados.

En 2015, Gautam et al. [30] parten de una localización GPS estática o en movimiento cono-
cida, que es trasmitida periódicamente. Una vez localizado, hay dos tipos de bucles que pueden
ir integrados o separados. El de entrada controla el control del UAV en función de la aceleración
generada en el de salida. El de salida se usa para estrategias de guiado. Se trata el control de
navegación tanto en 2D como en 3D.

En 2014, Wang Kai et al. [31] proponen un guiado adaptativo de navegación proporcional
basado en un control de retroceso (backstepping). En simulación se ha probado que el guiado
lleva el UAV a la zona de aterrizaje pero la red de recuperación se ve muy afectada por las
interferencias y el proceso de control de trayectoria es muy largo, lo que se verı́a más afectado
por el viento.

2.6. Detección de la H de plataforma de aterrizaje


Para todo aterrizaje exitoso es necesario un paso previo, la detección de la zona objetivo.
Lo más común es una plataforma con una H dibujada en el centro. La imagen se recibe de
una cámara, es necesario hacer transformaciones y desarrollar un algoritmo por el que identifi-
quemos correctamente esa H. Para tratar estas imágenes es muy extendido el uso de la librerı́a
OpenCV que tiene una serie de funciones optimizadas que son de mucha ayuda en el proceso.

En 2016, Om Prakash et al.[32] explican como tratar la imagen recibida de la plataforma


para identificar correctamente la H. Se recibe la imagen cenital de la plataforma y se transforma
a escala de grises. A continuación se segmenta por umbralización, es decir, se obtienen todos
los contornos de la imagen en blanco y negro. Luego se dilatan estos contornos para aumentar
su grosor y no tener problemas con que haya lı́neas que no se corten por ser demasiado finas.

Por último, se aplica un algoritmo de Speeded-Up Robust Features (SURF) por el que se ob-
tienen unos puntos caracterı́sticos y se comparan con una imagen de la H ideal. Una vez se tiene
la H identificada, se puede encuadrar con una función de OpenCV. En SURF se hace una con-
volución de la imagen por cuadrados y mediante una matriz Hessiana se encuentran los puntos
de interés al ser ésta una expresión del cambio local en las propiedades de la imagen alrededor
de un área. El método SURF es ampliamente utilizado, por ejemplo, para el reconocimiento de
objetos, caras o personas.

En 2017, Cosimo Patruno et al. [33] optan por otro tipo de algoritmo, con buenos resulta-
dos también. El pretatamiento de la imagen consiste en transformarla a escala de grises, hacer
borrosa la imagen, usar un filtro para eliminar ruidos y aumentar el contraste de la imagen. A
continuación se identifica cada forma, se selecciona la de menor área, en la que el centroide del

Luis Alfonso Delbergue Chico 19


CAPÍTULO 2. ESTADO DEL ARTE

cı́rculo y la H sean cercanos y que sea invariante el ratio área-perı́metro respecto la rotación o
la escala. Por lo tanto, los últimos contornos que quedan son el cı́rculo y la H, que segmentando
por umbralización se obtienen los bordes.

Figura 2.1: Proceso de detección H de [32]

Después se realiza un filtro con los 12 vértices que tiene la H, pero para evitar falsos po-
sitivos se aplica una computación de radio de curvatura a cada pı́xel del contorno y una com-
paración euclı́dea de la distancia real. Se agrupan las esquinas estimadas en pares con el punto
medio entre las dos. Por último, se unen estos 6 puntos medios, obteniendo lı́neas con las que
se obtienen los ejes y una estimación más precisa de las esquinas.

20 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

3. Herramientas software
Como se ha comentado anteriormente, ha sido necesario aprender nuevas herramientas in-
formáticas para llevar a cabo la realización de este trabajo de fin de grado. Conocer lo que son
estas herramientas, cómo se interconectan los algoritmos y dar nombres a las partes de estruc-
tura y funciones es importante para comprender el resto del documento.

3.1. ROS
El sistema operativo de robots (ROS) [5] es un marco de desarrollo software para robots.
Su objetivo es el de facilitar la tarea de programar una estructura de robots compleja gracias a
sus herramientas y librerı́as. Se abarcan una gran variedad de proyectos por su gran cantidad de
librerı́as.

Únicamente está disponible en sistemas operativos Linux. Su código es abierto, lo que per-
mite al usuario modificarlo, fomentando la colaboración software. Se fomenta el desarrollo en
conjunto, gracias a la cantidad de proyectos que se comparten y robots creados que se pueden
utilizar.

Se estructura con paquetes que deben contener dos archivos: [Link] y [Link].
Contienen metainformación sobre el paquete y crean una estructura en árbol. ROS permite pro-
gramar en distintos lenguajes: C++, Python, Octave y LISP. En este trabajo se ha usado C++
para la realización de los algoritmos.

Los conceptos estructurales más importantes de ROS son los siguientes:

Nodos: son los procesos que ejecutan la comunicación y contienen la información. Están
interconectados entre sı́ compartiendo mensajes. Pueden tener varios tópicos o servicios.

Tópicos: son el medio que utilizan los nodos para comunicarse entre sı́. Hay dos tipos:
publishers,mandan o publican mensajes, y subscirbers, obtienen o subscriben datos.

Mensajes: son los tipos de datos que se publican o subscriben entre tópicos.

Servicios: es otra forma en la que los nodos pueden comunicarse. En este caso tienen un
mensaje de petición y otro de respuesta.

ROS Master: es un mecanismo que usa ROS para interconectar todos los nodos,

Por último, cabe mencionar herramientas importantes que se usan a lo largo de este trabajo
de fin de grado que son muy útiles:

Luis Alfonso Delbergue Chico 21


CAPÍTULO 3. HERRAMIENTAS SOFTWARE

rqt graph: muestra la estructura en árbol en la que se interconectan los nodos. Hace muy
visual y cómodo el tener un mapa de todos los tópicos y en qué sentido publican o subs-
criben información.

Figura 3.1: Ejemplo de estructura generada por ROS mediante rqt graph

rosbag: permite almacenar un historial de los datos que publica cada tópico, para poderlos
analizar los resultados más fácilmente más adelante.

3.2. Aerostack
Aerostack [6] es un framework que facilita el desarrollo de aplicaciones de robots aéreos.
Tiene una gran cantidad de soluciones de visión por computador, mapeo, localización... Es una
herramienta a tener en cuenta en el diseño de nuevos algoritmos en UAVs.

Nació en 2013 por el grupo CVAR tras tener más de 20 años de experiencia en el sector. Es
un software propio del grupo que se sigue desarrollando y mejorando a dı́a de hoy. Aerostack
permite operar en ROS Melodic en Ubuntu 18.04, versiones utilizadas en este trabajo de fin de
grado.

Aerostack está basado en ROS, utilizando el mismo sistema de nodos para estructurar los
algoritmos. Es una plataforma muy flexible por sus diversas aplicaciones que aumentan cada
dı́a con el trabajo del grupo. Permiten vuelos teleoperados y autónomos y con un solo dron
o con un enjambre. Otra ventaja de esta plataforma es su independencia del hardware, por lo
que puede operar con una gran cantidad de drones distintos al centrarse en el software. Cada
componente del código se puede ejecutar a través de un ordenador a bordo o con un ordenador
a tierra mediante una red LAN o WIFI.

Esta estructura está organizado en las siguientes cinco componentes:

Interfaces: se compone de dos partes. En la primera se reciben datos de los sensores y


envı́an comandos a los actuadores. La segunda consiste en la interacción entre robot con
el operador humano o con otros robots.

Canal de comunicación: contiene información dinámica compartida entre procesos. Fa-


cilita la operabilidad entre procesos y ayuda a reutilizar componentes de distintos tipos
de plataformas.

Comportamiento de los robots: Un sistema de gestión de comportamiento controla la


ejecución de distintos comportamientos de robots que operan en paralelo, evitando con-
flictos. Algunos ejemplos de comportamientos que se implementan son estimación del
estado, la extracción de caracterı́sticas o el control de movimiento

22 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

Memoria de creencias: obtiene creencias sobre el mundo almacenándolo en una me-


moria. estas creencias se utilizan, por ejemplo, para tomar decisiones sobre cuál es la
siguiente tarea a realizar durante la ejecución de una misión.

Control de la misión: ejecuta y monitorea un plan de misión especificado en un código.

Figura 3.2: Estructura de capas de Aerostack

3.3. Gazebo
Gazebo [7] es un simulador 3D de robots de código abierto. Este software permite diseñar
robots y mundos, testearlos y evaluarlos. Gazebo se sincroniza con ROS de forma sencilla. Al
arrancar la simulación se inicializa un nodo de Gazebo, del que, uno de sus tópicos será /clock
al que se subscribirán todos los nodos y llevará el tiempo de simulación.

Este simulador se compone de mundos en los que se pueden implementar distintos mode-
los. Utiliza programación en SDF o URDF, un lenguaje de programación intuitivo que ofrece
muchas posibilidades para modificar distintas caracterı́sticas. Cada caracterı́stica consta de una
serie de etiquetas XML.

Además existen plugins, que son unas herramientas que permiten enviar mensajes a mo-
delos de Gazebo a través de ROS. Estos programas abren más aun la posibilidad de modificar
caracterı́sticas del mundo o del modelo. Algunos ejemplos de su utilidad es poder enviar una
fuerza a un modelo del mundo o hacer que se muevan a una velocidad constante.

Luis Alfonso Delbergue Chico 23


CAPÍTULO 3. HERRAMIENTAS SOFTWARE

3.4. OpenCV
OpenCV [34] es una librerı́a especializada en el tratamiento de imagen ampliamente co-
nocida, por todas las aplicaciones que tiene. Cuenta con más de 2500 algoritmos optimizados.
Gracias a esta librerı́a es posible obtener una enorme cantidad de información de una imagen o
vı́deo de una manera muy cómoda.

Esta librerı́a se ha utilizado para detectar la plataforma de aterrizaje con las imágenes que se
obtienen de una cámara cenital del dron. Más adelante se hablará con más detalle del algoritmo
usado.

3.5. Matlab
Matlab [35] es un entorno de programación y cálculo matemático. Es ampliamente cono-
cida por la enorme cantidad de aplicaciones con su gran diversidad de herramientas como por
ejemplo Simulink, app designer o pid tuner.

Es muy útil para analizar datos, desarrollar algoritmos y crear modelos. Es por esto que se
ha usado en este estudio, para trabajar con los datos obtenidos de la simulación de una forma
cómoda. De esta forma se puede extraer la información y analizar los datos para obtener las
conclusiones.

Este software cuenta con toolbox, que es un conjunto de funciones que proveen algoritmos
para facilitar el trabajo en un cierto ámbito. En este caso, se ha instalado la ROS toolbox, que
facilita la transformación de datos almacenados en un archivo creado mediante un rosbag y tra-
bajar después con ellos. Ası́ se ha podido obtener gráficas de las que extraer información de
cada uno de los experimentos, la función para extraer la altura y los vectores con todos los datos
a tratar

24 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

4. Fundamentos y desarrollo
Se diferencian dos partes en las que se usan algoritmos distintos que se interconectan me-
diante la estructura de nodos creada por ROS: la detección de la plataforma de aterrizaje y el
control IBVS para realizar el aterrizaje.

4.1. Detección de la plataforma


Para la detección de la plataforma se ha añadido una cámara al modelo .sdf (formato en el
que se guardan los modelos de Gazebo) del dron en la simulación. Está en la parte inferior para
obtener una vista cenital de la plataforma e identificarla.

4.1.1. Fundamentos teóricos


Como se ha explicado en el estado del arte, existen algoritmos complejos con buenos resul-
tados para la identificación de la H. Sin embargo, el objetivo principal de este trabajo de fin de
grado es desarrollar un control IBVS, por lo que se ha diseñado una forma de identificación más
simple, pero funcional. La principal ventaja es que tiene un bajo coste computacional y cumple
con su función de encuadrar la H.

Al ser un control visual, todo lo que se detecta con la cámara afecta directamente al resto del
control, por lo que es importante identificar correctamente las esquinas para que el algoritmo
tenga un buen comportamiento más adelante.

Una vez recibida una imagen se debe realizar un preprocesado antes de llevar acabo el trata-
miento de ésta. Este preprocesado sirve para quitar ruidos y subrayar las caracterı́sticas que nos
interesan. El tipo de preprocesado dependerá de la situación en la que se tomen las imágenes y
del tratamiento que se hará a continuación.

Algunos ejemplos comunes de efectos indeseados que se podrı́an encontrar son vibraciones,
imágenes borrosas por la velocidad o cambios de luz. Al realizar este trabajo en simulación no
se tiene este tipo de problemas, pero habrı́a que tenerlo en cuenta a la hora de llevarlo a la reali-
dad. Esto se intensifica si se decide realizar un ensayo en exterior.

Transformar a escala de grises es un preprocesado común para fijarse únicamente en la lu-


minosidad de la imagen. De esta forma es más sencillo obtener bordes o caracterı́sticas visuales.
Una solución para tratar la vibración del dron o condiciones meteorológicas indeseables durante
un vuelo real es hacer borrosa la imagen en simulación antes de comenzar el proceso.

Luis Alfonso Delbergue Chico 25


CAPÍTULO 4. FUNDAMENTOS Y DESARROLLO

Una imagen está formada por pı́xeles que toman un valor distinto en función del color. De
esta forma se desarrollan funciones que, con esos valores, pueden obtener un color determinado
de la imagen. Se puede saber cuando hay un gran salto de color y obtener un contorno. Éstas
son algunas de las opciones que te facilita la librerı́a OpenCV, una librerı́a muy extendida para
el tratamiento de imagen.

El modelo de color HSV es muy útil para realizar filtros de color. HSV son las siglas de Hue,
Saturation y Value que signifcan Matiz, Saturación y Valor en español. Este modelo deriva del
ampliamente conocido RGB (Red Green Blue) usado en los monitores.

Matiz: Su valor va entre 0º y 360º y es equivalente a un color. Por ejemplo el rojo o


RGB(255,0,0) serı́a el 0º en este modelo.

Saturación: Es el grado de saturación del color entre 0 y 1.

Valor: Toma valores entre 0 y 1 para tomar el nivel de brillo.

Figura 4.1: Cono del modelo HSV. Fuente: [36]

4.1.2. Desarrollo práctico


En este apartado se va a comentar el desarrollo del código generado para identificar el lu-
gar objetivo donde aterrizar, con un esquema al final del apartado para dar una idea general
del código. Se ha realizado un algoritmo sencillo pero eficaz. La finalidad es hacer un control
IBVS, que tiene poco coste computacional. Realizar un algoritmo muy complejo de identifica-
ción arruinarı́a ese punto fuerte del control IBVS.

En primer lugar se ha desarrollado el programa en C++ independiente de ROS haciendo


uso de la librerı́a OpenCV. Para realizar la prueba se han tomado distintos pantallazos de la
simulación con la plataforma con la H en distintas posiciones. Una vez este programa funcio-
naba correctamente se creó un paquete de ROS con archivos que lo linkan a la estructura creada.

El código consiste en la declaración de librerı́as necesarias para el funcionamiento del pro-


grama como la de ROS u OpenCV entre otras. A continuación se declaran una serie de variables
que se utilizarán a lo largo del código.

Se crea una clase que contiene variables que se utilizarán como mensajes entre nodos a
través de los publishers y subscribers que contiene. Tiene el constructor y destructor de la clase

26 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

y del display que se genera para poder observar en pantalla lo que captura la cámara en tiempo
real. Los dos subscribers que pertenecen a la clase son para obtener las imágenes de la cámara y
sus parámetros caracterı́sticos. Los dos publishers sirven para publicar en el display de la cáma-
ra y enviar el vector con las esquinas y la información de la cámara. En la figura 4.2 se presenta
un esquema simplificado del sistemas de nodos que se ha obtenido mediante la herramienta
rqt graph.

Figura 4.2: Esquema simplificado de la estructura de nodos de la identificación de la H

En el main solamente se inicializa el nodo y se realiza la declaración de la clase anterior.


La función que conforma el subscriber, un tópico que se subscribe al nodo que contiene la in-
formación de la cámara. Obtenemos los parámetros que van a ser necesarios más adelante: las
distancias focales (Fx y Fy ), los puntos principales (Cx y Cy ) y las dimensiones de alto y ancho
en pı́xeles. A pesar que en esta cámara conocemos sus valores directamente, al obtenerlos, hace-
mos más portable el programa, para poder implementarse en otro dron con una cámara distinta.

El grueso del código pertenece al tópico que se subscribe al nodo de la cámara que captura
las imágenes. Se crea el puente que une OpenCV y se obtiene la imagen que capta la cámara en
cada momento. Se transforma de RGB a HSV para realizar un filtro de color. Para obtener el co-
lor deseado se han diseñado unas barras deslizantes con las que se ha podido calibrar y obtener
el color deseado. Al ser la H negra sobre fondo blanco, ha sido sencillo obtener el color objetivo.

Se obtiene una imagen con solamente la H central y el cı́rculo que la rodea. Se dilatan los
bordes mediante una función de OpenCV para evitar que dos lı́neas no se terminen de cortar
o que los bordes de la H no queden tan marcados tras el filtro de color. Esta imagen dilatada
se envı́a a una función con la que se obtiene el rectángulo que encuadra la H que se explica
más adelante. A continuación se dibuja un rectángulo que representa el lugar objetivo en la que
debe quedar encuadrada la H antes de terminar el aterrizaje. Por último en este tópico, se ac-
tualiza el display y se publican mediante un publisher en el display de la cámara para dibujar
los rectángulos (en azul el ideal y en verde el real). El segundo tópico publica el vector que se
utilizará en el control IBVS con las esquinas y los parámetros caracterı́sticos de la cámara.

La función que obtiene el contorno de la imagen dilatada aproxima en primera instancia


los bordes mediante funciones de OpenCV. Comprueba si se ha detectado algún contorno y, en
caso afirmativo, comienza un bucle con cada uno de ellos. En él se realiza una estimación de los
vértices y el encuadre de la H, para obtener a continuación el número de vértices y el área. Los

Luis Alfonso Delbergue Chico 27


CAPÍTULO 4. FUNDAMENTOS Y DESARROLLO

contornos se filtran por vértices (12 que tiene una H) y por área (la menor, ya que el encuadre
del cı́rculo es mayor que el de la H). De este bucle se obtiene el ı́ndice del contorno que cumple
con las condiciones anteriores con el que se dibuja el encuadre y se almacena sus esquinas en el
vector que se publicará. Este proceso de tratamientos de imágenes queda reflejado en la figura
4.3

Figura 4.3: Tratamiento de la imagen: imagen recibida, transformación a HSV, filtro color,
dilatación bordes, detección contornos y vértices, filtro área y vértices, encuadre final y en el
entorno de simulación con rectángulo ideal

A continuación se presenta en la figura 4.4 un pseudocódigo de alto nivel para poderse


hacer una idea un poco más general del código. Para ver más en detalle todas las sentencias se
puede consultar en el repositorio de github en el que se encuentra todo el código desarrollado
en este trabajo: [Link]
catkin_ws/src/Detector_esquinas/src/[Link]

Figura 4.4: Pseudocódigo del algoritmo de detección

28 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

4.2. Image Based Visual Servoing (IBVS)


Esta técnica es un tipo de control visual, lo que significa que se obtiene información me-
diante la visión para realizar una misión. Concretando un poco más es un control visual servo,
un caso más especı́fico de control visual que consiste en un control realimentado cuya finalidad
es crear movimiento en un robot para que realice una función. Como hemos visto anteriormente
hay varios tipos de visual servo: PBVS, IBVS o Hybrid Visual Servoing.

El Image Based Visual Servoing inicialmente se usaba para brazos robóticos en el ámbi-
to industrial, sobre todo en cadenas de fabricación. Al comprobar el buen comportamiento del
algoritmo y el desarrollo de los drones en los últimos años, se ha extendido a este sector con
resultados satisfactorios.

Existen dos tipos de disposición de IBVS en función de la colocación de la cámara respecto


al end-effector o actuador como se muestra en la figura 4.5. El end-effector hace referencia a la
parte del robot que lleva a cabo la acción para cumplir la misión. En el caso del brazo robótico
la herramienta o garra que tendrá en su extremo. En el caso del trabajo actual harı́a referencia
al propio dron.

Eye-in-hand: la cámara está en el actuador y su posición varı́a en función del movimiento


del actuador con una posición relativa al objetivo.

Eye-to-hand: la cámara es externa al actuador, estando fija en algún lugar desde el que
obtiene la imagen del objetivo y del actuador.

Figura 4.5: Tipo de Visual Servo. Fuente: [37]

En este trabajo se va a tratar el caso de eye-in-hand, es decir, que la cámara está en el robot
que controla, o dicho de otra forma, junto al end-effector, ya que se encuentra unida al dron
en su parte inferior. De esta forma se obtiene una vista cenital de la plataforma a identificar en
tiempo real.

4.2.1. Fundamentos teóricos


El control IBVS, en esencia, es un control realimentado en el que la entrada es un error
de posición en la imagen recibida y la salida una velocidad que mueve al dron y corrige este

Luis Alfonso Delbergue Chico 29


CAPÍTULO 4. FUNDAMENTOS Y DESARROLLO

error. En el eje x e y, este error será la distancia a la que se encuentra el centro de la zona de
aterrizaje medido del ideal, medido en pı́xeles. En el eje z, será la diferencia de áreas entre la H
encuadrada y un rectángulo en el que deberı́a encontrarse cuando está cerca de la plataforma.

Es importante remarcar las mayores ventajas e inconvenientes de este sistema. Una de las
ventajas consiste en que, al ser un control visual, solamente es necesario tener una cámara para
poder llevar a cabo el objetivo sin necesidad de ningún otro sensor. Con lo que no habrı́a pro-
blemas de interconexiones con otros sensores y solamente habrı́a que controlar con exactitud un
sensor. Otro punto a favor es que, es un algoritmo sencillo, por lo que el coste computacional es
mı́nimo. Por lo tanto, el bucle ocurre cada muy poco tiempo y se puede dejar opción a realizar
otras funciones mientras se realiza la misión mediante IBVS.

En contraposición con el párrafo anterior también tiene desventajas. Al depender de un solo


sensor, si este falla en algún momento por cualquier motivo, la misión falla. Algunos motivos
que pueden influir en la captura de imágenes son condiciones meteorológicas desfavorables. Si
está lloviendo o hay polvo en el ambiente, el dron puede fallar en la identificación y ser incapaz
de aterrizar. Otra desventaja son los balanceos que se producen por el vuelo del cuadricóptero
que, cuando se producen giros bruscos o cambios de dirección llevan al dron a girar un ángulo
llamado de roll o pitch dependiendo si es en x o en y. Estos ángulos producen que la cámara
también lo haga y capture la posición de la plataforma en un extremo o la pierda de vista, lo que
influye en el vuelo.

Antes de comenzar con la formulación de IBVS es importante aclarar que existen dos siste-
mas de referencia o marcos distintos, donde se encuentra la cámara y en el centro de gravedad
del dron, como se refleja en 4.6. Por lo tanto habrá que realizar una transformación que ex-
plicaremos más adelante. Los sufijose se refieren al marco de control del dron (end-effector),
mientras que los sufijosc , al marco de la cámara.

Figura 4.6: Sistemas de referencia del marco del dron y del marco de la cámara. Fuente: [38]

Al usar solamente un sensor, la cámara, será necesario tener una buena calibración de la
misma conociendo todos los parámetros tanto intrı́nsecos como extrı́nsecos. Con ellos será po-
sible obtener la proyección 2D (x,y) en la imagen de los puntos del mundo en 3D (X,Y,Z). Los
parámetros intrı́nsecos son aquellos que hacen referencia a la estructura de la cámara interna-
mente, es decir, la distancia focal (Fx ), el tamaño del pı́xel (Fy ) o el centro óptico (Cx ,Cy ). Estos
parámetros pueden ser obtenidos una sola vez, ya que son constantes independientemente de la
posición del dron. En la ecuación 4.1 se muestra la relación entre estos puntos 2D y 3D y con
los parámetros de la cámara y los puntos en pı́xeles u y v.

30 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión


x = X/Z = (u − Cx )/Fx
(4.1)
y = Y /Z = (v − Cy )/Fy
Una vez obtenida la posición en el plano de la imagen, para conseguir la velocidad se derivan
estas expresiones cuya ecuación es 4.2

ẋ = Ẋ/Z − X Ż/Z 2 = (Ẋ − xŻ)/Z
(4.2)
ẏ = Ẏ /Z − Y Ż/Z 2 = (Ẏ − y Ż)/Z
Se representa en la ecuación 4.3 la relación entre las velocidades en 3D y las velocidades en
el marco de la cámara en 2D.

 Ẋ = −vx − ωy Z + ωz Y
Ẏ = −vy − ωz X + ωx Z (4.3)
Ż = −vz − ωx Y + ωy X

Combinando las ecuaciones 4.2 y 4.3 se obtienen las ecuaciones de 4.4.



ẋ = −vx /Z + xvz /Z + xyωx − (1 + x2 )ωy + yωz
(4.4)
ẏ = −vy /Z + yvz /Z + (1 + y 2 )ωx − xyωy − xωz
De esta forma se puede relacionar el vector vc con la velocidad en 2D de ṡ mediante la matriz
de interacción Lc .
 
−1/Z 0 x/Z xy −(1 + x) y
Lc = (4.5)
0 −1/Z y/Z 1 + y −xy −x
 

vc > = vx vy vz ωx ωy ωz
 
ṡ = (4.6)

ṡ = Lc vc (4.7)
Esta matriz de interacción también se puede representar en polares mediante las variables θ
y ρ que tiene se relacionan directamente con x e y 4.9.

 
−cosθ/Z −sinθ/Z ρ/Z (1 + ρ)sinθ −(1 + ρ)cosθ 0
L(θ,ρ) = (4.8)
sinθ/(ρZ) −cosθ/(ρZ) 0 cosθ/ρ sinθ/ρ −1
 p
ρ = x2 + y 2
(4.9)
θ = arctan(y/x)
Los parámetros extrı́nsecos son las matrices de rotación (c Rn ) y traslación (c tn ) de los puntos
3D en el marco de la cámara al marco del dron como se ha visto en la 4.6. Esta transformación
convierte los ejes con los sufijose a los ejes con los sufijosc . Por lo tanto, una vez obtenida la
velocidad en el marco de la cámara se puede transformar al marco del dron o end-effector con
las fórmulas 4.11

c c

c Rn tn × c Rn
Ve = c (4.10)
0 Rn

vc = c Ve ve (4.11)

Luis Alfonso Delbergue Chico 31


CAPÍTULO 4. FUNDAMENTOS Y DESARROLLO

De la fórmula 4.7 la variable ṡ es equivalente al valor del error por una ganancia como se
representa en la fórmula 4.12. Para convertir ese error en una velocidad.

ṡ = −λe (4.12)
Este error e es la diferencia de caracterı́sticas visuales, que se explican a continuación, ob-
tenidas de la imagen: s (real) y s* (deseada). Esta es la entrada de nuestro control.

e = s − s∗ (4.13)

s(m, a) depende de dos valores: las medidas de la imagen m y parámetros adicionales


del sistema a. m = (x, y) está compuesto de las coordenadas en pı́xeles de la imagen.
a = (Cx , Cy , fx , fy ) son los parámetros intrı́nsecos de la cámara como hemos comentado
anteriormente.

Las coordenadas del plano imagen conforman una serie de caracterı́sticas visuales que
van a ser útiles para el algoritmo forman el vector s = (ng x , ng y , na , arctan(1/ρ)). Cada
término se explica a continuación

• ng x y ng y representan el centro de gravedad del rectángulo encuadrado en el eje x e


y. En el caso de este TFG es el centro del rectángulo.
• na es el parámetro que hace referencia el área, que controla la altura. En este trabajo
se ha desarrollado una función que relaciona la altura con el área del rectángulo,
calibrada previamente con un sensor de altitud.
• arctan(1/ρ) controla la orientación, influyendo en el giro sobre el eje Z. En el caso
de un aterrizaje, no es relevante la orientación en la que va a aterrizar el dron, por lo
que este término se anula y no se tiene en cuenta en la programación.

De esta forma, se llega a la ecuación final que va a ser usada en nuestro controlador 4.14 en
la que en Ls es equivalente a Lc , pero tiene en cuenta además la rotación y traslación entre ejes
de la cámara y del dron. λ es la ganancia que se ajustará experimentalmente con las pruebas en
simulación.

v = −λLs e (4.14)

4.2.2. Desarrollo práctico


En este apartado se va a explicar el proceso que se ha seguido hasta desarrollar el algorit-
mo deseado. Se divide en dos partes distintas. En la primera se explica como se ha obtenido la
ecuación de la altura con respecto al área de la H encuadrada en cada momento. Esta ecuación
se usará en el código del control IBVS que se explica a rasgos generales en la segunda parte de
la sección.

Obtención de la altura
Como se ha comentado en el apartado de estado del arte, existen papers en los que se han
hecho algoritmos de aterrizaje que unen un control visual 2D para centrar en x e y y luego ha-
cen uso de un altı́metro para el control de la altura. En este trabajo se ha querido desarrollar un

32 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

control visual puro, es decir, haciendo solamente uso del sensor de la cámara para obtener toda
la información necesaria para llevar acabo una tarea con éxito.

El proceso a seguir para llevar a cabo el control ha sido desarrollar un algoritmo IBVS para
centrar la H encuadrada, olvidándose de la altura. A continuación probar su eficacia haciendo
uso del altı́metro para realizar los aterrizajes. Por último, obtener la altura en función del área
de la H encuadrada, que es lo que se va a exponer a continuación.

Se ha hecho uso de la función rosbag para obtener la información obtenida en el nodo ante-
rior, de detección del cuadrado de la H y del nodo del altı́metro. Estos datos se han obtenido en
un aterrizaje evitando un final brusco, para tener un muestreo constante. Se han transformado
para poder tratar los datos con Matlab, mediante un script. Se han filtrado por tiempo desde que
empieza a descender hasta que toca con la plataforma.

Se correlaciona la altura en metros con el área del rectángulo en pı́xeles cuadrados. Por
último se hace una aproximación polinómica para obtener la altura en función del área. Este
ajuste polinómico, se realiza dividiendo el Área entre 10000 por problemas de redondeo de
Matlab y que esté, ası́, mejor condicionada. A la hora de pasarlo al programa, será necesario,
también, dividirla antes de sustituir en el polinomio. El polinomio obtenido es el menor grado
posible, que mejor se ajustase lo suficiente a la real, para realizar los menores cálculos posibles
durante la ejecución del algoritmo.

Figura 4.7: Gráficas del proceso de obtención del polinomio que correlaciona la altura con el
área del rectángulo que encuadra la H

De esta forma, no es necesario utilizar ningún sensor externo, a parte de la cámara, para
que el algoritmo funcione. Se aprovecha la mayor ventaja que provee el IBVS, obtener toda la
información de imágenes y su escaso gasto computacional. Es portable a otro dron con la mis-
ma cámara, ya que ya está ajustada en función de la altura. Si no, tan solo, habrı́a que conocer
los parámetros de ésta y ajustar la función de correlación altura-área para que el algoritmo siga
funcionando sin problemas.

Código
En este apartado se va a explicar el código desarrollado para realizar el control IBVS. En
esta ocasión el código es más simple, aunque ha sido más costoso de realizar debido a la gran

Luis Alfonso Delbergue Chico 33


CAPÍTULO 4. FUNDAMENTOS Y DESARROLLO

cantidad de cálculos que han sido necesario usar. Además de los cálculos teóricos se ha de-
sarrollado numerosos ajustes experimentales como en la ganancia. Estas calibraciones se han
realizado publicando mensajes para conocer los valores y analizar qué valor modificar para ob-
tener un mejor comportamiento durante el vuelo.

El código comienza, como es habitual, con la declaración de las librerı́as que serán ne-
cesarias para el correcto funcionamiento del programa. A continuación se declaran variables
globales que se usarán a lo largo del código.

De nuevo se declara una clase que contiene las variables que se usarán para obtener la in-
formación del subscriber que pertenece también a la clase. Este subscriber obtiene los valores
que se enviaban en el anterior nodo explicado en el apartado anterior contenidos en un vector.

En el suscriber se comprueba que vector no esté vacı́o antes de obtener la información, para
que si se pierde la H el dron se pare y no se descontrole. Esa función la cumple el enable como
veremos más adelante. Si contiene valores, estos se almacenan obteniendo las esquinas, las dis-
tancias focales, los puntos principales y las dimensiones de la imagen.

La mayor parte del programa se encuentra en el main donde se inicializa el nodo y se declara
la clase. A continuación se declara el publisher que mandará la velocidad al dron, nuestra salida
del controlador. Para que la estructura de nodos funcione, es necesario activar el servicio que
activa el modo velocidad. Si estuviese el dron en modo posición, interpretarı́a la velocidad que
se le envı́a como una posición a la que llegar. Se completa la estructura anterior de nodos con
los utilizados en esta sección en la figura 4.8.

Figura 4.8: Esquema simplificado de la estructura de nodos usados

Para no comenzar el algoritmo si no se ve ninguna figura en la pantalla, se comprueba si el


enable está activado. En caso afirmativo se procede a llevar a cabo los cálculos del centro del
rectángulo que encuadra la H por sus esquinas y su área. También se obtiene el área y el centro
del rectángulo ideal al que deberá transformar el real, ya que ésta variará en función del tamaño

34 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

de la imagen de cada cámara. Se obtiene también la altura con la función vista en el apartado
anterior.

Se calculan los errores de cada uno de los ejes, la entrada de nuestro sistema de control, y
que se realimentarán. Los ejes x e y toman la diferencia de pı́xeles entre centros de los rectángu-
los real e ideal. El eje z el error es la diferencia entre la altura calculada y la superficie de la
plataforma a 0.2m. Estos errores sirven para calcular la velocidad multiplicados por una ga-
nancia que se calibra mediante distintas pruebas en simulación. El error en z se divide por una
constante evaluada experimentalmente al estar en otras unidades e influir en la velocidad de los
ejes x e y. En el cálculo de estos errores y velocidades se tiene en cuenta que la cámara no tiene
los mismos ejes que el dron, por lo que se aplica una matriz de rotación implementada en las
ecuaciones usadas.

Antes de mandar la velocidad al UAV, se tienen en cuenta una serie de situaciones para
controlar el descenso. Si el rectángulo que encuadra la H no está en la zona central, el dron
no comienza el descenso para no dejar fuera de cámara el rectángulo por estar en un extremo.
Cuando el dron se encuentra a una altura crı́tica en la que la H se deja de identificar correcta-
mente y se encuentra cerca de la plataforma, se aumenta la velocidad de descenso drásticamente
para terminar la maniobra de aterrizaje. Una vez realizadas estas correcciones se publican las
velocidades.

En la figura 4.9 se puede ver un esquema que explica el código de una forma simplifica-
da, resume lo explicado anteriormente. Si se quiere analizar con más detalle se puede consultar
en el repositorio de github en que se encuentra todo el código usado en este trabajo: https://
[Link]/LuisDelbergue/TFG/blob/master/ROS/catkin_ws/src/Detector_
esquinas/src/ibvs_luis.cpp

Figura 4.9: Pseudocódigo del algoritmo del control IBVS

Luis Alfonso Delbergue Chico 35


CAPÍTULO 5. EXPERIMENTOS Y RESULTADOS

5. Experimentos y resultados
Una vez explicado todo el procedimiento llevado a cabo para realizar el código, se procede a
presentar las pruebas realizadas en el entorno de simulación de Gazebo. Se ha creado un mundo
simulado con una plataforma de aterrizaje de 60x60x20 y se ha añadido una ”textura” o una
capa de color de una H para poder identificarla. El dron iris con el que se va a trabajar ya está
modelado y solamente se ha colocado en el centro del mundo simulado.

Al lanzar el archivo ejecutable de la simulación, éste arranca el ROS Master que interco-
necta todos los nodos necesarios para el correcto funcionamiento de la estructura software. A
continuación se ejecuta otro archivo con el que se controla el movimiento del dron con un PID.
Antes de iniciar los experimentos se activa una misión que conduce al dron a tres metros por
encima de la plataforma listo para activar el algoritmo y comenzar el aterrizaje.

Para evaluar el comportamiento del algoritmo y ser riguroso a lo largo de todos los expe-
rimentos, se van a evaluar las mismas gráficas y datos. Se tomará la posición y velocidad del
UAV en cada momento del vuelo, el error entre la posición real e ideal del centro de la imagen,
el error cuadrático medio de la posición en trayectoria, que se explica a continuación. De esta
forma se tiene un estudio completo con el que se obtiene una imagen general de la calidad de
funcionamiento del aterrizaje entre las distintas pruebas.

La entrada y salida del controlador queda representada en el error de posición y velocidad


respectivamente. Se ha escogido el error cuadrático medio o root-mean-square error (RMSE)
porque es ampliamente conocido y utilizado en muchos ámbitos distintos, por lo que es más
sencillo hacerse una idea del error gracias a ese parámetro. En la fórmula 5.1 se muestra como
RMSE es la raı́z del sumatorio del error al cuadrado partido el número de muestras.
sP
n
j=1 (P ij − P rj )2
RM SE = (5.1)
n
Cuanto mayor sea el RMSE, mayor es el error de posición y peor es el comportamiento
del control. Un RMSE igual a cero serı́a ideal, imposible en la práctica. Una de las ventajas
que aporta RMSE frente al error absoluto medio o mean absolute error (MAE) es que los erro-
res elevados tienen un mayor peso que el resto de términos al estar elevado al cuadrado. Sin
embargo, en el MAE, todos los términos tienen la misma ponderación lineal, por lo que no se
penalizan tanto los errores graves.

Hay que remarcar que se han realizado un número de pruebas limitadas debido al elevado
tiempo que tarda cada ejecución de la simulación. Por lo tanto la precisión es menor que a la
que se podrı́a llegar con una mayor cantidad de experimentos. Algunos de los vuelos que se han
usado para este estudio se pueden ver en: [Link] Se sigue

36 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

el orden en el que se han realizado las pruebas de dificultad creciente y que se sigue en este
trabajo : sin ninguna perturbación, añadiendo una carga extra, moviendo la plataforma a una
velocidad lineal constante y añadiendo viento.

5.1. Sin perturbaciones


En este apartado se van a explicar los experimentos realizados con una plataforma fija y sin
ningún tipo de perturbación. Es un aterrizaje básico, con el que se ha perfeccionado y calibrado
el algoritmo para el resto de las pruebas. En las pruebas que se van a analizar a continuación, la
plataforma siempre estaba descentrada respecto del centro de la imagen en distintas posiciones,
comenzando en alguna esquina esquina inferior derecha o en un lateral. De esta forma se analiza
su comportamiento en dencenso y al rectificar en los ejes x e y.

Se analiza en esta primera parte un aterrizaje con unas ganancias no muy elevadas (Kx =Ky =0.006
y Kz =0.015), para tratar de tener un error bajo y con una tasa de aterrizaje sin fallo.

En la figura 5.1 podemos ver un conjunto de gráficas obtenidas del nodo creado para iden-
tificar y encuadrar la H, por lo tanto, la información que obtenemos es sobre las imágenes que
captura el sensor de la cámara. En la gráfica más a la derecha, se puede ver cómo se desplaza el
rectángulo que encuadra la H desde la perspectiva de la cámara. Como el resto de pruebas rea-
lizadas, el vuelo se realiza desde una posición inicial muy desfavorable, en el extremo inferior
derecho. Termina en la posición deseada, en el centro de la imagen.

La gráfica central y de la izquierda hace referencia al error en pı́xeles de la posición en la que


se encuentra el rectángulo en cada momento y la posición ideal final. En la izquierda se toma
la distancia entre el centro del rectángulo en cada momento y el ideal, tomado como el centro
de los ejes. Se puede apreciar como se va rectificando ese error poco a poco hasta aterrizar. El
error final es en x es de 2.5 y en y de 7.5 pı́xeles; en las pruebas el mayor error ha sido de 10.

En la gráfica central, se representa el error cuadrático medio en el eje x y en el y. Según


progresa el tiempo se reduce y termina con un valor en pı́xeles de 48 en el x y 82 en el eje y. La
media de los valores de todas las pruebas es de 66.

Figura 5.1: Gráficas del error en la imagen en aterrizaje sin perturbaciones con ganancia baja

Luis Alfonso Delbergue Chico 37


CAPÍTULO 5. EXPERIMENTOS Y RESULTADOS

En la figura 5.2 se representan gráficas obtenidas del nodo que obtiene la posición del dron
en cada momento. Aunque no se utiliza en el control del dron, es un sensor que existe en la
simulación para obtener información muy útil que se va a analizar a continuación.

En verde se puede ver la posición final ideal en la que deberı́a terminar aterrizado el UAV.
En la columna de la izquierda aparece representado el error cuadrático medio de la posición
representada en la segunda columna. De nuevo, según progresa el vuelo, este error disminuye
poco a poco, hasta acabar en el lugar deseado con un error en metros de 0.013 en x y 0.008 en y.
Aunque el error final en x es mayor, su error cuadrático es menor debido a que este parámetro
penaliza la suma de todos los errores y penaliza en mayor medida los errores graves. El RMSE
en x es 0.26 m y de 0.44 m en y.

En la columna final, se puede ver en la primera fila el valor de la altura en función del tiem-
po. Terminando a una altura de 0.2 m que es donde se encuentra la superficie de la plataforma.
En los primeros instantes no desciende debido a que se tiene que centrar previamente, luego la
velocidad es prácticamente constante y termina acelerando para terminar aterrizando. El vuelo
total en el que se realiza la maniobra es de 8.52 segundos. Por último, se puede ver una gráfica
en 3D que permite visualizar la trayectoria que realiza el dron desde su punto inicial hasta la
plataforma representada en rojo en la gráfica.

Figura 5.2: Gráficas de posición en aterrizaje sin perturbaciones con ganancia baja

El último conjunto de gráficas que se van a analizar de este vuelo es la figura 5.3. En ésta, se
representan las velocidades de cada uno de los ejes que ha alcanzado el dron en cada momento
de la misión.

En los ejes x e y, se puede observar como la velocidad va tendiendo a cero. Esto es debido a
que el error entre centros también disminuye y el control aminora la velocidad a la que debe ir
el cuadricóptero para centrarse. Termina siendo nula, porque cuando llega a una altura cercana
a la plataforma, el dron aumenta drásticamente su velocidad en z y anula la del resto de los ejes.

38 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

En la tercera gráfica se representa la velocidad de descenso. Comienza con una velocidad


nula, porque el algoritmo está programado para que hasta que no esté en la zona central no
comience a descender. Una vez llegado a esta zona, comienza un descenso prácticamente cons-
tante, hasta la altura crı́tica comentada anteriormente. En ese momento el dron se precipita hacia
la plataforma con un cambio de velocidad de -10 m/s.

Figura 5.3: Gráficas de velocidad en aterrizaje sin perturbaciones con ganancia baja

En esta segunda parte se aumentan las ganancias(Kx =Ky =0.009 y Kz =0.04) del control pa-
ra realizar un aterrizaje exitoso en el menor tiempo posible. El objetivo es ver hasta que punto
se puede aumentar la ganancia mientras se sigue manteniendo una tasa aterrizajes realizados
dentro de la plataforma del 100 %.

En el trı́o de gráficas de la figura 5.4 se pueden apreciar en un primer vistazo diferencias


notables con las de la figura 5.1 con la que se va a comparar.

Poniendo la atención en la gráfica de la derecha, la posición inicial es muy parecida, comen-


zando abajo a la derecha. Sin embargo, la posición final no parece idéntica, esto es debido a que
al estar tan próximo a la plataforma, el algoritmo que detecta la H puede fallar en esos últimos
momentos y perderla de vista, o detectarla como en la pantalla completa. Al haber aumentado
las ganancia se puede ver la mayor brusquedad de movimientos que sigue la trayectoria de las
esquinas.

En la gráfica de la izquierda, se puede ver que ya no es tan suave la reducción del error. Se
sobrepasa más veces la lı́nea del error nulo con picos más elevados. Además se puede ver como
aumenta el error cuadrático medio considerablemente, porque además de que los errores son
más elevados, estos errores son más graves. En este aterrizaje terminan en 57 y 100 pı́xeles en
x e y respectivamente. En otros vuelos han llegado a tener valores más elevados, teniendo una
media de 87 pı́xeles.

Una anomalı́a que se puede ver en la primera de las gráficas del error, es que antes del se-
gundo 6, en vez de descender el error, aumenta y vuelve a estabilizarse. Esto es debido a que en
las trayectorias que realiza la aeronave, ésta se inclina un ángulo y se producen balanceos en los
cambios de dirección. En este caso, fue un balanceo más brusco de lo habitual y el cuadrado en
la imagen no estaba centrado, a pesar de que el UAV se encontraba en una posición adecuada. A
pesar de este inconveniente, el control consigue corregirlo a tiempo y aterrizar de forma exitosa.

Luis Alfonso Delbergue Chico 39


CAPÍTULO 5. EXPERIMENTOS Y RESULTADOS

Figura 5.4: Gráficas del error en la imagen en aterrizaje sin perturbaciones con ganancia alta

En la columna central de la figura 5.5 se observa de nuevo como la trayectoria no es tan sua-
ve con menores ganancias. La posición oscila alrededor de la posición ideal en verde tanto para
la x como la y, hasta terminar la maniobra. Sin embargo, el RMSE no es más elevado, debido
que el gran error inicial se resuelve mucho más rápidamente que en el caso anterior. Termina
teniendo un RMSE de 0.24 y 0.42 metros en x e y respectivamente.

En la gráfica de la de la posición respecto del eje z se aprecia claramente que hasta que se
alinea con la plataforma no comienza a descender. En el segundo 6, se puede ver un pico, es
debido a que por un balanceo, se ha salido de la zona central y por tanto deja de descender. Esto
se puede comprobar en la primera gráfica de la figura 5.4, como se ha comentado anteriormen-
te. La diferencia de pendiente en la parte final de aterrizaje no es tan evidente, porque al tener
mayor ganancia la velocidad es mayor.

Con la gráfica 3D se puede tener una idea más general del aterrizaje. Se comprueba de
nuevo el movimiento horizontal para centrarse inicial y la trayectoria que sigue hasta terminar
posándose en la plataforma representada en rojo. Este aterrizaje ha sido de 6.5 s, por lo que
recorta dos segundos al anterior con menor ganancia.

Figura 5.5: Gráficas de posición en aterrizaje sin perturbaciones con ganancia alta

40 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

Las últimas gráficas que se comentarán en esta sección son las pertenecientes a la figura 5.6
donde se representan las velocidades. De nuevo, se ve como las gráficas son más bruscas que
en el primer caso y se alcanzan velocidades mayores debido a la mayor ganancia.

Como se ha descrito anteriormente en el segundo 6 se produce un balanceo que se traduce


en ese pico de velocidades en las gráficas azul y roja. Sin embargo al estabilizarse, se vuelve a
centrar el rectángulo, reducir el error y reducir la velocidad. Si no se consiguiese estabilizar lo
suficientemente rápido, el dron se descontroları́a y terminarı́a siendo un aterrizaje fallido. Esto
sucede en algunos vuelos si se aumenta ligeramente la ganancia en x e y a más de 0.009, que es
la Kx usada para esta prueba.

Ese pico visto en las dos primeras gráficas sucede igualmente en la tercera gráfica. A pesar
de haber superado la altura crı́tica y comenzar el descenso precipitado, se descentra el cuadra-
do y se pone a cero la velocidad de z de nuevo. Lo más probable es que el balanceo se haya
producido por el aumento súbito de velocidad de descenso porque se produce inmediatamente
después. Una vez estabilizado y centrado, retoma de nuevo la velocidad de -10 m/s para termi-
nar el aterrizaje en la plataforma.

Figura 5.6: Gráficas de velocidad en aterrizaje sin perturbaciones con ganancia alta

5.2. Carga extra


La primera perturbación que se va a probar para comprobar la robustez del control IBVS
desarrollado es añadirle una carga al dron. Aumenta su inercia en cada giro, la potencia de los
motores tendrá que aumentar para alcanzar la misma velocidad y, por lo tanto, será necesario
ajustar la ganancia. Para llevar esta carga a la simulación, se ha aumentado la masa del modelo
sdf del dron de Gazebo en 1 kg.

El dron modelado tiene un peso de 2.15 kg, por lo que 1 kg extra equivale a un 46.5 % más
de peso. En la simulación, aumentando más el peso no consigue despegar el dron, por lo que 1kg
es el peso máximo con lo que puede volar el UAV. A pesar de esto, el algoritmo consiste en una
realimentación con la que corrige el error y manda una velocidad proporcional. Esta velocidad
es enviada a un PID que controla el dron, por lo que vuelve a ser otro algoritmo realimentado.
Éste será el encargado de corregir el error añadido por la carga extra en la medida de lo posible.

Luis Alfonso Delbergue Chico 41


CAPÍTULO 5. EXPERIMENTOS Y RESULTADOS

Como en el apartado anterior realizamos dos pruebas distintas, debido a que todas las prue-
bas han alcanzado un aterrizaje exitoso. La primera consiste en una ganancia baja (Kx =Ky =0.006
y Kz =0.03), disminuyendo el error progresivo, frente a un aterrizaje más rápido y brusco con
una ganancia más elevada (Kx , Ky =0.01 y Kz =0.04).

Como se muestra en la gráfica derecha de la figura 5.7 el cuadricóptero comienza situado de


forma que deja el rectángulo inicial en la esquina inferior izquierda. Se puede apreciar una tra-
yectoria suave hasta terminar el vuelo. Esta trayectoria suave se ve en la gráfica de la izquierda
en la que el error de los dos ejes se va anulando poco a poco.

Observando la gráfica central, se puede concluir que el comportamiento es bueno, ya que el


error cuadrático medio termina siendo bajo. En el eje x se termina con un valor de 73.2 pı́xeles
y en el eje y de 80.8 pı́xeles. Estos valores son ligeramente más elevada que el caso en el que no
hay ninguna perturbación. Al ser un aterrizaje lento con valores bajos de ganancia, se corrige el
error con un buen comportamiento.

Figura 5.7: Gráficas del error en la imagen en aterrizaje con carga extra y ganancia baja

En el siguiente conjunto de gráficas de la figura 5.8, en la columna central se ve como el


dron se posiciona progresivamente en la posición en la que se encuentra la plataforma en x, 2.6
m, y en y, 1.75 m. El RMSE de esta posición se representa en la izquierda, en la que se reafirma
la conclusión anterior, se corrige progresivamente el error. El comportamiento es bueno para
tener prácticamente la mitad de su peso extra, pero la media de RMSE es más elevada, 0.38 m
en el caso del eje x y 0.45 m en el eje y.

Por último, en la columna de la derecha se ve la trayectoria que realiza en dron en tres di-
mensiones y su trayectoria en z. Hay que destacar el tiempo de vuelo en el que se realiza el
aterrizaje que se reduce en 2 segundos respecto la prueba sin perturbaciones. Al tener el UAV
más peso, desciende en menos tiempo, 6.8 segundos.

Como en el resto de vuelos, se aprecian las tres fases de descenso en las gráficas. En la
primera se centra sin descender, a continuación baja de forma constante y termina acelerando
para precipitarse cuando se encuentra a poca distancia de la altura de la plataforma (0.2 m).

En la figura 5.9 se analizan los últimos datos de esta prueba. La velocidad del eje x y del eje
y comienzan con un pequeño pico cuando se activa el control IBVS. Se reducen las velocidades
poco a poco según el error entre los centros del rectángulos ideal y real, se reduce también.

42 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

Figura 5.8: Gráficas de posición en aterrizaje con carga extra y ganancia baja

En la última fase de aterrizaje estas velocidades se anulan teniendo solamente en el eje z


-10 m/s. Esta velocidad, a pesar de ser la que se manda, no se termina de alcanzar debido a la
poca distancia que se tiene que recorrer. La velocidad que aparece en z de -0.42 m/s es la que
se manda al dron, pero en realidad al tener mayor peso, esa velocidad es más elevada. Debido a
ese aumento en el descenso de la carga extra se tarda menos tiempo en realizar la maniobra de
aterrizaje.

Figura 5.9: Gráficas de velocidad en aterrizaje con carga extra y ganancia baja

Esta segunda parte de este apartado está focalizada en un vuelo más agresivo con una ganan-
cia más elevada. Esto se observa en la figura 5.10 en la que el error en pı́xeles oscila alrededor
del error nulo con picos, hasta terminar anulándose. Estos errores denotan una trayectoria de
corrección más agresiva que en el caso anterior.

Otra prueba de esta ganancia elevada es el error cuadrático medio, que aumenta conside-
rablemente debido al peso. Aumenta más respecto al aterrizaje de ganancia baja porque las
maniobras son más bruscas. Termina con un RMSE de 103.3 pı́xeles en el eje y y de 64 pı́xeles
en el eje x, datos más elevados que en el caso anterior.

En la última gráfica se observa que en este caso, el cuadrado inicial ha comenzado en otro

Luis Alfonso Delbergue Chico 43


CAPÍTULO 5. EXPERIMENTOS Y RESULTADOS

caso extremo, pero esta vez en la esquina inferior derecha. Se ve claramente la trayectoria que
ha seguido hasta centrarse y como aumenta de tamaño según desciende el dron.

Figura 5.10: Gráficas del error en la imagen en aterrizaje con carga extra y ganancia alta

Esta vez se puede apreciar una mayor diferencia en el RMSE de la figura 5.11, donde se
llega a valores más elevados que si no tuviese un peso extra. Con carga se obtiene un valor de
0.37 m en el eje x y 0.58 m en el y, frente a unos valores de 0.24 m y 0.42 m en el caso sin
perturbaciones. Se puede ver como se sobrepasa el valor de las posiciones ideal y se termina
corrigiendo antes del aterrizaje.

En la posición de la z es importante remarcar de nuevo el aumento en la velocidad de ate-


rrizaje por el aumento del peso. La tarea se cumple en menos de 5 segundos porque la carga
influye en la velocidad de descenso. En la gráfica 3D se ve perfectamente la trayectoria que ha
seguido el centro de masas del dron hasta posarse en la superficie de la plataforma.

Figura 5.11: Gráficas de posición en aterrizaje con carga extra y ganancia alta

En las gráficas de la figura 5.12 se ven las velocidades de este vuelo en cada instante del
aterrizaje. En los eje x e y se observa un pico en el segundo 3 que se debe a un balanceo en
un giro de corrección tras sobrepasar la posición ideal y el aumento drástico de velocidad. Al

44 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

realizar este aumento de velocidad en z también se envı́a una velocidad nula en los ejes x e y,
por lo que se corrige rápidamente.

En el eje x la velocidad inicial es nula para centrarse. Luego comienza a descender de forma
prácticamente constante, pero más rápido que antes por el aumento de la ganancia y la carga
extra. La velocidad real no se representa en la gráfica porque esa es la que se envı́a, por lo que
habrı́a que tener en cuenta mayores velocidades en la zona intermedia y menores en el momento
de aterrizar porque no se alcanzan nunca los -10 m/s.

El pico que se representa en el segundo 3.5, se debe por un pequeño rebote al aterrizar y
una detección descentrada de la H, por la que se anuları́a la velocidad en z. En el vuelo este
pico no afecta porque solamente es una muestra y el dron sigue posicionado perfectamente en
la plataforma tras el rebote.

Figura 5.12: Gráficas de velocidad en aterrizaje con carga extra y ganancia alta

5.3. Plataforma en movimiento


En este apartado se va a probar la eficacia del control visual para aterrizar en una platafor-
ma que se mueve linealmente a una velocidad constante, con el peso habitual del dron. Esto es
posible gracias a los plugins de Gazebo. Un plugin es código que se compila como una librerı́a
compartida y se inserta en la simulación. El plugin tine acceso a las funcionalidades que ofrece
Gazebo a través de las clases estándar de C++.

Para mover la plataforma se ha utilizado un plugin que manda una velocidad lineal constan-
te a la plataforma en una dirección. Pasado un cierto tiempo, se manda la misma velocidad con
signo contrario en dirección contrario. El tiempo se obtiene por la conexión que se realiza entre
ROS y Gazebo, ya que al arrancar la simulación Gazebo crea un nodo llamado /clock. Por la
instancia del namespace de ROS ros::Time::now().tosec() se obtiene el tiempo en cada instante.

Se van a analizar de nuevo dos casos con distintas velocidades de la plataforma en mo-
vimiento. Se ha corregido la ganancia experimentalmente para que tuviese un buen compor-
tamiento en simulación. Los valores escogidos son para Kx y Ky 0.006 y para Kz 0.03 y se
mantienen en los dos casos. Las ganancias no son muy elevadas ya que esta maniobra de aterri-
zaje tiene más movimientos bruscos y es mejor que el descenso sea más controlado.

Luis Alfonso Delbergue Chico 45


CAPÍTULO 5. EXPERIMENTOS Y RESULTADOS

En esta primera prueba de aterrizajes, la plataforma va a una velocidad de 0.2 m/s, para
asegurar un aterrizaje seguro con un error relativamente bajo. A esta velocidad el dron trata de
corregir el error y seguir a la plataforma sin perderla de vista. Desciende cuando el encuadre
está en la zona central de la imagen.

En la figura 5.13 se representa los errores que se obtienen de las imágenes de la cámara.
A la derecha se puede ver la posición central relativamente centrada y se puede deducir que la
plataforma se desplazaba hacia la parte inferior de la imagen porque se trata de corregir el error.
Una vez alcanza la imagen de la H, se comienza a descender por lo que las esquinas comienzan
a expandirse hacia el exterior, terminando en una posición ideal hasta perderse la H de la ima-
gen.

En la gráfica de la izquierda se puede ver como el error aumenta en el momento inicial en el


que la plataforma está descendiendo en la imagen. En ese momento el dron está acelerando por
la velocidad mandada por el control visual. Una vez la alcanza, este error comienza a descender
hasta el aterrizaje.

En la gráfica central se obtiene el error cuadrático medio de los errores de la gráfica anterior.
Por la misma razón anterior se produce ese pico, que se penaliza al cuadrado en el RMSE, por lo
que aumenta considerablemente. Termina con un valor de 138 pxl en el eje x y 99 pxl en el eje y.

Esta diferencia de errores es totalmente razonable porque la plataforma se mueve con un


movimiento lineal constante en el eje x, por lo que el error en x es substancialmente mayor que
en el y. No concuerda con la gráfica de la derecha porque los ejes de la cámara y los del dron
no coinciden, por lo que dentro del algoritmo se incorpora una matriz de rotación. Es normal
que sean más elevados que en casos anteriores porque la perturbación es más complicada de
solventar.

Figura 5.13: Gráficas del error en la imagen de aterrizaje sobre una plataforma en movimiento
a velocidad baja

Las gráficas obtenidas del nodo de la posición del dron se representan en la figura 5.14. En
ellas se puede observar la trayectoria 3D que sigue el dron para visualizarlo más fácilmente,
terminando el vuelo en la plataforma representada en rojo en la gráfica.

Un dato relevante es el tiempo que se ha tardado en terminar el vuelo sobre la zona de aterri-
zaje, 10,6 segundos. Aumenta ligeramente el tiempo total pero no es un cambio muy relevante.

46 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

El proceso de seguir la plataforma no permite el descenso de hasta que el dron esté centrado
con la H, por lo que se tarda más en realizar la maniobra.

En la gráfica del eje z se puede observar claramente como el proceso de seguimiento de la


plataforma se alarga hasta 4.9 segundos hasta que comienza a bajar a una velocidad práctica-
mente constante. Cuando llega a la altura crı́tica, de nuevo, comienza a acelerar hasta terminar
el vuelo en la plataforma.

En las gráficas centrales se puede ver como la posición del eje x y del eje y se corrige ter-
minando en la posición ideal en verde. En el eje x, se produce el movimiento de la plataforma
y se puede ver una curva más brusca que la que realiza en el eje y. Sin embargo, el RMSE del
eje y es mayor que el del eje x debido a que el eje x sobrepasa la posición ideal y el error de ese
proceso no es tan grande. Por esta razón, el error cuadrático medio no es muy representativo en
esta ocasión

Figura 5.14: Gráficas de posición de aterrizaje sobre una plataforma en movimiento a


velocidad baja

El último trı́o de gráficas en la figura 5.15 representan la velocidad del dron respecto al
tiempo en cada uno de los ejes. La gráfica en negro del eje z es muy parecida a las anteriores.
Se pueden ver las tres fases del descenso: centrarse con velocidad nula, el descenso constante
y la aceleración hacia la plataforma en la altura crı́tica. En esta última fase se puede observar
como se anulan el resto de velocidades para no descentrarse.

En las otras dos gráficas se puede ver como existe un pico inicial que coincide con la acti-
vación del control. Por lo que pasa de estar sobrevolando una posición inicial a corregir el error
que observa en la imagen. Al estar moviéndose, el dron se pone a acelerar hasta alcanzar unas
velocidades de 0.48 m/s en el eje x y -0.29 m/s en el eje y. La mayor velocidad en x, es porque
el movimiento de la plataforma coincide con ese eje.

Una vez alcanzada, en el segundo 1.06, se comienza a reducir el error progresivamente hasta
comenzar el descenso constante. En el segundo 2.47 el dron desciende cuando está lo suficiente

Luis Alfonso Delbergue Chico 47


CAPÍTULO 5. EXPERIMENTOS Y RESULTADOS

centrado con la plataforma. El cambio de signo de la velocidad en el eje x coincide con un


cambio de dirección de la plataforma en la que el dron la acompaña en el eje x. En el eje y ya
estarı́a casi centrado, por lo que se sigue manteniendo una velocidad progresiva con el mismo
signo. Si tuviese una ganancia más elevada en el eje y, podrı́a sobrepasar la posición central y
cambiar el signo de la velocidad como hemos visto en otros experimentos.

Figura 5.15: Gráficas de velocidad de aterrizaje sobre una plataforma en movimiento a


velocidad baja

En este segundo experimento se van a analizar un aterrizaje con una plataforma con una
velocidad más elevada, concretamente a 1m/s. En este caso, no siempre aterriza dentro de la
plataforma, pero si se aumenta más la velocidad la tasa de fallo sube.

En estos vuelos la plataforma va más rápida que la velocidad a la que corrige el control, por
lo que se pierde de vista la H. El algoritmo se ha modificado para obtener mejores resultados
de tal forma que si se deja de enviar las esquinas del encuadre y queda suspendido en la mis-
ma posición a la espera de volver a identificar la H. Si se hubiese forzado al dron a seguir la
plataforma, el vuelo se descontrolaba, la tasa de fallo aumentaba y el error aumentaba en caso
de éxito. El dron con estos valores de la ganancia (Kx y Ky =0.006) alcanza velocidades de
corrección de menos de 0.5 m/s, por lo que es inviable que pueda alcanzar a la plataforma para
corregir el error.

En la gráfica de la derecha de la figura 5.16 se pueden ver una gran cantidad de lı́neas su-
perpuestas, por el aumento de maniobras que se hacen hasta aterrizar. No se puede deducir una
trayectoria clara de esta gráfica, pero se puede entender con la figura 5.17. La información que
sı́ podemos obtener de esta gráfica es que termina aterrizando de forma descentrada a la última
H detectada.

En la gráfica de la izquierda se puede ver una gráfica el error en pı́xeles en la imagen. En


azul se ve el error del eje y que se va reduciendo relativamente progresivamente hasta prácti-
camente anularse. No es constante debido a que el dron decelera cuando la H desaparece del
plano de la cámara y de nuevo trata de corregirlo cuando aparece.

En el eje x en rojo, el error es muy distinto por el movimiento lineal constante de la platafor-
ma que coincide con este eje. Existen picos de errores en sentidos contrarios donde se deduce
la trayectoria lineal en sentidos opuestos. Estos son siempre elevados porque la velocidad de la

48 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

plataforma es mayor que la del dron y se pierde de vista en cada giro. Hay 10 pico, por lo que la
plataforma desaparece de la imagen 10 veces antes de que el cuadricóptero termine el aterrizaje.

En la gráfica central sucede lo mismo que en el caso anterior. El RMSE en x es mucho más
elevado que en el eje y porque la plataforma se mueve en ese eje. Termina con un valor de 138
pxl. En el eje y se disminuye progresiva como con el error finalizando con un valor de 60.5 pxl.
Es importante destacar que estos valores son los recibidos cuando la H está encuadrada en el
marco de la imagen, por lo que estos errores deberı́a de ser mucho mayores.

Figura 5.16: Gráficas del error en la imagen de aterrizaje sobre una plataforma en movimiento
a velocidad alta

Lo que llama más la atención en la figura 5.17 es el gran aumento de tiempo de la maniobra,
25 segundos. Este aumento es razonable porque solamente se desciende de poco a poco, cada
vez que pasa por el centro de la imagen la plataforma.

El descenso se puede ver claramente en la gráfica de negro, donde la trayectoria es escalo-


nada. En la parte horizontal la H está en pantalla pero no en la zona central. Cuando desciende
es porque el encuadre está en esa zona central. Los momentos que no está en imagen la H, se
mantiene la altura. Toda esta trayectoria se puede ver en la gráfica 3D, donde nos hacemos una
idea más visual del vuelo. Se pueden ver todos los giros en cada dirección dependiendo del
sentido que toma la plataforma.

En la columna central se ve el error de posición respecto la posición ideal representada en


verde. Como hemos visto antes con las esquinas del encuadre de la H, terminaba descentrado.
Esto se aprecia claramente en estas dos gráficas correspondientes a cada uno de los ejes x e
y. En y se corrige el error bien, pero en la parte final, cuando hay menos altura, se identifica
peor la H y se descentra de la posición final. En el eje x, hay un error mucho más elevado que
anteriormente debido a que la posición ideal es un punto de toda una recta a lo largo de la que
se podı́a mover el dron para seguir a la plataforma.

En las gráficas del error cuadrático medio se puede ver de nuevo la gran diferencia entre
ejes. En x termina con un valor de 1 y en el eje Y de 0.2 metros. El valor de la posición ideal en
y sı́ es fija, pero la del eje x, no es conocida hasta que termina el vuelo, por lo que estos errores
en el eje x no son del todo reales.

Luis Alfonso Delbergue Chico 49


CAPÍTULO 5. EXPERIMENTOS Y RESULTADOS

Figura 5.17: Gráficas de posición de aterrizaje sobre una plataforma en movimiento a


velocidad alta

Por último, analizamos las velocidades del aterrizaje de la figura 5.18. Como en el resto de
gráficas ,vistas anteriormente, se observa el movimiento de la plataforma en los picos y en los
signos del eje x. El dron recibe velocidades en cada dirección para tratar de reducir el error.
Una vez desaparece de la imagen, se anula la velocidad. Existe un pico de -4.2 m/s que se debe
a un error del sensor, porque con la ganancia Kx es 0.006 aun siendo un caso extremo no es
posible llegar a esa velocidad. De todas formas se anula en el siguiente instante, por lo que no
afecta demasiado en el vuelo. Quitando ese pico se obtiene una velocidad máxima de 0.85 m/s
en valor absoluto.

En la gráfica de y, la velocidad va disminuyendo intermitentemente para corregir el error


cada vez que se encuentra el rectángulo de la H en pantalla. Comienza teniendo el mismo valor
porque en el eje y no existe el problema de la velocidad lineal, por lo que el valor pico es menor
también, 0.4 m/s en valor absoluto. Como hemos visto en la figura 5.17 en la parte final, al estar
muy cerca de la plataforma se identifica peor el rectángulo y se mandan velocidades elevadas
cuando el error era pequeño. Si el algoritmo no se hubiese corregido, anulando la velocidad al
salir de imagen la plataforma, el vuelo se descontroları́a en ese momento, siendo un aterrizaje
fallido.

En la tercera gráfica se ve con claridad el descenso intermitente del UAV. Cada descenso
puede tener mayor o menor duración de tiempo pero la velocidad es prácticamente constante.
Una vez superada la altura crı́tica el descenso es intermitente también pero con una velocidad
mucho más elevada. A pesar de ser de -10 m/s, no se acerca a esa velocidad por el poco tiempo
que tiene de aceleración hasta volverse a anular por desaparecer la plataforma de pantalla. A
velocidades de la plataforma más elevadas, el dron no consigue descender antes de que la pla-
taforma ya haya pasado.

50 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

Figura 5.18: Gráficas de velocidad de aterrizaje sobre una plataforma en movimiento a


velocidad alta

5.4. Ráfagas de viento


En este apartado se va a probar la robustez del algortimo de control con perturbaciones de
viento, la prueba con la que comenzó la idea de realizar este trabajo del IMAV México2021.
Para poder simular el viento en Gazebo se vuelve a hacer uso de los plugins.

En este caso el plugin va linkado al modelo del dron en vez de a la plataforma de aterrizaje.
El programa consiste en empujar con una fuerza aleatoria entre dos valores al UAV simulando
corrientes de viento. Este plugin se pondrá en movimiento una vez haya pasado un tiempo de
la simulación, de forma que se active una vez esté sobrevolando la plataforma y se active el
control IBVS. Si se activase inicialmente, el dron no llegarı́a a la posición deseada para poder
ver la H inicialmente.

Este es el último ensayo en simulación en el que se va a comprobar el control Image-Based


Visual Servoing que se ha desarrollado y explicado a lo largo del trabajo. Se han realizado dos
pruebas distintas para comparar los resultados y ver varias situaciones distintas. El dron está
siempre sometido a una fuerza variable en el eje y, por lo que tiene que superar con una veloci-
dad en contra para encuadrar la H. Esta es la causa por la que el dron estará inclinado durante
todo el vuelo y la imagen cogerá otra perspectiva.

En la primera prueba el aire simulado sopla con una menor fuerza con unos valores entre
0.3 y 3 Newton. Para afrontar esta perturbación se han utilizado ganancias de Kx y Ky =0.06 y
Kz =0.03. Si se aumenta mucho la ganancia de los ejes x e y, el dron tiende a inclinarse dema-
siado y descontrolarse por la dificultad añadida de descender inclinado y la fuerza no constante.
Con estas fuerzas aterriza dentro de la plataforma en todas las pruebas realizadas.

La primera figura 5.19 como en el resto de casos son las gráficas del error en la imagen de
la cámara. Se puede ver en la gráfica de la derecha que se inicia con el rectángulo en la posi-
ción inferior derecha y termina ligeramente descentrado hacia la izquierda. Se ve claramente el
efecto del viento por las lı́neas que se sobreponen en el eje x de la cámara y es por esto que lo
desplaza hacia un lateral. Cabe aclarar que la fuerza del viento se aplica sobre el eje y del dron,
que no coincide con el de la cámara.

Se puede ver como el rectángulo que unirı́a los puntos es más achatado que en otras oca-

Luis Alfonso Delbergue Chico 51


CAPÍTULO 5. EXPERIMENTOS Y RESULTADOS

siones porque durante la mayor parte del vuelo el dron se encuentra luchando contra el viento
con un ángulo de inclinación. Cuanta mayor fuerza, mayor velocidad tendrá que ejercer para
contrarrestarla, mayor inclinación del dron y más estrecho será ese rectángulo.

En la gráfica de la izquierda se puede ver los errores de los ejes x e y en rojo y azul res-
pectivamente. Estos errores se tratan de reducir lo máximo posible, como se realiza en el x
progresivamente. El eje y, por su parte, sufre mucho picos y termina descentrado respecto la
posición ideal. Las sacudidas del viento que se ejercen solamente en este eje y coinciden con
cada pico. Cada pico es más o menos intenso en función del valor aleatorio que toma la fuerza
que se aplica al dron y simula este viento.

En la gráfica central se aprecia como el efecto de la perturbación aumenta considerablemen-


te en error cuadrático medio del eje y respecto al eje x, que no se ve prácticamente afectado. En
el eje x se termina con un valor de 55.5 frente a 103.3 pı́xeles en el eje y.

Figura 5.19: Gráficas del error en la imagen de aterrizaje con viento moderado

En la figura 5.20 se puede observar que la duración total del vuelo es de 8.3 segundos. En
comparación con otros vuelos es un buen tiempo para la perturbación a la que está sometido.
La trayectoria 3D en rosa nos muestra la trayectoria que hace el dron.

En la gráfica central del eje x se puede ver como se corrige progresivamente este error hasta
casi anularse, ya que la perturbación no afecta a este eje. Por este motivo, el RMSE termina
siendo parecido al caso sin perturbaciones, con un valor de 0.25 m.

En el eje y, sin embargo, se pueden ver los movimientos que ha realizado el cuadricóptero
para corregir la influencia del viento en su trayectoria. Termina en una posición descentrada
de la ideal, como hemos visto en la gráfica de las esquinas de la figura 5.19. Esto se aprecia
también al no coincidir con la linea verde con una diferencia de 0.05 metros en valor absoluto.

En la gráfica de la columna de la izquierda del eje y, se muestra su error cuadrático medio.


El algoritmo corrige con movimientos más bruscos el eje y que el el x, pero aun ası́ termina con
valor más bajo, 0.22. Esto denota que el algoritmo tiene un buen comportamiento para corregir
perturbaciones.

Por último, en la gráfica del eje z se pueden apreciar como se detiene el descenso con cada
una de las sacudidas de viento de mayor valor. Cuando se vuelve a centrar desciende con una

52 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

inclinación de la curva prácticamente constante y luego se precipita a una altura de 0.8 m.

Figura 5.20: Gráficas de posición de aterrizaje con viento moderado

En la figura 5.21 se pueden ver las velocidades que se envı́an al dron. En el eje x, se comien-
za con un valor elevado para corregir la posición descentrada en la imagen. Según comienzan
alinearse dron y plataforma esta velocidad disminuye hasta comenzar la parte final de aterrizaje,
en el que se anula su valor.

En la gráfica central vemos la influencia del viento en la velocidad del eje y. Es una gráfica
con picos más intermitentes por los valores aleatorios que toma la fuerza que simula el viento.
Toma valores más elevados para solucionar mayores fuerzas del viento, con un máximo de 0.71
en valor absoluto.

En la tercera gráfica se representa en negro la velocidad del eje z. Se puede ver el descenso
intermitente visto anteriormente en esta gráfica de nuevo. Cada vez que se descentra se estabili-
za a esa altura con velocidad cero en z. En la parte final se consigue mantener el dron centrado
con la plataforma y acelera en el segundo 7.65 para realizar la parte final del aterrizaje.

Figura 5.21: Gráficas de velocidad de aterrizaje con viento moderado

Luis Alfonso Delbergue Chico 53


CAPÍTULO 5. EXPERIMENTOS Y RESULTADOS

En esta segunda prueba, se aumenta la fuerza del viento en un rango de 1.2 a 6 Newtons.
Se han variado ligeramente las ganancias con una Kx y Ky =0.0065 y una Kz =0.035. En esta
ocasión la tasa de aterrizaje no es elevada, pero en caso de subir la potencia del viento la tasa
de fallo aumenta considerablemente.

En la figura 5.22 se pueden ver las gráficas obtenidas por el nodo de la cámara. En la gráfica
de la derecha se puede ver la trayectoria de las esquinas del encuadre de la H. Al ser un vuelo
más brusco y largo, se ve un gran número de lı́neas aunque se puede intuir la trayectoria.

La posición inicial se encuentra a la derecha de la imagen. Se puede ver que el rectángulo


que se forma al unir los puntos de la posición inicial es más estrecho que antes, por la mayor
inclinación que toma el UAV para contrarrestar las mayores fuerzas. La mayorı́a de las lı́neas
se superponen de forma horizontal en sentido del eje x de la imagen que corresponde con el eje
y del dron. Estas lı́neas son la trayectoria que hace para contrarrestar el viento y los balanceos
que esto conlleva, que afectan a como se ve en la imagen la H.

En la gráfica de los errores de la izquierda se aprecia como en el eje x se corrige con un


error pequeño el alineamiento entre ejes. Sin embargo, en el eje y, la que sı́ afecta el viento,
sufre muchos vaivenes para corregir el efecto de la perturbación. Son picos con distinto nivel de
intensidad en función del valor aleatorio de la fuerza del viento. Se puede ver que es un vuelo
más brusco porque lo picos son más acusados que en el caso anterior.

En la gráfica central se representa el error cuadrático medio de los errores de la izquierda.


Como es razonable, el valor de y, es mucho mayor que el x con unos valores de 150 pxl y 13 pxl
respectivamente. Es el error más bajo del eje x que se ha visto, porque desde la posición inicial
el error era pequeño. El valor elevado del eje y, se debe a la brusquedad de maniobras que tiene
que realizar.

Figura 5.22: Gráficas del error en la imagen de aterrizaje con viento fuerte

Lo primero que se remarca en las gráficas de posición de la figura 5.23 es el gran aumento
del tiempo respecto al vuelo anterior. Se llega a aterrizar en 39.8 segundos, el vuelo más largo
realizado. Debido a esta duración y las maniobras que se realizan, en esta ocasión no se ve tan
claro el descenso en la gráfica en tres dimensiones.

En la columna central hay que poner atención en la escala, ya que el mayor error del eje x
es de 0.19 metros frente a 1.15 del eje y. El eje x, consigue mantenerse bien centrado en cada
momento, terminando con un error de 2 cm. A pesar de todas las maniobras bruscas, el dron

54 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

consigue aterrizar con un error en el eje y de 9cm.

En la columna de la izquierda se exponen los RMSE de las gráficas a su derecha. Es muy


representativo, ya que el eje x tiene un valor final de 0.08m, el valor más pequeño visto, por su
posición inicial centrada respecto este eje. Sin embargo en el eje y, el RMSE final es de 0.57m.
Este valor elevado indica el peor vuelo que se realiza respecto a este eje por la influencia del
viento.

Por último en el eje z se puede ver algo que no se ha visto hasta ahora, el dron vuelve a
ascender después de comentar la maniobra de descenso. Este fenómeno se debe a la inclinación
que toma para contrarrestar la perturbación que le empuja hacia arriba en los tramos que no está
centrado y no desciende.

Por esta razón, en esta gráfica, no se ven los escalones vistos en las anteriores y su traza es
más picuda. Cuando está descentrado y no se le manda velocidad asciende y cuando sı́ lo está,
desciende. Esto produce el gran aumento de tiempo de este aterrizaje.

Figura 5.23: Gráficas de posición de aterrizaje con viento fuerte

En las últimas gráficas de la figura 5.24 se representan las velocidades del dron en sus tres
ejes. En la gráfica de la izquierda se ven velocidades bajas por la poco corrección que se realiza
el eje x con un valor máximo de 0.2 m/s en el momento inicial.

En la gráfica central se representa en azul la velocidad en el eje y, que son mucho más eleva-
das que en el anterior eje por la influencia del viento. Los picos que se toman varı́an en función
de la fuerza aleatoria del viento, que se trata de corregir. Se obtiene un valor máximo en valor
absoluto de 1.67 m/s.

En la tercera gráfica, en negro, se representa la velocidad de descenso en el eje z. Se aprecia


claramente el descenso intermitente en el que se manda una velocidad nula cuando se encuen-
tra descentrado el UAV y una velocidad casi constante cuando sı́ lo está. En el momento final

Luis Alfonso Delbergue Chico 55


CAPÍTULO 5. EXPERIMENTOS Y RESULTADOS

sucede de nuevo que se aumenta la velocidad que se le manda al dron, pero, si no está centrado,
se vuelve a anular.

Figura 5.24: Gráficas de velocidad de aterrizaje con viento fuerte

5.5. Resultados
Tras haber realizado todas estas serie de pruebas se puede llegar a unas conclusiones gene-
rales sobre el control IBVS sobre el dron. Tiene un buen funcionamiento corrigiendo los errores
y perturbaciones correctamente. Aterriza con errores bajos y con una tasa elevada de éxito. Los
ángulos de inclinación en los giros y balanceos cuando son bruscos, afectan considerablemente
a la detección y hay que tratar de evitarlos.

Se han preparado las tablas 5.1 y 5.2 para dar una visión más general de todos los expe-
rimentos realizados. Con este resumen de todos los datos mostrados simultáneamente es más
sencillo llegar a conclusiones sobre cada prueba.

En la tabla 5.1 se muestra las ganancias que se han utilizado en cada experimento. Las del
eje x e y siempre tienen el mismo valor. La siguiente columna muestra el tiempo que tarda en
realizar el aterrizaje. Las últimas hacen referencia a las velocidades máximas alcanzadas en el
vuelo en el eje x e y en valor absoluto.

En todas las pruebas, excepto en las que la variación entre primera y segunda ha sido la
ganancia, se ha utilizado una ganancia de 0.006 en los ejes x e y por el buen resultado que se
ha obtenido experimentalmente. Se obtiene un buen control del dron y se consiguen valores su-
ficientemente elevados de velocidad para contrarrestar las perturbaciones. La mayor velocidad
que se ha alcanzado con esta ganancia ha sido de 0.86 m/s en la prueba de la plataforma móvil,
cuando ésta iba a 1 m/s.

El aterrizaje más rápido de todos los experimentos ha sido en el que se ha añadido peso al
dron, porque su velocidad de descenso era más elevada. Además, tenı́a la mayor ganancia en z
con un valor de 0.04. El más lento, ha sido el aterrizaje con fuertes corrientes de viento. El dron
tenı́a que adaptarse a la corriente variable de aire para centrarse y poder descender y, al estar
inclinado, el aire lo empujaba hacia arriba.

56 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

Experimento Kx Ky Kz Tiempo(s) Vx max Vy max


Sin Kx =0.006 0.006 0.015 8.52 0.34 0.64
perturbaciones Kx =0.009 0.009 0.04 6.5 1.14 2.57
Carga Kx =0.006 0.006 0.03 6.8 0.54 0.6
extra Kx = 0,01 0.01 0.04 4.9 0.56 0.94
Plataforma Vplataf =0.2m/s 0.006 0.03 10.6 0.48 0.29
móvil Vplataf =1m/s 0.006 0.03 25 0.86 0.4
F =0.3-3N 0.006 0.03 8.3 0.32 0.71
Viento
F =1.2-6N 0.0065 0.035 39.8 0.2 1.67

Tabla 5.1: Datos recopilados de todas las pruebas

En la tabla 5.2 se muestra en la primera columna el error cuadrático medio en la imágenes


en pı́xeles de cada experimento. A continuación se muestra el error de cada eje final de la ima-
gen. Las siguientes columnas se realiza lo mismo pero esta vez con la posición, por lo que estos
errores están en metros.

Lo primero que llama la atención de esta tabla es el error tan pequeño que existe en pı́xeles.
Al terminar el aterrizaje el dron pierde de vista el encuadre de la H. Al ver solamente una parte
de esa H, la identifica como entera y coloca sus esquinas en los extremos de la pantalla, dado
un error prácticamente nulo aunque no sea ası́. Por esta razón, este factor no hay que tenerlo
en cuenta cuando sea nulo. Sin embargo, como el RMSE se tiene en cuenta todo el vuelo, sı́ es
representativo del vuelo.

El menor error cuadrático medio en pı́xeles forma parte de la segunda prueba del viento
debido a que en la posición inicial estaba prácticamente centrado respecto al centro y el viento
no afectaba a este eje. En contraposición, el mayor, también forma parte de la misma prueba
pero en el eje al que sı́ afectaba el viento. El mayor RMSE de posición pertenece a la prueba en
la que la plataforma se desplazaba a una velocidad de 1 m/s sobre le eje x. El menor RMSE de
posición coincide con el menor en pı́xeles por la razón mencionada anteriormente.

El error de posición en metros menor coincide en el eje x e y del aterrizaje sin perturbacio-
nes, como es lógico. Sin embargo, el mayor error pertenece al aterrizaje de la plataforma móvil
cuando ésta va a 1 m/s. A pesar de que el movimiento era lineal en el eje x, el mayor error en y
también pertenece a esta prueba.

Los errores de posición de las primeras pruebas son pequeños porque la perturbación del
peso extra no afecta tanto al vuelo como la plataforma en movimiento o el viento. También se
puede ver en los errores cuadráticos medios, que son más elevados en las dos últimas pruebas.
Se puede concluir también que la plataforma móvil a pesar comenzar con un caso lento y un
100 % de tasa de éxito tiene un RMSE elevado. Seguir trayectorias perturba mucho el vuelo y
produce un aumento del error.

Luis Alfonso Delbergue Chico 57


CAPÍTULO 5. EXPERIMENTOS Y RESULTADOS

Experimento RMSE(pxl) Error(pxl) RMSE(m) Error(m)


x y x y x y x y
Sin Kx =0.006 48 82 2.5 7.5 0.26 0.44 0.01 0.01
perturbaciones Kx =0.009 58 100 1 2 0.24 0.41 0.02 0.03
Carga Kx =0.006 73 81 1 3 0.38 0.45 0.02 0.02
extra Kx = 0,01 63 103 0 0 0.37 0.58 0.05 0.09
Plataforma Vplataf =0.2m/s 138 100 0 0 0.28 0.47 0.1 0.08
móvil Vplataf =1m/s 138 25 97 4 1 0.21 0.15 0.2
F =0.3-3N 103 55 3.5 44 0.25 0.22 0.01 0.06
Viento
F =1.2-6N 13 150 0 0 0.08 0.57 0.02 0.13

Tabla 5.2: Resultados recopilados de todas las pruebas de los errores

58 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

6. Conclusiones y lı́neas futuras

6.1. Conclusión

Este control visual tiene la ventaja de un bajo coste computación al hacer todo el control
con el único sensor de una cámara. Para que tenga un buen funcionamiento ésta debe estar bien
calibrada y conocer sus parámetros. Se ha demostrado que con solamente esas imágenes se han
podido realizar todos los tipos de aterrizaje que se han explicado en apartado anterior.

Otra de las ventajas del algoritmo creado es la portabilidad del control. Se han desarrollado
programas que se subscriben al nodo de la cámara del dron. Por lo que cualquier cuadricóptero
con una cámara cenital se podrı́a adaptar y aplicar este algoritmo desarrollado a lo largo del
trabajo.

El mayor inconveniente que se ha afrontado en cada prueba ha sido el balanceo que se pro-
ducirı́a en los giros bruscos del dron, en los que para corregir la dirección y tratar de estabilizarse
se balanceaba y esto harı́a que la imagen también lo hiciese. El rectángulo que se identificaba se
colocaba en un extremo por lo que se mandaba un pico de velocidad aunque realmente el dron
estuviese bien colocado. Si se estabilizaba rápidamente la velocidad disminuı́a y el problema se
corregı́a, sino se descontrolaba el vuelo y el aterrizaje era fallido. Esto se podrı́a tratar imple-
mentando una cámara giroestabilizada en vez de la fija usada en este trabajo.

Tras las pruebas experimentales realizadas se han podido calibrar las ganancias usadas. Se
ha visto que una ganancia de 0.006 en los ejes x e y da unos buenos resultados. Se alcanza una
velocidad suficiente para superar perturbaciones elevadas y se controla el dron sin balanceos
bruscos. Con estas ganancias las velocidades alcanzadas son alrededor de 0.86 m/s en los casos
más extremos.

Otra conclusión de los experimentos realizados es que la perturbación de la carga extra no


afecta tanto como las otras perturbaciones a pesar de añadir hasta 1 kg extra. Este peso es más
influyente en la velocidad de descenso que en la trayectoria. Este algoritmo no ha sido muy
efectivo en el movimiento de una plataforma con altas velocidades, en las que solamente ha
conseguido aterrizar exitosamente con un máximo de velocidad de 1m/s. Sin embargo, se ha
visto su eficiencia con corrientes de aire muy elevadas con una fuerza de hasta 6 N, con las que
termina posándose en la superficie objetivo.

Luis Alfonso Delbergue Chico 59


CAPÍTULO 6. CONCLUSIONES Y LÍNEAS FUTURAS

6.2. Lı́neas futuras


Una vez acabado este trabajo, existe una gran cantidad de opciones que se pueden tomar para
continuar en la misma lı́nea de trabajo. A continuación se va a comentar algunas alternativas
que existen:

Como se ha visto en el estado del arte, existe una gran cantidad de alternativas de algo-
ritmos que se podrı́an usar para afrontar el aterrizaje de un dron: PBVS, hybrid control,
MPC u alguna otra opción que se ha presentado en el estado del arte. Se podrı́a desarrollar
otro algoritmo y compararlo con los resultados que se han obtenido en este trabajo para
comprobar la eficiencia.

Se podrı́a desarrollar un control IBVS en el que se tuviese en cuenta la velocidad angular


y no solamente lineal. De esta forma, serı́a un programa más completo y se tendrı́a un
mejor control del dron.

Se podrı́a desarrollar un mejor algoritmo de detección de la plataforma con OpenCV. Ası́


se obtendrı́a con mayor precisión la H en cada instante. Además de usar una cámara gi-
roestabilizada para tener menos ruido en la detección y evitar los problemas de detección
durante los balanceos. Algunos papers en los que se desarrollan unos algoritmos con una
mayor carga computación pero mejor detección son el [32] y el [33].

Todos los vuelos se han desarrollado en simulación. Se podrı́a recrear el escenario de


cada prueba y adaptar los programas para llevarlo a vuelos reales. Como se realizarı́a en
el IMAV2021 de México habrı́a que implementarlo con una misión anterior que realice
el resto de recorrido de la prueba antes del aterrizaje.

Se ha realizado un estudio completo con ocho pruebas distintas, pero existen una gran
cantidad de perturbaciones con las que se puede seguir recopilando datos sobre el algorit-
mo desarrollado. Otra opción para aumentar los datos es realizar una mayor cantidad para
aumentar la muestra o con otros datos distintos. También se podrı́an variar los valores que
utiliza el PID implementado en el control de la velocidad del dron, que no se ha variado
a lo largo de este trabajo.

Una de las ventajas del algoritmo desarrollado es su capacidad de portabilidad. Por lo que
se podrı́a probar con otras cámaras y en otros drones, comprobando su eficiencia.

60 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

7. Planificación temporal y presupuesto


En este capı́tulo se da una imagen más global de todo el trabajo exponiendo la planificación
de todas las actividades llevadas a cabo a lo largo de todo un año y el presupuesto necesario
para realizarlas. De esta forma se obtiene una idea más completa del proyecto.

7.1. Diagrama de Gantt


La planificación del tiempo se representa en forma de diagrama de Gantt en la figura 7.1,
para que sea más visual. Está organizado por columnas, las actividades llevadas a cabo, y por
filas, los meses en las que se llevaron a cabo.

Figura 7.1: Diagrama de Gantt del trabajo

7.2. Presupuesto
Se procede a analizar en este apartado el presupuesto estimado del proyecto. Se divide en
tres partes distintas: hardware, software y personal. En la tabla 7.1 representamos el coste del
portátil del que amortizamos un solo año de su vida útil y una estimación del coste del material
básico de oficina. Al desarrollar todo el trabajo en simulación, no hay un coste del dron fı́sico.

Luis Alfonso Delbergue Chico 61


CAPÍTULO 7. PLANIFICACIÓN TEMPORAL Y PRESUPUESTO

Concepto Coste unitario (C) Vida útil (años) Coste final (C)
Portátil 600 6 100
Material oficina 10 – 10
Coste total (C) 110

Tabla 7.1: Presupuesto del hardware

En la tabla 7.2 se expone el coste de los software. La mayorı́a son gratuitos como Ubuntu,
ROS, Aerostack o Gazebo, sin embargo la licencia anual de Matlab sı́ tiene un coste.

Concepto Coste unitario (C) Vida útil (años) Coste final (C)
Matlab 250 1 250
Ubuntu 0 – 0
ROS 0 – 0
Aerostack 0 – 0
Gazebo 0 – 0
Coste total (C) 250

Tabla 7.2: Presupuesto del software

En la tabla 7.3 se hace una estimación de los salarios y tiempo invertido en el trabajo tanto
del estudiante como del tutor. Este es el coste más significativo.

Concepto Salario estimado (C/h) Tiempo estimado (h) Coste final (C)
Coste alumno 15 350 5250
Coste tutor 50 50 2500
Coste total (C) 7750

Tabla 7.3: Presupuesto del personal

Por último, en la tabla 7.4 se muestra la suma de los tres costes totales, obteniendo el presu-
puesto definitivo de este trabajo de fin de grado.

Hardware 110
Software 250
Personal 7750
Coste total (C) 8110

Tabla 7.4: Presupuesto total

62 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

8. Bibliografı́a
[1] Jose Luis Sanchez-Lopez, Ramón A Suárez Fernández, Hriday Bavle, Carlos Sampedro,
Martin Molina, Jesus Pestana, and Pascual Campoy. Aerostack: An architecture and open-
source software framework for aerial robotics. In 2016 International Conference on Un-
manned Aircraft Systems (ICUAS), pages 332–341. IEEE, 2016.

[2] Steve Mills. When were the first military drones developed and what role did they serve?
[Link]

[3] México Puebla. The international micro air vehicle conference and competition
(imav2021). [Link]

[4] Peter Corke. Robotics, Vision and Control: Fundamental Algorithms in MATLAB. Sprin-
ger Publishing Company, Incorporated, 1st edition, 2013.

[5] Robot Operating System. Ros website. [Link]

[6] CVAR. Aerostack website. [Link]


wiki.

[7] Willow Garage. Gazebo website. [Link]

[8] Professor Peter Corke. Image-based visual servoing lesson. https://


[Link]/lesson/image-based-visual-servoing/.

[9] Jesús Pestana, José Luis Sanchez-Lopez, Pascual Campoy, and Srikanth Saripalli. Vision
based gps-denied object tracking and following for unmanned aerial vehicles. In IEEE
International Symposium on Safety, Security, and Rescue Robotics, SSRR 2013.

[10] V. Lippiello, J. Cacace, A. Santamaria-Navarro, J. Andrade-Cetto, M. Á. Trujillo, Y. R.


Rodrı́guez Esteves, and A. Viguria. Hybrid visual servoing with hierarchical task com-
position for aerial manipulation. IEEE Robotics and Automation Letters, 1(1):259–266,
2016.

[11] D. Lee, T. Ryan, and H. J. Kim. Autonomous landing of a vtol uav on a moving platform
using image-based visual servoing. In 2012 IEEE International Conference on Robotics
and Automation, pages 971–976, 2012.

[12] P.A. Fernandes Ferreiral and J.R. Caldas Pinto. 3d and 2d visual servoing architectures
for a puma560 robot. IFAC Proceedings Volumes, 36(17):183–188, 2003. 7th IFAC Sym-
posium on Robot Control (SYROCO 2003), Wroclaw, Poland, 1-3 September, 2003.

[13] Enric Cervera. Image-based stereo visual servoing: 2d vs 3d features. volume 35, pages
820–820, 07 2002.

Luis Alfonso Delbergue Chico 63


CAPÍTULO 8. BIBLIOGRAFÍA

[14] W. J. Wilson, C. C. Williams Hulls, and G. S. Bell. Relative end-effector control using
cartesian position based visual servoing. IEEE Transactions on Robotics and Automation,
12(5):684–696, 1996.

[15] E. Malis, F. Chaumette, and S. Boudet. 2 1/2 d visual servoing. IEEE Transactions on
Robotics and Automation, 15(2):238–250, 1999.

[16] J. Hwangbo, I. Sa, R. Siegwart, and M. Hutter. Control of a quadrotor with reinforcement
learning. IEEE Robotics and Automation Letters, 2(4):2096–2103, 2017.

[17] Suseong Jin Kim H. Choi, Seungwon Kim. Inverse reinforcement learning control for
trajectory tracking of a multirotor uav. International Journal of Control, Automation and
Systems, 2017.

[18] Riccardo Polvara, Massimiliano Patacchiola, Sanjay Sharma, Jian Wan, Andrew Manning,
Robert Sutton, and Angelo Cangelosi. Autonomous quadrotor landing using deep reinfor-
cement learning. arXiv preprint arXiv:1709.03339, 2017.

[19] C. Sampedro, A. Rodriguez-Ramos, I. Gil, L. Mejias, and P. Campoy. Image-based visual


servoing controller for multirotor aerial robots using deep reinforcement learning. In 2018
IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pages 979–
986, 2018.

[20] A. Rodriguez-Ramos, C. Sampedro, H. Bavle, I. G. Moreno, and P. Campoy. A deep


reinforcement learning technique for vision-based autonomous multirotor landing on a
moving platform. In 2018 IEEE/RSJ International Conference on Intelligent Robots and
Systems (IROS), pages 1010–1017, 2018.

[21] Carlos Bavle Hriday de la Puente Paloma Campoy Pascual Rodriguez-Ramos, Alejan-
dro Sampedro. A deep reinforcement learning strategy for uav autonomous landing on a
moving platform. In Journal of Intelligent Robotic Systems, 2019.

[22] Akshay Kumar. An overview of visual servoing for robot ma-


nipulators. [Link]
an-overview-of-visual-servoing-for-robot-manipulators/.

[23] MBZIRC2017. Mohamed bin zayed international robotics challenge. [Link]


[Link]/challenge/2017.

[24] A. Rodriguez-Ramos, C. Sampedro, H. Bavle, Z. Milosevic, A. Garcia-Vaquero, and


P. Campoy. Towards fully autonomous landing on moving platforms for rotary unman-
ned aerial vehicles. In 2017 International Conference on Unmanned Aircraft Systems
(ICUAS), pages 170–178, 2017.

[25] M. Beul and S. Behnke. Analytical time-optimal trajectory generation and control for
multirotors. In 2016 International Conference on Unmanned Aircraft Systems (ICUAS),
pages 87–96, 2016.

[26] Dario Melita Carmelo Muscato Giovanni Battiato Sebastiano D’URSO F. Farinella Gio-
vanni Ortis Alessandro Santoro Corrado Cantelli, Luciano Guastella. Autonomous landing
of a uav on a moving vehicle for the mbzirc. 2017.

64 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

[27] M. Beul, S. Houben, M. Nieuwenhuisen, and S. Behnke. Fast autonomous landing on a


moving target at mbzirc. In 2017 European Conference on Mobile Robots (ECMR), pages
1–6, 2017.

[28] Kevin Ling, Derek Chow, Arun Das, and Steven Waslander. Autonomous maritime lan-
dings for low-cost vtol aerial vehicles. pages 32–39, 05 2014.

[29] Alessandro Rucco, PB Sujit, Pedro Aguiar, Joao Sousa, and Fernando Pereira. Optimal
rendezvous trajectory for unmanned aerial-ground vehicles, 2016.

[30] A. Gautam, P. B. Sujit, and S. Saripalli. Application of guidance laws to quadrotor landing.
In 2015 International Conference on Unmanned Aircraft Systems (ICUAS), pages 372–
379, 2015.

[31] Wang Kai, Sun Chunzhen, and Jiang Yi. Research on adaptive guidance technology of uav
ship landing system based on net recovery. Procedia Engineering, 99:1027–1034, 2015.
2014 Asia-Pacific International Symposium on Aerospace Technology, APISAT2014 Sep-
tember 24-26, 2014 Shanghai, China.

[32] R Om Prakash and Chandran Saravanan. Autonomous robust helipad detection algorithm
using computer vision. In 2016 International Conference on Electrical, Electronics, and
Optimization Techniques (ICEEOT), pages 2599–2604, 2016.

[33] Cosimo Patruno, Massimiliano Nitti, Ettore Stella, and Tiziana D’Orazio. Helipad detec-
tion for accurate uav pose estimation by means of a visual sensor. International Journal
of Advanced Robotic Systems, 14(5):1729881417731083, 2017.

[34] Intel. Opencv website. [Link]

[35] Mathworks. Matlab website. [Link]


[Link].

[36] Wikipedia. Modelo de color hsv. [Link]


de_color_HSV[Link]
HSV.

[37] China Beijing. The international micro air vehicle conference and competition
(imav2016). [Link]

[38] Visual Servoing Platform (VISP). Tutorial: Image-based visual servo. https:
//[Link]/doxygen/visp-daily/tutorial-bebop2-vs.
html#bebop2_ibvs.

[39] Geoffrey Taylor Lindsay Kleeman. Hybrid position-based visual servoing lesson.
[Link]

Luis Alfonso Delbergue Chico 65


ÍNDICE DE FIGURAS

Índice de figuras
1. (a) Imagen del objeto en la posición inicial (b) Imagen del objeto en la posición
objetivo (c) Transformación de los vértices . . . . . . . . . . . . . . . . . . . . 7
2. Imagen cenital de la plataforma inicial y después de encuadrar la H . . . . . . . 7

1.1. Dibujo del “Aerial Target”. Fuente: [2] . . . . . . . . . . . . . . . . . . . . . . 11


1.2. Cuadrocóptero. Fuente: [3] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.1. Proceso de detección H de [32] . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.1. Ejemplo de estructura generada por ROS mediante rqt graph . . . . . . . . . . 22


3.2. Estructura de capas de Aerostack . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.1. Cono del modelo HSV. Fuente: [36] . . . . . . . . . . . . . . . . . . . . . . . 26


4.2. Esquema simplificado de la estructura de nodos de la identificación de la H . . 27
4.3. Tratamiento de la imagen: imagen recibida, transformación a HSV, filtro color,
dilatación bordes, detección contornos y vértices, filtro área y vértices, encuadre
final y en el entorno de simulación con rectángulo ideal . . . . . . . . . . . . . 28
4.4. Pseudocódigo del algoritmo de detección . . . . . . . . . . . . . . . . . . . . 28
4.5. Tipo de Visual Servo. Fuente: [37] . . . . . . . . . . . . . . . . . . . . . . . . 29
4.6. Sistemas de referencia del marco del dron y del marco de la cámara. Fuente: [38] 30
4.7. Gráficas del proceso de obtención del polinomio que correlaciona la altura con
el área del rectángulo que encuadra la H . . . . . . . . . . . . . . . . . . . . . 33
4.8. Esquema simplificado de la estructura de nodos usados . . . . . . . . . . . . . 34
4.9. Pseudocódigo del algoritmo del control IBVS . . . . . . . . . . . . . . . . . . 35

5.1. Gráficas del error en la imagen en aterrizaje sin perturbaciones con ganancia baja 37
5.2. Gráficas de posición en aterrizaje sin perturbaciones con ganancia baja . . . . . 38
5.3. Gráficas de velocidad en aterrizaje sin perturbaciones con ganancia baja . . . . 39
5.4. Gráficas del error en la imagen en aterrizaje sin perturbaciones con ganancia alta 40
5.5. Gráficas de posición en aterrizaje sin perturbaciones con ganancia alta . . . . . 40
5.6. Gráficas de velocidad en aterrizaje sin perturbaciones con ganancia alta . . . . 41
5.7. Gráficas del error en la imagen en aterrizaje con carga extra y ganancia baja . . 42
5.8. Gráficas de posición en aterrizaje con carga extra y ganancia baja . . . . . . . . 43
5.9. Gráficas de velocidad en aterrizaje con carga extra y ganancia baja . . . . . . . 43
5.10. Gráficas del error en la imagen en aterrizaje con carga extra y ganancia alta . . 44
5.11. Gráficas de posición en aterrizaje con carga extra y ganancia alta . . . . . . . . 44
5.12. Gráficas de velocidad en aterrizaje con carga extra y ganancia alta . . . . . . . 45
5.13. Gráficas del error en la imagen de aterrizaje sobre una plataforma en movimien-
to a velocidad baja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

66 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

5.14. Gráficas de posición de aterrizaje sobre una plataforma en movimiento a velo-


cidad baja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.15. Gráficas de velocidad de aterrizaje sobre una plataforma en movimiento a velo-
cidad baja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.16. Gráficas del error en la imagen de aterrizaje sobre una plataforma en movimien-
to a velocidad alta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.17. Gráficas de posición de aterrizaje sobre una plataforma en movimiento a velo-
cidad alta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.18. Gráficas de velocidad de aterrizaje sobre una plataforma en movimiento a velo-
cidad alta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.19. Gráficas del error en la imagen de aterrizaje con viento moderado . . . . . . . 52
5.20. Gráficas de posición de aterrizaje con viento moderado . . . . . . . . . . . . . 53
5.21. Gráficas de velocidad de aterrizaje con viento moderado . . . . . . . . . . . . 53
5.22. Gráficas del error en la imagen de aterrizaje con viento fuerte . . . . . . . . . . 54
5.23. Gráficas de posición de aterrizaje con viento fuerte . . . . . . . . . . . . . . . 55
5.24. Gráficas de velocidad de aterrizaje con viento fuerte . . . . . . . . . . . . . . . 56

7.1. Diagrama de Gantt del trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Luis Alfonso Delbergue Chico 67


ÍNDICE DE TABLAS

Índice de tablas
5.1. Datos recopilados de todas las pruebas . . . . . . . . . . . . . . . . . . . . . . 57
5.2. Resultados recopilados de todas las pruebas de los errores . . . . . . . . . . . . 58

7.1. Presupuesto del hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62


7.2. Presupuesto del software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
7.3. Presupuesto del personal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
7.4. Presupuesto total . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

68 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

Notación general
Acrónimos
IBVS Image Based Visual Servoing

CVAR Computer Vision and Aerial Robotics

CAR Center for Automation and Robotics

UPM Universidad Politécnica de Madrid

ETSII Escuela Técnica Superior de Ingenieros Industriales

UAV Unmanned Aerial Vehicle

PBVS Position Based Visual Servoing

DQN Deep Q-Networks

ROS Robot Operating System

GPS Global Positioning System

MBZIRC Mohamed Bin Zayed International Robotics Challenge

IMAV International Micro Air Vehicle

RL Reinforcement Learning

LIDAR Light Detection and Ranging

MPC Model Predictive Controller

DDPG Deep Deter-ministic Policy Gradient

PID Proporcional Integral Derivativo

VANT Vehı́culo Aéreo No Tripulado

OpenCV Open Computer Vision

SURF Speeded-Up Robust Features

SDF Syntax Definition Formalism

URDF Unified Robot Description Format

Luis Alfonso Delbergue Chico 69


ÍNDICE DE TABLAS

RMSE Root-Mean-Square Error

MAE Mean Absolute Error

HSV Hue Saturation Value

RGB Red Blue Green

Glosario
Fx — Distancia focal

Fy — Lado de cada pı́xel

Cx — Punto principal de la cámara en el eje x

Kx — Ganancia en el eje x

e — Error de posición

s — Caracterı́stica visual de la posición real

s∗ — Caracterı́stica visual de la posición ideal

ṡ — Derivada respecto al tiempo de la caracterı́stica visual

m — Medidas de la imagen

a — Parámetros adicionales de la imagen

X — Coordenada en el eje x del mundo 3D en metros

x — Coordenada en el eje x en el marco de cámara en 2D en metros

u — Coordenada en el eje x en la imagen en pı́xeles

v — Coordenada en el eje y en la imagen en pı́xeles

vc — Velocidad en el marco de la cámara

ve — Velocidad en el marco del end-effector (dron)


c
Ve — Matriz de transformación espacial de la cámara al dron
c
Rn — Matriz de rotación
c
tn — Matriz de traslación

λ — Ganancia del controlador

ng x — Centro de gravedad en el eje x

na — Parámetro que controla la altura en función del área

arctan(1/ρ) — Parámetro que controla la orientación del dron

70 Escuela Técnica Superior de Ingenieros Industriales (UPM)


Aterrizaje dron autónomo con perturbaciones mediante algoritmo de visión

Lc — Matriz de interacción

Ls — Matriz de interacción, rotación y traslación

vx — Velocidad lineal en el eje x

wx — Velocidad angular en el eje x

θ — Ángulo entre x e y

ρ — Distancia de la diagonal que forma el cuadrilátelo de x e y

v — Velocidad lineal final mandada al dron, salida del control

Luis Alfonso Delbergue Chico 71

También podría gustarte