Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Septiembre 2016
Resumen
(a) (b)
Figura 1: Plataformas robóticas reales: (a) AR Drone 2.0 y (b) Summit XL.
Detección
Localización
Seguimiento-Aterrizaje
Metodologı́a
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
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.
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.
Í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
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
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
Bibliografı́a 107
v
ÍNDICE GENERAL
vi
Índice de figuras
vii
ÍNDICE DE FIGURAS
viii
Índice de Cuadros
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.
2
1.3 Objetivos
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.
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.
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.
4
1.5 Estructura de la memoria
5
1. INTRODUCCIÓN
6
2
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
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
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.
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
10
2.3 Seguimiento
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.
12
2.4 Aterrizaje
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.
13
2. ESTADO DEL ARTE
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.
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.
15
3. PLANIFICACIÓN Y PRESUPUESTO
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.
17
3. PLANIFICACIÓN Y PRESUPUESTO
18
3.3 Presupuesto
3.3. Presupuesto
% 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
19
3. PLANIFICACIÓN Y PRESUPUESTO
20
4
Material y Herramientas
4.1. Hardware
Summit XL
21
4. MATERIAL Y HERRAMIENTAS
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.
AR Drone 2.0
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.
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 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.
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.
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.
25
4. MATERIAL Y HERRAMIENTAS
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
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.
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
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.
Los nodos pueden ser desarrollados en cualquier lenguaje, aunque los más extendidos
son:
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.
28
4.2 Software
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.
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.
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
5.1. Detección
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.
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.
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/
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).
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/
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
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
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)
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
40
5.1 Detección
1. Que los ángulos de inclinación del UAV se encuentren 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) (b)
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.
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
Figura 5.9: Checkboard empleada para la calibración de la cámara ventral del AR DRone
2.0.
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
47
6. ALGORITMO DE SEGUIMIENTO-ATERRIZAJE
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.
48
6.2 Control PID adaptativo
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.
49
6. ALGORITMO DE SEGUIMIENTO-ATERRIZAJE
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.
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:
1 t
Z
u(t) = Kp e(t) + e(τ )dτ ) (6.2)
Ti 0
51
6. ALGORITMO DE SEGUIMIENTO-ATERRIZAJE
1 t
Z
de
u(t) = Kp e(t) + e(τ )dτ + Td (6.3)
Ti 0 dt
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:
52
6.2 Control PID adaptativo
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.
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.
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
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.
55
6. ALGORITMO DE SEGUIMIENTO-ATERRIZAJE
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 .
2. Actualización.
Función de transición:
Función de observación:
zk = H xk + vk (6.15)
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.
x̂− −
k = A x̂k−1 + B uk (6.16)
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− .
2. Actualización
x̂k = x̂− −
k + Kk zk − H x̂k (6.18)
59
6. ALGORITMO DE SEGUIMIENTO-ATERRIZAJE
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)
Errorestimacion
K= (6.20)
Errorestimacion + Errormedida
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.
61
6. ALGORITMO DE SEGUIMIENTO-ATERRIZAJE
step: es el tiempo en segundos entre las posiciones del vector del path para un
mismo ciclo de predicción.
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.
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.
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:
64
7
Metodologı́a
7.1. Introducción
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.
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.
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
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
centre
odom world
summit_xl/base_footprint base_footprint
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
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
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.
70
view_frames Result
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
view_frames Result
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
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
72
7.2 Implementación en ROS
view_frames Result
ardrone_base_link
ardrone_base_frontcam ardrone_base_bottomcam
Figura 7.6: Árbol final de frames del AR Drone 2.0 (sistema real)
73
7. METODOLOGÍA
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
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.
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.
78
7.2 Implementación en ROS
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.
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.
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).
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.
81
7. METODOLOGÍA
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
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.
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.
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.
8.1.2. Resultados
86
8.1 Sistema simulado
87
8. EXPERIMENTOS Y RESULTADOS
88
8.1 Sistema simulado
89
8. EXPERIMENTOS Y RESULTADOS
90
8.1 Sistema simulado
91
8. EXPERIMENTOS Y RESULTADOS
(a) (b)
(c) (d)
(e) (f )
(g) (h)
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.
93
8. EXPERIMENTOS Y RESULTADOS
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.
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
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).
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.
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.
96
8.2 Sistema real
97
8. EXPERIMENTOS Y RESULTADOS
(a) (b)
(c) (d)
(e) (f )
(g) (h)
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.
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
9.1. Conclusiones
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
Por todo ello, se puede concluir que los objetivos marcados al comienzo del trabajo
han sido ampliamente alcanzados.
102
9.2 Lı́neas futuras
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.
103
9. CONCLUSIONES Y LÍNEAS FUTURAS
104
10
Glosario
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
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