ProyectoFindeGrado Grado en Ingeniería de Tecnologías...

73
Proyecto Fin de Grado Grado en Ingeniería de Tecnologías Industriales Automática Planificación local eficiente de caminos para UAVs en entornos desconocidos Autor: Lucas Rodríguez Díaz Directores: Aníbal Ollero Baturone, José Antonio Cobano Suárez Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2014

Transcript of ProyectoFindeGrado Grado en Ingeniería de Tecnologías...

Page 1: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

Proyecto Fin de GradoGrado en Ingeniería de TecnologíasIndustrialesAutomática

Planificación local eficiente de caminos paraUAVs en entornos desconocidos

Autor: Lucas Rodríguez DíazDirectores: Aníbal Ollero Baturone, José Antonio Cobano Suárez

Ingeniería de Sistemas y AutomáticaEscuela Técnica Superior de IngenieríaUniversidad de Sevilla

Sevilla, 2014

Page 2: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3
Page 3: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

Proyecto Fin de GradoGrado en Ingeniería de Tecnologías Industriales

Planificación local eficiente de caminos para UAVs en entornosdesconocidos

Autor:

Lucas Rodríguez Díaz

Directores:

Aníbal Ollero BaturoneCatedrático

José Antonio Cobano SuárezPersonal contratado a cargo de proyectos

Ingeniería de Sistemas y AutomáticaEscuela Técnica Superior de Ingeniería

Universidad de Sevilla

2014

Page 4: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3
Page 5: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

Proyecto Fin de Grado: Planificación local eficiente de caminos para UAVs en entornos desco-nocidos

Autor: Lucas Rodríguez DíazDirectores: Aníbal Ollero Baturone, José Antonio Cobano Suárez

El tribunal nombrado para juzgar el trabajo arriba indicado, compuesto por los siguientes profesores:

Presidente:

Vocal/es:

Secretario:

acuerdan otorgarle la calificación de:

El Secretario del Tribunal

Fecha:

Page 6: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3
Page 7: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

Índice abreviado

Índice Abreviado I

Notación V

1 Introducción 1

2 Formulación del problema 3

3 Trabajos relacionados 73.1 Descomposición en celdas 7

3.2 Métodos de roadmaps 8

3.3 Campos potenciales 10

3.4 Planificación probabilista 10

3.5 Algoritmos evolutivos 11

3.6 Optimización por enjambre de partículas 12

4 Descripción del método implementado 134.1 Construcción del mapa 13

4.2 Planificación local de caminos con obstáculos estáticos 15

4.3 Planificación local de caminos con obsáculos móviles 16

5 Detalles de implementación 235.1 Implementación en Matlab 23

5.2 Implementación en ROS 23

6 Simulaciones 296.1 Simulaciones en Matlab 29

6.2 Simulaciones en ROS 33

7 Conclusiones y trabajo futuro 397.1 Conclusiones 39

7.2 Trabajo futuro 39

8 Agradecimientos 41

Apéndice A Trazado de rectas 43A.1 Ecuación de la recta 43

A.2 Metodo para trazar rectas entre los nodos 44

I

Page 8: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

II Índice abreviado

Apéndice B Importancia de la resolución del mapa 47

Apéndice C Necesidad de ampliación para el tratamiento de obstáculos móviles 49C.1 Comportamiento predictivo 49

C.2 Obstrucción del espacio 50

C.3 Número de nodos 51

C.4 Conclusión 51

Índice de Figuras 53

Índice de Tablas 55

Bibliografía 57

Glosario 61

Page 9: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

Índice

Índice Abreviado I

Notación V

1 Introducción 1

2 Formulación del problema 3

3 Trabajos relacionados 73.1 Descomposición en celdas 7

3.2 Métodos de roadmaps 8

3.2.1 Búsqueda en grafos 9

3.3 Campos potenciales 10

3.4 Planificación probabilista 10

3.5 Algoritmos evolutivos 11

3.6 Optimización por enjambre de partículas 12

4 Descripción del método implementado 134.1 Construcción del mapa 13

4.2 Planificación local de caminos con obstáculos estáticos 15

4.3 Planificación local de caminos con obsáculos móviles 16

4.3.1 Detección de obstáculos 16

4.3.2 Cálculo de los centros 17

4.3.3 Seguimiento y emparejamiento de obstáculos 18

4.3.4 Estimación de trayectorias 18

4.3.5 Maniobra 20

5 Detalles de implementación 235.1 Implementación en Matlab 23

5.2 Implementación en ROS 23

5.2.1 Configuración de RViz 24

5.2.2 Parámetros heurísticos 26

6 Simulaciones 296.1 Simulaciones en Matlab 29

6.1.1 Sevilla 29

6.1.2 Laberinto 31

III

Page 10: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

IV Índice

6.2 Simulaciones en ROS 33

6.2.1 Mapa estático denso 34

6.2.2 Evitación de obstáculos móviles 36

7 Conclusiones y trabajo futuro 397.1 Conclusiones 39

7.2 Trabajo futuro 39

8 Agradecimientos 41

Apéndice A Trazado de rectas 43A.1 Ecuación de la recta 43

A.2 Metodo para trazar rectas entre los nodos 44

A.2.1 Método 1: a ciegas 44

A.2.2 Método 2: todos con todos 44

A.2.3 Comparativa 44

Apéndice B Importancia de la resolución del mapa 47

Apéndice C Necesidad de ampliación para el tratamiento de obstáculos móviles 49C.1 Comportamiento predictivo 49

C.2 Obstrucción del espacio 50

C.3 Número de nodos 51

C.4 Conclusión 51

Índice de Figuras 53

Índice de Tablas 55

Bibliografía 57

Glosario 61

Page 11: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

Notación

i Variable “fila” de una matrizj Variable “columna” de una matrizx,y,h Coordenadas cartesianas del UAV respecto a un sistema de

referencia global y fijo. En metros.ψ Orientación del UAV medida en giro desde el eje X y hacia

el eje Y del sistema de referencia global. En radianes.t Instante de tiempo.� Derivada temporal� Derivada segunda repecto al tiempo�c Referencia de control�0 Inicial� f Finalrmax

sensor Rango o alcance máximo del sensor en metrosαψ Coeficiente que caracteriza la rapidez de respuesta del control

en orientaciónαh Coeficiente que caracteriza la rapidez de respuesta del control

en alturaAx,Bx Coeficientes de la ecuación x(t) = Ax · t +Bx, que aproxima

linealmente la trayectoria de un obstáculoAy,By Coeficientes de la ecuación x(y) = Ay · t +By, que aproxima

linealmente la trayectoria de un obstáculo→ Tiende asen(�) Función senocos(�) Función cosenoDseg Distancia de seguridad a los obstáculos, medida en celdas.f Frecuencia en Hz de planificación|�| Valor absoluto|ψmax| Máxima velocidad angular permitida, en valor absoluto.σ Trayectoria solución generada por el algoritmoJ Distancia recorrida en una trayectoria σ generada por el al-

goritmo.∼ Del orden de

V

Page 12: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

VI Notación

δ� Diferencial deC Espacio de configuracionesClibre Espacio de configuraciones libreCobs Espacio de configuraciones prohibido, ocupado por obstácu-

los.nsq Número de puntos tenidos en cuenta para regresión linealrmin

det Mínimo cambio de profundidad entre puntos de la lectura quedebe apreciar el sensor para considerar dos obstáculos sepa-rados

d f usion Distancia entre obstáculos por debajo de la cual los dos obs-táculos se consideran uno solo

dmaxmatch Separación máxima entre un obstáculo móvil actual y otro

detectado en la iteración anteriornmax

obs Número máximo de medidas por obstáculo (filtrado)vmin Mínimo desplazamiento de un obstáculo, de iteración N a

N+1, para ser considerado como móvilvmin

2 Mínimo desplazamiento de un obstáculo, de iteración N aN+2, para ser considerado como móvil

dminWP Mínima distancia entre dos UAVs permitida en la predicción

de trayectorias para llegar al waypoint de destinodmin

WP_man Mínima distancia entre dos UAVs permitida en la predicciónde trayectorias para llegar a un waypoint de maniobra

Page 13: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

1 Introducción

Los Vehículos Aéreos No Tripulados, del inglés Unmanned Aerial Vehicles (UAVs), se encuentran enauge en diferentes tipos de aplicaciones tales como vigilancia [2], montaje de estructuras [21], de-

tección y monitorización de incendios [1], inspección de instalaciones[28], Search and Rescue (SAR)[44],etc. Un aspecto importante en este tipo de aplicaciones es la planificación de caminos que el robot debe-ría seguir para llevar a cabo la misión. Esta planificación puede ser global o local. La primera considerael conocimiento completo del entorno mientras que la segunda sólo conoce parte del entorno a partir dela información recibida de los sensores de abordo. El objetivo de los algoritmos de planificación global escalcular trayectorias que los UAVs deberían seguir al pie de la letra durante la ejecución de la misión. Así,es posible calcular una trayectoria realizable por el robot y óptima en cuanto a la distancia recorrida si sedispone de un mapa antes de ejecutar la misión. Sin embargo, es probable que durante la misión ocurraneventos inesperados, más aún si el entorno es desconocido. Por ejemplo, el mapa de que se disponía puede nocoincidir con el escenario que encuentra el UAV o incluso que se trate de un entorno dinámico con obstacu-los móviles,. Además, habitualmente los sensores de abordo sólo pueden ofrecer una percepción limitadadel entorno. En estos casos, los métodos tradicionales para seguir las trayectorias generalmente no puedengarantizar seguirlas de una forma segura. Para abordar estas posibles situaciones, es necesario hacer uso deun método de planificación de caminos local. El objetivo de este trabajo es el diseño e implementación ensimulación de un algoritmo de planificación local en tiempo real.El aspecto más importante es la carga computacional que requiere resolver las potenciales colisiones

detectadas en tiempo real. Típicamente, los métodos de planificación emplean el mismo esfuerzo en espacioslibres como en espacios con obstáculos. Para aprovechar esta situación, los caminos alternativos deberíancalcularse solamente cuando se necesitan, es decir, cuando el objetivo no es alcanzable de forma directa.Además, la evitación de colisiones debe ser muy eficiente para cumplir las restricciones temporales de unaaplicación de tiempo real.Este trabajo presenta un método de planificación local de caminos en entornos desconocidos usando un

sensor láser 2D llevado abordo y con un alcance limitado. El método ofrece un bajo coste computacionaly es apropiado para aplicaciones de tiempo real. El núcleo del algoritmo se basa en construir un grafo devisibilidad cuando se detecta un obstáculo de forma que modele el obstáculo para evitar la colisión. La clavepara obtener bajos tiempos de computación es doble: por un lado generar un grafo solamente cuando elcamino directo al objetivo está bloqueado por algún obstáculo, y por otro minimizar el número de nodosutilizados en la búsqueda del grafo.Sin embargo, la principal contribución del método propuesto respecto a otros trabajos publicados es con-

siderar tanto obstáculos fijos como móviles en aplicaciones de tiempo real.El algoritmo ha sido desarrollado e integrado enMatlab y también en Robot Operative System (ROS)[26].

1

Page 14: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

2 Capítulo 1. Introducción

Se han realizado simulaciones realistas utilizando Gazebo[48] (disponible en ROS) en diferentes escenarioscon un modelo dinámico de quadrotor basado en el implementado en el paquete Hector-quadrotor de ROS[4].Este trabajo se organiza en ocho capítulos. En el capítulo 2 se describen las caracteristicas del problema

que se ha abordado. En el capítulo 3 se exponen los distintos métodos que existen en la literatura para laresolución del mismo problema que se aborda. A continuación, en 4 se explica detalladamente el algoritmodiseñado. A este capítulo le sigue otro en el que se plantean las diferencias entre la implementación realizadaen Matlab y en ROS, así como se defienden los motivos por los que se eligieron ambas plataformas. En elcapítulo 6 se presentan distintas simulaciones para mostrar las capacidades del algoritmo, tanto en Matlabcomo en ROS. Finalmente, se incluyen las conclusiones del trabajo y se proponen posibles líneas de trabajofuturo en el capítulo 7. Además del contenido mencionado, se ha dispuesto de tres apéndices justificativosde aspectos importantes del algoritmo.

Page 15: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

2 Formulación del problema

La formulación de un problema es a menudo más importanteque su solución.

Albert Einstein.

El problema considerado en este trabajo es la planificación local de caminos de un UAV para realizarmisiones propuestas por el proyecto Europeo FP7 ARCAS (Aerial Robotics Cooperative Assembly

System)[3]. Este proyecto está desarrollando un sistema de robots aéreos cooperativos para el montaje yconstrucción de estructuras en lugares poco accesibles (ver figura 2.1). El sistema ARCAS usará vehículosaéreos (helicópteros y quadrotors) con manipuladores multi-enlace para tareas de montaje [21]. Los vehícu-los aéreos portan piezas de estructuras que serán ensambladas en el destino de la misión. En la figura 2.1una estructura plana es transportada cooperativamente por tres helicópteros.

Una parte importante en ARCAS es la planificación cooperativa de montaje y la generación de trayec-torias seguras que aseguren que ni los vehículos aéreos ni los manipuladores o los objetos que transportancolisionan. Por tanto, es necesario implementar un algoritmo de planificación local de caminos para asegurarque cada vehículo realiza trayectorias seguras cuando ocurren eventos inesperados.

El objetivo es calcular en tiempo real un camino para un UAV de forma que siga un plan de vuelo (se-cuencia de waypoints), evitando obstáculos fijos y otros UAVs (obstáculos móviles). Por tanto el problema

Figura 2.1 Montaje y construcción de estructuras en el proyecto ARCAS..

3

Page 16: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

4 Capítulo 2. Formulación del problema

es encontrar una trayectoria solución σ(t) = (x(t),y(t)) que minimice la distancia recorrida J.

J =∫ t f

0‖σ(t)‖dt (2.1)

‖σ(t)‖=√

x2(t)+ y2(t)≈√(

x(t +δ t)− x(t))δ t

)2 +(y(t +δ t)− y(t))

δ t)2 (2.2)

σ(0) = (x0,y0),σ(t f ) = (x f ,y f ) (2.3)

g(x(t),y(t))≤ 0 (2.4)

dondeσ(0) representa las condiciones iniciales,σ(t f ) el waypoint final del plan de vuelo, y g la restriccióncinemática considerada. Dicha restricción cinemática está relacionada con la máxima velocidad de giro (enyaw) permitida y está definida por la ecuación 2.12. Además de las condiciones matemáticas expresadasanteriormente, es necesario tener en cuenta las limitaciones espaciales que establecen los obstáculos.Se asume que la velocidad del vehículo es constante1 y que los cambios de orientación se permiten para

resolver los conflictos. La solución debe considerar la adición de waypoints intermedios a la trayectoria paralograr su objetivo. La información que se le aporta al método es la siguiente:

• Plan de vuelo inicial. Debe tener varios waypoints definidos por el plan de la misión.

• Modelo cinemático del UAV. Las ecuaciones (2.5) a (2.12) forman el modelo completo considerado,basado en el utilizado en [37].

x = v · cos(ψ) (2.5)

y = v · sin(ψ) (2.6)

h =−αh · h+αh · (hc−h) (2.7)

ψ = αψ · (ψc−ψ) (2.8)

v = αv · (vc− v) (2.9)

Siendo x e y las coordenadas 2D del UAV en un sistema de referencia fijo, y x y y las velocidadesen dichos ejes. El ángulo de orientación o yaw corresponde a ψ , y ψc es la referencia de control dedicho ángulo. Igualmente, v y h son la velocidad lineal horizontal y la altura respectivamente, y vc y

1Salvo que se produzca una parada de emergencia.

Page 17: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

5

hc sus referencia de control. Los símbolos αi corresponden a constantes que dependen de la dinámicadel vehículo considerado.

No obstante, se asume que la velocidad lineal es constante y que los movimientos son estrictamentehorizontales debido a la caracteristica bidimensional del sensor utilizado. Por tanto:

hc = h =⇒ h = 0 =⇒ h = 0 (2.10)

vc = v =⇒ v = 0 (2.11)

Además, existe una limitación en relación a la máxima velocidad de giro permitida.

−|ψmax|6 ψ 6 |ψmax| (2.12)

Los valores numéricos de las constantes propias del modelo del UAV se han recogido en la tabla 2.1.

Tabla 2.1 Constantes delmodelo cinemáticoconsiderado.

Constante Valor

v 0,5÷2m/sαh –αh –αψ 1,32s−1

αv –|ψmax| 0,7rad/s

• Localización del UAV, que puede ser provista fiablementemediante diversosmétodos, incluyendoGPSdiferencial (Differential Global Positioning System) o un sistema de localización 3D con marcadoresutilizando cámaras externas [45].

Otros detalles también se tienen en cuenta en el problema:

• El entorno es desconocido. Esto quiere decir que no se dispone de un mapa previo, sino sólo de lainformación que proporcione el sensor en cada momento.

• La densidad de obstáculos por unidad de superficie es variable. Deberá aprovecharse esta característicadel entorno para reducir los tiempos de computación en entornos libres de obstáculos. El objetivoes seguir el plan de vuelo inicial mientras no se detecten obstáculos en dicha trayectoria de formaque la carga computacional sea baja. Los esfuerzos se deben centrar en las zonas en que se detectanobstáculos que vayan a suponer un peligro.

• El alcance del sensor es limitado, por lo que los obstáculos se detectan a corta distancia. El sensorpropuesto es el Hokuyo UTM-30LX [47], cuyo alcance es de 30m.

• La frecuencia de planificación debe ser del orden de 5Hz. Esto implica que cada iteración del algoritmopodría prolongarse durante un máximo de 0,2 segundos para cumplir las restricciones temporales deuna aplicación de tiempo real.

Page 18: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3
Page 19: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

3 Trabajos relacionados

Apenas hay algo dicho por uno cuyo opuesto no sea afirmado.

René Descartes.

Muchos trabajos han sido publicados en la literatura para abordar el problema de la planificación localde caminos. La mayoría de los trabajos en planificación de caminos no ofrecen buenas soluciones

al problema formulado en el capítulo 2, ya que se necesita una baja carga computacional para calcular lasolución en tiempo real.Las estrategias de planificación para UAVs están clasificadas en [13] y [14]. En general, los métodos de

planificación clásicos pueden dividirse en tres grupos: métodos de descomposición en celdas, métodos de“roadmaps” [15] y [16] y métodos de potencial artificial [17][18][19]. Además de este tipo de métodos,existen los de planificación probabilista, que también son analizados en este capítulo.

3.1 Descomposición en celdas

Los métodos de descomposición en celdas dividen el espacio de configuraciones C en muchas regiones. Acada celda se le asigna una etiqueta para identificar si está libre (pertenece a Clibre) u ocupada (pertenece aCobs). Entonces, un algoritmo de planificación local encuentra una secuencia de celdas vecinas libres paraasegurar un camino realizable. A su vez, los métodos de descomposición en celdas pueden ser divididos endos tipos: descomposición exacta en celdas y descomposición aproximada en celdas.El método de descomposición exacta en celdas más característico es el de descomposición trapezoidal o

descomposición vertical. Este método consiste en dividir el espacio libre (bidimensional) en regiones trape-zoidales, estableciendo divisiones verticales en la posición de cada vértice de los polígonos que conformanlos obstáculos. La figura 3.1 muestra cómo divide el espacio este método. Una vez separado el espacio enlas distintas regiones, se construye un grafo y se realiza una búsqueda sobre él. En este caso los nodos delgrafo se generan en los puntos medios de los segmentos verticales generados y en los centros de gravedadde los polígonos encerrados por los obstáculos y los segmentos verticales.Por otro lado, los denominados “quadtrees” y “octrees” [27] pertenecen a métodos de división aproximada

en celdas. Este tipo de métodos tiene la ventaja de operar bajo un mapa que tiene diferentes resolucionessegún sea la densidad de objetos que albergan las regiones en que se divide el espacio. Así, puede establecerseun número N máximo de objetos por celda, de forma que se seguirá dividiendo localmente cada celda enceldas más pequeñas si existen más deN objetos en una celda. Una desventaja de este método es que aumentala complejidad de su programación debido a la resolución variable.

7

Page 20: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

8 Capítulo 3. Trabajos relacionados

Figura 3.1 División del espacio considerada por un método de descomposición vertical, con regiones nu-meradas.

3.2 Métodos de roadmaps

Los métodos de roadmaps construyen una red de posibles caminos libres de colisión a partir de nodos ge-nerados en el espacio. Entre estos métodos destacan los grafos de visibilidad y los diagramas de Voronoi.Los grafos de visibilidad constituyen un método puramente geométrico. Dado un conjunto de obstácu-

los poligonales definidos por sus vértices, los grafos de visibilidad relacionan los nodos -vértices de losobstáculos- entre sí, de manera que sólo estén conectados los vértices que geométricamente sean visiblesentre sí. La visibilidad entre dos vértices se comprueba verificando si el segmento que los une intersecta aalgún obstáculo. Una vez construido el grafo de visibilidad incluyendo los nodos correspondientes al inicio,al objetivo y a los vértices de los obstáculos, se ejecuta un algoritmo de búsqueda en grafos para encontrarel camino más corto entre los nodos inicio y objetivo.Definido así, un algoritmo de grafos de visibilidad sólo está pensado para robots puntuales y supondría

navegar por el borde de las paredes de los obstáculos. A fin de subsanar estos dos inconvenientes, se realizauna expansión de los obstáculos. Esta expansión de cada obstáculo provoca que el obstáculo que se tiene encuenta sea de tamaño superior al que existe realmente. Para el algoritmo subyacente, todo sigue igual. Sinembargo, se ha aportado seguridad al método.Los diagramas de Voronoi ofrecen una forma interesante de dividir el espacio cartesiano. Partiendo de la

base de que los obstáculos son puntuales, el objetivo es generar un grafo cuyos nodos estén situados espa-cialmente lo más separados posible de cada obstáculo. Gráficamente, esto se logra trazando las mediatricesentre los segmentos que unen los obstáculos y comprobando las intersecciones. Las regiones de Voronoi sonpolígonos convexos cuyos lados tienen la propiedad de estar a la misma distancia entre dos obstáculos. Alcontrario que el método de los grafos de visibilidad, que propicia la navegación cercana a los obstáculos,este método produce caminos que están lo más alejados posible de los obstáculos. Una vez se ha calculadoel diagrama de Voronoi y se ha construido el grafo correspondiente, se ejecuta el algoritmo de búsqueda engrafos que se desee.La figura 3.2 muestra un ejemplo de generación del grafo mediante la división del mapa en regiones

Page 21: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

3.2 Métodos de roadmaps 9

de Voronoi. Los obstáculos han sido posicionados aleatoriamente y representados como círculos rojos. Lasaristas azules conforman visualmente el grafo generado a partir de sus extremos, que son los nodos del grafo.Pese a la aparente simplicidad de este método, existen algunos problemas de ahí derivados. Así, es necesariotener en cuenta de alguna forma la no puntualidad de los obstáculos y evitar utilizar aristas del grafo quepasen muy cerca de dos obstáculos.

Figura 3.2 Generación de grafo mediante división en regiones de Voronoi.

3.2.1 Búsqueda en grafos

Tanto los algoritmos de roadmaps como los de descomposición en celdas necesitan hacer uso de un algoritmode búsqueda en grafos para determinar el camino más corto. Este tipo de algoritmos está muy extendido enalgunos campos, como son la planificación de rutas en navegadores GPS comerciales o la planificación decaminos para personajes de videojuegos controlados por ordenador (personaje no jugador). Algunos de estosmétodos son:

• Dijkstra [35]. Es el algoritmo clásico de búsqueda en grafos para encontrar el camino más corto entredos nodos. Tiene la desventaja de no permitir pesos negativos de las aristas.

• Bellman-Ford [42]. Permite que los pesos de las aristas sean negativos, pero es más lento que elalgoritmo de Dijkstra.

• A* [41]. Hace uso de una función heurística que le hace converger más rápidamente a la solución queel algoritmo de Dijkstra. Su uso está muy extendido.

• Lifelong Planning A* (LPA*) [36]. Es una variante incremental del algoritmo A*. Inicialmente actúade igual forma que un algoritmo A*, pero si se realizan pequeños cambios en el grafo y se ejecuta denuevo el algoritmo, la solución se encuentra en un tiempo inferior al conseguido por A*.

• D* y D* lite. Son algoritmos que combinan una búsqueda incremental y heurística que se centran enresolver de forma eficiente problemas de planificación similares a los resueltos en iteraciones anterio-res. Esto implica que pueden ser usados en planificación local de forma eficiente, ya que la replanifi-cación de trayectorias en cada iteración se adapta al objetivo de estos algoritmos. En [12] se utiliza elalgoritmo D* para la planificación de trayectorias en entornos desconocidos.

• Búsqueda en amplitud (BFS) [43]. Asume que todos los pesos de las aristas son iguales. Comienzaen el nodo raíz y explora los nodos vecinos. A partir de ahí, explora los nodos sucesores de dichosvecinos. Este algoritmo siempre visita los nodos avanzando en escalones de complejidad. Es decir,siempre visitará primero todos los nodos que estén a una distancia de dos aristas antes que los queestén a tres aristas de distancia.

Page 22: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

10 Capítulo 3. Trabajos relacionados

• Búsqueda en profundidad (DFS). Búsqueda en profundidad. También asume que los pesos de lasaristas son todos iguales. En este caso, se explora en una dirección del grafo hasta llegar al máximonivel de profundidad posible y después se continua desde atrás (backtracking).

El método presentado en este trabajo pertenece a la categoría de generar un grafo de visibilidad y reali-zar una búsqueda sobre él. Siguiendo este patron, un trabajo interesante se presentó en [20]. La estrategiadenominada SPARTAN tiene éxito en aplicaciones de tiempo real con un quadrotor volando en exterioresconsiderando obstáculos estáticos.

3.3 Campos potenciales

Losmétodos basados en campos potenciales calculan caminos libres de colisión considerando los obstáculoscomo repulsores. Es decir, en la planificación cada obstáculo genera un campo de fuerzas, análogo al caso decargas eléctricas, que se dirigen desde el obstáculo hacia el exterior. La combinación de las fuerzas ejercidasen cada punto por cada uno de los obstáculos, genera un campo vectorial de fuerzas que permite al UAVnavegar evitando los obstáculos.De forma opuesta, el objetivo del plan de vuelo se define como un atractor. Este atractor genera un campo

de fuerzas atractivas que se suma al ya mencionado. Estos métodos presentan una desventaja porque lasolución puede caer en mínimos locales y es necesario complementar a estos métodos con otros para escaparde dichos mínimos. En [46] se propone utilizar los campos potenciales por su sencillez de implementacióny ayudarse de un movimiento browniano para evitar permanecer en mínimos locales. La figura 3.3 muestrael campo escalar generado por un algoritmo de campos potenciales para dos obstáculos de forma circular.

Figura 3.3 Campo generado para dos obstáculos circulares (rojo) y un objetivo (azul).

3.4 Planificación probabilista

Los métodos probabilistas o “sampling-based” se basan en la generación de una estructura (roadmap) que seconstruye de forma aleatoria para rellenar el espacio de configuraciones. Una vez construida dicha estructura,se realiza una búsqueda en ella para calcular el camino más corto entre dos puntos pertenecientes a laestructura, de forma análoga a como exploraríamos un grafo.Los algoritmos basados en Rapidly-Exploring Random Tree (RRT) [5] se basan en una exploración

pseudo-aleatoria del espacio de configuraciones. Dicho espacio de configuraciones puede ser bidimensional,tridimensional, o de dimensiones superiores. Por ejemplo, es posible realizar una planificación para mani-puladores de seis grados de libertad con un algoritmo RRT [29]. La ventaja del uso de RRT es su tendencia aexplorar regiones inexploradas primero, y después centrarse en el detalle. Es decir, la distribución estadistica

Page 23: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

3.5 Algoritmos evolutivos 11

utilizada está sesgada para favorecer la exploración de todo el mapa y no explorar sucesivamente las mismaszonas. Esta propiedad puede observarse en la figura 3.4.

Figura 3.4 Árbol generado por algoritmo RRT.

Se han desarrollado numerosos métodos de planificación derivados del RRT básico [31][30], incluídosalgunos de planificación local basada en sensores [25]. El algoritmo RRT* mejora respecto al RRT, ya queofrece una convergencia más rápida y es óptimo probabilísticamente. Por último, el algoritmo RRT* Smartpromete mejorar aún más la convergencia del RRT*. Este tipo de algoritmos está muy extendido en el ámbitode la planificación.También es posible encontrar algoritmos RRT bidireccionales [32] que realizan una expansión de un árbol

con la raíz en el inicio y de otro árbol que tiene la raíz en el objetivo.Otro tipo de algoritmos probabilistas que pueden citarse son: Probabilistic Path Planner (PRM) [6], ran-

dom walks [33], visibility roadmaps [34], etc.

3.5 Algoritmos evolutivos

De manera general, los algoritmos evolutivos constituyen un método de optimización matemático. Al igualque los métodos de campos potenciales establecen una analogía entre la planificación de trayectorias y lateoria de campos electromagnéticos, los algoritmos evolutivos establecen la analogia con la selección naturalpostulada por Darwin. Un algoritmo genético parte de un conjunto o población de soluciones (individuos)cuya evolución natural se simula para mejorarlas. En cada iteración, se utilizan varios mecanismos bioins-pirados sobre los individuos:

• Reproducción o cruce: mezcla de las propiedades (genes) de dos individuos.

• Mutación: cambio aleatorio de alguna propiedad de un individuo.

• Herencia: paso de las propiedades de un individuo a otro individuo de la siguiente generación.

• Selección: evaluación de la idoneidad de las propiedades de un individuo para su reproducción. Estemecanismo es el encargado de asegurar que el método hace converger a la población de soluciones.

Aplicado a la planificación de caminos [7][8][9], los individuos son trayectorias candidatas. Dichas tra-yectorias están definidas mediante un conjunto de parámetros -como podrían ser los puntos de paso-, queserán modificados en el proceso “evolutivo” y darán lugar a mejores caminos según los criterios que setengan.En [11] se plantea un método de planificación en misiones para múltiples UAVs utilizando un algoritmo

evolutivo que considera múltiples objetivos por cada vehículo.

Page 24: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

12 Capítulo 3. Trabajos relacionados

3.6 Optimización por enjambre de partículas

La Optimización por enjambre de partículas, del inglés PSO, compone otro grupo de algoritmos de plani-ficación, en este caso también bioinspirado. En el proceso de búsqueda las soluciones se mueven de formasimilar a como lo hacen los enjambres de insectos en busca de alimento. Para modelar este tipo de movi-mientos se siguen reglas matemáticas simples. Este método tiene la ventaja de que no necesita ser aplicado auna función diferenciable, como sí ocurre con los métodos matemáticos tradicionales de optimización. Sinembargo, no se garantiza que siempre se llegue a una solución óptima.En [10] se muestra un estudio en el que se aplica la PSO a la planificación de trayectorias. Se demuestra

que, pese a la simplicidad del método, se encuentran soluciones cercanas al óptimo.

Page 25: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

4 Descripción del método implementado

Se debe hacer todo tan sencillo como sea posible, pero no mássencillo.

Albert Einstein.

Este capítulo describe la estrategia desarrollada para abordar el problema formulado en el capítulo 2.Si se consideran obstáculos fijos, el proceso es el siguiente: primero se genera un mapa que sirva

al algoritmo para tomar una decisión. El algoritmo toma dicho mapa, lo procesa y devuelve un waypointintermedio que será seguido por el módulo de control del UAV. En el caso de que también se considerenobstáculos móviles, se ejecuta un módulo adicional antes de la construcción del mapa. Hasta la sección 4.3sólo se hace referencia al tratamiento de obstáculos fijos.

4.1 Construcción del mapa

El objetivo es construir un mapa partiendo de las medidas del láser. Este mapa es de carácter local y sóloserá utilizado durante una iteración, es decir, para detectar obstáculos y en su caso calcular la trayectoria quelos evite en la iteración correspondiente. El espacio se discretiza de forma que queda dividido en una rejillao “grid” bidimensional compuesto por celdas. Se consideran hasta siete tipos de celdas (ver figura 4.1):

• Libre: zona transitable, sin obstáculos.

• Obstáculo: zona poblada por algún objeto. Es inadmisible visitar una celda de tipo obstáculo, puesimplica una colisión.

• Obstáculo virtual: zona circundante a uno o varios obstáculos y que supone un riesgo visitar. Corres-ponde a una expansión de los obstáculos. A efectos prácticos, el algoritmo trata igual a estas celdasque a las celdas de obstáculo. Esta expansión se lleva a cabo para mantener una mínima distancia deseguridad entre el vehículo y el obstáculo.

• Obstáculo visitable: zona circundante a uno o varios obstáculos pero localizada a una distancia segurade ellos, por lo tanto se puede visitar. Corresponde a una expansión del tipo anterior de celdas.

• Inicio: posición desde la que parte el vehículo. Respecto al mapa local, su posición es siempre lamisma.

13

Page 26: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

14 Capítulo 4. Descripción del método implementado

• Objetivo: marca el lugar al que debe llegar el vehículo. Dado que el mapa es local, es probable que seencuentre fuera del mapa.

• Inexplorado (opcional): es útil marcar celdas como inexploradas si se hace uso de un mapa global confines de visualizar la trayectoria que ha seguido el UAV. No obstante, estas celdas no influyen en elcomportamiento del algoritmo. Dado que sólo han sido utilizadas en la implementación de Matlab, seomiten las referencias a ellas en este capítulo.

Figura 4.1 Ejemplo de construcción del mapa y tipos de celdas consideradas..

Inicialmente, todas las celdas son de tipo libre. Para cada elemento de la nube de puntos que devuelveel láser, se coloca una celda de obstáculo en la posición correspondiente si está dentro de los límites delmapa. Una vez hecho esto, se recorre el mapa en busca de celdas obstáculo. Para cada una de estas celdas,se construye un número de capas de celdas de obstáculo virtual alrededor de ellas, y una capa de celdastipo nodo. El número de capas de celdas obstáculo virtual que se disponen alrededor de cada celda tipoobstáculo depende de un parámetro denominado distancia de seguridad (Dseg). En caso de que una celdavaya a marcarse como obstáculo virtual pero no fuera inicialmente de tipo libre, no se modifica su tipo. Elalgoritmo 1 ilustra este proceso.Finalmente, se añaden las celdas inicio y objetivo (si pertenece al mapa). La resolución del mapa es

también un parámetro y tiene importancia en la solución del problema. Mayores resoluciones devuelvenmejores trayectorias, pero también incrementan los tiempos de computación. Por lo tanto, debe adoptarseuna solución de compromiso para ajustar dicho parámetro. En el apéndice B se muestra un pequeño estudiopara valorar su influencia.

Page 27: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

4.2 Planificación local de caminos con obstáculos estáticos 15

Algorithm 1 Algoritmo de construcción de mapa localInicialización del mapafor recorrer nube de puntos generada por sensor do

if lectura ∈ límites mapa thencelda←Obstáculo

end ifend forfor recorrer mapa do

if celda=obstáculo thenConstruir Dseg capas de obs. virtual y una capa de nodos alrededor de celda

end ifend for

4.2 Planificación local de caminos con obstáculos estáticos

El algoritmo propuesto considera diversas estrategias para adaptarse a entornos desconocidos y proveertrayectorias seguras (ver Algoritmo 2). Una vez construido el mapa, se comprueba si es posible ejecutar uncamino directo al objetivo actual del plan de vuelo desde la posición actual, considerando las restriccionescinemáticas. Si dicho waypoint puede ser alcanzado sin colisión, no se genera un grafo de visibilidad. Deahí que el tiempo de ejecución sea muy bajo cuando se navega a través de espacios abiertos.Si no es posible volar en línea recta al objetivo, se abren dos posibilidades. La primera es mantener la

orientación actual si no se detecta ningún obstáculo frontal cercano. Esto es útil para navegar entre pasillos,pero no debe abusarse de esta estrategia, ya que puede alejarnos del objetivo.La segunda posiblidad se lleva a cabo cuando realmente se necesita evitar una colisión con un obstáculo

fijo. Este es el bloque central del algoritmo propuesto. Se basa en una búsqueda en un grafo de visiblidadaplicando el algoritmo de Dijkstra. Primero, el grafo de visibilidad debe ser generado. La información queconforma el grafo es:

• Nodos. Se recorre el mapa y se guardan en una lista todos los nodos, situados sobre las celdas de tiponodo, inicio y objetivo.

• Arcos entre los nodos. Definen qué nodos se conectan con otros nodos y el coste de pasar de un nodoa otro. Para obtener esta información se recorre la lista de nodos que se han generado y se traza larecta entre cada celda nodo y todos los demás. Si dicha recta no se cruza con ninguna celda de tipoobstáculo (real o virtual), la conexión es válida. Otra posiblidad sería trazar el haz de rectas que pasanpor una celda nodo y comprobar si intersecta a otra celda que actúe de nodo. Sin embargo, la cargacomputacional del primer método comentado es inferior (ver anexo A sección A.2) y es el que se haempleado. El coste de volar de un nodo a otro se toma como la distancia euclídea entre las celdas,salvo que la conexión se realice entre el nodo de inicio y otro nodo, en cuyo caso se penaliza realizargrandes giros para evitar grandes cambios en la trayectoria y adecuarnos a las limitaciones cinemáticasdel vehículo.

Una vez construido el grafo, se ejecuta el algoritmo de Dijkstra. Esto representa la mayor carga compu-tacional del algoritmo. El algoritmo de Dijkstra calcula una secuencia de nodos que forman el camino, siendoel primero de la lista el nodo de inicio y el último el waypoint que indique el plan de vuelo inicial. El segundoen la lista se añade al plan de vuelo para ir en tal dirección y evitar los obstáculos que estén bloqueando elcamino.El número de nodos utilizados en el grafo se puede reducir considerablemente para reducir el tiempo de

computación. Inicialmente, las celdas tipo nodo se marcan en el mapa para que el algoritmo pueda utili-

Page 28: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

16 Capítulo 4. Descripción del método implementado

Algorithm 2 Algoritmo de navegaciónif objetivo alcanzado then

Actualizar objetivoelseConstrucción del mapaif Camino directo libre de obstáculos thenWaypoint← Objetivo

elseif !(Obstaculo frontal) thenMantener orientación

elseBúsqueda en grafoif Camino encontrado thenWaypoint← Segundo nodo en la lista

elseRodear obstáculos

end ifend if

end ifend if

zarlas. Sin embargo, al encontrar obstáculos largos y con forma recta, sólo se consideran los nodos de losextremos. Esto reduce considerablemente el tiempo de ejecución, pero también hace que los resultados seanmás imprecisos. A lo largo de este trabajo se realiza esta selección de nodos si no se dice lo contrario.Cabe la posibilidad de que el algoritmo de Dijkstra no encuentre un camino posible debido a la disposición

de las celdas del mapa. En tal caso, la última elección es rodear el obstáculo con un algoritmo de seguimientode paredes. Aunque este caso raramente ocurre, el problema se resuelve buscando entre los nodos cercanosel que minimice la desviación respecto al rumbo actual. Dicho nodo será elegido como waypoint intermedioy será incluido en el plan de vuelo.El algoritmo propuesto (ver Algoritmo 2) permite navegar atravesando entornos desconocidos amplia-

mente poblados y puede ser aplicado en tiempo real.

4.3 Planificación local de caminos con obsáculos móviles

Este problema representa grandes dificultades tales como: detectar el obstáculo móvil, estimar la trayectoriadel obstáculo móvil y calcular la maniobra para evitar la colisión (ver algoritmo 3).Obviamente la detección es realizada a partir de las medidas del sensor, pero es necesario realizar un

emparejamiento de los obstáculos encontrados en cada instante de tiempo con los encontrados previamentepara identificar el tipo de obstáculo: fijo o móvil.

4.3.1 Detección de obstáculos

Cada medida del sensor láser está compuesta por una nube de puntos, resultado de hacer impactar un rayoláser contra las superficies que rodean al robot en un plano horizontal. Numéricamente, esto es un conjuntode puntos relativos al robot. En este texto se hará referencia a una medida individual o punto de la medidacomo uno de los puntos de dicha nube. De la misma forma, se hará referencia a la nube de puntos como una“medida”.Con el fin de realizar una identificación de los obstáculos captados por el sensor, cada punto de la medida

del sensor se compara con sus puntos vecinos. Si se detecta un cambio brusco en la distancia de los puntosal robot, se almacena un nuevo obstáculo en memoria. Cada obstáculo se define a partir de la lista de los

Page 29: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

4.3 Planificación local de caminos con obsáculos móviles 17

puntos de la medida que lo componen.Una vez todos los obstáculos han sido detectados, deben ser identificados como estáticos o móviles. La

primera vez que se avista un obstáculo no es posible decidir sobre su movilidad. Sin embargo, en posterioresiteraciones se realiza una identificación igual a la realizada y ahí sí es posible decidir si un obstáculo esmóvil o fijo.La figura 4.2 muestra un ejemplo de detección de obstáculos. Dicha figura ilustra también el seguimiento

y emparejamiento de obstáculos, explicado en la subsección 4.3.3. Con el propósito de clarificar la repre-sentación gráfica, el vehículo -y por tanto el sensor- se encontraba en estado de “hovering” (suspensión en elaire) durante el proceso de medida. Así, en dos medidas consecutivas, aparecen dos obstáculos que perma-necen en la misma posición respecto a un sistema externo y fijo. Sin embargo, aparece también un obstáculoque cambia su posición respecto al mismo sistema de referencia fijo.

Figura 4.2 Representación de dos medidas consecutivas del sensor láser en la que se han identificado tresobstáculos. Dos fijos y uno móvil.

Otro aspecto interesante a considerar es el tamaño de los obstáculos detectados. Este algoritmo trabajabajo la hipótesis de que los obstáculos móviles son de un tamaño similar al del propio vehículo que se estácontrolando. Por tanto, no está pensado para un gran obstáculo, como una pared, que se mueve. Lejos de serun inconveniente, esta hipótesis permite filtrar los obstáculos que pueden ser considerados como móviles.Además del motivo dado anteriormente, al ir recibiendo diferentes lecturas de una pared, el centro calculadoen la subsección 4.3.2 sufriría un movimiento apreciable a lo largo del tiempo y podría llevar a confusiónsi se considerara como un obstáculo móvil. Por todo esto, se realiza un filtrado en función del número delecturas individuales que describen el obstáculo.

4.3.2 Cálculo de los centros

Dado que los obstáculos móviles considerados son de pequeño tamaño, se ha considerado oportuno conside-rar el centro geométrico de las medidas individuales que pertenecen al obstáculo como su centro estimado.Se ha hecho uso de este centro para llevar a cabo un seguimiento de los obstáculos. Se admite que el centrocalculado y el real no serán iguales, pero este error se corrige teniendo en cuenta que el desplazamiento delos obstáculos móviles es perceptible y considerablemente mayor que este error.Si los obstáculos detectados no pertenecen a un sólo grupo continuo de medidas individuales, el algoritmo

Page 30: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

18 Capítulo 4. Descripción del método implementado

descrito detectará dos obstáculos distintos. Se observa que esto ocurre por ejemplo si se detectan dos piernasde una persona o, como es nuestro caso, otro vehículo aéreo. Con el fin de considerar sólo un obstáculo enestos casos, se realiza una fusión de los obstáculos que disten entre ellos una distancia menor que d f usion.

4.3.3 Seguimiento y emparejamiento de obstáculos

Cuando ya existen obstáculos detectados previamente mediante los bloques funcionales de los apartadosanteriores, es necesario comprobar si alguno de los obstáculos que se están percibiendo corresponden a losanteriormente vistos. Este paso no es trivial, pero si la frecuencia de recepción demedidas es suficientementealta en relación a la velocidad relativa del obstáculo respecto a la de nuestro vehículo, es posible realizar unseguimiento efectivo. Esta condición se cumple para las velocidades consideradas.El seguimiento se realiza buscando el obstáculo “antiguo” más cercano al actualmente encontrado. Si la

distancia entre ambos está dentro de unos límites fijados heurísticamente en función del rango de veloci-dades considerado, podemos decir que se trata de un obstaculo móvil. Así, por debajo de un umbral vmin

consideramos que el obstáculo no se ha movido y que el desplazamiento se debe a otras causas (ruido delsensor por ejemplo). Por otro lado, si el desplazamiento está por encima de otro umbral (dmax

match), se consideraque se trata de un obstáculo diferente.Es importante hacer notar que el resultado de los emparejamientos se va guardando en memoria durante

varias iteraciones para tener información de la trayectoria que va realizando cada obstáculo móvil.

Algorithm 3 Algoritmo de evitación de obstáculos móvilesDetección de obstáculosCálculo de sus centrosEmparejar cada obstáculo con los vistos previamenteif Obstáculo en movimiento thenExtrapolación de su trayectoriaif Colisión detectada thenPredecir las posibles trayectorias propiasElegir la más segura

end ifBorrar obstáculos móviles de las medidas

end if

Los obstáculos móviles pueden desaparecer de las medidas durante algunos instantes. Para evitar tener queidentificar varias veces el mismo obstáculo móvil, las medidas que caracterizan al obstáculo se almacenandurante un tiempo antes de desaparecer. Además, el sensor y el obstáculo móvil no están siempre en elmismo plano horizontal de forma exacta, por lo que esto también es útil. Si un obstáculo desaparecidovuelve a aparecer, se utilizan los datos previos para identificar al obstáculo.

4.3.4 Estimación de trayectorias

El siguiente paso es estimar la trayectoria de todos los objetos móviles detectados para detectar potencialescolisones. Se considera que una colisión ocurre cuando la separación entre dos vehículos es menor de unmetro. La trayectoria del obstáculo es extrapolada linealmentemediantemínimos cuadrados considerando unmáximo de tres medidas, por lo tanto la trayectoria se estima en 0,6 segundos comomáximo. Las ecuaciones4.1 a 4.4 describen la extrapolación realizada. Los parámetros Ax,Bx,Ay y By son los calculados mediantemínimos cuadrados.

x(t) = Ax · x(t)+Bx (4.1)

Page 31: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

4.3 Planificación local de caminos con obsáculos móviles 19

y(t) = Ay · y(t)+By (4.2)

x(0) = x0;y(0) = y0 (4.3)

. . .

x(nsq) = xnsq;y(nsq) = ynsq

(4.4)

El número de posiciones incorporadas en la regresión lineal nsq puede jugar un papel importante. Así,cuando la trayectoria del obstáculo es recta, los residuos obtenidos con tres o con cuatro posiciones sondespreciables. Sin embargo, si el obstáculo empieza a describir una curva, los residuos crecen y la estimaciónmediante una recta no es tan acertada. Dado que nos interesa tener una trayectoria estimadamás bien tangentea la real, es interesante bajar el número de lecturas utilizadas a tres. Otra posibilidad es aumentar el grado delpolinomio mediante el que se extrapola, pero implica tener más medidas (y más tiempo) y para un métodoque busca ser simple y poder ejecutarse en tiempo real no se ha considerado apropiado.En cuanto a la trayectoria del UAV controlado, se simula la trayectoria que el controlador y el modelo

impondrían para ir al waypoint que se esté siguiendo en el instante del cálculo. En la figura 4.3 se representala predicción de la trayectoria propia utilizando este método. Se ha representado la trayectoria que seguiríael UAV si se pusiera rumbo al waypoint original del plan de vuelo. Comparando esta trayectoria con latrayectoria predicha del obstáculo, se evalúa su peligrosidad.

Figura 4.3 Predicción de la trayectoria propia en puntos amarillos para ir al waypoint marcado con unaflecha roja.

Page 32: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

20 Capítulo 4. Descripción del método implementado

Es importante señalar que los obstáculos que hayan sido clasificados como móviles no son consideradosen el mapa. De esta forma, el algoritmo original1 sólo tiene en cuenta dicho obstáculo si se va a produciruna colisión, no generándose nodos extra de forma innecesaria. El apéndice C profundiza un poco más eneste aspecto.

4.3.5 Maniobra

Finalmente, la evitación de obstáculosmóviles debe ser calculada eficientemente para aplicaciones de tiemporeal. El objetivo es sustituir el waypoint al que se dirigía antes de realizar la maniobra de evasión por otro quepermita evitar la colisión. Este waypoint de evasión es recalculado en cada iteración. Para calcular este nuevowaypoint, se dispone un conjunto de waypoints candidatos alrededor de la posición actual, a una distanciadeterminada heurísticamente. Se simula la trayectoria que realizaría el UAV controlado si siguiera cada unode esos waypoints. La figura 4.4 muestra dos posibles waypoints de evasión y sus trayectorias asociadasdespués de detectar una colisión potencial entre dos vehículos.

Figura 4.4 Predicción de colisión y evaluación del waypoint intermedio más seguro considerando un obs-táculo móvil (en rojo).

Por lo tanto, tendremos un abanico de maniobras de evasión disponibles definidas por el conjunto dewaypoints candidatos. La elección del mejor waypoint no es tarea trivial. Para fomentar la seguridad y unabaja carga computacional se ha elegido el siguiente criterio: elegir el waypoint cuya trayectoria asociadaconlleve la mayor distancia mínima al obstáculo, teniendo en cuenta el tiempo.Existe la posibilidad de que el encuentro se vaya a producir inminentemente y no sea posible realizar una

maniobra de evitación sin un cambio de altura, de velocidad o del sentido de la marcha. En estos casos, elalgoritmo fuerza la parada del UAV y reanuda la marcha cuando el peligro ha pasado.En cualquier caso, la maniobra no se basa simplemente en la asignación permanente de un único way-

point intermedio, ya que la situación podría mejorar o empeorar por un cambio de trayectoria del obstáculo.La idea es revisar el estado de la colisión en cada iteración del algoritmo y actuar en consecuencia. Lascomprobaciones que se realizan son las siguientes, en orden de prioridad descendente:

• ¿Es posible llegar al waypoint original de forma segura? Esto se comprueba simulando la trayectoriapropia si se eligiera ir al waypoint original (igual que en la figura 4.3) y también la trayectoria del

1El que sólo considera obstáculos fijos.

Page 33: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

4.3 Planificación local de caminos con obsáculos móviles 21

obstáculo móvil. Si se predice que en todo momento los UAVs se encontrarán a más de una distanciadmin

WP entre ellos, se pone rumbo al waypoint original.

• ¿Es posible mantener el waypoint de maniobra calculado anteriormente de forma segura? Esta com-probación se realiza de igual forma a la anterior, pero el waypoint que se tiene es el de maniobragenerado previamente. Si la mínima distancia entre los UAVs es mayor que dmin

WP_man, se considera quela trayectoria es segura y se mantiene dicho waypoint de maniobra. En caso contrario, se calcula unnuevo waypoint de maniobra. Este waypoint sustituye al de la iteración anterior, que es desechado.

Page 34: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3
Page 35: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

5 Detalles de implementación

Este capítulo muestra las dos implementaciones del algoritmo hechas. Primero se implentó en Matlab ydespués en el entorno ROS.

5.1 Implementación en Matlab

En la tabla 5.1 están resumidos los pros y los contras de utilizar Matlab, todo ello particularizado para laaplicación que nos ocupa.

Tabla 5.1 Ventajas e inconvenientes de programar en Matlab.

Ventajas Inconvenientes

Es un entorno conocido y familiar Lenguaje de programación diferente al de ROSSentencias sencillas y fácil uso de vectores Tiempos de cálculo relativamente altos

Se dispone de funciones para búsqueda en grafos No se dispone de algoritmo A* implementadoFacilidad de representación de mapas 2D

Es importante notar que hasta aquí sólo se han considerado escenarios con obstáculos fijos. La inclusiónde obstáculos móviles en Matlab no tenía mucho sentido porque significaba complicar la simulación sepa-rándonos de una posible experimentación futura. Por este motivo, se tomó la decisión de pasar a ROS elalgoritmo.

5.2 Implementación en ROS

La tabla 5.2 muestra las bondades de ROS y sus inconvenientes, particularizado a la aplicación que nosocupa.

Tabla 5.2 Ventajas e inconvenientes de programar en ROS.

Ventajas Inconvenientes

Simulaciones muy realistas Necesario aprendizaje por sus peculiaridadesModelos de robots [39] y de sensores [40] disponibles Necesario saber utilizar Linux

Paso de simulación a experimentación directo Necesario saber programar en C++ y/o PythonComunicación entre procesos (nodos) intuitiva Necesario buscar una librería para utilizar grafosFacilidad de representación 3D con marcadores Necesario diseñar escenarios en 3D

23

Page 36: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

24 Capítulo 5. Detalles de implementación

Si bien es cierto que existe una versión de ROS para windows [38], el soporte y las funcionalidades noson completas a día de hoy, pues está aún en desarrollo. Por lo tanto se optó por utilizar la versión Fuertede ROS bajo Ubuntu 12.04 (Precise Pangolin) [49]. Se eligió programar en C++ por ser un lenguaje másconocido que Python por el autor.Se realizaron algunos cambios en la implementación bajo ROS respecto a la realizada en Matlab:

• Se utilizó un mapa local referido al robot en lugar de un mapa global como en Matlab. La razón dehaber usado anteriormente un mapa global es que el mapa era importado como una imagen, por loque era la alternativa más simple y eficiente para la simulación.

• Las simulaciones son en tiempo real. Esto implica realismo, pero también retrasa las simulaciones, yaque en Matlab las simulaciones eran aceleradas. Además, en Matlab cada iteración comenzaba justodespués de la anterior, de manera que era indiferente el tiempo que tardara cada iteración.

• Al tratarse de un mapa local, no existen las celdas inexploradas que existen en la implementación deMatlab.

• Se hizo necesario el uso de una librería externa en C++ para utilizar el algoritmo de Dijkstra demanera eficiente. Se valoraron dos opciones: la librería Boost (BGL) [22] y la librería LEMON [23].Se optó por LEMON por la extensión y calidad de sus tutoriales. En esta librería está disponible elalgoritmo de Dijkstra y el de Bellman-Ford, pero no dispone de otros algoritmos de búsqueda delcamino más corto en grafos como A* o D* [12]. Por tanto, sería necesario cambiar de librería o haceruna implementación propia si se quisiera utilizar otro algoritmo de búsqueda.

Partiendo desde un programa (nodo) de funcionalidades idénticas al obtenido en Matlab, se ampliaron lascapacidades del sistema en varios sentidos:

• Resolución del mapa. En Matlab las celdas eran forzosamente de 1x1m, mientras que en esta im-plementación, con mayores aires de realismo, se ha permitido configurar la resolución del mapa. Elapéndice B profundiza en este aspecto.

• Obstáculos móviles. La contemplación de obstáculos móviles en el algoritmo es el gran cambio rea-lizado en la implementación de ROS. En el apéndice C se analiza la necesidad de esta ampliación.

• Parada de emergencia. Resulta especialmente útil en el caso de que haya obstáculos móviles. Es ciertoque en simulación no existen pérdidas materiales, pero se ha considerado oportuno considerar unaparada de emergencia si la situación lo requiere, de cara a futuros experimentos.

5.2.1 Configuración de RViz

Un apartado importante para verificar los resultados del algoritmo es la representación gráfica. Si bien elprograma que realiza la simulación con el modelo del robot, el entorno y los sensores es Gazebo, se ha hechouso de RViz como software de visualización. En esta subsección se explica la configuración típica que se hausado en este trabajo. Se ha hecho uso de los siguientes elementos o capacidades de RViz:

• Transformadas (TF). RViz permite recibir el árbol de transformadas entre los distintos sistemas dereferencia que se tengan y representar las posiciones espaciales (3D) de cada uno de ellos. En nuestrocaso, se tiene un sistema global fijo /map, un sistema móvil para cada vehículo de la simulación(/UAV1, /UAV2...) y un sistema móvil extra para el sensor láser de cada quadrotor (sean todos lossensores utilizados o no).

Page 37: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

5.2 Implementación en ROS 25

• Escáner láser (LaserScan). Leer los números de un barrido láser no resulta intuitivo. Con esta caracte-ristica de RViz podemos visualizar de forma práctica las lecturas que está devolviendo el sensor láser.Para representar este tipo de marcador es necesario que el árbol de transformadas esté definido y searecibido por RViz a través del topic /tf.

• Modelo del robot (RobotModel). Permite la representación de un modelo tridimensional del robot,posicionado en las coordenadas que indique su transformada. Puede utilizarse este modelo en lugar derepresentar el sistema de referencia del robot, de forma que el resultado sea más estético. Es necesarioindicarle a RViz el modelo de robot que debe cargar. Puede duplicarse para simular dos UAVs.

• Trayectoria (Odometry). Con este elemento activado, el vehículo deja una estela de flechas que indicanla sucesión de posiciones y movimientos que ha realizado. Aunque el tipo de mensaje sea Odometry,está configurado para funcionar recibiendo la posición medida por el sistema de localización VICONdel testbed para múltiples UAVs del Centro Avanzado de Tecnologías Aeroespaciales (CATEC), porlo que no utiliza información de odometría realmente. Otro marcador idéntico ha sido utilizado en elcaso de tener dos UAVs en la simulación.

• Mapa 3D (Marker). Los denominados Markers pueden configurarse para tener formas diversas (pun-tos, flechas, texto, cubos...). En este caso se ha configurado un marcador para la representación de unamalla tridimensional que representa el escenario. Esta malla está definida mediante el mismo archivoSTL que acepta Gazebo. Con este y los anteriores marcadores tenemos ya una representación bastantebuena del experimento.

• Nube de puntos (PointCloud). Representa una nube tridimensional de puntos. Ha sido usado pararepresentar las lecturas del sensor mediante nube de puntos. Dado que realiza la misma función queLaserScan, es prescindible. Para hacer uso de este marcador, es necesario transformar la lectura láser(información de distancias y ángulos desde el sensor) a una nube de puntos.

• Estructura del testbed (Marker). Al igual que para la representación de los obstáculos, se ha repre-sentado la estructura reticulada que rodea el testbed de CATEC. Aunque el resultado es bastante con-vincente realmente dificulta la visualización y, de forma más importante, ralentiza notoriamente larepresentación gráfica debido a las limitadas capacidades del ordenador utilizado.

• Objetivo (Pose). Con este marcador se representa la posición del objetivo del plan de vuelo que estáactivo en cada instante. La representación del tipo Pose es una flecha, así que se ha tomado la base dedicha flecha como el punto que se desea representar, sin importar la dirección o longitud de la flecha.

• Objetivo temporal (Pose). Es del mismo tipo que el elemento anterior y representa el waypoint inter-medio que en cada iteración calcula el algoritmo. Si el camino directo no está impedido, coincidirácon el marcador anterior.

• Mapa interno (Map). Es un marcador especialmente interesante. En la implementación de Matlab sehacía uso de una matriz global que actuaba de mapa, y el vehículo era el que se movía en el mapa.Además, era posible realizar la simulación paso a paso de forma controlada por el teclado. Sin em-bargo, se tomó la decisión de utilizar en ROS un mapa local en lugar de uno global. Al ser el mapalocal y además móvil, representar por consola los valores numéricos de cada celda de la matriz resultaextremadamente incómodo y nada práctico. Este marcador viene a resolver estas dificultades haciendoexactamente eso, representar un mapa móvil en escala de grises. Así pueden verse la localización ytipo de las celdas que existen en el mapa en cada iteración.

Page 38: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

26 Capítulo 5. Detalles de implementación

Un inconveniente de este marcador ha sido su aceptación de, como máximo, tres tonos de gris diferen-tes. Esto distaba de ser una buena representación, así que se optó por editar el código fuente de RVizy recompilar. Debido a problemas de permisos para compilar un programa perteneciente a la carpeta/opt/, se ha optado por copiar el paquete rviz e introducirlo en el workspace habitual.

• Rejilla (Grid). Con el fin de proporcionar una medida de la escala del escenario, se utiliza una rejillacon celdas de 1x1m.

• Colisiones con obstáculos móviles (Pose). Si se está llevando a cabo una simulación con obstáculosmóviles, puede usarse este marcador para visualizar la posición de una potencial colisión detectada.De igual forma, puede hacerse uso (y se ha hecho) de marcadores comoMarkerArray para representarlas posibles maniobras de evasión, o las trayectorias predichas de cada vehículo.

Todo este conjunto de marcadores implican un gran flujo de información entre RViz y el resto de nodos,ya sea con Gazebo, el nodo principal de planificación u otros nodos auxiliares. En la figura 5.1 puede verseun grafo que muestra los topics que comunican los nodos de una simulación de un UAV en un escenario deobstáculos fijos.

Figura 5.1 Grafo de comunicación entre nodos.

5.2.2 Parámetros heurísticos

El método desarrollado hace uso de parámetros cuyo valor puede ser variado según los escenarios paraobtener unos resultados u otros. El apartado de obstáculos móviles es uno de los bloques que más parámetrosheurísticos contiene. Al comienzo de este documento, en Notación, pueden encontrarse los significados decada parámetro utilizado. La tabla 5.3 recoge los principales parámetros utilizados junto a valores típicosque han dado buenos resultados.Es necesario tener en cuenta que, si bien es posible ajustar en cierta medida los parámetros mencionados,

debe hacerse con ciertos criterios. Así, si se disminuye la frecuencia de planificación f aumentará la distanciaque separará las dos lecturas pertenecientes a un mismo obstáculo móvil y será conveniente ajustar los

Page 39: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

5.2 Implementación en ROS 27

umbrales de detección para obstáculos móviles. De igual forma, si se dispone de un rango del sensor mayorpuede generarse un comportamiento más conservador aumentando los umbrales dmin

WP y dminWP_man.

Tabla 5.3 Parámetros determinados heurística-mente.

Parámetro Valor típico

v 0,5÷1,5m/sf 2÷10Hz (5Hz recomendado)

rmaxsensor 5÷30m|ψmax| 0,4÷1,0rad/s

nsq 2÷4rmin

det 0,5÷1,5md f usion 0÷0,4mdmax

match 0,4÷1,5mnmax

obs 4÷12vmin 0,08÷0,15mvmin

2 0,12÷0,22mdmin

WP 1,0÷3,0mdmin

WP_man 1,0÷2,0m

Page 40: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3
Page 41: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

6 Simulaciones

Son vanas y están plagadas de errores las ciencias que no hannacido del experimento, madre de toda certidumbre.

Leonardo Da Vinci.

Este capítulo presenta las simulaciones realizadas tanto en Matlab como en el simulador Gazebo (dis-ponible en ROS). Cada una de las simulaciones incluye un comentario, capturas de las trayectorias

realizadas, y una tabla con los parámetros que se han tomado.

6.1 Simulaciones en Matlab

Las primeras simulaciones que se llevaron a cabo fueron enMatlab. Todos los mapas que han sido utilizadosse dibujaron con una tableta digitalizadora Wacom® Bamboo y se guardaron como imágenes en blanco ynegro en formato de mapa de bits (BMP). De esta forma es fácil y rápido crear mapas que se ajusten alas necesidades concretas de la simulación. Cada píxel de la imagen representa una celda del mapa. Así,los píxeles blancos corresponden a celdas de obstáculo, y los píxeles negros a celdas libres. La imagen esposteriormente importada en Matlab como una matriz que sirve de mapa global fijo en el que se moverá elrobot. Es importante recalcar que el algoritmo sólo utiliza nodos en el espacio analizado por los sensores,independientemente del contenido del mapa global. La función de dicho mapa global es sólo de apoyo parala simulación en Matlab.A continuación, se presentan las simulaciones realizadas considerando diferentes mapas.

6.1.1 Sevilla

Este escenario está inspirado en un mapa de la ciudad de Sevilla. Se trata de un escenario de 200x200m conobstáculos grandes y pasillos estrechos. Se muestran cuatro simulaciones en este escenario, en las cuales sevaría el alcance del sensor para comprobar sus efectos. La tabla 6.1 contiene los parámetros utilizados enlas simulaciones.La figura 6.1 muestra el escenario considerada. Los obstáculos se muestran en azul claro, el espacio libre

en azul oscuro, la posición inicial en naranja y la posición final en rojo oscuro.Resulta curioso observar el papel que juega el alcance del sensor en las trayectorias realizadas. Así, no

necesariamente un sensor de mayor alcance proporciona el camino más corto. Esto se debe al carácter localde la planificación. El camino más corto de las simulaciones que se presentan se obtiene en la simulación2* con rmax

sensor = 15m, que se muestra en la figura 6.2.

29

Page 42: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

30 Capítulo 6. Simulaciones

Tabla 6.1 Parámetros utilizados.

Parámetro Simulación 1 Simulación 2 Simulación 2* Simulación 3

v 2m/s 2m/s 2m/s 2m/sDseg 2 2 2 2

rmaxsensor 20m 15m 15m 5m

(i0, j0,ψ0) (40,50,0) (40,50,0) (40,50,0) (40,50,0)(i f , j f ) (195,190) (195,190) (195,190) (195,190)

f 2Hz 2Hz 2Hz 2HzDistancia recorrida 300m 273m 269m 301m

Tiempo medio por iteración 0,1250s 0,0825 0,1061 0,0382s

Figura 6.1 Mapa inspirado en la ciudad de Sevilla.

Las figuras 6.2 y 6.3 muestran las trayectorias calculadas en las simulaciones 2 y 3. Las trayectoriasseguidas se representan en línea roja, las celdas inexploradas en celeste, las celdas de tipo nodo en verde,las de obstáculo virtual en rojo oscuro, las libres en azul oscuro y las de obstáculo en un azul intermedio.La simulación denotada por el número 2* se diferencia de la simulación 2 en que se ha desactivado el

bloque de purga o selección de los nodos que se utilizan en la búsqueda que realiza el algoritmo de Dijkstra.Se observa que la trayectoria generada por el algoritmo cuando se utilizan todos los nodos es en generalmás corta que la generada al considerar un número inferior de nodos, lo cual es deseable. Sin embargo, elobjetivo principal de este método es ser aplicable en tiempo real y requerir tiempos de computación muybajos. Por este motivo, se ha optado por utilizar menos nodos que los que se generan inicialmente. Nóteseel incremento en los tiempos de simulación al considerar todos los nodos generados en la simulación 2*.También se observa que el tiempo de computación disminuye al reducir el alcance del sensor.Se muestran a continuación dos pruebas del funcionamiento del algoritmo para concluir los resultados del

método de selección de nodos. Al realizar la simulación 2 sin selección de nodos se obtiene la gráfica azulde la figura 6.4, mientras que si se realiza la misma simulación seleccionando los nodos de las esquinas seobtiene la gráfica roja. Puede observarse como el número de nodos del grafo generado es considerablementeinferior con esta técnica. No obstante, también se observa que la solución obtenida al considerar todos losnodos recorre una menor distancia y llega en un número menor de iteraciones al objetivo. La figura 6.5

Page 43: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

6.1 Simulaciones en Matlab 31

Figura 6.2 Simulación 2.

Figura 6.3 Simulación 3.

muestra una simulación similar en ROS. En este caso se ha llevado a cabo la simulación de la subsección6.2.1 seleccionando los nodos que se van a utilizar, y se han representado el número de nodos utilizados y losque existían inicialmente. Es decir, para esta figura sólo se ha realizado una simulación, y no dos diferentescomo en la figura 6.4. Como es lógico, en la figura 6.5 el número de iteraciones en total coincide y la gráficaroja siempre está por debajo de la azul.

6.1.2 Laberinto

Dado que el algoritmo es capaz de resolver correctamente escenarios de relativa complejidad aplicandoplanificación local, se ha dado un paso más con este escenario de tipo laberinto. Se trata de un escenario de200mx200m en el que frecuentemente no es posible utilizar las estrategias más prioritarias1 y el algoritmo

1El orden de prioridad es: trayectoria directa, mantener orientación, algoritmo de Dijkstra y seguimiento de paredes.

Page 44: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

32 Capítulo 6. Simulaciones

Figura 6.4 Número de nodos utilizados por el algoritmo de Dijkstra con selección de nodos (azul) y sinella en simulación 2 del escenario de Sevilla en Matlab.

Figura 6.5 Número de nodos utilizados por el algoritmo de Dijkstra con selección de nodos (azul) y sinella en simulación de Gazebo.

recurre al seguimiento de paredes. Se ha propuesto una ruta única y se varían los parámetros de la simulaciónpara observar los comportamientos del algoritmo.

La figura 6.6 presenta la trayectoria obtenida en la simulación 1. Los parámetros utilizados en las simu-laciones, así como los resultados obtenidos se presentan en la tabla 6.2.

En esta simulación los tiempos de computación son, con un buen margen, aptos para una aplicación detiempo real. La velocidad v y la frecuencia de planificación f no han sido modificados por cuestiones decomodidad en la simulación con el espacio discretizado.

Page 45: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

6.2 Simulaciones en ROS 33

Tabla 6.2 Parámetros utilizados.

Parámetro Simulación 1 Simulación 2 Simulación 3

v 2m/s 2m/s 2m/sDseg 5 3 5

rmaxsensor 20m 20m 30m

(i0, j0,ψ0) (187,10,0) (187,10,0) (187,10,0)(i f , j f ) (154,175) (154,175) (154,175)

f 2Hz 2Hz 2HzDistancia recorrida 283m 278m 275m

Tiempo medio por iteración 0,0693s 0,0940s 0,1450s

Figura 6.6 Trayectoria obtenida en la simulación 1 en escenario complejo de tipo laberinto.

6.2 Simulaciones en ROS

Se han realizado muchas simulaciones en un entorno realista que simula el testbed multi-UAV de CATEC(ver figura 6.7). ROS ha sido utilizado para probar el algoritmo desarrollado en este trabajo. Puede verse laapariencia del testbed simulado en la figura 6.8. Las dimensiones de dicho escenario son 15x15x4m.El algoritmo ha sido ejecutado en un portátil HP ProBook 4520s equipado con procesador IntelTM Ce-

leron P4500 (1,87GHz), 4GB de RAM y una tarjeta gráfica integrada Intel HD 4000. El sistema operativoutilizado es Ubuntu 12.04. El código fue escrito en lenguaje C++ y se integró en la distribución Fuerte deROS. El modelo dinámico del quadrotor que se ha utilizado está basado en el paquete Hector-quadrotor deROS [4]. El sensor láser utilizado para detectar los obstáculos es un Hokuyo UTM-30LX[47], cuya precisiónes de ±30mm para medidas entre 0,1 y 10m y ±50mm para medidas entre 10 y 30m. La resolución angulares de 0,25◦. El alcance es de 30m y cubre un ángulo de 270◦.Es importante señalar que el testbed de CATEC está integrado conROSFuerte y que se utiliza exactamente

la misma arquitectura de nodos de ROS para simulación y para experimentación. Esto hace que el cambioentre simulación y experimentación sea directo y disminuye los posibles errores en la transición.Se han considerado escenarios con obstáculos tanto móviles como fijos para probar el algoritmo propues-

to. Ambos tipos de simulaciones han sido realizadas en el mismo ordenador. Pueden verse ejemplos en vídeodel comportamiento en simulación en tiempo real del algoritmo en: http://www.youtube.com/0grvc0 .

Page 46: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

34 Capítulo 6. Simulaciones

Figura 6.7 Testbed multi-UAV en las instalaciones de CATEC.

Figura 6.8 Testbed simulado en ROS Fuerte.

La distancia mínima de seguridad Dseg que se admite es 1m, la velocidad v es 0,5m/s y la velocidad degiro ψ está limitada inferiormente a −0,7rad/s y superiormente a 0,7rad/s. La frecuencia de ejecución f

es 5Hz.

6.2.1 Mapa estático denso

Se presenta en esta subsección un conjunto de simulaciones para demostrar el comportamiento del algorit-mo en escenarios densamente poblados de obstáculos fijos. Los parámetros que han sido modificados paradiferenciar las simulaciones son la velocidad, que toma los valores 0,5, 1,0 y 1,5m/s, y los obstáculos delentorno. Así, se han considerado tres casos de escenarios (ver figura 6.9). El primero contiene un mapacompleto, en el segundo se consideran todos los obstáculos salvo el etiquetado como 1 y en el tercero han

Page 47: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

6.2 Simulaciones en ROS 35

sido eliminados los obstáculos 1 y 2. La combinación de parámetros utilizados se muestran en la tabla 6.3,junto a los tiempos de computación por iteración obtenidos.

La figura 6.9 muestra las trayectorias voladas a 0,5m/s. El plan de vuelo está definido por una secuenciade waypoints (círculos verdes numerados) que el quadrotor debe seguir, a la vez que evita los obstáculos delentorno. La trayectoria solución para el primer caso se muestra en color azul. Los dos pasillos que rodean alobstáculo numerado como 1 son demasiado estrechos para ser atravesados sin riesgo debido a la distanciade seguridad impuesta. Por consiguiente, el algoritmo decide rodear el obstáculo de forma triangular.

Tabla 6.3 Tiempos de computación para las nueve simulaciones realizadas.

Escenario v = 0,5m/s v = 1,0m/s v = 1,5m/s

Mapa completo 43±39ms 43±39ms 43±38 msSin obstáculo 1 44±38ms 42±37 ms 45±41 ms

Sin obstáculos 1 y 2 40±37 ms 40±37 ms 47±39 ms

Figura 6.9 Trayectorias solución calculadas en entorno estático y denso, mostradas en azul.

La trayectoria solución calculada en el segundo caso se muestra en línea roja. En este caso el algoritmocalcula una trayectoria diferente y dirige al vehículo entre el obstáculo 2 y el obstáculo triangular. Finalmente,la línea verde muestra la trayectoria solución cuando se eliminan los obstáculos 1 y 2. Lógicamente, estecamino es el más corto de los tres que se muestran porque existe más espacio libre y por tanto menos peligrode colisión. Los tiempos de ejecución para planificar un camino se muestran en la tabla 6.3 y varios vídeosse encuentran disponibles en el mencionado canal de Youtube.

El histograma de los tiempos de ejecución por iteración del algoritmo para la simulación del mapa com-

Page 48: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

36 Capítulo 6. Simulaciones

Figura 6.10 Histograma de tiempos de ejecución por iteración para simulación con mapa completo. Lavelocidad es 0,5m/s.

pleto (primer caso) y v = 0,5m/s se muestra en la figura 6.10. Estos tiempos están siempre por debajo de0,2s, que es el límite impuesto por la frecuencia de planificación, 5Hz. Esto demuestra que el algoritmo esmuy adecuado para aplicaciones de tiempo real y que puede ser ejecutado en cada iteración para calcular unplan de vuelo y alcanzar el objetivo.

6.2.2 Evitación de obstáculos móviles

Se han realizado muchas simulaciones con dos quad-rotors. En este tipo de simulaciones, un quadrotor llevauna ruta fija y no cambiará su trayectoria en función de los obstáculos que pueda encontrar. El otro quadrotorutiliza el algoritmo propuesto para seguir su propio plan de vuelo y además evitar al otro quadrotor cuandose vaya a producir una colisión. Las simulaciones consideran distintas trayectorias que se corten numerosasveces y la duración es del orden de diez minutos para probar la fiablidad y seguridad del algoritmo.La figura 6.11 muestra una simulación realizada. Cada quadrotor vuela su trayectoria durante siete minu-

tos. Siete colisiones son detectadas y todas son resueltas. El quadrotor QR1 añade waypoints intermedios asu plan de vuelo para evitar las colisiones con el quadrotor QR2. En la figura 6.12 se representa la separaciónde ambos quadrotors en función del tiempo.Puede observarse cómo QR1 evita una colisión con QR2 en la figura 6.13. Se representan cuatro instan-

tes de tiempo para ver la maniobra realizada. La colisión se representa por un círculo rojo y el waypointintermedio calculado por QR1 se representa como un círculo verde.El histograma de los tiempos de computación de esta simulación se muestran en la figura 6.14. El tiempo

medio es 41ms y la desviación típica es 37ms. Podemos concluir por tanto que, al igual que en la simulaciónanterior, el algoritmo es muy adecuado para aplicaciones en tiempo real. Además, los tiempos obtenidosson menores que los obtenidos cuando se consideran obstáculos fijos, ya que se generan menos nodos en elgrafo de visibilidad.

Page 49: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

6.2 Simulaciones en ROS 37

Figura 6.11 Escenario con dos quadrotors y planes de vuelo: QR1 (círculos verdes) y QR2 (círculos rojos).Sólo QR1 puede cambiar su trayectoria para evitar colisiones con QR2.

Figura 6.12 Distancia entre los dos UAV durante la simulación en azul y mínima distancia de seguridaden rojo.

Page 50: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

38 Capítulo 6. Simulaciones

Figura 6.13 Evitación de obstáculo móvil considerando el escenario de la figura 6.11.

Figura 6.14 Histograma del tiempo de computación por iteración.

Page 51: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

7 Conclusiones y trabajo futuro

En este capítulo se exponen las conclusiones que han sido alcanzadas tras la finalización de este ProyectoFin de Grado, acompañadas de ideas que quedan propuestas como futuras líneas de trabajo.

7.1 Conclusiones

Se ha presentado un algoritmo de planificación local de caminos considerando UAVs en entornos descono-cidos. El algoritmo es capaz de calcular una trayectoria solución para un vehículo considerando obstácu-los estáticos y móviles. La principal ventaja del método propuesto es su bajo coste computacional, que loconvierte en apto para aplicaciones de tiempo real. La construcción del mapa para modelar los obstáculosestáticos juega un papel importante en el método propuesto porque minimiza el número de nodos generadosen el grafo de visibilidad.El algoritmo ha sido primero desarrollado enMatlab, donde se han llevado a cabo numerosas simulaciones

de creciente complejidad. Una vez la implementación hecha enMatlab llegó a un nivel de calidad apropiado,se procedió a la implementación del algoritmo bajo el entorno ROS.El algoritmo ha sido integrado en ROS y simulado en Gazebo considerando un modelo dinámico de

quadrotor basado en el implementado en el paquete Hector-quadrotor de ROS [4]. Se han llevado a cabosimulaciones en un entorno realista que simula el testbed multi-UAV de CATEC. Además, el algoritmo hasido integrado en ROS con la misma arquitectura de nodos utilizada en el testbed de CATEC. Por tanto, seríafácil realizar experimentos reales en este testbed.Los resultados obtenidos mejoran los presentados en [20]. Los tiempos de ejecución y desviación típica

obtenidos son menores a los obtenidos por el método SPARTAN. Además, el trabajo presentado consideraobstáculos móviles.De forma adicional, se ha publicado un artículo científico[50] basado en los contenidos de este proyecto

en el WAF (Workshop of Phyisical Agents) 2014, celebrado en León (España).

7.2 Trabajo futuro

Si bien el trabajo realizado ha tenido un amplio horizonte, siempre es necesario fijarse nuevas metas. En estasección se exponen las posibles mejoras y ampliaciones que podrían realizarse sobre el trabajo realizado:

• Sustitución del sensor. Podría sustituirse el sensor láser bidimensional por uno que aportara informa-ción 3D y pudiera ser llevado abordo del UAV.

• Más maniobras. Sería posible modificar el valor de la velocidad lineal v con fines de optimización

39

Page 52: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

40 Capítulo 7. Conclusiones y trabajo futuro

o para facilitar la evitación de colisiones con obstáculos móviles. También sería posible considerarcambios de altura del UAV, pero esto conllevaría la sustitución del sensor por otro, o el uso de sensoresadicionales.

• Integración con un sistema de planificación global. Sería deseable contar con alguna información delentorno para guiar la planificación local. Si esto no fuera posible, también podría integrarse con unsistema de SLAM para la construcción de un mapa. De esta forma, el algoritmo gozaría de mayorinteligencia y resolvería más eficientemente, en términos de distancia recorrida, los escenarios com-plejos.

• Coordinación. El método desarrollado es válido para UAVs individuales y puede ser aplicado a dis-tintos UAVs por separado, pero no contempla acciones coordinadas entre varios vehículos.

• Sustitución del algoritmo de Dijkstra. Aunque los tiempos de computación obtenidos son muy buenosy aptos para la aplicación de tiempo real que nos ocupa, el algoritmo deDijkstra resultamenos eficienteque otros como el A*.

Page 53: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

8 Agradecimientos

Este trabajo ha sido respaldado por el Proyecto ARCAS, financiado por la Comisión Europea bajo elprograma FP7 ICT (ICT-2011-287617).

Al autor le gustaría agradecer especialmente a José Antonio Cobano su ayuda a nivel conceptual. AAníbalOllero por sus tareas de dirección y por la confianza que ha depositado en mí. También a David Alejo, porsu ayuda con la implementación en ROS, los detalles de programación y la depuración de errores.

41

Page 54: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3
Page 55: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

Apéndice A

Trazado de rectas

Puede parecer una trivialidad hablar del trazado de rectas, ya que en cuanto a dibujo lo hacemos confacilidad y matemáticamente con incluso mayor facilidad. Sin embargo, hemos de recordar que esta-

mos trabajando con una rejilla o grid con celdas de tamaño bastante superior a la distancia que usaríamospara discretizar una recta. Así, típicamente podríamos tomar un valor de 0,001m de resolución de la rectamientras que nuestras celdas son de un tamaño del orden de los centímetros. Esto implicaría comprobarnumerosas veces una misma celda, provocando un retraso sin sentido alguno.

Dado que este trabajo busca un método eficiente para el cálculo de trayectrias en tiempo real, es necesarioajustar la precisión con la que se trazarán las rectas. Además, la funcionalidad del trazado de rectas se usamultitud de veces a lo largo del tiempo en el algoritmo. Por tanto, una función lenta para el cálculo de rectasprovocará que el algoritmo sea lento. En el caso opuesto, una función que calcule la recta sin mucho detallepodría dar resultados incorrectos. Este aspecto se trata en la sección A.1 de este apéndice.

Además de la eficiencia de la función que calcule las rectas, debemos preocuparnos por el número decomprobaciones que son necesarias para el buen funcionamiento del algoritmo. Este aspecto se desarrollaen la sección A.2 de este apéndice.

A.1 Ecuación de la recta

Otro dilema que nos puede surgir se refiere a la ecuación que debe usarse para el cálculo de los puntos de larecta. Matemáticamente, cualquiera tiene destreza como para utilizar indistintamente una ecuación u otra.Sea (i0, j0) el punto inicial de la recta, (i f , j f ) el punto final y (i, j) las variables correspondientes a fila ycolumna respectivamente, la ecuación punto-pendiente de la recta corresponde a la ecuación (A.1).

j = j0 +j f − j0i f − i0

· (i− i0) (A.1)

Los valores i0, j0, i f y j f son números enteros, mientras que i y j son valores reales. Para evaluar el valorde la celda posicionada en (i,j) será necesario realizar un redondeo. Si bien la ecuación (A.1) puede ser usadapara algunos valores, deja de ser interesante cuando i f → i0. En el caso de que i f sea igual a i0, se produceuna singularidad por división entre cero y la función es incapaz de realizar su cometido.

Un parche para aliviar esta situación es detectar la situación antes de realizar la división y hacer uso de laecuación (A.2), que se obtiene de utilizar las columnas (j) como variable independiente y las filas (i) comovariable dependiente. Nótese que esta ecuación tampoco puede ser usada en todos los casos, ya que tiene

43

Page 56: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

44 Apéndice A. Trazado de rectas

otra singularidad cuando j f es igual a j0.

i = i0 +i f − i0j f − j0

· ( j− j0) (A.2)

Con el fin de solucionar estas singularidades matemáticas que provocan que el programa no pueda con-tinuar, se ha hecho uso de la ecuación vectorial de la recta, definida de forma general en (A.3). Siendo(x0,y0) el punto inicial, (vx,vy) el vector que une los puntos inicial y final y k la variable independiente.Particularizando esta ecuación a nuestra aplicación, quedan las ecuaciones escalares (A.4) y (A.5).

(x,y) = (x0,y0)+ k · (vx,vy) (A.3)

i = i0 + k · vi (A.4)

j = j0 + k · v j (A.5)

A.2 Metodo para trazar rectas entre los nodos

Como se menciona en el capítulo 4, es necesario comprobar la conectividad de cada uno de los nodos quecomponen el grafo para poder ejecutar posteriormente el algoritmo de Dijkstra. Para ello se plantean dosopciones: el método que ha sido denominado en este trabajo como “a ciegas” y el método utilizado, queevalúa la conectividad de cada nodo con el resto. En esta sección se realiza una comparativa entre ambasposibilidades y se justifica la elección realizada.

A.2.1 Método 1: a ciegas

Este método consiste en trazar un haz de rectas que pasen por cada uno de los nodos. Para cada una de esasrectas, se comprueba si es posible la conexión entre el nodo de partida y otro nodo, sin atravesar ningunacelda de obstáculo.Este método puede funcionar mejor o peor en función de la situación de los nodos, del número de rectas

que se hagan pasar por cada nodo, de la precisión con que se calculen y de la resolución del mapa. En lasubsección A.2.3 se compara este método con el implementado en este trabajo.

A.2.2 Método 2: todos con todos

Puesto que se conoce la posición de todos los nodos antes de verificar las conexiones que cada uno de ellostiene con los demás, se ha optado por hacer uso del listado de nodos que se tienen. De esta forma, sólo secomprueban los segmentos de recta situados entre dos nodos. Además, se evitan repeticiones innecesarias.Así, si se ha comprobado ya la conexión entre los nodos A y B, no se comprobará la conexión entre B y A,pues es idéntica y además incrementaríamos el tiempo de computación tontamente. De igual forma, no secalculan las rectas entre un nodo y sí mismo, pues la solución es trivial y sin interés.

A.2.3 Comparativa

Vistos ambos métodos, queda decidir cuál será el utilizado. Por encima del resto de criterios que podamostener, en la aplicación que nos ocupa el más importante es el tiempo de computación. Se pretende demostrar,bajo una serie de hipótesis, cuál es el mejor método. Las hipótesis de partida son:

Page 57: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

A.2 Metodo para trazar rectas entre los nodos 45

• t ≈K ·Comprobaciones. El tiempo de computación dedicado a esta parte del algoritmo es proporcionalal número de rectas calculadas en ambos métodos.

• El tiempo de computación para las rectas de ambos métodos es asumiblemente parecido. La fun-ción que calcula las rectas es la misma en ambos métodos. Sin embargo, si dicha función encuentraun obstáculo de forma temprana, reducirá el tiempo de computación. Se asume que dicho efecto esdespreciable.

• El tiempo de computación para las rectas de un mismo método es asumiblemente parecido.

• n ∼ 100, siendo n el número de rectas pertenecientes al haz de rectas que pasa por un nodo en elmétodo 1. Se estima que n debe ser de tal orden para asegurar que el método funciona en los escenariosplanteados.

Entonces, es necesario saber el número de comprobaciones que se realizan con cadamétodo en función delnúmero de nodos. Con el método 1 t ≈ n ·K ·N, donde K es una constante (hipótesis 2 y 3) referida al tiempode computación por recta y N es el número de nodos del grafo. En el caso del método 2, t ≈ K · N·(N−1)

2 .Si dibujamos una gráfica de ambas funciones, podemos observar cómo el tiempo de computación menorcorresponde al método 2 para N < 201 y al método 1 para N > 201. En la aplicación que nos concierne, elnúmero de nodos N pertenece al intervalo en el que es más rápido el método 2. Por este motivo, el método2 ha sido el elegido.

Figura A.1 Tiempo de computación en ordenadas frente a número de nodos en abscisas.

Page 58: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3
Page 59: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

Apéndice BImportancia de la resolución del mapa

La resolución del mapa es un parámetro que juega un papel importante en la planificación realizada,especialmente en el caso de obstáculos fijos. Esto es así porque influye en varios aspectos importantes:

• Tiempo de computación. Es el aspecto que más nos interesa. Al incrementar el número de celdaspor superficie (la resolución del mapa), incrementamos también el número de nodos utilizados. Eltiempo de ejecución del algoritmo de Dijkstra, y de cualquier algoritmo de búsqueda en grafos, crecefuertemente con el número de nodos y de aristas del grafo. Por tanto, interesa contener la resoluciónpara no disparar los tiempos de computación.

• Trayectorias. Un mapa con gran resolución será capaz de describir perfectamente los detalles de cadaobstáculo, y generará un conjunto de nodos muy parecidos al obstáculo real pero “expandido”. Porotro lado, un mapa de baja resolución generará siluetas de obstáculos de forma más burda. Como eslógico, esto afecta a las trayectorias generadas por el algoritmo.

• Peligrosidad en pasillos angostos. Debido a la limitación de velocidad constante, el algoritmo nodebería ser usado en pasillos muy angostos en relación a las celdas consideradas. En caso de que seutilice con pasillos estrechos, es necesario tener en cuenta que basta con la existencia de una celdapequeña de tipo nodo en el pasillo para poder permitir el paso a través del pasillo. Por tanto, se aconsejautilizar resoluciones no demasiado altas.

Se ha realizado una simulación para comprobar los efectos de la resolución. La tabla B.1 muestra lostiempos de computación medios para las distintas pruebas realizadas. Hay que tener en cuenta que estassimulaciones han sido realizadas sin el método de selección de nodos para obstáculos rectos expuesto en lasección 4.2.

Tabla B.1 Tiempo de computación en función de la resolución del mapa.

Número de celdas por metro cuadrado Tiempo de ejecución (ms)

1 52,9 ± 44,79 54,11 ± 42,325 58,3 ± 44,836 60,1 ± 46,0

47

Page 60: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

48 Apéndice B. Importancia de la resolución del mapa

Figura B.1 Trayectorias tomadas por el algoritmo para diferentes resoluciones del mapa y mismo plan devuelo.

Page 61: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

Apéndice C

Necesidad de ampliación para el tratamientode obstáculos móviles

La sección 4.2 define un algoritmo completo de planificación local válido para obstáculos de carácterestático. Antes de desarrollar una ampliación del algoritmo que contemple obstáculos dinámicos (mó-

viles), es procedente preguntarse cuáles son los resultados obtenidos si no se realiza ninguna ampliación delalgoritmo. Este apéndice describe los diversos problemas que surgen a raíz de la introducción de obstáculosmóviles en el algoritmo definido por la sección 4.2.

C.1 Comportamiento predictivo

El factor demayor peso para el diseño e implementación de un algoritmo especial para los obstáculosmóvileses la incapacidad del algoritmo básico para la anticipación de los movimientos de los obstáculos. Dado queel algoritmo inicial sólo contemplaba obstáculos fijos, si un obstáculo móvil se interpone entre el vehículocontrolado por el algoritmo y su posición objetivo, el algoritmo de Dijkstra devolverá el camino más cortodentro del grafo que se genera. Si bien dicho comportamiento es deseable en el caso de los obstáculos fijos, enel caso de los obstáculos móviles no es asi. Los obstáculos móviles que se consideran no son cooperativos (noexiste comunicación con el otro vehículo) y se considera que no modificarán su rumbo si el UAV controladose acerca peligrosamente.

Por tanto, estadísticamente es muy común que se seleccione un waypoint localizado en la zona delanteradel otro UAV. La figura C.1 muestra un caso como el que se menciona. El vehículo con la estela blancaes el controlado por el algoritmo, mientras que el de la cola azul actúa de obstáculo móvil. El objetivo delplan de vuelo está marcado con una flecha verde, mientras que el waypoint temporal al que se dirige el UAVestá marcado con una flecha roja. Puede verse cómo el algoritmo de Dijkstra no esta teniendo en cuenta elmovimiento del otro vehículo. En este caso es probable que se produzca una colisión. En casos en los que nose produce una colisión directa también puede existir peligro si el algoritmo elige una trayectoria paralela ala trayectoria del obstáculo. En este otro caso, estaríamos a merced de la maniobra que realice el otro UAV.La figura C.2 muestra este caso.

49

Page 62: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

50 Apéndice C. Necesidad de ampliación para el tratamiento de obstáculos móviles

Figura C.1 Representación de comportamiento no predictivo.

Figura C.2 Representación de mala elección de trayectoria. Los UAV acaban paralelos.

C.2 Obstrucción del espacio

El algoritmo utilizado para la planificación con obstáculos fijos genera celdas de obstáculo virtual alrededorde las celdas de tipo obstáculo. Estas celdas, además de las celdas de tipo obstáculo, ocupan un espacio en elmapa y en muchos casos obstruyen posibles caminos que podrían existir si no estuvieran en el mapa. Dadoque hablamos de obstáculos móviles, dicho obstáculo no se localizará en el mismo sitio cuando el UAVcontrolado llegue a su posición. Esto genera algunos problemas. Por ejemplo, es imposible que en la figuraC.3 el vehículo 1 alcance su waypoint en una trayectoria recta, ya que las celdas de obstáculo y obstáculovirtual -pensadas inicialmente para obstáculos fijos- impiden la realización de esta trayectoria.Con la ampliación dedicada a los obstáculos móviles, se eliminan las celdas correspondientes a obstáculos

móviles y semarcan como libres. De esta forma, dicho espacio queda libre para la planificación y el obstáculosólo se tiene en cuenta generando una maniobra de evasión cuando se detecta una potencial colisión.

Page 63: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

C.3 Número de nodos 51

Figura C.3 Bloqueo del espacio de un pasillo.

C.3 Número de nodos

Como se ha dicho en la sección anterior, la ampliación del algoritmo considera el borrado de las celdascorrespondientes a obstáculos móviles. Además de generar un espacio adicional, se reduce el número denodos utilizados, ya que no se dispone de nodos alrededor de los obstáculos móviles. Esto provoca unadisminución de los tiempos de computación del algoritmo.

C.4 Conclusión

La importancia del número de nodos resulta relativamente escasa al plantearse ampliar el algoritmo paramanejar los obstáculos móviles de forma específica. Esto es así porque con el bloque de selección de nodosque se ha implementado, un obstáculo móvil podría añadir aproximadamente cuatro nodos extra. El impactoen este caso es apreciable, pero no suficiente como para motivar un cambio de estrategia para los obstáculosmóviles. La obstrucción del espacio tiene una importancia intermedia, ya que en numerosas ocasiones pro-voca que el UAV se dé un rodeo mayor del necesario y que posteriormente lo corrija. Por tanto, este motivotampoco es suficiente por sí solo para la ampliación considerada. Por último, el comportamiento predictivosí es una característica esencial del comportamiento que se busca. El motivo es que el otro UAV no es coope-rativo, por lo que nuestro algoritmo debe tener la inteligencia suficiente para evitar colisiones teniendo encuenta la trayectoria del obstáculo móvil. De las tres ideas anteriores, podemos concluir la necesidad de untratamiento diferenciado para los obstáculos móviles a fin de proveer mejores comportamientos preservandola eficiencia del algoritmo.

Page 64: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3
Page 65: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

Índice de Figuras

2.1 Montaje y construcción de estructuras en el proyecto ARCAS. 3

3.1 División del espacio considerada por un método de descomposición vertical, con regiones numeradas 83.2 Generación de grafo mediante división en regiones de Voronoi 93.3 Campo generado para dos obstáculos circulares (rojo) y un objetivo (azul) 103.4 Árbol generado por algoritmo RRT 11

4.1 Ejemplo de construcción del mapa y tipos de celdas consideradas. 144.2 Representación de dos medidas consecutivas del sensor láser en la que se han identificado tres

obstáculos. Dos fijos y uno móvil 174.3 Predicción de la trayectoria propia en puntos amarillos para ir al waypoint marcado con una flecha roja 194.4 Predicción de colisión y evaluación del waypoint intermedio más seguro considerando un obstáculo

móvil (en rojo) 20

5.1 Grafo de comunicación entre nodos 26

6.1 Mapa inspirado en la ciudad de Sevilla 306.2 Simulación 2 316.3 Simulación 3 316.4 Número de nodos utilizados por el algoritmo de Dijkstra con selección de nodos (azul) y sin ella en

simulación 2 del escenario de Sevilla en Matlab 326.5 Número de nodos utilizados por el algoritmo de Dijkstra con selección de nodos (azul) y sin ella en

simulación de Gazebo 326.6 Trayectoria obtenida en la simulación 1 en escenario complejo de tipo laberinto 336.7 Testbed multi-UAV en las instalaciones de CATEC 346.8 Testbed simulado en ROS Fuerte 346.9 Trayectorias solución calculadas en entorno estático y denso, mostradas en azul 356.10 Histograma de tiempos de ejecución por iteración para simulación con mapa completo. La velocidad

es 0,5m/s 366.11 Escenario con dos quadrotors y planes de vuelo: QR1 (círculos verdes) y QR2 (círculos rojos). Sólo

QR1 puede cambiar su trayectoria para evitar colisiones con QR2 376.12 Distancia entre los dos UAV durante la simulación en azul y mínima distancia de seguridad en rojo 376.13 Evitación de obstáculo móvil considerando el escenario de la figura 6.11 386.14 Histograma del tiempo de computación por iteración 38

53

Page 66: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

54 Índice de Figuras

A.1 Tiempo de computación en ordenadas frente a número de nodos en abscisas 45

B.1 Trayectorias tomadas por el algoritmo para diferentes resoluciones del mapa y mismo plan de vuelo 48

C.1 Representación de comportamiento no predictivo 50C.2 Representación de mala elección de trayectoria. Los UAV acaban paralelos 50C.3 Bloqueo del espacio de un pasillo 51

Page 67: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

Índice de Tablas

2.1 Constantes del modelo cinemático considerado 5

5.1 Ventajas e inconvenientes de programar en Matlab 235.2 Ventajas e inconvenientes de programar en ROS 235.3 Parámetros determinados heurísticamente 27

6.1 Parámetros utilizados 306.2 Parámetros utilizados 336.3 Tiempos de computación para las nueve simulaciones realizadas 35

B.1 Tiempo de computación en función de la resolución del mapa 47

55

Page 68: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3
Page 69: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

Bibliografía

[1] L. Merino, F. Caballero, J. M. de Dios, I. Maza, and A. Ollero, “An unmanned aircraft system forautomatic forest fire monitoring and measurement,” Journal of Intelligent and Robotic Systems, vol.65, no. 1, pp. 533-548, 2012.

[2] R. W. Beard, T. McLain, D. Nelson, D. Kingston, and D. Johanson, “Decentralized cooperative aerialsurveillance using fixedwing miniature uavs,” Proceedings of the IEEE, vol. 94, no. 7, pp. 1306-1324,2006.

[3] A. Ollero, “Aerial robotics cooperative assembly system (arcas): First results,” Aerial Physically ActingRobots (AIRPHARO) workshop, IROS 2012, Vilamoura, Portugal, October 7-12 2012.

[4] J. Meyer, “Hector quadrotor ROS package website,” 2014. [Online]. Available: http://wiki.ros.org/hectorquadrotor

[5] S. M. Lavalle, J. J. Kuffner, and Jr., “Rapidly-exploring random trees: Progress and prospects,” Algo-rithmic and Computational Robotics: New Directions, 2000, pp. 293-308.

[6] K. L. E, K. M. N, and L. J-C, “Analysis of probabilistic roadmaps for path planning,” Proceedings ofthe IEEE International Conference on Robotics and Automation, 3020-3025, Minneapolis, MN, USA.,1996.

[7] J. A. Cobano, R. C. D. Alejo, and A. Ollero, “Path planning based on genetic algorithms and themonte-carlo method to avoid aerial vehicle collisions under uncertainties,” Proceedings of the IEEEInt Robotics and Automation (ICRA) Conf, 2011, pp. 4429-4434.

[8] R. Vivona, D. Karr, and D.Roscoe, “Pattern-based genetic algorithm for airborne conflict resolution,”AIAA Guidance, Navigation and Control Conference and Exhibit, Keystone, Colorado, 2006.

[9] N. Durand and J. Alliot, “Optimization resolution of en route conflicts,” First USA/Europe Air TrafficManagement Research and Development Seminar (ATM1997), Saclay (France), 17-19 June 1997.

[10] M. Pontani and B. A. Conway, “Particle swarm optimization applied to space trajectories,” Journal ofGuidance Control and Dynamics, vol. 33, pp. 1429-1441, 2010.

[11] A. J. Pohl and G. B. Lamont, “Multi-objective uav mission planning using evolutionary computation,”Winter Simulation Conference, 2008, pp. 1268-1279.

[12] A. Stentz and I. C. Mellon, “Optimal and efficient path planning for unknown and dynamic environ-ments,” International Journal of Robotics and Automation, vol. 10, pp. 89-100, 1993.

57

Page 70: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

58 Bibliografía

[13] C. Goerzen, Z. Kong, and B. Mettler, “A survey of motion planning algorithms from the perspectiveof autonomous uav guidance,” Journal of Intelligent and Robotic Systems, vol. 57, no. 1, pp. 65-100,2010.

[14] F. E, D. M. A, and Feron, “Real-time motion planning for agile autonomous vehicles,” Journal ofGuidance, Control, and Dynamics, 25(1), 116-129, 2002.

[15] E. H., Algorithms in Combinatorial Geometry. Berlin: Springer-Verlag, 1987.

[16] C. H, W. S, E.-A. K, and B. J. (2000), “Sensor-based exploration: Incremental construction of thehierarchical generalized voronoi graph,” The International Journal of Robotics Research, 19(2):126-128, 2000.

[17] K. O, “Real-time obstacle avoidance for manipulators and mobile robots,” International Journal ofRobotics Research, 5(1):90-98, 1986.

[18] D. E. Chang, S. Shadden, J. E. Marsden, and R. O. Saber, “Collision avoidance for multiple agentsystems,” Proceedings of the 42nd IEEE Conference on Decisionn and Control, Maui, Hawaii, USA,2003.

[19] M. A. A, “Managing the dynamics of a harmonic potential field-guided robot in a cluttered environ-ment,” Proceedings of the IEEE Transactions on Industrial Electronics, 56(2):488-496, 2009.

[20] H. Cover, S. Choudhury, S. Scherer, and S. Singh, “Sparse tangential network (spartan): Motion plan-ning for micro aerial vehicles,” Proceedings of the IEEE International Conference on Robotics andAutomation (ICRA), Karlsruhe (Germany), pp. 2805-2810, May 6-10, 2013.

[21] A. E. Jimenez-Cano, J. Martin, G. Heredia, R. Cano, and A. Ollero, “Control of an aerial robot withmulti-link arm for assembly tasks,” in IEEE Int. Conf. Robotics and Automation (ICRA), Karlsruhe,Germany, May 6-10 2013.

[22] J. Siek, L.-Q. Lee, and A. Lumsdaine, “The boost graph library.” [Online]. Available: http://www.boost.org/doc/libs/1_55_0/libs/graph/doc/index.html

[23] B. Eotvos Lorand University, “LEMON graph library,” 2003. [Online]. Available: http://lemon.cs.elte.hu/

[24] W. Garage, “ROS tutorials.” [Online]. Available: http://wiki.ros.org/ROS/Tutorials

[25] Y. Tian, L. Yan, G.-Y. Park, S.-H. Yang, Y.-S. Kim, S.-R. Lee, and C.-Y. Lee, “Application of rrt-basedlocal path planning algorithm in unknown environment,” in Computational Intelligence in Roboticsand Automation, 2007. CIRA 2007. International Symposium on, June 2007, pp. 456–460.

[26] M. Quigley, K. Conley, B. P. Gerkey, J. Faust, T. Foote, J. Leibs, R. Wheeler, and A. Y. Ng, “ROS: anopen-source Robot Operating System,” in ICRA Workshop on Open Source Software, 2009.

[27] M. Soucy and P. Payeur, “Robot path planning with multiresolution probabilistic representations: acomparative study,” in Electrical and Computer Engineering, 2004. Canadian Conference on, vol. 2,May 2004, pp. 1127–1130 Vol.2.

[28] T. S. Bruggemann, J. J. Ford, and R. A. Walker, “Control of aircraft for inspection of linear infrastruc-ture,” vol. 19, no. 6, pp. 1397–1409, 2011.

Page 71: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

Bibliografía 59

[29] B. Lacevic, P. Rocco, and M. Strandberg, “Safe motion planning for articulated robots using rrts,” inInformation, Communication and Automation Technologies (ICAT), 2011 XXIII International Sympo-sium on, Oct 2011, pp. 1–7.

[30] F. Islam, J. Nasir, U. Malik, Y. Ayaz, and O. Hasan, “Rrt*;-smart: Rapid convergence implementa-tion of rrt*; towards optimal solution,” in Mechatronics and Automation (ICMA), 2012 InternationalConference on, Aug 2012, pp. 1651–1656.

[31] Li, C. Rongxin, Y. Chenguang, and X. Demin, “Multi-robot path planning based on the developed rrt*algorithm,” in Control Conference (CCC), 2013 32nd Chinese, July 2013, pp. 7049–7053.

[32] S. Martin, S. Wright, and J. Sheppard, “Offline and online evolutionary bi-directional rrt algorithms forefficient re-planning in dynamic environments,” in Automation Science and Engineering, 2007. CASE2007. IEEE International Conference on, Sept 2007, pp. 1131–1136.

[33] H. Ono, “Fast random walks on finite graphs and graph topological information,” in Networking andComputing (ICNC), 2011 Second International Conference on, Nov 2011, pp. 360–363.

[34] L. Lulu and A. Elnagar, “A comparative study between visibility-based roadmap path planning algo-rithms,” in Intelligent Robots and Systems, 2005. (IROS 2005). 2005 IEEE/RSJ International Confe-rence on, Aug 2005, pp. 3263–3268.

[35] Y. Chao, “A developed dijkstra algorithm and simulation of urban path search,” in Computer Scienceand Education (ICCSE), 2010 5th International Conference on, Aug 2010, pp. 1164–1167.

[36] S. Koenig, M. Likhachev, and D. Furcy, “Lifelong planning a*,” Artificial Intelligence, vol. 155,no. 1-2, pp. 93 – 146, 2004. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S000437020300225X

[37] D. Alejo, R. Conde, J. Cobano, andA. Ollero, “Multi-uav collision avoidancewith separation assuranceunder uncertainties,” inMechatronics, 2009. ICM2009. IEEE International Conference on, April 2009,pp. 1–6.

[38] D. Stonier and Y.-I. Choe, “win_ros ROS package.” [Online]. Available: http://wiki.ros.org/win_ros

[39] “Robots - ROS wiki.” [Online]. Available: http://wiki.ros.org/Robots

[40] “Sensors - ROS wiki.” [Online]. Available: http://wiki.ros.org/Sensors

[41] W. Zeng and R. L. Church, “Finding shortest paths on real road networks: The case forA*,” Int. J. Geogr. Inf. Sci., vol. 23, no. 4, pp. 531–543, Apr. 2009. [Online]. Available:http://dx.doi.org/10.1080/13658810801949850

[42] R. Bellman, “On a Routing Problem,” Quarterly of Applied Mathematics, vol. 16, pp. 87–90, 1958.

[43] M. Kurant, A. Markopoulou, and P. Thiran, “On the bias of bfs (breadth first search),” in TeletrafficCongress (ITC), 2010 22nd International, Sept 2010, pp. 1–8.

[44] M. Bernard, K. Kondak, I. Maza, and A. Ollero, “Autonomous transportation and deployment withaerial robots for search and rescue missions,” Journal of Field Robotics, vol. 28, no. 6, pp. 914–931,2011. [Online]. Available: http://dx.doi.org/10.1002/rob.20401

[45] “Vicon | homepage.” [Online]. Available: http://www.vicon.com/

Page 72: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

60 Bibliografía

[46] H. Espitia and J. Sofrony, “Path planning of mobile robots using potential fields and swarms of brow-nian particles,” in Evolutionary Computation (CEC), 2011 IEEECongress on, June 2011, pp. 123–129.

[47] “Scanning range finder UTM-30LX | photo sensor | products | hokuyo automatic co.,ltd.” [Online].Available: https://www.hokuyo-aut.jp/02sensor/07scanner/utm_30lx.html

[48] N. Koenig and A. Howard, “Design and use paradigms for gazebo, an open-source multi-robot simula-tor,” in Intelligent Robots and Systems, 2004. (IROS 2004). Proceedings. 2004 IEEE/RSJ InternationalConference on, vol. 3, Sept 2004, pp. 2149–2154 vol.3.

[49] “Ubuntu 12.04.4 LTS (Precise Pangolin),” 2014. [Online]. Available: http://releases.ubuntu.com/12.04/

[50] L. Rodriguez, J. Cobano, and A. Ollero, “Efficient local path planning for uavs in unknown environ-ments,” in Workshop Of Physical Agents, 2014, pp. 125–134.

Page 73: ProyectoFindeGrado Grado en Ingeniería de Tecnologías …bibing.us.es/proyectos/abreproy/90015/fichero/... · 4.2 Planificación local de caminos con obstáculos estáticos15 4.3

Glosario

ARCAS Aerial Robotics Cooperative Assembly System. 3

BFS Búsqueda en amplitud. 9

CATEC Centro Avanzado de Tecnologías Aeroespaciales. 25

DFS Búsqueda en profundidad. 10

DGPS Differential Global Positioning System. 5

LPA* Lifelong Planning A*. 9

PRM Probabilistic Path Planner. 11

PSO Optimización por enjambre de partículas. 12

ROS Robot Operative System. 1

RRT Rapidly-Exploring Random Tree. 10

SAR Search and Rescue. 1

UAVs Unmanned Aerial Vehicles. 1

61