Universidad de Sevilla

Universidad de Sevilla Escuela T´ ecnica Superior de Ingenieros Algoritmos de detecci´on y resoluci´on de colisiones para agentes aut´onomos. Aplicaci...
1 downloads 1 Views 18MB Size
Universidad de Sevilla Escuela T´ ecnica Superior de Ingenieros Algoritmos de detecci´on y resoluci´on de colisiones para agentes aut´onomos. Aplicaci´on en sistemas multi-UAV.

Trabajo fin de M´ aster de Autom´ atica Rob´ otica y Telem´ atica

David Alejo Teissi`ere. Tutores: An´ıbal Ollero Baturone y Guillermo Heredia Benot.

Sevilla, 28 de diciembre de 2010.

´Indice general 1. Introducci´ on a los sistemas multi-UAV y CDR

12

1.1. Veh´ıculos A´ereos no Tripulados (UAV) . . . . . . . . . . . . . . . . . . . . .

13

1.2. Necesidad de un sistema de detecci´on y resoluci´on de colisiones (CDR) . . .

15

1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

1.4. Publicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

2. Estado del arte en CDR

18

2.1. Algoritmos t´acticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

2.1.1. Cilindros en el espacio (x,y,t) . . . . . . . . . . . . . . . . . . . . . .

20

2.1.2. Planteamiento de un MILP . . . . . . . . . . . . . . . . . . . . . . .

20

2.1.3. Teor´ıa de juegos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

2.1.4. M´etodos de planificaci´on de velocidades . . . . . . . . . . . . . . . . .

21

2.2. Algoritmos Reactivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

2.2.1. Campos potenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

2.2.2. Resoluci´on usando leyes de control o´ptimo . . . . . . . . . . . . . . .

22

2.2.3. M´etodos geom´etricos . . . . . . . . . . . . . . . . . . . . . . . . . . .

22

2.2.4. Sense and Avoid . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

24

2.3. Resoluci´on de colisiones con incertidumbre . . . . . . . . . . . . . . . . . . .

26

3. T´ ecnicas CDR usadas

29

3.1. Detecci´on de colisiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

3.1.1. Detecci´on en el espacio discreto . . . . . . . . . . . . . . . . . . . . .

30

3.1.2. Solapamiento de cajas alineadas con los ejes de coordenadas . . . . .

32

3.2. Algoritmos de resoluci´on de colisiones basados en velocidad . . . . . . . . . .

34

3.2.1. Resoluci´on de colisiones mediante la asignaci´on de dos velocidades . .

35

2

3.2.2. Algoritmo voraz para cambio de velocidades . . . . . . . . . . . . . .

36

3.2.3. M´etodo de optimizaci´on de perfil de velocidades . . . . . . . . . . . .

37

3.3. Algoritmos de resoluci´on de colisiones mediante cambio de trayectoria . . . .

44

3.3.1. Algoritmo no cooperativo basado en t´ecnicas evolutivas . . . . . . . .

44

3.3.2. Algoritmo cooperativo basado en t´ecnicas evolutivas . . . . . . . . . .

48

4. Modelo de UAV

49

4.1. Modelo de masa puntual . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

4.2. Generador de trayectorias . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

4.3. Modelo de un UAV de ala fija controlado . . . . . . . . . . . . . . . . . . . .

51

4.4. Modelo simplificado de un cuadrirotor . . . . . . . . . . . . . . . . . . . . .

54

4.5. Algoritmo de estimaci´on de incertidumbre basado en an´alisis de MonteCarlo

56

4.5.1. Introducci´on al an´alisis de MonteCarlo . . . . . . . . . . . . . . . . .

57

4.5.2. Modelo de incertidumbre . . . . . . . . . . . . . . . . . . . . . . . . .

57

4.5.3. Ejemplos de simulaci´on con incertidumbre . . . . . . . . . . . . . . .

58

5. Implementaci´ on de t´ ecnicas CDR

60

5.1. Herramientas utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

60

5.2. Algoritmos de detecci´on de colisiones implementados . . . . . . . . . . . . .

63

5.3. Implementaci´on de los diferentes algoritmos de resoluci´on de colisiones . . .

63

5.3.1. Resoluci´on de colisiones mediante la asignaci´on de dos velocidades . .

63

5.3.2. Algoritmo voraz para planificaci´on de velocidades . . . . . . . . . . .

65

5.3.3. Algoritmo de optimizaci´on del perfil de velocidades . . . . . . . . . .

65

5.3.4. Algoritmo gen´etico de cambio de rutas . . . . . . . . . . . . . . . . .

67

6. Simulaciones

69

6.1. Comparativa de algoritmos de VPP . . . . . . . . . . . . . . . . . . . . . . .

69

6.2. Algoritmos gen´eticos no cooperativos en presencia de incertidumbre . . . . .

74

6.2.1. Comportamiento del algoritmo variando el n´ umero de iteraciones . .

76

6.2.2. Estudio del tiempo de ejecuci´on variando el n´ umero de veh´ıculos y obst´aculos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

6.2.3. Dependencia del tiempo de ejecuci´on con respecto a las condiciones de viento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

79

6.3. Optimizaci´on del perfil de velocidades en presencia de incertidumbre . . . . .

81

3

6.3.1. Introducci´on del an´alisis de montecarlo en el sistema . . . . . . . . .

81

6.3.2. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82

6.4. Entorno del testbed del CATEC . . . . . . . . . . . . . . . . . . . . . . . . .

83

6.4.1. Simulaci´on de tres veh´ıculos no cooperativos . . . . . . . . . . . . . .

88

6.4.2. Simulaci´on de cuatro veh´ıculos cooperativos 1 . . . . . . . . . . . . .

88

6.4.3. Simulaci´on de cuatro veh´ıculos cooperativos 2 . . . . . . . . . . . . .

90

7. Experimentos realizados

94

7.1. Experimento de tres veh´ıculos no cooperativos . . . . . . . . . . . . . . . . .

94

7.2. Experimento de cuatro veh´ıculos cooperativos 1 . . . . . . . . . . . . . . . .

95

7.3. Experimento de cuatro veh´ıculos cooperativos 2 . . . . . . . . . . . . . . . .

96

8. Conclusiones

99

8.1. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 A. Descripci´ on del testbed del CATEC

107

4

´Indice de figuras 1.1. UAVs utilizados en el proyecto AEROSENS en la Universidad de Sevilla. Izquierda a derecha: helic´optero aut´onomo HERO; UAV de ala fija aut´onomo MEGASTAR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

2.1. Diferenciaci´on de los algoritmos de resoluci´on de colisiones seg´ un la inminencia de su aplicaci´on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

2.2. Representaci´on de obst´aculos m´oviles en el espacio (x, y) como obst´aculos fijos en (x, y, t). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

20

2.3. Definici´on del cono de colisi´on, vector de resoluc´on de colisi´on y velocidades absolutas y relativas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

2.4. Cooperaci´on entre los robots HERO y ROMEO del Grupo de Rob´otica Visi´on y Control de la Universidad de Sevilla. . . . . . . . . . . . . . . . . . . . . .

27

3.1. Problema de la descomposici´on del espacio en celdas. U3 y U4 tienen trayectorias conflictivas, mientras que U1 y U2 no. . . . . . . . . . . . . . . . . . .

30

3.2. Ejemplo de zona de conflicto con una celda de distancia de seguridad. . . . .

31

3.3. Ejemplo de zona de conflicto con tres celdas de distancia de seguridad en una situaci´on de tr´afico convergente. . . . . . . . . . . . . . . . . . . . . . . . . .

32

3.4. Sistema descrito por cajas alineadas con los ejes. Las cajas A y B est´an solapadas, mientras que la C est´a libre de colisi´on. . . . . . . . . . . . . . . . . .

33

3.5. Ejemplo de descripici´on de una caja 2D con ayuda de dos intervalos: [x0 , x1 ] y [y0 , y1 ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

3.6. Casos en los que no existe solapamiento de intervalos en la recta real. . . . .

34

3.7. Ejemplo de choque frontal entre dos veh´ıculos. Este tipo de colisiones no puede ser resuelto con algoritmos de resoluci´on de colisiones basados en velocidad. .

34

3.8. Ejemplo de f´ormula l´ogica que indica que no habr´a colisi´on entre AVi y AVj si las variables de decisi´on son iguales (xi = xj ). . . . . . . . . . . . . . . . .

35

3.9. El grafo GF correspondiente a la f´ormula F . . . . . . . . . . . . . . . . . . .

36

5

3.10. Ejemplo de aplicaci´on del algoritmo voraz. AV1 atraviesa las celdas 3,5,1,2 y 7. Cuando t = t1 (a) la velocidad de AV2 se decrementa retrasando su estancia en la celda 5 para evitar la colisi´on con AV1 (b). . . . . . . . . . . . . . . . .

37

3.11. Situaciones de decisi´on: (a) considerar tanto el incremento como el decremento de velocidades (b) entrada simult´anea de dos veh´ıculos en una celda conflictiva. 38 3.12. Situaci´on del sistema que se usa como ejemplo de aplicaci´on del algoritmo de b´ usqueda en a´rbol. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

3.13. Ejemplo de funcionamiento del algoritmo de b´ usqueda en a´rbol. . . . . . . .

43

3.14. Estructura gen´erica de un algoritmo de optimizaci´on evolutivo basado en genes. 46 3.15. Diferentes operadores de cruce. De izquierda a derecha: cruce con un punto de corte, cruce con dos puntos de corte y cruce uniforme. . . . . . . . . . . .

47

´ 4.1. Angulos de Euler y fuerzas que act´ uan sobre un aeroplano. γ es el ang´ ulo de pitch y φ es el a´ngulo roll. L es la fuerza de sustentaci´on (en ingl´es, lift), D es la fuerza de fricci´on (drag) y T es el empuje provocado por el motor (thrust). 51 4.2. Ejemplo de trayectorias obtenidas, tanto de referencia como simulada. . . . .

53

4.3. Trayectoria discretizada en el espacio con ancho de cuadr´ıcula de cuatro unidades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53

4.4. Experimento de seguimiento de trayectoria realizado en el testbed del CATEC. En rojo se observa la trayectoria realizada por el quad-rotor y en azul se representa el plan de vuelo. . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

4.5. Velocidad en el plano horizontal medida en el experimento. En l´ınea discont´ınua se detalla la velocidad de referencia. . . . . . . . . . . . . . . . . . .

55

4.6. Modelo de velocidad del viento como suma de gaussianas . . . . . . . . . . .

58

4.7. Relaci´on entre AS (airspeed ), W(windspeed ) y GS(groundspeed ). WTA significa Wind to Track Angle y WCA es Wind Correction Angle. . . . . . . . . . .

58

4.8. Ejemplo de simulaci´on de vuelo con ayuda del an´alisis de montecarlo. La consigna en orientaci´on era ψ c = 0, y las condiciones de viento, ρ = (1, 1)m/s

59

5.1. Estructura gen´erica de los programas realizado. . . . . . . . . . . . . . . . .

61

5.2. Interfaz de detecci´on de colisiones. Toda clase de detecci´on de colisiones debe implementarla. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

63

5.3. Bloques que componen la codificaci´on del algoritmo VPP por asignaci´on de dos velocidades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

64

5.4. Bloques que componen la codificaci´on del algoritmo de resoluci´on de colisiones por optimizaci´on del perfil de velocidades. . . . . . . . . . . . . . . . . . . .

66

6.1. Plan de vuelo en el escenario 1(S1). . . . . . . . . . . . . . . . . . . . . . . .

70

6

6.2. Plan de vuelo en el escenario 2(S2). . . . . . . . . . . . . . . . . . . . . . . .

71

6.3. Plan de vuelo en el escenario 3(S3). . . . . . . . . . . . . . . . . . . . . . . .

71

6.4. Comparativa de tiempo de computaci´on obtenido al ejecutar los algoritmos de VPP en S1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75

6.5. Comparativa de tiempo de computaci´on obtenido al ejecutar los algoritmos de VPP en S2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75

6.6. Comparativa de tiempo de computaci´on obtenido al ejecutar los algoritmos de VPP en S1 variando la distancia de seguridad. . . . . . . . . . . . . . . .

76

6.7. Escenario considerado en las simulaciones de algoritmos gen´eticos en presencia de incertidumbre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77

6.8. Dependencia del valor del criterio asociado a la soluci´on obtenida seg´ un el n´ umero de iteraciones del algoritmo gen´etico. . . . . . . . . . . . . . . . . . .

78

6.9. Dependencia del tiempo computacional cuando var´ıan el n´ umero de obst´aculos o veh´ıculos presentes en el sistema. . . . . . . . . . . . . . . . . . . . . . . .

79

6.10. Dependencia del tiempo computacional cuando var´ıa el m´odulo del viento. .

80

6.11. Dependencia del tiempo computacional cuando var´ıa la direcci´on del viento.

81

6.12. Esquema del sistema Filtro de Part´ıculas - Algoritmo de planificaci´on de velocidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

82

6.13. Trayectorias de tres UAVs. Hasta el horizonte de predicci´on, no hay colisiones previstas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

84

6.14. Se detecta una colisi´on previsible entre dos UAVs . . . . . . . . . . . . . . .

85

6.15. El APV decide aumentar la velocidad del UAV1

. . . . . . . . . . . . . . .

86

6.16. La anterior colisi´on ha sido resuelta, aparece una nueva zona de conflicto que no da lugar a colisi´on prevista (no hay coincidencia en el tiempo). . . . . . .

87

6.17. Situaci´on inicial, en l´ınea discontinua, y soluci´on propuesta al utilizar el algoritmo gen´etico en un sistema de tres UAVs con s´olo uno colaborativo. El waypoint objetivo de cada veh´ıculo se ha detallado con una cruz. N´otese que como UAV2 y UAV3 no se controlan, sus planes de vuelo inicial y final coinciden. 89 6.18. Distancias entre parejas de veh´ıculos en la simulaci´on no cooperativa de tres UAVs. En l´ınea discontinua se marca la distancia de seguridad. . . . . . . . .

89

6.19. Situaci´on inicial, en l´ınea discontinua, y soluci´on propuesta al utilizar el algoritmo gen´etico en un sistema de cuatro UAVs cooperativos con exploraci´on 2D. El waypoint objetivo de cada veh´ıculo se ha detallado con una cruz. . . .

90

6.20. Distancias entre parejas de veh´ıculos en la simulaci´on cooperativa de cuatro UAVs. En l´ınea discontinua se marca la distancia de seguridad. . . . . . . . .

91

7

6.21. Geometr´ıa avanzada de la zona de seguridad para facilitar la existencia de soluciones a distintos niveles de altura. Se aprecia que la separaci´on horizontal de seguridad se decrementa cuando aumenta la separaci´on vertical. . . . . .

92

6.22. Situaci´on inicial, en l´ınea discontinua, y soluci´on propuesta al utilizar el algoritmo gen´etico en un sistema de cuatro UAVs cooperativos usando exploraci´on 3D. El waypoint objetivo de cada veh´ıculo se ha detallado con una cruz. Se observa que el u ´nico veh´ıculo que cambia de nivel de vuelo es UAV1. . . . .

93

6.23. Distancias entre parejas de veh´ıculos en la simulaci´on cooperativa de cuatro UAVs. En l´ınea discontinua se marca la distancia de seguridad horizontal. Las gr´aficas de arriba indican la separaci´on lateral, mientras las de abajo con los mismos colores indican la separaci´on vertical. . . . . . . . . . . . . . . . . .

93

7.1. Resultados de la ejecuci´on del experimento de tres UAVs con exploraci´on 2D no colaborativa. IW representa el waypoint intermedio de cada veh´ıculo. Las trayectorias simuladas aparecen en linea punteada, mientras que las reales aparecen en l´ınea continua. El UAV1 era el avi´on controlado. . . . . . . . . .

95

7.2. Trayectorias computadas por el algoritmo para cada veh´ıculo en el experimento de cuatro veh´ıculos con exploraci´on 2D. IW representa el waypoint intermedio de cada veh´ıculo. Las trayectorias simuladas aparecen en linea punteada, mientras que las reales aparecen en l´ınea continua. . . . . . . . . .

96

7.3. Trayectorias realizadas por cada veh´ıculo en el experimento de cuatro veh´ıculos con exploraci´on 2D. IW representa el waypoint intermedio de cada veh´ıculo. Las trayectorias simuladas aparecen en linea punteada, mientras que las reales aparecen en l´ınea continua. . . . . . . . . . . . . . . . . . . . . . . . .

97

7.4. Trayectorias realizadas por cada UAV en el experimento de cuatro UAVs con exploraci´on 3D. IW representa el waypoint intermedio de cada veh´ıculo. Las trayectorias simuladas aparecen en linea punteada, mientras que las reales aparecen en l´ınea continua. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

98

A.1. Testbed de sistemas UAVs de las dependencias del CATEC. . . . . . . . . . 108 A.2. Uno de los quad-rotors disponibles en el testbed del CATEC juno con una de las c´amaras del sistema de posicionamiento VICON. . . . . . . . . . . . . . . 108 A.3. Dimensiones totales y u ´tiles del testbed del CATEC y situaci´on del origen de coordenadas del sistema. El rect´angulo interior indica el ´area u ´til disponible. El rect´angulo relleno de marr´on indica la posici´on de la mesa de control. . . 109

8

´Indice de tablas 6.1. Resultados obtenidos en el algoritmo G al aplicarlo en S1 y S2. . . . . . . .

72

6.2. Resultados obtenidos en el algoritmo TS al aplicarlo en S1 y S2. . . . . . .

73

6.3. Resultados obtenidos en el algoritmo QP al aplicarlo en S1. . . . . . . . . .

73

6.4. Resultados obtenidos en el algoritmo QP al aplicarlo en S2. . . . . . . . . .

73

6.5. Resultados obtenidos con los algoritmos VPP al aplicarlos en S3. . . . . . .

74

6.6. Datos de configuraci´on de los UAV implicados . . . . . . . . . . . . . . . . .

83

6.7. Planes de vuelo del experimento de tres quad-rotor con algoritmo no cooperativo. 88 6.8. Planes de vuelo del experimento de cuatro quad-rotors con algoritmo cooperativo y exploraci´on de waypoints en 2D. . . . . . . . . . . . . . . . . . . . .

90

6.9. Planes de vuelo del escenario de cuatro quad-rotors con algoritmo cooperativo y exploraci´on de waypoints en 3D. . . . . . . . . . . . . . . . . . . . . . . . .

91

9

´Indice de algoritmos 1. 2.

Algoritmo CDR voraz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Algoritmo de b´ usqueda en a´rbol . . . . . . . . . . . . . . . . . . . . . . . . .

10

38 41

Agradecimientos En primer lugar, quisiera agradecer a mis tutores An´ıbal Ollero Baturone y Guillermo Heredia Benot por su dedicaci´on, esfuerzo y proposici´on de ideas para la realizaci´on de este trabajo fin de m´aster. Es necesario destacar especialmente la labor de Jos´e Antonio Cobano Su´arez que me ha ayudado en gran parte de tareas como redacci´on, presentaci´on de resultados y correcci´on de erratas del trabajo. Me gustar´ıa resaltar tambi´en la labor de mi compa˜ nero Roberto Conde Ojeda. Este trabajo no podr´ıa haber sido llevado sin su ayuda, con el que he compartido tareas de codificaci´on, pruebas y reprentaci´on de resultados. As´ımismo, quiero extender este agradecimiento a todos los miembros del Grupo de Rob´otica, Visi´on y Control de la Universidad de Sevilla que me han brindado ideas, cr´ıticas y ayuda en muchas de las partes del trabajo. Gracias a todos. Cabe resaltar la labor de Jos´e Miguel D´ıaz Bl´an ˜ez y Pablo P´erez-Lantero, pertencientes al departamento de Matem´atica Aplicada de la Escuela T´ecnica Superior de Ingenieros de Sevilla. Ellos han dise˜ nado los algoritmos expuestos en las secciones 3.2.1 y 3.2.2 y me han ayudado en gran medida en las tareas de codificaci´on de dichos algoritmos. Unas aportaciones m´as recientes han sido las de Antidio Viguria y Diego Hinojosa. Diego ha sido el encargado de preparar el entorno de experimentaci´on del Centro Avanzado de Tecnolog´ıas Aeroespaciales (CATEC) y Antidio ha coordinado y ha supervisado los experimentos que hemos realizado en este trabajo. Tambi´en destacar la ayuda de Mr. Allan Anderson, que es piloto que permaneci´o con nosotros durante los experimentos por motivos ´ de seguridad y de Miguel Angel Trujillo, que estuvo encargado de gestionar el testbed en los u ´ltimos experimentos realizados y que ser´a el encargado de continuar la labor hecha por Diego. Tambi´en es menester agradecer a los profesores de los que he podido disfrutar en las asignaturas del M´aster en Autom´atica, Rob´otica y Telem´atica y tambi´en en la carrera de Ingeniero Superior en Telecomunicaci´on. Gracias tanto por transmitirme los conocimentos que me han sido necesarios para la redacci´on de este trabajo como por estimular mi sed de conocimientos y mi imaginaci´on. Por u ´ltimo, pero no por ello menos importante, quisiera agredecer el apoyo que he obtenido de mi familia y amigos en estos momentos de redacci´on del trabajo. En especial gracias a mi novia Mar´ıa del Mar Arcos Mu˜ noz por aguantarme todo el tiempo de la redacci´on de este escrito, en especial en las fases finales de redacci´on.

Cap´ıtulo 1 Introducci´ on a los sistemas multi-UAV y CDR Este trabajo se centra en el desarrollo, implementaci´on y pruebas tanto en simulaci´on como experimentaci´on de diferentes m´etodos de detecci´on y resoluci´on de colisiones (en adelante CDR, del ingl´es Collision Detection and Resolution) aplicados a veh´ıculos a´ereos no tripulados (UAVs), del ingl´es Unmanned Aerial Vehicles). No obstante, no habr´ıa ning´ un inconveniente en aplicar dichos algoritmos para la planificaci´on de movimientos en un sistema compuesto por cualquier tipo de veh´ıculos m´oviles. El campo de las t´ecnicas CDR aplicadas a sistemas aut´onomos es un tema de gran inter´es para la comunidad t´ecnico-ci´entifica cuyo desarrollo ha sido motivado y potenciado por su necesidad en a´reas tan diversas como cine, animaci´on, videojuegos, rob´otica, industria y transporte. Una parte de este trabajo ser´a estudiar las investigaciones que se han hecho hasta el momento en este campo, identificando aquellos algoritmos que puedan ser de utilidad al aplicarlos a sistemas compuestos de m´as de un UAV. En primer lugar, se han desarrollado diferentes algoritmos de detecci´on de colisiones que se diferencian en el grado de informaci´on que se dispone acerca del entorno y en el tiempo computacional derivado de esta detecci´on. Por tanto, multitud de algoritmos de resoluci´on de colisiones han sido desarrollados para este fin dependiendo de la motivaci´on de su desarrollo. Este trabajo se enmarca dentro del proyecto nacional ROBAIR[1]. Este proyecto tiene como principal objetivo garantizar y aumentar la fiabilidad y seguridad en sistemas de veh´ıculos a´ereos no tripulados. Entre los paquetes de trabajo que se han de llevar a cabo en el proyecto, podemos destacar la investigaci´on de tanto el empleo de sensores de distancia como la fusi´on de im´agenes monoculares con la informaci´on de los sensores incerciales del UAV para la detecci´on y evitaci´on de obst´aculos con un coste computacional reducido para su aplicaci´on en tiempo real y el desarrollo de algoritmos de resoluci´on de colisiones para entornos multiUAVs.

12

1.1.

Veh´ıculos A´ ereos no Tripulados (UAV)

Nos vamos a centrar por tanto en sistemas compuestos por UAVs, en los que englobamos a cualquier tipo de aeronave no tripulada. Dentro de este tipo de veh´ıculos, nos fijaremos en particular en los sistemas aut´onomos. Es decir, aquellos que pueden realizar una o varios tareas y misiones sin intervenci´on directa de un ser humano, el cual limita su intervenci´on a la supervisi´on del vuelo. El problema de realizar vuelos aut´onomos para cumplir misiones, requiere de trabajo interdisciplinario y es de mucho inter´es en la comunidad cient´ıfica por todas las tecnolog´ıas que se ven implicadas en tal problema. Los UAVs aut´onomos van expandiendo progresivamente sus campos de aplicaci´on gracias al desarrollo tecnol´ogico en ´areas como los sistemas de control, las telecomunicaciones, los sistemas en tiempo real, los sensores, la inteligencia artificial y los nuevos materiales. En estos momentos, un sistema UAV aut´onomo puede participar en misiones como: fotograf´ıa a´erea, reconocimiento de objetivos, medici´on de contaminaci´on, detecci´on de incendios, inspecci´on de oleoductos, inspecciones de tr´afico, b´ usqueda y rescate, inteligencia y reconocimiento a´ereo, etc. Este desarrollo ha surgido por el inter´es de prestigiosas universidades y empresas de tecnolog´ıa punta. Cabe destacar la aportaci´on de las Universidades y empresas en EEUU de Am´erica, que han liderado la investigaci´on y desarrollo en UAVs y rob´otica a´erea en el mundo. Israel, Australia y, m´as recientemente, Europa est´an dedicando tambi´en notables esfuerzos. En Espa˜ na el programa SIVA (Sistema Integrado de Vigilancia A´erea) del Instituto Nacional de T´ecnica Aeroespacial (INTA) comenz´o en los a˜ nos noventa del pasado siglo. La Universidad Polit´ecnica de Madrid (UPM) y el grupo que presenta esta propuesta tienen casi diez a˜ nos de experiencia en rob´otica a´erea. Existen tambi´en otras Universidades, como la Universidad Polit´ecnica de Catalu˜ na, centros de Investigaci´on y empresas con un inter´es creciente, lo que se ha evidenciado en el reciente congreso sobre Advanced UAVs celebrado en Madrid el pasado mes de Noviembre de 2007[1]. En la figura 1.1 se muestran dos de los UAVs que forman parte del Grupo de Visi´on, Rob´otica y Control perteneciente a la Universidad de Sevilla. Estos veh´ıculos son capaces de seguir planes de vuelo aut´onomamente y se est´an realizando esfuerzos para aplicarlos en numerosos campos, como pueden ser reconocimiento de fachadas, detecci´on de incendios, b´ usqueda y rescate, etc. A parte, se est´a estudiando la aplicaci´on de varios de los algoritmos presentados para la resoluci´on de colisiones entre ellos.

13

Figura 1.1: UAVs utilizados en el proyecto AEROSENS en la Universidad de Sevilla. Izquierda a derecha: helic´optero aut´onomo HERO; UAV de ala fija aut´onomo MEGASTAR. Los UAVs usados normalmente suelen ser de dimensiones reducidas, lo que limita notablemente su capacidad de carga. Por tanto, se ha podido avanzar en este campo gracias al gran desarrollo de los sistemas electr´onicos, en especial de los microcontroladores. Dichos sistemas han incrementado su potencia de c´alculo, mientras han reducido su tama˜ no y consumo. Por este motivo, hasta hace relativamente poco no era posible tener la capacidad de c´alculo necesaria en tan poco tama˜ no como para realizar un vuelo aut´onomo. Un factor que tambi´en es de vital importancia es la miniaturizaci´on y abaratamiento de los sensores, dentro de las cuales destacan las c´amaras de video. Es posible encontrar en el mercado c´amaras con un volumen bastante inferior a 8 cent´ımetros c´ ubicos, baratas y est´andars. Con f´acil montaje y uso. Tambi´en existen transmisores/receptores de audio y v´ıdeo igualmente baratos que operando a 2.4 GHz pueden transmitir en un radio de m´as de 10km[2]. Otros sensores que se han desarrollado y mejorado recientemente son los sensores de orientaci´on y aceler´ometros, condensados en las unidades de medida incercial (IMUs). Estos dispositivos permiten conocer la orientaci´on exacta del veh´ıculo respecto a los tres ejes de coordenadas, as´ı como la variaci´on de la misma. En esta l´ınea, son muy importantes los sensores de posicionamiento global por sat´elite. Estos u ´ltimos sensores permiten conocer la posici´on absoluta del robot con bastante precisi´on, la mayor´ıa utiliza la constelaci´on de sat´elites GPS (Global Positioning System). En los u ´ltimos tiempos se ha acentuado la necesidad de sistemas multi-UAV que permiten realizar objetivos m´as complejos que los posibles con un UAV simple y hacen m´as flexible y eficaz al sistema. Por ejemplo, se han desarrollado e implementado sistemas que permiten la cooperaci´on de m´ ultiples veh´ıculos a´ereos [3] y la integraci´on de esos veh´ıculos con sensores y actuadores en el entorno [4]. En nuestro caso, vamos a estudiar varios algoritmos que permitir´an la coordinaci´on de m´ ultiples UAVs que comparten el espacio de trabajo. Dichos algoritmos pueden ser f´acilmente usados para otros robots m´oviles, como UGVs(Unmanned Ground Vehicles).

14

1.2.

Necesidad de un sistema de detecci´ on y resoluci´ on de colisiones (CDR)

Cuando queremos coordinar a m´ ultiples UAVs en un espacio a´ereo compartido, se ha de tener en cuenta que no podemos elegir arbitrariamente las trayectorias de los diferentes veh´ıculos. Necesariamente, estas trayectorias han de estar libres de colisiones con otros veh´ıculos. El procedimiento que suele usarse para garantizar que las trayectorias son seguras es el de establecer una distancia de seguridad entre dos UAVs, de forma que se garantice que en el mismo instante no habr´an dos UAVs cuya distancia relativa sea menor. Se podr´ıa pensar en generar dichas trayectorias libres de colisiones en un sistema en tierra fuera de l´ınea. En este caso, debe existir un organismo que conozca todos los vuelos que van a partir de cada veh´ıculo y que compute dichas trayectorias. El problema es bastante complejo y se debe realizar fuera de l´ınea, por ser lo bastante complejo para ser resuelto en un tiempo aceptable. Adem´as, dichas trayectorias deben ejecutarse a la perfecci´on para garantizar la no existencia de colisiones. Cualquier imprevisto, cambio en las condiciones de vuelo o en los planes de vuelo de cualquier veh´ıculo puede llevar a la existencia de nuevos conflictos no previstos inicialmente. Por tanto, se hace necesario la implantaci´on de un sistema de detecci´on y resoluci´on de colisiones en los UAVs que garantice la integridad del mismo. Para ello, los UAVs deben recoger informaci´on del entorno mediante sensores, dispositivos de visi´on[5] y otros dispositivos. Seg´ un sea tal informaci´on puede haber variaciones en la misi´on a seguir. Al estar en un entorno din´amico, por lo tanto, no tiene mucho sentido que los UAVs tengan una trayectorias fijas cuando inician el vuelo y se les debe dar libertad para poder modificarlas si es necesario. Adem´as, la inclusi´on de estos sistemas puede simplificar la generaci´on de trayectorias iniciales de cada veh´ıculos. Ahora no es necesario que en principio sean libres de colisi´on (aunque s´ı es conveniente) porque se pueden resolver dichas colisiones en tiempo real.

1.3.

Objetivos

Nuestro objetivo primario es el dise˜ no de un sistema que nos permita resolver din´amicamente las colisiones en un sistema compuesto por varios UAVs aut´onomos y en los que se pueden encontrar obst´aculos no cooperativos no previstos. No nos vamos a preocupar de la detecci´on la posici´on de la posici´on de los UAVs pr´oximos al UAV controlado. Supondremos que existe un sistema que nos indique la posici´on y velocidad estimadas de los objetos cercanos, o bien un sistema centralizado que disponga de la informaci´on de la posici´on de los veh´ıculos. Entre las formas de hacer posible esto, podemos destacar el uso de sensores como el radar, l´aser o c´amaras tanto de espectro visible como de infrarrojos; o mediante la transmisi´on por parte de cada veh´ıculo de su estado peri´odicamente, como realiza el sistema ADS-B[6] que se est´a implantando a los aviones comerciales. Hay que tener en cuenta que este tipo de algoritmos son de gran inter´es para la comunidad t´ecnico-cient´ıfica. Por tanto, en primer lugar se debe realizar un extenso estudio acerca del 15

estado del arte de esta t´ecnica. En el cap´ıtulo 2 realizamos dicho estudio, donde se detallan gran parte de los m´etodos existentes hasta el momento, clasific´andolos y exponiendo sus virtudes y sus defectos. Una vez hecho esto, vamos a proponer varios algoritmos de detecci´on y resoluci´on de colisiones desde diferentes enfoques. El objetivo del trabajo es desarrollar algoritmos ´optimos o cuasi-´optimos, pero demostraremos que este tipo de algoritmos tienen un gran aumento del tiempo de computaci´on conforme introducimos veh´ıculos en el sistema y por tanto propondremos algoritmos no o´ptimos que puedan lidiar con sistemas complejos. Todo esto se detalla en el cap´ıtulo 3. Para poder realizar una tarea de detecci´on y resoluci´on de colisiones, debemos de poder obtener predicciones de la trayectoria futura de cada UAV de forma precisa. Para ello es necesario modelar el comportamiento de un UAV. En el cap´ıtulo 4 se exponen los modelos utilizados en el trabajo. Los algoritmos propuestos ser´an implementados en C++. Este hecho supone bastante trabajo y es bueno que est´e bien documentado para poder reutilizar el c´odigo desarrollado y facilitar su mantenimiento, ampliaci´on y depuraci´on. Todo este proceso se ha resumido en el cap´ıtulo 5. Una vez desarrollados los algoritmos, se ejecutar´an simulaciones de los mismos para realizar comparativas y destacar las ventajas e inconvenientes de los mismos. Este proceso tambi´en cumple una labor de depuraci´on y prueba de los algoritmos implementados as´ı como de optimizaci´on de c´odigo. Las comparativas indicar´an qu´e algoritmos son m´as eficientes computacionalmente y tambi´en indicar´an la calidad de las soluciones encontradas por los mismos. Es de especial importancia el dise˜ no de las bater´ıas de pruebas y la ejecuci´on de la misma en repetidas veces sobre todo cuando se trata de algoritmos donde hay presencia de aleatoreidad, como es el caso del algoritmo gen´etico. Una muestra de las simulaciones realizadas se expone en el cap´ıtulo 6. Puesto que el sistema se va a ejecutar en tiempo real, no s´olo se va a tener en cuenta que la soluci´on sea ´optima con respecto a cierto criterio, como puede ser menor variaci´on de la trayectoria con respecto a la original o minimizar el consumo de combustible, tambi´en se tendr´a muy en cuenta la carga computacional asociada a los m´etodos propuestos. Es conveniente validar los algoritmos con pruebas experimentales. Para ello, se han realizado una serie de pruebas en el test-bed situado en el Centro Avanzado de Tecnolog´ıas Aeroespaciales (CATEC). Esto es de suma importancia si se quiere dar paso a una ejecuci´on en un entorno no tan controlado como puede ser un aer´odromo. En el cap´ıtulo 7 se presentan los resultados obtenidos en varios de los experimentos que han sido llevado a cabo satisfactoriamente. Una vez realizadas estas tareas, hay que analizar los resultados obtenidos y ver qu´e si los objetivos se han cumplido y en qu´e pueden mejorarse las t´ecnicas usadas. Tambi´en se hace necesario estudiar qu´e t´ecnicas quedan por desarrollar para obtener un sistema completo de detecci´on y resoluci´on de colisiones fiable y lo m´as aut´onomo posible. Todo esto se estudiar´a en el cap´ıtulo 8.

16

1.4.

Publicaciones

El trabajo expuesto aqu´ı ha sido publicado o est´a pendiente de su revisi´on o publicaci´on en congresos internacionales. Entre estas publicaciones destacamos: J.J. Rebollo, I. Maza, A. Ollero, “A Two Step Velocity Planning Method for Real-time Collision Avoidance of Multiple Aerial Robots in Dynamic Environments”. Proceedings of the 17th World Congress. The International Federation ofAutomatic Control. Seoul, Korea, July 6-11, 2008. D. Alejo, R. Conde, J. A. Cobano y A. Ollero.“Multi-UAV collision avoidance with separation assurance under uncertainties“. 5th IEEE International Conference on Mechatronics, 2009. J.A. Cobano, R. Conde, D. Alejo and A. Ollero. ”Path planning method based on Genetic Algorithms and the Monte-Carlo method to avoid aerial vehicle collisions under uncertainties”. Submitted to IEEE International Conference on Robotics and Automation , 2011. J. A. Cobano, R. Conde, D. Alejo, A. Viguria y A. Ollero. “Cooperating unmanned aerial vehicles in non-segregated airspace.”. Submitted to European Conference on Wireless Sensor Networks, 2011.

17

Cap´ıtulo 2 Estado del arte en CDR El problema de detecci´on y resoluci´on de colisiones en un sistema de varios robots m´oviles aut´onomos ha sido ampliamente estudiado y es todav´ıa un desaf´ıo para la comunidad cient´ıfica. Se trata de un problema complejo y que se debe realizar en tiempo real, por lo tanto se debe resolver eficientemente. Adem´as, es un proceso cr´ıtico para la seguridad del sistema. Como primer criterio para organizar la b´ usqueda, vamos a dividir los algoritmos propuestos seg´ un la inminencia de su aplicaci´on. Los t´erminos usados pueden obtenerse de la aviaci´on civil. V´ease la figura 2.1 para obtener una visi´on r´apida de la cuesti´on. Seg´ un dicha figura podemos distinguir entre: Planificadores estrat´egicos de vuelo. Estos algoritmos operan fuera de l´ınea para obtener los planes de vuelo iniciales. Suelen tener informaci´on del sistema completo de UAVs y tratar de obtener un ´optimo global. Tambi´en se pueden dar casos en los que se detecte una incompatibilidad o en los que las condiciones hagan necesaria una replanificaci´on. Se considera t´actico en operaciones realizadas con hasta una hora de antelaci´on. Algoritmos de resoluci´on de colisiones t´acticos. Estos suelen usar predicci´on de trayectorias para detectar conflictos futuros en un lapso de tiempo del orden de minutos para los clasificados como cercanos, y m´as o menos hasta 45 minutos para los lejanos. Pueden ser o no colaborativos y usan informaci´on del sistema local que tiene colisi´on, as´ı como de veh´ıculos que puedan presentar futuras amenazas. Los algoritmos presentados en este trabajo son de este tipo. Algoritmos de resoluci´on de colisiones reactivos. El objetivo de este tipo de algoritmos es de garantizar la seguridad del veh´ıculos ante colisiones inminentes. Esas colisiones se producir´ıan en un tiempo de pocos minutos o menos. Es usual que sean algoritmos no colaborativos que usen sensores de visi´on, r´adar o l´aser para determinar los datos relevantes del obst´aculo a evitar. Para profundizar en este tema, se remite a [7]. Tambi´en podemos clasificar los algoritmos seg´ un la forma de modificar la trayectoria inicial. En este caso podemos distinguir entre:

18

Figura 2.1: Diferenciaci´on de los algoritmos de resoluci´on de colisiones seg´ un la inminencia de su aplicaci´on.

Resoluci´ on de conflictos mediante cambio de trayectoria lateral. Se modifica el plan de vuelo inicial mediante inclusi´on o cambio de los waypoints programados de forma que se consiga evitar la colisi´on. Resoluci´ on de conflictos mediante cambio en el perfil de velocidades. En este caso, se asigna un perfil de velocidades distinto al original para coordinar los veh´ıculos de forma que no colisionen. Resoluci´ on de conflictos mediante cambio de altura. La estrategia en este caso es evitar la colisi´on cambiando de plano de vuelo, con lo que se evita la colisi´on aumentando la separaci´on vertical de los veh´ıculos implicados. Esta opci´on es sencilla de implementar y llevar a cabo en problemas con pocos veh´ıculos implicados, pero puede dar problemas en entornos saturados o con restricciones en el espacio a´ereo disponible. Los algoritmos que vamos a estudiar en este trabajo se restringen a un u ´nico punto de los tres que hemos visto, una tarea futura que tiene mucho inter´es es encontrar una formulaci´on u ´nica que pueda resolver conflictos mediante combinaci´on de las tres estrategias vistas, o en su defecto la elaboraci´on de un programa de alto nivel que llame a los algoritmos propuestos para coordinar gran n´ umero de aeronaves combinando estas estrategias. Por u ´ltimo, cabe mencionar que existen otras numerosas formas de clasificar los algoritmos de resoluci´on de colisiones existentes. Un gran compendio en el que se exponen multitud de m´etodos es [8]. En este art´ıculo, se estudian muchos de los existentes en el momento de su publicaci´on. As´ı mismo, se propone una clasificaci´on en la que los puntos de comparaci´on son principalmente el espacio en el que se realiza la b´ usqueda de soluci´on (2D o 3D), si el algoritmo es reactivo u o´ptimo, si son colaborativos, etc.

2.1.

Algoritmos t´ acticos

En esta secci´on vamos a citar los trabajos previos que se han realizado sobre resoluci´on de colisiones dentro del paradigma de acci´on t´actico, en la que se corrigen las trayectorias por amenazas detectadas dentro de un lapso de tiempo de entre cinco y quince minutos.

19

2.1.1.

Cilindros en el espacio (x,y,t)

Tsubouchi y Arimoto [9] propusieron un m´etodo para construir geom´etricamente una trayectoria libre de colisi´on en el espacio (x,y,t). Primero se eval´ ua la velocidad y la posici´on de los obst´aculos m´oviles. Suponiendo que la velocidad de los obst´aculos permanece constante, los autores dedujeron una serie de cilindros oblicuos en (x,y,t) que han de ser evitados. El problema se reduce a encontrar una trayectoria que conecte la posici´on inicial, con una recta vertical que representa el objetivo, como vemos en la figura 2.2.

Figura 2.2: Representaci´on de obst´aculos m´oviles en el espacio (x, y) como obst´aculos fijos en (x, y, t). El plantear el problema teniendo en cuenta la dimensi´on temporal, permite representar los obst´aculos m´oviles en el espacio (x, y) a obst´aculos est´aticos en (x, y, t). El problema de planificar trayectorias libres de colisi´on en un entorno est´atico est´a mucho m´as estudiado y existen multitud de formas de resolverlo. Obviamente, la u ´nica restricci´on adicional es que la trayectoria debe de ser siempre creciente para la variable temporal. Este tipo de algoritmos son no cooperativos y bastante eficientes. Dentro de su formulaci´on, permiten obtener soluciones o´ptimas. Son no cooperativos pues s´olo permiten modificar la trayectoria de un u ´nico veh´ıculo.

2.1.2.

Planteamiento de un MILP

En [10] se resuelve el problema de la planificaci´on de trayectorias o´ptimas libres de colisi´on para un sistema de m´ utiples UAVs planteando un problema de programaci´on lineal con variables de decisi´on enteras ( MILP ). Este m´etodo tambi´en es usado en [11], [12] y [13] para resolver problemas de coordinaci´on de tr´afico a´ereo con bastante ´exito. Se usa un modelo de cambio instant´aneo de las aeronaves, 20

en la que los comandos de cambio velocidad(tanto en rumbo como en celeridad) son logrados sin retraso. En dicho art´ıculo razonan que los tiempos considerados para la llegada al conflicto son mucho mayores que los tiempos de los transitorios entre la velocidad actual y la deseada, por lo que se pueden despreciar dichos transitorios. No obstante, para el caso de la resoluci´on de colisiones en UAVs no est´a claro que dichos transitorios sean despreciables. Se consiguen resultados para la resoluci´on de colisiones mediante cambio de rumbo y tambi´en, por separado, para cambio de velocidad.

2.1.3.

Teor´ıa de juegos

Existen multitud de aplicaciones de la teor´ıa matem´atica de juegos aplicada a la resoluci´on de colisiones de forma colaborativa. En este campo cabe destacar [14], en la que se introduce el concepto de altruismo condicional. Seg´ un los datos publicados, este m´etodo ha conseguido resultados satisfactorios a la hora de coordinar tr´afico a´ereo de densidades de hasta 50 aviones por 10000 millas n´auticas cuadradas.

2.1.4.

M´ etodos de planificaci´ on de velocidades

El problema de planificaci´on de movimientos de un robot m´ovil o de un sistema de ellos se puede descomponer en un problema de planificaci´on de la trayectoria (PPP) y un problema de planificaci´on de velocidades (VPP)[15]. En el primer problema (PPP), se obtienen rutas libres de colisi´on con el entorno y factibles para cada uno de los veh´ıculos. Una vez hayadas dichas rutas, se obtienen las trayectorias libres de colisi´on para cada veh´ıculo (si es posible) ajustando sus velocidades para evitar las posibles colisiones que se produzcan. Varios de los algoritmos propuestos se basan en este m´etodo.

2.2.

Algoritmos Reactivos

En esta secci´on se estudiar´an los m´etodos disponibles en la literatura que estudian y proponen algoritmos para la resoluci´on de colisiones puramente reactivos, en los que la colisi´on a evitar es inminente(menos de un minuto). En algunos casos, el m´etodo de percepci´on del obst´aculo y el algoritmo en cuesti´on suelen estar bastante relacionados. Estos m´etodos ser´an estudiados en la subsecci´on 2.2.4.

2.2.1.

Campos potenciales

Se han desarrollado una gran variedad de m´etodos basados en la definici´on de un campo potencial artificial (v´ease [16] para m´as detalle). En ellos, se considera que el robot m´ovil es como una part´ıcula movi´endose en un campo potencial, como podr´ıa ser el electrost´atico. 21

Este campo es repulsivo para obst´aculos y atractivo para el objetivo. La elecci´on de la funci´on potencial influye enormemente en la eficiencia del m´etodo. Existen multitud de posibles funciones potenciales interesantes para la implementaci´on de esta clase de algoritmos. Destacamos: Funciones que cumplen la ecuaci´on de Laplace: 4f = 0. Funciones de campo potencial generalizado. Donde dicho campo es funci´on tanto de la posici´on de las part´ıculas como de su velocidad. Esta clase de soluciones son no cooperativas y se pueden realizar con un coste computacional muy bajo. No obstante, presentan un principal inconveniente: la posibilidad de caer en m´ınimos locales pudiendo no conseguirse el objetivo inicial quedando el sistema en un callej´on sin salida, bien en un estado muerto o en un bucle. Un m´etodo propuesto para evitar estos inconvientes es el de aleatorizar la respuesta del algoritmo, de forma que se consiga salir del estado no deseado. La idea b´asica propuesta en [17] es la de a˜ nadir un fase de movimiento aleatorio (en ingl´es random walk ) si se detecta que se ha llegado a un m´ınimo local no deseado.

2.2.2.

Resoluci´ on usando leyes de control o ´ptimo

En [18] se propone un m´etodo eficiente para la resoluci´on de colisiones inminentes con restricciones en la aceleraci´on. Usa una ley de control ´optimo para obtener la consigna de cada agente, demostrando su seguridad matem´aticamente hasta con tres veh´ıculos y presentando simulaciones de hasta 64 veh´ıculos. El problema de este acercamiento es que suele presentar movimientos oscilatorios e incluso llegar a puntos muertos (aunque se sol´ıan solucionar por la precisi´on limitada de los datos). Dichos resultados se han probado experimentalmente con una m´ınima violaci´on de la separaci´on m´ınima debida a la frecuencia de env´ıo de los datos GPS(10 Hz).

2.2.3.

M´ etodos geom´ etricos

La detecci´on de colisiones de forma puramente geom´etrica parte de [19], en la que se propone un m´etodo para detectar colisiones entre un robot y obst´aculos m´oviles bastante sencilla. Este m´etodo es usado en [20] para elaborar un m´etodo de resoluci´on de colisiones que garantiza una separaci´on m´ınima. La idea es usar una ley de guiado proporcional para garantizar una separaci´on m´ınima entre dos veh´ıculos. Se usan posiciones y velocidades relativas del obst´aculo visto desde el veh´ıculo que dispone del sistema. La figura 2.3 define el cono de colisi´on asociado a un veh´ıculo (definido por los puntos A, B y X ). El algoritmo de resoluci´on de colisiones se activar´a si el vector de velocidad relativa (vrel ) est´a dentro de dicho cono.

22

Figura 2.3: Definici´on del cono de colisi´on, vector de resoluc´on de colisi´on y velocidades absolutas y relativas.

23

La ley de guiado se basa en el vector de resoluci´on de colisiones, (vector desde X a A). Sea θ su direcci´on, se usa la siguiente ley de control: a = N vrel θ˙

(2.1)

Donde N es la constante de proporcionalidad usada en el control. Se demuestra en el art´ıculo que el algoritmo converge siempre que N sea mayor o igual que uno. Adem´as, se determina el valor de dicha constante que minimiza un criterio propuesto. Las simulaciones presentadas constan de dos veh´ıculos, uno controlado y el otro se considera obst´aculo. S´olo se presentan simulaciones 2D. Cabe destacar que se han realizados intentos de aplicaci´on de dicho algoritmo en un testbed compuesto por hasta cuatro UAVs aut´onomos de tipo quad-rotor. En [21] se detallan dichos intentos y los resultados obtenidos. Este algoritmo es pues sencillo de aplicar y eficiente computacionalmente. No obstante, presenta un inconveniente: considera que el veh´ıculo detectado no va a modificar su trayectoria ante la presencia del veh´ıculo controlado. En respuesta a esto, se ha desarrollado una teor´ıa de sistemas multi-agentes, en las que se supone que cada agente del sistema reacciona de forma similar a los obst´aculos detectados. En [22], se propone un sistema de este tipo para su aplicaci´on en sistemas con gran cantidad de agentes. Se han llegado a realizar simulaciones de hasta 10000 agentes[23]. El planteamiento es similar al presentado anteriormente, pero se suaviza la reacci´on del individuo considerando que los otros agentes detectados reaccionaran de forma contraria para tambi´en evitar la colisi´on. En [24] se aplican dichos algoritmos a sistemas de UAVs simulados usando un modelo de avi´on simple. Como inconvenientes de este planteamiento podr´ıamos destacar que s´olo est´an basados en planteamientos geom´etricos, pudiendo no optimizar otros par´ametros como consumo de combustible, distancia de seguridad, etc. Por otro lado, s´olo son efectivos con seguridad si los agentes no tienen restricciones no hol´onomas, con lo que no se podr´ıa garantizar su fiabilidad en UAVs de ala fija. Por u ´ltimo, deber´ıa de haber un sistema que permita discernir si el obst´aculo encontrado va a colaborar o no, para usar este m´etodo, o el presentado anteriormente.

2.2.4.

Sense and Avoid

Este tipo de algoritmos permiten a un UAV evitar autom´aticamente a otros veh´ıculos voladores sin necesidad de colaboraci´on de los mismos ni de comunicaci´on con ellos. Esto incrementa la autonom´ıa del veh´ıculo en gran medida, dado que una de las tareas que m´as tiempo ocupan al piloto y/o supervisores de vuelo es la de detecci´on de posibles veh´ıculos que puedan constituir una amenaza al UAV. De hecho, una de las exigencias para que se puedan introducir UAVs aut´onomos en espacio a´ereo no restringido es que dispongan de un sistema de sense and avoid que obtenga prestaciones similares o mejores a los proporcionados normalmente por un piloto (cuya reacci´on ante veh´ıculos se conoce como see and avoid ). 24

La investigaci´on en este aspecto se ha hecho probando una gran variedad de sensores, como el radar, la visi´on por computador [5], transponedores (del ingl´es, transponders) y mediante un sistema de radioenlace de datos conocido como ADS-B. De hecho, los sistemas basados en ADS-B parecen ser los m´as sencillos de implementar y los que mejores resultados pueden ofrecer. Se basan en la difusi´on de mensajes en los que cada UAV transmite su posici´on GPS. De todas formas, confiar todo el sistema de evitaci´on de obst´aculos a estos sistemas puede ser peligroso por varias razones [5][25]: pueden existir veh´ıculos que no dispongan de dicha tecnolog´ıa o que no la utilicen intencionadamente, el sistema de sat´elites puede funcionar inadecuadamente (por ejemplo, puede que el n´ umero de sat´elites visibles sea peque˜ no) e incluso pueden existir problemas de comunicaci´on. De hecho, dado el peque˜ no tama˜ no de los sistemas UAVs, las aves m´as grandes pueden ser una seria amenaza a la integridad de los mismos. En resumen, un sistema de sense-and-avoid basado en la percepci´on del entorno ofrece una alternativa autosostenida en la que s´olo se depende de la integridad de los sistemas de abordo para localizar y evitar una posible amenaza. Se puede ver como una alternativa de seguridad que imita al comportamiento humano de see-and-avoid. Seg´ un la FAA(Federal Aviation Administration de los EEUU), un sistema de este tipo es v´alido cuando ofrece prestaciones similares o mejores que las de un piloto. Sense and avoid mediante visi´ on Se ha investigado ampliamente en el concepto de detecci´on autom´atica de objetivos mediante visi´on por computador. Entre las t´ecnicas utilizadas se pueden destacar la morfolog´ıa matem´atica[5][26], los filtros de substracci´on de mediana, filtros HP y t´ecnicas basadas en secuencias de im´agenes en el tiempo como el filtrado de coincidencias 3D y t´enicas de programaci´on lineal [27][28]. Desafortunadamente no existen prototipos (o no se conocen) que implementen esta funcionalidad. Hay varios de ellos en desarrollo, como puede ser el UAV “BAE HERTI” (High Endurance Rapid Technology Insertion) desarrollado por la compa˜ n´ıa brit´anica BAE Systems. Esta compa˜ n´ıa esta actualmente desarrollando un sistema de sense and avoid para dicho prototipo basado en radar y en visi´on por computador. Tambi´en existe un proyecto de desarrollo de un sistema sense and avoid con sensores o´pticos para el UAV militar Predator que fue terminado a mediados de 2008 y ya ha sido utilizado en los conflictos de Afganist´an e Irak[29]. Por u ´ltimo, se ha propuesto un sistema de navegaci´on en entornos cerrados y cercanos al suelo [30]. Est´a inspirado en la visi´on de los insectos, que utilizan la variaci´on de flujo o´ptico para determinar la presencia de obst´aculos cercanos. Seg´ un algunos estudios, cuando los insectos detectan una zona donde el existe un flujo ´optico que diverge r´apidamente, consideran que existe una colisi´on inminente y reaccionan para evitarla. Este comportamiento tambi´en se utiliza para maniobras de aterrizaje.

25

Sense and Avoid con ayuda de otros sensores Existen multitud de sensores que se usan para detectar la presencia de obst´aculos que son usados en UAVs y robots m´oviles en general de forma que se pueden usar para dotar de mayor autonom´ıa al robot. Entre dichos sensores caben destacar los sensores de tipo ac´ ustico(sonar y ultrasonidos), los radares y los l´aseres 2D y 3D. En [31] se propone un sistema de guiado 2D para UAVs aut´onomos. Los UAVs se equipan con sensores tipo RADAR para detectar los obst´aculos del entorno. Estos UAVs disponen de un modo de evitaci´on de obst´aculos en el caso de que el RADAR detecte un obst´aculo. Se modela la forma del mismo con un c´ırculo y se trazan dos caminos circulares tangentes al mismo y que pasan por la posici´on actual del robot y se elige uno de ellos como ruta a seguir. Se indica en el art´ıculo que un par´ametro de importancia a la hora de usar este m´etodo es la distancia en la que se ignoran los obst´aculos detectados por el RADAR. Si esta distancia es muy grande, el UAV estar´a casi siempre en modo de evitaci´on de obst´aculos y es posible que no se llegue al waypoint objetivo. Si es muy corta, es posible que el UAV no consiga evitar los obst´aculos. Tambi´en se muestra una forma de generalizaci´on a guiado 3D. Tambi´en se ha propuesto una tesis doctoral sobre el estudio de la implantaci´on de un sistema sense and avoid con sensores ac´ usticos[32] para un veh´ıculo terrestre. Cabe destacar que en el Grupo de Rob´otica, Visi´on y Control de la Universidad de Sevilla se ha desarrollado un veh´ıculo aut´onomo terrestre que cuenta con un sensor l´aser 2D para la navegaci´on aut´onoma. Su nombre es ROMEO (Robot ). Se ha implementado un algoritmo de evitaci´on de obst´aculos basado en el presentado en [33] llamado Nearness Diagram. Este algoritmo est´a orientado a la evitaci´on de obst´aculos en entornos muy obstaculizados, lo que no suele ser el caso en UAVs. En la figura 2.4 se muestra dicho veh´ıculo cooperando con el robot a´ero HERO, que tambi´en pertenece al mismo grupo.

2.3.

Resoluci´ on de colisiones con incertidumbre

Cuando trabajamos con robots m´oviles, es imposible el conocer el estado exacto de los veh´ıculos del sistema en cada instante de tiempo. Por el contrario, dicho estado estar´a inferido por las medidas que disponemos del sistema. El problema se hace a´ un m´as evidente si trabajamos con predicciones del estado futuro del sistema. Por tanto, hemos de admitir la presencia de incertidumbre en el sistema. Existen varias formas de enfrentarnos a dicha incertidumbre. El m´etodo cl´asico es el de usar notaci´on determinista y usar distancas de separaci´on sobreestimadas para asegurar que no hay colisi´on en el sistema. Este m´etodo es v´alido siempre que la incertidumbre no sea excesiva y que los algoritmos de localizaci´on no diverjan. No obstante, existe una tendencia de introducir la incertidumbre en el planteamiento del problema de resoluci´on de colisiones usando t´ecnicas probabil´ısticas. Entre las fuentes de incertidumbre m´as importantes podemos destacar las debidas a las condiciones atmosf´ericas, a la precisi´on del modelo del UAV que se usa para llevar a cabo la 26

Figura 2.4: Cooperaci´on entre los robots HERO y ROMEO del Grupo de Rob´otica Visi´on y Control de la Universidad de Sevilla.

27

predicci´on o a las limitaciones de los sensores o el sistema de control para evitar perturbaciones. En el caso de los UAVs, el factor m´as importante de todos es el cambio en las condiciones atmosf´ericas. De entre ellas, destaca particularmente las condiciones de viento que son en las que nos centraremos en la implementaci´on que vamos a realizar. En [34] se presenta un m´etodo de planificaci´on para robots m´oviles que considera la incertidumbre en la estimaci´on de la posici´on del robot usando POMDPs(Partially Observable Markov Decission Processes). No obstante, no considera la existencia de otros veh´ıculos en el entorno. Tambi´en se usan planificadores basados en lazy PRM (Probabilistic RoadMaps) para planificar los movimientos de un robot articulado en presencia de incertidumbre[35]. En nuestro caso, usaremos el m´etodo de MonteCarlo para predecir tanto la trayectoria como estimar su incertidumbre y usaremos dichos resultados para variar la distancia de seguridad del sistema.

28

Cap´ıtulo 3 T´ ecnicas CDR usadas Tal y como se ha expuesto en 2, se han desarrollado varios algoritmos de detecci´on y resoluci´on de colisiones. En este cap´ıtulo describiremos brevemente los formalismos usados para sus desarrollo.

3.1.

Detecci´ on de colisiones

Existen multitud de t´ecnicas para resolver el problema de la detecci´on de colisiones entre objetos. Algunos consiguen una detecci´on de colisiones muy precisa con la contrapartida de necesitar un modelado 3D del entorno y de los objetos implicados, siendo bastante costosos computacionalmente. Entre otros podemos citar [36], donde se expone un algoritmo de detecci´on de colisiones basado en jerarqu´ıas de vol´ umenes que rodean al objeto. Las aplicaciones m´as habituales para este tipo de sistemas entran en el campo de los videojuegos y de la animaci´on. No obstante, en el campo de la resoluci´on de colisiones en UAVs se suele preferir detectores de colisiones mucho menos preciso en la que los objetos se modelan como regiones simples, como pueden ser esferas, cilindros o poliedros[19][12]. Estas regiones suelen ser bastante sobredimensionadas, pues la presencia de UAVs cercanos puede interferir aerodin´amicamente con otros pr´oximos, haciendo que su comportamiento difiera notablemente del esperado, pudiendo dar lugar a comportamientos casi impredecibles. Tambi´en existen trabajos de detecci´on de colisiones basados en probabilidades, en las que se definen desde el punto de vista estad´ıstico. En este caso, los algoritmos de resoluci´on de colisiones deben de garantizar una tasa de colisiones muy peque˜ na, siendo imposible garantizar la colisi´on por completo [37]. En nuestro caso, vamos a detectar colisiones usando definiciones de conflicto y colisi´on no probabilistica. Cuando usemos informaci´on sobre la incertidumbre de las trayectorias predichas, ´esta se aplicar´a a la distancia de seguridad del algoritmo de detecci´on de colisiones.

29

Figura 3.1: Problema de la descomposici´on del espacio en celdas. U3 y U4 tienen trayectorias conflictivas, mientras que U1 y U2 no.

3.1.1.

Detecci´ on en el espacio discreto

En primer lugar, vamos a usar celdas 3D para nuestro algoritmo de detecci´on de colisiones adecuando la resoluci´on de la rejilla adecuadamente. Este ajuste es delicado, pues consideraremos que cada veh´ıculo est´a en una u ´nica celda en un instante de tiempo. Por tanto, su tama˜ no debe ser bastante mayor que el de un veh´ıculo. No obstante, un tama˜ no desmesurado de celda tendr´ıa efectos muy negativos y podr´ıa hacer que no se pueda encontrar soluci´on del problema. Una definici´on poco acertada de colisi´on ser´ıa aquella en la que para que dos veh´ıculos colisionen deban ocupar la misma casilla en el mismo instante de tiempo[38]. Esta definici´on un problema obvio: no es capaz de garantizar una separaci´on m´ınima. Es m´as, es posible que dos trayectorias que sean muy cercanas no se consideren conflictivas, mientras que dos bastante m´as separadas s´ı se consideren conflictivas. Esto se muestra en la figura 3.1. Para evitar dicho problema, necesitamos definir de una forma alternativa y que garantice una separaci´on m´ınima los conceptos de colisi´on y de conflicto en las trayectorias de los veh´ıculos. Las nuevas definiciones se muestran a continuaci´on: Vecindad de C: es el conjunto de celdas cuya distancia a C es menor que una distancia de seguridad. Conflicto: se dice que entre la ruta de un veh´ıculo tiene un conflicto en la celda C si existe una ruta de otro veh´ıculo que pasa por una celda perteneciente a la vecindad de C. Zona de conflicto: conjunto de celdas recorridas consecutivamente por dos o m´as veh´ıculos que se encuentran en conflicto. Colisi´ on: existe una colisi´on si dos veh´ıculos se encuentran en dos celdas vecinas en el mismo instante de tiempo.

30

Por tanto, hemos cambiado las definiciones de conflicto y colisi´on anteriores adapt´andolas para asegurar la restricci´on de separaci´on m´ınima. Adem´as, se ha introducido un nuevo concepto: la zona de conflicto. Este concepto es crucial pues a la hora de resolver un conflicto, ning´ un veh´ıculo entrar´a en una zona de conflicto mientras haya otro en dicha zona. Las figuras 3.2 y 3.3 muestran ejemplos de zonas de conflicto.

Figura 3.2: Ejemplo de zona de conflicto con una celda de distancia de seguridad.

31

Figura 3.3: Ejemplo de zona de conflicto con tres celdas de distancia de seguridad en una situaci´on de tr´afico convergente.

3.1.2.

Solapamiento de cajas alineadas con los ejes de coordenadas

Con motivo de realizar un detector de colisiones que usara trayectorias sin muestreo en el espacio, hemos usado una detecci´on de colisiones basado en cajas alineadas con los ejes solapadas. Esta t´ecnica se suele conocer en ingl´es como Minimum Bounding Boxes (MBB). Esta descripci´on tiene como inconvenientes el ser dependiente de los ejes de coordenadas y poco precisa. A pesar de eso, decidimos usarlo pues es computacionalmente es muy poco costosa y necesita de pocos par´ametros para describir un sistema. En la figura 3.4 se muestra un ejemplo de un sistema de cajas alineadas en el que se va a tratar de discernir la existencia o no de una colisi´on. Podemos describir cada una de las cajas como una intersecci´on de tres regiones del plano, cada una definida mediante el confinamiento de una de las coordenadas a un intervalo. Por tanto, una caja puede ser definida como una intersecci´on de tres intervalos. Nosotros describiremos la caja con ayuda de dichos subintervalos. En la figura 3.5 se aprecia un ejemplo de esta descripci´on para un cuadrado en el plano. Es f´acil notar que para que exista colisi´on entre dos cajas, debe de haber un solapamiento coordenada a coordenada entre los intervalos que definen cada una de dichas cajas. Redumos el problema de solapamiento de cajas 3D a tres problemas de solapamiento de intervalos. 32

Figura 3.4: Sistema descrito por cajas alineadas con los ejes. Las cajas A y B est´an solapadas, mientras que la C est´a libre de colisi´on.

Figura 3.5: Ejemplo de descripici´on de una caja 2D con ayuda de dos intervalos: [x0 , x1 ] y [y0 , y1 ].

33

Solapamiento de intervalos Sean A = [Ai , Af ] y B = [Bi , Bf ], donde A, B ∈ Bf

(3.1)

Usando una de las leyes de De Morgan, se deriva la condici´on de solapamiento: S ↔ Af > Bi ∧ Ai < Bf

(3.2)

Figura 3.6: Casos en los que no existe solapamiento de intervalos en la recta real.

3.2.

Algoritmos de resoluci´ on de colisiones basados en velocidad

En este apartado, expondremos los algoritmos que se van a usar para resolver conflictos cambiando u ´nicamente el perfil de velocidades de uno o m´as veh´ıculos. Como se indica en [12][13], este tipo de algoritmos no son completos, puesto que no pueden evitar colisiones de tipo frontal como el producido en la figura 3.7. Por tanto, un sistema de resoluci´on de colisiones no puede usar este tipo de algoritmos exclusivamente, sino que debe tambi´en implementar otro que pueda introducir cambios en las trayectorias a seguir para garantizar su eficacia en todo tipo de situaciones.

Figura 3.7: Ejemplo de choque frontal entre dos veh´ıculos. Este tipo de colisiones no puede ser resuelto con algoritmos de resoluci´on de colisiones basados en velocidad.

34

No obstante, s´ı que se podr´ıa elegir entre las soluciones obtenidas aplicando algoritmos de los dos tipos de algoritmos para poder decidir cu´al de ellas tomar. Esta comparaci´on se puede realizar con ayuda de alg´ un criterio, como puede ser minimizar el consumo de combustible, la desviaci´on con respecto a los planes de vuelo originales, etc. Adem´as, en algunas aplicaciones es aconsejable no desviarse del plan de vuelo original, como en reconocimiento de terreno, b´ usqueda y rescate, etc.

3.2.1.

Resoluci´ on de colisiones mediante la asignaci´ on de dos velocidades

En este algoritmo, se supone que UAVn puede decidir entre dos velocidades (vhn y vln ) para evitar la colisi´on. Estas dos velocidades pueden ser diferentes para cada veh´ıculo del sistema. El objetivo de este algoritmo es el de obtener una soluci´on en un corto lapso de tiempo y para sistemas con gran n´ umero de veh´ıculos. Se puede demostrar que este problema se puede resolver en tiempo polinomial. Sea AV = AV1 , AV2 , ..., AVn el conjunto de UAVs del sistema, definimos un conjunto de variables l´ogicas X = x1 , x2 , ..., xn . Estas variables indican la elecci´on de velocidad de cada veh´ıculo. En otras palabras: AVi tiene velocidad vli si Xi = 0(en otro caso tendr´ıa velocidad vhi ). Para cada par de veh´ıculos, AVi y AVj , chequearemos qu´e asignaciones de velocidad dan lugar a colisi´on o no. Con esto obtenemos una f´ormula Fij que nos indica qu´e valores podemos asignar a xi y xj de forma de que estos dos veh´ıculos no colisionen. Un ejemplo se encuentra en la figura 3.8.

Figura 3.8: Ejemplo de f´ormula l´ogica que indica que no habr´a colisi´on entre AVi y AVj si las variables de decisi´on son iguales (xi = xj ).

Cada f´ormula se puede reescribir en la forma normal conjuntiva. As´ı, nuestro problema se transforma en la asignaci´on de ceros y unos a los elementos de X de forma que todas los f´ormulas sean positivas. Esto es, una instancia de un problema tipo 2-SAT que se puede resolver en tiempo polin´omico [39]. En la figura 3.9 se muestra la construcci´on de un grafo GF = hV, Ei a partir de la f´ormula F = (x¯1 ∨ x2 ) ∧ (x¯2 ∨ x3 ) ∧ (x1 ∨ x¯3 ) ∧ (x2 ∨ xe ). El proceso ser´ıa primero pasar de una forma normal disjuntiva a una conjuntiva. Se puede demostrar que el problema no tiene soluci´on si y s´olo si existe un camino en ¯i , para un cierto i. Por tanto, se pueden aplicar algoritmos de el grafo que ligue Xi con X b´ usqueda en a´rbol para ver si existe soluci´on. Estos algoritmos dependen linealmente del n´ umero de nodos en el grafo.

35

Es posible que el algoritmo llegue a m´as de una soluci´on. En ese caso, eligiremos la soluci´on que minimice un cierto criterio.

Figura 3.9: El grafo GF correspondiente a la f´ormula F .

3.2.2.

Algoritmo voraz para cambio de velocidades

Este algoritmo funciona como un algoritmo on-line; esto es, elige qu´e veh´ıculo tiene que modificar su velocidad para evitar una colisi´on autom´aticamente. Es f´acil observar que cuando las rutas est´an fijadas y s´olo podemos variar la velocidad de cada veh´ıculo, el problema se puede modelar como un problema de planificaci´on. Es decir, hemos de ver en qu´e orden pasar´an los veh´ıculos all´ı donde se produzca una colisi´on. Sea AV = AV1 , AV2 , ..., AVn el conjunto de UAVs del sistema. Asumimos que su velocidad inicial es m´axima. Supongamos tambi´en que las celdas del espacio est´an numeradas. En nuestro caso, cada veh´ıculo vuela dentro del intervalo temporal [ti , tf ], atravesando algunas celdas del espacio. Entonces, cada veh´ıculo tendr´a dicho intervalo divido en diferentes subintervalos que se corresponden con el periodo de tiempo en el que se encuentran en una celda determinada. Podemos ver cada l´ınea de tiempo como una secuencia consecutiva de intervalos en los que tenemos determinada la celda en la que se encuentra el veh´ıculo. La figura 3.10a nos muestra un ejemplo de l´ınea temporal. Sea AVi (t) una funci´on que nos indica la celda en que se encuentra el veh´ıculo i en el instante t. La idea es de realizar un barrido desde t = ti hasta t = tf comprobando que no puede existir un par de veh´ıculos en celdas vecinas en el mismo instante. En el caso de que en un instante AVi entre en una celda cuya vecindad estuviera ocupada por el AVj , la velocidad de AVi es decrementada para evitar dicha situaci´on. Se hace entonces, que AVi entre en la dicha celda el mismo instante en que AVj sale. En la pr´actica, hemos a˜ nadido un intervalo de seguridad entre dichos eventos. Dicho procedimiento se muestra en la figura 3.10b. El algoritmo es descrito en detalle en el algoritmo 3.2.2. En este algoritmo, Q es una lista que contiene los cambios de celda m´as pr´oximos en el tiempo para cada veh´ıculo. Estos cambios estar´an represntados por eventos, que representaremos por la tripleta e = hAi , te , ce i.

36

Figura 3.10: Ejemplo de aplicaci´on del algoritmo voraz. AV1 atraviesa las celdas 3,5,1,2 y 7. Cuando t = t1 (a) la velocidad de AV2 se decrementa retrasando su estancia en la celda 5 para evitar la colisi´on con AV1 (b).

Esta tripleta indica que el veh´ıculo AVi entra en la celda ce en el instante te . N´otese que en cada instante, la lista Q s´olo tiene un evento por cada veh´ıculo. Evitando decisiones Hay que tener en cuenta que al considerar velocidades m´aximas, s´olo podemos decrementar las velocidades para evitar colisiones. En el caso de que consideremos tambi´en la posibilidad de aumentar la velocidad, tendr´ıamos que decidir qu´e opci´on es mejor y por tanto el algoritmo se complicar´ıa (deber´ıa de comprobar cada posibilidad para encontrar el o´ptimo). Existe otro caso de decisi´on, en el que dos veh´ıculos entran a la vez en celdas vecinas. Este caso depende de la resoluci´on a la que hagamos el barrido y tambi´en implica una decisi´on. En el algoritmo implementado, dicha elecci´on se realiza aleatoriamente, pudiendo dar lugar a resultados no o´ptimos. La figura 3.11 muestra un ejemplo en el que aparecen las situaciones de decisi´on indicadas. La soluci´on encontrada, en los casos en los que no existe una toma de decisi´on, es la que evita la colisi´on con menor cambio en las trayectorias.

3.2.3.

M´ etodo de optimizaci´ on de perfil de velocidades

Este algoritmo tiene como objetivo encontrar un perfil de velocidades ´optimo para evitar las colisiones en el sistema. Se distinguen entre veh´ıculos colaborativos y obst´aculos m´oviles, modificando la velocidad de los primeros para evitar colisiones de forma que los perfiles de velocidad var´ıen en la menor manera posible.

37

Algoritmo 1 Algoritmo CDR voraz 1. repeat 2. Sea e = hAi , te , ce i el evento de Q con menor valor de tiempo 3. if existe en Q otro evento en el mismo instante y con una celda igual o vecina a ce then 4. La simulaci´on se interrumpe: una situaci´on de decisi´on se ha encontrado(en la pr´actica se continua con una opci´on al azar). 5. end if 6. if no hay un Aj (j 6= i) tal que Aj (te ) ∈ vecindad(ce ) y Aj y no abandona su celda ce en te (no hay collision) then 7. Elimina e de Q 8. Busca el nuevo evento e0 de Ai 9. Inserta e0 en Q 10. else 11. if la velocidad de Ai puede dcrementarse de forma que Ai abandone su celda actualen el instante de tiempo t0 que se corresponde al instante en el que se produce el evento Q asociado con Aj then 12. Decrementa la velocidad de Ai . 13. Elimina e de Q. 14. Busca el nuevo evento e0 de Ai 15. Inserta e0 en Q 16. else 17. El algoritmo finaliza. Se ha encontrado una colisi´on inevitable con VPP. 18. end if 19. end if 20. until Hasta que la simulaci´ on se pare 21. return Tiempos de estancia en cada celda de cada UAV

Figura 3.11: Situaciones de decisi´on: (a) considerar tanto el incremento como el decremento de velocidades (b) entrada simult´anea de dos veh´ıculos en una celda conflictiva.

38

El trabajo presentado en esta subsecci´on tiene como punto de partida el propuesto en [38] y [40], pero con varias mejoras para garantizar una separaci´on m´ınima entre veh´ıculos. Este m´etodo descompone las trayectorias discretizadas(codificadas como secuencia de celdas visitadas) de los veh´ıculos en zonas que estar´an compuestas por grupos de celdas visitadas consecutivamente. En esto se diferencia del algoritmo original, en la que la optimizaci´on se hace celda a celda. Se distinguen entre zonas libres de colisi´on y zonas de conflicto, por las que pasan m´as de un UAV. El algoritmo se divide en dos partes. En la primera se utiliza un algoritmo de b´ usqueda en ´arbol para verificar la existencia de una soluci´on. En la segunda parte se usa el orden de paso por las zonas de conflicto obtenido en el primer paso y se optimiza la velocidad con la que cada UAV transita en cada zona para que sea lo m´as parecida a la velocidad inicialmente planificada. Para evitar colisiones, vamos a hacer que s´olo pueda estar en una zona de conflicto un veh´ıculo a la vez. Con esto nos aseguramos que no se producen colisiones en el sistema. No obstante, esta soluci´on es bastante conservadora y en la secci´on 8 se propondr´a una mejora que optimice en mayor medida la soluci´on obtenida en el algoritmo. Algoritmo de b´ usqueda en ´ arbol Esta primera fase del algoritmo de resoluci´on de colisiones, la fase de b´ usqueda en ´arbol tiene como objetivo discernir la existencia de soluciones en el sistema y en el caso de que exista soluci´on proponer un orden de paso por cada una de las zonas de conflicto del sistema que tenga soluci´on. Para hallar dicho orden v´alido se van probando o´rdenes de paso de cada zona de conflicto haciendo que cada veh´ıculo viaje a velocidad m´axima. Si un veh´ıculo entra en una zona de conflicto cuando no es su turno, se vuelve hacia atr´as su trayectoria y se frena s´olo lo necesario para evitar la colisi´on. Definimos un orden de llegada a una zona de conflicto como el orden en que los diferentes veh´ıculos del sistema la atraviesan. Por tanto, en una zona de conflicto se necesitar´an evaluar n! o´rdenes de paso diferentes, donde n es el n´ umero de implicados en ese conflicto. Este algoritmo explora primero los ´ordenes de paso m´as l´ogicos, aquellos en los que pasan primero los veh´ıculos cuyo tiempo de llegada a la zona de conflicto es menor, hasta que se logra obtener una soluci´on. Para cada orden de paso diferente este algoritmo es capaz de comprobar la existencia de soluci´on en un tiempo computacional muy corto. Si no existe soluci´on, el algoritmo pasa a comprobar el siguiente orden de paso, cambiando primero el orden de paso de los veh´ıculos m´as lejanos (temporalmente) a la zona de conflicto. Supongamos que hay m zonas de conflicto con ni veh´ıculos implicados en cada uno. En ese caso, debemos chequear diferentes o´rdenes de paso en cada conflicto. Si se explora un orden dado y no se encuentra soluci´on, el algoritmo permuta primero el orden de llegada al conflicto que tenga un mayor coste Ji definido en 3.3.

39

J i = µi − σ i

(3.3)

Donde µi y σi representan la media y la desviaci´on t´ıpica de los tiempos de llegada de cada implicado en la zona de conflicto. La media de dicho tiempo tiene que ser considerada porque un cambio en conflictos que se producen m´as pronto puede afectar a conflictos posteriores. La desviaci´on t´ıpica se tiene en cuenta porque es m´as f´acil cambiar el orden de llegada en conflictos con tiempos de llegada similares que en conflictos con tiempos de llegada muy dispares. En este algoritmo, cada veh´ıculo tiene un ´arbol asociado para cara orden de paso a las zonas de conflicto por las que pase. Cada nodo est´a relacionado con una zona por la que dicho veh´ıculo pasa, y su profundidad indica el n´ umero de la zona. Por tanto, los nodos de igual profundidad se relacionan con la misma zona. El par´ametro m´as importante de un ´arbol es el peso asociado a un enlace. Si w(i, d) es el peso del enlace entre los nodos i y d, este peso tiene el valor del tiempo que el veh´ıculo pasa en la zona relacionada con el nodo i. En las representaciones, la longitud horizontal del enlace ser´a proporcional a su peso. Cada a´rbol se genera seg´ un se describe en el algoritmo 2. En primer lugar, se asocian los m´ınimos pesos a cada a´rbol(pasos 5 y 6). Por tanto, los veh´ıculos viajan a su velocidad m´axima. Cuando se llega a una zona de conflicto, los pesos de los enlaces que corresponden a esa zona de conflicto se calculan en el orden de paso que se est´a verificando(pasos 8 y 9). Cuando un peso que se corresponde a una zona de conflicto se calcula, se realiza una detecci´on de colisiones en dicha zona de conflicto(paso 10). Si se detecta colisi´on, el peso del enlace previo se incrementar´a para evitarla(paso 11). Si no se puede aumentar dicho peso lo suficiente, se aumentar´an tambi´en los pesos de las zonas siguientes. En caso de que se llegue al nodo ra´ız, se llega a una colisi´on inevitable y se contin´ ua la b´ usqueda con el siguiente orden de llegada, reiniciando todos los a´rboles (pasos 12 y 13). N´otese que si en el proceso de aumento de peso del ´arbol, se tiene que aumentar el peso de un enlace que se relaciona con una zona de conflicto, los a´rboles que contengan un nodo relacionado con la misma zona y que tengan que pasar posteriormente por dicha zona de conflicto se tendr´an que podar hasta dicho nodo para volver a detectar colisiones en dicho punto (paso 11). Estos ´arboles se denominan ´arboles relacionados. En la figura 3.12 se muestra un ejemplo de sistema en la que se detecta una colisi´on potencial entre AV 1 y AV 2. Aplicando este algoritmo, se propone como orden de llegada inicial a CZ1 primero AV 2 y despu´es AV 1 y a CZ2 AV 1 y despu´es AV 3. La figura 3.13 muestra el proceso del algoritmo en este caso. Primero se genera el a´rbol de AV 2 debido al orden de paso. Despu´es, se genera el a´rbol de AV 1, detect´andose una colisi´on con AV 2. Por tanto, se cambia el peso en la zona anterior a la zona de conflicto y se termina de generar el ´arbol. Finalmente le llega el turno a AV 3. Se detecta que ese veh´ıculo va a pasar por la zona de conflicto CZ2 antes que AV 1. Por tanto, se aumenta el peso en las zonas anteriores para hacer que AV 1 pase primero por CZ2. Se ha encontrado una soluci´on de la que se aprovechar´a el orden de paso hallado para todas las zonas de conflicto.

40

Algoritmo 2 Algoritmo de b´ usqueda en a´rbol 1. repeat 2. Calcular el orden de llegada a todas las zonas de conflicto 3. Inicializar los a´rboles de los UAVs 4. while los ´arboles no est´en completos y no exista una colisi´ on inevitable do 5. for cada ´arbol do 6. if no est´a completo then 7. Calcular los pesos m´ınimos hasta llear a un nodo de colisi´on. 8. if el a´rbol no est´a completo Y los veh´ıculos precedentes han calculado sus pesos en las zonas de conflicto then 9. Calcular el peso del nodo de conflicto. 10. if se ha detectado una colisi´on then 11. Retroceder creando nuevas ramas con mayores pesos para resolver la colisi´on. Retroceder tambi´en en ´arboles relacionados. 12. if se llega al principio del a´rbol sin ´exito then 13. Se ha encontrado una colisi´ on inevitable 14. end if 15. end if 16. end if 17. end if 18. end for 19. end while 20. until que se encuentre una soluci´ on o se hallan probado todos los a´rboles sin ´exito 21. return El orden de llegada para el que se encontr´ o soluci´on, o un error si no se ha encontrado soluci´on

41

Figura 3.12: Situaci´on del sistema que se usa como ejemplo de aplicaci´on del algoritmo de b´ usqueda en a´rbol.

42

Figura 3.13: Ejemplo de funcionamiento del algoritmo de b´ usqueda en a´rbol.

Fase de optimizaci´ on Si el algoritmo de la b´ usqueda en a´rbol encuentra una soluci´on, se ha obtenido un orden de llegada v´alido para todas las zonas de conflicto. Este orden se usa para formular un problema de programaci´on cuadr´atica (QP) para obtener soluciones m´as parecidas a las trayectorias iniciales. Este tipo de problemas tratan de minimizar una funci´on objetivo cuadr´atico en sistemas multidimensionales sujetos a restricciones lineales [25]. El problema consiste en minimizar:

JQP =

Mi  N X X

tik − tref ik

2

(3.4)

i=1 k=1

Donde tik es el tiempo de permanencia en la zona n´ umero k atravesada por AVi , tikref era el tiempo de estancia planificado. N representa el n´ umero de aviones en el sistema y Mi el n´ umero de zonas que atraviesa AVi . Las restricciones a las que est´a sujeto el problema de optimizaci´on se indican en 3.5.

vik−1 − αv dik /vref

tik − aik vik − bik ≤ 0 tik − aik vik − bik ≤ 0 vmin ≤ vik ≤ vmax ≤ vik ≤ vik−1 + αv dik /vref 43

(3.5)

Donde vik , y dik son, respectivamente, la velocidad de entrada y la distancia recorrida en cada zona. ai simboliza la aceleraci´on m´axima deseada en AVi . Las dos primeras restricciones tienen en cuenta el rango que puede tener el tiempo de establecimiento en una celda con respecto al tiempo de entrada en ella. Estas ecuaciones se obtienen interpolando las restricciones que se desprenden del modelo de UAV expuesto en 4.3. Para m´as detalles se remite a [40]. La tercera restricci´on viene impuesta por las velocidades m´aximas presentes en el modelo del UAV. La u ´ltima indica que la velocidad de entrada a una zona est´a restringida por la velocidad de entrada a la zona anterior, y viene impuesta por la aceleraci´on m´axima deseada en el veh´ıculo. Existen, adem´as, una serie de restricciones necesarias para evitar las posibles colisiones en las diferentes zonas de conflicto halladas. Estas restricciones se formulan en la ecuaci´on 3.6. Q−1

X k=1

tmk −

P X

tlk ≤ 0

(3.6)

k=1

Donde P indica el n´ umero de zona, por orden de recorrido, que se corresponde con la zona de conflicto evaluada para el veh´ıculo que pasa despu´es(l). Q indica lo mismo, pero para el veh´ıculo que le precede(m).

3.3.

Algoritmos de resoluci´ on de colisiones mediante cambio de trayectoria

En esta secci´on se van a enumerar los algoritmos de detecci´on de colisiones que modifican la trayectoria del veh´ıculo en su perfil lateral. Es decir, la trayectoria del veh´ıculo se modifica s´olo en el plano horizontal, sin dar lugar a modificaciones en la altura del veh´ıculo.

3.3.1.

Algoritmo no cooperativo basado en t´ ecnicas evolutivas

En [41] se propone un algoritmo de generaci´on de rutas cuasi-´optimas para su aplicaci´on en aviones comerciales que est´en entrando en la zona de influencia de un aeropuerto (TMA). Se supone que este veh´ıculo se adentra en un entorno en el que las trayectorias de los veh´ıculos presentes ya han sido negociadas y se calcula su maniobra o´ptima de acuerdo con ellas. Por tanto, se ha de obtener una ruta libre de colisi´on para un veh´ıculo que comparte el espacio a´ereo con otros veh´ıculos cuyas trayectorias ya son conocidas. El algoritmo propuesto va a tener como objetivo la generaci´on de una secuencia de waypoints o nodos entre una posici´on inicial y una posici´on deseada que tenga un rendimiento o´ptimo o cercano al mismo seg´ un el criterio deseado bajo restricciones. Se modificar´a u ´nica-

44

mente la trayectoria del veh´ıculo en el que se aplica, quedando intacto las trayectorias planificadas de los dem´as veh´ıculos del entorno. Para resolver el problema se utilizar´a un algoritmo evolutivo, en particular un algoritmo gen´etico. Los individuos del algoritmo gen´etico (GA) son secuencias de waypoints que representan un posible camino que el UAV debe seguir. En primer lugar se genera una poblaci´on inicial al azar. Despu´es, se evalua la validez de cada candidato. Para eso, se usa la siguiente funci´on de coste 3.7. En nuestro caso, cada cromosoma se ha codificado como una serie de waypoints intermedios del veh´ıculo a controlar. Por tanto, para dar significado total a un cromosoma, hemos de adjuntar las condiciones iniciales y el punto objetivo. Esto se ha hecho as´ı para reducir la informaci´on procesada por el algoritmo. Costi = ω1 Li + ω2 Di + ω3 Ai + ω4 Ci

(3.7)

Donde Li es la longitud de la trayectoria, Di es la desviaci´on de la trayectoria respecto a la inicial, Ai representa el a´ngulo de giro entre dos segmentos consecutivos y Ci indica si la trayectoria est´a libre de colisiones: si Ci = 1 existe colisi´on y en caso contrario, Ci = 0. − El vector → ω nos da el peso que tiene cada parte de la funci´on de coste. Normalmente ω2  ω1 , ω3 , ω4 . Estos individuos generados en el GA deben cumplir una serie de requisitos: 1. Longitud m´ axima: La longitud debe cumplir: Li < Lmax 2. Variaci´ on de rumbo m´ axima:No permitiremos que el avi´on gire en demas´ıa. Sean las coordinadas del waypoint Wi = (xi , yi , zi ), definimos ai = (xi , xi1 , yi , yi1 , zi , zi1 ). Si la variaci´on m´axima de a´ngulo es θmax , podemos escribir dicha restricci´on de la aT a ≥ cosθmax . siguiente forma: |aii||ai+1 i+1 | 3. No collisi´ on. Debe de guardar una separaci´on m´ınima entre las trayectorias de los dem´as UAVs y una distancia que var´ıa seg´ un sea el obt´acula. En general, dij ≥ dreq . Donde dij es la separaci´on entre el UAV i y el UAV u obst´aculo j. Esta distancia depende de la incertidumbre asociada a la trayectoria del UAV i. En el algoritmo GA se usan los operadores de cruce y mutaci´on para obtener una nueva poblaci´on. Una vez obtenida la nueva poblaciones, se pasa a la fase de selecci´on, donde las dos poblaciones son comparadas mediante la funci´on de validez, qued´andonos con la poblaci´on m´as v´alida. El resultado de esta criba ser´a la poblaci´on de la nueva generaci´on. En la figura 3.14 se observa el esquema b´asico del algoritmo de optimizaci´on basado en evoluci´on gen´etica. Esta versi´on es la que se ha usado en simulaci´on y experimentaci´on por el momento. El funcionamiento es sencillo, mediante la iteraci´on de estas dos fases(generaci´on y selecci´on), el algoritmo gen´etico obtiene trayectorias cada vez m´as cercanas a la ´optima y que son libres de colisi´on. 45

Vamos a describir brevemente en qu´e consiste el procesamiento realizado en cada una de las fases. Para m´as informaci´on se remite a [42].

Figura 3.14: Estructura gen´erica de un algoritmo de optimizaci´on evolutivo basado en genes.

Inicializaci´ on de la poblaci´ on. Este paso es bastante importante, pues obtenemos la primera poblaci´on de genes realizando un muestreo del espacio de b´ usqueda. Hemos probado con varios tipos de muestreo del espacio de trabajo. En particular se han realizado un tipo de muestreo aleatorio con una distribuci´on uniforme centrada en puntos intermedios de los puntos de inicio y objetivo de cada veh´ıculo. Y adem´as se ha hecho un muestreo determinista del espacio soluci´on basado en la secuencia Lattice. Se pretenden implementar m´as tipos de muestreo, para ver este tema en profundidad se recomienda la lectura de [43]. Evaluaci´ on. En este paso, a cada gen se le asocia un valor que pondera la valided del mismo. En nuestro caso, aplicaremos el criterio expuesto en la ecuaci´on 3.7. Cruce. Se obtienen nuevos individuos a partir de dos individuos. Los cromosomas hijos estar´an compuestos cada uno por una parte de los cromosomas padres. Existe una gran variedad de tipos de operadores de cruce. Nosotros probamos por operadores de cruce 46

con uno o varios puntos de corte. En este tipo de operadores, los genes de los padres se dividen en varias partes y los descendientes adquieren trozos de los padres de forma alternativa. Finalmente, nos quedamos con un operador de cruce uniforme donde cada gen de los descendientes se elige aleatoriamente bien de uno u otro progenitor. En la figura 3.15 se aprecian las diferencias entre los dos tipos de operadores. Mutaci´ on. En este caso, a partir de un individuo se obtiene otro nuevo variando ligeramente el valor de sus genes. Por tanto cada valor es susceptible de ser ligeramente mutado seg´ un una distribuci´on aleatoria centrada en el valor del individuo origen. Selecci´ on. Al reproducirse la poblaci´on con ayuda de los operadores de cruce y selecci´on, obtenemos una cantidad mayor de individuos. Hay que hacer una criba para obtener una poblaci´on del tama˜ no deseado. Para ello se pueden usar diferentes tipos de selecci´on: una determinista seleccionar´a los mejores individuos, otra basada en la ruleta de la fortuna se basar´ıa en elegir aleatoriamente pero ponderand la validez del individuo, Condici´ on de fin. Evidentemente, debe programarse un condici´on que finalice el algoritmo. En nuestro caso, el algoritmo debe de usarse en tiempo real por lo que lo m´as normal es poner una condici´on temporal para que finalice el algoritmo. No obstante, nosotros por el momento lo hemos aplicado en simulaci´on y en forma fuera de l´ınea por lo que por el momento la condici´on de finalizaci´on que hemos programado era la de que se llegara a un n´ umero de repeticiones del ciclo evolutivo. Existen otras muchas condiciones que se usan para finalizar el algoritmo, como pueden ser que el criterio de la mejor soluci´on est´e por debajo de un cierto umbral, o que pasen un cierto n´ umero de iteraciones sin que se cambie el mejor individuo, etc.

Figura 3.15: Diferentes operadores de cruce. De izquierda a derecha: cruce con un punto de corte, cruce con dos puntos de corte y cruce uniforme.

47

3.3.2.

Algoritmo cooperativo basado en t´ ecnicas evolutivas

El algoritmo expuesto en la secci´on 3.3.1 se puede generalizar para resolver conflictos de forma cooperativa. El problema consiste en este caso en coordinar los planes de vuelo de varios veh´ıculos de forma se evite la colisi´on variando cada trayectoria en la menor medida posible. El problema planteado es la inclusi´on de waypoints adicionales en el plan de vuelo de varias aeronaves para evitar colisiones entre las mismas y objetos del escenario. Entre los objetos de escenario podemos distinguir obst´aculos fijos y veh´ıculos no colaborativos. Estos u ´ltimos veh´ıculos pueden no formar parte del sistema controlado o ser veh´ıculos cuyas trayectorias no se desea modificar. Este problema es similar al presentado anteriormente. Las restricciones impuestas a los individuos del algoritmo van a ser las mismas (v´ease 3.3.1). No obstante, este algoritmo ser´a computacionalmente m´as exigente. La raz´on es que para evaluar la bondad de un individuo se deber´a simular el comportamiento de varias aeronaves. Para reducir la complejidad del algoritmo se han tomado las siguientes decisiones: Reducci´ on del espacio de trabajo. Para obtener las nuevas trayectorias s´olo se van a incluir un waypoint intermedio en cada veh´ıculo. Esto reducir´a el espacio de b´ usqueda del algoritmo. Simplificaci´ on del modelo. Para evaluar la validez de los individuos hace falta una llamada al simulador de trayectorias por cada veh´ıculo controlado, mientras que anteriormente se realizaba s´olo una. Por tanto, es conveniente reducir en la medida de lo posible la complejidad del modelo sin que ello afecte en gran medida a la precisi´on de la simulaci´on. Para ello se ha desarrollado el modelo expuesto en 4.4. Simplificaci´ on de la funci´ on de m´ erito. La funci´on objetivo es la parte m´as pesada computacionalmente hablando. Esto hace que se tenga que minimizar cualquier c´alculo presente en la misma. En este caso, nos quedamos s´olo con el coste de longitud del plan de vuelo y a˜ nadimos una penalizaci´on por presencia de colisi´on en el sistema.

48

Cap´ıtulo 4 Modelo de UAV En este cap´ıtulo expondremos los diferentes m´etodos que se han usado para predecir el comportamiento de un UAV. Esta fase es primordial tanto para predecir posibles colisiones futuras como para asegurar que las maniobras calculadas para evitar una colisi´on son verdaderamente efectivas. Esta es una parte muy importante del trabajo, pues un modelado deficiente del comportamiento de un UAV podr´ıa hacer que no se detectasen colisiones futuras o que se comanden maniobras imposibles de realizar para un veh´ıculo.

4.1.

Modelo de masa puntual

Para modelar el comportamiento de un veh´ıculo a´ereo existen multitud de modelos disponibles en la literatura. Es com´ un el uso de modelos de masa puntual, si no se desea tener gran detalle de lo ocurrido en el interior del veh´ıculo, si no que se desea conocer aproximadamente la posici´on del centro de masas, as´ı como su orientaci´on y velocidad. En las ecuaciones 4.1 se muestra un ejemplo de modelo de masa puntual bajo algunas hip´otesis simplificadores, en particular que se realicen s´olo maniobras benignas. V´ease [44] para un an´alisis detallado del modelo, as´ı como de asunciones en el sistema de control que debe llevar para generar las actuaciones adecuadas seg´ un un plan de vuelo. La figura 4.1 nos sirve para aclarar el significado de los a´ngulos de Euler usados en estas ecuaciones as´ı como las fuerzas que intervienen en el movimiento de un avi´on.

49

x˙1 = x4 cos (x5 ) cos(u3 ) + w1 x˙2 = x4 sin (x5 ) cos(u3 ) + w2 x˙3 = x4 sin(u3 ) + w3 2 1 CD Sρ (x3 ) x4 x˙4 = − − gsin(u3 ) + u1 2 x6 x6 CL Sρ (x3 ) x4 sin(u2 ) x˙5 = 2 x6 x˙6 = −ηu1

(4.1)

En estas ecuaciones, se describe el comportamiento de un veh´ıculo a´ereo de ala fija como un sistema de control con seis estados, tres variables de control y varios coeficientes aerodin´amicos y de consumo del veh´ıculo. Posici´on en el plano horizontal(x1 y x2 ). Altitud (x3 ). Velocidad respecto al aire (x4 ), se suele utilizar el acr´onimo AS, del ingl´es airspeed. ´ Angulo de orientaci´on con respecto al eje x (x5 ). Masa del veh´ıculo (x6 ). Es necesaria si el veh´ıculo est´a propulsado por un motor de combusti´on. El empuje del avi´on (u1 ). El ´angulo de bancada (u2 ) (del ingl´es bank angle). ´ ´ Angulo de camino de vuelo (u3 ) (del ingl´es flight path angle) . Angulo entre la velocidad con respecto al aire y el plano horizontal. Coeficientes de sustentaci´on y de p´erdidas (CL y CD ). Son constantes aerodin´amicas del veh´ıculo. Relaci´on consumo-empuje (η). Nos indica cu´anto combustible se gasta para producir empuje. g es la aceleraci´on debida a la gravedad y ρ(x3 ) es la densidad del aire en funci´on de la altura. El movimiento del veh´ıculo tambi´en es afectado por el viento a trav´es de su velocidad W = (w1 , w2 , w3 ) ∈