UAVS
Unmaned Aerial Vehicle
Un dron es un vehículo aéreo que vuela sin tripulación.
Pueden ser controlados via Software o volar de forma autonoma con sistemas embebidos y GPS.
Tienen aplicaciones militares, vigilancia, rescate, monitoreo de trafico, agricultura, incendios, investigacion, geografia.
Regulacion en Colombia Circular 002 del 2015 Aerocivil
Los drones que se pueden operar en Colombia son aquellos que pesen hasta 25Kg. La operación civil de drones de un peso mayor queda prohibida en Colombia.
La operación del dron únicamente podrá hacerse en horario diurno y en condiciones meteorológicas de vuelo visual.
Los drones no podrán volar sobre un área congestionada, edificaciones, público o aglomeración de personas, [....] Tampoco podrán volar desde un aeródromo o en sus proximidades dentro de un radio de 5Km.
Regulacion en Colombia Circular 002 del 2015 Aerocivil
La altura máxima a la que pueden volar es 152 metros y no podrán alejarse más de 750 metros del operador o del lugar de su lanzamiento o despegue.
Si el dron se va a utilizar en labores de fotografía, vídeo, telemetría, datos, sensores, scanner, etc. (sic), se requiere permiso de la Fuerza Aérea Colombiana.
Controladora de Vuelo APM
Controladora de Vuelo APM
Controladora de Vuelo APM - API
Stabilize (manual control)
Alt(itude) hold (fixed Z)
Loiter aka stationkeep (keep fixed X,Y,Z)
Land (reduce Z until barometer detects descending rate <20cm/s and disarm)
Return to Launch (RTL) – first climb to a prespecified altitude (RTL_ALTITUDE), then return to the arming position (HOME)
Guided Mode (GOTO position)
Auto Mode: Execute a script including waypoints, ending in Land, RTL or Loiter.
Protocolos de comunicacion (software)
Protocolos de comunicacion (software)
Command line GCS
Also proxies and multiplexes commands to/from several GCSs (designed for GSC redundancy):
Each MAVLink from a GCS/App forwarded to Autopilot (master)
Each MAVLink from autopilot forwarded to GCS/App
Written in Python
Protocolos de comunicacion MAVLink
MAVLink is the only way to talk to the Autopilot.
MAVLink is a very lightweight, header-only message marshalling library for micro air vehicles.
Authoritative source of information: http://qgroundcontrol.org/mavlink/start
Library support for C/C++/C#, Python, WLua, JavaScript
Two versions defined: v0.9 and v1.0. We use v1.0.
Protocolos de comunicacion MAVLink
Protocolos de comunicacion AR Drone 2/AT Commands
Protocolos de comunicacion AR Drone 2/AT Commands
The AR.Drone 2 AT command protocol is used to control the AR.Drone 2 over wifi
Protocolos de comunicacion AR Drone 2/AT Commands
The AT commands are encoded as 8-bit ASCII characters with a carriage return "<CR>" as a newline delimeter. All AT commands start with "AT*" followed by a command name, a equals sign, a sequence number(starting with 1, which also resets the sequence number), and optionally a list of comma-seperated arguments for the command.
Protocolos de comunicacion AR Drone 2/AT Commands
Configuracion del entorno APM
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
Instalar NodeJS
sudo apt-get install python-pip python-dev build-essential
Instalar Python y pip
Configuracion del entorno APM
sudo apt-get install python-dev python-opencv python-wxgtk3.0
python-pip python-matplotlib python-pygame python-lxml
Instalar dependencias
pip install MAVProxy
pip install future
pip install pymavlink
pip install dronekit
Instalar protocolo y proxy Mavlink
Configuracion del entorno AR
npm install ar-drone
npm install ardrone-autonomy
Instalar cliente para comandos AT con nodejs y librerias
Ejemplos
vehicle = connect('/dev/ttyACM0', wait_ready=True)
vehicle.mode = VehicleMode("GUIDED")
vehicle.armed = True
vehicle.simple_takeoff(aTargetAltitude) # Altitud en metros
Uso de Dronekit con python Mavlink
Ejemplos
var autonomy = require('ardrone-autonomy');
var mission = autonomy.createMission();
mission.takeoff()
.zero()
.altitude(1)
.forward(1)
.right(1)
.left(1)
.backward(1)
.hover(1000) // for 1 second
.land();
Uso de AR drone con Nodejs
Explicacion del Proyecto WEB Voyager2.0