instituto politÉcnico nacional drone.… · el control del drone se re ere a la manipulaci on del...

95
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD ZACATENCO ACADEMIA DE ICE DISEÑO DE UNA APLICACIÓN ANDROID PARA CONTROL A DISTANCIA DE UN DRONE DESTINADO A SEGURIDADT E S I S QUE PARA OBTENER EL TITULO DE: INGENIERO EN COMUNICACIONES Y ELECTRÓNICA P R E S E N T A N : HÉCTOR MICHEL CAMPOS LÓPEZ DANIELA JUÁREZ ORTIZ AARON YAEL VIEYRA FLORES ASESOR TÉCNICO: DR. LUIS ALEJANDRO ITURRI HINOJOSA ASESOR METODOLÓGICO M. EN C. PEDRO MARTIN MORALES BECERRA MÉXICO D.F. DICIEMBRE 2015

Upload: others

Post on 23-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA

UNIDAD ZACATENCO

ACADEMIA DE ICE

“DISEÑO DE UNA APLICACIÓN ANDROID PARA

CONTROL A DISTANCIA DE UN DRONE

DESTINADO A SEGURIDAD”

T E S I S

QUE PARA OBTENER EL TITULO DE:

INGENIERO EN COMUNICACIONES Y ELECTRÓNICA

P R E S E N T A N :

HÉCTOR MICHEL CAMPOS LÓPEZ DANIELA JUÁREZ ORTIZ

AARON YAEL VIEYRA FLORES

ASESOR TÉCNICO: DR. LUIS ALEJANDRO ITURRI HINOJOSA

ASESOR METODOLÓGICO

M. EN C. PEDRO MARTIN MORALES BECERRA

MÉXICO D.F. DICIEMBRE 2015

Page 2: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

INDICEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Indice

OBJETIVOS 4

JUSTIFICACION 5

INTRODUCCION 6

1. TECNOLOGIA EN DRONES Y APLICACIONES MOVILES 7

1.1. INTRODUCCION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.2. TECNOLOGIA DE UN DRONE WIFI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.3. APLICACIONES DE LOS DRONES EN LA INDUSTRIA . . . . . . . . . . . . . . . . . 16

1.4. APLICACIONES ANDROID PARA CONTROL DE DISPOSITIVOS WI-FI . . . . . . . 19

1.5. TIPOS DE UAV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2. APLICACION ANDROID 26

2.1. INTRODUCCION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.2. Kit de Desarrollo de Software-SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.3. PUNTO DE COMUNICACION SOCKET . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.4. APLICACION CLIENTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.5. APLICACION SERVIDOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

2.6. IMPORTACION DEL PROYECTO A ECLIPSE . . . . . . . . . . . . . . . . . . . . . . 63

2.7. HABILITACION DEL PUERTO 5500 TCP . . . . . . . . . . . . . . . . . . . . . . . . . 66

3. PRUEBAS DE CAMPO Y RESULTADOS 70

3.1. INTRODUCCION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

3.2. COMUNICACION ENTRE CLIENTE Y SERVIDOR . . . . . . . . . . . . . . . . . . . . 71

3.3. COMUNICACION ENTRE SERVIDOR Y DRONE . . . . . . . . . . . . . . . . . . . . . 74

CONCLUSIONES 83

REFERENCIAS 86

GLOSARIO 87

ANEXOS I

1

Page 3: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

INDICE DE FIGURASInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Indice de figuras

1. Modelo de funcionamiento de un AR. Drone. . . . . . . . . . . . . . . . . . . . . . . 13

2. Figura demostrativa de los modelos de UAV considerados. . . . . . . . . . . . . . . 23

3. Diagrama de flujo de la aplicacion cliente . . . . . . . . . . . . . . . . . . . . . . . . 27

4. Diagrama de flujo de la aplicacion servidor . . . . . . . . . . . . . . . . . . . . . . . 28

5. Diagrama de flujo de la aplicacion del Drone . . . . . . . . . . . . . . . . . . . . . . 29

6. Arquitectura AR.Drone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

7. Diragrama de conexion entre el cliente y el servidor . . . . . . . . . . . . . . . . . . 32

8. Diagrama de la conexion entre cliente y servido a traves de internet. . . . . . . . . . 33

9. Seleccion de la carpeta del programa del servidor . . . . . . . . . . . . . . . . . . . 63

10. Importacion del programa a Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

11. Seleccion de la carpeta donde se ubica el proyecto . . . . . . . . . . . . . . . . . . . 65

12. Arranque de la aplicacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

13. Esperando habilitacion del cliente . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

14. Ingreso a la configuracion del modem . . . . . . . . . . . . . . . . . . . . . . . . . . 67

15. Seleccion de la pestana Advanced . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

16. Seleccion de la opcion Forwarding . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

17. Configurando el puerto 5500 a una direccion IP privada. . . . . . . . . . . . . . . . 69

18. Verificacion de la habilitacion del puerto . . . . . . . . . . . . . . . . . . . . . . . . 69

19. Esperando habilitacion del cliente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

20. Ventana principal de la aplicacion Android. . . . . . . . . . . . . . . . . . . . . . . . 72

21. IP y puerto TCP ingresados en la aplicacion cliente. . . . . . . . . . . . . . . . . . . 73

22. Conexion exitosa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

23. Mensaje de conexion en la lınea de consola del servidor. . . . . . . . . . . . . . . . . 74

24. Boton “Take off” presionado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

25. Drone elevandose. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

2

Page 4: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

INDICE DE TABLASInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

26. Boton “Up” presionado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

27. Drone elevandose. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

28. Boton “Right” y “Left”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

29. Movimientos del Drone en el aire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

30. Boton “Down” presionado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

31. Drone descendiendo con el boton “down”. . . . . . . . . . . . . . . . . . . . . . . . 78

32. Boton “Landing” presionado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

33. Drone aterrizando con el boton “Landing”. . . . . . . . . . . . . . . . . . . . . . . . 79

34. Video obtenido de la camara posterior del AR.Drone a 1 metro de altura. . . . . . . 79

35. Video obtenido de la camara posterior del AR.Drone a 3.5 metros de altura. . . . . 80

36. Boton “CV/CH” presionado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

37. Vista de la camara inferior a una altura de 3.5 metros. . . . . . . . . . . . . . . . . 81

38. Camara del Drone detenida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

39. Diagrama de flujo cliente-servidor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

40. Diagrama de flujo de la aplicacion del Drone . . . . . . . . . . . . . . . . . . . . . . 84

41. Ventana principal de la aplicacion Android. . . . . . . . . . . . . . . . . . . . . . . . 85

42. Principio de la ventana aplicado a TCP . . . . . . . . . . . . . . . . . . . . . . . . . II

43. UDP, un demultiplexor basado en puertos . . . . . . . . . . . . . . . . . . . . . . . III

44. Formato del datagrama UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III

Indice de tablas

1. Caracterısticas de las diferentes tecnologıas inalambricas[1]. . . . . . . . . . . . . . . 12

2. Propiedades de algunas aplicaciones de seguridad. . . . . . . . . . . . . . . . . . . . 21

3. Caracterısticas de algunos modelos de UAV considerados. . . . . . . . . . . . . . . . 24

3

Page 5: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

OBJETIVOSInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

OBJETIVOS

OBJETIVO GENERAL:

• Disenar una aplicacion Android para el control a distancia de un Drone con grabacion

de video percibida a traves de su camara con tecnologıa Wi-Fi.

OBJETIVOS ESPECIFICOS:

• Disenar una aplicacion en Android para controlar un Drone desde un dispositivo movil

con acceso a Internet.

• Emplear un servicio de conexion remota que permita observar los videos captados por

el Drone durante el vuelo.

4

Page 6: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

JUSTIFICACIONInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

JUSTIFICACION

En la actualidad la seguridad es un tema que ha adquirido una gran importancia, debido a que

la delincuencia ha aumentado de manera exponencial, por lo tanto, el uso de distintos sistemas de

seguridad, principalmente sistemas de video vigilancia se ha vuelto la mejor opcion.

Los Drones se han caracterizado por sus amplias aplicaciones militares, civiles e incluso de en-

tretenimiento, variando dependiendo de las caracterısticas fısicas que estos poseen (como peso,

tamano, tiempo de vuelo, accesorios como camaras, GPS, etc.), y por su amplio panorama de

desarrollo a nivel de programacion es factible utilizarlos para la implementacion de sistemas per-

sonales, como por ejemplo un sistema de video vigilancia.

Sin embargo, hasta el dıa de hoy, los sistemas de video vigilancia se realizan utilizando prin-

cipalmente dispositivos como lo son las camaras IP o los vehıculos aereos no tripulados-UAV

acondicionados con camaras (Drone), teniendo como mayor limitacion que deben encontrarse y

controlarse desde la misma area geografica, es decir el sistema debe estar conectado en la misma

red LAN.

Con lo antes mencionado, decidimos desarrollar una aplicacion que controle remotamente desde un

dispositivo movil, a traves de Internet, a un Drone que se encuentre en un punto geograficamente

alejado, para poder captar y almacenar fotografıas y videos, tomados durante una rutina de vuelo.

5

Page 7: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

INTRODUCCIONInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

INTRODUCCION

Los Drones han despertado un gran interes en los ultimos anos ya que dichos vehıculos pueden

ocuparse en el ambito militar como en el ambito civil, con aplicaciones desarrolladas para tareas

de busqueda y rescate, vigilancia comercial, espionaje, filmacion cinematografica, entre otras.

Debido a las diversas aplicaciones que se pueden realizar con Drones, presentamos en el presente

trabajo el desarrollo de una aplicacion para dispositivos Android, cuyo objetivo es controlar un

Drone con tecnologıa WiFi destinado a seguridad, es decir, usamos un Drone comercial para con-

trolar una rutina de vuelo aleatoriamente y tomar video de ambas camaras (posterior o vertical)

almacenando el video en un servidor.

En el capıtulo I se mencionan las especificaciones tecnicas de un Drone WiFi, especıficamente

del Drone que hemos usado. Por otra parte hacemos una comparacion entre aplicaciones Android

disponibles en Play Store, con esto determinamos las ventajas y desventajas que existen entre

nuestra aplicacion y estas las aplicaciones disponibles.

En el capıtulo II describimos la arquitectura de las librerıas utilizadas para el control del Drone,

ası mismo se describe el procedimiento de programacion de las aplicaciones disenadas: aplicacion

servidor y aplicacion cliente.

Mostramos el procedimiento seguido para cargar un proyecto en Eclipse, siendo el software en el

se desarrollo la aplicacion. Por ultimo incluimos el procedimiento del mapeo de puertos TCP, el

cual es necesario para la comunicacion entre las aplicaciones cliente y servidor.

En el capıtulo III se realizan las pruebas de vuelo y captura de video del AR.Drone, mostrando

las capacidades de nuestra aplicacion Android en una rutina de vuelo controlada completamente

por el usuario.

6

Page 8: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1 TECNOLOGIA EN DRONES Y APLICACIONES MOVILESInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

CAPITULO

1. TECNOLOGIA EN DRONES Y APLICACIONES

MOVILES

7

Page 9: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.1 INTRODUCCIONInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

1.1. INTRODUCCION

Los sistemas autonomos de control de vuelo han despertado un gran interes en los ultimos anos

debido al gran desarrollo de UAV(por sus siglas en ingles: Unmanned Aerial Vehicle- Vehıculo

Aereo No Tripulado), ası como el logro de un control de ellos mas sencillo e intuitivo de los mismos.

Este tipo de vehıculos pueden ocuparse tanto en el ambito militar como en el ambito civil, con

aplicaciones desarrolladas para tareas de busqueda y rescate, vigilancia comercial, espionaje, fil-

macion cinematografica y la realizacion de diversas maniobras, entre otras.

Con respecto a las aplicaciones de busqueda y rescate, ha sido lanzado el proyecto Europeo lla-

mado SHERPA (por sus siglas en ingles: Smart collaboration between Humans and ground-aErial

Robots for imProving rescuing activities in Alpine environment- Colaboracion inteligente entre

humanos y robots terrestres-aereos para mejorar las actividades de rescate en ambientes alpinos)

cuyo objetivo es desarrollar una plataforma mixta (terrestre-aerea) para apoyar las actividades de

busqueda y rescate en escenarios reales y hostiles. Con este proyecto, se presenta una solucion via-

ble para salvar vidas (turistas y personal de rescate) en estos ambientes hostiles alpinos (multiples

avalanchas)[1].

Las aplicaciones de estos dispositivos han incrementado, principalmente por las caracterısticas

similares a las de una aeronave, es decir, maniobras complejas en pequenos volumenes, siendo

capaces de llevar cargas significativas.

En la actualidad las aplicaciones de los Drones como vehıculos no tripulados se ubican en dos

grandes ambitos mencionados anteriormente: militar y civil.

8

Page 10: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.2 TECNOLOGIA DE UN DRONE WIFIInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

1.2. TECNOLOGIA DE UN DRONE WIFI

Anteriormente se utilizaba la tecnica de radiofrecuencia para poder pilotear los Drones, debido

a los estudios realizados a traves de los anos se desarrollo el uso de la tecnologıa Wi-Fi. La ventaja

del Wi-Fi es la rapidez y mas aun el transporte de datos que permite.

Gracias a la tecnologıa Wi-Fi es posible controlar y conectar Drones a distancia mediante dis-

tintos tipos de dispositivos moviles que puedan soportar la aplicacion.

El control del Drone se refiere a la manipulacion del vuelo, teniendo el control de su velocidad,

la distancia y la altura a la que volara. Mientras que la conexion del Drone es la que permite

transmitir video y fotos en tiempo real al dispositivo.

Como mecanismo de seguridad del Drone, sı el sistema del Drone pierde la senal del Wi-Fi, este

automaticamente permanece inmovil en el aire. El alcance de el entre los dispositivos vıa Wi-Fi

dependera del rango de los dispositivos y en ocasiones de cuestiones climaticas, ası tambien como

obstaculos entre el Drone y el dispositivo de control.

Debido a que los Drones requieren de una mayor distancia de control, estos cuentan con am-

plificadores y antenas de alta ganancia, con el fin de alargar el alcance y tener una buena conexion.

El rango de alcance generalmente es de 50 metros.

Los Drones en general usan tecnologıa wifi mediante un modulo integrado “wifi b g n” o “wifi

b g” en modo de funcionamiento ad-hoc, el cual crea una red entre el dispositivo movil y el Drone.

A continuacion se mencionan las tecnologıas inalambricas existentes que pueden ser incorpora-

das para la comunicacion de un Drone:

9

Page 11: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.2 TECNOLOGIA DE UN DRONE WIFIInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

IEEE 802.11 (WiFi)

WiFi incluye diferentes estandares IEEE 802.11 a/b/g/n/ac para WLAN (por sus siglas en ingles

Wireless Local Area Network- Redes de Area Local Inalambricas). En particular, las versiones “n”

y “ac” son las ultimas versiones que proporcionan mayor rendimiento. El estandar IEEE 802.11

n fue lanzado en 2009 con nuevas caracterısticas comparadas con las versiones anteriores, como

OFDM, (por sus siglas en ingles Orthogonal Frecuency-Division Multiplexing- Multiplexaje Or-

togonal por Division de Frecuencia) y MIMO (por sus siglas en ingles Multiple Input Multiple

Output- Multiples Entradas Multiples Salidas)[1].

Estas nuevas caracterısticas no solo permiten mejorar el rendimiento de la red (velocidad maxima

de datos de 150 Mbps), sino tambien mejora el alcance de cobertura (250m al aire libre). Para

incrementar aun mas el rendimiento de la red (hasta 6.77 Gbps) el estandar IEEE 802.11 ac es

lanzado en 2013 utilizando MU-MIMO (por sus siglas en ingles Multi User Multiple Input Multiple

Output- Multiples Entradas Multiples Salidas Multiusuario), modulacion eficiente y el incremento

del ancho de banda del canal[1].

ZigBee

ZigBee a traves del estandar IEEE 802.15.4 define las especificaciones para LR-WPAN (por sus

siglas en ingles Low-Rate Wireless Personal Area Network- Redes Inalambricas de Area Personal

de Baja Transmision) para soportar dispositivos simples que consuman la mınima energıa y operen

normalmente en un espacio personal. ZigBee proporciona multi-saltos y redes confiables con una

larga duracion de baterıa. Para este fin, este reduce la cantidad de datos que se transmiten, la

sobrecarga de “frames” y la frecuencia de transmision e introduce mecanismos para la gestion/re-

duccion de la energıa usada. Dependiendo del uso de la red, ZigBee tiene un alcance variable de

cobertura, el cual varıa desde 10 hasta 150m con la maxima velocidad de transmision 250kbps. El

bajo consumo de energıa es la caracterıstica mas importante de ZigBee [1].

10

Page 12: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.2 TECNOLOGIA DE UN DRONE WIFIInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

XBee

El protocolo XBee es tambien parte de LR-WPAN (por sus siglas en ingles Low-Rate Wireless

Personal Area Network- Redes Inalambricas de Area Personal de Baja Transmision). Este logra

una velocidad de transmision de 250 kbps usando CSMA/CA (por sus siglas en ingles Carrier

Sense Multiple Access with Collision Avoidance- Acceso Multiple con Deteccion de Portadora y

Prevension de Colisiones)[1].

La topologıa del protocolo XBee es tıpicamente malla, y gracias a sus caracterısticas los nodos

XBee pueden extender su cobertura (hasta 1.6 km) a traves del uso especıfico de estrategias de

enrutamiento (multi-salto): de hecho, son capaces de establecer nuevas condiciones y agregar nue-

vos nodos para ser flexible contra alguna ruptura en el enlace[1].

Considerando esta velocidad de transmision, es sencillo entender que este protocolo no puede ser

usado para una extensa transferencia de datos, como imagen y video, pero es adecuado para trans-

ferir datos a redes de sensores de monitoreo y control[1].

LTE

LTE (por sus siglas en ingles Long-Term Evolution- Evolucion a Largo Plazo) es una tecnologıa

de radio plataforma que permitira a los operadores lograr incluso mayor rendimiento que HSPA+

(por sus siglas en ingles High Speed Packet Access Plus- Acceso de Alta Velocidad de Paquetes

Plus) en un mayor espectro de ancho de banda. El objetivo general de LTE es proporcionar un

alto rendimiento de acceso de radio que ofrezca altas velocidades moviles [1].

IEEE 802.16 (WiMAX)

La tecnologıa WiMAX (por sus siglas en ingles Worldwide interoperability for Microwave Access

network ) soporta velocidades tan altas como 75 Mbps en un rango de hasta 30 km. WiMAX

permite altas velocidades de transmision en largas distancias, uso eficiente del ancho de banda, y

evita las interferencias hasta lo mınimo posible. Las principales caracterısticas que hacen que el

11

Page 13: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.2 TECNOLOGIA DE UN DRONE WIFIInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

estandar WiMAX sea muy competitivo son: flexibilidad, seguridad, alta eficiencia, facil instala-

cion, movilidad, bajo costo y gran cobertura. Esta tecnologıa funciona en ambas bandas (en las

frecuencias de 2.5 a 5.8 GHz)[1].

En la tabla 1 se muestran las tecnologıas que se acaban de mencionar.

Tabla 1: Caracterısticas de las diferentes tecnologıas inalambricas[1].

Requisitos WiFi Xbee LTE ZigBee WiMAX

Transmision de Datos mayor a 1Mbps Si No Si No Si

Distancias entre nodos mayor a 1Km No Si Si Si Si

Movilidad Si Si Si Si Si

Baja Latencia Si No Si No Si

Consumo reducido de energıa Si Si Si Si Si

Operacion en bandas no licenciadas Si Si No Si Condicionalmente

Un Drone esta instrumentado para medir la orientacion con un acelerometro, un giroscopio y

una brujula de tres ejes cada uno; y para medir la altitud con un sonar. Ademas, cuenta con dos

camaras, una frontal y una vertical.

Tiene activo un servidor telnet, que al recibir una conexion da acceso a una consola para con-

trolar el sistema operativo, por lo que es posible compilar codigo para ARM (por sus siglas en

ingles Advanced RISC Machine- Conjunto de instrucciones Reducidas Avanzadas de Maquina) en

una computadora y ejecutarlo en el Drone.

A este sistema embebido esta conectada, a traves del puerto serial, la tarjeta de navegacion

que recibe la informacion sin procesar de los sensores, y tambien el circuito encargado de controlar

la velocidad de los motores a traves de PDM (por sus siglas en ingles Pulse-Width Modulation-

Modulacion por Ancho de Pulsos).

12

Page 14: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.2 TECNOLOGIA DE UN DRONE WIFIInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Usualmente la manera de usar el AR.Drone es mediante un dispositivo movil que tenga la aplica-

cion desarrollada por el fabricante para poder controlarlo. De esta manera se usa el controlador

PID (Proporcional Integral Derivativo) interno del Drone y la interfaz grafica sirve para indicarle

al controlador los valores deseados en cuanto a altitud y postura. En la figura 1 se puede observar

el funcionamiento de este modelo.

Figura 1: Modelo de funcionamiento de un AR. Drone.

1.2.1. ESPECIFICACIONES TECNICAS DEL AR.DRONE

El AR.Drone es un dispositivo volador de alta tecnologıa. Tecnicamente, es un cuadricoptero

con sensores y un controlador. Debido a que este dispositivo es muy ligero (su peso varıa de 360 a

400 gramos) es propenso a sufrir perturbaciones, por lo que es recomendable utilizarlo en ambientes

interiores; sin embargo, tambien puede ser utilizado en lugares al aire libre. La baterıa permite un

tiempo de vuelo aproximado de 13 minutos [2].

AR.Drone es controlado por un procesador de 32 bits a 468MHz ARM9 RISC con un DDR-RAM

de 128MB a 200MHz. Esta arquitectura de procesamiento controla las operaciones basicas del

Drone incluyendo la estabilidad[2].

Los sensores que tiene instalados consisten en un acelerometro de 3 ejes, un giroscopio de un eje,

13

Page 15: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.2 TECNOLOGIA DE UN DRONE WIFIInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

un giroscopio de 2 ejes, un sensor ultrasonico, una camara vertical y una camara horizontal [2].

El sensor ultrasonico mide la altitud del Drone que varıa de los 20-600cm. La camara vertical tiene

una resolucion de 176 x 144 pixeles correspondiente a una vista en angulos de 45 x 35 y proporciona

un video de 60 campos por segundo. Sin embargo, tiene una mayor resolucion horizontal, pero no

es usada durante el aterrizaje [2].

Este cuadricoptero puede ser controlado vıa Wi.Fi por un dispositivo externo como una compu-

tadora. Toda la comunicacion se realiza utilizando tres canales UDP. Un canal de comunicacion

permite enviar comandos al Drone. El dispositivo acepta los siguientes comandos con una fre-

cuencia de 30Hz: despegar, aterrizar, configuracion de lımites como velocidad y altura maxima,

calibracion de sensores, velocidad vertical, etc. El canal NavData transmite informacion acerca del

estado del Drone con una frecuencia de 30Hz. La informacion que proporciona es: posicion del

Drone en, altitud, nivel de baterıa, etc. Finalmente, el canal de Video transmite informacion de

las camaras [2].

El AR.Drone es propulsado por motores sin escobillas, con tres fases de corriente controlada por

un micro-controlador. El Drone detecta si todos los motores estan girando o se detienen. El Drone

detecta si cualquiera de las helices esta bloqueada y si una helice en movimiento encuentra un

obstaculo se detienen todos los motores inmediatamente. Este sistema de proteccion evita choques

repetidos [3].

Se utiliza una carga de 1000mAh, 11.1V de baterıa de LiPo para hacer volar el Drone. Cuando el

Drone detecta un voltaje de la baterıa bajo, primero envıa un mensaje de advertencia al usuario,

y luego automaticamente desciende. Si el voltaje alcanza un nivel crıtico, todo el sistema se apaga

para evitar cualquier comportamiento inesperado [3].

Los sensores se encuentran debajo del casco central. El AR.Drone 1.0 cuenta con 6 DOF, basado

en MEMS, unidad de medicion inercial miniaturizado. El software se proporciona con mediciones

de cabeceo, alabeo y gunada. Las mediciones inerciales se utilizan para un alabeo automatico,

estabilizacion del cabeceo y la guinada y la inclinacion asistida controlada. Un telemetro de ul-

trasonido proporciona con medidas de altitud la estabilizacion de altura automatica y control de

14

Page 16: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.2 TECNOLOGIA DE UN DRONE WIFIInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

velocidad vertical asistida. El AR.Drone 2.0 anade 3 DOF a la IMU con un magnetometro de 3

ejes. Tambien agrega un sensor de presion para permitir mediciones de altitud a cualquier altura

[3].

La principal diferencia entre AR.Drones 1.0 y 2.0 se encuentra en sus camaras. AR.Drone 2.0 uti-

liza una camara HD (720p - 30fps) frontal que se puede configurar para transmitir tanto imagenes

de 360p (640 * 360) y 720p (1280 * 720), mientras que el AR.Drone 1.0 usa una VGA (640 *

480), que solo puede transmitir imagenes QVGA (320 * 240)s. La camara inferior del AR.Drone

2,0 es QVGA (320 * 240) 60fps y la del AR.Drone 1.0 utiliza una camara QCIF (176 * 144) 60fps.

AR.Drone 2.0 tambien cuenta con un puerto USB, que se utiliza para guardar la grabacion del

vıdeo [3].

El AR.Drone puede ser controlado desde cualquier dispositivo cliente con soporte WiFi. El Drone

crea una red WiFi propia. El dispositivo cliente se conecta a esta red. El control del AR.Drone se

realiza a traves de 3 canales principales de comunicacion [3].

El control y la configuracion del Drone se realiza mediante el envıo Comandos AT en el puerto

UDP 5556. La latencia de transmision de los comandos de control es fundamental para la expe-

riencia del usuario. Estos comandos deben enviarse de forma periodica (generalmente 30 veces por

segundo). Los comandos AT son cadenas de texto codificados como caracteres ASCII de 8 bits y

son generados por las librerıas del AR.Drone [3].

La informacion sobre el Drone (su estado interno como la posicion, velocidad, la velocidad de

rotacion del motor, etc.), llamado NAVDATA, se envıan desde el Drone a su cliente en el puerto

UDP 5554. Son enviados aproximadamente 15 veces por segundo en el modo de demostracion, y

200 veces por segundo en el modo completo (depuracion) [3].

El flujo de datos del video es enviado por el AR.Drone al cliente en puerto 5555 (UDP para

AR.Drone 1.0, TCP para AR.Drone 2.0) .Las imagenes del AR.Drone 1.0 se decodifican por UVLC

(MJPEG - similares) o P264 (H.264 similares) mientras que las imagenes de un AR.Drone 2.0 se

decodifican por H264 (MPEG4.10 AVC) . Un cuarto canal de comunicacion, llamado puerto de

15

Page 17: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.3 APLICACIONES DE LOS DRONES EN LA INDUSTRIAInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

control, puede ser establecido en el puerto TCP 5559 para transferir datos crıticos, por oposicion

de otros datos que se pueden perder sin efectos peligrosos. Se utiliza para recuperar los datos de

configuracion, y para reconocer informacion importante, como el envıo de informacion de configu-

racion [3].

El Drone cuenta con un programa ubicado en /bin/program.eif que se comporta como servidor, al

que se conecta el dispositivo con la aplicacion de manejo del AR.Drone. Este programa es el que

contiene los controladores PID y el que se encarga de procesar la informacion de la tarjeta de nave-

gacion y utilizarla para los controladores y enviarla al dispositivo a traves de la conexion WiFi. La

aplicacion en el dispositivo, es el lado cliente y no realiza ningun procesamiento en cuanto al vuelo

del Drone, simplemente muestra la informacion obtenida desde el Drone y envıa instrucciones que

el controlador interpreta como angulos o altitudes deseadas.

1.3. APLICACIONES DE LOS DRONES EN LA INDUSTRIA

1.3.1. APLICACIONES MILITARES

Los Drones se caracterizan por ser UAV, el cual permite en versiones militares que se incorpore

la capacidad de disparo de proyectiles. Ası mismo, se anaden otras posibilidades de reconocimiento

y patrulla virtual, captura de imagenes y funciones de espionaje.

Las aplicaciones de los sistemas UAV se han ampliado en acciones militares, de vigilancia y segui-

miento de posiciones enemigas, creando enlaces de comunicacion entre estaciones terrestres para

el intercambio de informacion. Sus principales aplicaciones militares pueden dividirse en tres cate-

gorıas:

• Patrullaje y reconocimiento.

• Apoyo al combate.

• Combate.

16

Page 18: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.3 APLICACIONES DE LOS DRONES EN LA INDUSTRIAInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

1.3.2. APLICACIONES CIVILES

En comparacion con los UAV de aplicacion militar, los de uso civil no han tenido el mismo desa-

rrollo. Sin embargo, poseen un gran potencial, debido a su versatilidad y flexibilidad de operacion.

Existe un amplio numero de aplicaciones civiles, especialmente en misiones con caracterısticas pe-

ligrosas o rutinarias. Al igual que en las aplicaciones militares, los ejemplos de aplicaciones civiles

se pueden clasificar en diferentes categorıas:

Investigacion cientıfica:

• Estudio de la atmosfera, la tierra y oceano.

• Estudio del agua.

• Cartografıa.

Apoyo a desastres:

• Deteccion de incendios.

• Tormentas y tornados.

• Busqueda y rescate en situacion de desastre.

Vigilancia civil:

• Supervision marıtima

• Vigilancia urbana

1.3.3. APLICACIONES DE ENTRETENIMIENTO

AR.FreeFlight

Esta aplicacion proporciona la funcion de pilotaje para AR.Drones y la capacidad de grabar vıdeo

y tomar fotos. Fue lanzado por primera vez en 2010 junto con el Drone original, y proporcionaba

17

Page 19: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.3 APLICACIONES DE LOS DRONES EN LA INDUSTRIAInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

compatibilidad de pilotaje a traves de dispositivos iOS. Ahora tambien esta disponible en la tienda

Play Google para Android. Se permite a los pilotos grabar vıdeo o capturar imagenes desde las

camaras del Drone. Cuando los pilotos lanzados originalmente podıan controlar sus drones por la

inclinacion, su dispositivo y los datos del acelerometro a bordo se convirtieron en los controles de

vuelo. Esto ya no esta disponible para los usuarios de iOS. Los controles de la pantalla proporcio-

nan mas movimiento en el control de mando, y otras funciones que permiten a los pilotos realizar

acrobacias aereas, jugar y actualizar el firmware de su Drone. La aplicacion tambien se integra

con AR.Drone Academia, donde los pilotos pueden asignar y compartir detalles de vuelo con otros

usuarios AR.Drone [3].

AR.Race 2

AR.Race es una aplicacion de juegos para pilotaje y multijugador del AR.Drone 2.0. Los pilotos

pueden definir un campo de carreras con una lınea de salida y meta mediante el uso de un blanco

especial incluido con el Drone. El Drone sera detectado cuando se cruza esta lınea y registra el

tiempo de vuelo entre estos 2 puntos. La aplicacion tambien se integra con Academy AR.Drone.

AR.Race 2 (ası como AR.Race ) es solamente disponible para dispositivos iOS [3].

AR.Rescue

Una aplicacion de realidad aumentada de un solo jugador para dispositivos iOS. Se utiliza el ob-

jetivo proporcionado con el AR.Drone 2.0 para crear un entorno 3D en el que los pilotos deben

realizar tareas dadas. El objetivo del juego es construir un cohete de piezas que se colocan en el

medio fısico por el software del Drone. Junto con las partes, los enemigos se generan y deben ser

combatidos para completar el objetivo. El Drone registra el tiempo que se necesita para completar

esta tarea, y esto se registra en AR.Drone Academy, donde se genera una tabla de clasificacion

mundial , los vıdeos y las imagenes pueden ser compartidos entre la comunidad [3].

18

Page 20: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.4 APLICACIONES ANDROID PARA CONTROL DE DISPOSITIVOS WI-FIInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

AR.Drone Academy

Esta aplicacion se utiliza en conjunto con otras aplicaciones. Se realiza un seguimiento automatico

de datos de vuelo como velocidad, la altitud y la duracion. Proporciona un mapa con la ubicacion

de otros usuarios AR.Drone, y sus datos de vuelo. Tambien permite a sus usuarios compartir los

datos de vuelo y las imagenes en diversas redes sociales [3].

1.4. APLICACIONES ANDROID PARA CONTROL DE DISPOSI-

TIVOS WI-FI

En los ultimos anos ha incrementado la utilizacion de medios tecnologicos como forma de co-

municacion, promocion, comercializacion y distribucion. Los telefonos moviles se han transformado

en dispositivos multimedia que permiten no solo comunicarse, sino tambien obtener informacion,

entretenimiento y realizar transacciones a traves de ellos.

Basado en los avances tecnologicos en comunicaciones moviles que actualmente permite la utiliza-

cion de aplicaciones, realizamos el diseno de una aplicacion que permita el control de un Drone.

1.4.1. ENTORNO DE DESARROLLO ANDROID

Android es un sistema operativo disenado en un principio para dispositivos moviles. Es una

plataforma de codigo abierto, es decir, que cualquier desarrollador puede crear y desarrollar apli-

caciones escritas con lenguaje C u otros lenguajes y compilarlas a codigo nativo de ARM (por

sus siglas en ingles Advanced RISC Machine- Conjunto de Instrucciones Reducidas Avanzadas de

Maquina).

• Es capaz de controlar diferentes elementos hardware del dispositivo: Bluetooth,Wi-Fi,

Camara, GPS, acelerometro, Infrarrojos, etc.

• Desarrollo de aplicaciones reutilizables y portables entre diferentes dispositivos.

• Soporta un elevado numero de formatos multimedia.

• Servicio de GSM (por sus siglas en ingles Global System for Mobile communications-

19

Page 21: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.4 APLICACIONES ANDROID PARA CONTROL DE DISPOSITIVOS WI-FIInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Sistema Global para comunicaciones Moviles).

Dentro de las principales ventajas del desarrollo de aplicaciones en dispositivos moviles basados

en Android son las siguientes:

• Amplia compatibilidad. Es decir se pueden instalar en la mayorıa de dispositivos moviles

(telefonos celulares, tablets), lo que permite que los principales fabricantes y operadores

consideren este sistema operativo en sus equipos.

• Sistema abierto al programador. Android tiene un sistema completamente libre para que

un desarrollador pueda modificar e incluso mejorar alguna aplicacion.

• Librerıas y componentes reutilizables para todo tipo de aplicaciones.

• Sistema operativo multitarea. Es un sistema capaz de gestionar varias aplicaciones abier-

tas simultaneamente.

1.4.2. APLICACIONES DE SEGURIDAD EN ANDROID

En la actualidad existe un gran numero de aplicaciones moviles que se dedican al control de

dispositivos de seguridad principalmente camaras IP o control de dispositivos UAV, utilizando

tecnologıa Wi-Fi.

Las aplicaciones para sistemas de seguridad disponibles son: TinyCam Monitor, Blue Iris, Motion

Detector Pro, FoscamSurveillance,etc.

En la tabla 2 se muestran las principales especificaciones de algunas aplicaciones para camaras de

video disponibles en Google Play:

20

Page 22: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.5 TIPOS DE UAVInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Tabla 2: Propiedades de algunas aplicaciones de seguridad.

AplicacionVersion

Android

Formato

Video

Protocolos

UsadosValoracion General Tamano Precio

TinyCam 2.3 MP4 HTTP,FTP 4.5 9.3Mb $59.95

Ip

WebCam

Depende

del

dispositivo

WebM,MOV

o MPEG4N/E 4.5 Depende $51.99

Motion

Detector

Pro

2.2+ N/E N/E 3.9 766Kb Gratis

Blue Iris 2.3+ N/E N/E 4 902Kb $42.97

Foscam

Pro2.2+ N/E N/E 1.00 2Mb $65

AR.FreeFlight 2.2+ MP4,HD N/E 4.0 47.9Mb Gratis

N/E – No Especificado

Estas aplicaciones tienen como limitante que el control de dichos sistemas Wi-Fi se realiza en una

red LAN (por sus siglas en ingles Local Area Network- Red de Area Local) es decir que tanto el

dispositivo movil como el dispositivo de seguridad controlado no esten separados por una distancia

mayor a 200m, siendo esta la principal desventaja frente al desarrollo de la aplicacion de nuestro

proyecto.

1.5. TIPOS DE UAV

En la actualidad, gracias al desarrollo que se ha presentado en el diseno y las aplicaciones de

los vehıculos aereos no tripulados, existe una gran diversidad de modelos que pueden encontrarse

en el mercado, dichos modelos varıan de acuerdo a las necesidades que cada uno, cumple.

21

Page 23: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.5 TIPOS DE UAVInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

La principal clasificacion de los vehıculos aereos no tripulados que encontramos en el mercado es

dependiendo del tipo de tecnologıa con la que son controlados:

Los modelos UAV disponibles son:

• UAV con un soporte para colocarle una camara IP (por sus siglas en ingles Internet

Protocol-Protocolo de Internet) o que incluya una camara propia.

• UAV controlado con tecnologıa Wi-Fi para que pueda transmitir el video en tiempo real

de manera remota.

• UAV con un peso especificado por la Secretarıa de Comunicaciones y Transporte (SCT)

y que no requiera de un permiso especial para realizar las pruebas necesarias dentro

de las instalaciones del instituto. Esto es, cumplir con los siguientes requerimientos:

o Los Drones no deben volar en areas clasificadas como prohibidas, restringidas o

peligrosas, y deben estar a 9.2 kilometros de los aeropuertos, ası como a 3.7 kilo-

metros de los aerodromos no controlados, y a 900 metros de los helipuertos.

o Aquellos que pesen menos de 2 kilogramos y se usen solo para fines recreativos,

no requieren la autorizacion de la Direccion general adjunta de Transporte y Con-

trol aeronautico, pero los que superan este peso y se utilizan con fines comerciales,

sı necesitan el permiso de esa dependencia.

• UAV de bajo costo.

Los modelos que cumplen con las caracterısticas mencionadas anteriormente:

• Walkera QRY100

• A.R.Drone 2.0 Elite Edition

• Bebop Drone

22

Page 24: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.5 TIPOS DE UAVInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

En la figura 2 se muestran los modelos seleccionados.

Figura 2: Figura demostrativa de los modelos de UAV considerados.

En la tabla 3 se muestra la comparacion de las caracterısticas principales de los modelos men-

cionados.

23

Page 25: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.5 TIPOS DE UAVInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Tabla 3: Caracterısticas de algunos modelos de UAV considerados.

Modelo DimensionesTecnologıa

de Control

Aplicaciones

ExtrasAltura de Vuelo Precio

Walkera

QRY100

22,2x25,2x9cm

350gr

Wi-Fi a

2.4GHz

Con

camara y

compatible

con

tabletas

IOS,

Android

110 metros $3000(Agotado)

A.R.Drone

2.0

45x29 cm,

366gr

Wi-Fi a

2.4GHz

Camara

frontal y

verti-

cal,GPS,

compatible

con

tabletas

IOS,

Android y

Windows

250 metros $5600

Bebop

Drone

28x32x3,

400gr

Wi-Fi con

bandas 2.4

y 5 GHz

Camara

HD,GPS,cmpatible

con

tabletas

IOS,

Android

250 metros $8600

24

Page 26: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

1.5 TIPOS DE UAVInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Tomando en cuenta las caracterısticas basicas anteriores, se selecciono el UAV A.R. Drone

2.0 Elite Edition, considerando que tiene ventajas sobre el Drone Bebop, debido a que es mas

economico y cuenta con dos camaras lo que incrementa la captura de imagenes y video requeridos

para el sistema de seguridad que se desea implementar, ası como la compatibilidad con Windows,

aumenta la versatilidad de nuestro proyecto, al tener una plataforma mas de desarrollo.

25

Page 27: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2 APLICACION ANDROIDInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

CAPITULO

2. APLICACION ANDROID

26

Page 28: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.1 INTRODUCCIONInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

2.1. INTRODUCCION

La aplicacion desarrollada en plataforma Android consiste en hacer que el Drone realice sus

funciones basicas controladas mediante un dispositivo movil ubicado en diferente area geografica.

En otras palabras, lograremos el control del dispositivo a traves de un enlace de tres aplicaciones:

• La aplicacion del dispositivo movil remoto.

• La aplicacion para pc que tendra la funcion de interfaz y servidor entre el dispositivo

movil y el JDK (por sus siglas en ingles Java Development Kit- Kit de desarrollo Java).

• La aplicacion del Drone proporcionada por el JDK.

La comunicacion de las aplicaciones se muestra en la figura 3, figura 4 y figura 5.

Figura 3: Diagrama de flujo de la aplicacion cliente

27

Page 29: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.1 INTRODUCCIONInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Figura 4: Diagrama de flujo de la aplicacion servidor

28

Page 30: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.1 INTRODUCCIONInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Figura 5: Diagrama de flujo de la aplicacion del Drone

29

Page 31: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.2 Kit de Desarrollo de Software-SDKInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Hay que tener en cuenta que cualquier proyecto personal que pueda realizarse con el SDK

requiere de la gestion de hilos para poder enlazar la aplicacion desarrollada. Dicha gestion esta dada

por los niveles que se comunican con el control del motor de AR.Drone, como lo muestra la figura

6.

Figura 6: Arquitectura AR.Drone

Con el conocimiento del SDK y el modo en el que opera refiriendonos al diagrama a bloques, se

muestran a continuacion el desarrollo de las aplicaciones cliente-servidor que permiten el control

del Drone a traves de la SDK.

2.2. Kit de Desarrollo de Software-SDK

El Kit de Desarrollo de Software del AR.Drone permite a los desarrolladores realizar aplicacio-

nes y proporciona los APIs (por sus siglas en ingles Application Programming Interface-Interfaz

de Programacion de Aplicaciones) necesarios para compilar los programas.

30

Page 32: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.3 PUNTO DE COMUNICACION SOCKETInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Estructura principal

El SDK comprende varias carpetas, sin embargo, nos centramos en las que se encuentran los co-

mandos de control y configuracion del Drone:

• ARDroneLib: Contiene el API para configurar el AR.Drone

• Examples: Contiene ejemplos compilados.

La carpeta ARDrone Lib, queda estructurada de la siguiente forma:

• FFMPEG: Librerıa de codigo abierto que permite grabar, convertir y procesar audio

y video, en otras palabras es la encargada de procesar el video del AR.Drone.

• Soft: Contiene el codigo especıfico del Drone

• VP SDK: Librerıas de proposito general.

Dentro de las carpetas mencionadas podemos encontrar los ficheros principales:

•Ardrone tool: Inicializa comunicacion con el Drone.

•AT: Contiene las funciones para controlar el Drone a traves de AT Commands.

•Navdata: Recibe y decodifica los datos de informacion del estado del Drone.

2.3. PUNTO DE COMUNICACION SOCKET

Un socket es un punto de comunicacion por el cual un proceso puede emitir o recibir informacion.

Los sockets son capaces de utilizar el protocolo TCP y UDP. Utilizan una serie de instrucciones

especıficas para establecer el punto de comunicacion, conectandose a una maquina remota en un

puerto asignado que este disponible.

2.4. APLICACION CLIENTE

La aplicacion cliente que hemos hecho para Android se conecta mediante un socket usando el

protocolo TCP a una aplicacion servidor. La aplicacion permite enviar datos al servidor y desde

este se puede dar uso de los datos.

31

Page 33: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

El diagrama de la comunicacion entre el cliente y un servidor es mostrado en la figura 7.

Figura 7: Diragrama de conexion entre el cliente y el servidor

Establecemos la conexion, el servidor espera a que el cliente se conecte, una vez conectados, se

hace una peticion, obtiene una respuesta y la comunicacion se mantiene hasta que la sesion cierra.

En nuestro caso el cliente sera una app Android que se conectara a internet (ya sea con WiFi o

conexion de datos moviles), estableciendo la conexion con una computadora con conexion a inter-

net donde correra la aplicacion servidor, como se ilustra en la figura 8.

32

Page 34: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Figura 8: Diagrama de la conexion entre cliente y servido a traves de internet.

2.4.1. CODIGO DEL CLIENTE-INTERFAZ GRAFICA

Desarrollamos una interfaz grafica que permite al usurio un ambiente visual para tener el con-

trol del Drone. La interfaz cuenta con 12 botones distribuidos de la siguiente manera:

• Boton Conectar: Permite establecer la comunicacion con la aplicacion servidor.

• Boton Enviar: Permite el envıo de mensajes de texto.

• 8 Botones de comando utilizados para el movimiento del Drone en diferentes direcciones.

• Boton CV/CH: Utilizado para seleccionar la camara del Drone con la que se desea rea-

lizar la grabacion del video.

• Boton Desconectar: Permite cerrar la comunicacion con la aplicacion servidor.

A continuacion se describe el codigo para generar la interfaz.

33

Page 35: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

1

2 <LinearLayout xmlns : android=” http :// schemas . android . com/apk/ r e s / android ”

3 //Se genera l a ventana p r i n c i p a l de l a ap l i c a c i on nombrada por java como

4 l ayout p r i n c i p a l .

5

6 android : id=”@+id / gra layout ”

7 android : layout width=” f i l l p a r e n t ”

8 android : l a y o u t h e i g h t=” f i l l p a r e n t ”

9 android : l a y o u t g r a v i t y=” c e n t e r h o r i z o n t a l ”

10 android : background=”#660033”

11 android : g rav i ty=” cente r | c e n t e r h o r i z o n t a l | c e n t e r v e r t i c a l | c l i p h o r i z o n t a l |

f i l l v e r t i c a l ”

12 android : o r i e n t a t i o n=” v e r t i c a l ” >

13

14 //Se crea un l ayou t secundar io en donde se co loca e l l o go d e l p o l i t e c n i c o y e l

nombre de l a ap l i cac ion , a s i como e l nombre de l a e s cue l a .

15 <LinearLayout

16

17 android : layout width=” match parent ”

18 android : l a y o u t h e i g h t=” wrap content ”

19 android : backgroundTint=”#CCCCCC”

20 android : g rav i ty=” cente r ”

21 android : o r i e n t a t i o n=” v e r t i c a l ” >

22 //Cuadro de t e x t o que muestra e l nombre de l a e s cue l a

23 <TextView

24 android : id=”@+id / textView2 ”

25 android : layout width=” match parent ”

26 android : l a y o u t h e i g h t=” match parent ”

27 android : background=”#CCCCCC”

28 android : backgroundTint=”#CCCCCC”

29 android : g rav i ty=” c e n t e r h o r i z o n t a l ”

30 android : t ex t=”ESIME ZACATENCO”

34

Page 36: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

31 android : textAppearance=”? android : a t t r /textAppearanceMedium”

32 android : t extCo lor=”#004400” />

33 </LinearLayout>

34

35 <LinearLayout

36

37 android : l a y o u t h e i g h t=”96dp” >

38

39 <ImageView

40 android : id=”@+id /imageView1”

41 android : layout width=”70dp”

42 android : l a y o u t h e i g h t=” match parent ”

43 android : l a y o u t g r a v i t y=” cente r | c e n t e r h o r i z o n t a l ”

44 android : l ayout we ight=” 0 .03 ”

45 android : s r c=”@drawable/ i c l a u n c h e r ” />

46 //Cuadro de t e x t o que muestra e l nombre de l a ap l i c a c i on ARDrone−IPN

47 <TextView

48 android : id=”@+id / textView1 ”

49 android : layout width=” wrap content ”

50 android : l a y o u t h e i g h t=” match parent ”

51 android : l ayout we ight=” 0 .06 ”

52 android : g rav i ty=” cente r ”

53 android : t ex t=”ARDrone−IPN”

54 android : t extCo lor=”#FFFFFF”

55 android : t e x t S i z e=”18 sp” />

56 </LinearLayout>

57

58 //Se crea un l ayou t secundar io en donde se co locan dos cuadros de t e x t o

ho r i z on t a l e s , uno en donde se ingre sa l a d i r e c c i on IP y e l o t ro e l puer to de

comunicacion .

59 <LinearLayout

60 android : id=”@+id / ip l ayout ”

35

Page 37: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

61 android : layout width=” f i l l p a r e n t ”

62 android : l a y o u t h e i g h t=” wrap content ”

63 android : background=”#CCCCCC”

64 android : backgroundTint=”#CCCCCC”

65 android : o r i e n t a t i o n=” h o r i z o n t a l ” >

66

67 <TextView

68 android : id=”@+id / t x t i p ”

69 android : layout width=” wrap content ”

70 android : l a y o u t h e i g h t=” wrap content ”

71 android : backgroundTint=”#CCCCCC”

72 android : t ex t=”IP : ”

73 android : t extCo lor=”#000000”

74 android : t e x t S i z e=”15 pt” />

75

76 <EditText

77 android : id=”@+id / ip input ”

78 android : layout width=” f i l l p a r e n t ”

79 android : l a y o u t h e i g h t=” wrap content ” />

80 </LinearLayout>

81

82 <LinearLayout

83 android : id=”@+id / por t l ayout ”

84 android : layout width=” f i l l p a r e n t ”

85 android : l a y o u t h e i g h t=” wrap content ”

86 android : background=”#CCCCCC”

87 android : o r i e n t a t i o n=” h o r i z o n t a l ” >

88

89 <TextView

90 android : id=”@+id / tx tpor t ”

91 android : layout width=” wrap content ”

92 android : l a y o u t h e i g h t=” wrap content ”

36

Page 38: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

93 android : t ex t=” Puerto : ”

94 android : t extCo lor=”#000000”

95 android : t e x t S i z e=”15 pt” />

96

97 <EditText

98 android : id=”@+id / port input ”

99 android : layout width=” f i l l p a r e n t ”

100 android : l a y o u t h e i g h t=” wrap content ” />

101 </LinearLayout>

102

103 //Se crea un l ayou t secundar io en donde se co locan un boton que t i e n e un mensaje

de conectar , a s como una animacion de LED’ s que cambia de co l o r ro jo a verde

segun sea e l e s tado de conexion ; es dec ir , se observara un LED ro jo cuando no

haya conexion y un LED verde cuando l a conexion sea e x i t o s a .

104

105 <LinearLayout

106 android : id=”@+id / conneyt lay ”

107 android : layout width=” f i l l p a r e n t ”

108 android : l a y o u t h e i g h t=”50dp”

109 android : background=”#4E514F”

110 android : o r i e n t a t i o n=” h o r i z o n t a l ” >

111

112 <Button

113 android : id=”@+id / btcnt ”

114 android : layout width=” wrap content ”

115 android : l a y o u t h e i g h t=” f i l l p a r e n t ”

116 android : g rav i ty=” c e n t e r v e r t i c a l ”

117 android : t ex t=” Conectar ” />

118

119 //Se crea un cuadro de t e x t o que muestra un mensaje de En espera cuando se

pres iona e l boton de conectar y un mensaje de Conexion Ok cuando l a

comunicacion con e l s e r v i d o r se r e a l i z a ex i tosamente .

37

Page 39: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

120 <TextView

121 android : id=”@+id / t x t s t a t u s ”

122 android : layout width=” wrap content ”

123 android : l a y o u t h e i g h t=” wrap content ”

124 android : g rav i ty=” cente r ”

125 android : t ex t=” . . En espera . . ”

126 android : t extCo lor=”#FFFFFF”

127 android : t e x t S i z e=”14 pt” />

128 //Animacion de LED’ s .

129 <ImageView

130 android : id=”@+id / l e d s ”

131 android : layout width=” f i l l p a r e n t ”

132 android : l a y o u t h e i g h t=” wrap content ”

133 android : g rav i ty=” f i l l ”

134 android : s r c=”@drawable/ o f f ” >

135 </ImageView>

136 </LinearLayout>

137

138 <LinearLayout

139

140 //Se crea o tro l ayou t secundar io que cont i ene un cuadro de t e x t o que d i ce Enviar

mensaje : , o t ro cuadro de t e x t o que por d e f a u l t t i e n e un mensaje de Hola , en

donde se puede ing r e sa r cua l q u i e r o t ro mensaje y un boton que d i ce Enviar .

141 android : id=”@+id / l a y o u t t x t ”

142 android : layout width=” f i l l p a r e n t ”

143 android : l a y o u t h e i g h t=” wrap content ”

144 android : background=”#660033”

145 android : o r i e n t a t i o n=” v e r t i c a l ” >

146

147 <TextView

148 android : id=”@+id / t x t l b l ”

149 android : layout width=” f i l l p a r e n t ”

38

Page 40: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

150 android : l a y o u t h e i g h t=” wrap content ”

151 android : t ex t=” Enviar mensaje : ”

152 android : t extCo lor=”#FFFFFF”

153 android : t e x t S i z e=”12dp” />

154

155 <LinearLayout

156 android : id=”@+id / txtbox ”

157 android : layout width=” f i l l p a r e n t ”

158 android : l a y o u t h e i g h t=”41dp”

159 android : background=”#660033”

160 android : o r i e n t a t i o n=” h o r i z o n t a l ” >

161

162 <EditText

163 android : id=”@+id / i n p u t t x t ”

164 android : layout width=”228dp”

165 android : l a y o u t h e i g h t=”32dp”

166 android : t ex t=”Hola”

167 android : t e x t S i z e=”12dp” />

168

169 <Button

170 android : id=”@+id / sndtxt ”

171 android : layout width=”0dp”

172 android : l a y o u t h e i g h t=” wrap content ”

173 android : layout marginBottom=”8dp”

174 android : l ayout we ight=”1”

175 android : t ex t=” Enviar ” />

176 </LinearLayout>

177 </LinearLayout>

178 //Se crea 2 l a you t s secundar ios que cont ienen 9 botones con l o s que se tendra e l

c on t r o l d e l Drone .

179 <LinearLayout

180 android : id=”@+id / bts ”

39

Page 41: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

181 android : layout width=” f i l l p a r e n t ”

182 android : l a y o u t h e i g h t=” wrap content ”

183 android : o r i e n t a t i o n=” h o r i z o n t a l ” >

184

185 //Boton 1 con l a leyenda Take Off que e l e v a a l Drone 1 metro d e l sue l o .

186 <Button

187 android : id=”@+id / bt1 ”

188 android : layout width=” wrap content ”

189 android : l a y o u t h e i g h t=” f i l l p a r e n t ”

190 android : t ex t=”Take Off ” />

191

192 //Boton 2 con l a leyenda Forward que mueve a l Drone 1 metro hacia de l an t e de l a

po s i c i on an t e r i o r .

193 <Button

194 android : id=”@+id / bt2 ”

195 android : layout width=” wrap content ”

196 android : l a y o u t h e i g h t=” f i l l p a r e n t ”

197 android : t ex t=”Forward” />

198

199 //Boton 3 con l a leyenda Backward que mueve a l Drone 1 metro hacia a t ra s de l a

po s i c i on an t e r i o r .

200 <Button

201 android : id=”@+id / bt3 ”

202 android : layout width=”0dp”

203 android : l a y o u t h e i g h t=” f i l l p a r e n t ”

204 android : l ayout we ight=”1”

205 android : t ex t=”Backward” />

206

207 //Boton 4 con l a leyenda Landing que desc i ende a l Drone a l sue l o .

208 <Button

209 android : id=”@+id / bt4 ”

210 android : layout width=”0dp”

40

Page 42: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

211 android : l a y o u t h e i g h t=” f i l l p a r e n t ”

212 android : l ayout we ight=”1”

213 android : t ex t=”Landing” />

214 </LinearLayout>

215

216 <LinearLayout

217 android : layout width=” match parent ”

218 android : l a y o u t h e i g h t=” wrap content ”

219 android : o r i e n t a t i o n=” v e r t i c a l ” >

220

221 <LinearLayout

222 android : layout width=” match parent ”

223 android : l a y o u t h e i g h t=” wrap content ”

224 android : o r i e n t a t i o n=” v e r t i c a l ” >

225

226 <LinearLayout

227 android : layout width=” match parent ”

228 android : l a y o u t h e i g h t=” wrap content ”

229 android : l ayout we ight=” 2 .49 ” >

230

231 //Boton 5 con l a leyenda Le f t que mueve a l Drone 1 metro a l a i z q u i e r d a de su

pos i c i on o r i g i n a l .

232 <Button

233 android : id=”@+id / button1 ”

234 android : layout width=” wrap content ”

235 android : l a y o u t h e i g h t=” wrap content ”

236 android : l ayout we ight=” 0 .07 ”

237 android : t ex t=” Le f t ” />

238

239 //Boton 6 con l a leyenda Right que mueve a l Drone 1 metro a l a derecha de su

pos i c i on o r i g i n a l .

240 <Button

41

Page 43: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

241 android : id=”@+id / button2 ”

242 android : layout width=” wrap content ”

243 android : l a y o u t h e i g h t=” wrap content ”

244 android : l ayout we ight=” 0 .13 ”

245 android : t ex t=” Right ” />

246

247 //Boton 7 con l a leyenda Up que e l e v a a l Drone 1 metro de su pos i c i on o r i g i n a l .

248 <Button

249 android : id=”@+id / button3 ”

250 android : layout width=” wrap content ”

251 android : l a y o u t h e i g h t=” wrap content ”

252 android : l ayout we ight=” 0 .09 ”

253 android : t ex t=”Up” />

254

255 //Boton 8 con l a leyenda Down que desc i ende a l Drone 1 metro de su pos i c i on

o r i g i n a l .

256 <Button

257 android : id=”@+id / button4 ”

258 android : layout width=” wrap content ”

259 android : l a y o u t h e i g h t=” wrap content ”

260 android : l ayout we ight=” 0 .09 ”

261 android : t ex t=”Down” />

262

263 //Boton 7 con l a leyenda CV/CH se l e c c i ona l a camara de l Drone ac t i vada

264 <Button

265 android : id=”@+id / button5 ”

266 android : layout width=” wrap content ”

267 android : l a y o u t h e i g h t=” wrap content ”

268 android : t ex t=”CV/CH” />

269 </LinearLayout>

270

271 </LinearLayout>

42

Page 44: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

272

273 </LinearLayout>

274

275 <LinearLayout

276 android : layout width=” match parent ”

277 android : l a y o u t h e i g h t=” wrap content ”

278 android : o r i e n t a t i o n=” v e r t i c a l ” >

279

280 </LinearLayout>

281

282 //Se crea e l u l t imo l ayou t secundar io que cont i ene un boton con l a leyenda de

Desconectar .

283 <LinearLayout

284 android : layout width=” match parent ”

285 android : l a y o u t h e i g h t=” wrap content ”

286 android : o r i e n t a t i o n=” v e r t i c a l ” >

287

288 <Button

289 android : id=”@+id / b t d i s c ”

290 android : layout width=” f i l l p a r e n t ”

291 android : l a y o u t h e i g h t=” wrap content ”

292 android : t ex t=” Desconectar ” />

293

294 </LinearLayout>

295

296 </LinearLayout>

2.4.2. CODIGO DEL CLIENTE-COMANDOS DE LA INTERFAZ GRAFICA

Para poder usar el socket realizado en la interfaz grafica usamos la clase “Socket”, ademas la

direccion IP del server (direccion IP estatica) y el puerto TCP que se emplea para la comunicacion,

se ha definido al puerto 5500 para la conexion como se muestra en el siguiente codigo.

43

Page 45: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

1 package t e s t . S o ck e t t e s t ;

2

3 /∗Se importan l a s l i b r e r i a s co r r e spond i en t e s que u t i l i z a Java para l a r e a l i z a c i o n

de un socke t ∗/

4 import java . i o . IOException ;

5 import java . i o . ObjectInputStream ;

6 import java . i o . ObjectOutputStream ;

7 import java . i o . StreamCorruptedException ;

8 import java . net . Socket ;

9

10 import android . app . Ac t i v i ty ;

11 import android . g raph i c s . Color ;

12 import android . os . Bundle ;

13 import android . u t i l . Log ;

14 import android . view . View ;

15 import android . view . View . OnCl ickListener ;

16 import android . widget . Button ;

17 import android . widget . EditText ;

18 import android . widget . ImageView ;

19 import android . widget . TextView ;

20

21 //Se crea l a c l a s e S o c k e t t e s t

22 public class So ck e t t e s t extends Act iv i ty {

23

24

25 //Dec larac ion de v a r i a b l e s u t i l i z a d a s

26 private Button btconect , b td i s conect , btsndtxt , btnizq , btnder , bt1 , bt2 , bt3 , bt4 ,

bt5 , bt6 , bt7 , bt8 , bt9 ;

27

28 private TextView t x t s t a t u s ;

29 private EditText ip input , port input , i n p u t t x t ;

30 private ImageView l e d s ;

44

Page 46: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

31 Socket miCl iente ;

32

33 //Prueba de conexion con l a ap l i c a c i on s e r v i d o r

34 private boolean connected = fa l se ;

35 ObjectOutputStream oos ;

36 ObjectInputStream o i s ;

37 Mensaje data mdata ;

38

39 @Override

40 public void onCreate ( Bundle savedIns tanceState ) {

41 super . onCreate ( savedIns tanceState ) ;

42 setContentView (R. layout . main ) ;

43

44 //Se guarda l a animacion para l o s Leds y se dec laran l a s v a r i a b l e s de entrada o

s a l i d a de t e x t o cor re spond i en t e s

45

46 l e d s = ( ImageView ) findViewById (R. id . l e d s ) ;

47

48 i p input = ( EditText ) findViewById (R. id . ip input ) ;

49 port input = ( EditText ) findViewById (R. id . port input ) ;

50 i n p u t t x t = ( EditText ) findViewById (R. id . i n p u t t x t ) ;

51

52 btconect = ( Button ) findViewById (R. id . btcnt ) ;

53 btd i s c onec t = ( Button ) findViewById (R. id . b t d i s c ) ;

54 btsndtxt = ( Button ) findViewById (R. id . sndtxt ) ;

55

56 bt1 = ( Button ) findViewById (R. id . bt1 ) ;

57 bt2 = ( Button ) findViewById (R. id . bt2 ) ;

58 bt3 = ( Button ) findViewById (R. id . bt3 ) ;

59 bt4 = ( Button ) findViewById (R. id . bt4 ) ;

60 bt5 = ( Button ) findViewById (R. id . bt5 ) ;

61 bt6 = ( Button ) findViewById (R. id . bt6 ) ;

45

Page 47: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

62 bt7 = ( Button ) findViewById (R. id . bt7 ) ;

63 bt8 = ( Button ) findViewById (R. id . bt8 ) ;

64 bt9 = ( Button ) findViewById (R. id . bt9 ) ;

65

66

67 t x t s t a t u s = ( TextView ) findViewById (R. id . t x t s t a t u s ) ;

68 //Al pres ionar en conectar

69 btconect . s e tOnCl i ckL i s t ene r (new OnCl ickListener ( ) {

70 @Override

71

72 public void onCl ick ( View v ) {

73 //Nos conectamos y obtenemos e l e s tado de l a conexion

74 boolean c one c t s t a t u s = Connect ( ) ;

75

76 // Si nos pudimos conectar aparecera e l mensaje de Conexion OK

77 i f ( c one c t s t a t u s ) {//mostramos mensaje

78 S e t t x t s t a t u s ( ”Conexion OK ” , 1) ;

79 Change leds ( true ) ; //camiamos img a verde

80

81 // Si no se r e a l i z a l a conexion aparecera e l mensaje de Error

82 } else {// error a l conec tar se

83 Change leds ( fa l se ) ; //camiamos img a ro jo

84 //mostramos msg de error

85 S e t t x t s t a t u s ( ” Error . . ” , 0) ;

86 }

87 }

88 }) ;

89

90 //Al pres ionar en desconec tar manda un mensaje de Desconexion e x i t o s a

91 btd i s c onec t . s e tOnCl i ckL i s t ene r (new OnCl ickListener ( ) {

92 @Override

93 public void onCl ick ( View v ) {

46

Page 48: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

94 Disconnect ( ) ;

95 }

96 }) ;

97

98 btsndtxt . s e tOnCl i ckL i s t ene r (new OnCl ickListener ( ) {

99 @Override

100 public void onCl ick ( View v ) {

101 Snd txt Msg ( i n p u t t x t . getText ( ) . t oS t r i ng ( ) ) ;

102 }

103 }) ;

104

105

106 //Botones de Accion

107 //Por cada boton se programa para que env ie un comando a l s e r v i d o r

108

109 bt1 . s e tOnCl i ckL i s t ene r (new OnCl ickListener ( ) {

110 @Override

111 public void onCl ick ( View v ) {

112 Snd Action (1 ) ;

113 }

114 }) ;

115

116 bt2 . s e tOnCl i ckL i s t ene r (new OnCl ickListener ( ) {

117 @Override

118 public void onCl ick ( View v ) {

119 Snd Action (2 ) ;

120 }

121 }) ;

122

123 bt3 . s e tOnCl i ckL i s t ene r (new OnCl ickListener ( ) {

124 @Override

125 public void onCl ick ( View v ) {

47

Page 49: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

126 Snd Action (3 ) ;

127 }

128 }) ;

129

130 bt4 . s e tOnCl i ckL i s t ene r (new OnCl ickListener ( ) {

131 @Override

132 public void onCl ick ( View v ) {

133 Snd Action (4 ) ;

134 }

135

136 bt5 . s e tOnCl i ckL i s t ene r (new OnCl ickListener ( ) {

137 @Override

138 public void onCl ick ( View v ) {

139 Snd Action (5 ) ;

140 }

141 }) ;

142

143 bt6 . s e tOnCl i ckL i s t ene r (new OnCl ickListener ( ) {

144 @Override

145 public void onCl ick ( View v ) {

146 Snd Action (6 ) ;

147 }

148 }) ;

149

150 bt7 . s e tOnCl i ckL i s t ene r (new OnCl ickListener ( ) {

151 @Override

152 public void onCl ick ( View v ) {

153 Snd Action (7 ) ;

154 }

155 }) ;

156

157 bt8 . s e tOnCl i ckL i s t ene r (new OnCl ickListener ( ) {

48

Page 50: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

158 @Override

159 public void onCl ick ( View v ) {

160 Snd Action (8 ) ;

161 }

162

163 bt9 . s e tOnCl i ckL i s t ene r (new OnCl ickListener ( ) {

164 @Override

165 public void onCl ick ( View v ) {

166 Snd Action (9 ) ;

167 }

168 }) ;

169 /∗ ∗∗∗∗∗∗∗∗∗∗ ∗/

170 }

171 //cambia e l imageview segun es tado de conexion

172 public void Change leds ( boolean s t a t u s ) {

173 i f ( s t a t u s )

174 l e d s . setImageResource (R. drawable . on ) ;

175 else

176 l e d s . setImageResource (R. drawable . o f f ) ;

177 }

178

179 /∗Cambiamos t e x t o de t x t s t a t u s segun parametro f l a g s t a t u s

180 ∗ f l a g s t a t u s 0 error , 1 ok∗/

181 public void S e t t x t s t a t u s ( S t r ing txt , int f l a g s t a t u s ) {

182 // cambie l c o l o r

183 i f ( f l a g s t a t u s == 0) {

184 t x t s t a t u s . setTextColor ( Color .RED) ;

185 } else {

186 t x t s t a t u s . setTextColor ( Color .GREEN) ;

187 }

188 t x t s t a t u s . setText ( txt ) ;

189 }

49

Page 51: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

190

191 //Conectamos

192 public boolean Connect ( ) {

193 //Obtengo datos ingre sados en campos

194 St r ing IP = ip input . getText ( ) . t oS t r i ng ( ) ;

195 int PORT = I n t e g e r . valueOf ( port input . getText ( ) . t oS t r i ng ( ) ) ;

196

197 try {//creamos s o c k e t s con l o s v a l o r e s an t e r i o r e s

198 miCl iente = new Socket ( IP , PORT) ;

199 // s i nos conectamos

200 i f ( miCl iente . i sConnected ( ) == true ) {

201 return true ;

202 } else {

203 return fa l se ;

204 }

205 } catch ( Exception e ) {

206 // Si hubo algun error mostrmos error

207 t x t s t a t u s . setTextColor ( Color .RED) ;

208 t x t s t a t u s . setText ( ” ! ! ! ERROR ! ! ! ” ) ;

209 Log . e ( ” Error connect ( ) ” , ”” + e ) ;

210 return fa l se ;

211 }

212 }

213

214 //Metodo de desconexion

215 public void Disconnect ( ) {

216 try {

217 //Prepramos mensaje de desconexion

218 Mensaje data msgact = new Mensaje data ( ) ;

219 msgact . t exto = ”” ;

220 msgact . Action = −1;

221 msgact . l a s t msg = true ;

50

Page 52: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

222 // avisamos a l s e r v e r que c i e r r e e l cana l

223 boolean v a l a c c = Snd Msg ( msgact ) ;

224

225 i f ( ! v a l a c c ) {//hubo un error

226 S e t t x t s t a t u s ( ” Error ” , 0) ;

227 Change leds ( fa l se ) ;

228 Log . e ( ” Disconnect ( ) −> ” , ” !ERROR! ” ) ;

229

230 } else {//ok nos desconectamos

231 S e t t x t s t a t u s ( ” Desconectado ” , 0) ;

232 //camibmos l e d a ro jo

233 Change leds ( fa l se ) ;

234 Log . e ( ” Disconnect ( ) −> ” , ” ! ok ! ” ) ;

235 // cerramos sock e t

236 miCl iente . c l o s e ( ) ;

237 }

238 } catch ( IOException e ) {

239 // TODO Auto−generated catch b l o c k

240 e . pr intStackTrace ( ) ;

241 }

242

243 i f ( ! miCl iente . i sConnected ( ) )

244 Change leds ( fa l se ) ;

245 }

246

247 //Enviamos mensaje de accion segun e l boton q presionamos

248 public void Snd Action ( int bt ) {

249 Mensaje data msgact = new Mensaje data ( ) ;

250 //no hay t e x t o

251 msgact . t exto = ”” ;

252 // se t eo en e l v a l o r ac t i on e l numero de accion

253 msgact . Action = bt ;

51

Page 53: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

254 //no es e l u l t imo msg

255 msgact . l a s t msg = fa l se ;

256 //mando msg

257 boolean v a l a c c = Snd Msg ( msgact ) ;

258 // error a l env iar

259 i f ( ! v a l a c c ) {

260 S e t t x t s t a t u s ( ” Error ” , 0) ;

261 Change leds ( fa l se ) ;

262 Log . e ( ” Snd Action ( ) −> ” , ” !ERROR! ” ) ;

263

264 }

265

266 i f ( ! miCl iente . i sConnected ( ) )

267 Change leds ( fa l se ) ;

268 }

269

270 //Envio mensaje de t e x t o

271 public void Snd txt Msg ( St r ing txt ) {

272

273 Mensaje data mensaje = new Mensaje data ( ) ;

274 // se t eo en t e x t o e l parametro r e c i b i d o por t x t

275 mensaje . t exto = txt ;

276 // ac t i on −1 no es mensaje de accion

277 mensaje . Action = −1;

278 //no es e l u l t imo msg

279 mensaje . l a s t msg = fa l se ;

280 //mando msg

281 boolean v a l a c c = Snd Msg ( mensaje ) ;

282 // error a l env iar

283 i f ( ! v a l a c c ) {

284 S e t t x t s t a t u s ( ” Error ” , 0) ;

285 Change leds ( fa l se ) ;

52

Page 54: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.4 APLICACION CLIENTEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

286 Log . e ( ” Snd txt Msg ( ) −> ” , ” !ERROR! ” ) ;

287 }

288 i f ( ! miCl iente . i sConnected ( ) )

289 Change leds ( fa l se ) ;

290 }

291

292 /∗Metodo para env iar mensaje por socke t

293 ∗ r e c i b e como parmetro un ob j e t o Mensaje data

294 ∗ re torna boo lean segun s i se pudo e s t a b l e c e r o no l a conexion

295 ∗/

296 public boolean Snd Msg ( Mensaje data msg) {

297

298 try {

299 //Accedo a f l u j o de s a l i d a

300 oos = new ObjectOutputStream ( miCl iente . getOutputStream ( ) ) ;

301 // creo o b j e t o mensaje

302 Mensaje data mensaje = new Mensaje data ( ) ;

303

304 i f ( miCl iente . i sConnected ( ) ) // s i l a conexion cont inua

305 {

306 // l o asoc io a l mensaje r e c i b i d o

307 mensaje = msg ;

308 //Envio mensaje por f l u j o

309 oos . wr i teObject ( mensaje ) ;

310 // envio ok

311 return true ;

312

313 } else {//en caso de que no h a l l a conexion a l env iar e l msg

314 S e t t x t s t a t u s ( ” Error . . . ” , 0) ; // error

315 return fa l se ;

316 }

317

53

Page 55: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.5 APLICACION SERVIDORInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

318 } catch ( IOException e ) {// hubo algun error

319 Log . e ( ”Snd Msg ( ) ERROR −> ” , ”” + e ) ;

320

321 return fa l se ;

322 }

323 }

324 }

2.5. APLICACION SERVIDOR

Una vez realizada la aplicacion del cliente es necesario elegir la aplicacion del servidor que

recibira los datos y proveera de conexion con el cliente a traves de Internet, utilizando un puerto

de TCP con el Drone utilizando Wi-Fi a traves de cuatro vıas principales:

• Para controlar y configurar el AR.Drone se utilizan los AT Commands (Comandos

de CMD),

que se transfieren por el puerto UDP 5556 con una frecuencia de 30 veces por segundo.

• La informacion sobre el estado del AR.Drone esta contenido en los NavData, bajo puerto

UDP 5554 y en dos frecuencias: 15 veces por segundo en modo Demo y 200 veces por

segundo en modo Debug.

• El Video Stream se mueve bajo TCP en el puerto 5555. Las imagenes que recibe el

dispositivo pueden decodificarse usando el Codec incluido en el SDK.

• Los Datos crıticos van al puerto de Control TCP 5559.

2.5.1. CODIGO DEL SERVIDOR

Como funcion principal del servidor permite la comunicacion entre la aplicacion cliente y la

aplicacion propia del Drone, en otras palabras sirve como interfaz de control; es decir, el servidor

recibe la informacion enviada a traves del cliente para traducirla en comandos de control que son

54

Page 56: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.5 APLICACION SERVIDORInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

enviados al Drone.

Esto se logra con el siguiente codigo:

1 package t e s t . S o ck e t t e s t ;

2

3 //Se importan l a s l i b r e r i a s co r r e spond i en t e s para un socke t en Java

4

5 import java . i o . IOException ;

6 import java . i o . ObjectInputStream ;

7 import java . i o . ObjectOutputStream ;

8 import java . net . ServerSocket ;

9 import java . net . Socket ;

10

11 import de . yadrone . apps . c o n t r o l c e n t e r . CCFrame ;

12 import de . yadrone . apps . t u t o r i a l . T u t o r i a l A t t i t u d e L i s t e n e r ;

13 import de . yadrone . apps . t u t o r i a l . TutorialCommander ;

14 import de . yadrone . apps . t u t o r i a l . Tuto r i a lV ideoL i s t ene r ;

15 import de . yadrone . base . ARDrone ;

16 import de . yadrone . base . IARDrone ;

17 import de . yadrone . base . command . CommandManager ;

18 import de . yadrone . base . except ion . ARDroneException ;

19 import de . yadrone . base . except ion . IExcept i onL i s t ene r ;

20

21 //Se crea l a c l a s e Serv idor

22 public class Server {

23 Socket skC l i en t e ;

24 ServerSocket skServ idor ;

25 St r ing datarece ived , subst r ing1 , subs t r i ng2 ;

26 f ina l int PUERTO = 5500 ; // Puerto que u t i l i z a r a e l s e r v i d o r u t i l i z a r e s t e

27 // mismo en e l c l i e n t e

28 St r ing I P c l i e n t ;

29 Mensaje data mdata = null ;

55

Page 57: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.5 APLICACION SERVIDORInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

30 ObjectOutputStream oos = null ;

31 St r ing TimeStamp ;

32

33 //Creamos e l cons t ruc to r d e l o b j e t o Serv idor con e l que se r e a l i z a l a conexion con

e l c l i e n t e

34 Server ( ) {

35

36 try {

37 //Se a c t i v a e l puer to determinado para que e l s e r v i d o r pueda r e c i b i r informacion .

38 System . out . p r i n t l n ( ”∗∗∗∗∗∗∗∗∗∗∗∗ SERVER ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗” ) ;

39 // creamos s e r v e r socke t

40 skServ idor = new ServerSocket (PUERTO) ;

41 System . out . p r i n t l n ( ”Escuchando e l puerto ” + PUERTO) ;

42 System . out . p r i n t l n ( ”En Espera . . . . ” ) ;

43

44 TimeStamp = new java . u t i l . Date ( ) . t oS t r i ng ( ) ;

45

46 try {

47 // Creamos sock e t para manejar conexion con c l i e n t e

48 skC l i en t e = skServ idor . accept ( ) ;

49

50

51 // Esperamos a l c l i e n t e para l a comunicacion

52 // Una vez que se conecte obtenemos l a d i r e c c i on IP

53 I P c l i e n t = skC l i en t e . get InetAddress ( ) . t oS t r i ng ( ) ;

54 System . out . p r i n t l n ( ” [ ” + TimeStamp + ” ] Conectado a l c l i e n t e ”

55 + ”IP : ” + I P c l i e n t ) ;

56 while ( true ) {

57

58 // Manejamos f l u j o de Entrada de l o s datos l e i d o s en e l puer to TCP

59 ObjectInputStream o i s = new ObjectInputStream (

60 skC l i en t e . getInputStream ( ) ) ;

56

Page 58: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.5 APLICACION SERVIDORInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

61

62 //Cremos un Objeto con l o r e c i b i d o d e l c l i e n t e

63 Object aux = o i s . readObject ( ) ; // leemos o b j e t o

64

65 // s i e l o b j e t o es una in s t anc i a de Mensaje data

66 i f ( aux instanceof Mensaje data ) {

67 mdata = ( Mensaje data ) aux ;

68

69 // Analizamos e l mensaje r e c i b i d o

70 // Si no es e l mensaje FINAL

71 i f ( ! mdata . l a s t msg ) {

72

73 // Es un mensaje de Accion

74 i f ( mdata . Action != −1) {

75 // exec accion

76 Exec ( mdata . Action ) ;

77 System . out . p r i n t l n ( ” [ ” + TimeStamp + ” ] ”

78 + ” Ejecutar Accion ” + mdata . Action + ” [ ” + I P c l i e n t + ” ] ” ) ;

79 } else {

80

81 // No es un mensaje de accion entonces es de t e x t o y se imprime en l a l i n e a de

conso la

82

83 System . out . p r i n t l n ( ” [ ” + TimeStamp + ” ] ”

+ ”Mensaje de [ ” + I P c l i e n t + ”]−−> ”

+ mdata . t exto ) ;

84 }

85 } else {// cerramos sock e t

86 skC l i en t e . c l o s e ( ) ;

87 o i s . c l o s e ( ) ;

88 System . out . p r i n t l n ( ” [ ” + TimeStamp + ” ] Last msg detec ted Conexion cerrada ,

g r a c i a s vuelva pronto ” ) ;

57

Page 59: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.5 APLICACION SERVIDORInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

89 break ;

90 }

91 } else {

92 // Si no es d e l t i p o esperado , se marca error

93 System . e r r . p r i n t l n ( ”Mensaje no esperado ” ) ;

94 }

95 }

96 } catch ( Exception e ) {

97 e . pr intStackTrace ( ) ;

98 System . out . p r i n t l n ( ” [ ” + TimeStamp + ” ] Error ” ) ;

99 }

100 } catch ( Exception e ) {

101 e . pr intStackTrace ( ) ;

102 System . out . p r i n t l n ( ” [ ” + TimeStamp + ” ] Error ” ) ;

103 }

104 }

105 //En base a l cod igo de accion r e c i b i d o rea l i za remos una accion

106 public void Exec ( int action num ) {

107 St r ing ACTNUM = null ;

108

109

110 try {

111 switch ( action num ) {

112 case 1 : {

113 IARDrone drone = null ;

114 try

115 {

116 // Tutor i a l Sec t ion 1

117 drone = new ARDrone ( ) ;

118 drone . addExcept ionListener (new

IExcept i onL i s t ene r ( ) {

58

Page 60: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.5 APLICACION SERVIDORInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

119 public void exept ionOccurred (

ARDroneException exc )

120 {

121 exc . pr intStackTrace ( ) ;

122 }

123 }) ;

124 drone . s t a r t ( ) ;

125 //VOLAR AL DRONE

126 // Tutor i a l Sec t ion 2

127 new T u t o r i a l A t t i t u d e L i s t e n e r ( drone ) ;

128

129 // Tutor i a l Sec t ion 3

130 new Tutor i a lV ideoL i s t ene r ( drone ) ;

131

132

133 CommandManager cmd = drone . getCommandManager ( ) ;

134 int speed = 30 ; // percentage o f max speed

135

136 cmd . takeOf f ( ) . doFor (3000) ;

137 cmd . hover ( ) . doFor (20000) ;

138 //cmd . land ing () ;

139

140 //FIN DE VOLAR AL DRONE

141 }

142 catch ( Exception exc )

143 {

144 exc . pr intStackTrace ( ) ;

145 }

146 f ina l ly

147 {

148 i f ( drone != null )

149 drone . stop ( ) ;

59

Page 61: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.5 APLICACION SERVIDORInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

150

151 System . e x i t (0 ) ;

152 }

153

154 break ;

155 }

156 case 2 : {

157 cmd . forward ( speed ) . doFor (2000) ;

158 cmd . hover ( ) . doFor (1000) ;

159 break ;

160 }

161 case 3 : {

162 cmd . backward ( speed ) . doFor (2000) ;

163 cmd . hover ( ) . doFor (2000) ;

164 break ;

165 }

166 case 4 : {

167 cmd . land ing ( ) ;

168 IARDrone drone = null ;

169 drone = new ARDrone ( ) ;

170 drone . addExcept ionListener (new IExcept i onL i s t ene r ( )

{

171 public void exept ionOccurred (

ARDroneException exc )

172 {

173 exc . pr intStackTrace ( ) ;

174 }

175 }) ;

176 CommandManager cmd = drone . getCommandManager ( ) ;

177

178 cmd . land ing ( ) ;

179

60

Page 62: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.5 APLICACION SERVIDORInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

180 break ;

181 case 5 : {

182 cmd . goLef t speed ) . doFor (2000) ;

183 cmd . hover ( ) . doFor (2000) ;

184 break ;

185 }

186

187 case 6 : {

188 cmd . goRight ( speed ) . doFor (2000) ;

189 cmd . hover ( ) . doFor (2000) ;

190 break ;

191 }

192

193 case 7 : {

194 cmd . goUp( speed ) . doFor (2000) ;

195 cmd . hover ( ) . doFor (2000) ;

196 break ;

197 }

198

199 case 8 : {

200 cmd . goDown( speed ) . doFor (2000) ;

201 cmd . hover ( ) . doFor (2000) ;

202 break ;

203 }

204

205 case 8 : {

206 cmd . SwitchCam ( ) ;

207 break ;

208 }

209 }

210 default :{

61

Page 63: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.5 APLICACION SERVIDORInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

211 System . out . p r i n t l n ( ”EXEC Error i n v a l i d parameter :

” ) ;

212 ACTNUM=null ;

213

214 break ;

215 }

216 }

217 //Realizamos l a accion

218 }

219 catch ( Exception e )

220 {

221 /∗ Se lanza una excepc ion s i no se encuentra en e j e c u t a b l e o e l f i c h e r o no es

e j e c u t a b l e . ∗/

222 System . out . p r i n t l n ( ”EXEC Error ”+e ) ;

223 }

224 }

225 public stat ic void main ( St r ing [ ] a rgs ) {

226 new Server ( ) ;

227 }}

62

Page 64: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.6 IMPORTACION DEL PROYECTO A ECLIPSEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

2.6. IMPORTACION DEL PROYECTO A ECLIPSE

La importacion de un proyecto permite trabajar distintas aplicaciones en el entorno eclipse de

JAVA sin cambiar la estructura del proyecto ni del trabajo. Nos permite editar, crear, depurar y

ejecutar el proyecto. La aplicacion del socket se importa a eclipse, al ejecutarla el puerto habilita-

do quedara en espera de que el dispositivo cliente establezca la conexion. Para importar el proyecto:

• Abrimos eclipse y seleccionamos la carpeta donde se encuentra el proyecto, figura 9.

Figura 9: Seleccion de la carpeta del programa del servidor

• Seleccionamos “File”, luego “import” y despues como se muestra en la figura 10

“general” y enseguida “Existing projects into Workspace”.

63

Page 65: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.6 IMPORTACION DEL PROYECTO A ECLIPSEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Figura 10: Importacion del programa a Eclipse

• Posteriormente seleccionamos el directorio que contiene nuestro programa del servidor

y posteriormente “finish” como se muestra en la figura anterior, despues aparecera la

ventana que muestra la ubicacion del proyecto, figura 11.

• Damos clic derecho en nuestro programa importado y seleccionamos “Run As”,

enseguida “Java Application” como se muestra en la figura 12.

• Una vez corriendo el programa, el puerto habilitado queda en espera, para que el

cliente introduzca la IP publica y acceda al dispositivo que tiene asignado el puerto,

figura 13.

64

Page 66: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.6 IMPORTACION DEL PROYECTO A ECLIPSEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Figura 11: Seleccion de la carpeta donde se ubica el proyecto

Figura 12: Arranque de la aplicacion

65

Page 67: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.7 HABILITACION DEL PUERTO 5500 TCPInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Figura 13: Esperando habilitacion del cliente

2.7. HABILITACION DEL PUERTO 5500 TCP

La habilitacion de un puerto 5500 TCP es necesaria para poder utilizar la conexion VNC (por

sus siglas en ingles Virtual Network Computing, Computacion Virtual en Red), que permite el

control de un ordenador remotamente a traves de un ordenador cliente por su estructura basada

en cliente-servidor. El puerto 5500 garantiza la entrega de paquetes en el orden en que fueron

mandados. Solo cuando la conexion del puerto 5500 TCP es habilitada, permitira la transmision

de datos de manera bidireccional.

2.7.1. MAPEO DE PUERTOS

Para poder utilizar algunas aplicaciones se requieren mapear determinados puertos de nuestro

router que requieren ciertas aplicaciones, debido a su software y al hardware que requiere el sistema.

Hardware

Cuando la conexion de internet de un sistema pasa por un dispositivo con capacidad NAT (por

sus siglas en ingles Network Address Translation -Traduccion de direccion de redes), este es un

metodo para que un dispositivo se pueda conectar a varias maquinas externas a su red privada y

que haya conexion entre sı.

Software

Se compone de tres aplicaciones:

66

Page 68: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.7 HABILITACION DEL PUERTO 5500 TCPInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

• Aplicacion cliente: Estas aplicaciones solo reciben datos y no se requiere regularmente

mapeo de puertos, unicamente requieren de un servidor.

• Aplicacion servidor: Estas aplicaciones envıan datos a los usuarios que lo soliciten, re-

quieren del mapeo de uno o varios puertos para la utilizacion de los dispositivos.

• Aplicacion cliente-servidor: Estas aplicaciones realizan la funcion de enviar y recibir da-

tos, de igual forma necesitan la habilitacion de puertos para poder realizar dicha tarea.

El puerto a mapear dependera de la aplicacion, pues esta la determinara debido a su uso.

2.7.2. HABILITACION DEL PUERTO

• Ingresamos la direccion del router en nuestro navegador. En la mayorıa de los casos por

default es “192.168.0.1” o “192.168.1.254”. Aparecera la ventana que ilustra la figura 14 en

donde se ingresa el nombre de usurio (username) “user” y la contrasena “user”.

Figura 14: Ingreso a la configuracion del modem

• Seleccionamos “Advanced” en la barra de menu, figura 15.

Figura 15: Seleccion de la pestana Advanced

67

Page 69: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.7 HABILITACION DEL PUERTO 5500 TCPInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

• Seleccionamos la opcion Forwarding en el submenu, figura 16.

Figura 16: Seleccion de la opcion Forwarding

• Elegimos la opcion “Create IPv4 (Crear IPv4)”.

• Asignamos la direccion IP (privada) de la PC o de la laptop en el campo “Local IP” siendo

la siguiente: 192.168.0.20. el puerto que usaremos es el 5500 de TCP por lo que lo asigna-

mos al campo “Local Start Port” y ”Local End Port”, y especificamos el protocolo TCP.

Por ultimo asignamos un nombre a la aplicacion que sera “Control-Drone”, en la pestana

“Enabled”seleccionamos “On” y seleccionamos “Apply” como se muestra en la figura 17.

• Verificamos que se haya guardado la configuracion del puerto requerido y seleccionamos la

opcion “Forwarding” (Redireccionamiento), figura 18.

• Con este procedimiento la direccion IP “192.168.0.20” tiene asignado el puerto 5500 TCP,

siendo este el que se requiere para lograr la comunicacion entre el Cliente y el Servidor.

68

Page 70: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

2.7 HABILITACION DEL PUERTO 5500 TCPInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Figura 17: Configurando el puerto 5500 a una direccion IP privada.

Figura 18: Verificacion de la habilitacion del puerto

69

Page 71: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

3 PRUEBAS DE CAMPO Y RESULTADOSInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

CAPITULO

3. PRUEBAS DE CAMPO Y RESULTADOS

70

Page 72: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

3.1 INTRODUCCIONInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

3.1. INTRODUCCION

Describiremos la manera en que la aplicacion que se encuentra en nuestro dispositivo movil

puede ingresar al servidor para controlar el Drone. La aplicacion puede controlar el vuelo del

Drone con cualquier maniobra que este pueda realizar, siempre y cuando se conozca el espacio

donde va a operar nuestro dispositivo. Es importante conocer el area donde estara el Drone, para

que no pueda provocarle danos.

Mostraremos como es posible guardar el video captado en nuestro servidor, desde la camara frontal

y vertical del dispositivo.

3.2. COMUNICACION ENTRE CLIENTE Y SERVIDOR

Con base al procedimiento del apartado 2.4 importamos el proyecto en Eclipse y ejecutamos

la aplicacion del servidor. De esta manera tenemos el servidor en espera de conexion del cliente

como se muestra en la figura 19. El servidor puede quedar activo, de manera que el cliente pueda

ingresar y controlar al Drone cuando lo requiera, y no se tenga que realizar el procedimiento de

importacion cada vez que activemos la aplicacion.

Figura 19: Esperando habilitacion del cliente.

Desde el dispositivo movil ejecutamos la aplicacion cliente, donde se requiere la IP publica de

la PC y el puerto TCP de comunicacion del modem como se presenta en la figura 20.

71

Page 73: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

3.2 COMUNICACION ENTRE CLIENTE Y SERVIDORInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Figura 20: Ventana principal de la aplicacion Android.

Ingresamos la direccion IP publica (IP WAN) de la computadora o laptop en el que este co-

rriendo la aplicacion servidor, para esto, accedemos a la configuracion del modem, ingresamos la

siguiente direccion en el navegador de internet: http://192.168.0.1/. Hacemos clic izquierdo en la

pestana “Basic”, donde se muestra la informacion basica de nuestro modem. Este procedimiento

se explico a detalle en el Capitulo 2.

Ingresada la IP y el puerto TCP, establecemos la peticion a la aplicacion del servidor. Si nuestra

conexion es exitosa aparece en nuestra aplicacion cliente “Conexion OK” como se muestra en la

figura 21 y figura 22.

72

Page 74: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

3.2 COMUNICACION ENTRE CLIENTE Y SERVIDORInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Figura 21: IP y puerto TCP ingresados en la aplicacion cliente.

Figura 22: Conexion exitosa.

Desde el servidor se muestra el siguiente mensaje en la lınea de consola en donde se observa la

direccion IP del dispositivo que tiene instalada la aplicacion cliente, figura 23.

73

Page 75: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

3.3 COMUNICACION ENTRE SERVIDOR Y DRONEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Figura 23: Mensaje de conexion en la lınea de consola del servidor.

3.3. COMUNICACION ENTRE SERVIDOR Y DRONE

Una vez establecida la conexion entre cliente y servidor, podemos controlar el vuelo del Drone,

ası como la captura de video de la camara frontal y vertical. Presionamos “Take off” como se

muestra en la figura 24 que inicia el vuelo del Drone (Puede ser configurable desde 1 metro hasta

una altura maxima de 250 metros) o bien, podemos ajustarlo durante el vuelo.

Figura 24: Boton “Take off” presionado.

74

Page 76: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

3.3 COMUNICACION ENTRE SERVIDOR Y DRONEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

En la figura 25 observamos la distancia a la que se eleva el Drone, la cual esta configurada

previamente a 1m del suelo.

Figura 25: Drone elevandose.

Al iniciar el vuelo del Drone, comienza automaticamente a grabar y queda en espera de los

comandos de vuelo o cambio de camara.

Presionando el boton “Up”, figura 26, el Drone se eleva.Puede elevarse hasta donde el usuario

lo requiera como se muestra en la figura 27.

Figura 26: Boton “Up” presionado.

75

Page 77: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

3.3 COMUNICACION ENTRE SERVIDOR Y DRONEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Figura 27: Drone elevandose.

Presionado otros botones como “Right” y “Left” mostrados en la figura 28, se pueden realizar

movimientos en el aire de izquiera y derecha,figura 29.

Figura 28: Boton “Right” y “Left”.

76

Page 78: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

3.3 COMUNICACION ENTRE SERVIDOR Y DRONEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Figura 29: Movimientos del Drone en el aire.

El control aereo del Drone es libre, y podemos llevarlo a cualquier lugar del area que el usuario

desee.

Para acercarlo al suelo presionamos el boton “Down” como se muestra en la figura 30, ası el Drone

descendera como se observa en la figura 31.

Figura 30: Boton “Down” presionado.

77

Page 79: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

3.3 COMUNICACION ENTRE SERVIDOR Y DRONEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Figura 31: Drone descendiendo con el boton “down”.

Una vez que el Drone esta cerca de la superficie, presionamos el boton ”Landing”, figura 32.

Figura 32: Boton “Landing” presionado.

78

Page 80: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

3.3 COMUNICACION ENTRE SERVIDOR Y DRONEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Una vez presionado el boton ”Landing”, el Drone aterriza en el suelo, figura 33.

Figura 33: Drone aterrizando con el boton “Landing”.

El video de la camara frontal del Drone comienza al momento en que la aplicacion se conecta al

servidor, figura 34.Mientras el Drone se eleva la camara frontal permanece activa como se muestra

en la figura 35.

Figura 34: Video obtenido de la camara posterior del AR.Drone a 1 metro de altura.

79

Page 81: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

3.3 COMUNICACION ENTRE SERVIDOR Y DRONEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Figura 35: Video obtenido de la camara posterior del AR.Drone a 3.5 metros de altura.

Para seleccionar entre la camara frontal y vertical del Drone con el boton “CV/CH”, figura 36.

Figura 36: Boton “CV/CH” presionado.

80

Page 82: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

3.3 COMUNICACION ENTRE SERVIDOR Y DRONEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Aunque la camara vertical tiene menor resolucion que la camara frontal, no representa problema

alguno, ya que es posible apreciar la imagen con claridad, figura 37.

Figura 37: Vista de la camara inferior a una altura de 3.5 metros.

El video captado por la camara del Drone se detiene una vez que aterriza como se muestra en

la figura 38.

Figura 38: Camara del Drone detenida

81

Page 83: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

3.3 COMUNICACION ENTRE SERVIDOR Y DRONEInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Se almacenara en nuestro servidor para su posterior visualizacion. La duracion del video de-

pendera de la capacidad de almacenamiento que tenga el servidor, ası como la camara seleccionada

(frontal o vertical).

Es importante conocer los comandos del Drone y practicar entes de manipularlo, ya que el dispo-

sitivo puede danarse por un mal uso y puede dejar de funcionar.

82

Page 84: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

CONCLUSIONESInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

CONCLUSIONES

1. Con el protocolo TCP para la transferencia de datos a traves de un puerto seleccionado, se

garantizo la entrega de paquetes de datos en el mismo orden en que fueron enviados.

La aplicacion desarrollada establece la comunicacion entre el cliente y el servidor, mediante la

conexion TCP con la inicializacion del socket ingresando el puerto TCP y la IP del Host, procesando

la peticion enviada del cliente y generando respuesta para establecer el enlace como se muestra en

la figura 39.

Figura 39: Diagrama de flujo cliente-servidor.

83

Page 85: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

CONCLUSIONESInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

2. Con Java se consiguio el control de procesos en paralelo, para establecer la conexion entre el

cliente y servidor, ası como las acciones que ejecuta el Drone a traves de la SDK que proporciona

el fabricante. Las acciones que podemos realizar se muestran en la figura 40.

Figura 40: Diagrama de flujo de la aplicacion del Drone

84

Page 86: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

CONCLUSIONESInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

3. La interfaz grafica de la aplicacion Android disenada contiene comandos que al accionarse

controlan los movimientos del Drone. La pantalla principal de la interfaz grafica se presenta en la

figura 41. El control esta limitado al conocimiento previo del espacio donde operara el Drone, con

el fin de que el Drone pueda tener una mejor precision en sus movimientos y no sufra choques o

danos permanentes.

Figura 41: Ventana principal de la aplicacion Android.

85

Page 87: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

REFERENCIASInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Referencias

[1] Jakub Hvizdos, Peter Sincak CSc., Control Library for AR.Drone 2.0, Pags. 1-2, 2015.

[2] Arafatur Rahman, Enabling Drone Communication with WiMAX tegnology, Pags. 1-4, 2014.

[3] Roman Bartak, Andrej Hrasko, A Controller for Autonomous Landing of AR.Drone, Charles

University in Prague Pags. 329-330, 2014.

[4] Parrot SA www.parrot.com

[5] DroneShop www.droneshop.mx/producto/qr-y100/c

[6] Marcelo de Lellis Costa de Oliveira, “Aircraft Control and Simulation. John Wiley Sons”, 2da

edicion, 2003.

[7] Diego Fernando Quisi Peralta (2012). “Diseno e implementacion de una aplicacion para dis-

positivos Android en el marco del proyecto pequenas y pequenos cientıficos de la Universidad

Politecnica Salesiana” (tesis de Ingenierıa). Universidad Politecnica Salesiana, Ecuador.

[8] http://compnetworking.about.com/od/wirelessfaqs/f/adhoclimitation.htm

[9] http://facultad.bayamon.inter.edu/cgonzalezr/elen4618/adhoc.pdf

[10] Stefan Junestrand, Xavier Passaret, Daniel Vazquez, “Domotica y hogar digital”, Editorial

Paraninfo, 2005

[11] http://www.pulsarec.es/ar-drone-de-parrot-blog-de-la-productor-audiovisual-en-madrid-

pulsa-rec/

[12] Carballar, Jose Antonio, Jose A. Carballar Falcon, “Wi-Fi : lo que se necesita conocer”, RC

Libros, 2010

86

Page 88: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

GLOSARIOInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

GLOSARIO

• ANDROID: Es un sistema operativo desarrollado principalmente para dispositivos moviles

basado en el nucleo de Linux.

• API: Interfaz de programacion de aplicaciones, es un conjunto de procediminetos o funciones

que proporciona el programador al Sistema Operativo.

• ARM: Conjunto de instrucciones Reducidas Avanzadas de Maquina.

• Bluetooth: Es una especificacion tecnologica que permite la transmision de datos y voz

entre dispositivos de una red de area personal de manera inalambrica.

• Cliente-servidor: Es un modelo de arquitectura de red que establece una conexion entre

equipos de una red a un equipo servidor que es mas potente y el cual

proporciona cierto servicio a los equipos cliente.

• GPS: Es un Sistema de posicionamiento global que se utiliza para detector la posicion de

un objeto en todo el mundo.

• IOS: Es un sistema operativo desarrollado para sistemas de la companıa Apple.

• JAVA: Es un lenguaje de programacion orientado a objetos que trata de eliminar herra-

mientas de bajo nivel en programacion.

• JDK: Kit de desarrollo de Java, es un conjunto de herramientas que permite desarrollar

aplicaciones en lenguaje Java.

• LAN: Es una red de area local, que regularmente se utiliza para enlazar dispositivos en un

rango de 200 metros.

•Modem: Es un dispositivo que permite la conexion entre computadoras a traves de la lınea

Telefonica.

• PDM: Es una tecnica de modulacion que va variando el ancho de los pulsos para regular la

energıa que se envıa a una carga.

• PID: Es un mecanismo de control para calcular el error entre un valor medido y el valor que

deseamos obtener.

87

Page 89: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

GLOSARIOInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

• Puerto Es una interfaz por la cual se pueden enviar y recibir datos de distintos tipos.

• RISC: Conjunto de Instrucciones Reducidas de Computadora.

• SDK: Kit de desarrollo de Software, es un conjunto de herramientas que permite crear

aplicaciones para determinados softwares, sistemas operativos o plataformas.

• Socket: Es un manejador de fichero que se utiliza para solicitar servicios de una red a un

Sistema Operativo.

• UAV: Vehıculo Aereo no Tripulado o simplemente un drone, es un dispositivo aereo que

no tiene tripulacion y actualmente se utilizan para distintas aplicaciones militares,

civiles o de entretenimiento (Drone).

•WIFI: Es un mecanismo que es capaz de establecer una conexion en dispositivos electronicos

de manera inalambrica.

88

Page 90: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

ANEXOSInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

ANEXOS

A.1 PROTOCOLOS UTILIZADOS

A.1.1 TCP (Transmission Control Protocol –Protocolo de Control de Transmision)

El principal proposito de TCP es proporcionar una conexion logica fiable entre parejas procesos.

No asume la fiabilidad de los protocolos de niveles inferiores (como IP) por lo que debe ocuparse

de garantizarla.

TCP se puede caracterizar por los siguientes servicios que suministra a las aplicaciones que lo usan:

• Transferencia de datos a traves de un canal

• Fiabilidad

• Control de flujo

• Multiplexacion

• Conexiones logicas

• Full Duplex

El mecanismo mostrado mas arriba se utiliza en TCP, pero con unas cuantas diferencias:

Como TCP proporciona una conexion con un flujo de bytes, los numeros de secuencia

se asignan a cada byte del canal. TCP divide el flujo de bytes en segmentos. El prin-

cipio de la ventana se aplica a nivel de bytes; es decir, los segmentos enviados y los ACKs

(acuses de recibo o asentimiento) recibidos llevaran numeros de secuencia de forma que

el tamano de la ventana se exprese con un numero de bytes, en vez del de paquetes.

El tamano de la ventana lo determina el receptor, cuando se establece la conexion, y puede

variar durante la transmision de datos. Cada ACK incluira el tamano de la ventana que

acepta el receptor en ese momento. Ahora, el flujo de datos del emisor se puede ver como:

I

Page 91: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

ANEXOSInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Figura 42: Principio de la ventana aplicado a TCP

Donde:

A: Bytes transmitidos que han sido reconocidos.

B: Bytes enviados pero no reconocidos.

C: Bytes que se pueden enviar sin esperar ningun tipo de reconocimiento.

D: Bytes que no se pueden enviar aun.

Recordar que TCP agrupa los bytes en segmentos, y un segmento TCP solo lleva el numero de

secuencia del primer byte.

A.1.2 TCP (Transmission Control Protocol –Protocolo de Control de Transmision)

UDP es basicamente un interfaz de aplicacion. No anade fiabilidad, control de flujo o recupe-

racion de errores a IP. Simplemente sirve como ”multiplexor/ demultiplexor”para enviar y recibir

datagramas, usando los puertos para dirigir los datagramas como se muestra en la figura.

II

Page 92: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

ANEXOSInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Figura 43: UDP, un demultiplexor basado en puertos

Cada datagrama UDP se envıa en un solo datagrama de IP. Aunque el datagrama IP se

fragmente durante la transmision, la implementacion de IP que lo reciba lo reensamblara antes

de pasarselo a la capa de UDP. Todas las implementaciones de IP deben aceptar datagramas de

576 bytes, lo que significa que si se supone un tamano maximo de 60 bytes para la cabecera IP,

queda un tamano de 516 bytes para el datagrama UDP, aceptado por todas las implementaciones.

Muchas implementaciones aceptan datagramas mas grandes, pero no es algo que este garantizado.

El datagrama UDP tiene una cabecera de 16 bytes que se describe en la siguiente figura.

Figura 44: Formato del datagrama UDP

Donde:

Puerto origen:Indica el puerto del proceso que envıa el datagrama. Es el puerto al que se deberıan

dirigir las respuestas.

III

Page 93: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

ANEXOSInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

Puerto destino:Especifica el puerto destino en el host de destino. Longitud:Es la longitud(en bytes)

del mismo datagrama de usuario, incluyendo la cabecera.

Checksum:Es un campo opcional consistente en el complemento a uno de 16 bits de la suma en

complemento a uno de una pseudocabecera IP, la cabecera UDP.

A.1.3 NAT (Network Address Translation-Traduccion de direcciones de Red)

El proceso de la traduccion de direcciones de red (NAT, por sus siglas en ingles) se desarrollo en

respuesta a la falta de direcciones de IP con el protocolo IPv4 (el protocolo IPv6 propondra una

solucion a este problema.

En efecto: en la asignacion de direcciones IPv4, no hay suficientes direcciones IP enrutables (es de-

cir, unicas en el mundo) para permitir que todas las maquinas que necesiten conectarse a internet

puedan hacerlo.

El concepto de NAT consiste en utilizar una direccion IP enrutable (o un numero limitado de direc-

ciones IP) para conectar todas las maquinas a traves de la traduccion, en la pasarela de internet,

entre la direccion interna (no enrutable) de la maquina que se desea conectar y la direccion IP de

la pasarela.

Ademas, el proceso de traduccion de direcciones permite a las companıas asegurar la red interna

siempre y cuando oculte la asignacion de direcciones internas. Para un observador que se ubica

fuera de la red, todos los pedidos parecen provenir de la misma direccion IP.

Traduccion estatica

El concepto de NAT estatica consiste en hacer coincidir una direccion IP publica con una direc-

cion IP de red privada interna. Un router (o, mas precisamente, la pasarela) hace coincidir una

direccion IP privada (por ejemplo, 192.168.0.1) con una direccion IP publica enrutable en internet

y, en cierto sentido, realiza la traduccion mediante la modificacion de la direccion en el paquete

IP.

La traduccion de las direcciones estaticas permite conectar maquinas de red interna a internet de

IV

Page 94: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

ANEXOSInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

manera transparente, aunque no resuelve el problema de escasez de direcciones debido a que se

necesitan n direcciones IP enrutables para conectar n maquinas de la red interna.

Traduccion dinamica

La NAT dinamica permite compartir una direccion IP enrutable (o una cantidad reducida de di-

recciones IP enrutables) entre varias maquinas con direcciones privadas. Ası, todas las maquinas

de la red interna poseen la misma direccion IP virtual en forma externa. Por esta razon, el termino

.enmascaramiento de IP”se usa en ciertos casos para procesar la NAT dinamica.

Para poder ”multiplexar”(compartir) diferentes direcciones IP con una o mas direcciones IP en-

rutables, la NAT dinamica utiliza la traduccion de direcciones de puerto, es decir, la asignacion

de un puerto de origen diferente para cada solicitud, de modo que se pueda mantener una corres-

pondencia entre los pedidos que provienen de la red interna y las respuestas de las maquinas en

internet, las cuales estan dirigidas a la direccion IP del router.

A.1.4 TELNET

Telnet es una utilidad y un protocolo estandar de Internet que se basa en la solicitud de

comentarios (RFC) 854. En esta RFC se especifica un metodo para transmitir y recibir caracteres

ASCII sin cifrar (texto simple) a traves de una red. Se puede utilizar un cliente Telnet ejecutado

en un equipo para conectarse a una sesion de lınea de comandos con el fin de ejecutar aplicaciones.

Solo se admiten las interfaces y aplicaciones basadas en caracteres. El entorno de Telnet no incluye

una capacidad para graficos.

El servidor Telnet hospeda las sesiones remotas de los clientes Telnet. Cuando se ejecuta el servidor

Telnet en un equipo, los usuarios pueden conectarse al servidor con un cliente Telnet desde un

equipo remoto. El servidor Telnet se implementa en Windows como un servicio que se puede

configurar para que se ejecute siempre, incluso cuando ningun usuario ha iniciado sesion en el

servidor.

Cuando un cliente Telnet se conecta a un equipo que ejecuta el servidor Telnet, se solicita al

V

Page 95: INSTITUTO POLITÉCNICO NACIONAL Drone.… · El control del Drone se re ere a la manipulaci on del vuelo, teniendo el control de su velocidad, la distancia y la altura a la que volara

ANEXOSInstituto Politecnico Nacional

La Tecnica al Servicio de la Patria

usuario remoto que especifique un nombre de usuario y una contrasena. La combinacion de nombre

de usuario y contrasena debe ser valida para el servidor Telnet. El servidor Server en Windows

admite dos tipos de autenticacion: NTLM y Contrasena (o texto simple).

Una vez que el usuario ha iniciado una sesion, aparecera el sımbolo del sistema, que se puede utilizar

como si se hubiera iniciado localmente en la consola del servidor. Los comandos que se escriben

en el sımbolo del sistema del cliente Telnet se envıan al servidor Telnet y se ejecutan allı, como si

se hubiera iniciado una sesion localmente en el sımbolo del sistema del servidor. Los resultados de

los comandos ejecutados se devuelven al cliente Telnet, donde se muestran al usuario.

Telnet no admite las aplicaciones que requieren una interfaz grafica de usuario. Sin embargo,

el servidor Telnet y el cliente Telnet pueden interpretar secuencias de caracteres especiales que

proporcionan un cierto nivel de formato y posicionamiento de cursor en la ventana del cliente

Telnet. El servidor Telnet y el cliente Telnet admiten la emulacion de cuatro tipos de terminales:

ANSI, VT-100, VT-52 y VT-NT.

A.2 COMANDOS UTILIZADOS

A.2.1 Comandos AT

La comunicacion con el AR.Drone se realiza a traves de los AT Commmands, que son cadenas

de texto enviados como paquetes TCP y UDP. De esta forma, pueden enviarse ordenes para con-

trolar el dispositivo. Los strings estan codificados como caracteres ASCII de 8 bits.

La sintaxis es la siguiente:

AR.Drone 1.0: AT[nombreComando] = [numeroDecimal][, argumento1, argumento2, ...] LF AR.Drone2,0 :

AT [nombreComando] = [numeroDecimal][argumento1, argumento2, ...] < CR >

Ejemplo: AT P CMD = 21625, 1, 0, 0, 0, 0 ¡LF¿

Un unico paquete UDP puede contener por lo menos un unico AT Command o mas de uno. La

longitud maxima de estos es de 1024 caracteres y hay un retardo de 30 ms entre uno y otro.

VI