ArticlePDF Available

Abstract and Figures

The current disruptive innovation in civilian drone (UAV) applications has led to an increased need for research and development in UAV technology. The key challenges currently being addressed are related to UAV platform properties such as functionality, reliability, fault tolerance, and endurance, which are all tightly linked to the UAV flight controller hardware and software. The lack of standardization of flight controller architectures and the use of proprietary closed-source flight controllers on many UAV platforms, however, complicates this work: solutions developed for one flight controller may be difficult to port to another without substantial extra development and testing. Using open-source flight controllers mitigates some of these challenges and enables other researchers to validate and build upon existing research. This paper presents a survey of the publicly available open-source drone platform elements that can be used for research and development. The survey covers open-source hardware, software, and simulation drone platforms and compares their main features.
Content may be subject to copyright.
A Survey of Open-Source UAV Flight Controllers and Flight Simulators
Emad Ebeid
, Martin Skriver, Kristian Husum Terkildsen, Kjeld Jensen, Ulrik Pagh Schultz
SDU UAS Center, University of Southern Denmark,
Campusvej 55, Odense, Denmark
Abstract
The current disruptive innovation in civilian drone (UAV) applications has led to an increased need for research and development
in UAV technology. The key challenges currently being addressed are related to UAV platform properties such as functionality,
reliability, fault tolerance, and endurance, which all are tightly linked to the UAV flight controller hardware and software. The
lack of standardization of flight controller architectures and the use of proprietary closed-source flight controllers on many UAV
platforms however complicates this work: solutions developed for one flight controller may be difficult to port to another without
substantial extra development and testing. Using open-source flight controllers mitigates some of these challenges and enables
other researchers to validate and build upon existing research.
This paper presents a survey of the publicly available open-source drone platform elements that can be used for research and
development. The survey covers open-source hardware, software, and simulation drone platforms and compares their main features.
Keywords: Unmanned Aerial Vehicle (UAV), Drones, Flight Controllers, Drone Simulators, Open Platforms, Survey.
1. Introduction
The current disruptive innovation in civilian drone
(Unmanned Aerial Vehicle, UAV) applications and the
associated growth in the drone industry has led to an increased
need for research and development in UAV technology. While5
applications such as aerial filming, mapping and inspection
can be accomplished within the current legal framework and
using technology already available on the market, the industry
is pushing to break down the barriers which will enable
entirely new markets in logistics, e-commerce, surveillance10
etc. Examples of these barriers are Beyond Visual Line
of Sight (BVLOS) flights, which by many stakeholders is
considered to be the next game-changer in the UAV business,
autonomous operations not supervised by a pilot, and long
range flights using small UAVs. Industry and academia are15
collaborating on solving the associated challenges, which
are related to UAV platform properties such as functionality,
reliability, fault tolerance, and endurance, which all are tightly
linked to the UAV flight controller hardware and software.
The lack of standardization of flight controller architectures20
and the use of proprietary closed-source flight controllers
on many UAV platforms however complicates this work, as
solutions developed for one flight controller may be difficult
to port to another without substantial extra development and
testing if at all legally possible. Using open-source flight25
controllers mitigates some of these challenges and enables
other researchers to validate and build upon existing research.
Corresponding author.
Email address: esme@mmmi.sdu.dk (Emad Ebeid)
In this work we present a survey on open-source flight con-
trollers designed for UAVs. The survey is based on 20+ flight
controllers public available on the web. We relate flight con-30
troller hardware (Section 2) to flight controller software (Sec-
tion 3) and compare features, specifications, license types etc.
of each controller and software. Simulation is often used for
software functionality experiments tests before performing ac-
tual flight tests, especially in flight controller research and de-35
velopment which can minimize the risk of loss of control dur-
ing test flights and save time. We include a survey of open-
source simulation systems (Section 4), some of which support
hardware-in-the-loop or software-in-the-loop simulation. Cur-
rently UAVs are under constant and rapid technological devel-40
opment, and the reader should note that the information de-
scribed in this paper is as of February 2018.
1.1. Related work
In 2010 Cao et al. presented a survey of autopilot systems
for small or micro UAVs systems with the objective of provid-45
ing a summary of the available commercial, open-source and re-
search autopilot systems in the market at that moment for poten-
tial users of small UAV [1]. In 2011 M´
eszar´
os surveyed open-
source hardware and software for fixed-wing UAV platforms,
including a design of a small fixed-wing UAV based on one of50
the presented systems with its first field test [2]. In 2012 Lim et
al. surveyed public available open-source projects for quadrotor
UAV systems, presenting eight quadrotors with descriptions of
their avionics, sensor composition, analysis of attitude estima-
tion and control algorithms, and comparison of their additional55
features [3]. In 2016 Sabikan and Nawawi presented a general
view of the implementation of an open-source quadcopter plat-
form to develop a quadcopter research testbed [4], with the aim
Preprint submitted to Journal of Microprocessors and Microsystems: Embedded Hardware Design February 20, 2018
of making the proposed platform expendable and usable in any
application area; they briefly mention a couple of open-source60
flight controller platforms, of which one of them has been used
in their work
1.2. Unmanned Aerial Vehicles
For an introduction to the basics of UAV systems we refer
the interested reader to the textbook by Fahlstrom and Glea-65
son [5]. We however note that compared to control systems
for other advanced autonomous systems such as robotics, the
control of UAVs presents two unique challenges. First, UAVs
have severe constraints in terms of Size, Weight, and Power
(SWaP) [6] not found to the same extent in robotics in gen-70
eral. Second, UAV control systems are in practice almost al-
ways safety-critical systems due to the primary purpose of the
UAV being operation in open-ended environments where hu-
mans may be present [7].
In addition, each UAV platform comes with a license for75
governing the use or redistribution. We refer to the reader to
the article by Christopher Vendome [8] for its coverage of the
software license (e.g., Berkeley Software Distribution (BSD),
The GNU General Public License (GPL), Massachusetts Insti-
tute of Technology (MIT), etc.).80
1.3. Methodology
The information presented in this paper is to a large extent
based on public available information from the web pages of the
corresponding open-source projects developing the software.
This includes manual inspection of schematics and source code85
by the authors in many cases. This approach however implies
that missing information about the presence of a specific fea-
ture in a specific artifact is a threat to our validity. Manually
experimenting with all of the documented projects was how-
ever deemed untractable.90
2. Open-Source Hardware Platforms
This section explores different Open-Source Hardware
(OSH) platforms and summarizes their features. For OSH
platforms, the hardware design such as mechanical drawings,
schematics, bills of materials, Printed Circuit Board (PCB)95
layouts, Hardware Description Language (HDL) source
code and integrated circuit layout data are all released under
free/libre terms [9].
2.1. Overview
Table 1 shows a comparison of the OSH flight controller100
platforms in terms of the MCU, built-in sensors, license, and
interfaces; Table 2 compares the platforms in terms of dimen-
sions, weight, power consumption, and fault tolerance features.
With the exception of APM, all platforms use 32-bit MCUs
based on the ARM architecture (ignoring discontinued plat-105
forms). All platforms have IMUs and support UART, PWM,
and I2C interfaces. There is significant variation in the inter-
faces supported and the physical dimensions. Only a few plat-
forms from the Pixhawk series of platforms support fault toler-
ance features.110
Table 1: Comparison of MCUs, sensors and licenses for OSH flight controller
platforms. Sensors: all platforms have IMUs. Interfaces: all platforms support
UART, PWM and I2C.
Platform MCU Sensors License Interfaces
Pixhawk [10] STM32F427 b, m BSD c, s, a, pp, sb, ds
Pixhawk 2 [11] STM32F427 b, m CC-BYSA-3.0 c, s, a, pp, sb, ds
PixRacer [12] STM32F427 b, m CC-BY 4.0 c, pp, sb, ds
Pixhawk 3 Pro [13] STM32F427 b, m CC BY 4.0 c, s, pp, sb, ds
PX4 FMUv5 and v6 [14] STM32F427 b, m CC BY 4.0 c, s, a, pp, sb, ds
Sparky2 [15] STM32F405 b, m CC BY-NC-SA 4.0 c, pp, sb, ds, da
Chimera [16] STM32F767 b, m, p GPLv2 c, s, a, da, pp, sb, ds, x, au
CC3D [17] STM32F103 None GPLv3 pp, ds, sb
Atom [17] STM32F103 None GPLv3 pp, ds, sb
APM 2.8 [18] ATmega2560 b GPLv3 pp, a
FlyMaple [19] STM32F103 b, m GPLv3 None
Erle-Brain 3 [20] Raspberry Pi b, m CC BY-NC-SA a
PXFmini [20] Raspberry Pi b, m CC BY-NC-SA a
AeroQuad[d] STM32F407 b, m GPLv2 -
Mikrokopter[d] ATmega644 b - s, pp
MatrixPilot[d] dsPIC33FJ256 None GPLv3 None
b: barometer, m: magnetometer, p: pitot tube sensor, c: CAN, s: SPI, a: ADC, pp: PPM,
sb: S.BUS, ds: DSM, da: DAC, x: XBEE, au: AUX, [d]: discontinued.
Table 2: Comparison between OSH flight controller platforms.
Platform Dimensions (mm) Weight (g) Fault tolerance features
Pixhawk [10] 81.5x50x15.5 38 c, IMU
Pixhawk 2 [11] 38.5x38.5x23 39 trp
PixRacer [12] 36x36* 10.9 c, trp, tri
Pixhawk 3 Pro [13] 71x49x23 45 i
PX4 FMUv5 and v6 [14] 71x49x23 45 -
Sparky2 [15] 36x36* 13.5 None
Chimera [16] 89x60* ? tsp
CC3D [17] 36x36* 8 None
Atom [17] 15x7* 4 None
APM 2.8 [18] 70.5x45x13.5 31 None
FlyMaple [19] 50x50x12 15 None
Erle-Brain 3 [20] 95x70x23.8 100 None
PXFmini [20] 31x73* 15 None
AeroQuad [d] - - None
Mikrokopter [d] - - None
MatrixPilot [d] - - None
*: Board without enclosure. Height is the height of the PCB components.
c: co-processor, trp: triple-redundant power supply, tri: triple-redundant IMU, i: IMU,
tsp: twin switching power supply, [d]: discontinued.
2.2. Pixhawk series
The Pixhawk flight controller started at the Computer
Vision and Geometry Lab of ETH Zurich, before becoming an
independent OSH platform project [21]. Pixhawk collaborates
with several partners, including the Linux Foundation115
DroneCode project [22]. It is based on the PX4-Flight
Management Unit (FMU) and multiple versions have been
developed.
2.2.1. Pixhawk Autopilot
The original Pixhawk combines the PX4 FMUv2 with the120
PX4 IOv2 IO board. It runs on an STM32F427 processor with
an STM32F103 failsafe co-processor and has 256 KB RAM. A
binary-compatible derivative called Pixfalcon has also been de-
veloped. It is a more lightweight, FPV optimized version with
less IOs. Figure 1a shows the Pixhawk along with its derivative125
shown in Figure 1b.
2
(a) PIXHAWK (b) Pixfalcon (c) Pixhawk 2
(d) PIXHAWK mini (e) PixRacer (f) PIXHAWK 3 Pro
Figure 1: Autopilot flight controllers
2.2.2. Pixhawk 2 Autopilot
The Pixhawk 2 was originally designed for the quadcopter
3DR Solo, while a standalone version was later released. It is
built on the PX4 FMUv3 and designed by the Pixhawk com-130
munity in colaboration with 3D Robotics. The form factor has
changed into a cube, which features triple redundant IMUs, two
barometers and the ability to connect up to three GNSS mod-
ules. The cube connects to a carrier board through a single
DF17 connector. The standard carrier board provides several135
IOs, similar to the original Pixhawk mentioned above. In addi-
tion, a version of the carrier board is available which has an in-
terface for the Intel Edison, which is meant to run as a compan-
ion computer. Other companion computers can be connected
through the IOs. A derivative of the Pixhawk 2, called Pixhawk140
Mini has been made, which is an evolution of the Pixfalcon.
Figure 1c shows the Pixhawk 2 and the Pixhawk Mini is seen
on Figure 1d.
2.2.3. PixRacer Autopilot and Pixhawk 3 Pro
The PixRacer is built on the PX4 FMUv4 and is designed145
for racing UAVs. It has built-in wifi, which enables wireless
firmware updating, system setup and telemetry. The PixRacer
was evolved into the Pixhawk 3 Pro, which has received an up-
grade of processors and sensors for better performance. Fig-
ure 1e shows the PixRacer and the Pixhawk 3 Pro is shown on150
Figure 1f.
2.2.4. PX4 FMUv5 and v6
With more than 390 contributors, the PX4 hardware has
evolved to FMUv5 at the end of 2017. For PX4 FMUv5, the
processor is updated to STM32F7 with double-precision float-155
ing point unit (FPU) and higher accuracy attitude calculations
based on the Bosch BMI055 IMU. In addition, Dronecode has
announced that the PX4 FMUv6 will be released in 2018 with
an upgrade of the main processor to the STM32H7.
2.3. Sparky2160
The Sparky2 is an OSH platform from TauLabs [23]. It
is based on the STM32F405 Microcontroller Unit (MCU) and
published under the CC BY-NC-SA 4.0 license. Figure 2 shows
the Sparky2 flight controller.
Figure 2: The Sparky2 flight controller from TauLabs.
2.4. Paparazzi165
Paparazzi is an OSH UAV platform which was founded in
2003. Paparazzi is developed at Ecole Nationale de l’Aviation
Civil (ENAC) UAV Lab [24]. It encompasses autopilot systems
and ground station software for multi-rotors, fixed-wing, heli-
copters and hybrid aircraft [25]. In March 2017, ENAC Lab170
released a new autopilot named Chimera which is based on the
latest STM32F7 MCU. Figure 3 shows the Paparazzi Chimera
circuit board.
Figure 3: The STM-based Paparazzi Chimera flight controller
2.5. CC3D & Atom
The CC3D and Atom flight controllers have the same func-175
tionality, but differ in form factor. They are developed by Li-
brePilot, previously known as OpenPilot. They run the LibrePi-
lot firmware, which is further discussed in Section 3.3.1. The
3
flight controllers supports multiple airframes, and their hard-
ware is available under the GPLv3 license. Figure 4 shows the180
CC3D and Atom flight controllers.
(a) (b)
Figure 4: Flight controller boards: (a) CC3D (b) Atom.
2.6. ArduPilot Mega (APM)
The APM is an Arduino Mega-based autopilot, which has
been developed by the DIY Drones community. APM runs the
ArduPilot software, which is described in Section 3.4 and sup-185
ports multiple vehicles. Figure 5 shows the ArduPilot Mega
(APM) v2.8.
(a)
Figure 5: ArduPilot Mega (APM) 2.8 autopilot.
2.7. FlyMaple
FlyMaple is a flightcontroller which is based on the Maple
project. FlyMaple is based on an Arduino style APM processor.190
Figure 6 shows Flymaple flight controller board.
Figure 6: FlyMaple flight controller board
2.8. Erle-Brain 3
The Erle-Brain is a Linux-based flight controller developed
by Erle Robotics located in Spain. Erle-Brain combines an
embedded Linux board (a Raspberry Pi), with a PXFmini195
board, which contains sensors, IO and power electronics.
The PXFmini is an open hardware shield designed for the
Raspberry Pi. The Erle-Brain builds on the DroneCode
foundation (see Section 3.5). Figure 7 shows the Erle-Brain 3
autopilot and its accessory parts.200
(a) (b)
Figure 7: Erle-Brain autopilot: (a) Erle-Brain 3 (b) PXFmini on top of a Rasp-
berry Pi.
2.9. Inactive OSH projects
AeroQuad was an Arduino-based platform, which was dis-
continued in 2015. However, the software is still available [26].
Mikrokopter v2.5 is based on the ATmega1284P-AU MCU.
The schematics are availabe at [27]. The v3.0 is focusing on re-205
dundant systems. However, at the time of writing, the schemat-
ics are not open-source. MatrixPilot was designed for fixed-
wing UAV and controlled by the UAV Development Board v3
from Sparkfun. The board has since been discontinued.
3. Open-Source Software Platforms210
This section explores selected Open-Source Soft-
ware (OSS) flight controllers. We observe that a significant
number of projects have been discontinued (detailed in
Section 3.7), but that in general the codebase of discontinued
projects has been forked and is used in active projects.215
3.1. Overview
Tables 3 and 4 show a comparison of OSS flight controller
platforms in terms of key properties such as the kind of air-
frames supported, support for autonomous flight, availability
of links for C2 and telemetry, fault detection and handling, li-220
censing, source lines of code (SLOC), programming language,
and operating system. (Projects no longer in active develop-
ment are not included.) All active platforms support multirotor
airframes, similarly fixed-wing airframes are supported by all
but one (Hack flight). Autonomous flight is supported by most225
platforms, as are C2 and telemetry links. Fault detection and
handling features are present in most platforms, with PX4 as a
notable exception. There is a strong preference for GPL-based
licenses, with PX4 as a notable exception. The PX4 use of the
BSD 3-Clause license is a significant advantage for its use in230
commercial systems.
4
Table 3: Collection of but not limited to, supported features for OSS flight controller platforms.
Platform Airframes Autonomous
Flight Communication Fault detection
and handling Features
Hack flight mr(4) - pm,sb,ds,msp - -
Cleanflight mr(1-8)/fw sph,swp sb,ib,sd,sh,pm,pw,cf,jeb,ds,xbu,fs,sp,ht,lt,ml,sl,msp c2k,bvw g,bm,dl,rth,hf,ts,at
Betaflight mr(1-8)/fw sph,swp sb,ib,sd,sh,pm,pw,cf,jeb,ds,xbu,fs,sp,ht,lt,ml,sl,msp c2l,c2k,bvw g,bm,dl,rth,hf,ts,at
INAV mr(1-8)/fw fm,swp,sph sb,ib,sd,sh,pm,pw,cf,jeb,ds,xbu,fs,sp,ht,lt,ml,msp c2l,c2k,bvw,c2rl g,at,bm,dl,rth,at
LibrePilot**** mr(3-8)/fw sph, swp, atl sb,ib,sd,sh,pm,pw,xbu,fs,ht,ml,sl,msp c2k g,rth,bac,bm
dRonin**** mr(*)/fw sph sb,fs,ht,ml,ut,msp pa bm,dl,at,rth
ArduPilot mr(1-8)/fw svnf,sph,swp sb,pm,ds,fs,ml ar,sw,apr,sc,c2rl,c2l,c2k,bll,gf g,rlg,loa,bm,rth, ***
PX4 mr(1-8)/fw sph,swp,fm sb,sd,ds,fs,sp,ht,ml,ir gf ,c2k,c2l,c2rl,sc,apr g,rth,bm,dl,rlg,loa,**
Paparazzi mr(+)/fw sph,swp,atl,fw,svnf pm,sb,xbe,ml ar,sw,apr,sc,c2rl,c2l,c2k,bll,gf g,pa,rth,bm,dl,hf,ts,at,rlg,loa,bac
*: Not found in documentation; **: See parameters for more features [28]; ***: See parameters for more [29]; ****: Low source reliability; +: Limited by hardware;
Airframes mr: multirotor (number of propellers); fw: fixed wings
Autonomous Flight sph: Satelite position hold; swp: Satelite way point navigation; atl: automatic take off and landing; fm:: Follow me; svnf: Stereo vision navigation functions;
Communication sb: SBus; ib: iBus; sd: SumD; sh: SumH; pm: PPM; pw: PWM; cf: CRSF; jeb: JetiExBus; ds: DSM; xbu: XBUS; xbe: XBee; fs: FrSky; sp: SmartPort (s.port); ht:
HoTT; lt: LTM; ml: MavLink; sl: SRXL; ut: UAVTalk; msp: Multiwii serial protocol; ir: Iridium SBD;
Fault detection and handling ar: ADS-B receiver support; c2l: Landing when missing C2 link; c2rl: Return to launch or home after missing C2 link; c2k: Kill supply for motors after
missing C2 link; bvw: Battery voltage warning; ada: Auto disarm after timeout; apr: Automatic parachute release; sw: Safety switch to en-/disable output to motors; bll: Land or return to
launch if battery low; gf: Geofence; sc: Pre-Arm Safety Check for sensor error;
Features g: gimbal compatible; pa: Prevent arming when battery low; rth: Return to home; bm: Battery monitoring; dl: Data logging to flash; hf: Head free moving (yaw fixed); ts:
Transponder support; at: PID autotune; rlg: Supports retractable landing gear; loa: Lidar obstacle avoidance; bac: Battery mAh count;
Table 4: Comparison of source code and availability for OSS flight controller
platforms.
Platform License
FC/doc/conf. tool SLOC+ Language OS
Hack flight g/-/lg 3.3k *C++ None
Cleanflight g/-/g 96.3k C Scheduler
Betaflight g/-/g 107k C Scheduler
INAV g/-/g 93.1k C Scheduler
LibrePilot g/cbs/g **87.6k C FreeRTOS [30]
dRonin g/tbd[31]/ **97.6k C ***PiOS
ArduPilot g/cbs/g ****242.1k C/C++ ChibiOS [32]/NuttX [33]/Linux
PX4 b/CC BY 4.0/g ****211.8 C/C++ NuttX [33]
Paparazzi g/gf/g 2106k(C) C/Python ChibiOS [32]/Scheduler
*: C++ header only code, **:flight dir without PiOS; ***:PiOS Pilot Operating System;
****:ArduPilot repository(cpp only) without Ardusub and APMrover; +:Source Lines Of
Code
License b: BSD; lg: GPLv3; lg: Lesser GPLv3; cbs: CC-BY-SA 3.0; tbd: To be
determined; gf: GNU Free Documentation License (GFDL);
3.2. Multiwii series
The first flight control software [34] of the Multiwii se-
ries (Figure 8) was developed by Alexandre Dupus for low-
cost hardware. The initial goal was to control a tricopter with235
an Arduino Pro Mini using Nintendo Wii motion sensors [35].
The original implementation language was Arduino C but later
changed to C++; comparing its 12.5k Source Lines Of Code
(SLOC) with the platform in Table 4, we observe that it is a rel-
atively small software package. The development has stopped240
but the source code is still available along with a Java-based
configuration tool [34]. Baseflight [36] changed the Multiwii
implementation language to C, evolved to processor support
from 8-bit to 32-bit, and made an internet-browser-based con-
figuration tool [37, 38]. Raceflight [39] also has its roots in245
the Multiwii flight controller and have been optimized for UAV
racing and acrobatics, but development has also stopped.
3.2.1. Hack flight
Hack flight is derived from Baseflight, but the source [40]
seems completely rewritten. It supports the STM32L4 based250
Figure 8: Development history originating from the original Multiwii flight
controller software.
Ladybug flight controller and it has a wiki [41] that contains in-
formation about how to setup the controller with receivers and
motors. In addition to the flight code, the repository consists
of a Python-based Ground Control Station (GCS) for reading
sensor values and an Android application for showing altitude.255
Based on statements on the README file, this platform seems
suitable for smaller projects where people want hands-on de-
velopment without too much complexity.
3.2.2. Cleanflight
The first version of the Cleanflight [42] source code [43]260
was forked from Baseflight, but since then functionality has
been inherited from INAV and Betaflight or developed in
Cleanflight. Cleanflight has documented setup guides for
elements such as sensors, flight setup, and for 15 different
flight controller boards, all with ARM-based STM32 F1, F3,265
F4 or F7 MCUs, although the F1 series will not be supported
in future releases. The software contains a browser-based
configuration tool [44] from where the UAV can be configured,
sensors can be read, and parameter tuning performed.
Cleanflight has its origin in Baseflight and the configuration270
tool can be added to Google Chrome [45].
5
Figure 9: Development history from the original OpenPilot flight controller
software.
3.2.3. Betaflight
Betaflight source code [46] and documentation is related
to INAV (Section 3.2.4) and Cleanflight (Section 3.2.2) [47].
This is visible if comparing software and source repository,275
but Betaflight differs according to the readme file, by devel-
oping with focus on creating high performance, leading-edge
feature additions, and wide target support [46]. Cleanflight is
suggesting this platform for people who want to work with ex-
perimental new features [43]. The documentation section de-280
scribes 17 flight controller boards among those the CC3D (Sec-
tion 2.5). The configuration tool is like for Cleanflight, avail-
able for Google Chrome add [48] and the source code is avail-
able [49].
3.2.4. INAV285
INAV [50] is forked from an earlier version of
Cleanflight (Section 3.2.2). INAV has improved navigation
functionalities [51] compared to Betaflight and Cleanflight
with “follow me” functionality and support for GCS with
mission planner running on Windows, Linux, IOS and290
Android. The documentation directory describes setup for
25 flight controller boards. The source repository [52] has a
Google Chrome browser add-on configuration tool [53] similar
to Betaflight and Cleanflight.
3.3. OpenPilot series295
OpenPilot is a flight controller software package that has
been developed through many projects and by different devel-
opers, as illustrated in Figure 9. OpenPilot was the original
flight controller software in this series, but development was
stopped in 2015. Parts of its wiki [54] is still functional and300
the source code [55] is still available. The flight control soft-
ware supports among others the CC3D (Section 2.5) board and
it can control fixed-wing and multirotor UAVs. Similarly Tau
Labs [56] is an inactive flight controller platform from this se-
ries where the source code remains available [57]. The individ-305
ual projects that still are in active development are described in
this section.
3.3.1. LibrePilot
The LibrePilot [58] project started in July 2015 with
focus on research and development of software and hardware310
to be used in a variety of applications, including vehicle
control and stabilization of unmanned autonomous vehicles
and robotics [58]. The source code [59] builds on the
OpenPilot project and it runs on various platforms such as
Sparky2 (Section 2.3) and CC3D (Section 2.5). There is315
online documentation [60] for setting up the software for the
supported boards, UAV configuration, and using sensors and
the GCS.
3.3.2. dRonin
dRonin [61] forked their source code [62] from the Tau Labs320
repository. dRonin has online documentation [31], an online fo-
rum [63], a wiki [64], and additional documentation as repos-
itory files. The code can be used with several flight controller
boards, including Sparky2 (Section 2.3), AeroQuad, and Rasp-
berry Pi with FlyingPIO sensor extension [65]. dRonin can be325
linked to an Android application [66] for sensor readings and
parameter tuning.
3.4. ArduPilot
ArduPilot [67] is capable of controlling a wide range
of vehicle including fixed-wing airplanes, multirotors,330
helicopters, boats, and submarines [68]. The software was
originally developed for 8-bit ARM-based MCUs running
on its own board ArduPilot. This board was however
replaced by ArduPilot Mega (APM) (Section 2.6) and the
software has evolved to be optimized for use with 32-bit335
ARM-based MCUs. Nevertheless the controller can run
under Linux, enabling it to be used on a large class of
electronics from single-board computers all the way up to a
full PC system. ArduPilot has a desktop GCS for mission
planning [69][70], calibration, and vehicle setup for Windows,340
Linux and Mac OSX. Different setups of the AutoPilot system
and installation manuals are available from the ArduPilot web
page [71].
3.5. PX4
The PX4 flight stack and autopilot [72], are a part of the345
DroneCode collaborative project [22] which covers both GCS,
hardware platforms and simulation [73]. PX4 works with many
different airframes for using multirotor, fixed-wing, gliders,
copters and VTOL technology. PX4 is compatible with the
QGroundControl GCSs [74], from where parameters are set,350
sensors read, and autonomous flight configured. Performance
of the flight stack is presented by Meier et al. [75]. The use
of the BSD license and the high level of completeness makes
this flight stack attractive for commercial companies [76]. The
documentation is online [77] for developers and users and355
covers both flight controller and GCS setup.
3.6. Paparazzi software
The Paparazzi project works on a complete UAV system
including electronics (Section 2.4), flight controller soft-
ware [78], autopilot, GCS and simulation (Section 4.6) [16].360
The Paparazzi flight controller can be configured to control
fixed-wing, flapping-wing, hybrid and multirotor airframes in
different configurations, as well as multiUAV systems [79].
From the Paparazzi GCS it is possible to setup parameters,
flight type and configuration, read sensor, data setup a365
flight plan including custom guidance, navigation and
6
cohntrol algorithms [80]. Paparazzi has a source code
documentation [81] for developers as well as a wiki-based
guide [82] for setting up the flight controller.
3.7. Inactive OSS projects370
AutoQuad [83] is a product series that includes UAV
components like Electronic Speed Controller (ESC)s, which
are based on open-source hardware and flight controllers based
on open-source software [84]. The flight controller has been
developed through product generations for more than 6 years.375
The firmware is written for the STM32F4 series MCUs and
supports up to 14 Brushless DC motor (BLDC)s, and it is
compatible with QGroundControl. The source code is still
available but future development seems to be on hold or
stopped.380
JAviator [85] was a research project of the Computational
Systems Group at the Department of Computer Sciences of the
University of Salzburg, Austria [86, 87]. The project was run-
ning from 2006 to 2013 and the project delivered three lay-
ers of software; JAviator Plant (JAP), Flight Control System385
(FCS), and GCS. The FCS software is written in C, runs on
a Robostix-Gumstix stack, and implements the flight control
algorithms. This project however does not seem to be active
anymore.
The AeroQuad [26] flight controller software is written in390
Arduino/C [26] and supports Atmel powered boards, among
those their own developed AeroQuad (Section 2.9). The flight
controller has a desktop configuration tool for setting up param-
eters. AeroQuad supports multirotors UAVs, but there have not
been updates to the source code since 2013.395
As described earlier, the MultiWii, Baseflight, RaceFlight,
OpenPilot and TauLabs are also among the OSS projects where
development has stopped.
4. Open-Source Simulation Platforms
This section explores selected OSSIM platforms and sum-400
marizes their features.
4.1. Overview
Table 5 shows a comparison of selected OSSIM UAV plat-
forms, including the implementation language, supported op-
erating system, and licensing terms. C and C++ are the most405
popular implementation languages, with Python and Java as no-
table exceptions for Morse and jMAVSim. All projects support
Linux, some additionally support MacOS and/or Windows.
4.2. AirSim
Aerial Informatics and Robotics Platform (AirSim) was de-410
veloped by Microsoft in 2017 [94]. AirSim aims to support the
development and testing of algorithms for autonomous vehicle
applications, such as deep learning, computer vision, and re-
inforcement learning algorithms. The AirSim physics engine
is based on Unreal Engine 4 (UE4) [95] and can operate at a415
high frequency for real-time Hardware-in-the-Loop (HIL) sim-
ulations with support for popular protocols (e.g. MavLink).
The simulator follows modular design architecture with an em-
phasis on extensibility. The only supported UAVs are Iris in a
MultiRotor model and in an X-configuration for PX4 quadrotor.420
Figure 10a shows a screenshot of AirSim.
4.3. Gazebo
Gazebo [96] was originally developed at the University
of Southern California, USA in 2002 and later at Open
Source Robotics Foundation (OSRF). Gazebo is the default425
simulator included with ROS, making it one of the most
popular 3D dynamics multi-robot simulator with a very active
community [97]. Gazebo allows the use of different physics
engines and sensor models, and supports easy creation of 3D
worlds, enabling testing of robot designs and algorithms,430
regression testing, and training of AI systems using realistic
scenarios. Gazebo uses a distributed architecture with
separate libraries for physics simulation, rendering, user
interface, communication, and sensor generation. In order
to simulate UAVss in Gazebo, J. Meyer et al. presented a435
framework to simulate a quadrotor using Robot Operating
System (ROS). The framework provides a Gazebo ROS
package named Hector Quadrotor [98] that aims at simulating
diverse quadrotor UAV aspects such as flight dynamics,
onboard sensors like IMUs, external imaging sensors and440
complex environments. Supported UAVss include Quad (Iris
and Solo), Hex (Typhoon H480), Generic quad delta VTOL,
Tailsitter, Plane, and Rover. Figure 10b shows a snapshot of
a quadrotor UAV outdoor simulation in Gazebo. Although
Gazebo is a feature-rich platform, the rendering techniques are445
not as advanced as, e.g., Unreal Engine [99] or Unity [100].
In addition, the Hector package lacks support for protocols
such as MavLink and Hardware platforms such as Pixhawk
(Section 2.2).
4.4. Morse450
Modular Open Robots Simulation Engine (MORSE) is a
generic simulator for research in robotics that is developed
jointly at Laboratory for Analysis and Architecture of Systems
(LAAS) and Office National d’Etudes et de Recherches
Arospatiales (ONERA) [101] since 2011. MORSE relies455
on Blender [102] for physics simulation and for a realistic
display of the simulated environment. MORSE is designed
as a general purpose, modular system simulation of multiple
moving robots in many different kinds of environments [101].
MORSE relies on a component-based architecture. Each460
MORSE component consists of a Blender and a Python file.
The Blender file expresses the physical and visual properties
of the object in the simulated world. The Python file defines
an object class for the component type [101]. The MORSE
component library provides quadrotor dynamic which is465
a simple definition of a quadrotor with a rigid body. Figure 10c
shows a screenshot of a quadrotor UAV simulated in MORSE.
MORSE lacks graphical user interface since it only provides
a command line one. MORSE does not embed any advanced
algorithms (e.g., path planning) since it expects to run such470
algorithms in the simulated software stack of the desired
object.
7
Table 5: Comparison between Open-Source Simulator (OSSIM) drone platforms.
Platform Implementation Language Supported Operating System License
AirSim [88] C++ Windows, Linux MIT
Gazebo [89] C++ Linux, MacOS Apache V2.0
Morse [90] Python Linux BSD
jMAVSim [91] Java Linux, MacOS, Windows BSD 3
New Paparazzi Simulator [92] C Linux, MacOS GPLv2
HackflightSim [93] C++ Windows, Linux GPL
4.5. jMAVSim
Java Micro Air Vehicle Simulator (jMAVSim) is a
simple and lightweight multirotor simulator developed by475
the PIXHAWK engineering team (Section 2.2) [103, 75].
jMAVSim supports the MAVLink protocol, uses the Java3D
library for visualization, and connects directly to the HIL via a
serial connection or to Software-in-the-Loop (SIL) via User
Datagram Protocol (UDP) communication to the autopilot.480
Figure 10d shows a screenshot of a quadrotor UAV application
in jMAVSim. The implementation of jMAVSim is as a single
component based on a relatively simple object-oriented design
with no explicitly documented architecture [104].
4.6. New Paparazzi Simulator485
New Paparazzi Simulator (NPS) is an advanced simulator
with sensor models developed at Ecole Nationale de l’Aviation
Civil (ENAC) UAV Lab (Section 2.4). The default flight model
in NPS is JSBSim which supports a range of relatively complex
airframes. NPS however allows the use of different Flight Dy-490
namic Model (FDM) backends, enabling developers to choose
their own FDM model, for example connecting the simulator to
an FDM expressed in MATLAB Simulink. Different visualiza-
tion options are available, including FlightGear and the Morse
(Section 4.4) simulator. Figure 10e shows a screenshot of the495
simulator running using the Paparazzi GCS. Supported UAVs
include rotorcraft and fixed-wing airframes.
4.7. HackflightSim
HackflightSim is a simple cross-platform quadcopter
simulator developed by Simon D. Levy, Washington and500
Lee University Lexington, USA in 2017. HackflightSim is
implemented in C++, uses Unreal Engine 4, and is based on the
Hackflight firmware which is a Simple C++ quadcopter flight
control firmware for Arduino. The project is similar to AirSim
(Section 4.2) however, it focuses only on quadcopter firmware.505
Figure 10f shows a screenshot of a quadrotor UAV application
in HackflightSim. The implementation of HackflightSim
is as a single component that uses the Unreal Engine for
visualization, similarly to jMAVSim (Section 4.5) the main
component is based on a relatively simple object-oriented510
design with no explicitly documented architecture [105].
4.8. Inactive OSSIM projects
Python Quad Simulator (PyQuadSim) is an open-source
quadrotor simulator in Python for Linux that is stopped in
2015.515
5. Conclusions and Future Work
This paper has presented UAV basics and reviewed more
than 20 different open-source hardware, software, and simula-
tion UAV platforms appropriate for use in a wide range of set-
tings, ranging from basic academic research to serving as the520
foundation for a commercial product. Overall we observe that
open-source flight controller hardware is generally based on
32-bit ARM MCUs but otherwise varies significantly in terms
of interfaces supported and physical dimensions. Support for
fault tolerance features is in general limited, and there is lit-525
tle documentation regarding power consumption. For open-
source flight controller software most projects use a GPL li-
cense, and although some projects have been discontinued, their
codebase is generally still being used in other active projects.
We however note that similarly to the case for field robots [106],530
there is a lack of use of relevant industrial standards for safety-
critical software in the development of open-source flight con-
troller software, which is an issue for use in real-world scenar-
ios. Open-source flight simulator software is generally imple-
mented in C or C++ and in general supports Linux, with some535
use of languages such as Python and Java, and some support for
MacOS and Windows.
Future work will be focusing on a deep analysis of the
power consumption of a combined software and hardware
platforms along with relative costs calculations of the hardware540
ones.
Acknowledgment
This work is supported and partly funded by the Innova-
tionfund Denmark (IFD) Free the Drones (FreeD) project and
from the European Union’s Horizon2020 research and inno-545
vation programme under grand agreement No. 779882 (Team-
Play).
References
[1] H. Chao, Y. Cao, Y. Chen, Autopilots for small unmanned aerial vehi-
cles: A survey, International Journal of Control, Automation and Sys-550
tems 8 (1) (2010) 36–44. doi:10.1007/s12555-010-0105- z.
URL http://dx.doi.org/10.1007/s12555-010- 0105-z
[2] J. M´
eszar´
os, Aerial surveying uav based on open-source hardware and
software, International Archives of the Photogrammetry, Remote Sens-
ing and Spatial Information Sciences 37 (2011) 1.555
[3] H. Lim, J. Park, D. Lee, H. J. Kim, Build your own quadrotor: Open-
source projects on unmanned aerial vehicles, IEEE Robotics & Automa-
tion Magazine 19 (3) (2012) 33–45.
8
(a) AirSim (b) Gazebo
(c) Morse (d) jMAVSim
(e) New Paparazzi Simulator (f) HackflightSim
Figure 10: Simulator screenshots
9
[4] S. Sabikan, S. W. Nawawi, Akademia baru open-source project ( osps )
platform for outdoor quadcopter, Akademia Baru 24 (1) (2016) 13–27.560
[5] P. Fahlstrom, T. Gleason, Introduction to UAV systems, John Wiley &
Sons, 2012.
[6] C. Howard, Uav command, control & communications, Military &
Aerospace Electronics, militaryaerospace. com.
[7] I. Sadeghzadeh, Y. Zhang, A review on fault-tolerant control for un-565
manned aerial vehicles (uavs), in: Infotech@ Aerospace 2011, 2011, p.
1472.
[8] C. Vendome, A large scale study of license usage on github, in: 2015
IEEE/ACM 37th IEEE International Conference on Software Engineer-
ing, Vol. 2, 2015, pp. 772–774.570
[9] D. M. German, M. D. Penta, J. Davies, Understanding and auditing the
licensing of open source software distributions, in: 2010 IEEE 18th In-
ternational Conference on Program Comprehension, 2010, pp. 84–93.
doi:10.1109/ICPC.2010.48.
[10] px4dev, Pixhawk web page.575
URL www.pixhawk.org
[11] ProfiCNC, ProfiCNC.
URL http://www.proficnc.com/
[12] N. Arsov, P. Kocmoud, L. Meier, D. Sidrane, L. Hall, Pixracer autopilot.
URL https://pixhawk.org/modules/pixracer580
[13] P. D. Team, Pixhawk 3 pro.
URL https://docs.px4.io/en/flight_controller/
pixhawk3_pro.html
[14] pixhawk.org, Px4fmu autopilot / flight management unit.
URL https://pixhawk.org/modules/px4fmu585
[15] T. Labs, Sparky2.
URL https://github.com/TauLabs/TauLabs/wiki/
Sparky2
[16] Paparazzi development team, Paparazzi web page.
URL https://wiki.paparazziuav.org/590
[17] LibrePilot/OpenPilot community, CC3D web page.
URL http://opwiki.readthedocs.io/en/latest/user_
manual/cc3d/
[18] ArduPilot Mega team, ArduPilot Mega.
URL www.ardupilot.co.uk595
[19] DFRobot, Flymaple — a flight controller with 10 dof imu.
URL https://www.dfrobot.com/product-739.html
[20] Erle Robotics S.L., Erlerobotics web page.
URL www.erlerobotics.com
[21] L. Meier, P. Tanskanen, L. Heng, G. H. Lee, F. Fraundorfer, M. Polle-600
feys, Pixhawk: A micro aerial vehicle design for autonomous flight us-
ing onboard computer vision, Autonomous Robots 33 (1) (2012) 21–39.
[22] DroneCode, DroneCode project.
URL https://www.dronecode.org/
[23] T. Labs, What is tau labs.605
URL http://taulabs.org/
[24] P. Brisset, A. Drouin, M. Gorraz, P.-S. Huard, J. Tyler, The paparazzi
solution, in: MAV 2006, 2nd US-European Competition and Workshop
on Micro Air Vehicles, 2006.
[25] E. Baskaya, G. Manfredi, M. Bronz, D. Delahaye, Flexible open archi-610
tecture for uass integration into the airspace: Paparazzi autopilot sys-
tem, in: 2016 IEEE/AIAA 35th Digital Avionics Systems Conference
(DASC), 2016, pp. 1–7. doi:10.1109/DASC.2016.7778016.
[26] AeroQuad, AutoQuad Flight Software Platform.
URL https://github.com/AeroQuad615
[27] HiSystems GmbH , MikroKopter.
URL http://wiki.mikrokopter.de/en/FlightCtrl
[28] PX4 Dev Team, PX4 setup parameters.
URL https://docs.px4.io/en/advanced_config/
parameter_reference.html/620
[29] ArduPilot, Ardupilot parameter list.
URL http://ardupilot.org/copter/docs/parameters.
html/
[30] Amazon Web Services (AWS), FreeRTOS web page.
URL https://www.freertos.org/625
[31] dRonin documentation.
URL http://dronin.org/docs/
[32] Giovanni Di Sirio, ChibiOS wiki.
URL http://www.chibios.org/dokuwiki/doku.php/
[33] Gregory Nutt, NuttX web page.630
URL http://nuttx.org/
[34] Alexandre Dupus, Multiwii source code.
URL https://code.google.com/p/multiwii/
[35] Alexandre Dupus, MultiWii wiki.
URL http://www.multiwii.com/wiki/index.php?635
title=MultiWii/
[36] timecop, Baseflight source code.
URL https://github.com/multiwii/baseflight/
[37] timecop, Baseflight configuration tool add for Google Chrome.
URL https://chrome.google.com/webstore/640
detail/baseflight-configurator/
mppkgnedeapfejgfimkdoninnofofigk?hl=en
[38] timecop, Baseflight configuration tool source code.
URL https://github.com/multiwii/
baseflight-configurator/645
[39] RaceFlight, RaceFlight source code.
URL https://github.com/rs2k/raceflight/
[40] S. Levy, Hackflight: Simple quadcopter flight control firmware and sim-
ulator for c++ hackers.
URL https://github.com/simondlevy/hackflight650
[41] S. Levy, Hack flight wiki.
URL https://github.com/simondlevy/Hackflight/
wiki
[42] Cleanflight team, Cleanflight web page.
URL http://cleanflight.com/655
[43] Dominic Clifton (hydra), Cleanflight source code.
URL https://github.com/cleanflight/cleanflight/
[44] Cleanflight gui add source.
URL https://github.com/cleanflight/
cleanflight-configurator660
[45] Cleanflight gui add.
URL https://chrome.google.com/webstore/
detail/cleanflight-configurator/
enacoimjcgeinfnnnpajinjgmkahmfgb
[46] Boris B (borisbstyle) , Betaflight source code.665
URL https://github.com/betaflight/betaflight/
[47] Boris B (borisbstyle) , Betaflight wiki.
URL https://github.com/betaflight/betaflight/
wiki/
[48] Boris B (borisbstyle) , Betaflight gui add source.670
URL https://chrome.google.com/webstore/
detail/betaflight-configurator/
kdaghagfopacdngbohiknlhcocjccjao/
[49] Boris B (borisbstyle) , Betaflight gui add source.
URL https://github.com/betaflight/675
betaflight-configurator/
[50] INAV source code.
URL https://github.com/iNavFlight/inav/
[51] INAV wiki.
URL https://github.com/iNavFlight/inav/wiki/680
[52] INAV Chrome add source.
URL https://github.com/iNavFlight/inav/
[53] INAV Chrome add.
URL https://chrome.google.com/
webstore/detail/inav-configurator/685
fmaidjmgkdkpafmbnmigkpdnpdhopgel/
[54] OpenPilot, OpenPilot wiki.
URL https://opwiki.readthedocs.io/en/latest/
[55] OpenPilot, OpenPilot source code.
URL https://github.com/openpilot/OpenPilot/690
[56] Tau Labs developer team, Tau Labs web page.
URL http://taulabs.org/
[57] Tau Labs developer team, Tau Labs source code.
URL https://github.com/TauLabs/TauLabs/
[58] LibrePilot Team, LibrePilot Project.695
URL http://librepilot.org/
[59] LibrePilot Team, LibrePilot source code.
URL https://github.com/librepilot/LibrePilot/
[60] LibrePilot Team, LibrePilot documentation.
URL https://librepilot.atlassian.net/wiki/700
10
spaces/LPDOC/pages/2818105/Welcome/
[61] dRonin executive committee, dRonin web page.
URL http://dronin.org/
[62] Volunteers and the dRonin executive committee, dRonin source code.
URL https://github.com/d-ronin/dRonin/705
[63] dRonin forum.
URL https://forum.dronin.org/forum/
[64] dRonin wiki.
URL https://github.com/d-ronin/dRonin/wiki/
[65] dRonin Raspberry Pi hat.710
URL https://github.com/d-ronin/dronin- hw/tree/
master/flyingpio/revB/
[66] dRonin android application.
URL https://play.google.com/store/apps/details?
id=org.dronin.androidgcs/715
[67] ArduPilot, Ardupilot source code.
URL www.github.com/ArduPilot/
[68] ArduPilot Dev Team, ArduPilot.
URL http://ardupilot.org/about/
[69] ArduPilot, Ardupilot mission planner.720
URL http://ardupilot.org/planner/index.html/
[70] ArduPilot, Ardupilot mission planner 2.
URL http://ardupilot.org/planner2/index.html/
[71] ArduPilot, Ardupilot documentation.
URL http://ardupilot.org/ardupilot/725
[72] PX4 Dev Team, PX4 source code.
URL https://github.com/PX4/
[73] PX4 Dev Team, PX4 web page.
URL http://px4.io/
[74] QGroundControl, QGroundControl web page.730
URL http://qgroundcontrol.com/
[75] L. Meier, D. Honegger, M. Pollefeys, Px4: A node-based multi-
threaded open source robotics framework for deeply embedded plat-
forms, in: 2015 IEEE International Conference on Robotics and Au-
tomation (ICRA), 2015, pp. 6235–6240. doi:10.1109/ICRA.735
2015.7140074.
[76] PX4 commercial drone use.
URL https://www.cnet.com/news/
linux-foundation- fuels-open- source- drone-efforts/
[77] PX4 Dev Team, PX4 documentation.740
URL https://docs.px4.io/en/
[78] Paparazzi development team, Paparazzi source code.
URL https://github.com/paparazzi/
[79] H. G. de Marina, Z. Sun, M. Bronz, G. Hattenberger, Circular formation
control of fixed-wing uavs with constant speeds, 2017 IEEE/RSJ Inter-745
national Conference on Intelligent Robots and Systems (IROS) (2017)
5298–5303.
[80] H. G. de Marina, Y. A. Kapitanyuk, M. Bronz, G. Hattenberger, M. Cao,
Guidance algorithm for smooth trajectory tracking of a fixed wing
uav flying in wind flows, in: 2017 IEEE International Conference750
on Robotics and Automation (ICRA), 2017, pp. 5740–5745. doi:
10.1109/ICRA.2017.7989674.
[81] Paparazzi development team, Paparazzi source code documentation.
URL http://docs.paparazziuav.org/latest/
[82] Paparazzi development team, Paparazzi wiki.755
URL https://wiki.paparazziuav.org/wiki/Main_
Page/
[83] AutoQuad web page.
URL http://autoquad.org/
[84] AutoQuad, AutoQuad source code.760
URL www.github.com/mpaperno/aq_flight_control/
[85] University of Salzburg, JAviator Project.
URL https://github.com/cksystemsgroup/JAviator/
[86] University of Salzburg, JAviator web.
URL http://javiator.cs.uni-salzburg.at/765
[87] S. Craciunas, C. Kirsch, H. R ¨
ock, R. Trummer, The JAviator: A high-
payload quadrotor UAV with high-level programming capabilities, in:
Proc. of the AIAA Guidance, Navigation, and Control Conference
(GNC), Honolulu, HI, USA, 2008.
[88] Microsoft, AirSim web page.770
URL https://github.com/Microsoft/AirSim
[89] Open Source Robotics Foundation (OSRF), Gazebo web page.
URL https://bitbucket.org/osrf/gazebo
[90] LAAS and ONERA labs, Morse web page.
URL https://github.com/morse-simulator/morse775
[91] PIXHAWK engineering team, jMAVSim web page.
URL ttps://github.com/PX4/jMAVSim
[92] Ecole Nationale de l’Aviation Civil , Paparazzi web page.
URL https://github.com/paparazzi/paparazzi/tree/
master/sw/simulator780
[93] Simon D. Levy, HackflightSim web page.
URL https://github.com/simondlevy/HackflightSim
[94] S. Shah, D. Dey, C. Lovett, A. Kapoor, Airsim: High-fidelity visual
and physical simulation for autonomous vehicles, in: Field and Service
Robotics, 2017. arXiv:arXiv:1705.05065.785
URL https://arxiv.org/abs/1705.05065
[95] B. Karis, E. Games, Real shading in unreal engine 4, Proc. Physically
Based Shading Theory Practice.
[96] N. Koenig, A. Howard, Design and use paradigms for gazebo, an
open-source multi-robot simulator, in: Intelligent Robots and Systems,790
2004.(IROS 2004). Proceedings. 2004 IEEE/RSJ International Confer-
ence on, Vol. 3, IEEE, 2004, pp. 2149–2154.
[97] O. S. R. Foundation, Gazebo robot simulation made easy.
URL http://gazebosim.org/
[98] Johannes Meyer, Hector Quadrotor,795
http://wiki.ros.org/hector quadrotor.
[99] Epic Games, Unreal Engine, https://www.unrealengine.com/.
[100] Unity Technologies, Unity, https://unity3d.com/.
[101] G. Echeverria, N. Lassabe, A. Degroote, S. Lemaignan, Modular open
robots simulation engine: Morse, in: IEEE International Conference on800
Robotics and Automation, 2011, pp. 46–51. doi:10.1109/ICRA.
2011.5980252.
[102] Briar Wallace, Blender Game Engine, https://www.blender.org/.
[103] pixhawk.org, jmavsim.
URL https://pixhawk.org/dev/hil/jmavsim805
[104] github.com, Px4/jmavsim.
URL https://github.com/PX4/jMAVSim/tree/master/
src/me/drton/jmavsim
[105] S. D. Levy, Hackflightsim/source.
URL https://github.com/simondlevy/HackflightSim/810
tree/master/Source/HackflightSim
[106] J. T. M. Ingibergsson, U. P. Schultz, M. Kuhrmann, On the use of safety
certification practices in autonomous field robot software development:
A systematic mapping study, in: Product-Focused Software Process Im-
provement, Springer, 2015, pp. 335–352.815
URL http://dl.acm.org/citation.cfm?id=2972500
Author biography
Emad Ebeid is an Assistant Profes-
sor at the Mærsk Mc-Kinney Møller In-
stitute, University of Southern Denmark,820
Denmark. Ebeid received his Ph.D. in
Computer Science from the University of
Verona, Italy, in 2014. His research in-
terests are in the areas of networked em-
bedded systems, hardware/software co-825
design of drone technologies and smart
grid applications. He is or was involved in several EU projects
in embedded systems and smart grid applications. Currently, he
is special session chair of System Design for Collaborating In-
telligent Systems session at EUROMICRO Conference on Dig-830
ital System Design and a guest editor of a special issue of MDPI
Energies journal. He is a senior IEEE member.
11
Martin Skriver is a research assis-
tant at the Mærsk Mc-Kinney Møller In-
stitute, University of Southern Denmark835
where he has been a part of the SDU
UAS Center since August 2015. He has
a M.Sc. degree in Engineering - Robotic
System from the University of Southern
Denmark. His main research areas have840
been with embedded electronics within battery management
systems, GSM/GNSS based drone tracking and FPGA based
systems.
Kristian Husum Terkildsen is a re-
search assistant at the Mrsk Mc-Kinney845
Mller Institute, University of Southern
Denmark. Terkildsen has a Master’s de-
gree in Robot Systems Engineering with
specialization in Unmanned Aerial Sys-
tems. He has been a part of the SDU850
UAS Center since June 2017. His main
focus areas are within system integration
and navigation in GPS denied environments.
Kjeld Jensen is an Associate Profes-
sor since 2007 at the SDU UAS Cen-855
ter, University of Southern Denmark.
His research interest covers experimental
development of embedded systems and
software to support a wide range of ap-
plications in unmanned systems. He has860
designed and developed a number of mo-
bile robots for outdoor tasks and he is
the architect and principal programmer behind the open source-
software platform FroboMind. His recent work focus on novel
applications requiring unobserved autonomous operation of865
UAS and mobile robots.
Ulrik Pagh Schultz is an Associate
Professor since 2005 at the SDU UAS
Center, MMMI, University of Southern
Denmark. Schultz received his B.Sc. and870
M.Sc. degrees in Computer Science from
the University of Aarhus, in 1995 and
1997, respectively, and a Ph.D. degree
in Computer Science from University of
Rennes, in 2000. From 2000 until 2005, he was a faculty mem-875
ber at University of Aarhus. His research interest covers soft-
ware engineering for robotics of all kinds (aerial or not) and
domain-specific languages. Currently he is Chair of the IFIP
Working Group 2.11 on Program Generation (since 2013). He
is a member of ACM and IEEE.880
12
... The vast majority of work cover multirotor craft, and to a lesser degree, fixed wing aircraft and helicopters. Thus, flight electronics, control software and simulation tools are readily available for these types of vehicles [2,3]. This allows researchers to build up a suitable autonomous flying platform for any research task with ease, using commercial off the shelf (COTS) components and open source software. ...
... Development of control algorithms is further complicated by the lack of realistic simulation. Existing robotic simulation environments [2] are often ill-suited for the characteristics of LTAV. As LTAV are highly susceptible to wind and turbulence, it is crucial to accurately model both aerodynamic forces and the effects these have on an inherently non-rigid vehicle. ...
... Our contributions, for which all source code is provided 1 , are: 1. A robotic simulation framework, using ROS/Gazebo [2,12] for real time hardware in the loop (HITL) and software in the loop (SITL) simulation of easily customizable airship models in a realistic virtual environment. ...
Chapter
Fixed wing and multirotor UAVs are common in the field of robotics. Solutions for simulation and control of these vehicles are ubiquitous. This is not the case for airships, a simulation of which needs to address unique properties, i) dynamic deformation in response to aerodynamic and control forces, ii) high susceptibility to wind and turbulence at low airspeed, iii) high variability in airship designs regarding placement, direction and vectoring of thrusters and control surfaces. We present a flexible framework for modeling, simulation and control of airships. It is based on Robot operating system (ROS), simulation environment (Gazebo) and commercial off the shelf (COTS) electronics, all of which are open source. Based on simulated wind and deformation, we predict substantial effects on controllability which are verified in real-world flight experiments. All our code is shared as open source, for the benefit of the community and to facilitate lighter-than-air vehicle (LTAV) research. (Source code: https://github.com/robot-perception-group/airship_simulation .)
... We acknowledge that numerous open-source drone flight simulators exist, e.g., autonomous drones [20] and training modules for human operators [21]. However, a recent survey [22] highlights the difficulty of evaluating one flight controller, i.e., substantially high development time and testing efforts. Also, our work uniquely leverages virtual environments to resolve the lack of standardization of flight controller architectures and hence, drone controllers' evaluation. ...
Preprint
Full-text available
Research attention on natural user interfaces (NUIs) for drone flights are rising. Nevertheless, NUIs are highly diversified , and primarily evaluated by different physical environments leading to hard-to-compare performance between such solutions. We propose a virtual environment, namely VRFlightSim, enabling comparative evaluations with enriched drone flight details to address this issue. We first replicated a state-of-the-art (SOTA) interface and designed two tasks (crossing and pointing) in our virtual environment. Then, two user studies with 13 participants demonstrate the necessity of VRFlightSim and further highlight the potential of open-data interface designs.
... In recent years the evolution of UAVs have improved robustness by adding redundancy or triple redundancy of e.g. sensors, actuators, and radios [12]. From an EMC perspective the increased robustness is minimal as EMI has the ability of often striking multiple part of the electronic equipment simultaneously. ...
Conference Paper
Full-text available
In the experiment for this paper we test a methodology for measuring interference in communication signals between a flight controller and peripheral devices of a UAV during a flight operation where the UAV is interacting with a 400 kV power line. Maintenance and inspection of power lines are vital for delivering energy supporting our modern society and it is an active research subject to explore autonomous systems as an alternative to the manual maintenance operations as these are both costly and dangerous. Supported by multiple research papers we believe that UAVs will be used for autonomous power line inspection in the future. Thus it is important to design them robust and tolerant of the electromagnetic harsh environment they are operating in and as traditional EMC measures such as heavy shielding and connectors counteract the UAVs payload capability and battery life, an EMC software solution can improve the robustness of the UAV. We have performed multiple experiments where the UAV is in contact with the 400 kV power line without any notable faults for the UAV operator. In this work, we expanded our Hardware-based EMI Injection for Software Testing (HEIST) methodology to be able to monitor multiple signals simultaneously, we recorded and detected continuous interference in the data signals as the UAV approached the power line. The interference can cause data corruption and needs to be handled safely e.g. by software, as these potentially cause the UAV to crash. The recorded data can with the HEIST approach be used to simulate the harsh environment in field tests by injecting the logic-level disturbances into the flight controller while the UAV is flying and thereby test if the system is fault-tolerant against the interference caused by the actual power line.
... There are many open-source flight control software for UAVs [32]. We list the popular software for completeness of the paper: ArduPilot [18] started by Chris Anderson, PX4 [19] Aerospace 2022, 9, 62 5 of 24 created by Lorenz Meier, PaparazziUAV [20] from ENAC (École Nationale de l'Aviation Civile, France), MultiWii series [21], including Baseflight, Betaflight, INAV, Hackflight, and Cleanflight, developed by Alexandre Dupus [33], dRonin [22] and OpenPilot series [34] from TauLabs. ...
Article
Full-text available
To apply UAVs (Unmanned Aerial Vehicle) into different fields, including research and industry, and expand it quickly, reliable but modular software is required. The existing flight control software (FCS) of the UAV consists of various types of modules categorized into different layers, and it is responsible for coordinating, monitoring, and controlling the vehicle during its flight. This paper proposes mpFCS, a structure of UAV flight control software, which provides portability to its modules and is easy to expand. The mpFCS consists of four segments and several modules within the segments. mpFCS provides portability for each module within the segment. Existing software does not provide portability for its modules because of the tight coupling resulting from its different and private interfaces. The mpFCS uses interfaces of the standard airborne software architecture to transfer data between its modules. Moreover, the structure provides portability for its modules to run in the standard airborne software environment. In order to verify the mpFCS, we tested the mpFCS with the conformance test suite of the airborne software that provides the testing environment for the interfaces and modules of the software. The mpFCS passed the test. Test results show that all modules of the mpFCS are portable. Additionally, portable modules can be interoperable with other software, and the structure is expandable with new modules that use standard airborne software interfaces.
Article
A large portion of overhead power transmission infrastructure around the world is becoming aged, raising the demand for frequent grid inspections in an efficient, cost-effective manner in order to keep it functional. Drones are a promising solution for infrastructure inspection, however, they require further investigation and development to enable their autonomy for large scale inspection operations. This paper proposes a drone framework based on open-source platforms for autonomous inspection of electrical grid infrastructure. The framework incorporates (1) a cloud service for geo-location data of nearby power pylons; (2) a localisation system for pylon navigation and cable grasping; and (3) a cable following algorithm for cable inspection using onboard sensors. The software functionality of the proposed framework has been validated in a simulation power line environment. Custom drones have been developed for validating the framework and algorithms within an unenergized power line environment.
Chapter
First-person view (FPV) drones provide an immersive flying experience to pilots and are becoming popular for recreational purposes. In this paper, we study FPV pilots’ flight preferences and how they interact with drones. First, we conducted an online survey with 515 pilots. We found that most pilots build their drones, have five drones or more, fly for three years or less, fly one to five hours per week, and prefer acrobatic flight mode. We present pilots’ preferences in equipment, background, involvement with social media, competitions, and sponsorship. We also show the results of a second user study in which we interviewed five experienced pilots. We discuss their flight preferences, the correlation between FPV flying and social media presence, and how to improve the FPV user experience. Our results allow the understanding of FPV pilots’ culture and how they interact with drones, enabling future work in the field.
Article
Unmanned Aerial Vehicles (UAVs), also called drones, are used for various applications with two basic classifications: civilian and military drones. Civilian drones are used for various applications like construction site monitoring, natural disaster area monitoring, agriculture, etc. Military drones are used for applications like monitoring a country’s border, the transmission of information about the intruders to Ground Control Station (GCS), or to any other server which has been designed for the purpose. Before the real-time deployment of the Internet of Drones (IoD), the feasibility and efficiency of a proposed UAV framework should be tested in an open-source UAV simulator or any network simulator. AirSim simulator is an open-source UAV simulator that has different features like ease of development, efficient motion capture, efficient obstacle detections and collision detections, use of different sensor models, and physics models. Hence, a review has been done on recent UAV frameworks which have been designed and tested using the AirSim simulator. Since a vast amount of data is being transmitted between IoD devices in this era, there is a need for designing secure IoD communication frameworks, with the least compromise in the performance of the designed frameworks. Hence, an extensive review has been done on different secure IoD communication frameworks which have used different cryptography concepts like key agreement, authentication, encryption and decryption, integrity, blockchain, digital signatures, and have implemented their proposed frameworks in real-time, or by using network simulators. The common network simulators that have been used for simulating secure IoD frameworks/mechanisms are NS3 and OMNeT++. © 2022 The Author(s). This open access article is distributed under a Creative Commons Attribution (CC-BY) 4.0 license.
Article
The cooperation of Unmanned Aerial Vehicles (UAVs) and Mobile Robot Manipulators (MRMs) offers enormous possibilities to modern industry. It paves the way for logistics, cooperative assembling or manipulation and will provide even more flexibility and autonomy to today’s manufacturing processes. Currently, some systematic literature reviews exist that provide an overview on research fields and gaps in the field of UAVs and MRMs. However, an investigation of the research landscape for combined use of UAVs and MRMs does not exist to the best of the authors’ knowledge. Therefore, in this paper, a systematic review of the current research landscape for the combined use of UAV and MRM is conducted to finally identify fields of action that need to be addressed in the future to harness the full potential.
Article
Unmanned Aerial Vehicles (UAVs) have rapidly become popular for monitoring, delivery, and actuation in many application domains such as environmental management, disaster mitigation, homeland security, energy, transportation, and manufacturing. However, the UAV perception and navigation intelligence (PNI) designs are still in their infancy and demand fundamental performance and energy optimizations to be eligible for mass adoption. In this article, we present a generalizable three-stage optimization framework for PNI systems that (i) abstracts the high-level programs representing the perception, mining, processing, and decision making of UAVs into complex weighted networks tracking the interdependencies between universal low-level intermediate representations; (ii) exploits a differential geometry approach to schedule and map the discovered PNI tasks onto an underlying manycore architecture. To mine the complexity of optimal parallelization of perception and decision modules in UAVs, this proposed design methodology relies on an Ollivier-Ricci curvature-based load-balancing strategy that detects the parallel communities of the PNI applications for maximum parallel execution, while minimizing the inter-core communication; and (iii) relies on an energy-aware mapping scheme to minimize the energy dissipation when assigning the communities onto tile-based networks-on-chip. We validate this approach based on various drone PNI designs including flight controller, path planning, and visual navigation. The experimental results confirm that the proposed framework achieves 23% flight time reduction and up to 34% energy savings for the flight controller application. In addition, the optimization on a 16-core platform improves the on-time visit rate of the path planning algorithm by 14% while reducing 81% of run time for ConvNet visual navigation.
Conference Paper
Full-text available
In this paper we propose an algorithm for stabilizing circular formations of fixed-wing UAVs with constant speeds. The algorithm is based on the idea of tracking circles with different radii in order to control the inter-vehicle phases with respect to a target circumference. We prove that the desired equilibrium is exponentially stable and thanks to the guidance vector field that guides the vehicles, the algorithm can be extended to other closed trajectories. One of the main advantages of this approach is that the algorithm guarantees the confinement of the team in a specific area, even when communications or sensing among vehicles are lost. We show the effectiveness of the algorithm with an actual formation flight of three aircraft. The algorithm is ready to use for the general public in the open-source Paparazzi autopilot.
Conference Paper
Full-text available
This paper presents an algorithm for solving the problem of tracking smooth curves by a fixed wing unmanned aerial vehicle travelling with a constant airspeed and under a constant wind disturbance. The algorithm is based on the idea of following a guiding vector field which is constructed from the implicit function that describes the desired (possibly time-varying) trajectory. The output of the algorithm can be directly expressed in terms of the bank angle of the UAV in order to achieve coordinated turns. Furthermore, the algorithm can be tuned offline such that physical constrain of the UAV, e.g. the maximum bank angle, will not be violated in a neighborhood of the desired trajectory. We provide the corresponding theoretical convergence analysis and performance results from actual flights.
Article
Full-text available
In recent years, there has been an increasing interest in quadcopter technology implementation in the real world; for instance in real estate photography, aerial surveying, periodic forest monitoring, and search/rescue missions. Generally, each quadcopter implementation required different sensors which are needed to attach and integrate into quadcopter system. However, the most critical part in almost cases is preparing the quadcopter flight performance and capability to be suited in any outdoor applications. Because of that reason, this paper has proposed an implementation of Open-Source Project (OSPs) platform as autonomous Unmanned Aerial Vehicle (UAV) quadcopter development that can be fitted for any outdoor applications or even in research experimental purposes. We started out with an explanation about the general approach that has been used in the development of a quadcopter testbed, and then followed with detail explanations in the OSP platform approach. The OSP platform is the most popular approach. The main reason is because of their flexibility in both hardware and software. The basic quadcopter configuration for autonomous flight also presented and applied. This paper also provided several outdoor experiments results in uncontrolled environment that have been executed using our developed testbed to evaluate their performance, such as attitude and altitude stabilization, interference and vibration effect, and trajectory mapping generation. Finally, throughout this project, we realized that the OPSs quadcopter platform has offered almost complete frameworks in the development of quadcopter for any outdoor applications or even as a research testbed system.
Article
Full-text available
Robotics has recently seen an increasing development, and the areas addressed within robotics has extended into domains we consider safety-critical, fostering the development of standards that facilitate the development of safe robots. Safety standards describe concepts to maintain desired reactions or performance in malfunctioning systems, and influence industry regarding software development and project management. However, academia seemingly did not reach the same degree of utilisation of standards. This paper presents the findings from a systematic mapping study in which we study the state-of-the-art in developing software for safety-critical software for autonomous field robots. The purpose of the study is to identify practices used for the development of autonomous field robots and how these practices relate to available safety standards. Our findings from reviewing 49 papers show that standards, if at all, are barely used. The ma- jority of the papers propose various solutions to achieve safety, and about half of the papers refer to non-standardised approaches that mainly address the methodical rather than the development level. The present study thus shows an emerging field still on the quest for suitable approaches to develop safety-critical software, awaiting appropriate standards for this support.
Chapter
Developing and testing algorithms for autonomous vehicles in real world is an expensive and time consuming process. Also, in order to utilize recent advances in machine intelligence and deep learning we need to collect a large amount of annotated training data in a variety of conditions and environments. We present a new simulator built on Unreal Engine that offers physically and visually realistic simulations for both of these goals. Our simulator includes a physics engine that can operate at a high frequency for real-time hardware-in-the-loop (HITL) simulations with support for popular protocols (e.g. MavLink). The simulator is designed from the ground up to be extensible to accommodate new types of vehicles, hardware platforms and software protocols. In addition, the modular design enables various components to be easily usable independently in other projects. We demonstrate the simulator by first implementing a quadrotor as an autonomous vehicle and then experimentally comparing the software components with real-world flights.
Article
Unmanned aerial vehicles (UAVs) have been widely adopted in the military world over the last decade and the success of these military applications is increasingly driving efforts to establish unmanned aircraft in non-military roles. Introduction to UAV Systems, 4th edition provides a comprehensive introduction to all of the elements of a complete Unmanned Aircraft System (UAS). It addresses the air vehicle, mission planning and control, several types of mission payloads, data links and how they interact with mission performance, and launch and recovery concepts. This book provides enough information to encourage a student to learn more; to provide a specialist with a basic appreciation of the technical issues that drive other parts of the system and interact with their specialty; or to help a program manager understand system-level tradeoffs and know what questions to ask. Key features: Comprehensive overview of all elements of a UAS and of how they interact. Introduces the underlying concepts of key subsystems. Emphasizes system-integration issues and how they relate to subsystem design choices. Practical discussion of issues informed by lessons learned in UAV programs. Introduction to UAV Systems, 4th edition is written both for newcomers to the subject and for experienced members of the UAV community who desire a comprehensive overview at the system level. As well as being a primary text for an introductory course on UAS or a supplementary text in a course that goes into more depth in one of the individual technologies involved in a UAS, this book is a useful overview for practicing engineers, researchers, managers, and consultants interested in UAV systems.
Article
We present a novel, deeply embedded robotics middleware and programming environment. It uses a multithreaded, publish-subscribe design pattern and provides a Unix-like software interface for micro controller applications. We improve over the state of the art in deeply embedded open source systems by providing a modular and standards-oriented platform. Our system architecture is centered around a publish-subscribe object request broker on top of a POSIX application programming interface. This allows to reuse common Unix knowledge and experience, including a bash-like shell. We demonstrate with a vertical takeoff and landing (VTOL) use case that the system modularity is well suited for novel and experimental vehicle platforms. We also show how the system architecture allows a direct interface to ROS and to run individual processes either as native ROS nodes on Linux or nodes on the micro controller, maximizing interoperability. Our microcontroller-based execution environment has substantially lower latency and better hardware connectivity than a typical Robotics Linux system and is therefore well suited for fast, high rate control tasks.
Conference Paper
The growing number of Unmanned Aerial Vehicles (UAVs) is considerable in the last decades. Many flight test scenarios, including single and multi-vehicle formation flights, are demonstrated using different control algorithms with different test platforms. In this paper, we present a brief literature review on the development and key issues of current researches in the field of Fault-Tolerant Control (FTC) applied to UAVs. It consists of various intelligent or hierarchical control architectures for a single vehicle or a group of UAVs in order to provide potential solutions for tolerance to the faults, failures or damages in relevant to UAV components during flight. Among various UAV test-bed structures, a sample of every class of UAVs, including single-rotor, quadrotor, and fixed-wing types, are selected and briefly illustrated. Also, a short description of terms, definitions, and classifications of fault-tolerant control systems (FTCS) is presented before the main contents of review.