AR Drone 2.0 Development Environment Setup and Run!!

Hello Everyone:)

From couple of months, I am working on Drone Technology. I have set a simple objective like “controlling the drone through computer” by passing commands.  With respect to commands I passed the Drone should in-act (Like Take-off, Land, Turn Left, Turn Right, and Flip). By keeping this simple objective I started exploring various drones available. The Drone that I found which is ease to control and with reasonable price is AR Parrot 2.0.

What is the AR Drone?

The AR Drone is a Quadcopter created by Parrot. It is mainly used as a flying video game, and several games has been released using Augmented Reality.

Specifications:

  1. When flying outdoor the AR Drone 2.0 can be set in a light and low wind drag configuration.
  2. When flying indoor requires the drone to be protected by external bumpers.

Camera:

  • Forward 720p HD with 92 Degree wide angle
  • Vertical 240p with 64 Degree wide angle

Sensors: Accelerometer, Magnetometer, Pressure, 3 axis gyroscope.

Wi-Fi Network & Connection:

When the drone is turned on, it automatically creates an ad-hoc Wi-Fi. The controlling device connects to the Wi-Fi, and communicates with the drone.

Typically Drone IP Address will be 192.168.1.1 and Drone DHCP server assigns new IP Address to Device between numbers 2-4.

After connecting to Drone Wi-Fi through PC we can check connection with a ping command.

                                                                      $ ping 192.168.1.1

If connection is successful, the ping command will return you the time needed for data to go back and forth to the drone.

The Wi-Fi is used both for sending commands to the drone as well as receiving video from the drone.

 

 

 

Layered Architecture

The SDK:

Parrot released a SDK to help developers creating innovation applications using the Drone. SDK is available for iPhone, Android, Windows and Unix Platforms. Here, I am only concentrating on Linux Platform.

SDK structure

The root of the archive contains several files and directory:

  • ARDroneAPI.dox: doxygen file, used to generate the documentation.
  • ARDroneLib: AR.Drone library (communication with the drone, video codecs etc.)
  • ControlEngine: files specific to the iPhone.
  • Docs: folder where the documentation is generated
  • Examples: folder containing demonstration code for each platform and the ARDrone Tool.

Building the examples

The examples are useful for several reasons:

  • To check that the system has all the needed libraries.
  • To check that the computer can communicate with the drone

The first step is to install the missing package. If you’re using Ubuntu, a script was developed to install them automatically. ARDroneLib/Soft/Build/check_dependencies.sh must be executed with the root privilege. OK is displayed when all the packages are installed.
When all the packages are installed, we are ready to compile the libraries and the examples:

1

2

cd Examples/Linux

make

If you get the following error message:

In file included from ..//VP_Com/linux/vp_com_serial.c:33:
..//VP_Com/vp_com_serial.h:22: error: expected ‘)’ before ‘*’ token

You need to edit the file ARDroneLib/Soft/Build/custom.makefile and change the line

1 USE_LINUX=no

to

1 USE_LINUX=yes

 

We need to connect to the Wi-Fi created by the drone when it is turned on. Its name is ardrone_XXXXX, with XXXXX the ID of the drone.
By default, only two IP addresses are used:

  • 192.168.1.1 Is the drone.
  • 192.168.1.2 Is the device that communicates with it.

Thefore, when we are connected to the Wi-Fi, we need to set our IP address. We can use the following command:

1 sudo ifconfig wlan0 192.168.1.2 netmask 255.255.255.0

 

If the computer address is not 192.168.1.2, the drone won’t be able to communicate with the computer.

Compile Linux Example

  1. Navigate to SDK-> Examples->Linux
  2. Make

Executables programs will be created in the (SDK)/Examples/Linux/Build/Release

Running the SDK Demo Program

$./sdk_demo

It will display various information’s about the AR Drone!

In next I will show how to control Drone Through PC with code!