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
... Bromine is a naturally occurring element that is often found in seawater and freshwater (Ariza et al., 2021). Fluoride is a naturally occurring mineral found in groundwater and natural springs (Ebeid et al., 2018). Sulphate, similarly, found in mineral-rich groundwater, high levels of sulfate may cause laxative effects, resulting in diarrhea and dehydration. ...
Article
Full-text available
Physical sampling of water on site is necessary for various applications like drinking water quality checking in lakes and checking for contaminants in freshwater systems. The use of water surface vehicles is a promising technology for monitoring and sampling water bodies, and they offer several advantages over traditional monitoring methods. This project involved designing and integrating a drone controller, water collection sampling contraption unit, and a surveillance camera system into a water surface vehicle (WSV). The drone controller unit is used to operate the boat from the starting location until the location of interest and then back to the starting location. The drone controller has an autopilot system where the operator can set a course and be able to travel following the path set, whereas the WSV will fight the external forces to keep itself in the right position. The water collection sampling unit is mounted onto WSV so when it travels to the location, it can start collecting and holding water samples until it returns to the start location. The field of view (FOV) surveillance camera helps the operator to observe the surrounding location during the operation. Experiments were conducted to determine the operational capabilities of the robot boat at the Ayer Keroh Lake. The water collection sampling contraption unit collected samples from 44 targeted areas of the lake. The comprehensive examination of 14 different water quality parameters were tested from the collected water samples provides insights into the factors influencing the pollution and observation of water bodies. The successful design and development of a water surface surveillance and pollution tracking vehicle marks the key achievements of this study. The developed collection and surveillance unit holds the potential for further refinement and integration onto various other platforms. They are offering valuable assistance in water body management, coastal surveillance, and pollution tracking. This system opens up new possibilities for comprehensive water body assessments, contributing to the advancement of sustainable and efficient water testing. Through careful sampling efforts, a thorough overview of the substances presents in the water collected from Ayer Keroh Lake has been compiled. This in-depth analysis provides important insights into the lake’s current condition, offering valuable information about its ecological health.
... In this context, we propose a network infrastructure-independent time synchronization technique designed for highly mobile UAVs within wireless networks, especially when hardware timestamping (HW-TS) is not available. In the case of a drone as in Fig. 1, which is representative of a UAV, a flight controller based on a low-power microcontroller unit (MCU) plays a key role in aircraft control and receives information such as location, speed, and time through the mounted global positioning system (GPS) module [12]. In addition, a single board computer (SBC) is connected to the vehicle controller to grasp the current status of the UAV from various sensors and establishes wireless connections with a ground station (STA) or neighboring nodes using an installed network module. ...
Article
Full-text available
Unmanned aerial vehicles (UAVs), require low-latency control for accurate mission execution and automation in vehicular or industrial applications. To facilitate clock synchronization in ensuring low-latency performance for UAVs, we propose the Mobile Edge Clock Server (MECS), a software-based timestamping mechanism tailored for UAVs, by modifying the poll process in Network Time Protocol (NTP) and merging GPS signal resources. Through the application of the Raw-offset filter, we also propose precise MECS (P-MECS), aimed at achieving high precision by considering the characteristics of GPS modules and conducting an in-depth analysis of signals. The MECS and P-MECS resulted in improving clock accuracy and reducing inter-UAV synchronization error to 1129\frac {1}{129} (99.2%) and 119,402\frac {1}{19,402} (99.99%), respectively, compared to NTP on WLAN, and to 132\frac {1}{32} (96.9%) and 14,762\frac {1}{4,762} (99.98%), respectively, compared to Chrony on WLAN.
... Ebeid et al. presented an examination of the accessible open-source elements for drones, suitable for research and development, is presented. This examination encompasses open-source components in hardware, software, and simulation for drone systems, highlighting their primary attributes [1]. Pütsep et al. have identified/classified the flight controllers for Nano, Micro and Mini Drones [2]. ...
Article
Full-text available
Flight controllers play vital role in stability, performance and control operations of a drone throughout the flight. Inappropriate flight controller selection can jeopardize both the drone and its payload, making it imperative to address the meticulous choice of drone flight controllers for specific applications. This work delves into the behavior of various flight controllers when tested in a quadcopter configuration under consistent structural and environmental conditions. The research not only examines the selection of flight controllers but also explores the challenges faced by amateur drone operators during setup and flight, offering practical techniques to overcome them. Among the various array of flight controllers available in the market, namely KK2.1.5, QQ super thunder, APM, DJI NAZA Mlite, and Pixhawk, have been used in this experiment. Comprehensive experiments were conducted using identical drone configurations to elucidate the precise difficulties associated with each flight controller. The results revealed instances of suboptimal stability, communication issues, and troubleshooting errors for certain controllers. Notably, KK2.1.5 and QQ super thunder exhibited non-responsiveness when utilized in hexacopters and octacopters. Ultimately, this research underscores the NAZA flight controller’s suitability for novice pilots among the tested options. The insights presented herein serve as a valuable resource for researchers seeking to select the most appropriate flight controller based on their piloting proficiency and for resolving challenges encountered during drone operations.
... A combination of sensors is typically employed to enable effective performance and communication in UAVs operation. There are different types of flight controller variations with sensors that are specifically designed to meet the requirements of autonomous UAVs [18,19]. Among the variations used in UAVs, the most commonly used are inertial measurement units which consist of a 9DoF accelerometer, gyroscope, and magnetometer (compass) with a barometer for altitude estimation [20]. ...
Chapter
In recent times, the integration of Unmanned Aerial Vehicles (UAVs) with Internet of Things (IoT) platforms has brought a new dimension of mobility, significantly enhancing the capabilities of complex sensor networks. This chapter focuses on the development of an autonomous quadcopter, tailored as a core component of an AI-driven sensing network in indoor settings. We explore the integration of various vision-based and laser sensors with an onboard computer, utilizing the Robot Operating System (ROS) and WiFi technology for real-time wireless data collection and communication. Our system achieves significant milestones in 3D mapping and localization, demonstrating the tracking camera T265 sensor’s superiority in localization and computational efficiency over traditional SLAM algorithms. Through rigorous testing and calibration, including initial flight trials, we highlight the vast potential of these autonomous systems within an IoT framework. Moreover, we delve into the edge computing capabilities of the onboard Jetson Nano processor, optimizing its performance for enhanced functionality. These optimizations led to full utilization of the processor’s capabilities, reducing the mapping time of a 3 m × 3 m area from 4 to 5 min to under 3 min, with improved accuracy and reduced feature drift. Utilizing advanced AI and computer vision techniques, we test and compare SLAM algorithms, further cementing the role of UAVs in revolutionizing IoT applications.
... INAV Multicopter is one of the most recent open-source drone firmwares [47]. Having the same ancestor, it is close to BetaFlight but has improved navigation functionalities and ground station software supporting mission planning [48]. INAV firmware is widely used for fixed-wing and vertical takeoff and landing (VTOL) aircraft [49,50]. ...
Article
Full-text available
Industrial inspection is a well-known application area for unmanned aerial vehicles (UAVs), but are modern market-available drones fully suitable for inspections of larger-scale industrial facilities? This review summarizes the pros and cons of aerial large-scale facility inspection, distinguishing it from other inspection scenarios implemented with drones. Moreover, based on paper analysis and additionally performed experimental studies, it reveals specific issues related to modern commercial drone software and demonstrates that market-available UAVs (including DJI and Autel Robotics) more or less suffer from the same problems. The discovered issues include a Global Navigation Satellite System (GNSS) Real Time Kinematic (RTK) shift, an identification of multiple images captured from the same point, limitations of custom mission generation with external tools and mission length, an incorrect flight time prediction, an unpredictable time of reaching a waypoint with a small radius, deviation from the pre-planned route line between two waypoints, a high pitch angle during acceleration/deceleration, an automatic landing cancellation in a strong wind, and flight monitoring issues related to ground station software. Finally, on the basis of the paper review, we propose solutions to these issues, which helped us overcome them during the first autonomous inspection of a 2400 megawatts thermal power plant.
Preprint
Full-text available
Unmanned Aerial Vehicles (UAVs), commonly known as Drones, are one of 21st century most transformative technologies. Emerging first for military use, advancements in materials, electronics, and software have catapulted drones into multipurpose tools for a wide range of industries. In this paper, we have covered the history, taxonomy, architecture, navigation systems and branched activities for the same. It explores important future trends like autonomous navigation, AI integration, and obstacle avoidance systems, emphasizing how they contribute to improving the efficiency and versatility of drones. It also looks at the major challenges like technical, environmental, economic, regulatory and ethical, that limit the actual take-up of drones, as well as trends that are likely to mitigate these obstacles in the future. This work offers a structured synthesis of existing studies and perspectives that enable insights about how drones will transform agriculture, logistics, healthcare, disaster management, and other areas, while also identifying new opportunities for innovation and development.
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.