Autonomous Flying Robots

The usage of unmanned aerial vehicles (UAV) is a fast spreading appliance in mititary and civil use cases. They are used for observation, exploration, mapping or inspection of areas, but also for border patrol, search and rescue services and for taking agricultural pictures or traffic monitoring. We are using a Quadrocopter with powerful brushless motors, radiation and accelleration sensors and a microcontroller for our research. In a first step, the quadrocopter keeps a connection to a base station to share information. The aim is to fly completely autonomously without the base station. Main parts, besides localization, of this abandonment are control of the flight, generating a map and planning a path in three dimenstions.

AscTec Hummingbird Quadrocopter

Central research questions are:

  • Flight control
  • Leightweight solutions
  • Three-Dimensional mapping
  • Three-Dimensional pathfinding
  • Vision-Based selflocalization

Wiimote tracking

Our visual tracking approach differs from other methods by using low-cost, lightweight commodity consumer hardware. As main sensor we use a Wii remote infrared (IR) camera, which allows robust tracking of a pattern of IR lights in conditions without direct sunlight. The system does not need to communicate with the ground vehicle and works with an onboard 8-bit microcontroller. Nevertheless the position and orientation relative to the IR pattern is estimated at a frequency of approximately 50,Hz. This enables the UAV to fly fully autonomously, performing flight control, self-stabilisation and visual tracking of the ground vehicle.

Internals of the Wii remote. The camera is 8mm*8mm*5mm at a weight of 0.4g. The most right picture shows the camera opened up beside a 1 Cent coin.

This project has grown from simple hovering to autonomous flights. The following video shows the qudrocopter hovering above a pattern:

The latest developments enable the quadrocopter to automously take off, tracking and landing on a moving carrier vehicle. The data coming from the camera contains the pixel position of the four blobs and optional information as intensity and bounding box. The task of calculating the position of a camera from a known pattern of control points and their projection onto the camera's image plane is well known as the perspective-n-point (PnP) problem. Since the operating range of the quadrocopter is restricted in many aspects, we used an algorithm which is optimized to solve this special case of the PnP, resulting in faster processing. We also focus on getting the position and yaw angle from the IR-Pattern, while the pitch and roll angle of the quadrocopter are obtained from the IMU.


As onboard vision unit, we use the camera and the processing power of a mobile phone. The phone is mounted under the quadrocopter and performs image processing like visual localization and tracking. We named our vision system Flyphone.

The quadrocopter prepared for onboard localisation.

In our approach, a quadrocopter first etablishes an image database of the environment. Afterwards, the quadrocopter is able to locate itself by comparing a current image taken of the environment with earlier images in the database.

An example photo and two of the image features.

Therefore, characteristic image features are extracted which can be compared effciently. We analyse three feature extraction methods and five feature similarity measures. The evaluation is based on two datasets recorded under real conditions.


[an error occurred while processing this directive]


= 0; $i--) { $name = mysql_result($result, $i, "betreuer"); $room = mysql_result($result, $i, "room"); $phone = mysql_result($result, $i, "phone"); $email = mysql_result($result, $i, "email"); $email = str_replace ("@", " at ", $email); print "

$name, Tel.: (07071) 29 - $phone, $email

"; } ?> = 0; $i--) { $name = mysql_result($result, $i, "betreuer"); $room = mysql_result($result, $i, "room"); $phone = mysql_result($result, $i, "phone"); $email = mysql_result($result, $i, "email"); $email = str_replace ("@", " at ", $email); print "

$name, Tel.: (07071) 29 - $phone, $email

"; } ?> = 0; $i--) { $name = mysql_result($result, $i, "betreuer"); $room = mysql_result($result, $i, "room"); $phone = mysql_result($result, $i, "phone"); $email = mysql_result($result, $i, "email"); $email = str_replace ("@", " at ", $email); print "

$name, Tel.: (07071) 29 - $phone, $email

"; } ?>

Sebastian Scherer, Tel.: (07071) 29 - 70441, sebastian.scherer at