IMPLEMENTACIÓN DE UN SISTEMA PARA LA TRANSMISIÓN DE VÍDEO EN TIEMPO REAL Y CAPTURA DE IMÁGENES DESDE UNA CÁMARA
UBICADA EN UN VEHÍCULO AÉREO NO TRIPULADO
IMPLEMENTATION OF A SYSTEM FOR REAL-TIME VIDEO TRANSMISSION AND IMAGE CAPTURE FROM A CAMERA LOCATED
IN AN UN-CREWED AIR VEHICLE
David Alberto Cruz Camelo*Fredy Alfonso Lancheros S** Dora Lilia Castañeda 1***
Resumen: En el presente documento se describe el desarrollo de un sistema el cual
permite la transmisión de vídeo en tiempo real y capturar imágenes por medio de una
cámara que se encuentra ubicada en un vehículo aéreo no tripulado. Para ello se utiliza
una tarjeta Raspberry Pi 3 como servidor web para la trasmisión del vídeo, captura de
imágenes, control de motores y control de la alarma de velocidad excesiva; a su vez,
como complemento, se utiliza una tarjeta Arduino la cual se encarga de tomar los datos
que se obtienen del sensor de inclinación. Como resultado se obtuvo un dispositivo
capaz de adquirir vídeo desde una cámara que por petición del usuario puede girar 120
grados en un movimiento semiesférico y a su vez capturar una imagen de las copas de
los árboles en estudio. La transmisión de la información se hace vía wifi en una interfaz
de usuario que facilita la toma de datos y permite hacer la posterior descarga de los
mismos.
* Estudiante Tecnología en Electrónica (Ciclos Propedéuticos). Universidad Distrital Francisco José de Caldas – Facultad Tecnológica. Email: [email protected] ** Estudiante Tecnología en Electrónica (Ciclos Propedéuticos). Universidad Distrital Francisco José de Caldas – Facultad Tecnológica. Email: [email protected] *** Ingeniera Electrónica, Especialista en Telecomunicaciones Móviles, Magister en Docencia, directora semillero de investigación SITA. Universidad Distrital Francisco José de Caldas – Facultad Tecnológica. E-mail: [email protected]
Palabras clave: Video, Transmisión, Interfaz, imagen, aeronave, cultivos
Abstract: The present document describes the development of a system which allows
the transmission of real-time video and capture images by means of a camera that is
located in an unmanned aerial vehicle. . For that, a Raspberry Pi 3 card is used as a web
server for video transmission, image capture, motor control and excessive speed alarm
control; in turn, as an add-on, an Arduino card is used which is in charge to take the data
that is obtained from the tilt sensor. As a result, a device capable of transmitting video
from a camera that at the request of the user can rotate 120 degrees in a semi-spherical
motion and in turn capture an image of the glasses of the trees under study. The
transmission of the information is done through Wi-Fi in a user interface that facilitates
the taking of data and allows to make the subsequent download of the same ones.
Key Words: Video, Transmission, Interface, Image, Airship, Crops.
1. INTRODUCCIÓN
Muchas son las áreas que para nosotros como humanos nos es difícil acceder visualmente,
una de estas áreas es la de cultivos arbóreos, en la que es una necesidad inspeccionarlo, ya
sea por motivos de seguridad o por revisar el estado en que se encuentra. En los cultivos
arbóreos muchas veces se encuentra el inconveniente de que es difícil inspeccionar las partes
altas de las plantas, no se pueden ver las copas o frutos desde el suelo, ya que la mayoría de
las veces estos superan la altura promedio de una persona, permitiendo así la permanencia
de plagas u otros factores que pueden afectar el bienestar del cultivo.
Con este enfoque se decide implementar un sistema en un vehículo aéreo no tripulado el cual
por medio de una cámara permita realizar la inspección adecuada de cultivos arbóreos sin
tener la necesidad de realizar labores dispendiosas por parte de los trabajadores.
El sistema implementado en el vehículo aéreo no tripulado tiene la posibilidad de permitirle al
usuario tener el control del giro de la cámara en un ángulo de 120 grados tanto en sentido
vertical como horizontal, además el usuario tiene la posibilidad de ver la transmisión de video
en tiempo real, en un computador, de los cultivos o la parte a la cual se le esté realizando
inspección, para nuestro caso cultivos arbóreos, si se requiere se podrá capturar una imagen
y ser guardada para luego realizar el respectivo estudio de la misma.
2. Estado del Arte
Hoy en día se han automatizado muchos sectores de la producción, así como la tecnología
nos acompaña en nuestro diario vivir, uno de los pilares que han surgido en los últimos tiempos
es aquél que involucra el uso de los vehículos de vuelo no tripulados (VANT), conocidos como
drones.
El uso de estos vehículos no tripulados ha facilitado las operaciones, aparte de lo relacionado
a la guerra, en sistemas de inspección de gran cantidad de escenarios y eventos, así como
también se ha desarrollado la parte de la sensórica que nos brinda datos de los diferentes
espacios.
En la parte de la agricultura se tiene un avance importante, ya que antiguamente se utilizaban
fotografías del satélite [1], las cuales no cuentan con buena resolución y dependían mucho del
estado del clima, se han incorporado cuadricópteros no tripulados que se encargan de esta
labor con mayor eficiencia y gastando menor tiempo. Una tendencia importante es la seguida
por Aero Filming[2], empresa que ofrece sistemas de monitoreo de casi cualquier escenario,
con su sistema de posicionamiento GPS y una ruta prefijada puede grabar y fotografiar aquél
punto que fue seleccionado con anterioridad; en la figura 1 se aprecia un dron de Aero Filming
con su operario.
Figura 1. Dron de Aerofilming[2]
En el área de cultivos también se encuentra la empresa Aeroterra[3] que incluye la tecnología
GPS y realiza la posterior grabación dependiendo lo solicitado por el cliente, este sistema tiene
una capacidad de mapeo de 50000 hectáreas cuando está a unos 500 m de altura , su tiempo
de vuelo está alrededor de los 30 minutos y se planea mejorar esta condición.
Camilo Cáceres et al. [4] expone el proyecto realizado para llevar el control de los daños
causados por plagas en el cultivo de Begonias por medio de una cámara en un dron encargada
de tomar las imágenes, las cuales posteriormente se tratan con procesamiento digital de
imágenes con el propósito de encontrar agujeros en los pétalos de las flores, una muestra de
lo realizado se puede observar en la figura 2.
Figura 2. Dron e imagen tomada por el mismo[4]
Otra tecnología desarrollada es aquella por Pritt y sus colegas de Lockheed Martin[5]
mejorando el sistema y optimizando el tiempo, capturan imágenes, por ejemplo en un cultivo
de maíz, en el cual se toman dos fotos por planta, siempre con un punto de referencia que
aparece en ambas fotografías, así se construye posteriormente un mapa en 3D de la zona
inspeccionada.
Otra de las aplicaciones que se le ha dado a los drones es en el área forense, debido a que en
algunos lugares es riesgoso y de difícil acceso, las autoridades se encargan de monitorear el
lugar debido por medio de estos vehículos[6]. Así como Francisco Escalada[7], en su artículo
expone el uso de los drones en el campo de las emergencias médicas, dejando a estos
vehículos como los ojos con los cuales se puede acceder a lugares difíciles y así poder ayudar
a un herido.
En el trabajo de Andrea S. et al. [8] se muestra el estudio realizado para la captura de
imágenes por medio de un avión no tripulado, el cual fue teledirigido y comparados sus
resultados respecto a lo indicado por un satélite; el dispositivo además cuenta con un piloto
automático y con la posibilidad de operarlo manualmente; de dicho estudio se tiene que el
posicionamiento por piloto automático no es preciso y no es posible hacer la toma de las
imágenes en comparación a lo arrojado por el satélite, en cuanto a la operación manual resulta
difícil su estabilización y la calidad de la imagen va muy ligado a la cámara, que siendo digital
y teniendo en cuenta la velocidad del avión, no resulta óptima; aunque el dispositivo es
asequible para personas que busquen economía; el modelo utilizado se muestra en la figura
3.
Figura 3.Modelo avión no tripulado utilizado[8]
Michael McCall[9], en su artículo comenta cómo los drones han ayudado a la hora del
monitoreo forestal, ya que ahorran gran cantidad de trabajo pesado y su rapidez nos permite
estar en lugares de catástrofe y generar fotografías de la zona, por ejemplo en un incendio;
como lo indica McCall la hora de usarlos es ahora, puesto que son bastante útiles pero la
legislación está cambiando al punto de que en un futuro no muy lejano sean incluso prohibidos.
3. MARCO TEORICO
3.1 PROTOCOLO IP
IP (Internet Protocol), es un protocolo de comunicación sin conexión, que proporciona un
servicio de datagramas. [10]
3.2 SERVIDOR STREAMING
El streaming es una tecnología (también conocida como media-flujo) que permite la distribución
de archivos multimedia (principalmente audio y video) a través de la red de computadores en
tiempo real. Estos son cargados en un buffer de datos donde se puedan reproducir al mismo
tiempo que se descargan y luego se descartan, sin quedar almacenados en el disco duro del
cliente[11]. La figura 4 nos muestra un poco acerca de que es la tecnología streaming. [11]
Figura 4. Estructura de la tecnología streaming[11].
3.3 ROUTER
El router es un dispositivo de hardware o software para interconexión de redes de
computadoras, puede interconectar segmentos de redes o redes enteras. El router realiza la
transmisión por paquetes de datos y toma con base la información de la capa de red, este toma
decisiones lógicas para escoger la mejor ruta de envió de datos a través de una red
interconectada[12].
El router de alta potencia que apoya el presente proyecto es el observado en la figura 5.
Figura 5. Router 3bumen[13].
3.4 TECNOLOGIA WIFI
Una red wifi es una red de comunicaciones de datos que permite conectar servidores,
impresoras sin necesidad de utilizar cableado físico.
Las características generales de funcionamiento de una red wifi son las mismas que las de
una red con cableado. La particularidad es que el wifi utiliza el aire como medio de transmisión
[14].
Los elementos básicos de una red wifi son los que se observan en la figura 6.
Figura 6. Componentes básicos de una red wifi [14].
3.5 PROTOCOLO SSH
SSH o (Secure Shell) es un protocolo que facilita las comunicaciones seguras entre dos
sistemas usando una arquitectura cliente/servidor y que permite a los usuarios conectarse a
un host remotamente. A diferencia de otros protocolos de comunicación remota tales como
FTP o Telnet, SSH encripta la sesión de conexión, haciendo imposible que alguien pueda
obtener contraseñas no encriptadas [15].
3.6 PROTOCOLO CGI
El protocolo CGI (Common Gateway Interface) fue creado para establecer un protocolo
standard de comunicación entre el servidor web y cualquier lenguaje de programación de forma
tal que desde el lenguaje “x” puedan recibirse datos que el usuario envía usando el método
“POST” o “GET” y además el resultado de la aplicación sea derivado por el servidor web al
navegador. Típicamente para recibir datos se usa alguna biblioteca o módulo del lenguaje
elegido que implementa el protocolo CGI y para enviar datos simplemente se envían a la salida
estándar desde el lenguaje elegido y el servidor web se encarga de redireccionar esto al
navegador [16].
3.7 SERVIDOR APACHE
Apache es un poderoso servidor web, cuyo nombre proviene de la frase inglesa “a patchy
server” y es completamente libre, ya que es un software Open Source y con licencia GPL. Una
de las ventajas más grandes de Apache, es que es un servidor web multiplataforma, es decir,
puede trabajar con diferentes sistemas operativos y mantener su excelente rendimiento [17].
3.8 LENGUAJE PHP
PHP es un lenguaje de código abierto muy popular, adecuado para desarrollo web y que puede
ser incrustado en HTML. Es popular porque un gran número de páginas y portales web están
creadas con PHP. Este lenguaje es de código abierto lo que significa que es de uso libre y
gratuito para todos los programadores que quieran usarlo. Incrustado en HTML significa que
en un mismo archivo vamos a poder combinar código PHP con código HTML, siguiendo unas
reglas [18].
3.9 LENGUAJE HTML
HTML es un lenguaje de marcado que se utiliza para el desarrollo de páginas de Internet. Se
trata de la sigla que corresponde a (HyperText Markup Language), es decir, Lenguaje de
Marcas de Hipertexto, que podría ser traducido como Lenguaje de Formato de Documentos
para Hipertexto [19].
3.10 LENGUAJE PYTHON
Python es un lenguaje de scripting independiente de plataforma y orientado a objetos,
preparado para realizar cualquier tipo de programa, desde aplicaciones Windows a servidores
de red o incluso, páginas web. Es un lenguaje interpretado, lo que significa que no se necesita
compilar el código fuente para poder ejecutarlo, lo que ofrece ventajas como la rapidez de
desarrollo e inconvenientes como una menor velocidad [20].
4. DESARROLLO DEL PROYECTO
Para el desarrollo del proyecto la propuesta realizada fue la siguiente
Figura 7. Diagrama de bloques. Autoría propia.
4.1 BLOQUE DE ADQUISICIÒN DE MANDO
Es el encargado de recibir las órdenes de giro de la cámara por medio de un sensor de
inclinación; así como el usuario gire el sensor, estas órdenes son enviadas al sistema de
control de la cámara para que ésta haga lo mismo.
Este bloque es representado en la figura 8.
Figura 8. Diagrama bloque adquisición de mando. Autoría propia
Para que se lleve a cabo la operación se debe ejecutar un programa en el Arduino, el cual se
esquematiza en la figura 9.
Figura 9. Diagrama de flujo obtención de datos del control. Autoría propia
La parte ejecutada por el laptop será descrita en el bloque de transmisión, visualización, control
y captura de imagen.
En este bloque se implementaron los siguientes componentes para el funcionamiento del
mismo:
4.1.1 MPU 6050
Es una IMU 6DOF; quiere decir que se compone de un acelerómetro y un giroscopio con
función en los tres ejes, el sensor es el que aparece en la figura 10.
Figura 10. MPU 6050 [21]
En el proyecto este dispositivo se utiliza como un control para la cámara que se encuentra
ubicada en el vehículo aéreo no tripulado, el MPU 6050 envía datos de posición angular
generados por este mismo al ser inclinado en el eje x o y, estos datos son enviados a una
tarjeta arduino nano la cual se encarga de enviarlos al PC por medio del puerto serial, a su vez
el PC toma estos datos y por medio del protocolo CGI (Common Gateway Interface) los publica
en una página web de red local.
4.1.2 MICROCONTROLADOR ARDUINO NANO
El microcontrolador Arduino nano es una plataforma física computacional open- source basada
en una sencilla placa con entradas y salidas (E/S), analógicas y digitales, y en un entorno de
desarrollo que implementa el lenguaje Processing/Wiring [22]. La placa arduino nano puede
apreciarse en la figura 11.
Figura 11. Placa Arduino nano [22].
4.2 BLOQUE DE ADQUISIÓN DE VIDEO
Este bloque es el encargado de receptar el vídeo desde la cámara y transmitirlo en la red de
área local, esto se logra con la instalación y puesta en marcha del servidor UV4L (User-space
Video4Linux), el cual genera un entorno en el cual se pueden hacer distintos procesos con la
cámara, de los cuales escogimos el “stream” que es el encargado de transmitir el vídeo en
tiempo real, una apreciación de éste servidor es la figura 12 y del stream la figura 13.
Figura 12. Servidor UV4L. Autoría propia.
Figura 13. Streaming de vídeo. Autoría
propia.
El diagrama general del bloque se puede ver en la figura 14.
Figura 14. Adquisición de vídeo. Autoría propia.
En este bloque los dispositivos utilizados fueron los siguientes:
4.2.1 RASPBERRY PI 3
Raspberry Pi, es un es un ordenador de tamaño de tarjeta de crédito que se conecta a un
televisor y un teclado. Es una placa que soporta varios componentes necesarios en un
ordenador común. Es un pequeño ordenador, que puede ser utilizado para muchas de las
cosas que un PC de escritorio hace, como hojas de cálculo, procesadores de texto y juegos
[23]. En la figura 15 se observa una Raspberry pi 3.
Figura 15. Raspberry pi 3 [24].
4.2.2 CAMARA PARA RASPBERRY PI
La Cámara para Raspberry Pi es un módulo de alta calidad de 8 megapíxeles con el sensor
de imagen Sony IMX219 diseñado a medida para Raspberry Pi, con una lente de foco fijo. Es
capaz de tomar imágenes estáticas de 3280 x 2464 pixeles, y también es capaz de tomar vídeo
de 1080p30, 720p60, and 640x480p90. En la figura 16 se puede observar una cámara para
para Raspberry pi 3 [24].
Figura 16. Cámara para Raspberry pi [24].
4.3 BLOQUE DE ALARMA DE VELOCIDAD EXCESIVA
En esta parte se implementó un módulo GPS Neo 6m el cual se encarga de emitir una señal
de alarma en el momento en el que el vehículo aéreo no tripulado supere la velocidad límite a
la que la calidad del vídeo sea aceptable, además de que se capturan los datos de posición y
longitud por medio de este módulo como se muestra en la figura 17. El diagrama que
representa este bloque es el que aparece en la figura 18.
Figura 17. Datos modulo GPS. Autoría
propia.
Figura 18. Diagrama funcional del bloque
de alarma. Autoría propia
Los datos capturados del GPS y publicados gracias a la CGI, se realiza con un script de Python
que se aprecia en la figura 19.
Cabe destacar que la alarma se activa después de que el VANT supera los 3 km/h, y una
aplicación adicional es la publicación de la hora y fecha gracias al manejo de cadenas con el
lenguaje Python, puesto que el GPS está sincronizado 5 horas delante de la zona horaria de
Colombia; esto se podrá corroborar en la sección de pruebas y resultados.
Figura 19. Diagrama de flujo script de adquisición de datos GPS. Autoría propia.
4.3.1 MODULO GPS NEO 6M
La serie de los Módulos Neo-6 es una familia de autónomos receptores GPS que ofrecen un
alto rendimiento de U-Blox [25]. En la figura 20 se puede observar un módulo GPS NEO 6M.
Figura 20. Modulo GPS NEO 6M [25].
4.4 BLOQUE DE ALMACENAMIENTO DE IMAGEN
Este es el encargado de almacenar imágenes, esto se logra por medio 3 scripts, el primero es
un bash de Linux que detiene el servidor de vídeo mientras se captura la imagen deseada. El
segundo es un script de Python que captura los datos subidos por la página del GPS y los
guarda en una ráfaga de 3 imágenes, quedando guardada cada imagen con nombre, fecha y
hora, también guarda posición (latitud y longitud), además asigna un numero para cada imagen
es decir si es la imagen número 1, la imagen número 2 y así sucesivamente; el último script
es otro bash de Linux que tiene como función reiniciar el servidor de vídeo y recargar la página
para que esta siga corriendo sin ningún problema después de la captura de la imagen. En este
bloque también se incluye la opción de descargar imágenes, la cual se logra con un bash de
Linux (raspbian para este proyecto) y consiste en pasar la carpeta almacenada en la
Raspberry pi 3 al pc del usuario que transmite los datos del control (ver bloque adquisición de
mando), esta función se hace por medio del comando scp que pertenece al protocolo ssh, hay
que destacar que para lograr esto se tiene que hacer una configuración de claves rsa.
En la figura 21 se aprecia el diagrama de esta sección.
Figura 21. Diagrama funcional del bloque de imágenes. Autoría propia
El programa principal es posible entenderlo de mejor manera en el diagrama mostrado en la
figura 22, que está a continuación.
Figura 22. Diagrama de flujo página de proceso de imágenes. Autoría propia.
Como se puede observar, es necesario profundizar en el programa que toma las fotografías,
éste se representa en el diagrama de la figura 23.
Figura 23. Diagrama de flujo script captura de imágenes. Autoría propia.
4.5 BLOQUE DE CONTROL MECANICO
En este bloque básicamente se realiza el control de 3 servomotores sg 90 que se encuentran
ubicados en un soporte de inclinación y rotación P-T-NY-01 el cual permite el control del giro
de la cámara ubicada en el vehículo aéreo no tripulado. Para lograr esto se toman los datos
de posición angular generados por el sensor de inclinación MPU 6050 del control de mando
como los datos generados por el sensor de inclinación MPU 6050 que se encuentra ubicado
sobre el vehículo aéreo, se comparan los datos de posición angular que arroja cada sensor
de inclinación y se cambia el pwm de los motores respecto a estos datos.
El diagrama respectivo se encuentra en la figura 24
Figura 24. Diagrama funcional del bloque control mecánico. Autoría propia
El programa que realiza esta función es un script de Python que comienza a ejecutarse en
segundo plano desde que se enciende la raspberry, su diagrama de flujo está en la figura 25.
Figura 25. Diagrama de flujo script control de servomotores. Autoría propia.
Para facilitar la comprensión de este bloque se puede ver el movimiento ideal de inclinación
de la cámara respecto a los sensores en las figuras 26 y 27.
Figura 26. Inclinación respecto al control
con sensor a bordo neutral. Autoría propia.
Figura 27. Inclinación con sensor a bordo
inclinado. Autoría propia.
En la figura 26 puede apreciarse cómo la inclinación de la cámara imita a la del control; así
como en la figura 27 se puede observar el mismo comportamiento, en esta última el control
(que da la pauta para 2 ejes) tiene valores diferentes a cero en ambos casos, el sensor a bordo
(3 ejes) indica inclinación en todos sus ejes igual a 10° y como resultado se debe obtener la
imitación del control en los ejes X y Y además de estabilizar la cámara en el tercer eje, para
ello los servomotores llegan a 20° respecto a su eje X para lograr los 30° respecto a la
horizontal, no utiliza el servomotor para el eje Y puesto que el VANT ya está a 10° y finalmente
se pone a -10° para permitir un enfoque sin alteraciones en el tercer eje.
Los dispositivos usados en este bloque fueron los siguientes:
4.5.1 SOPORTE PAN-TILT PARA SG90
Este soporte permite usar dos servos SG90 para armar un sistema pan-tilt donde se puede
colocar sensores, actuadores o cámara de video. Su diseño mecánico es de gran rango
angular y buena estabilidad lo cual lo hace ideal para proyectos con cámaras de video [26].
Ver figura 28.
Figura 28. Soporte de inclinación para motores sg90 [26].
4.5.2 SERVOMOTOR SG90
Es un pequeño y ligero servomotor con alta potencia de salida. Puede girar aproximadamente
180 grados (90 en cada dirección), y funciona igual que los servomotores estándar pero este
es más pequeño. Ver figura 29 donde se observa la imagen de un servomotor sg 90 [27].
Figura 29. Servomotor SG 90 [27].
4.6 BLOQUE DE TRANSMISIÓN, VISUALIZACIÓN, CONTROL Y CAPTURA DE IMAGEN
Este bloque es el computador del usuario, así como la raspberry pi , éste también funciona
como servidor web; por medio del protocolo CGI se corre un script de Python el cual recibe los
datos del control (bloque de adquisición de mando) vía comunicación serial y los publica en la
red local bajo un protocolo CSS (Cascading Style Sheets) éste permite la posterior
recuperación de los datos en la raspberry; además el laptop está configurado para que sea
capaz de recibir las imágenes por medio de un protocolo SSH al pulsar un botón de la interfaz
de usuario, este bloque debido a sus características está orientado a que sea el cliente de la
página principal publicada desde la raspberry, el que visualiza el vídeo, da la orden de tomar
las fotografías y de descargarlas en el mismo computador.
Como se acordó en el bloque de adquisición de mando, en éste, que físicamente es el
computador portátil, se publica un script capaz de subir a la red los datos provenientes del
sensor, el diagrama de flujo de dicho script se observa en la figura 30 y los datos publicados
en la figura 31.
Con ánimo de generar una visión global del proyecto, se muestra un diagrama general del
proyecto en la figura 32.
Figura 30. Diagrama de flujo publicación
datos del control de mando. Autoría propia.
Figura 31. Datos publicados control de
mando. Autoría propia
Figura 32. Diagrama general del proyecto. Autoría propia
5. PRUEBAS Y RESULTADOS
A través del proceso de investigación se obtuvo un prototipo capaz de transmitir vídeo en
tiempo real con una latencia menor a 0.5 segundos, esto como resultado de varias pruebas
con distintos servidores de vídeo, dejando como el más apropiado al UV4L, del cual su
extensión de streaming fue incrustada como parte de la página principal, la que cumple su
función como interfaz de usuario.
La interfaz gráfica resultante se puede apreciar en la figura 33, la cual es aquella que verá el
usuario en el laptop.
Figura 33. Interfaz de Usuario. Autoría propia
La página principal fue el resultado de incrustar varias extensiones generadas por la misma
raspberry pi 3 como lo es la ya mencionada transmisión de vídeo-streaming y la publicada en
formato CGI, escrita en lenguaje Python, la cual lee, muestra y utiliza los datos del GPS Neo
6M; además la página principal cuenta con los botones “foto” y “descargar” que permiten tomar
la fotografía y pasarlas al computador del usuario, respectivamente, además del botón “ver
foto” para visualizar las que se han tomado hasta el momento. Se puede ver la carpeta
generada al momento de pulsar el botón descargar en la figura 34 y su interior en la figura 35,
el resultado de pulsar el botón ver imagen aparece en la figura 36.
Figura 34. Carpeta generada. Autoría
propia
Figura 35. Interior de la carpeta. Autoría
propia
Figura 36. Almacenamiento en la Raspberry. Autoría propia
La parte encargada del GPS fue incluida debido a que es un vehículo aéreo el cual transporta
el prototipo, no hay otra forma más eficaz para medir velocidad que el GPS, es por ello que se
decidió incluir este bloque que a su vez permite al usuario visualizar la posición (latitud,
longitud) del dispositivo además de su velocidad y el aviso de si la velocidad afecta o es
aceptable para visualizar el vídeo. La página principal, cuenta con sus dos botones, de los
cuales uno es el que se encarga de tomar las fotografías, éste aprovecha los datos del GPS
para nombrar las imágenes como se describe a continuación, como resultado adyacente se
obtiene un sistema que, al ser imposible usar la cámara para fotografías con código Python
mientras el servidor de vídeo estuviera corriendo, es capaz de detener el servidor de vídeo por
medio de un script en lenguaje de bash de Raspbian (sistema operativo en la Raspberry),
cuando termine, ejecuta un script de Python capacitado para recuperar los datos de la página
que publica los datos del GPS y toma una ráfaga de 3 fotos guardando cada una con un
nombre, que incluye latitud, longitud y si es la foto uno, dos o tres de la ráfaga tomada, esta
ráfaga es tomada con el ánimo de que si por causa del movimiento del vehículo aéreo no
tripulado o los servomotores como tal, alguna foto quede desenfocada, el usuario tendrá dos
más para escoger la que mejor le parezca, por último ejecuta un script encargado de reiniciar
el servidor de vídeo para continuar con el monitoreo. Los resultados se evidencian en la trama
mostrada por las figuras 37, 38, 39 tomadas en reposo y las figuras 40, 41, 42 tomadas en
movimiento, además de las 43, 44, 45 también tomadas en movimiento.
2017-04-15_17:29:29_4.61284_-
74.16742_1
Figura 37. Imagen 1 fotografía estática.
Autoría propia
2017-04-15_17:29:29_4.61284_-
74.16742_2
Figura 38. Imagen 2 fotografía estática.
Autoría propia
2017-04-15_17:29:29_4.61284_-
74.16742_3
Figura 39. Imagen 3 fotografía estática.
Autoría propia
2017-05-11_20:14:23_4.57897_-
74.15816_1
Figura 40. Imagen 1 fotografía dinámica.
Autoría propia
2017-05-11_20:14:23_4.57897_-
74.15816_2
Figura 41. Imagen 2 fotografía dinámica.
Autoría propia
2017-05-11_20:14:23_4.57897_-
74.15816_3
Figura 42. Imagen 3 fotografía dinámica.
Autoría propia
2017-05-02_18:54:35_4.57930_-
74.15876_1
Figura 43. Imagen 1 fotografía dinámica
parqueadero. Autoría propia
2017-05-02_18:54:35_4.57930_-
74.15876_2
Figura 44. Imagen 2 fotografía dinámica
parqueadero. Autoría propia
2017-05-02_18:54:35_4.57930_-74.15876_3
Figura 45. Imagen 3 fotografía dinámica parqueadero. Autoría propia
En las ráfagas de imágenes mostradas anteriormente podemos ver lo que se logra con el
proyecto funcionando bajo condiciones específicas, en el caso de las figuras 37-39 en estado
estático, es decir sin ser elevado por el VANT sino manualmente. En las ráfagas 40-42 y 43-
45 se aprecia la funcionalidad de tomar 3 fotografías seguidas, ya que se ve claramente como
la imagen 2 de cada grupo son las mejor enfocadas por la cámara, las otras no son adecuadas
para un posterior estudio por su toma desenfocada, esto debido al movimiento del drone.
Para una correcta comprensión de los datos consignados en el nombre de cada fotografía se
muestra a qué corresponde cada uno en la fotografía de la figura 37, de la cual el nombre es
2017-04-15_17:29:29_4.61284_-74.16742_1.jpg
Donde los datos para esta foto son:
Fecha: 2017-04-15
Hora: 17:29
Latitud: 4.61284
Longitud: -74.16742
Número de la foto: 1
Formato: jpg
Si de la figura 37 se toman los datos de longitud, latitud y se introducen en Google Maps,
obtendremos algo como lo observado en las figuras 46 y 47.
Figura 46. Imagen global arrojada por
Google Maps. Autoría propia
Figura 47. Imagen local arrojada por Google
Maps. Autoría propia
En la figura 48 se aprecia una velocidad de 3.07 Km/h a la cual ya está activada la alarma que
aparece como un mensaje en letras mayúsculas y color rojo indicando “EXCESO DE
VELOCIDAD”.
Figura 48. Prueba de alarma de velocidad excesiva. Autoría propia.
Para el control de los servomotores se obtuvo un script que se ejecuta automáticamente
cuando se inicia la raspberry, dicho script es capaz de rescatar los datos provenientes del
control de mando y a su vez leer los del sensor a bordo en el vehículo aéreo no tripulado, los
compara y de acuerdo a eso se logra el control de los motores estabilizando la imagen de la
cámara ante posibles inclinaciones del vehículo aéreo no tripulado y llegando al ángulo
deseado por el usuario por medio del cambio de ciclo útil de los mismos. El control utilizado en
el proyecto puede observarse en la figura 49.
Figura 49. Control por sensor de inclinación. Autoría propia
Como se ve, el control consta de un arduino nano y un MPU 6050 descritos anteriormente. En
las figuras 50 y 51 se puede ver el prototipo resultante implementado en el VANT.
Figura 50. Vista frontal del prototipo. Autoría
propia
Figura 51. Vista lateral del prototipo. Autoría
propia
Es sustancial dar importancia al VANT utilizado en el proyecto, puesto que gracias a sus
características se pudo implementar la estructura del proyecto en el mismo. El VANT es un
drone modelo Quadcopter SK450 Turnigy, seleccionado por su versatilidad en cuanto al área
de modificaciones y programación de este; posee 4 motores sin escobillas Brushless Multistar
2213 con 935kv y un empuje máximo de 850 g, tiene un peso total de 680 g sin batería, este
se alimenta con una batería de LiPo de 3 celdas a 11.1 volts capaz de entregar un eficiencia
de 10 a 15 minutos de vuelo continuo sin carga y de 7-10 minutos con el proyecto
implementado.
En la figura 52 se puede apreciar el VANT utilizado para el desarrollo del proyecto:
Figura 52. Quadcopter SK450 Turnigy [28]
Perspectivas y sugerencias
El proyecto finalizado es capaz de obtener fotografías de calidad, pero el enfoque de la cámara
es afectado debido al movimiento aleatorio del drone, esto es causado por un factor humano
que recae en la pericia del piloto, para evitar este inconveniente se propone usar un drone
guiado por tecnología GPS permitiendo así la toma de fotografías con posibilidad de mejor
enfoque. En cuanto al alcance, se propone realizar un proceso investigativo para mejorar la
antena integrada de wifi de la Raspberry Pi 3.
6. CONCLUSIONES
• El sistema se puso en marcha gracias a la implementación de sistemas que se ayudan
mutuamente como se evidenció en el caso de los datos que se transmiten desde el
control hacia la raspberry, puesto que no se puede directamente debido a condiciones
de seguridad y de forma de trabajo que impiden que esto se realice en un solo script.
• A pesar de que la frecuencia de WiFi utilizado para la transmisión de datos del prototipo
maneja el mismo rango de frecuencias que el utilizado por el control del vehiculó aéreo
no tripulado, no hubo interferencias gracias a que trabajaron en canales distintos, esto
debido al protocolo AFHDS 2A con el que cuenta el control del vehículo aéreo no
tripulado que impide que se mezcle la información de ambos sistemas.
• El prototipo es capaz de controlar los motores con una diferencia de tiempo entre el
estímulo del sensor y la respuesta en el movimiento de los motores que varía de 0 a 2
segundos, esto debido al tiempo de lectura del sensor, el momento en que se suben los
datos a la red local, el momento en que se recuperan en la raspberry y su momento de
ejecución como tal.
• En el control de la cámara se utilizaron 3 servomotores a pesar de que el control sólo
maneje dos ángulos, uno que controla directamente si la cámara está a la izquierda o
derecha según la pauta del control, el segundo si está hacia arriba o hacia abajo, el cual
es un equilibrio entre la inclinación del vehículo aéreo no tripulado y el ángulo deseado
que se toma del control, y un tercero para estabilizar la vista de la cámara en el eje de
rotación restante, en caso de que el VANT esté inclinado en dicho eje.
7. REFERENCIAS BIBLIOGRAFICAS
[1] A. Mendez, J.P. Velez, “Agritotal.” [Online]. Available:
http://www.agritotal.com/0/vnc/nota.vnc?id=los-drones-para-monitorear-cultivos. [Accessed:
16-Apr-2016].
[2] Aero Filming, “Inspección aérea con drones. Servicio profesional y económico.” [Online].
Available: http://aerofilming.com/inspeccion/. [Accessed: 16-Apr-2016].
[3] “Monitoreo de cultivos y carreteras con drones | Tecnologías de geolocalización, rastreo
satelital, monitoreo remoto e innovación móvil.” [Online]. Available: https://widetech.co/es/abril-
4/. [Accessed: 16-Apr-2016].
[4] C. A. Cáceres Flórez, O. L. Ramos Sandoval, and D. Amaya Hurtado, “Procesamiento
de imágenes para reconocimiento de daños causados por plagas en el cultivo de Begonia
semperflorens (flor de azúcar),” Acta Agronómica, vol. 64, no. 3, pp. 273–279, May 2015.
[5] J. You, “Drones could 3D-map scores of hectares of land in just a few hours | Science |
AAAS.” [Online]. Available:
http://www.sciencemag.org.bdigital.udistrital.edu.co:8080/news/2014/10/drones-could-3d-
map-scores-hectares-land-just-few-hours. [Accessed: 16-Apr-2016].
[6] Digital Investigación, “vehículos aéreos no tripulados: Un análisis preliminar de los
desafíos forenses,” Digital Investigación.
[7] F. J. Escalada Roig, “Drones at the service of emergency responders: rather more than
more toys,” Emergencias: Revista de la Sociedad Española de Medicina de Urgencias y
Emergencias, vol. 28, no. 2. Saned, pp. 73–74, 2016.
[8] P. J. Hardin and M. W. Jackson, “An Unmanned Aerial Vehicle for Rangeland
Photography,” Rangel. Ecol. Manag., vol. 58, no. 4, pp. 439–442, Jul. 2005.
[9] K. Evans, “Drones: una opción de bajo costo para el monitoreo forestal | Los bosques
en las noticias.” [Online]. Available: http://blog.cifor.org/32154/drones-una-opcion-de-bajo-
costo-para-el-monitoreo-forestal?fnl=es. [Accessed: 16-Apr-2016].
[10] E. Ip, “El protocolo IP,” pp. 1–30.
[11] E. Hales, “Tecnología Streaming,” pp. 1–9, 2013.ç
[12] I. Gu, “Tema : Introducción al Router Objetivo Materiales y Equipo Introducción Teórica
Procedimiento Bibliografía,” pp. 1–10.
[13] 3Bumen, “3bumen - Buscar con Google.” [Online]. Available:
https://www.google.com.co/search?q=3bumen&source=lnms&tbm=isch&sa=X&ved=0a
hUKEwiX9ZX6p_fTAhXIZiYKHUerBnAQ_AUICigB&biw=1366&bih=648#imgrc=k0MZfb
uWj2q_wM: [Accessed: 17-May-2017].
[14] Diputación de Badajoz, “Las tecnologías wifi y wimax.” [Online]. Available:
http://www.dip- badajoz.es/agenda/tablon/jornadaWIFI/doc/tecnologias_wifi_wmax.pdf.
[15] Red Hat Enterprise Linux 4, “Protocolo ssh”. [Online]. Disponible en:
http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/ch-ssh.html.
[16] Conocimientos web. Net, “Protocolo CGI”. [Online]. Disponible en:
http://www.conocimientosweb.net/dcmt/ficha17780.html.
[17] Culturación, “Servidor apache”. [Online]. Disponible en: http://culturacion.com/que-es-
apache/
[18] Aprender a programar, “Lenguaje PHP”. [Online]. Disponible en:
http://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=492:iq
ue-es-php-y-ipara-que-sirve-un-potente-lenguaje-de-programacion-para-crear-paginas-web-
cu00803b&catid=70&Itemid=193.
[19] J. Pérez Porto and A. Gardey, “Definición de HTML”. [Online]. Disponible en:
http://definicion.de/html/.
[20] M. Alvarez, “Que es python”, [Online]. Disponible en:
https://desarrolloweb.com/articulos/1325.php.
[21] “MPU-6000 and MPU-6050 Product Specification Revision 3.4.” [Online]. Available:
https://www.cdiweb.com/datasheets/invensense/MPU-6050_DataSheet_V3 4.pdf. [Accessed:
27-Apr-2016].
[22] L.Thayer Ojeda, “Arduino nano”. [Online]. Available: http://arduino.cl/arduino-nano/
[23] ABC Tecnología, “Que es raspberry pi y para qué sirve”. [Online]. Disponible en:
http://www.abc.es/tecnologia/informatica-hardware/20130716/abci-raspberry-como-
201307151936.html
[24] Electronilab, “raspberry pi 3 y accesorios”. [Online]. Disponible en:
https://electronilab.co/tienda/raspberry-pi-3-modelo-b-armv8-1g-ram/.
[25] Mactronica, “modulo GPS neo 6m”. [Online]. Disponible en:
http://www.mactronica.com.co/modulo-gps-neo-6m-ublox-43672883xJM.
[26] Naylamp Mechatronics, “Soporte Pan-Tilt para SG90”. [Online]. Disponible en:
http://www.naylampmechatronics.com/accesorios-y-prototipado/170-soporte-pan-tilt-para-
sg90.html.
[27] Akizukidenshi, “SG 90 Micro servo”. [Online]. Disponible en:
http://akizukidenshi.com/download/ds/towerpro/SG90.pdf.
[28] Electronilab, “Quadcopter SK450 Turnigy”. [Online]. Disponible en:
https://electronilab.co/tienda/quadcopter-sk450-turnigy-radio-control-mode-2/.