You are on page 1of 102

i

CENTRO DE INVESTIGACION Y DE ESTUDIOS


AVANZADOS

DEL INSTITUTO POLITECNICO NACIONAL

UNIDAD ZACATENCO

DEPARTAMENTO DE COMPUTACION

Dise o e implementacin de un sistema de control


n
o
para un cuadricptero.
o
Tesis que presenta
Antonio Pico Villalpando
Para Obtener el Grado de
Maestro en Ciencias
En
Computacin
o
Director de la Tesis
Dra. Xiaoou Li
Codirector de Tesis
Dr. Rogelio Lozano
Mxico, Distrito Federal
e

Diciembre, 2012

ii

Resumen
En dcadas recientes, ha habido un gran inters en el estudio de veh
e
e
culos areos
e
no tripulados (en ingls: UAVs o unmanned aerial vehicles), ya que han demostrado
e
ser una herramienta verstil y de relativo bajo costo para un gran nmero de aplicaa
u
ciones.
Los ultimos avances en la tecnolog han impulsado el desarrollo y la operacin de este

a
o
tipo de veh
culos. Los nuevos sensores, microprocesadores y sistemas de propulsin,
o
son ahora ms pequeos, ms ligeros y ms capaces que nunca.
a
n
a
a
En este trabajo de tesis, construimos un veh
culo areo de ala rotativa llamado cuae
dricptero o cuadrirotor. Estos veh
o
culos tienen la ventaja de poder quedarse suspendidos en el aire y de tener alta maniobrabilidad, lo que los hace utiles en misiones de

robtica.
o
El veh
culo cuenta con una pequea computadora a bordo con Linux embebido y
n
Xenomai, una plataforma para dar soporte en tiempo real.
Diseamos el control automtico de postura y altura basndonos en controladores
n
a
a
PID. Este tipo de controladores requiere de un ajuste no de sus parmetros para su
a
correcto funcionamiento por lo que, viendo sto como un problema de optimizacin,
e
o
utilizamos el algoritmo de evolucin diferencial para hacer el mejor ajuste posible,
o
obteniendo resultados positivos.
El cuadricptero puede comunicarse con una computadora (usada para conguracin
o
o
y apoyo en la evolucin diferencial) y una tablet-PC con Android, que sirve para el
o

control en tierra. Esto a travs de una red Wi-Fi.


e
Palabras clave: veh
culos areos no tripulados, cuadricptero, evolucin diferencial,
e
o
o
control PID, sistemas embebidos.

iii

iv

Abstract
In recent decades, there has been a great interest in the study of unmanned aerial
vehicles (UAVs), as they have proven to be a versatile and relative low cost tool for
a large number of applications.
Recent advances in technology have boosted the development and operation of such
vehicles. The new sensors, microprocessors and propulsion systems, are now smaller,
lighter and more capable than ever.
In this thesis, we construct a rotary-wing aerial vehicle called quadcopter or quadrotor. These vehicles have the advantage of being able to hover and having high
maneuverability, making them useful in robotic missions.
The vehicle has a small on-board computer running embedded Linux and Xenomai,
a development framework for real-time support.
We design an automatic control of attitude and altitude based on PID controllers.
Such controllers require the ne tuning of their parameters for proper operation, so
seeing this as an optimization problem, we use the dierential evolution algorithm to
do the best possible t, with positive results.
The quadcopter can communicate with a computer (used for conguration and differential evolution support) and a tablet-PC with Android, which serves as ground
control. All this through a Wi-Fi network.
keywords: unmanned aerial vehicles, quadcopter, dierential evolution, PID control,
embedded systems.

vi

Agradecimientos
A mis padres Martha y Antonio, por apoyarme siempre en todos mis emprendimientos.
A mis t Lidia y Lourdes, por ofrecerme su ayuda siempre que lo he necesitado.
as
A mis asesores de tesis, la Dra. Xiaoou Li y el Dr. Rogelio Lozano, por permitirme trabajar con ellos y brindarme el equipo apropiado para el desarrollo del proyecto.
A mis revisores de tesis, la Dra. Sonia Mendoza y el Dr. Sergio Salazar, por tomarse el tiempo de examinar mi trabajo y por sus valiosos consejos.
A los profesores y compaeros del departamento de computacin, por compartir sus
n
o
conocimientos.
A sof Reza, por brindarme su apoyo durante mi estancia en el CINVESTAV.
a
Al CINVESTAV, por darme la oportunidad de estudiar una maestr
a.
Al Consejo Nacional de Ciencia y Tecnolog (CONACYT), por el apoyo econmico
a
o
brindado durante el posgrado.

vii

viii

AGRADECIMIENTOS


Indice general
Agradecimientos

VII

Figures

XI

Tables
1. Introduccin
o
1.1. Antecedentes y motivacin .
o
1.2. Planteamiento del problema
1.3. Objetivos . . . . . . . . . .
1.4. Trabajos relacionados . . . .
1.5. Organizacin del documento
o

XV

.
.
.
.
.

2. Cuadricptero
o
2.1. Veh
culos areos no tripulados
e
2.1.1. Historia . . . . . . . .
2.1.2. Caracter
sticas . . . .
2.1.3. Clasicacin . . . . . .
o
2.1.4. Aplicaciones . . . . . .
2.2. Cuadricptero . . . . . . . . .
o
2.2.1. Historia . . . . . . . .
2.2.2. Principio de operacin
o

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

3. Control del cuadricptero


o
3.1. Introduccin a los sistemas de control . . .
o
3.1.1. Sistemas de control en lazo abierto
3.1.2. Sistemas de control en lazo cerrado
3.1.3. Controlador PID . . . . . . . . . .
3.1.4. Controlador PID digitalizado . . .
ix

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

1
1
2
2
3
4

.
.
.
.
.
.
.
.

5
5
6
7
8
8
9
10
11

.
.
.
.
.

13
13
14
14
15
17


INDICE GENERAL

x
3.2. Control del cuadricptero
o

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

18

3.2.1. Control de postura . . . . . . . . . . . . . . . . . . . . . . . .

19

3.2.2. Control de posicin . . . . . . . . . . . . . . . . . . . . . . . .


o

24

3.2.3. Control general del sistema

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

27

3.3. Ajuste de parmetros del controlador PID por medio de evolucin dia
o
ferencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

3.3.1. Algoritmos evolutivos . . . . . . . . . . . . . . . . . . . . . . .

28

3.3.2. Evolucin diferencial . . . . . . . . . . . . . . . . . . . . . . .


o

29

3.3.3. Ajuste de parmetros del controlador del cuadricptero . . . .


a
o

32

4. Implementacin del hardware


o

35

4.1. Descripcin general del sistema . . . . . . . . . . . . . . . . . . . . .


o

35

4.2. Descripcin del Hardware


o

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

37

4.2.1. Controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

4.2.2. Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

4.2.3. Motores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41

4.2.4. Interfaz de potencia . . . . . . . . . . . . . . . . . . . . . . . .

42

4.2.5. Comunicaciones . . . . . . . . . . . . . . . . . . . . . . . . . .

42

4.2.6. Energ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
a

43

4.2.7. Otras interfaces . . . . . . . . . . . . . . . . . . . . . . . . . .

44

4.2.8. Estructuras para pruebas del veh


culo . . . . . . . . . . . . . .

46

4.3. Construccin del cuadricptero . . . . . . . . . . . . . . . . . . . . .


o
o

48

5. Implementacin del software


o

55

5.1. Plataformas de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . .

55

5.1.1. Linux y tiempo real . . . . . . . . . . . . . . . . . . . . . . . .

55

5.1.2. Xenomai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

5.1.3. Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

58

5.2. Control y conguracin del cuadricptero . . . . . . . . . . . . . . . .


o
o

58

5.2.1. Controlador a bordo . . . . . . . . . . . . . . . . . . . . . . .

59

5.2.2. Aplicacin de conguracin en computadora . . . . . . . . . .


o
o

63

5.2.3. Control en tierra con computadora en tableta . . . . . . . . .

64

5.3. Ajuste de parmetros del PID con evolucin diferencial . . . . . . . .


a
o

66

5.3.1. Evolucin diferencial en computadora a bordo . . . . . . . . .


o

67

5.3.2. Control de evolucin diferencial en computadora . . . . . . . .


o

70

5.3.3. Resultados de la ejecucin de la evolucin diferencial . . . . .


o
o

73


INDICE GENERAL

xi

6. Conclusiones y trabajo a futuro


6.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2. Trabajo a futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77
77
78

xii

INDICE GENERAL


Indice de guras
2.1.
2.2.
2.3.
2.4.
2.5.
2.6.
2.7.
2.8.

Primer veh
culo areo no tripulado [Barnhart et al., 2011]. . . . . . .
e
6
Veh
culo areo no tripulado de uso civil [Nonami et al., 2010]. . . . .
e
7
Cuadricptero [Ulbrich et al., 2011]. . . . . . . . . . . . . . . . . . . .
o
9
Primer cuadricptero [Raza and Gueaieb, 2010]. . . . . . . . . . . . . 10
o
Cuadricptero diseado por George De Bothezat [Raza and Gueaieb, 2010]. 10
o
n
Cuadricptero diseado por hmichen en 1924 [Raza and Gueaieb, 2010]. 11
o
n
Diagrama de un cuadrirotor. . . . . . . . . . . . . . . . . . . . . . . . 11
Dinmica de un cuadrirotor, (a) sustentacin y altura; (b) diferencia en
a
o
torque para manipular yaw (); (c) diferencia en torque para manipular
pitch (); (d) diferencia en torque para manipular roll (). . . . . . . 12

3.1.
3.2.
3.3.
3.4.

Componentes de un sistema de control. . . . . . . . . . . . . . . . . .


Elementos de un sistema de control en lazo abierto. . . . . . . . . . .
Elementos de un sistema de control en lazo cerrado. . . . . . . . . . .
Elementos de un sistema de control PID: (a) forma simblica y (b)
o
forma en el dominio del tiempo . . . . . . . . . . . . . . . . . . . . .
3.5. Diagrama de control del cuadricptero. . . . . . . . . . . . . . . . . .
o
3.6. Diagrama del control de postura del cuadricptero. . . . . . . . . . .
o

3.7. Angulos , , y determinan la postura del cuadricptero. . . . . . .


o
3.8. Diagrama del controlador PID de pitch. . . . . . . . . . . . . . . . . .
3.9. Diagrama del controlador PID de roll. . . . . . . . . . . . . . . . . .
3.10. Diagrama del controlador PID de yaw. . . . . . . . . . . . . . . . . .
3.11. Diagrama del control de posicin. . . . . . . . . . . . . . . . . . . . .
o
3.12. Diagrama del controlador PID de altura. . . . . . . . . . . . . . . . .
3.13. Diagrama del control general del sistema. . . . . . . . . . . . . . . . .

16
18
19
20
20
22
23
25
26
27

4.1. Sistema de control a bordo del cuadricptero. . . . . . . . . . . . . .


o
4.2. Sistema de comunicacin. . . . . . . . . . . . . . . . . . . . . . . . .
o
4.3. Chasis del cuadricptero con motores. . . . . . . . . . . . . . . . . . .
o

36
36
37

xiii

14
14
15

xiv

INDICE DE FIGURAS

4.4. Computadora Gumstix. . . . . . . . . . . . . . . . . . . . . . . . . . .


4.5. Gumstix montado en placa de expansin Summit. . . . . . . . . . . .
o
4.6. Unidad de medicin inercial CHR-6d de CH Robotics. . . . . . . . . .
o
4.7. Sensor ultrasnico. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
o
4.8. Motor sin escobillas. . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.9. Manejador de motores sin escobillas. . . . . . . . . . . . . . . . . . .
4.10. Ruteador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.11. Computadora en tableta utilizada como control en tierra. . . . . . . .
4.12. Fuente de poder de una computadora. . . . . . . . . . . . . . . . . .
4.13. Bater de litio pol
a
mero de tres celdas. . . . . . . . . . . . . . . . . .
4.14. Diagrama esquemtico del circuito regulador-traductor de voltaje. . .
a
4.15. Tablilla del circuito regulador-traductor vista por abajo. . . . . . . .
4.16. Tablilla del circuito regulador-traductor vista por arriba. . . . . . . .
4.17. Concentrador USB (sin carcasa). . . . . . . . . . . . . . . . . . . . .
4.18. Convertidor USB a serial. . . . . . . . . . . . . . . . . . . . . . . . .
4.19. Tripi para pruebas de control de postura. . . . . . . . . . . . . . . .
e
4.20. Pivote para movimiento en pitch, roll y yaw. . . . . . . . . . . . . . .
4.21. Base para pruebas de control de altura. . . . . . . . . . . . . . . . . .
4.22. Diagrama del hardware del sistema de control del cuadricptero. . . .
o
4.23. Veh
culo con motores y manejadores de motores montados. . . . . . .
4.24. Placa del regulador-traductor de voltaje utilizada como base (vista
inferior). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.25. Computadora montada sobre placa reguladora-traductora de voltaje.
4.26. Placas montadas en el cuadricptero. . . . . . . . . . . . . . . . . . .
o
4.27. Conexin del sensor ultrasnico. . . . . . . . . . . . . . . . . . . . . .
o
o
4.28. Cuadricptero con carcasa de madera. . . . . . . . . . . . . . . . . .
o
4.29. Cuadricptero. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
o
5.1. El kernel de tiempo real (primario) tiene mayor prioridad que el kernel
de Linux (secundario). . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2. Hilos bsicos del software a bordo del veh
a
culo y memoria compartida.
5.3. Hilo principal e hilo servidor de la aplicacin de control a bordo. . . .
o
5.4. Estructura de los paquetes de datos enviados entre el servidor y el cliente.
5.5. Hilos de control de postura y altura de la aplicacin de control a bordo.
o
5.6. Interfaz de usuario de la aplicacin de conguracin. . . . . . . . . .
o
o
5.7. Sistema de coordenadas de tableta y veh
culo. . . . . . . . . . . . . .
5.8. Interfaz de la aplicacin de control en tierra. . . . . . . . . . . . . . .
o

38
38
39
40
42
43
43
44
44
45
45
46
46
47
47
48
48
49
49
50
50
51
51
52
52
53

57
59
60
61
63
64
65
66


INDICE DE FIGURAS
5.9. Diagrama de ujo de ED en computadora a bordo, parte 1. . . . . . .
5.10. Diagrama de ujo de ED en computadora a bordo, parte 2. . . . . . .
5.11. Diagrama de ujo de ED en computadora a bordo, parte 3. . . . . . .
5.12. Estructuras para las pruebas de evolucin diferencial de postura y alo
tura del cuadricptero. . . . . . . . . . . . . . . . . . . . . . . . . . .
o
5.13. Interfaz de usuario de la aplicacin de evolucin diferencial en la compuo
o
tadora. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.14. Diagrama de ujo de la aplicacin de control de ED en computadora.
o
5.15. Grca de evaluaciones de individuos de control de postura. . . . . .
a
5.16. Grca de evaluaciones de individuos de control de altura. . . . . . .
a

xv
69
70
71
72
72
74
75
76

xvi

INDICE DE FIGURAS


Indice de cuadros
5.1. Lista de comandos ejecutables por el hilo servidor. . . . . . . . . . . .

xvii

62

xviii

INDICE DE CUADROS

Cap
tulo 1
Introduccin
o
En los ultimos aos ha habido un gran inters en el desarrollo de veh

n
e
culos areos no
e
tripulados, ya que poseen caracter
sticas unicas como: tamao pequeo, gran manio
n
n
brabilidad y relativo bajo precio, hacindolos atractivos para uso tanto militar como
e
civil en reas como vigilancia, reconocimiento e inspeccin en ambientes complejos o
a
o
peligrosos.
Los ultimos avances en la tecnolog han impulsado el desarrollo y la operacin de este

a
o
tipo de veh
culos. Los nuevos sensores, microprocesadores y sistemas de propulsin
o
son ms pequeos, ligeros y ms capaces que nunca, llevando a niveles de resistencia,
a
n
a
eciencia y autonom que sobrepasan las capacidades humanas [Nonami et al., 2010].
a

1.1.

Antecedentes y motivacin
o

El primer veh
culo areo no tripulado (en ingls: UAV o unmanned aerial vehicle)
e
e
fue construido en 1916, pero debido a su inmadurez no tuvo ningn uso prctico
u
a
[Barnhart et al., 2011].
El desarrollo de UAVs empez a crecer a nales de los aos 1950s, contando con
o
n
investigacin a gran escala hasta nales de los 1970s, siendo utilizados por primera
o
vez en forma prctica por Estados Unidos en la guerra del golfo (1991).
a
Por otro lado, la Agencia estadounidense del Espacio y la Aeronutica (en ingls:
a
e
NASA o National Aeronautics and Space Administration) hac investigaciones para
a
usos civiles en ese mismo periodo, desarrollando veh
culos de medicin de variables
o
ambientales [Nonami et al., 2010].
A partir de entonces, se ha desarrollado una gran variedad de este tipo de veh
culos
para usos como: fotograf y video areos, instrumentacin en la agricultura, inspeca
e
o
cin de cables de alta tensin, monitoreo de trco vehicular, etctera.
o
o
a
e
Un tipo particular de UAVs, el cuadricptero, ha sido objeto de numerosas inveso
tigaciones en los ultimos aos, debido a que tienen la ventaja de poder quedarse
n
suspendidos en el aire y ser altamente maniobrables, lo cual habilita el despegue y
1

2 1.2. PLANTEAMIENTO DEL PROBLEMA


aterrizaje vertical. Estas capacidades los hacen especialmente utiles en misiones de

robtica, lo que llev a su utilizacin en este trabajo de tesis.


o
o
o
Si bien, el desarrollo de veh
culos areos no tripulados ha tenido un gran avance en
e
Estados Unidos, Japn y Europa [Nonami et al., 2010]; en pa como Mxico an
o
ses
e
u
se encuentra en su etapa inicial. Hay pocos centros de investigacin dedicados a este
o
tema y an no se cuenta con ninguna implementacin comercial.
u
o
Esta situacin me ha llevado a realizar este proyecto, adems de mi inters personal
o
a
e
en la aplicacin de tecnolog para la agricultura en pa en v de desarrollo, que
o
a
ses
as
es a donde va enfocado el trabajo a mediano y largo plazo.

1.2.

Planteamiento del problema

Un cuadricptero es un helicptero con cuatro rotores, donde cada uno est colocado
o
o
a
en la extremidad de una cruz. El control del cuadricptero se hace modicando las
o
velocidades relativas de los rotores, ya sea para cambiar su altitud, orientacin, avance,
o
retroceso, etctera.
e
Si un operador humano simplemente manda seales de velocidad a cada motor, el
n
control del veh
culo se hace casi imposible, primero porque es un sistema dinmico
a
que requiere ajustes en el orden de los milisegundos y segundo porque el nmero de
u
variables a controlar sobrepasa las capacidades de una persona normal (6 grados de
libertad). Debido a sto, se deben incluir etapas de control automtico que aligeren
e
a
la carga del operador.
El diseo de una buena interfaz de usuario tambin es importante. Una interfaz
n
e
sencilla e intuitiva puede acelerar enormemente el proceso de aprendizaje del manejo
de estos veh
culos, facilitando su uso en lugares donde no haya disponible personal
especializado.
Otro aspecto a tomar en cuenta es el diseo del hardware. Un diseo pensado en
n
n
extender las funcionalidades del veh
culo, puede ser muy util para investigaciones

futuras.

1.3.

Objetivos

General
Disear e implementar un sistema de control para un cuadricptero, que sea fcil de
n
o
a
manejar por usuarios inexpertos y que sea lo sucientemente escalable para utilizarlo
como base en futuras investigaciones.
Cinvestav

Departamento de Computacin
o


CAP
ITULO 1. INTRODUCCION 3
Particulares
Construir un cuadricptero.
o
Implementar el control automtico de la postura y altura del veh
a
culo.
Crear una interfaz de control de usuario intuitiva, aprovechando las caracter
sticas que ofrecen las computadoras en tableta.
Disear un sistema bsico, pero pensado para ser extendido con caracter
n
a
sticas como: despegue y aterrizaje autnomo, planeacin de trayectorias, visin,
o
o
o
etctera.
e

1.4.

Trabajos relacionados

Se han implementado varios tipos de cuadricpteros con base en diferentes modelos


o
de su dinmica y controles, que van desde PID [Li and Li, 2011] hasta lgica difusa
a
o
[Santos et al., 2010] y redes neuronales [Bouhali and Boudjedir, 2011].
En [Ulbrich et al., 2011] desarrollaron un sistema de control modular para facilitar
la investigacin en diferentes campos como los sistemas de tiempo real, sistemas
o
distribuidos y la robtica. Adems de buscar modularidad en hardware, se busc moo
a
o
dularidad en software basndose en un microcontrolador lo sucientemente poderoso
a
para atender varias tareas a la vez. Se han hecho pruebas con sistemas de seguimiento
de trayectorias.
En [Hafner et al., 2010] implementaron un veh
culo para el desarrollo de estrategias de
navegacin bio-inspiradas. El sistema utiliza un Gumstix para su control. Un aspecto
o
interesante de este trabajo es que utiliza sensores bio-inspirados, como una cmara
a
construida con un lente especial para darle visin omnidireccional y una brjula bao
u
sada en el patrn de polarizacin de la luz solar.
o
o
Una plataforma para planeamiento de trayectorias es implementada en [Bai et al., 2011].
Este sistema, adems de contar con una unidad de masa inercial y GPS, est equia
a
pada con seis sensores de proximidad ultrasnicos, con el n de sensar obstculos y
o
a
detectar la mejor ruta a tomar. Un sistema bluetooth integrado sirve para comunicar
varios veh
culos entre s en ambientes colaborativos. Como unidades de procesamien
to, utiliza dos microcontroladores ARM, uno para el control de bajo nivel (postura) y
el otro para ejecutar los algoritmos de planeamiento de trayectorias y comunicacin.
o
Ya ha habido implementaciones de veh
culos areos no tripulados en la agricultura.
e
En [Berni et al., 2009] desarrollaron un sistema de instrumentacin multiespectral,
o
montado en un helicptero, con el n de incrementar la resolucin de las mediciones
o
o
en cultivos con respecto a los datos obtenidos por satlites. Este sistema es capaz de
e
seguir trayectorias de manera autnoma y mandar los datos tomados a una estacin
o
o
en tierra, basndose en un sistema de posicionamiento global.
a
Otro helicptero diseado para instrumentacin multiespectral se implementa en
o
n
o
Cinvestav

Departamento de Computacin
o


4 1.5. ORGANIZACION DEL DOCUMENTO

[Xiang and Tian, 2011]. Este cuenta con tres canales de comunicacin: un radiocono
trol para el uso manual del veh
culo, un sistema WiFi para el env de datos en
o
tiempo real y un transmisor de video, para tener una perspectiva del veh
culo desde
tierra.

1.5.

Organizacin del documento


o

La tesis se organiza en 6 cap


tulos con la siguiente estructura:
Cap
tulo 2: dene qu son los veh
e
culos areos no tripulados, presentando su
e
historia, caracter
sticas y clasicacin. Adems, se explica el principio de funo
a
cionamiento del cuadricptero.
o
Cap
tulo 3: da una introduccin a los sistemas de control, enfocndose en el
o
a
controlador PID. Tambin describe el diseo del sistema de control del cuae
n
dricptero, adems del mtodo de ajuste de parmetros PID con evolucin dio
a
e
a
o
ferencial.
Cap
tulo 4: hace una descripcin de los componentes de hardware que conforman
o
el sistema de control diseado, as como los pasos seguidos para la construccin
n

o
del cuadricptero.
o
Cap
tulo 5: da una breve explicacin de las plataformas de desarrollo utilizao
das para la implementacin del software del sistema, para despes hacer una
o
u
descripcin detallada de cada una de las aplicaciones creadas.
o
Cap
tulo 6: presenta las conclusiones que se obtuvieron en el desarrollo de la
tesis, as como el trabajo a futuro para alcanzar la meta nal de este desarrollo.

Cinvestav

Departamento de Computacin
o

Cap
tulo 2
Cuadricptero
o
En los ultimos aos ha habido un gran inters en el desarrollo de veh

n
e
culos areos no
e
tripulados, ya que poseen caracter
sticas unicas como: tamao pequeo, gran manio
n
n
brabilidad y relativo bajo precio, hacindolos atractivos para uso tanto militar como
e
civil en reas como vigilancia, reconocimiento e inspeccin en ambientes complejos o
a
o
peligrosos.
Los ultimos avances en la tecnolog han impulsado el desarrollo y operacin de este

a
o
tipo de veh
culos. Los nuevos sensores, microprocesadores y sistemas de propulsin
o
son ms pequeos, ligeros y ms capaces que nunca, llevando a niveles de resistencia,
a
n
a
eciencia y autonom que sobrepasan las capacidades humanas [Nonami et al., 2010].
a
En este cap
tulo, se denir lo que es un veh
a
culo areo no tripulado, se har una bree
a
ve resea histrica y se describirn sus caracter
n
o
a
sticas. Se pondr especial nfasis en
a
e
un tipo particular de estos veh
culos, el cuadricptero, cuya historia y principio de
o
funcionamiento sern explicados.
a

2.1.

Veh
culos areos no tripulados
e

Un avin no tripulado es denido con los trminos siguientes: veh


o
e
culo areo no
e
tripulado (en ingls: UAVs o Unmanned Aerial Vehicles), avin operado de forma
e
o
remota (en ingls: ROA o Remotely Operated Aircraft), y veh
e
culo piloteado de forma remota (en ingls: RPV o Remotely Piloted Vehicle) [DoD, 2002]. El Instituto
e
Americano de la Aeronutica y de la Astronutica (en ingls: AIAA o The American
a
a
e
Institute of Aeronautics and Astronautics) dene un veh
culo areo no tripulado coe
mo: Un avin que es diseado o modicado para no cargar a un piloto humano y es
o
n
operado por un controlador de vuelo o por un sistema de control de vuelo autnomo
o
a bordo, que no requiere la intervencin del controlador de vuelo.
o
Aunque no hay una denicin estricta de la diferencia entre UAV y MAV (del ingls:
o
e
Micro Aerial Vehicles), de acuerdo con la Agencia de Proyectos de Investigacin
o
5


6 2.1. VEH
ICULOS AEREOS NO TRIPULADOS
Avanzados de Defensa de los Estados Unidos (en ingls: DARPA o Defense Advane
ced Research Projects Agency), Los MAV tienen dimensiones de quince cent
metros
o menos.

2.1.1.

Historia

El primer veh
culo areo no tripulado fue construido por Lawrence y Elmer Spee
rry en 1916 (gura 2.1). Ellos desarrollaron un giroscpio para estabilizarlo. Pudieo
ron volarlo a una distancia de casi 100 metros. Sin embargo, debido a su inmadurez para usos prcticos, este veh
a
culo no fue utilizado en la primera guerra mundial
[Barnhart et al., 2011].

Figura 2.1: Primer veh


culo areo no tripulado [Barnhart et al., 2011].
e

El desarrollo de UAVs empez a crecer a nales de los 1950s aprovechando la guerra


o
de Vietnam y la guerra fr contando con investigacin a gran escala hasta nales
a,
o
de los 1970s. Despus de la guerra de Vietnam, Estados Unidos e Israel empezaron
e
a construir veh
culos ms pequeos y ligeros, los cuales utilizaban pequeos motores
a
n
n
como los utilizados en motocicletas, cargaban cmaras de video y transmit imgea
an a
nes al operador. Parece que el prototipo de los UAVs actuales puede ser encontrado
en este periodo [Nonami et al., 2010] .
Estados Unidos los utiliz en forma prctica en la guerra del Golfo en 1991. A paro
a
tir de entonces, los veh
culos areos para aplicaciones militares se han desarrollado
e
rpidamente. Por otro lado, la Agencia estadounidense del Espacio y la Aeronutica
a
a
(en ingls: NASA o National Aeronautics and Space Administration) hac investigae
a
ciones para usos civiles en ese mismo periodo, desarrollando veh
culos de medicin de
o
variables ambientales (gura 2.2).
Cinvestav

Departamento de Computacin
o


CAP
ITULO 2. CUADRICOPTERO 7

Figura 2.2: Veh


culo areo no tripulado de uso civil [Nonami et al., 2010].
e

2.1.2.

Caracter
sticas

Algunas caracter
sticas de los veh
culos areos no tripulados son equivalentes a
e
las de los tripulados (materiales, sistemas de propulsin, aerodinmica, etc.), pero
o
a
algunas son espec
cas a stos. Las ms importantes son [Nonami et al., 2010]:
e
a
Sensores de navegacin y microprocesadores: los sensores representan uno de los
o
elementos ms caros de este tipo de sistemas y son necesarios para la navegacin
a
o
y la ejecucin de tareas. Los procesadores permiten a los UAVs volar misiones
o
enteras de manera autnoma con poca o nula intervencin humana.
o
o
Sistemas de comunicacin: los problemas principales de las tecnolog de coo
as
municacin son exibilidad, adaptabilidad, seguridad y controlabilidad de ujo
o
de datos.
Estacin de control en tierra (ECT): es un centro de control en tierra o mar
o
que provee las facilidades para el control humano de los veh
culos no tripulados
en el aire o el espacio. Las ECT var en tamao, pueden ser tan pequeas
an
n
n
como un dispositivo de mano o tan grandes como estaciones de trabajo con
mltiples trabajadores en ellas. Una de las metas principales para futuras opeu
raciones ser la capacidad de controlar mltiples aeronaves desde una ECT
a
u
[Barnhart et al., 2011] .
Inteligencia a bordo: la inteligencia que puede ser empacada dentro de un
UAV est directamente relacionada a la complejidad de las tareas que puede
a
manejar e inversamente relacionada con la cantidad de supervisin requerida
o
por operadores humanos.

Cinvestav

Departamento de Computacin
o


8 2.1. VEH
ICULOS AEREOS NO TRIPULADOS

2.1.3.

Clasicacin
o

Segn Nonami et al, un veh


u
culo areo no tripulado generalmente entra en una de
e
las siguientes cuatro categor [Nonami et al., 2010]:
as
Ala ja: se reere a aeroplanos que requieren un recorrido horizontal para despegar o aterrizar, o un lanzamiento en catapulta. Generalmente tienen largos
tiempos de vuelo y pueden volar a altas velocidades.
Ala rotativa: tienen la ventaja de poder quedarse suspendidos en el aire y de
tener alta maniobrabilidad. Estas capacidades los hacen utiles en misiones de

robtica, especialmente en aplicaciones civiles. Un UAV de ala rotativa puede


o
tener varias conguraciones, con rotores principal y de cola (helicptero cono
vencional), rotores coaxiales, multirotores, etc.
Dirigibles: como globos o zepelines, que son ms ligeros que el aire. Tienen largos
a
tiempos de vuelo, vuelan a bajas velocidades y generalmente son de tamao
n
grande.
UAVs de aleteo (en ingls: apping-wing): poseen alas exibles inspiradas en
e
pjaros y pequeos insectos.
a
n

2.1.4.

Aplicaciones

A continuacin se enlistan algunos usos en los que se aplican o se pueden aplicar


o
los UAVs [Austin, 2010].
Usos civiles:
Fotograf area
a e
Agricultura
Guardia costera
Conservacin
o
Compaias de electricidad
n
Deteccin de incendios
o
Forestal
Monitoreo de ganado
Monitoreo de contaminacin atmosfrica
o
e
Servicios meteorolgicos
o
Cinvestav

Departamento de Computacin
o


CAP
ITULO 2. CUADRICOPTERO 9
Compaias petroleras
n
Monitoreo de trco vehicular
a
Bsqueda de personas perdidas
u
Monitoreo de tuber
as
Usos militares:
Proteccin de puertos
o
Desv de misiles
o
Reconocimiento
Vigilancia de actividad enemiga
Localizacin y destruccin de minas terrestres
o
o
Monitoreo de contaminacin qu
o
mica, biolgica o nuclear
o
Eliminacin de bombas sin explotar
o

2.2.

Cuadricptero
o

El cuadricptero o cuadrirotor (gura 2.3) es el veh


o
culo areo multirotor ms poe
a

pular. Este intenta alcanzar una suspensin en el aire estable y vuelos precisos, bao
lanceando las fuerzas producidas por sus cuatro rotores.

Figura 2.3: Cuadricptero [Ulbrich et al., 2011].


o
Una de las ventajas de utilizar un helicptero multirotor es su capacidad de caro
ga, como tiene ms fuerza de empuje, puede soportar cargas ms pesadas. Los cuaa
a
dricpteros son altamente maniobrables, lo cual habilita el despegue y el aterrizaje
o
vertical, as como tambin el acceso a areas dif

ciles de alcanzar. Tienen como desventaja el incremento de peso del helicptero y el incremento en consumo de energ
o
a
debido a los motores extra. Como stos son controlados con cambios de velocidad en
e
los rotores, es ms adecuado el uso de motores elctricos [Castillo et al., 2005].
a
e
Cinvestav

Departamento de Computacin
o


10 2.2. CUADRICOPTERO

2.2.1.

Historia

Louis y Jacques Brguet, dos hermanos que trabajaban para el profesor Charles Rie
chet, fueron los primeros en construir un cuadricptero, al cual nombraron Brguet
o
e
Richet Gyroplane No. 1 (gura 2.4). La primera demostracin de vuelo fue conseo
guida el 29 de septiembre de 1907.

Figura 2.4: Primer cuadricptero [Raza and Gueaieb, 2010].


o

Despus, dos diseos adicionales fueron desarrollados y se realizaron vuelos expee


n
rimentales. El primero, construido por Georges de Bothezat e Ivan Jerome en 1922,
ten los rotores colocados en cada extremo de una estructura en forma de X, como
a
se muestra en la gura 2.5.

Figura
2.5:
Cuadricptero
o
[Raza and Gueaieb, 2010].

diseado
n

por

George

De

Bothezat

El segundo, mostrado en la gura 2.6, fue construido por Etienne hmichen en


1924, y rompi records de distancia, incluido el de realizar el primer vuelo de un
o
kilmetro por un helicptero.
o
o
Actualmente, adems de ser utilizados en aplicaciones militares, los cuadricptea
o
ros son utilizados para tareas de vigilancia en reas contaminadas o inaccesibles
a
[Puls et al., 2009], para actividades de bsqueda y rescate [Naidoo et al., 2011], inu
vestigacin acadmica, etc.
o
e
Cinvestav

Departamento de Computacin
o


CAP
ITULO 2. CUADRICOPTERO 11

Figura
2.6:
Cuadricptero
o
[Raza and Gueaieb, 2010].

2.2.2.

diseado
n

por

hmichen

en

1924

Principio de operacin
o

Similar a un helicptero tradicional, un cuadricptero es un sistema de seis grados de


o
o
libertad (x, y, z, pitch, roll y yaw ), multivariable, fuertemente acoplado y subactuado.
Las fuerzas principales y momentos que actan en un cuadricptero son producidas
u
o
por sus rotores. Dos pares de motores rotan en direcciones opuestas para balancear el
torque total del sistema. La gura 2.7 muestra un diagrama de un cuadrirotor t
pico.
f1
frente

f4
Motor 1

izquierda

roll

pitch

+
B

Motor 4
f3

f2

x
derecha

y
z
+

yaw

Motor 2

z
atras

x
Motor 3
T

Figura 2.7: Diagrama de un cuadrirotor.


Como se puede observar, se utilizan dos sistemas de referencia: el sistema T jo a
la Tierra y el sistema B jo al veh
culo.
Un cuadrirotor es controlado, manipulando las fuerzas de empuje de los rotores, as co
Cinvestav

Departamento de Computacin
o


12 2.2. CUADRICOPTERO
mo balanceando el torque entre ellos. Para suspenderlo en el aire, todos los rotores
aplican una fuerza constante como se muestra en la gura 2.8(a). Para controlar
el movimiento vertical, la velocidad de los motores se incrementa o decrementa simultneamente. De este modo se obtiene una mayor o menor fuerza de empuje, pero
a
sin afectar el balance.
1

Figura 2.8: Dinmica de un cuadrirotor, (a) sustentacin y altura; (b) diferencia en


a
o
torque para manipular yaw (); (c) diferencia en torque para manipular pitch ();
(d) diferencia en torque para manipular roll ().
Para el control de postura, el ngulo yaw () puede ser controlado, manipulando
a
el balance del torque (aumentando la velocidad en un par de rotores con el mismo
sentido de giro y disminuyndola en igual magnitud en el otro par). La fuerza total
e
de empuje permanece balanceada por lo que la altitud se conserva, como se puede ver
en la gura 2.8(b).
De una forma similar, el angulo pitch () y el ngulo roll () pueden ser manipulados,

a
aplicando empuje diferencial en rotores opuestos, como se ilustra en las guras 2.8(c)
y (d) respectivamente [Naidoo et al., 2011].
Variando el angulo pitch, se obtiene un avance o retroceso del veh

culo, con respecto


al eje x del sistema de referencia T, mientras que variando el ngulo roll se obtiene
a
un movimiento lateral (eje y) sobre el mismo sistema T.

Cinvestav

Departamento de Computacin
o

Cap
tulo 3
Control del cuadricptero
o
Como se vio en el cap
tulo anterior, el control de un cuadricptero se hace cambiando
o
las velocidades de sus motores, ya sea para modicar su altitud, orientacin, avance,
o
retroceso, etctera. Si un operador humano simplemente manda seales de velocidad
e
n
a cada motor, el control del veh
culo se hace casi imposible, primero porque es un
sistema dinmico que requiere ajustes en el orden de los milisegundos y segundo
a
porque el nmero de variables a controlar sobrepasa las capacidades de una persona
u
normal (6 grados de libertad).
Debido a sto, se deben incluir etapas de control automtico que aligeren la carga del
e
a
operador humano.
En este cap
tulo, despus de una breve introduccin a los sistemas de control, se
e
o
describir el diseo del controlador del cuadricptero desarrollado.
a
n
o

3.1.

Introduccin a los sistemas de control


o

Un sistema de control est denido como un conjunto de componentes que pueden


a
regular su propia conducta o la de otro sistema, con el n de lograr un funcionamiento
predeterminado. Los componentes bsicos de un sistema de control se pueden describir
a
mediante:
1. Objetivos de control (entradas o salidas actuantes u).
2. Componentes del sistema de control.
3. Resultados o salidas (variables controladas).
La relacin bsica entre estos tres componentes se muestra en la gura 3.1. En
o
a
general, el objetivo de un sistema de control es controlar las salidas en alguna forma
prescrita, mediante las entradas, a travs de los elementos del sistema de control
e
[Kuo, 2003].
Segn su comportamiento, los sistemas de control pueden clasicarse en sistemas
u
en lazo abierto o sistemas en lazo cerrado.
13


14 3.1. INTRODUCCION A LOS SISTEMAS DE CONTROL
Objetivos

Sistema
de
control

Resultados

Figura 3.1: Componentes de un sistema de control.

3.1.1.

Sistemas de control en lazo abierto

Los sistemas en que la salida no afecta la accin de control se denominan sistemas


o
de control en lazo abierto.
En cualquier sistema en lazo abierto, la salida no se compara con la entrada de referencia. Por tanto, a cada entrada de referencia le corresponde una condicin operativa
o
ja; como resultado, la precisin del sistema depende de la calibracin. Ante la preo
o
sencia de perturbaciones, un sistema de control en lazo abierto no realiza la tarea
deseada [Ogata, 1997].
Los elementos de un sistema de control en lazo abierto se pueden dividir en dos partes:
el controlador y el proceso controlado (gura 3.2 ). Una seal de entrada o comando
n
r se aplica al controlador, cuya salida acta como seal actuante u; la seal actuante
u
n
n
controla el proceso controlado, de tal forma que la variable controlada y se desempee
n
de acuerdo con estndares preestablecidos.
a

Controlador

Proceso
controlado

Figura 3.2: Elementos de un sistema de control en lazo abierto.


Debido a la simplicidad y econom de los sistemas de control en lazo abierto, se
a
les encuentra en muchas aplicaciones no cr
ticas [Kuo, 2003].

3.1.2.

Sistemas de control en lazo cerrado

Lo que hace falta en el sistema de control en lazo abierto para que sea ms exacto
a
y ms adaptable es una conexin o retroalimentacin desde la salida hacia la entrada
a
o
o
del sistema.
Para obtener un control ms exacto, la seal controlada y debe ser retroalimentada y
a
n
comparada con la seal de referencia, y se debe enviar una seal actuante proporcional
n
n
a la diferencia de la entrada y la salida, a travs del sistema para corregir el error.
e
Un sistema con una o ms trayectorias de retroalimentacin se denomina sistema en
a
o
lazo cerrado.
Este tipo de control es esencial para mantener la variable controlada estable, a pesar
de perturbaciones y variaciones en la dinmica del sistema [Kuo, 2003].
a
La gura 3.3 muestra un diagrama a bloques de un sistema de control en lazo cerrado
Cinvestav

Departamento de Computacin
o


CAP
ITULO 3. CONTROL DEL CUADRICOPTERO 15
t
pico, donde P es el proceso controlado, C es el controlador, r es la seal de referencia,
n
y es la variable controlada, e = r y es el error, u es la seal actuante (variable de
n
control), d es una seal de perturbacin y n es una seal de ruido en la medicin
n
o
n
o
[Visioli, 2006].

Figura 3.3: Elementos de un sistema de control en lazo cerrado.

3.1.3.

Controlador PID

Un controlador PID es un controlador de tres trminos que tiene una larga historia
e
en el campo de control automtico. El nemnico PID se reere a las primeras letras
a
o
de los nombres de sus trminos individuales, stos son P por la parte proporcional, I
e
e
por la parte integral y D por la parte derivativa.
Los controladores PID probablemente sean los ms usados en la industria, sto es
a
e
debido a su relativa simplicidad y su desempeo satisfactorio en un amplio rango de
n

procesos. Estos han venido evolucionando conforme al progreso de la tecnolog y en


a
la actualidad es implementado muy frecuentemente en forma digital.
El xito de los controladores PID tambin es debido al hecho de que usualmente ree
e
presentan el componente fundamental de sistemas de control ms sosticados, que
a
pueden ser implementados cuando una ley de control bsica no es suciente para oba
tener el desempeo requerido.
n
La ley de control PID consiste en aplicar correctamente la suma de tres tipos de acciones de control: una accin proporcional, una accin integral y una accin derivativa
o
o
o
(gura 3.4), que sern explicadas a continuacin.
a
o
Accin proporcional
o
La accin de control proporcional es proporcional al error de control actual de
o
acuerdo con la expresin:
o
Cinvestav

Departamento de Computacin
o


16 3.1. INTRODUCCION A LOS SISTEMAS DE CONTROL

kp

e(t)

ki

u(t)

d
kd dt

Figura 3.4: Elementos de un sistema de control PID: (a) forma simblica y (b) forma
o
en el dominio del tiempo

u(t) = kp e(t) = kp (r(t) y(t))

(3.1)

Donde kp es la ganancia proporcional.


El signicado de la accin proporcional es bastante sencillo, ya que implementa la
o
t
pica operacin de incrementar la variable de control, cuando el error de control es
o
grande (con el signo apropiado).
La principal desventaja de usar un controlador proporcional puro es que ste produce
e
un error en estado estable.
Accin integral
o
La accin de control integral es usada cuando se requiere que el controlador corrija
o

el error en estado estable. Este se denota con la expresin:


o
t

u(t) = ki

e( )d

(3.2)

Donde ki es la ganancia integral.


La accin integral acta sobre los valores pasados del error de control. Debe sealarse
o
u
n
que cuando una accin integral est presente puede ocurrir un fenmeno llamado
o
a
o
windup.Este fenmeno sucede cuando hay un cambio grande en el valor de referencia
o
y la parte integral acumula un error ms grande que el valor mximo de la variable
a
a
de control, saturando la salida.
Este problema puede ser resuelto mediante las tcnicas siguientes:
e
Inicializar el controlador integral a un valor deseado.
Cinvestav

Departamento de Computacin
o


CAP
ITULO 3. CONTROL DEL CUADRICOPTERO 17
Incrementar el valor de referencia en forma gradual.
Limitar el tiempo en el cual el error integral es calculado.
Evitar que el trmino integral se acumule estableciendo l
e
mites predeterminados.
Accin derivativa
o
Mientras la accin proporcional est basada en el valor actual del error de control
o
a
y la accin integral est basada los valores pasados del error de control, la accin
o
a
o
derivativa se basa en la prediccin de los valores futuros del error de control. La ley
o
derivativa de control puede expresarse como:
u(t) = kd

de(t)
dt

(3.3)

Donde kd es la ganancia derivativa.


La accin derivativa tiene un gran potencial de mejorar el desempeo del controlao
n
dor, ya que sta puede anticiparse a una tendencia incorrecta del error de control y
e
actuar contra ello. Sin embargo tiene algunos problemas cr
ticos, como la sensibilidad al ruido, que la hace no ser adoptada en muchos casos prcticos [Visioli, 2006]
a
[Johnson et al., 2005]
La suma de estas tres acciones de control nos da la siguiente frmula bsica del
o
a
controlador PID:
t

uc (t) = kP e(t) + kI

3.1.4.

e( ) d + kD

de
.
dt

(3.4)

Controlador PID digitalizado

Si se utiliza una implementacin digital del controlador, las frmulas mostradas


o
o
anteriormente tienen que ser discretizadas.
Considerando la frmula del controlador PID ideal:
o
t

uc (t) = kP e(t) + kI

e( ) d + kD

de
.
dt

(3.5)

La parte integral puede ser aproximada utilizando diferencias nitas como:


k

e( ) d =

e(ti )t,

(3.6)

i=1

donde e(ti ) es el error en tiempo continuo en el i-simo instante de muestreo.


e

Cinvestav

Departamento de Computacin
o


18 3.2. CONTROL DEL CUADRICOPTERO
Aplicando tambin diferencias nitas al trmino derivativo, ste resulta en:
e
e
e
de(tk )
e(tk ) e(tk1 )
=
.
dt
t

(3.7)

Por consiguiente, la ley de control discretizada es:


k

u(tk ) = KP e(tk ) + kI

e(ti )t + KD
i=1

3.2.

e(tk ) e(tk1 )
.
t

(3.8)

Control del cuadricptero


o

El movimiento de un cuadricptero tiene seis grados de libertad, denidos por el


o
vector:
q = (x, y, z, , , ) R6
(3.9)
donde p = (x, y, z) R3 denota la posicin del centro de masa del veh
o
culo con
respecto a un eje de referencia en tierra y = (, , ) R3 son los angulos de Euler

pitch, roll y yaw que representan la postura.


La gura 3.5 muestra un diagrama a grandes rasgos del sistema de control en lazo
cerrado para el cuadricptero.
o

rx,y,z,,,

ex,y,z,,,

ux,y,z,,,

uv1,v2,v3,v4

yx,y,z,,,

Figura 3.5: Diagrama de control del cuadricptero.


o
La seal de referencia rx,y,z,,, indica la postura y posicin deseada del veh
n
o
culo,
mientras que yx,y,z,,, es la variable manipulada, que es la posicin y postura reales
o
del cuadricptero, obtenidas por medio de sensores. La seal de error ex,y,z,,, es
o
n
la diferencia entre la posicin y postura reales y deseadas e = r y. El proceso
o
controlador es un control (controles) PID cuya variable de control ux,y,z,,, es sumada
a la variable Gas , obteniendo uv1,v2,v3,v4 que son las seales actuantes aplicadas a
n
cada motor del cuadricptero.
o
La variable Gas, es un valor de referencia que indica la velocidad base utilizada por

los motores. Esta se aplica con la misma magnitud en cada motor y, a partir de ese
valor, las seales actuantes de los controladores PID son sumadas (o restadas).
n
Cinvestav

Departamento de Computacin
o


CAP
ITULO 3. CONTROL DEL CUADRICOPTERO 19
En este trabajo implementamos el control automtico de la postura (, , ) y altura
a
(z), mientras el control de las variables x y y se hace de forma manual.

3.2.1.

Control de postura

El control automtico de postura se subdivide en tres controladores PID: uno para


a
el pitch, uno para el roll y otro para el yaw. La gura 3.6 muestra el diagrama de
control automtico de postura, donde se toman como referencia r los angulos (, , )
a

deseados, que por medio de la retroalimentacin y se obtienen los errores e , e , e .


o
Cada seal de error es tomada como entrada de cada controlador PID del ngulo
n
a
correspondiente, obtenindose as tres variables de control, que combinadas resultan
e

en la seal actuante de postura u,, , la cual se suma a la variable Gas y a la seal


n
n
actuante de posicin para despus ser aplicada a los motores.
o
e

u,.

uv1,v2.v3.v4


, , , , ,

y,,

Figura 3.6: Diagrama del control de postura del cuadricptero.


o

Control de pitch ()
Como puede verse en la gura 3.7, el ngulo representa los grados de rotacin en el
a
o
eje y del sistema de coordenadas del cuadricptero. Al subir el frente del veh
o
culo, se
obtienen angulos positivos y al bajarlo angulos negativos. Con sto se puede observar

e
que el control automtico de slo acta sobre los motores 1 y 3.
a
o
u
Para elevar el frente, se aumenta la velocidad en el motor 1 y se disminuye en la
misma magnitud en el motor 3, haciendo lo contrario para bajarlo.
Cinvestav

Departamento de Computacin
o


20 3.2. CONTROL DEL CUADRICOPTERO
frente

Motor 1

izquierda

roll

pitch

+
x

B
Motor 4

derecha

y
z
+

atras

yaw

Motor 2

Motor 3

Figura 3.7: Angulos , , y determinan la postura del cuadricptero.


o
La gura 3.8 muestra el sistema de control PID para el ngulo . Para ste y los
a
e
dems controladores de postura se utiliz una versin modicada del PID bsico. En
a
o
o
a
sta, el control proporcional e integral utilizan la seal de error e como entrada, pero
e
n
la parte derivativa utiliza la derivada de la seal de retroalimentacin y.
n
o

r (tk )

e (tk )

kI

k
i=1 e (ti )t

uP (tk )

kP e (tk )

uI (tk )

ux,y,z,,

u (tk )

uv1 ,v2 ,v3 ,v4 (tk )

v1 , v3

y (tk )
k , k

uD (tk )
kD k

Figura 3.8: Diagrama del controlador PID de pitch.


Cinvestav

Departamento de Computacin
o


CAP
ITULO 3. CONTROL DEL CUADRICOPTERO 21
Este cambio se hace para evitar el fenmeno denominado patada derivativa , el
o
cual sucede en ciertos sistemas al cambiar repentinamente la entrada de referencia r,
lo que provoca un pico en la seal de error, el cual se transmite a la salida de la seal
n
n
de control derivativo, provocando cambios bruscos en la accin de control.
o
Al utilizar como entrada la derivada de la seal de retroalimentacin en el trmino
n
o
e
derivativo, los cambios repentinos en la seal de referencia no afectan el desempeo
n
n
del control derivativo, obteniendo un sistema ms estable.
a
Una ventaja ms de esta conguracin es que la derivada de la seal de salida (vaa
o
n
riable manipulada, posicin angular) es la velocidad angular, que puede ser obtenida
o
directamente de los sensores del veh
culo evitando la necesidad de hacer aproximaciones basadas en la posicin.
o
Continuando con el diagrama, vemos que la entrada de referencia r corresponde los
grados de inclinacin deseados y la seal e (tk ) = r (tk ) y (tk ) es el error en el
o
n
instante de tiempo tk , que es utilizado por los trminos proporcional e integral.
e
La variable de control uP obtenida del trmino proporcional queda de la siguiente
e
manera:
uP (tk ) = KP e (tk ),

(3.10)

donde KP es la constante proporcional en y e (tk ) es el error en el instante de


tiempo tk
La variable de control uI aportada por el trmino integral se obtiene con la frmula:
e
o
k

uI (tk ) = kI

e (ti )t,

(3.11)

i=1

donde kI es la constante integral en , e(ti ) es el error en tiempo continuo en el


i-simo instante de muestreo y t es el intervalo de muestreo.
e
La accin de control uD del trmino derivativo es la siguiente:
o
e

uD (tk ) = KD (tk ),

(3.12)

donde KD es la constante derivativa en y (tk ) es la velocidad angular en el eje


y en el instante de tiempo tk .
Por lo que la seal actuante en es:
n
k

u (tk ) = uP (tk )+uI (tk )uD (tk ) = KP e (tk )+kI

i=1

e (ti )tKD (tk ). (3.13)

En conclusin, el aporte de la variable de control u (tk ) sobre las velocidades de los


o
motores es:
Cinvestav

Departamento de Computacin
o


22 3.2. CONTROL DEL CUADRICOPTERO

uv1 (tk ) = unv1 + u (tk ) , uv3 (tk ) = unv3 u (tk ).

(3.14)

Donde uv1 (tk ) y uv3 (tk ) son las seales actuantes en los motores 1 y 3, y un representa
n
las seales actuantes de los dems controladores.
n
a
Control de roll ()
El ngulo representa la rotacin en el eje x en el sistema de coordenadas del
a
o
cuadricptero. Elevar el lado derecho del veh
o
culo corresponde a un giro negativo,
mientras que bajarlo (elevar el lado izquierdo) corresponde a un giro positivo.
Para elevar el lado derecho, se aumenta la velocidad en el motor 2 y se disminuye en
la misma proporcin en el motor 4, para bajarlo se hace lo contrario.
o
Con sto se puede ver que el controlador del angulo en el cuadricptero slo acta
e

o
o
u
sobre los motores 2 y 4.
La gura 3.9 muestra el diagrama del controlador PID de roll. El esquema es el
mismo que en el controlador de pitch, con la diferencia de que actan sobre diferentes
u
motores.

r(tk )

e(tk )

kI

k
i=1 e (ti )t

uP (tk )

kP e(tk )

uI (tk )

ux,y,z,,

u(tk )

uv1 ,v2 ,v3 ,v4 (tk )

v2 , v4

y(tk )

k , k

uD (tk )
kD k

Figura 3.9: Diagrama del controlador PID de roll.


La frmula del controlador PID para es la siguiente:
o
k

u (tk ) = uP (tk ) + uI (tk ) uD (tk ) = KP e (tk ) + kI

i=1

e (ti )t KD (tk ).
(3.15)

Donde:
u (tk ) es la variable de control en .
Cinvestav

Departamento de Computacin
o


CAP
ITULO 3. CONTROL DEL CUADRICOPTERO 23
uP (tk ), uI (tk ), uD (tk ) son las variables de control proporcional, integral y derivativo
en .
e (tk ) es la seal de error en .
n
KP , kI , KD son las constantes proporcional, derivativa e integral en .

(tk ) es la velocidad angular en el eje x en el sistema de coordenadas del veh


culo.

El aporte de la variable de control u (tk ) sobre las velocidades de los motores es:
uv2 (tk ) = unv2 u (tk ) , uv4 (tk ) = unv4 + u (tk ).

(3.16)

Donde uv2 (tk ) y uv4 (tk ) son las seales actuantes en los motores 2 y 4, y un representa
n
las seales actuantes de los dems controladores.
n
a
Control de yaw ()
El angulo yaw representa un movimiento de rotacin en el eje z del sistema de

o
coordenadas del veh
culo (gura 3.7). El giro es negativo en el sentido de las manecillas
del reloj y positivo en contra de las manecillas.
Al aumentar la velocidad en los motores 1 y 3, y disminuirla en la misma magnitud
en los motores 2 y 4, se produce un giro negativo, mientras que para producir un giro
positivo se hace lo contrario.
A diferencia de los controladores de los angulos y , el controlador PID del angulo

acta sobre los cuatro motores del cuadricptero.


u
o

uP (tk )

kP e (tk )

r (tk )

e (tk )

kI

uI (tk )
k
e (ti)t
i=1

ux,y,z,,

u (tk )

uv1 ,v2 ,v3 ,v4 (tk )

v1 , v2 , v3 , v4

y (tk )

k , k

uD (tk )

k D k

Figura 3.10: Diagrama del controlador PID de yaw.


De la gura 3.10 obtenemos la ecuacin del controlador PID para , la cual se
o
dene de la siguiente manera:
Cinvestav

Departamento de Computacin
o


24 3.2. CONTROL DEL CUADRICOPTERO

u (tk ) = uP (tk ) + uI (tk ) uD (tk ) = KP e (tk ) + kI

i=1

e (ti )t KD (tk ).
(3.17)

Donde:
u (tk ) es la variable de control en .
uP (tk ), uI (tk ), uD (tk ) son las variables de control proporcional, integral y derivativon en .
e (tk ) es la seal de error en .
n
KP , kI , KD son las constantes proporcional, derivativa e integral en .

(tk ) es la velocidad angular en el eje z en el sistema de coordenadas del veh


culo.

El aporte de la variable de control de u (tk ) sobre las velocidades de los motores


es:
uv1 (tk ) = unv1 u (tk ) , uv3 (tk ) = unv3 u (tk ).

(3.18)

uv2 (tk ) = unv2 + u (tk ) , uv4 (tk ) = unv4 + U (tk ).

(3.19)

Donde uv1 (tk ), uv2 (tk ), uv3 (tk ) y uv4 (tk ) son las seales actuantes en los motores 1,
n
2, 3 y 4, y un representa las seales actuantes de los dems controladores.
n
a

3.2.2.

Control de posicin
o

El control de posicin se divide en dos subcontroles: un control automtico de


o
a
altura y un control manual de posicin en los ejes x y y con respecto al sistema de
o
coordenadas en tierra.
Como se muestra en la gura 3.11, se utiliza un controlador PID para la altura. Para
mover el veh
culo en las direcciones x y y, se var los angulos de la postura (por
an

ejemplo, para ir hacia adelante se cambia el valor de referencia del controlador de pitch
a un angulo negativo), por lo que el control manual consiste en enviar los valores de

referencia r , r y r al controlador de postura.


Al combinar las variables de control de postura, altura y Gas, se obtiene la seal
n
actuante total del sistema.
Control de altura (z)
El control de altura se hace variando la velocidad de todos los motores con la misma
magnitud. Para elevar el veh
culo se incrementa y para bajarlo se decrementa.
Como puede verse en la gura 3.12, se implement un control PID clsico donde rz (tk )
o
a
Cinvestav

Departamento de Computacin
o


CAP
ITULO 3. CONTROL DEL CUADRICOPTERO 25

xy

r
u,,

uv1,v2,v3,v4

ez

rz

y,,,z

uz

Figura 3.11: Diagrama del control de posicin.


o
es la altura deseada y la seal de error ez (tk ) = rz (tk ) - yz (tk ) es la diferencia entre
n
la altura deseada y la altura real del veh
culo medida por los sensores. Esta seal de
n
error es tomada por las partes de control proporcional, integral y derivativa, de las
cuales se obtienen las variables de control uPz (tk ), uIz (tk ) y uDz (tk ). La suma de estas
variables resulta en la seal actuante de altura, que junto con las variables de control
n
de postura y Gas, es aplicada a los motores del cuadricptero.
o
La variable de control uPz obtenida del trmino proporcional queda de la siguiente
e
manera:
uPz (tk ) = KPz ez (tk ),

(3.20)

donde KPz es la constante proporcional en z y ez (tk ) es el error en el instante de


tiempo tk
La variable de control uIz aportada por el trmino integral se obtiene con la frmula:
e
o
k

uIz (tk ) = kIz

ez (ti )t,

(3.21)

i=1

donde kIz es la constante integral en z, ez (ti ) es el error en tiempo continuo en el


Cinvestav

Departamento de Computacin
o


26 3.2. CONTROL DEL CUADRICOPTERO

kPz ez (tk )

ez (tk )

rz (tk )

u,,
uIz (tk )

kI z

uPz (tk )

k
i=1 ez (ti )t

uv1 ,v2 ,v3 ,v4 (tk )

uz (tk )

zk

yz (tk )

zk
kDz (ez (tk )ez (tk1))
t

uDz (tk )

Figura 3.12: Diagrama del controlador PID de altura.


i-simo instante de muestreo y t es el intervalo de muestreo.
e
La accin de control UDz del trmino derivativo es la siguiente:
o
e
uDz (tk ) = KD

ez (tk ) ez (tk1)
,
t

(3.22)

donde KDz es la constante derivativa en z ,ez (tk ) es el error en el instante de tiempo


tk y ez (tk1 ) es el error en el muestreo anterior.
Por lo que la variable de control en z es:
k

ez (tk ) ez (tk1)
.
t
i=1
(3.23)
En conclusin, el aporte de uz sobre las velocidades de los motores es:
o

uz (tk ) = uPz (tk )+uIz (tk )uDz (tk ) = KPz ez (tk )+kIz

ez (ti )tKDz

uv1 (tk ) = unv1 + uz (tk ) , uv2 (tk ) = unv2 + uz (tk ).

(3.24)

uv3 (tk ) = unv3 + uz (tk ) , uv4 (tk ) = unv4 + uz (tk ).

(3.25)

Donde uv1 (tk ), uv2 (tk ), uv3 (tk ) y uv4 (tk ) son las seales actuantes de los motores 1,
n
2, 3 y 4 respectivamente, y un representa las seales actuantes de los dems contron
a
ladores.
Cinvestav

Departamento de Computacin
o


CAP
ITULO 3. CONTROL DEL CUADRICOPTERO 27

3.2.3.

Control general del sistema

La gura 3.13 muestra el diagrama del sistema de control del cuadricptero. Este
o
cuenta con cuatro controladores PID: tres para la postura y uno para la altura. Cada
seal actuante de estos controladores tiene un aporte sobre la velocidad de cada uno
n
de los cuatro motores del veh
culo.
La variable de control total en cada motor es la suma de los aportes de todos los
controladores PID ms la variable de referencia Gas.
a

u,,,z

uv1,v2,v3,v4


, , , z, , ,

rz

y,,,z

ez

uz

Figura 3.13: Diagrama del control general del sistema.


Uniendo las variables de control de las ecuaciones 3.14, 3.16, 3.18, 3.19, 3.24 y 3.25
obtenemos:
uv1 (tk ) = Gas + u (tk ) u (tk ) + uz (tk ).
uv2 (tk ) = Gas u (tk ) + u (tk ) + uz (tk ).
Cinvestav

(3.26)
(3.27)

Departamento de Computacin
o


28 3.3. AJUSTE DE PARAMETROS DEL CONTROLADOR PID POR MEDIO
DIFERENCIAL
DE EVOLUCION
uv3 (tk ) = Gas u (tk ) u (tk ) + uz (tk ).

(3.28)

uv4 (tk ) = Gas + u (tk ) + u (tk ) + uz (tk ).

(3.29)

Donde:
uv1 , uv2 , uv3 y uv4 , son las variables de control aplicadas a los motores 1, 2, 3 y 4
respectivamente.
u , es la variable de control en pitch.
u , es la variable de control en roll.
u , es la variable de control en yaw.
uz , es la variable de control de altura.

3.3.

Ajuste de parmetros del controlador PID por


a
medio de evolucin diferencial
o

Uno de los factores cruciales para el buen funcionamiento del controlador PID es
el ajuste de sus parmetros. Un correcto ajuste de las constantes proporcional, intea
gral y derivativa es la diferencia entre un buen desempeo y un desempeo pobre del
n
n
controlador.

Esto puede verse como un problema de optimizacin, donde se trata de minimizar


o
la funcin e(kP , kI , kD ) que es la seal de error, tomando a kP , kI y kD como las
o
n
variables de decisin.
o
En la seccin anterior vimos que el sistema de control del cuadricptero consta de
o
o
cuatro controladores PID, por lo que debe hacerse el ajuste de doce constantes.
Una forma de resolver este problema es usando algoritmos evolutivos, ya que no es
necesario conocer el modelo del sistema para llegar a resultados aceptables.
En esta seccin se dar una breve introduccin a los algoritmos evolutivos, despus se
o
a
o
e
explicar el algoritmo de evolucin diferencial (una rama de la computacin evolutia
o
o
va), para terminar explicando el mtodo de obtencin de las constantes del controlador
e
o
del cuadricptero utilizando dicho algoritmo.
o

3.3.1.

Algoritmos evolutivos

Los algoritmos evolutivos son mtodos de optimizacin y bsqueda de soluciones


e
o
u
basados en los postulados de la evolucin biolgica. Existen varios tipos de algoritmos
o
o
evolutivos, pero la idea bsica detrs de estas tcnicas es la misma: dada una poblaa
a
e
cin de individuos, la presin del ambiente causa una seleccin natural (supervivencia
o
o
o
del ms apto), que produce un aumento en la aptitud de la poblacin.
a
o
Dada una funcin de calidad a ser maximizada, se crea aleatoriamente un conjunto
o
de soluciones candidatas y se aplica la funcin de calidad como una medida de desemo
peo. Basndose en su aptitud, algunos de los mejores candidatos son escogidos para
n
a
Cinvestav

Departamento de Computacin
o


CAP
ITULO 3. CONTROL DEL CUADRICOPTERO 29
crear la siguiente generacin, mediante su recombinacin y/o mutacin.
o
o
o
La recombinacin es un operador aplicado a dos o ms candidatos (padres), del cual
o
a
resultan uno o ms candidatos nuevos (hijos). La mutacin es aplicada a un candidato
a
o
y resulta en un nuevo candidato. Por medio de estos operadores se obtiene un nuevo conjunto de candidatos (descendencia) que compiten, basados en su desempeo,
n
contra los viejos por un lugar en la nueva generacin. Este proceso puede ser iterado
o
hasta que es encontrado un candidato con suciente calidad (una solucin) o cierto
o
criterio de paro es alcanzado.
En este proceso hay dos fuerzas fundamentales que forman la base de los sistemas
evolutivos:
Operadores de variacin (recombinacin y mutacin) que crean la diversidad
o
o
o
necesaria.
Seleccin, que acta como una fuerza que incrementa la calidad.
o
u
La aplicacin combinada de variacin y seleccin generalmente lleva al mejoramiento
o
o
o
de los valores de desempeo en generaciones consecutivas. Durante la seleccin, los
n
o
individuos ms aptos tienen ms oportunidad de ser seleccionados que los menos
a
a
aptos, aunque los individuos dbiles tambin tienen oportunidad de ser padres o
e
e
sobrevivir. La seleccin de qu partes de los individuos sern mutadas o recombinadas
o
e
a
se hace de manera aleatoria [Eiben and Smith, 2008].
Suele hablarse de tres paradigmas principales de los algoritmos evolutivos:
Programacin evolutiva
o
Estrategias evolutivas
Algoritmos genticos
e
Cada uno de estos paradigmas se origin de manera independiente y con distintas
o
motivaciones. Actualmente, los algoritmos evolutivos tienden a combinar caracter
sticas de estos tres. Por ejemplo, la evolucin diferencial, los algoritmos culturales y los
o
algoritmos memticos, entre otros.
e
En este trabajo de tesis se utiliz la evolucin diferencial, que ser descrita en la
o
o
a
siguiente seccin.
o

3.3.2.

Evolucin diferencial
o

La evolucin diferencial (ED) es un mtodo de optimizacin perteneciente a la cao


e
o
tegor de computacin evolutiva, aplicado en la resolucin de problemas complejos.
a
o
o
Al igual que otros algoritmos de esta categor la ED mantiene una poblacin de
a,
o
soluciones candidatas, las cuales se recombinan y mutan para producir nuevos individuos, los cuales sern elegidos de acuerdo al valor de su funcin de desempeo. Lo
a
o
n
Cinvestav

Departamento de Computacin
o


30 3.3. AJUSTE DE PARAMETROS DEL CONTROLADOR PID POR MEDIO
DIFERENCIAL
DE EVOLUCION
que caracteriza a la ED es el uso de vectores de prueba, los cuales compiten con los
individuos de la poblacin actual a n de sobrevivir.
o
Fue creado en 1995 por Kenneth Price y Rainer Storn, y desde entonces ha ganado
la reputacin de ser un optimizador global muy efectivo. Su historial de desempeo
o
n
robusto y conable, lo han llevado a ser utilizado de manera exitosa en muchos problemas del mundo real [Price et al., 1997].
Este algoritmo codica todos los parmetros como nmeros de punto otante, maa
u

nipulndolos con operadores aritmticos. Esto ofrece ventajas signicantes sobre los
a
e
algoritmos genticos, que codican sus parmetros como cadenas de bits y utilizan
e
a
operadores lgicos para manipularlos.
o
Algunas de estas ventajas son:
Facilidad de uso
Utilizacin de memoria eciente
o
Menor complejidad computacional (escala mejor en problemas grandes)
Menor esfuerzo computacional (convergencia ms rpida)
a a
La ED se compone bsicamente de cuatro pasos:
a
Inicializacin
o
Mutacin
o
Recombinacin
o
Seleccin
o
Estos pasos sern explicados a continuacin con ms detalle.
a
o
a
Inicializacin
o
Antes de que la poblacin pueda ser inicializada, se tienen que especicar los l
o
mites superior e inferior de cada parmetro. Estos valores se pueden guardar en dos
a
vectores LI y LS , donde los sub
ndices I y S indican los l
mites inferior y superior,
respectivamente.
Una vez especicados los l
mites, se asignan aleatoriamente los valores de cada parmea
tro, respetando los rangos preestablecidos.
Por ejemplo, el valor inicial (g = 0) del j-simo parmetro del i-simo vector es:
e
a
e
Xj,i,0 = rand(0, 1) (Lj,S Lj,I ) + Lj,I

(3.30)

Donde el generador de nmeros aleatorios randj (0, 1) regresa un nmero aleatorio


u
u
uniformemente distribuido dentro del rango [0,1). El sub
ndice j indica que se genera
un nuevo valor aleatorio para cada parmetro.
a
Cinvestav

Departamento de Computacin
o


CAP
ITULO 3. CONTROL DEL CUADRICOPTERO 31
Mutacin
o
Una vez inicializada, la ED muta y recombina la poblacin para producir otra
o
poblacin de vectores de prueba. La mutacin diferencial suma la diferencia escalada
o
o
de dos vectores tomados al azar a un tercer vector, tambin tomado al azar, obteniendo
e
el vector mutado Vi,g .
Vi,g = Xr0,g + F (Xr1,g Xr2,g ).

(3.31)

Donde:
Vi,g , es el vector mutante i en la generacin g.
o
Xr0,r1,r2,g , son los vectores tomados al azar de la poblacin actual g (diferentes).
o
F , es el factor de escala (0,1+).
El factor de escala es un nmero real positivo que controla la velocidad a la cual
u
la poblacin evoluciona. No hay un l
o
mite superior para este valor, pero rara vez hay
valores efectivos mayores que 1. El vector base Xr0,g puede determinarse de varias
maneras, aunque tambin puede tomarse al azar. Los vectores Xr1,g y Xr2,g tambin
e
e
son seleccionados al azar una vez por mutante.

Recombinacin
o
En la recombinacin se forman vectores de prueba, a partir de valores de parmetros
o
a
que han sido copiados de dos vectores diferentes. En este caso se cruza cada vector
con un vector mutante.

Ui,g = Uj,i,g =

Vj,i,g si (randj (0, 1) Cr ) j = jrand


o
Xj,i,g de otra manera

(3.32)

Donde:
Vj,i , es el parmetro j del vector mutante i.
a
Xj,i , es el parmetro j del vector i.
a
Cr , es la probabilidad de cruza [0,1].
La probabilidad de cruza Cr , es un valor denido por el usuario que controla la
fraccin de valores de los parmetros que son copiados del vector mutante.
o
a
Para determinar qu vector contribuir con un parmetro, se compara Cr con la salida
e
a
a
de un generador de nmeros aleatorios uniformemente distribuidos randj (0, 1). Si el
u
nmero aleatorio es menor o igual a Cr , el parmetro de prueba es heredado por el
u
a
vector mutante Vi,g . De otra manera, el parmetro es copiado del vector Xi,g . Adems,
a
a
un parmetro de prueba seleccionado al azar (jrand ) se toma del vector mutante, esto
a
asegura que al menos un parmetro mutante ser heredado, evitando as que el vector
a
a

de prueba Ui,g sea igual al vector Xi,g .


Cinvestav

Departamento de Computacin
o


32 3.3. AJUSTE DE PARAMETROS DEL CONTROLADOR PID POR MEDIO
DIFERENCIAL
DE EVOLUCION
Seleccin
o
Si el valor de la funcin objetivo del vector de prueba Ui,g es igual o menor al vector
o
Xi,g , ste reemplaza a Xi,g en la siguiente generacin. De otra manera, el vector Xi,g
e
o
permanece en su lugar.
Xi,g+1 =

Ui,g si f (Ui,g ) f (Xi,g )


Xi,g de otra manera

(3.33)

Donde:
f (), es la funcin objetivo.
o
Ui,g , es el vector de prueba i.
Xi,g , es el vector i en la poblacin actual.
o
Una vez que la nueva poblacin es seleccionada, el proceso de mutacin, recomo
o
binacin y seleccin es repetido hasta que el ptimo es localizado, o un criterio de
o
o
o
paro preestablecido es alcanzado, por ejemplo, el nmero de generaciones alcanza un
u
mximo preestablecido [Price et al., 1997].
a

3.3.3.

Ajuste de parmetros del controlador del cuadricptea


o
ro

Como se vi en secciones anteriores la frmula de un controlador PID es:


o
o
k

u(tk ) = KP e(tk ) + kI

e(ti )t + KD
i=1

e(tk ) e(tk1 )
,
t

(3.34)

donde se tienen que encontrar los valores de las constantes proporcional (KP ),
integral (kI ) y derivativa (kD ) ms adecuados para el correcto funcionamiento del
a

controlador. Esto puede verse como un problema de optimizacin donde se trata de


o
minimizar la funcin e(kP , kI , kD ), que es la seal de error del sistema, tomando como
o
n
variables de decisin las constantes del PID.
o
El control de postura del veh
culo consta de tres controladores PID por lo que hay que
encontrar nueve constantes, mientras que el control de altura, con un PID, requiere
del ajuste de tres constantes.
Ajuste de parmetros con evolucin diferencial
a
o
Para simplicar el problema y poder realizar ms fcilmente las pruebas de laboa a
ratorio, se dividi el problema de ajuste de parmetros en dos: ajuste de parmetros
o
a
a
de postura y ajuste de parmetros de altura.
a
Para aplicar el algoritmo de evolucin diferencial, primero se denen los individuos
o
como los vectores:
Cinvestav

Departamento de Computacin
o


CAP
ITULO 3. CONTROL DEL CUADRICOPTERO 33

postura : X = [kP , kI , kD , kP , kI , kD , kP , kI , kD ] R9 ,

(3.35)

altura : X = [kPz , kIz , kDz ] R3 ,

(3.36)

donde:
kP en , , , z son las constantes proporcionales de los controladores de pitch, roll,
yaw y altura.
kI en , , , z son las constantes integrales de los controladores de pitch, roll, yaw y
altura.
kD en , , , z son las constantes derivativas de los controladores de pitch, roll, yaw
y altura.

Los l
mites inferior y superior de cada parmetro fueron denidos experimentala
mente y guardados en los vectores LS y LI en R9 para la postura, y LS y LI en R3
para la altura.
Una poblacin consta de treinta individuos, con un criterio de paro del algoritmo
o
de 200 generaciones. Cada evaluacin del individuo se hace en tiempo real, sto es,
o
e
se cargan los parmetros del individuo a evaluar en el algoritmo del controlador del
a
veh
culo, y ste se enciende por diez segundos mientras se guardan las mediciones de
e
las seales de error de pitch (e ), roll (e ) y yaw (e ), en el caso de la postura y de
n
ez , en el caso de la altura.
El periodo de muestreo en el caso de las seales e ,e y e , es de 10 milisegundos, por
n
1000
lo que resultan tres vectores en R . Mientras que el periodo de muestreo en ez es
de 100 milisegundos, quedando un vector en R100 .
La funcin de desempeo para los individuos del control de postura es:
o
n
59

999

1
|e (ti )0.0166i|+|e (ti )0.0166i|+|e (ti )0.0166i|+
|e (ti )|+|e (ti )|+|e (ti )|,
3 i=60
i=0
(3.37)
donde la sumatoria de los primeros 60 elementos de los vectores de error, es una

suma ponderada de los valores absolutos de cada elemento. Esto se hace para que el
error encontrado en los primeros 600 milisegundos tenga menor importancia que el
error encontrado en el resto del tiempo, ya que las posiciones iniciales (error inicial)
pueden variar un poco entre un individuo y otro.
En la segunda sumatoria, se toman los valores absolutos de las seales de error en el
n
instante i de los 9.4 segundos de prueba restantes.
La funcin de desempeo para los individuos del control de altura es:
o
n

1
f (X) =
3

f (X) =
i=0

Cinvestav

99

|ez (ti ) 0.1i| +

i=10

|ez (ti )|,

(3.38)

Departamento de Computacin
o


34 3.3. AJUSTE DE PARAMETROS DEL CONTROLADOR PID POR MEDIO
DIFERENCIAL
DE EVOLUCION
La cual es bastante semejante a la de altura, pero sta slo evala la seal de error ez
e
o
u
n
Teniendo ya todos los elementos necesarios para utilizar la evolucin diferencial, se
o
implementan los pasos de inicializacin, mutacin, recombinacin y seleccin, descrio
o
o
o
tos anteriormente, para encontrar las constantes ptimas. El algoritmo implementado
o
ser descrito ms adelante en el cap
a
a
tulo 5, que trata lo referente a la implementacin
o
del software.

Cinvestav

Departamento de Computacin
o

Cap
tulo 4
Implementacin del hardware
o
El propsito de este trabajo de tesis es, adems del control de un cuadricptero,
o
a
o
crear un sistema base que sea verstil y escalable al que se le puedan aadir nuevas
a
n
caracter
sticas con facilidad. Una pieza clave para lograr este objetivo es el uso de
una placa computadora (en ingls: Single Board Computer o SBC ) empotrada en el
e

veh
culo en lugar de un simple microcontrolador. Esto trae grandes ventajas, ya que
adems de contar con ms recursos como memoria RAM y velocidad de procesamiena
a
to, se le puede cargar un sistema operativo (en este caso Linux) el cual, al ser una
capa intermedia entre el hardware y el software de aplicacin, permite la generacin
o
o
de cdigo portable e independiente de la arquitectura utilizada, pudiendo as actuao

lizar el sistema con mayor facilidad y contando con la ventaja de la reutilizacin de


o
cdigo fuente.
o

4.1.

Descripcin general del sistema


o

La gura 4.1 muestra un diagrama a grandes rasgos del sistema de control a bordo del cuadricptero, que consta de cinco mdulos principales: sensores, controlador,
o
o
etapa de potencia, actuadores y comunicacin.
o
Un veh
culo areo no tripulado puede contener una gran variedad de sensores, alt
e
metros (barmetros) para medir la altitud, sistemas de posicionamiento global (en ingls:
o
e
Global Positioning system o GPS ) para determinar la ubicacin en el espacio, sensoo
res de proximidad para evasin de obstculos y hasta cmaras de video en modelos
o
a
a
ms sosticados. El sensor primordial para el control automtico de la postura, es la
a
a
unidad de medicin inercial (UMI), con la cual se pueden determinar los tres angulos
o

de rotacin del cuadricptero (pitch, roll, yaw ), as como tambin la velocidad anguo
o

e
lar en la que stos rotan. El mdulo de sensores para este proyecto cuenta con una
e
o
UMI y un sensor ultrasnico para la altitud.
o
El mdulo controlador es el encargado de leer los datos provenientes de los sensores
o
y aplicar una accin de control sobre los actuadores, en este caso cuatro motores. La
o
35


36 4.1. DESCRIPCION GENERAL DEL SISTEMA

Figura 4.1: Sistema de control a bordo del cuadricptero.


o
etapa de potencia se encarga de decodicar las ordenes de control enviadas por el

controlador, para luego activar los motores segn lo indicado por ste. El controlau
e
dor tambin se encarga de recibir, procesar, y enviar datos hacia otros dispositivos
e
conectados a la red de control.
La gura 4.2 muestra el sistema de comunicacin entre el cuadricptero y la estacin
o
o
o

de control en tierra (o estaciones). Este est basado en una conguracin clientea


o
servidor por WiFi a travs de un ruteador, donde el veh
e
culo areo acta como servie
u
dor, atendiendo las peticiones de los clientes. Para este sistema se utilizan dos clientes:
una computadora personal y una computadora en tableta. La computadora personal
tiene la funcin de congurar aspectos internos del control de postura, as como de
o

hacer una recopilacin y anlisis de datos tomados del servidor. La computadora en


o
a
tableta sirve como control a distancia de la posicin del cuadricptero en el espacio.
o
o

Figura 4.2: Sistema de comunicacin.


o
Cinvestav

Departamento de Computacin
o


CAP
ITULO 4. IMPLEMENTACION DEL HARDWARE 37
En las siguientes secciones se explicar con mas detalle cada uno de los elementos
a
que conforman este sistema.

4.2.

Descripcin del Hardware


o

El sistema de control a bordo fue montado sobre un chasis de la marca Mikrokopter,

modelo Quadro XL-Frame. Este consiste en cuatro barras de aluminio sujetadas por
dos lminas de bra de carbono (gura 4.3). Tiene una longitud de 47 cent
a
metros
de punta a punta y pesa aproximadamente 230 gramos . Las hlices utilizadas son de
e
plstico con una longitud de 25 cm.
a

Figura 4.3: Chasis del cuadricptero con motores.


o

4.2.1.

Controlador

Se utiliz una placa computadora de la marca Gumstix (gura 4.4) como controlador
o
principal. Estas computadoras son muy pequeas (17 x 58 x 4.2 mm) por lo que
n
resultan ideales para usarse en veh
culos areos no tripulados. Estas tarjetas pueden
e
montarse en diferentes placas de expansin, que le dan diferentes funcionalidades al
o
sistema. La placa utilizada para este proyecto fue el modelo Summit (gura 4.5 ), que
cuenta con interfaces como: puerto serie, bus I 2 C (en ingls Inter-Integrated Circuit),
e
bus SPI (en ingls: Serial Peripheral Interface) y USB (en ingls : Universal Serial
e
e
Bus).
Las caracter
sticas principales de la placa computadora son:
Arquitectura: ARM Cortex-A8.
Cinvestav

Departamento de Computacin
o


38 4.2. DESCRIPCION DEL HARDWARE

Figura 4.4: Computadora Gumstix.


Procesador: OMAP3530 de Texas Instruments.
Velocidad del procesador: 720 MHz.
Memoria RAM: 512 Megabytes.
Memoria: entrada para tarjeta SD.
Comunicacin inalmbrica: Bluetooth, WiFi.
o
a
Sistema Operativo: Linux (Angstrom).

Figura 4.5: Gumstix montado en placa de expansin Summit.


o
Como se puede notar, esta tarjeta cuenta con bastantes recursos, por lo que se
pueden agregar funcionalidades al sistema sin hacer cambios al Hardware.
Cinvestav

Departamento de Computacin
o


CAP
ITULO 4. IMPLEMENTACION DEL HARDWARE 39

4.2.2.

Sensores

Unidad de medicin inercial (UMI)


o
Un sensor UMI (en ingls IMU o Inertial Measurement Unit) es un dispositivo
e
electrnico que mide velocidad, orientacin y fuerzas gravitacionales usando una como
o
binacin de acelermetros, giroscpios y magnetmetros.
o
o
o
o
Una unidad de medicin inercial usualmente contiene tres acelermetros, tres gio
o
roscpios y tres magnetmetros. Los acelermetros son colocados de tal forma que
o
o
o
sus ejes de medicin sean ortogonales entre ellos, por lo que se mide la aceleracin
o
o
inercial (tambin conocida como fuerzas G ) en cada eje.
e
Los tres giroscpios estn colocados en un patrn ortogonal similar, midiendo la veo
a
o
locidad angular respecto a cada eje. Los magnetmetros sirven para detectar hacia
o
dnde apunta el veh
o
culo, tomando como referencia el norte magntico.
e
Cuando se usan en conjunto con un procesador para calcular la orientacin relativa
o
en el espacio (pitch, roll, yaw ), las UMIs suelen denominarse sistemas de referencia
de actitud y rumbo (en ingls AHRS o Attitude and Heading Reference Systems).
e
El dispositivo AHRS utilizado en este proyecto es el modelo CHR-6d de CH Robotics (gura 4.6). Este dispositivo incluye un procesador ARM Cortex a 64 MHz, el
cual utiliza un ltro de Kalman extendido para obtener las estimaciones del pitch y
roll.

Figura 4.6: Unidad de medicin inercial CHR-6d de CH Robotics.


o
Las caracter
sticas principales de este sensor son las siguientes:

Angulos de Euler o cuanterniones como salidas.


Comunicacin por TTL UART (en ingls: Universal Asynchronous Receiver
o
e
Transmitter ) o por bus SPI.
Velocidades ajustables de salida (20Hz-300Hz) y de comunicacin (hasta 115200
o
baudios).
Cinvestav

Departamento de Computacin
o


40 4.2. DESCRIPCION DEL HARDWARE
Actualizaciones internas a 500Hz.
Regulador de 3.3 Voltios integrado.
Precisin en pitch y roll mejor de dos grados.
o
Precisin en yaw mejor de cinco grados.
o
Velocidad angular mxima medible de +/- 2000 /s.
a
Aceleracin mxima medible de +/- 2G.
o
a
Firmware de cdigo abierto con herramientas de desarrollo gratuitas.
o
Software de computadora de cdigo abierto para visualizacin de datos y cono
o
guracin.
o
Sensor ultrasnico
o
Los sensores ultrasnicos trabajan excitando un transductor acstico con pulsos
o
u
de voltaje, haciendo que ste vibre y produzca sonidos ultrasnicos. Estas oscilacioe
o
nes son dirigidas hacia un objetivo y, midiendo el tiempo que tarda en regresar el
eco al transductor, se puede calcular la distancia a la que se encuentra el objetivo
[Wilson, 2005].
Se utiliz el sensor MB310 de XL-Maxsonar (gura 4.7) que cuenta con las siguientes
o
caracter
sticas:

Figura 4.7: Sensor ultrasnico.


o

Dimensiones de 22.1mm x 19.9mm x 25.11mm.


Voltaje de entrada de 3.3 a 5.5 Voltios.
Salida serial (9600 baudios) o analgica.
o
Actualizacin de mediciones a 10Hz (tarda 99ms en hacer cada medicin).
o
o
Cinvestav

Departamento de Computacin
o


CAP
ITULO 4. IMPLEMENTACION DEL HARDWARE 41
Rango de distancias de 20 a 765 cm con resolucin de 1 cm.
o
Operacin a 42KHz.
o
Autocalibracin en cada medicin.
o
o

4.2.3.

Motores

Usualmente los llamados motores sin escobillas (en ingls:brushless motors) son
e
utilizados en veh
culos areos no tripulados, ya que stos presentan muchas ventajas
e
e
con respecto a los motores elctricos convencionales (con escobillas), como:
e
Son ms baratos de fabricar.
a
Pesan menos.
Requieren menos mantenimiento.
Son ms ecientes.
a
Generan menor interferencia electromagntica.
e
Una desventaja es que su control es mucho ms complejo, aunque debido a los avana
ces de la tecnolog esta complejidad se ha eliminado con controladores electrnicos.
a,
o
Los motores utilizados en el veh
culo son de la marca Robbe ROXXY modelo BLOutrunner 2824-34 (gura 4.8), los cuales cuentan con las siguientes caracter
sticas:
Peso: 48 gr.
Dimensiones: 28.8 x 26 mm.
Nmero de celdas: 2-3 Lixx / 6-10 Nixx.
u
RPM/V: 1100.
Corriente: 48 A.
Corriente mxima: 9 A. (30 segundos).
a
Potencia: 90 W.
Empuje Mximo: 580 gr.
a

Cinvestav

Departamento de Computacin
o


42 4.2. DESCRIPCION DEL HARDWARE

Figura 4.8: Motor sin escobillas.

4.2.4.

Interfaz de potencia

La interfaz de potencia se encarga de convertir las seales de salida del controlan


dor en seales apropiadas para el manejo de los motores. En el caso de los motores
n
sin escobillas, se cuentan con controladores elctronicos comerciales que usualmente
e
toman como entrada una seal de pulso modulada o una serie de datos transmitidos
n
por bus i2 c.
Los controladores utilizados para el cuadricptero son de la marca YGE modelo 30 i
o
(gura 4.9), que cuentan con las siguientes caracter
sticas:
Comunicacin por i2 c.
o
Se pueden conectar hasta ocho controladores en un mismo bus (direcciones 0x29
a 0x30).
Maneja corrientes de hasta 30 A.

4.2.5.

Comunicaciones

Como se dijo anteriormente, el sistema de comunicaciones consiste en una red


inalmbrica (Wi-Fi ) donde el controlador a bordo del cuadricptero es el servidor
a
o
y una computadora personal o en tableta pueden ser los clientes.
Esta comunicacin se hace a travs de un ruteador de la marca Linksys modelo
o
e
WRT54G, mostrado en la gura 4.10. Cualquier computadora con sistema operativo Linux y tarjeta de red inalmbrica puede utilizarse como cliente. Se utiliz una
a
o
computadora en tableta Galaxy tab 10.1 (gura 4.11) de la marca Samsung como
controlador en tierra.
Cinvestav

Departamento de Computacin
o


CAP
ITULO 4. IMPLEMENTACION DEL HARDWARE 43

Figura 4.9: Manejador de motores sin escobillas.

Figura 4.10: Ruteador.

4.2.6.

Energ
a

En las pruebas de laboratorio, se utiliz una fuente de computadora de 500 Watts


o
para alimentar a los circuitos y los motores del cuadricptero. Estas fuentes son ms
o
a
baratas que una fuente de poder lineal y pueden otorgar hasta 25 Amperes con voltajes
de 12 Voltios.
En la gura 4.12 se pude ver la fuente utilizada. Se unieron todos los cables de 12v
para dar toda la capacidad de corriente.
En las pruebas de vuelo se utiliz una bater de litio pol
o
a
mero (LiPo) de tres celdas
y capacidad de 2200 miliAmperes/hora (gura 4.13). Las bater de litio pol
as
mero
son muy utilizadas en veh
culos areos, ya que son muy ligeras y tienen gran capacidad
e
de descarga.
Cinvestav

Departamento de Computacin
o


44 4.2. DESCRIPCION DEL HARDWARE

Figura 4.11: Computadora en tableta utilizada como control en tierra.

Figura 4.12: Fuente de poder de una computadora.

4.2.7.

Otras interfaces

Los componentes que integran al sistema funcionan con diferentes voltajes. Tanto
el controlador como los sensores requieren una alimentacin de 5 voltios, mientras
o
que los motores y sus manejadores necesitan 12v.
Esta diferencia de voltajes tambin sucede con las seales de comunicacin. La compue
n
o
tadora (Gumstix) utiliza seales de 1.8v en su puerto serial y en el bus i2 c, mientras
n
que los manejadores de los motores utilizan 5v en el bus i2 c y la UMI funciona con
tensiones de 3.3v en su puerto serial.
Para resolver este problema, se diseo y construy un circuito electrnico que conviern
o
o
te y regula los voltajes de los componentes para poderlos acoplar entre s La gura
.

4.14 muestra el diagrama esquemtico del circuito. Este consiste en un regulador de


a
voltaje (12 a 5v) y dos traductores de voltaje (uno de 1.8 a 5v y otro de 1.8 a 3.3v).
El regulador de voltaje toma como entrada 12v proporcionados por la bater del
a
Cinvestav

Departamento de Computacin
o


CAP
ITULO 4. IMPLEMENTACION DEL HARDWARE 45

Figura 4.13: Bater de litio pol


a
mero de tres celdas.

Figura 4.14: Diagrama esquemtico del circuito regulador-traductor de voltaje.


a
veh
culo y los convierte a 5v, necesarios para alimentar a la computadora y los sensores. Los traductores de voltaje acoplan las tensiones de las seales de comunicacin
n
o
del controlador con las de los sensores.
Cinvestav

Departamento de Computacin
o


46 4.2. DESCRIPCION DEL HARDWARE
La tablilla ya construida puede verse en las guras 4.15 y 4.16.

Figura 4.15: Tablilla del circuito regulador-traductor vista por abajo.

Figura 4.16: Tablilla del circuito regulador-traductor vista por arriba.


Otro problema encontrado en el sistema fue que la computadora slo tiene un puerto
o
serial disponible, sin embargo, se necesitaban dos puertos: uno para la UMI y otro para

el sensor ultrasnico. Esto se resolvi utilizando un convertidor usb-serial conectado


o
o
a travs de un concentrador USB genrico (guras 4.17 y 4.18), dando capacidad de
e
e
conectar hasta tres dispositivos extras.

4.2.8.

Estructuras para pruebas del veh


culo

Se utilizaron dos estructuras para contener el veh


culo en las pruebas de evolucin:
o
una para la postura y otra para la altura.

Para las pruebas de postura se utiliz un tripi, como lo muestra la gura 4.19. Este
o
e
Cinvestav

Departamento de Computacin
o


CAP
ITULO 4. IMPLEMENTACION DEL HARDWARE 47

Figura 4.17: Concentrador USB (sin carcasa).

Figura 4.18: Convertidor USB a serial.

cuenta con un pivote que contiene tres baleros que permiten un movimiento con
libertad en los angulos de pitch, roll y yaw ; mientras mantienen al veh

culo jo en
los ejes x, y y z (gura 4.20).
El cuadricptero se ja en este pivote y, de esta manera, se hacen las pruebas con
o
seguridad.
Para las pruebas de altura se utiliz un poste con una base pesada, como lo mueso
tra la gura 4.21. A este poste se le uni un palo de madera con cinta elstica para
o
a
darle una funcin de brazo. El veh
o
culo se uni al extremo de esta estructura con
o
cinta elstica. Esta conguracin permite el vuelo del cuadricptero con cierta libera
o
o
tad alrededor del poste y hasta una altura delimitada, probando su utilidad para el
entrenamiento de altura.
Cinvestav

Departamento de Computacin
o

48 4.3. CONSTRUCCION DEL CUADRICOPTERO

Figura 4.19: Tripi para pruebas de control de postura.


e

Figura 4.20: Pivote para movimiento en pitch, roll y yaw.

4.3.

Construccin del cuadricptero


o
o

En esta seccin se describir la construccin del cuadricptero, utilizando los como


a
o
o
ponentes mostrados en la seccin anterior.
o
La gura 4.22 nos muestra un diagrama del sistema integrado. Todo esto va a bordo
del veh
culo, con excepcin del ruteador y el cliente.
o
En el centro est el componente principal, el controlador (computadora Gumstix ),
a
al cual estn conectados todos los dems dispositivos.
a
a

A la derecha del diagrama est la conexin del controlador con los motores. Esta
a
o
se hace a travs del bus i2 c, pasando antes por un traductor de voltaje hacia los
e
manejadores de potencia.
En la gura 4.23 se puede ver una imagen del chasis del veh
culo armado con los
motores y sus manejadores ya montados.
Cinvestav

Departamento de Computacin
o


CAP
ITULO 4. IMPLEMENTACION DEL HARDWARE 49

Figura 4.21: Base para pruebas de control de altura.


i2 c

ic

Figura 4.22: Diagrama del hardware del sistema de control del cuadricptero.
o

Cinvestav

Departamento de Computacin
o

50 4.3. CONSTRUCCION DEL CUADRICOPTERO

Motor 2

Motor 3
Manejadores

Motor 4

Motor 1

Figura 4.23: Veh


culo con motores y manejadores de motores montados.
Para conectar la unidad de medicin inercial (UMI) con el controlador, las seales
o
n
del puerto serial deben pasar antes por un traductor de voltaje de 1.8 a 3.3v.
El controlador, as como tambin la UMI y el traductor de voltaje, son alimentados

e
con 5v proporcionados por el regulador de voltaje.
La tablilla electrnica con el regulador y los traductores de voltaje se usa adems
o
a
como base para montar la computadora, como se ve en las guras 4.24 y 4.25. Sobre
estas dos placas se monta una ms, que contiene la unidad de medicin inercial.
a
o

Figura 4.24: Placa del regulador-traductor de voltaje utilizada como base (vista inferior).
Cinvestav

Departamento de Computacin
o


CAP
ITULO 4. IMPLEMENTACION DEL HARDWARE 51

Computadora
Antena WiFi

Placa reguladoratraductora

Figura 4.25: Computadora montada sobre placa reguladora-traductora de voltaje.


Estas tres placas, montadas una sobre la otra, se atornillan al centro del cuadricpteo
ro como lo muestra la gura 4.26.

UMI

Figura 4.26: Placas montadas en el cuadricptero.


o
La conexin del sensor ultrasnico se hace a travs de un convertidor usb-serial, el
o
o
e
cual est conectado a un concentrador USB, como lo muestra la gura 4.27.
a
Como medida de proteccin para las hlices del cuadricptero y las personas, se
o
e
o

construy una carcasa de madera (gura 4.28). Esta tambin sirve para facilitar la
o
e
manipulacin del veh
o
culo en la etapa de pruebas.
Finalmente, la gura 4.29 muestra el cuadricptero ya ensamblado, con la compuo
tadora y la unidad de medicin inercial al centro del veh
o
culo, el concentrador USB
Cinvestav

Departamento de Computacin
o

52 4.3. CONSTRUCCION DEL CUADRICOPTERO

Alimentacion

Conector usb
a la computadora

Sensor
ultrasonico

Convertidor
USBserial

Concentrador usb

Figura 4.27: Conexin del sensor ultrasnico.


o
o

Figura 4.28: Cuadricptero con carcasa de madera.


o
un poco ms arriba sobre la carcasa de madera y el sensor ultrasnico en la base del
a
o
veh
culo. La bater es colocada justo debajo del veh
a
culo, en el centro de masa de
ste.
e

Cinvestav

Departamento de Computacin
o


CAP
ITULO 4. IMPLEMENTACION DEL HARDWARE 53

Concentrador USB
Computadora e IMU

Sensor ultrasonico

Figura 4.29: Cuadricptero.


o

Cinvestav

Departamento de Computacin
o

54 4.3. CONSTRUCCION DEL CUADRICOPTERO

Cinvestav

Departamento de Computacin
o

Cap
tulo 5
Implementacin del software
o
En este cap
tulo se describir el software desarrollado para el control y la cona
guracin del cuadricptero. Primero se dar una descripcin de las plataformas de
o
o
a
o
desarrollo utilizadas, como el sistema operativo Linux y el parche de tiempo real
Xenomai, utilizados en la computadora a bordo del veh
culo, as como tambin el

e
sistema operativo Android. Luego se mostrar el sistema de control a bordo, el cual
a
interacta con el software de conguracin de la computadora personal y con el conu
o
trol en tierra, realizado en una computadora en tableta. Finalmente, se describir la
a
implementacin del algoritmo de evolucin diferencial para el ajuste de los parmetros
o
o
a
del controlador PID del veh
culo.

5.1.

Plataformas de desarrollo

Como se ha dicho en cap


tulos anteriores, el avance en la tecnolog ha dado un
a
gran impulso al desarrollo de veh
culos areos no tripulados. Circuitos integrados ms
e
a
pequeos, ms capaces y con bajo consumo de energ son fcilmente montables en
n
a
a
a
veh
culos pequeos, dotando a stos con mayores recursos como memoria y capacidad
n
e
de procesamiento.
Gracias a sto, ha sido posible incluir sistemas operativos (SO) en diseos donde antes
e
n
se programaba directamente en el procesador. El uso de SO en sistemas empotrados
puede dar muchas ventajas con respecto a una programacin directa en el procesador:
o
abstraccin de hardware, capacidad de multiprocesamiento y reutilizacin de software,
o
o
entre otras.

5.1.1.

Linux y tiempo real

Linux es un sistema operativo originalmente escrito por Linus Torvalds. El kernel


de Linux provee una variedad de facilidades requeridas por cualquier sistema basado
en linux para operar correctamente. El software de aplicacin depende de las cao
racter
sticas espec
cas de este kernel, como el manejo de dispositivos de hardware,
55

56 5.1. PLATAFORMAS DE DESARROLLO


as como tambin de una variedad de abstracciones fundamentales como la memoria

e
virtual, tareas (o procesos), sockets, archivos, etc.
Este sistema operativo puede ser encontrado en una gran variedad de dispositivos,
desde el ms pequeo dispositivo de mano hasta en un cluster de supercmputo.
a
n
o
Algunos ejemplos del amplio rango de aplicaciones que utilizan Linux son: televisiones digitales, grabadoras, telfonos celulares, servidores de sitios web como Google,
e
etctera [Yaghmour et al., 2008].
e
Algunas caracter
sticas importantes de linux son:
Cdigo abierto.
o
Hay versiones que requieren poca memoria (2MB).
Es un sistema maduro y estable.
Gran variedad de software disponible.
El planicador de Linux est diseado para tener la mejor respuesta promedio. Sin
a
n
embargo, sto no garantiza que alguna tarea en particular siempre corra dentro de
e
un tiempo l
mite. Una tarea puede ser suspendida por un largo tiempo arbitrario,
por ejemplo, cuando un manejador de dispositivos da servicio a una interrupcin de
o
disco.
Los sistemas operativos en tiempo real (en ingls: RTOS o Real Time Operating
e
Systems) ofrecen garant en el planicador de tareas. Sistemas como QNX, Lynxos
as
o VxWorks son usados t
picamente para aplicaciones de control o de comunicaciones,
no para propsito general.
o
Linux ha sido adaptado para dar soporte en tiempo real. Estas adaptaciones han sido
llamadas Linux en tiempo real (en ingls: Real-Time Linux o RT Linux).
e
Hay numerosas versiones de Linux en tiempo real disponibles, algunas libres, otras
comerciales. Tres versiones comnmente disponibles son:
u
RTLinux. Desarrollado por New Mexico Tech y ahora mantenido por Wind
River Systems.
RTAI. Desarrollado por la Universidad Politcnica de Miln y disponible en
e
a
https://www.rtai.org/.
Xenomai. Es un derivado de RTAI. Mientras RTAI se enfoca en las ms bajas
a
latencias posibles, Xenomai adems considera extensibilidad, portabilidad, y
a
mantenibilidad como metas importantes. Est disponible en www.xenomai.org.
a
Debido a sus caracter
sticas, en este trabajo de tesis ha sido utilizado Xenomai.
Cinvestav

Departamento de Computacin
o


CAP
ITULO 5. IMPLEMENTACION DEL SOFTWARE 57

5.1.2.

Xenomai

El proyecto Xenomai fue lanzado en agosto de 2001. Este est basado en un ncleo
a
u
abstracto, utilizable para crear todo tipo de interfaces en tiempo real. Estas interfaces,
llamadas pieles (en ingls: skins), se comunican de una manera espec
e
ca con las
aplicaciones usando los servicios del ncleo genrico.
u
e
Han sido implementadas las siguientes pieles:
POSIX.
pSOS+.
VxWorks.
VRTX.
Nativa. La piel de Xenomai.
uITRON.
RTAI.
La idea general de Xenomai es que un pequeo kernel de tiempo real (TR) corra
n
bajo Linux, lo cual signica que el kernel de TR tiene mayor prioridad que el kernel
de Linux (gura 5.1). Las tareas en tiempo real son ejecutadas por el kernel de TR y
los programas normales de Linux corren cuando no hay tareas en TR a ser ejecutadas.

Figura 5.1: El kernel de tiempo real (primario) tiene mayor prioridad que el kernel
de Linux (secundario).
Linux puede considerarse como una tarea inactiva del planicador de tiempo real.
Cuando esta tarea inactiva corre, ejecuta su propio planicador y maneja los procesos
Cinvestav

Departamento de Computacin
o

58 5.2. CONTROL Y CONFIGURACION DEL CUADRICOPTERO


del Linux normal.
Como el kernel de tiempo real tiene mayor prioridad, una tarea de Linux es detenida cuando una tarea de TR est lista para correr, la cual es ejecutada inmediatamente.
a
Xenomai est escrito en C, por ello C es el lenguaje preferido para escribir programas
a
de Linux en tiempo real.

5.1.3.

Android

Android es una pila de software de cdigo abierto, que incluye el sistema operativo,
o
middleware y un conjunto de APIs.
Este sistema fue creado para correr en telfonos celulares, pero ya se ha expandido
e
su uso para computadoras en tableta.
Espec
camente, Android est hecho de varias partes, incluyendo las siguientes:
a
Un kernel de Linux que provee una interfaz de bajo nivel con el Hardware,
manejo de memoria y control de procesos.
Bibliotecas de cdigo abierto para el desarrollo de aplicaciones, incluyendo SQo
Lite, Webkit, OpenGL, etc.
La mquina virtual Dalvik, utilizada para ejecutar las aplicaciones. Est dia
a
seada para ser pequea y eciente para uso en dispositivos mviles.
n
n
o
Un marco de trabajo que ofrece servicios a la capa de aplicacin, incluyendo el
o
manejador de ventanas, bases de datos, telefon y sensores.
a
Un conjunto de aplicaciones preinstaladas.
Un kit de desarrollo de software (en ingls: SDK o Software Development Kit
e

usado para crear aplicaciones, incluyendo las herramientas relacionadas y documentacin [Meier, 2012].
o
Las aplicaciones en Android se escriben habitualmente en lenguaje Java, aunque
estn disponibles otras herramientas de desarrollo para aplicaciones en C o C++.
a
Una ventaja que tiene Android sobre otros sistemas operativos como iOS o Windows
phone, es que posee plataformas de desarrollo gratuitas y no se requieren licencias
para desarrollar software. Adems, sus APIs permiten un acceso total al hardware,
a
un requerimiento importante para este trabajo.

5.2.

Control y conguracin del cuadricptero


o
o

Para el control y conguracin del cuadricptero se desarrollaron tres aplicaciones.


o
o

La primera, escrita en C, es la aplicacin a bordo del veh


o
culo. Esta se encarga del control automtico del mismo y adems atiende las peticiones de los clientes, utilizando
a
a
Cinvestav

Departamento de Computacin
o


CAP
ITULO 5. IMPLEMENTACION DEL SOFTWARE 59
hilos en tiempo real. La segunda fue escrita en Python y Qt para computadoras con
Linux. Es una interfaz de conguracin de las constantes del controlador, as como
o

de lectura de los sensores a bordo. Finalmente, se desarroll una aplicacin en Java


o
o
para computadora en tableta que funciona como control manual en tierra.
A continuacin se describirn estas aplicaciones con ms detalle.
o
a
a

5.2.1.

Controlador a bordo

Esta aplicacin se compone bsicamente de cuatro hilos: el hilo principal, el hilo de


o
a
control de postura, el hilo de control de altura y el hilo servidor (uno o ms). Estos
a
cuatro hilos interactan a travs de la memoria compartida, la cual contiene las
u
e
principales variables requeridas por todos ellos, como las mediciones de los sensores,
los valores de referencia del controlador, el modo de control, etctera (gura 5.2).
e
Para evitar la corrupcin de los datos compartidos se utiliza la exclusin mutua.
o
o

Figura 5.2: Hilos bsicos del software a bordo del veh


a
culo y memoria compartida.

Hilo principal
Este hilo, que corre en el dominio de Linux, es el punto de entrada de la aplicacin.
o
En l se inicializa el sistema y se crean los otros hilos.
e
La gura 5.3 muestra el diagrama de ujo. El primer paso es inicializar la unidad de
medicin inercial, donde se calibran los giroscpios con velocidad inicial de cero. En
o
o
esta etapa el veh
culo debe permanecer inmvil por al menos tres segundos.
o
Cinvestav

Departamento de Computacin
o

60 5.2. CONTROL Y CONFIGURACION DEL CUADRICOPTERO


Despus de sto, se inicializan los motores, uno a uno, en modo manual con un valor
e
e

de 20 (de un rango de 0 a 255). Esto se hace para lograr un arranque ms suave


a
cuando se incremente la velocidad.
A continuacin, se crean y corren los hilos de control de postura y altura, pero no
o
empezarn a trabajar, ya que el sistema an se encuentra en modo manual.
a
u
A partir de ese momento, el hilo principal se mantiene esperando por peticiones de
conexin de clientes. Para cada peticin se crea un hilo servidor que se encarga de
o
o
ejecutar los comandos requeridos por el cliente.

Figura 5.3: Hilo principal e hilo servidor de la aplicacin de control a bordo.


o

Cinvestav

Departamento de Computacin
o


CAP
ITULO 5. IMPLEMENTACION DEL SOFTWARE 61
Hilo servidor
Este hilo (o hilos), con la ms baja prioridad de los hilos en tiempo real, es el
a
encargado de atender los comandos enviados por las aplicaciones clientes, ya sea la
interfaz de conguracin de la computadora o el control en tierra de la computadora
o
en tableta.
El cliente y el servidor se comunican a travs de sockets con el protocolo TCP/IP.
e
Lo primero que hace este hilo al ser creado, es esperar el env de un paquete de datos
o
del cliente. Un paquete de datos, como lo muestra la gura 5.4, consta de tres partes:
un byte que contiene el nmero de bytes enviados por el cliente, un byte que contiene
u
el comando a ejecutar y una cadena de bytes (opcional) que contiene los parmetros
a
relacionados con el comando.

Figura 5.4: Estructura de los paquetes de datos enviados entre el servidor y el cliente.
Despus de recibir el paquete de datos enviado por el cliente, se ejecuta el comando
e
contenido, para despus responder al cliente con otro paquete de datos, ya sea con los
e
valores requeridos por el cliente o slo regresando el mismo comando recibido como
o
un aviso de que ya se ha ejecutado.
La tabla 5.1 muestra el conjunto de comandos que puden ser ejecutados por el servidor.
Al terminar de ejecutar el comando, el hilo servidor actualiza las variables globales
que hayan cambiado para que los dems hilos puedan disponer de la nueva infora
macin. Este ciclo se realiza hasta que el cliente se desconecte de la red y el hilo se
o
destruya.
Hilo de control de postura
Este hilo en tiempo real tiene la prioridad de interrupcin ms alta. Es el encargao
a
do de calcular las variables de control de los angulos de pitch, roll y yaw, y el unico

que puede manipular las salidas a los motores despus de la inicializacin en el hilo
e
o
principal. Bsicamente, este hilo consiste en un ciclo de lectura de sensores, clculo de
a
a
variables de control y salida a motores que se repite cada 10 milisegundos. La Figura
5.5 muestra el diagrama de ujo del hilo de control de postura. Como primer paso,
se leen los angulos y velocidades actuales de la UMI, los cuales son actualizados en la

memoria compartida para su uso en otros hilos. De la memoria compartida tambin


e
se leen los valores de referencia y constantes a utilizar por los controladores PID,
as como el modo de operacin del veh

o
culo.
Cinvestav

Departamento de Computacin
o

62 5.2. CONTROL Y CONFIGURACION DEL CUADRICOPTERO


Cdigo
o
97
109
49
50
19
20
21
22
23
24
25
26
27
28
30
40
41

Comando
Enviar ultimos valores le

dos de la IMU al cliente


Cambiar velocidades de los motores 1,2,3 y 4
Cambiar velocidades de los motores 1 y 3
Cambiar velocidades de los motores 2 y 4
Enviar al cliente el valor de la variable Gas
Cambiar Gas a valor especicado por el cliente
Cambiar valores de kP , kI y kD del control de pitch
Cambiar valores de kP , kI y kD del control de roll
Cambiar valores de kP , kI y kD del control de yaw
Cambiar valores de referencia de los PID de pitch, roll, yaw
Guardar en archivo constantes PID actuales
Enviar constantes PID guardadas en archivo al cliente
Enviar constantes PID en ram al cliente
Cambiar valores de kP , kI y kD del control de altura
Cambiar modo de control
Enviar ultimo valor le de sensor ultrasnico al cliente

do
o
Cambiar valor de referencia de control PID de altura
Tabla 5.1: Lista de comandos ejecutables por el hilo servidor.

Si el modo de operacin es manual, los valores de los motores son ajustados directao
mente por el usuario a travs de la memoria compartida. Si el modo de operacin es
e
o
automtico, se lee la variable de control de altura calculada en otro hilo (si el modo
a
autmatico de control de altura est activado) y se ejecutan los algoritmos de control
o
a
PID descritos en el cap
tulo 3. De esta forma se determinan las variables de control
de los angulos pitch, roll y yaw.

Finalmente, las aportaciones de las variables de control son enviadas a cada motor y
se esperan 10 milisegundos para empezar el ciclo de nuevo.
Hilo de control de altura
Este hilo de tiempo real tiene la segunda prioridad de interrupcin ms alta. Es
o
a
el encargado de calcular la variable de control de altura, que es le por el hilo de
da
control de postura para sumarla a la salida de los motores. La estructura de este hilo
es muy semejante a la del de control de postura, siendo un ciclo de lectura, control y
salida que se repite cada 100 milisegundos.
Como se ve en la gura 5.5, primero se lee el sensor ultrasnico para determinar la
o
altura actual del veh
culo. Este valor se pasa por un ltro pasabajas de segundo orden
para eliminar el ruido en las lecturas. El valor resultante se pasa luego a la memoria
compartida para su uso en otros hilos. En este paso se leen tambin los valores de
e
referencia, las constantes del controlador PID y el modo de control a utilizar.
Si el control automtico de altura est activado, se calcula la variable de control
a
a
Cinvestav

Departamento de Computacin
o


CAP
ITULO 5. IMPLEMENTACION DEL SOFTWARE 63

v1 v2 v3 v4

Figura 5.5: Hilos de control de postura y altura de la aplicacin de control a bordo.


o
de altura utilizando el algoritmo de control PID descrito en el cap
tulo 3. Una vez
obtenida esta variable, es actualizada en la memoria compartida para que pueda ser
aplicada sobre los motores en el hilo de control de postura. Si el modo de control es
manual, no se hace ningn clculo. Este ciclo contina cada 100 milisegundos.
u a
u

5.2.2.

Aplicacin de conguracin en computadora


o
o

Esta aplicacin fue escrita en Python y se utiliz Qt para crear la interfaz grca
o
o
a
de usuario. Funciona como cliente y sirve para congurar las constantes de los controladores PID que conforman el sistema a bordo, as como tambin para probar estas

e
Cinvestav

Departamento de Computacin
o

64 5.2. CONTROL Y CONFIGURACION DEL CUADRICOPTERO


conguraciones en el laboratorio.
La gura 5.6 muestra la interfaz de usuario de la aplicacin. En la esquina superior
o
derecha estn los botones de conexin y desconexin con el servidor; y de encendido y
a
o
o
apagado del veh
culo. Un poco ms abajo se pueden ver los botones para leer y guara
dar las constantes del controlador PID a bordo. En la misma columna se encuentra
un cuadro para congurar la variable Gas y un botn de paro de emergencia.
o
A la izquierda se encuentran los cuadros de edicin de los valores de las constantes
o

de los controladores. Estos se pueden activar o desactivar de manera individual para


hacer pruebas en alguno en particular.
Finalmente, al centro se encuentran las grcas de los valores obtenidos de la unidad
a
de medicin inercial y del sensor ultrasnico, las cuales son actualizadas cada 10 mio
o
lisegundos. Todos los valores le
dos se guardan en un archivo de texto para su estudio
posterior.

Figura 5.6: Interfaz de usuario de la aplicacin de conguracin.


o
o

5.2.3.

Control en tierra con computadora en tableta

Para el control en tierra del veh


culo se utiliz una computadora en tableta. Esta
o
tiene grandes ventajas con respecto a un ordenador convencional, como lo son: peso
Cinvestav

Departamento de Computacin
o


CAP
ITULO 5. IMPLEMENTACION DEL SOFTWARE 65
ms ligero, mayor movilidad y un conjunto de sensores que pueden enriquecer la forma
a
de interactuar con el usuario. Esta aplicacin aprovecha los acelermetros, giroscpios
o
o
o
y magnetmetros incluidos para crear un control ms intuitivo para el usuario.
o
a
El control se basa en cambios de posicin del dispositivo, el cual tiene un sistema de
o
coordenadas jo igual al sistema de coordenadas del cuadricptero. Como se puede
o
ver en la gura 5.7 un cambio en los ngulos de la tableta equivale a un cambio
a
proporcional en los angulos de referencia en el controlador del veh

culo, provocando
un movimiento semejante al de la tableta. Podr decirse que el cuadricptero imita
a
o
la posicin de la tableta.
o

x
frente

Motor 1

izquierda

roll

pitch

Motor 4

derecha

z
+

yaw

Motor 2

atras

Motor 3

z
Figura 5.7: Sistema de coordenadas de tableta y veh
culo.
Por cada medio grado que se mueva la tableta en los ngulos pitch y roll, el cuaa
dricptero tendr un cambio de un grado, esto es: pitchVeh
o
a
culo = (0.5 pitchtableta).
La relacin de grados del movimiento de yaw de la tableta con respecto al yaw del
o
veh
culo es de uno a uno, por cada grado que rote la tableta, el cuadricptero roo
tar un grado. Por seguridad, se pueden hacer giros mximos en pitch y roll de 10
a
a
grados
La gura 5.8 muestra la interfaz de usuario de la aplicacin. Es una interfaz sencilla,
o
ya que la mayor del control se hace con el movimiento.
a
Al centro de la pantalla se pueden ver los valores actuales de las mediciones de los
sensores a bordo del veh
culo. Tambin se encuentra el botn de apagado y encendido
e
o
Cinvestav

Departamento de Computacin
o

66 5.3. AJUSTE DE PARAMETROS DEL PID CON EVOLUCION


DIFERENCIAL
de los motores.

Figura 5.8: Interfaz de la aplicacin de control en tierra.


o
A la izquierda de la pantalla se encuentran dos barras, las cuales sirven para ajustar el valor de referencia del control de altura y la variable Gas. El botn blockalt
o

sirve para habilitar o inhabilitar las barras. Esto es util para evitar hacer cambios

accidentales en esos valores.


El botn autoAlt activa o desactiva el control automtico de altura. Si est deso
a
a
activado, el control manual de altura se hace modicando los valores en la barra de
Gas.
A la derecha de la pantalla se encuentran los botones pitchRoll y yaw. Cuando el
botn pitchRoll est activado, la rotacin en los ejes x y y de la tableta modican
o
a
o
los valores de referencia de pitch y roll del veh
culo. Cuando est desactivado, los
a
valores de referencia se ajustan a cero grados y el movimiento de la tableta no afecta
al cuadricptero. Lo mismo sucede con el botn yawque slamente modica los
o
o
o
valores de referencia cuando est activado.
a

5.3.

Ajuste de parmetros del PID con evolucin


a
o
diferencial

Para el ajuste de parmetros del controlador PID se implement el algoritmo de


a
o
evolucin diferencial en la computadora a bordo del veh
o
culo, pero adems se desaa
Cinvestav

Departamento de Computacin
o


CAP
ITULO 5. IMPLEMENTACION DEL SOFTWARE 67
rrollo una aplicacin cliente en Python y Qt para la captura de datos, supervisin y
o
o
control del estado de la evolucin.
o
Como se mencion en el cap
o
tulo 3, el problema de ajuste de parmetros se separ en
a
o
dos: ajuste de parmetros de altura y ajuste de parmetros de postura. La estructura
a
a
de los dos programas es la misma, con la diferencia de que los parmetros de entraa
da son de diferente longitud, se afecta a diferentes controladores PID, la funcin de
o
desempeo de los individuos es distinta y el criterio de paro es de menos generaciones
n
en el control de altura.
A continuacin se describir ms a detalle el desarrollo de estas aplicaciones.
o
a a

5.3.1.

Evolucin diferencial en computadora a bordo


o

Esta fue escrita en C y es la encargada de encontrar los parmetros adecuados para


a
un correcto funcionamiento de los controladores PID.
Como se detall en el cap
o
tulo 3, el algoritmo de evolucin diferencial se basa en tener
o
una poblacin de individuos, que por medio de mutacin y recombinacin se crean
o
o
o
nuevas generaciones mejores que las anteriores, todo esto con base en una funcin de
o
desempeo.
n
Los individuos de postura y altura se denen de la siguiente manera:
postura : X = [kP , kI , kD , kP , kI , kD , kP , kI , kD ] R9 ,

(5.1)

altura : X = [kPz , kIz , kDz ] R3 ,

(5.2)

donde:
kP en , , , z son las constantes proporcionales de los controladores de pitch, roll,
yaw y altura.
kI en , , , z son las constantes integrales de los controladores de pitch, roll, yaw y
altura.
kD en , , , z son las constantes derivativas de los controladores de pitch, roll, yaw
y altura.

Los l
mites superior e inferior de sus posibles valores, se encontraron experimentalmente, utilizando el programa de conguracin en la computadora.
o
Tomando estos vectores y usando una poblacin de 30 individuos se puede iniciar el
o
proceso de evolucin diferencial.
o
Las guras 5.9, 5.10 y 5.11 muestran el diagrama de ujo de la aplicacin. En este
o
diagrama no aparecen, pero tambin existen los hilos de control de postura, altue
ra y servidor descritos en la aplicacin de control a bordo. El sistema de memoria
o
compartida tambin es el mismo.
e
El programa comienza en el hilo principal (gura 5.9), el cual espera una peticin
o
Cinvestav

Departamento de Computacin
o

68 5.3. AJUSTE DE PARAMETROS DEL PID CON EVOLUCION


DIFERENCIAL
de conexin del cliente. Al conectarse el cliente (programa de control de evolucin dio
o
ferencial de la computadora), la aplicacin espera una seal de inicio para comenzar
o
n
el algoritmo de evolucin diferencial.
o
El primer paso es inicializar la poblacin. La gura 5.11 muestra el diagrama de ujo
o
de esta funcin. Un individuo es generado aleatoriamente, dentro de los l
o
mites especicados. Despus de eso se actualizan los valores obtenidos (nmero de individuo,
e
u
generacin, parmetros) en la memoria compartida para que el cliente pueda leer los
o
a
datos. Una vez que los datos son le
dos por el cliente, se evala el individuo generado
u
para determinar su aptitud. Esta variable tambin se pasa a la memoria compartida
e
y el algoritmo se detiene de nuevo hasta que el cliente la lea. Todo sto se repite hasta
e
formar la primera poblacin de treinta individuos.
o
A continuacin, es necesario crear otra serie de individuos temporales para que como
pitan con aquellos recin creados. Primero se eligen al azar tres padres de la poblacin
e
o
actual, el individuo temporal es generado mediante los procesos de mutacin y reo
combinacin explicados anteriormente. Los valores obtenidos son actualizados en la
o
memoria temporal y se espera a que el cliente los lea. Despus, se obtiene la aptitud
e
del individuo temporal por medio de la funcin de desempeo y una vez ms, espera
o
n
a
a que el cliente la lea.
El nuevo individuo, de la siguiente generacin, se obtiene comparando las aptitudes
o
de los individuos temporal y de la generacin actual. El que tenga la mejor aptitud
o
(valor ms cercano a cero) es el que domina y gana la nueva posicin.
a
o
Al terminar de hacer esta seleccin con toda la poblacin, se determina el mejor y
o
o
peor individuo de la generacin, para luego esperar a que el cliente lea estas variao
bles. Este proceso se hace para doscientas generaciones, que es cuando el algoritmo
se detiene y toma como resultado al mejor individuo obtenido.
La forma de evaluacin de un individuo se muestra en el diagrama de ujo de la gura
o
5.11. Esta funcin toma al individuo como parmetro, est individuo (constantes proo
a
e
porcional, integral y derivativa) se carga al controlador PID del veh
culo. El veh
culo
se enciende por 10 segundos, mientras la seal de error de los ngulos o de altura
n
a
(segn sea evolucin de postura o altura) es muestreada y guardada en un vector. Al
u
o
terminar de hacer el muestreo, el controlador del veh
culo se apaga y se determina la
aptitud del individuo segn la funcin de desempeo, que toma como parmetros las
u
o
n
a
seales de los errores.
n
Recordando el cap
tulo 3, la funcin de desempeo para la evolucin diferencial de
o
n
o
postura es:

59

999

1
|e (ti )0.0166i|+|e (ti )0.0166i|+|e (ti )0.0166i|+
|e (ti )|+|e (ti )|+|e (ti )|,
3 i=60
i=0
(5.3)
y para la evolucin diferencial de altura:
o

1
f (X) =
3

Cinvestav

Departamento de Computacin
o


CAP
ITULO 5. IMPLEMENTACION DEL SOFTWARE 69

Figura 5.9: Diagrama de ujo de ED en computadora a bordo, parte 1.

f (X) =
i=0

99

|ez (ti ) 0.1i| +

i=10

|ez (ti )|.

(5.4)

donde: e , e , e y ez son los errores de la posicin del veh


o
culo con respecto a los
valores de referencia en el instante de tiempo i.
Las evaluaciones de los individuos se hacen con el veh
culo montado en las estructuras de prueba descritas en el cap
tulo 4. En la gura 5.12 se puede ver, a la izquierda,
la estructura para hacer las pruebas de la evolucin de postura y, a la derecha, la
o
Cinvestav

Departamento de Computacin
o

70 5.3. AJUSTE DE PARAMETROS DEL PID CON EVOLUCION


DIFERENCIAL

Figura 5.10: Diagrama de ujo de ED en computadora a bordo, parte 2.


estructura de pruebas de la evolucin de altura.
o

5.3.2.

Control de evolucin diferencial en computadora


o

Esta aplicacin se desarroll con el n de tener una interfaz de control y seguimiento


o
o
del algoritmo de evolucin diferencial ejecutado en la computadora a bordo. A travs
o
e
Cinvestav

Departamento de Computacin
o


CAP
ITULO 5. IMPLEMENTACION DEL SOFTWARE 71

Figura 5.11: Diagrama de ujo de ED en computadora a bordo, parte 3.


de ella se puede iniciar o detener el proceso, as como visualizar y guardar los datos

generados.
La gura 5.13 muestra la interfaz grca para la evolucin de postura. En la esquina
a
o
superior izquierda de la ventana se muestran los datos del individuo actual: el nmero
u
de individuo, la generacin y los parmetros que se estn evaluando. Al trmino de
o
a
a
e
cada evaluacin se muestra la aptitud obtenida.
o
En la misma columna, un poco ms abajo, se encuentran los botones de inicio (>) y
a
pausa (||) de la evolucin. Estos son necesarios para detener y reiniciar la evaluacin
o
o
del veh
culo en caso de que sea necesario.
El resto de la interfaz consta de dos grcas: al fondo est la grca de las seales de
a
a
a
n
errores en pitch, roll y yaw, que va actualizando los datos segn se van produciendo
u
en el cuadricptero. En la parte de arriba est la grca de las evaluaciones, donde se
o
a
a
van gracando las aptitudes de los mejores y peores individuos de cada generacin,
o
as como tambin la mediana. Est grca sirve para conocer el avance de la evolucin

e
a a
o
Cinvestav

Departamento de Computacin
o

72 5.3. AJUSTE DE PARAMETROS DEL PID CON EVOLUCION


DIFERENCIAL

Figura 5.12: Estructuras para las pruebas de evolucin diferencial de postura y altura
o
del cuadricptero.
o
diferencial y determinar si el algoritmo est convergiendo.
a

Figura 5.13: Interfaz de usuario de la aplicacin de evolucin diferencial en la compuo


o
tadora.
Esta aplicacin adems genera cuatro archivos de texto donde guarda los datos
o
a
Cinvestav

Departamento de Computacin
o


CAP
ITULO 5. IMPLEMENTACION DEL SOFTWARE 73
generados por el control a bordo del veh
culo. El primer archivo guarda los parmea
tros de todos los individuos evaluados, hayan sido seleccionados o no. En otro par
de archivos, se guardan los parmetros de los mejores y peores individuos de cada
a
generacin. En el cuarto archivo se guardan los valores de las aptitudes de los mejores
o
y peores individuos, adems de la mediana de cada generacin.
a
o
La gura 5.14 muestra el diagrama de ujo de la aplicacin. Al iniciar el programa,
o
hace la conexin con el servidor (cuadricptero) y env la seal de inicio para que
o
o
a
n
comience la evolucin diferencial. Despus, lee los parmetros del primer individuo
o
e
a
a evaluar (nmero de individuo, generacin y constantes PID), env la seal de reu
o
a
n
cibido al servidor para que comience la evaluacin y espera a que sta termine de
o
e
ejecutarse.
En el mismo tiempo de espera, lee las seales de error que van siendo generadas por
n
el veh
culo durante la evaluacin y se gracan en la interfaz de usuario.
o
Al terminar la evaluacin, hace una pausa de 1.5 segundos para que el veh
o
culo detenga su movimiento y lee la aptitud resultante del individuo evaluado. Ya teniendo
los datos completos del individuo, stos se guardan en un archivo de texto para su
e
posterior procesamiento.
En el siguiente paso, verica si el usuario ha presionado el botn de pausa. Si lo hizo,
o
el programa se mantiene esperando a que el botn de reinicio sea presionado, mano
teniendo al cuadricptero detenido. Si no lo hizo, el programa contina su ejecucin
o
u
o
normal.
Este ciclo de lectura-evaluacin-lectura de individuos se hace hasta completar una
o
generacin, que es cuando se guardan en los otros tres archivos los mejores y peores
o
individuos; as como las aptitudes peores, mejores y la mediana de de la generacin.

o
El programa contina hasta que se haya satisfecho la condicin de paro, que es la
u
o
evaluacin de doscientas generaciones de individuos.
o

5.3.3.

Resultados de la ejecucin de la evolucin diferencial


o
o

Despus de varias corridas del algoritmo de evolucin diferencial para el control


e
o
de postura y de altura, nos pudimos dar cuenta de que en pocas generaciones ya se
obtiene un individuo sucientemente bueno. Aunque sto puede tardar algunas horas
e
debido a que cada evaluacin tarda 10 segundos.
o
La gura 5.15 muestra la grca de las aptitudes de los mejores y peores individuos
a
de la evolucin de postura, as como la mediana de cada generacin evaluada.
o

o
Se puede notar que, en las primeras generaciones, los valores de las aptitudes de
los individuos son muy diferentes, pero conforme se va realizando la evolucin estos
o
empiezan a converger a un slo valor. A partir de la generacin 90, los valores mejor,
o
o
peor y mediana se mantienen estables hasta que llega la condicin de paro (200
o
generaciones).
La evaluacin de las doscientas generaciones de individuos tom alrededor de 19
o
o
horas, aunque encontrar un individuo sucientemente bueno tom menos de la mitad
o
Cinvestav

Departamento de Computacin
o

74 5.3. AJUSTE DE PARAMETROS DEL PID CON EVOLUCION


DIFERENCIAL

Figura 5.14: Diagrama de ujo de la aplicacin de control de ED en computadora.


o
del tiempo.
La gura 5.16 muestra la grca de aptitudes de los individuos de control de ala
tura. Para la ejecucin de este algoritmo se requiere de supervisin humana, por lo
o
o
que slo se hicieron evaluaciones de 39 generaciones. Sin embargo, puede verse una
o
estabilizacin de las aptitudes a partir de la generacin 28.
o
o
El tiempo de evaluacin de las 39 generaciones fue de alrededor de 4 horas.
o

Cinvestav

Departamento de Computacin
o

500

1000

1500

2000

2500

3000

3500

4000

4500

5000

5500

10

20

30

40

50
Generacion

60

Evaluaciones de ED de postura

70

80

Mejor individuo
Mediana
Peor individuo

90

100

CAP
ITULO 5. IMPLEMENTACION DEL SOFTWARE 75

Aptitud

Figura 5.15: Grca de evaluaciones de individuos de control de postura.


a
Cinvestav

Departamento de Computacin
o

100

200

300

400

500

600

700

800

10

15

20
Generacion

25

Evaluaciones de ED de altura

30

35

Mejor individuo
Mediana
Peor individuo

40

76 5.3. AJUSTE DE PARAMETROS DEL PID CON EVOLUCION


DIFERENCIAL

Aptitud

Figura 5.16: Grca de evaluaciones de individuos de control de altura.


a
Cinvestav

Departamento de Computacin
o

Cap
tulo 6
Conclusiones y trabajo a futuro
En este trabajo de tesis se diseo e implement un sistema de control para un
n
o
cuadricptero. Se diseo el control automtico de postura y altura, basndose en cono
n
a
a
troladores PID, utilizando evolucin diferencial para el ajuste de sus parmetros. El
o
a
sistema a bordo fue implementado en una placa computadora con el sistema operativo
Linux y Xenomai, mientras que el control en tierra se hizo con una computadora en
tableta con Android.
En general, los resultados obtenidos fueron buenos, cumpliendo con los objetivos propuestos. A continuacin, se expondrn las conclusiones generadas en diferentes partes
o
a
del proyecto, as como el trabajo a futuro.

6.1.

Conclusiones

Linux embebido
El uso de una computadora a bordo con Linux embebido fue de gran ayuda en el
desarrollo del proyecto, ya que adems de contar con bastantes recursos, como memoa
ria RAM y velocidad de procesamiento, se tienen las ventajas inherentes del sistema
operativo como: manejo de varios procesos a la vez, herramientas de red, manejo de

archivos, abstraccin entre el hardware y el software de aplicacin, etctera. Esto


o
o
e
llev al desarrollo de programas ms portables, lo que facilitar la actualizacin del
o
a
a
o
hardware cuando sea necesario.
Los contras que se pudieron encontrar, son que se requiere ms esfuerzo, tiempo y
a
conocimiento para poner el sistema en funcionamiento, que utilizando un microcontrolador convencional, adems de que un software complejo es ms propenso a contener
a
a
errores, algo que puede ser cr
tico al usar veh
culos areos.
e
77

78 6.2. TRABAJO A FUTURO


Control automtico y evolucin diferencial
a
o
El ajuste de parmetros de los controladores PID con evolucin diferencial dio
a
o
buenos resultados, especialmente en el control de postura. El control de altura es
bueno cuando el cuadricptero est en postura horizontal, pero llega a tener muchas
o
a

variaciones con respecto a su valor de referencia cuando se inclina el veh


culo. Esto es
debido a que el sensor ultrasnico tambin se inclina y mide diferentes distancias. An
o
e
u
as el control fue sucientemente bueno para manipular el veh
,
culo con facilidad.
Otro problema con el control de altura es que, mientras la carga de la bater va
a
disminuyendo se empieza a perder altura, por lo que es necesario modicar la variable
Gas manualmente para aumentar la potencia.
Computadora en tableta como control en tierra y comunicaciones
El uso de una computadora en tableta como control en tierra demostr ser muy
o
ecaz. La forma y tamao de estos dispositivos los hace fciles de manipular en amn
a
bientes exteriores, por lo que pueden ser transportadas a zonas de dif acceso.
cil
Adems, su rica variedad en recursos de hardware (pantalla tctil, acelermetros, gia
a
o
roscpios, magnetmetros, comunicacin inalmbrica, etc.), ayuda a crear aplicacioo
o
o
a
nes mucho ms intuitivas, haciendo el control del veh
a
culo ms sencillo que utilizando
a
controles remotos convencionales.
El uso de Wi-Fi como medio de comunicacin entre la tableta y el cuadricptero
o
o
fue ventajoso, debido a que ambas computadoras cuentan con adaptadores de red
inalmbrica integrados. Sin embargo, el alcance de este tipo de redes es limitado,
a
por lo que para aplicaciones donde se requiera una navegacin en espacios mayores
o
deber utilizarse otro sistema.
a
Tolerancia a fallos
Un error del sistema cuando el veh
culo est en pleno vuelo usualmente lleva a
a
accidentes, por lo que ste debe estar diseado para recuperarse de los problemas que
e
n
puedan surgir.
El sistema diseado incluy un botn de paro de emergencia y en etapas de prueba
n
o
o
en laboratorio se diseo hardware espec
n
co para esta tarea. Sin embargo, an hay
u
mucho trabajo por hacer para mejorar la respuesta a fallos.
Durante la realizacin de este proyecto ocurrieron dos accidentes, uno con la prdida
o
e
total del veh
culo. Es por eso que en investigaciones futuras se pondr especial nfasis
a
e
en este tema.

6.2.

Trabajo a futuro

A continuacin, se mencionan algunas propuestas de trabajo a futuro para que el


o
sistema pueda ser utilizado en problemas del mundo real.
Cinvestav

Departamento de Computacin
o

CAP
ITULO 6. CONCLUSIONES Y TRABAJO A FUTURO 79
Hacer pruebas con controladores no lineales. Los controladores PID dieron buenos resultados en el control del cuadricptero pero, debido a que se pretende
o
usarlo en exteriores, un control no lineal podr ser ms apropiado para tener
a
a
una mayor robustez contra cambios en el clima, como rfagas de viento. Un
a
sistema de control neuro-difuso podr resultar ventajoso.
a
Transmisores-receptores inalmbricos con mayor alcance. Se pretende utilizar
a
los mdulos inalmbricos Xbee-pro, que tienen rangos de alcance de hasta 1
o
a
kilmetro. Para eso se deber disear una interfaz para acoplar estos dispositivos
o
a
n
con la computadora en tableta.
Mejorar el control de altura. Agregar otros tipos de sensores como barmetros
o
y lser ayudar a controlar el veh
a
a
culo a mayores alturas.
Planicacin de trayectorias. Lograr la planeacin de trayectorias requerir del
o
o
a
control automtico de la posicin, por lo que habr que agregar un GPS al
a
o
a
sistema, entre otros sensores para la evasin de obstculos.
o
a
Despegue y aterrizaje automticos.
a
Sistema tolerante a fallos. Se requerirn ajustes en software y hardware para
a
lograr una mayor tolerancia a fallos.
Visin por computadora. Aplicar algoritmos de visin y procesamiento de imgeo
o
a
nes puede ayudar a mejorar el desempeo del veh
n
culo, as como tambin puede

e
ser util para el sistema de instrumentacin.

Cinvestav

Departamento de Computacin
o

80 6.2. TRABAJO A FUTURO

Cinvestav

Departamento de Computacin
o

Bibliograf
a
[Al-Younes and Jarrah, 2008] Al-Younes, Y. and Jarrah, M., Attitude stabilization of
quadrotor uav using backstepping fuzzy logic & backstepping least-mean-square
controllers, in Mechatronics and Its Applications. ISMA 2008. 5th International
Symposium on, IEEE, pp. 111, Amman, Jordan, May 2008.
[Austin, 2010] Austin, R., Unmanned Air Systems: UAV Design, Development and
Deployment, Wiley, Hoboken, NJ, USA, 2010.
[Bai et al., 2011] Bai, H., Shao, S. and Wang, H., A vtol quadrotor platform for multiuav path planning, in Electronic and Mechanical Engineering and Information
Technology (EMEIT), 2011 International Conference on, IEEE, pp. 30793081,
Heilongjiang, China, August 2011.
[Barnhart et al., 2011] Barnhart, R., Shappee, E., Marshall, D. et al., Introduction to
Unmanned Aircraft Systems, CRC Press, Boca Raton, FL, USA, 2011.
[Berni et al., 2009] Berni, J., Zarco-Tejada, P., Surez, L. and Fereres, E., Thermal
a
and narrowband multispectral remote sensing for vegetation monitoring from an
unmanned aerial vehicle, in Geoscience and Remote Sensing, IEEE Transactions
on, IEEE, pp. 722738, Ann Arbor, MI, USA, March 2009.
[Bouhali and Boudjedir, 2011] Bouhali, O. and Boudjedir, H., Neural network control
with neuro-sliding mode observer applied to quadrotor helicopter, in Proc. Int
Innovations in Intelligent Systems and Applications (INISTA) Symp, IEEE, pp.
2428, Istanbul, Turkey, June 2011.
[Castillo et al., 2005] Castillo, P., Lozano, R. and Dzul, A., Modelling and control of
mini-ying machines, Springer-Verlag New York Inc, New York, NY, USA, 2005.
[DoD, 2002] DoD, Unmanned Aerial Vehicles Roadmap 2002 - 2027, Occe of the Under Secretary of Defense for Acquisition Technology and Logistics, Washington
DC, USA, 2002.
[Donahoo and Calvert, 2009] Donahoo, M. and Calvert, K., TCP/IP sockets in C:
practical guide for programmers, Morgan Kaufmann Pub, Burlington, MA, USA,
2009.
81

82 BIBLIOGRAF
IA
[Eiben and Smith, 2008] Eiben, A. and Smith, J., Introduction to evolutionary computing, springer, New York, NY, USA, 2008.
[Fowers et al., 2007] Fowers, S., Lee, D., Tippetts, B., Lillywhite, K., Dennis, A. and
Archibald, J., Vision aided stabilization and the development of a quad-rotor
micro uav, in Computational Intelligence in Robotics and Automation. CIRA
2007. International Symposium on, IEEE, pp. 143148, Jacksonville, FL, USA,
June 2007.
[Ghadiok et al., 2011] Ghadiok, V., Goldin, J. and Ren, W., Autonomous indoor
aerial gripping using a quadrotor, in Intelligent Robots and Systems (IROS).
IEEE/RSJ International Conference on, IEEE, pp. 46454651, San Francisco,
CA, USA, September 2011.
[Goela et al., 2009] Goela, R., Shahb, S., Guptac, N. and Ananthkrishnanc, N., Modeling, simulation and ight testing of an autonomous quadrotor, in Proceedings
of the IISc Centenary International Conference and Exhibition on Aerospace
Engineering, ICEAE, pp. 1822, Bangalore, India, May 2009.
[Hafner et al., 2010] Hafner, V., Bachmann, F., Berthold, O., Schulz, M. and Mller,
u
M., An autonomous ying robot for testing bio-inspired navigation strategies, in
Robotics (ISR), 2010 41st International Symposium on and 2010 6th German
Conference on Robotics (ROBOTIK), VDE, pp. 17, Munich, Germany, June
2010.
[Hallinan, 2010] Hallinan, C., Embedded Linux primer: a practical, real-world approach, Pearson Education, Boston, MA, USA, 2010.
[Hong et al., 2005] Hong, W., Lee, J., Rai, L. and Kang, S., Rt-linux based hard realtime software architecture for unmanned autonomous helicopters, in Embedded
and Real-Time Computing Systems and Applications. Proceedings. 11th IEEE
International Conference on, IEEE, pp. 555558, Hong Kong, China, August
2005.
[Johnson et al., 2005] Johnson, M., Moradi, M. and Crowe, J., PID control: new identication and design methods, Springer Verlag, New York, NY, USA, 2005.
[Kira, 2009] Kira, Z., Transferring embodied concepts between perceptually heterogeneous robots, in Intelligent Robots and Systems. IROS 2009. IEEE/RSJ International Conference on, IEEE, pp. 46504656, St. Louis, MO, USA, October
2009.
[Kirli et al., 2010] Kirli, A., Omurlu, V., Buyuksahin, U., Artar, R. and Ortak, E.,
Self tuning fuzzy pd application on ti tms320f28335 for an experimental stationary
quadrotor, in Education and Research Conference (EDERC), 2010 4th European,
IEEE, pp. 4246, Nice, France, December 2010.
Cinvestav

Departamento de Computacin
o

BIBLIOGRAF 83
IA
[Kuo, 2003] Kuo, B.C., Automatic control systems, Wiley, Hoboken, NJ, USA, 2003.
[Lendek et al., 2011] Lendek, Z., Berna, A., Guzmn-Gimnez, J., Sala, A. and
a
e
Garc P., Application of takagi-sugeno observers for state estimation in a quaa,
drotor, in Decision and Control and European Control Conference (CDC-ECC).
50th IEEE Conference on, IEEE, pp. 7530 7535, Orlando, FL, USA, December
2011.
[Li and Li, 2011] Li, J. and Li, Y., Dynamic analysis and pid control for a quadrotor,
in Proc. Int Mechatronics and Automation (ICMA) Conf, IEEE, pp. 573578,
Beijing, China, August 2011.
[Maranhao and Alsina, 2009] Maranhao, D. and Alsina, P., Project of a hardware and
software architecture for an unmanned aerial vehicle, in Robotics Symposium
(LARS), 2009 6th Latin American, IEEE, pp. 16, Valparaiso, Chile, October
2009.
[Meier, 2012] Meier, R., Professional Android 4 application development, Wrox, Indianapolis, IN, USA, 2012.
[Naidoo et al., 2011] Naidoo, Y., Stopforth, R. and Bright, G., Development of an uav
for search & rescue applications, in AFRICON, 2011, IEEE, pp. 16, Livingstone,
September 2011.
[Nonami et al., 2010] Nonami, K., Kendoul, F., Suzuki, S., Wang, W. and Nakazawa, D., Autonomous Flying Robots: Unmanned Aerial Vehicles and Micro Aerial
Vehicles, Springer, New York, NY, USA, 2010.
[Ogata, 1997] Ogata, K., Modern control engineering, Prentice Hall, Upper Saddle
River, NJ, USA, 1997.
[Price et al., 1997] Price, K., Storn, R. and Lampinen, J., Dierential evolution,
Springer, New York, NY, USA, 1997.
[Puls et al., 2009] Puls, T., Kemper, M., Kuke, R. and Hein, A., Gps-based position
control and waypoint navigation system for quadrocopters, in Intelligent Robots
and Systems, 2009. IROS 2009. IEEE/RSJ International Conference on, IEEE,
pp. 33743379, St. Louis, MO, USA, October 2009.
[Raharijaona and Bateman, 2011] Raharijaona, T. and Bateman, F., Robust control
for an o-centered quadrotor, in Control & Automation (MED), 2011 19th Mediterranean Conference on, IEEE, pp. 12531258, Corfu, Greece, June 2011.
[Raza and Gueaieb, 2010] Raza, S.A. and Gueaieb, W., Intelligent ight control of
an autonomous quadrotor, in Motion Control, pp. 245264, IN-TECH, Rijeka,
Croatia, 2010.
Cinvestav

Departamento de Computacin
o

84 BIBLIOGRAF
IA
[Santos et al., 2010] Santos, M., Lpez, V. and Morata, F., Intelligent fuzzy controller
o
of a quadrotor, in Intelligent Systems and Knowledge Engineering (ISKE), 2010
International Conference on, IEEE, pp. 141146, Hangzhou, China, November
2010.
[Ulbrich et al., 2011] Ulbrich, P., Kapitza, R., Harkort, C., Schmid, R. and Schrdero
Preikschat, W., I4copter: An adaptable and modular quadrotor platform, in Proceedings of the 2011 ACM Symposium on Applied Computing, ACM, pp. 380
386, TaiChung, Taiwan, March 2011.
[Visioli, 2006] Visioli, A., Practical PID control, Springer Verlag, New York, NY,
USA, 2006.
[Wilson, 2005] Wilson, J., Sensor technology handbook, Elsevier, Oxford, UK, 2005.
[Xiang and Tian, 2011] Xiang, H. and Tian, L., Development of a low-cost agricultural remote sensing system based on an autonomous unmanned aerial vehicle
(uav), in Biosystems Engineering, Elsevier, pp. 174190, Champaign, USA, February 2011.
[Yaghmour et al., 2008] Yaghmour, K., Masters, J., Ben-Yossef, G. and Gerum, P.,
Building embedded Linux systems, OReilly Media, Sebastopol, CA, USA, 2008.

Cinvestav

Departamento de Computacin
o

You might also like