Está en la página 1de 149

BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN

UNIVERSIDAD NACIONAL DE TRUJILLO


FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE
INGENIERÍA MECATRÓNICA

“DISEÑO Y CONSTRUCCIÓN DE UN PROTOTIPO DE CUADRICÓPTERO PARA


APLICACIONES DE ADQUISICIÓN DE IMÁGENES AÉREAS”

TESIS PARA OPTAR EL TÍTULO DE:

INGENIERO MECATRÓNICO

AUTOR: BR. RUJEL RUBIO, WILFREDO CÉSAR RICHARD

ASESOR: ING. ALVA ALCANTARA, JHOSMELL HENRY

TRUJILLO – PERÚ
2019

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN

A mis padres y hermanas, que me brindaron su apoyo y compresión. Gracias


por su apoyo incondicional que logro que este proyecto se realizara.
En memoria de mi sobrino Manuel Leonardo siempre estarás con nosotros.

[ii]
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN

Agradecimientos

Quiero agradecer en primer lugar a Dios por haberme dado sabiduría, fortaleza, salud y sobre todo
haberme permitido continuar en todo momento firme y llegar a la meta en este proyecto.

A mi familia por su paciencia, aliento y apoyo constante, sin sus enseñanzas y consejos no habría sido
posible cumplir mis objetivos y llegar a ser la persona que soy.

A mis asesores y profesores que me brindaron las herramientas y conocimientos que me guiaron en el
desarrollo de este proyecto.

Gracias a todos los que han ayudado en la realización de este proyecto.

El Autor.

[iii]
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN

Resumen

El presente trabajo consiste en el diseño y construcción de un prototipo de cuadricóptero


para aplicaciones de imágenes aéreas; este tipo de aeronave no tripulada puede ser utilizada en
diferentes aplicaciones de videos y fotografías aéreas, monitoreo y vigilancia de seguridad
perimetral, apoyo en búsqueda y rescate en zonas inaccesibles, monitoreo de zonas agrícolas,
monitoreo de rutas y caminos, alerta temprana y control de incendios, entre muchos más. Se
requiere que el cuadricóptero pueda mantenerse en vuelo por lo menos 15 minutos y mediante
un sistema de control se mantenga estable en el aire y en la posición que se requiera para la
captura de imágenes.

La principal motivación del desarrollo de este trabajo es debido al auge tecnológico que
existe actualmente a nivel mundial en esta área de la robótica y en la cual se busca implementar
mediante una metodología de diseño una aeronave no tripulada de bajo costo capaz de realizar
capturas de imágenes aéreas y que servirá de plataforma base para futuros proyectos para las
diferentes áreas de aplicación que mejoraran el desarrollo tecnológico de la región.

Para el desarrollo de este proyecto de investigación se propuso un modelo de la estructura


base para el montaje de todos los demás componentes, para ello se seleccionó un material ligero
y resistente para una estructura básica de cuadricóptero. Luego se realizó el diseño del sistema
electrónico, para ello se seleccionó una tarjeta controladora de vuelo con las características
técnicas capaces de controlar los sensores y motores del cuadricóptero y un sistema de control
básico basado en PID que se encarga de mantenerlo estable en vuelo en una posición
determinada. Por último, se desarrolló un sistema de comunicación inalámbrico entre una
interfaz de usuario y el cuadricóptero, que sirve para enviar las coordenadas de vuelo y para
recibir las imágenes en tiempo real tomadas por el cuadricóptero.

Palabras claves: Cuadricóptero, Cuadrirrotor, Dron, Vehículo aéreo no tripulado,


Modelado, Control PID, Prototipo.

[iv]
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN

Abstract

The present work consists of the design and construction of a quadcopter prototype for
aerial image applications; This type of unmanned aircraft can be used in different applications
of videos and aerial photographs, monitoring and surveillance of perimeter security, search and
rescue support in inaccessible areas, monitoring of agricultural areas, monitoring of routes and
roads, early warning and control of fires, among many more. It is required that the quadcopter
can stay in flight for at least 15 minutes and, through a control system, remain stable in the air
and in the position required for the capture of images.

The main motivation for the development of this work is due to the technological boom
that currently exists worldwide in this area of robotics and which seeks to implement a low-cost
unmanned aerial vehicle capable of capturing images through a design methodology, this will
serve as a base platform for future projects for the different areas of application that will improve
the technological development of the region.

For the development of this research project, a model of the base structure for the assembly
for all the other components was proposed, for which a light and resistant material was selected
for a basic structure of quadcopter. For the design of the electronic system, a flight controller
card was selected with the technical characteristics capable of controlling the sensors and motors
of the quadcopter and a basic control system based on PID that is responsible for keeping it
stable in flight in a certain position. Finally, a wireless communication system was developed
between a user interface and the quadcopter, which serves to send the flight coordinates and to
receive the real-time images taken by the quadcopter.

Keywords: Quadcopter, Quadrotor, Drone, Unmanned Aerial Vehicle, PID control,


Modelling, Prototype.

[v]
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN

Índice General

Dedicatoria................................................................................................................................................ ii
Agradecimientos ...................................................................................................................................... iii
Resumen ................................................................................................................................................. iv
Abstract..................................................................................................................................................... v
Índice General.......................................................................................................................................... vi
Índice de Figuras ..................................................................................................................................... ix
Índice de Tablas....................................................................................................................................... xi
Capítulo I
1. Introducción ..................................................................................................................................... 12
1.1. Descripción de la realidad problemática ..................................................................................... 12
1.2. Antecedentes del problema ........................................................................................................ 15
1.2.1. Internacionales.................................................................................................................... 15
1.2.2. Nacionales .......................................................................................................................... 16
1.3. Marco referencial ........................................................................................................................ 17
1.3.1. Marco teórico ...................................................................................................................... 17
1.3.1.1. Vehículos aéreos no tripulados ....................................................................................... 17
1.3.1.2. Clasificación de los UAV ................................................................................................. 18
1.3.1.3. Aplicaciones de los UAV ................................................................................................. 20
1.3.1.4. Cuadricóptero ................................................................................................................. 21
1.3.1.5. Materiales para estructura de cuadricóptero ................................................................... 22
1.3.1.6. Motores ........................................................................................................................... 26
1.3.1.7. Hélices ............................................................................................................................ 26
1.3.1.8. Baterías........................................................................................................................... 28
1.3.1.9. Controlador de vuelo ....................................................................................................... 29
1.3.1.10. Controlador de velocidad ................................................................................................ 30
1.4. Enunciado y formulación del problema ....................................................................................... 31
1.4.1. Enunciado del problema ..................................................................................................... 31
1.4.2. Formulación del problema................................................................................................... 31
1.5. Justificación del problema ........................................................................................................... 32

[vi]
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN

1.6. Hipótesis ..................................................................................................................................... 33


1.7. Objetivos ..................................................................................................................................... 33
1.7.1. Objetivo general .................................................................................................................. 33
1.7.2. Objetivos específicos .......................................................................................................... 33
Capítulo II
2. Materiales y Métodos ....................................................................................................................... 34
2.1. Diseño de Investigación .............................................................................................................. 34
2.2. Variables ..................................................................................................................................... 34
2.3.1. Variable dependiente .......................................................................................................... 34
2.3.2. Variable independiente ....................................................................................................... 34
2.3. Población y muestra ................................................................................................................... 35
2.3.1. Población ............................................................................................................................ 35
2.3.2. Muestra ............................................................................................................................... 35
2.4. Metodología ................................................................................................................................ 35
Capítulo III
3. Resultados ....................................................................................................................................... 37
3.1. Diseño conceptual del cuadricóptero .......................................................................................... 37
3.1.1. Diseño básico de un cuadricóptero para adquisición de imágenes aéreas ......................... 38
3.1.2. Modos de vuelo................................................................................................................... 39
3.1.3. Parámetros iniciales de diseño ........................................................................................... 40
3.2. Modelamiento matemático del cuadricóptero.............................................................................. 41
3.1.4. Cinemática del cuadricóptero.............................................................................................. 43
3.1.5. Dinámica del cuadricóptero................................................................................................. 44
3.1.6. Fuerzas y momentos .......................................................................................................... 47
3.1.7. Modelo simplificado ............................................................................................................ 49
3.3. Diseño y selección de componentes del cuadricóptero .............................................................. 51
3.2.1. Selección de la estructura de soporte ................................................................................. 51
3.2.2. Selección de los motores .................................................................................................... 53
3.2.3. Selección de las hélices ...................................................................................................... 56
3.2.4. Selección de la batería........................................................................................................ 57
3.2.5. Selección de los controladores de velocidad ...................................................................... 61

[vii]
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN

3.2.6. Selección de los sensores .................................................................................................. 61


3.2.7. Selección del controlador de vuelo ..................................................................................... 65
3.2.8. Selección del módulo de telemetría .................................................................................... 67
3.2.9. Selección del radiocontrol ................................................................................................... 69
3.2.10. Selección de la cámara ....................................................................................................... 71
3.2.11. Selección del software ........................................................................................................ 73
3.2.12. Montaje de los componentes del cuadricóptero .................................................................. 76
3.4. Modelamiento y simulación del sistema de control ..................................................................... 77
3.3.1. Cálculo de los momentos inerciales .................................................................................... 80
3.3.2. Cálculo de la constante de empuje del motor ..................................................................... 84
3.3.3. Simulación del sistema de control ....................................................................................... 88
3.5. Pruebas y resultados .................................................................................................................. 97
Capítulo IV
4. Discusión de Resultados................................................................................................................. 102
Capítulo V
5. Conclusiones .................................................................................................................................. 105
Capítulo VI
6. Referencias Bibliográficas............................................................................................................... 107
Anexos ................................................................................................................................................ 112
A) Pesaje de los componentes del cuadricóptero ................................................................................. 112
B) Costos de los componentes del cuadricóptero ................................................................................. 112
C) Código de programación de Inav ..................................................................................................... 113

[viii]
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN

Índice de Figuras

Figura 1. Tipo de dron para misiones militares ...................................................................................... 18


Figura 2. Ejemplo de helicóptero por radio control ................................................................................. 19
Figura 3. Ejemplo de un cuadricóptero .................................................................................................. 21
Figura 4. Tela de fibra de carbono ......................................................................................................... 23
Figura 5. Ejemplo de material fibra vidrio ............................................................................................... 24
Figura 6. Ejemplos de perfiles de aluminio............................................................................................. 25
Figura 7. Ejemplo de material de impresión 3D ..................................................................................... 26
Figura 8. Diferencia entre tamaños de pitch........................................................................................... 27
Figura 9. Hélices de acuerdo con su número de aspas ......................................................................... 28
Figura 10. Diagrama de flujo de la metodología realizada ..................................................................... 36
Figura 11. Drone Phantom 4 .................................................................................................................. 38
Figura 12. Ejes y movimientos del cuadricóptero ................................................................................... 40
Figura 13. Definición de las variables de estado .................................................................................... 42
Figura 14. Modelo de solido rígido del cuadricóptero............................................................................. 45
Figura 15. Vista superior del cuadricóptero ............................................................................................ 47
Figura 16. Definición de las fuerza y torque que actúan en el cuadricóptero ......................................... 47
Figura 17. Estructura de cuadricóptero S500 ......................................................................................... 52
Figura 18. Motor brushless outrunner X2212 980KV ............................................................................. 55
Figura 19. Dimensiones del motor en milímetros ................................................................................... 55
Figura 20. Especificaciones técnicas del motor X2212 .......................................................................... 56
Figura 21. Especificaciones del motor X2212 según la hélice APC1047 ............................................... 57
Figura 22. Hélices seleccionadas Gemfan 1045 .................................................................................... 57
Figura 23. Ejemplo de batería Li-ion ...................................................................................................... 58
Figura 24. Ejemplo de batería LiPo ........................................................................................................ 58
Figura 25. Batería HRB 3S seleccionada para el cuadricóptero ............................................................ 60
Figura 26. ESC seleccionado Racerstar 20A BLHELI_S ....................................................................... 61
Figura 27. Ejemplo de sensor IMU MPU6050 ........................................................................................ 62
Figura 28. Ejemplo de sensor barométrico BMP280 .............................................................................. 63
Figura 29. GPS seleccionado Ublox NEO M8N ..................................................................................... 64
Figura 30. Controlador de vuelo STM32F405 Kakute F4 ....................................................................... 66
Figura 31. Módulo de radio 3DR 915 MHz ............................................................................................. 68
Figura 32. Radiocontrol seleccionado Flysky FS-i6X 2.4 GHz ............................................................... 70
Figura 33. Cámara seleccionada Eken H9R 4K ..................................................................................... 71
Figura 34. Cámara FPV Eachine 1000TVL ............................................................................................ 72
Figura 35. Algoritmo de estimación de posición del cuadricóptero ........................................................ 74
Figura 36. Estructura del algoritmo del controlador de vuelo ................................................................. 75
Figura 37. Vista del cuadricóptero con todos sus componentes ............................................................ 76
Figura 38. Diagrama de bloques de un sistema retroalimentado ........................................................... 77

[ix]
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN

Figura 39. Modelo en 3D del cuadricóptero realizado con SolidWorks .................................................. 81


Figura 40. Peso total del cuadricóptero en gramos ................................................................................ 81
Figura 41. Peso de los motores y hélices en gramos ............................................................................. 82
Figura 42. Peso de los brazos y tren de aterrizaje en gramos ............................................................... 82
Figura 43. Peso de la batería en gramos ............................................................................................... 83
Figura 44. Peso de la cámara con gimbal en gramos ............................................................................ 83
Figura 45. Datos obtenidos por la herramienta de propiedades físicas de SolidWorks ......................... 84
Figura 46. Procedimiento de prueba para obtener constante de empuje ............................................... 85
Figura 47. Grafica de los datos y regresión lineal usando Matlab .......................................................... 86
Figura 48. Diagrama de bloques del sistema de control de la altitud ..................................................... 89
Figura 49. Comportamiento de la altitud con el controlador no sintonizado ........................................... 89
Figura 50. Diagrama de bloques del sistema de control del pitch .......................................................... 89
Figura 51. Comportamiento del pitch con el controlador no sintonizado ................................................ 90
Figura 52. Diagrama de bloques del sistema de control del roll ............................................................. 90
Figura 53. Comportamiento del roll con el controlador no sintonizado ................................................... 90
Figura 54. Diagrama de bloques del sistema de control del yaw ........................................................... 91
Figura 55. Comportamiento del yaw con el controlador no sintonizado ................................................. 91
Figura 56. Respuesta del controlador de la altitud sintonizado .............................................................. 92
Figura 57. Parámetros del controlador PID sintonizado de la altitud ...................................................... 92
Figura 58. Respuesta del controlador del pitch sintonizado ................................................................... 93
Figura 59. Parámetros del controlador PID sintonizado del pitch ........................................................... 93
Figura 60. Respuesta del controlador del roll sintonizado ...................................................................... 94
Figura 61. Parámetros del controlador PID sintonizado del roll ............................................................. 94
Figura 62. Respuesta del controlador del yaw sintonizado .................................................................... 95
Figura 63. Parámetros del controlador PID sintonizado del yaw ............................................................ 95
Figura 64. Diagrama de bloques del sistema de control del pitch con tiempo de retraso ....................... 96
Figura 65. Comparación de la respuesta del controlador PID sintonizado del pitch incluyendo tiempo
retraso..................................................................................................................................................... 96
Figura 66. Foto de las pruebas de vuelo ................................................................................................ 98
Figura 67. Respuesta del giroscopio y acelerómetro durante el despegue ............................................ 98
Figura 68. Respuesta del giroscopio y acelerómetro durante el modo vuelo XY ................................... 99
Figura 69. Respuesta del giroscopio y GPS durante el vuelo estacionario ............................................ 99
Figura 70. Prueba del modo de vuelo estacionario .............................................................................. 100
Figura 71. Interfaz de usuario mwp tools ............................................................................................. 100
Figura 72. Coordenadas del recorrido realizado por el cuadricóptero .................................................. 101

[x]
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN

Índice de Tablas

Tabla 1 Clasificación de los UAV............................................................................................................ 19


Tabla 2 Propiedades de la fibra vidrio .................................................................................................... 24
Tabla 3 Variables dependientes del cuadricóptero ................................................................................. 34
Tabla 4 Comparación de los tipos de vehículos aéreos no tripulados .................................................... 37
Tabla 5 Parámetros iniciales de diseño .................................................................................................. 40
Tabla 6 Comparación entre materiales ................................................................................................... 51
Tabla 7 Comparativa entre las ventajas y desventajas .......................................................................... 52
Tabla 8 Características de la estructura ................................................................................................. 53
Tabla 9 Selección del tamaño del motor ................................................................................................ 53
Tabla 10 Parámetros establecidos para seleccionar el motor ................................................................ 55
Tabla 11 Especificaciones técnicas de la batería HRB 3S ..................................................................... 60
Tabla 12 Especificaciones técnicas del ESC Racerstar 20A .................................................................. 61
Tabla 13 Fuentes de errores del GPS .................................................................................................... 64
Tabla 14 Especificaciones técnicas del módulo GPS UBLOX M8N ....................................................... 65
Tabla 15 Especificaciones técnicas del controlador de vuelo Kakute F4 ............................................... 66
Tabla 16 Especificaciones técnicas del módulo radio 3DR 915 MHz ..................................................... 69
Tabla 17 Especificaciones técnicas del radiocontrol Flysky FS-i6X 2.4 GHz y receptor X6B ................. 70
Tabla 18 Especificaciones técnicas de la cámara 4K ............................................................................. 72
Tabla 19 Especificaciones técnicas de la cámara FPV Eachine 1000TVL ............................................. 72
Tabla 20 Resultados de los datos tomados durante la prueba ............................................................... 85
Tabla 21 Parámetros calculados para las funciones de transferencia .................................................... 87
Tabla 22 Pesaje de componentes ........................................................................................................ 112
Tabla 23 Costos de los componentes del cuadricóptero ...................................................................... 112

[xi]
Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
12

CAPÍTULO I
1. Introducción

1.1. Descripción de la realidad problemática


Los vehículos aéreos no tripulados tienen sus orígenes en la segunda y tercera década del
siglo XX. Desarrollados después de la primera guerra mundial, se emplearon durante la segunda
guerra mundial para entrenar a los operadores de los cañones antiaéreos, también para la
vigilancia de zonas en conflicto, para acción militar ofensiva sin poner en riesgo la vida de
pilotos. Sin embargo, no es hasta finales del siglo XX cuando los vehículos aéreos no tripulados,
denominados como Unmanned Aerial Vehicle (UAV) en inglés, iniciaron su operación
mediante radio control con todas las características de autonomía.
En los últimos años se ha avanzado en aplicaciones civiles, con desarrollo de múltiples
diseños según autonomía deseada, capacidad de operación y alcance de su actividad, pudiendo
incorporar una variedad de sensores, programas de monitoreo, control y guiado por GPS, por
satélite o control remoto guiado por el usuario en tiempo real. Los UAV pueden estar
controlados remotamente desde una estación de tierra por un operador o pueden ser autónomos
y seguir una trayectoria ya predefinida.
Hay varios tipos de UAV, los hay del modelo tipo avión, tipo helicóptero (cuadricópteros,
hexacópteros, octocópteros, multicópteros), tipo dirigible, etc. Comercialmente se los conoce
como drones, debido a su extensible uso el mercado y aplicaciones está creciendo en forma
exponencial en la actualidad.
El control de los UAV puede ser llevado a cabo mediante controladores lineales PID
(Proporcional, integral y derivativo) o mediante controladores más complejos no lineales. Estos
se encargarán de mantener estable la aeronave en el aire y en una posición determinada.
En el campo del monitoreo se ha avanzado mucho y hoy en día la colocación de GPS
(Sistema de posicionamiento global), sensores ultrasónicos y cámaras es una decisión que
condiciona la funcionalidad del vehículo, así como el tipo de cámara elegida, monocromática,
a color, de infrarrojos, ultravioleta. Las cámaras pueden estar colocadas sobre el propio
vehículo, cámara a bordo, o estar distribuidas por la zona de operación de este. Esta última
opción parece más factible en entornos académicos donde se vayan a realizar pruebas y ensayos

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
13

en lugares cerrados, ya que si el UAV tiene que realizar una misión de reconocimiento no tiene
sentido que previamente se hayan colocado cámaras para saber la posición del vehículo.
El uso de UAV pequeños denominados drones, ha prosperado en la última década, y se
emplean concretamente para monitorear una variedad de actividades. En la actualidad existe
una inmensa cantidad de estos instrumentos disponibles a distintos costos, algunas de las
plataformas más económicas utilizadas para controlar las condiciones ambientales incluyen
dirigibles, globos y los pequeños UAV, también conocidos como drones.
Adicionalmente a la variedad de plataformas disponibles, hay una diversidad de sensores
empleados para la captura de información e imágenes que incluyen cámaras fotográficas,
cámaras digitales (no métricas) e incluso cámaras digitales modificadas con una banda de
infrarrojo cercano. También se han desarrollado cámaras específicas para el UAV como la
cámara multiespectral ADC y la cámara de mapeo MCA. Para obtener imágenes a fin de realizar
georreferenciación o generar mosaicos más detallados o para obtener imágenes de puntos
predefinidos, se necesitan los datos del GPS del UAV y una estación de control terrestre con un
sistema de planes de vuelo. De esta forma, las imágenes capturadas pueden transmitirse (bajarse)
a la estación terrestre o pueden almacenarse en la memoria del sensor de la unidad hasta que el
UAV aterrice. También existen componentes de control de vuelo y navegación para las
generaciones más nuevas de UAV. El componente de navegación se utiliza para controlar la
ruta de vuelo del UAV y también para controlar o corregir en tiempo real el estado de vuelo
(posición y orientación) de la plataforma. El componente de vuelo se emplea para mantener la
estabilidad de la plataforma, a fin de garantizar que la posición de esta sea la óptima para la
obtención de las imágenes.
Tanto si se trata de evitar obstáculos, como recoger y entregar objetos, o realizar mejores
despegues y aterrizajes en superficies difíciles, se espera que las soluciones con UAV en el
futuro puedan conducir al despliegue de drones en entornos urbanos complejos en los que llevar
a cabo una amplia gama de misiones diferentes, desde vigilancia militar y tareas de búsqueda y
rescate, hasta servir de teléfonos volantes con cámara o ejercer de repartidores fiables de
paquetes. Para ello, los drones necesitan un control de vuelo exquisito.
Los primeros drones pequeños ya han sido usados en operaciones de búsqueda y rescate
para investigar zonas difíciles de alcanzar o peligrosas, como la de Fukushima en Japón. Con
los últimos avances en esta tecnología se cree que las misiones de esta clase podrían ser más

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
14

eficientes aun si los UAV fueran capaces de trabajar en equipo, y se vienen desarrollando
algoritmos que permitan que un número determinado de drones vuelen juntos como una bandada
de pájaros. Si bien este movimiento colecto o lo que se llama trabajo cooperativo de drones
podría ser útil cuando se tengan que hacer tareas de búsqueda en grandes extensiones de terreno,
un grupo de investigadores de la Universidad de Harvard en Estados Unidos ha desarrollado un
dron de tamaño milimétrico con vistas a utilizarlo para explorar espacios en los que apenas hay
sitio de para moverse.
El desarrollo de la tecnología ha impactado en la mayoría de los sectores productivos, lo
que a su vez ha traído nuevas alternativas para mejora de procesos y tareas productivas que
durante un tiempo permanecieron en espera de esta evaluación o mejora. El uso de máquinas
continuamente se robotiza, y el hombre las utiliza para monitorear, supervisar y controlar
procesos productivos, en campos que involucran toma de decisiones e inteligencia artificial. Los
robots no solo han invadido las labores asociadas a las tareas del hombre a nivel terrestre, sino
que ha sido posible hacer nuevos avances en la parte aérea apoyada en la inteligencia artificial
para planear, navegar y evadir obstáculos de una forma segura y confiable.
Las actividades agrícolas demandan información relacionada con su planeación,
administración, gestión y evaluación, para aplicar los insumos de manera óptima, usar los
recursos de manera racional, y realizar ajustes en las políticas públicas. Por ejemplo, la
estimación de la superficie sembrada, siniestrada, regada y cosechada en un ciclo agrícola es un
dato de suma importancia para la planificación y distribución de los recursos hídricos y
económicos destinados a la agricultura.
A partir de los 80s, con la puesta en órbita de satélites, se ha facilitado el monitoreo de la
superficie terrestre con la incorporación de tecnologías de sensores remotos, que ha mejorado
los métodos para análisis, procesamiento y despliegue de información espacial de las variables
de interés agrícola. Sin embargo, ante la demanda de información detallada, los satélites tienen
la limitante de suministrar información.
Los métodos que utilizan datos de sensores remotos proveniente de satélites se han utilizado
con éxito en otros países como Brasil, Estados Unidos, Argentina y Canadá para estimar la
superficie agrícola y a pesar de que dependen de los datos obtenidos en campo para su
validación, han demostrado ser más precisos y confiables.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
15

Ante estas limitaciones, el uso de vehículos aéreos no tripulados equipados con sensores
multifuncionales pequeños, complementados con sistemas de navegación autónoma, es una
alternativa viable de bajo costo para monitorear zonas agrícolas. El uso de UAV facilita el
monitoreo frecuente de parámetros de cultivos que actualmente tiene restricciones a través de
sensores satélites.
Un dron o vehículo aéreo no tripulado, es sin duda una herramienta que tiene una gran
cantidad de aplicaciones, por eso debido a la diversidad de usos que estos equipos móviles
presentan. De acuerdo con el sector donde se usa o aplica, puede recibir distintos nombres. Para
uso civil, ya sea como esparcimiento o para una actividad científica es muy común llamarlo
simplemente vehículo aéreo no tripulado.
Aunque los UAV nacieron principalmente para aplicaciones militares, actualmente son
utilizados en una diversidad de aplicaciones civiles para obtener productos cartográficos de
pequeña escala, y de ahí se desprende un amplio rango de productos y aplicaciones de
adquisición remota de imágenes y videos. Las aplicaciones en agricultura también son diversas,
y las necesidades actuales perfilan esta herramienta con gran potencial para actividades de
planeación, monitoreo y control, tales como labores de lucha contra incendios o seguridad civil,
vigilancia de infraestructura, etc.
Actualmente la ciencia y tecnología presenta actividades de riesgo, en los cuales los
vehículos aéreos no tripulados suelen ser preferidos para misiones que son demasiado peligrosas
y costosas para los aviones tripulados.

1.2. Antecedentes del problema

1.2.1. Internacionales
José Etxeberria en 2015 sustentó en la Universidad Pública de Navarra – España la tesis
titulada “Implementación de un dron cuadricóptero con arduino”. Llegó a las siguientes
conclusiones:
- Se diseñó un sistema completo de un cuadricóptero utilizando un controlador PID para
la estabilización del vuelo.
- Se implementó una comunicación inalámbrica con el dron utilizando el sistema XBee.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
16

Felipe Fernández en 2015 sustento en la Universidad de Chile la tesis titulada “Diseño e


implementación de un sistema de control asistido para plataforma aérea multirotor”. Llegó a
las siguientes conclusiones:
- El asistente de vuelo implementado represento una mejora al proceso de aprendizaje
de operación de una UAV, en donde puede intervenir para facilitar el manejo de naves
a operarios con poca práctica.
Gabriel Leos en 2014 sustento en la Universidad Nacional Autónoma de México la tesis
titulada “Implementación de una aeronave no tripulada de despegue vertical de cuatro rotores”.
Llegó a las siguientes conclusiones:
- Se implementó un UAV de baja altura utilizando un microcontrolador Ardupilot
Mega, el cual permitía la transmisión de datos de giroscopios, acelerómetros, GPS,
magnetómetro, medidor de presión atmosférica, temperatura y estado de batería
usando módulos de comunicación Xbee.
- De acuerdo con las pruebas automáticas se concluyó que es necesario agregar al
sistema sensores ultrasónicos y de flujo de video para lograr un control preciso y
estable.
Oscar Bustos en 2014 sustento en la Universidad Nacional de Colombia la tesis titulada
“Diseño de un control estabilizante para un vehículo de despegue vertical tipo cuatrirrotor”.
Llegó a las siguientes conclusiones:
- El controlador PD mostro ser un control fácil de implementar y con buen desempeño
para el control de vuelo de un cuatrirrotor.
- Los controladores H∞ y µ mostraron resultados similares, tanto en desempaño como
en robustez. No obstante, el µ, dado que incorpora las variaciones del modelo no lineal
en los distintos puntos de operación, tiene un desempeño mejor.
- El sistema de navegación logro comunicar al microcontrolador la latitud y longitud de
la plataforma en tiempo real.

1.2.2. Nacionales
José Alvarado en 2015 sustento en la Universidad Católica del Perú la tesis titulada
"Diseño de un móvil escalador de paredes laterales y superiores para inspección en trabajos
de construcción civil". Llegó a las siguientes conclusiones:

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
17

- El móvil fue diseñado para enviarlo a lugares poco accesibles, como esquinas internas
en un ambiente de construcción civil, con el fin de realizar trabajos de inspección en
dichas zonas.
- El sistema de retroalimentación de posición permite al móvil conocer su ubicación en
tiempo real y le permite tomar decisiones sincronizadas para su correcto movimiento.
Edwards Quijano, Christian Belleza, José Rodríguez, Jimmy Corzo, Luis Coarquira y
Diego Rey en 2015 realizaron un proyecto en la Universidad Nacional de Ingeniería titulado
"Diseño y construcción de un vehículo aéreo no tripulado". Llegaron a las siguientes
conclusiones:
- Se demostró con el proyecto la factibilidad de la construcción de un vehículo aéreo no
tripulado utilizando herramientas y materiales disponibles en el mercado local peruano
logrando así con éxito su construcción.

1.3. Marco referencial

1.3.1. Marco teórico

1.3.1.1. Vehículos aéreos no tripulados


Un vehículo aéreo no tripulado (denominado del inglés Unmanned Aerial Vehicle,
UAV) es un vehículo controlado autónomamente o desde tierra por una persona. Las
aplicaciones de este tipo de vehículos son cada día mayores en tareas que implican algún tipo
de dificultad o riesgo para vehículos convencionales tripulados por personas, como son la
detección de incendios, la identificación de manchas de petróleo en el mar, el seguimiento del
tráfico, la inspección de líneas de tendido eléctrico, etc.
Estos vehículos han sido utilizados en aplicaciones militares tales como
reconocimiento de terreno y ataque; así mismo son muy útiles en la detección de incendios,
control policial en situaciones de riesgo, reconocimiento de desastres naturales, situaciones que
sin visión aérea serían más difíciles de detectar.
El UAV más antiguo del que se tiene constancia se desarrolló al final de la primera
guerra mundial, y su utilidad era simplemente la de entregar a los operarios de la artillería
antiaérea. No obstante, hasta el final del siglo XX no empiezan a aparecer drones que pueden
operar con total autonomía controlados solo por radio.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
18

Figura 1. Tipo de dron para misiones militares


(Vehículo aéreo de combate no tripulado, s.f)

Además de presentar algunas ventajas como son menor coste que las aeronaves
tripuladas, no se arriesgan vidas, capacidad de incorporar muchos sensores y la posibilidad de
acceder a sitios peligrosos o de difícil acceso.

1.3.1.2. Clasificación de los UAV

En cuanto a la clasificación de los UAV podemos efectuarla conforme a tres criterios:


su misión, altitud máxima, alcance máximo y su morfología. En cuanto a su misión distinguimos
los siguientes tipos:
Blanco: Como el primer UAV desarrollado al final de la primera guerra mundial, se
utilizan para similares objetivos voladores.
Reconocimiento: Se encargan de obtener y enviar información militar, como por
ejemplo imágenes aéreas de una base militar enemiga. En este tipo destacan los MUAV en
forma de avión o helicóptero.
Combate (UCAV): Los sustitutos de los pilotos de combate en misiones que pueden
resultar muy peligrosas.
Logística: Diseñados simplemente para llevar carga.
Investigación y desarrollo: Para probar los nuevos sistemas que están en investigación
y desarrollo.
UAV comerciales y civiles: Los más conocidos y que se pueden conseguir fácilmente
por internet. Para su uso civil y como entretenimiento.
En cuanto a su altitud y alcance máximo tenemos los siguientes tipos:

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
19

Tabla 1
Clasificación de los UAV
Categoría Acrónimo Alcance (km) Altitud (m) Autonomía (h) Carga máx. (kg)
Micro <250g Micro <10 250 1 <5
Mini <25kg Mini <10 150-300 <2 <30
Alcance cercano CR 10-30 3000 2-4 150
Alcance corto SR 30-70 3000 3-6 200
Alcance medio MR 70-200 5000 6-10 1250
Altitud baja LADP >250 50-9000 0.5-1 350
Autonomía media MRE >500 8000 10-18 1250
Autonomía LALE >500 3000 >24 >30
alta/Altitud baja
Autonomía MALE >500 14000 24-48 1500
alta/Altitud media
Autonomía HALE >2000 20000 24-48 12000
alta/Altitud alta
Combate UCAV 1500 10000 2 10000
Ofensivo LETH 300 4000 3-4 250
Señuelo DEC 500 5000 <4 250
Estratosférico STRATO >2000 20-30K >48 ND
Exo-estratosférico EXO ND >30000 ND ND
Fuente: Víctor R., 2014.

En cuanto a su morfología distinguimos 4 tipos:

Helicópteros, Una morfología mundialmente conocida, con un rotor en la parte superior y uno
de cola para compensar el par del rotor que lo haría girar sin dar vueltas. Tiene una alta maniobrabilidad
y puede quedarse en vuelo estacionario y volar verticalmente.

Figura 2. Ejemplo de helicóptero por radio control


(Helicópteros RC, s.f)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
20

Aviones, También mundialmente conocido, presenta dos alas horizontales en torno al


fuselaje que lo dotan de la sustentación necesaria al ir a una determinada velocidad por
diferencia de presiones. Puede ir a altas velocidades y llevar cargar elevadas, pero no tiene la
posibilidad del vuelo estacionario ni tiene tanta maniobrabilidad como un helicóptero.
Dirigibles, Mundialmente conocidos también durante la segunda guerra mundial, estos
aparatos vuelan por un principio muy básico de diferencia de densidades. El helio que contienen
es menos denso que el aire del exterior y por eso flotan. Luego para maniobrarlos es sencillo
con un motor para cada eje de movimiento. No obstante, la carga condiciona mucho su
capacidad de vuelo y su velocidad y maniobrabilidad son muy precarias.
Multicópteros, Similares a los helicópteros, pero tienen varios rotores verticales en
puntos equidistantes del centro horizontalmente, y variando las velocidades de giro de cada uno
de los motores se consigue una maniobrabilidad sorprendente. Se dividen varios grupos en
función del número concreto de rotores, habiendo comúnmente desde trirrotores (3 rotores)
hasta decarrotores (10 rotores). Obviamente, cuantos más motores más estabilidad y más fuerza
de propulsión, lo que conlleva más capacidad de carga. No obstante, la mayor parte de estos
aparatos son de 4 rotores ya que logran un equilibrio entre costo y estabilidad.

1.3.1.3. Aplicaciones de los UAV

En la actualidad hay gran diversidad de aplicaciones que utilizan los UAV debido a su
gran versatilidad y uso, a continuación, se presentan algunas de las más comunes:
Misiones militares, existe una gran diferencia a nivel económico entre el ámbito
militar y el civil. En la anterior tabla hemos podido observar el gran número de tipos de UAV
que discurren en el ámbito militar. En espionaje los UAV son bastantes utilizados, desde los
más pequeños (difícil de detectar por los radares) hasta los más grandes. Una de las grandes
características a destacar a la hora de utilizar los UAV en misiones militares es que no
arriesgamos vidas humanas y lo único que podemos perder es todo el sistema UAV.
Supervisión, una de las capacidades más valoradas es la gran maniobrabilidad que
presentan algunos sistemas UAV como puede ser los Cuadricópteros. Esto puede ser utilizado
para la inspección de obras civiles como grandes puentes, edificios o estructuras de gran
envergadura. Estos vehículos pueden ir dotados de cámaras de video y ayudar a la supervisión
de la obra desde diferentes puntos sin poner en riesgo las vidas humanas y reduciendo el tiempo

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
21

de ejecución ya que no hay que montar ninguna estructura externa para poder acceder al sitio
en concreto.
Fotografía aérea, la fotografía aérea o adquisición de datos aéreos es un área
importante ya que podemos extraer bastante información del terreno. En este aspecto podemos
utilizar tanto los vehículos más pequeños hasta los más grandes, ya que según la altitud en la
que deseemos hacer las fotografías elegiremos uno u otro.
Vigilancia, los equipos de seguridad tanto privados como los policiales pueden utilizar
estos sistemas para la vigilancia de una zona en concreto o de soporte en alguna tarea específica.
Reconocimiento de desastres, al ser vehículos no tripulados, pueden servir para el
reconocimiento inicial de desastres tales como explosiones nucleares o reconocimiento en lo
que se pondría en peligro la integridad de los pilotos.
Los UAV son eficaces para aplicaciones donde sea necesario el sensado de parámetros
y adquisición de datos, fundamentalmente en lugares de difícil acceso y sin poner en peligro
ninguna vida humana.

1.3.1.4. Cuadricóptero

Un cuadricóptero se puede definir como una aeronave que se eleva y se desplaza por
el movimiento de cuatro motores colocados en los extremos de una estructura en forma de cruz.
Normalmente se utilizan los nombres quadrotor o cuadrirrotor. Tal como se presenta en la figura
3, el vehículo dispone de 4 motores con sus palas respectivas, se utiliza la velocidad de los
motores para controlar la estabilidad y movimientos del vehículo aéreo.

Figura 3. Ejemplo de un cuadricóptero


(Cuadricópteros, s.f)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
22

Los sistemas cuadricópteros se sitúan en la categoría de mini UAV (<25kg). Como se


observa en la tabla de clasificaciones las características generales de vuelo de esta categoría son
las siguientes:
o Alcance: < 10km
o Altitud de vuelo: < 300m
o Autonomía: < 2h
o Carga máxima: < 30kg
De las particularidades a subrayar es la gran versatilidad que posee este vehículo. Al tener
cuatro motores es más fácil de controlar, lo que ayuda a utilizarlo en aplicaciones donde la
exactitud de vuelo es muy importante. Una aplicación donde se aprecia esta característica es en
la navegación de interiores y sitios de espacio reducido.
Como en el helicóptero, estos vehículos disponen de una capacidad de vuelo vertical que
los hacen únicos, esta función es ventajosa cuando no queremos tener mucha velocidad
horizontal y cuando queremos tener una buena capacidad de vuelo estacionario, lo que ayuda a
elegir este tipo de sistemas cuando se quieren adquirir datos desde el vehículo.
El principal problema de los Cuadricópteros es su control. El sistema debe de incorporar
mecanismos de estabilización para ayudar a la navegación. La capacidad de carga es bastante
alta con relación al peso de todo el sistema, podemos encontrar vehículos que soporten una carga
superior al peso que tienen. Esta característica hace posible el incorporar un gran número de
sensores. Una de las características más importantes para tener en cuenta en los sistemas de
vuelo es la autonomía. La autonomía de vuelo no suele ser muy buena (<2h), esta fue una de las
limitaciones por las que los UAV tardaron un cierto tiempo en avanzar.

1.3.1.5. Materiales para estructura de cuadricóptero

Fibra de carbono, de acuerdo con (Fibra de carbono, s.f) es una fibra sintética
constituida por finos filamentos de 5–10 μm de diámetro y compuesto principalmente por
carbono. Cada fibra de carbono es la unión de miles de filamentos de carbono. Se trata de una
fibra sintética porque se fabrica a partir del poliacrilonitrilo. Tiene propiedades mecánicas
similares al acero y es tan ligera como la madera o el plástico. Por su dureza tiene mayor
resistencia al impacto que el acero. La densidad de la fibra de carbono es de 1.750 kg/m3. Es
conductor eléctrico y de baja conductividad térmica. Al calentarse, un filamento de carbono se
hace más grueso y corto. Las propiedades principales de este material son:

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
23

- Muy elevada resistencia mecánica, con un módulo de elasticidad elevado.


- Baja densidad, en comparación con otros materiales como por ejemplo el acero.
- Elevado precio de producción.
- Resistencia a agentes externos.
- Gran capacidad de aislamiento térmico.
- Resistencia a las variaciones de temperatura, conservando su forma, sólo si se utiliza
matriz termoestable.

Figura 4. Tela de fibra de carbono


(Fibra de carbono, s.f)

Fibra de vidrio, de la referencia (Fibra de vidrio, s.f) se define como un material que
consta de numerosos filamentos poliméricos basados en dióxido de silicio (SiO2)
extremadamente finos. La fibra de vidrio se conoce comúnmente como un material aislante.
También se usa como un agente de refuerzo con muchos productos poliméricos; normalmente
se usa para conformar plástico reforzado con vidrio que por metonimia también se denomina
fibra de vidrio, una forma de material compuesto consistente en polímero reforzado con fibra.
Por lo mismo, en esencia exhibe comportamientos similares a otros compuestos hechos de fibra
y polímero como la fibra de carbono. Aunque no sea tan fuerte o rígida como la fibra de carbono,
es mucho más económica y menos quebradiza.
Los tipos de fibra de vidrio usados más comúnmente son, las de vidrio clase E (E-glass:
vidrio de alumino-borosilicato con menos de 1% peso de óxidos alcalinos, principalmente
usada, para Plástico reforzado con vidrio, pero también se usan las clases A (A-glass: vidrio
alcali-cal con pocos o ningún óxido de boro), clase E-CR (E-CR glass: de silicato álcali-cal con

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
24

menos de 1% peso/peso de óxidos alcalinos, con alta resistencia a los ácidos), clase C (C-glass:
vidrio álcali-cal con alto contenido de óxido de boro, usadas por ejemplo en fibras de vidrio con
filamentos cortos), clase D (D-glass: vidrio de borosilicato con una constante dieléctrica alta),
clase R (R-glass: vidrio de alumino silicatos sin MgO ni CaO con altas prestaciones mecánicas)
y la clase S (S-glass: vidrio de alumino silicatos sin CaO pero con alto contenido de MgO con
alta resistencia a la tracción).
Una de las propiedades de la fibra de vidrio es ser un buen aislante acústico, gracias a
la composición de la resina y la dirección que tienen las fibras cuando se forma el material
compuesto. Las fibras de vidrio son buenos aislantes térmicos debido a su alto índice de área
superficial en relación con el peso. Sin embargo, un área superficial incrementada la hace mucho
más vulnerable al ataque químico. En la siguiente tabla se puede observar la resistencia de dos
tipos de fibra de vidrio:

Tabla 2
Propiedades de la fibra vidrio
Tipo de Fibra Tensión Esfuerzo de Densidad Dilatación T de Precio
de rotura Compresión (g/cm3) térmica ablandamiento dólar/kg
(MPa) (MPa) µm/(m°C) (°C)
Vidrio clase E 3445 1080 2,58 5,4 846 ~2
Vidrio clase S-2 4890 1600 2,46 2,9 1056 ~20
Fuente: Fibra de vidrio, s.f

Figura 5. Ejemplo de material fibra vidrio


(Productos de compuestos especiales, 2018)

Aluminio, este material es un metal que posee una combinación de propiedades que lo
hacen muy útil en ingeniería (Aluminio, s.f), tales como su baja densidad (2812,5 kg/m³) y su

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
25

alta resistencia a la corrosión. Mediante aleaciones adecuadas se puede aumentar sensiblemente


su resistencia mecánica (hasta los 690 MPa). Es buen conductor de la electricidad y del calor,
se mecaniza con facilidad y es muy barato. Por todo ello, en la actualidad es el metal que más
se utiliza después del acero. Este material se puede encontrar en el mercado en una variedad de
formas: planchas, barras, varillas, perfiles, etc.

Figura 6. Ejemplos de perfiles de aluminio


(Obtención y propiedades del aluminio, 2016)

Material de impresora 3D, la impresión 3D es un grupo de tecnologías de fabricación,


por adición donde un objeto tridimensional es creado mediante la superposición de capas
sucesivas de material. Las impresoras 3D son por lo general más rápidas, más baratas y fáciles
de usar que otras tecnologías de fabricación por adición, aunque como cualquier proceso
industrial, estarán sometidas a un compromiso entre su precio de adquisición y la tolerancia en
las medidas de los objetos producidos. Las impresoras 3D ofrecen a los desarrolladores del
producto la capacidad para imprimir partes y montajes hechos de diferentes materiales con
diferentes propiedades físicas y mecánicas, a menudo con un simple proceso de ensamble. Las
tecnologías avanzadas de impresión 3D pueden incluso ofrecer modelos que pueden servir como
prototipos de producto.
Dentro de los materiales más comúnmente usados en la impresión 3D, está el PLA que
es un plástico biodegradable, derivado de recursos renovables como el almidón de maíz o la
caña de azúcar. Sus principales propiedades son una baja densidad, pero baja resistencia
mecánica, se usa principalmente como filamentos para impresoras 3D. Debido a la necesidad
de una impresora 3D, su costo es mayor al de otros materiales anteriormente mencionados.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
26

Figura 7. Ejemplo de material de impresión 3D


(Filamento PLA premium, s.f)

1.3.1.6. Motores

Para la selección de los motores se tuvieron en cuenta los dos tipos de motores
eléctricos (sin escobillas y con escobillas), las ventajas del motor brushless (sin escobillas) es
que presenta una mejor relación entre torque y peso, son más eficientes y tienen un tiempo de
vida más largo ya que no necesitan mantenimiento, pero su desventaja es que requieren un
control más complejo por lo que suelen controlarse con controladores de velocidad (ECS).
Los motores brushless a su vez se clasifican en inrunner y outrunner, siendo estos
últimos utilizados en aplicaciones en donde se requiere un elevado torque sin necesidad de
diseñar una caja de engranajes. La desventaja de los outrunner es su menor eficiencia en
comparación con los inrunner, pero no menor que la de los motores con escobillas, además de
su menor capacidad de disipación de calor.

1.3.1.7. Hélices

Las hélices son generalmente especificadas usando dos tipos de formatos de números
en pulgadas separados por una x que representan la longitud de la hélice, el pitch y el número
de aspas es decir como Longitud(pulgadas) x Pitch(pulgadas) x Numero de aspas. Por ejemplo,
una hélice de 3 aspas que tiene una longitud de 10 pulgadas y un pitch de 4.5 pulgadas se puede
especificar como 10x4.5x3 o 1045x3. Si no se especifica el número de aspas por defecto se
considera que tiene 2 aspas.
La longitud de la hélice es mayormente limitada por el tamaño de la estructura del
cuadricóptero, está directamente relacionada con el empuje y la sensibilidad de control. Una

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
27

hélice larga barre una masa de aire mucho mayor por lo que requiere más energía para hacerla
girar, responderá más lentamente a cambios de giro en el motor y consumirá más potencia, sin
embargo, por tener más área de contacto generara un empuje elevado. Por el contrario, una
hélice más corta responderá más rápido a cambios de velocidad y consumirá menos potencia.
La longitud de la hélice tiene que estar correlacionada con el motor que se usara, ya que por
ejemplo si se usa una hélice más pequeña en un motor que está diseñado para una hélice más
grande, este tendrá que girar mucho más rápido para compensar el empuje y puede llegar a
sobrecalentarse y dañarse.
El pitch o paso de la hélice está relacionado con el ángulo de cada aspa, idealmente
seria la distancia hacia adelante que la hélice se movería por cada vuelta completa. Una hélice
con un pitch grande generara un empuje mayor cuando la hélice este girando a altas velocidades,
pero menor a bajas velocidades. Este tipo de hélice tendrá un menor tiempo de respuesta,
consumirá más potencia y será eficiente solo cuando el cuadricóptero se mueva rápidamente.
Por el contrario, un pitch pequeño permitirá que el cuadricóptero responda fácilmente a cambios
rápidos de dirección y consumirá menos potencia. Generalmente las hélices con pitch grande
son usadas en cuadricópteros que operaran en grandes áreas o campos abiertos y con pitch
pequeño en áreas cerradas donde se requiere que el cuadricóptero responda rápidamente a
cambios rápidos de dirección.

Figura 8. Diferencia entre tamaños de pitch


(Entrenamiento vuelo de ala fija, s.f)

Otro punto importante es el número de hojas de la hélice, idealmente la hélice más


eficiente es la que tiene solo un aspa, pero debido a su desbalance no es usada en la práctica. En

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
28

casos donde la longitud de la hélice es un limitante, incrementar el número de aspas es una


alternativa, es por ello por lo que en cuadricópteros pequeños se suelen usar hélices de 3 o 4
aspas. Las hélices de 2 aspas son las más eficientes, ya que tienen el menor número de aspas,
pero a medida que se necesite más empuje su longitud se verá restringida por el tamaño de la
estructura. Incrementar el número de aspas no es tan eficiente que incrementar el tamaño de la
hélice, ya que por ejemplo una hélice con el doble de aspas no será tan eficiente como una con
el doble del tamaño, pero generará más empuje a costa de consumir más potencia. Similar al
tamaño de la hélice, una hélice con más aspas tendrá un mayor empuje a costa de menor
sensibilidad y más consumo de potencia.

Figura 9. Hélices de acuerdo con su número de aspas


(Características principales de las hélices, s.f)

El material de fabricación de una hélice tiene un factor importante en su desempeño,


ya que influye en su eficiencia, vibración, sonido y durabilidad. Hay distintos tipos de materiales
que se utilizan en la fabricación entre ellos están: nylon con fibra de vidrio, fibra de carbono,
ABS y policarbonato. Cada uno tiene diferentes propiedades y características por lo que son
usados en diferentes aplicaciones. Las hélices de nylon reforzado con fibra de vidrio son las que
se encuentran más comúnmente, ya que son muy rígidas para su peso y esto permite que
mantenga estable y eficiente el perfil del aspa sin importar cuan rápido giren, pero su rigidez
hace que se rompan más fácilmente en un choque o caída.

1.3.1.8. Baterías

La batería es el elemento que permitirá almacenar la energía que consumirán los


motores y los circuitos electrónicos para la operación del cuadricóptero. Por tanto, es importante

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
29

que la batería permita almacenar una gran cantidad de energía suficiente para lograr mantener
al cuadricóptero en vuelo el tiempo necesario para lograr su recorrido, sin que se llegue a
descargar completamente, permitiendo así la autonomía de vuelo del cuadricóptero. Además, se
requiere que el peso de la batería sea lo más bajo posible para que no añada más carga al peso
del cuadricóptero y por tanto disminuya a su vez el tiempo que puede permanecer en vuelo el
cuadricóptero. Cabe indicar que la batería debe ser portable y recargable para poder usarla varias
veces.
En la actualidad existen diversos tipos de baterías que están clasificados de acuerdo
con el compuesto químico principal con el que se componen y su uso en diferentes tipos de
aplicaciones. Las baterías de ion de litio (Li-ion) son popularmente las más usadas en la
actualidad en componentes electrónicos portables como celulares, ordenadores portátiles,
herramientas eléctricas, vehículos eléctricos y hasta en aplicaciones aeroespaciales. Este es un
tipo de batería recargable que presenta una alta capacidad energética, resistencia a la descarga
y bajo peso. Sin embargo, si son manipuladas incorrectamente pueden representar un peligro,
ya que contienen un electrolito inflamable que puede explotar o incendiarse.
Las baterías de ion de litio debido a su extendido uso en diferentes aplicaciones en el
mercado se pueden encontrar diferentes tipos que tienen propiedades y usos diferentes
dependiendo del área de aplicación donde se quieren usar. El tipo más usado en los vehículos
aéreos no tripulados son las baterías de polímero de ion de litio (comúnmente abreviada como
polímero de litio o LiPo), a diferencia de las baterías de litio normales que usan un electrolito
líquido, estas usan un electrolito de polímero el cual es semisólido o gel y permite empaquetar
las celdas con un material mucho más liviano que las que usan electrolito líquido y requieren
una carcasa para almacenar el líquido, por lo que las LiPo son mucho más livianas. Sin embargo,
las de electrolito liquido por estar contenidas en carcasas son relativamente más seguras y se
usan generalmente en celulares u ordenadores portátiles, por el contrario, las baterías LiPo
requieren un mayor cuidado con su manipulación ya que pueden deformarse y son más
inflamables.

1.3.1.9. Controlador de vuelo

El controlador de vuelo es un componente importante del cuadricóptero, ya que se


encargará de gestionar y procesar toda la información de los demás componentes electrónicos
como los sensores, los controladores de velocidad, los receptores y transmisores de los controles

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
30

y la telemetría enviada a la interfaz de usuario. Además, se encargará de ejecutar los algoritmos


de control PID para lograr que el cuadricóptero realice un vuelo y desplazamiento estable, para
ello ejecutará los modos de vuelo planteados en el diseño preliminar.
El controlador de vuelo está compuesto por un microcontrolador que procesará las
entradas y salidas del sistema de control, este microcontrolador es programado por medio de un
software las instrucciones y algoritmos que procesará el sistema. En la actualidad, generalmente
en aplicaciones de vehículos aéreos no tripulados como los cuadricópteros se usan
microcontroladores STM electronics de 32bits, estos microcontroladores son ampliamente
usados en controladores de vuelo y se pueden encontrar comercialmente una amplia diversidad
de tipos según las características y funcionalidades que se necesite para la implementación del
proyecto.
Los modelos de microcontroladores más usados en estas aplicaciones son los chips
STM32 F1, F3, F4 y F7. El número después de la “F” indica que a mayor sea el número, mayor
es la capacidad y velocidad de procesamiento del microcontrolador y mayor es la cantidad de
funcionalidades que puede realizar. Los tipos que se utilizan actualmente en aplicaciones de
vehículos aéreos no tripulados son los F4 y F7, ya que estos ofrecen una mayor capacidad de
procesamiento de lectura y respuesta a las entradas de los sensores, lo cual se expresa en una
mayor frecuencia de lectura de los datos enviados por los sensores y una mayor frecuencia de
ejecución del algoritmo de control PID.
Los softwares que utilizan estos controladores de vuelo son diversos, entre ellos se
encuentran los que son de código abierto (open source) como el Cleanfligh, Betaflight o Inav.
Estos softwares o firmwares propiamente dicho se graban en el microcontrolador, permiten
configurar y programar los algoritmos de control y las funciones del controlador de vuelo
respectivamente. La programación de los algoritmos se realiza en lenguaje C++, el cual es
extendidamente usado por presentar una gran variedad de funcionalidades y librerías, además
que, por ser de código abierto, es desarrollado por una gran comunidad que se encarga
activamente de mejorar y agregar diversas funciones. Es por ello, que son ampliamente usados
en aplicaciones de vehículos aéreos como los cuadricópteros.

1.3.1.10. Controlador de velocidad

Los controladores de velocidad o ESC (del inglés electronic speed control), son
circuitos electrónicos que se encargan de controlar la velocidad de los motores brushless. Como

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
31

se explicó en la sección de motores, debido a la complejidad de control de los motores brushless,


estos se controlan por medio de controladores de velocidad. Estos son controlados por medio de
pulsos PWM que son enviados del controlador al ESC, luego estas señales son convertidas por
el ESC en señales trifásicas que hacen girar o cambiar de sentido a los motores brushless.
Además, los controladores de velocidad se encargan de aislar el circuito de potencia de
los motores del circuito de control, para que la corriente inversa generada por los motores no
afecte el circuito de baja potencia, y reducir el ruido generado por el motor en el circuito
eléctrico. Se encarga también de generar un freno dinámico a los motores para no detenerlos
bruscamente y no se dañen, de la misma manera generan una señal para arrancar los motores y
sincronizarlos.
Los ESC en la actualidad son fabricados con microcontroladores de 32bits que pueden
procesar protocolos de comunicación muchos más rápidos que el PWM que opera entre 1ms-
2ms, dentro de los más comerciales se encuentran los ESC con firmware BLHELI_S que pueden
trabajar con diferentes protocolos y pueden llegar a velocidades de hasta 25us, lo que permite
que el cuadricóptero reaccione rápidamente a cambios de dirección o velocidad.

1.4. Enunciado y formulación del problema

1.4.1. Enunciado del problema

Debido a todas las ventajas que ofrecen los cuadricópteros y que se vienen desarrollando
en los últimos años. Las aplicaciones civiles a las que son destinados estos drones van
aumentando con rapidez, permitiendo su introducción en las actividades de investigación,
planeación, monitoreo y control, tal es el caso del reconocimiento, adquisición de imágenes y
video de áreas inaccesibles o difíciles de explorar por el ser humano.

1.4.2. Formulación del problema


¿Cuáles serían las características de diseño y construcción de un prototipo de
cuadricóptero para aplicaciones de adquisición de imágenes aéreas?

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
32

1.5. Justificación del problema


En el Presente Proyecto de investigación se busca diseñar y construir un prototipo de
cuadricóptero para aplicaciones de adquisición de imágenes aéreas, dado que en la actualidad
existen muchos problemas en las actividades diarias que resultan laboriosas o difíciles para el
ser humano, en las cuales los vehículos aéreos no tripulados (cuadricópteros) suelen ser útiles
para misiones que son demasiado peligrosas y costosas para las aeronaves tripuladas.
Existe una inmensa cantidad de estos vehículos aéreos disponibles a distintos costos, los
más económicamente utilizados para controlar las condiciones ambientales incluyen dirigibles,
globos y drones.
Este tipo de dron (Cuadricóptero) puede ser controlado con un controlador direccional
mediante combinaciones de momentos y velocidades en cada uno de los 4 rotores y se le atribuye
una mayor agilidad, estabilidad y resistencia a choques y fallas. Además, los cuadricópteros en
comparación con los helicópteros no consumen energía en rotores que no aporten fuerza de
sustentación, los rotores tienen un menor tamaño, y al utilizar aspas más pequeñas y no flexibles,
la manufactura se simplifica.
El uso de cuadricópteros ha prosperado en la última década y se emplean concretamente
para monitorear una variedad de actividades, teniendo su origen principalmente en aplicaciones
militares, hoy en día también son utilizados en diversas aplicaciones civiles para obtener
productos cartográficos de pequeña escala, adquisición remota de imágenes y videos. Las
aplicaciones en agricultura también son diversas y las necesidades actuales perfilan esta
herramienta con gran potencial para actividades de investigación, planeación, monitoreo y
control, tales como labores de lucha contra incendios forestales, seguridad civil, vigilancias de
fronteras, control de infraestructuras industriales, labores de vigilancia en zonas catastróficas,
lucha contra el terrorismo y el narcotráfico, entretenimiento, purificación del aire, investigación
de volcanes, búsqueda de supervivientes en zonas azotas por catástrofes naturales, entrega de
productos a domicilio, reconocimiento y patrullaje marítimo, estudios meteorológicos y de
suelos, etc.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
33

1.6. Hipótesis
Mediante el modelado del cuadricóptero, el modelo cinemático, dinámico, selección de
componentes y simulación del sistema de control con el software Matlab, permitirá obtener las
características de diseño y construcción del prototipo de cuadricóptero para aplicaciones de
adquisición de imágenes aéreas.

1.7. Objetivos

1.7.1. Objetivo general

Diseñar y construir un prototipo de cuadricóptero mediante una metodología de diseño


que permita su fácil de implementación y viabilidad para aplicaciones de adquisición de
imágenes aéreas.

1.7.2. Objetivos específicos

1. Realizar el diseño conceptual del cuadricóptero, estableciendo los modos de vuelo que
realizara y los parámetros iniciales del diseño.
2. Determinar el modelo cinemático y dinámico del cuadricóptero y establecer un
modelo matemático simplificado que nos permite diseñar un controlador PID lineal.
3. Diseñar, seleccionar y realizar el montaje de la estructura, componentes electrónicos
y software que se utilizaran para la construcción del prototipo.
4. Modelar y simular en Matlab el sistema de control PID.
5. Realizar pruebas y analizar los resultados obtenidos.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
34

CAPÍTULO II
2. Materiales y Métodos

2.1. Diseño de Investigación


Investigación aplicada.

2.2. Variables

2.3.1. Variable dependiente

- Especificaciones técnicas del cuadricóptero.


- Calidad de imagen y alcance de la cámara.

Tabla 3
Variables dependientes del cuadricóptero
Variables Medición Rango
Longitud entre ejes mm < 500
Altura mm < 300
Peso de la estructura g 500 – 1000
Peso de la carga g 500 – 1000
Autonomía de vuelo minutos ≈ 15
Cámara Calidad imagen 1080p
Alcance m < 100
Fuente: Elaboración propia

2.3.2. Variable independiente

- Condiciones del medio ambiente como el viento, humedad, lluvia, etc.


- Materiales usados en la estructura.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
35

2.3. Población y muestra

2.3.1. Población

El universo de esta investigación son todos los cuadricópteros utilizados para tareas de
adquisición de imágenes aéreas.

2.3.2. Muestra
La muestra de esta investigación son todos los cuadricópteros con control PID utilizados
para tareas de adquisición de imágenes aéreas.

2.4. Metodología
La metodología de la presente tesis sigue los siguientes pasos:
- Planteamiento del problema.
- Revisión bibliográfica.
- Establecer un diseño conceptual y requerimientos iniciales de diseño del cuadricóptero
para satisfacer los requerimientos del problema.
- Desarrollar un modelo matemático simplificado del cuadricóptero que permita una
fácil implementación de un controlador PID lineal.
- Realizar el diseño y selección de la estructura, componentes electrónicos y software
del cuadricóptero.
- Modelar y simular el sistema de control PID del cuadricóptero y verificar la
factibilidad de su implementación.
- Realizar el montaje, configuración y ajustes de los componentes.
- Probar el cuadricóptero en campo para realizar ajustes finales y verificar su correcto
funcionamiento.
- Análisis de resultados.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
36

Planteamiento del
problema

Revision bibliográfica

Diseño conceptual y
parametros iniciales

Modelo matemático
simplificado

Diseño y seleccion de
componentes

Modelar y simular
controlador PID

Montaje,
configuracion y ajustes

Pruebas en campo

Resultados

Figura 10. Diagrama de flujo de la metodología realizada


(Fuente: Elaboración propia)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
37

CAPÍTULO III
3. Resultados

3.1. Diseño conceptual del cuadricóptero


El diseño conceptual del cuadricóptero se llevó a cabo siguiendo las lineaciones
metodológicas planteadas en (Lloyd & James, 2003), en esta literatura se detallan todos los
pasos o etapas que se deben llevar a cabo en el diseño de un vehículo aéreo no tripulado, desde
la etapa inicial de desarrollo que comienza con un esbozo de diseño que satisface la necesidad
del problema, el diseño en detalle de los componentes (hardware y software) del proyecto y
hasta la etapa de pruebas.
Como se mencionó en el marco teórico los vehículos aéreos no tripulados según su
morfología se clasifican en helicópteros, aviones, dirigibles y multicópteros. Según sus
aplicaciones cada uno tiene ciertas ventajas y desventajas que se indican a continuación:

Tabla 4
Comparación de los tipos de vehículos aéreos no tripulados
Tipo Maniobrabilidad Vuelo estacionario Velocidad Carga Costo
Helicópteros Buena Si Media Baja Medio
Aviones Baja No Alta Alta Alto
Dirigibles Media Si Baja Baja Alto
Multicópteros Buena Si Media Media Bajo
Fuente: elaboración propia

En el presente proyecto se requiere un vehículo aéreo autónomo para adquisición de


imágenes aéreas de fácil control o maniobrabilidad, que pueda mantenerse estable en vuelo, que
pueda llevar una pequeña cámara para la adquisición de imágenes y que sea de bajo costo. Por
lo que los multicópteros son los que satisfacen las necesidades que tenemos en el presente
proyecto, ya que a diferencia de los helicópteros su fácil control nos permite desarrollar sistemas
de control que son fácilmente implementables en tarjetas de control de bajo costo y no requieren
mecanismos complejos para su maniobrabilidad.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
38

Dentro de los tipos de multicópteros estos se clasifican a su vez según el número de rotores
o motores, ya que a más motores estos presentan más estabilidad de vuelo y más capacidad de
carga. Para el desarrollo del proyecto se eligió el tipo cuadricóptero ya que este logra un
equilibrio entre costo y estabilidad.

3.1.1. Diseño básico de un cuadricóptero para adquisición de imágenes aéreas

El diseño básico de cuadricóptero se basa en una estructura central con cuatro brazos
fijos que se encuentran simétricos correspondiente al centro de gravedad, los cuatro motores se
ubican al final de cada brazo, de acuerdo con la velocidad de giro de los motores y debido a la
aerodinámica de fricción de las hélices que se encuentran acopladas en cada motor estos
generaran una fuerza o empuje de sustentación que se encargara de elevar y controlar los
movimientos del cuadricóptero.
En la estructura central se encuentra los componentes electrónicos como el controlador
de vuelo, el sensor inercial, barómetro, magnetómetro y gps que se encargaran de establecer la
posición en tiempo real del cuadricóptero. Además, los receptores y transmisores de
radiofrecuencia para el control manual y los controladores de velocidad de los motores.
En la parte inferior se ubica el tren de aterrizaje del cuadricóptero que servirá para
mantenerlo estable durante el despegue y el aterrizaje y como carga la cámara que se encargará
de realizar la adquisición de imágenes y la batería. En la figura 11 se muestra un ejemplo de un
cuadricóptero comercial que se tomó como referencia en la realización del proyecto.

Figura 11. Drone Phantom 4


(Phantom 4, s.f)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
39

3.1.2. Modos de vuelo

Para el desarrollo del proyecto se establecieron 3 modos de vuelo que requiere el


cuadricóptero para el control del vuelo y que nos permite simplificar la implementación del
sistema de control.
Despegue y aterrizaje, en este modo de vuelo los cuatro rotores aumentan o disminuyen
su velocidad de rotación simultáneamente generando así una fuerza de sustentación por igual en
todos los motores y que permite al cuadricóptero despegar o aterrizar en el suelo. La fuerza de
sustentación total es igual a la suma de las cuatro fuerzas que generan cada motor y será mayor
o menor al peso total para generar la elevación y el descenso del cuadricóptero respectivamente.
En este modo el controlador de vuelo se encarga de controlar que los ángulos pitch, roll y yaw
se mantengan estables y compensar cualquier variación externa que se genere durante el mismo.
El cuadricóptero solo se moverá en el eje z y se elevará hasta llegar a una altura de operación
definida.
Vuelo estacionario, una vez el cuadricóptero ha despegado y ha alcanzado la altura de
operación los cuatro rotores se fijan a una velocidad constante de rotación por igual en todos los
motores. La fuerza de sustentación total es aproximadamente igual al peso total del
cuadricóptero para alcanzar un equilibrio de fuerzas y mantenerlo estable. En este modo el
controlador de vuelo se encargará de controlar que los ángulos pitch, roll, yaw y la altura se
mantengan estables y compensar cualquier variación externa. En este modo el cuadricóptero se
mantendrá en vuelo en una posición fija en los ejes xyz.
Vuelo en el plano xy, en este modo el cuadricóptero se moverá en el plano xy, para ello
los rotores aumentarán o disminuirán su velocidad de rotación dependiendo de la dirección de
desplazamiento o rotación de los ángulos pitch, roll y yaw. Para simplificar el modelamiento y
el sistema de control el cuadricóptero solo realizará un tipo de movimiento (pitch, roll o yaw) a
la vez y el controlador se encargará de mantener estable la altura de operación en el eje z y la
vez generar el tipo de movimiento compensando cualquier variación externa como por ejemplo
el viento. En la siguiente figura 12 se observa los diferentes tipos de movimientos:

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
40

Figura 12. Ejes y movimientos del cuadricóptero


(Ric S., s.f)

3.1.3. Parámetros iniciales de diseño

Una vez establecido el tipo y las funcionalidades que requiere el cuadricóptero para el
desarrollo del presente proyecto. Se plantean los siguientes parámetros iniciales de diseño que
nos servirán para el modelamiento y selección de los componentes del cuadricóptero.

Tabla 5
Parámetros iniciales de diseño
Variable Valor
Longitud ≤ 500mm
Altura ≤ 300mm
Peso de la estructura 500 – 1000g
Peso de la carga 500 – 1000g
Autonomía de vuelo ≈15m
Cámara Compacta, ligera y alta definición
Alcance 100m
Fuente: Elaboración propia

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
41

El alcance de vuelo del cuadricóptero está limitado por el alcance de la transmisión de


datos de la cámara, esta comunicación se realiza por wifi por lo que el alcance de la adquisición
de imágenes en tiempo real se encuentra limitado a unos 100m aproximadamente.

3.2. Modelamiento matemático del cuadricóptero


Para realizar la simulación del sistema de control del cuadricóptero, es necesario establecer
la formulación matemática de las ecuaciones que gobiernan el movimiento del cuadricóptero.
En el modelamiento matemático se considerará al cuadricóptero como un sólido rígido con
centro de gravedad, esta consideración es asumida comúnmente para que el desarrollo de las
ecuaciones de las variables de estado sea sencillo de comprender. De esta manera, el
cuadricóptero queda definido por su masa, matriz de inercia y la posición del centro de gravedad.
Para el desarrollo del modelo matemático se toman en cuenta los componentes estructurales y
electrónicos que componen el vehículo aéreo no tripulado, así como su configuración, matriz de
rotación y ubicación espacial con respecto al centro de gravedad para calcular los parámetros
que servirán en el modelamiento del sistema de control del cuadricóptero. Los componentes que
se tomaran en cuenta en el modelado son:
- Componentes estructurales: cuerpo central y brazos.
- Componentes electrónicos: controlador de vuelo, sensores, esc.
- Motores, hélices y batería.
- Cámara y estabilizador.
En la referencia (José, H., & Ricardo, R., 2012) se describen estas condiciones de diseño
que se han utilizado en el desarrollo del presente proyecto y en la referencia (Randal W., 2008)
se establece la formulación matemática que se toma en cuenta para el modelamiento que se
realizará.
Para el modelamiento matemático se consideran las siguientes variables de estado del
cuadricóptero que definen la posición, velocidad y rotación en el espacio tridimensional.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
42

𝑝𝑛 = posición del cuadricóptero (norte),


𝑝𝑒 = posición del cuadricóptero (este),
ℎ = la altitud del cuadricóptero,
𝑢 = velocidad medida en el cuerpo del cuadricóptero eje X,
𝑣 = velocidad medida en el cuerpo del cuadricóptero eje Y,
𝑤 = velocidad medida en el cuerpo del cuadricóptero eje Z,
𝜙 = ángulo roll en sistema coordenadas local,
𝜃 = ángulo pitch en sistema coordenadas local,
𝜓 = ángulo yaw en sistema coordenadas local,
𝑝 = velocidad angular roll medida en el cuerpo del cuadricóptero,
𝑞 = velocidad angular pitch medida en el cuerpo del cuadricóptero,
𝑟 = velocidad angular yaw medida en el cuerpo del cuadricóptero,

Las variables de estado se muestran en la siguiente figura 13. La posición (𝑝𝑛 , 𝑝𝑒 , ℎ) del
cuadricóptero esta dado en el sistema de referencia inercial, con una altura positiva definida
sobre el eje negativo Z en el sistema de referencia inercial. La velocidad (𝑢, 𝑣, 𝑤) y la velocidad
angular (𝑝, 𝑞, 𝑟) del cuadricóptero están dadas con respecto al sistema de referencia del cuerpo.
Los ángulos de Euler (𝑟𝑜𝑙𝑙 𝜙, 𝑝𝑖𝑡𝑐ℎ 𝜃 𝑦 𝑦𝑎𝑤 𝜓) están dados con respecto al sistema de
referencia local.

Figura 13. Definición de las variables de estado


(Randal W., 2008)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
43

3.1.4. Cinemática del cuadricóptero

Las variables de estado 𝑝𝑛 , 𝑝𝑒 y −ℎ inerciales de posición están relacionadas con las


variables de velocidad con respecto al cuerpo del cuadricóptero mediante la siguiente matriz de
rotación:

La relación entre los ángulos 𝜙, 𝜃 y 𝜓, y las velocidades angulares 𝑝, 𝑞 y 𝑟 ya que están


en diferentes sistemas de referencia, tenemos que relacionar 𝑝, 𝑞 y 𝑟 con 𝜙̇, 𝜃̇ y 𝜓̇. Ya que 𝜙̇, 𝜃̇, 𝜓̇
son velocidades angulares pequeñas y teniendo en cuenta que:

Tenemos que:

(3.1)

Invirtiendo la matriz de rotación tenemos que:

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
44

(3.2)

3.1.5. Dinámica del cuadricóptero

Definiendo 𝑣 como el vector de velocidad del cuadricóptero, aplicando la ley Newton,


el movimiento traslacional viene dado por:

𝑑
Donde 𝑚 es la masa del cuadricóptero, f es la fuerza total aplicada al cuadricóptero y 𝑑𝑡
𝑖

es la derivada con respecto al sistema de referencia inercial. De la ecuación de coriolis tenemos


que:

(3.3)

Donde 𝜔𝑏 es la velocidad angular del cuadricóptero con respecto al sistema referencia


𝑖

inercial. Expresando la ecuación 3.3 en el sistema referencia del cuerpo, donde 𝑣 𝑏 = (𝑢, 𝑣, 𝑤)𝑇
y 𝑤𝑏𝑏 = (𝑝, 𝑞, 𝑟)𝑇 . Por lo que, en sistema referencia cuerpo la ecuación 3.3 se puede expresar
𝑖

como:

(3.4)

𝑇
Donde f 𝑏 = (𝑓𝑥 , 𝑓𝑦 , 𝑓𝑧 ) . Para el movimiento rotacional, la segunda ley Newton define:

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
45

Donde h es el momento angular y m es el torque aplicado. Usando la ecuación de coriolis


tenemos que:

(3.5)

𝑏
La ecuación 3.5 se puede expresar en el sistema de referencia cuerpo donde h𝑏 = J𝑤𝑏/𝑖
y donde J es la matriz inercial constante dada por:

Figura 14. Modelo de solido rígido del cuadricóptero


(Randal W., 2008)

Los momentos de inercia son calculados asumiendo que el cuadricóptero está compuesto
por un centro esférico denso con masa M y radio R, y puntos de masa m ubicados a una distancia
ℓ del centro. En la figura 14, se establece el modelo de solido rígido para el cuadricóptero y el
cual se representa simétrico en los 3 ejes de coordenadas, por lo que 𝐽𝑥𝑦 = 𝐽𝑥𝑧 = 𝐽𝑦𝑧 = 0 lo cual
implica que:

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
46

Por lo que:

La ecuación 3.5 se puede expresar en el sistema de referencia cuerpo, definiendo m𝑏 =


𝑇
(𝜏𝜙 , 𝜏𝜃 , 𝜏𝜓 ) como el momento en el sistema de coordenadas cuerpo, por lo tanto tenemos que:

En resumen, el modelo de 6 grados de libertad dado por la cinemática y dinámica del


cuadricóptero viene expresado por las siguientes ecuaciones:

(3.6)

(3.7)

(3.8)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
47

(3.9)

3.1.6. Fuerzas y momentos


Las fuerzas y momentos que actúan en el cuadricóptero son principalmente la gravedad
y el empuje generado por las hélices. No se consideran otras fuerzas o momentos que pueden
producirse por la aerodinámica de las hélices.

Figura 15. Vista superior del cuadricóptero


(Randal W., 2008)

Como se ve en la figura 15 cada motor produce una fuerza de sustentación 𝐹 y un torque


𝜏. Para que el cuadricóptero se mantenga estable y no gire sobre su eje el motor frontal y
posterior giran en el sentido horario y los motores laterales en sentido antihorario.

Figura 16. Definición de las fuerza y torque que actúan en el cuadricóptero


(Randal W., 2008)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
48

En la figura 16 la fuerza total de los cuatro motores que actúa en el cuadricóptero está
dada por:

(3.10)

El torque roll es generado por las fuerzas de los motores laterales:

(3.11)

De igual manera, el torque pitch es generado por las fuerzas de los motores frontal y
posterior:

(3.12)

Por la tercera ley de Newton, el giro de los motores produce un torque yaw. La dirección
del torque será en dirección opuesta del movimiento de las hélices, por lo que el torque total
esta dado por:

(3.13)

La fuerza de sustentación producida por las hélices es proporcional a la velocidad de


rotación de los rotores. Se asumirá que la velocidad de rotación de los motores es proporcional
a la señal PWM enviada por el controlador al motor. Por lo tanto, la fuerza y torque de cada
motor puede expresarse como:

(3.14)

Donde 𝑘1 y 𝑘2 son constantes, 𝛿∗ es la señal de control de cada motor. Por otro lado,
además de la fuerza generada por los motores, la gravedad también actúa en el cuadricóptero.
En el sistema de referencia local, la gravedad actúa en el centro de masa y está dada por:

Por lo tanto, considerando las fuerzas y momentos tenemos que las ecuaciones 3.6 a 3.9
se expresan como:

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
49

(3.15)

(3.16)

(3.17)

(3.18)

3.1.7. Modelo simplificado

Las ecuaciones 3.15 a 3.18 representan el modelo matemático de seis grados de libertad
del cuadricóptero, sim embargo no son apropiadas para el diseño de un controlador lineal porque
depende de parámetros no lineales. Por lo que, se toman las siguientes consideraciones para
simplificar las ecuaciones.
Asumiendo que los ángulos pitch 𝜃 y roll 𝜙 son pequeños, ya que el controlador se
encargará de mantener estable el cuadricóptero y compensará cualquier variación externa, la
ecuación 3.17 se puede simplificar como:

(3.19)

Similarmente la ecuación 3.18 puede ser simplificada asumiendo que los términos de las
ecuaciones de Coriolis 𝑞𝑟, 𝑝𝑟 y 𝑝𝑞 son pequeños obteniendo así la ecuación:

(3.20)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
50

Combinando la ecuación 3.19 y 3.20 tenemos que:

(3.21)

Derivando la ecuación 3.15 y reemplazándola en la ecuación 3.16 considerando los


términos de la ecuación de Coriolis despreciables, tenemos la siguiente ecuación:

(3.22)

Por lo tanto, el modelo inercial simplificado del cuadricóptero es dado por las siguientes
ecuaciones:

(3.23)

(3.24)

(3.25)

(3.26)

(3.27)

(3.28)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
51

3.3. Diseño y selección de componentes del cuadricóptero


Habiendo establecido los paramentos iniciales de diseño de un cuadricóptero básico para
aplicaciones de adquisición de imágenes aéreas, se realizará el análisis y selección de los
componentes requeridos para la construcción del cuadricóptero.

3.2.1. Selección de la estructura de soporte


Para la selección de la estructura, se tomaron en cuenta los materiales que son
comúnmente utilizados en la construcción de cuadricópteros y que se mencionan en el marco
teórico, debido a su accesibilidad en el mercado y su uso en la ingeniería. Para el presente
proyecto se requiere que la estructura sea liviana, tenga buena resistencia en caso de choque o
caídas y sea de bajo costo.
En la siguiente tabla 6 se muestra una comparativa entre los diferentes materiales que se
tomaron en cuenta para la selección de la estructura del cuadricóptero. Como se puede observar
en la tabla el material que tiene mejor relación entre propiedades y costo es la fibra de vidrio,
no obstante, la ventaja de la fibra de carbono es su baja densidad.

Tabla 6
Comparación entre materiales
Material Densidad Resistencia Costo
Fibra carbono Baja Alta Alto
Fibra vidrio Media Alta Bajo
Aluminio Alta Baja Bajo
PLA Baja Baja Alto
Fuente: Elaboración Propia

Habiendo analizado los distintos tipos de materiales que se requieren para la


construcción del cuadricóptero, se procedió a analizar la factibilidad entre costo y beneficio de
la manufactura de la estructura y el tiempo que llevaría a cabo. Por otro lado, se investigó los
diferentes tipos de estructura que se encuentran comercialmente en el mercado y se realizó un
cuadro comparativo entre las diferentes ventajas y desventajas que nos ofrecen ambas opciones.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
52

Tabla 7
Comparativa entre las ventajas y desventajas
Opción Herramientas y equipos Diseño Tiempo Costo
Manufactura Se requieren equipos A la medida Considerable Medio
para realizar el molde
Estructura No se requiere Fijo Bajo Bajo
comercial
Fuente: Elaboración propia

Teniendo en cuenta las ventajas y desventajas de ambas opciones, se optó por elegir una
estructura comercial de bajo costo que cumple con los requerimientos que se necesita para
desarrollar el proyecto. En la siguiente figura 17, se puede observar la estructura que se eligió,
ya que es usada en aplicaciones con cámaras aéreas.

Figura 17. Estructura de cuadricóptero S500


(Kit estructura de cuadricóptero S500, s.f)

Este tipo de estructura está compuesta por cuatro brazos de fibra de vidrio, un centro de
PCB, donde se pueden soldar los circuitos electrónicos y un tren de aterrizaje de dos varillas de
fibra de carbono y almohadillas para amortiguación. En la siguiente tabla 8 se muestran las
características principales.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
53

Tabla 8
Características de la estructura
Característica Valor
Distancia ejes 480mm
Altura 280mm
Peso 730g
Material brazos Fibra vidrio
Material tren aterrizaje Fibra carbono
Fuente: Kit estructura de cuadricóptero S500, s.f

3.2.2. Selección de los motores

Para la construcción del cuadricóptero se requiere un motor que sea liviano y sea
eficiente en el consumo de energía para lograr mantener al cuadricóptero en vuelo el máximo
tiempo posible, ya que será alimentado por una batería portable que limitara su tiempo de
operación. Además, que los motores deben proporcionar un elevado torque y sean fácilmente
montados en los brazos de la estructura del cuadricóptero. Para determinar el motor que se
requiere en el presente proyecto, se tomó como referencia la siguiente tabla, usada generalmente
para seleccionar y estimar el tamaño del motor.

Tabla 9
Selección del tamaño del motor
Distancia entre ejes Tamaño de la hélice Tamaño del motor KV
150mm o menos 3’’ o menos 1105-1306 o menos 3000KV o mas
180mm 4’’ 1806 2600KV – 3000KV
210mm 5’’ 2204-2208, 2306 2300KV – 2600KV
250mm 6’’ 2204-2208, 2306 2000KV – 2300KV
350mm 7’’ 2208 1600KV
450mm o mas 8’’, 9’’, 10’’ o mas 2212 o mas 1000KV o menos
Fuente: Como elegir el motor de un cuadricóptero, 2018

En la tabla 9, conociendo el tamaño de la estructura del cuadricóptero, podemos estimar


el tamaño del motor. Esto se puede explicar porque para un determinado tamaño de estructura,
se restringe el tamaño de hélice que se puede usar y cada tamaño de hélice requiere un motor

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
54

que gire a unas RPM diferentes para que pueda generar el empuje eficientemente. Es por ello
por lo que se toma en cuenta los KV del motor.
El siguiente paso, es determinar el empuje mínimo que el motor requiere para cumplir
con las características iniciales de diseño. Para ello se tuvo en cuenta que, por regla general en
el diseño de este tipo de vehículos aéreos no tripulados, la relación entre empuje y peso totales
del cuadricóptero debe ser mínimo 2:1, ya que si es menor no se tendrá un buen control de
movimiento, se pueden presentar problemas de estabilidad en el despegue y no deja margen a
que por ejemplo no se añadan posteriormente cargas adicionales no previstas en el diseño
preliminar del cuadricóptero. Una mayor relación, es utilizada por ejemplo en cuadricópteros
de carrera o aplicaciones que requieren altas velocidades de vuelo.
Para nuestro proyecto, se optó por cumplir como mínimo con la relación 2:1, ya que no se
requiere altas velocidades de vuelo y se diseña para aplicaciones de adquisición de imágenes
aéreas, que son de baja velocidad. Para determinar el empuje que debe tener el motor se
realizaron los siguientes cálculos:

(3.29)

Dados los parámetros iniciales de diseño tenemos que:

1000𝑔 < 𝑃𝑒𝑠𝑜 𝑇𝑜𝑡𝑎𝑙 < 2000𝑔

Reemplazando la ecuación 3.29 y teniendo en cuenta que el empuje total es la suma de los
empujes de los 4 motores, tenemos:

2000𝑔 < 𝐸𝑚𝑝𝑢𝑗𝑒 𝑇𝑜𝑡𝑎𝑙 < 4000𝑔 ,

(3.30)

En la siguiente tabla 10 se muestran los parámetros que se han definido para poder
determinar y seleccionar el motor que se requiere para el desarrollo del proyecto.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
55

Tabla 10
Parámetros establecidos para seleccionar el motor
Tipo Brushless outrunner
Tamaño 2212 o mas
KV 1000KV o menos
Empuje 500 – 1000g
Fuente: Elaboración propia

El motor que se seleccionó, de acuerdo con los parámetros que se establecieron, es el


motor marca Sunnysky modelo X2212, cabe indicar que se eligió esta marca de motores por
presentar una buena relación entre calidad y precio. A continuación, se muestra el motor, sus
dimensiones y las especificaciones técnicas del motor.

Figura 18. Motor brushless outrunner X2212 980KV


(Motor Sunnysky X2212, s.f)

Figura 19. Dimensiones del motor en milímetros


(Motor Sunnysky X2212, s.f)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
56

Figura 20. Especificaciones técnicas del motor X2212


(Motor Sunnysky X2212, s.f)

3.2.3. Selección de las hélices

Las hélices son los componentes del cuadricóptero que se acoplan a los ejes de los
motores, se encargan de convertir el movimiento rotacional de los motores en empuje por acción
de las aspas en contacto con el aire para generar un remolino que empuja a las hélices hacia
adelante. El giro de las aspas de la hélice mueve la masa de aire enfrente hacia atrás generando
una gran diferencia de presión que logra empujar a la hélice hacia adelante.
Para la selección de las hélices se tienen en cuenta diferentes aspectos como la longitud,
el pitch, el número de aspas y el material con que se fabrican, este último es un factor importante
porque las hélices son el componente del cuadricóptero que tiende a dañarse más fácilmente y
necesita reemplazarse muy seguido.
Para el presente proyecto se seleccionaron las hélices GEMFAN 1045 de nylon con fibra
de vidrio, para esto se tuvo en cuenta las especificaciones técnicas del motor en donde indica
que unas hélices 1047 generarían aproximadamente una fuerza de empuje máxima entre 910 y
1150 dependiendo del número de celdas de la batería que se eligiera. Se eligió el número más
cercano 1045 por la disponibilidad del producto.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
57

Figura 21. Especificaciones del motor X2212 según la hélice APC1047


(Motor Sunnysky X2212, s.f)

Figura 22. Hélices seleccionadas Gemfan 1045


(Gemfan 1045, s.f)

3.2.4. Selección de la batería

Para seleccionar una batería LiPo se debe tener en cuenta el voltaje, la capacidad y la
tasa de descarga (C-rating). Las baterías LiPo vienen empaquetadas y están compuestas desde
una o más celdas, cada celda está fabricada para tener un voltaje nominal de 3.7V, por lo que si
se requiere que la batería suministre un voltaje mayor se suelen vender paquetes de distintos
tamaños, donde se agrupan varias celdas en serie para aumentar el voltaje total de la batería. Los

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
58

paquetes LiPo se suelen vender en configuraciones de 1S, 2S, 3S, 4S, 5S o 6S, donde el digito
antes de la letra “S” indica el número de celdas.

Figura 23. Ejemplo de batería Li-ion


(Lithium-ion battery, s.f)

Figura 24. Ejemplo de batería LiPo


(Lithium polymer battery, s.f)

La capacidad de la batería LiPo es medida en miliamperios por hora (mAh) y representa


la cantidad de corriente que puede suministrar por hora. Por ejemplo, una batería de 6000 mAh
podrá suministrar 6000 mA (6A) de corriente durante una hora o el doble 12000 mA (12A)
durante 30 minutos. Una batería con una alta capacidad significa que podrá proveer mucho más
tiempo de vuelo al cuadricóptero, sin embargo, añadirá mucho peso al sistema lo que conllevará
al mismo tiempo a una reducción del tiempo de vuelo. Por tanto, es necesario evaluar y encontrar
el equilibrio que satisfará los requerimientos de diseño del cuadricóptero.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
59

𝐶𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑 𝐵𝑎𝑡𝑒𝑟𝑖𝑎 (𝑚𝐴ℎ) = 𝐶𝑜𝑟𝑟𝑖𝑒𝑛𝑡𝑒(𝑚𝐴) × 𝑇𝑖𝑒𝑚𝑝𝑜 (ℎ) (3.31)

La tasa de descarga o C-rating, es un parámetro que se usa para determinar la corriente


máxima que puede suministrar la batería continuamente y que tan rápido puede descargarse. La
tasa de descarga puede multiplicarse por la capacidad de la batería para determinar la corriente
máxima teórica de descarga de la batería. Por ejemplo, una batería de 6000 mA con una tasa de
descarga 10C significa que podrá suministrar una corriente máxima de 60A. Si la batería es
forzada a suministrar una corriente mucho mayor que la corriente máxima determinada con la
tasa de descarga por un periodo de tiempo significativo, puede llegar a dañar la batería
produciendo que se hinche, se sobrecaliente o hasta incluso hacer que se incendie.

𝐶𝑜𝑟𝑟𝑖𝑒𝑛𝑡𝑒 𝑀𝑎𝑥. (𝐴) = 𝐶𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑 𝐵𝑎𝑡𝑒𝑟𝑖𝑎 (𝑚𝐴ℎ) × 𝑇𝑎𝑠𝑎 𝑑𝑒𝑠𝑐𝑎𝑟𝑔𝑎 (3.32)

Para nuestro proyecto se seleccionó la batería teniendo en cuenta el tiempo de vuelo


promedio establecido en los parámetros iniciales de diseño de la tabla 4 y se tomó como
referencia los datos de las especificaciones técnicas del motor Sunnysky X2212. Para el cálculo
de la capacidad se tomó de referencia la ecuación 3.31 en donde se estableció que cada motor
requerirá que genere como mínimo 500g de fuerza de empuje, para mantener al cuadricóptero
en vuelo estacionario.
Según la figura 21, se tiene que para una batería 3S la corriente que consumirá cada motor
para generar los 500 g de empuje será de 6.2 A. Para una batería 4S la corriente que consumirá
cada motor será de 5.2 A. Por lo que, para calcular la corriente total que consumirá el
cuadricóptero en cada caso se multiplicará por el número de motores:

𝐼3𝑆 = 6.2 𝐴 × 4 𝑚𝑜𝑡𝑜𝑟𝑒𝑠 = 24.8 𝐴

𝐼4𝑆 = 5.2 𝐴 × 4 𝑚𝑜𝑡𝑜𝑟𝑒𝑠 = 20.8 𝐴

Para calcular la capacidad de la batería se usó la corriente total que consumirá el


cuadricóptero para permanecer en vuelo estacionario en el tiempo de vuelo requerido que es de
15 minutos, utilizando las especificaciones del motor de la figura 21 y usando la ecuación 3.31
tenemos:

15
𝐶𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑 𝐵𝑎𝑡𝑒𝑟𝑖𝑎 3𝑆 = 24800 × = 6200 𝑚𝐴ℎ
60

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
60

15
𝐶𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑 𝐵𝑎𝑡𝑒𝑟𝑖𝑎 4𝑆 = 20800 × = 5200 𝑚𝐴ℎ
60
Habiendo determinado estos parámetros se eligió la batería HRB 3S 6000mAh 50C, ya
que por su disponibilidad, características y precio representaba la mejor opción para la
construcción de nuestro cuadricóptero. Con esta batería se calcula el tiempo de vuelo despejando
la ecuación 3.31 se tiene:

𝐶𝑎𝑝𝑎𝑐𝑖𝑑𝑎𝑑 𝐵𝑎𝑡𝑒𝑟𝑖𝑎 (𝑚𝐴ℎ)


𝑇𝑖𝑒𝑚𝑝𝑜 𝑣𝑢𝑒𝑙𝑜 (𝑚𝑖𝑛𝑢𝑡𝑜𝑠) = 𝐼3𝑆
× 60 (3.33)

6000 × 60
𝑇𝑖𝑒𝑚𝑝𝑜 𝑣𝑢𝑒𝑙𝑜 = = 14.52 𝑚𝑖𝑛𝑢𝑡𝑜𝑠
24800
La imagen de la batería y sus especificaciones técnicas se muestran a continuación:

Figura 25. Batería HRB 3S seleccionada para el cuadricóptero


(Batería LiPo 3S, s.f)

Tabla 11
Especificaciones técnicas de la batería HRB 3S
Parámetro Especificación
Celdas 3S
Capacidad 6000 mAh
Tasa descarga continua 50C
Tasa de carga 1C
Dimensiones 155mm x 48mm x 27mm
Peso 419g
Fuente: Batería LiPo 3S, s.f

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
61

3.2.5. Selección de los controladores de velocidad

Generalmente los ESC se seleccionan de acuerdo con la corriente máxima en amperios


(A) que suministrara a cada motor y el voltaje de la batería. Para nuestro proyecto se seleccionó
un ESC de 20A, ya que nuestros motores consumirán como máximo 15.5A según las
especificaciones técnicas del motor en la figura 21. Este controlador de velocidad puede trabajar
con una batería de 2S a 4S.

Figura 26. ESC seleccionado Racerstar 20A BLHELI_S


(Racerstar BLHELI_S, s.f)

Tabla 12
Especificaciones técnicas del ESC Racerstar 20A
Parámetro Especificación
Corriente nominal 20A
Corriente pico 25A
Voltaje 2S-4S
Firmware BLHELI_S
Peso 7.9g
Tamaño 27mm x 12mm
Fuente: Racerstar BLHELI_S, s.f

3.2.6. Selección de los sensores

Los sensores son los componentes que se encargarán de medir las variables de estado
del cuadricóptero, servirán de retroalimentación para el sistema de control de vuelo del
cuadricóptero, esto permitirá que pueda desplazarse autónomamente de acuerdo con los modos
de vuelo que se establecieron en el diseño. Para nuestro proyecto se propone implementar 3
tipos de sensores que nos permitirán medir y estimar las variables de estado del cuadricóptero.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
62

Unidad de medición inercial o comúnmente llamado IMU (del inglés inertial


measurement unit), este tipo de sensores es utilizado generalmente en los sistemas de
navegación de vehículos aéreos no tripulados, así como en aviones, naves espaciales como
transbordadores y satélites, buques marinos y hasta en misiles guiados. Estos sensores permiten
al controlador determinar la posición y orientación de un objeto en el espacio tridimensional,
para ello utilizan acelerómetros que miden e informan al controlador las aceleraciones del objeto
en los tres ejes de coordenadas, además de contar con giroscopios que se encargan de medir las
velocidades rotacionales del objeto pitch, roll y yaw.
Una de las desventajas de la unidad de medición inercial es que generalmente son
afectadas por un error acumulativo, ya que por su funcionamiento estos sensores calculan el
valor actual del estado del objeto agregando los cambios de estado a valores previamente
calculados, por lo que cualquier error por más pequeño que se genere, se acumulará en el estado
actual generando un error incremental con el tiempo (comúnmente llamado drift).
Es por ello, que normalmente en la construcción de vehículos aéreos no tripulados, se
implementen además otros tipos de sensores en el sistema de navegación que permitan corregir
o mitigar el efecto que se produce por el error generado por los IMU.

Figura 27. Ejemplo de sensor IMU MPU6050


(MPU6050 y su programación, 2018)

Sensor barométrico, este tipo de sensor se encarga de medir la presión atmosférica e


indirectamente estimar la altura de un objeto sobre el nivel del mar. La presión atmosférica es
la fuerza que ejerce el aire sobre la superficie de la tierra, matemáticamente la presión es igual
a la fuerza sobre área, por lo que se expresaría como el peso de una columna de aire sobre una
determinada área. Es por ello, que a diferentes alturas la presión atmosférica será diferente.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
63

La presión atmosférica también depende de la temperatura del medio ambiente, ya que


la temperatura hace cambiar la densidad del aire, el cual a su vez se ve reflejado en un cambio
en el peso del aire y por lo tanto en un cambio en la presión atmosférica. Otros factores como la
humedad y la velocidad del viento también influyen en la presión atmosférica, pero en menor
cantidad por lo que normalmente no son considerados.
Este sensor es usado en nuestro proyecto para poder estimar con mayor precisión la
altitud del cuadricóptero y corregir cualquier error que pudiera generar la unidad de medición
inercial, lo que le permitirá al sistema de control mantener estable la altitud del cuadricóptero.

Figura 28. Ejemplo de sensor barométrico BMP280


(Como usar el sensor BMP280, 2018)

Sistema de posicionamiento global o GPS (del inglés global position system), es un


sistema capaz de determinar la posición de un objeto en la tierra con una precisión de unos pocos
metros. Este sistema utiliza una red de 24 satélites que orbitan sobre la tierra con trayectorias
sincronizadas para cubrir todo el globo terrestre. Para calcular la posición tridimensional de un
objeto, el módulo sensor localiza como mínimo cuatro o más satélites de la red, de los cuales
recibe señales que le indican sus identificaciones y hora de reloj de cada uno de ellos. Utilizando
estas señales, el sensor sincroniza su reloj y calcula el tiempo que tardan en llegar estas señales,
y sabiendo la frecuencia a la que son enviadas estas señales puede estimar la distancia relativa
entre los satélites y el objeto. Luego con estos datos y la información de las coordenadas y
posición absoluta que cada satélite envía en las señales, el sensor puede llegar a calcular la
posición absoluta exacta del objeto.
La precisión de la posición obtenida con el GSP dependerá del número de satélites visibles
por el sensor en un momento y posición determinados. Por ejemplo, si se capta la señal de entre
siete a nueve satélites, pueden llegarse a obtener precisiones inferiores a 2.5 metros. Algunas
fuentes de errores que pueden producirse son como por ejemplo por el rebote de la señal en

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
64

edificios y montañas cercanos, errores orbitales, número de satélites visibles, geometría de los
satélites visibles y errores locales en el reloj del sensor. En la siguiente tabla 13 se pueden ver
los efectos de algunas fuentes de errores.

Tabla 13
Fuentes de errores del GPS
Fuente Efecto
Ionósfera ±3m
Efemérides ± 2.5 m
Reloj satelital ±2m
Distorsión multibandas ±1m
Tropósfera ± 0.5 m
Errores numéricos ± 1 m o menos
Fuente: GPS, s.f

Este sensor se usará en nuestro proyecto para poder estimar con mayor exactitud la
posición del cuadricóptero y poder obtener sus coordenadas para poder visualizarlo en un mapa
en la interfaz de usuario. Se seleccionó el módulo GPS Ublox NEO M8N, este módulo viene
con un sensor magnetómetro que permite determinar la ubicación del polo magnético norte y un
soporte que sirve para colocar el módulo a una distancia apartada del circuito principal de
control para que la lectura del campo magnético no sea alterada por ruido generado en el sistema
eléctrico.

Figura 29. GPS seleccionado Ublox NEO M8N


(Ublox NEO M8N, s.f)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
65

Algunas de las características técnicas más importantes del módulo GPS que se seleccionó
para la construcción del cuadricóptero se muestran en la siguiente tabla 14.

Tabla 14
Especificaciones técnicas del módulo GPS UBLOX M8N
Parámetro Especificación
Tipo receptor Módulo u-blox M8 de 72 canales
Soporta GPS/SBAS/QZSS L1 C/A, GLONASS
L10F, BeiDou B1 y Galileo E1B/C
Tiempo arranque frío 29 s
Tiempo arranque operación 1s
Sensibilidad navegación -166 dBm
Frecuencia máx. de muestreo 10 Hz
Precisión velocidad 0.05 m/s
Precisión angular 0.3 grados
Precisión posición horizontal 2.0 m
Fuerza máxima ≤ 4g
Altitud máxima 50000 m
Velocidad máxima 500 m/s
Fuente: NEO-M8 datasheet, s.f

3.2.7. Selección del controlador de vuelo

Para nuestro proyecto se seleccionara un controlador de vuelo que soporte Inav, ya que
este nos permite programar y configurar el cuadricóptero para que pueda realizar aplicaciones
que requieren el uso de GPS, medición de las variables de estados del cuadricóptero
(generalmente llamado telemetría) a una interfaz de usuario o estación de control en tierra GCS
(del inglés ground control station) y soporta protocolos de comunicación con el ESC avanzados
que permiten una rápida respuesta de los motores.
Se investigó los diferentes tipos de controladores de vuelo que existen en el mercado y
se optó por elegir el Kakute F4, este controlador soporta Inav y permite ejecutar el algoritmo de
control PID a velocidades de hasta 8 kHz, y diseñado para leer al mismo tiempo todas las señales
seriales que se requiere para comunicar el controlador con los demás componentes. Cuenta con
un microcontrolador STM32F405 de 32bits, un sensor IMU de alta precisión ICM20689 de 6

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
66

ejes con acelerómetros y giroscopios, y el cual puede realizar las lecturas a una frecuencia de
hasta 32 kHz. Este sensor se encuentra montado en la tarjeta sobre una espuma que sirve de
aisladora de vibraciones que pueden generarse en la estructura y afectar las lecturas y con un
sensor barométrico BMP280 que se encargará de medir la altitud del cuadricóptero.

Figura 30. Controlador de vuelo STM32F405 Kakute F4


(Kakute F4, s.f)

Tabla 15
Especificaciones técnicas del controlador de vuelo Kakute F4
Parámetro Especificación
MCU STM32F405RGT6 de 32 bits
IMU ICM20689 (SPI)
Barómetro BMP280
Serial UART 5 implementados en hardware
Memoria almacenamiento 128 Mbit
Voltaje entrada 7V – 42V
Corriente máxima 120A
Peso 7g
Dimensiones 35mm x 30mm x 8mm
Fuente: Kakute F4 datasheet, s.f

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
67

3.2.8. Selección del módulo de telemetría

El hardware de telemetría será el encargado de establecer la comunicación entre el


cuadricóptero y una interfaz de usuario o GCS (ground control station) que se encontrará en una
computadora o laptop. Por medio del hardware de telemetría el cuadricóptero enviará sus
variables de estado de vuelo, así como otros parámetros de vuelo y recibirá las ordenes de los
puntos o trayectorias que deberá recorrer, logrando así un vuelo autónomo. Existen diversas
tecnologías que pueden utilizarse para realizar la telemetría del cuadricóptero, entre las más
importantes están el bluetooth, wifi y radios de menor frecuencia:
Bluetooth, es la más simple de todas y no requiere esfuerzo en su implementación, ya
que solo requiere utilizar un módulo bluetooth para el cuadricóptero y utilizar el bluetooth que
viene integrado en la laptop o computadora. Su desventaja es su rango de operación óptimo de
10 a 20m, ya que pasado este rango comienza a haber pérdida de datos o desconexiones. Puede
ser útil para configurar los parámetros a corta distancia, pero no para realizar la telemetría del
cuadricóptero durante el vuelo.
Wifi, es ampliamente conocido en la actualidad debido a que se utiliza para la
interconexión inalámbrica de dispositivos electrónicos como las computadoras al internet, es
una marca comercial que está compuesta de estándares y protocolos de comunicación cuya
función principal es la interconexión de redes inalámbricas de área local. Al igual que el
bluetooth opera en la banda no regulada de 2.4 GHz y ofrece velocidades de hasta 300 Mbits/s.
Su desventaja es el rango de operación que llega a solo 100m, pudiendo extenderse con
dispositivos o antenas más grandes hasta 300m.
En aplicaciones de vehículos aéreos no tripulados se suelen usar dispositivos de radio de
menor frecuencia que el bluetooth o wifi, entre ellos se encuentran los módulos 3DR y HC-12
que operan en las bandas de frecuencias de 915 MHz o 433 MHz y pueden alcanzar distancias
de hasta 1 Km dependiendo de la velocidad de transferencia. Estos módulos están diseñados
para operar con protocolos de comunicación más avanzados que permiten la comunicación entre
el cuadricóptero y la interfaz de usuario.
Los protocolos de telemetría son protocolos de comunicación que definen las reglas o
normas de la comunicación entre dos dispositivos y permitirán que la comunicación sea fiable
y sin errores. Entre ellos los que se utilizan en los cuadricópteros suelen ser el MAVLink, MSP

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
68

y LTM. Para nuestro proyecto que se implementara con Inav, éste usará los protocolos MSP y
LTM.
MSP (MultiWii Serial Protocol) es el protocolo principal que utiliza Inav, una de sus
desventajas para el monitoreo del cuadricóptero en vuelo se dá en que para que se establezca la
comunicación la interfaz de usuario tiene que solicitar la información al cuadricóptero y luego
este responde. Esto no es un problema si se utilizara Bluetooth o wifi, pero con los radios 3DR
o HC-12 la comunicación se realiza por half dúplex es decir en ambos lados los módulos se
comportan como transmisor o receptor pero la comunicación solo se realiza en una sola vía a la
vez. Por este motivo el tiempo que requieren ambos módulos para cambiar entre transmisor a
receptor o viceversa limita la capacidad de monitoreo del cuadricóptero en vuelo. Es por ello,
que este protocolo suele usarse solo para configurar y programar la trayectoria del
cuadricóptero.
LTM (Light Telemetry) es un protocolo unidireccional en donde el cuadricóptero envía
información a la interfaz de usuario sin que este tenga que solicitársela, esto permite que los
módulos de telemetría no pierdan tiempo entre cambiar de transmisor a receptor o viceversa.
Sin embargo, con este protocolo el cuadricóptero solo puede enviar las variables de estado y
otros parámetros de vuelo. Por lo tanto, para la operación del cuadricóptero se usarán ambos
protocolos para las diferentes etapas de operación.
Para nuestro proyecto se optó por elegir un módulo de telemetría 3DR 915 MHz por la
disponibilidad y el precio. En la siguiente figura 31 se pueden ver los módulos y en la tabla 16
sus especificaciones técnicas.

Figura 31. Módulo de radio 3DR 915 MHz


(Radio telemetry 3DR, s.f)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
69

Tabla 16
Especificaciones técnicas del módulo radio 3DR 915 MHz
Parámetro Especificación
Canal de frecuencia 915 MHz
Sensibilidad del receptor -117 dBm
Potencia máxima 100 mW
Interfaz serial UART 3.3V
Corriente transmisor 100 mA a 30 dBm
Corriente receptor 25 mA
Voltaje alimentación 3.7V – 6V
Peso 12g
Dimensiones 51mm x 30mm x 10mm
Fuente: Radio telemetry 3DR, s.f

3.2.9. Selección del radiocontrol

Para la operación manual del cuadricóptero se implementó un sistema de radiocontrol,


el cual está conformado por un transmisor que es un control remoto manual donde el operador
puede controlar el pitch, roll, yaw y el empuje, y un receptor que está ubicado en el cuadricóptero
y recibe las órdenes del control remoto y luego las envía al controlador de vuelo para controlar
el giro de los motores. Además, el control remoto cuenta con interruptores que nos permitirán
activar o cambiar los diferentes modos de vuelo que ejecutará el cuadricóptero.
Este tipo de control remoto es muy usado en aplicaciones de vehículos aéreos no
tripulados como el cuadricóptero y existen diversos tipos según la frecuencia a la que operan
que puede ser de 900 MHz hasta 2.4 GHz y las funcionalidades que ofrecen. Estos transmisores
envían una señal de radio al receptor utilizando un protocolo de comunicación que en la mayoría
de los casos es de uso comercial y depende de la marca del radiocontrol, y los receptores envían
la señal recibida al controlador de vuelo usando otro protocolo que puede ser universal como el
PWM, PPM y PCM, o también protocolos específicos de cada marca como SBUS, IBUS, XBUS
entre otros.
Los radiocontroles se seleccionan también por el número de canales que pueden
transmitir, cada canal es una variable o una acción que se envía al cuadricóptero para que se
ejecute, como mínimo un control debe tener cuatro canales que son para controlar el pitch, roll,
yaw y empuje. Además, por cada interruptor, botón o perilla que se requiera para ejecutar una

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
70

acción tendrá un canal independiente para enviar la información al cuadricóptero. En nuestro


caso se requerirá un interruptor para encender o apagar los motores, un interruptor para cambiar
entre los diferentes modos de vuelo y perillas para ajustar o cambiar los ángulos de visión de la
cámara del cuadricóptero.
Se opto por elegir un radiocontrol Flysky FS-i6X 2.4 GHz de 10 canales con un receptor
X6B con comunicación serial IBUS, ya que por disponibilidad y precio representaba la mejor
opción. En la siguiente figura 32 se muestra el radio control y en la tabla 17 algunas
especificaciones técnicas.

Figura 32. Radiocontrol seleccionado Flysky FS-i6X 2.4 GHz


(Flysky, s.f)

Tabla 17
Especificaciones técnicas del radiocontrol Flysky FS-i6X 2.4 GHz y receptor X6B
Transmisor Especificación
Marca Flysky
Canales 6 – 10
Rango de RF 2.408 – 2.475 GHz
Potencia de RF < 20 dBm
Protocolo AFHDS 2A / AFHDS
Longitud de antena 26 mm
Alimentación 6V DC 1.5AA x 4

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
71

Peso 392g
Dimensiones 174mm x 89mm x 190mm
Receptor
Canales 6 (PWM), 8 (PPM), (18 IBUS)
Sensibilidad -95 dBm
Alimentación 4 – 8.4V
Rango >300 m
Peso 4.5g
Dimensiones 36mm x 22mm x 7.5mm
Fuente: Flysky, s.f

3.2.10. Selección de la cámara

La cámara será el componente del cuadricóptero que se encargará de realizar la


adquisición de imágenes durante el vuelo. Existen diversos tipos de cámara según su calidad de
imagen, sus funcionalidades y la distancia máxima que pueden transmitir en tiempo real.
Para nuestro proyecto se tomaron en cuenta dos tipos de cámaras, las cámaras de alta
resolución 4K que pueden transmitir en tiempo real por medio de wifi, su desventaja es que
debido al gran volumen de datos que tiene que transferir su rango de alcance es corto. Sin
embargo, puede almacenar las imágenes en una memoria SD. Se optó por elegir una cámara de
bajo costo y de buena calidad, se seleccionó la cámara EKEN H9R que se muestra a
continuación.

Figura 33. Cámara seleccionada Eken H9R 4K


(Eken, s.f)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
72

Tabla 18
Especificaciones técnicas de la cámara 4K
Parámetro Especificación
Chipset Sunplus 6350
Sensor OV4689
Video 4K @ 25fps (3840 x 2160p)
Angulo de visión 170 grados
Duración batería 1050 mAh (1 hora)
Wifi Incorporado 802.11 b/g/n
Peso 64g (con batería)
Dimensiones 59.3mm x 24.6mm x 41.1mm
Fuente: Eken, s.f

Por otro lado, están las cámaras FPV (first person view), estas cámaras son comúnmente
usadas en los cuadricópteros para controlarlos manualmente ya que pueden transmitir imágenes
en tiempo real a grandes distancias, pero su desventaja es que la calidad de imagen no es óptima.
Estas cámaras poseen un sensor CCD para capturar la imagen y transmiten las imágenes en
formato NTSC o PAL por un dispositivo transmisor de radio frecuencia. Para nuestro proyecto
se eligió la cámara Eachine 1000TVL, esta cámara cuenta con un sensor CCD con un ángulo de
visión de 110 grados y un lente de 2.8mm. En la siguiente figura 34 se puede ver la cámara
seleccionada y en la tabla 19 sus especificaciones técnicas.

Figura 34. Cámara FPV Eachine 1000TVL


(Eachine, s.f)

Tabla 19
Especificaciones técnicas de la cámara FPV Eachine 1000TVL
Parámetro Especificación
Resolución 1000TVL
Voltaje alimentación 5 – 20V
Consumo corriente 105 – 27mA
Lux 0.08lux/F1.2

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
73

Sensor CCD 1/3 pulgada


Formato NTSC/PAL
Lente 2.8mm IR recubierto
FOV 110°
Peso 10.4g
Dimensiones 28mm x 24.5mm x 17.5mm
Fuente: Eachine, s.f

3.2.11. Selección del software

Una vez realizada la simulación y análisis del sistema de control y comprobar la


factibilidad de implementación de un sistema de control PID para la estabilización del vuelo del
cuadricóptero, se procedió a realizar la selección y configuración del firmware del controlador
de vuelo que se encargará de contener todos los algoritmos lógicos que servirán para controlar
el vuelo del cuadricóptero.
Para este proyecto se consideró la utilización de softwares de código abierto que son
utilizados generalmente en este tipo de controladores de vuelo, entre los diferentes softwares de
código abierto se encuentran los siguientes: Cleanfligh, Betaflight, Inav, etc. Estos softwares se
graban en el microcontrolador, permiten configurar y programar los algoritmos de control y las
funcionalidades del controlador de vuelo respectivamente. La programación de los algoritmos
se realiza en lenguaje C++, el cual es extendidamente usado por presentar una gran variedad de
funcionalidades y librerías, además que, por ser de código abierto, es desarrollado por una gran
comunidad que se encarga activamente de mejorar y agregar diversas funciones. Es por ello,
que son ampliamente usados en aplicaciones de vehículos aéreos como los cuadricópteros.
Entre los diferentes softwares de código abierto disponibles se seleccionó el Inav, este
software es de código abierto con licencia GNU General Public License v3.0, nos permite
programar y configurar el cuadricóptero para que pueda realizar aplicaciones que requieren el
uso de GPS, medición de las variables de estados del cuadricóptero (generalmente llamado
telemetría) a una interfaz de usuario o estación de control en tierra GCS (del inglés ground
control station) y soporta protocolos de comunicación avanzados con los controladores
velocidad que permiten una rápida respuesta de los motores, entre otras funcionalidades que
permiten el control del cuadricóptero para su uso de adquisiciones de imágenes aéreas.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
74

Una de las funciones principales del algoritmo de control es la estimación de la posición


del cuadricóptero durante el vuelo, la cual lo realiza tomando los datos de los diferentes sensores
que tiene el cuadricóptero y los junta para obtener las coordenadas y velocidades en el sistema
de referencia local y realiza la navegación del cuadricóptero de acuerdo con las estimaciones de
la posición y velocidad que procesa. En la siguiente figura 35 se muestra esta estructura:

Figura 35. Algoritmo de estimación de posición del cuadricóptero


(Inertial position estimator, 2016)

Como se muestra en la figura 35 el sensor IMU que se encuentra fijo en el cuadricóptero


se encarga de medir durante su movimiento las aceleraciones en el sistema de referencia fijo y
el cual es luego convertido al sistema de referencia NEU (del inglés North, East and Up) por
medio de una matriz de rotación. Debido a que el IMU tiene como desventaja un error
acumulativo que produce errores en la estimación de la posición y velocidad, se utilizan otros
sensores entre ellos un GPS que se encargará de estimar la posición y velocidad absoluta del

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
75

cuadricóptero y un barómetro o sonar que se encargará de estimar la altitud a la que vuela el


cuadricóptero.
Esta estructura permite al algoritmo de control estimar la posición, velocidad y poder
controlar la navegación del cuadricóptero, filtrando cualquier medición anormal o error que
puedan producir los datos obtenidos por los sensores y que pueda reaccionar rápidamente para
mantener la estabilidad del vuelo del cuadricóptero.
Además de la función de estimación de la posición y velocidad del cuadricóptero, el
software presenta diferentes subsistemas que permiten el funcionamiento del controlador de
vuelo, una vez obtenida la posición del cuadricóptero, el controlador de vuelo se encarga en
paralelo de obtener la información de referencia enviada desde un control remoto o una interfaz
de usuario de una laptop o celular, comparar ambos datos y procesarlos por medio de un
controlador PID que se encargará de obtener las señales de salida que se enviarán a los motores
por medio de los controladores de velocidad para el movimiento respectivo del cuadricóptero.
En la siguiente figura 36 se muestra la estructura básica del algoritmo descrito.

Sensores Estimador Posición Bloque Controlador


Motores
y velocidad Principal PID

Receptor RC Telemetría

Radiocontrol Interfaz usuario

Figura 36. Estructura del algoritmo del controlador de vuelo


(Fuente: Elaboración propia)

La configuración del software que se cargará en el controlador de vuelo se realiza por


medio de una interfaz de usuario llamada Inav configuration, permite cambiar las diferentes
características y funciones como los puertos de comunicación, los tipos de sensores que usará
el cuadricóptero, la configuración del tipo de receptor de radiocontrol, GPS, ESCs, la velocidad
a la cual se ejecutará el loop de programa principal, la aceleración máxima y mínima del

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
76

radiocontrol, la configuración de las baterías, entre otros necesarios para la correcta operación
del cuadricóptero de acuerdo a las necesidades que se requiera.

3.2.12. Montaje de los componentes del cuadricóptero


Una vez definido todos los componentes principales del cuadricóptero, se procedió a
realizar el montaje de la estructura los brazos, el cuerpo central y el tren de aterrizaje. Se realizó
el montaje de los motores y hélices en los extremos de cada brazo, los motores se montaron
sobre jebes especiales que amortiguan y disminuyen la vibración que producen durante su
funcionamiento.
Luego se realizó el montaje de los componentes electrónicos en la parte central del
cuerpo de la estructura y los cables de alimentación y comunicación de los componentes. Los
transmisores de telemetría y de la cámara fpv se colocaron en brazos opuestos para mantener la
simetría, y del mismo modo se colocó el GPS y una masa en el brazo opuesto para compensar
su peso.
La cámara fpv se ubicó fija en la parte superior y la cámara 4K se ubicó en la parte
inferior con un gimbal de tres ejes que puede ser controlado por el radiocontrol para cambiar el
ángulo de visión de la cámara durante el vuelo. Por último, se instaló la batería en la parte
inferior a una distancia para compensar el peso de la cámara con el gimbal.

Figura 37. Vista del cuadricóptero con todos sus componentes


(Fuente: Elaboración propia)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
77

3.4. Modelamiento y simulación del sistema de control


Habiendo obtenido el modelo matemático y seleccionado los componentes con el que estará
compuesto el cuadricóptero, cumpliendo los requerimientos de diseño preliminares que se
plantearon para la construcción del prototipo, se procede a realizar el modelamiento del sistema
de control PID para comprobar su viabilidad y determinar las constantes PID que servirán para
la configuración del sistema de control del cuadricóptero.
El modelamiento del sistema de control se realizará en lazo cerrado en donde se analizará
el comportamiento del modelo matemático del cuadricóptero que se expresará según los
modelos analíticos de control en funciones de transferencia que representarán la planta del
sistema. En la siguiente figura 38 se puede apreciar un esquema básico de un sistema de control
en lazo cerrado en donde la salida del sistema es retroalimentada para obtener el error que será
luego ajustado por el controlador.

Figura 38. Diagrama de bloques de un sistema retroalimentado


(Ricardo H., 2010)

Donde definimos las siguientes variables:

𝑟(𝑡) = Entrada de referencia o setpoint


𝑒(𝑡) = Señal de error
𝑣(𝑡) = Variable regulada
𝑚(𝑡) = Variable manipulada
𝑝(𝑡) = Señal de perturbación
𝛾(𝑡) = Variable controlada
𝑏(𝑡) = Variable de retroalimentación como resultado de haber detectado la variable controlada
por medio de los sensores.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
78

En la figura 38, el setpoint se compara con la variable de retroalimentación 𝑏. El


comparador calcula el error 𝑒 generado entre el setpoint y la variable de retroalimentación 𝑟 −
𝑏. El error es leído por el controlador y éste a su vez genera una señal de ajuste o variable
regulada 𝑣, que se aplica en el elemento de control y produce la variable manipulada 𝑚. Esta
variable interacciona con el medio ambiente que ejerce perturbaciones en el sistema para
finalmente obtener la variable controlada que será la posición del cuadricóptero.
Habiendo establecido nuestro modelo matemático simplificado del cuadricóptero, se
puede establecer una función de transferencia o generalmente llamada planta que represente el
comportamiento de la salida ante una entrada del sistema y el cual será modelado para
determinar nuestro sistema de control.
La función de transferencia del cuadricóptero vendrá expresada en la siguiente ecuación
en donde la entrada del sistema será el pulso PWM que envía el controlador a los motores a
través de los ESC y la salida las variables de estado que se controlarán.

𝑌(𝑠)
𝐺(𝑠) = (3.34)
𝑅(𝑠)

En donde:

𝑌(𝑠) = Salida del sistema


𝑅(𝑠) = Entrada del sistema
𝐺(𝑠) = Función de transferencia

Para realizar el modelamiento del sistema de control se establecerán las funciones de


transferencia de la altitud, pitch, roll y yaw. Para ello se utilizarán las ecuaciones obtenidas del
modelo matemático simplificado 3.23 al 3.28.
La función de transferencia de la altitud se determina utilizando las ecuaciones 3.25 y
3.10, considerando ángulos pitch y roll pequeños y habiendo establecido que la fuerza de
sustentación es directamente proporcional a la señal PWM enviada por el controlador al motor
ecuación 3.14, tenemos:

1
ℎ̈ = −𝑔 + (𝑘 𝛿 + 𝑘1 𝛿𝑟 + 𝑘1 𝛿𝑏 + 𝑘1 𝛿𝑙 ) (3.35)
𝑚 1 𝑓
Donde 𝑘1 es la constante de empuje de los motores y 𝛿∗ son las señales PWM enviadas
por el controlador a cada motor. Despejando la ecuación 3.35 tenemos:

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
(3.36)
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
79

𝑘1 (∑ 𝛿) − 𝑚𝑔
ℎ̈ =
𝑚

ℎ̈ 1
=
𝑘1 (∑ 𝛿) − 𝑚𝑔 𝑚

Aplicando la transformada de Laplace a la ecuación 3.36 y despejando obtenemos la


función de trasferencia de la altitud:

𝑠 2 𝐻(𝑠) 1
=
𝑈(𝑠) 𝑚

1 (3.37)
𝐺ℎ (𝑠) =
𝑚𝑠 2
La función de transferencia del pitch y roll se calcula utilizando la ecuación 3.26 y 3.27,
reemplazando las ecuaciones 3.11 y 3.12 tenemos que:

1 (3.38)
𝜙̈ = (𝑙𝑘1 𝛿𝑙 − 𝑙𝑘1 𝛿𝑟 )
𝐽𝑥

1 (3.39)
𝜃̈ = (𝑙𝑘1 𝛿𝑓 − 𝑙𝑘1 𝛿𝑏 )
𝐽𝑦

Despejando las ecuaciones 3.38 y 3.39 tenemos que:

𝜙̈ 𝑙𝑘1 (3.40)
=
Δ𝛿 𝐽𝑥

𝜃̈ 𝑙𝑘1 (3.41)
=
Δ𝛿 𝐽𝑦

Aplicando la transformada de Laplace a las ecuaciones 3.40 y 3.41, despejando obtenemos


las funciones de transferencia del pitch y roll:

𝑙𝑘1 (3.42)
𝐺𝜙 (𝑠) =
𝐽𝑥 𝑠 2

𝑙𝑘1 (3.43)
𝐺𝜃 (𝑠) =
𝐽𝑦 𝑠 2

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
80

La función de transferencia del yaw se calcula utilizando la ecuación 3.28, y reemplazando


las ecuaciones 3.13 y 3.14 tenemos:

1 (3.44)
𝜓̈ = (𝑙𝑘1 𝛿𝑟 + 𝑙𝑘1 𝛿𝑙 − 𝑙𝑘1 𝛿𝑓 − 𝑙𝑘1 𝛿𝑏 )
𝐽𝑧

Despejando la ecuación 3.44 y aplicando la transformada de Laplace obtenemos la función


de transferencia del yaw:

𝑙𝑘1 (3.45)
𝐺𝜓 (𝑠) =
𝐽𝑧 𝑠 2

Obteniendo las funciones de transferencia procedemos a calcular el peso total, los


momentos inerciales del cuadricóptero y la constante de empuje de los motores, para poder
reemplazarlos en las ecuaciones.

3.3.1. Cálculo de los momentos inerciales

Se realizó el diseño de la estructura del cuadricóptero y los principales componentes con


el software CAD para modelado mecánico en 3D SolidWorks, en donde se ubican y se
determinan los momentos inerciales con respecto al centro de gravedad del cuadricóptero.
Luego se procede a ensamblar los componentes y calcular los pesos de cada componente,
para poder determinar los momentos inerciales en los ejes xyz por medio de la herramienta de
propiedades físicas de que ofrece el software SolidWorks.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
81

Figura 39. Modelo en 3D del cuadricóptero realizado con SolidWorks


(Fuente: Elaboración Propia)

Se determinó el peso total del cuadricóptero y de los principales componentes motores,


hélices, brazos, tren de aterrizaje. Los componentes electrónicos y cables se consideraron como
una masa A ubicada encima del cuadricóptero, la batería y la cámara 4K con el gimbal se
consideraron como una masa B ubicada en la parte inferior del cuadricóptero que representaría
la carga del sistema.

Figura 40. Peso total del cuadricóptero en gramos


(Fuente: Elaboración propia)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
82

Figura 41. Peso de los motores y hélices en gramos


(Fuente: Elaboración propia)

Figura 42. Peso de los brazos y tren de aterrizaje en gramos


(Fuente: Elaboración propia)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
83

Figura 43. Peso de la batería en gramos


(Fuente: Elaboración propia)

Figura 44. Peso de la cámara con gimbal en gramos


(Fuente: Elaboración propia)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
84

Determinados los pesos de la estructura y de los componentes principales, se procedió a


utilizar la herramienta de propiedades físicas de SolidWorks, el cual nos proporcionó los
siguientes resultados:

Figura 45. Datos obtenidos por la herramienta de propiedades físicas de SolidWorks


(Fuente: Elaboración propia)

3.3.2. Cálculo de la constante de empuje del motor

Para determinar el comportamiento entre la fuerza de sustentación o empuje que generan


los motores al girar y la señal PWM que envía el controlador por medio de los ESC a los motores
para controlar el giro que realizan. Para ello se procede a realizar una prueba con ayuda de una
balanza digital y un peso de aproximadamente 1Kg que servirá de carga para que cuando al girar
el motor y aplique una fuerza de sustentación eleve la carga y la balanza medirá la diferencia de
peso que genera el empuje del motor.
Con este procedimiento se determinará la gráfica del comportamiento entre la señal PWM
que controlaremos y que se enviará al motor, y el empuje que generará el motor para

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
85

determinada señal. Se busca con esto obtener una aproximación lineal y por lo tanto la constante
𝑘1 que nos servirá para determinar las funciones de transferencia que obtuvimos anteriormente.

Figura 46. Procedimiento de prueba para obtener constante de empuje


(Fuente: Elaboración propia)

Tabla 20
Resultados de los datos tomados durante la prueba
PWM Empuje (g) Empuje
(kg)
1000 0 0
1078 8 0.008
1106 34 0.034
1149 76 0.076
1198 146 0.146
1253 223 0.223
1294 314 0.314
1356 389 0.389
1407 431 0.431
1442 493 0.493
1506 539 0.539
1541 585 0.585
1605 603 0.603
1659 641 0.641

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
86

1693 701 0.701


1751 743 0.743
1808 794 0.794
1847 831 0.831
1904 863 0.863
1948 893 0.893
1996 903 0.903
Fuente: Elaboración propia

Para la aproximación lineal de los datos tomados se utilizó la herramienta polyfit del
software Matlab, el cual calcula y determina los coeficientes del ajuste polinomial de una
función que en nuestro caso será de grado uno ya que necesitamos linealizar la función entre el
PWM y el empuje de los motores como se asumió durante el modelamiento matemático.

Figura 47. Grafica de los datos y regresión lineal usando Matlab


(Fuente: Elaboración propia)

Los valores de los coeficientes obtenidos de la regresión lineal 𝑦 = 𝑎𝑥 + 𝑏, usando la


herramienta de Matlab son los siguientes:

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
87

𝑎 = 9.9710 × 10−4

𝑏 = −1.0114

Por lo tanto, la función de la fuerza de empuje de los cuatro motores vendría expresada
por la ecuación:
(3.46)
𝐹∗ = 9.9710 × 10−4 𝛿∗ − 1.0114

Donde 𝐹∗ es la fuerza de empuje de cada motor en kilogramos, y 𝛿∗ es la señal PWM que


envía el controlador a cada motor. De esta manera queda definida la ecuación 3.46 y la constante
de empuje sería igual a:

𝑘1 = 9.9710 × 10−4

En resumen, se obtuvieron los parámetros necesarios para poder determinar las funciones
de transferencia, las cuales servirán para poder modelar nuestro sistema de control. En la
siguiente tabla se resumen los parámetros calculados.

Tabla 21
Parámetros calculados para las funciones de transferencia
Valores obtenidos
Peso total 𝑚 = 1.761 𝑘𝑔
Longitud del brazo 𝑙 = 0.24 𝑚
Momentos de inercia 𝐽𝑥 = 1.5856 × 10−2 𝑘𝑔. 𝑚2
𝐽𝑦 = 1.6596 × 10−2 𝑘𝑔. 𝑚2
𝐽𝑧 = 2.5009 × 10−2 𝑘𝑔. 𝑚2
Constante de empuje 𝑘1 = 9.971 𝑥 10−4
Fuente: Elaboración propia

Reemplazando los valores obtenidos en las ecuaciones 3.37, 3.42, 3.43 y 3.45, tenemos
las funciones de transferencia para la altitud, pitch, roll y yaw respectivamente.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
88

5.6786 × 10−1 (3.47)


𝐺ℎ (𝑠) =
𝑠2
1.5092 × 10−2 (3.48)
𝐺𝜙 (𝑠) =
𝑠2
1.4419 × 10−2
𝐺𝜃 (𝑠) = (3.49)
𝑠2
9.5687 × 10−3
𝐺𝜓 (𝑠) = (3.50)
𝑠2

3.3.3. Simulación del sistema de control

Habiendo determinado las funciones de transferencia que modelan el movimiento del


cuadricóptero, se realizó la simulación del sistema de control PID planteado para este proyecto.
La simulación del sistema de control se realizó con el software Matlab, utilizando la herramienta
simulink para modelar las funciones de transferencia obtenidas en las ecuaciones 3.47 al 3.50 y
comprobar su comportamiento ante una señal de entrada de tipo escalón. Esta herramienta nos
permite analizar e identificar las características del sistema modelado del cuadricóptero y
determinar los parámetros del controlador PID que permitirán la estabilidad del sistema.
En las siguientes imágenes se muestran los diagramas de bloques del sistema de control
en lazo cerrado con un controlador PID, utilizando las funciones de transferencia obtenidas.
Como se observan en las imágenes las respuestas ante una señal de entrada de tipo escalón para
cada función de transferencia es una señal inestable ya que los controladores no se encuentran
sintonizados.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
89

Figura 48. Diagrama de bloques del sistema de control de la altitud


(Fuente: Elaboración propia)

Figura 49. Comportamiento de la altitud con el controlador no sintonizado


(Fuente: Elaboración propia)

Figura 50. Diagrama de bloques del sistema de control del pitch


(Fuente: Elaboración propia)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
90

Figura 51. Comportamiento del pitch con el controlador no sintonizado


(Fuente: Elaboración propia)

Figura 52. Diagrama de bloques del sistema de control del roll


(Fuente: Elaboración propia)

Figura 53. Comportamiento del roll con el controlador no sintonizado


(Fuente: Elaboración propia)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
91

Figura 54. Diagrama de bloques del sistema de control del yaw


(Fuente: Elaboración propia)

Figura 55. Comportamiento del yaw con el controlador no sintonizado


(Fuente: Elaboración propia)

La sintonización del controlador consiste en determinar los parámetros kp, ki y kd que


conformarán el controlador y que permitirán lograr un comportamiento del sistema estable y
robusto de conformidad con algún criterio de desempeño establecido. Para realizar la
sintonización se debe en primer lugar definir la estructura de la dinámica del sistema de control,
a partir de esta determinar los parámetros del controlador PID siguiendo un método de
sintonización. Para nuestro proyecto se utilizó la herramienta de sintonización PID tuner del
software Matlab, que permite determinar automáticamente los parámetros del controlador
dependiendo del pico de amplitud y el tiempo de respuesta de estabilización que requiere el
controlador.
En las siguientes figuras se muestran las respuestas de los controladores sintonizados con
un tiempo de muestreo de 1ms y los parámetros que se determinaron para el controlador de
altitud, pitch, roll y yaw respectivamente. Para el control de la altitud se estableció que la

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
92

respuesta del controlador debe tener un pico máximo de 5% y un tiempo de respuesta pico menor
a 1 segundo, ya que se requiere que el controlador de altitud tenga buena precisión de
posicionamiento y tenga un buen tiempo de respuesta.

Figura 56. Respuesta del controlador de la altitud sintonizado


(Fuente: Elaboración propia)

Figura 57. Parámetros del controlador PID sintonizado de la altitud


(Fuente: Elaboración propia)

Como se observa en la figura 56 y 57 se determinaron los parámetros kp, ki y kd del


controlador PID de la altitud con ayuda de la herramienta de sintonización del software Matlab
siguiendo los requerimientos de pico de amplitud y tiempo de respuesta establecidos. Por lo
tanto, se verifica que es posible estabilizar la señal de respuesta con un controlador PID que
cumpla los requerimientos establecidos para su desempeño.
Se realizó luego el mismo procedimiento para determinar los parámetros del controlador
del pitch y roll respectivamente. Para estos controladores se estableció que la respuesta del

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
93

controlador debe tener un pico máximo de 10% y un tiempo de respuesta pico menor a 1
segundo, ya que al igual que el controlador de altitud se requiere buen tiempo de respuesta, sin
embargo, en el caso de la precisión se puede considerar un pico máximo mayor ya que el rango
de los ángulos de navegación pitch y roll en los que el cuadricóptero realiza su movimiento de
estabilización serán pequeños, permitiéndonos así que podamos determinar unos parámetros de
control mucho menores.

Figura 58. Respuesta del controlador del pitch sintonizado


(Fuente: Elaboración propia)

Figura 59. Parámetros del controlador PID sintonizado del pitch


(Fuente: Elaboración propia)

Como se observa en la figura 58 y 59 se determinaron los parámetros kp, ki y kd del


controlador PID del pitch, encontrándose un tiempo de respuesta que cumple con los criterios

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
94

establecidos de diseño y verificándose la respuesta puede estabilizarse con la implementación


de un controlador PID.

Figura 60. Respuesta del controlador del roll sintonizado


(Fuente: Elaboración propia)

Figura 61. Parámetros del controlador PID sintonizado del roll


(Fuente: Elaboración propia)

Se determinaron los parámetros kp, ki y kd del controlador PID del roll como se observa
en la figura 60 y 61, verificándose que es posible estabilizar la señal de respuesta del sistema
con un controlador PID cumpliéndose los requerimientos de diseño establecidos en el presente
proyecto.
Para el caso del controlador del yaw se realizó el mismo procedimiento, sin embargo, se
estableció un pico máximo de 15% y un tiempo de respuesta pico máximo de 2 segundos, ya

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
95

que en el caso del control yaw el cuadricóptero no requiere mucha precisión y respuesta de giro
debido a que el movimiento de giro solo se realizará para mover el campo de visión de la cámara
que llevará el cuadricóptero para realizar la adquisición de imágenes durante el vuelo.

Figura 62. Respuesta del controlador del yaw sintonizado


(Fuente: Elaboración propia)

Figura 63. Parámetros del controlador PID sintonizado del yaw


(Fuente: Elaboración propia)

Al igual que los anteriores controladores, se determinaron los parámetros kp, ki y kd del
controlador PID del yaw cumpliendo los requerimientos de diseño y verificándose que la señal
de respuesta logra estabilizarse como se observa en las figuras 62 y 63.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
96

Habiendo determinado los parámetros de los controladores de altitud, pitch, roll y yaw se
verifica que la respuesta del sistema modelado con las funciones de transferencia es posible en
todos los casos estabilizarla con controladores PID cumpliendo los requerimientos de
desempeño establecidos en el presente proyecto.
Cabe indicar que la simulación del sistema de control se realizó idealmente sin tener en
cuenta el tiempo de retraso de la adquisición de datos de los sensores y el tiempo de retraso que
toma la señal regulada por el controlador al elemento final de control que son los motores por
medio de los controladores de velocidad. Para modelar este error se añadió bloques de tiempo
de retraso al diagrama de bloques del sistema de control de 1ms, ya que el controlador de vuelo
está configurado para trabajar con un loop de control de 1kHz. En este caso se realizó la prueba
con el controlador del pitch para verificar si este error afecta el comportamiento de respuesta
del controlador.

Figura 64. Diagrama de bloques del sistema de control del pitch con tiempo de retraso
(Fuente: Elaboración propia)

Figura 65. Comparación de la respuesta del controlador PID sintonizado del pitch incluyendo tiempo retraso
(Fuente: Elaboración propia)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
97

Como se observa en la figura 65 se puede observar que el error de tiempo de retraso


introducido en el diagrama de bloques del sistema de control del pitch no afecta en gran medida
el comportamiento de la respuesta del sistema, por lo que los parámetros del controlador del
pitch no se ven afectados significativamente y se pueden considerar los mismos que los
determinados anteriormente.
Con estos resultados se puede concluir que utilizar un controlador de vuelo, sensores y
controladores de velocidad con una alta capacidad de procesamiento que permitan tiempos de
sensado y respuesta rápidos, permiten disminuir el error introducido en el sistema de control y
por ende un mejor control del cuadricóptero. Además, se comprueba que la utilización de
controladores PID en nuestro proyecto permite la estabilización de las respuestas del sistema y
por ende nos permite controlar el movimiento del cuadricóptero durante el vuelo de acuerdo con
el modelamiento matemático que se realizó.

3.5. Pruebas y resultados


Se procedió a realizar las pruebas respectivas al cuadricóptero, inicialmente se realizaron
pruebas de configuración y funcionamiento para comprobar la correcta operación del
cuadricóptero de acuerdo con los requerimientos necesarios. Se realizaron pruebas en donde se
buscaba mantener el cuadricóptero estable y su respuesta al control manual en un campo
despejado con viento normal utilizando el radiocontrol para realizar el despegue y movimientos
de navegación.
Se realizaron pruebas para efectuar ajustes de los parámetros del controlador PID
empíricamente partiendo de los obtenidos durante la simulación del controlador hasta lograr
visualmente una correcta operación del cuadricóptero y luego con ayuda del software Inav con
el cual podemos visualizar los datos almacenados en la memoria del controlador de vuelo
después de realizar diferentes pruebas de funcionamiento se verificó el comportamiento de las
diferentes variables del cuadricóptero según los modos de vuelo que se definieron para en el
presente proyecto.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
98

Figura 66. Foto de las pruebas de vuelo


(Fuente: Elaboración propia)

En la siguiente figura 67 se muestra la respuesta obtenida por los giroscopios y


acelerómetros durante el despegue del cuadricóptero, como se observa al ir aumentando con el
radiocontrol el empuje de los motores, este comienza a elevarse encontrándose una perturbación
inicial que llega a estabilizarse después de 2 segundos aproximadamente y manteniéndose
estable.

Figura 67. Respuesta del giroscopio y acelerómetro durante el despegue


(Fuente: Elaboración propia)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
99

Al realizar movimientos del pitch y roll manualmente con el radiocontrol se observa en la


siguiente figura 68 la respuesta rápida del sistema y la cual luego se estabiliza al dejar de
efectuarse, lográndose un control aceptable para el cuadricóptero.

Figura 68. Respuesta del giroscopio y acelerómetro durante el modo vuelo XY


(Fuente: Elaboración propia)

También se realizó una prueba para comprobar la estabilidad del cuadricóptero para
mantenerse fijado en un punto de coordenadas específico, como se observa en la siguiente figura
69 una vez fijado el punto de coordenadas, el cuadricóptero comienza a realizar pequeñas
rectificaciones cambiando el pitch y roll manteniéndose en el punto fijado.

Figura 69. Respuesta del giroscopio y GPS durante el vuelo estacionario


(Fuente: Elaboración propia)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
100

Figura 70. Prueba del modo de vuelo estacionario


(Fuente: Elaboración propia)

Una vez realizadas las pruebas iniciales y verificándose el correcto funcionamiento del
cuadricóptero en los diferentes modos de vuelo, se realizaron pruebas utilizando una interfaz de
usuario de código abierto llamada mwp tools, esta herramienta es un planificador de rutas de
vuelo, tiene un mapa satelital y sirve para graficar las coordenadas que se requiera enviar al
cuadricóptero para que éste las recorra y siga un camino especificado. Además, cuenta con un
tablero en donde se pueden observar algunos parámetros en tiempo real de vuelo del
cuadricóptero como las coordenadas del cuadricóptero, posición, altitud, velocidad, número de
satélites del GPS, batería entre otros.

Figura 71. Interfaz de usuario mwp tools


(Fuente: Elaboración propia)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
101

Para la prueba se graficaron unas coordenadas como se observa en la figura 72 y se


cargaron en el cuadricóptero para que éste las realice y llegue a cada punto de coordenadas en
el mapa y a su vez se monitorearon las variables del cuadricóptero.

Figura 72. Coordenadas del recorrido realizado por el cuadricóptero


(Fuente: Elaboración propia)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
102

CAPÍTULO IV
4. Discusión de Resultados

4.1. Diseño conceptual del cuadricóptero.- El diseño conceptual del cuadricóptero se


realizó siguiendo las lineaciones metodológicas planteadas en (Lloyd & James, 2003), en donde
se definen pasos y etapas que se deben llevar a cabo en el diseño de un vehículo aéreo no
tripulado que nos permiten lograr un amplio nivel de abstracción en la resolución del problema,
partiendo desde la esta inicial donde se realiza un esbozo de diseño que satisface la necesidad
del problema, luego el diseño en detalle de los componentes y hasta la etapa de pruebas.

4.2. Modelamiento matemático.- En la referencia (Randal W., 2008) se establece una


metodología de formulación matemática de un vehículo aéreo no tripulado que nos permite
determinar las ecuaciones que gobiernan el movimiento del cuadricóptero. Estableciendo
inicialmente las variables de estado que definen la posición, velocidad y rotación en el espacio
tridimensional de un vehículo aéreo no tripulado, y a partir de ello realizar la formulación de la
cinemática y dinámica del cuerpo utilizando las leyes de movimiento de Newton, la ecuación
de coriolis y el concepto de solido rígido de un cuerpo, obteniendo así las ecuaciones del
movimiento que luego son simplificadas teniendo algunas consideraciones para lograr
finalmente ecuaciones que nos permitan diseñar un sistema básico de control PID.

4.3. Diseño, selección y montaje de componentes del cuadricóptero.- El diseño en detalle


se realizó teniendo en cuenta diferentes trabajos previos similares y se consultaron diferentes
páginas web para recopilar estrategias de carácter técnico que nos permitiera el diseño y
selección de los componentes del cuadricóptero que cumplieran con las necesidades del
problema. Esta etapa sirvió a su vez de retroalimentación para el establecimiento de los
parámetros iniciales de diseño y para analizar la factibilidad de su implementación en el
proyecto.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
103

4.4. Modelamiento y simulación del sistema de control.- Para el modelamiento del sistema
de control se estableció según la referencia (Ricardo H., 2010) un sistema retroalimentado que
nos permitiera el ajuste del error entre la señal de salida del proceso y la señal deseada del
sistema por medio de un controlador. Dentro de los diferentes tipos de controladores que se
pueden implementar, este proyecto se basó en el desarrollo de un controlador PID por su
facilidad de implementación y que nos permite lograr una operación optima del vuelo del
cuadricóptero. Cabe destacar que existen controladores mucho más complejos y fiables que
pueden utilizarse en la implementación de un cuadricóptero que permiten utilizar las ecuaciones
de movimiento sin necesidad de su simplificación y lo que conlleva la eliminación del error que
ello genera pero que no son tratados en el presente proyecto, sin embargo, pueden servir para
trabajos futuros. Por otro lado, según la referencia (Ricardo H., 2010) existen diferentes métodos
para la sintonización de controladores PID los cuales permiten determinar las variables kp, ki y
kd del controlador permitiendo así una estabilización de la señal del sistema, en el presente
proyecto se optó por realizar la simulación del sistema de control con el software Matlab el cual
nos permite con ayuda de una de sus herramientas PID tuner realizar la sintonización del
controlador.

4.5. Pruebas y resultados.- Las pruebas realizadas primeramente con un radiocontrol


manual se realizaron para verificar el comportamiento de la respuesta del sistema ante señales
de entrada y ajustes finales a los parámetros del controlador PID necesarios para el correcto
funcionamiento del cuadricóptero. Pruebas mucho más detalladas se pueden realizar por
ejemplo en diferentes condiciones ambientales de viento, humedad, temperatura, etc., las cuales
afectarán el rendimiento de la operación del cuadricóptero y requerirán realizar diferentes
ajustes para determinar parámetros del controlador PID óptimos en cada circunstancia. Además,
se pueden realizar pruebas de rendimiento de la batería a diferentes capacidades de carga que
puede llevar el cuadricóptero y obtener gráficas de rendimiento que nos permitan optimizar el
tiempo de vuelo del cuadricóptero. Además, se realizaron pruebas con una interfaz de usuario
de código abierto de planificación de vuelo que nos permitió enviarle coordenadas de un mapa
satelital al cuadricóptero para que este pueda realizar el recorrido, este tipo de software son muy
útiles y los cuales pueden ser desarrollados e implementados en diferentes plataformas como

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
104

por ejemplo en celulares y computadoras según las muchas aplicaciones que puedan realizar los
cuadricópteros.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
105

CAPÍTULO V
5. Conclusiones

5.1. Se realizó el diseño conceptual del cuadricóptero, tomando en cuenta los cuadricópteros
comerciales que existen en el mercado en la actualidad y se establecieron 3 modos de vuelo para
cumplir las necesidades del problema los cuales son el despegue y aterrizaje, vuelo en el plano
xy y vuelo estacionario. Luego se definieron los parámetros iniciales que se tendrán en cuenta
en la construcción del cuadricóptero y los cuales sirvieron para siguientes etapas de desarrollo.

5.2. Se establecieron las variables de estado generales de un vehículo aéreo no tripulado


como la posición, velocidad y rotación en un espacio tridimensional, para luego realizar el
modelamiento cinemático del cuadricóptero obteniendo así las ecuaciones de velocidades, se
realizó el modelamiento dinámico del cuadricóptero considerando el modelo de solido rígido y
obteniéndose las ecuaciones de movimiento del modelo de 6 grados de libertad. Luego se
realizaron consideraciones para poder simplificar el modelo matemático y obtener ecuaciones
de movimiento que permitirán la implementación de un controlador PID lineal.

5.3. Siguiendo con las lineaciones de diseño se realizó el diseño de detalle, en donde se
efectuó el análisis y selección de los componentes estructurales, electrónicos y software que
tendrá el cuadricóptero para poder satisfacer las necesidades del problema. Se tuvieron en
encuentra en cada caso diferentes opciones o posibilidades que se definieron siguiendo un
carácter de selección técnico y de factibilidad para el desarrollo del presente proyecto.

5.4. Habiendo definido el modelo matemático del cuadricóptero y sus componentes, se


realizó el modelamiento y simulación del sistema de control. Para ello se definió un sistema de
control retroalimentado y se determinaron las funciones de transferencia de la altitud, pitch, roll
y yaw que permitirán el movimiento del cuadricóptero. Luego se desarrolló un sistema básico

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
106

de control PID y se realizó una simulación del control utilizando el software Matlab para poder
verificar su factibilidad de implementación.

5.5. Por último, se realizaron pruebas en campo utilizando primeramente un radiocontrol para
verificar y realizar los ajustes finales de la configuración del cuadricóptero y determinar los
parámetros kp, ki y kd del controlador PID que nos permitiera la correcta operación del vuelo
del cuadricóptero. Luego se realizaron pruebas utilizando el software mwp tools comprobándose
el correcto funcionamiento de acuerdo con las necesidades del problema.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
107

CAPÍTULO VI
Referencias Bibliográficas

 José, E. (2015). Implementación de un dron cuadricóptero con arduino (tesis de pregrado).


Universidad Pública de Navarra, España.

 Felipe, F. (2015). Diseño e implementación de un sistema de control asistido para plataforma aérea
multirotor (tesis de pregrado). Universidad de Chile, Chile.

 Gabriel, L. (2014). Implementación de una aeronave no tripulada de despegue vertical de cuatro


rotores (tesis de pregrado). Universidad Nacional Autónoma De México. México.

 Oscar, B. (2014). Diseño de un control estabilizante para un vehículo de despegue vertical tipo
cuatrirrotor (tesis de pregrado). Universidad Nacional De Colombia. Colombia.

 José, A. (2015). Diseño de un móvil escalador de paredes laterales y superiores para inspección
en trabajos de construcción civil (tesis de pregrado). Universidad Católica del Perú. Perú.

 Edwards, Q., & Christian, B., & José, R., & Jimmy, C., & Luis, C., & Diego, R. (2015). Diseño y
construcción de un vehículo aéreo no tripulado (tesis de pregrado). Universidad Nacional de
Ingeniería. Perú.

 Randal, W. (2008). Quadrotor dynamics and control. Universidad Brigham Young. Estados Unidos.

 José, H., & Ricardo, R. (2012). Diseño y construcción del prototipo experimental de la estructura
para un vehículo aéreo no tripulado (UAV) tipo quadrotor (tesis de pregrado). Universidad Industrial
de Santander. Colombia.

 Lloyd, R. & James, F. (2003). Aircraft Design Projects for engineering students. Reino Unido.
Elsevier Science.

 Víctor, R. (2014). Diseño e implementación de un Quadcopter basado en microcontrolador arduino


(tesis de pregrado). Universidad Politécnica de Valencia. España.

 Sergio, M. (2014). Diseño y construcción de un Quadcopter. Universidad Peruana de Ciencias


Aplicadas. Perú.

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
108

 Bresciani, T. (2008). Modelling, Identification and Control of a Quadrotor Helicopter. Universidad de


Lund. Suecia.

 Lellis, C. (2011). Modelling, Identification and Control of a Quadrotor Aircraft (tesis de maestría).
Universidad Técnica Checa de Praga. Republica Checa.

 Guowei, C. & Ben, M. & Tong, H. (2011). Unmanned Rotorcraft Systems. New York, Estados
Unidos. Springer.

 Bishop, R. (2002). The mechatronic Handbook. Texas, Estados Unidos. CRC Press.

 Ricardo, H. (2010) Introducción a los sistemas de control: Conceptos, aplicaciones y simulación


con MATLAB. México. Pearson.

Referencias de páginas web

 Código de software Inav. (2019). En Github. Recuperado de


https://github.com/iNavFlight/inav

 Cuadricóptero. (s.f). En Wikipedia. Recuperado en el 2019 de


https://es.wikipedia.org/wiki/Cuadricóptero

 Vehículo aéreo de combate no tripulado. (s.f). En Wikipedia. Recuperado en el 2019 de


https://es.wikipedia.org/wiki/Vehículo_aéreo_de_combate_no_tripulado

 Helicópteros RC. (s.f). En Wikipedia. Recuperado en el 2019 de


https://en.wikipedia.org/wiki/Radio-controlled_helicopter

 Phantom 4. (s.f). En KPN. Recuperado de


http://kpn.com.uy/web/producto/phantom-4/

 Ric, S. (s.f). Quadcopter axes and motions. Recuperado de


https://st3.ning.com/topology/rest/1.0/file/get/15143664?profile=original

 Fibra de carbono. (s.f). En Wikipedia. Recuperado en el 2019 de


https://es.wikipedia.org/wiki/Fibra_de_carbono

 Fibra de vidrio. (s.f). En Wikipedia. Recuperado en el 2019 de


https://es.wikipedia.org/wiki/Fibra_de_vidrio

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
109

 Productos de compuestos especiales. (2018). En Brainding Composites. Recuperado de


https://www.braidingcomposites.com/

 Aluminio. (s.f). En Wikipedia. Recuperado en el 2019 de


https://es.wikipedia.org/wiki/Aluminio

 Obtención y propiedades del aluminio. (2016). Recuperado de


https://aluminiosnoustil.com/2016/03/21/carpinteria-de-aluminio-terrassa-obtencion-y-
propiedades-del-aluminio/

 Filamento PLA Premium. (s.f). En Airwolf3D. Recuperado de


https://airwolf3d.com/shop/pla-premium/

 Kit estructura de cuadricóptero S500. (s.f). En Aliexpress. Recuperado de


https://es.aliexpress.com/item/S500-500mm-PCB-Quadcopter-Frame-Kit-with-Carbon-Fiber-
Landing-Gear-for-FPV-Quad-Gopro-Gimbal/32795185082

 Como elegir el motor de un cuadricóptero. (2018). En Oscarliang. Recuperado de


https://oscarliang.com/quadcopter-motor-propeller

 Motor Sunnysky X2212. (s.f). En Sunnysky. Recuperado de


http://www.rcsunnysky.com/content/23.html

 Entrenamiento vuelo de ala fija. (s.f). Recuperado de


http://www.pilotfriend.com/training/flight_training/fxd_wing/props.htm

 Características principales de las hélices. (s.f). En Dronenodes. Recuperado de


http://dronenodes.com/quadcopter-props-best-picks-characteristics/

 Gemfan 1045. (s.f). En Banggood. Recuperado de


https://www.banggood.com/GEMFAN-1045-Nylon-Propeller-CWCCW-For-RC-Quadcopter-1-Pair-
p-954943

 Lithium-ion battery. (s.f). En Wikipedia. Recuperado en el 2019 de


https://en.wikipedia.org/wiki/Lithium-ion_battery

 Lithium polymer battery. (s.f). En Wikipedia. Recuperado en el 2019 de


https://en.wikipedia.org/wiki/Lithium_polymer_battery

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
110

 Batería LiPo 3S. (s.f). En Aliexpress. Recuperado de


https://es.aliexpress.com/item/733487510.html

 Racerstar BLHELI_S. (s.f). En Banggood. Recuperado de


https://www.banggood.com/Racerstar-RS20A-20A-BLHELI_S-OPTO-2-4S-ESC-Support-
Oneshot42-Multishot-for-FPV-Racing-p-1063904.html?cur_warehouse=CN

 MPU6050 y su programación. (2018). En Arduproject. Recuperado de


https://arduproject.es/mpu6050-y-su-programacion/

 Como usar el sensor BMP280. (2018). En Instructables. Recuperado de


https://www.instructables.com/id/How-to-Use-the-Adafruit-BMP280-Sensor-Arduino-Tuto/

 GPS. (s.f). En Wikipedia. Recuperado en el 2019 de


https://es.wikipedia.org/wiki/GPS

 Ublox NEO M8N. (s.f). En Aliexpress. Recuperado de


https://es.aliexpress.com/item/32370714787.html

 NEO-M8 datasheet. (s.f). En U-blox. Recuperado de


https://www.u-blox.com/sites/default/files/NEO-M8_DataSheet_%28UBX-13003366%29.pdf

 Kakute F4. (s.f). Recuperado de


https://es.banggood.com/Holybro-Kakute-F4-STM32F405-Flight-Controller-With-Betaflight-OSD-
for-RC-Multirotor-FPV-Racing-Drone-p-1173022.html?cur_warehouse=CN

 Kakute F4 datasheet. (s.f). En Banggood. Recuperado de


http://www.holybro.com/manual/KakuteF4V2Manual.pdf

 Radio telemetry 3DR. (s.f). En Aliexpress. Recuperado de


https://es.aliexpress.com/item/32824313388.html

 Flysky. (s.f). En Banggood. Recuperado de


https://es.banggood.com/Flysky-FS-i6X-2_4GHz-10CH-AFHDS-2A-RC-Transmitter-With-X6B-i-
BUS-Receiver-p-1090406.html?ID=42482530816&cur_warehouse=CN

 Eken. (s.f). En Banggood. Recuperado de


https://es.banggood.com/EKEN-H9R-Sports-Action-Camera-4K-Ultra-HD-2_4G-Remote-WiFi-
170-Degree-Wide-Angle-p-1057866.html?ID=224&cur_warehouse=CN

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
111

 Eachine. (s.f). En Banggood. Recuperado de


https://es.banggood.com/Eachine-1000TVL-13-CCD-110-Degree-2_8mm-Lens-Mini-FPV-
Camera-NTSC-PAL-Switchable-p-1053340.html?rmmds=search&cur_warehouse=CN

 Inertial position estimator. (2016). En Github. Recuperado de


https://github.com/iNavFlight/inav/wiki/Developer-info

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
112

Anexos

A) Pesaje de los componentes del cuadricóptero

Se realizo el pesaje de los componentes mostrados en las figuras 40 al 44:

Tabla 22
Pesaje de componentes

Componente Peso Unitario (g) Cantidad Peso Total (g)


Motores 60.3 04 241.2
Hélices 16 04 64
Brazos 42.5 04 170
Tren de aterrizaje 38 02 76
Batería 456.5 01 456.5
Cámara 266.3 01 266.3
Componentes electrónicos 487 01 487
Total 1761
Fuente: Elaboración propia

B) Costos de los componentes del cuadricóptero

Se realizo una tabla donde se especifican las cantidades y el costo de cada componente que
se necesitó para la construcción del prototipo de cuadricóptero del presente proyecto.

Tabla 23
Costos de los componentes del cuadricóptero

Componente Costo unitario Cantidad Costo total


($ dólares) ($ dólares)
Estructura S500 20.00 01 20.00
Motores Sunnysky 2212 11.35 04 45.40
Hélices 1045 2.41 04 9.64
Batería 3S 6000mAh 46.98 01 46.98
Controlador velocidad (ESC) 20A 8.50 04 34.00
Controlador vuelo Kakute F4 36.00 01 36.00
Modulo telemetría 3DR 15.87 01 15.87
Radiocontrol Flysky FS-i6X 45.99 01 45.99
Cámara FPV Eachine 1000TVL 9.99 01 9.99
Total 263.87
Fuente: Elaboración propia

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
113

C) Código de programación de Inav

Como se mencionó Inav es un software de código abierto para controladores de vuelo


utilizado ampliamente en cuadricópteros y otros vehículos aéreos no tripulados, se basa en el
lenguaje de programación C++ y este software tiene la licencia GNU General Public Licence
v3.0 el cual nos permite su libre uso, modificación y distribución. A continuación, se muestra
un extracto del código recuperado de (Inav, 2019), en donde se detalla el algoritmo lógico de
control PID el cual es una parte importante de este software y que permite la correcta navegación
del cuadricóptero.

inav/src/main/flight/pid.c

#include <stdbool.h>
#include <stdint.h>
#include <math.h>

#include <platform.h>

#include "build/build_config.h"
#include "build/debug.h"

#include "common/axis.h"
#include "common/filter.h"
#include "common/maths.h"

#include "config/parameter_group.h"
#include "config/parameter_group_ids.h"

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
114

#include "fc/config.h"
#include "fc/controlrate_profile.h"
#include "fc/rc_controls.h"
#include "fc/rc_modes.h"
#include "fc/runtime_config.h"

#include "flight/pid.h"
#include "flight/imu.h"
#include "flight/mixer.h"

#include "io/gps.h"

#include "navigation/navigation.h"

#include "rx/rx.h"

#include "sensors/sensors.h"
#include "sensors/gyro.h"
#include "sensors/acceleration.h"
#include "sensors/compass.h"
#include "sensors/pitotmeter.h"

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
115

typedef struct {
float kP; // Proportional gain
float kI; // Integral gain
float kD; // Derivative gain
float kFF; // Feed-forward gain
float kT; // Back-calculation tracking gain

float gyroRate;
float rateTarget;

// Buffer for derivative calculation


#define PID_GYRO_RATE_BUF_LENGTH 5
float gyroRateBuf[PID_GYRO_RATE_BUF_LENGTH];
firFilter_t gyroRateFilter;

// Rate integrator
float errorGyroIf;
float errorGyroIfLimit;

// Used for ANGLE filtering (PT1, we don't need super-sharpness here)


pt1Filter_t angleFilterState;

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
116

// Rate filtering
rateLimitFilter_t axisAccelFilter;
pt1Filter_t ptermLpfState;
biquadFilter_t deltaLpfState;

// Dterm notch filtering


#ifdef USE_DTERM_NOTCH
biquadFilter_t deltaNotchFilter;
#endif
float stickPosition;
} pidState_t;

#ifdef USE_DTERM_NOTCH
STATIC_FASTRAM filterApplyFnPtr notchFilterApplyFn;
#endif

extern float dT;

FASTRAM float headingHoldCosZLimit;


FASTRAM int16_t headingHoldTarget;
STATIC_FASTRAM pt1Filter_t headingHoldRateFilter;
STATIC_FASTRAM pt1Filter_t fixedWingTpaFilter;

// Thrust PID Attenuation factor. 0.0f means fully attenuated, 1.0f no attenuation is applied

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
117

STATIC_FASTRAM bool pidGainsUpdateRequired;


FASTRAM int16_t axisPID[FLIGHT_DYNAMICS_INDEX_COUNT];

#ifdef USE_BLACKBOX
int32_t axisPID_P[FLIGHT_DYNAMICS_INDEX_COUNT],
axisPID_I[FLIGHT_DYNAMICS_INDEX_COUNT],
axisPID_D[FLIGHT_DYNAMICS_INDEX_COUNT],
axisPID_Setpoint[FLIGHT_DYNAMICS_INDEX_COUNT];
#endif

STATIC_FASTRAM pidState_t pidState[FLIGHT_DYNAMICS_INDEX_COUNT];

PG_REGISTER_PROFILE_WITH_RESET_TEMPLATE(pidProfile_t, pidProfile,
PG_PID_PROFILE, 6);

PG_RESET_TEMPLATE(pidProfile_t, pidProfile,
.bank_mc = {
.pid = {
[PID_ROLL] = { 40, 30, 23 },
[PID_PITCH] = { 40, 30, 23 },
[PID_YAW] = { 85, 45, 0 },
[PID_LEVEL] = {
.P = 20, // Self-level strength
.I = 15, // Self-leveing low-pass frequency (0 - disabled)
.D = 75, // 75% horizon strength
},

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
118

[PID_HEADING] = { 60, 0, 0 },
[PID_POS_XY] = {
.P = 65, // NAV_POS_XY_P * 100
.I = 120, // posDecelerationTime * 100
.D = 10, // posResponseExpo * 100
},
[PID_VEL_XY] = {
.P = 40, // NAV_VEL_XY_P * 20
.I = 15, // NAV_VEL_XY_I * 100
.D = 100, // NAV_VEL_XY_D * 100
},
[PID_POS_Z] = {
.P = 50, // NAV_POS_Z_P * 100
.I = 0, // not used
.D = 0, // not used
},
[PID_VEL_Z] = {
.P = 100, // NAV_VEL_Z_P * 66.7
.I = 50, // NAV_VEL_Z_I * 20
.D = 10, // NAV_VEL_Z_D * 100
}
}
},

.bank_fw = {
.pid = {

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
119

[PID_ROLL] = { 5, 7, 50 },
[PID_PITCH] = { 5, 7, 50 },
[PID_YAW] = { 6, 10, 60 },
[PID_LEVEL] = {
.P = 20, // Self-level strength
.I = 5, // Self-leveing low-pass frequency (0 - disabled)
.D = 75, // 75% horizon strength
},
[PID_HEADING] = { 60, 0, 0 },
[PID_POS_Z] = {
.P = 40, // FW_POS_Z_P * 10
.I = 5, // FW_POS_Z_I * 10
.D = 10, // FW_POS_Z_D * 10
},
[PID_POS_XY] = {
.P = 75, // FW_POS_XY_P * 100
.I = 5, // FW_POS_XY_I * 100
.D = 8, // FW_POS_XY_D * 100
}
}
},

.dterm_soft_notch_hz = 0,
.dterm_soft_notch_cutoff = 1,
.dterm_lpf_hz = 40,
.yaw_lpf_hz = 30,

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
120

.dterm_setpoint_weight = 1.0f,

.itermWindupPointPercent = 50, // Percent

.axisAccelerationLimitYaw = 10000, // dps/s


.axisAccelerationLimitRollPitch = 0, // dps/s

.yaw_p_limit = YAW_P_LIMIT_DEFAULT,

.heading_hold_rate_limit = HEADING_HOLD_RATE_LIMIT_DEFAULT,

.max_angle_inclination[FD_ROLL] = 300, // 30 degrees


.max_angle_inclination[FD_PITCH] = 300, // 30 degrees
.pidSumLimit = PID_SUM_LIMIT_DEFAULT,

.fixedWingItermThrowLimit = FW_ITERM_THROW_LIMIT_DEFAULT,
.fixedWingReferenceAirspeed = 1000,
.fixedWingCoordinatedYawGain = 1.0f,
.fixedWingItermLimitOnStickPosition = 0.5f,

.loiter_direction = NAV_LOITER_RIGHT,
);

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
121

void pidInit(void)
{
// Calculate derivative using 5-point noise-robust differentiators without time delay (one-
sided or forward filters)
// by Pavel Holoborodko, see http://www.holoborodko.com/pavel/numerical-
methods/numerical-derivative/smooth-low-noise-differentiators/
// h[0] = 5/8, h[-1] = 1/4, h[-2] = -1, h[-3] = -1/4, h[-4] = 3/8
static const float dtermCoeffs[PID_GYRO_RATE_BUF_LENGTH] = {5.0f/8, 2.0f/8, -
8.0f/8, -2.0f/8, 3.0f/8};
for (int axis = 0; axis < 3; ++ axis) {
firFilterInit(&pidState[axis].gyroRateFilter, pidState[axis].gyroRateBuf,
PID_GYRO_RATE_BUF_LENGTH, dtermCoeffs);
}

pidResetTPAFilter();

// Calculate max overall tilt (max pitch + max roll combined) as a limit to heading hold
headingHoldCosZLimit = cos_approx(DECIDEGREES_TO_RADIANS(pidProfile()-
>max_angle_inclination[FD_ROLL])) *
cos_approx(DECIDEGREES_TO_RADIANS(pidProfile()-
>max_angle_inclination[FD_PITCH]));

pidGainsUpdateRequired = false;
}

bool pidInitFilters(void)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
122

{
const uint32_t refreshRate = getLooptime();

if (refreshRate == 0) {
return false;
}

#ifdef USE_DTERM_NOTCH
notchFilterApplyFn = nullFilterApply;
if (pidProfile()->dterm_soft_notch_hz != 0) {
notchFilterApplyFn = (filterApplyFnPtr)biquadFilterApply;
for (int axis = 0; axis < 3; ++ axis) {
biquadFilterInitNotch(&pidState[axis].deltaNotchFilter, refreshRate, pidProfile()-
>dterm_soft_notch_hz, pidProfile()->dterm_soft_notch_cutoff);
}
}
#endif

// Init other filters


for (int axis = 0; axis < 3; ++ axis) {
biquadFilterInitLPF(&pidState[axis].deltaLpfState, pidProfile()->dterm_lpf_hz,
refreshRate);
}

return true;

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
123

void pidResetTPAFilter(void)
{
if (STATE(FIXED_WING) && currentControlRateProfile->throttle.fixedWingTauMs > 0)
{
pt1FilterInitRC(&fixedWingTpaFilter, currentControlRateProfile-
>throttle.fixedWingTauMs * 1e-3f, getLooptime() * 1e-6f);
pt1FilterReset(&fixedWingTpaFilter, motorConfig()->minthrottle);
}
}

void pidResetErrorAccumulators(void)
{
// Reset R/P/Y integrator
for (int axis = 0; axis < 3; axis++) {
pidState[axis].errorGyroIf = 0.0f;
pidState[axis].errorGyroIfLimit = 0.0f;
}
}

static float pidRcCommandToAngle(int16_t stick, int16_t maxInclination)


{
stick = constrain(stick, -500, 500);
return scaleRangef((float) stick, -500.0f, 500.0f, (float) -maxInclination, (float)
maxInclination);

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
124

int16_t pidAngleToRcCommand(float angleDeciDegrees, int16_t maxInclination)


{
angleDeciDegrees = constrainf(angleDeciDegrees, (float) -maxInclination, (float)
maxInclination);
return scaleRangef((float) angleDeciDegrees, (float) -maxInclination, (float) maxInclination,
-500.0f, 500.0f);
}

/*
Map stick positions to desired rotatrion rate in given axis.
Rotation rate in dps at full stick deflection is defined by axis rate measured in dps/10
Rate 20 means 200dps at full stick deflection
*/
float pidRateToRcCommand(float rateDPS, uint8_t rate)
{
const float maxRateDPS = rate * 10.0f;
return scaleRangef(rateDPS, -maxRateDPS, maxRateDPS, -500.0f, 500.0f);
}

float pidRcCommandToRate(int16_t stick, uint8_t rate)


{
const float maxRateDPS = rate * 10.0f;
return scaleRangef((float) stick, -500.0f, 500.0f, -maxRateDPS, maxRateDPS);
}

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
125

static float calculateFixedWingTPAFactor(uint16_t throttle)


{
float tpaFactor;

// tpa_rate is amount of curve TPA applied to PIDs


// tpa_breakpoint for fixed wing is cruise throttle value (value at which PIDs were tuned)
if (currentControlRateProfile->throttle.dynPID != 0 && currentControlRateProfile-
>throttle.pa_breakpoint > motorConfig()->minthrottle) {
if (throttle > motorConfig()->minthrottle) {
// Calculate TPA according to throttle
tpaFactor = 0.5f + ((float)(currentControlRateProfile->throttle.pa_breakpoint -
motorConfig()->minthrottle) / (throttle - motorConfig()->minthrottle) / 2.0f);

// Limit to [0.5; 2] range


tpaFactor = constrainf(tpaFactor, 0.5f, 2.0f);
}
else {
tpaFactor = 2.0f;
}

// Attenuate TPA curve according to configured amount


tpaFactor = 1.0f + (tpaFactor - 1.0f) * (currentControlRateProfile->throttle.dynPID /
100.0f);
}
else {

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
126

tpaFactor = 1.0f;
}

return tpaFactor;
}

static float calculateMultirotorTPAFactor(void)


{
float tpaFactor;

// TPA should be updated only when TPA is actually set


if (currentControlRateProfile->throttle.dynPID == 0 || rcCommand[THROTTLE] <
currentControlRateProfile->throttle.pa_breakpoint) {
tpaFactor = 1.0f;
} else if (rcCommand[THROTTLE] < motorConfig()->maxthrottle) {
tpaFactor = (100 - (uint16_t)currentControlRateProfile->throttle.dynPID *
(rcCommand[THROTTLE] - currentControlRateProfile->throttle.pa_breakpoint) /
(motorConfig()->maxthrottle - currentControlRateProfile->throttle.pa_breakpoint)) / 100.0f;
} else {
tpaFactor = (100 - currentControlRateProfile->throttle.dynPID) / 100.0f;
}

return tpaFactor;
}

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
127

void schedulePidGainsUpdate(void)
{
pidGainsUpdateRequired = true;
}

void updatePIDCoefficients(void)
{
STATIC_FASTRAM uint16_t prevThrottle = 0;

// Check if throttle changed. Different logic for fixed wing vs multirotor


if (STATE(FIXED_WING) && (currentControlRateProfile->throttle.fixedWingTauMs >
0)) {
uint16_t filteredThrottle = pt1FilterApply3(&fixedWingTpaFilter,
rcCommand[THROTTLE], dT);
if (filteredThrottle != prevThrottle) {
prevThrottle = filteredThrottle;
pidGainsUpdateRequired = true;
}
}
else {
if (rcCommand[THROTTLE] != prevThrottle) {
prevThrottle = rcCommand[THROTTLE];
pidGainsUpdateRequired = true;
}
}

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
128

/*
* Compute stick position in range of [-1.0f : 1.0f] without deadband and expo
*/
for (int axis = 0; axis < 3; axis++) {
pidState[axis].stickPosition = constrain(rcData[axis] - PWM_RANGE_MIDDLE, -500,
500) / 500.0f;
}

// If nothing changed - don't waste time recalculating coefficients


if (!pidGainsUpdateRequired) {
return;
}

const float tpaFactor = STATE(FIXED_WING) ?


calculateFixedWingTPAFactor(prevThrottle) : calculateMultirotorTPAFactor();

// PID coefficients can be update only with THROTTLE and TPA or inflight PID adjustments

for (int axis = 0; axis < 3; axis++) {


if (STATE(FIXED_WING)) {
// Airplanes - scale all PIDs according to TPA
pidState[axis].kP = pidBank()->pid[axis].P / FP_PID_RATE_P_MULTIPLIER *
tpaFactor;
pidState[axis].kI = pidBank()->pid[axis].I / FP_PID_RATE_I_MULTIPLIER *
tpaFactor;
pidState[axis].kD = 0.0f;

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
129

pidState[axis].kFF = pidBank()->pid[axis].D / FP_PID_RATE_FF_MULTIPLIER *


tpaFactor;
pidState[axis].kT = 0.0f;
}
else {
const float axisTPA = (axis == FD_YAW) ? 1.0f : tpaFactor;
pidState[axis].kP = pidBank()->pid[axis].P / FP_PID_RATE_P_MULTIPLIER *
axisTPA;
pidState[axis].kI = pidBank()->pid[axis].I / FP_PID_RATE_I_MULTIPLIER;
pidState[axis].kD = pidBank()->pid[axis].D / FP_PID_RATE_D_MULTIPLIER *
axisTPA;
pidState[axis].kFF = 0.0f;

// Tracking anti-windup requires P/I/D to be all defined which is only true for MC
if ((pidBank()->pid[axis].P != 0) && (pidBank()->pid[axis].I != 0)) {
pidState[axis].kT = 2.0f / ((pidState[axis].kP / pidState[axis].kI) + (pidState[axis].kD
/ pidState[axis].kP));
} else {
pidState[axis].kT = 0;
}
}
}

pidGainsUpdateRequired = false;
}

static float calcHorizonRateMagnitude(void)

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
130

{
// Figure out the raw stick positions
const int32_t stickPosAil = ABS(getRcStickDeflection(FD_ROLL));
const int32_t stickPosEle = ABS(getRcStickDeflection(FD_PITCH));
const float mostDeflectedStickPos = constrain(MAX(stickPosAil, stickPosEle), 0, 500) /
500.0f;
const float modeTransitionStickPos = constrain(pidBank()->pid[PID_LEVEL].D, 0, 100) /
100.0f;

float horizonRateMagnitude;

// Calculate transition point according to stick deflection


if (mostDeflectedStickPos <= modeTransitionStickPos) {
horizonRateMagnitude = mostDeflectedStickPos / modeTransitionStickPos;
}
else {
horizonRateMagnitude = 1.0f;
}

return horizonRateMagnitude;
}

static void pidLevel(pidState_t *pidState, flight_dynamics_index_t axis, float


horizonRateMagnitude)
{
// This is ROLL/PITCH, run ANGLE/HORIZON controllers

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
131

float angleTarget = pidRcCommandToAngle(rcCommand[axis], pidProfile()-


>max_angle_inclination[axis]);

// Automatically pitch down if the throttle is manually controlled and reduced bellow cruise
throttle
if ((axis == FD_PITCH) && STATE(FIXED_WING) &&
FLIGHT_MODE(ANGLE_MODE) && !navigationIsControllingThrottle())
angleTarget += scaleRange(MAX(0, navConfig()->fw.cruise_throttle -
rcCommand[THROTTLE]), 0, navConfig()->fw.cruise_throttle - PWM_RANGE_MIN, 0,
mixerConfig()->fwMinThrottleDownPitchAngle);

const float angleErrorDeg = DECIDEGREES_TO_DEGREES(angleTarget -


attitude.raw[axis]);

float angleRateTarget = constrainf(angleErrorDeg * (pidBank()->pid[PID_LEVEL].P /


FP_PID_LEVEL_P_MULTIPLIER), -currentControlRateProfile->stabilized.rates[axis] *
10.0f, currentControlRateProfile->stabilized.rates[axis] * 10.0f);

if (pidBank()->pid[PID_LEVEL].I) {
// I8[PIDLEVEL] is filter cutoff frequency (Hz). Practical values of filtering frequency is
5-10 Hz
angleRateTarget = pt1FilterApply4(&pidState->angleFilterState, angleRateTarget,
pidBank()->pid[PID_LEVEL].I, dT);
}

// P[LEVEL] defines self-leveling strength (both for ANGLE and HORIZON modes)
if (FLIGHT_MODE(HORIZON_MODE)) {
pidState->rateTarget = (1.0f - horizonRateMagnitude) * angleRateTarget +
horizonRateMagnitude * pidState->rateTarget;

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
132

} else {
pidState->rateTarget = angleRateTarget;
}
}

static void pidApplySetpointRateLimiting(pidState_t *pidState, flight_dynamics_index_t axis)


{
const uint32_t axisAccelLimit = (axis == FD_YAW) ? pidProfile()-
>axisAccelerationLimitYaw : pidProfile()->axisAccelerationLimitRollPitch;

if (axisAccelLimit > AXIS_ACCEL_MIN_LIMIT) {


pidState->rateTarget = rateLimitFilterApply4(&pidState->axisAccelFilter, pidState-
>rateTarget, (float)axisAccelLimit, dT);
}
}

bool isFixedWingItermLimitActive(float stickPosition)


{
/*
* Iterm anti windup whould be active only when pilot controls the rotation
* velocity directly, not when ANGLE or HORIZON are used
*/
if (FLIGHT_MODE(ANGLE_MODE) || FLIGHT_MODE(HORIZON_MODE)) {
return false;
}

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
133

return fabsf(stickPosition) > pidProfile()->fixedWingItermLimitOnStickPosition;


}

static void pidApplyFixedWingRateController(pidState_t *pidState, flight_dynamics_index_t


axis)
{
const float rateError = pidState->rateTarget - pidState->gyroRate;

// Calculate new P-term and FF-term


float newPTerm = rateError * pidState->kP;
float newFFTerm = pidState->rateTarget * pidState->kFF;

// Additional P-term LPF on YAW axis


if (axis == FD_YAW && pidProfile()->yaw_lpf_hz) {
newPTerm = pt1FilterApply4(&pidState->ptermLpfState, newPTerm, pidProfile()-
>yaw_lpf_hz, dT);
}

// Calculate integral
pidState->errorGyroIf += rateError * pidState->kI * dT;

if (STATE(ANTI_WINDUP) || isFixedWingItermLimitActive(pidState->stickPosition)) {
pidState->errorGyroIf = constrainf(pidState->errorGyroIf, -pidState->errorGyroIfLimit,
pidState->errorGyroIfLimit);

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
134

} else {
pidState->errorGyroIfLimit = fabsf(pidState->errorGyroIf);
}

if (pidProfile()->fixedWingItermThrowLimit != 0) {
pidState->errorGyroIf = constrainf(pidState->errorGyroIf, -pidProfile()-
>fixedWingItermThrowLimit, pidProfile()->fixedWingItermThrowLimit);
}

#ifdef USE_AUTOTUNE_FIXED_WING
if (FLIGHT_MODE(AUTO_TUNE) && !FLIGHT_MODE(MANUAL_MODE)) {
autotuneFixedWingUpdate(axis, pidState->rateTarget, pidState->gyroRate, newPTerm +
newFFTerm);
}
#endif

axisPID[axis] = constrainf(newPTerm + newFFTerm + pidState->errorGyroIf, -pidProfile()-


>pidSumLimit, +pidProfile()->pidSumLimit);

#ifdef USE_BLACKBOX
axisPID_P[axis] = newPTerm;
axisPID_I[axis] = pidState->errorGyroIf;
axisPID_D[axis] = newFFTerm;
axisPID_Setpoint[axis] = pidState->rateTarget;
#endif
}

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
135

static void pidApplyMulticopterRateController(pidState_t *pidState, flight_dynamics_index_t


axis)
{
const float rateError = pidState->rateTarget - pidState->gyroRate;

// Calculate new P-term


float newPTerm = rateError * pidState->kP;
// Constrain YAW by yaw_p_limit value if not servo driven (in that case servo limits apply)
if (axis == FD_YAW && (getMotorCount() >= 4 && pidProfile()->yaw_p_limit)) {
newPTerm = constrain(newPTerm, -pidProfile()->yaw_p_limit, pidProfile()-
>yaw_p_limit);
}

// Additional P-term LPF on YAW axis


if (axis == FD_YAW && pidProfile()->yaw_lpf_hz) {
newPTerm = pt1FilterApply4(&pidState->ptermLpfState, newPTerm, pidProfile()-
>yaw_lpf_hz, dT);
}

// Calculate new D-term


float newDTerm;
if (pidBank()->pid[axis].D == 0) {
// optimisation for when D8 is zero, often used by YAW axis
newDTerm = 0;
} else {

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
136

// Calculate delta for Dterm calculation. Apply filters before derivative to minimize effects
of dterm kick
float deltaFiltered = pidProfile()->dterm_setpoint_weight * pidState->rateTarget -
pidState->gyroRate;

#ifdef USE_DTERM_NOTCH
// Apply D-term notch
deltaFiltered = notchFilterApplyFn(&pidState->deltaNotchFilter, deltaFiltered);
#endif

// Apply additional lowpass


if (pidProfile()->dterm_lpf_hz) {
deltaFiltered = biquadFilterApply(&pidState->deltaLpfState, deltaFiltered);
}

// Calculate derivative
firFilterUpdate(&pidState->gyroRateFilter, deltaFiltered);
newDTerm = firFilterApply(&pidState->gyroRateFilter) * (pidState->kD / dT);

// Additionally constrain D
newDTerm = constrainf(newDTerm, -300.0f, 300.0f);
}

const float newOutput = newPTerm + newDTerm + pidState->errorGyroIf;

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
137

const float newOutputLimited = constrainf(newOutput, -pidProfile()->pidSumLimit,


+pidProfile()->pidSumLimit);

const float motorItermWindupPoint = 1.0f - (pidProfile()->itermWindupPointPercent /


100.0f);
const float antiWindupScaler = constrainf((1.0f - getMotorMixRange()) /
motorItermWindupPoint, 0.0f, 1.0f);

pidState->errorGyroIf += (rateError * pidState->kI * antiWindupScaler * dT)


+ ((newOutputLimited - newOutput) * pidState->kT * antiWindupScaler *
dT);

// Don't grow I-term if motors are at their limit


if (STATE(ANTI_WINDUP) || mixerIsOutputSaturated()) {
pidState->errorGyroIf = constrainf(pidState->errorGyroIf, -pidState->errorGyroIfLimit,
pidState->errorGyroIfLimit);
} else {
pidState->errorGyroIfLimit = fabsf(pidState->errorGyroIf);
}

axisPID[axis] = newOutputLimited;

#ifdef USE_BLACKBOX
axisPID_P[axis] = newPTerm;
axisPID_I[axis] = pidState->errorGyroIf;
axisPID_D[axis] = newDTerm;

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
138

axisPID_Setpoint[axis] = pidState->rateTarget;
#endif
}

void updateHeadingHoldTarget(int16_t heading)


{
headingHoldTarget = heading;
}

void resetHeadingHoldTarget(int16_t heading)


{
updateHeadingHoldTarget(heading);
pt1FilterReset(&headingHoldRateFilter, 0.0f);
}

int16_t getHeadingHoldTarget() {
return headingHoldTarget;
}

static uint8_t getHeadingHoldState(void)


{
if (calculateCosTiltAngle() < headingHoldCosZLimit) {
return HEADING_HOLD_DISABLED;
}

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
139

#if defined(USE_NAV)
int navHeadingState = navigationGetHeadingControlState();
// NAV will prevent MAG_MODE from activating, but require heading control
if (navHeadingState != NAV_HEADING_CONTROL_NONE) {
// Apply maghold only if heading control is in auto mode
if (navHeadingState == NAV_HEADING_CONTROL_AUTO) {
return HEADING_HOLD_ENABLED;
}
}
else
#endif
if (ABS(rcCommand[YAW]) == 0 && FLIGHT_MODE(HEADING_MODE)) {
return HEADING_HOLD_ENABLED;
} else {
return HEADING_HOLD_UPDATE_HEADING;
}

return HEADING_HOLD_UPDATE_HEADING;
}

float pidHeadingHold(void)
{
float headingHoldRate;

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
140

int16_t error = DECIDEGREES_TO_DEGREES(attitude.values.yaw) - headingHoldTarget;

/*
* Convert absolute error into relative to current heading
*/
if (error <= -180) {
error += 360;
}

if (error >= +180) {


error -= 360;
}

headingHoldRate = error * pidBank()->pid[PID_HEADING].P / 30;


headingHoldRate = constrainf(headingHoldRate, -pidProfile()->heading_hold_rate_limit,
pidProfile()->heading_hold_rate_limit);
headingHoldRate = pt1FilterApply4(&headingHoldRateFilter, headingHoldRate,
HEADING_HOLD_ERROR_LPF_FREQ, dT);

return headingHoldRate;
}

/*
* TURN ASSISTANT mode is an assisted mode to do a Yaw rotation on a ground plane,
allowing one-stick turn in RATE more

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
141

* and keeping ROLL and PITCH attitude though the turn.


*/
static void pidTurnAssistant(pidState_t *pidState)
{
fpVector3_t targetRates;
targetRates.x = 0.0f;
targetRates.y = 0.0f;

if (STATE(FIXED_WING)) {
if (calculateCosTiltAngle() >= 0.173648f) {
// Ideal banked turn follow the equations:
// forward_vel^2 / radius = Gravity * tan(roll_angle)
// yaw_rate = forward_vel / radius
// If we solve for roll angle we get:
// tan(roll_angle) = forward_vel * yaw_rate / Gravity
// If we solve for yaw rate we get:
// yaw_rate = tan(roll_angle) * Gravity / forward_vel

#if defined(USE_PITOT)
float airspeedForCoordinatedTurn = sensors(SENSOR_PITOT) ?
pitot.airSpeed :
pidProfile()->fixedWingReferenceAirspeed;
#else
float airspeedForCoordinatedTurn = pidProfile()->fixedWingReferenceAirspeed;
#endif

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
142

// Constrain to somewhat sane limits - 10km/h - 216km/h


airspeedForCoordinatedTurn = constrainf(airspeedForCoordinatedTurn, 300, 6000);

// Calculate rate of turn in Earth frame according to FAA's Pilot's Handbook of


Aeronautical Knowledge
float bankAngle = DECIDEGREES_TO_RADIANS(attitude.values.roll);
float coordinatedTurnRateEarthFrame = GRAVITY_CMSS * tan_approx(-bankAngle)
/ airspeedForCoordinatedTurn;

targetRates.z = RADIANS_TO_DEGREES(coordinatedTurnRateEarthFrame);
}
else {
// Don't allow coordinated turn calculation if airplane is in hard bank or steep climb/dive
return;
}
}
else {
targetRates.z = pidState[YAW].rateTarget;
}

// Transform calculated rate offsets into body frame and apply


imuTransformVectorEarthToBody(&targetRates);

// Add in roll and pitch

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
143

pidState[ROLL].rateTarget = constrainf(pidState[ROLL].rateTarget + targetRates.x, -


currentControlRateProfile->stabilized.rates[ROLL] * 10.0f, currentControlRateProfile-
>stabilized.rates[ROLL] * 10.0f);
pidState[PITCH].rateTarget = constrainf(pidState[PITCH].rateTarget + targetRates.y, -
currentControlRateProfile->stabilized.rates[PITCH] * 10.0f, currentControlRateProfile-
>stabilized.rates[PITCH] * 10.0f);

// Replace YAW on quads - add it in on airplanes


if (STATE(FIXED_WING)) {
pidState[YAW].rateTarget = constrainf(pidState[YAW].rateTarget + targetRates.z *
pidProfile()->fixedWingCoordinatedYawGain, -currentControlRateProfile-
>stabilized.rates[YAW] * 10.0f, currentControlRateProfile->stabilized.rates[YAW] * 10.0f);
}
else {
pidState[YAW].rateTarget = constrainf(targetRates.z, -currentControlRateProfile-
>stabilized.rates[YAW] * 10.0f, currentControlRateProfile->stabilized.rates[YAW] * 10.0f);
}
}

static void pidApplyFpvCameraAngleMix(pidState_t *pidState, uint8_t fpvCameraAngle)


{
static uint8_t lastFpvCamAngleDegrees = 0;
static float cosCameraAngle = 1.0;
static float sinCameraAngle = 0.0;

if (lastFpvCamAngleDegrees != fpvCameraAngle) {
lastFpvCamAngleDegrees = fpvCameraAngle;
cosCameraAngle = cos_approx(DEGREES_TO_RADIANS(fpvCameraAngle));

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
144

sinCameraAngle = sin_approx(DEGREES_TO_RADIANS(fpvCameraAngle));
}

// Rotate roll/yaw command from camera-frame coordinate system to body-frame coordinate


system
const float rollRate = pidState[ROLL].rateTarget;
const float yawRate = pidState[YAW].rateTarget;
pidState[ROLL].rateTarget = constrainf(rollRate * cosCameraAngle - yawRate *
sinCameraAngle, -GYRO_SATURATION_LIMIT, GYRO_SATURATION_LIMIT);
pidState[YAW].rateTarget = constrainf(yawRate * cosCameraAngle + rollRate *
sinCameraAngle, -GYRO_SATURATION_LIMIT, GYRO_SATURATION_LIMIT);
}

void pidController(void)
{
bool canUseFpvCameraMix = true;
uint8_t headingHoldState = getHeadingHoldState();

if (headingHoldState == HEADING_HOLD_UPDATE_HEADING) {
updateHeadingHoldTarget(DECIDEGREES_TO_DEGREES(attitude.values.yaw));
}

for (int axis = 0; axis < 3; axis++) {


// Step 1: Calculate gyro rates
pidState[axis].gyroRate = gyro.gyroADCf[axis];

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
145

// Step 2: Read target


float rateTarget;

if (axis == FD_YAW && headingHoldState == HEADING_HOLD_ENABLED) {


rateTarget = pidHeadingHold();
} else {
rateTarget = pidRcCommandToRate(rcCommand[axis], currentControlRateProfile-
>stabilized.rates[axis]);
}

// Limit desired rate to something gyro can measure reliably


pidState[axis].rateTarget = constrainf(rateTarget, -GYRO_SATURATION_LIMIT,
+GYRO_SATURATION_LIMIT);
}

// Step 3: Run control for ANGLE_MODE, HORIZON_MODE, and HEADING_LOCK


if (FLIGHT_MODE(ANGLE_MODE) || FLIGHT_MODE(HORIZON_MODE)) {
const float horizonRateMagnitude = calcHorizonRateMagnitude();
pidLevel(&pidState[FD_ROLL], FD_ROLL, horizonRateMagnitude);
pidLevel(&pidState[FD_PITCH], FD_PITCH, horizonRateMagnitude);
canUseFpvCameraMix = false; // FPVANGLEMIX is incompatible with
ANGLE/HORIZON
}

if (FLIGHT_MODE(TURN_ASSISTANT) || navigationRequiresTurnAssistance()) {

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
146

pidTurnAssistant(pidState);
canUseFpvCameraMix = false; // FPVANGLEMIX is incompatible with
TURN_ASSISTANT
}

if (canUseFpvCameraMix && IS_RC_MODE_ACTIVE(BOXFPVANGLEMIX) &&


currentControlRateProfile->misc.fpvCamAngleDegrees) {
pidApplyFpvCameraAngleMix(pidState, currentControlRateProfile-
>misc.fpvCamAngleDegrees);
}

// Apply setpoint rate of change limits


for (int axis = 0; axis < 3; axis++) {
pidApplySetpointRateLimiting(&pidState[axis], axis);
}

// Step 4: Run gyro-driven control


for (int axis = 0; axis < 3; axis++) {
// Apply PID setpoint controller
if (STATE(FIXED_WING)) {
pidApplyFixedWingRateController(&pidState[axis], axis);
}
else {
pidApplyMulticopterRateController(&pidState[axis], axis);
}
}

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
147

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
148

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/
BIBLIOTECA DIGITAL - DIRECCIÓN DE SISTEMAS DE INFORMÁTICA Y COMUNICACIÓN
149

Esta obra ha sido publicada bajo la licencia Creative Commons Reconocimiento-No Comercial-Compartir bajo la misma licencia 2.5 Perú.
Para ver una copia de dicha licencia, visite http://creativecommons.org/licences/by-nc-sa/2.5/pe/

También podría gustarte