Where should I go next? Is there any ROS package or stack that can be used as a tutorial/sample to use ardrone_autonomy?

Absolutely. Here are some examples:

“falkor_ardrone” is a ROS package which uses the “ardrone_autonomy” package to implement autonomous control functionality on an AR.Drone.

State Estimation, Autopilot and GUI for ardrone.

This ROS stack includes a series of very basic nodes to show users how to develop applications that use the ardrone_autonomy drivers for the AR drone 1.0 and 2.0 quadrotor robot.

This repository contains the source-code for the Up and flying with the AR.Drone and ROS tutorial series, published on [Robohub](http://www.robohub.org).

AR Drone simulation in Gazebo, compatible with ardrone_autonomy.

How can I report a bug, submit patches or ask for a feature?

github offers a nice and convenient issue tracking and social coding platform, it can be used for bug reports and pull/feature request. This is the preferred method. You can also contact the author directly.

Why the ARDroneLib has been patched?

The ARDrone 2.0.1 SDK has been patched to 1) Enable the lib only build 2) Make its command line parsing compatible with ROS and 3) To fix its weird main() function issue. The patched SDK is being hosted on an external repository.

Why the wifi bandwidth usage is too much?

The driver has been configured by default to use the maximum bandwidth allowed to ensure the best quality video stream possible (please take a look at default values in parameters section). That is why the picture quality received from Drone 2.0 using this driver is far better than what you usually get using other software. If for any reason you prefer the lower quality* video stream, change bitrate_ctrl_mode, max_bitrate and bitrate parameters to the default values mentioned in the AR-Drone developer guide.


Please note that lower quality does not mean lower resolution. By configuring AR-Drone to use bitrate control with limits, the picture gets blurry when there is a movement.

What is the default configuration for the front camera video stream?

Drone 1: 320x240@15fps UVLC Codec Drone 2: 640x360@20fps H264 codec with no record stream

How can I extract camera information and tag type from tags_type[]?

tag_type contains information for both source and type of each detected tag. In order to extract information from them you can use the following c macros and enums (taken from ardrone_api.h)

#define DETECTION_EXTRACT_SOURCE(type)  ( ((type)>>16) & 0x0FF )
#define DETECTION_EXTRACT_TAG(type)     ( (type) & 0x0FF )

typedef enum
  DETECTION_SOURCE_CAMERA_HORIZONTAL=0,   /*<! Tag was detected on the front camera picture */
  DETECTION_SOURCE_CAMERA_VERTICAL,       /*<! Tag was detected on the vertical camera picture at full speed */
  DETECTION_SOURCE_CAMERA_VERTICAL_HSYNC, /*<! Tag was detected on the vertical camera picture inside the horizontal pipeline */

typedef enum
  TAG_TYPE_NONE             = 0,
  TAG_TYPE_ROUNDEL          ,
  TAG_TYPE_STRIPE           ,
  TAG_TYPE_CAP              ,

How can I calibrate the ardrone front/bottom camera?

It is easy to calibrate both cameras using ROS Camera Calibration.

First, run the camera_calibration node with appropriate arguments: (For the bottom camera, replace front with bottom)

rosrun camera_calibration cameracalibrator.py --size [SIZE] --square [SQUARESIZE] image:=/ardrone/front/image_raw camera:=/ardrone/front

After successful calibration, press the commit button in the UI. The driver will receive the data from the camera calibration node, then will save the information by default in ~/.ros/camera_info/ardrone_front.yaml. From this point on, whenever you run the driver on the same computer this file will be loaded automatically by the driver and its information will be published to appropriate camera_info topic. Sample calibration files for AR-Drone 2.0’s cameras are provided in data/camera_info folder.

Can I control multiple drones using a single PC? or can I make my drone connect to a wireless router?

Since version 1.4, the driver supports connecting to multiple AR-Drones from a single PC. Thanks to efforts and patches provided by @kbogert. For more information please check this wiki page.

Is there any support for GPS (Parrot Flight Recorder)

Yes but it is experimental. The code is maintained in a separate branch (gps-waypoint). For more information see this documentation.