
An Open-Source Hardware/Software
Architecture for Quadrotor UAVs
Riccardo Spica
∗
Paolo Robuffo Giordano
∗∗
Markus Ryll
∗∗∗
Heinrich H. Bülthoff
∗∗∗
Antonio Franchi
∗∗∗
∗
Inria Rennes Bretagne Atlantique and IRISA, Campus de Beaulieu,
∗∗
CNRS at IRISA, Campus de Beaulieu, 35042 Rennes Cedex, France
∗∗∗
Max Planck Institute for Biological Cybernetics, Spemannstraße 38,
72076 Tübingen, Germany,
Abstract: In this paper, we illustrate an open-source ready-to-use hardware/software archi-
tecture for a quadrotor UAV. The presented platform is price effective, highly customizable,
and easily exploitable by other researchers involved in high-level UAV control tasks and for
educational purposes as well. The use of object-oriented programming and full support of
Robot Operating System (ROS) and Matlab Simulink allows for an efficient customization,
code reuse, functionality expansion and rapid prototyping of new algorithms. We provide an
extensive illustration of the various UAV components and a thorough description of the main
basic algorithms and calibration procedures. Finally, we present some experimental case studies
aimed at showing the effectiveness of the proposed architecture.
1. INTRODUCTION
Quadrotors are Unmanned Aerial Vehicles (UAVs) actu-
ated by four fixed-pitch independent propellers located at
the vertexes of a cross-shaped structure [11]. In addition
to being able to take-off and land vertically, quadrotors
can reach high angular accelerations thanks to the rela-
tively long lever arm between opposing motors. This makes
them more agile than most standard helicopters or similar
rotorcraft UAVs. For these reasons, and also because of
their affordability and mechanical robustness, this plat-
form has witnessed a considerable growing interest in the
robotics and hobbyist community over the last decade,
being, in some cases, also commercialized as off-the-shelf
products [1, asc].
Nowadays, most of the research efforts are not dealing with
more accurate dynamical modeling, or novel flight control
design, as these issues have reached an adequate level of
maturity and do not need further major improvements, at
least concerning standard applications. The challenge is
rather on how to exploit these systems as a flexible plat-
form for implementing and validating complex and higher-
level tasks, often involving multiple robots interacting at
the same time in partially structured or unstructured
environments. Some examples in this sense can be found
in, e.g., [14, 12, 2].
Nevertheless, obtaining a reliable and operative quadrotor
platform for experimental purposes still requires a con-
siderable investment of time and resources for properly
tuning the system, e.g., for taking care of identification
and calibration of all the various parameters (offsets, bi-
ases, motor curves), gain tuning of the flight controller,
implementation of accurate onboard state estimation fil-
ters, and, last but not least, software development and
debugging. These issues are obviously common to any
robot, but, we believe, are particularly sensitive for flying
robots as the malfunctioning of any hardware/software
component can easily result in a severe crash and loss of
the vehicle. Because of these reasons, many ready-to-use
platforms have been proposed over the last years, each of
them with their pros/cons and spanning a wide range of
prices.
The Hummingbird and Pelican quadrotors by Ascending
Technologies are probably the most widespread platforms
in the research community (see, e.g., [14, 12]). They are
characterized by a solid flight performance thanks to their
lightweight rigid structure, but their price is still expensive
compared to other solutions. An alternative consumer-
oriented and cheaper quadrotor platform, employed in
some research projects, is the AR.Drone Parrot [1] which
is able to achieve a stable near hovering flight only using
its onboard sensors. However, being the AR.Drone an
inexpensive quadrotor designed for the general consumer
market, it possesses clearly some drawbacks when used
within a research project, e.g., 1) it does not allow for the
tuning and customization that are often required in re-
search projects, 2) it is not possible to integrate additional
sensors and high performance computational units (due
to the extremely low payload and fragile structure), and
3) the usability of the integrated sensors for testing new
algorithms is limited by their quality and the latencies at
which the corresponding signals can be accessed. Further-
more, both these architectures are closed-source and the
low-level controller cannot be freely customized to comply
with the users’ needs.
As for open-source architectures, an interesting survey
of some existing projects can be found in [7]. Many of
the referenced solutions are extremely competitive when
hal-00906138, version 1 - 19 Nov 2013
Author manuscript, published in "2nd Workshop on Research, Education and Development of Unmanned Aerial System (2013)"