Professional Documents
Culture Documents
UNIDAD ZACATENCO
DEPARTAMENTO DE COMPUTACION
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
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
19
24
. . . . . . . . . . . . . . . . . . .
27
3.3. Ajuste de parmetros del controlador PID por medio de evolucin dia
o
ferencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
28
29
32
35
35
. . . . . . . . . . . . . . . . . . . . . . . .
37
4.2.1. Controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
4.2.2. Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
4.2.3. Motores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
42
4.2.5. Comunicaciones . . . . . . . . . . . . . . . . . . . . . . . . . .
42
4.2.6. Energ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
a
43
44
46
48
55
55
55
5.1.2. Xenomai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
5.1.3. Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
58
59
63
64
66
67
70
73
INDICE GENERAL
xi
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.
16
18
19
20
20
22
23
25
26
27
36
36
37
xiii
14
14
15
xiv
INDICE DE FIGURAS
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
1.2.
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
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.
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
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].
Departamento de Computacin
o
CAP
ITULO 2. CUADRICOPTERO 7
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
2.1.4.
Aplicaciones
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
pular. Este intenta alcanzar una suspensin en el aire estable y vuelos precisos, bao
lanceando las fuerzas producidas por sus cuatro rotores.
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.5:
Cuadricptero
o
[Raza and Gueaieb, 2010].
diseado
n
por
George
De
Bothezat
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
f4
Motor 1
izquierda
roll
pitch
+
B
Motor 4
f3
f2
x
derecha
y
z
+
yaw
Motor 2
z
atras
x
Motor 3
T
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
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
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.
14 3.1. INTRODUCCION A LOS SISTEMAS DE CONTROL
Objetivos
Sistema
de
control
Resultados
3.1.1.
Controlador
Proceso
controlado
3.1.2.
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].
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
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
(3.1)
u(t) = ki
e( )d
(3.2)
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)
uc (t) = kP e(t) + kI
3.1.4.
e( ) d + kD
de
.
dt
(3.4)
uc (t) = kP e(t) + kI
e( ) d + kD
de
.
dt
(3.5)
e( ) d =
e(ti )t,
(3.6)
i=1
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)
u(tk ) = KP e(tk ) + kI
e(ti )t + KD
i=1
3.2.
e(tk ) e(tk1 )
.
t
(3.8)
rx,y,z,,,
ex,y,z,,,
ux,y,z,,,
uv1,v2,v3,v4
yx,y,z,,,
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
u,.
uv1,v2.v3.v4
, , , , ,
y,,
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
r (tk )
e (tk )
kI
k
i=1 e (ti )t
uP (tk )
kP e (tk )
uI (tk )
ux,y,z,,
u (tk )
v1 , v3
y (tk )
k , k
uD (tk )
kD k
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)
uI (tk ) = kI
e (ti )t,
(3.11)
i=1
uD (tk ) = KD (tk ),
(3.12)
i=1
Departamento de Computacin
o
22 3.2. CONTROL DEL CUADRICOPTERO
(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 )
v2 , v4
y(tk )
k , k
uD (tk )
kD k
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 .
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
uP (tk )
kP e (tk )
r (tk )
e (tk )
kI
uI (tk )
k
e (ti)t
i=1
ux,y,z,,
u (tk )
v1 , v2 , v3 , v4
y (tk )
k , k
uD (tk )
k D k
Departamento de Computacin
o
24 3.2. CONTROL DEL CUADRICOPTERO
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 .
(3.18)
(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
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
Departamento de Computacin
o
CAP
ITULO 3. CONTROL DEL CUADRICOPTERO 25
xy
r
u,,
uv1,v2,v3,v4
ez
rz
y,,,z
uz
(3.20)
ez (ti )t,
(3.21)
i=1
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
uz (tk )
zk
yz (tk )
zk
kDz (ez (tk )ez (tk1))
t
uDz (tk )
ez (tk ) ez (tk1)
,
t
(3.22)
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
(3.24)
(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.
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
(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)
(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.
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.
3.3.1.
Algoritmos evolutivos
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
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)
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 =
(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
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 =
(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.
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
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)
(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
i=10
(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
4.1.
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
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
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.
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
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
Departamento de Computacin
o
CAP
ITULO 4. IMPLEMENTACION DEL HARDWARE 39
4.2.2.
Sensores
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:
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
4.2.4.
Interfaz de potencia
4.2.5.
Comunicaciones
Departamento de Computacin
o
CAP
ITULO 4. IMPLEMENTACION DEL HARDWARE 43
4.2.6.
Energ
a
Departamento de Computacin
o
44 4.2. DESCRIPCION DEL HARDWARE
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
.
Departamento de Computacin
o
CAP
ITULO 4. IMPLEMENTACION DEL HARDWARE 45
Departamento de Computacin
o
46 4.2. DESCRIPCION DEL HARDWARE
La tablilla ya construida puede verse en las guras 4.15 y 4.16.
4.2.8.
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
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
4.3.
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
i2 c
ic
Figura 4.22: Diagrama del hardware del sistema de control del cuadricptero.
o
Cinvestav
Departamento de Computacin
o
Motor 2
Motor 3
Manejadores
Motor 4
Motor 1
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
UMI
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
Alimentacion
Conector usb
a la computadora
Sensor
ultrasonico
Convertidor
USBserial
Concentrador usb
Cinvestav
Departamento de Computacin
o
CAP
ITULO 4. IMPLEMENTACION DEL HARDWARE 53
Concentrador USB
Computadora e IMU
Sensor ultrasonico
Cinvestav
Departamento de Computacin
o
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
5.1.1.
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
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.
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
5.2.1.
Controlador a bordo
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
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
o
culo.
Cinvestav
Departamento de Computacin
o
Comando
Enviar ultimos valores le
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
5.2.2.
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
5.2.3.
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
sirve para habilitar o inhabilitar las barras. Esto es util para evitar hacer cambios
5.3.
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.
(5.1)
(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
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
f (X) =
i=0
99
i=10
(5.4)
Departamento de Computacin
o
5.3.2.
Departamento de Computacin
o
CAP
ITULO 5. IMPLEMENTACION DEL SOFTWARE 71
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
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
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.
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
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
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
Aptitud
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
6.2.
Trabajo a futuro
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
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