use of this kind of vehicles is package delivery, in which
companies such as Amazon and UPS have been investing
and developing for the past few years, and encouraged
research in the same field, aiming for integration of this kind
of vehicles with public transport to extend their operational
range [1].
As the use of aerial vehicles is becoming massive, it is
starting to make use of aerial space over densely populated
areas, and safety concerns begin to arise. Manned aerial
vehicles, such as commercial planes and helicopters, have
decades of invested research and development, have been
thoroughly tested, and count on international standards to
comply. Unlike their manned counterparts, the history of
unmanned commercial vehicles is quite recent, with new
advances and discoveries that are continually improving
their reliability. Furthermore, there are countries that haven’t
yet issued regulations concerning their use, while the ones
that do have, only consider local regulations, lacking a
worldwide panorama.
For the aforementioned reasons, fault tolerance has be-
come an important aspect to be accounted for in unmanned
vehicles’ design. The ability to continue a normal flight
in the event of a component failure is not only critical
to ensure the integrity of the vehicle and prevent possible
damages to third parties, but also to provide a high degree
of reliability in the completion of sensitive missions, such
as delivering medical equipment, or search and rescue in
disaster zones. Some of the solutions for fault tolerance are
rather simple: relying, for example, in hardware redundancy
[2], which is possible when considering failures in the
commonly used sensors, as the added cost is not prohibitive,
and the additional weight is negligible.
On the other hand, when considering failures in the
actuator set, i.e. the motors and propellers, the solution is
not so straightforward. In many occasions, multirotors with
a high number of motors are used to increase the payload
capacity, and also gain more stability and robustness against
perturbations. In these cases, the design can be exploited to
achieve fault tolerance against motor failure based on hard-
ware redundancy, when certain conditions are satisfied [3]–
[6]. If hardware redundancy is not possible, more complex
solutions based on partial loss of control, mechanical design
and/or vehicle reconfigurability have been proposed [7], [8].
In cases of failure in one of the motors in a multirotor
vehicle, the control strategy will heavily depend on which
of the motors is the one presenting the failure, so that
maximum performance can be achieved in any situation.
In consequence, the failure has to be properly detected and
identified in order to choose the optimal control solution, for
which a Fault Detection and Identification (FDI) algorithm is
required. This kind of algorithms are usually implemented
through an observer-based solution [9], and generally are
quite demanding in terms of required processing power.
This poses a challenge to unmanned aerial vehicles, in
which the on-board computer that runs the algorithms for
sensor data acquisition and control generally relies on a
low level microcontroller as the main processing unit, with
limited resources and processing power. Special attention
has to be paid to the complexity of the algorithms used,
in order to ensure that they can be executed in a given
time window [10], as the low level microcontroller has to
prioritize tasks such as sensor data acquisition and attitude
control.
The implementation of efficient algorithms in micro-
controllers with limited resources is a relevant research
topic. Most of the existing autopilot firmware intended for
small-scale UAVs rely on Proportional-Integral-Derivative
(PID) algorithms to perform low-level control. Some efforts
were carried out to implement innovative algorithms for
the attitude control in Cortex-M microcontrollers over an
existing firmware [11]. However, it’s usually preferable to
consider simplified versions of more advanced and well-
established control techniques [12]. Moreover, efforts have
been made to get rid of the idea of periodic execution of
control laws [13], [14], leaving room to run more intensive
algorithms on the same hardware.
This work focuses on analyzing the additional load im-
posed by the implementation of a fault tolerant control mod-
ule in multirotor-type unmanned air vehicles, in flight com-
puters based on low-level microcontrollers of the Cortex-
M family. Particularly, the implementation of a classical
bank of observers for fault detection and identification in
a custom-made flight computer will be shown to consume
roughly 12% of a Cortex-M3 microcontroller resources, as
it doesn’t count with a Floating Point Unit (FPU). This
additional load, together with the rest of the data acquisition
and control algorithms that concurrently run inside the
microcontroller, push its processing capabilities to the limit,
with the possibility of control loop overruns. For these
reasons, a new flight computer was developed in our Lab,
using a Cortex-M7 microcontroller with a single-precision
FPU, in order to reduce the processing times. Counting with
an FPU, as well as a higher clock speed, will show to reduce
the processing time for this kind of algorithms, in order to
run together with all the common guidance, navigation and
control (GN&C) algorithms required in multirotor systems.
Moreover, the Cortex-M7 will be able to run a more complex
fault detection and identification algorithm, allowing for
faster fault detection. The proposed algorithm includes a
model of how a faulty motor behaves, in particular its
transient response until it stops working completely.
This manuscript is organized as follows. Section II
presents the common characteristics in multirotor flight com-
puters and the design of a custom-made, Cortex-M3 based
board. Section III introduces the fault tolerance basics, and
Section IV, the case of study with the common fault tolerant
techniques for multirotor vehicles. Section V describes the
implementation of fault tolerant control in the Cortex-M3
based board and its limitations, while Section VI presents
a new board design based on a Cortex-M7 to overcome
them. Section VII will show a new method for faster fault
detection, taking advantage of the extra resources. Finally,
Section VIII includes the concluding remarks and future
work.
II. FLIGHT CONTROLLER IN UNMANNED VEHICLES
At the core of a UAV is the flight controller (FC) board,
a small computer in which, generally, a low-level micro-
controller is used as the main processing unit, to perform
tasks such as sensor data acquisition and execution of the
Revista elektron, Vol. 6, No. 2, pp. 65-76 (2022)
http://elektron.fi.uba.ar