Está en la página 1de 124

Coordinación entre UAV y UGV para

tareas de Búsqueda y Rescate

Pablo Rodrı́guez Palafox


Departamento de Automática, Ingenierı́a Eléctrica y Electrónica e Informática
Industrial
Escuela Técnica Superior de Ingenieros Industriales - UPM

Trabajo Fin de Grado


Propuesto por Antonio Barrientos Dirigido por Mario Garzón

Septiembre 2016
Resumen

En este Trabajo Fin de Grado se presenta un sistema autónomo de Búsqueda


y Rescate basado en la coordinación entre dos vehı́culos autónomos: un UAV
(Unmanned Aerial Vehicle) y un UGV (Unmanned Ground Vehicle). Sobre
este último se colocará una plataforma de aterrizaje (PA). El vehı́culo aéreo
debe ser capaz de localizar dicha PA en base a una imagen aérea, seguirla
de forma autónoma y aterrizar sobre ella cuando ası́ se lo indique el usuario
del sistema.

El sistema ha sido implementado sobre la plataforma robótica aérea AR


Drone 2.0; como UGV se optó por el Summit XL (véase Figura 1). Asi-
mismo, el trabajo ha sido elaborado bajo el framework de desarrollo de
software robótico conocido como ROS (Robot Operating System). Los algo-
ritmos desarrollados han sido escritos en lenguaje C++, XML y Python.

(a) (b)

Figura 1: Plataformas robóticas reales: (a) AR Drone 2.0 y (b) Summit XL.

El aterrizaje sobre una PA móvil puede descomponerse en cuatro etapas:


detección, localización, seguimiento y, finalmente, aterrizaje:

Detección

La detección de la PA móvil se ha llevado a cabo a través de técnicas de


Visión por Computador, empleando para ello la cámara ventral del AR Dro-
ne 2.0. En concreto, se ha desarrollado un algoritmo de visión basado en
métodos de binarización por umbral de matiz, saturación e intensidad de la
imagen a partir del que propone Baira (1). El primer paso será el acondi-
cionamiento de la imagen: se transforma esta al modelo de color HSV (Hue,
Saturation, Value), se filtra por umbral HSV y, finalmente, se le aplican
sucesivos procesos de erosión y dilatación con el fin de eliminar el ruido
existente (véase Figura 2).

Se obtiene ası́ una imagen binaria en la que la PA aparece representada por


pı́xeles blancos. Dichos pı́xeles se aproximan después por una figura poligo-
nal y, por último, se calcula el centroide de dicha figura, que caracterizará a
la PA en la siguiente etapa.

(a) (b) (c) (d)

Figura 2: Tratamiento de la imagen en el sistema real: (a) Conversión al modelo de color


HSV; (b) filtro para la obtención del color buscado (c) resultado tras el acondicionamiento;
y (d) PA detectada y contornos remarcados.

Localización

La obtención de la posción del centroide de la PA móvil con respecto al


sistema de referencia del UAV se realiza a través de una inversión del modelo
Pinhole, caracterizado por la Expresión 5.6. Este modelo describe la relación
matemática entre un punto en el espacio, (X, Y, Z) y su proyección sobre
el plano imagen de la cámara (u, v)T . La relación entre ambas variables se
denomina matriz de parámetros caracterı́sticos de la cámara.
 
    X
u f τ σx Y 
λ = (1)
v 0 ηf σy
Z
De esta manera, se calculará el centroide de la PA con respecto al sistema
de referencia de la cámara del UAV.

Seguimiento-Aterrizaje

Se han desarrollado dos algoritmos que abordan la tarea de seguimiento-


aterrizaje de forma ligeramente distinta. En cualquier caso, ambos algo-
ritmos comparten la misma estructura basada en una máquina de estados,
pudiéndose distinguir cinco: IDLE, TAKINGOFF, TRACKING, LANDING
y SEARCHING. En la Sección 6.1 se explican los diferentes estados en de-
talle.

A. Algoritmo seguimiento-aterrizaje con Control PID adaptativo:


Está basado en un control PID adaptativo cuyos parámetros (Kp , Ki y Kd )
varı́an en función de la altura del UAV, con el fin de que el seguimiento
de la PA sea óptimo a cualquier altura de vuelo, especialmente, durante la
maniobra de aterrizaje. El input o valor de entrada de este algoritmo es la
posición del centroide de la PA con respecto a la cámara.

Tras transformar dicho punto del sistema de referencia de la cámara al del


cuerpo del UAV, se calcula el error de posición, entendido como la distancia
entre el UAV y el centroide de la PA en el plano xy. Finalmente, se emplea
este valor para calcular los comandos de velocidad en x y en y que han de
ser aplicados al UAV en cada instante con el objetivo de que dicho error
converja a cero.

B. Algoritmo seguimiento-aterrizaje con Control PID predictivo:


Este algoritmo está basado en la combinación de un regulador PID con un
Filtro de Kalman (se ha adaptado al sistema el algoritmo de predicción de
personas desarollado por Garzón et al. (2)).

El funcionamiento del sistema resultante es el siguiente: se transforma la


posición de la PA (calculada en la fase detección-localización) del sistema
de referencia de la cámara al sistema del mundo. Se envı́a después la nue-
va posición al Filtro de Kalman, el cual devuelve la posición futura del
centroide de la PA referida al sistema del mundo. Posteriormente, esta se
transforma al sistema del cuerpo del UAV y, finalmente, se emplea la posi-
ción obtenida para calcular el error de posición (distancia entre el UAV y
la posición predicha de la PA). Como en el caso anterior, se emplea dicho
error para calcular los comandos de velocidad en x y en y que hagan que
este converja a cero.

Gracias a la acción predictiva, se facilita el seguimiento y, principalmente,


el aterrizaje, ya que el UAV puede posicionarse ligeramente por delante de
la PA momentos antes de la aproximación final y ası́ completar el aterrizaje
con mayor precisión.

Metodologı́a

La implementación de los algoritmos se ha llevado a cabo empleando ROS.


Lo más interesante de este framework es su estructuración modular, donde
el procesamiento de datos se da en una serie de nodos (nodes) indepen-
dientes que se relacionan siguiendo un modelo de mensajerı́a basado en la
publicación y la suscripción a tópicos (topics).

Exceptuando los nodos de los drivers del UAV y del UGV, se desarrollaron
los nodos siguientes. En el caso del sistema real, estos fueron el nodo de
detección y seguimiento, los nodos de seguimiento y aterrizaje (uno para
el algoritmo PID adaptativo y para el control PID predictivo) y el nodo
de teleoperación. Se desarrolló también un nodo que contenı́a las misiones
a realizar por la PA. Este último nodo se lanzaba dentro del ordenador
integrado en el Summit XL.

Resultados

Para la validación del sistema autónomo de despeque-seguimiento-aterrizaje


(d-s-a) se diseñaron tres Misiones UAV-PA, en las cuales la PA sigue un
trayectoria cuadrada (Misión 1), circular (Misión 2) y aleatoria (Misión 3).
Asimismo, las Misiones 1 y 2 se quisieron subdividir en dos tipos de pruebas:
una en la que se relanzara el sistema N veces para obtener N ciclos d-s-a bajo
las mismas condiciones y otra en la que se lanzara una sola vez el sistema
y se tratara de realizar el mayor número posible de ciclos d-s-a hasta el
fallo total del mismo (al llegar a Nmax , se detenı́a la misión, considerándose
entonces altamente contrastada la robustez del algoritmo).

En los Cuadros 1 se muestra la media de los resultados para el sistema


simulado y real a una velocidad media de la PA de v̄x = 0.18 m/s y de
w̄z = 0.09 rad/s.

No Aterrizajes Misión 1 Misión 2


20 PID adapt. PID pred. PID adapt. PID pred.
Misión 1 Misión 2 Misión 3
v̄x = 0.18 m/s
Velocidad PA v̄x = 0.18 m/s Adapt. Pred. Adapt. Pred. Adapt. Pred.
w̄z = 0.09 rad/s
v̄x = 0.18 m/s v̄x = (0, 0.18) m/s
Exitosos 19 20 18 19 Velocidad PA v̄x = 0.18 m/s
w̄z = 0.09 rad/s w̄z = (0, 0.09) rad/s
EM (cm) 18.7 13.2 21.8 14.9
Ciclos hasta fallo 39 40 38 40 36 40
Emax (cm) 25.8 17.5 27.1 18.0
Relocalizaciones 3 1 3 1 4 3
Fallidos 1 0 2 1
% Éxito 95 % 100 % 90 % 95 % (b) Sistema Simulado - Prueba B
(a) Sistema Simulado - Prueba A

No Aterrizajes Misión 1 Misión 2


10 PID adapt.
Misión 1 Misión 2 Misión 3
Exitosos 10 8
PID adapt.
EM (cm) 30.1 36.6
Ciclos hasta fallo 20 17 10
Emax (cm) 34.7 41.8 0 2 8
Relocalizaciones
Fallidos 0 2
% Éxito 100 % 80 % (d) Sistema Real - Prueba B
(c) Sistema Real - Prueba A

Cuadro 1: Resultados para el sistema simulado: (a) Misiones 1 y 2 - Prueba A; (b)


Misiones 1, 2 y 3 - Prueba B. Resultados para el sistema real; (c) Misiones 1 y 2 - Prueba
A; (d) Misiones 1, 2 y 3 - Prueba B.

En el simulador, la tasa de aterrizajes exitosos se encuentra por encima del


90 %, y se aprecia que el sistema de relocalización de la PA implementado
corrige aquellos aterrizajes fallidos (pocos) en la Prueba B. Ello permite
asegurar la robustez del sistema. Por otro lado, en las plataformas reales,
se observa que el porcentaje de éxito mı́nimo es un tanto menor (un 80 %).
Destaca también la dificultad del sistema real (basado en el control PID
adaptativo) de conseguir resultados positivos con trayectorias aleatorias de
la PA. Globalmente, se concluye el correcto funcionamiento del sistema.

Palabras clave: Aterrizaje Autónomo, PID, Filtro de Kalman, UAV.

Códigos UNESCO: 1203.23 (Lenguajes de Programación), 1203.26 (Si-


mulación), 2209.90 (Tratamiento Digital de Imágenes).
Agradecimientos

Querrı́a empezar agrandeciéndole a mi familia el apoyo mostrado, no solo


durante este proyecto, sino a lo largo de toda mi etapa en la universidad.
Mis padres, mi hermana y mi hermano son los que siempre me han motiva-
do para seguir aprendiendo y los que han fomentado en mı́ un espı́ritu de
sacrificio y trabajo. Han sabido, además, enseñarme a que se puede llegar a
amar tu trabajo si lo conviertes en tu pasión, como ha sido el caso de este
proyecto.

Asimismo, a Mario, porque han sido muchas las horas que hemos pasado
en el departamento y muchas las preguntas de principiante que le lanzaba
sin parar, hasta que aprendı́ que una de las mejores formas de aprender, si
no la mejor, es equivocarte, equivocarte y volver a equivocarte. Tampoco
puedo olvidar la ayuda prestada por Antonio, no solo en este trabajo, sino
en varias de las asignaturas del grado, incluso en las que no era mi profesor.
Gracias a Jorge y a David, por echarme una mano con las pruebas, gracias
a Juanje y, en especial, gracias a Pablo, por no odiarme despues de estrellar
su AR Drone 2.0 durante una de las pruebas. Afortunadamente, nada que
no se pudiera reparar.

Me gustarı́a también agradecer a mis compañeros de clase los buenos mo-


mentos que me han hecho pasar durante estos cuatro años. Nombrarı́a a
todos, ası́ que mejor que no nombre a ninguno. En cualquier caso, han
sido cuatro años increı́bles a su lado. Increı́blemente duros, pero también
increı́blemente apasionantes. Ha habido momentos malos, pero momentos
muy buenos. En todos ellos, ahı́ estaban mis compañeros. Pero ya nunca
más serán mis compañeros, serán mis amigos.

Gracias a ti, Irene, por ayudarme a mover colchonetas de un lado para otro
en el pabellón para preparar el escenario, por ayudarme a tener listos los ro-
bots, por mover la plataforma de aterrizaje cuando el Summit ya no podı́a
más... Y, todo ello, tan solo para poder realizar un puñado de pruebas.
Unas pruebas que nos llevaron más de lo pensado pero que, tras muchos
dı́as tragando polvo y manchándonos las manos, dieron sus frutos. Gracias
por revisar mi memoria. Gracias también por ayudarme estos últimos dı́as
a no decaer y a seguir motivado. En definitiva, gracias por estar a mi lado.

Y, por último, gracias a todo aquel que, sin saberlo, ha contribuı́do a que
este trabajo saliera adelante.

Muchas gracias a todos.

Madrid, 22 de julio de 2016


Índice general

Índice de figuras VII

Índice de Cuadros IX

1. Introducción 1
1.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Estado actual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4. Aportaciones propias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5. Estructura de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2. Estado del arte 7


2.1. Detección de objetos móviles desde el aire . . . . . . . . . . . . . . . . . 8
2.2. Localización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3. Seguimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4. Aterrizaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3. Planificación y presupuesto 15
3.1. Estructura de Descomposición del Proyecto EDP . . . . . . . . . . . . . 15
3.2. Planificación temporal. Diagrama de Gantt . . . . . . . . . . . . . . . . 16
3.3. Presupuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4. Material y Herramientas 21
4.1. Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2. Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

iii
ÍNDICE GENERAL

5. Algoritmo de Detección-Localización 33
5.1. Detección . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.1.1. Teorı́a del Color . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.1.2. Desarrollo del algoritmo . . . . . . . . . . . . . . . . . . . . . . . 37
5.2. Localización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6. Algoritmo de Seguimiento-Aterrizaje 47
6.1. Máquina de Estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.2. Control PID adaptativo . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.2.1. Desarrollo del algoritmo . . . . . . . . . . . . . . . . . . . . . . . 50
6.2.2. Esquema general del Control PID . . . . . . . . . . . . . . . . . . 50
6.2.3. Ajuste de los parámetros del Control PID . . . . . . . . . . . . . 52
6.2.4. Aplicación en el sistema simulado . . . . . . . . . . . . . . . . . . 53
6.2.5. Aplicación en el sistema real . . . . . . . . . . . . . . . . . . . . 55
6.3. Control PID predictivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.3.1. Filtro de Kalman - Teorı́a básica . . . . . . . . . . . . . . . . . . 56
6.3.1.1. Descipción matemática del Filtro de Kalman . . . . . . 57
6.3.2. Desarrollo del algoritmo . . . . . . . . . . . . . . . . . . . . . . . 61
6.3.3. Integración del algoritmo de predicción . . . . . . . . . . . . . . 62
6.3.4. Seguimiento con predicción . . . . . . . . . . . . . . . . . . . . . 63
6.3.5. Aterrizaje con predicción . . . . . . . . . . . . . . . . . . . . . . 63
6.4. Control de altura - Relocalización de la PA . . . . . . . . . . . . . . . . 63

7. Metodologı́a 65
7.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7.2. Implementación en ROS . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
7.2.1. Herramienta de transformaciones - tf . . . . . . . . . . . . . . . . 67
7.2.2. Nodos, tópicos y servicios . . . . . . . . . . . . . . . . . . . . . . 74
7.2.2.1. Nodo de detección-localización . . . . . . . . . . . . . . 78
7.2.2.2. Nodo de seguimiento-aterrizaje . . . . . . . . . . . . . . 79
7.2.2.3. Nodo de transformación de la posición . . . . . . . . . . 80
7.2.2.4. Nodo del Filtro de Kalman . . . . . . . . . . . . . . . . 81
7.2.2.5. Nodo del driver del vehı́culo aéreo . . . . . . . . . . . . 81
7.2.2.6. Nodo de teleoperación . . . . . . . . . . . . . . . . . . . 81

iv
ÍNDICE GENERAL

7.2.2.7. Nodo de movimiento de la PA (Summit XL) . . . . . . 82

8. Experimentos y resultados 83
8.1. Sistema simulado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
8.1.1. Descripción de los experimentos . . . . . . . . . . . . . . . . . . 83
8.1.1.1. Misión 1: Trayectoria cuadrada . . . . . . . . . . . . . . 83
8.1.1.2. Misión 2: Trayectoria aproximadamente circular . . . . 84
8.1.1.3. Misión 3: Trayectoria aleatoria . . . . . . . . . . . . . . 85
8.1.2. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
8.1.2.1. Misiones 1 y 2 - Prueba A . . . . . . . . . . . . . . . . 86
8.1.2.2. Misiones 1, 2 y 3 - Prueba B . . . . . . . . . . . . . . . 89
8.2. Sistema real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
8.2.1. Descripción de los experimentos . . . . . . . . . . . . . . . . . . 93
8.2.1.1. Misión 1: Trayectoria rectilı́nea . . . . . . . . . . . . . . 93
8.2.1.2. Misión 2: Trayectoria circular . . . . . . . . . . . . . . . 94
8.2.1.3. Misión 3: Trayectoria aleatoria . . . . . . . . . . . . . . 95
8.2.1.4. Misiones 1 y 2 - Prueba A . . . . . . . . . . . . . . . . 96
8.2.1.5. Misiones 1, 2 y 3 - Prueba B . . . . . . . . . . . . . . . 97
8.3. Valoración de impactos y de aspectos de responsabilidad legal, ética y
profesional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

9. Conclusiones y lı́neas futuras 101


9.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
9.2. Lı́neas futuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

10. Glosario 105

Bibliografı́a 107

v
ÍNDICE GENERAL

vi
Índice de figuras

1. Plataformas robóticas reales . . . . . . . . . . . . . . . . . . . . . . . . . ii


2. Tratamiento de la imagen en el sistema real . . . . . . . . . . . . . . . . iii

2.1. Ejemplo de marcador empleado en las librerı́as ArUco . . . . . . . . . . 9

3.1. Estructura de Descomposición del Proyecto . . . . . . . . . . . . . . . . 16


3.2. Tareas de la planificación temporal . . . . . . . . . . . . . . . . . . . . . 17
3.3. Diagrama de Gantt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.1. Plataforma robótica terrestre Summit XL . . . . . . . . . . . . . . . . . 22


4.2. AR Drone 2.0 con cubierta para interiores y exteriores . . . . . . . . . . 23
4.3. Cámara frontal del AR Drone 2.0 . . . . . . . . . . . . . . . . . . . . . . 25
4.4. Cámara ventral del AR Drone 2.0 . . . . . . . . . . . . . . . . . . . . . . 25
4.5. Sensores de ultrasonidos del AR Drone 2.0 . . . . . . . . . . . . . . . . . 26
4.6. Ejemplo de esquema en árbol generado por la herramienta tf . . . . . . 29
4.7. Ejemplo de simulación en la herramienta rviz de ROS . . . . . . . . . . 29
4.8. Ejemplo de simulación Gazebo . . . . . . . . . . . . . . . . . . . . . . . 30

5.1. Espacio de color RGB . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35


5.2. Espacio de color HSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.3. Vista aérea de la plataforma de aterrizaje simulada y real . . . . . . . . 37
5.4. Tratamiento de la imagen en el sistema simulado . . . . . . . . . . . . . 39
5.5. Tratamiento de la imagen en el sistema real . . . . . . . . . . . . . . . . 40
5.6. Resultado final de la detección de la plataforma de aterrizaje . . . . . . 42
5.7. Distribución del punto objetivo P(X,Y,Z) con respecto a los planos usa-
dos en el modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.8. Plano imagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

vii
ÍNDICE DE FIGURAS

5.9. Checkboard empleada para la calibración de la cámara ventral del AR


DRone 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.10. Secuencia de movimientos recomendada para una calibración óptima de
la cámara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

6.1. Diagrama de bloques de un control PID . . . . . . . . . . . . . . . . . . 51


6.2. Fase de predicción del Filtro de Kalman . . . . . . . . . . . . . . . . . . 59
6.3. Fase de actualización del Filtro de Kalman . . . . . . . . . . . . . . . . 61

7.1. Sistemas de ejes coordenados pertenecientes al modelo simulado del Sum-


mit XL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
7.2. Sistemas de ejes coordenados pertenecientes al modelo simulado del qua-
drotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
7.3. Árbol final de frames del sistema simulado . . . . . . . . . . . . . . . . . 69
7.4. Árbol final de frames del sistema simulado . . . . . . . . . . . . . . . . . 71
7.5. Árbol final de frames del sistema simulado . . . . . . . . . . . . . . . . . 72
7.6. Árbol final de frames del AR Drone 2.0 (sistema real) . . . . . . . . . . 73
7.7. Entramado de nodos, tópicos y servicios en el sistema real con Control
PID adaptativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

8.1. Escenario diseñado en el simulador . . . . . . . . . . . . . . . . . . . . . 84


8.2. Secuencia de imágenes: Misión 2 - Prueba A - Sistema Simulado . . . . 92
8.3. Escenario diseñado en la realidad . . . . . . . . . . . . . . . . . . . . . . 94
8.4. Secuencia de imágenes: Misión 1 - Prueba A - Sistema real . . . . . . . 98

9.1. Plataforma robótica Pelican . . . . . . . . . . . . . . . . . . . . . . . . . 103


9.2. Ejemplo de marcador empleado en las librerı́as ArUco . . . . . . . . . . 104

viii
Índice de Cuadros

1. Resultados para el sistema simulado: (a) Misiones 1 y 2 - Prueba A;


(b) Misiones 1, 2 y 3 - Prueba B. Resultados para el sistema real; (c)
Misiones 1 y 2 - Prueba A; (d) Misiones 1, 2 y 3 - Prueba B. . . . . . . vi

3.1. Gastos personal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19


3.2. Gastos de material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3. Gastos totales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5.1. Combinación de parámetros elegida para la aplicación de las funciones


erode y dilate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

6.1. Reglas generales para el ajuste heurı́stico . . . . . . . . . . . . . . . . . 53


6.2. Parámetros del PID en función de la altura - Sistema Simulado . . . . . 53
6.3. Parámetros del PID en función de la altura - Sistema Real . . . . . . . . 55

8.1. Resultados de las Misiones 1 y 2 - Prueba A - Simulador . . . . . . . . . 87


8.2. Resultados de las Misiones 1 y 2 - Prueba A - Simulador . . . . . . . . . 87
8.3. Resultados de las Misiones 1 y 2 - Prueba A - Simulador . . . . . . . . . 88
8.4. Resultados de las Misiones 1 y 2 - Prueba A - Simulador . . . . . . . . . 88
8.5. Resultados de las Misiones 1, 2 y 3 - Prueba B - Simulador . . . . . . . 89
8.6. Resultados de las Misiones 1, 2 y 3 - Prueba B - Simulador . . . . . . . 90
8.7. Resultados de las Misiones 1, 2 y 3 - Prueba B - Simulador . . . . . . . 90
8.8. Resultados de las Misiones 1, 2 y 3 - Prueba B - Simulador . . . . . . . 90
8.9. Resultados de las Misiones 1 y 2 - Prueba A - Sistema Real . . . . . . . 96
8.10. Resultados de las Misiones 1, 2 y 3 - Prueba B - Sistema Real . . . . . . 97

ix
ÍNDICE DE CUADROS

x
1

Introducción

1.1. Motivación

En las últimas décadas, la robótica ha ido tomando cada dı́a una mayor importan-
cia en nuestras vidas. Hasta el momento, nuestra tecnologı́a ha conseguido desarrollar
múltiples plataformas robóticas que nos ayudan en tareas muy variadas: desde el cui-
dado y atención de humanos, hasta la limpieza de los más altos rascacielos. En otras
ocasiones, los robots nos eximen de la realización de tareas peligrosas, como el trata-
miento de materiales radiactivos y sustancias quı́micas contaminantes. De las múltiples
aplicaciones de la robótica, en este proyecto se abordará la cooperación entre platafor-
mas robóticas para tareas de Búsqueda y Rescate.

Los robots destinados a este tipo de tareas (SaR robots - Search and Rescue ro-
bots) deben operar en muchas ocasiones en entornos desconocidos, sobre superficies
no estables y con múltiples dificultades para efectuar su misión. Esta, por lo general,
incluye la obtención de un mapa del entorno para facilitar la intervención posterior de
las brigadas de rescate. Para un robot terrestre, este tipo de condiciones (por ejemplo,
zona de escombros tras el derrumbamiento de un edificio) no resultan las mejores para
operar. Una posible solución es constituir equipos mixtos de un robot terrestre (UGV
- Unmanned Ground Vehicle) y uno aéreo (UAV - Unmanned Aerial Vehicle) para
realizar estas tareas de Búsqueda y Rescate. La elección de este tipo de cooperación
UAV-UGV queda justificada por la posibilidad de compensar las carencias del uno con
los puntos fuertes del otro.

1
1. INTRODUCCIÓN

Efectivamente, mientras que los robots aéreos poseen una capacidad única de ob-
tener vistas en altura y de desplazarse sin verse obstaculizados por los elementos que
pueda haber sobre el terreno, su reducida autonomı́a de vuelo limita su tiempo de uso
a pocas decenas de minutos y su capacidad de carga a poco más de 1 Kg, generalmente.

Por el contrario, los robots terrestres sı́ son capaces de superar, habitualmente, los
requisitos de autonomı́a energética y capacidad de carga de pago. Además, pueden
actuar como repetidores para los sistemas de comunicaciones, ası́ como proveer capaci-
dades de cómputo y almacenamiento de datos al sistema. Sus puntos débiles aparecen
a la hora de superar obstáculos o situaciones complicadas, como puentes estrechos o
planos inclinados. Adicionalmente, su capacidad de obtención de información acerca
de su entorno también puede quedar limitada por los elementos del escenario o por las
propias limitaciones de los sensores.

De este modo, se presenta como muy buena alternativa el empleo de un sistema


mixto, en el que un robot terrestre provea la autonomı́a energética a un robot aéreo,
ası́ como el transporte de la carga de pago y del propio robot aéreo. Este útlimo, a
su vez, podrá, si la situación ası́ lo requiere, proveer imágenes u otras medidas que
permitan al controlador del sistema mejorar su percepción de la situación en la que
se encuentra. Este trabajo pretende ser un paso hacia la obtención de un sistema de
dichas caracterı́sticas. Para ello, se aborda la automatización de dos tareas: el segui-
miento mediante un robot aéreo de los movimientos realizados por un robot terrestre
y el aterrizaje autónomo sobre una PA a bordo de dicho robot terrestre.

1.2. Estado actual

Con este proyecto se retoma el trabajo realizado anteriormente en el Centro de Au-


tomática y Robótica UPM-CSIC de la ETSI Industriales de Madrid, en el que Baira
(1) desarrolla un sistema de detección, localización y seguimiento de objetos dinámi-
cos terrestres. Dicho algoritmo se implementó sobre la plataforma robótica aérea AR
Drone en sus dos versiones (1.0 y 2.0), emplenado del robot terrestre Summit XL como

2
1.3 Objetivos

objetivo móvil a detectar y seguir.

En dicho trabajo, el vehı́culo aéreo volaba a una altura fija, con el objetivo de man-
tener siempre al robot terrestre en el campo visual de la cámara (se empleaba la cámara
ventral incorporada en el propio AR Drone) y ası́ poder seguirlo con éxito. Se dejó como
trabajo futuro la implementación de un algoritmo de predicción, el cual estaba siendo
desarrollado en aquel momento por otros investigadores del Centro de Automática y
Robótica. Con dicho algoritmo, el vehı́culo aéreo podrı́a ir prediciendo las posiciones
futuras del robot terrestre y ası́ adelantarse a sus movimientos. Otra tarea que se pro-
puso fue la implantación de un sistema que permitiera al vehı́culo aéreo aterrizar sobre
el terrestre, de manera que se pudieran aprovechar las ventajas de uno y otro.

Por consiguiente, se estudiará en profundidad cómo se realizaron las tareas de de-


tección y seguimiento en el trabajo de Baira para después poder aplicarlo al desarrollo
del sistema que aquı́ se plantea. Como se verá en el siguiente apartado de Objetivos
(véase 1.3), el principal foco de este trabajo será conseguir que el UAV despeaterrice
autónomamente sobre el robot terrestre.

1.3. Objetivos

El objetivo final del proyecto es desarrollar las bases para un sistema UAV-UGV con
capacidad de inspeccionar y reconstruir el entorno a explorar. El robot aéreo irá po-
sado sobre una plataforma de aterrizaje (PA)(la cual estará anclada mecánicamente
al UGV) hasta que el usuario del sistema precise recoger información adicional del
terreno. En ese momento, el UAV despegará, detectará y localizará la PA y, posterior-
mente, deberá seguir de manera autónoma a la misma. Finalmente, cuando el ususario
del sistema ası́ lo considere, indicará al UAV el comienzo de la maniobra autónoma de
aterrizaje sobre la PA, aún estando esta última en movimiento.

A continuación, se enumeran los sub-objetivos marcados al inicio del proyecto:

1. Desarrollar de la infraestructura de control. Para que la automatización de


las tareas de Búsqueda y Rescate sea posible, se considera necesario que el sistema
a desarrollar esté basado en una máquina de estados (véase Capı́tulo 6.1). Con

3
1. INTRODUCCIÓN

ella se busca que el sistema sea robusto y que se puedan realizar tantos ciclos
despegue-seguimiento-aterrizaje (d-s-a) como el usuario del sistema precise.

2. Implementar el aterrizaje del UAV cuando la PA sigue una trayectoria


rectilı́nea. El vehı́culo aéreo ha de ser capaz de aterrizar sobre la PA cuando
esta se mueve describiendo una trayectoria rectilı́nea.

3. Implementar el aterrizaje del UAV cuando la PA sigue una trayectoria


circular. El vehı́culo aéreo ha de ser capaz de aterrizar sobre la PA cuando esta
se mueve describiendo una trayectoria circular.

4. Implementar el aterrizaje del UAV cuando la PA sigue una trayectoria


aleatoria. El vehı́culo aéreo ha de ser capaz de aterrizar sobre la PA cuando esta
se mueve describiendo una trayectoria aleatoria, siempre y cuando el objetivo
terrestre no realice maniobras evasivas en los instantes previos al aterrizaje.

5. Implementar un algoritmo de control de altura para la relocalización


de la PA. Se considera imprescindible la implantación de un sistema de control
de altura que permita al robot aéreo relocalizar la PA cuando esta desaparezca
del campo visual del primero.

1.4. Aportaciones propias

1. Se consigue implementar una infraestructura de control robusta que permite al


usuario comunicarse con el sistema. El usuario, a través de un controlador (se ha
empleado el Sixaxis Controller ) tiene la capacidad de indicar al vehı́culo aéreo
cuándo ha de despegar y cuándo ha de aterrizar de nuevo. De esta manera, en una
hipotética misión de Búsqueda y Rescate, serı́a el propio usuario del sistema el
encargado de decidir en qué momento serı́a necesario recopilar información aérea
del entorno.

2. Se desarrolla un algoritmo de seguimiento-aterrizaje que permite a la platafor-


ma robótica aérea aterrizar sobre la PA cuando esta describe una trayectoria
rectilı́nea.

3. Se desarrolla un algoritmo de seguimiento-aterrizaje que permite a la plataforma


robótica aérea aterrizar sobre la PA cuando esta describe una trayectoria circular.

4
1.5 Estructura de la memoria

4. Se desarrolla un algoritmo de seguimiento-aterrizaje que permite a la plataforma


robótica aérea aterrizar sobre la PA cuando esta describe una trayectoria aleatoria.

5. Se desarrolla un algoritmo de control de altura del vehı́culo aéreo que permite la


relocalización de la PA en caso de que desaparezca del campo visual de la cámara.

Para la consecución de estos objetivos, se han desarrollado dos algoritmos de seguimiento-


aterrizaje: uno basado en un control PID adaptativo (los parámetros del PID varı́an
decrecientemente con la altura) y otro basado en un control PID predictivo. Este último
precisa de la integración de un Filtro de Kalman (algoritmo de predicción del movi-
miento), el cual es una adaptación del que desarrolla Garzón ((2)) para el seguimiento
de personas.

1.5. Estructura de la memoria

La distribución de la memoria es la que se expone a continuación.


En el Capı́tulo 2 se realizará un estudio exhaustivo de los trabajos ya realizados en
el campo de la robótica tratado en este proyecto, esto es, el estado del arte.

Posteriormente, en el Capı́tulo 3, se mostrará la planificación de las tareas necesa-


rias para una correcta ejecución del proyecto, ası́ como el presupuesto del mismo.

En el Capı́tulo 4 se describirá el material hardware y software empleado a lo largo


de este trabajo.

En los siguientes dos capı́tulos se explicarán en detalle los algoritmos de detección-


localización (Capı́tulo 5) y de seguimiento-aterrizaje (Capı́tulo 6) desarrollados a lo
largo de este proyecto.

Después, en el Capı́tulo 7, se expondrá cómo se han implementado los algoritmos


desarrollados en el software ROS (Robotic Operating System). Asimismo, se mostrará en
este capı́tulo cuál ha sido el método de trabajo aplicado.

5
1. INTRODUCCIÓN

Tras haber sido ejecutado el proyecto, en el Capı́tulo 8 se mostrarán los experimen-


tos realizados y los correspondientes resultados obtenidos, que tratarán de justificar el
correcto funcionamiento del sistema.

Finalmente, en el Capı́tulo 9 se expondrán las conclusiones obtenidas tras el pro-


yecto, ası́ como posibles lı́neas futuras de trabajo.

6
2

Estado del arte

En los últimos años, el desarrollo de aplicaciones relacionadas con el uso de dro-


nes ha aumentado significativamente; en concreto, existe un enorme interés en poder
emplear estos como herramientas de detección y seguimiento de objetos móviles terres-
tres. Sin embargo, como ya se ha resaltado anteriormente, su baja autonomı́a dificulta
el poder realizar tareas complejas que conlleven más de 15 minutos. Es por ello que
se plantea como una tarea interesante el conseguir aterrizar UAVs sobre PA móviles,
dotándolos ası́ de una mayor versatilidad, y es que en muchos escenarios no es posible
asegurar una zona de aterrizaje amplia y estacionaria.

El aterrizaje sobre una PA móvil puede descomponerse en cuatro etapas: detección


de la misma, localización de esta con respecto al sistema de referencia del vehı́culo
aéreo, seguimiento y, finalmente, aterrizaje. En este capı́tulo se hará un estudio de
los avances realizados hasta el momento en estas materias.

Se comenzará por analizar los métodos de detección de objetos móviles desde el aire,
pasando posteriormente a las tareas de localización. Después se mostrarán los avances
en cuanto a tareas de seguimiento se refiere, para finalizar con un estudio de cómo es
posible aterrizar vehı́culos aéreos de forma autónoma sobre objetivos terrestres móviles.

7
2. ESTADO DEL ARTE

2.1. Detección de objetos móviles desde el aire

La detección de objetos en movimiento desde robots aéreos se presenta más com-


pleja que si se realizara desde tierra. Ello se debe, principalmente, a que los vehı́culos
aéreos presentan vibraciones, las cuales suponen importantes focos de ruido para los
sensores. Existen, sin embargo, distintos métodos de detección que solventan este y
otros problemas derivados de la detección desde el aire.

Talukder y Matthies (3) distinguen principalmente entre cuatro posibles métodos


para abordar el tratamiento de imágenes dinámicas: métodos de sustracción de fondo,
método de rastreos de rasgos dispersos, técnicas de modelado de fondo y modelos de
movimiento de robot.

Los métodos de sustracción de fondo son usados, en su mayorı́a, con cámaras aéreas
fijas. Fujiyoshi (4) y Cheung (5) emplean este procedimiento para separar imágenes
móviles del fondo. Tratando de solucionar los problemas derivados de los algoritmos de
sustracción de fondo (como el correcto modelado y tratamiento de sombras), Cucchiara
(6) propone un método de propósito general que combina asunciones estadı́sticas con
el conocimiento a nivel objeto de los objetivos móviles en cuestión, ası́ como de objeti-
vos aparentes (“fantasmas”) y sombras que pertenecen a frames anteriores. Los pı́xeles
pertenecientes a i) objetivos móviles, ii) “fantasmas” y iii) sombras son procesados de
forma distinta, de manera que la actualización del fondo sea selectiva. Lo que se consi-
gue es un sistema mucho más rápido, flexible y preciso, tanto en términos de precisión
de los pı́xeles como en tiempo de respuesta a los cambios en el fondo. En la misma
lı́nea, Zhang et al. (7) emplea imágenes logarı́tmico-polares para mejorar los resultados
y la eficiencia de los métodos de estimación por flujo óptico.

Los métodos vistos hasta ahora emplean cámaras estáticas, de manera que los con-
tornos móviles se determinan fácilmente gracias a que los pı́xeles estáticos no cambian
de posición en la imagen. Si, por el contrario, la cámara forma parte de un robot móvil,
el problema de la detección se ha de abordar de forma distinta. En concreto, y con el fin
de tener en cuenta los cambios en la imagen generados por pequeñas variaciones en la

8
2.1 Detección de objetos móviles desde el aire

iluminación o por ligeros movimientos de la cámara, se han de emplear modelos adap-


tativos. Estos, sin embargo, no están optimizados para cambios demasiados bruscos en
la escena, de manera que se han de imponer ciertas restricciones de movimiento a la
cámara para que funcionen correctamente. Empleando este método, Franke (8) consi-
gue desarrollar un método de detección de obstáculos en tareas de control de tráfico
urbano desde el aire.

Otros métodos que también pueden ser empleados en tareas de detección de obje-
tos móviles desde el aire son los basados en reconocimiento de etiquetas o marcadores
que identifiquen al objetivo. Muñoz-Salinas (9) desarrolla una librerı́a, conocida como
ArUco basada en OpenCV a través de la cual es capaz de detectar estos tags o mar-
cadores (véase Figura 2.1) de manera efectiva y precisa. Sin embargo, y debido a que
el algoritmo funciona determinando distancias entre los rectángulos negros y blancos
del marcador, no responde correctamente en cámaras con baja resolución a distancias
mayores de 3-4 metros. Es por ello que solo son válidos en situaciones en las que el
seguimiento del objetivo terrestre desde la plataforma aérea se haya de ejecutar a una
altura inferior a estos 3-4 metros.

Figura 2.1: Ejemplo de marcador empleado en las librerı́as ARUCO (Universidad


de Córdoba).

Cuando la eficiencia computacional de la cámara empleada es baja, la detección en


tiempo real de objetos dinámicos con cámaras no estacionarias es aun más compleja.
Este es el caso, por ejemplo, de muchos de los dispositivos móviles actuales, los cuales

9
2. ESTADO DEL ARTE

sufren pequeños balanceos al ser sostenidos por una persona. Moo (10) propone un
método para la detección de objetos en movimiento sobre cámaras no estacionarias
que solventa estos problemas. Para conseguir esta capacidad de tiempo real con un
rendimiento satisfactorio, el método propuesto por Moo modela el fondo de la imagen
a través de un modelo Gaussiano sencillo en dual-mode (en inglés dual-mode Single
Gaussian Model - SGM ), compensando el movimiento de la cámara. El modelado a
través de este dual-mode SGM evita que el modelo del fondo sea contaminado con
pı́xeles del primer plano, a la vez que permite al sistema adaptarse a ligeras variacio-
nes en el segundo plano de la imagen. Lo que consigue es un algoritmo con una carga
computacional baja y una alta capacidad en tiempo real, que bien podrı́a ser empleada
en plataformas robóticas aéreas con cámaras con bajas prestaciones.

Por último, es interesante mencionar un nuevo método que combina el cálculo del
movimiento de la cámara (egomotion) basado en puntos estáticos caracterı́sticos, junto
con comparaciones a través de flujo óptico. Con él se puede determinar qué pı́xeles
pertenecen a objetos en movimiento y cuáles a objetos parados. Basándose en este
procedimiento, Huang et al. (11) proponen un procedimiento de diferenciación de fra-
mes que, sin embargo, no resultó enteramente funcional, debido principalmente a la
existencia de vibraciones de alta frecuencia en los UAVs actuales.

2.2. Localización

Una vez detectado el objetivo móvil, se ha de referenciar su posición con respecto a


la cámara. En muchas ocasiones, el empleo de observaciones realtivas se presenta como
la mejor opción, como se observa en los trabajos de Rekleitis (12), Martinelli (13) o
Madhavan (14).

A menudo, y sobretodo en redes de sensores inalámbricos (WSN), estos métodos


de localización relativa dan muy buenos resultados, tales son los casos de los estudios
realizados por Baggio (15) o por Savarese (16). No solo se obtienen buenos resultados
empleando sensores inalámbricos WSN, sino también haciendo uso de redes de cáma-
ras, como muestra Mantzel (17). Este propone un algoritmo distribuido de localización
para la determinación de la posición de elementos individuales, con el cual consigue un

10
2.3 Seguimiento

gran ahorro computacional frente a los enfoques más centralizados.

Sin embargo, el coste computacional se mantiene, generalmente, como uno de los


mayores inconvenientes en el cálculo de las sucesivas posiciones relativas del objetivo.
Técnicas que hacen uso de tan solo una cámara, como la que propone Oztarak (18),
reducen considerablemente este coste computacional. Oztarak diseña un esquema de
localización para una red sensorial inalámbrica basado en el conocimiento de tan solo
la propia localización de la cámara.

Otros métodos basados en el posicionamiento relativo los podemos encontrar en los


trabajos de Baggio et al. (15), quienes desarrollan un sistema de localización de Monte
Carlo. Es también interesante la propuesta de Savarese et al. (16), que proponen el uso
de medidas de alcance o profundidad entre pares de nodos y las coordenadas conocidas
a priori de los nodos ancla dispersos. Lo que consiguen es la estimación precisa de la
posición del objetivo móvil basándose en asunciones previas, ası́ como en comproba-
ciones y reparametrizaciones iterativas. Sin embargo, el mayor inconveniente que se les
presenta para que la localización sea correcta es, principalmente, la necesidad de contar
como mı́nimo con tres nodos.

Otros estudios, como el llevado a cabo por Rodrı́guez (19), muestran que es posible
realizar la localización de un objetivo dinámico a través de técnicas de localización
relativa robot-robot. Por otro lado, Esteves (20) plantea también la posibilidad de usar
algoritmos de localización absoluta en la detección de objetos móviles. Para ello, pre-
senta una técnica de triangulación basada en el empleo de balizas dispersas a lo largo
del entorno, las cuales no necesariamente han de estar ordenadas.

2.3. Seguimiento

Conocida la posición del objetivo móvil con respecto a la cámara, el siguiente paso
es el seguimiento del mismo. Probablemente, una de las técnicas más sencillas en el
seguimiento de objetos dinámicos es el empleo de un regulador PID (21). Sin embargo,
en general esto no basta, requieriéndose la implementación de algoritmos de predicción

11
2. ESTADO DEL ARTE

de movimiento.

La segmentación de un mapa de celdas en diferenctes regiones usando alguna va-


riante de un filtro de Kalman se presenta como una de las soluciones más empleadas.
A este respecto, Bobruk (22) desarrolla un algoritmo de seguimiento basado en la seg-
mentación de masas (blob segmentation) para filtrar los objetos localizados. A cada blob
o masa obtenida tras el filtrado se le asignan una serie de parámetros, comunmente su
posición y tamaño, y se calcula su centro de masas. Asimismo, el sistema propuesto ha
de mantener unas hipótesis que reflejen la probabilidad de que ocurran cambios en las
medias del sensor láser. Dichos cambios surgirı́an a causa del movimiento del objetivo
móvil, que bien puede ser una persona o incluso otra plataforma robótica. Estas hipóte-
sis se actualizarı́an empleando un filtro de Kalman para estimar la posición y velocidad
de los objetos, ası́ como un peso especı́fico que indicarı́a la probabilidad de que dicha
hipótesis sea cierta. Al comenzar la tarea de seguimiento, este peso se inicializa con
un valor relativamente bajo, para después ir incrementándolo según la evolución del
sistema.

Otra técnica ampliamente aplicada en tareas de seguimiento es la construcción o


actualización de un mapa de un entorno desconocido a la vez que se mantiene el se-
guimiento del objetivo móvil dentro de dicho mapa. Esta técnica es conocida por sus
siglas en inglés como SLAM (Simultaneous Localization And Mapping). Existe gran
cantidad de trabajos fundamentados en este procedimiento, donde detección y locali-
zación se encuentran estrechamente relacionadas. Vu, Aycard y Appenrodt (23) basan
su algoritmo de seguimiento en la generación de un grid o cuadrı́cula de ocupación, la
cual muestra el mapa del entorno como un campo de variables binarias aleatorias con
las que caracteriza la posible presencia de un objeto en dicha posición. Posteriormen-
te, se emplean técnicas ICP (Iterative Closest Point) para encontrar similitudes entre
escaneos sucesivos, y, finalmente, los objetivos dinámicos son rastreados en base a una
técnica GNN (Global Nearest Neighborhood ), desarrollada en parte por Konstantinova
(24).

Existe un problema similar al SLAM conocido como SLAM-MOT (SLAM Moving


Object Tracking), propuesto por Wang (25). En su trabajo, Wang desarrolla una es-

12
2.4 Aterrizaje

tructuración jerárquica de objetos a través del uso de métodos basados en cuadrı́culas


y técnicas de distinción de caracterı́sticas propias del objeto dinámico en cuestión. Em-
plea para ello varios modelos de movimiento, los cuales van creciendo en complejidad.
Asimismo, es importante destacar que su algoritmo (SLAM with detection and tracking
of moving objects (DATMO)) descompone el problema de la estimación en dos esti-
madores distintos. Gracias a esto, el problema de la estimación es dimensionalmente
menor que si se empleara un procedimiento SLAM convencional.

En definitiva, se ha de destacar la importancia de incluir algún tipo de algoritmo


de predicción en la tarea de seguimiento del objeto móvil, y más cuando no solo se
pretende seguirlo sino también aterrizar sobre él.

2.4. Aterrizaje

El problema del aterrizaje de una plataforma robótica aérea sobre una plataforma
de aterrizaje terrestre es relativamente reciente. Cada vez existen más soluciones que
abordan esta tarea, pero sigue sin conseguirse un método completamente robusto que
sea válido para cualquier situación de aterrizaje. Esto es, no existe una técnica total-
mente validada que permita un aterrizaje no solo en lı́nea recta sino también en curva.

Ling et al. (26) intentan dar solución a los problemas que surgı́an en la toma de
fotografı́as de icebergs empleando drones, los cuales eran lanzados desde un barco.
Los vehı́culos aéreos debı́an ser posteriormente rescatados semi-manualmente entre dos
operarios: el primero debı́a encargarse de situarlo cerca de la embarcación, mientras el
segundo debı́a recuperar el vehı́culo aéreo manualmente, con el peligro que ello conlle-
vaba. Ling consigue finalemente desarrollar un algoritmo de aterrizaje de precisión con
el que eliminar por completo la actuación humana en este tipo de situaciones.

Existen algunos otros ejemplos de aterrizajes autónomos de VTOL UAVs (vertical


take-off and landing UAVs) sobre plataformas móviles. Lee, Ryan y Kim (27) se centran
en el uso de cámaras verticales y algoritmos IBVS (image-based visual servoing) para
el seguimiento de una plataforma en un espacio bidimensional; obtienen después la ve-
locidad con la que se mueve la plataforma y, finalmente, usan este dato como referencia

13
2. ESTADO DEL ARTE

para un controlador adaptativo de movimiento deslizante. Comparado con otros algo-


ritmos de control basados en visión que reconstruyen una representación completa en
3 dimensiones del objetivo (los cuales requieren estimaciones de profundidad precisas),
los algoritmos IBVS son menos costosos computacionalmente.

Anteriormente a estos dos trabajos, Saripalli (28) ya trabaja con algoritmos de vi-
sión para el aterrizaje autónomo de un helicótero sobre una plataforma móvil. Saripalli
emplea los momentos de inercia de Hu para una detección precisa del objetivo y un
filtro de Kalman para el seguimiento del mismo. Basándose en la salida del algoritmo
de tracking, es capaz de implementar un controlador de trayectoria que asegura el ate-
rrizaje sobre el objetivo móvil.

Es interesante observar que, en la gran mayorı́a de los proyectos que tratan el tema
de la detección y localización de objetos móviles desde quadrotors, se asumen ciertas
simplificaciones. La primera de ellas es asumir como conocida la forma y/o color del
objeto a localizar, puesto que la discriminación de este puede llegar a plantear serias
dificultades. Asimismo, se suele asumir que la velocidad del mismo es lo suficientemente
baja como para que el vehı́culo aéreo sea capaz de aterrizar sobre la PA con la mayor
facilidad posible. Como caso excepcional, en trabajos realizados por el Centro Aeroes-
pacial Alemán (DLR, Deutsches Zentrum für Luft- und Raumfahrt), se ha conseguido
que el UAV sea capaz de aterrizar sobre una red colocada encima de un coche circu-
lando a una velocidad cercana a los 70 km/h, si bien es cierto que este aterrizaje a tan
alta velocidad se realizaba en lı́nea recta.

Este último es un aspecto relevante a considerar, y es que existen diferencias sus-


taciales entre aterrizajes en trayectoria rectilı́nea, circular o completamente aleatoria.
La mayorı́a de las investigaciones hasta el momento se centran únicamente en un ate-
rrizaje en lı́nea recta, sin asumir en ningún caso que el movimiento del objetivo pueda
ser evasivo o malicioso. Esta serı́a una lı́nea interesante de trabajo, ya que, en tareas de
búsqueda y rescate, el objetivo móvil (generalemente, un UGV), tendrı́a total libertad
de movimiento, al ser capaz el UAV de realizar el aterrizaje en cualquier situación, por
muy complicada que fuera la trayectoria seguida por el primero.

14
3

Planificación y presupuesto

En este captulo se detallan los aspectos relativos a la gestión del proyecto, defi-
niéndose la Estructura de Descomposición del Proyecto (EDP), la planificación tempo-
ral (Diagrama de Gantt) y, finalmente, el presupuesto del proyecto.

3.1. Estructura de Descomposición del Proyecto EDP

La Estructura de Descomposición del Proyecto se muestra en la figura 3.1.

15
3. PLANIFICACIÓN Y PRESUPUESTO

Figura 3.1: Estructura de Descomposición del Proyecto.

3.2. Planificación temporal. Diagrama de Gantt

Se desarrolla ahora la planificación temporal de las tareas descritas en la EDP, con


el fin de poder encontrar la mejor distribución posible del trabajo a realizar. De cara a
una mejor estructuración de las tareas, estas han sido subdivididas en cuatro bloques
principales: Estudios previos y Aprendizaje, Modelado, Implementación y Validación,
ası́ como en tareas de Gestión del Proyecto.

La duración inicial del trabajo se establece en 11 meses, distribuidos entre septiem-


bre de 2015 y julio de 2016. Debido a que la realización del proyecto se compagina con
la asistencia y preparación de las asignaturas de 4o curso del GITI, se plantean jornadas
laborales de 3-4 horas diarias, aproximadamente.

Durante los periodos de exámenes (enero y junio), la dedicación al proyecto es no-


tablemente menor que en otras épocas, elevándose en otras ocasiones hasta máximos

16
3.2 Planificación temporal. Diagrama de Gantt

de 8-10 horas diarias en meses como febrero y marzo, o finales de junio y julio.

A continuación, se detalla en la figura 3.2 la totalidad de las tareas a realizar. Pos-


teriormente, se organizan estas en un diagrama de Gantt, visible en la figura 3.3. En él
se muestra en color rojo el camino crı́tico de la programación, el cual está formado por
las actividades que no permiten holguras en su realización.

Figura 3.2: Tareas de la planificación temporal.

17
3. PLANIFICACIÓN Y PRESUPUESTO

Figura 3.3: Diagrama de Gantt.

18
3.3 Presupuesto

3.3. Presupuesto

El cálculo del presupuesto total se representa como la suma de dos términos: el


primero está asociado a los gastos del personal que ha ejecutado el proyecto (véase
Cuadro 3.1), mientras que el segundo engloba los gastos de material tanto hardware
como software (véase Cuadro 3.2). En el caso de las herramientas software, el gasto
será nulo, gracias a ser estas distribuciones enteramente libres. Por último, en el Cua-
dro 3.3 se muestran los gastos totales del proyecto.

Concepto e/h Horas dedicadas Total (e)


Coste del investigador 15 350 5250
Coste del tutor 50 50 2500

Cuadro 3.1: Gastos personal.

% Dedicado
Concepto Coste unitario (e) Unds. Total (e)
al proyecto
Ordenador MacBook Pro 15” 1900 1 30 % 570
Sistema Operativo Ubuntu 14.04 0 1 100 % 0
Robot Operating System (ROS) 0 1 100 % 0
Plataforma robótica Summit XL 8625 1 5% 431.25
Plataforma robótica AR Drone 2.0 289 1 100 % 289

Cuadro 3.2: Gastos de material.

Gastos de Personal (e) 7750


Gastos de Material (e) 1290.25
Total (e) 9040.25

Cuadro 3.3: Gastos totales.

19
3. PLANIFICACIÓN Y PRESUPUESTO

20
4

Material y Herramientas

En este capı́tulo se describe el material y las herramientas software empleadas en el


trabajo. Primeramente, se tratará la plataforma robótica terrestre utilizada. Después,
el modelo de UAV y, finalmente, el Software empleado. Se hará hincapié en las herra-
mientas software que han sido significativas de cara al desarrollo del sistema robótico,
ası́ como aquellas que han permitido el tratamiento de los datos obtenidos. Se obviará,
sin embargo, el software empleado para la redacción de la memoria.

4.1. Hardware

Principalmente, se ha trabajado con la plataforma robótica aérea AR Drone (ver-


sión 2.0). Adicionalmente, se ha recurrido a la plataforma robótica terrestre Summit
XL, a la que se le ha incorporado una plataforma de aterrizaje de sección cuadrada.

Summit XL

Plataforma robótica de la firma valenciana Robotnik Automation S.L.L. Está do-


tada de una cinemática diferencial, o skid-steering, basada en cuatro motores indepen-
dientes, sin escobillas, de alto rendimiento. Dispone además de un sistema de odometrı́a
basado en cuatro encoders y un sensor angular de alta precisión montado en el interior
del chasis.
El robot ofrece la posibilidad de navegar autónomamente o ser teleoperado mediante
una cámara Pan-Tilt-Zoom, que transmite el vı́deo en tiempo real. Además, el Summit

21
4. MATERIAL Y HERRAMIENTAS

XL utiliza una arquitectura de control abierta y modular basada en ROS. En la Figura


4.1 se muestra este robot.

Por último, cabe señalar que el robot cuenta con un ordenador Intel DN2800MT,
con sistema operativo Linux instalado y una placa base mini-ITX. Este ordenador se
completa con una memoria RAM de 4Gb y un disco duro 2.5” SATA HDD.

Figura 4.1: Plataforma robótica terrestre Summit XL. El ordenador de abordo


y la IMU se encuentran en el interior del chasis. El láser de gran alcance Hokuyo y la
cámara fotónica TOF están montados en la parte superior delantera; las dos antenas (GPS
y comunicación), en la parte superior trasera.
Fuente: http://www.robotnik.eu/mobile-robots/summit-xl-hl/

AR Drone 2.0

Se trata de un vehı́culo aéreo no tripulado radiocontrolado de la firma francesa


Parrot (véanse Figuras 4.2a y 4.2b). Cuenta con cuatro motores eléctricos en confi-
guración cuadricóptero, un microprocesador y diferentes sensores, entre los cuales se
incluyen dos cámaras, una frontal y otra ventral. Asimismo, cuenta con un módulo Wi-
Fi que le permite vincularse a dispósitivos móviles (smartphones o tablets) que cuenten
con los sistemas operativos iOS, Android o Linux.

22
4.1 Hardware

(a) (b)

Figura 4.2: AR Drone 2.0 con cubierta para (a) interiores y para (b) exteriores.
Fuente: http://iapps.scenebeta.com/noticia/ar-drone-el-cuadrocoptero-teledirigido-por-tu-iphone-ipod-touch-ipad

Con respecto a su aspecto fı́sico, cuenta con un soporte en forma de cruz de fibra de
carbono y con dos carcasas intercambiables de espuma de polipropileno. Una está con-
cebida para proteger las hélices de posibles impactos en vuelos en interiores; la otra,
mucho más pequeña, está optimizada para el vuelo en espacios abiertos, por su mayor
aerodinamismo.

A continuación, se detallan las especificaciones de esta plataforma robótica aérea.

Especificaciones fı́sicas
El aparato mide 52.5 x 51.5 cm con la carcasa de interiores y 45 x 29 cm tanto si
lleva la de exteriores como si no lleva ninguna de ellas. Con respecto a su peso, este es
de 420 g con la carcasa de interiores y 380 g con la de exteriores. Es capaz de alcanzar
una velocidad máxima de marcha de 5 m/s (18 km/h). Por otro lado, la altura máxima
que puede alcanzar el aparato (limitada por la conexión Wi-Fi) se sitúa entre 50 y 120
m, dependiendo de las condiciones atmosféricas. Con respecto a la autonomı́a de vuelo,
el valor promedio es de 12 minutos.

23
4. MATERIAL Y HERRAMIENTAS

Sistema informático integrado


El quadrotor incorpora un microprocesador ARM Cortex A8 de 32 bits a 1 GHz con
DSP de vı́deo TMS320DMC64x a 800 M Hz. Asimismo, consta de una memoria RAM
DDR2 de 1 GB a 200 M Hz y de sistema operativo con núcleo Linux. Para vincularse
con otros dispositivos de control, cuenta con un Módem Wi-Fi b g n. Por otro lado, un
conector USB de alta velocidad permite al robot descargar el vı́deo recogido durante el
vuelo en dispositivos de almacenamiento de datos.

Sistema de guı́a inercial


Para el guiado inercial, el AR Drone 2.0 hace uso de un acelerómetro de 3 ejes
construido con tecnologı́a MEMS (sistemas micro-electromecánicos), un girómetro de
2 ejes y otro de precisión de 1 eje para el control de guiñada.

Sistema de seguridad
Como ya se ha comentado previamente, para evitar daños por colisión el usuario
puede optar por una cubierta para vuelo en interiores que protege las hélices. Por otro
lado, en caso de colisión, la aeronave recurre a un sistema de bloqueo automático de
las hélices. Asimismo, el usuario puede acceder, a través de un controlador o joystick,
a un servicio de emergencia que hace descender al robot de forma segura.

Estructura aerodinámica
Además de contar con cuatro hélices de alta eficiencia, el cuerpo del vehı́culo tiene
una estructura tubular de fibra de carbono que mejora su respuesta ante corrientes de
viento elevadas.

Motores y fuente de energı́a


El AR Drone incorpora 4 motores de rotor interno (inrunner ) sin escobillas, los
cuales trabajan a 28500 rpm con una potencia de 14.5 W . Con respecto a la baterı́a, se
emplea una Li-Po, siendo esta capaz de entregar 1500 mA/h a un voltaje nominal de
11.1 V . Como ya se ha mencionado anteriormente, esto proporciona al quadrotor una
autonomı́a de vuelo de entre 12 y 15 minutos. Por otro lado, la capacidad de descarga
de dicha baterı́a es de 10 C, y su tiemo medio de carga de 90 minutos.

24
4.1 Hardware

Cámara frontal
La cámara frontal HD 720p, muestra una respuesta en frecuencia de 30 f ps (cuadros/s).
Además, permite la codificación y transmisión en vivo de imágenes. En la Figura 4.3
se muestra esta cámara frontal.

Figura 4.3: Cámara frontal del AR Drone 2.0.


Fuente: http://www.windowscentral.com/review-parrot-drone-quadricopter-windows-tablet

Cámara ventral
Cámara con sensor CMOS de alta velocidad de lente diagonal con 64 grados de
amplitud y una resolución de 176x144 pı́xeles. Muestra una respuesta en frecuencia de
60 cuadros/s. En la Figura 4.4 se muestra esta cámara ventral.

Figura 4.4: Cámara ventral del AR Drone 2.0.

25
4. MATERIAL Y HERRAMIENTAS

Altı́metro por ultrasonido


Su frecuencia de emisión es de 40 kHz. En las especificaciones se describe un alcan-
ce de 6 m. En la Figura 4.5 se puede apreciar el sensor de ultrasonidos que emplea el
vehı́culo para la medida de su altitud.

Figura 4.5: Sensores de ultrasonidos del AR Drone 2.0. Está posicionado en la parte
delantera inferior del robot.
Fuente: https://www.ifixit.com/Device/Parrot_AR.Drone

Magnetómetro
Magnetómetro de 3 ejes, con precisión de 6o y un sensor de presión de +/− 10 P a
(80 cm a nivel del mar).

4.2. Software

Este proyecto ha sido desarrollado bajo el Sistema Operativo (SO) Ubuntu 14.04
LTS (Long Term Support). Ubuntu, sistema operativo Linux basado en Debian, se dis-
tribuye como software libre e incluye su propio entorno de escritorio, conocido como
Unity. Quizás, el elemento más caracterı́stico y más usado en todos los SO derivados
de Unix es probablemente el intérprete de comandos o terminal, conocida comunmente
en inglés como shell.

26
4.2 Software

La terminal de los SO GNU/Linux, denominada por sus creadores bash (Bourne


Again Shell ), sirve de interfaz no gráfica entre usuario y sistema operativo. Aunque
inicialmente pueda parecer más difı́cil trabajar en ella que empleando el ratón, agili-
za mucho las tareas a realizar, sobretodo cuando se emplean herramientas complejas
como ROS, el framework empleado en este proyecto y que describiremos a continuación.

Las razones de la elección de este sistema operativo en concreto son dos: la primera
y más importate es que Ubuntu soporta el framework ROS (Robotic Operating System).
El segundo motivo es que, como ya se ha visto, se trataba de la versión LTS más estable
de Ubuntu en el momento en que se inició el proyecto, y para la cual se ofrecerá soporte
hasta principios del año 2019.

En lo que resta de capı́tulo se explicará detalladamente lo que es ROS, ası́ como sus
herramientas más importantes y alguna de las librerı́as más destacadas en el campo de
la robótica.

ROS (Robotic Operating System) es una potente infraestructura de desarrollo de


software para robots. Otra definición posible es la de “metasistema operativo”, en tanto
que posee muchas de las caracterı́sticas de los SO, pero requieriendo la existencia de
un verdadero SO por debajo para poder funcionar. Cuenta, además, con licencia BSD
(Berkeley Software Distribution), esto es, es open-source. Nótese que, a diferencia del
otro tipo básico de licencia de software libre, GPL (Gnu Public License), la BSD es
menos restrictiva y más flexible en muchos aspectos.

La elevada modularidad de ROS y la gran cantidad de librerı́as existentes en la red


permiten el aprovechamiento de trabajos y desarrollos anteriores realizados bajo este
framework de desarrollo de robots. Además, gracias a los simuladores y las herramien-
tas de visualización que incorpora, el trabajo de simulación previo a la implantación
en la realidad de los códigos desarrollados resulta verdaderamente sencillo. No solo eso,
sino que ROS también permite multilenguaje en sistemas multiplataforma.

La versión de ROS empleada en este proyecto ha sido ROS indigo, soportada por
Ubuntu 14.04 LTS. Independientemente de la versión, ROS siempre busca facilitar la

27
4. MATERIAL Y HERRAMIENTAS

reutilización de código en tareas de desarrollo e investigación en el campo de la robótica,


ası́ como la abstracción del hardware. Todo ello resultando en un sistema que se basa
en:

1. Una serie de ejecutables (conocidos como nodos) diseñados de manera indepen-


diente y que publican o se subscriben a flujos de información (conocidos como
topicos).

2. Un nodo principal que coordina toda la estructura que el usuario decida diseñar.

3. Una serie de herramientas para crear, compilar y ejecutar código en uno o varios
ordenadores.

4. La posibilidad de organizar los nodos en Paquetes (Packages), de manera que la


estructura de código sea más modular y reutilizable.

Los nodos pueden ser desarrollados en cualquier lenguaje, aunque los más extendidos
son:

C++: es el más común. Al requerir del programador un mayor control sobre la


memoria, resulta en aplicaciones con un rendimiento muy elevado.

Python: debido a que favorece la rapidez en el desarrollo sobre el rendimiento


final, está muy extendido a la hora de diseñar prototipos.

Como se vio antes, ROS ofrece una gran cantidad de herramientas que facilitan el
manejo y desarrollo de los nodos:

tf: paquete que permite trabajar con múltiples sistemas coordenados en el tiempo,
manteniendo las relaciones que existen entre ellos en forma de árbol (véase Figura
4.6). Además, permite fácilmente realizar transformaciones de puntos o vectores
de un sistema coordenado a otro.

rviz: herramienta de visualización en 3D que facilita la visión de la disposición


de los distintos sistemas coordenados dados por tf, ası́ como las medidas de los
distintos sensores, tópicos en los que se está publicando información representados
en forma de marcadores, etc. En la Figura 4.7 se puede ver el aspecto de su
interfaz.

28
4.2 Software

Figura 4.6: Ejemplo de esquema en árbol generado por la herramienta tf. Se


pueden observar los distintos frames de árbol tf dentro de elipses; en este caso, pertencen
al AR Drone 2.0.

Figura 4.7: Ejemplo de simulación en la herramienta rviz de ROS.

rosbag: se emplea para la grabación y muestreo de datos de una sesión. Poste-

29
4. MATERIAL Y HERRAMIENTAS

riormente, estos datos pueden ser relanzados, de forma que se recree por completo
la situación antes grabada.

rqt plot: sirve para el trazado en vivo de gráficas. Por ejemplo, se puede emplear
para mostrar la velocidad del robot en cuestión con respecto al tiempo.

rqt graph: muestra el sistema de nodos y tópicos que están en ejecución en el


momento de lanzarse dicha herramienta.

gazebo: simulador en 3D. Permite, entre otras cosas, simular conjuntos de robots
y sensores en escenarios complejos, generando respuestas realistas de las interac-
ciones fı́sicas. En la Figura 4.8 podemos ver un ejemplo de simulación.

Figura 4.8: Ejemplo de simulación Gazebo.

Por último, se ha de mencionar la librerı́a de visión OpenCV (Open Source Com-


puter Vision), también con licencia BSD. Surgen con el objetivo de servir como ayuda
para el tratamiento y análisis de imágenes en aplicaciones de visión por computador

30
4.2 Software

en tiempo real. Es interesante destacar que la necesidad de una gran eficiencia compu-
tacional ha obligado a que estén escritas en C/C++ optimizado.

La librerı́a cuenta con más de 2500 algorimtos perfectamente optimizados, los cuales
pueden ser usados para tareas de detección, identificación o clasificaciones de movimien-
tos humanos. Asimismo, algunas consiguen hacer tracking de objetos, extraer modelos
3D de los mismos, producir nubes de puntos 3D a partir de cámaras estéreo o incluso
la identificación de imágnes similares pertenecientes a una base de datos.

31
4. MATERIAL Y HERRAMIENTAS

32
5

Algoritmo de
Detección-Localización

Este capı́tulo describe la sub-tarea de detección y localización de un objetivo móvil,


en este caso, una plataforma de aterrizaje terrestre. El algoritmo emplea información
tomada por la cámara vertical y el sensor de altura, incorporados ambos en el UAV
modelo AR Drone 2.0. Nótese que la explicación detallada de la implementación del
algoritmo en los sistema simulado (Gazebo) y real se lleva a cabo en el Capı́tulo 7,
tratándose este capı́tulo de un acercamiento a alto nivel.

5.1. Detección

La estrategia de detección seguida en este trabajo se ha basado en el método de


binarización por umbral de matiz, saturación e intensidad de la imagen. El objetivo
final es la obtención de una imagen binaria en blanco y negro en la que se visualicen en
blanco aquelos pı́xeles pertenecientes a la plataforma de aterrizaje, gracias a que todos
ellos poseen el mismo color. En concreto, se ha elegido el color rojo, debido a que es
fácilmente detectable casi en cualquier entorno.

Posteriormente, se realizarán sucesivas acciones de filtrado para eliminar el posible


ruido y ası́ poder finalmente calcular el centro geométrico de la plataforma. Dicho punto
será el que caracterice a la plataforma de aterrizaje.

33
5. ALGORITMO DE DETECCIÓN-LOCALIZACIÓN

Por último, se remarcará el perfil del objetivo móvil. Ello permitirá al usuario del
sistema verificar rápidamente si el algoritmo está funcionando correctamente.

A continuación, se explica paso por paso el proceso seguido por el algoritmo de


detección-localización para obtener el centroide del objetivo móvil. Sin embargo, antes
de entrar a describir el algoritmo en detalle, se ha considerado necesario presentar una
breve introducción sobre la Teorı́a del Color, pues sobre ella se sustenta el algoritmo
desarrollado.

5.1.1. Teorı́a del Color

En el tratamiento de imágenes, el primer paso a dar es la elección de modelo de color


con el que se querrá trabajar. Entre los modelos de color más habituales se encuentra
el RGB y los HSx.

El más común es el RGB (Red, Green, Blue), basado en la adición de colores. En


este modelo, la obtención de un color determinado se realiza a través de la combina-
ción de intensidades de rojo, verde y azul, entendidos estos como colores primarios. Su
espacio de color suele representarse a través de un cubo (véase Figura 5.1).

En dicho cubo, las intensidades de los tres colores primarios pueden tomar valores
de 0 a 255; de esta manera, cada color se identifica por un vector de tres componentes.

El inconveniente de este modelo es que no guarda relación con la forma en la que el


ser humano percibe los colores. Además, este un modelo no uniforme sensorialmente,
entendiendo este término como lo describe van den Broek en su trabajo (29). Indepen-
dientemente de su uniformidad sensorial, en el tratamiento de imágenes por computador
es recomemdable emplear uno de los espacios de color HSx.

Estos espacios HSx (HSI, HSV, HSB y HSL) se diferencian del espacio RGB en el
hecho de que guardan una relación mayor con lo que es la percepción visual del ser
humano, aunque tampoco son uniformes sensorialmente. Su caracterı́stica fundamental

34
5.1 Detección

Figura 5.1: Espacio de color RGB. Los 3 ejes coordenados del cubo representan los
niveles de intensidad de color rojo, verde y azul, medidos de 0 a 255. El origen del coorde-
nadas representa el color negro (0,0,0).
Fuente: https://migsar.wordpress.com/tag/color-cromatico/

es que permiten diferenciar entre la intensidad de la imagen (luminancia) y la informa-


ción relativa a esta (crominancia).

Los parámetros de estos espacios de color HSx son los siguientes: matiz, saturación
y claridad del color (también conocidos como valor, brillo e intensidad). Asimismo, la
diferencia entre cada uno de los espacios HSx es únicamente la transformación que se
aplica con respecto al espacio de color RGB. En cualquier caso, en este proyecto se
trabajará con el espacio de color HSV (Hue, Saturation, Value). Aunque se puede re-
presentar con diferentes formas, la más conocida es el cono HSV (véase Figura 5.2).

El matiz (o Hue), representado como un ángulo comprendido entre 0 y 360o , aporta


el componente del color como tal. Por ejemplo, el matiz del color rojo es de 0o . Por
otro lado, la saturación (o Saturation) se representa a través de la distancia al eje del
cono, estando sus valores comprendidos entre el 0 y el 100 %. Cuanto menor sea la sa-
turación de un color determinado, mayor tonalidad grisácea poseerá y más decolorado
se apreciará al ojo humano. Finalmente, el valor (o Value) aparece representado en el
cono HSV como la altura, estando sus valores comprendidos entre el 0 y el 100 %. Ası́,

35
5. ALGORITMO DE DETECCIÓN-LOCALIZACIÓN

Figura 5.2: Espacio de color HSV. Espacio de color HSV en forma de cono, donde el
matiz (hue) se muestra en forma de ángulos, la saturación (saturation) como separación
respecto del eje del cono y el valor (value) como altura en el cono.
Fuente: https://migsar.wordpress.com/tag/color-cromatico/

el color negro poseerá 0 % de la componente de valor, mientras que el color blanco se


caracterizará por tener un 100 % de su componente de valor.

La mayor ventaja de trabajar con el modelo de color HSV es que los cambios en la
iluminación del entorno o la aparación de sombras no afectan a la selección de color al
aplicar umbrales lı́mite. Por tanto, lo primero que se debe realizar tras la recepcción de
la imagen es su conversión de RGB a HSV, para lo cual se emplean las fórmulas 5.1,
5.2 y 5.3.

" #
−1 (1/2) [(R − G) + (R − G)]
H = cos p (5.1)
2
(R − G)2 + (R − B)(G − B)

3
S =1− [min(R, G, B)] (5.2)
R+G+B
1
V = (R + G + B) (5.3)
3

36
5.1 Detección

De cara a la implantación de estas transformaciones en el código, se empleará la


función cvtColor(fuente, destino, CV BGR2HSV) de la librerı́a OpenCV.

5.1.2. Desarrollo del algoritmo

Una vez que la imagen ha sido convertida a formato HSV, es necesario decidir cuál
será el proceso óptimo para la extracción de los pı́xeles pertenecientes al objetivo. Esta
decisión será distinta en cada caso particular, pero se pueden diferenciar tres paráme-
tros fundamentales que deberán guiar toda decisión: color, tamaño y forma del objetivo
a detectar.

A continuación, se explican cuáles son los procesos que sigue la imagen hasta lle-
gar a la detección final de la plataforma. Asimismo, se quiere hacer notar que todo
aquello que se desarrolle en esta sección es válido tanto para la detección de la plata-
forma de aterrizaje en el sistema simulado (véase Figura 5.3a) como para la plataforma
real (véase Figura 5.3b), con pequeños matices que se irán resaltando a medida que se
avance en la explicación. Asimismo, a lo largo de la explicación se irá haciendo referen-
cia a diferentes funciones pertenecientes a la librerı́a de visión por computador OpenCV.

(a) (b)

Figura 5.3: Vista aérea de la plataforma de aterrizaje (a) en el simulador Gazebo y (b)
en la realidad.

37
5. ALGORITMO DE DETECCIÓN-LOCALIZACIÓN

El primer paso tras la conversión de la imagen original al modelo de color HSV


será el filtrado de la misma. El objetivo de este filtrado será la obtención de una nueva
imagen en la que estén resaltados los pı́xeles cuyo color original se corresponda con los
de la PA. Para ello, se empleará la función inRange, que comprueba si las componentes
HSV de cada pı́xel se encuentran dentro de un determinado intervalo. En caso de que
sea ası́, en la imagen destino se le asignará un 1 al pı́xel en cuestión, asignándole 0 en
caso contrario.

Posteriormente, será necesario eliminar el ruido existente en dicha imagen. Esto


será especialmente importante en el sistema real, sin llegar a ser estrictamente necesa-
rio en el sistema simulado. Para la eliminación de este ruido, una opción es emplear
en serie las funciones erode y dilate. La primera contrae los contornos del área blanca
(pı́xeles con valor de 1) calculando los mı́nimos locales de la imagen con un elemento es-
tructural o kernel. Tras su aplicación, se consigue eliminar las pequeñas imperfecciones
irrelevantes. Por el contrario, la función de dilatación calcula los máximos locales de la
imagen, expandiendo ası́ las “zonas blancas”. La aplicación de una erosión seguida de
una dilatación consigue eliminar las pequeñas imperfecciones y, a continuación, dilatar
la nueva imagen sin ruido para recuperar las dimensiones iniciales (proceso de opening).

Otra alternativa interesante es la aplicación de la función medianBlur, que es la


implementación de un filtro de mediana. Este algoritmo recorre todos los pı́xeles de la
imagen y sustituye sus valores por la mediana de los valores de los pı́xeles vecinos. El
resultado es una imagen suavizada con bordes más redondeados.

En la resolución de este proyecto, la solución empleada para el sistema real es el


proceso de opening (sucesivas aplicaciones de procesos de erosión-dilatación). Para el
sistema simulado se ha empleado el filtro de mediana, ya que el ruido en la imagen es
notoriamente menor que en la realidad y no se requiere erosionar previamente la misma
para eliminar imperfecciones.

En las Figuras 5.4 se muestra el proceso de acondicionamiento de la imagen para el


sistema simulado. Aunque las imágenes previas a la aplicación de la función medianFil-
ter no poseen irregularidades excesivas, sı́ se puede apreciar cómo en la Figura 5.4d las

38
5.1 Detección

esquinas son ligeramente más redondeadas. En cualquier caso, la aplicación del filtro de
mediana en este caso podrı́a ser perfectamente prescindible, habiéndose realizado para
mantener una mayor similitud con el caso real.

(a) (b)

(c) (d)

Figura 5.4: Tratamiento de la imagen en el sistema simulado: (a) Imagen convertida al


modelo de color HSV; (b) Imagen filtrada por el canal H para obtener solo los pı́xeles rojos
de la imagen original; (c) imagen negada; y (d) resultado tras el filtro de mediana.

En la Figura 5.5 se muestra el proceso de acondicionamiento de la imagen en el


sistema real. Para la aplicación de los procesos de erosionado (Figura 5.5c) y dilatación
(Figura 5.5d) se han de seleccionar dos parámetros: la forma del elemento estructural
o kernel (rectangular, en forma de cruz o elı́ptica) y el tamaño del mismo. De forma
empı́rica, se selecciona la combinación mostrada en el Cuadro 5.1.

39
5. ALGORITMO DE DETECCIÓN-LOCALIZACIÓN

(a) (b)

(c) (d)

(e) (f )

Figura 5.5: Tratamiento de la imagen en el sistema real: (a) modelo de color HSV; (b)
filtro por los canales HSV para obtener solo los pı́xeles rojos de la imagen original; (c)
resultado tras una primera erosión; (d) resultado tras la dilatación posterior; (e) resultado
tras la aplicación de 3 procesos más de erosión-dilatación; y (f ) resultado tras la aplicación
de un filtro de mediana.

Erosión Dilatación
Forma del Kernel Rectangular Elipsoidal
Tamaño del Kernel 5 5

Cuadro 5.1: Parámetros elegidos para las funciones erode y dilate.

40
5.1 Detección

Tras haber realizado el proceso de acondicionamiento de la imagen, se puede proce-


der a la búsqueda del centroide de la plataforma de aterrizaje. Para ello, será necesario
primero hallar los contornos existentes en la imagen ya acondicionada y, después, apro-
ximar dichos contornos por polı́gonos. Finalmente, se podrá hallar el centroide de dicho
polı́gono.

La búsqueda y acumulación de los contornos existentes en la imagen se realiza


empleando la función findContours, que devuelve un vector con todos los contornos
encontrados. Posteriormente, se emplea la función approxPolyDP para la obtención de
un polı́gono que se asemeje a la forma detectada. De todos los polı́gonos encontrados,
solo se considerará como válido aquel que verifique las siguientes tres condiciones:

Que su número de lados se encuentre dentro de un intervalo definido por el usuario


del sistema. En este trabajo se ha calculado que dicho rango debe ser de 3 a 4
lados.

Que el área del polı́gono detectado (calculada mediante la función contourArea)


sea similar a la del objetivo real con un intervalo de seguridad del 30 %.

Que, con el fin de asegurar estimaciones precisas, la detección del polı́gono en


cuestión se haya llevado a cabo en condicones de vuelo favorables, a saber:

1. Que los ángulos de inclinación del UAV se encuentren por debajo de un valor
determinado.

2. Que las velocidades angulares en x y en y se encuentren por debajo de un


valor determinado.

3. Que las aceleraciones angulares en x y en y se encuetren por debajo de un


valor determinado.

En caso de que alguno de los polı́gonos detectados cumpla estas condiciones, será re-
conocido como la plataforma de aterrizaje. Se podrá entonces proceder al cálculo de su
centroide y a su posterior señalización de cara a informar al usuario del sistema que la
detección ha tenido éxito.

41
5. ALGORITMO DE DETECCIÓN-LOCALIZACIÓN

Para el cálculo del centroide se emplea la función moments. Esta función se sirve
de la Expresión 5.4 para el cálculo de momentos de hasta tercer orden. En este caso, se
calcularán los momentos de primer orden, para posteriormente dividirlos entre su área
(M00 ) (véase Expresión 5.5) y ası́ obtener el centroide (x, y) en pı́xeles.

X
Mji = (array(x, y) · xj · y i ) (5.4)

M10 M01
x= , y= (5.5)
M00 M00

A continuación, se muestran los resultados de esta etapa de detección-localización,


tanto para el sistema simulado como para el real (véase Figura 5.6).

(a) (b)

Figura 5.6: Resultado final de la detección de la plataforma de aterrizaje (a) en el sistema


simulado y (b) en el sistema real

42
5.2 Localización

5.2. Localización

Esta etapa tiene como entrada el centroide anteriormente encontrado, el cual re-
presenta al objetivo móvil. Dicho centroide está definido como un punto dentro de la
matriz de pı́xeles que se obtiene con la cámara. Este dato no es fácilmente manejable
de cara a la realización de los cálculos, de manera que es necesario tratarlo. El objetivo
será obtener la posición de la plataforma de aterrizaje respecto al sistema de referencia
de la cámara.

Para ello, se emplea un algoritmo basado en la inversión del modelo Pinhole, el cual
describe la relación matemática entre un punto en el espacio y su proyección sobre el
plano imagen de una cámara (véase Figura 5.7).

Figura 5.7: Distribución del punto objetivo P(X,Y,Z) con respecto a los planos usados en
el modelo.

De la tesis de Yannick Morvan (30) se puede obtener el siguiente marco teórico.


Asimismo, el modelo de Pinhole en su forma matricial se puede observar en la Ecuación
5.6.

43
5. ALGORITMO DE DETECCIÓN-LOCALIZACIÓN

 
    X
u f τ σx Y 
λ = (5.6)
v 0 ηf σy
Z

Donde λ es el factor de escala, (u, v)T es la proyección del punto sobre el plano ima-
gen expresada en pı́xeles, f es la distancia focal en pı́xeles, τ es el parámetro que indica
si los pı́xeles están torcidos o sesgados (valiendo 0 cuando no lo están), (σx , σy )T son
las coordenadas del centro óptico de la cámara. Por último, η indica la forma del pı́xel,
siendo estos cuadrados cuando η vale 1 (véase Figura 5.8), y (X,Y,Z) las coordenadas
de la plataforma de aterrizaje respecto de la cámara del UAV.

Figura 5.8: (a) Sistema coordenado de la imagen (x,y) y de la cámara (u,v ). (b) Repre-
sentación de pı́xeles no cuadrados y sesgados.

Para la obtención de los paŕametros de la cámara ventral del AR Drone 2.0 se re-
quirió la calibración de la misma. Se empleó para ello el paquete camera calibration de
ROS, el cual permite al usuario la obtención de resultados muy precisos con simples
movimientos de traslación y rotación de una checkboard (véase Figura 5.9) en frente de
la cámara que se quiere calibrar. Este tablero o checkboard ha de ser de dimensiones

44
5.2 Localización

conocidas, las cuales han de introducirse como parámetros al lanzar el nodo ROS del

paquete de calibración. En la Figura 5.10 se muestra la secuencia de movimientos re-

comendada para una calibración óptima de la cámara.

Figura 5.9: Checkboard empleada para la calibración de la cámara ventral del AR DRone
2.0.

Figura 5.10: Secuencia de movimientos recomendada para una calibración óptima de la


cámara.
Fuente: http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration

45
5. ALGORITMO DE DETECCIÓN-LOCALIZACIÓN

Una vez obtenidos los parámetros de la cámara a través del proceso de calibración
y teniendo en cuenta el valor de la altura del UAV, se pasa a resolver el sistema de
ecuaciones. Se invierte la matriz, se sustituye (u, v)T por las coordenadas del centroide
calculadas en la etapa anterior de detección y, finalmente, se obtienen las coordenadas
buscadas P(X,Y,Z), posición del centroide de la plataforma de aterrizaje respecto de la
cámara del UAV.

46
6

Algoritmo de
Seguimiento-Aterrizaje

En este capı́tulo se describen dos algoritmos que permiten realizar el seguimiento


de la plataforma móvil, ası́ como la posterior maniobra de aterrizaje. Nótese que la
explicación detallada de la implementación de dichos algoritmos en los sistema simu-
lado (Gazebo) y real se lleva a cabo en el Capı́tulo 7, tratándose este capı́tulo de un
acercamiento a alto nivel.

El primer algoritmo de seguimiento-aterrizaje desarrollado se basa en un control


PID adaptativo sin acción predictiva, mientras que el segundo se ayuda de un algo-
ritmo de predicción desarrollado por Garzón et al.(2) y que pretende ser una mejora
del primero. Se ha de hacer incapié, sin embargo, en que lo único que los diferencia es
el dato de entrada: mientras que el primero recibe la posición del centroide de la PA
respecto de la cámara, el segundo tiene como input la posición futura de dicho centroide
referenciada al sistema del mundo.

En cualquier caso, ambos algoritmos comparten la misma estructura basada en


una máquina de estados, pudiéndose distinguir 5 estados diferentes: IDLE, TAKIN-
GOFF, TRACKING y LANDING, además de un estado de SEARCHING. A continua-
ción, se explican en detalle los mismos.

47
6. ALGORITMO DE SEGUIMIENTO-ATERRIZAJE

6.1. Máquina de Estados

El primero, IDLE, es el estado de reposo del quadrotor y es su estado por defecto.


Asimismo, el UAV podrá también pasar a encontrarse en él una vez haya aterrizado
correctamente.

Solo si el usuario ası́ lo desea, indicándolo a través de la pulsación de un botón de


despegue, se podrá pasar al estado de TAKINGOFF, que representa el periodo durante
el cual el vehı́culo aéreo está despegando. Durante este estado, independientemente de
si la PA entrara o no en el campo de visión del UAV, el sistema de seguimiento como
tal se encuentra inhabilitado. De esta manera, se asegura una maniobra de despegue
segura y lo más vertical posible.

Una vez el dron ha alcanzado una altura determinada (prefijada por el usuario),
el estado del quadrotor cambia automáticamente a TRACKING. Es a partir de este
momento cuando se dará luz verde a que el algoritmo de seguimiento-aterrizaje co-
mience a funcionar. Ello permitirá calcular la velocidad que será necesario aplicar al
vehı́culo aéreo (velocidad tanto en x como en y) para que este reduzca su distancia con
el centroide de la PA. Es importante destacar que durante el estado de TRACKING el
dron se mantiene a una altura constante.

Finalmente, y solo si el usuario lo considera oportuno (pulsando el botón de aterriza-


je), el estado del UAV cambiará a LANDING. A partir de este momento, el quadrotor
comenzará la maniobra de aterrizaje. Durante la misma, el sistema de seguimiento
seguirá activo, tanto para el caso del algoritmo sin predicción como para el que la in-
cluye. La única diferencia ahora es la adición de un control de altura (véase Sección
6.4), que permitirá al UAV ir descendiendo hasta la plataforma de aterrizaje con unas
velocidades en x, en y y en z determinadas por la franja de altura en la que se encuentre.

De cara a poder decidir cuándo se ha aterrizado, se verifica si la diferencia entre dos


posiciones consecutivas de la plataforma de aterrizaje (respecto al cuerpo del UAV) es
muy próxima a cero. En tal caso, se pondrán a cero las velocidades del UAV (x,y,z) y
pasará a estado IDLE, esperando a que el usuario indique el comienzo de un nuevo ciclo

48
6.2 Control PID adaptativo

de rastreo (despegue - seguimiento de la plataforma de aterrizaje a la vez que realiza


una posible toma de datos del terreno - aterrizaje).

Finalmente, y con el fin de hacer más robusto el sistema, se implementó un estado


de SEARCHING, al cual el UAV accederá si la diferencia de tiempo entre el instante
actual y el instante en el que se recibió la última posición de la PA es mayor que un
determinado valor (se ajustó a 1.5 s). En caso de que, efectivamente, pasen estos 1.5
s sin recibirse nuevos mensajes de la posición del objetivo, el UAV comenzará a ganar
altura hasta que su campo de visión le permita detectar y localizar de nuevo la PA. Una
vez relocalizado, irá descendiendo lentamente (tratando de no perder de la imagen a la
PA) hasta situarse en la altura de seguimiento fija, parámetro que elige el usuario del
sistema. En la sección Control de Altura (véase Sección 6.4) se explica más en detalle
este sistema de relocalización.

Tras haberse presentado el esquema general de ambos algoritmos (sin y con pre-
dicción), a continuación se presentarán en detalle las diferencias básicas entre ellos. Se
quiere hacer notar que el motivo de mantener esta distinción es que el algoritmo de
seguimiento-aterrizaje sin predicción presenta muy buenos resultados en aterrizajes con
trayectorias rectilı́neas de la plataforma (véase Sección 8), siendo innecesaria la carga
computacional extra que supondrı́a la introducción del algorimto de predicción. Sin em-
bargo, la respuesta de dicho algoritmo sin predicción no es perfecta ante movimientos
circulares o aleatorios de la PA a velocidades elevadas de la misma, algo que se corrige
al introducir un filtro de Kalman.

6.2. Control PID adaptativo

En esta sección se presenta un algoritmo de seguimiento-aterrizaje basado en un


control PID adaptativo, cuyos parámetros (Kp , Ki y Kd ) varı́an en función de la altura
del UAV. El motivo de esta elección es que el seguimiento de la PA sea óptimo a
cualquier altura de vuelo y, especialmente, durante la maniobra de aterrizaje.

49
6. ALGORITMO DE SEGUIMIENTO-ATERRIZAJE

6.2.1. Desarrollo del algoritmo

Como se expuso en el Capı́tulo 5, el punto obtenido tras la finalización de la etapa


de detección-localización es la posición de la PA con respecto a la cámara. Por ello,
si lo que se necesita es emplear dicha posición como referencia para el control PID,
será necesario previamente transformar las coordenadas de dicho punto al sistema de
referencia del cuerpo del quadrotor. Una vez realizada esta transformación, se estará en
disposición de calcular el error de posición, definido en este caso como la distancia entre
el UAV y el centroide de la plataforma de aterrizaje en el plano xy.

Posteriormente, se empleará este error de posición para calcular los comandos de


velocidad en x y en y que habrán de ser aplicados al UAV en cada instante. Como se ha
mencionado anteriormente, el cálculo de dichos valores se realiza a través de un control
PID, cuyo esquema básico se describe en la Sección 6.2.2. Los parámetros de dicho
regulador no se mantendrán constantes durante la totalidad de la misión, sino todo lo
contrario. En función de la distancia a la plataforma de aterrizaje, será necesario variar
estos para asegurar que el vehı́culo aéreo es capaz de seguir en todo momento a la PA.
En concreto, cuanto más próximo se encuentre el UAV a la plataforma de aterrizaje,
más rápida deberá ser su respuesta ante los movimientos de la misma. En las secciones
6.2.4 y 6.2.5 se profundiza en ello, detallando exactamente cuáles han sido los valores
obtenidos para dichos parámetros en función de la altura.

6.2.2. Esquema general del Control PID

El esquema general del Control PID se puede observar en la Figura 6.1. El objetivo
de este lazo de control es que el error, e(t), entre el valor de referencia, u(t), y el valor
real obtenido a la salida, y(t), converja a cero de la manera más rápida posible.

Aplicado a este proyecto, el error serı́a la distancia en el plano horizontal (plano


xy) entre la plataforma de aterrizaje y el UAV, mientras que la salida serı́a la velocidad
en x y en y que se ha de aplicar al vehı́culo aéreo. De esta forma, con el control PID
se tratará de anular este error y ası́ mantener la PA centrada en la imagen en todo
momento.

50
6.2 Control PID adaptativo

Figura 6.1: Diagrama de bloques de un control PID. Obsérvese que la acción del
regulador es el resultado de la suma de tres términos.
Fuente: http://8760engineeringblog.blogspot.com.es/2013/01/linearizing-pid-loop-control.html

Como se puede apreciar en la Figura 6.1, el control PID es el resultado de tres accio-
nes: una acción proporcional (P), una integral (I) y otra derivativa (D). Dependiendo
de las necesidades de cada caso, se podrá hacer uso de una, de dos o incluso de las tres
acciones a la vez. A continuación, se describen estas brevemente:

Acción de control Proporcional: aplica una acción proporcional al error e(t).

u(t) = Kp e(t) (6.1)

siendo Kp la ganancia proporcional.

Adición de la Acción de control Integral: la adición de una acción de control


integral a la acción proporcional aporta una proporcionalidad al error acumulado
en cada instante. Su resultado, por tanto, es una ralentización de la respuesta del
sistema y la eliminación del error en régimen permanente. La expresión resultante
(6.2) se observa a continuación:

1 t
 Z 
u(t) = Kp e(t) + e(τ )dτ ) (6.2)
Ti 0

51
6. ALGORITMO DE SEGUIMIENTO-ATERRIZAJE

siendo Ti el tiempo integral.

Adición de la Acción de control Derivativa: la adición del término deriva-


tivo incrementa la rapidez de respuesta del sistema, esto es, mejora su régimen
transitorio. Sin embargo, la existencia de esta acción derivativa conlleva la am-
plificación de ruidos.

La expresión completa de un controlador PID se muestra en la Expresión 6.3.

1 t
 Z 
de
u(t) = Kp e(t) + e(τ )dτ + Td (6.3)
Ti 0 dt

siendo Td el tiempo derivativo.

6.2.3. Ajuste de los parámetros del Control PID

Como se ha mencionado anteriormente, los parámetros del Control PID (Kp , Ki y


Kd ) no se mantienen constantes durante el vuelo. Al contrario, estos dependerán de la
franja de altura en la que se encuentre el UAV. El motivo es el siguiente: la velocidad
de respuesta del vehı́culo aéreo con respecto a las variaciones del error (distancia entre
UAV y PA en el plano xy) ha de ser mayor cuanto menor sea la distancia en vertical
UAV-PA. Es decir, el vehı́culo aéreo ha de reaccionar mucho más rápidamente cuan-
to más cercano esté al aterrizaje. Consecuentemente, cuanto más alto se encuentre el
UAV, menor deberá ser su velocidad de respuesta para conseguir mantener la PA en el
centro de la imagen.

El ajuste de los parámetros del control PID para cada una de las franjas de altura
se ha llevado a cabo a través de la aplicación de reglas heurı́sticas, esto es:

1. Buscando primero la Kp que proporciona la respuesta deseada (manteniendo Ki


y Kd a cero);

52
6.2 Control PID adaptativo

2. Incrementando después de manera progresiva la Ki para anular el error de posi-


ción, al mismo que tiempo que disminuyendo ligeramente la Kp con el objetivo
de que el sistema no se haga inestable;

3. Y, finalmente, aumentando la Kd para que la respuesta del sistema sea más rápida,
manteniendo los valores de Kp y Ki obtenidos en los dos pasos anteriores.

Además de la correcta aplicación de estas reglas, es necesario en todo momento


tener en cuenta cuáles son los efectos de cada una de las tres acciones. En el Cuadro 6.1
se pueden observar los efectos correspondientes a cada acción: proporcional, integral o
derivativa.

Aumento de Kp Aumento de Ki Aumento de Kd


Rapidez del sistema ↑ ↓ ↑
Estabilidad del sistema ↓ ↓ ↑

Cuadro 6.1: Reglas generales para el ajuste heurı́stico. Nótese la existencia de


excepciones a estas reglas.

6.2.4. Aplicación en el sistema simulado

Tras la aplicación de las técnicas heurı́sticas descritas, los valores obtenidos para las
diferentes franjas de altura de vuelo en el sistema simulado se muestran en el Cuadro
6.2. Nótese que no se ha hecho distinción alguna entre los ejes x e y del UAV, ya que
las dinámicas del vehı́culo respecto de dichos ejes son prácticamente iguales.

10 - 4 m 4 - 3.5 m 3.5 - 3 m 3-2m 2-1m <1m


Kp 0.19 0.24 0.32 0.33 0.35 0.36
Ki 0.0014 0.014 0.014 0.014 0.015 0.017
Kd 0.03 0.12 0.22 0.24 0.26 0.27

Cuadro 6.2: Parámetros del PID en función de la altura - Sistema Simulado

Empleando estos parámetros (ajustados manualmente), se consiguieron resultados


muy precisos. No obstante, se apreció que, quizás, una variación lineal o incluso ex-
ponencial de estos parámetros con la altura podrı́a proporcionar resultados incluso

53
6. ALGORITMO DE SEGUIMIENTO-ATERRIZAJE

mejores. Finalmente, y tras estudiar que era preferible que los parámetros no cambia-
ran demasiado rápido a alturas elevadas y sı́ cuando el UAV estuviera muy cerca del
aterrizaje, se optó por calcular la función exponencial con la altura que mejor ajustara
los parámetros anteriormente obtenidos.

Para ello, y para cada una de las constantes (Kp , Ki y Kd ), se partió de dos valores
conocidos: los valores de la constante en cuestión a una altura de 6 y 0.5 m con res-
pecto a la PA. Estos valores representaban, respectivamente, la atura de vuelo para el
seguimiento y la altura a la que el UAV apagaba sus motores para finalizar el aterrizaje.

Asimismo, y debido a que se requerı́a que, a mayor altura, menores fueran los
parámetros, se concluyó que se emplearı́a una función exponencial decreciente con dos
parámetros, Q y T , de la forma mostrada en la expresión 6.4, con Kx el parámetro
del PID en cuestión, Q y T las constantes de la función que se querı́an ajustar y pz la
altura desde la PA al UAV (con pz < = 0).

Kx = Q e−T pz
(6.4)

Para cada una de los parámetros del PID, sustituyendo las parejas de valores (Kx6 ,
pz = 6) y (Kx0,3 , pz = 0,3) en la expresión anterior, se obtuvieron los sistemas de
ecuaciones 6.5, 6.6 y 6.7, que posteriormente habrı́a que resolver.

(
0,36 = Q e−T 0,3
Kp - Sistema de Ecuaciones (6.5)
0,19 = Q e−T 6

(
0,0017 = Q e−T 0,3
Ki - Sistema de Ecuaciones (6.6)
0,0014 = Q e−T 6

(
0,03 = Q e−T 0,3
Kd - Sistema de Ecuaciones (6.7)
0,27 = Q e−T 6

54
6.2 Control PID adaptativo

Resolviendo estos sistemas de ecuaciones, se obtuvieron las expresiones finales de


Kp , Ki y Kd en función de la altura (Expresiones 6.8, 6.9 y 6.10).

Kp Simulación - Expresión Final Kp = 0,32 e−0,106513 pz


(6.8)

Ki Simulación - Expresión Final Ki = 0,0017 e−0,032359 pz


(6.9)

Kd Simulación - Expresión Final Kd = 0,27 e−0,366204 pz


(6.10)

Con respecto a la velocidad de descenso durante el aterrizaje, esta se mantendrá a


un valor constante de 0.3 m/s hasta encontrarse a 2m por encima de la PA. Cuando se
encuentre por debajo de los 2m, su velocidad será menor (de 0,3m/s), de manera que
el acercamiento y posicionamiento final pueda darse con mayor precisión. Finalmente,
y para recrear lo que ocurrirá después en el sistema real, a 0.3 m de la PA, la velocidad
de descenso del UAV será de 1 m/s. Con esto se intenta simular el apagado de los
motores que se ha de llevar a cabo en el AR Drone 2.0 para poder finalizar el aterrizaje
correctamente.

6.2.5. Aplicación en el sistema real

Con respecto a las constantes empleadas en la plataforma real (AR Drone 2.0),
estas no son las mismas que para la simulación (véase Cuadro 6.3), debido a que la
masa del AR Drone 2.0 con carcasa de interior es mayor que la que posee el modelo
de la simulación. En concreto, se ha reducido a cero la acción integral y aumentado la
derivativa y proporcional, con el fin de obtener una respuesta lo suficientemente rápida.

10 - 4 m 4 - 3.5 m 3.5 - 3 m 3-2m 2-1m <1m


Kp 0.26 0.27 0.32 0.56 0.59 0.67
Ki 0 0 0 0 0 0
Kd 0.2 0.23 0.28 0.37 0.42 0.53

Cuadro 6.3: Parámetros del PID en función de la altura -Sistema Real

Siguiendo el mismo proceso descrito para el sistema simulado, en el sistema real se


obtuvieron las siguientes expresiones para Kp , Ki y Kd (Expresiones 6.11, 6.12 y 6.13).

55
6. ALGORITMO DE SEGUIMIENTO-ATERRIZAJE

Resolviendo estos sistemas de ecuaciones, se obtuvieron las expresiones finales de


Kp , Ki y Kd en función de la altura (Expresiones 6.8, 6.9 y 6.10).

Kp Real- Expresión Final Kp = 0,67 e−0,157766 pz


(6.11)

Ki Real- Expresión Final Ki = 0 (6.12)

Kd Real - Expresión Final Kd = 0,53 e−0,162427 pz


(6.13)

Con respecto a la velocidad de descenso durante el aterrizaje, la estrategia a seguir


será la misma que en la simulación. La única diferencia ahora será que, cuando el UAV
se encuentre a 0.3 m por de la PA y solo si está correctamente centrado con respecto a
la misma, apagará sus motores.

6.3. Control PID predictivo

En esta sección se presenta un segundo algoritmo de seguimiento-aterrizaje basado


en la combinación de un control PID con un Filtro de Kalman. Con la adicción de
esta acción predictiva (Filtro de Kalman) se pretende mejorar el aterrizaje cuando la
plataforma terrestre móvil se encuentra describiendo trayectorias circulares o incluso
aleatorias.

Primeramente, se expondrá brevemente en qué consiste un Filtro de Kalman, pa-


ra después mostrar cómo se ha adaptado el algoritmo de predicción desarrollado por
Garzón (2) en el sistema tratado en la sección anterior (véase Sección 6.2).

6.3.1. Filtro de Kalman - Teorı́a básica

En el año 1960, Rudolf E. Kalman desarrolla un algoritmo que permite identificar


el estado oculto (no medible) de un sistema dinámico lineal. Aunque es similar en gran
medida al observador de Luenberger, sirve además cuando el sistema está sometido a
ruido blanco aditivo. De esta manera, la diferencia principal entre ambos algoritmos es
que en el observador de Luenberger la ganancia K de realimentación del error debe ser

56
6.3 Control PID predictivo

elegida “a mano”, mientras que el filtro de Kalman escoge esta de forma óptima gracias
a que se conocen las varianzas de los ruidos que afectan al sistema.

Por otro lado, ya que el filtro de Kalman es un algoritmo recursivo, este puede correr
en tiempo real usando únicamente las mediciones de entrada actuales, el estado calcu-
lado previamente y su matriz de incertidumbre, sin requerir ningua otra información
pasada adicional 1 .

6.3.1.1. Descipción matemática del Filtro de Kalman

El Filtro de Kalman es un proceso matemático iterativo, lineal y gaussiano que se


desarrolla fundamental en dos etapas:

1. Estimación antes de la medida.

2. Actualización.

A continuación, se definirán los conceptos y funciones sobre los que se fundamenta


el algoritmo.

Sea x la variable de estado y z la variable de las observaciones, siguiendo ambas


una distribución Gaussiana y definidas según las expresiones 6.14 y 6.15.

Función de transición:

xk = A xk−1 + B uk + wk−1 (6.14)

Función de observación:

zk = H xk + vk (6.15)

Donde A, B y H son constantes. La matriz A relaciona el estado actual con el


estado anterior; la matriz B refleja la influencia del input de control, u; finalmente, la
matriz H refleja la obtención de la medida, z, a partir del estado, x. Por otro lado,
1
Información obtenida de https://es.wikipedia.org/wiki/Filtro_de_Kalman

57
6. ALGORITMO DE SEGUIMIENTO-ATERRIZAJE

wt y vt son los términos que representan el ruido, con media cero y covarianza Q y
R respectivamente. De esta forma, la matriz Q representa la covarianza del ruido del
modelo, mientras que la matriz R refleja la convarianza del ruido de la observación.

A continuación, se explican en detalle los dos pasos anteriormente mencionados.

1. Estimación antes de la medida

En esta primera fase, se calcula la predicción o estimación de la variable de estado,


x̂−
k, a través de la aplicación de la expresión 6.14. Este cálculo se muestra en la expre-
sión 6.16.

x̂− −
k = A x̂k−1 + B uk (6.16)

Asimismo, se estima el valor de la matriz de covarianza del error, Pk− , a través de


la aplicación de la expresión 6.17, que resulta a su vez de la resolución de un problema
de mı́nimos cuadrados.

Pk− = A Pk−1 AT + Q (6.17)

En la Figura 6.2 se muestra un esquema de esta fase de predicción. El cı́rculo azul


más pequeño representa el estado actual, con una confianza caracterizada por la matriz
de covarianza del error Pk−1 . La flecha hacia el otro cı́rculo más grande indica el cálculo
de la estimación del estado futuro. Nótese que la confianza de la estimación, Pk− , es
menor que la del estado actual. Por ello, el cı́rculo que caracteriza el estado futuro posee
un diámero mayor, indicando ası́ la mayor incertidumbre existente en la estimación.

Asimismo, cuanto mayor sea la matriz de covarianzas del modelo, Q, mayor será la
matriz de covarianza del error, P . Es decir, el grado de confianza con el que afirmar la

58
6.3 Control PID predictivo

bondad de la estimación realizada será menor cuanto menos precisa sea la función de
transición 6.14. De igual forma, cuanto mayor sea la matriz de covarianza del error en
el estado actual, Pk−1 , mayor será la del estado estimado, Pk− .

Figura 6.2: Fase de predicción del Filtro de Kalman.


Fuente: Apuntes sobre Robots Móviles - Módulo XI - Jaime del Cerro - ETSI Industriales UPM.

2. Actualización

Tras un primer paso en el que se predice el estado futuro, x̂−


k , ası́ como la incerti-
dumbre de esta estimación, Pk− , cuando se llega al instate de tiempo t = k, el algoritmo
actualizará estos valores. En concreto, el cálculo de la variable de estado, x̂k , se llevará a
cabo gracias al conocimiento de la variable de observaciones en ese instante t = k, esto
es, zk , a la estimación de la variable de estado realizada en la etapa de predicción, x̂−
k,
y a la ganancia del filtro o matriz K en el instate t = k. Esta relación puede observarse
en la expresión 6.18.

x̂k = x̂− −

k + Kk zk − H x̂k (6.18)

59
6. ALGORITMO DE SEGUIMIENTO-ATERRIZAJE

De esta forma, el valor actualizado de la variable de estado, x̂k , es el resultado de


dos efectos: por un lado, la estimación antes de la medida; por otro, el producto de la
ganancia del filtro, Kk , multiplicado por la innovación debida a la medida, (zk − H x̂−
k ).
Este último término (la innovación por la medida) representa el error cometido en la
predicción de la observación.

El paso previo al cálculo del nuevo estado, x̂k , será la obtención de la ganancia del
filtro, Kk , a través de la expresión 6.19.

−1
Kk = Pk− H T HPk− H T + R (6.19)

Nótese cómo la ganancia del filtro depende de la incertidumbre en la estimación,


Pk− , de la matriz H (relacionada con la función de observación) y de la matriz de co-
varianza del ruido de la observación, R. Una forma más abstracta de comprender el
significado de la ganancia del filtro es a través de la expresión 6.20.

Errorestimacion
K= (6.20)
Errorestimacion + Errormedida

Donde las variables Errorestimacion y Errormedida dependen directamente de las


matrices Pk− y R respectivamente.

En definitiva, la actualización del estado dependerá de estos dos errores, pudiéndose


obtener las siguientes conclusiones al respecto:

La ganancia del filtro, K, será más próxima a la unidad cuanto mayor sea la
incertidumbre en la estimación del estado futuro, esto es, cuanto mayor sea la
matriz Pk− . Consecuentemente, cuanto mayor sea la ganancia de filtro, mayor
importancia se dará al término de la innovación en la medida en la expresión 6.18
y menos se tendrá en cuenta la aportación de la predicción. En resumen, cuanto
mayor sea la incertidumbre en la estimación, más importancia se le dará a la
observación o medida.

60
6.3 Control PID predictivo

Por el contrario, cuanto mayor sea la matriz de covarianza del ruido de la obser-
vación, R, menor será K y, en consecuencia, menor la influencia del término de la
innovación por la medida. En tal caso, la actualización del estado se verá afectada
principalmente por la estimación del estado realizada en el primer paso, x̂−
k.

En la Figura 6.3 se muestra en forma de esquema un resumen sobre lo tratado en


esta segunda fase de atualización.

Figura 6.3: Fase de actualización del Filtro de Kalman.


Fuente: Apuntes sobre Robots Móviles - Módulo XI - Jaime del Cerro - ETSI Industriales UPM.

6.3.2. Desarrollo del algoritmo

Este segundo algoritmo de seguimiento-aterrizaje desarrollado está basado en la


combinación de un regulador PID con un Filtro de Kalman. Para ello, ha sido necesario
la adaptación al sistema del algoritmo de predicción de personas desarollado por Garzón
et al. (2)).

El funcionamiento del sistema resultante es el siguiente:

61
6. ALGORITMO DE SEGUIMIENTO-ATERRIZAJE

1. Se transforma la posición de la PA (calculada en la fase detección-localización)


del sistema de referencia de la cámara al sistema del mundo.

2. Se envı́a después la nueva posición al Filtro de Kalman, el cual devuelve la posición


futura del centroide de la PA referida al sistema del mundo.

3. Posteriormente, esta se transforma al sistema del cuerpo del UAV.

4. Finalmente, se emplea la posición obtenida para calcular el error de posición


(distancia entre el UAV y la posición predicha de la PA). Como en el algoritmo
con Control PID adaptativo, ahora también se empleará dicho error para calcular
los comandos de velocidad en x y en y que hagan que este converja a cero.

Gracias a la acción predictiva, se facilita el seguimiento y, principalmente, el ate-


rrizaje, ya que el UAV puede posicionarse ligeramente por delante de la PA momentos
antes de la aproximación final y ası́ completar el aterrizaje con mayor precisión.

6.3.3. Integración del algoritmo de predicción

Con respecto al algoritmo de detección empleado, se quiere destacar que se basa en


la generación de un path o vector de posiciones futuras ordenadas en el tiempo. Los
parámetros de configuración más interesantes de cara a su integración en el sistema de
seguimiento-aterrizaje son los siguientes:

path time: indica al algoritmo el tiempo total en segundos de la predicción, es


decir, cuánto tiempo por delante se necesita que prediga el algoritmo. Cuanto
mayor sea este valor, menor será la fiabilidad del último valor del path, a no ser
que la trayectoria seguida por la PA sea totalmente rectilı́nea. En cualquier otro
caso, este valor deberı́a ser cercano a los 3 − 4s.

step: es el tiempo en segundos entre las posiciones del vector del path para un
mismo ciclo de predicción.

pub freq : representa la frecuencia en Hz a la cual el algoritmo de predicción


publicará la información calculada.

62
6.4 Control de altura - Relocalización de la PA

Tras realizar los cálculos necesarios, el Filtro de Kalman habrá generado el mencio-
nado vector de posiciones futuras. En este caso, y de cara al algoritmo de seguimiento-
aterrizaje, se tomará solamente el último valor de dicho vector, que corresponderá a la
posición futura de la PA dentro de un tiempo definido por path time. Es importante
hacer notar que esta posición está referida al sistema de referencia del mundo.

6.3.4. Seguimiento con predicción

Una vez generada dicha posición futura de la PA y tras referirla al sistema de


referencia del cuerpo del quadrotor, será con esta posición con la que el control PID
trabaje para generar una velocidad en x y otra en y para el UAV. De esta manera,
durante el estado de TRACKING, este se mantendrá siempre ligeramente por delante
de la PA.

6.3.5. Aterrizaje con predicción

Posteriormente, y tras pulsar el usuario el botón de aterrizaje, el UAV pasará al es-


tado de LANDING y, de la misma manera que ocurrı́a con el algoritmo sin predicción,
el control PID en el plano xy del UAV seguirá funcionando paralelamente al control en
altura en el eje z.

La diferencia ahora es que a medida que el UAV descienda, será necesario que
el sistema vaya actualizando automáticamente el parámetro path time. En concreto, se
irá reduciendo según una función lineal. Esto es ası́ debido a que, cuanto más bajo vuele
el UAV, menor campo visual tendrá, y, en consecuencia, la predicción solo será fiable
del orden de 0,5 a 2s por delante en el tiempo. Experimentalmente, se concluyó que
este valor de path time debe ir reduciéndose de manear lineal desde un máximo de 6 s
hasta un mı́nimo de 0.5 s, que coincidirá con el momento en que el UAV apague sus
motores y concluya, por fin, su aterrizaje con éxito.

6.4. Control de altura - Relocalización de la PA

Englobado dentro del algoritmo del seguimiento-aterrizaje y corriendo paralela-


mente a la “máquina de estados”, el quadrotor cuenta con un control de altura que le
permite, entre otras tareas, relocalizar la PA tras perder el contacto visual con esta.

63
6. ALGORITMO DE SEGUIMIENTO-ATERRIZAJE

Esta maniobra de relocalización puede lanzarse desde distintas situaciones. Esto es,
el sistema pasará al estado de SEARCHING de forma automática si:

Durante el estado de TRACKING, el tiempo entre el instante actual y el instante


en el cual se recibió la última posición de la PA (found time) es mayor que 1.5 s.

Durante el estado de LANDING, el tiempo entre el instante actual y el instante


en el cual se recibió la última posición de la PA (found time) es mayor que 1.5 s.

Asimismo, y como se ha ido mencionando a lo largo de las secciones anteriores,


este control de altura es el encargado de asignar una velocidad de descenso según el
eje z del quadrotor en función de la altura a la que se encuentre, ası́ como de variar
los parámetros del PID en el control PID adaptativo y los del Filtro de Kalman en el
control PID predictivo.

64
7

Metodologı́a

7.1. Introducción

Anteriormente (véase Sección 4.2 - Software), se detallaron las caracterı́sticas más


importantes de ROS, framework bajo el que se ha realizado el trabajo. En este capı́tulo,
y tras haber sido explicados los algoritmos de detección-localización y de seguimiento-
aterrizaje, se mostrará cómo han sido implementados estos en ROS.

Algo que se debe tener en cuenta en todo momento es la gran modularidad de este
pseudo-Sistema Operativo. Ello ha favorecido el que partes del código desarrollado en
este proyecto puedan ser aprovechadas en un futuro para tareas similares pero no ne-
cesariamente las mismas que las tratadas aquı́. No solo eso, sino que lo que se consigue
con ROS es no depender del Hardware, pudiendo utilizar diferentes ordenadores, inclu-
so con diferentes arquitecturas. Esto es ası́ gracias a que los nodos que conforman el
sistema se desarrollan de forma independiente, estando las comunicaciones entre ellos
basadas en una estructura de publicadores y suscriptores. De esta manera, habrá no-
dos que publiquen determinada información en los denominados tópicos, sin tener en
cuenta dichos nodos a quién irá dirigida la información publicada. De la misma mane-
ra, habrá nodos que se suscriban a determinados tópicos para recoger información, de
nuevo sin tener en cuenta de qué nodo puedan provenir los datos adquiridos.

Por último, merece la pena recordar ahora que en ROS los nodos se han de estructu-
rar en los denominados paquetes. Estos paquetes no son más que carpetas que contienen

65
7. METODOLOGÍA

todo la información necesaria sobre un grupo de nodos, como de qué otros paquetes o
librerı́as depende el paquete o incluso los archivos necesarios para la ejecución de los
nodos.

7.2. Implementación en ROS

A continuación se listan los paquetes que se han necesitado en este proyecto:

Drivers para el control de las plataformas robóticas, tanto para el entorno simu-
lado como para el sistema real.

Elaboración de un paquete propio para la creación del entorno simulado, ası́ como
para el lanzamiento de los modelos de robot terrestre y aéreo. En particular, el
modelo del robot terrestre (Summit XL) tuvo que ser modificado a partir del que
proporcionaba la firma Robotnik, a fin de poder incluir sobre él una plataforma
de aterrizaje.

Elaboración de un paquete propio que incluye los algoritmos de detección-localización


y de seguimiento-aterrizaje, de nuevo tanto para el sistema simulado como para
el real, ası́ como un ejecutable que permite la teleoperación de los robots.

La manera de lanzar todos los procesos necesarios es a través de archivos XML


denominados launcher, o lanzadores. En ellos se detalla qué nodos han de ser lanzados
y se configuran los parámetros necesarios para el correcto funcionamiento del sistema.
La ventaja de estos launchers es que no requieren ser recompilados, de manera que
una estrategia recomendable de trabajo en ROS es emplear estos lanzadores para pa-
sar parámetro a los nodos que sean susceptibles de ser modificadas a menudo. Ası́, se
evita el tener que recompilar todo el sistema cada vez que se modifique el valor de una
varible, como pueden ser las constantes del PID o la covarianza en la medida para el
filtro de Kalman (véase Capı́tulo 6).

Existe otra forma incluso más efectiva de modificar los parámetros de ROS, deno-
minada dynamic reconfiguration, que permite al usuario del sistema la modificación de
parámetros al mismo tiempo que el código se encuentra en ejecución. La instalación y
configuración de esta herramienta no es inmediata, y requiere la escritura de archivos

66
7.2 Implementación en ROS

de configuración (archivos .cfg) y la vinculación de estos al nodo ROS cuyos paráme-


tros se quiere modificar. Sin embargo, una vez implementada esta herramienta en el
sistema, las tareas de ajuste de parámetros se agilizan enormemente. Las constantes
del PID o la covarianza de las observaciones en el filtro de Kalman son algunos de los
parámetros cuyo ajuste se ve verdaderamente simplificado empleando esta herramienta.

En lo que resta de capı́tulo se detallará el entramado de conexiones entre nodos y


tópicos ROS. No obstante, y para una correcta comprensión de dicha red de conexiones,
se ha de mostrar primero cómo funciona la herramienta tf de ROS, imprescindible para
la comunicación entre nodos ROS que trabajan con sistemas de referencia distintos.

7.2.1. Herramienta de transformaciones - tf

El paquete de transformaciones tf permite al usuario de ROS modificar el sistema


de referencia respecto al cual se encuentra referido un punto o un vector en el espacio.
Para ello, el paquete mantiene una relación entre los distintos sistemas de referencia o
frames de cada uno de los robots lanzados, ası́ como de cada uno de los dispositivos
instalados en los mismos. Es decir, las cámaras, los láseres o incluso las propias ruedas
de los robots suelen tener asociado un frame, y se organizan siguiendo una estructura
en forma de árbol. En las Figuras 7.1 y 7.2 se muestran los modelos de las plataformas
robóticas empleadas en el proyecto y los distintos ejes coordenados pertenecientes a las
mismas.

Es importane destacar que el árbol de sistemas de referencia sigue ciertas directrices


que el programador del sistema ha de tener siempre en cuenta. A continuación se listan
dichas directrices:

Siempre ha de existir un frame origen o principal, respecto al cual estén referidos


el resto de frames hijos.

Cada frame está referenciado a un frame padre, con respecto al cual el paquete
tf es capaz de calcular la matriz de transformación.

Cada frame hijo posee solo un frame padre, mientras que un mismo frame padre
puede poseer varios frames hijo.

67
7. METODOLOGÍA

Figura 7.1: Sistemas de ejes coordenados pertenecientes al modelo simulado del Summit
XL.

Figura 7.2: Sistemas de ejes coordenados pertenecientes al modelo simulado del quadrotor.

A través de la ejecución del nodo ROS view frames, perteneciente al paquete tf, el
usuario del sistema es capaz de generar un archivo pdf en el cual se muestra el árbol
de sistemas de referencia completo. Cada frame se encuentra enmarcado en una elipse;
además, se muestra cierta información adicional sobre los mismos, como quién es el
broadcaster de cada frame, esto es, cuál es el nodo ROS que lo está publicando.

68
view_frames Result

Recorded at time: 245.904

centre

Broadcaster: /summit_tf_publisher Broadcaster: /quadrotor_tf_publisher


Average rate: 20.103 Hz Average rate: 20.070 Hz
Most recent transform: 245.954 ( -0.050 sec old) Most recent transform: 245.936 ( -0.032 sec old)
Buffer length: 4.875 sec Buffer length: 4.883 sec

odom world

Broadcaster: /gazebo Broadcaster: /quadrotor/ground_truth_to_tf


Average rate: 100.203 Hz Average rate: 100.204 Hz
Most recent transform: 245.895 ( 0.009 sec old) Most recent transform: 245.891 ( 0.013 sec old)
Buffer length: 4.920 sec Buffer length: 4.910 sec

summit_xl/base_footprint base_footprint

Broadcaster: /summit_xl/summit_state_publisher Broadcaster: /quadrotor/ground_truth_to_tf


Average rate: 50.203 Hz Average rate: 100.204 Hz
Most recent transform: 246.392 ( -0.488 sec old) Most recent transform: 245.891 ( 0.013 sec old)
Buffer length: 4.920 sec Buffer length: 4.910 sec

69
summit_xl/base_link base_stabilized

Broadcaster: /summit_xl/summit_state_publisher Broadcaster: /summit_xl/summit_state_publisher Broadcaster: /summit_xl/summit_state_publisher Broadcaster: /summit_xl/summit_state_publisher Broadcaster: /summit_xl/summit_state_publisher Broadcaster: /summit_xl/summit_state_publisher Broadcaster: /quadrotor/ground_truth_to_tf
Average rate: 50.203 Hz Average rate: 50.203 Hz Average rate: 50.203 Hz Average rate: 50.203 Hz Average rate: 50.203 Hz Average rate: 50.203 Hz Average rate: 100.204 Hz
Most recent transform: 246.392 ( -0.488 sec old) Most recent transform: 246.392 ( -0.488 sec old) Most recent transform: 245.900 ( 0.004 sec old) Most recent transform: 245.900 ( 0.004 sec old) Most recent transform: 245.900 ( 0.004 sec old) Most recent transform: 245.900 ( 0.004 sec old) Most recent transform: 245.891 ( 0.013 sec old)
Buffer length: 4.920 sec Buffer length: 4.920 sec Buffer length: 4.920 sec Buffer length: 4.920 sec Buffer length: 4.920 sec Buffer length: 4.920 sec Buffer length: 4.910 sec

summit_xl/landing_platform_link summit_xl/platform_cylinder_link summit_xl/back_left_wheel summit_xl/back_right_wheel summit_xl/front_left_wheel summit_xl/front_right_wheel base_link

Broadcaster: /quadrotor/robot_state_publisher_quadrotor Broadcaster: /quadrotor/robot_state_publisher_quadrotor


Average rate: 50.213 Hz Average rate: 50.213 Hz
Most recent transform: 246.394 ( -0.490 sec old) Most recent transform: 246.394 ( -0.490 sec old)
Buffer length: 4.919 sec Buffer length: 4.919 sec

downward_cam_link sonar_link

Broadcaster: /quadrotor/robot_state_publisher_quadrotor
Average rate: 50.213 Hz
Most recent transform: 246.394 ( -0.490 sec old)
Buffer length: 4.919 sec

downward_cam_optical_frame

Figura 7.3: Árbol final de frames del sistema simulado.


7.2 Implementación en ROS
7. METODOLOGÍA

Con el único propósito de mostrar un esquema general del árbol de frames del siste-
ma simulado, en la Figura 7.3 se muestran las uniones y caracterı́sticas de los mismos,
tanto para el modelo simulado del Summit XL como para el del UAV empleado. Nótese
que todos los frames se encuentran referidos a un mismo frame origen denominado
/centre. Este último tuvo que ser generado por el autor con el fin de que ambas plata-
formas robóticas estuvieran referidas a un mismo sistema de referencia.

Se muestra a continuación el árbol de frames de la plataforma terrestre (véase


Figura 7.4) y de la aérea (véase Figura 7.5) en el sistema simulado. Se muestra también
el árbol correspondiente a la plataforma aérea real AR Drone 2.0 (véase Figura 7.6).

70
view_frames Result

Recorded at time: 15.099

odom

Broadcaster: /gazebo
Average rate: 100.201 Hz
Most recent transform: 15.095 ( 0.004 sec old)
Buffer length: 4.970 sec

summit_xl/base_footprint

71
Broadcaster: /summit_xl/summit_state_publisher
Average rate: 50.202 Hz
Most recent transform: 15.592 ( -0.493 sec old)
Buffer length: 4.960 sec

summit_xl/base_link

Broadcaster: /summit_xl/summit_state_publisher Broadcaster: /summit_xl/summit_state_publisher Broadcaster: /summit_xl/summit_state_publisher Broadcaster: /summit_xl/summit_state_publisher Broadcaster: /summit_xl/summit_state_publisher Broadcaster: /summit_xl/summit_state_publisher
Average rate: 50.202 Hz Average rate: 50.202 Hz Average rate: 50.202 Hz Average rate: 50.202 Hz Average rate: 50.202 Hz Average rate: 50.202 Hz
Most recent transform: 15.592 ( -0.493 sec old) Most recent transform: 15.592 ( -0.493 sec old) Most recent transform: 15.080 ( 0.019 sec old) Most recent transform: 15.080 ( 0.019 sec old) Most recent transform: 15.080 ( 0.019 sec old) Most recent transform: 15.080 ( 0.019 sec old)
Buffer length: 4.960 sec Buffer length: 4.960 sec Buffer length: 4.940 sec Buffer length: 4.940 sec Buffer length: 4.940 sec Buffer length: 4.940 sec

summit_xl/landing_platform_link summit_xl/platform_cylinder_link summit_xl/back_left_wheel summit_xl/back_right_wheel summit_xl/front_left_wheel summit_xl/front_right_wheel

Figura 7.4: Árbol final de frames de la plataforma robótica terrestre.


7.2 Implementación en ROS
7. METODOLOGÍA

view_frames Result

Recorded at time: 11.738

world

Broadcaster: /ground_truth_to_tf
Average rate: 100.202 Hz
Most recent transform: 11.722 ( 0.016 sec old)
Buffer length: 4.940 sec

base_footprint

Broadcaster: /ground_truth_to_tf
Average rate: 100.202 Hz
Most recent transform: 11.722 ( 0.016 sec old)
Buffer length: 4.940 sec

base_stabilized

Broadcaster: /ground_truth_to_tf
Average rate: 100.202 Hz
Most recent transform: 11.722 ( 0.016 sec old)
Buffer length: 4.940 sec

base_link

Broadcaster: /robot_state_publisher_quadrotor Broadcaster: /robot_state_publisher_quadrotor


Average rate: 50.202 Hz Average rate: 50.202 Hz
Most recent transform: 12.220 ( -0.482 sec old) Most recent transform: 12.220 ( -0.482 sec old)
Buffer length: 4.940 sec Buffer length: 4.940 sec

downward_cam_link sonar_link

Broadcaster: /robot_state_publisher_quadrotor
Average rate: 50.202 Hz
Most recent transform: 12.220 ( -0.482 sec old)
Buffer length: 4.940 sec

downward_cam_optical_frame

Figura 7.5: Árbol final de frames de la plataforma robótica aérea.

72
7.2 Implementación en ROS

view_frames Result

Recorded at time: 1468409371.395

ardrone_base_link

Broadcaster: /ardrone_driver Broadcaster: /ardrone_driver


Average rate: 10.204 Hz Average rate: 10.204 Hz
Most recent transform: 1468409371.350 ( 0.045 sec old) Most recent transform: 1468409371.350 ( 0.045 sec old)
Buffer length: 4.900 sec Buffer length: 4.900 sec

ardrone_base_frontcam ardrone_base_bottomcam

Figura 7.6: Árbol final de frames del AR Drone 2.0 (sistema real)

73
7. METODOLOGÍA

7.2.2. Nodos, tópicos y servicios

A continuación, se muestra el listado de tópicos y el de nodos activos durante la


ejecución del sistema real. Nótese que, para el sistema simulado, en el listado de tópicos
simplemente habrı́a que sustituir el namespace /ardrone/...”por el de /quadrotor/...”.
Esto es ası́ debido a que no se dispone de un modelo simulado exacto del AR Drone,
habiéndose empleado en su defecto uno génerico. Con respecto al listado de nodos del
sistema simulado, las diferencia serı́an mı́nimas. Bastarı́a con eliminar la partı́cula -
eal”del nombre de los nodos en el sistema real para obtener ası́ el listado de nodos del
sistema simulado.

Tópicos en el sistema real


/ardrone/bottom/camera info
/ardrone/bottom/image raw
/ardrone/bottom/image raw/compressed
/ardrone/bottom/image raw/compressed/parameter descriptions
/ardrone/bottom/image raw/compressed/parameter updates
/ardrone/bottom/image raw/compressedDepth
/ardrone/bottom/image raw/compressedDepth/parameter descriptions
/ardrone/bottom/image raw/compressedDepth/parameter updates
/ardrone/bottom/image raw/theora
/ardrone/bottom/image raw/theora/parameter descriptions
/ardrone/bottom/image raw/theora/parameter updates
/ardrone/camera info
/ardrone/emergency topic
/ardrone/front/camera info
/ardrone/front/image raw
/ardrone/front/image raw/compressed
/ardrone/front/image raw/compressed/parameter descriptions
/ardrone/front/image raw/compressed/parameter updates
/ardrone/front/image raw/compressedDepth
/ardrone/front/image raw/compressedDepth/parameter descriptions
/ardrone/front/image raw/compressedDepth/parameter updates

74
7.2 Implementación en ROS

/ardrone/front/image raw/theora
/ardrone/front/image raw/theora/parameter descriptions
/ardrone/front/image raw/theora/parameter updates
/ardrone/image raw
/ardrone/image raw/compressed
/ardrone/image raw/compressed/parameter descriptions
/ardrone/image raw/compressed/parameter updates
/ardrone/image raw/compressedDepth
/ardrone/image raw/compressedDepth/parameter descriptions
/ardrone/image raw/compressedDepth/parameter updates
/ardrone/image raw/theora
/ardrone/image raw/theora/parameter descriptions
/ardrone/image raw/theora/parameter updates
/ardrone/imu
/ardrone/land
/ardrone/landing topic
/ardrone/mag
/ardrone/navdata
/ardrone/odometry
/ardrone/raw imu
/ardrone/reset
/ardrone/takeoff
/ardrone/takeoff topic
/ardrone/tracking topic
/cancel hovering/current status
/cmd vel
/diagnostics
/image converter/output video
/image converter/output video/compressed
/image converter/output video/compressed/parameter descriptions
/image converter/output video/compressed/parameter updates
/image converter/output video/compressedDepth
/image converter/output video/compressedDepth/parameter descriptions

75
7. METODOLOGÍA

/image converter/output video/compressedDepth/parameter updates


/image converter/output video/theora
/image converter/output video/theora/parameter descriptions
/image converter/output video/theora/parameter updates
/joy
/platform/estimated position
/platform tracking real/parameter descriptions
/platform tracking real/parameter updates
/rosout
/rosout agg
/tf
/tf static

Nodos activos en el Algoritmo de Control PID adaptativo


/platform detection real (véase subapartado 7.2.2.1)
/platform tracking real no pred (véase subapartado 7.2.2.2)
/ardrone driver (véase subapartado 7.2.2.5)
/joy node
/ardrone teleop (véase subapartado 7.2.2.6)
/summit moves (véase subapartado 7.2.2.7)
/rosout

Nodos activos en el Algoritmo de Control PID predictivo


/platform detection real (véase subapartado 7.2.2.1)
/platform tracking real (véase subapartado 7.2.2.2)
/pos transformer (véase subapartado 7.2.2.3)
/prediction kalman node (véase subapartado 7.2.2.4)
/ardrone driver (véase subapartado 7.2.2.5)
/joy node
/ardrone teleop (véase subapartado 7.2.2.6)
/summit moves (véase subapartado 7.2.2.3)
/rosout

76
7.2 Implementación en ROS

A modo de ejemplo, y para una mejor comprensión de las interacciones entre los
distintos nodos ROS, ası́ como de los tópicos a través de los cuales dichos nodos se
comunican, se ha elaborado el esquema mostrado en la Figura 7.7. Representa el en-
tramado de nodos y tópicos del sistema real cuando se emplea como algoritmo de
seguimiento-aterrizaje el basado en un control PID adaptativo. Las elipses contienen
nodos ROS (como /ardrone driver ), mientras que los tópicos ROS (como /joy) se en-
cuentran recuadrados. Nótese que los nodos /ardrone teleop, /platform detection real y
/platform tracking real han sido desarrollados por el autor.

Figura 7.7: Entramado de nodos, tópicos y servicios en el sistema real con Control PID
adaptativo.

Es importante recordar ahora que la comunicación entre nodos ROS a través de los

77
7. METODOLOGÍA

topicos ROS se lleva a cabo empleando principalmente dos elementos: los publicadores
ROS y los suscriptores ROS. Ambos son variables que el programador del sistema ha de
declarar en su nodo en caso de necesitar publicar en un tópico o suscribirse a determi-
nada información que esté siendo publicada en un tópico. De cualquier forma, un nodo
podrá contener solamente publicadores, solamente suscriptores, una mezcla de ambos,
o incluso no poseer ninguno de estos elementos, aunque este último caso no suele ser
habitual en proyectos de gran embergadura.

A continuación, se explican en detalle los distintos nodos que conforman el sistema


desarrollado en este proyecto. Además, se detallan exactamente cuáles son los tópicos
a los que se suscribe cada nodo y cuáles los tópicos donde publica cada uno de ellos.

7.2.2.1. Nodo de detección-localización

El nodo ROS denominado /platform detection real (véase de nuevo la Figura 7.7)
es donde se ha implementado el algoritmo de detección-localización de la plataforma
de aterrizaje.

Como datos de entrada, este nodo ROS recibe el feed de la cámara ventral del
vehı́culo aéreo y los propios parámetros de calibración de dicha cámara, ası́ como la
altitud de vuelo o los datos de la IMU (en castellano, Unidad de Medición Inercial).
Estos dos últimos serán necesarios para un correcto tratamiento de las imágenes reci-
bidas, ya que, por ejemplo, permitirán descartar aquellas que hayan sido obtenidas en
instantes en los que la inclinación del UAV en x o en y era excesiva.

Posteriormente, se hallará la posición del centroide de la plataforma de aterrizaje


con respecto al frame de la cámara y se almacenará en un mensaje ROS de tipo Po-
seStamped. Además de poder registrar la posición, este tipo de mensaje cuenta, como
la gran mayorı́a de los mensajes ROS, con unos atributos o variables que indican el
instante de tiempo en el que se creó dicho mensaje y el frame con respecto al cual se
encuentra referenciada la posición almacenada en él. En este caso, el frame de referencia
es /downward cam optical frame. Finalmente, se publicará este mensaje en un tópico

78
7.2 Implementación en ROS

ROS denominado /platform/estimated position.

7.2.2.2. Nodo de seguimiento-aterrizaje

Como ya se ha visto en el Capı́tulo 6, uno de los objetivos de este proyecto ha sido


evaluar cómo mejora el seguimiento y aterrizaje de un UAV sobre una PA cuando se
pasa de un seguimiento basado en un PID adaptativo a otro basado en el empleo de
una acción predictiva (filtro de Kalman). Es por ello que, igual que en el Capı́tulo 6,
se diferenciará ahora entre un nodo de seguimiento-aterrizaje sin predicción y otro con
una acción predictiva.

Nodo PID adaptativo


Una vez publicada en el tópico ROS /platform/estimated position la posición del
centroide respecto del frame de la cámara del UAV, el nodo de seguimiento-aterrizaje
tomará esta como refrerencia para la sub-tarea de seguimiento. Esto es posible gracias
a que dicho nodo (denominado /platform tracking real no pred en el entramado de no-
dos y tópicos) está suscrito al tópico donde se publica la posición. De esta manera,
cada vez que un nuevo mensaje sea publicado, se llamará a una determinada función
(más concretamente, a una determinada callback ) dentro del código del nodo /plat-
form tracking real no pred. Se recuerda que, en ROS (y en programación en general),
las funciones llamadas tras eventos externos al propio entorno o scope donde reside
dicha función se cononcen como callbacks.

Después de recoger la posición de la plataforma de aterrizaje referenciada a la cáma-


ra del UAV, el nodo /platform tracking real no pred se servirá de la herramienta tf para
transformar dicha posición al sistema de referencia del cuerpo de vehı́culo aéreo, cuyo
frame se denomina /base link. Una vez realizada esta transformación, el algoritmo de
seguimiento-aterrizaje se desarrollará tal y como se explicó en el Capı́tulo 6, publicando
los comandos de velocidad necesarios en el tópico /quadrotor/cmd vel.

Nodo PID predictivo


Como ya se vio al comienzo de esta sección, el algoritmo de seguimiento-aterrizaje
con predicción (nodo /platform tracking real ) recibe como entrada la posición futura de

79
7. METODOLOGÍA

la PA referida al sistema del mundo. Sin embargo, antes de ser recibida dicha posición,
la información proveniente del algoritmo de detección-localización fluye por distintos
nodos ROS que se encargan de tratarla correctamente. A continuación se recuerda cuál
es este flujo de información.

Inicialmente, y como ya se ha visto, el nodo de detección-localización (/platform detection real )


genera un punto, que es la posición de la PA con respecto a la cámara. Después, es-
ta información es rescatada por el nodo /pos transformer (se describe en el apartado
siguiente), que se encarga de transformarla al sistema de referencia del mundo. Esto
es necesario debido a que el algoritmo de predición (nodo /prediction kalman node)
necesita trabajar con posiciones referidas a sistemas de referencia inerciales.

Tras realizar los cálculos necesarios, este nodo ROS de predicción habrá generado
el mencionado vector de posiciones futuras. En este caso, y de cara al algoritmo de
seguimiento-aterrizaje (nodo /platform tracking real ), se tomará solamente el último
valor de dicho vector, que corresponderá a la posición futura de la PA dentro de un
tiempo definido por path time (véase Sección 6.3.3 para más información sobre los
parámetros del Filtro de Kalman).

Es importante hacer notar que la posición enviada por el nodo /prediction kalman node
está referida al sistema de referencia del mundo. Por este motivo, el nodo de seguimiento-
aterrizaje /platform tracking real deberá transformarla al frame del cuerpo del UAV
(/base link ). Una vez realizada esta transformación, este nodo de seguimiento-aterrizaje
con acción prediccitva calculará el error de posición (tal y como se explicó en el Capı́tu-
lo 6) y publicará en el tópico /cmd vel las velocidades en x y en y que hay que aplicar
al UAV para hacer converger dicho error a cero.

7.2.2.3. Nodo de transformación de la posición

Como se ha menciondo en la explicación del nodo anterior, este nodo existe tan
solo en el sistema que emplea el control PID predictivo. Es el encargado de suscribirse
a la posición de la PA (publicada por el nodo de detección-localización con respecto
a la cámara del UAV) y transformarla al sistema de referencia del mundo. Para el
sistema simulado, y con el esquema en árbol 7.3 presente, la transformación realizada

80
7.2 Implementación en ROS

es del frame /downward cam optical frame (cámara UAV) al frame /centre (sistema de
referencia inercial que representa el origen de coordenadas del sistema).

7.2.2.4. Nodo del Filtro de Kalman

Como también se ha explicado más arriba, el nodo /prediction kalman node es el


encargado de realizar los cálculos necesarios para obtener la posición futura de la PA
en base a la posición de la misma referida al sistema del mundo en cada instante. Para
ello, emplea varios parámetros (a definir por el usuario), como el parámetro path time,
model covariance y observation covariance, que deberán ser correctamente ajustados.

En particular, y como se explicó en la Sección 6.3.4, el valor de path time deberá ser
recalculado continuamente en función de la altura del UAV con respecto a la PA. Será el
propio nodo de seguimiento-aterrizaje (que es donde corre el sistema de control de
altura), quien recalculará dicho parámetro y lo enviará al nodo de predicción. Ası́, este
último podrá proporcionar predicciones ajustadas y precisas.

7.2.2.5. Nodo del driver del vehı́culo aéreo

Este nodo es el encargado de publicar toda la información relativa al estado del


AR Drone, como por ejemplo la altitud del vehı́culo, los parámetros de ambas cámaras
o los datos de la IMU. Se encarga de gestionar los comandos de velocidad generados
por los nodos de seguimiento-aterrizjae (suscribiéndose al tópico /cmd vel ), ası́ como de
gestionar los servicios de despegue, reseteo del aparato, parada de emergencia, aterrizaje
o flattrim (servicio que recalibra las estimaciones de rotación del UAV asumiendo que
este se encuentra en una superficie plana).

7.2.2.6. Nodo de teleoperación

Fue necesaria la elaboración de un nodo de teleoperación (/ardrone teleop) para la


conversión de los mensajes de tipo ‘joy’ (generados por el usuario al pulsar cualquier
botón del controlador SixAxis y publicados en el tópico /joy) a mensajes de tipo ‘twist’
que, tras ser publicados en el tópico /cmd vel, puedan ser leı́dos por el driver del AR
Drone.

81
7. METODOLOGÍA

7.2.2.7. Nodo de movimiento de la PA (Summit XL)

Tras contemplar la posibilidad de teleoperar la PA (en este caso, el robot terrestre


Summit XL), finalmente se pensó que resultaba de mayor interés el que el sistema UAV-
UGV desarrollado (o también, sistema UAV-PA) pudiera ser completamente autónomo.
De esta manera, se desarrolló el código necesario para que el movimiento de la platafor-
ma robótica terrestre Summit XL fuera programado y no teleoperado. En la Sección 8
se explican en detalle las distintas maniobras y misiones implementadas en este UAV.

Se quiere hacer notar que, debido a problemas en los drivers de los motores del
Summit XL, el movimiento del mismo no era fluido, frenándose en seco a menudo e
impidiendo que el nodo ROS /summit moves se ejecutara con normalidad. Por ello, y
con el objetivo de simplificar y solventar cualquier tipo de problemática a este respecto,
en repetidas ocasiones se tuvo que recurrir a la teleoperación.

82
8

Experimentos y resultados

Debido a que el principal propósito de esta investigación ha sido el aterrizaje de un


vehı́culo aéreo sobre una PA móvil, en la etapa de experimentación sobre las plataformas
reales se decidió facilitar al máximo las tareas de detección, y es que estas estaban
suponiendo un serio obstáculo para la validación de los algoritmos de seguimiento-
aterrizaje. De esta manera, se optó por diseñar un escenario de pruebas sencillo que
contara con un terreno llano y de color uniforme.

8.1. Sistema simulado

8.1.1. Descripción de los experimentos

Las pruebas se realizaron en el simulador Gazebo. Este permite el modelado de


plataformas robóticas muy similares a las reales, pudiéndose obtener ası́ resultados
altamente fiables. En cuanto al escenario, se creó una explanada de asfalto lo sufi-
cientemente grande ((véase Figura 8.1)) como para que la PA pudiera realizar distintas
trayectorias y misiones , las cuales se describen en los apartados 8.1.1.1, 8.1.1.2 y 8.1.1.3.
Será a través de dichas misiones como se podrán poner a prueba los dos algoritmos de
seguimiento-aterrizaje desarrollados.

8.1.1.1. Misión 1: Trayectoria cuadrada

En esta primera misión, la PA decribirá una trayectoria cuadrada de 8x8 m a una


velocidad según su eje x de vx (m/s) (esta velocidad será uno de los parámetros de las

83
8. EXPERIMENTOS Y RESULTADOS

Figura 8.1: Escenario diseñado en el simulador. Se optó por crear una explanada de
asfalto sencilla.

pruebas).

La PA partirá del reposo, ası́ como el UAV, que estará situado sobre la primera.
Tras la señalización del despegue por parte del autor del trabajo, el vehı́culo aéreo
comenzará su fase de ascenso hasta una altura prefijada de 6 m. Por su parte, la PA
también habrá empezado a moverse. Al alcanzar el UAV la altura indicada, detectará la
PA y comenzará a seguirla. Tras un determinado tiempo en modo de seguimiento (se
ha establecido en 15 s), se dará luz verde a la maniobra de aterrizaje.

8.1.1.2. Misión 2: Trayectoria aproximadamente circular

En esta segunda misión, la PA describirá cı́rculos con una velocidad de avance según
su eje x de vx (m/s) y una velocidad angular en z de wz (rad/s). La trayectoria des-
crita, debido a que el deslizamiento de las ruedas del Summit XL real está incluido en
el simulador, no resulta exactamente un cı́rculo, pero sı́ se asemeja bastante.

84
8.1 Sistema simulado

La PA partirá del reposo, ası́ como el UAV, que estárá situado sobre la primera.
Tras la señalización del despegue por parte del usuario del sistema, el vehı́culo aéreo
comenzará su fase de ascenso hasta una altura prefijada de 6 m. Por su parte, la PA
también habrá empezado a moverse. Al alcanzar el UAV la altura indicada, detectará la
PA y comenzará a seguirla. Posteriormente, y para agregar cierto grado de aleatoriedad
al experimento y ası́ poder estudiar distintas situaciones, el autor del proyecto pulsará el
botón de aterrizaje en un instante cualquiera.

Las Misiones 1 y 2 se ejecutarán de dos formas distintas, con el fin de poder obtener,
por un lado, un porcentaje de aterrizajes exitosos frente a un total de aterrizajes (rea-
lizados todos bajo las misma condiciones) y, por otro lado, poder evaluar la robustez
de la máquina de estados, del sistema de relocalización de la PA y del sistema en su
conjunto.

Prueba A: Lanzando el sistema 20 veces desde cero y, por lo tanto, realizando 20


maniobras despegue-seguimiento-aterrizaje bajo las mismas condiciones. Como se
acaba de mencionar, esto permitirá obtener un porcentaje de aterrizajes exitosos
frente a un número total fijo de aterrizajes.

Prueba B: Lanzando el sistema 1 vez y repitiendo la maniobra despegue-seguimiento-


aterrizaje el mayor número de veces posible hasta el fallo total del sistema o has-
ta alcanzar los 40 ciclos despegue-seguimiento-aterrizaje. Esto es, hasta que el
UAV vuelque o hasta que, tras perder el contacto visual con la PA, el sistema
de relocalización del algoritmo de seguimiento-aterrizaje no consiga reencontrar-
la. Asimismo, se considerará que, alcanzado este valor, se puede asegurar que el
algoritmo es extremadamenta robusto, sin poder asegurar su robustez completa.

8.1.1.3. Misión 3: Trayectoria aleatoria

En esta tercera misión, el movimiento de la PA será totalmente aleatorio. Su velo-


cidad máxima de avance según su eje x será de vx (m/s), mientras que su velocidad
angular máxima en z será de wz (rad/s).

85
8. EXPERIMENTOS Y RESULTADOS

De nuevo, la PA partirá del reposo, ası́ como el UAV, que estárá situado sobre la
primera. Tras la señalización del despegue por parte del usuario del sistema, el vehı́culo
aéreo comenzará su fase de ascenso hasta una altura prefijada de 6 m. Por su parte, la
PA también habrá empezado a moverse. Los aterrizajes y despegues se realizarán con
una periodicidad aleatoria, con el objetivo de agregar cierto grado de aleatoriedad al
experimento.

La Misión 3 se guiará por el modelo de Prueba B, visto anteriormente.

8.1.2. Resultados

A continuación, se muestran los resultados obtenidos cada uno de los algoritmos.

8.1.2.1. Misiones 1 y 2 - Prueba A

Primeramente, se mostrarán los resultados de las Misiones 1 y 2 - Prueba A para


distintas velocidades de la PA (véanse Cuadros 8.1, 8.2, 8.3 y 8.4).

Las variables de estudio serán:

1. Número de aterrizajes exitosos del UAV sobre la PA.

2. Error Medio (EM) entre el centroide de la PA y el punto en el que el UAV aterriza


sobre la misma.

3. Error máximo entre el centroide de la PA y el punto en el que el UAV aterriza


sobre la misma

4. Número de aterrizajes fallidos.

5. Porcentaje de éxito sobre el total de aterrizajes realizados.

86
8.1 Sistema simulado

No Aterrizajes Misión 1 Misión 2


20 PID adapt. PID pred. PID adapt. PID pred.
vx = 0.12 m/s
Velocidad PA vx = 0.12 m/s
wz = 0.06 rad/s
Exitosos 20 20 20 20
EM (cm) 5.7 4.3 10.3 5.2
Emax (cm) 9.5 6.9 13.2 7.1
Fallidos 0 0 0 0
% Éxito 100 % 100 % 100 % 100 %

Cuadro 8.1: Resultados de las Misiones 1 y 2 - Prueba A - Simulador.

No Aterrizajes Misión 1 Misión 2


20 PID adapt. PID pred. PID adapt. PID pred.
vx = 0.16 m/s
Velocidad PA vx = 0.16 m/s
wz = 0.08 rad/s
Exitosos 20 20 20 20
EM (cm) 7.2 4.9 12.6 6.7
Emax (cm) 11.9 7.0 15.1 9.2
Fallidos 0 0 0 0
% Éxito 100 % 100 % 100 % 100 %

Cuadro 8.2: Resultados de las Misiones 1 y 2 - Prueba A - Simulador.

87
8. EXPERIMENTOS Y RESULTADOS

No Aterrizajes Misión 1 Misión 2


20 PID adapt. PID pred. PID adapt. PID pred.
vx = 0.20 m/s
Velocidad PA vx = 0.20 m/s
wz = 0.10 rad/s
Exitosos 19 20 17 20
EM (cm) 14.2 9.3 17.9 11.1
Emax (cm) 19.3 12.8 21.7 14.7
Fallidos 1 0 3 0
% Éxito 95 % 100 % 85 % 100 %

Cuadro 8.3: Resultados de las Misiones 1 y 2 - Prueba A - Simulador.

No Aterrizajes Misión 1 Misión 2


20 PID adapt. PID pred. PID adapt. PID pred.
vx = 0.24 m/s
Velocidad PA vx = 0.24 m/s
wz = 0.12 rad/s
Exitosos 18 20 16 19
EM (cm) 25.2 14.7 26.9 17.7
Emax (cm) 30.1 19.8 31.5 24.7
Fallidos 2 0 4 1
% Éxito 90 % 100 % 80 % 95 %

Cuadro 8.4: Resultados de las Misiones 1 y 2 - Prueba A - Simulador.

88
8.1 Sistema simulado

8.1.2.2. Misiones 1, 2 y 3 - Prueba B

Tras haber expuesto los resultados pertenecientes a las Misiones 1 y 2 - Prueba 1,


a continuación se muestran los pertenecientes a las Misiones 1, 2 y 3 - Prueba 2. Se
recuerda que en esta prueba se tratará de evaluar cuántos ciclos despegue-seguimiento-
aterrizaje es capaz de realizar el UAV hasta el fallo (hasta que vuelque o hasta que,
tras perder el contacto visual con la PA, el sistema de relocalización del algoritmo de
seguimiento-aterrizaje no consiga reencontrarla). Se recuerda igualmente que, alcanza-
dos los 40 ciclos, se concluirá la prueba. En tal caso, se supondrá que el sistema es
altamente robusto a la velocidad de la PA en cuestión, sin poder asegurar por completo
su robustez total.

Se muestra, además, el número de maniobras de relocalización realizadas durante


la prueba. Un valor alto en esta variable indica que el control PID no funciona a la
perfección, pero también demuestra que el sistema es lo suficientemente robusto como
para solventar situaciones en las que el aterrizaje es fallido.

Los resultados se muestran en los Cuadros 8.5, 8.6, 8.7 y 8.8.

Misión 1 Misión 2 Misión 3


Adapt. Pred. Adapt. Pred. Adapt. Pred.
vx = 0.12 m/s vx = (0, 0.12) m/s
Velocidad PA vx = 0.12 m/s
wz = 0.06 rad/s wz = (0, 0.06) rad/s
Ciclos hasta fallo 40 40 40 40 40 40
Relocalizaciones 0 0 0 0 0 0

Cuadro 8.5: Resultados de las Misiones 1, 2 y 3 - Prueba B - Simulador.

89
8. EXPERIMENTOS Y RESULTADOS

Misión 1 Misión 2 Misión 3


Adapt. Pred. Adapt. Pred. Adapt. Pred.
vx = 0.16 m/s vx = (0, 0.16) m/s
Velocidad PA vx = 0.16 m/s
wz = 0.08 rad/s wz = (0, 0.08) rad/s
Ciclos hasta fallo 40 40 40 40 40 40
Relocalizaciones 0 0 0 0 0 0

Cuadro 8.6: Resultados de las Misiones 1, 2 y 3 - Prueba B - Simulador.

Misión 1 Misión 2 Misión 3


Adapt. Pred. Adapt. Pred. Adapt. Pred.
vx = 0.20 m/s vx = (0, 0.20) m/s
Velocidad PA vx = 0.20 m/s
wz = 0.10 rad/s wz = (0, 0.10) rad/s
Ciclos hasta fallo 40 40 37 40 33 40
Relocalizaciones 4 0 5 0 7 6

Cuadro 8.7: Resultados de las Misiones 1, 2 y 3 - Prueba B - Simulador.

Misión 1 Misión 2 Misión 3


Adapt. Pred. Adapt. Pred. Adapt. Pred.
vx = 0.24 m/s vx = (0, 0.24) m/s
Velocidad PA vx = 0.24 m/s
wz = 0.12 rad/s wz = (0, 0.12) rad/s
Ciclos hasta fallo 38 40 36 40 31 40
Relocalizaciones 5 1 6 4 7 6

Cuadro 8.8: Resultados de las Misiones 1, 2 y 3 - Prueba B - Simulador.

90
8.1 Sistema simulado

Aunque estos resultados se discutirán en profundidad en el Capı́tulo 8, es inmedia-


to observar que el sistema despegue-seguimiento-aterrizaje implementado en simulador
funciona correctamente, respondiendo sin fallo a velocidades de la PA entre 0.12 y 0.20
m/s y empeorando ligeramente (aunque manteniendo un % de éxito del 75-85 %) a
velocidades mayores. Esto es ası́ tanto para el algoritmo de seguimiento-aterrizaje ba-
sado en un control PID adaptativo como para el basado en un control PID predictivo, si
bien es cierto que en el segundo caso los resultados son notablemente más satisfactorios.

A modo de ejemplo, en la secuencia de imágenes de la Figura 8.2 se muestra el


resultado de uno de los ciclos despegue-seguimiento-aterrizaje de la Misión 2 cuando se
emplea el algoritmo de seguimiento-aterrizaje basado en un control PID adaptativo.

91
8. EXPERIMENTOS Y RESULTADOS

(a) (b)

(c) (d)

(e) (f )

(g) (h)

Figura 8.2: Secuencia de imágenes: Misión 2 - Prueba A - Sistema Simulado.


92
8.2 Sistema real

8.2. Sistema real

En este caso, los experimentos realizados tan solo se llevarán a cabo empleando
el algoritmo de seguimiento-aterrizaje con Control PID adaptativo. El motivo por el
cual el algoritmo con Control PID predictivo no se pudo evaluar en las plataformas
reales es que el Filtro de Kalman requiere como entrada una posición referida a un
sistema de referencia fijo, como se explicó en el Capı́tulo 6. En el simulador esto era
fácilmente abordable; sin embargo, al carecer el vehı́culo aéreo empleado (AR Drone
2.0) de sistema GPS, esta tarea se planteaba verdaderamente compleja. Finalmente, se
decidió dejar como pendiente la tarea de validación en la realidad del algoritmo con
Control PID predictivo, a la espera de poder contar con un UAV con GPS integrado.

8.2.1. Descripción de los experimentos

Las pruebas se realizaron en el pabellón de deporte de la ETSI Industriales. En cuan-


to a la preparación del escenario de pruebas, se cubrió el suelo con colchonetas de color
verde. El objetivo era ocultar la gran cantidad de lı́neas de distintos colores existentes
en el suelo de la nave y, de esta manera, facilitar al máximo la tarea de detección. Como
se indicó anteriormente, con ello se buscaba poder evaluar de manera segura y efecti-
va el algoritmo de seguimiento-aterrizaje. En la Figura 8.3 se muestra el escenario final.

De nuevo, se plantearon pequeñas misiones a través de las cuales poner a prueba


el sistema (se recuerda que, esta vez, tan solo se trabajó con el algoritmo basado en
un Control PID adaptativo). En los apartados 8.2.1.1, 8.2.1.2 y 8.2.1.3 se resaltarán
pequeñas diferencias entre dichas misiones en el sistema real y las descritas con ante-
rioridad para el sistema simulado.

8.2.1.1. Misión 1: Trayectoria rectilı́nea

En esta primera misión, la PA decribirá una trayectoria cuadrada de 3x3 m a una


velocidad según su eje x de vx (m/s) (esta velocidad será uno de los parámetros de las
pruebas).

93
8. EXPERIMENTOS Y RESULTADOS

Figura 8.3: Escenario diseñado en la realidad. Se optó por el empleo de colchonetas


verdes de dimensiones 2x1 m. El resultado fue una explanada de 100 m2 sobre la que poder
realizar misiones en las cuales la detección no supusiera un problema inabordable.

La PA partirá del reposo, ası́ como el UAV, que estárá situado sobre la primera.
Tras la señalización del despegue por parte del autor del trabajo, el vehı́culo aéreo
comenzará su fase de ascenso hasta una altura prefijada de 3 m. Por su parte, la PA
también habrá empezado a moverse. Al alcanzar el UAV la altura indicada, detectará la
PA y comenzará a seguirla. Tras un determinado tiempo en modo de seguimiento (se
ha establecido en 40 s), se dará luz verde a la maniobra de aterrizaje.

8.2.1.2. Misión 2: Trayectoria circular

En esta segunda misión, la PA describirá cı́rculos con una velocidad de avance según
su eje x de vx (m/s) y una velocidad angular en z de wz (rad/s). La trayectoria des-
crita, debido a que el deslizamiento de las ruedas del Summit XL real está incluido en
el simulador, no resulta exactamente un cı́rculo, pero sı́ se asemeja bastante.

La PA partirá del reposo, ası́ como el UAV, que estárá situado sobre la primera.
Tras la señalización del despegue por parte del usuario del sistema, el vehı́culo aéreo

94
8.2 Sistema real

comenzará su fase de ascenso hasta una altura prefijada de 3 m. Por su parte, la PA


también habrá empezado a moverse. Al alcanzar el UAV la altura indicada, detectará la
PA y comenzará a seguirla. Posteriormente, y para agregar cierto grado de aleatoriedad
al experimento y ası́ poder estudiar distintas situaciones, el autor del proyecto pulsará el
botón de aterrizaje en un instante cualquiera.

Como en el caso del sistema simulado, las Misiones 1 y 2 seguirán dos procesos de
evaluación distintos: Prueba A y Prueba B. La diferencia con lo anteriormente expli-
cado al respecto será tan solo el número de veces que se repetirán los ciclos despegue-
seguimiento-aterrizaje en la Prueba A y el número máximo de veces que se repetirá di-
cho ciclo en la Prueba B (se fija en un máximo de 20, ya que la vida útil de las baterı́as
no permite un valor mayor).

8.2.1.3. Misión 3: Trayectoria aleatoria

En esta tercera misión, el movimiento de la PA será totalmente aleatorio. Su velo-


cidad máxima de avance según su eje x será de vx (m/s), mientras que su velocidad
angular máxima en z será de wz (rad/s).

De nuevo, la PA partirá del reposo, ası́ como el UAV, que estárá situado sobre la
primera. Tras la señalización del despegue por parte del usuario del sistema, el vehı́culo
aéreo comenzará su fase de ascenso hasta una altura prefijada de 3 m. Por su parte, la
PA también habrá empezado a moverse. Los aterrizajes y despegues se realizarán con
una periodicidad aleatoria, con el objetivo de agregar cierto grado de aleatoriedad al
experimento.

La Misión 3 se guiará por el modelo de Prueba B, visto anteriormente.

Nótese que, por motivos de seguridad, se ha tenido que reducir ligeramente la altura
de vuelo de 6 m en el simulador a 3 m en la realidad, si bien es cierto a esta última
altura el UAV era capaz de seguir perfectamente a la PA.
Asimismo, se quiere hacer notar lo siguiente. Debido a la dificultad de la prepara-
ción de cada prueba en la realidad, ası́ como del manejo autónomo del robot terrestre

95
8. EXPERIMENTOS Y RESULTADOS

Summit XL (existı́an problemas con los drivers de sus motores), se optó por realizar
la mayorı́a de las pruebas de forma teleoperada. Es por ello que, en este caso, no se
podrán detallar las velocidades de la PA.

A continuación, se muestran los resultados de las Misiones 1, 2 y 3 para el sistema


real. Nótese que se han realizado menos repeticiones y que se han realizado los experi-
mentos para un solo par (vx ,wz ) desconocido. Cuando se consiga reparar la plataforma
terrestre Summit XL, se podrá ejecutar el mismo código empleado para el movimiento
de la misma en el sistema simulado y ası́ poder conocer dichos valores también en el
sistema real.

8.2.1.4. Misiones 1 y 2 - Prueba A

Los resultados de las Misiones 1 y 2 para el tipo de Prueba A en el sistema real se


muestran en el Cuadro 8.9

No Aterrizajes Misión 1 Misión 2


10 PID adapt.
Exitosos 10 8
EM (cm) 30.1 36.6
Emax (cm) 34.7 41.8
Fallidos 0 2
% Éxito 100 % 80 %

Cuadro 8.9: Resultados de las Misiones 1 y 2 - Prueba A - Sistema Real. La


PA era teleoperada, por lo que sus velocidades exactas se desconocen. Aproximadamente,
vx = 0,2 m/s y wz = 0,1 rad/s.

En la secuencia de imágnes de la Figura 8.4 se muestra uno de los 10 ciclos despegue-


seguimiento-aterrizaje de la Misión 1 - Prueba A.

96
8.2 Sistema real

8.2.1.5. Misiones 1, 2 y 3 - Prueba B

Los resultados de las Misiones 1, 2 y 3 para el tipo de Prueba B se muestran en el


Cuadro 8.10

Misión 1 Misión 2 Misión 3


PID adapt.
Ciclos hasta fallo 20 17 10
Relocalizaciones 0 2 8

Cuadro 8.10: Resultados de las Misiones 1, 2 y 3 - Prueba B - Sistema Real. La


PA era teleoperada, por lo que sus velocidades exactas se desconocen. Aproximadamente,
vx = 0,2 m/s y wz = 0,1 rad/s.

97
8. EXPERIMENTOS Y RESULTADOS

(a) (b)

(c) (d)

(e) (f )

(g) (h)

Figura 8.4: Secuencia de imágenes: Misión 1 - Prueba A - Sistema real.


98
8.3 Valoración de impactos y de aspectos de responsabilidad legal, ética y
profesional

8.3. Valoración de impactos y de aspectos de responsabi-


lidad legal, ética y profesional

El impacto medioambiental del sistema desarrollado en este Trabajo Fin de Grado


es prácticamente nulo. Existen, sin embargo, dos excepciones.

La primera es la contaminación acústica generada por las hélices del vehı́culo aéreo
durante el vuelo, pudiendo suponer un peligro importante para la salud humana en es-
pacios cerrados demasiado pequeños. Por otro lado, existe el problema de las baterı́as,
tanto las del vehı́culo aéreo como las del terrestre. Y es que con el uso repetido, estas
se deterioran, y se ha de asegurar que son desechadas de forma correcta en los puntos
limpios correspondientes.

Con respecto al impacto social de esta trabajo, se quiere hacer notar el gran avance
que supondrı́a en el ámbito de las tareas de Búsqueda y Rescate la implantación de
un sistema autónomo como el aquı́ presentado. En un futuro no muy lejano, y con las
pertinentes mejoras y modificaciones, podrı́a permitir la sustitución definitiva de las
personas por equipos mixtos de UAVs y UGVs en tareas peligrosas, como la búsqueda
de heridos tras el derrumbamiento de un edificio o la localización de personas atrapadas
por el fuego en un bosque. De esta manera, se conseguirı́a una mejora notable en las
áreas de Prevención de Riesgos Laborales de muchos empleos actuales.

Por otro lado, este trabajo supone una interesante aportación para los estudiantes
de esta u otra escuelas de ingenierı́a, ya que, una vez sea subido a los repositorios en la
web, podrá servir de referencia para el aprendizaje de herramientas como ROS o Gaze-
bo, o incluso de lenguajes de programción, como C++. Asimismo, también servirá de
base para futuros alumnos interesados en seguir mejorando el sistema aquı́ presentado.

Finalmente, se ha de mencionar la reciente problemática legislativa con respecto al


uso de drones. La proliferación del uso de estos conlleva un gran riesgo para la seguridad
aérea, como se indica en el BOE (Boletı́n Oficial del Estado) en varios números, como
el 163 del 5 de julio de 2014, páginas 52544 a 52715 (172 páginas). Es por ello que
trabajos como el aquı́ desarrollado podrán ver dificulatado su desarrollo, a no ser que

99
8. EXPERIMENTOS Y RESULTADOS

los organismos gubernamentales fueran los que decidieran seguir mejorándolo con el fin
de aplicarlo a tareas de Búsqueda y Rescate en situaciones reales.

100
9

Conclusiones y lı́neas futuras

9.1. Conclusiones

En este Capı́tulo se discuten los resultados obtenidos, extrayendo las conclusiones


correspondientes.

En lı́neas generales, es sistema de coordinación UAV-UGV desarrollado en este


trabajo cumple muy satisfactoriamente con su objetivo principal, esto es, la automati-
zación del ciclo de tareas despegue-seguimiento-aterrizaje (d-s-a) de un UAV sobre una
PA situada sobre un UGV. Los resultados son positivos tanto en el sistema simulado
como en el real.

Más concretamente, se puede apreciar que el sistema es altamente robusto cuando


las velocidades máximas de la PA son de vx = 0.20 m/s y de wz = 0.10 rad/s. A
velocidades mayores, la tasa de éxito en las maniobras de aterrizaje va disminuyendo
progresivamente, si bien se consigue que hasta velocidades de vx = 0.24 m/s y de wz =
0.12 rad/s el sistema siga teniendo un funcionamiento más que correcto (tasa de éxito
superior al 80 %).

Asimismo, se puede apreciar cómo el sistema responde mejor ante trayectorias cua-
dradas de la PA que ante trayectorias circulares o aleatorias. En dichas trayectorias
circulares y aleatorias, el algoritmo de seguimiento-aterrizaje basado en un control PID
predictivo proporciona mejores resultados que el basado en un control PID adaptativo

101
9. CONCLUSIONES Y LÍNEAS FUTURAS

con la altura. Sin embargo, en trayectorias rectilı́neas, ambos responden de manera


similar.

No solo se ha podido comprobar que el porcentaje de aterrizajes completados es


elevado en cualquier configuración de trayectoria seguida por la PA (cuadrada, cir-
cular o aleatoria), sino que también se ha verificado el correcto funcionamiento del
sistema de control de altura y relocalización. Gracias a este, el número máximo de
ciclos d-s-a hasta el fallo total del sistema se mantiene en valores elevados, resultando
ası́ un sistema robusto y prácticamente listo para su aplicación en tareas de la vida real.

Por todo ello, se puede concluir que los objetivos marcados al comienzo del trabajo
han sido ampliamente alcanzados.

102
9.2 Lı́neas futuras

9.2. Lı́neas futuras

El aspecto que más dificultades ha generado en este proyecto ha sido el correcto


ajuste del algoritmo de visión. Ello se ha debido, principalmente, a que la resolución y
calidad de la cámara ventral del AR Drone 2.0 son realmente bajas, pues está pensada
para control de flujo óptico y no para tareas de detección en las que se requiera una
precisión elevada en el cálculo de los pı́xeles del objeto a detectar. En definitiva, una
lı́nea de trabajo interesante serı́a implementar el sistema aquı́ desarrollado en una pla-
taforma robótica aérea distinta, como el Pelican (véase Figura 9.1).

Empleando dicho UAV, no solo se contarı́a con una cámara con mayor resolución,
sino que se tendrı́an menores tiempos de computación que en el caso del AR Drone 2.0.
Además, como el alcance y conexión de la señal Wi-Fi serı́an mayores en el Pelican,
se evitarı́an las pérdidas de información tan comunes el AR Drone 2.0 a distancias
mayores de 10 m, aumentando ası́ la fluidez del sistema en genaral.

Figura 9.1: Plataforma robótica Pelican.

Por último, y si finalmente se consiguiera implementar el sistema en otra platafor-


ma aérea con mayores prestaciones, serı́a interesante sustituir el algoritmo de visión
aquı́ empleado (detección por colores) por otro más potente, como las librerı́as ArUco

103
9. CONCLUSIONES Y LÍNEAS FUTURAS

de detección de marcadores visuales (véase Figura 9.2), desarrolladas en la Universidad


de Córdoba.

Figura 9.2: Ejemplo de marcador empleado en las librerı́as ARUCO (Universidad


de Córdoba).

104
10

Glosario

UAV: Unmanned Aerial Vehicle. Traducción: Vehı́culo Aéreo No Tripulado.

UGV: Unmanned Ground Vehicle. Traducción: Vehı́culo Terrestre No Tripulado.

PA: plataforma de aterrizaje.

d-s-a: despegue-seguimiento-aterrizaje (ciclo de despegue, seguimiento y aterrizaje


realizado por el vehı́culo aéreo).

105
10. GLOSARIO

106
[11] J. Kao C.H. Huang, Y. Wu and M. Shih. A hybrid mo-
ving object detection method for aerial images.
In Pacific-Rim Conference on Multimedia, pages 357–368.
Springer, 2010. 10

[12] G. Dudek I. Rekleitis and E. Milios. Multi-robot coope-


rative localization: a study of trade-offs between
efficiency and accuracy. In Intelligent Robots and Sys-
tems, 2002. IEEE/RSJ International Conference on, 3,

Bibliografı́a pages 2690–2695. IEEE, 2002. 10

[13] F. Pont A. Martinelli and R. Siegwart. Multi-robot


localization using relative observations. In Procee-
dings of the 2005 IEEE international conference on robotics
and automation, pages 2797–2802. IEEE, 2005. 10

[14] K. Fregene R. Madhavan and L.E. Parker. Distribu-


[1] M. Garzón I. Baira and A. Barrientos. Detecting, Lo-
ted heterogeneous outdoor multi-robot localiza-
calizing and Following Dynamic Objects with a
tion. In Robotics and Automation, 2002. Proceedings.
Mini-UAV. RoboCity16 Open Conference on Future
ICRA’02. IEEE International Conference on, 1, pages
Trends in Robotics, May 2016. iii, 2
374–381. IEEE, 2002. 10

[2] A. Barrientos M. Garzón, D. Garzón-Ramos and J. del Ce-


[15] A. Baggio and K. Langendoen. Monte Carlo localiza-
rro. Pedestrian Trajectory Prediction in Large
tion for mobile wireless sensor networks. Ad Hoc
Infrastructures: A long-term approach based on
Networks, 6(5):718–733, 2008. 10, 11
path planning. In Proceedings of the 13th International
Conference on Informatics in Control, 2016. iv, 5, 47, 56, [16] J.M. Rabaey C. Savarese and J. Beutel. Location in
61 distributed ad-hoc wireless sensor networks. In
Acoustics, Speech, and Signal Processing, 2001. Procee-
[3] A. Talukder and L. Matthies. Real-time detection of dings.(ICASSP’01). 2001 IEEE International Conference
moving objects from moving vehicles using dense on, 4, pages 2037–2040. IEEE, 2001. 10, 11
stereo and optical flow. Intelligent Robots and Sys-
tems, 2004. (IROS 2004). Proceedings. 2004 IEEE/RSJ [17] H. Choi W.E. Mantzel and R.G. Baraniuk. Distribu-
International Conference, 4:3718–3725, September 2004. ted camera network localization. In Signals, systems
8 and computers, 2004. conference record of the thirty-eighth
asilomar conference on, 2, pages 1381–1386. IEEE,
[4] A.J. Lipton H. Fujiyoshi, R.T. Collins and T. Kanade. Al- 2004. 10
gorithms for cooperative multisensor surveillan-
ce. In Proceedings of the IEEE 89(10), page 1456–1477. [18] K. Akkaya H. Oztarak and A. Yazici. Lightweight ob-
IEEE, 2001. 8 ject localization with a single camera in wireless
multimedia sensor networks. In Global Telecommuni-
[5] S.Cheung and C. Kamath. Real-time detection of mo- cations Conference, 2009. GLOBECOM 2009. IEEE, pa-
ving objects from moving vehicles using dense ste- ges 1–6. IEEE, 2009. 11
reo and optical flow. EURASIP J. Appl. Signal Process,
page 2330–2340, January 2005. 8 [19] G.R. Rodrı́guez Canosa. Detection and Tracking of Dy-
namic Objects. A MultiRobot approach to Critical Infras-
[6] R. Cucchiara, C. Grana, M. Piccardi, and A. Prati. De- tructures Surveillance. PhD thesis, ETSII - Technical
tecting moving objects, ghosts, and shadows in University of Madrid (UPM), 2013. 11
video streams. IEEE Transactions on Pattern Analysis
[20] A. Carvalho J.S. Esteves and C. Couto. Generalized
and Machine Intelligence, 25(10):1337–1342, Oct 2003. 8
geometric triangulation algorithm for mobile ro-
bot absolute self-localization. In Industrial Electro-
[7] H.Y. Zhang. Multiple moving objects detection and
nics, 2003. ISIE’03. 2003 IEEE International Symposium
tracking based on optical flow in polar-log ima-
on, 1, pages 346–351. IEEE, 2003. 11
ges. Machine Learning and Cybernetics (ICMLC), 2010
International Conference, 3(10):1577–1582, jul 2010. 8
[21] A. Mancini A. Cesetti, E. Frontoni and P. Zingaretti. A
vision-based guidance system for UAV navigation
[8] U. Franke and S. Heinrich. Fast obstacle detection and safe landing using natural landmarks. In Selec-
for urban traffic situations. Intelligent Transportation ted papers from the 2nd International Symposium on UAVs,
Systems, IEEE Transactions, 3(3):173–181, sep 2002. 9 Reno, Nevada, USA June 8–10, 2009, pages 233–257.
Springer, 2009. 11
[9] R. Muñoz-Salinas. ARUCO: a minimal library
for Augmented Reality applications based on [22] J. Bobruk and D. Austin. Laser motion detection and
OpenCv. Universidad de Córdoba, 2012. 9 hypothesis tracking from a mobile platform. In
Proc. of the 2004 Australian Conference on Robotics & Au-
[10] K. Yun K. Moo Yi and K. Wan. Detection of moving tomation, pages 1–10. Citeseer, 2004. 12
objects with non-stationary cameras in 5.8 ms:
Bringing motion detection to your mobile devi- [23] O. Aycard T.D. Vu and N. Appenrodt. Online locali-
ce. In Proceedings of the IEEE Conference on Computer zation and mapping with moving object tracking
Vision and Pattern Recognition Workshops, pages 27–34, in dynamic outdoor environments. In 2007 IEEE
2013. 10 Intelligent Vehicles Symposium, 2007. 12

107
BIBLIOGRAFÍA

[24] A. Udvarev P. Konstantinova and T. Semerdjiev. A (ICRA), 2012 IEEE International Conference on, pages
study of a target tracking algorithm using glo- 971–976. IEEE, 2012. 13
bal nearest neighbor approach. In Proceedings of the
International Conference on Computer Systems and Tech- [28] S. Saripalli and G.S. Sukhatme. Landing on a moving
nologies (CompSysTech 2003), pages 290–295, 2003. 12 target using an autonomous helicopter. In Field
and service robotics, pages 277–286. Springer, 2003.
[25] S. Thrun C.C. Wang, C. Thorpe and M. Hebert. Simul- 14
taneous localization, mapping and moving object
tracking. The International Journal of Robotics Research, [29] T. Schouten E.L. van den Broek, T. Kok and L.G. Vuur-
26(9):889–916, 2007. 12 pijl. Human-centered content-based image re-
trieval. In Electronic Imaging 2008, pages 68061L–
68061L. International Society for Optics and Pho-
[26] K. Ling. Precision Landing of a Quadrotor UAV on tonics, 2008. 34
a Moving Target Using Low-cost Sensors. 2014.
13
[30] D. Farin Y. Morvan and P. de With. Depth-Image
compression based on an RD optimized quadtree
[27] T. Ryan D. Lee and H.J. Kim. Autonomous landing of decomposition for the transmission of multiview
a VTOL UAV on a moving platform using image- images. IEEE International Conference on Image Proces-
based visual servoing. In Robotics and Automation sing, pages 87–105, 2007. 43

108

También podría gustarte