Sei sulla pagina 1di 94

SIMULACIÓN DE UN ALGORITMO PARA EL CONTROL DE NAVEGACIÓN DE

UN DRON CUATRIMOTOR PARA VIGILANCIA DE LA BASE


AÉREA “MARCO FIDEL SUÁREZ”.

AF. CASTRO BECERRA BRYAN STEVEN

AF. RIOS BUSTAMANTE JOSÉ DAYRON

ESCUELA MILITAR DE AVIACIÓN “MARCO FIDEL SUÁREZ”

GRUPO ACADÉMICO

PROGRAMA DE INGENIERÍA INFORMÁTICA

SANTIAGO DE CALI

2019
SIMULACIÓN DE UN ALGORITMO PARA EL CONTROL DE NAVEGACIÓN DE
UN DRON CUATRIMOTOR PARA VIGILANCIA DE LA BASE AÉREA “MARCO
FIDEL SUÁREZ”

AF. CASTRO BECERRA BRYAN STEVEN

AF. RIOS BUSTAMANTE JOSÉ DAYRON

Documento presentado como requisito para obtener el título de Ingeniero


Informático

DIRECTOR, I.S JORGE ALBERTO CORREA GARCÍA MENG.

ESCUELA MILITAR DE AVIACIÓN “MARCO FIDEL SUÁREZ”

GRUPO ACADÉMICO

PROGRAMA DE INGENIERÍA INFORMÁTICA

SANTIAGO DE CALI

2019
Nota de aceptación:

Aprobado por el comité de grado, con


correcciones verificadas en el documento
de cumplimiento de los requisitos exigidos
por la Escuela Militar de Aviación “Marco
Fidel Suárez”, para optar el título de
Ingeniero Informático.

_________________________________
I.S JORGE ALBERTO CORREA

_________________________________

FIRMA DEL JURADO

_________________________________

FIRMA DEL JURADO

Santiago de Cali, (01 05 19)


AGRADECIMIENTOS

Agradezco principalmente a Dios que me ha brindado todo en la vida, a mis padres


y hermanos que siempre me apoyaron en esta difícil trayectoria y que gracias a su
ayuda he podido salir adelante.

A nuestro director de proyecto, el ing. Jorge Correa García, que siempre estuvo
presente para solucionar cualquier inquietud, apoyando con su experiencia y
deseos de tener buenos egresados de la institución; a la docente Andrea Falla
Rubiano, pues siempre se mostró dispuesta a revisar el documento del trabajo de
grado para corregir novedades y aportar sus conocimientos, al ing. Henry Jiménez
Rosero, por haberme brindado su apoyo con todos los implementos necesarios para
realizar las pruebas necesarias para el correcto funcionamiento del proyecto.

Bryan Steven Castro Becerra

A Dios por estar siempre en todos los momentos de mi vida, iluminándome,


guiándome en los problemas que se presentaron; a mis padres por ser mi mayor
pilar por infundir en mí el espíritu de lucha, ganas y deseos de salir adelante,
resaltando el apoyo incondicional en momentos de duda, tristeza y felicidad; a mi
hermana y mis sobrinos por siempre brindarme esos momentos de felicidad que
alegraban mis días oscuros; a mi código Bryan porque gracias a sus conocimientos
dedicación y esfuerzo logramos salir adelante antes las adversidades.

A los docentes del programa que ayudaron a solucionar las diferentes dudas que
se presentaron en el proyecto de grado; a nuestro director de proyecto de grado, el
ing. Jorge Correa García, ya que, gracias a sus conocimientos, logramos solventar
todos los problemas los cual nos permitió llevar a cabo este proyecto de grado.

José Dayron Rios Bustamante


TABLA DE CONTENIDO

pág.

INTRODUCCIÓN 11

1. PROBLEMA DE INVESTIGACIÓN 14

1.1 PLANTEAMIENTO DEL PROBLEMA 14

1.2 FORMULACIÓN DEL PROBLEMA 15

1.3 SISTEMATIZACIÓN DEL PROBLEMA 15

2. JUSTIFICACIÓN 16

3. OBJETIVOS 18

3.1 OBJETIVO GENERAL 18

3.2 OBJETIVOS ESPECÍFICOS 18

4. MARCO REFERENCIAL 19

4.1 ANTECEDENTES 19

4.2 MARCO CONCEPTUAL 20

4.3 MARCO TEÓRICO 21

4.3.1 Software libre. 21

4.3.2 Hardware libre. 21

4.3.3 Ingeniería de software 22

4.3.4 Metodologías de desarrollo de software 22

4.3.5 GPS 25

4.3.6 Estructura de señal GPS 25

4.3.7 Dron 27

4.3.8 Navegación. 28
4.3.9 Raspberry Pi. 28

4.3.10 Odroid-C2 29

4.3.11 Jaguar One 30

4.3.12 Pine A64 31

4.3.13 LattePanda. 32

4.3.14 Raspbian. 36

4.3.15 Javascript 36

4.3.16 C 36

4.3.17 C++. 37

4.3.18 Python 37

4.3.19 Modelo cinemático de un dron cuatrimotor. 40

4.3.20 Controles 44

4.4 MARCO HISTÓRICO 46

4.5 MARCO LEGAL 47

5. DISEÑO METODOLÓGICO 49

5.1 MÉTODO DE INVESTIGACIÓN 49

5.2. TIPO Y ENFOQUE DE LA INVESTIGACIÓN 49

5.3 ETAPAS METODOLÓGICAS. 50

5.3.1 Recopilación Bibliográfica 50

5.3.2 Elección del miniordenador 50

5.3.3 Elección del lenguaje de programación 50

5.3.4 Análisis del algoritmo 50

5.3.5 Ejecución de pruebas 51

5.4 FUENTES DE INFORMACIÓN 51


5.4.1 Fuentes primarias 51

5.4.2 Fuentes secundarias. 51

Se toma fuente complementaria de información 51

5.5 TÉCNICAS PARA LA RECOLECCIÓN DE LA INFORMACIÓN 51

5.6 PLAN DE ANÁLISIS Y PROCEDIMIENTO DE LOS DATOS 51

5.6.1 Población 51

5.6.2 Muestra. 52

6. RESULTADOS 53

6.1 CUMPLIMIENTO DE OBJETIVOS 53

6.2 PLACA COMPUTADORA 53

6.3 LENGUAJE DE PROGRAMACIÓN 54

6.4 SIMULACIÓN DEL ALGORITMO 55

6.4.1 Generación de trayectoria de la plataforma robótica móvil aérea en el entorno


3D. 55

6.5 REALIZACIÓN DE PRUEBAS 64

6.5.1 Explicación del diagrama de Simulink 66

7. IMPACTO Y AHORRO INSTITUCIONAL 78

8. CONCLUSIONES 79

9. RECOMENDACIONES 80

BIBLIOGRAFÍA 81

ANEXOS 85
LISTA DE TABLAS

pág.

Tabla 1. Comparación entre las diferentes placas de computadora 33


Tabla 2. Comparación entre los diferentes lenguajes de programación 37
Tabla 3. Evaluación de las placas computadora investigadas 53
Tabla 4. Evaluación de los lenguajes de programación 54
Tabla 5 Evaluación de los lenguajes de programación. 64
LISTA DE FIGURAS

pág.

Figura 1. Mensajes de navegación 26


Figura 2. Drones cuatrimotor 28
Figura 3. Raspberry Pi 29
Figura 4. Odroid-C2 30
Figura 5. Jaguar One 31
Figura 6. Pine A64 31
Figura 7. LattePanda 32
Figura 8. Ángulos de Euler 40
Figura 9 Esquema del controlador PID 44
Figura 10 Red neuronal 45
Figura 11 Etapas metodológicas 50
Figura 12 Variantes. 56
Figura 13 Explicación mandos. 57
Figura 14 Cambio de código y Excel con coordenadas 58
Figura 15 Diagrama de caso de usos 59
Figura 16 Diagrama de flujo interfaz gráfica del usuario añadir 60
Figura 17 Diagrama de flujo interfaz gráfica del usuario editar 61
Figura 18 Diagrama de flujo interfaz gráfica del usuario borrar. 62
Figura 19 Diagrama de flujo interfaz gráfica del usuario generar trayectoria 63
Figura 20 Ajuste de la escala del mapa. 65
Figura 21 Simulación del movimiento de la plataforma robótica móvil aéreo mediante
representación tridimensional 66
Figura 22. Diagrama de bloques. 67
Figura 23 Sistema de control en lazo cerrado. 68
Figura 24. Bloque 1 Sensores 68
Figura 25 Bloque 2 Constantes del entorno 69
Figura 26 Bloque 2 Variables ambientales 70
Figura 27 Bloque 3 Constructor de señales. 70
Figura 28 Signal Builder 71
Figura 29 Generador de señales 72
Figura 30 Bloque 4 Sistema de control. 72
Figura 31 Acción de control 73
Figura 32 Control para orientación. 73
Figura 33 Control para los cambios de giro con respecto al eje Z 74
Figura 34 Bloque 5 Dinámica no lineal de la plataforma. 75
Figura 35 Variables. 76
Figura 36 Bloque 6 Visualización. 77
Figura 37. Herramienta de trayectorias sin rutas cargadas 85
Figura 38. Introduciendo waypoints en la aplicación 86
Figura 39. Introduciendo una zona de no vuelo en la aplicación 87
Figura 40. Guardar rutas y zonas de no vuelo en el panel de waypoints 88
Figura 41. Borrar datos 88
Figura 42. Cargar rutas ya establecidas previamente en el panel de waypoints y
zonas de no vuelo 89
Figura 43. Generando trayectorias visuales en el mapa 90
Figura 44. Añadiendo nueva zona de no vuelo 91
Figura 45. Generando una zona de no vuelo en el mapa 92
Figura 46. Editar waypoints o una zona de no vuelo 93
Figura 47. Borrar un waypoints o una zona de no vuelo 94
INTRODUCCIÓN Commented [CAGR1]: Incluir la quinta parte de la pag. 3
http://www.unap.cl/prontus_unap/site/artic/20150505/asocfile/
20150505105202/como_elaborar_una_introduccion_1.pdf

Para muchas personas, la aparición del dron fue algo repentino que tomó fuerza de
modo inesperado, llegando a posicionarse en el mercado de una manera muy
rápida, sin embargo, los primeros antecedentes de la historia de los drones, se
remontan a 1849, cuando el ejército austriaco implementó más de doscientos globos
aerostáticos no tripulados cargados con bombas, en contra de Venecia; dando un
salto en la historia, (Haluani, 2014) relata que “En 1916 fue contratado el profesor
Archibald Low por el recién formado Ministerio del Aire británico para desarrollar
defensas contra los dirigibles alemanes Zeppelins; asimismo se diseñó el primer
avión por control radial destinado a funcionar como torpedo aéreo para derribar a
los Zeppelins”, experimentos y dispositivos que fracasaron, pero allí, se sentaron
las bases para desarrollar lo que hoy en día se conoce como dron. Las aplicaciones
de este tipo de vehículo son principalmente de tipo militar, vigilancia y seguimiento,
reconocimiento geográfico, recolección de información, etc.

Debido a falencias de seguridad presentadas en la Escuela Militar de Aviación


“Marco Fidel Suárez” desde su posicionamiento en la ciudad de Cali – Valle y al
gran avance tecnológico reflejado en los drones, encontrados en el mercado actual
con gran variedad de usos, entre los cuales se encuentra su aplicación en la
vigilancia, es posible reforzar la seguridad de la EMAVI, implementando una
estructura de vigilancia perimetral con drones, la cual, permitirá una reacción más
eficaz por parte del Grupo de Seguridad GRUSE, en el lugar donde se hayan
presentado ataques o violaciones a la seguridad; en consecuencia, el propósito
principal es simular un algoritmo de control de navegación de un dron cuatrimotor.

El presente documento presenta la siguiente estructura: un análisis de requisitos a


través de una investigación, donde se determinó la placa computadora a utilizar, el
lenguaje de programación a implementar y un estudio del algoritmo que detalla los
errores que éste contiene; una fase de desarrollo en la cual se modifica el algoritmo,
corrigiendo los errores que éste contiene y así adecuarlo al trabajo de grado y una
fase de pruebas cuyo resultado es una guía de uso para el usuario; al final, se puede
encontrar una sección de conclusiones .

El principal aporte de esta investigación es dejar las bases planteadas para


transcurrir de una simulación a la ejecución real de las patrullas aéreas sobre la
Escuela Militar de Aviación “Marco Fidel Suárez”, brindando de esta manera, una
mejora a la seguridad de la base militar que involucra un menor tiempo de reacción,
una monitorización constante y revista de puntos ciegos y sitios aledaños a la
institución.

En el capítulo 1 se analizó las diferentes problemáticas de la unidad y los motivos


por la cual la hacen un blanco principal de ataques.

En el capítulo 2 se analizaron los diferentes casos ocurridos en la unidad y la


importancia del porque sería útil la utilización de drones en la unidad.

En el capítulo 3 se plantearon los objetivos necesarios para el cumplimiento del


proyecto.

En el capítulo 4 se realizó las diferentes investigaciones necesarias para el


desarrollo del algoritmo, conceptos básicos sobre los drones y plataformas de
desarrollo de software; también se analizó el ámbito histórico de los drones y legales
a los cuales se cobija el desarrollo de software en el país

En el capítulo 5 se seleccionó la metodología más aplicada al proyecto con la cual


se pudieran dar cumplimento a todos los diferentes tipos y enfoques de
investigación, se establecieron las etapas metodológicas, cuáles fueron las
principales fuentes de información, técnicas de recolección de investigación y el plan
de análisis y procedimientos.

En el capítulo 6 se compilo la información investigada en el capítulo 4 dando los


diferentes resultados de la investigación como la placa computadora, lenguaje de
programación y las diferentes pruebas realizadas al algoritmo
En el capítulo 7 se define los diferentes impactos generados a la institución y
posibles ahorros que generaría la ejecución del proyecto.
1. PROBLEMA DE INVESTIGACIÓN

La Escuela Militar de Aviación “Marco Fidel Suárez” es una unidad que está
expuesta a muchos atentados terroristas por parte de grupos armados al margen
de la ley; no tiene un sistema de vigilancia aéreo, eficiente que cumpla con una serie
de estándares para salvaguardar el área perimetral, donde en caso de ser atacada,
no se tendría información inmediata sobre la zona desde la cual se ejecuta el
ataque.

1.1 PLANTEAMIENTO DEL PROBLEMA

A través de los años, desde el traslado definitivo de la Escuela Militar de Aviación


“Marco Fidel Suárez”, a la ciudad de Santiago de Cali Valle del Cauca, la EMAVI,
ha sido blanco de múltiples intentos de ataques terroristas, de los cuales, algunos
llegaron a consolidarse, dando lugar a un daño en las estructuras de la unidad y
reflejaron las falencias de seguridad de la misma, llegando a exponer seriamente al
componente más importante de la Fuerza Aérea Colombiana: el talento humano.

El personal cuya responsabilidad es la seguridad de la EMAVI (compuesta por


Escuela Militar de Aviación y el Comando Aéreo de Combate N°7), es el GRUSE 10
(Grupo de Seguridad N°10), integrado por oficiales, suboficiales y soldados, estos
últimos, son los miembros que principalmente se encuentran en contacto directo
con las amenazas, pues hacen las veces de centinelas y patrullas en el perímetro
de la base militar y de los puestos de guardia, adicionalmente, hacen inspecciones
motorizadas en las zonas y/o barrios aledaños a la EMAVI.

La escuela tiene 23 puntos fijos de vigilancia y 35 cámaras los cuales no se ocupan


completamente debido a la falta de personal de soldados asignados en una guardia,
lo que genera estos espacios y puntos ciegos causados igualmente por los árboles
o edificaciones internas de la unidad, lo que le permite a los grupos terroristas poder
causar daños a la unidad a través de dichas falencias de seguridad.
1.2 FORMULACIÓN DEL PROBLEMA

¿Cómo mejorar la seguridad en la zona perimétrica de la EMAVI mediante el diseño


de un algoritmo para el control de navegación de un dron cuatrimotor?

1.3 SISTEMATIZACIÓN DEL PROBLEMA

¿Qué nuevas tecnologías combina el uso de drones para la seguridad?

¿Qué necesidades tiene el usuario final de este sistema de navegación


implementado en la seguridad?

¿Cómo hacer un ambiente más intuitivo y fácil de navegar para el usuario?

¿Cómo definir las pruebas con el usuario final del algoritmo?


2. JUSTIFICACIÓN

Teniendo presente a la EMAVI como una unidad militar de gran importancia para la
Fuerza Aérea, pues en ella se forman tanto los pilotos primarios como los futuros
oficiales de la institución, también es un sitio de atención por parte de grupos al
margen de la ley, quienes con el propósito de infundir caos y generar pánico con su
accionar ideológico, podrían realizar actos violentos en contra de la unidad.

Adicionalmente, las condiciones propias de la ciudad en que se encuentra localizada


la EMAVI, Cali – Valle, la cual, cuenta con fenómenos sociales que la consideran
como una de las más peligrosas del país, propiciando el desarrollo de eventos
vandálicos en contra de las instalaciones que representan seguridad y presencia
militar, como es para este caso, la base aérea referida.

Sin embargo, es relevante mencionar que el proceso de paz que se llevó a cabo en
Colombia, pone en la mira a las instituciones públicas, especialmente a la fuerza
pública. (CaracolRadio, 2018) refiere que el conflicto por el cual se vio sumergido el
país, aún continúa con vigencia en pequeños grupos de carácter ideológico que
manifiestan inconformidad respecto al acuerdo pactado con la guerrilla de las FARC,
es decir, que luego de este proceso, el país sigue sin lograr reconciliarse en su
totalidad con el Estado y esto conlleva a las diferentes disidencias, a realizar
manifestaciones de inconformidad e incidir en la seguridad de las fuerzas militares.

Por ello, la propuesta del proyecto se centra en la simulación de un algoritmo para


el control de navegación de un dron cuatrimotor, para vigilancia de la Escuela Militar
de Aviación “Marco Fidel Suárez” EMAVI, lo que hace necesario simular un
algoritmo que permita el control de navegación de un dron, que garantice la
vigilancia de la base y controle sus alrededores, de modo tal que se propicie la
implementación de estos dispositivos generadores de nueva tecnología, en función
del Estado, y en pro de salvaguardar sus instituciones, lo anterior considerando que,
si bien la unidad ya cuenta con un esquema propio de seguridad, este se vería
reforzado a través de la puesta en marcha del presente proyecto.
Con este añadido al apoyo del GRUSE 10 de la EMAVI, se crea una nueva forma
de mantener la seguridad en la unidad militar, no sólo para el personal interno, sino
también para el personal que se encuentra momentáneamente prestando su
servicio de seguridad, pues se encuentran puntos ciegos tanto para las cámaras
como para el personal de centinelas, principalmente por la pérdida de visión sobre
el objetivo debido a obstáculos como árboles, edificaciones, entre otros. Los
resultados de la investigación servirán como base para la implementación de un
proyecto tecnológico, que materialice la simulación en un dron real y así, logre
reforzar la seguridad de la EMAVI o bien, permita la conformación de un nuevo
esquema a través del cual, se garantice la seguridad de esta institución.
3. OBJETIVOS

3.1 OBJETIVO GENERAL

Realizar la simulación de un algoritmo de control de navegación de un dron


cuatrimotor, para brindar una mejora a la seguridad de la EMAVI.

3.2 OBJETIVOS ESPECÍFICOS

 Construir el informe, donde se determine mediante una tabla comparativa


sobre qué placa computadora se podría ejecutar el algoritmo.

 Establecer el lenguaje de programación del algoritmo.

 Simular el algoritmo de navegación.

 Validar el correcto funcionamiento de la navegación simulada a través de un


informe.
4. MARCO REFERENCIAL Commented [CAGR2]: Ya saben

4.1 ANTECEDENTES

Un primer trabajo institucional de Blanco y Londoño (2016) corresponde a “Montaje


de un sistema de control de monitoreo de patrullas de la Escuela Militar de Aviación
‘Marco Fidel Suárez’ para el grupo de seguridad y defensa de bases número siete”,
quienes facilitaron al GRUSE una aplicación que permitiese rastrear a los medios
de transporte y personas mediante un dispositivo móvil, implementando los
sistemas de información geográfica, relacionándose por instaurar el Sistema de
Posición Geográfica GPS para arrojar la posición del personal requerido, ya que se
pretende, implementar dicho sistema para ordenar waypoints y lograr de esta
manera, una ruta a seguir en el perímetro de la base.

Del ingeniero Gaitán (2017) “Diseño de un sistema robótico móvil aéreo no tripulado
equipado con sensores de percepción remota para estimar descriptores de un
cultivo de caña de azúcar en el Valle del Cauca”, cuyo proyecto realiza el monitoreo
de cultivos de caña azúcar usando robots móviles, se extrae la información
relacionada principalmente tanto con la implementación del dron cuatrimotor (que
implica el mismo modelo cinemático) como con la implementación de la técnica de
control por modos deslizantes.

Gracias al proyecto informático de Campo, Cebrián y de la Iglesia (2012) “Modelado


y control inteligente del cuatrimotor Quanser Qball-X4”, quienes diseñaron y
aplicaron controladores convencionales e inteligentes al modelo de un dron
cuatrimotor Quanser QBall-X4, cuya previa investigación fue fuente de información
importante para lograr obtener datos sobre controles inteligentes tales como
características, modo de operación, y demás información pertinente a los drones
cuatrimotor, como por ejemplo, el control PID.
4.2 MARCO CONCEPTUAL

Alabeo: Es el movimiento del eje longitudinal del dron.

Algoritmo: Tiene múltiples definiciones. “Conjunto de reglas que, aplicada


sistemáticamente a unos datos de entrada apropiados, resuelven un problema en
un número finito de pasos elementales”. (Peña, 2018).

Cabeceo: Es el movimiento del eje lateral del dron.

GNSS: Global Navigation Satellite System, es el acrónimo definido por García


(2008) como “el conjunto de tecnologías de sistemas de navegación por satélite,
que proveen posicionamiento geoespacial con cobertura global, de manera
autónoma”.

Guiñada: Es el movimiento del eje vertical del dron.

Python: Es un lenguaje de programación versátil, multiplataforma y multiparadigma


que se destaca por su código legible y limpio. (Universia España, 2017).

SIM 808: Es un módulo que permite el envío y recepción de datos mediante


GMS/GPRS de telefonía móvil 2g, también contiene la tecnología GPS, gracias a
esto será posible obtener las coordenadas de un objeto. (Chero, 2018).

Sistema Operativo: Es el software que brinda un entorno o una interfaz hombre-


máquina que permite a los usuarios ejecutar programas (US, 2018).

Seguridad y defensa de bases: La institución militar Fuerza Aérea Colombiana


(2016) lo define como:

Una especialidad de la fuerza aérea colombiana, que se encarga de


brindar seguridad en tierra, para que diferentes operaciones,
incluyendo las aéreas, puedan ser desarrolladas sin inconvenientes.
Su actuar está orientado a la defensa de los recursos de la Fuerza
Aérea, para este fin, sus miembros son entrenados en cursos de
combate, como paracaidismo, contraguerrilla, comandos aéreos,
recuperación de personal, entre otros.
Teledetección: Es una técnica por medio de la cual se obtiene información de un
objeto, área o fenómeno, analizando e interpretando las imágenes adquiridas por
un equipo que no está directamente en contacto físico con el objeto, área o
fenómeno en investigación (IGAC,2007).

Trayectoria de vuelo: Es el recorrido que sigue la aeronave o dron, al desplazarse


de un punto a otro.

UAV: Son siglas en inglés, que se refieren a vehículo aéreo que no lleva tripulantes,
también denominado usualmente dron (VIU, 2018).

Waypoints: La palabra viene compuesta del inglés way (camino) y point (punto). “En
una navegación de waypoints, son importantes dos parámetros: la dirección del
siguiente waypoint y la distancia al mismo” (Burnett & Porter, 2002).

4.3 MARCO TEÓRICO

4.3.1 Software libre. En términos generales, significa que los usuarios tienen la
libertad de ejecutar, copiar, distribuir, estudiar, cambiar y mejorar el software. Así,
el "software libre" es una cuestión de libertad, no precio. Un software es libre si los
usuarios del programa tienen las siguientes cuatro libertades:

 La libertad de ejecutar el programa como desee, para cualquier propósito


(libertad 0).
 La libertad de estudiar cómo funciona el programa, y cambiarlo para que lo
haga. Su computación como desee (libertad 1). El acceso al código fuente
es una condición previa para esto.
 La libertad de redistribuir copias para que pueda ayudar a su vecino (libertad
2).
 La libertad de distribuir copias de sus versiones modificadas a otros (libertad
3). Al hacer esto, puede darle a toda la comunidad la oportunidad de
Benefíciate de tus cambios. El acceso al código fuente es una condición
previa para esta. (Stallman, 2009).

4.3.2 Hardware libre. Al igual que el software libre, el hardware, para que sea libre,
debe cumplir una serie de requisitos, los cuales principalmente son:
-Libertad en el modo de interactuar con el hardware y su diseño.
-Las herramientas con las que fue construido el hardware, e incluso los planos,
deben ser públicos para que el usuario tenga la capacidad de modificarlo y/o
mejorarlo (Stallman, 2015) dice. “Hardware libre significa un hardware en el que los
usuarios son libres para copiar y modificar, un diseño de hardware libre, significa un
diseño que los usuarios pueden copiar, modificar, y convertir en hardware”

4.3.3 Ingeniería de software. Es una disciplina de la informática, que ofrece


métodos y técnicas para desarrollar y mantener software de calidad que resuelven
problemas de todo tipo. Hoy en día, es cada vez más frecuente la consideración de
la ingeniería de software, como una nueva área de la ingeniería.

La Ingeniería del Software trata con áreas muy diversas de la informática y de las
ciencias de la computación, tales como construcción de compiladores, sistemas
operativos o desarrollos de Intranet/Internet, abordando todas las fases del ciclo de
vida del desarrollo de cualquier tipo de sistemas de información y aplicables a una
infinidad de áreas tales como: negocios, investigación científica, medicina,
producción, logística, banca, control de tráfico, meteorología, el mundo del derecho,
la red de redes Internet, redes Intranet y Extranet, etc. (Roger, 2005).

4.3.4 Metodologías de desarrollo de software. Consiste principalmente en hacer


uso de diversas herramientas, técnicas, métodos y modelos para el desarrollo.
Regularmente este tipo de metodología tiene la necesidad de venir documentada,
para que los programadores que estarán inmersos en la planeación del proyecto,
comprendan perfectamente la metodología y en algunos casos, el ciclo de vida del
software que se pretende seguir.

4.3.4.1 Metodología tradicional. Es una metodología sencilla en la cual, los pasos


de desarrollo están gráficamente estructurados hacia abajo como una cascada, y
genéricamente, tiene unas fases bien definidas; el análisis de necesidades o
estructuración de los requisitos, el diseño, implantación, pruebas y el
mantenimiento.
4.3.4.1.1 Fase de requisitos. Durante esta fase, se recoge un documento que
contiene un listado de necesidades o prioridades.

4.3.4.1.2 Fase de análisis. En esta fase, se construye un documento que es


esencialmente un contrato entre el cliente y los desarrolladores, en el cual, se
especifica sin mayores detalles, qué debe ser capaz de hacer el sistema y una vez
terminado el documento, requiere la aprobación del cliente para continuar con la
elaboración del sistema.

4.3.4.1.3 Fase de diseño. En esta fase, se realiza un documento que contiene los
módulos que va a tener el sistema a través de diagramas, donde se especifica hasta
el tipo de dato que se va a usar en cada variable, además de algunos algoritmos de
la lógica del módulo. El documento también contiene la estructura de datos, es decir
cómo se van a relacionar estos datos con cada módulo.

4.3.4.1.4 Fase de implementación. Se pasa toda la documentación del diseño a


los programadores, quienes traducen la información recibida a los lenguajes de
programación y combinan o relacionan cada módulo.

4.3.4.1.5 Fase de mantenimiento. Una vez ha sido instalado el programa, es


necesario un mantenimiento para quitar fallas o ampliar el sistema, para así,
adaptarlo a los cambios del cliente. En esta fase, la documentación generada son
unos reportes que especifican las características del cambio realizado, donde se
especifican todos los detalles de la modificación. (Schach, 2005).

4.3.4.2 Pair programming. La programación en parejas es un estilo de


programación, en el que dos programadores trabajan codo a codo en una
computadora, colaborando continuamente en el mismo diseño o algoritmo. Uno de
los dos, llamado conductor, está escribiendo un diseño o programando un código,
mientras que el otro, llamado navegador, entre sus diferentes labores debe observar
el trabajo de su pareja y buscar defectos tácticos o estratégicos.
Los defectos tácticos son errores de sintaxis, errores tipográficos, llamar un método
incorrecto, etc. Los defectos estratégicos ocurren cuando el conductor se dirige por
el camino equivocado dando como posible resultado que lo que se implementa no
alcanzará lo que debe lograrse. El navegador es el pensador estratégico de largo
alcance. Este tiene un punto de vista mucho más objetivo y puede pensar mejor
estratégicamente sobre la dirección del trabajo. Una relación efectiva de
programación de pares es muy activa. El conductor y el navegador se comunican y
se formulan preguntas constantemente, aunque también es muy importante cambiar
los roles periódicamente entre el conductor y el navegador. (Williams, Pair
Programming Illuminated, 2002)

4.3.4.2.1 Características: La programación en parejas o Pair Programming trae


múltiples beneficios que se resumen a continuación.

4.3.4.2.1.1 Calidad. Los pares producen código con menores defectos, ya que
constantemente monitorean el trabajo del otro y se detallan errores durante la
programación.

4.3.4.2.1.2 Hora. Los pares producen código de mayor calidad en


aproximadamente la mitad del tiempo como individuos. Esto acorta el tiempo de su
ciclo sin afectar el presupuesto general al tiempo que le brinda una calidad superior.

4.3.4.2.1.3 Moral. Debido al elevado nivel de actividad y dinamismo que requiere la


metodología, ayuda a trabajar la retención y al lograr grandes avances en menos
tiempo, se mantiene un nivel de felicidad elevado.

4.3.4.2.1.4 Confianza y trabajo en equipo. Los pares logran conocer muy bien a sus
compañeros de equipo, lo que genera confianza y mejora el trabajo en equipo.

4.3.4.2.1.5 Transferencia de conocimiento. Los pares, particularmente aquellos que


no se emparejan con la misma persona todo el tiempo, tienen mayor conocimiento
sobre más temas en un sistema general.
4.3.4.2.1.6 Aprendizaje mejorado. Los pares aprenden continuamente observando
cómo su compañero aborda una tarea, cómo usa las capacidades del lenguaje y
cómo usa las herramientas de desarrollo. Estos beneficios se aplican no solo al
desarrollo de código nuevo, sino también de gran manera, al mantenimiento o
mejora del código. (Williams, Pair Programming Illuminated, 2002)4.3.5 GPS: El
Sistema de Posicionamiento Global (GPS). Es un servicio propiedad de los EE.UU.
que proporciona a los usuarios información sobre posicionamiento, navegación y
cronometría. Este sistema está constituido por tres segmentos: el segmento
espacial, el segmento de control y el segmento del usuario. La Fuerza Aérea de los
Estados Unidos desarrolla, mantiene y opera el segmento espacial y de control.
(GPS, 2016)

4.3.5.1 El segmento espacial. Consiste en una constelación de satélites que


transmiten señales de radio a los usuarios. Los Estados Unidos se comprometen a
mantener la disponibilidad de al menos 24 satélites GPS operativos, el 95% del
tiempo.

4.3.5.2 El segmento de control. Consiste en una red global de instalaciones


terrestres, que rastrean los satélites GPS, controlan sus transmisiones, realizan
análisis y envían comandos y datos a la constelación. El segmento de control
operacional actual incluye una estación de control maestro, una estación de control
maestro alternativa, once antenas de comando y control, y dieciséis sitios de
monitoreo.

4.3.5.3 El segmento del usuario. Ha permitido a los usuarios de todo el mundo


desarrollar cientos de aplicaciones, que afectan casi todas las facetas de la vida
moderna. Cada día se inventan nuevos usos del GPS, cuya única limitación es la
creatividad de la imaginación humana.

4.3.6 Estructura de señal GPS. Las dos portadoras y los dos códigos de señal del
sistema GPS se derivan directamente de los osciladores de reloj atómicos a bordo.
Al decodificar el mensaje de navegación de tres satélites GPS, se puede calcular la
posición en la tierra. (Nave, N/A).

Para los códigos C/A, el mensaje de navegación consta de 25 cuadros de datos, y


cada cuadro contiene 1500 bits. Además, cada cuadro está dividido en cinco sub-
tramas de 300 bits. Con un receptor que adquiere códigos C/A, toma exactamente
seis segundos adquirir un sub-cuadro y 30 segundos para adquirir un cuadro.

Para lograr una solución de posición, la mayoría de los receptores deben tener
información actualizada de almanaque y efemérides. Esta información está
contenida en los datos del mensaje transmitidos por los satélites, y cada sub-trama
contiene un conjunto único de información. En general, las subtramas tienen los
siguientes datos:

Subtrama 1: corrección de reloj, precisión e información de salud del satélite

Subtramas 2-3: los parámetros orbitales precisos utilizados para calcular la


ubicación exacta de cada satélite

Subtramas 4-5: datos orbitales de satélite grueso, corrección de reloj e información


de salud Ver la Figura 1. Mensajes de navegación para el análisis de las subtramas.

Figura 1. Mensajes de navegación


Fuente: http://www.ni.com/cms/images/devzone/tut/gps_frame.png

4.3.7 Dron Cuatrimotor. Un dron cuatrimotor o quadrotor es un vehículo aéreo


impulsado por cuatro rotores. Las hélices tienen un paso fijo, lo que hace que sea
mecánicamente más simple que un helicóptero normal. Sin embargo, el quadrotor
es inherentemente inestable y, por lo tanto, su control es bastante difícil. El progreso
en el campo de la ingeniería de control permitió lidiar con la inestabilidad inherente
del quadrotor, y, por lo tanto, ha comenzado a aparecer en los sistemas militares,
de seguridad y de vigilancia.

Hoy en día, pueden realizar maniobras rápidas y complejas, navegar de forma


autónoma en entornos estructurados y no estructurados y cooperar en tareas de
manipulación y transporte.

Además, se aplicaron enfoques de aprendizaje automático para predecir los errores


de posición del UAV siguiendo una trayectoria de vuelo deseada. (Krajník, Vonasek,
Fiser, & J, 2011).

Ver la Figura 2. Drones cuatrimotor, para identificar un dron cuatrimotor actual.


Algunas de las tareas más importantes que suelen realizar los drones en escenarios
de guerra son: el reconocimiento, la fijación de blancos, guerra electrónica y muchas
otras.

Figura 2. Drones cuatrimotor

Fuente: https://www.danfis.cz/pdfpaper/eurobot11.pdf

4.3.8 Navegación. La navegación de un dron, hace referencia al modo de operar


del mismo, en el cual, su trayectoria de vuelo es la implicada principalmente. Es
entonces, el recorrido que un dron hace al estar en movimiento.
La navegación de un dron es posible gracias a la ejecución combinada tanto de
software como de hardware, que origina un proceso aerodinámico que lo hace
capaz de volar; su navegación autónoma es mediante el seguimiento de way-points,
para que el dron vuele de una manera estable, continua y decida qué trayectoria de
tomar, la información es interceptada por un hardware receptor de señales, las
cuales, serán finalmente captadas por el GPS y de esta manera, se logra establecer
una ruta de patrullaje en la Escuela Militar de Aviación “Marco Fidel Suárez”.

4.3.9 Raspberry Pi. Es una placa computadora de bajo costo, con el tamaño de una
tarjeta de crédito, es el mini-ordenador de mayor éxito del mercado y, por ende, el
público que ha conseguido es muy grande, no sólo por su costo, sino también por
las amplias características que ofrece. Cuenta con un núcleo cuádruple de 64 bits
procesador funcionando a 1,4 GHz, banda dual de 2,4 GHz y 5 GHz inalámbrico
LAN y Bluetooth 4.2 / BLE.
La LAN inalámbrica de doble banda viene con cumplimiento modular certificación,
lo que permite diseñar el tablero en productos finales con redujo significativamente
las pruebas de cumplimiento de LAN inalámbrica, mejorando tanto costo y tiempo
de comercialización. (RaspberryPi, 2018)

Esta es la tercera generación de Raspberry Pi, la placa más actual y potente de la


gama que reemplaza al modelo B de la segunda generación. En la Figura 3.
Raspberry Pi se puede identificar el nuevo modelo de esta placa computadora. Es
compatible con JavaScript, Python, C/C++.

Figura 3. Raspberry Pi

Fuente:https://www.raspberrypi.org/homepage-
9df4b/static/2efe82d07c653f3f638c0cbf54346b5d/bc3a8/67d8fcc5b2796665a45f61
a2e8a5bb7f10cdd3f5_raspberry-pi-3-1-1619x1080.jpg

4.3.10 Odroid-C2. Perteneciente a la compañía coreana Hardkernel, es la mayor


competidora de Raspberry Pi, debido a sus mejores ofertas por un precio casi
similar.

Su desventaja es que no tiene integrado la conectividad wifi de serie, pero, sin


embargo, esto se soluciona con un adaptador, sus mayores ventajas radican en
mejor potencia, más memoria RAM, puertos infrarrojos y la salida HDMI permite
sacar un video 4K a 60 Hz; es compatible con Ubuntu 16.04 y Android 5.1.
Se destaca la capacidad de la PC Odroid C2 para realizar diversas tareas de alta
importancia como lo es la codificación de canal, la compresión de datos, entre otros,
y de este modo garantizar que los datos a ser transmitidos llevan robustez en caso
de errores en la transmisión de los mismos y, por otra parte, los datos no viajan
expuestos sobre el medio de comunicación elegido. (Hernández & Salas , 2018).
Ver Figura 4. Odroid-C2 para identificar la placa computadora.

Figura 4. Odroid-C2

Fuente:https://www.didacticaselectronicas.com/images/stories/virtuemart/product/
ODROID-C2_06.png

4.3.11 Jaguar One. Es un proyecto nuevo de Kickstarter y ahora cuentan con su


primer modelo, la Jaguar One, la cual, permite tener la compatibilidad con X86 lo
que genera un mayor rendimiento con altos niveles de escalabilidad y
compatibilidad. Basado en el procesador Intel Atom de cuatro núcleos, proporciona
1 GB de memoria RAM DDR3L y 16 GB de almacenamiento flash eMMC integrado.
Brinda a los desarrolladores integrados y la experiencia mejorada de los aficionados
al bricolaje con el desarrollo de software y simplifica significativamente los kits de
herramientas de desarrollo. Además, permite que aquellos que aún no están
familiarizados con la arquitectura ARM, no necesiten invertir el tiempo y el esfuerzo
en aprender algo nuevo antes de poner el Jaguarboard a trabajar en un proyecto.
Es compatible con Linux (Ubuntu, Debian, Red Hat) así como Windows 8.1 y 10 en
sus versiones completas y Android. (Jaguarboard, 2015). En la Figura 5. Jaguar
One se puede identificar la placa computadora

Figura 5. Jaguar One

Fuente: http://www.sabien.upv.es/presente-los-mini-ordenadores-raspberry-pi-3-
otras-alternativas/

4.3.12 Pine A64. Esta es probablemente una de las opciones más económicas de
las que actualmente se dispone. Está dotada con un procesador ARM v8 de 64 bits,
capaz de decodificar video 4K, algo que no puede hacer la Raspberry Pi. Los
desarrolladores del PINE A64 lo ofrecen en tres versiones distintas que varían en la
cantidad de memoria integrada, desde los 512 MB hasta los 2GB, con unos precios
muy competitivos. Ofrecen otras opciones como el puerto para conectar un panel
táctil o los puertos para conectar otros módulos opcionales como una cámara de 5
Megapíxeles, un adaptador Wifi + Bluetooth o un puerto MIPI de vídeo. Hay muchos
sistemas operativos disponibles para el PINE A64 (+) creado por la comunidad de
código abierto y varios proyectos asociados. Actualmente, la mayoría de las
distribuciones de Linux para PINE A64 utilizan Linux principal, pero hay una serie
de sistemas de distribución y / o heredados basados en BSP que también puede
descargar. (PINE64, 2019). La placa Pine A64 se visualiza en la Figura 6. Pine A64

Figura 6. Pine A64


Fuente: https://www.openhab.org/docs/installation/pine.html

4.3.13 LattePanda. Para aquellos múltiples desarrolladores que utilizan a menudo


el conjunto Raspberry Pi + Arduino, surge esta nueva placa: LattePanda,
presentada por la compañía China DFRobot, que integra ambos sistemas y ofrece
muchas posibilidades. Para identificar la placa computadora, ver la Figura 7.
LattePanda Esta placa es capaz de ejecutar Windows 10 en su versión completa y
está equipada con un procesador y un coprocesador que integra todas las funciones
de Arduino en la misma placa. Ofrece dos alternativas según sus especificaciones
(2/32 GB o 4/64 GB) Está turboalimentado con un procesador Intel Quad Core y
tiene una conectividad excelente, con tres puertos USB y WiFi y Bluetooth 4.0
integrados. También incluye un coprocesador Arduino que le permite dominar el
mundo físico mediante el control de dispositivos interactivos utilizando miles de
periféricos plug and play. (Lattepanda, 2019)

En resumen, esta placa puede interesar mucho a los desarrolladores Windows con
interés en el “Internet de las cosas” que ofrece Arduino, y que quieran algo más
capaz y flexible que una Raspberry Pi.

Figura 7. LattePanda
Fuente:https://www.amazon.es/LattePanda-2GB-32GB-Powerful-
Unactivated/dp/B01JJC7NBS

Actualmente, en el mercado se pueden encontrar diversidad de placas de


computador, las cuales, varían según su tamaño, características de hardware,
software, costo, diseño y componentes; en la Tabla 1, se relacionarán algunas
placas con el fin de establecer cuál es la que se acopla mejor a la hora de
materializar la simulación del algoritmo y así, poderlo ejecutar.

Tabla 1. Comparación entre las diferentes placas de computadora

Raspberry Pi Jaguar LattePand


Odroid C2 Pine A 64
3 One a

1.2 GHz
1.3 Ghz 64-Bit 1.8 GHz
1.5 GHz
1.2 GHz 64- Quad- Quad- 64-Bit
Quad-Core
Procesador bit Quad- Core Intel |Core Quad-
ARM Cortex
Core ARMv8 Atom ARM Core Intel
A53
Z3735G/F Cortex Z8300
A53

Memoria Tarjeta Tarjeta 32 GB


Tarjeta SD 16 GB
interna microSD microSD 64 GB
512 MB 1 2 GB 4
RAM 1 GB 2 GB 1 GB
GB 2 GB GB

4 USB 2.0,
HDMI 1 USB 3.0
4 USB 2.0 1
1.4,Wifi, 3 USB 2.0 2 USB 2.0 2 USB 2.0
Conectivida USB OTG
Bluetooth 4.1 HDMI 1.4 HDMI 1.4 Wifi
d HDMI 2.0
Bluetooth Ethernet Ethernet Bluetooth
Ethernet
(BLE),Ethern 4.0
et Ethernet

Linux, Android
Linux Linux Android, Linux Windows
SSOO
Windows IoT Android Windows Windows 10
10 IoT

$15 $19 $109


Precio $35 $46 $79
$29 $139

Lenguajes
JavaScript, Ubuntu Ubuntu,
de
Python, 16.04 Debian
programació
C/C++. Android 5.1. Red Hat
n

Fuente: Propia
En la Tabla 1. Comparación entre las diferentes placas de computadora, se tuvieron
en cuenta como criterios de evaluación para las placas computadoras, parámetros
como el procesador, memoria interna, RAM, conectividad, sistemas operativos,
precio y lenguajes de programación.

Al procesador se le asignó un 15% dado que, es un parte fundamental en la


velocidad y ejecución del algoritmo.

A la memoria interna se le asignó un valor de 10% dado que, esta permite el


almacenamiento del algoritmo, el cual, debe guardar el código que permite el control
de la navegación. (Escala de 1 a 5, donde 5 es para la memoria expandible y 1 para
la memoria predeterminada).

A la RAM se asignó 15% dado que, en esta se almacenan los datos y comandos
emitidos en ese momento. (Escala de 1 a 5, donde 5 es para los que tengan 1 o
más GB y 1 para los que tengan menos de 1GB),

A la conectividad se asignó un 30% dado que, esta permite conectar los diferentes
componentes necesarios para el funcionamiento del algoritmo, la conexión de los
motores y sensores que permiten el correcto funcionamiento del algoritmo. (Escala
de 1 a 5, donde 5 es para las que tienen 4 o más puertos USB y 1 para las que
tenga 3 o menos puertos USB),

Al sistema operativo se asignó 15% dado que, este es el software que permite correr
el algoritmo (Escala de 1 a 5, donde 5 es para los que tengan sistema operativo
Linux y Windows IoT y 1 para el cualquier otro sistema operativo).

Al precio se asignó 7% dado que, los costos de las placas computadoras son muy
similares y no influyen de manera relevante en la elección de la placa (Escala de 1
a 5, donde 5 es para los que tengan un costo menor de 40 dolores y 1 para los que
tengan un costo superior a 40 dólares).
A los lenguajes de programación, se les asignó un 8 % dado que, estos sólo sirven
como plataforma para aplicación del código que se implementa (Escala de 1 a 5,
donde 5 es para los que tengan Python y C/C++ y 1 para los que tengan cualquier
otro lenguaje de programación).

4.3.14 Raspbian. Es un sistema operativo gratuito basado en Debian, optimizado


para el hardware Raspberry Pi. Sin embargo, Raspbian proporciona más que un
sistema operativo puro: viene con más de 35,000 paquetes, software pre compilado
con fácil instalación sobre Raspberry Pi.

La construcción inicial de más de 35,000 paquetes Raspbian, optimizados para un


mejor rendimiento en Raspberry Pi, se completó en junio de 2012. Sin embargo,
Raspbian aún se encuentra en desarrollo activo con énfasis en mejorar la
estabilidad y el rendimiento de tantos paquetes Debian como sea posible.
(Michelone, 2012)

En la actualidad, Raspbian se puede programar en diferentes lenguajes como


Javascript, Phyton, C/C++, etc. Aunque, los más usados normalmente son Python
y C, porque están implícitos en Raspbian y porque son lenguajes universales y
básicos en programación.

Los sistemas operativos, en este caso, GNU/Linux, pueden ser manejados por
medio de entornos gráficos. Sin embargo, no es la única forma de operar un
sistema. También se puede manejar por medio de líneas de comandos que se
ingresan por medio de una terminal (también llamada consola) y que funciona
como una interfaz entre el usuario y el sistema operativo. (Becerra, 2016)

4.3.15 Javascript. Fue creado como un lenguaje de scripting para el navegador.


Eso significa que es un lenguaje de propósito especial para crear scripts para
aplicaciones web en el lado del cliente (eso significa el navegador, no el servidor).

4.3.16 C. Es un lenguaje basado en el paradigma de programación estructurada.


Pretende ser un lenguaje de propósito general que dé al programador control total
sobre sus programas, permitiendo la programación de bajo nivel (es decir,
permitiendo controlar directamente cosas como el acceso a memoria y otros
recursos), pero a la vez, proporcionando estructuras de alto nivel que hagan la
programación de sistemas grandes más fácil. Su primer uso fue la escritura del
sistema operativo Unix (del que deriva Linux), lo que da idea de la potencia de C en
la programación de bajo nivel. Tras la publicación en 1978 de The C Programming
Language, alcanzó gran popularidad y pronto se convirtió en el lenguaje de
referencia para la comunidad informática.

4.3.17 C++. Fue creado con el fin de dotar C, de mecanismos que permitieran usar
el paradigma de programación orientada a objetos. Su nombre inicial era C with
Classes, lo que muestra claramente ese propósito, aunque finalmente hizo un juego
con el operador incremento (++) de C. Inicialmente, C++ era totalmente compatible
con C; es decir, cualquier programa escrito en C era un programa válido también en
C++, aunque el contrario no era cierto. Esto se hizo con el fin de favorecer la
adopción del nuevo lenguaje por parte de los programadores de C que quisieran dar
el salto a la programación orientada a objeto. Actualmente, esa compatibilidad ya
no es total, aunque sí muy grande. (Vallespín, 2016).

4.3.18 Python. Es un lenguaje de programación de propósito general. Es muy fácil


de aprender, leer y usar, es flexible y productivo; es el lenguaje que eligen muchos
aficionados y profesionales para todo tipo de aplicaciones que no requieren un
rendimiento superior.

Cuando se requiere un rendimiento superior, C o C ++ son la opción, pero estos


lenguajes son mucho más complejos que Python. (González L. , 2017).

Se realizó una diferenciación en la Tabla 2. Comparación entre los diferentes


lenguajes de programación

Tabla 2. Comparación entre los diferentes lenguajes de programación


Lenguaje Características Fortalezas Debilidades Opinión
-Permite la -Libre y código Los lenguajes Es una opción
creación de fuente abierto interpretados más para
Python todo tipo de -Lenguaje de suelen ser realizar páginas
programas, propósito relativamente web dinámicas
incluso sitios general lentos de gran tamaño,
web Multiplataforma tiene el gran
- No requiere de -Orientado a beneficio de ser
compilación, es objetos un lenguaje
un código - Portable multiplataforma
interpretado por lo que tener
problemas al
utilizar esta
plataforma es
poco probable,
prototipado
rápido, en
facilidad de uso y
de lectura del
código sencilla

S -Un lenguaje -Los scripts -No soporta


Es un lenguaje
interpretado tienen herencias fácil de aprender
-Es similar a java capacidad -Código visible por
y que puede
-Es orientado a limitada por cualquier usuario
hacer un sitio
objetos razones de -El código debe ser
web muy
seguridad descargado dinámico y con
-Se ejecuta del completamente grandes efectos.
JavaScript lado del cliente -Puede poner enAdemás, cuenta
-Lenguaje de riesgo la seguridad
con múltiples
scripting seguro del sitio con el
librerías de
y fiable actual problema
terceros, las
llamado XSS cuales pueden
facilitar el
desarrollo de
scripts.
-Orientado a -Ideal para -No soporta la -Al ser
objetos sistemas creación de multiplaforma y
-Rápido robustos aplicaciones web rápido, es una
IDEs de desarrollo -Complejo buena
con Dev C++, visualmente alternativa para
Borland C, el desarrollo de
C++ Turbo C aplicaciones
Multiplaforma para escritorio.
-Popular para la -Rápido -No es popular para Es un lenguaje
creación de -Eficiente la creación de bastante rápido
software de -Es un lenguaje aplicación por estar
sistema orientado a la -Sintaxis compleja cercano a los
implementación lenguajes de
C de Sistemas bajo nivel y la
Operativos, principal
concretamente desventaja de
Unix este lenguaje es
sus sintaxis que
resulta ser
compleja y difícil
o tedioso de
implementar.
Fuente: http://desarrollowebydesarrolloweb.blogspot.com/2015/02/tabla-
comparativa-de-los-lenguajes-de.html

Como criterios de evaluación para los lenguajes de programación se tienen en


cuenta los siguientes parámetros como características, debilidades, fortalezas y
opiniones de los diferentes lenguajes de programación.

A las características se le asignó un 40% dado que, es la principal razón en la cual


se basa el lenguaje de programación en este se define qué beneficios presentan y
para que se pueden utilizar (Escala de 1 a 5, donde 5 es para aquellos que tengan
fácil programación y no tenga necesidad de compilar para optimizar procesos y 1
para aquellos que sean complejos y difícil de aplicar).

El fácil manejo del lenguaje afectaría el proceso del proyecto, (Escala de 1 a 5,


donde 5 es para aquellos que presentan una sola debilidad, 4 para aquellos que
presentan dos debilidades, 3 para los que presentan tres debilidades, 2 para los que
presentan cuatro debilidades y 1 para los que presentan cinco debilidades).

A las fortalezas se le asignó 30% dado que, esta sería su principal fuerte debido a
que esta ayudaría de gran manera el desarrollo del proyecto, (Escala de 1 a 5,
donde 5 es para aquellos que presentan software libre, fácil manejo y
multiplataforma y 1 para aquellos que son de difícil procesamiento).

A las opiniones se asignó un 20% dado que, es otro punto de vista el cual puede
ayudar a fortalecer el desarrollo del proyecto (Escala de 1 a 5, donde 5 es para
aquellos lenguajes multiplataforma, que la lectura del código sea sencilla y 1 para
aquellos que no lo sean).

4.3.19 Modelo cinemático de un dron cuatrimotor. Una representación del dron


cuatrimotor utilizado para el desarrollo del modelo se muestra en la Figura 8 donde
se representan los ángulos de Euler de roll (ϕ), De Pitch (Ɵ), Y yaw (ѱ) y el marco
de coordenadas cartesianas.

Los motores funcionan en par con motores de 1 y 3 que operan juntos y motores 2
y 4 que operan juntos. Al variar la velocidad de un motor, es posible manipular la
fuerza de empuje. El cambio de las velocidades relativas de los motores 1 y 3
controles el ángulo de Pitch, y en consecuencia crea movimiento en el eje x. Del
mismo modo, la variación de las velocidades de los motores 2 y 4 crea un ángulo
de roll que crea movimiento de traslación en el eje y. Altitud es controlado por la
suma de las fuerzas de todos los motores, por último, el ángulo Yaw se crea a partir
de la diferencia en los contra-pares entre cada par de motores. A continuación.

Figura 8. Ángulos de Euler


Fuente: http://inforepuesto.com/como-funcionan-y-vuelan-los-drones/).

Las ecuaciones dinámicas pueden ser analizadas por medio de método de newton-
euler

𝑚𝑥̈ = 𝐹𝑓 + 𝐹𝑡 + 𝐹𝑔

(1)

𝐽𝜃 = 𝑇𝑓 + 𝑇𝑎

Donde m es la masa total del drone y la J es una matrix de todas la inercias en cada
uno de los ejes del drone (ver ecuación 2).

𝐼𝑥 0 0
𝐽 = [0 𝐼𝑦 0 ] (2)
0 0 𝐼𝑧

Es importante analizar como se mueve el drone espacialmente, y dado que las


fuerzas de empuje del motor se encuentran aplicadas sobre el sistema de
coordenadas del este, es necesario usar una matrix de transformacion (ver ecuación
3).
𝐶𝜃 ∙ Cφ Cφ ∙ Sθ ∙ Sϕ − Cϕ ∙ Sφ Cϕ ∙ Sθ ∙ Cφ + Sφ ∙ Sϕ
𝐵
R = [𝐶𝜃 ∙ Sφ Sφ ∙ Sθ ∙ Sϕ − Cϕ ∙ Cφ Cϕ ∙ Sθ ∙ Sφ − Cφ ∙ Sϕ] (3)
𝐸
−𝑆𝜃 𝐶𝜃 ∙ Sϕ Cθ ∙ Cϕ

Donde C son los cosenos y S los senos de la matriz de transformación.

Las sumatoria de las fuerzas de empuje de cada motor nos indican la fuerza total
ejercida en el eje Z por el drone, teniendo en cuenta que están dependerán del
modo que sean diseñadas las hélices del cuadricoptero (ver ecuación 4).

Para poder definir matemáticamente cada fuerza debemos tener en cuenta la


velocidad angular w y el coeficiente de las hélices (ver ecuación 5).

0
0
𝐹𝑓 = R [𝑅
𝐸 4 ] (4)
∑ = 1 𝐹𝑖
𝑖

𝐹𝑖 = 𝐾𝜌𝜔2 (5)

Adicionamente se debe tener en cuenta las fuerzas aerodinamicas que estaran en


contra de las fuerzas de empuje y que su funcionamiento tambien dependera de la
forma en que se encuentre construida las hélices del motor donde cada una sera
multiplicada por la velocidad (ver ecuación 6).

−𝐾𝑓𝑡𝑥 0 0
𝐹𝑡 = [ 0 −𝐾𝑓𝑡𝑦 0 ] 𝑥̇ (6)
0 0 −𝐾𝑓𝑡𝑧

Y como es antes mencionado el peso del cuadricoptero será centrado en el mismo


los puntos (0,0,0) del eje de coordenadas, el cual solo tendrá una fuerza inversa a
la de empuje (ver ecuación 7)
𝐹𝑔 = [0 0 −𝑚𝑔]𝑇 (7)

La sumatoria de momentos ayudaran a realizar los movimientos de roll (ϕ), De Pitch


(Ɵ), Y yaw (ѱ), por eso es importante expresar los momentos de inercias en función
de las fuerzas (recordando que las fuerzas dependerán de la velocidad del motor)
(ver ecuación 8).

𝑑(𝐹3 − 𝐹1 )
𝑟𝑡 = [ 𝑑(𝐹4 − 𝐹2 ) ] (8)
𝐾𝑑 (𝜔12 − 𝜔22 + 𝜔32 − 𝜔42 )

También se debe tener en cuenta del torque que se generaran por las fuerzas
aerodinámicas como las del viento sobre las hélices, todas estas teniendo en cuenta
la distancia del centro del drone a cada motor (ver ecuación 9).

−𝐾𝑓𝑡𝑥 0 0
𝑟𝑎 = [ 0 −𝐾𝑓𝑡𝑦 0 ] 𝜃̇ (9)
0 0 −𝐾𝑓𝑡𝑧
Ya con todas las matrices que componen nuestro análisis por método newton-euler.
Procedemos a despejar las variables de estado, obteniendo las siguientes
ecuaciones de estado del drone (Gaitán, 2017) (ver ecuación 10).

(𝐶∅ 𝑆𝜃 𝐶𝜑 +𝑆∅ 𝑆𝜑 )𝑢1 −𝐾𝑓𝑡𝑥 𝑥̇


𝑥̈ =
𝑚
(𝐶∅ 𝑆𝜃 𝐶𝜑 −𝑆∅ 𝐶𝜑 )𝑢1 −𝐾𝑓𝑡𝑦 𝑦̇
𝑦̈ =
𝑚
(𝐶∅ 𝐶𝜃 )𝑢1 −𝐾𝑓𝑡𝑧 𝑧̇
𝑧̈ = 𝑚
−𝑔
𝑑𝑢2 −𝐾𝑓𝑎𝑥 ∅̇ (10)
∅̈ =
𝐼𝑥
𝑑𝑢3 −𝐾𝑓𝑎𝑦 𝜃 ̇
𝜃̈ = 𝐼 𝑦
𝑢4 −𝐾𝑓𝑎𝑧 𝜑̇
𝜑̈ =
𝐼𝑧
A partir de este modelo de la plataforma robótica móvil aéreo en términos
matemáticos, se analizan dos alternativas comerciales que existen para el control
de movimiento, el ArduPilot y el Pixhawk, así como también una estrategia de
control moderno para sistemas no lineales. Se debe tener en cuenta que las
plataformas comerciales cuentan con una interfaz de usuario, la cual permite
interactuar con el robot móvil aéreo, conociendo que estas plataformas cuentan con
una estrategia de control PID la cual debe modificarse de acuerdo al tipo y las
características físicas del robot móvil aéreo (esto basado en las diferentes pruebas
realizadas). Por otro lado, el control por Modos Deslizantes, no presenta la
necesidad de configurar sus parámetros, ya que solo es necesario conocer su
modelo cinemático, pero presenta complejidad para implementarse sobre la
plataforma.

4.3.20 Controles. Los mecanismos de control de los drones cuatrimotor se


describen a continuación

4.3.20.1 PID. El controlador PID es un mecanismo simple de realimentación que


elimina errores al calcularlos entre el valor medido y el valor que se quiere obtener.
El algoritmo del controlador se basa en tres parámetros: proporcional, integral y
derivativo, (Åström & Hägglund, 2009), visualizados en la Figura 9.

Figura 9 Esquema del controlador PID


Fuente:https://eprints.ucm.es/16056/1/Modelado_y_control_inteligente_del_cuatrir
otor_Quanser_Qball-X4.pdf

4.3.20.2 Controles inteligentes.El control inteligente permite generalizar el concepto


de control. Se caracteriza por permitir adaptación, aprendizaje, planificación bajo
una elevada incertidumbre y procesamiento de una gran cantidad de datos. (Ochoa,
2012)

4.3.20.2.1 Control difuso. Esta lógica trabaja con conjuntos difusos, en la que la
pertenencia de los elementos puede tomar un valor verdadero, falso o una
comprendida entre cero y uno, a través de una función de pertenencia, que indicará
en qué grado un valor se corresponde con uno o varios conjuntos difusos. Campo,
Cebrián y de la Iglesia (2012).

4.3.20.2.2 Redes neuronales. Su nombre proviene del comportamiento de las


células neuronales, es decir, hay estímulos que funcionan como entrada y
posteriormente, una salida. Las neuronas conforman unas “redes”, dentro de estas
existen capas (neuronas en un mismo nivel). Existe un primer nivel denominado
capa de entrada, posteriormente una cantidad n de capas ocultas y finalmente, la
capa de salida, visualizados en la Figura 10. Campo et al. (2012).

Figura 10 Red neuronal


Fuente:https://eprints.ucm.es/16056/1/Modelado_y_control_inteligente_del_cuatrir
otor_Quanser_Qball-X4.pdf

4.3.20.3 Modo deslizante. El Sliding Mode Control (SMC) es una técnica de control
no lineal con características de precisión, robustez y fácil ajuste e implementación.
De la Cruz, (De la Cruz & Camacho, 2015) lo describen como:

El diseño basado en SMC consiste en definir una superficie a lo largo


de la cual el proceso pueda deslizarse hacia su valor final deseado. La
estructura del lazo de control permanece fija hasta que el estado cruza
S(t)= 0 y entonces ajustada para que el estado se deslice a lo largo de
esta superficie. Por tanto, es necesario definir la superficie deslizante
S(t), la cual representa un comportamiento global deseado, por
ejemplo, estabilidad y desempeño en el seguimiento y que usualmente
se formula como una función lineal del estado del sistema.
Esta superficie puede representarse como:

𝑆(𝑡) = 𝑓(𝑟(𝑡), (𝑥𝑚 ), (𝑡), 𝑒𝑚 (𝑡), , 𝑛)

Donde r(t) es la señal de referencia, xm(t) es la salida del modelo, em(t) es el error
del modelado, n es el orden del modelo y  es un parámetro de sintonización El
objetivo de control es asegurar que la variable controlada sea igual a la referencia
en todo momento, es decir que el error y sus derivadas sean iguales a cero.

4.4 MARCO HISTÓRICO

El final de la Primera Guerra Mundial y las primeras experiencias aéreas en


Colombia, llevaron al entonces señor presidente, Marco Fidel Suárez, a promover
ante el Congreso, la necesidad de desarrollar la aviación militar en el país. Fue así
como el 31 de diciembre de 1919, sancionó la ley 126, por medio de la cual, se
creaba la aviación como la quinta arma del ejército y se disponían los recursos para
la fundación de la Escuela Militar de Aviación.
La Escuela Militar de Aviación de Flandes, Tolima, contando con el apoyo y la
experiencia de Francia, se inauguró en 1921. Para esta época, el proyecto tenia
pocos recursos y tenía pocas aeronaves y hangares a su disposición.

El 8 de noviembre de 1924, la escuela abrió de nuevo sus puertas, pero en la


población de Madrid Cundinamarca. Esta vez con el apoyo de la misión suiza, a
cargo del General Hans George Junchler. (Gutiérrez, 2008)

El Conflicto con el Perú, había finalizado hacía poco y el gobierno nacional tenía la
necesidad de establecer una base aérea al occidente del país. El Coronel Herbert
Boy, fue el encargado de encontrar la ubicación idónea para la nueva base. Así,
llegó a Cali en donde existía la hacienda “El Guabito”, propiedad de Abraham
Domínguez. (Franco, 2015) La cual, fue adquirida mediante un título de compra-
venta, a partir de ese momento, se estableció la Escuela Militar de Aviación, la cual,
se encuentra actualmente activa en la ciudad de Cali

La Escuela Militar de Aviación, está expuesta a ser blanco de múltiples atentados


terroristas por grupos armados al margen de la ley, consecuencia de estar ubicada
en la ciudad de Cali, la cual se encuentra posicionada en el puesto 28 de las
ciudades más peligrosas del mundo, registrando 1.261 homicidios y 2.542.876 de
habitantes, lo que da una tasa de 49.59% por cada mil habitantes, debido a estas
cifras, es necesario implementar un nuevo método de seguridad el cual, permita
anticiparse a los movimientos de los delincuentes.

4.5 MARCO LEGAL

Mediante la circulación reglamentaria No. 2 de la Aeronáutica Civil, la cual trata


sobre los requisitos generales de aeronavegabilidad y operaciones para RPAS
(Numeral 4.25.8.2) del 27 de agosto del 2015, se especificaron todas las
restricciones, límites y sanciones en materia. (Aeronáutica Civil, 2015).

El proyecto de ley 246 del 2009, por el cual se establece el Sistema de Seguridad y
Defensa Nacional, está conformado por el conjunto de principios, políticas,
objetivos, estrategias, procedimientos, organismos, funciones y responsabilidades
de los componentes del Estado y la utilización de los recursos en tal materia.
(Congreso de Colombia, 2009).

Ley 1286 de 2009, a través de la cual, se fortalece el sistema nacional de ciencia,


tecnología e innovación en Colombia, determina dentro de sus objetivos
específicos, la promoción de utilización de recursos públicos para el fomento de la
ciencia y la tecnología, a la vez que fortalece el desarrollo regional de acuerdo con
dinámicas internacionales, adicionalmente, establece disposiciones para el
fortalecimiento científico y el desarrollo de la innovación (Congreso de Colombia,
2009).

Ley 115 de 1994, referente a la ley general de educación nacional, también resalta
la importancia de indagar en campos de nuevas tecnologías, para generar técnicas
que sean de utilidad a la sociedad, lo cual, para el caso, sería de gran valor en tanto
se desarrolle y efectúe un sistema de seguridad oportuno, a partir de la
implementación de una nueva tecnología dentro del campo de la innovación
informática. (Congreso de la República de Colombia, 1994).
5. DISEÑO METODOLÓGICO

5.1 MÉTODO DE INVESTIGACIÓN

Al tratarse de un proyecto basado en fallas de seguridad puntuales, se implementa


el método deductivo, pues se comprende la problemática a través de pautas y Commented [CAGR3]: Citar autor
Commented [T4R3]:
sucesos lo cual, permite partir de lo general a lo especifico, definiendo así, una
opción concreta que se adapte al proyecto, facilitando el desarrollo del mismo, pues
al comprobar la validez de la información, se determina una conclusión particular de
cada supuesto y así, lograr llegar a una aplicación. (Abreu, 2014)

5.2. TIPO Y ENFOQUE DE LA INVESTIGACIÓN

El tipo investigación que se utilizará será la descriptiva, puesto que se detallan fallas Commented [CAGR5]: Citar autor

de seguridad en la base aérea militar, cómo se manifiestan, la importancia que ésta


tiene, las personas involucradas y las variables a tener en cuenta.
Adicionalmente, con la información reunida a través de investigaciones, se hace un
enfoque en el tema y se da una orientación innovadora, económica y tecnológica.
(Cazau, 2006)

El enfoque de la investigación es cualitativo, pues se estudia la realidad de la Commented [CAGR6]: Citar autor

problemática de seguridad, al mismo tiempo que se comprende, teniendo una


primera etapa de recolección de datos, análisis, clasificación de los hechos y una
hipótesis solución al problema. (Cazau, 2006)
5.3 ETAPAS METODOLÓGICAS.

Las etapas metodológicas se ilustran en la Figura 11 Etapas metodológicas

Figura 11 Etapas metodológicas Commented [CAGR7]: Colocarlas antes de la descripción


de las etapas

Recopilación Elección del


Elección del Análisis del Ejecución de
bibliográfica lenguaje de
miniordenador algoritmo pruebas
programación

Fuente: Los autores

A continuación, se detallan las etapas metodológicas del proyecto.

5.3.1 Recopilación Bibliográfica. En esta etapa, se recolecta toda la información


necesaria para abordar el tema de investigación, además, ayuda a definir la
metodología para el diseño del algoritmo.

5.3.2 Elección del miniordenador. La investigación permite determinar cuál será el


miniordenador factible para la aplicación del algoritmo a realizar, a través de una
tabla comparativa. Esta investigación permitió terminar el primer objetivo.

5.3.3 Elección del lenguaje de programación. Una vez elegido el miniordenador, se


realiza una investigación de os lenguajes de programación soportados en esta para
posteriormente, determinar a través de una tabla comparativa, cuál es el que más
se adapta al proyecto de grado. Esta investigación permitió terminar el segundo
objetivo.

5.3.4 Análisis del algoritmo. Con el algoritmo ya existente de control de navegación


sobre un dron cuatrimotor se realiza un análisis detallado de los errores contenidos
en este y una posterior modificación para lograr una adaptación al trabajo de grado.
El anterior análisis permitió terminar el tercer objetivo.
5.3.5 Ejecución de pruebas. Con las modificaciones realizadas, se realizan pruebas
verificando la adecuada ejecución del algoritmo de control, una vez terminadas las
pruebas, se desarrolla una guía de uso para el usuario.

5.4 FUENTES DE INFORMACIÓN

5.4.1 Fuentes primarias. Se toma como fuente primaria de información, el personal


que labora en el Grupo de Seguridad y Defensa de Bases No. 10, en la parte
correspondiente a vigilancia perimétrica, ya que son personas que están
involucradas directamente en el problema; libros referentes a navegación,
ingeniería de software y trabajos de grado tanto institucionales como externos.

5.4.2 Fuentes secundarias. Se toma fuente complementaria de información


patentes, libros conceptuales e información en línea presente en revistas indexadas,
noticieros, periódicos y libros.

5.5 TÉCNICAS PARA LA RECOLECCIÓN DE LA INFORMACIÓN

Para recolectar información sobre la problemática de EMAVI, se acudió al personal


del Grupo de Seguridad y Defensa de Bases No. 10 mediante la entrevista libre, Commented [CAGR8]: ¿A qué?

para obtener información general sobre la problemática de seguridad en el


perímetro de la base aérea para conocer su punto de vista acerca de la
implementación de drones en la seguridad perimetral, también, para ver las brechas
de seguridad que ellos conocen como miembros encargados de esta; para el
desarrollo del presente documento, se citaron otros trabajos de grado, páginas web,
libros, libros on-line, periódicos on-line, artículos, patentes y revistas. Se hace uso
de la entrevista para recolectar la información necesaria para el desarrollo del
proyecto, estas serán analizadas mediante un análisis descriptivo.

5.6 PLAN DE ANÁLISIS Y PROCEDIMIENTO DE LOS DATOS

5.6.1 Población. Son las personas involucradas en la Escuela Militar de Aviación.


5.6.2 Muestra. El personal del Grupo de Seguridad 10, tomando una muestra de
cinco oficiales, tres suboficiales y dos soldados; personas ligadas directamente con
la defensa del perímetro de la base aérea, y conocen directamente la problemática
de seguridad que se presenta en la EMAVI.
6. RESULTADOS

6.1 CUMPLIMIENTO DE OBJETIVOS

Luego de haber iniciado el proyecto, los objetivos cambiaron por decisión del
usuario final, por lo que dos primeros objetivos no son necesarios. A continuación,
se presentan los resultados.

6.2 PLACA COMPUTADORA

Mediante la segunda etapa metodológica, elección del miniordenador, se realizó un


análisis y de los diferentes miniordenadores, se hizo la asignación de porcentajes a
las características de las placas computadoras, de acuerdo a la Tabla 1.
Comparación entre las diferentes placas de computadora y se realiza la respectiva
puntuación de las mismas, donde se obtiene la información mostrada en la Tabla 3.
Evaluación de las placas computadora investigadas.

Tabla 3. Evaluación de las placas computadora investigadas

Raspberry Odroid Jaguar Pine A


LattePanda
Pi 3 C2 One 64

Procesador 15% 1.2 1.5 1.3 1.2 1.8

Memoria interna
5 5 1 5 1
10%

RAM 15% 5 5 5 5 5

Conectividad
5 5 1 1 1
30%
Sistemas
5 1 1 5 1
Operativos15%

Precio 7% 5 1 1 5 1

Lenguajes de
5 1 1 0 0
programación 8%

Total 6,05% 5,3% 3,4% 4,45% 4,07%

Fuente: Los autores

Como primer resultado de la investigación, se concluye que la placa computadora


que mejor puede llegar a permitir desarrollar, corregir y ejecutar el algoritmo de
navegación para el control de navegación sobre un dron cuatrimotor, es la
Raspberry Pi, pues a pesar de no ser la más destacada en aspectos como velocidad
del procesador, capacidad de la memoria interna o capacidad de la RAM, tiene otras
características muy superiores a las demás, como es el caso de la conectividad
(Wifi, Bluetooth, Ethernet, USB, Hdmi) y adicionalmente, implementa sencillos
lenguajes de programación, llegando así a obtener una diferencia superior al 0.7%
sobre su más próximo rival, Odroid C2. Logrando así, culminar el primer objetivo.

6.3 LENGUAJE DE PROGRAMACIÓN

A través de la tercera etapa metodológica, elección del lenguaje de programación,


una vez hecho el análisis y la asignación de porcentajes a las características de los
lenguajes de programación, de acuerdo a la Tabla 2. Comparación entre los
diferentes lenguajes de programación, se realiza la respectiva puntuación de los
mismos, donde se obtiene la información mostrada en la Tabla 4. Evaluación de los
lenguajes de programación.

Tabla 4. Evaluación de los lenguajes de programación


Lenguaje Características Fortalezas Debilidades Opinión Total
40 % 30% 10% 20%
Python 4 5 5 5 4.6

JavaScript 3 2 2 5 3

C++ 4 4 4 5 4.2

C 3 5 4 4 3.9

Fuente: Los autores

El segundo resultado de la investigación, nos permite elegir a Python como el


lenguaje de programación en el cual, se desarrollará el algoritmo de control de
navegación sobre un dron cuatrimotor, pues comparado con su rival más próximo
(C++), este obtiene ventaja en aspectos importantes como escritura de código más
sencilla, ejecución a través de un intérprete, alcance de variables, funciones sin
restricciones en el tipo de argumento, entre otras; haciéndolo más viable para este
tipo de proyectos, con una calificación de 4.6 / 5 y una diferencia de 0.4 con C++.
Terminando así, el segundo objetivo.

6.4 SIMULACIÓN DEL ALGORITMO

Mediante la cuarta etapa metodológica, análisis del algoritmo, se determinaron los


errores contenidos en el algoritmo y la solución a estos para lograr adaptar dicho
algoritmo al trabajo de grado. Los errores y soluciones encontrados son:

6.4.1 Generación de trayectoria de la plataforma robótica móvil aérea en el


entorno 3D.

Para que la plataforma área generé la trayectoria deseada sobre el terreno virtual,
es necesario tener en cuenta la funcionalidad del bloque de generador o constructor
de señales de posición. En este bloque, el usuario puede determinar la fuente de
información de los puntos que debe recorrer la plataforma robótica móvil sobre el
entorno 3D. Por ejemplo, en la aplicación existen cuatro fuentes de generador de
trayectorias, los cuales son generadas a través de una interfaz de control de
comportamiento de la plataforma, radiocontrol (Joystick), conjunto de datos
proveniente de un archivo .mat, y un conjunto de datos proveniente de un archivo
de Excel. Dado que la aplicación recibe datos provenientes del usuario a través de
una interfaz gráfica (GUIDE), donde el usuario puede determinar los puntos de la
trayectoria (waypoints) o los puntos de no vuelo (No fly points); para un posterior
análisis, estos datos son almacenados en la carpeta raíz del proyecto. Para
determinar la fuente de generador de trayectorias adecuado para el entorno 3D, es
necesario modificar una variable global creada en la carpeta raíz del proyecto,
denominada variants.command, en la cual se puede modificar entre los valores 0:
interfaz gráfica de comportamiento, ver Figura 12 Variantes.

Figura 12 Variantes.

Fuente: Propia, extraída directamente de Matlab.

Para el caso de la aplicación se ha decido usar los archivos de tipo Excel. El usuario
determina los waypoints y los Noflypoints, y esta información es usada para
completar las columnas principales del archivo. Este archivo contiene cuatro
columnas, las cuales son, tiempo de ejecución de la simulación (de 0 a 100
segundos), posición en X, posición en Y, posición en Z, rotaciónes con respecto a
los ejes Pitch, Roll y Yaw. Cada columna contiene un total de 20.000 muestras.

El archivo Excel descrito anteriormente es construido con la información


suministrada por el usuario, en la función SaveTrajectoryButton; el usuario genera
los diferentes puntos de interés, luego son visualizados en el mapa de la zona de
vuelo (Generate Trajectory), y finalmente estos puntos son almacenados 1: joystick,
2: archivo .mat, 3: archivo Excel ver Figura 13 Explicación mandos.

Figura 13 Explicación mandos.

3 2

Fuente: Propia, extraída directamente de Matlab.

El sistema toma la cantidad de puntos (waypoints) generados por el usuario, de


acuerdo a la totalidad de puntos, se realiza una división entre la cantidad de
muestras que requiere el archivo Excel; esto se realiza para generar pasos iguales
entre los waypoints de la trayectoria. Entre los waypoints se realiza un cambio de
coordenadas locales, es decir, se realiza la transformación de los puntos generales
(con respecto al eje de coordenadas espacial) a una escala local (con respecto al
eje de coordenadas de la plataforma), lo que determina como debe desplazarse la
plataforma sobre el espacio. Finalmente, con la división de los puntos de la
trayectoria con respecto a la cantidad de muestras disponibles, y el cambio de
escala, se genera el archivo de Excel ubicado en la dirección del proyecto
asbQuadcopter\mainModels, con el nombre de testdata.xlsx, y su hoja principal
denominada data ver Figura 14 Cambio de código y Excel con coordenadas.

Figura 14 Cambio de código y Excel con coordenadas

Fuente: Propia, extraída directamente de Matlab.

Adicionalmente, se realiza un diagrama de casos de usos del software, en el cual,


se hace una comparación entre un usuario y el programador: el primero se
encuentra limitado y el segundo puede ejecutar el software sin restricciones tal y
como se puede observar en la Figura 15. Diagrama de caso de usos.
Figura 15 Diagrama de caso de usos

Fuente: Los autores

Se realizó un diagrama de flujo en el cual se muestra el paso a paso de cada acción


principal y se puede observar en la Figura 16 Diagrama de flujo interfaz gráfica del
usuario añadir
Figura 16 Diagrama de flujo interfaz gráfica del usuario añadir

Fuente: Los autores

Se realizó un diagrama de flujo en el cual se muestra el paso a paso de cada acción


principal y se puede observar en la Figura 17 Diagrama de flujo interfaz gráfica del
usuario editar
Figura 17 Diagrama de flujo interfaz gráfica del usuario editar

Fuente: Los autores

Se realizó un diagrama de flujo en el cual se muestra el paso a paso de cada acción


principal y se puede observar en la Figura 18 Diagrama de flujo interfaz gráfica del
usuario borrar
Figura 18 Diagrama de flujo interfaz gráfica del usuario borrar.

Fuente: Los autores

Se realizó un diagrama de flujo en el cual se muestra el paso a paso de cada acción


principal y se puede observar en la Figura 19 Diagrama de flujo interfaz gráfica del
usuario generar trayectoria
Figura 19 Diagrama de flujo interfaz gráfica del usuario generar trayectoria

Fuente: Los autores

Culminando así, el tercer objetivo.


6.5 REALIZACIÓN DE PRUEBAS

A través de la quinta etapa metodológica, realización de pruebas, se verifica la


correcta ejecución del algoritmo en todas sus formas posibles y se logra así,
desarrollar una guía de uso para el usuario.

La modificación del algoritmo permite visualizar una ruta con diferentes waypoints
los cuales permitirán el cubrimiento total de los puntos ciegos de la unidad.

El código principal corresponde a asbTrajectoryTool, el cual, ejecuta la interfaz


gráfica de usuario que permite el ingreso de los wayPoints y NoFlyPoints.
Adicionalmente, esta interfaz permite la visualización de estos puntos sobre un
mapa. Este mapa corresponde a 100 x 120 m (imagen de 399 x 492 pixeles). La
visualización se logra haciendo uso de la función plotMWSchematic.m, que es
usada desde el código principal. Para ver el contenido de la función, diríjase a Tabla
5 Evaluación de los lenguajes de programación.

Tabla 5 Evaluación de los lenguajes de programación.

CÓDIGO DESCRIPCIÓN
Relación de espacio por pixel.
imScale = 0.0037;
Lectura de la imagen
mapMW = imread('MWAerial.png');
Lectura del tamaño de la imagen
sizeMap = size(mapMW);
image(imScale*(0:1:sizeMap(2)+0.5),im
Visualización de imagen ajustada a la
Scale*(sizeMap(1))+0.5:-
escala
1:0.5,mapMW,'Parent',ax)
Ajuste de la escala del eje de acuerdo
axis(ax,'equal','xy'); al tamaño de la imagen
Etiqueta del eje X
xlabel('East [Km]')
Etiqueta del eje Y
ylabel('North [Km]')
Activar cuadrícula
grid(ax,'on');
Activar cuadrícula de menor tamaño
ax.XMinorGrid='on' en el eje X
Activar cuadrícula de menor tamaño
ax.YMinorGrid='on' en el eje Y

La relación de espacio por pixel se puede determinar de acuerdo a la ecuación 1 y


ecuación 2.
𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑖𝑎 𝑒𝑗𝑒 𝑋
𝑖𝑚𝑆𝑐𝑎𝑙𝑒 = (1)
𝑁𝑢𝑚. 𝑃𝑖𝑥𝑒𝑙𝑒𝑠 𝐸𝑗𝑒 𝑋

𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑖𝑎 𝑒𝑗𝑒 𝑌
𝑖𝑚𝑆𝑐𝑎𝑙𝑒 = ( 2)
𝑁𝑢𝑚. 𝑃𝑖𝑥𝑒𝑙𝑒𝑠 𝐸𝑗𝑒 𝑌

Donde,

Distancia eje X es igual a 1.7 Km,


Numero de Pixeles eje X es igual a 492 pixeles,
Distancia eje Y es igual a 1.5 Km,
Numero de Pixeles eje X es igual a 399 pixeles.

El ajuste del mapa de acuerdo con la escala se puede evidenciar en la figura 20.
Ajuste de la escala del mapa

Figura 20 Ajuste de la escala del mapa.

Fuente: Propia, extraída directamente de Matlab.


Este ajuste de escala se debe realizar igualmente en las funciones que permiten
graficar los wayPoints y NoFlyPoints, y así mismo la gráfica de la trayectoria que
realizará la plataforma robótica móvil aérea. Este ajuste debe realizarse en la
función plotWayPoints.p (cabe resaltar que las funciones de Matlab son archivos
con extensión .m, en este caso es una función con extensión. p donde indica que la
función está protegida.

6.5.1 Explicación del diagrama de Simulink. El código principal asbTrajectoryTool,


permite obtener una interfaz gráfica de usuario, en la cual es posible generar
diferentes trayectorias para ser ejecutadas por una plataforma robótica móvil aéreo
de tipo cuadricóptero. Las trayectorias generadas, son simuladas a través de una
representación tridimensional (3D, Figura 21 Simulación del movimiento de la
plataforma robótica móvil aéreo mediante representación tridimensional) donde se
puede integrar el comportamiento dinámico de la plataforma, con la trayectoria
generada y las condiciones ambientales que se puedan presentar. Esta integración
se puede visualizar mediante un diagrama de bloques, que posee la herramienta de
computo Matlab.

Figura 21 Simulación del movimiento de la plataforma robótica móvil aéreo mediante


representación tridimensional

Fuente: Propia, extraída directamente de Matlab.


El diagrama de bloques diseñado para verificar el comportamiento de la plataforma
en un ambiente, se puede observar en la Figura 22. Diagrama de bloques

Figura 22. Diagrama de bloques.

Fuente: Propia, extraída directamente de Matlab.

De acuerdo al diagrama de bloques, cada uno de estos cumple con una función
específica que permite determinar la dinámica del cuadricóptero y su
comportamiento en el ambiente. Este diagrama está compuesto por:

1. Bloque 1 - Sensores: Dinámica y adquisición de datos.


2. Bloque 2 - Constantes del entorno.
3. Bloque 3 - Constructor de señales.
4. Bloque 4 - Sistema de control.
5. Bloque 5 - Dinámica no lineal de la plataforma.
6. Bloque 6 - Visualización.

Este diagrama de bloques responde a la distribución de un sistema de control en


lazo cerrado, como se muestra en la Figura 23 Sistema de control en lazo cerrado
Figura 23 Sistema de control en lazo cerrado.

Bloque 2

Bloque 5
Bloque 6
Bloque 3

Bloque 4

Bloque 1

Fuente: Propia

6.5.1.1 Bloque 1 Sensores. El bloque de sensores está compuesto por dos bloques
(véase Figura 24 Bloque 1 Sensores) internos que cumplen con la función de extraer
la información de la orientación, inclinación, posición y velocidad de la plataforma
de acuerdo con las condiciones del entorno y las variables deseadas (teniendo en
cuenta la trayectoria deseada propuesta por el usuario por medio de la interfaz
gráfica).

Figura 24. Bloque 1 Sensores

Fuente: Propia, extraída directamente de Matlab.


El primer bloque extrae información a través de un instrumento de medición óptico,
es decir, información obtenida a través de una cámara que está incluida en el chasis
de la plataforma robótica (hay que tener en cuenta que para este tipo de
visualización se está usando una plataforma de tipo Parrot).

6.5.1.2 Bloque 2 Unidad de regulación. El segundo bloque corresponde a una


unidad de medición de inercia (IMU) y presión. Este bloque, visualizado en la Figura
25 Bloque 2 Constantes del entorno, permite determinar la velocidad angular
promedio (w en rad/s) y la aceleración angular promedio (a en rad/s2). Estas
variables se obtienen de acuerdo a las aceleraciones, velocidades, tendencias,
centros de masa y gravedad que tiene la plataforma robótica móvil aérea en
cualquier punto de la trayectoria.

Figura 25 Bloque 2 Constantes del entorno

Fuente: Propia, extraída directamente de Matlab.

En la Figura 26 Bloque 2 Variables ambientales, se incluyen todas las variables


ambientales que puede afectar el comportamiento de la plataforma robótica móvil
durante la ejecución de la trayectoria. Entre las variables se encuentran temperatura
del aire, velocidad del sonido, presión del aire, densidad del aire (las anteriores son
variables atmosféricas), gravedad (afectando el eje Z), campo magnético.
Figura 26 Bloque 2 Variables ambientales

Fuente: Propia, extraída directamente de Matlab.

6.5.1.3 Bloque 3 Constructor de señales. Este bloque permite generar las diferentes
señales que son usadas para controlar las diferentes trayectorias de la plataforma
robótica móvil aéreo. Para esta aplicación, las trayectorias pueden ser generadas a
través de una interfaz de control de comportamiento de la plataforma, radiocontrol
(Joystick), conjunto de datos proveniente de un archivo. mat, y un conjunto de datos
proveniente de un archivo de Excel. La composición de este bloque se encuentra
en Figura 27 Bloque 3 Constructor de señales.

Figura 27 Bloque 3 Constructor de señales.

Fuente: Propia, extraída directamente de Matlab.


6.5.1.3.1 Generador de señales: En esta aplicación está activa la función de control
de comportamiento a través de una interfaz, donde se pude manipular las diferentes
variables involucradas en la plataforma robótica móvil aéreo (tales como la posición
en X, Y, Z y las orientaciones Pitch, Roll y Yaw), este generador se encuentra en la
Figura 28 Signal Builder

Figura 28 Signal Builder

Fuente: Propia, extraída directamente de Matlab.

Este generador de señales de comportamiento (Figura 29. Generador de señales)


para cada una de las variables, se compara y son afectadas de acuerdo a las
condiciones iniciales, tiempo de duración del despegue, la orientación inicial, entre
otros valores.
Figura 29 Generador de señales

Fuente: Propia, extraída directamente de Matlab.

6.5.1.4 Bloque 4 Sistema de control. El sistema de control implementado en la


simulación tridimensional de ejecución de trayectorias para un robot móvil aéreo de
tipo cuadricóptero, es una estrategia de control PID, véase la Figura 30 Bloque 4
Sistema de control Esta estrategia se diseña de acuerdo a:

Comportamiento de la plataforma en la ejecución de la trayectoria: toma la


referencia de cada uno de los puntos de la trayectoria deseada y esta se compara
con la posición actual de la plataforma determinando el error actual, de acuerdo a
las variables pitch y roll (para velocidad) y p, q (posiciones).

Figura 30 Bloque 4 Sistema de control.

Fuente: Propia, extraída directamente de Matlab.


Acción de control (véase Figura 31 Acción de control) de acuerdo a la acción de la
gravedad y equilibrio en el empuje: este lazo de control es usado al momento de
realizar el despegue de la plataforma, la cual debe conseguir el empuje necesario
para vencer la fuerza de la acción de la gravedad. Este lazo de control usa una
estrategia de tipo PD.

Figura 31 Acción de control

Fuente: Propia, extraída directamente de Matlab.

Estrategia de control para orientación: En este tipo de control se implementa una


estrategia de tipo PD, la cual permite a la plataforma lograr la orientación deseada
de acuerdo a la trayectoria planteada por el usuario. Este tipo de control, visualizado
en la Figura 32 Control para orientación, involucra la matriz de rotación de acuerdo
al Yaw.

Figura 32 Control para orientación.

Fuente: Propia, extraída directamente de Matlab.


Estrategia de control para los cambios de giro con respecto al eje Z.: en síntesis, es
la estrategia de control implementada para la generación de los giros necesarios
para alcanzar los puntos deseados de la trayectoria. Se implementa una estrategia
de control PID, véase la Figura 33 Control para los cambios de giro con respecto al
eje Z

Figura 33 Control para los cambios de giro con respecto al eje Z

Fuente: Propia, extraída directamente de Matlab.

6.5.1.5 Bloque 5 Dinámica no lineal de la plataforma. Este bloque permite generar


la cinemática de la plataforma robótica móvil aéreo teniendo en cuenta la fuerza de
gravedad, el factor de arrastre que pueden generar las hélices de acuerdo a forma
de construcción, y fuerzas y torques que generan los motores para la sustentación
y elevación de la plataforma. Este bloque se puede visualizar en la Figura 34 Bloque
5 Dinámica no lineal de la plataforma y se compone de:

Fuerza de gravedad: fuerza que se genera sobre la plataforma debido a la acción


de la gravedad.

Factor de arrastre: acción generada por las hélices teniendo en cuenta la presión
del aire dada la velocidad y densidad del aire, y la forma geométrica de las hélices.

Fuerzas y torques de los motores: involucra la dinámica de cada motor de la


plataforma.
Figura 34 Bloque 5 Dinámica no lineal de la plataforma.

Fuente: Propia, extraída directamente de Matlab.

Estas tres variables se usan para determinar el modelo cinemático de un


cuadricóptero (modelo no lineal), en donde relaciona los seis grados de libertad que
posee una plataforma robótica de tipo cuadricóptero. Estos seis grados de libertad
corresponden a posiciones en los ejes X, Y y Z, y velocidades en X, Y y Z (Pitch,
Roll y Yaw). Los grados de libertad corresponden a los estados del sistema
dinámico, representado la Figura 35 Variables
Figura 35 Variables.

Fuente: Propia, extraída directamente de Matlab.

6.1.5.6 Bloque 6 Visualización. Es la visualización de cada una de las variables que


afecta y genera la plataforma robótica móvil aérea, a través de instrumentos
visualizados en la Figura 36 Bloque Visualización. Adicionalmente, permite
visualizar el valor de la acción de control generada que se envían a los actuadores
(motores), y la visualización e integración con el modelo tridimensional.
Figura 36 Bloque 6 Visualización.

Fuente: Propia, extraída directamente de Matlab.


7. IMPACTO Y AHORRO INSTITUCIONAL Commented [CAGR9]: Realizar de acuerdo a los resultados

El mayor impacto de relevancia que se espera con presente proyecto es la mejora


a la seguridad de la unidad permitiendo tener un mayor rango de cobertura en la
vigilancia de la zona perimetral la cual es la barrera que se tiene como medio de
protección para el ingreso de personal externo a la unidad, con este añadido de
seguridad el cual permitirá al personal de seguridad y defensa de bases tener un
mayor control de la vigilancia de la unidad.

La Escuela Militar de Aviación Marco Fidel Suárez tendría un gran impacto con este
añadido de seguridad el cual tendría mejoras innovadoras a la altura de grandes
empresas las cuales tienen drones como medio de vigilancia para sus instalaciones,
la tecnología está avanzando a pasos agigantados y la institución no se puede
quedar atrás con estos avances tecnológicos

Con respecto al ahorro institucional, se podrían reducir el número de revistas


perimetrales internas de la unidad lo que generaría una disminución en el desgaste
de los automotores y gasolina, y con respecto al personal encargado de la vigilancia
perimetral se podría reducir la cantidad de centinelas o puestos de vigilancia debido
a que los drones generarían un mayor rango de cobertura, permitiendo emplear este
personal en otras actividades requeridas por el GRUSE 10.
8. CONCLUSIONES

Por medio de la segunda etapa metodológica , elección del miniordenador, se logró


concluir que la utilización de la minicomputadora Rasberry Pi, por factores como su
rendimiento general, desglosado en variables como procesador, memoria interna,
RAM, conectividad, sistemas operativos y lenguajes de programación, hacen que
su versión en tercera generación, sea la más adecuada tanto para ejecutar el
algoritmo de control sobre un dron cuatrimotor como para su emparejamiento con
el hardware receptor de señales GPS.

Gracias a la tercera etapa metodológica, elección del lenguaje de programación.,


se logra concluir que al analizar los diferentes lenguajes de programación y
características esenciales como el tiempo de carga (ejecución), sintaxis, y
extensión, se determina que Python, es el más adecuado, pues es catalogado como
“el lenguaje de programación científico” que contiene enormes cantidades de
librerías, su escalabilidad y fácil manejo, permite un rápido aprendizaje, es
multiparadigma y puede “citar” otros lenguajes de programación como C y C++.

A través de la cuarta etapa metodológica, ejecución del algoritmo, se logró concluir


que el software Matlab en conjunto con el Simulink 3D logran un adecuado enlace
tanto para corregir el algoritmo como para simularlo, logrando una adecuación tal,
que permite incluso tomar loa tiempos reales que invierte el dron haciendo una
trayectoria y/o ruta, que, a su vez, permite colisiones con las edificaciones, análisis
de movimiento, reconocimiento de objetos y vigilancia.
9. RECOMENDACIONES Commented [CAGR10]: Realizar de acuerdo a los
resultados
BIBLIOGRAFÍA

Abreu, J. (2014). El Método de la Investigación. Daena: International Journal of


Good Conscience, 10.

Aeronáutica Civil. (2015). Circular reglamentaria No. 002. Obtenido de Requisitos


generales de aeronavegabilidad y operaciones para RPAS:
http://www.aerocivil.gov.co/autoridad-de-la-aviacion-civil/certificacion-y-
licenciamiento/Documents/PROYECTO%20BORRADOR%20CIRCULAR%
20RPAS.pdf

ÅSTRÖM, K., & HÄGGLUND, T. (2009). Control PID avanzado. Madrid, España:
Pearson Educación S.A.

Burnett, G., & Porter, J. (2002). An empirical comparison of the use of distance
versus landmark information within the human-machine interface for vehicle
navigation systems. Shaker Publishing.

Campo, J., Cebrián, M., & de la Iglesia, F. (2012). Modelado y control inteligente del
cuatrirotor Quanser Qball-x4. Universidad Complutense de Madrid, Madrid,
España.

CaracolRadio. (21 de Septiembre de 2018). Ataques de las disidencias de las FARC


en Antioquia. Recuperado el 30 de Noviembre de 2018, de Caracol Radio:
http://caracol.com.co/radio/2018/09/21/media/1537550528_873313.html

Cazau, P. (2006). Introducción a la investigación en ciencias sociales. Buenos Aires:


El sicoasesor. Obtenido de
http://alcazaba.unex.es/asg/400758/MATERIALES/INTRODUCCI%C3%93
N%20A%20LA%20INVESTIGACI%C3%93N%20EN%20CC.SS..pdf

Chero, J. (2018). Sistema de información para monitoreo y control de paradas de


buses en la ciudad de Babahoyo (tesis de pregrado). Universidad Técnica de
Babahoyo, Babahoyo, Ecuador.

Codazzi, I. G. (2007). Mejora de los sistemas de cartografía del territorio


colombiano. Bogotá D.C, Cundinamarca, Colombia: Departamento Nacional
de Planeación DNP.

Congreso de Colombia. (23 de 01 de 2009). Ley 1286. Fortalecimiento del Sistema


Nacional de Ciencia, Tecnologóa e Innovación en Colombia. Colombia.

Congreso de Colombia. (2009). Ley 246 . Obtenido de Sistema de Seguridad y


Defensa Nacional:
http://www.imprenta.gov.co/gacetap/gaceta.mostrar_documento?p_tipo=05
&p_numero=246&p_consec=21887

Congreso de la República de Colombia. (08 de 02 de 1994). Ley 115 . Ley general


de educación. Colombia.

Contreras, L. (2018). Raspberry Pi. Recuperado el 02 de Mayo de 2018, de


https://histinf.blogs.upv.es/2013/12/18/raspberry-pi/

Cortés, V. (12 de Octubre de 2018). ¿Qué tan fácil es volar drones legalmente en el
país? Recuperado el 21 de Junio de 2019, de El Espectador:
https://www.elespectador.com/economia/que-tan-facil-es-volar-drones-
legalmente-en-el-pais-articulo-817686

De la Cruz, F., & Camacho, O. (2015). Controlador de Modos Deslizantes basado


en Predictor de Smith y Modelo de Segundo Orden para Procesos con
Elevado Retardo. Revista Politécnica.

El Sistema de Posicionamiento Global. (2016). Recuperado el 01 de Mayo de 2018,


de gps.gov: www.gps.gov/systems/gps/spanish.php

FAC. (2016). CUERPOS DE SEGURIDAD Y DEFENSA DE BASES AÉREAS.


Recuperado el 04 de Julio de 2018, de incorporacion.mil.co.

Fanjul, S. (2018). En realidad, ¿qué es exactamente un algoritmo? Recuperado el


13 de Noviembre de 2018, de Ediciones El País.

Franco, J. (2015). Escuela Militar de Aviación, salvaguarda de historia aeronáutica.


Recuperado el 01 de Mayo de 2018, de Aviacol:
https://www.aviacol.net/historia-aviacion/escuela-militar-de-aviacion-
salvaguarda-de-historia-aeronautica.html

Gaitán, C. (2017). Diseño de un sistema robótico móvil aéreo no tripulado equipado


con sensores de percepción remota para estimar descriptores de un cultivo
de caña de azúcar en el Valle del Cauca. Universidad Autónoma de
Occidente, Santiago de Cali, Colombia.

González, L. (2017). Javascript, Python, C++ and Java. Recuperado el 2018 de Julio
de 10, de Quora: https://www.quora.com/What-is-the-best-JavaScript-
Python-C++-or-Java

González, S. (2017). Diseño y construcción de un Vehículo Aéreo no Tripulado


(UAV), del tipo drone cuadricóptero de carreras (tesis de pregrado).
Institución Universitaria Politécnico Grancolombiano, Bogotá, Colombia.
Gutiérrez, N. (2008). Escuela Militar de Aviación “Marco Fidel Suarez” 75 años
formando líderes. Cali, Valle, Colombia: Escuela Militar de Aviación.

Haluani, M. (2014). La tecnología aviónica militar en los conflictos asimétricos:


Historia, tipos y funciones de los drones letales. Universidad Simón Bolívar,
2.

Hernández, E. B., & Salas , S. L. (2018). ANÁLISIS DE RENDIMIENTO DE LA PC


ODROID C2 PARA SU USO EN ESQUEMAS DE CIUDADES
INTELIGENTES. Pistas Educativas, 38(128).

HyperPhysics. ((s.f).). GPS. Recuperado el 11 de Julio de 2018, de


http://hyperphysics.phy-astr.gsu.edu/hbase/gpsrec.html

Jaguarboard. (2015). Jaguarboard. Recuperado el 2019, de Jaguarboard:


http://www.jaguarboard.org/index.php/com_virtuemart_menu_configuration/
products/buy/jaguarboard/207/jaguarboard-detail.html#introduction

Krajník, T., Vonasek, V., Fiser, D., & J, F. (2011). AR-Drone as a Platform for Robotic
Research and Education. Faculty of electrical engineering: Czech Technical
University in Prague.

Lattepanda. (2019). Lattepanda. Recuperado el 2019, de Lattepanda:


https://www.lattepanda.com/products/1.html

Ley actual drones en Colombia. (2017). Recuperado el 14 de Noviembre de 2018,


de Dron Mavic Pro: https://www.dronmavicpro.com/ley-actual-drones-
colombia/

Michelone, M. L. (02 de 08 de 2012). UNOCERO. Recuperado el 2019, de


UNOCERO: https://www.unocero.com/noticias/raspbian-sistema-operativo-
gratuito-para-la-raspberry-pi/

Ochoa, C. (2012). Control clásico y control inteligente. Obtenido de MDE:


http://www.mde.iteso.mx/titulacion/estudio%20de%20caso/ejemplos/marco

Odenador Jaguar One. (2018). Recuperado el 2018 de Julio de 05, de Redeszone:


https://www.redeszone.net/app/uploads/2017/01/Jaguar-One.jpg

PINE64. (2019). PINE64. Obtenido de https://www.pine64.org/devices/single-board-


computers/pine-a64/

Qué es y para qué sirve Python. (2017). Recuperado el 2018 de Mayo de 01, de
Noticiasuniversia: http://noticias.universia.es/ciencia-
tecnologia/noticia/2017/07/19/1154393/sirve-phyton.html
RaspberryPi. (2018). Raspberry Pi. Obtenido de
https://www.raspberrypi.org/app/uploads/2018/11/Raspberry_Pi_3A_product
_brief.pdf

República, S. d. (2009). Proyecto de ley 246 de 2009. Recuperado el 01 de Mayo


de 2018, de Imprenta.gov:
http://www.imprenta.gov.co/gacetap/gaceta.mostrar_documento?p_tipo=05
&p_numero=246&p_consec=21887

Roger, S. (2005). Ingeniería de software. Recuperado el 01 de Mayo de 2018, de


Ecured: https://www.ecured.cu/Ingenier%C3%ADa_de_software

Stallman, R. (2009). Free Software, Free Society. GNU Press.

Stallman, R. (2015). Free Hardware and Free Hardware Designs. Recuperado el 19


de Junio de 2019, de GNU: https://www.gnu.org/philosophy/free-hardware-
designs.html

Vallespín, L. (2016). C, C++ y C. Recuperado el 2018 de Julio de 13, de Quora:


https://es.quora.com/Cu%C3%A1l-es-la-diferencia-entre-C-C++-y-C

Williams, L. (2002). Pair Programming Illuminated.

Williams, L. (2002). Pair Programming Illuminated.


ANEXOS

Anexo 1. Instrucciones de USO en Matlab

La herramienta de trayectorias sin rutas cargadas se evidencia en Figura 37


Herramienta de trayectorias sin rutas cargadas

Figura 37. Herramienta de trayectorias sin rutas cargadas

Fuente: Los autores.


El modo de introducir un waypoint, se registra en la Figura 38 Introduciendo
waypoints en la aplicación

Figura 38. Introduciendo waypoints en la aplicación

Fuente: Los autores.


El modo de marcar una zona de no vuelo o no flight zone, se visualiza en Figura 39
Introduciendo una zona de no vuelo en la

Figura 39. Introduciendo una zona de no vuelo en la aplicación

Fuente: Los autores.


El modo de guardar rutas y zonas de no vuelo, se visualiza en Figura 40 Guardar
rutas y zonas de no vuelo previamente en el panel de waypoints

Figura 40. Guardar rutas y zonas de no vuelo en el panel de waypoints

Fuente: Los autores.

Para borrar los datos registrados y poder generar nuevas rutas vea la Figura 41
Borrar datos.

Figura 41. Borrar datos

Fuente: Los autores.


El modo de cargar rutas ya establecidas previamente en el panel de waypoints y
zonas de no vuelo, se establece en la Figura 42 Cargar rutas ya establecidas
previamente en el panel de waypoints y zonas de no vuelo

Figura 42. Cargar rutas ya establecidas previamente en el panel de waypoints y


zonas de no vuelo

Fuente: Los autores.


Para generar nuevas trayectorias visuales en el mapa, véase la Figura.43
Generando trayectorias visuales en el mapa

Figura 43. Generando trayectorias visuales en el mapa

Fuente: Los autores.


Para añadir una nueva zona de no vuelo, véase la Figura 44 Añadiendo nueva zona
de no vuelo

Figura 44. Añadiendo nueva zona de no vuelo

Fuente: Los autores.


Para generar una zona de no vuelo, véase la Figura 45. Generando una zona de no
vuelo en el mapa

Figura 45. Generando una zona de no vuelo en el mapa

Fuente: Los autores.


Para editar waypoints o una zona de no vuelo, véase la Figura. 46 Editar waypoints
o una zona de no vuelo

Figura 46. Editar waypoints o una zona de no vuelo

Fuente: Los autores.


Si desea borrar un waypoint o una zona de no vuelo, vea la Figura. 47 Borrar un
waypoints o una zona de no vuelo

Figura 47. Borrar un waypoints o una zona de no vuelo

Fuente: Los autores.

Potrebbero piacerti anche