Software for automated control of a Parrot AR. Drone (fork of adth's ardrone_control)
Copyright 2012 Ardrone_control authors. See AUTHORS file for details.
For license details please see the file COPYING which you should have received
with this code.
Ardrone_control is software designed to allow autonimous flight of a Parrot
ARdrone 2 (or later?). It concists of two main programs:
ardrone_atd - handles the AT command interface of the drone,
including the requirement for a watchdog command every few mili-seconds.
ardrone_controld - handles controlling the drone,
reads commands from stdin and outputs commands to stdout.
For more discussion of ardrone_control please check out the ardrone_control google group.
This software requires a working network interface for connection to the drone
the gcc compiler or a system providing equivalent libraries and support for
message queues for communication between drone_controld and drone_atd.
In addition, the libav, opencv, libconfig and gsl libraries are required for compilation.
The code has been compiled on Debian Linux using gcc,
and should compile on most Linuxes and may be other unix-like operating systems as well.
At the moment, the code makes use of some GNU specific library functions.
All source is under the src directory.
The commands below assume you have changed into this directory.
A Makefile has been provided which, providing that the libraries are installed
in places where your compiler can find them,
should compile both ardrone_controld and ardrone_atd.
An example command would be:
cd src && make
If you wish to compile one or other of these specify the program name after the make call e.g
would recompile the drone control demon.
First start ardrone_atd and then ardrone_controld.
In most shells this will start ardrone_atd in the background and
ardrone_controld in the foreground so you can type the commands into the
If you want to use a config file you can provide it as an argument to the commands:
ardrone_atd my_config.conf & ardrone_controld my_config.conf
This provides the config file my_config.conf as the second argument to both commands.
It is important to provide the same config file to both commands.
To run these as demon processes you can use fifos,
inetd or other systems to redirect the standard input and output of