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 implementaci´n de un sistema de control
n
o
para un cuadric´ptero.
o
Tesis que presenta
Antonio Pico Villalpando
Para Obtener el Grado de
Maestro en Ciencias
En
Computaci´n
o
Director de la Tesis
Dra. Xiaoou Li
Codirector de Tesis
Dr. Rogelio Lozano
M´xico, Distrito Federal
e

Diciembre, 2012

ii

Resumen
En d´cadas recientes, ha habido un gran inter´s en el estudio de veh´
e
e
ıculos a´reos
e
no tripulados (en ingl´s: UAVs o unmanned aerial vehicles), ya que han demostrado
e
ser una herramienta vers´til y de relativo bajo costo para un gran n´mero de aplicaa
u
ciones.
Los ultimos avances en la tecnolog´ han impulsado el desarrollo y la operaci´n de este
´
ıa
o
tipo de veh´
ıculos. Los nuevos sensores, microprocesadores y sistemas de propulsi´n,
o
son ahora m´s peque˜os, m´s ligeros y m´s capaces que nunca.
a
n
a
a
En este trabajo de tesis, construimos un veh´
ıculo a´reo de ala rotativa llamado cuae
dric´ptero 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
´
rob´tica.
o
El veh´
ıculo cuenta con una peque˜a computadora a bordo con Linux embebido y
n
Xenomai, una plataforma para dar soporte en tiempo real.
Dise˜amos el control autom´tico de postura y altura bas´ndonos en controladores
n
a
a
PID. Este tipo de controladores requiere de un ajuste fino de sus par´metros para su
a
correcto funcionamiento por lo que, viendo ´sto como un problema de optimizaci´n,
e
o
utilizamos el algoritmo de evoluci´n diferencial para hacer el mejor ajuste posible,
o
obteniendo resultados positivos.
El cuadric´ptero puede comunicarse con una computadora (usada para configuraci´n
o
o
y apoyo en la evoluci´n diferencial) y una tablet-PC con Android, que sirve para el
o
´
control en tierra. Esto a trav´s de una red Wi-Fi.
e
Palabras clave: veh´
ıculos a´reos no tripulados, cuadric´ptero, evoluci´n 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 (UAV’s), 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 fine tuning of their parameters for proper operation, so
seeing this as an optimization problem, we use the differential evolution algorithm to
do the best possible fit, with positive results.
The quadcopter can communicate with a computer (used for configuration 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, differential evolution, PID control,
embedded systems.

v

vi

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

viii AGRADECIMIENTOS .

. . . . . .1.´ Indice general Agradecimientos VII Figures XI Tables 1. . . . . .1. . . . . . . . . . Historia . . . . . . .1. . . . . . . 1. . . . . . Sistemas de control en lazo abierto 3. . . Clasificaci´n . . . . . . . . Veh´ ıculos a´reos no tripulados e 2. . . . . 3. 2. . . . . . . . 1 1 2 2 3 4 . . . . . . . . . Trabajos relacionados . . . . . . . . . . . . . . . . . . . . . . . .5. . . . . . ix . . . .3.1. . Aplicaciones . Introducci´n o 1. 2. . . .1. . . . . . . . . . . . . . . .1. .1. .2. Planteamiento del problema 1. . . . . . . . . . . . . . . Controlador PID . . . . . . . . . Sistemas de control en lazo cerrado 3. . . . . . . . . . . . 5 5 6 7 8 8 9 10 11 . .1. . . . . . .1. . Organizaci´n del documento o XV . . . . . . . . . . .1. . . . . . . . Principio de operaci´n o . . . . 2. . o 3. . . . . Introducci´n a los sistemas de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . .1.2. 1. .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . .2. . . . . . . . Cuadric´ptero . . . . . . . . . . . . . . . . . . . . . . o 2. . . . . . . . .2. . . . . . . . . . . . . 3. . . . . . . Objetivos . Cuadric´ptero o 2. .2. . . . . . . . . . . . . . . . . o 2. . . . . . . . . . . . Controlador PID digitalizado . . . 2. . . . . . . . . . . . . . . . . . .1. . .4. . . . . . .2. . . 13 13 14 14 15 17 . Caracter´ ısticas . . . . o 1. . . 2. . . . . . . Historia . . Antecedentes y motivaci´n . . . .3. .4. . . . . . . . . . . . .4. . . . . .2. . Control del cuadric´ptero o 3. . . .

1. . . . . . .2. . .2. Controlador a bordo . . . . . . .2. o o 73 . . . . . . . . Construcci´n del cuadric´ptero . Algoritmos evolutivos . . 18 3. . . . . . . . . . . . . . . . . . . . . . . . Otras interfaces . . . . . . Aplicaci´n de configuraci´n en computadora .2. . . . . . . . .2. . .3. . 37 4. . . . . . . 27 3. Evoluci´n diferencial . . o o 48 5. . . . . . . . . . . .3. . . . . .3. . . . . . . . . . . .1.3. . . . 41 4. . . . . . . . . . . . o 24 3. . . . . . . . . Descripci´n del Hardware o .3. 64 5. . . . . . . .2. .1. . . . o 70 5. . . . . . . . . . . . . . . . . . . . . .1. . . . Ajuste de par´metros del controlador PID por medio de evoluci´n dia o ferencial . . . . . . . . . . . .2. . . a o 32 4. .2. . o o 58 5. Estructuras para pruebas del veh´ ıculo . . . . 42 4. . . .1. . . . . . . . Control de posici´n . Descripci´n general del sistema . . . . . . . . . . . .6. . .2. Implementaci´n del hardware o 35 4.4. . . . . . . 37 4. . . . .3. . . . . . . Comunicaciones . . o o 63 5. . . . . . . . . . . . . . . . . 58 5. . . 42 4. . . . ıa 43 4. . . . . Control y configuraci´n del cuadric´ptero . .1. . . Ajuste de par´metros del PID con evoluci´n diferencial . . . . . . . . .2. . . . . . . .3. . . . . Android . . . . . . . . o 29 3. . . . . . . 28 3. . . . . . . . . . . . . . . . . . . . . Linux y tiempo real . . . . . . . . . 19 3. .2. . . Controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sensores . . . . . . . . . . . . . . 59 5. . . . . . .3.2. . . . . . . Motores . . . . . . . . .3. . . . .2. 39 4. . . . . . . . . . . . . . . . . . . . . Evoluci´n diferencial en computadora a bordo . . . . . . . . . . . . . . .2.2. . .3.1. . . . . . . 28 3. . Plataformas de desarrollo . Control del cuadric´ptero o . . .2. . . . .2. . . . .3. . . . . . . . . Interfaz de potencia . . . . . . . . . . .3.5. . . . . .2. . . Ajuste de par´metros del controlador del cuadric´ptero . . . . . . . o 35 4. . . . . . . . . . Energ´ . . .1. . . . . . . . . . . . 46 4. . . . . . . .3. . .7. . . Xenomai .8. . . . . Implementaci´n del software o 55 5. . . 44 4. . .3. . . . . . . . . . . . . . . . . . . . . .2. . . . . . 57 5. . .1. . . . . . . . Control general del sistema . . a o 66 5. . . . . . .2. . . . .1. Control de evoluci´n diferencial en computadora . . . . . . .2. . . . . . .1. .3. . . . . . . . . . . . Resultados de la ejecuci´n de la evoluci´n diferencial . .2.´ INDICE GENERAL x 3.2. . o 67 5. 55 5. . . . Control en tierra con computadora en tableta . . . . . . . . . . . . . . . . . . . . . . . . . . Control de postura . . . . . 55 5. . . . . . . . . . . .

. . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . Trabajo a futuro . . . . 77 77 78 . . . . . . . . . . . . . .1. . . . . . . . . Conclusiones .´ INDICE GENERAL xi 6. . . . 6. Conclusiones y trabajo a futuro 6. . .

xii ´ INDICE GENERAL .

. . . . Diagrama del control de posici´n. Sistema de control a bordo del cuadric´ptero.9. . . . . .13. . . . . . e 6 Veh´ ıculo a´reo no tripulado de uso civil [Nonami et al. . . o 3.3. . . . . 2010]. o 4. . . . . .5.´ Indice de figuras 2. . . . . . . . . Sistema de comunicaci´n. . . .. . . . . . . . . . . . . . . .12. . Angulos θ. . . . .1. Elementos de un sistema de control en lazo cerrado. 11 o n Diagrama de un cuadrirotor. . . . Diagrama del control general del sistema. . . . o 9 Primer cuadric´ptero [Raza and Gueaieb. . . . 2. 3. . . y ψ determinan la postura del cuadric´ptero. . . .5. . . . . . . . . . . . . . . o 3. . . . . . . . . . . . . . . . Elementos de un sistema de control PID: (a) forma simb´lica y (b) o forma en el dominio del tiempo . . . . . . 16 18 19 20 20 22 23 25 26 27 4. . . . . . . . . . . . 2011]. . . .3. . 3. . o ´ 3. . . . . . . . . Diagrama del controlador PID de roll. . . . Diagrama del controlador PID de pitch. . . . . . Chasis del cuadric´ptero con motores. . . . .6. . Diagrama del controlador PID de yaw. . . . . . . . 3.8. . 3. . . . . Primer veh´ ıculo a´reo no tripulado [Barnhart et al. .. 2. . . . . . . Diagrama del controlador PID de altura.7. . . . . . . . . . . . . . . . . .3. . . . .10. . . . 2. . (d) diferencia en torque para manipular roll (φ). 2010]. (c) diferencia en torque para manipular pitch (θ). . o 36 36 37 xiii 14 14 15 . . .4. . . . .11. . . . . . .2. 10 o Cuadric´ptero dise˜ado por George De Bothezat [Raza and Gueaieb. . . φ. Componentes de un sistema de control. . 3. .8. . . . . . 2. . . . . . . . . 2010]. . . . .1. 3. . . . 12 3. . . . . . . 3. . (b) diferencia en a o torque para manipular yaw (ψ). . . . . .2. . 11 Din´mica de un cuadrirotor. . . . . . . . . . . . . . . . o 3. . .. . . . . . . . . . . . 2011]. 2. . . . 10 o n Cuadric´ptero dise˜ado por Œ hmichen en 1924 [Raza and Gueaieb. .4. . . . . . . Elementos de un sistema de control en lazo abierto. . . .1. . Diagrama del control de postura del cuadric´ptero. . o 4. . . . . . . Diagrama de control del cuadric´ptero. . 2010]. . . . . . . . . 3.7. . . . . 2. . . . . . . .6.2. . . . . (a) sustentaci´n y altura. . . . . . . . e 7 Cuadric´ptero [Ulbrich et al. 2. . . .

8. . .20. . . . . . . Tablilla del circuito regulador-traductor vista por abajo. . . . 4. . . o 4. . . . . . . . . . . . . . . . . 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 . . .19. . . . . . . . . . . . . . . . . . . . .29. . . 5. .14. . . . .13. . . . . Cuadric´ptero. . . .4. . Estructura de los paquetes de datos enviados entre el servidor y el cliente. . .11. . . . . Motor sin escobillas. . . 4. . . . 5. . . . . . . . .xiv ´ INDICE DE FIGURAS 4. . . .23. 4. . . . Placa del regulador-traductor de voltaje utilizada como base (vista inferior). . . . . . . . . . . . Hilo principal e hilo servidor de la aplicaci´n de control a bordo. . . . . . . . . . . . . .5. . . . . . . . . . . . . . . roll y yaw. . . . . Computadora montada sobre placa reguladora-traductora de voltaje. . Fuente de poder de una computadora. . . . .16.8. . . . . . . .17. . .7. . . . . . . 4.10. . . . . . 4. . . 4. . . . . . . . . . . . . . . 5. . . . . . . . . . . . . e 4. . . Tablilla del circuito regulador-traductor vista por arriba. . . . . Pivote para movimiento en pitch. . . . . . . . .28. . . Bater´ de litio pol´ ıa ımero de tres celdas. Veh´ ıculo con motores y manejadores de motores montados. . o 4. o o 5.2. . . . . . . .27. . . . . 4. . . . 4. . . . . . . 4. . . . Unidad de medici´n inercial CHR-6d de CH Robotics. . . . Manejador de motores sin escobillas. 4. . . . . a 4. . .18. . . . . .22. . . . . . . . .5. . . . . Hilos de control de postura y altura de la aplicaci´n de control a bordo. . Ruteador. . . . . . Computadora Gumstix. . . . . . . . . . . . . Interfaz de la aplicaci´n de control en tierra. . Convertidor USB a serial. . . . . . . . . . . . . . . o 4. . . . . . . 5. o 4. . . Computadora en tableta utilizada como control en tierra. . . . .6. . 4.9. . . . Diagrama del hardware del sistema de control del cuadric´ptero. . . .12. . . . . . . . . Diagrama esquem´tico del circuito regulador-traductor de voltaje. . . . . . . . . . .25. . . . . . . . . . .24. . . . . . . . . . . . . . . . . . . 4. . . . . . . . . Tripi´ para pruebas de control de postura. . . . . . . . . . . . 4. . . . . . o o 4. . . . . . El kernel de tiempo real (primario) tiene mayor prioridad que el kernel de Linux (secundario). .4. . . . . . . . . . . o 5. . . . 4. . . . Hilos b´sicos del software a bordo del veh´ a ıculo y memoria compartida. .26. . . . . . . . Gumstix montado en placa de expansi´n Summit. . . o 4. . Interfaz de usuario de la aplicaci´n de configuraci´n. . . Placas montadas en el cuadric´ptero. . o 5. . . . . . . . . . . . . . . Cuadric´ptero con carcasa de madera. . . . . . . . . . . . . . Concentrador USB (sin carcasa). . . . . . . . . .1. . . 4. . . . . . . . Base para pruebas de control de altura.3. . Sensor ultras´nico. . . . . . . . . o 5. . o 4. . . . Conexi´n del sensor ultras´nico. . . . . .15. . . Sistema de coordenadas de tableta y veh´ ıculo. . . 4. . . . . .6. . . . . . . . . . .7.21. .

. . . a 5. . Diagrama de flujo de la aplicaci´n de control de ED en computadora. . . . . 5. . . . a xv 69 70 71 72 72 74 75 76 . . . . Diagrama de flujo de ED en computadora a bordo. . . . . . . . . . . . Estructuras para las pruebas de evoluci´n diferencial de postura y alo tura del cuadric´ptero. o 5. . . . . 5. .13. .15. . . . . . . . 5.10. . . . . . . . . .9. . . . Gr´fica de evaluaciones de individuos de control de postura. . . . . . o 5. . . parte 1. . . .11. . . . . . . 5. . .´ INDICE DE FIGURAS 5. . . parte 2. . .16. . . . . . . . Diagrama de flujo de ED en computadora a bordo. .14. . . . . . Interfaz de usuario de la aplicaci´n de evoluci´n diferencial en la compuo o tadora. . . parte 3.12. . . . Diagrama de flujo de ED en computadora a bordo. Gr´fica de evaluaciones de individuos de control de altura.

xvi ´ INDICE DE FIGURAS .

Lista de comandos ejecutables por el hilo servidor.´ Indice de cuadros 5. . . . . . . .1. xvii 62 . . . . .

xviii ´ INDICE DE CUADROS .

monitoreo de tr´fico vehicular. ya que poseen caracter´ ısticas unicas como: tama˜o peque˜o. instrumentaci´n en la agricultura. contando con o n investigaci´n a gran escala hasta finales de los 1970s. o o a e Un tipo particular de UAVs. a Por otro lado. 2010]. inspecıa e o ci´n de cables de alta tensi´n. a n a eficiencia y autonom´ que sobrepasan las capacidades humanas [Nonami et al. la Agencia estadounidense del Espacio y la Aeron´utica (en ingl´s: a e NASA o National Aeronautics and Space Administration) hac´ investigaciones para ıa usos civiles en ese mismo periodo. debido a que tienen la ventaja de poder quedarse n suspendidos en el aire y ser altamente maniobrables. 2011]. El desarrollo de UAVs empez´ a crecer a finales de los a˜os 1950’s. ıa 1. ha sido objeto de numerosas inveso tigaciones en los ultimos a˜os. etc´tera. reconocimiento e inspecci´n en ambientes complejos o a o peligrosos. desarrollando veh´ ıculos de medici´n de variables o ambientales [Nonami et al. haci´ndolos atractivos para uso tanto militar como e civil en ´reas como vigilancia.. gran manio´ n n brabilidad y relativo bajo precio. ligeros y m´s capaces que nunca. A partir de entonces. el cuadric´ptero. se ha desarrollado una gran variedad de este tipo de veh´ ıculos para usos como: fotograf´ y video a´reos. llevando a niveles de resistencia.1.. Los nuevos sensores.. pero debido a su inmadurez no tuvo ning´n uso pr´ctico u a [Barnhart et al. lo cual habilita el despegue y 1 .Cap´ ıtulo 1 Introducci´n o En los ultimos a˜os ha habido un gran inter´s en el desarrollo de veh´ ´ n e ıculos a´reos no e tripulados. 2010]. siendo utilizados por primera o vez en forma pr´ctica por Estados Unidos en la guerra del golfo (1991). microprocesadores y sistemas de propulsi´n o son m´s peque˜os. Antecedentes y motivaci´n o El primer veh´ ıculo a´reo no tripulado (en ingl´s: UAV o unmanned aerial vehicle) e e fue construido en 1916. Los ultimos avances en la tecnolog´ han impulsado el desarrollo y la operaci´n de este ´ ıa o tipo de veh´ ıculos.

PLANTEAMIENTO DEL PROBLEMA aterrizaje vertical. avance. ya sea para cambiar su altitud. Otro aspecto a tomar en cuenta es el dise˜o del hardware. Una interfaz n e sencilla e intuitiva puede acelerar enormemente el proceso de aprendizaje del manejo de estos veh´ ıculos.2. el desarrollo de veh´ ıculos a´reos no tripulados ha tenido un gran avance en e Estados Unidos. Jap´n y Europa [Nonami et al. facilitando su uso en lugares donde no haya disponible personal especializado. en pa´ como M´xico a´n o ıses e u se encuentra en su etapa inicial. Estas capacidades los hacen especialmente utiles en misiones de ´ rob´tica. que sea f´cil de n o a manejar por usuarios inexpertos y que sea lo suficientemente escalable para utilizarlo como base en futuras investigaciones. etc´tera. 1. el n control del veh´ ıculo se hace casi imposible. que o ıa ıses ıas es a donde va enfocado el trabajo a mediano y largo plazo. o o o Si bien. e Si un operador humano simplemente manda se˜ales de velocidad a cada motor. Planteamiento del problema Un cuadric´ptero es un helic´ptero con cuatro rotores. Cinvestav Departamento de Computaci´n o .. primero porque es un sistema din´mico a que requiere ajustes en el orden de los milisegundos y segundo porque el n´mero de u variables a controlar sobrepasa las capacidades de una persona normal (6 grados de libertad). El dise˜o de una buena interfaz de usuario tambi´n es importante.3. lo que llev´ a su utilizaci´n en este trabajo de tesis. se deben incluir etapas de control autom´tico que aligeren e a la carga del operador. Hay pocos centros de investigaci´n dedicados a este o tema y a´n no se cuenta con ninguna implementaci´n comercial. Debido a ´sto.2.2 1. orientaci´n. adem´s de mi inter´s personal o a e en la aplicaci´n de tecnolog´ para la agricultura en pa´ en v´ de desarrollo. u o Esta situaci´n me ha llevado a realizar este proyecto. Un dise˜o pensado en n n extender las funcionalidades del veh´ ıculo. 1. El control del cuadric´ptero se hace modificando las o velocidades relativas de los rotores. o retroceso. donde cada uno est´ colocado o o a en la extremidad de una cruz. Objetivos General Dise˜ar e implementar un sistema de control para un cuadric´ptero. puede ser muy util para investigaciones ´ futuras. 2010].

est´ equia a pada con seis sensores de proximidad ultras´nicos.4. 2010] implementaron un veh´ ıculo para el desarrollo de estrategias de navegaci´n bio-inspiradas. e 1. pero pensado para ser extendido con caracter´ n a ısticas como: despegue y aterrizaje aut´nomo. Se han hecho pruebas con sistemas de seguimiento de trayectorias. Como unidades de procesamienı to. 2011]. o Implementar el control autom´tico de la postura y altura del veh´ a ıculo. a Otro helic´ptero dise˜ado para instrumentaci´n multiespectral se implementa en o n o Cinvestav Departamento de Computaci´n o . se busc´ moo a o dularidad en software bas´ndose en un microcontrolador lo suficientemente poderoso a para atender varias tareas a la vez. uno para el control de bajo nivel (postura) y el otro para ejecutar los algoritmos de planeamiento de trayectorias y comunicaci´n. 2011] hasta l´gica difusa a o [Santos et al.. Dise˜ar un sistema b´sico. con el fin de incrementar la resoluci´n de las mediciones o o en cultivos con respecto a los datos obtenidos por sat´lites. Un aspecto o interesante de este trabajo es que utiliza sensores bio-inspirados.. o Ya ha habido implementaciones de veh´ ıculos a´reos no tripulados en la agricultura. visi´n. 2011]. En [Hafner et al. Un sistema bluetooth integrado sirve para comunicar varios veh´ ıculos entre s´ en ambientes colaborativos. utiliza dos microcontroladores ARM. o o o etc´tera.. Adem´s de buscar modularidad en hardware. con el fin de sensar obst´culos y o a detectar la mejor ruta a tomar. que van desde PID [Li and Li. El sistema utiliza un Gumstix para su control. aprovechando las caracter´ ısticas que ofrecen las computadoras en tableta. como una c´mara a construida con un lente especial para darle visi´n omnidireccional y una br´jula bao u sada en el patr´n de polarizaci´n de la luz solar. e En [Berni et al. Crear una interfaz de control de usuario intuitiva. En [Ulbrich et al. Trabajos relacionados Se han implementado varios tipos de cuadric´pteros con base en diferentes modelos o de su din´mica y controles.. 2011] desarrollaron un sistema de control modular para facilitar la investigaci´n en diferentes campos como los sistemas de tiempo real.. 2009] desarrollaron un sistema de instrumentaci´n multiespectral. bas´ndose en un sistema de posicionamiento global. Este sistema. 2010] y redes neuronales [Bouhali and Boudjedir. adem´s de contar con una unidad de masa inercial y GPS. sistemas o distribuidos y la rob´tica. o montado en un helic´ptero.´ CAP´ ITULO 1. INTRODUCCION 3 Particulares Construir un cuadric´ptero. Este sistema es capaz de e seguir trayectorias de manera aut´noma y mandar los datos tomados a una estaci´n o o en tierra. planeaci´n de trayectorias. o o Una plataforma para planeamiento de trayectorias es implementada en [Bai et al.

5. se explica el principio de funo a cionamiento del cuadric´ptero. as´ como el trabajo a futuro para alcanzar la meta final de este desarrollo. as´ como los pasos seguidos para la construcci´n n ı o del cuadric´ptero. Tambi´n describe el dise˜o del sistema de control del cuae n dric´ptero. caracter´ ısticas y clasificaci´n. Organizaci´n del documento o La tesis se organiza en 6 cap´ ıtulos con la siguiente estructura: Cap´ ıtulo 2: define qu´ son los veh´ e ıculos a´reos no tripulados. enfoc´ndose en el o a controlador PID. o Cap´ ıtulo 3: da una introducci´n a los sistemas de control. para desp´es hacer una o u descripci´n detallada de cada una de las aplicaciones creadas. para tener una perspectiva del veh´ ıculo desde tierra. presentando su e historia. Cap´ ıtulo 4: hace una descripci´n de los componentes de hardware que conforman o el sistema de control dise˜ado. Este cuenta con tres canales de comunicaci´n: un radiocono trol para el uso manual del veh´ ıculo. o Cap´ ıtulo 5: da una breve explicaci´n de las plataformas de desarrollo utilizao das para la implementaci´n del software del sistema. 2011]. 1. adem´s del m´todo de ajuste de par´metros PID con evoluci´n dio a e a o ferencial.´ 4 1. o Cap´ ıtulo 6: presenta las conclusiones que se obtuvieron en el desarrollo de la tesis. un sistema WiFi para el env´ de datos en ıo tiempo real y un transmisor de video. Adem´s. ORGANIZACION DEL DOCUMENTO ´ [Xiang and Tian. ı Cinvestav Departamento de Computaci´n o .5.

ya que poseen caracter´ ısticas unicas como: tama˜o peque˜o. llevando a niveles de resistencia. avi´n operado de forma e o remota (en ingl´s: ROA o Remotely Operated Aircraft). microprocesadores y sistemas de propulsi´n o son m´s peque˜os. que no requiere la intervenci´n del controlador de vuelo. 2010]. se har´ una bree a ve rese˜a hist´rica y se describir´n sus caracter´ n o a ısticas. 2002]. de acuerdo con la Agencia de Proyectos de Investigaci´n o 5 . El Instituto e Americano de la Aeron´utica y de la Astron´utica (en ingl´s: AIAA o The American a a e Institute of Aeronautics and Astronautics) define un veh´ ıculo a´reo no tripulado coe mo: “Un avi´n que es dise˜ado o modificado 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 aut´nomo o a bordo.Cap´ ıtulo 2 Cuadric´ptero o En los ultimos a˜os ha habido un gran inter´s en el desarrollo de veh´ ´ n e ıculos a´reos no e tripulados. Veh´ ıculos a´reos no tripulados e Un avi´n no tripulado es definido con los t´rminos siguientes: veh´ o e ıculo a´reo no e tripulado (en ingl´s: UAVs o Unmanned Aerial Vehicles). y veh´ e ıculo piloteado de forma remota (en ingl´s: RPV o Remotely Piloted Vehicle) [DoD.1. Se pondr´ especial ´nfasis en a e un tipo particular de estos veh´ ıculos. haci´ndolos atractivos para uso tanto militar como e civil en ´reas como vigilancia. gran manio´ n n brabilidad y relativo bajo precio. cuya historia y principio de o funcionamiento ser´n explicados. Los nuevos sensores. Los ultimos avances en la tecnolog´ han impulsado el desarrollo y operaci´n de este ´ ıa o tipo de veh´ ıculos. se definir´ lo que es un veh´ a ıculo a´reo no tripulado.. ıa En este cap´ ıtulo. ligeros y m´s capaces que nunca. a n a eficiencia y autonom´ que sobrepasan las capacidades humanas [Nonami et al. a 2.” o Aunque no hay una definici´n estricta de la diferencia entre UAV y MAV (del ingl´s: o e Micro Aerial Vehicles). el cuadric´ptero. reconocimiento e inspecci´n en ambientes complejos o a o peligrosos.

Cinvestav Departamento de Computaci´n o .2). 2011].1. 2011]. desarrollando veh´ ıculos de medici´n de o variables ambientales (figura 2. Sin embargo. 2010] . Por otro lado.´ 6 2. la Agencia estadounidense del Espacio y la Aeron´utica a a (en ingl´s: NASA o National Aeronautics and Space Administration) hac´ investigae ıa ciones para usos civiles en ese mismo periodo. este veh´ a ıculo no fue utilizado en la primera guerra mundial [Barnhart et al. cargaban c´maras de video y transmit´ im´gea ıan a nes al operador. Estados Unidos los utiliz´ en forma pr´ctica en la guerra del Golfo en 1991.1. VEH´ ICULOS AEREOS NO TRIPULADOS Avanzados de Defensa de los Estados Unidos (en ingl´s: DARPA o Defense Advane ced Research Projects Agency). Ellos desarrollaron un girosc´pio para estabilizarlo. Pudieo ron volarlo a una distancia de casi 100 metros. e El desarrollo de UAVs empez´ a crecer a finales de los 1950s aprovechando la guerra o de Vietnam y la guerra fr´ contando con investigaci´n a gran escala hasta finales ıa. Los MAV tienen dimensiones de quince cent´ ımetros o menos. A paro a tir de entonces..1. Parece que el prototipo de los UAVs actuales puede ser encontrado en este periodo [Nonami et al. Figura 2. debido a su inmadurez para usos pr´cticos. Despu´s de la guerra de Vietnam.. 2. los veh´ ıculos a´reos para aplicaciones militares se han desarrollado e r´pidamente. Historia El primer veh´ ıculo a´reo no tripulado fue construido por Lawrence y Elmer Spee rry en 1916 (figura 2.1).1: Primer veh´ ıculo a´reo no tripulado [Barnhart et al. o de los 1970s. Estados Unidos e Israel empezaron e a construir veh´ ıculos m´s peque˜os y ligeros. los cuales utilizaban peque˜os motores a n n como los utilizados en motocicletas..

2. 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 supervisi´n requerida o por operadores humanos. Una de las metas principales para futuras opeu raciones ser´ la capacidad de controlar m´ltiples aeronaves desde una ECT a u [Barnhart et al. sistemas de propulsi´n.2: Veh´ ıculo a´reo no tripulado de uso civil [Nonami et al. seguridad y controlabilidad de flujo o de datos. e 2. etc. adaptabilidad. Las ECT var´ en tama˜o. Cinvestav Departamento de Computaci´n o . 2010]. Caracter´ ısticas Algunas caracter´ ısticas de los veh´ ıculos a´reos no tripulados son equivalentes a e las de los tripulados (materiales. CUADRICOPTERO 7 Figura 2.. Las m´s importantes son [Nonami et al.. 2011] . pero o a algunas son espec´ ıficas a ´stos. o o Sistemas de comunicaci´n: los problemas principales de las tecnolog´ de coo ıas municaci´n son flexibilidad. aerodin´mica. Los procesadores permiten a los UAVs volar misiones o enteras de manera aut´noma con poca o nula intervenci´n humana.1.´ CAP´ ITULO 2. 2010]: e a Sensores de navegaci´n y microprocesadores: los sensores representan uno de los o elementos m´s caros de este tipo de sistemas y son necesarios para la navegaci´n a o y la ejecuci´n de tareas. Estaci´n 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. pueden ser tan peque˜as ıan n n como un dispositivo de mano o tan grandes como estaciones de trabajo con m´ltiples trabajadores en ellas.)..

. a n 2. etc.´ 8 2. Ala rotativa: tienen la ventaja de poder quedarse suspendidos en el aire y de tener alta maniobrabilidad. Aplicaciones A continuaci´n se enlistan algunos usos en los que se aplican o se pueden aplicar o los UAVs [Austin. 2010]: ıas Ala fija: se refiere a aeroplanos que requieren un recorrido horizontal para despegar o aterrizar.4. o un lanzamiento en catapulta. 2010]. multirotores. Clasificaci´n o Seg´n Nonami et al.1. Tienen largos a tiempos de vuelo. vuelan a bajas velocidades y generalmente son de tama˜o n grande. Generalmente tienen largos tiempos de vuelo y pueden volar a altas velocidades. un veh´ u ıculo a´reo no tripulado generalmente entra en una de e las siguientes cuatro categor´ [Nonami et al. UAVs de aleteo (en ingl´s: flapping-wing): poseen alas flexibles inspiradas en e p´jaros y peque˜os insectos. Usos civiles: Fotograf´ a´rea ıa e Agricultura Guardia costera Conservaci´n o Compa˜ias de electricidad n Detecci´n de incendios o Forestal Monitoreo de ganado Monitoreo de contaminaci´n atmosf´rica o e Servicios meteorol´gicos o Cinvestav Departamento de Computaci´n o . Un UAV de ala rotativa puede o tener varias configuraciones. rotores coaxiales. Estas capacidades los hacen utiles en misiones de ´ rob´tica.3. especialmente en aplicaciones civiles. VEH´ ICULOS AEREOS NO TRIPULADOS 2. con rotores principal y de cola (helic´ptero cono vencional).1. Dirigibles: como globos o zepelines. que son m´s ligeros que el aire.1.

Como ´stos son controlados con cambios de velocidad en e los rotores. Figura 2.´ CAP´ ITULO 2. Cuadric´ptero o El cuadric´ptero o cuadrirotor (figura 2. a e Cinvestav Departamento de Computaci´n o . 2005]. o Una de las ventajas de utilizar un helic´ptero multirotor es su capacidad de caro ga.. bao lanceando las fuerzas producidas por sus cuatro rotores. Este intenta alcanzar una suspensi´n en el aire estable y vuelos precisos. Tienen como desventaja el incremento de peso del helic´ptero y el incremento en consumo de energ´ o ıa debido a los motores extra. como tiene m´s fuerza de empuje. puede soportar cargas m´s pesadas.3) es el veh´ o ıculo a´reo multirotor m´s poe a ´ pular. as´ como tambi´n el acceso a areas dif´ ı e ´ ıciles de alcanzar. biol´gica o nuclear o Eliminaci´n de bombas sin explotar o 2.. 2011]. CUADRICOPTERO 9 Compa˜ias petroleras n Monitoreo de tr´fico vehicular a B´squeda de personas perdidas u Monitoreo de tuber´ ıas Usos militares: Protecci´n de puertos o Desv´ de misiles ıo Reconocimiento Vigilancia de actividad enemiga Localizaci´n y destrucci´n de minas terrestres o o Monitoreo de contaminaci´n qu´ o ımica. Los cuaa a dric´pteros son altamente maniobrables. lo cual habilita el despegue y el aterrizaje o vertical.2. es m´s adecuado el uso de motores el´ctricos [Castillo et al.3: Cuadric´ptero [Ulbrich et al.

2010].2.. La primera demostraci´n de vuelo fue conseo guida el 29 de septiembre de 1907. inu vestigaci´n acad´mica. dos dise˜os adicionales fueron desarrollados y se realizaron vuelos expee n rimentales. al cual nombraron “Br´guet o e Richet Gyroplane No.6. adem´s de ser utilizados en aplicaciones militares. El primero. 2010]. mostrado en la figura 2.´ 10 2. CUADRICOPTERO 2.4).. como ıa se muestra en la figura 2. Figura 2. los cuadric´ptea o ros son utilizados para tareas de vigilancia en ´reas contaminadas o inaccesibles a [Puls et al. etc. dise˜ado n por George De Bothezat ´ El segundo. incluido el de realizar el primer vuelo de un o kil´metro por un helic´ptero. fue construido por Etienne Œ hmichen en 1924. 2011]. 2009]. y rompi´ records de distancia.1.5.5: Cuadric´ptero o [Raza and Gueaieb. o Despu´s. Figura 2. 1” (figura 2.2. o e Cinvestav Departamento de Computaci´n o . o o Actualmente. para actividades de b´squeda y rescate [Naidoo et al. construido por Georges de Bothezat e Ivan Jerome en 1922. ten´ los rotores colocados en cada extremo de una estructura en forma de X. Historia Louis y Jacques Br´guet. fueron los primeros en construir un cuadric´ptero.4: Primer cuadric´ptero [Raza and Gueaieb. dos hermanos que trabajaban para el profesor Charles Rie chet.

´ CAP´ ITULO 2.7: Diagrama de un cuadrirotor. z. roll y yaw ). 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 y Figura 2. multivariable.2. y. 2010]. Las fuerzas principales y momentos que act´an en un cuadric´ptero son producidas u o por sus rotores. dise˜ado n por Œ hmichen en 1924 Principio de operaci´n o Similar a un helic´ptero tradicional. pitch. fuertemente acoplado y subactuado. Un cuadrirotor es controlado. as´ coı Cinvestav Departamento de Computaci´n o . un cuadric´ptero es un sistema de seis grados de o o libertad (x. se utilizan dos sistemas de referencia: el sistema T fijo a la Tierra y el sistema B fijo al veh´ ıculo. 2. La figura 2. manipulando las fuerzas de empuje de los rotores.2. Dos pares de motores rotan en direcciones opuestas para balancear el torque total del sistema.6: Cuadric´ptero o [Raza and Gueaieb. Como se puede observar.7 muestra un diagrama de un cuadrirotor t´ ıpico. CUADRICOPTERO 11 Figura 2.

(b) diferencia en a o torque para manipular yaw (ψ).´ 12 2. De una forma similar. el ´ngulo yaw (ψ) puede ser controlado. La fuerza total e de empuje permanece balanceada por lo que la altitud se conserva. Para el control de postura. como se ilustra en las figuras 2. se obtiene un avance o retroceso del veh´ ´ ıculo. De este modo se obtiene una mayor o menor fuerza de empuje. (c) diferencia en torque para manipular pitch (θ). pero a sin afectar el balance. 2011]. CUADRICOPTERO mo balanceando el torque entre ellos. ´ a aplicando empuje diferencial en rotores opuestos.. con respecto al eje x del sistema de referencia T. Variando el angulo pitch. todos los rotores aplican una fuerza constante como se muestra en la figura 2. Cinvestav Departamento de Computaci´n o .8(c) y (d) respectivamente [Naidoo et al. el angulo pitch (θ) y el ´ngulo roll (φ) pueden ser manipulados.2. Para suspenderlo en el aire.8: Din´mica de un cuadrirotor.8(a). Para controlar el movimiento vertical. 1 1 2 4 2 4 3 3 ´ µ ×Ù×Ø ÒØ ´ µ Ò 2 4 2 4 3 3 Ò ÙÐÓ Ý Û 1 1 ´ µ Ò ÙÐÓ Ô Ø ´ µ Ò ÙÐÓ ÖÓÐÐ Figura 2. mientras que variando el ´ngulo roll se obtiene a un movimiento lateral (eje y) sobre el mismo sistema T. como se puede ver en la figura 2.8(b). manipulando a el balance del torque (aumentando la velocidad en un par de rotores con el mismo sentido de giro y disminuy´ndola en igual magnitud en el otro par). la velocidad de los motores se incrementa o decrementa simult´neamente. (d) diferencia en torque para manipular roll (φ). (a) sustentaci´n y altura.

Cap´ ıtulo 3 Control del cuadric´ptero o Como se vio en el cap´ ıtulo anterior. mediante las entradas. ya sea para modificar su altitud. orientaci´n. La relaci´n b´sica entre estos tres componentes se muestra en la figura 3. En este cap´ ıtulo. el objetivo de un sistema de control es controlar las salidas en alguna forma prescrita. 3. se deben incluir etapas de control autom´tico que aligeren la carga del e a operador humano. el control de un cuadric´ptero se hace cambiando o las velocidades de sus motores. a n o 3. Seg´n su comportamiento. a trav´s de los elementos del sistema de control e [Kuo. Debido a ´sto.1. con el fin de lograr un funcionamiento predeterminado. Objetivos de control (entradas o salidas actuantes u). despu´s de una breve introducci´n a los sistemas de control. primero porque es un sistema din´mico que requiere ajustes en el orden de los milisegundos y segundo a porque el n´mero de variables a controlar sobrepasa las capacidades de una persona u normal (6 grados de libertad). Resultados o salidas (variables controladas). 13 . En o a general. avance. los sistemas de control pueden clasificarse en sistemas u en lazo abierto o sistemas en lazo cerrado. 2003]. Los componentes b´sicos de un sistema de control se pueden describir a mediante: 1. Introducci´n a los sistemas de control o Un sistema de control est´ definido como un conjunto de componentes que pueden a regular su propia conducta o la de otro sistema. Si un operador humano simplemente manda se˜ales de velocidad e n a cada motor. se e o describir´ el dise˜o del controlador del cuadric´ptero desarrollado. 2. etc´tera.1. o retroceso. Componentes del sistema de control. el control del veh´ ıculo se hace casi imposible.

se ıa les encuentra en muchas aplicaciones no cr´ ıticas [Kuo. a La figura 3. la salida no se compara con la entrada de referencia.1. 2003]. a cada entrada de referencia le corresponde una condici´n operativa o fija. la se˜al actuante u n n controla el proceso controlado.2: Elementos de un sistema de control en lazo abierto. a pesar de perturbaciones y variaciones en la din´mica del sistema [Kuo. la se˜al controlada y debe ser retroalimentada y a n comparada con la se˜al de referencia.3 muestra un diagrama a bloques de un sistema de control en lazo cerrado Cinvestav Departamento de Computaci´n o . y se debe enviar una se˜al actuante proporcional n n a la diferencia de la entrada y la salida. de tal forma que la variable controlada y se desempe˜e n de acuerdo con est´ndares preestablecidos. En cualquier sistema en lazo abierto. a ÒØÖ Ö Ö Ò Ö Controlador Ë Ð ØÙ ÒØ Ù Proceso controlado ÎÖ Ð ÓÒØÖÓÐ Ý Figura 3. Una se˜al de entrada o comando n r se aplica al controlador.1.1: Componentes de un sistema de control. como resultado. Debido a la simplicidad y econom´ de los sistemas de control en lazo abierto. a trav´s del sistema para corregir el error. 1997]. e Un sistema con una o m´s trayectorias de retroalimentaci´n se denomina sistema en a o lazo cerrado.1. Sistemas de control en lazo abierto Los sistemas en que la salida no afecta la acci´n de control se denominan sistemas o de control en lazo abierto. INTRODUCCION A LOS SISTEMAS DE CONTROL Objetivos Sistema de control Resultados Figura 3. un sistema de control en lazo abierto no realiza la tarea deseada [Ogata. Para obtener un control m´s exacto. 2003].2 ). la precisi´n del sistema depende de la calibraci´n.´ 14 3. Sistemas de control en lazo cerrado Lo que hace falta en el sistema de control en lazo abierto para que sea m´s exacto a y m´s adaptable es una conexi´n o retroalimentaci´n desde la salida hacia la entrada a o o del sistema. 3. cuya salida act´a como se˜al actuante u. 3.1. Ante la preo o sencia de perturbaciones. Por tanto.2. Los elementos de un sistema de control en lazo abierto se pueden dividir en dos partes: el controlador y el proceso controlado (figura 3. Este tipo de control es esencial para mantener la variable controlada estable.

n y es la variable controlada. donde P es el proceso controlado. a o Acci´n proporcional o La acci´n de control proporcional es proporcional al error de control actual de o acuerdo con la expresi´n: o Cinvestav Departamento de Computaci´n o . Figura 3. ´sto es a e debido a su relativa simplicidad y su desempe˜o satisfactorio en un amplio rango de n ´ procesos. d es una se˜al de perturbaci´n y n es una se˜al de ruido en la medici´n n o n o [Visioli. 2006]. que ser´n explicadas a continuaci´n. e = r − y es el error.1. El nem´nico PID se refiere a las primeras letras a o de los nombres de sus t´rminos individuales. u es la se˜al actuante (variable de n control). r es la se˜al de referencia. una acci´n integral y una acci´n derivativa o o o (figura 3. I e e por la parte integral y D por la parte derivativa. Controlador PID Un controlador PID es un controlador de tres t´rminos que tiene una larga historia e en el campo de control autom´tico.4). n La ley de control PID consiste en aplicar correctamente la suma de tres tipos de acciones de control: una acci´n proporcional.3. 3.3: Elementos de un sistema de control en lazo cerrado.´ CAP´ ITULO 3. Estos han venido evolucionando conforme al progreso de la tecnolog´ y en ıa la actualidad es implementado muy frecuentemente en forma digital. que a pueden ser implementados cuando una ley de control b´sica no es suficiente para oba tener el desempe˜o requerido. ´stos son P por la parte proporcional. C es el controlador. El ´xito de los controladores PID tambi´n es debido al hecho de que usualmente ree e presentan el componente fundamental de sistemas de control m´s sofisticados. CONTROL DEL CUADRICOPTERO 15 t´ ıpico. Los controladores PID probablemente sean los m´s usados en la industria.

La acci´n integral act´a sobre los valores pasados del error de control. cuando el error de control es o grande (con el signo apropiado). Acci´n integral o La acci´n de control integral es usada cuando se requiere que el controlador corrija o ´ el error en estado estable. Debe se˜alarse o u n que cuando una acci´n integral est´ presente puede ocurrir un fen´meno llamado o a o windup. El significado de la acci´n proporcional es bastante sencillo. Este se denota con la expresi´n: o t u(t) = ki e(τ )dτ (3.´ 16 3. La principal desventaja de usar un controlador proporcional puro es que ´ste produce e un error en estado estable. saturando la salida. Este problema puede ser resuelto mediante las t´cnicas siguientes: e Inicializar el controlador integral a un valor deseado.1.Este fen´meno sucede cuando hay un cambio grande en el valor de referencia o y la parte integral acumula un error m´s grande que el valor m´ximo de la variable a a de control.1) Donde kp es la ganancia proporcional. ya que implementa la o t´ ıpica operaci´n de incrementar la variable de control.4: Elementos de un sistema de control PID: (a) forma simb´lica y (b) forma o en el dominio del tiempo u(t) = kp e(t) = kp (r(t) − y(t)) (3.2) 0 Donde ki es la ganancia integral. INTRODUCCION A LOS SISTEMAS DE CONTROL kp È e u e(t) Á ki t u(t) d kd dt ´ µ ´ µ Figura 3. Cinvestav Departamento de Computaci´n o .

las f´rmulas mostradas o o anteriormente tienen que ser discretizadas. la acci´n o a o derivativa se basa en la predicci´n de los valores futuros del error de control. 2005] La suma de estas tres acciones de control nos da la siguiente f´rmula b´sica del o a controlador PID: t uc (t) = kP e(t) + kI 3. Sin embargo tiene algunos problemas cr´ ıticos. e Cinvestav Departamento de Computaci´n o .6) i=1 donde e(ti ) es el error en tiempo continuo en el i-´simo instante de muestreo. dt (3.. La ley o derivativa de control puede expresarse como: u(t) = kd de(t) dt (3. ya que ´sta puede anticiparse a una tendencia incorrecta del error de control y e actuar contra ello. La acci´n derivativa tiene un gran potencial de mejorar el desempe˜o del controlao n dor.´ CAP´ ITULO 3. 2006] a [Johnson et al.1.4) Controlador PID digitalizado Si se utiliza una implementaci´n digital del controlador. Limitar el tiempo en el cual el error integral es calculado. CONTROL DEL CUADRICOPTERO 17 Incrementar el valor de referencia en forma gradual.4.3) Donde kd es la ganancia derivativa. (3. e(τ ) dτ + kD de .5) La parte integral puede ser aproximada utilizando diferencias finitas como: k t e(τ ) dτ = e(ti )∆t. como la sensibilidad al ruido. Acci´n derivativa o Mientras la acci´n proporcional est´ basada en el valor actual del error de control o a y la acci´n integral est´ basada los valores pasados del error de control. dt (3. Considerando la f´rmula del controlador PID ideal: o t uc (t) = kP e(t) + kI e(τ ) dτ + kD de . Evitar que el t´rmino integral se acumule estableciendo l´ e ımites predeterminados. que la hace no ser adoptada en muchos casos pr´cticos [Visioli.

θ.θ. definidos por el o vector: q = (x.φ. obteniendo uv1. n Cinvestav Departamento de Computaci´n o . Esta se aplica con la misma magnitud en cada motor y.y. y. e(tk ) − e(tk−1 ) .θ.φ. o La variable Gas.z. dt ∆t (3.θ.z.y.y.2.θ.z.y. y.8) Control del cuadric´ptero o El movimiento de un cuadric´ptero tiene seis grados de libertad.5: Diagrama de control del cuadric´ptero. o La se˜al de referencia rx.z.7) Por consiguiente. ∆t (3.φ.φ.φ. o × rx.φ. El proceso o controlador es un control (controles) PID cuya variable de control ux. mientras que yx.ψ es la variable manipulada.v3.ψ es o n la diferencia entre la posici´n y postura reales y deseadas e = r − y.´ 18 3. la ley de control discretizada es: k u(tk ) = KP e(tk ) + kI e(ti )∆t + KD i=1 3.y. θ.y.v2. ´ste resulta en: e e e de(tk ) e(tk ) − e(tk−1 ) = . es un valor de referencia que indica la velocidad base utilizada por ´ los motores.ψ es sumada a la variable Gas .z.θ. La figura 3.ψ indica la postura y posici´n deseada del veh´ n o ıculo.z.θ. las se˜ales actuantes de los controladores PID son sumadas (o restadas).9) donde p = (x.v4 que son las se˜ales actuantes aplicadas a n cada motor del cuadric´ptero.v4 Ù Ö ÔØ ÖÓ yx.ψ ÈÁ ux. z.y.ψ ex. ψ) ∈ R3 son los angulos de Euler ´ pitch. φ.φ.y.2. que es la posici´n y postura reales o del cuadric´ptero.ψ uv1.v2.z. CONTROL DEL CUADRICOPTERO Aplicando tambi´n diferencias finitas al t´rmino derivativo. φ.θ.v3.5 muestra un diagrama a grandes rasgos del sistema de control en lazo cerrado para el cuadric´ptero.z. a partir de ese valor. ψ) ∈ R6 (3.φ. roll y yaw que representan la postura. z) ∈ R3 denota la posici´n del centro de masa del veh´ o ıculo con respecto a un eje de referencia en tierra y α = (θ. obtenidas por medio de sensores.ψ ´ÑÓØÓÖ ×µ Figura 3. La se˜al de error ex.

o Cada se˜al de error es tomada como entrada de cada controlador PID del ´ngulo n a correspondiente. la cual se suma a la variable Gas y a la se˜al n n actuante de posici´n para despu´s ser aplicada a los motores.1. que combinadas resultan e ı en la se˜al actuante de postura uθ.´ CAP´ ITULO 3. Con ´sto se puede observar ´ ´ e que el control autom´tico de θ s´lo act´a sobre los motores 1 y 3. se obtienen angulos positivos y al bajarlo angulos negativos. ψ Ž¸Å¾¸Å¿¸Å ¹ yθ. que por medio de la retroalimentaci´n y se obtienen los errores eθ .v2.φ.6 muestra el diagrama de control autom´tico de postura.6: Diagrama del control de postura del cuadric´ptero. θ. mientras el control de las variables x y y se hace de forma manual.v4 ÅÓØÓÖ × uψ ˙ ˙ ˙ θ. ψ. La figura 3. a o u Para elevar el frente.φ. φ. φ. CONTROL DEL CUADRICOPTERO 19 En este trabajo implementamos el control autom´tico de la postura (θ. eψ . eφ . φ. el ´ngulo θ representa los grados de rotaci´n en el a o eje y del sistema de coordenadas del cuadric´ptero. donde se toman como referencia r los angulos (θ. ψ) y altura a (z). uno para el roll y otro para el yaw.φ.ψ ˙ ψ ψ Figura 3. o Control de pitch (θ) Como puede verse en la figura 3. Control de postura El control autom´tico de postura se subdivide en tres controladores PID: uno para a el pitch.7. haciendo lo contrario para bajarlo. Cinvestav Departamento de Computaci´n o . ψ) a ´ deseados. φ.2.v3.ψ ˙ φ φ eψ ÈÁ ÝÛ uv1. 3. o e Ž¸Å¿ rθ eθ ÈÁ Ô Ø uθ ¹ rφ × ˙ θ θ eφ ÈÁ ÖÓÐÐ ÈÁ ÔÓ× Ò Å¾¸Å uφ ¹ rψ uθ.ψ . Al subir el frente del veh´ o ıculo. se aumenta la velocidad en el motor 1 y se disminuye en la misma magnitud en el motor 3. obteni´ndose as´ tres variables de control.

el control proporcional e integral utilizan la se˜al de error e como entrada.ψ uθ (tk ) uv1 .v4 (tk ) v1 . CONTROL DEL CUADRICOPTERO frente Motor 1 izquierda − roll pitch − + x B Motor 4 derecha + y z + atras − yaw Motor 2 Motor 3 ´ Figura 3.z. o La figura 3. n o rθ (tk ) eθ (tk ) ¹ kI θ k i=1 eθ (ti )∆t × uPθ (tk ) kPθ eθ (tk ) uIθ (tk ) ux.φ. pero e n la parte derivativa utiliza la derivada de la se˜al de retroalimentaci´n y. Cinvestav Departamento de Computaci´n o .7: Angulos θ.8: Diagrama del controlador PID de pitch. θ˙k uDθ (tk ) kDθ θ˙k Figura 3.y. En a o o a ´sta.´ 20 3. Para ´ste y los a e dem´s controladores de postura se utiliz´ una versi´n modificada del PID b´sico.v2 . y ψ determinan la postura del cuadric´ptero.8 muestra el sistema de control PID para el ´ngulo θ. v3 ¹ θk ÅÓØÓÖ × yθ (tk ) θk .2.v3 . φ.

(3. (3. vemos que la entrada de referencia rθ corresponde los grados de inclinaci´n deseados y la se˜al eθ (tk ) = rθ (tk ) − yθ (tk ) es el error en el o n instante de tiempo tk .13) En conclusi´n. que puede ser obtenida o directamente de los sensores del veh´ ıculo evitando la necesidad de hacer aproximaciones basadas en la posici´n.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 se˜al actuante en θ es: n k uθ (tk ) = uPθ (tk )+uIθ (tk )−uDθ (tk ) = KPθ ·eθ (tk )+kIθ i=1 ˙ eθ (ti )∆t−KDθ · θ(tk ).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 t´rmino integral se obtiene con la f´rmula: e o k uIθ (tk ) = kIθ eθ (ti )∆t. e La acci´n de control uDθ del t´rmino derivativo es la siguiente: o e ˙ uDθ (tk ) = KDθ · θ(tk ). CONTROL DEL CUADRICOPTERO 21 Este cambio se hace para evitar el fen´meno denominado “patada derivativa” . e(ti ) es el error en tiempo continuo en el i-´simo instante de muestreo y ∆t es el intervalo de muestreo. el cual se transmite a la salida de la se˜al n n de control derivativo. el o cual sucede en ciertos sistemas al cambiar repentinamente la entrada de referencia r. o Continuando con el diagrama. lo que provoca un pico en la se˜al de error. a Una ventaja m´s de esta configuraci´n es que la derivada de la se˜al de salida (vaa o n riable manipulada. que es utilizado por los t´rminos proporcional e integral. o Al utilizar como entrada la derivada de la se˜al de retroalimentaci´n en el t´rmino n o e derivativo. posici´n angular) es la velocidad angular. (3. obteniendo un sistema m´s estable. (3. e La variable de control uPθ obtenida del t´rmino proporcional queda de la siguiente e manera: uPθ (tk ) = KPθ · eθ (tk ).11) i=1 donde kIθ es la constante integral en θ. el aporte de la variable de control uθ (tk ) sobre las velocidades de los o motores es: Cinvestav Departamento de Computaci´n o .´ CAP´ ITULO 3. los cambios repentinos en la se˜al de referencia no afectan el desempe˜o n n del control derivativo. provocando cambios bruscos en la acci´n de control.

Cinvestav Departamento de Computaci´n o .´ 22 3.v3 .9 muestra el diagrama del controlador PID de roll. (3. v4 ¹ φk ÅÓØÓÖ × yφ(tk ) ˙ φk .14) Donde uv1 (tk ) y uv3 (tk ) son las se˜ales actuantes en los motores 1 y 3. Para elevar el lado derecho. o Con ´sto se puede ver que el controlador del angulo φ en el cuadric´ptero s´lo act´a e ´ o o u sobre los motores 2 y 4. La figura 3. CONTROL DEL CUADRICOPTERO uv1 (tk ) = unv1 + uθ (tk ) . y un representa n las se˜ales actuantes de los dem´s controladores.9: Diagrama del controlador PID de roll. rφ(tk ) eφ(tk ) ¹ kI φ k i=1 eφ (ti )∆t × uPφ (tk ) kPφ eφ(tk ) uIφ (tk ) ux.θ. para bajarlo se hace lo contrario.y. n a Control de roll (φ) El ´ngulo φ representa la rotaci´n en el eje x en el sistema de coordenadas del a o cuadric´ptero.v2 .15) Donde: uφ (tk ) es la variable de control en φ. mientras que bajarlo (elevar el lado izquierdo) corresponde a un giro positivo.ψ uφ(tk ) uv1 . φk uDφ (tk ) kDφ θ˙k Figura 3.v4 (tk ) v2 .z. Elevar el lado derecho del veh´ o ıculo corresponde a un giro negativo.2. uv3 (tk ) = unv3 − uθ (tk ). (3. El esquema es el mismo que en el controlador de pitch. con la diferencia de que act´an sobre diferentes u motores. se aumenta la velocidad en el motor 2 y se disminuye en la misma proporci´n en el motor 4. La f´rmula 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 ).

Al aumentar la velocidad en los motores 1 y 3. eφ (tk ) es la se˜al de error en φ. se produce un giro negativo.´ CAP´ ITULO 3. De la figura 3. derivativa e integral en φ. (3. la cual se o define de la siguiente manera: Cinvestav Departamento de Computaci´n o . v2 . uIφ (tk ). ˙ φ(tk ) es la velocidad angular en el eje x en el sistema de coordenadas del veh´ ıculo. y disminuirla en la misma magnitud en los motores 2 y 4.16) Donde uv2 (tk ) y uv4 (tk ) son las se˜ales actuantes en los motores 2 y 4. El giro es negativo en el sentido de las manecillas del reloj y positivo en contra de las manecillas.7). CONTROL DEL CUADRICOPTERO 23 uPφ (tk ). el controlador PID del angulo ´ ´ ψ act´a sobre los cuatro motores del cuadric´ptero.v2 .θ. uv4 (tk ) = unv4 + uφ (tk ). El aporte de la variable de control uφ (tk ) sobre las velocidades de los motores es: uv2 (tk ) = unv2 − uφ (tk ) . y un representa n las se˜ales actuantes de los dem´s controladores.y.φ uψ (tk ) uv1 . mientras que para producir un giro positivo se hace lo contrario. v4 ¹ ψk ÅÓØÓÖ × yψ (tk ) ˙ ψk . u o uPψ (tk ) kPψ eψ (tk ) rψ (tk ) eψ (tk ) ¹ kI ψ uIψ (tk ) k eψ (ti)∆t i=1 × ux. kIφ . n KPφ . v3 . KDφ son las constantes proporcional.10: Diagrama del controlador PID de yaw.10 obtenemos la ecuaci´n del controlador PID para ψ.v4 (tk ) v1 . integral y derivativo en φ.z. ψk uDψ (tk ) ˙ k Dψ ψ k Figura 3. uDφ (tk ) son las variables de control proporcional. n a Control de yaw (ψ) El angulo yaw representa un movimiento de rotaci´n en el eje z del sistema de ´ o coordenadas del veh´ ıculo (figura 3. A diferencia de los controladores de los angulos θ y φ.v3 .

Al combinar las variables de control de postura. n KPψ . por lo que el control manual consiste en enviar los valores de ´ referencia rθ . integral y derivativon en ψ. El aporte de la variable de control de uψ (tk ) sobre las velocidades de los motores es: uv1 (tk ) = unv1 − uψ (tk ) . Para mover el veh´ ıculo en las direcciones x y y. se obtiene la se˜al n actuante total del sistema.11. rφ y rψ al controlador de postura. altura y Gas. uIψ (tk ). se utiliza un controlador PID para la altura. derivativa e integral en ψ. Control de posici´n o El control de posici´n se divide en dos subcontroles: un control autom´tico de o a altura y un control manual de posici´n en los ejes x y y con respecto al sistema de o coordenadas en tierra. y un representa las se˜ales actuantes de los dem´s controladores. kIψ . (3.2. CONTROL DEL CUADRICOPTERO k uψ (tk ) = uPψ (tk ) + uIψ (tk ) − uDψ (tk ) = KPψ · eψ (tk ) + kIψ i=1 ˙ eψ (ti )∆t − KDψ · ψ(tk ). eψ (tk ) es la se˜al de error en ψ.´ 24 3.18) uv2 (tk ) = unv2 + uψ (tk ) . (3. para ir hacia adelante se cambia el valor de referencia del controlador de pitch a un angulo negativo). uv4 (tk ) = unv4 + Uψ (tk ). ˙ ψ(tk ) es la velocidad angular en el eje z en el sistema de coordenadas del veh´ ıculo. se implement´ un control PID cl´sico donde rz (tk ) o a Cinvestav Departamento de Computaci´n o . Como se muestra en la figura 3. n 2.17) Donde: uψ (tk ) es la variable de control en ψ. Como puede verse en la figura 3. uPψ (tk ). uv3 (tk ) y uv4 (tk ) son las se˜ales actuantes en los motores 1. n a 3.19) Donde uv1 (tk ). uDψ (tk ) son las variables de control proporcional.2. Control de altura (z) El control de altura se hace variando la velocidad de todos los motores con la misma magnitud. (3.2. uv2 (tk ). KDψ son las constantes proporcional. Para elevar el veh´ ıculo se incrementa y para bajarlo se decrementa. 3 y 4. se var´ los angulos de la postura (por ıan ´ ejemplo. uv3 (tk ) = unv3 − uψ (tk ).12.

integral y derivativa.z ÅÓØÓÖ × uz Ò ¹ Figura 3. uIz (tk ) y uDz (tk ).ψ. que junto con las variables de control n de postura y Gas.´ CAP´ ITULO 3.11: Diagrama del control de posici´n. o es la altura deseada y la se˜al de error ez (tk ) = rz (tk ) . (3. de las cuales se obtienen las variables de control uPz (tk ). Esta se˜al de n error es tomada por las partes de control proporcional.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 t´rmino integral se obtiene con la f´rmula: e o k uIz (tk ) = kIz ez (ti )∆t.ψ rφ ÈÁ ÔÓ×ØÙÖ rψ uv1. La suma de estas variables resulta en la se˜al actuante de altura. es aplicada a los motores del cuadric´ptero.v2. CONTROL DEL CUADRICOPTERO 25 ÓÒØÖÓÐ Ñ ÒÙ Ð x¸y rθ uθ.v4 × ez rz z ÈÁ ÓÒØÖÓÐ Þ ÔÓ× yθ.φ. o La variable de control uPz obtenida del t´rmino proporcional queda de la siguiente e manera: uPz (tk ) = KPz · ez (tk ).φ.v3. (3.21) i=1 donde kIz es la constante integral en z.yz (tk ) es la diferencia entre n la altura deseada y la altura real del veh´ ıculo medida por los sensores. ez (ti ) es el error en tiempo continuo en el Cinvestav Departamento de Computaci´n o .

y un representa las se˜ales actuantes de los dem´s contron a ladores. (3. 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 )∆t−KDz · uv1 (tk ) = unv1 + uz (tk ) . e La acci´n de control UDz del t´rmino derivativo es la siguiente: o e uDz (tk ) = KDθ · ez (tk ) − ez (tk−1) .v4 (tk ) uz (tk ) zk ÅÓØÓÖ × yz (tk ) zk kDz (ez (tk )−ez (tk−1)) ∆t uDz (tk ) Figura 3. Por lo que la variable de control en z es: k ez (tk ) − ez (tk−1) . uv2 (tk ) = unv2 + uz (tk ). uv4 (tk ) = unv4 + uz (tk ).´ 26 3. CONTROL DEL CUADRICOPTERO kPz ez (tk ) ez (tk ) rz (tk ) ¹ uθ.22) donde KDz es la constante derivativa en z . ∆t (3.φ.ez (tk ) es el error en el instante de tiempo tk y ez (tk−1 ) es el error en el muestreo anterior.ψ uIz (tk ) kI z × uPz (tk ) k i=1 ez (ti )∆t uv1 . ∆t i=1 (3. Cinvestav Departamento de Computaci´n o . uv2 (tk ).25) Donde uv1 (tk ).v2 . (3.12: Diagrama del controlador PID de altura.24) uv3 (tk ) = unv3 + uz (tk ) .23) En conclusi´n.v3 . 3 y 4 respectivamente. uv3 (tk ) y uv4 (tk ) son las se˜ales actuantes de los motores 1. i-´simo instante de muestreo y ∆t es el intervalo de muestreo.2. n 2.

z. θ. a ÓÒØÖÓÐ ÔÓ×ØÙÖ Å½¸Å¿ rθ eθ Ô Ø ÈÁ uθ ¹ ˙ θ θ rφ eφ ÈÁ ž¸Å ÖÓÐÐ × uφ ¹ rψ uθ.v2.v3. Este o cuenta con cuatro controladores PID: tres para la postura y uno para la altura. CONTROL DEL CUADRICOPTERO 27 3. 3.ψ. Cada se˜al actuante de estos controladores tiene un aporte sobre la velocidad de cada uno n de los cuatro motores del veh´ ıculo.ψ.2.z ez ÈÁ Þ uz ¹ Ž¸Å¾¸Å¿¸Å z ÓÒØÖÓÐ ÔÓ× Ò Figura 3.25 obtenemos: uv1 (tk ) = Gas + uθ (tk ) − uψ (tk ) + uz (tk ). La variable de control total en cada motor es la suma de los aportes de todos los controladores PID m´s la variable de referencia Gas.3.z ˙ φ φ eψ ÈÁ uv1. ψ. φ.13: Diagrama del control general del sistema. 3.26) (3. φ. ψ Ž¸Å¾¸Å¿¸Å ¹ ˙ ψ ψ rz yθ. 3.φ.v4 ÅÓØÓÖ × ÝÛ uψ ˙ ˙ ˙ θ.27) Departamento de Computaci´n o . Control general del sistema ´ La figura 3.16.13 muestra el diagrama del sistema de control del cuadric´ptero. 3. Cinvestav (3.18.14.φ.19.´ CAP´ ITULO 3.24 y 3. uv2 (tk ) = Gas − uφ (tk ) + uψ (tk ) + uz (tk ). Uniendo las variables de control de las ecuaciones 3.

3. uv2 . uθ . kI y kD como las o n variables de decisi´n. 2. por lo que debe hacerse el ajuste de doce constantes.3. se crea aleatoriamente un conjunto o de soluciones candidatas y se aplica la funci´n de calidad como una medida de desemo pe˜o.3. kD ) que es la se˜al de error. En esta secci´n se dar´ una breve introducci´n a los algoritmos evolutivos. Un correcto ajuste de las constantes proporcional. 3 y 4 respectivamente. que produce un aumento en la aptitud de la poblaci´n. tomando a kP . Bas´ndose en su aptitud.28) uv4 (tk ) = Gas + uφ (tk ) + uψ (tk ) + uz (tk ). 3. es la variable de control en roll. uz . AJUSTE DE PARAMETROS DEL CONTROLADOR PID POR MEDIO ´ DIFERENCIAL DE EVOLUCION uv3 (tk ) = Gas − uθ (tk ) − uψ (tk ) + uz (tk ). o En la secci´n anterior vimos que el sistema de control del cuadric´ptero consta de o o cuatro controladores PID. uφ . intea gral y derivativa es la diferencia entre un buen desempe˜o y un desempe˜o pobre del n n controlador.1. para terminar explicando el m´todo de obtenci´n de las constantes del controlador e o del cuadric´ptero utilizando dicho algoritmo.29) Donde: uv1 . Ajuste de par´metros del controlador PID por a medio de evoluci´n diferencial o Uno de los factores cruciales para el buen funcionamiento del controlador PID es el ajuste de sus par´metros. despu´s se o a o e explicar´ el algoritmo de evoluci´n diferencial (una rama de la computaci´n evolutia o o va). Existen varios tipos de algoritmos o o evolutivos.´ 28 3. (3. uv3 y uv4 . algunos de los mejores candidatos son escogidos para n a Cinvestav Departamento de Computaci´n o . kI . es la variable de control en yaw. a o Dada una funci´n de calidad a ser maximizada. uψ . pero la idea b´sica detr´s de estas t´cnicas es la misma: dada una poblaa a e ci´n de individuos. donde se trata de minimizar o la funci´n e(kP . o 3. Una forma de resolver este problema es usando algoritmos evolutivos. es la variable de control de altura. son las variables de control aplicadas a los motores 1. la presi´n del ambiente causa una selecci´n natural (supervivencia o o o del m´s apto). Algoritmos evolutivos Los algoritmos evolutivos son m´todos de optimizaci´n y b´squeda de soluciones e o u basados en los postulados de la evoluci´n biol´gica. ´ Esto puede verse como un problema de optimizaci´n. es la variable de control en pitch. ya que no es necesario conocer el modelo del sistema para llegar a resultados aceptables. (3.

Actualmente. los algoritmos evolutivos tienden a combinar caracter´ ısticas de estos tres. o u La aplicaci´n combinada de variaci´n y selecci´n generalmente lleva al mejoramiento o o o de los valores de desempe˜o en generaciones consecutivas. 2008]. o soluciones candidatas. n contra los viejos por un lugar en la nueva generaci´n. La selecci´n de qu´ partes de los individuos ser´n mutadas o recombinadas o e a se hace de manera aleatoria [Eiben and Smith. Por medio de estos operadores se obtiene un nuevo conjunto de candidatos (descendencia) que compiten. la evoluci´n diferencial. del cual o a resultan uno o m´s candidatos nuevos (hijos). los algoritmos culturales y los o algoritmos mem´ticos.´ CAP´ ITULO 3. que ser´ descrita en la o o a siguiente secci´n. CONTROL DEL CUADRICOPTERO 29 crear la siguiente generaci´n. basados en su desempe˜o. ıa o o Al igual que otros algoritmos de esta categor´ la ED mantiene una poblaci´n de ıa. Durante la selecci´n. En este proceso hay dos fuerzas fundamentales que forman la base de los sistemas evolutivos: Operadores de variaci´n (recombinaci´n y mutaci´n) que crean la diversidad o o o necesaria. La mutaci´n es aplicada a un candidato a o y resulta en un nuevo candidato.3. mediante su recombinaci´n y/o mutaci´n. o o o La recombinaci´n es un operador aplicado a dos o m´s candidatos (padres). las cuales se recombinan y mutan para producir nuevos individuos. que act´a como una fuerza que incrementa la calidad. Suele hablarse de tres paradigmas principales de los algoritmos evolutivos: Programaci´n evolutiva o Estrategias evolutivas Algoritmos gen´ticos e Cada uno de estos paradigmas se origin´ de manera independiente y con distintas o motivaciones. Lo a o n Cinvestav Departamento de Computaci´n o . Evoluci´n diferencial o La evoluci´n diferencial (ED) es un m´todo de optimizaci´n perteneciente a la cao e o tegor´ de computaci´n evolutiva. e En este trabajo de tesis se utiliz´ la evoluci´n diferencial. los n o individuos m´s aptos tienen m´s oportunidad de ser seleccionados que los menos a a aptos. Este proceso puede ser iterado o hasta que es encontrado un candidato con suficiente calidad (una soluci´n) o cierto o criterio de paro es alcanzado. Selecci´n. los cuales ser´n elegidos de acuerdo al valor de su funci´n de desempe˜o.2. aplicado en la resoluci´n de problemas complejos. aunque los individuos d´biles tambi´n tienen oportunidad de ser padres o e e sobrevivir. Por ejemplo. o 3. entre otros.

1). a o a Inicializaci´n o Antes de que la poblaci´n pueda ser inicializada. Por ejemplo. lo han llevado a ser utilizado de manera exitosa en muchos problemas del mundo real [Price et al.30) Donde el generador de n´meros aleatorios randj (0. AJUSTE DE PARAMETROS DEL CONTROLADOR PID POR MEDIO ´ DIFERENCIAL DE EVOLUCION que caracteriza a la ED es el uso de vectores de prueba. maa u ´ nipul´ndolos con operadores aritm´ticos. 1) regresa un n´mero aleatorio u u uniformemente distribuido dentro del rango [0. donde los sub´ ındices I y S indican los l´ ımites inferior y superior. se asignan aleatoriamente los valores de cada par´mea tro. 1997].´ 30 3. Esto ofrece ventajas significantes sobre los a e algoritmos gen´ticos. y desde entonces ha ganado la reputaci´n de ser un optimizador global muy efectivo. Su historial de desempe˜o o n robusto y confiable. que codifican sus par´metros como cadenas de bits y utilizan e a operadores l´gicos para manipularlos.I (3. los cuales compiten con los individuos de la poblaci´n actual a fin de sobrevivir. respetando los rangos preestablecidos. Una vez especificados los l´ ımites. el valor inicial (g = 0) del j-´simo par´metro del i-´simo vector es: e a e Xj.I ) + Lj.. o Fue creado en 1995 por Kenneth Price y Rainer Storn. a Cinvestav Departamento de Computaci´n o . 1) · (Lj. Estos valores se pueden guardar en dos a vectores LI y LS . Este algoritmo codifica todos los par´metros como n´meros de punto flotante. o Algunas de estas ventajas son: Facilidad de uso Utilizaci´n de memoria eficiente o Menor complejidad computacional (escala mejor en problemas grandes) Menor esfuerzo computacional (convergencia m´s r´pida) a a La ED se compone b´sicamente de cuatro pasos: a Inicializaci´n o Mutaci´n o Recombinaci´n o Selecci´n o Estos pasos ser´n explicados a continuaci´n con m´s detalle.S − Lj. se tienen que especificar los l´ o ımites superior e inferior de cada par´metro.0 = rand(0.3.i. El sub´ ındice j indica que se genera un nuevo valor aleatorio para cada par´metro. respectivamente.

g . Ui. a partir de valores de par´metros o a que han sido copiados de dos vectores diferentes. CONTROL DEL CUADRICOPTERO 31 Mutaci´n o Una vez inicializada. No hay un l´ o ımite superior para este valor.1].g . son los vectores tomados al azar de la poblaci´n actual g (diferentes).g . De otra manera. La mutaci´n diferencial suma la diferencia escalada o o de dos vectores tomados al azar a un tercer vector.31) Donde: Vi.g sea igual al vector Xi.g = Uj. Recombinaci´n o En la recombinaci´n se forman vectores de prueba. Si el u n´mero aleatorio es menor o igual a Cr . es el vector mutante i en la generaci´n g.g si (randj (0.1+). es un valor definido por el usuario que controla la fracci´n de valores de los par´metros que son copiados del vector mutante. aunque tambi´n puede tomarse al azar. Cinvestav Departamento de Computaci´n o .g de otra manera (3. es el par´metro j del vector mutante i. o Xr0.r1.r2.i .32) Donde: Vj. El vector base Xr0. se compara Cr con la salida e a a de un generador de n´meros aleatorios uniformemente distribuidos randj (0.g − Xr2. el par´metro es copiado del vector Xi.i.g . Los vectores Xr1.g ). es el par´metro j del vector i. la ED muta y recombina la poblaci´n para producir otra o poblaci´n de vectores de prueba. o F . evitando as´ que el vector a a ı de prueba Ui.i. (3.g .i . El factor de escala es un n´mero real positivo que controla la velocidad a la cual u la poblaci´n evoluciona.g = Vj. a Cr . esto a asegura que al menos un par´metro mutante ser´ heredado. Vi. o a Para determinar qu´ vector contribuir´ con un par´metro. La probabilidad de cruza Cr . obteniendo e el vector mutado Vi.g = Xr0. 1) ≤ Cr ) ´ j = jrand o Xj. En este caso se cruza cada vector con un vector mutante.g puede determinarse de varias maneras. es el factor de escala (0.´ CAP´ ITULO 3. pero rara vez hay valores efectivos mayores que 1.i. es la probabilidad de cruza [0. 1). Adem´s.g y Xr2.g .g + F · (Xr1. tambi´n tomado al azar. el par´metro de prueba es heredado por el u a vector mutante Vi.g tambi´n e e son seleccionados al azar una vez por mutante. a Xj. a a un par´metro de prueba seleccionado al azar (jrand ) se toma del vector mutante.

AJUSTE DE PARAMETROS DEL CONTROLADOR PID POR MEDIO ´ DIFERENCIAL DE EVOLUCION Selecci´n o Si el valor de la funci´n objetivo del vector de prueba Ui.g .g de otra manera (3. el proceso de mutaci´n. Ajuste de par´metros del controlador del cuadric´ptea o ro Como se vi´ en secciones anteriores la f´rmula de un controlador PID es: o o k u(tk ) = KP e(tk ) + kI e(ti )∆t + KD i=1 e(tk ) − e(tk−1 ) . a 3.´ 32 3.34) donde se tienen que encontrar los valores de las constantes proporcional (KP ). integral (kI ) y derivativa (kD ) m´s adecuados para el correcto funcionamiento del a ´ controlador. ∆t (3. kD ).3.3.g e o permanece en su lugar. a Para aplicar el algoritmo de evoluci´n diferencial. primero se definen los individuos o como los vectores: Cinvestav Departamento de Computaci´n o . Xi. kI . por ejemplo. Xi..g si f (Ui. De otra manera. el n´mero de generaciones alcanza un u m´ximo preestablecido [Price et al.3. el vector Xi. 1997].g en la siguiente generaci´n. recomo o binaci´n y selecci´n es repetido hasta que el ´ptimo es localizado.33) Donde: f ().g+1 = Ui. mientras que el control de altura.g ) Xi. o Ui. que es la se˜al de error del sistema. Esto puede verse como un problema de optimizaci´n donde se trata de o minimizar la funci´n e(kP . ´ste reemplaza a Xi. con un PID. o El control de postura del veh´ ıculo consta de tres controladores PID por lo que hay que encontrar nueve constantes. o Una vez que la nueva poblaci´n es seleccionada.g ) ≤ f (Xi. tomando como o n variables de decisi´n las constantes del PID. se dividi´ el problema de ajuste de par´metros en dos: ajuste de par´metros o a a de postura y ajuste de par´metros de altura. es el vector i en la poblaci´n actual.g . o un criterio de o o o paro preestablecido es alcanzado. es la funci´n objetivo.g . requiere del ajuste de tres constantes. Ajuste de par´metros con evoluci´n diferencial a o Para simplificar el problema y poder realizar m´s f´cilmente las pruebas de laboa a ratorio. es el vector de prueba i.g es igual o menor al vector o Xi.

es de 10 milisegundos. En la segunda sumatoria. quedando un vector en R100 . Mientras que el periodo de muestreo en ez es de 100 milisegundos. en el caso de la altura. Cada evaluaci´n del individuo se hace en tiempo real. kIφ .´ CAP´ ITULO 3. φ.0166i|+ |eθ (ti )|+|eφ (ti )|+|eψ (ti )|. 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. o e se cargan los par´metros del individuo a evaluar en el algoritmo del controlador del a veh´ ıculo. kDz ] ∈ R3 . Los l´ ımites inferior y superior de cada par´metro fueron definidos experimentala mente y guardados en los vectores LS y LI en R9 para la postura. roll (eφ ) y yaw (eψ ).4 segundos de prueba restantes. con un criterio de paro del algoritmo o de 200 generaciones.0166i|+|eψ (ti )·0. kI en θ. es una ´ suma ponderada de los valores absolutos de cada elemento. ψ.1i| + i=10 |ez (ti )|. en el caso de la postura y de n ez . (3. roll. ´sto es. kIψ . 3 i=60 i=0 (3. La funci´n de desempe˜o para los individuos del control de altura es: o n 1 f (X) = 3 9 f (X) = i=0 Cinvestav 99 |ez (ti ) · 0. El periodo de muestreo en el caso de las se˜ales eθ . kPφ . z son las constantes integrales de los controladores de pitch. kIθ . se toman los valores absolutos de las se˜ales de error en el n instante i de los 9. kD en θ. yaw y altura.eφ y eψ . yaw y altura. yaw y altura. kIz .0166i|+|eφ (ti )·0. Una poblaci´n consta de treinta individuos. ψ. kDφ . y ´ste se enciende por diez segundos mientras se guardan las mediciones de e las se˜ales de error de pitch (eθ ).38) Departamento de Computaci´n o . z son las constantes proporcionales de los controladores de pitch. roll. ψ. roll. y LS y LI en R3 para la altura. (3. z son las constantes derivativas de los controladores de pitch.37) donde la sumatoria de los primeros 60 elementos de los vectores de error. ya que las posiciones iniciales (error inicial) pueden variar un poco entre un individuo y otro. La funci´n de desempe˜o para los individuos del control de postura es: o n 59 999 1 |eθ (ti )·0. φ.36) donde: kP en θ. (3. CONTROL DEL CUADRICOPTERO 33 postura : X = [kPθ .35) altura : X = [kPz . φ. kPψ . kDθ . kDψ ] ∈ R9 . por n 1000 lo que resultan tres vectores en R .

pero ´sta s´lo eval´a la se˜al de error ez e o u n Teniendo ya todos los elementos necesarios para utilizar la evoluci´n diferencial. se o implementan los pasos de inicializaci´n.3. descrio o o o tos anteriormente. AJUSTE DE PARAMETROS DEL CONTROLADOR PID POR MEDIO ´ DIFERENCIAL DE EVOLUCION La cual es bastante semejante a la de altura. El algoritmo implementado o ser´ descrito m´s adelante en el cap´ a a ıtulo 5. mutaci´n. Cinvestav Departamento de Computaci´n o . para encontrar las constantes ´ptimas. que trata lo referente a la implementaci´n o del software. recombinaci´n y selecci´n.´ 34 3.

Cap´ ıtulo 4 Implementaci´n del hardware o El prop´sito de este trabajo de tesis es. Una pieza clave para lograr este objetivo es el uso de una placa computadora (en ingl´s: Single Board Computer o SBC ) empotrada en el e ´ veh´ ıculo en lugar de un simple microcontrolador. se le puede cargar un sistema operativo (en este caso Linux) el cual. permite la generaci´n o o de c´digo portable e independiente de la arquitectura utilizada. en este caso cuatro motores. que consta de cinco m´dulos principales: sensores. Descripci´n general del sistema o La figura 4. controlador.1. pudiendo as´ actuao ı lizar el sistema con mayor facilidad y contando con la ventaja de la reutilizaci´n de o c´digo fuente. La o 35 . adem´s del control de un cuadric´ptero. El sensor primordial para el control autom´tico de la postura. actuadores y comunicaci´n. alt´ e ımetros (bar´metros) para medir la altitud. sensoo res de proximidad para evasi´n de obst´culos y hasta c´maras de video en modelos o a a m´s sofisticados. sistemas de posicionamiento global (en ingl´s: o e Global Positioning system o GPS ) para determinar la ubicaci´n en el espacio. o a o crear un sistema base que sea vers´til y escalable al que se le puedan a˜adir nuevas a n caracter´ ısticas con facilidad. yaw ). El m´dulo de sensores para este proyecto cuenta con una e o UMI y un sensor ultras´nico para la altitud. o El m´dulo controlador es el encargado de leer los datos provenientes de los sensores o y aplicar una acci´n de control sobre los actuadores. ya que adem´s de contar con m´s recursos como memoria RAM y velocidad de procesamiena a to. al ser una capa intermedia entre el hardware y el software de aplicaci´n. roll. o Un veh´ ıculo a´reo no tripulado puede contener una gran variedad de sensores. es la a a unidad de medici´n inercial (UMI). con la cual se pueden determinar los tres angulos o ´ de rotaci´n del cuadric´ptero (pitch. o 4. o o etapa de potencia. Esto trae grandes ventajas.1 muestra un diagrama a grandes rasgos del sistema de control a bordo del cuadric´ptero. as´ como tambi´n la velocidad anguo o ı e lar en la que ´stos rotan.

donde el veh´ e ıculo a´reo act´a como servie u dor.1.2: Sistema de comunicaci´n.1: Sistema de control a bordo del cuadric´ptero.´ 36 4. o Cinvestav Departamento de Computaci´n o . y enviar datos hacia otros dispositivos e conectados a la red de control. La computadora en o a tableta sirve como control a distancia de la posici´n del cuadric´ptero en el espacio. Este est´ basado en una configuraci´n clientea o servidor por WiFi a trav´s de un ruteador. La computadora personal tiene la funci´n de configurar aspectos internos del control de postura. La figura 4. Para este sistema se utilizan dos clientes: una computadora personal y una computadora en tableta. atendiendo las peticiones de los clientes. DESCRIPCION GENERAL DEL SISTEMA ÓÑÙÒ Ò Ò Ð Ñ Ö Ë Ò×ÓÖ × ÓÒØÖÓÐ ´ ÓÖ ÁÒØ Ö ÙÑ×Ø Üµ ØÙ Þ ÓÖ × ´ÑÓØÓÖ ×µ ÔÓØ Ò Figura 4. o o Ð ÒØ × ÓÑÔÙØ ÓÖ Ë ÖÚ ÓÖ Ù Ö ÔØ ÖÓ ÊÙØ ÓÖ Ì ÐØ Figura 4. o etapa de potencia se encarga de decodificar las ordenes de control enviadas por el ´ controlador. procesar. as´ como de o ı hacer una recopilaci´n y an´lisis de datos tomados del servidor. para luego activar los motores seg´n lo indicado por ´ste.2 muestra el sistema de comunicaci´n entre el cuadric´ptero y la estaci´n o o o ´ de control en tierra (o estaciones). El controlau e dor tambi´n se encarga de recibir.

2 mm) por lo que n resultan ideales para usarse en veh´ ıculos a´reos no tripulados.3: Chasis del cuadric´ptero con motores. Tiene una longitud de 47 cent´ a ımetros de punta a punta y pesa aproximadamente 230 gramos . Estas tarjetas pueden e montarse en diferentes placas de expansi´n.5 ). Las caracter´ ısticas principales de la placa computadora son: Arquitectura: ARM Cortex-A8. que cuenta con interfaces como: puerto serie. o 4.3). Descripci´n del Hardware o El sistema de control a bordo fue montado sobre un chasis de la marca Mikrokopter. Este consiste en cuatro barras de aluminio sujetadas por dos l´minas de fibra de carbono (figura 4. Cinvestav Departamento de Computaci´n o .4) como controlador o principal. a Figura 4. La placa utilizada para este proyecto fue el modelo Summit (figura 4.2. ´ modelo Quadro XL-Frame. Estas computadoras son muy peque˜as (17 x 58 x 4. Controlador Se utiliz´ una placa computadora de la marca Gumstix (figura 4.´ CAP´ ITULO 4. que le dan diferentes funcionalidades al o sistema. bus I 2 C (en ingl´s Inter-Integrated Circuit).1. e bus SPI (en ingl´s: Serial Peripheral Interface) y USB (en ingl´s : Universal Serial e e Bus). 4. Las h´lices utilizadas son de e pl´stico con una longitud de 25 cm. IMPLEMENTACION DEL HARDWARE 37 En las siguientes secciones se explicar´ con mas detalle cada uno de los elementos a que conforman este sistema.2.

DESCRIPCION DEL HARDWARE Figura 4.4: Computadora Gumstix. esta tarjeta cuenta con bastantes recursos.5: Gumstix montado en placa de expansi´n Summit.´ 38 4. Cinvestav Departamento de Computaci´n o . Figura 4. por lo que se pueden agregar funcionalidades al sistema sin hacer cambios al Hardware. Velocidad del procesador: 720 MHz. Comunicaci´n inal´mbrica: Bluetooth.2. WiFi. o Como se puede notar. Memoria RAM: 512 Megabytes. o a Sistema Operativo: Linux (Angstrom). Memoria: entrada para tarjeta SD. Procesador: OMAP3530 de Texas Instruments.

e Los tres girosc´pios est´n colocados en un patr´n ortogonal similar.2. o o o o Una unidad de medici´n inercial usualmente contiene tres aceler´metros. tomando como referencia el norte magn´tico. el cual utiliza un filtro de Kalman extendido para obtener las estimaciones del pitch y roll. yaw ). e El dispositivo AHRS utilizado en este proyecto es el modelo CHR-6d de CH Robotics (figura 4. midiendo la veo a o locidad angular respecto a cada eje. Velocidades ajustables de salida (20Hz-300Hz) y de comunicaci´n (hasta 115200 o baudios). Este dispositivo incluye un procesador ARM Cortex a 64 MHz. Comunicaci´n por TTL UART (en ingl´s: Universal Asynchronous Receiver o e Transmitter ) o por bus SPI. Cinvestav Departamento de Computaci´n o .6: Unidad de medici´n inercial CHR-6d de CH Robotics. roll. IMPLEMENTACION DEL HARDWARE 39 4.6). las UMIs suelen denominarse sistemas de referencia de actitud y rumbo (en ingl´s AHRS o Attitude and Heading Reference Systems). Sensores Unidad de medici´n inercial (UMI) o Un sensor UMI (en ingl´s IMU o Inertial Measurement Unit) es un dispositivo e electr´nico que mide velocidad.2.´ CAP´ ITULO 4. o Las caracter´ ısticas principales de este sensor son las siguientes: ´ Angulos de Euler o cuanterniones como salidas. Los aceler´metros son colocados de tal forma que o o o sus ejes de medici´n sean ortogonales entre ellos. e Cuando se usan en conjunto con un procesador para calcular la orientaci´n relativa o en el espacio (pitch. Figura 4. por lo que se mide la aceleraci´n o o inercial (tambi´n conocida como fuerzas G ) en cada eje. tres gio o rosc´pios y tres magnet´metros. girosc´pios y magnet´metros. orientaci´n y fuerzas gravitacionales usando una como o binaci´n de aceler´metros. Los magnet´metros sirven para detectar hacia o d´nde apunta el veh´ o ıculo.

o Actualizaci´n de mediciones a 10Hz (tarda 99ms en hacer cada medici´n).2G. DESCRIPCION DEL HARDWARE Actualizaciones internas a 500Hz.´ 40 4. o o Cinvestav Departamento de Computaci´n o . midiendo el tiempo que tarda en regresar el eco al transductor. o Software de computadora de c´digo abierto para visualizaci´n de datos y cono o figuraci´n. Regulador de 3.3 Voltios integrado. o Sensor ultras´nico o Los sensores ultras´nicos trabajan excitando un transductor ac´stico con pulsos o u de voltaje.3 a 5.5 Voltios. se puede calcular la distancia a la que se encuentra el objetivo [Wilson. haciendo que ´ste vibre y produzca sonidos ultras´nicos.7: Sensor ultras´nico. 2005]. o Precisi´n en yaw mejor de cinco grados. o Dimensiones de 22.11mm.2. Precisi´n en pitch y roll mejor de dos grados. o Velocidad angular m´xima medible de +/.9mm x 25. o a Firmware de c´digo abierto con herramientas de desarrollo gratuitas. Salida serial (9600 baudios) o anal´gica.7) que cuenta con las siguientes o caracter´ ısticas: Figura 4.1mm x 19. Voltaje de entrada de 3. Estas oscilacioe o nes son dirigidas hacia un objetivo y. Se utiliz´ el sensor MB310 de XL-Maxsonar (figura 4. a Aceleraci´n m´xima medible de +/.2000 ◦ /s.

a Potencia: 90 W. Empuje M´ximo: 580 gr. e Una desventaja es que su control es mucho m´s complejo.2. a Cinvestav Departamento de Computaci´n o . como: e Son m´s baratos de fabricar. o Autocalibraci´n en cada medici´n. u RPM/V: 1100. o Los motores utilizados en el veh´ ıculo son de la marca Robbe ROXXY modelo BLOutrunner 2824-34 (figura 4. o o 4. Motores Usualmente los llamados motores sin escobillas (en ingl´s:“brushless motors”) son e utilizados en veh´ ıculos a´reos no tripulados. a Pesan menos. Son m´s eficientes. N´mero de celdas: 2-3 Lixx / 6-10 Nixx.8). ya que ´stos presentan muchas ventajas e e con respecto a los motores el´ctricos convencionales (con escobillas). Corriente m´xima: 9 A. ıa. (30 segundos).3.´ CAP´ ITULO 4.8 x 26 mm. o Operaci´n a 42KHz. aunque debido a los avana ces de la tecnolog´ esta complejidad se ha eliminado con controladores electr´nicos. Corriente: 4–8 A. a Generan menor interferencia electromagn´tica. los cuales cuentan con las siguientes caracter´ ısticas: Peso: 48 gr. Requieren menos mantenimiento. IMPLEMENTACION DEL HARDWARE 41 Rango de distancias de 20 a 765 cm con resoluci´n de 1 cm. Dimensiones: 28.

mostrado en la figura 4. Se utiliz´ una a o computadora en tableta Galaxy tab 10. DESCRIPCION DEL HARDWARE Figura 4. En el caso de los motores n sin escobillas. 4.´ 42 4.10.2.11) de la marca Samsung como controlador en tierra. se cuentan con controladores el´ctronicos comerciales que usualmente e toman como entrada una se˜al de pulso modulada o una serie de datos transmitidos n por bus i2 c. Cualquier computadora con sistema operativo Linux y tarjeta de red inal´mbrica puede utilizarse como cliente. Esta comunicaci´n se hace a trav´s de un ruteador de la marca Linksys modelo o e WRT54G.1 (figura 4. Interfaz de potencia La interfaz de potencia se encarga de convertir las se˜ales de salida del controlan dor en se˜ales apropiadas para el manejo de los motores. 4.5. el sistema de comunicaciones consiste en una red inal´mbrica (Wi-Fi ) donde el controlador a bordo del cuadric´ptero es el servidor a o y una computadora personal o en tableta pueden ser los clientes. que cuentan con las siguientes caracter´ ısticas: Comunicaci´n por i2 c. Comunicaciones Como se dijo anteriormente. Los controladores utilizados para el cuadric´ptero son de la marca YGE modelo 30 i o (figura 4. Maneja corrientes de hasta 30 A. Cinvestav Departamento de Computaci´n o .8: Motor sin escobillas.9).2.4. o Se pueden conectar hasta ocho controladores en un mismo bus (direcciones 0x29 a 0x30).2.

4. 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 (figura 4. Las bater´ de litio pol´ ıas ımero son muy utilizadas en veh´ ıculos a´reos.13).6. Se unieron todos los cables de 12v para dar toda la capacidad de corriente. Cinvestav Departamento de Computaci´n o . En la figura 4.12 se pude ver la fuente utilizada. ya que son muy ligeras y tienen gran capacidad e de descarga. Estas fuentes son m´s o a baratas que una fuente de poder lineal y pueden otorgar hasta 25 Amperes con voltajes de 12 Voltios. 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 cuadric´ptero.9: Manejador de motores sin escobillas.2.´ CAP´ ITULO 4. Figura 4. IMPLEMENTACION DEL HARDWARE 43 Figura 4.10: Ruteador.

Otras interfaces Los componentes que integran al sistema funcionan con diferentes voltajes. Esta diferencia de voltajes tambi´n sucede con las se˜ales de comunicaci´n.8 a 3.2. Tanto el controlador como los sensores requieren una alimentaci´n de 5 voltios. El regulador de voltaje toma como entrada 12v proporcionados por la bater´ del ıa Cinvestav Departamento de Computaci´n o .7. mientras n que los manejadores de los motores utilizan 5v en el bus i2 c y la UMI funciona con tensiones de 3. Figura 4.3v en su puerto serial.14 muestra el diagrama esquem´tico del circuito. Este consiste en un regulador de a voltaje (12 a 5v) y dos “traductores” de voltaje (uno de 1.3v).2. 4.8 a 5v y otro de 1.11: Computadora en tableta utilizada como control en tierra. DESCRIPCION DEL HARDWARE Figura 4.8v en su puerto serial y en el bus i2 c.12: Fuente de poder de una computadora. La compue n o tadora (Gumstix) utiliza se˜ales de 1. Para resolver este problema.´ 44 4. mientras o que los motores y sus manejadores necesitan 12v. ´ 4. se dise˜o y construy´ un circuito electr´nico que conviern o o te y regula los voltajes de los componentes para poderlos acoplar entre s´ La figura ı.

IMPLEMENTACION DEL HARDWARE 45 Figura 4.´ CAP´ ITULO 4.13: Bater´ de litio pol´ ıa ımero de tres celdas. Figura 4. a veh´ ıculo y los convierte a 5v. Los traductores de voltaje acoplan las tensiones de las se˜ales de comunicaci´n n o del controlador con las de los sensores.14: Diagrama esquem´tico del circuito regulador-traductor de voltaje. Cinvestav Departamento de Computaci´n o . necesarios para alimentar a la computadora y los sensores.

16: Tablilla del circuito regulador-traductor vista por arriba. dando capacidad de e e conectar hasta tres dispositivos extras. Figura 4. Estructuras para pruebas del veh´ ıculo Se utilizaron dos estructuras para contener el veh´ ıculo en las pruebas de evoluci´n: o una para la postura y otra para la altura.15 y 4.2.18).2.17 y 4.19. Otro problema encontrado en el sistema fue que la computadora s´lo tiene un puerto o serial disponible. Este o e Cinvestav Departamento de Computaci´n o .16. Esto se resolvi´ utilizando un convertidor usb-serial conectado o o a trav´s de un concentrador USB gen´rico (figuras 4. ´ Para las pruebas de postura se utiliz´ un tripi´. se necesitaban dos puertos: uno para la UMI y otro para ´ el sensor ultras´nico. 4.15: Tablilla del circuito regulador-traductor vista por abajo. DESCRIPCION DEL HARDWARE La tablilla ya construida puede verse en las figuras 4. como lo muestra la figura 4. sin embargo.8. Figura 4.´ 46 4.

El veh´ o ıculo se uni´ al extremo de esta estructura con o cinta el´stica. de esta manera.20). como lo mueso tra la figura 4. El cuadric´ptero se fija en este pivote y. se hacen las pruebas con o seguridad. Para las pruebas de altura se utiliz´ un poste con una base pesada. probando su utilidad para el entrenamiento de altura. Cinvestav Departamento de Computaci´n o . roll y yaw . Esta configuraci´n permite el vuelo del cuadric´ptero con cierta libera o o tad alrededor del poste y hasta una altura delimitada.´ CAP´ ITULO 4. IMPLEMENTACION DEL HARDWARE 47 Figura 4. y y z (figura 4. A este poste se le uni´ un palo de madera con cinta el´stica para o a darle una funci´n de “brazo”.21.18: Convertidor USB a serial. cuenta con un pivote que contiene tres baleros que permiten un movimiento con libertad en los angulos de pitch. Figura 4.17: Concentrador USB (sin carcasa). mientras mantienen al veh´ ´ ıculo fijo en los ejes x.

con excepci´n del ruteador y el cliente.3.23 se puede ver una imagen del chasis del veh´ ıculo armado con los motores y sus manejadores ya montados. e Figura 4. o La figura 4. a al cual est´n conectados todos los dem´s dispositivos.3. CONSTRUCCION DEL CUADRICOPTERO Figura 4. Todo esto va a bordo del veh´ ıculo. Cinvestav Departamento de Computaci´n o . pasando antes por un traductor de voltaje hacia los e manejadores de potencia. a a ´ A la derecha del diagrama est´ la conexi´n del controlador con los motores.20: Pivote para movimiento en pitch. utilizando los como a o o ponentes mostrados en la secci´n anterior. o En el centro est´ el componente principal. Esta a o se hace a trav´s del bus i2 c. En la figura 4.´ ´ 48 4. Construcci´n del cuadric´ptero o o En esta secci´n se describir´ la construcci´n del cuadric´ptero. roll y yaw.22 nos muestra un diagrama del sistema integrado.19: Tripi´ para pruebas de control de postura. el controlador (computadora Gumstix ). 4.

½¾ Î Ê ÙÐ ½¾ Î Ï ÓÖ Å Ò i2 c Î ÓÒØÖÓÐ ´ ÓÖ ÅÓØÓÖ ½ ÓÖ ÅÓØÓÖ ½ ÚÓÐØ Ú ÓÖ Å Ò ÙÑ×Ø Üµ ¾ 2 ic ÍË ½º Ú Î Å Ò Í ÊÌ ½º Ú Å × × Ò×ÓÖ × ÓÒÚ ÖØ ÍË Ù ¾ ÓÖ ÅÓØÓÖ ¿ ÓÖ ¿ ÚÓÐØ Å Ò ÓÖ ÅÓØÓÖ Í ÊÌ ¿º¿Ú ÓÒÚ ÖØ ÍË ¹× Ö ÓÖ Ð Î ÍÅÁ Ë Ò×ÓÖ ÙÐØÖ × Ò Ó ÊÙØ ÓÖ ÓÒØÖÓÐ Ö ÑÓØÓ ´È ¸ Ø Ð Øµ Figura 4.´ CAP´ ITULO 4.22: Diagrama del hardware del sistema de control del cuadric´ptero.21: Base para pruebas de control de altura. IMPLEMENTACION DEL HARDWARE 49 Figura 4. o Cinvestav Departamento de Computaci´n o .

Para conectar la unidad de medici´n inercial (UMI) con el controlador. El controlador.23: Veh´ ıculo con motores y manejadores de motores montados.3. a o Figura 4.24 y 4.8 a 3.25. que contiene la unidad de medici´n inercial. La tablilla electr´nica con el regulador y los traductores de voltaje se usa adem´s o a como base para montar la computadora. son alimentados ı e con 5v proporcionados por el regulador de voltaje. como se ve en las figuras 4. as´ como tambi´n la UMI y el traductor de voltaje.24: Placa del regulador-traductor de voltaje utilizada como base (vista inferior). Sobre estas dos placas se monta una m´s. CONSTRUCCION DEL CUADRICOPTERO Motor 2 Motor 3 Manejadores Motor 4 Motor 1 Figura 4. Cinvestav Departamento de Computaci´n o .3v. las se˜ales o n del puerto serial deben pasar antes por un traductor de voltaje de 1.´ ´ 50 4.

27. como lo muestra la figura 4. Finalmente.26: Placas montadas en el cuadric´ptero. el o o e cual est´ conectado a un concentrador USB. con la compuo tadora y la unidad de medici´n inercial al centro del veh´ o ıculo. Estas tres placas. IMPLEMENTACION DEL HARDWARE 51 Computadora Antena WiFi Placa reguladora−traductora Figura 4. Esta tambi´n sirve para facilitar la o e manipulaci´n del veh´ o ıculo en la etapa de pruebas. la figura 4.25: Computadora montada sobre placa reguladora-traductora de voltaje.´ CAP´ ITULO 4.26. a Como medida de protecci´n para las h´lices del cuadric´ptero y las personas.29 muestra el cuadric´ptero ya ensamblado. montadas una sobre la otra. UMI Figura 4. se atornillan al centro del cuadric´pteo ro como lo muestra la figura 4. el concentrador USB Cinvestav Departamento de Computaci´n o . o La conexi´n del sensor ultras´nico se hace a trav´s de un convertidor usb-serial.28). se o e o ´ construy´ una carcasa de madera (figura 4.

3. o o Figura 4.´ ´ 52 4. o un poco m´s arriba sobre la carcasa de madera y el sensor ultras´nico en la base del a o veh´ ıculo. en el centro de masa de ´ste.28: Cuadric´ptero con carcasa de madera. e Cinvestav Departamento de Computaci´n o .27: Conexi´n del sensor ultras´nico. CONSTRUCCION DEL CUADRICOPTERO Alimentacion Conector usb a la computadora Sensor ultrasonico Convertidor USB−serial Concentrador usb Figura 4. La bater´ es colocada justo debajo del veh´ ıa ıculo.

´ CAP´ ITULO 4.29: Cuadric´ptero. IMPLEMENTACION DEL HARDWARE 53 Concentrador USB Computadora e IMU Sensor ultrasonico Figura 4. o Cinvestav Departamento de Computaci´n o .

3.´ ´ 54 4. CONSTRUCCION DEL CUADRICOPTERO Cinvestav Departamento de Computaci´n o .

o o entre otras. como el manejo de dispositivos de hardware. 5. Linux y tiempo real Linux es un sistema operativo originalmente escrito por Linus Torvalds. utilizados en la computadora a bordo del veh´ ıculo. como el sistema operativo Linux y el parche de tiempo real Xenomai. Primero se dar´ una descripci´n de las plataformas de o o a o desarrollo utilizadas. Plataformas de desarrollo Como se ha dicho en cap´ ıtulos anteriores. El software de aplicaci´n depende de las cao racter´ ısticas espec´ ıficas de este kernel. 55 . el cual a interact´a con el software de configuraci´n de la computadora personal y con el conu o trol en tierra.1. El uso de SO en sistemas empotrados puede dar muchas ventajas con respecto a una programaci´n directa en el procesador: o abstracci´n de hardware. Finalmente. el avance en la tecnolog´ ha dado un ıa gran impulso al desarrollo de veh´ ıculos a´reos no tripulados. capacidad de multiprocesamiento y reutilizaci´n de software. m´s capaces y con bajo consumo de energ´ son f´cilmente montables en n a ıa a veh´ ıculos peque˜os. Luego se mostrar´ el sistema de control a bordo. realizado en una computadora en tableta.1. El kernel de Linux provee una variedad de facilidades requeridas por cualquier sistema basado en linux para operar correctamente.1. dotando a ´stos con mayores recursos como memoria y capacidad n e de procesamiento. Gracias a ´sto. Circuitos integrados m´s e a peque˜os.Cap´ ıtulo 5 Implementaci´n del software o En este cap´ ıtulo se describir´ el software desarrollado para el control y la confia guraci´n del cuadric´ptero. se describir´ la a implementaci´n del algoritmo de evoluci´n diferencial para el ajuste de los par´metros o o a del controlador PID del veh´ ıculo. ha sido posible incluir sistemas operativos (SO) en dise˜os donde antes e n se programaba directamente en el procesador. as´ como tambi´n el ı e sistema operativo Android. 5.

portabilidad. Sistemas como QNX. en este trabajo de tesis ha sido utilizado Xenomai. o Linux ha sido adaptado para dar soporte en tiempo real.1.xenomai. Estas adaptaciones han sido llamadas “Linux en tiempo real” (en ingl´s: Real-Time Linux o RT Linux). servidores de sitios web como Google. e Hay numerosas versiones de Linux en tiempo real disponibles. Est´ disponible en www. desde el m´s peque˜o dispositivo de mano hasta en un cluster de superc´mputo. Es un sistema maduro y estable.. RTAI. Este sistema operativo puede ser encontrado en una gran variedad de dispositivos. e Algunas caracter´ ısticas importantes de linux son: C´digo abierto. archivos. e etc´tera [Yaghmour et al.org. o Hay versiones que requieren poca memoria (2MB). El planificador de Linux est´ dise˜ado para tener la mejor respuesta promedio. 2008]. Xenomai. Es un derivado de RTAI.56 5. ´sto no garantiza que alguna tarea en particular siempre corra dentro de e un tiempo l´ ımite.rtai. grabadoras. sockets. a n o Algunos ejemplos del amplio rango de aplicaciones que utilizan Linux son: televisiones digitales. tareas (o procesos). Los sistemas operativos en tiempo real (en ingl´s: RTOS o Real Time Operating e Systems) ofrecen garant´ en el planificador de tareas. otras comerciales. Desarrollado por la Universidad Polit´cnica de Mil´n y disponible en e a https://www. tel´fonos celulares. Gran variedad de software disponible. por ejemplo. Sin a n embargo. Xenomai adem´s considera extensibilidad. Desarrollado por New Mexico Tech y ahora mantenido por Wind River Systems. no para prop´sito general. algunas libres. a Debido a sus caracter´ ısticas. PLATAFORMAS DE DESARROLLO as´ como tambi´n de una variedad de abstracciones fundamentales como la memoria ı e virtual. y a mantenibilidad como metas importantes. Lynxos ıas o VxWorks son usados t´ ıpicamente para aplicaciones de control o de comunicaciones. Cinvestav Departamento de Computaci´n o . Una tarea puede ser suspendida por un largo tiempo arbitrario. etc. cuando un manejador de dispositivos da servicio a una interrupci´n de o disco.org/. Tres versiones com´nmente disponibles son: u RTLinux. Mientras RTAI se enfoca en las m´s bajas a latencias posibles.

Linux puede considerarse como una tarea inactiva del planificador de tiempo real.´ CAP´ ITULO 5. Xenomai ´ El proyecto Xenomai fue lanzado en agosto de 2001. u e Han sido implementadas las siguientes pieles: POSIX.1). VRTX.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. lo cual significa que el kernel de TR tiene mayor prioridad que el kernel de Linux (figura 5. La idea general de Xenomai es que un peque˜o kernel de tiempo real (TR) corra n bajo Linux. VxWorks. RTAI. utilizable para crear todo tipo de interfaces en tiempo real. pSOS+. uITRON. Cuando esta tarea inactiva corre. ejecuta su propio planificador y maneja los procesos Cinvestav Departamento de Computaci´n o . ÄÐ Ñ × Ð × ×Ø Ñ ÁÒØ ÖÖÙÔ ÓÒ × ÓÒØÖÓÐ ÒØ ÖÖÙÔ ÓÒ × ÓÒØÖÓÐ ÒØ ÖÖÙÔ ÓÒ × ÓÑ Ò Ó ÒÓÑ ´ÔÖ Ñ Ö Óµ ÓÑ Ò Ó Ä ÒÙÜ ´× ÙÒ Ö Óµ Figura 5. Estas interfaces. La piel de Xenomai. Este est´ basado en un n´cleo a u abstracto. IMPLEMENTACION DEL SOFTWARE 57 5. llamadas “pieles” (en ingl´s: skins).2. se comunican de una manera espec´ e ıfica con las aplicaciones usando los servicios del n´cleo gen´rico.1: El kernel de tiempo real (primario) tiene mayor prioridad que el kernel de Linux (secundario). Nativa.

Espec´ ıficamente.2. o middleware y un conjunto de APIs. Este sistema fue creado para correr en tel´fonos celulares.3. Adem´s. sus APIs permiten un acceso total al hardware. es la aplicaci´n a bordo del veh´ o ıculo. aunque est´n disponibles otras herramientas de desarrollo para aplicaciones en C o C++. Esta se encarga del control autom´tico del mismo y adem´s atiende las peticiones de los clientes. Android Android es una pila de software de c´digo abierto. utilizando a a Cinvestav Departamento de Computaci´n o . Webkit. una tarea de Linux es detenida cuando una tarea de TR est´ lista para correr. Un kit de desarrollo de software (en ingl´s: SDK o Software Development Kit e ´ usado para crear aplicaciones. a Una ventaja que tiene Android sobre otros sistemas operativos como iOS o Windows phone. Bibliotecas de c´digo abierto para el desarrollo de aplicaciones. incluyendo SQo Lite. manejo de memoria y control de procesos.1. por ello C es el lenguaje preferido para escribir programas a de Linux en tiempo real.´ ´ 58 5. La m´quina virtual Dalvik. o Las aplicaciones en Android se escriben habitualmente en lenguaje Java. Est´ dia a se˜ada para ser peque˜a y eficiente para uso en dispositivos m´viles. 2012]. a un requerimiento importante para este trabajo. incluyendo las siguientes: a Un kernel de Linux que provee una interfaz de bajo nivel con el Hardware. OpenGL. ıa Un conjunto de aplicaciones preinstaladas. que incluye el sistema operativo. n n o Un marco de trabajo que ofrece servicios a la capa de aplicaci´n. 5. etc.2. es que posee plataformas de desarrollo gratuitas y no se requieren licencias para desarrollar software. escrita en C. Control y configuraci´n del cuadric´ptero o o Para el control y configuraci´n del cuadric´ptero se desarrollaron tres aplicaciones. CONTROL Y CONFIGURACION DEL CUADRICOPTERO del Linux normal. o o ´ La primera. pero ya se ha expandido e su uso para computadoras en tableta. Como el kernel de tiempo real tiene mayor prioridad. telefon´ y sensores. Android est´ hecho de varias partes. incluyendo las herramientas relacionadas y documentaci´n [Meier. a Xenomai est´ escrito en C. bases de datos. incluyendo el o manejador de ventanas. 5. la cual es ejecutada inmediatamente. utilizada para ejecutar las aplicaciones.

los valores de referencia del controlador.2). o a a 5. Es una interfaz de configuraci´n de las constantes del controlador. Finalmente. e La figura 5. IMPLEMENTACION DEL SOFTWARE 59 hilos en tiempo real. es el punto de entrada de la aplicaci´n. que corre en el dominio de Linux. el hilo de o a control de postura. donde se calibran los girosc´pios con velocidad inicial de cero. A continuaci´n se describir´n estas aplicaciones con m´s detalle. El primer paso es inicializar la unidad de medici´n inercial. En o o esta etapa el veh´ ıculo debe permanecer inm´vil por al menos tres segundos. como las mediciones de los sensores. o En ´l se inicializa el sistema y se crean los otros hilos. o Cinvestav Departamento de Computaci´n o . el modo de control. Hilo principal Este hilo. o o Î Ö Ð × ÐÓ Ð × ´Ñ ÑÓÖ ÓÒ×Ø ÒØ × ÈÁ Î ÐÓÖ × Ö ÈÖ Ò Ô Ð Ù × ÓÒØÖÓÐ Ò ÙÐ Ö × ÐØÙÖ ÓÒØÖÓÐ × À ÐÓ× È Ø ¸ ÖÓÐи Ý Û Î ÐÓ ÅÓ Ó µ Ö Ò ÓÒØÖÓÐ ÔÓ×ØÙÖ ÓÑÔ ÖØ ÐØÙÖ Ë ÖÚ ÓÖ Ò Figura 5.2.1. Controlador a bordo Esta aplicaci´n se compone b´sicamente de cuatro hilos: el hilo principal.´ CAP´ ITULO 5. se desarroll´ una aplicaci´n en Java o o para computadora en tableta que funciona como control manual en tierra. e Para evitar la corrupci´n de los datos compartidos se utiliza la exclusi´n mutua.2: Hilos b´sicos del software a bordo del veh´ a ıculo y memoria compartida. as´ como o ı de lectura de los sensores a bordo. etc´tera (figura 5. Estos a cuatro hilos interact´an a trav´s de la memoria compartida. La segunda fue escrita en Python y Qt para computadoras con Linux. la cual contiene las u e principales variables requeridas por todos ellos.3 muestra el diagrama de flujo. el hilo de control de altura y el hilo servidor (uno o m´s).

CONTROL Y CONFIGURACION DEL CUADRICOPTERO Despu´s de ´sto.2. en modo manual con un valor e e ´ de 20 (de un rango de 0 a 255). a u A partir de ese momento.´ ´ 60 5. Esto se hace para lograr un arranque m´s suave a cuando se incremente la velocidad. Para cada petici´n se crea un hilo servidor que se encarga de o o ejecutar los comandos requeridos por el cliente. ya que el sistema a´n se encuentra en modo manual. pero no o empezar´n a trabajar. se crean y corren los hilos de control de postura y altura. A continuaci´n. se inicializan los motores.3: Hilo principal e hilo servidor de la aplicaci´n de control a bordo. À ÐÓ ÔÖ Ò Ô Ð ´ ÓÑ Ò Ó Ä ÒÙܵ À ÐÓ × ÖÚ ÁÒ Ó ÁÒ ÓÖ ´Ìʵ ÁÒ Ó ×Ô Ö ÍÅÁ ØÓ× Ð Ð ÒØ ÅÓ Ó Ñ ÒÙ Ð ÅÓØÓÖ × ÁÒ Ò ÔÓ×ØÙÖ ÙØ ¾¼ ÐÓ× Øк Ý ØÙ Ð Þ ÐØÙÖ Ú Ö È Ø Ò ÆÓ ÓÑ Ò Ó ÆÓ ´ÑÙØ Üµ Ð × ÐÓ Ò ÓÒ Ü Ð ÒØ Ë Ö ÐÓ × ÖÚ Ð × Ò Ë ÓÖ Ò Figura 5. el hilo principal se mantiene esperando por peticiones de conexi´n de clientes. uno a uno. o Cinvestav Departamento de Computaci´n o .

ÝØ Æ Ñ ÖÓ ÝØ ÝØ × ÓÑ Ò Ó ÝØ ÝØ ØÓ ½ ØÓ Ò Figura 5. y el unico ´ ´ que puede manipular las salidas a los motores despu´s de la inicializaci´n en el hilo e o principal. Despu´s de recibir el paquete de datos enviado por el cliente. La tabla 5.4: Estructura de los paquetes de datos enviados entre el servidor y el cliente. es el a encargado de atender los comandos enviados por las aplicaciones clientes.4. c´lculo de a a variables de control y salida a motores que se repite cada 10 milisegundos. Un paquete de datos. roll y yaw. ya sea con los e valores requeridos por el cliente o s´lo regresando el mismo comando recibido como o un aviso de que ya se ha ejecutado. e Lo primero que hace este hilo al ser creado. El cliente y el servidor se comunican a trav´s de sockets con el protocolo TCP/IP. B´sicamente. as´ como el modo de operaci´n del veh´ ı o ıculo. consta de tres partes: un byte que contiene el n´mero de bytes enviados por el cliente.5 muestra el diagrama de flujo del hilo de control de postura.1 muestra el conjunto de comandos que puden ser ejecutados por el servidor. Cinvestav Departamento de Computaci´n o . De la memoria compartida tambi´n e se leen los valores de referencia y constantes a utilizar por los controladores PID. para despu´s responder al cliente con otro paquete de datos. se leen los angulos y velocidades actuales de la UMI. se ejecuta el comando e contenido. los cuales son actualizados en la ´ memoria compartida para su uso en otros hilos. Al terminar de ejecutar el comando. Hilo de control de postura Este hilo en tiempo real tiene la prioridad de interrupci´n m´s alta. IMPLEMENTACION DEL SOFTWARE 61 Hilo servidor Este hilo (o hilos). ya sea la interfaz de configuraci´n de la computadora o el control en tierra de la computadora o en tableta. el hilo servidor actualiza las variables globales que hayan cambiado para que los dem´s hilos puedan disponer de la nueva infora maci´n. Este ciclo se realiza hasta que el cliente se desconecte de la red y el hilo se o destruya. Como primer paso. un byte que contiene u el comando a ejecutar y una cadena de bytes (opcional) que contiene los par´metros a relacionados con el comando. es esperar el env´ de un paquete de datos ıo del cliente. como lo muestra la figura 5. con la m´s baja prioridad de los hilos en tiempo real. La Figura 5.´ CAP´ ITULO 5. este hilo consiste en un ciclo de lectura de sensores. Es el encargao a do de calcular las variables de control de los angulos de pitch.

Hilo de control de altura Este hilo de tiempo real tiene la segunda prioridad de interrupci´n m´s alta. La estructura de este hilo es muy semejante a la del de control de postura. primero se lee el sensor ultras´nico para determinar la o altura actual del veh´ ıculo. Este valor se pasa por un filtro pasabajas de segundo orden para eliminar el ruido en las lecturas. Como se ve en la figura 5. El valor resultante se pasa luego a la memoria compartida para su uso en otros hilos. 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 .5. kI y kD del control de pitch Cambiar valores de kP . los valores de los motores son ajustados directao mente por el usuario a trav´s de la memoria compartida. las constantes del controlador PID y el modo de control a utilizar. roll. Si el control autom´tico de altura est´ activado. En este paso se leen tambi´n los valores de e referencia. Si el modo de operaci´n es manual. CONTROL Y CONFIGURACION DEL CUADRICOPTERO C´digo 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. siendo un ciclo de lectura. Es o a el encargado de calcular la variable de control de altura. kI y kD del control de altura Cambiar modo de control Enviar ultimo valor le´ de sensor ultras´nico al cliente ´ ıdo o Cambiar valor de referencia de control PID de altura Tabla 5. se lee la variable de control de altura calculada en otro hilo (si el modo a aut´matico de control de altura est´ activado) y se ejecutan los algoritmos de control o a PID descritos en el cap´ ıtulo 3. control y salida que se repite cada 100 milisegundos. Si el modo de operaci´n es e o autom´tico. las aportaciones de las variables de control son enviadas a cada motor y se esperan 10 milisegundos para empezar el ciclo de nuevo. De esta forma se determinan las variables de control de los angulos pitch. kI y kD del control de roll Cambiar valores de kP .´ ´ 62 5. roll y yaw. ´ Finalmente. que es le´ por el hilo de ıda control de postura para sumarla a la salida de los motores. se calcula la variable de control a a Cinvestav Departamento de Computaci´n o . kI y kD del control de yaw Cambiar valores de referencia de los PID de pitch.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 especificado por el cliente Cambiar valores de kP .2.1: Lista de comandos ejecutables por el hilo servidor.2.

2. o de altura utilizando el algoritmo de control PID descrito en el cap´ ıtulo 3. es actualizada en la memoria compartida para que pueda ser aplicada sobre los motores en el hilo de control de postura.´ CAP´ ITULO 5.2. no se hace ning´n c´lculo. Este ciclo contin´a cada 100 milisegundos. IMPLEMENTACION DEL SOFTWARE 63 À ÐÓ ÓÒØÖÓÐ ÔÓ×ØÙÖ ´Ìʵ À ÐÓ ÓÒØÖÓÐ ÁÒ Ó Ä Ä ´ÑÙØ Üµ Ú Ö ÙÐØÖ × Ò Ó ÐØÖÓ Ô × × Ð × ØÙ Ð Þ ´ÑÙØ Üµ Ú Ö ÆÓ ´Ìʵ ÁÒ Ó ÍÅÁ ØÙ Ð Þ ÐØÙÖ Ð × ÅÓ Ó ÙØÓÑ Ø Ó Ë Ä ÐØÙÖ Ø Ú ´ÑÙØ Üµ Øк ÑÓØÓÖ × ÓÒØÖÓÐ ÆÓ Ó ÐØÙÖ v1 ·v2 ·v3 ·v4 Ë ÑÓØÓÖ × ÈÁ ´θ ¸φ¸ψ µ · Øк ÐØÙÖ ½¼ ÑË ´ÑÙØ Üµ ØÐ ÐØÙÖ ÈÁ ´ ÐØÙÖ µ ½¼¼ÑË Figura 5. u a u 5. Aplicaci´n de configuraci´n en computadora o o Esta aplicaci´n fue escrita en Python y se utiliz´ Qt para crear la interfaz gr´fica o o a de usuario. as´ como tambi´n para probar estas ı e Cinvestav Departamento de Computaci´n o . Si el modo de control es manual. Una vez obtenida esta variable.5: Hilos de control de postura y altura de la aplicaci´n de control a bordo. Funciona como cliente y sirve para configurar las constantes de los controladores PID que conforman el sistema a bordo.

´
´
64 5.2. CONTROL Y CONFIGURACION DEL CUADRICOPTERO
configuraciones en el laboratorio.
La figura 5.6 muestra la interfaz de usuario de la aplicaci´n. En la esquina superior
o
derecha est´n los botones de conexi´n y desconexi´n con el servidor; y de encendido y
a
o
o
apagado del veh´
ıculo. Un poco m´s 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 configurar la variable Gas y un bot´n de paro de emergencia.
o
A la izquierda se encuentran los cuadros de edici´n 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 gr´ficas de los valores obtenidos de la unidad
a
de medici´n inercial y del sensor ultras´nico, 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 aplicaci´n de configuraci´n.
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 Computaci´n
o

´
CAP´
ITULO 5. IMPLEMENTACION DEL SOFTWARE 65
m´s ligero, mayor movilidad y un conjunto de sensores que pueden enriquecer la forma
a
de interactuar con el usuario. Esta aplicaci´n aprovecha los aceler´metros, girosc´pios
o
o
o
y magnet´metros incluidos para crear un control m´s intuitivo para el usuario.
o
a
El control se basa en cambios de posici´n del dispositivo, el cual tiene un sistema de
o
coordenadas fijo igual al sistema de coordenadas del cuadric´ptero. Como se puede
o
ver en la figura 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 cuadric´ptero “imita”
ıa
o
la posici´n de la tableta.
o

Ö ÒØ

x
frente

+

ÖÓÐÐ

Ö
ÞÕÙ Ö

y

Motor 1

izquierda


roll

pitch

+

Ë ÅËÍÆ

Motor 4

derecha

+

y

ØÖ ×

z
+

+

x

B

+
Ô Ø

− 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
dric´ptero tendr´ un cambio de un grado, esto es: pitchVeh´
o
a
ıculo = (0.5 · pitchtableta).
La relaci´n 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 cuadric´ptero roo
tar´ un grado. Por seguridad, se pueden hacer giros m´ximos en pitch y roll de ±10
a
a
grados
La figura 5.8 muestra la interfaz de usuario de la aplicaci´n. 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. Tambi´n se encuentra el bot´n de apagado y encendido
e
o
Cinvestav

Departamento de Computaci´n
o

´
´
66 5.3. AJUSTE DE PARAMETROS DEL PID CON EVOLUCION
DIFERENCIAL
de los motores.

Figura 5.8: Interfaz de la aplicaci´n 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 bot´n “blockalt”
o
´
sirve para habilitar o inhabilitar las barras. Esto es util para evitar hacer cambios
´
accidentales en esos valores.
El bot´n “autoAlt” activa o desactiva el control autom´tico de altura. Si est´ deso
a
a
activado, el control manual de altura se hace modificando los valores en la barra de
Gas.
A la derecha de la pantalla se encuentran los botones “pitchRoll” y “yaw”. Cuando el
bot´n “pitchRoll” est´ activado, la rotaci´n en los ejes x y y de la tableta modifican
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 cuadric´ptero. Lo mismo sucede con el bot´n “yaw”que s´lamente modifica los
o
o
o
valores de referencia cuando est´ activado.
a

5.3.

Ajuste de par´metros del PID con evoluci´n
a
o
diferencial

Para el ajuste de par´metros del controlador PID se implement´ el algoritmo de
a
o
evoluci´n diferencial en la computadora a bordo del veh´
o
ıculo, pero adem´s se desaa
Cinvestav

Departamento de Computaci´n
o

kI en θ. IMPLEMENTACION DEL SOFTWARE 67 rrollo una aplicaci´n cliente en Python y Qt para la captura de datos. kIφ . todo esto con base en una funci´n de o desempe˜o. z son las constantes derivativas de los controladores de pitch. kDφ . se encontraron experimentalmente. (5. yaw y altura.1. e El programa comienza en el hilo principal (figura 5. 5. utilizando el programa de configuraci´n en la computadora. que por medio de mutaci´n y recombinaci´n se crean o o o nuevas generaciones mejores que las anteriores. kPψ .9). A continuaci´n se describir´ m´s a detalle el desarrollo de estas aplicaciones. ψ. z son las constantes integrales de los controladores de pitch. En este o diagrama no aparecen. φ. se afecta a diferentes controladores PID.1) altura : X = [kPz .9. o Como se mencion´ en el cap´ o ıtulo 3. kDψ ] ∈ R9 . La estructura a a de los dos programas es la misma. pero tambi´n existen los hilos de control de postura. φ. n Los individuos de postura y altura se definen de la siguiente manera: postura : X = [kPθ .10 y 5. yaw y altura. Evoluci´n diferencial en computadora a bordo o Esta fue escrita en C y es la encargada de encontrar los par´metros adecuados para a un correcto funcionamiento de los controladores PID. kIψ . El sistema de memoria o compartida tambi´n es el mismo. la funci´n de o desempe˜o de los individuos es distinta y el criterio de paro es de menos generaciones n en el control de altura. o Las figuras 5. kDθ . con la diferencia de que los par´metros de entraa da son de diferente longitud. ψ. kIθ . kD en θ.2) donde: kP en θ. el problema de ajuste de par´metros se separ´ en a o dos: ajuste de par´metros de altura y ajuste de par´metros de postura. el cual espera una petici´n o Cinvestav Departamento de Computaci´n o . altue ra y servidor descritos en la aplicaci´n de control a bordo. roll. ψ. Como se detall´ en el cap´ o ıtulo 3. yaw y altura. o a a 5. roll. roll.´ CAP´ ITULO 5. (5. z son las constantes proporcionales de los controladores de pitch. supervisi´n y o o control del estado de la evoluci´n. kIz . kDz ] ∈ R3 . el algoritmo de evoluci´n diferencial se basa en tener o una poblaci´n de individuos. φ.11 muestran el diagrama de flujo de la aplicaci´n. o Tomando estos vectores y usando una poblaci´n de 30 individuos se puede iniciar el o proceso de evoluci´n diferencial.3. Los l´ ımites superior e inferior de sus posibles valores. kPφ .

mientras la se˜al de error de los ´ngulos o de altura n a (seg´n sea evoluci´n de postura o altura) es muestreada y guardada en un vector.11 muestra el diagrama de flujo o de esta funci´n. Esta variable tambi´n se pasa a la memoria compartida e y el algoritmo se detiene de nuevo hasta que el cliente la lea. es necesario crear otra serie de individuos temporales para que como pitan con aquellos reci´n creados. a o Al terminar de hacer esta selecci´n con toda la poblaci´n. se obtiene comparando las aptitudes o de los individuos temporal y de la generaci´n actual. que toma como par´metros las u o n a se˜ales de los errores. Una vez que los datos son le´ ıdos por el cliente. 3 i=60 i=0 (5. n Recordando el cap´ ıtulo 3. AJUSTE DE PARAMETROS DEL PID CON EVOLUCION DIFERENCIAL de conexi´n del cliente.11.´ ´ 68 5. La figura 5. integral y derivativa) se carga al controlador PID del veh´ ıculo. Despu´s de eso se actualizan los valores obtenidos (n´mero de individuo. e u generaci´n. espera o n a a que el cliente la lea. Este proceso se hace para doscientas generaciones. se eval´a el individuo generado u para determinar su aptitud. est´ individuo (constantes proo a e porcional.0166i|+ |eθ (ti )|+|eφ (ti )|+|eψ (ti )|. par´metros) en la memoria compartida para que el cliente pueda leer los o a datos. Primero se eligen al azar tres padres de la poblaci´n e o actual. para luego esperar a que el cliente lea estas variao bles. la funci´n de desempe˜o para la evoluci´n diferencial de o n o postura es: 59 999 1 |eθ (ti )·0.0166i|+|eφ (ti )·0. Al conectarse el cliente (programa de control de evoluci´n dio o ferencial de la computadora).3) y para la evoluci´n diferencial de altura: o 1 f (X) = 3 Cinvestav Departamento de Computaci´n o . el individuo temporal es generado mediante los procesos de mutaci´n y reo combinaci´n explicados anteriormente. Despu´s. Todo ´sto se repite hasta e formar la primera poblaci´n de treinta individuos. Un individuo es generado aleatoriamente. La forma de evaluaci´n de un individuo se muestra en el diagrama de flujo de la figura o 5. que es cuando el algoritmo se detiene y toma como resultado al mejor individuo obtenido. El veh´ ıculo se enciende por 10 segundos. se obtiene la aptitud e del individuo temporal por medio de la funci´n de desempe˜o y una vez m´s.3. El que tenga la mejor aptitud o (valor m´s cercano a cero) es el que domina y gana la nueva posici´n. Los valores obtenidos son actualizados en la o memoria temporal y se espera a que el cliente los lea. El nuevo individuo.0166i|+|eψ (ti )·0. la aplicaci´n espera una se˜al de inicio para comenzar o n el algoritmo de evoluci´n diferencial. o A continuaci´n. de la siguiente generaci´n. Al u o terminar de hacer el muestreo. o El primer paso es inicializar la poblaci´n. dentro de los l´ o ımites especificados. Esta funci´n toma al individuo como par´metro. se determina el mejor y o o peor individuo de la generaci´n. el controlador del veh´ ıculo se apaga y se determina la aptitud del individuo seg´n la funci´n de desempe˜o.

9 f (X) = i=0 99 |ez (ti ) · 0.1i| + i=10 |ez (ti )|.´ CAP´ ITULO 5. la o Cinvestav Departamento de Computaci´n o . eψ y ez son los errores de la posici´n del veh´ o ıculo con respecto a los valores de referencia en el instante de tiempo i. la estructura para hacer las pruebas de la evoluci´n de postura y. (5. parte 1. eφ . IMPLEMENTACION DEL SOFTWARE 69 ÚÓÐÙ ÈÖ Ò Ô Ð ÁÒ Ó Ò ÁÒ Ó Ø ÖÑ Ò Ô ÓÖ Ò Ñ ÓÖ Ý Ú ÙÓ Ò Ö ÁÒ ÈÓ Ð Ð Ò Ò´µ ÆÓ Ð ÒØ ÓÒ Ø ØÙ Ð Þ Ó ÁÒ Ú ÙÓ Ñ ÓÖ × Ý Ô ÓÖ × Ò ¼ Ú ÙÓ× ´ÑÙØ Üµ Ë ÆÓ ÆÓ ÆÓ Ë ÁÒ Ð Ú ÙÓ ¿¼ Î Ö Ð Ð ÔÓÖ Ð ÒØ Ò Ó Ë Ë Ë Ð ÚÓÐÙ ¿ Ô Ò ÁÒ Ð Ò Ò ·½ Ö × Ú Þ Ö ÙÓÌ ÑÔ Ë ÑÙØ Ò Ý Ö ÓÑ Ò Ò Ò ¾¼¼ ÆÓ Ò Figura 5.12 se puede ver.9: Diagrama de flujo de ED en computadora a bordo. a la derecha. En la figura 5. Las evaluaciones de los individuos se hacen con el veh´ ıculo montado en las estructuras de prueba descritas en el cap´ ıtulo 4. a la izquierda.4) donde: eθ .

10: Diagrama de flujo de ED en computadora a bordo. AJUSTE DE PARAMETROS DEL PID CON EVOLUCION DIFERENCIAL ØÙ Ð Þ Ú Ö Ð × ´ÑÙØ Üµ ÒÁÒ Ú ÙÓ¸ Ò Ò¸ ³× ÔØ ØÙ Ì ÑÔ ÔØ ØÙ ÆÓ Ë ÆÓ Î Ö Ð × Ð ÔÓÖ Ð × ÒØ ÁÒ ÁÒ Ú ÙÓÆÙ ÚÓ Ú ÁÒ ÙÓÌ ÑÔ Ú ÙÓÆÙ ÚÓ ÁÒ Ú ÙÓ Ë ÔØ ØÙ Ú Ð Ì ÑÔ ´ÁÒ Ú ÙÓÌ ÑÔµ ÁÒ ÁÒ ØÙ Ð Þ ÔØ ØÙ Ú Ú ÙÓ ÙÓ · ½ Ì ÑÔ ´ÑÙØ Üµ ÆÓ Î Ö ÔÓÖ Ð Ð Ð ÒØ Ë Figura 5.3. estructura de pruebas de la evoluci´n de altura. parte 2. A trav´s o e Cinvestav Departamento de Computaci´n o . o 5.2.´ ´ 70 5.3. Control de evoluci´n diferencial en computadora o Esta aplicaci´n se desarroll´ con el fin de tener una interfaz de control y seguimiento o o del algoritmo de evoluci´n diferencial ejecutado en la computadora a bordo.

Est´ gr´fica sirve para conocer el avance de la evoluci´n ı e a a o Cinvestav Departamento de Computaci´n o . La figura 5.11: Diagrama de flujo de ED en computadora a bordo. Al t´rmino de o a a e cada evaluaci´n se muestra la aptitud obtenida. roll y yaw. de ella se puede iniciar o detener el proceso. donde se o a a van graficando las aptitudes de los mejores y peores individuos de cada generaci´n. se encuentran los botones de inicio (>) y a pausa (||) de la evoluci´n. En la esquina a o superior izquierda de la ventana se muestran los datos del individuo actual: el n´mero u de individuo. Estos son necesarios para detener y reiniciar la evaluaci´n o o del veh´ ıculo en caso de que sea necesario. IMPLEMENTACION DEL SOFTWARE 71 ÁÒ ÔÓ Ð Ò ÚÐ ÁÒ Ó ÁÒ Ó Ú Ð ¼¸ ´ÁÒ Ú ÙÓµ Ò ¼ Å Ò Ô Ö Ñ ØÖÓ× ÓÒØÖÓÐ ØÙ Ð Þ ÓÖ ÈÁ ÔØ ØÙ ´ÑÙØ Üµ Ò ÆÓ ¿¼ Ò ÓÒØÖÓÐ ÙØÓÑ Ø Ó ½¼ Ë Ý ÔØÙÖ × Ð × ÖÖÓÖ Ò Ë ÆÓ Î Ö ÔÓÖ Ð Ð Ð ÒØ ÅÓ Ó Ñ Ò٠к ÅÓØÓÖ × Ò Ö Ò Ú ÙÓ Ð ØÓÖ Ñ ÒØ ¾¼ Ë ÔØ ØÙ ·½ ØÙ Ð Þ Ú Ö × ÑÔ Ó´ ÖÖÓÖ ×µ Ð × ´ÑÙØ Üµ ÒÁÒ Ú ÙÓ¸ Ò Ò¸ ³× Ê ÆÓ Î Ö Ð × Ð ÔÓÖ Ð Ö × ÔØ ØÙ × ÒØ Ë Figura 5. un poco m´s abajo. que va actualizando los datos seg´n se van produciendo u en el cuadric´ptero. parte 3. o as´ como tambi´n la mediana.´ CAP´ ITULO 5. En la parte de arriba est´ la gr´fica de las evaluaciones.13 muestra la interfaz gr´fica para la evoluci´n de postura. o En la misma columna. la generaci´n y los par´metros que se est´n evaluando. as´ como visualizar y guardar los datos ı generados. El resto de la interfaz consta de dos gr´ficas: al fondo est´ la gr´fica de las se˜ales de a a a n errores en pitch.

13: Interfaz de usuario de la aplicaci´n de evoluci´n diferencial en la compuo o tadora.´ ´ 72 5. a Figura 5. Esta aplicaci´n adem´s genera cuatro archivos de texto donde guarda los datos o a Cinvestav Departamento de Computaci´n o . o diferencial y determinar si el algoritmo est´ convergiendo. AJUSTE DE PARAMETROS DEL PID CON EVOLUCION DIFERENCIAL Figura 5.3.12: Estructuras para las pruebas de evoluci´n diferencial de postura y altura o del cuadric´ptero.

el programa contin´a su ejecuci´n o u o normal.15 muestra la gr´fica de las aptitudes de los mejores y peores individuos a de la evoluci´n de postura. En el cuarto archivo se guardan los valores de las aptitudes de los mejores o y peores individuos.´ CAP´ ITULO 5. mano teniendo al cuadric´ptero detenido. aunque encontrar un individuo suficientemente bueno tom´ menos de la mitad o Cinvestav Departamento de Computaci´n o .5 segundos para que el veh´ o ıculo detenga su movimiento y lee la aptitud resultante del individuo evaluado.3. lee los par´metros del primer individuo o e a a evaluar (n´mero de individuo. Si lo hizo. los valores de las aptitudes de los individuos son muy diferentes. La evaluaci´n de las doscientas generaciones de individuos tom´ alrededor de 19 o o horas. en las primeras generaciones. ´stos se guardan en un archivo de texto para su e posterior procesamiento.3. En el mismo tiempo de espera. Al iniciar el programa. Aunque ´sto puede tardar algunas horas e debido a que cada evaluaci´n tarda 10 segundos. o hace la conexi´n con el servidor (cuadric´ptero) y env´ la se˜al de inicio para que o o ıa n comience la evoluci´n diferencial. Este ciclo de lectura-evaluaci´n-lectura de individuos se hace hasta completar una o generaci´n. o el programa se mantiene esperando a que el bot´n de reinicio sea presionado. pero conforme se va realizando la evoluci´n estos o empiezan a converger a un s´lo valor. env´ la se˜al de reu o ıa n cibido al servidor para que comience la evaluaci´n y espera a que ´sta termine de o e ejecutarse. Despu´s. adem´s de la mediana de cada generaci´n. lee las se˜ales de error que van siendo generadas por n el veh´ ıculo durante la evaluaci´n y se grafican en la interfaz de usuario. o La figura 5. a o La figura 5. En otro par de archivos. El primer archivo guarda los par´mea tros de todos los individuos evaluados. as´ como la mediana de cada generaci´n evaluada. generaci´n y constantes PID). Ya teniendo los datos completos del individuo. ı o El programa contin´a hasta que se haya satisfecho la condici´n de paro. nos pudimos dar cuenta de que en pocas generaciones ya se obtiene un individuo suficientemente bueno. o o peor y mediana se mantienen estables hasta que llega la condici´n de paro (200 o generaciones). En el siguiente paso. Resultados de la ejecuci´n de la evoluci´n diferencial o o Despu´s de varias corridas del algoritmo de evoluci´n diferencial para el control e o de postura y de altura. que es cuando se guardan en los otros tres archivos los mejores y peores o individuos. o 5. Si no lo hizo. A partir de la generaci´n 90. o ı o Se puede notar que. as´ como las aptitudes peores. hayan sido seleccionados o no. que es la u o evaluaci´n de doscientas generaciones de individuos. verifica si el usuario ha presionado el bot´n de pausa. se guardan los par´metros de los mejores y peores individuos de cada a generaci´n. o Al terminar la evaluaci´n. hace una pausa de 1. IMPLEMENTACION DEL SOFTWARE 73 generados por el control a bordo del veh´ ıculo. los valores mejor.14 muestra el diagrama de flujo de la aplicaci´n. mejores y la mediana de de la generaci´n.

´ ´ 74 5. puede verse una o estabilizaci´n de las aptitudes a partir de la generaci´n 28. por lo o o que s´lo se hicieron evaluaciones de 39 generaciones. La figura 5.16 muestra la gr´fica de aptitudes de los individuos de control de ala tura.14: Diagrama de flujo de la aplicaci´n de control de ED en computadora.3. o del tiempo. o o El tiempo de evaluaci´n de las 39 generaciones fue de alrededor de 4 horas. Para la ejecuci´n de este algoritmo se requiere de supervisi´n humana. AJUSTE DE PARAMETROS DEL PID CON EVOLUCION DIFERENCIAL ÁÒ Ó ×Ô Ö ½º Ë º ÆÓ ÓÒ Ü Ò ÓÒ × ÖÚ ÓÖ Ò Ö Ò ÒÙ Ú Ä ÒÚ × Ð Ò Ó Ú Ö Ð Ð × ÖÚ ÓÖ ÔØ ØÙ Ë Ù Ö Ä Ú Ö Ð × Ð × ÖÚ ÓÖ ÒÁÒ Ú ÙÓ¸ Ò Ò¸ ³× ÒÚ × ÐÖ Ð Ú Ö × Ð × Ù Ö Ý Ó ÓØ Ò Ô Ù× ÔÖ × ÓÒ Ó ×ÔÐ Ú ÐÙ Ò Ø ÖÑ Ò Ë Ä Ý × ×ÔÐ Ð × ÖÖÓÖ Ò Ö Ë Ë ÓØ Ò ÓÒØ ÒÙ Ö ÔÖ × ÓÒ Ó Ò Ö ÆÓ Ò ÆÓ Ñ ÓÖ¸Ô ÓÖ Ý Ò ÒØ Ö ÓÖ Ñ Ò ¾¼¼ ÆÓ ÆÓ Ò Ë Figura 5. o Cinvestav Departamento de Computaci´n o . Sin embargo.

a Cinvestav Departamento de Computaci´n o . IMPLEMENTACION DEL SOFTWARE 75 Aptitud Figura 5.15: Gr´fica de evaluaciones de individuos de control de postura.500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 0 10 20 30 40 50 Generacion 60 Evaluaciones de ED de postura 70 80 Mejor individuo Mediana Peor individuo 90 100 ´ CAP´ ITULO 5.

AJUSTE DE PARAMETROS DEL PID CON EVOLUCION DIFERENCIAL Aptitud Figura 5.100 200 300 400 500 600 700 800 0 5 10 15 20 Generacion 25 Evaluaciones de ED de altura 30 35 Mejor individuo Mediana Peor individuo 40 ´ ´ 76 5.16: Gr´fica de evaluaciones de individuos de control de altura.3. a Cinvestav Departamento de Computaci´n o .

se expondr´n las conclusiones generadas en diferentes partes o a del proyecto. Los contras que se pudieron encontrar. etc´tera. bas´ndose en cono n a a troladores PID. adem´s de que un software complejo es m´s propenso a contener a a errores. se tienen las ventajas inherentes del sistema operativo como: manejo de varios procesos a la vez. los resultados obtenidos fueron buenos. e 77 . as´ como el trabajo a futuro. abstracci´n entre el hardware y el software de aplicaci´n. mientras que el control en tierra se hizo con una computadora en tableta con Android. En general. Se dise˜o el control autom´tico de postura y altura. son que se requiere m´s esfuerzo. El o a sistema a bordo fue implementado en una placa computadora con el sistema operativo Linux y Xenomai.Cap´ ıtulo 6 Conclusiones y trabajo a futuro En este trabajo de tesis se dise˜o e implement´ un sistema de control para un n´ o cuadric´ptero. Esto o o e llev´ al desarrollo de programas m´s portables. A continuaci´n. como memoa ria RAM y velocidad de procesamiento. lo que facilitar´ la actualizaci´n del o a a o hardware cuando sea necesario. cumpliendo con los objetivos propuestos. manejo de ´ archivos. algo que puede ser cr´ ıtico al usar veh´ ıculos a´reos.1. herramientas de red. utilizando evoluci´n diferencial para el ajuste de sus par´metros. que utilizando un microcontrolador convencional. ya que adem´s de contar con bastantes recursos. ı 6. tiempo y a conocimiento para poner el sistema en funcionamiento. Conclusiones Linux embebido El uso de una computadora a bordo con Linux embebido fue de gran ayuda en el desarrollo del proyecto.

a´n hay u mucho trabajo por hacer para mejorar la respuesta a fallos.78 6. comunicaci´n inal´mbrica. se mencionan algunas propuestas de trabajo a futuro para que el o sistema pueda ser utilizado en problemas del mundo real. gia a o rosc´pios. TRABAJO A FUTURO Control autom´tico y evoluci´n diferencial a o El ajuste de par´metros de los controladores PID con evoluci´n diferencial dio a o buenos resultados. Trabajo a futuro A continuaci´n. mientras la carga de la bater´ va ıa disminuyendo se empieza a perder altura. ıcil Adem´s. haciendo el control del veh´ a ıculo m´s sencillo que utilizando a controles remotos convencionales. debido a que ambas computadoras cuentan con adaptadores de red inal´mbrica integrados. El uso de Wi-Fi como medio de comunicaci´n entre la tableta y el cuadric´ptero o o fue ventajoso. Sin embargo. a Tolerancia a fallos Un error del sistema cuando el veh´ ıculo est´ en pleno vuelo usualmente lleva a a accidentes. El sistema dise˜ado incluy´ un bot´n de paro de emergencia y en etapas de prueba n o o en laboratorio se dise˜o hardware espec´ n ıfico para esta tarea. aceler´metros.). ıculo con facilidad. pero llega a tener muchas o a ´ variaciones con respecto a su valor de referencia cuando se inclina el veh´ ıculo. A´n o e u as´ el control fue suficientemente bueno para manipular el veh´ ı.2. La forma y tama˜o de estos dispositivos los hace f´ciles de manipular en amn a bientes exteriores. Sin embargo.2. Esto es debido a que el sensor ultras´nico tambi´n se inclina y mide diferentes distancias. por lo que ´ste debe estar dise˜ado para recuperarse de los problemas que e n puedan surgir. Otro problema con el control de altura es que. Cinvestav Departamento de Computaci´n o . especialmente en el control de postura. Es por eso que en investigaciones futuras se pondr´ especial ´nfasis a e en este tema. Durante la realizaci´n de este proyecto ocurrieron dos accidentes. etc. El control de altura es bueno cuando el cuadric´ptero est´ en postura horizontal. por lo que es necesario modificar la variable Gas manualmente para aumentar la potencia. a por lo que para aplicaciones donde se requiera una navegaci´n en espacios mayores o deber´ utilizarse otro sistema. 6. su rica variedad en recursos de hardware (pantalla t´ctil. ayuda a crear aplicacioo o o a nes mucho m´s intuitivas. uno con la p´rdida o e total del veh´ ıculo. el alcance de este tipo de redes es limitado. magnet´metros. Computadora en tableta como control en tierra y comunicaciones El uso de una computadora en tableta como control en tierra demostr´ ser muy o eficaz. por lo que pueden ser transportadas a zonas de dif´ acceso.

Un a sistema de control neuro-difuso podr´ resultar ventajoso. como r´fagas de viento. ıa Transmisores-receptores inal´mbricos con mayor alcance. o a Despegue y aterrizaje autom´ticos. Para eso se deber´ dise˜ar una interfaz para acoplar estos dispositivos o a n con la computadora en tableta. Se pretende utilizar a los m´dulos inal´mbricos Xbee-pro. as´ como tambi´n puede ı e ser util para el sistema de instrumentaci´n. ´ o Cinvestav Departamento de Computaci´n o . Planificaci´n de trayectorias. Los controladores PID dieron buenos resultados en el control del cuadric´ptero pero. por lo que habr´ que agregar un GPS al a o a sistema. Aplicar algoritmos de visi´n y procesamiento de im´geo o a nes puede ayudar a mejorar el desempe˜o del veh´ n ıculo. debido a que se pretende o usarlo en exteriores. que tienen rangos de alcance de hasta 1 o a kil´metro. un control no lineal podr´ ser m´s apropiado para tener ıa a una mayor robustez contra cambios en el clima. Lograr la planeaci´n de trayectorias requerir´ del o o a control autom´tico de la posici´n. Se requerir´n ajustes en software y hardware para a lograr una mayor tolerancia a fallos. entre otros sensores para la evasi´n de obst´culos. Agregar otros tipos de sensores como bar´metros o y l´ser ayudar´ a controlar el veh´ a a ıculo a mayores alturas. Mejorar el control de altura. Visi´n por computadora. a Sistema tolerante a fallos. CONCLUSIONES Y TRABAJO A FUTURO 79 Hacer pruebas con controladores no lineales.CAP´ ITULO 6.

80 6. TRABAJO A FUTURO Cinvestav Departamento de Computaci´n o .2.

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

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

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

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