1. Introduction
Control schemes for quadrotor-type Unmanned Aerial Vehicles (UAV) have developed very rapidly in recent years and have been a pillar in the advancement of the science and technology of dynamic systems. Despite the above, there are still several problems related to the design of flight controllers, since there are no general laws applicable to these vehicles [
1]. This problem is aggravated by several factors mainly due to the underacting property of this vehicle and its non-linear dynamics, as well as unmodeled dynamics and exogenous disturbances and poor estimation or measurement of moments of inertia and aerodynamic coefficients [
2,
3].
One of the main challenges for these vehicles is landing, which is affected by several factors, such as the presence of an air cushion during the maneuver; aerodynamic effects and environmental conditions [
4,
5]. Several studies have focused on the design of control algorithms at the simulation level, with MATLAB being the most used software [
1,
6]. Matlab offers complete freedom to define the dynamics of the UAV; however, the complexity of having to derive all flight dynamics often leads to oversimplifications or very basic PID flight controllers [
7].
It is well known that the effectiveness of simulation depends on an accurate mathematical model, which is difficult to obtain. Flight simulators offer the advantage of taking advantage of the calculation of flight dynamics, as well as more complete results that would otherwise require too many hours of development, such as weather, 3D scenarios, elevation maps, advanced visualization functions, etc. [
7]. Thus, the use of co-simulation tools with a high degree of precision such as a real flight contributes to verifying the control scheme and improving development efficiency [
8]. The flight simulator X-Plane is widely used to develop and test flight control schemes [
9].
X-Plane is one of the most realistic flight simulators in the world, it is used by different industries, such as the air force and aircraft manufacturers to predict the flight characteristics of fixed and rotary wing aircraft with high precision. X-Plane allows you to change existing airplane models, and even create custom airplane or helicopter designs with the Plane Maker software (version 10). Additionally, the X-Plane simulation environment supports programming languages such as C/C++, MATLAB/Simulink and Python [
10,
11].
X-Plane simulates aircraft flight responses with high accuracy; it uses blade element theory to produce the forces and moments acting on an element of the aircraft’s surfaces, then applies the processed results to the entire aircraft (it is not based on the mathematical model of the aircraft) [
12].
Several research works have successfully utilized X-Plane to design and simulate control schemes for UAVs. For instance, [
13] an attitude control law is used for small fixed-wing UAVs that are built considering two flight phases: stable flight and maneuvering flight, the experimental analysis and simulation was carried out in the software X-Plane. On the other hand, in [
7] the behavior of a Vertical Take-Off and Landing (VTOL) type UAV is analyzed, which is conducted through Hardware-In-the-Loop (HIL) integration with all the functions of a commercial VTOL UAV, where the aircraft is modeled in X-Plane and the climatic conditions through real data.
In [
14] an environment to simulate multiple UAVs simultaneously is described, as well as providing status data and control inputs for individual vehicles using X-Plane. In addition to this, X-plane and Matlab/Simulink are used to simulate a UAV with flapping wings [
15], the flapping wing model is developed in aircraft manufacturing software and runs in the X-plane environment. Yu, Li, et al., provide an efficient method to verify the performance of hardware and software designs of a control scheme for a three-tilt-rotor UAV, using X-Plane-based HIL [
8].
Cabecinhas et al. proposed a robust controller for landing maneuvers [
4], in which the interaction of the UAV with the ground was considered. In [
16], the mathematical developments to obtain a linear model for the quadrotor without perturbations are reported. This quadrotor linear model is used to design a control scheme that combines the backstepping procedure with saturation functions; moreover, in [
1] a control architecture is presented, which results from the combination of a GPI controller with one based on nested saturations; it should be noted that the control scheme was designed to perform landing maneuvers despite external perturbations. It is important to mention that the physical implementation of this type of control scheme proposals is complicated to carry out, due to the higher cost of computational time required.
The background described highlights two important areas of opportunity: the use of co-simulation tools to validate control schemes without the need for a physical or experimental prototype [
17] and the validation of robust control schemes for landing and takeoff maneuvers in the presence of external disturbances. In that sense, the use of a specialized Model-in-Loop (MIL) environment such as X-Plane is attractive.
Thus, this paper uses MATLAB/Simulink and X-Plane as co-simulation tools to visualize and analyze the behavior of three control schemes reported in the literature for takeoff and landing maneuvers in quadrotors. The three proposals are tested at wind speeds of 0, 25 and 50 kn. The simulation is carried out using User Datagram Protocol (UDP) communication between MATLAB/Simulink and X-Plane.
The first proposal consists of controlling the
axes using feedforward PID type control algorithms; the second focuses on the use of feedforward controllers in combination with a PD (for
z axis), a PID (for
axis) and a control law based on nested saturations to stabilize the roll (
) and pitch
axes [
16]. The third proposal uses a feedforward Generalized Proportional Integral (GPI) controller for the
z axis, while the
axis is controlled by a feedforward PID controller, the
and
axes are controlled by a feedforward control algorithm based on the use of nested saturations to control systems represented by a chain of integrators [
1].
In particular, this work describes the use of the transformation matrix that allows mapping the control actions
, with
, to the angular velocities required in each motor; which is omitted in works that are only validated numerically [
1,
16]. Additionally, we show the use of X-Plane as a MIL environment, with which control schemes can be executed to identify errors and/or problems of the proposed controllers before their coding and physical implementation [
18,
19]; it allows to detect and know the logic of the signals and their relationship with the physical environment, in addition, the simulation speed can be modified (depending on the complexity of the proposed control schemes). Thus, the use of X-Plane allows us to verify or test the feasibility of implementing the developed control schemes or UAVs [
20].
Regarding [
1], they use a mathematical model based on a local geodetic coordinate system North, East, Down (NED), while in this paper we propose a local geodetic coordinate system East, North, Up (ENU), which has been reported in works such as [
21,
22,
23]. In the above, although it does not modify the design steps of the controller, it does change the operating logic of the scheme.
The main contributions of this work are:
The comparison between the control proposals to test the robustness of the controllers against different wind speeds.
The flight analysis of the aircraft within the X-Plane software in a realistic environment.
The communication between the software used MATLAB/Simulink and X-Plane.
The organization of this work is given as follows:
Section 2 describes the dynamics of the quadrotor, its physical characteristics within Plane Maker and the configuration required for sending data between MATLAB/Simulink and X-Plane;
Section 3 explains the controllers to be compared: Feedforward PID; feedforward PD in combination with nested saturations; GPI and nested saturations, both feedforward.
Section 4 shows the results of the control schemes at different wind speeds, which are analyzed based on error-based performance indices. Finally,
Section 5 presents the conclusions obtained.
2. System Description
Figure 1 shows a diagram of the reference frames of the forces acting on the quadrotor, the rotation of the motors and the reference frames that are usually used for analysis; fixed to the ground (
I) and fixed to the vehicle (
B) [
1].
The main forces and moments acting on the quadrotor are produced by its rotors, of which two pairs of motors rotate in opposite directions to balance the total torque of the system.
Figure 1 also shows
and
, which correspond to the thrust forces generated by each of the rotors.
is the control action in the z-axis, which results from the combination of the thrust generated by each rotor.
l corresponds to the length from the center of the quadrotor to the center of the rotor.
indicate the position of the quadrotor with respect to a reference frame fixed to it.
corresponds to the position of the UAV with respect to the inertial frame of reference.
are the orientation angles of the roll, pitch and yaw, respectively.
The representation of the rotation movements of the quadrotor are shown in
Figure 2, where, to maintain a constant lift, the four rotors must be kept at equal speeds as shown in
Figure 2a. The roll motion (
) is obtained by increasing the speed of rotor 4 and the speed of rotor 2 is reduced (See
Figure 2b). For the pitch motion (
), the speed of rotor 1 is increased, while the speed of rotor 3 is reduced, as seen in
Figure 2c. Finally, the yaw orientation motion (
) results from the increase in speed in rotors 1 and 3, while the speed of rotors 2 and 4 is decreased (See
Figure 2d) [
17,
24].
Mathematical Model
The dynamics of the quadcopter can be obtained from the Euler–Lagrange methodology. The dynamic model can be deduced with respect to a reference frame fixed to it, or with respect to an inertial reference system [
1]. In this work, we consider an inertial reference frame, represented as follows:
where
m is the mass of the quadcopter,
and
represent aerodynamic forces acting on the quadcopter (on its respective axis),
is the moment of inertia of the motor around its axis,
are the aerodynamic torques acting on the quadcopter,
is the angular velocity obtained by summing the velocities of the four motors,
are moments of inertia of the center of mass of the quadcopter,
represents the control input, for
,
l is the distance between the center of gravity of the quadrotor and the rotors;
are the rotation and translation positions with respect to an inertial frame, respectively.
It is required to control the rotors in terms of angular speeds in order to be able to manipulate the speed of said rotors, controlling the position and orientation axes of the quadrotor. In accordance with [
25,
26] the equations that relate the control inputs to the rotational speeds of the rotors are as follows:
where:
l is the distance from the rotor to the center of gravity of the quadrotor,
is the lift coefficient and
the drag coefficient.
represents the angular velocities of each rotor, and can be obtained from (
2).
3. Software Description and Communication for Sending and Receiving Data between MATLAB/Simulink and X-Plane
For the simulation and data analysis, the X-Plane (version 10) and MATLAB/Simulink (R2020a) software were used, where in MATLAB/Simulink the control and data analysis stage is carried out and in the X-Plane software the visualization of the behavior of the quadrotor is performed.
The use of X-Plane and MATLAB/Simulink is attractive for the validation of control schemes without the need for a physical prototype. Unlike traditional numerical simulations, where the mathematical model that describes the dynamic behavior of the UAV is used; the operating principle of X-Plane is based on the reading of the geometric shape of the aircraft, physical specifications (weight, engine power, wingspan, wing area, control surfaces and the center of gravity) [
27]. This guarantees a better approximation to the real behavior of a UAV since the mathematical models that are usually used generally ignore aerodynamic properties and effects. Therefore, the results obtained with MATLAB/Simulink and X-Plane are closer to the real behavior of the UAV. Thus, X-Plane is a realistic flight simulator that has several aircraft models that can be simulated in different flight scenarios and environmental conditions, it even allows you to transmit and manipulate data from said aircraft. The X-Plane software integrates a platform called Plane Maker, which is used especially to design and modify aircraft according to your objectives [
28].
The image shown in
Figure 3 presents an example of X-Plane simulation scenarios.
3.1. Plane Maker
Plane Maker is a platform that includes X-Plane which allows users to design aircraft, accepting parameters such as weight, size, power and ratio of engines, and type and size of propellers, among many others. Within its workspace, Plane Maker makes it possible to use all its flight scenarios around the world, as well as having the aircraft that it includes as examples and communication between external software. For the simulation of the proposed control schemes, the quadrotor shown in
Figure 1 was used, which was designed in Plane Maker.
The construction dimensions of the quadrotor designed in Plane Maker are presented in
Table 1.
The physical parameters of the quadrotor obtained from the design created in X-Plane/Plane maker are those shown in
Table 2.
3.2. Communication between MATLAB/Simulink and X-Plane
In order to send and receive data between MATLAB/Simulink and X-Plane, the user datagram protocol (UDP) is used. This communication protocol consists of configuring an IP address, as well as the specific ports for sending and data reception.
MATLAB/Simulink provides a UDP communication library, which allows data exchange using the corresponding block programming. The UDP protocol is a relatively simple communication protocol for data transfer [
29].
The standard protocol for sending and receiving data from X-Plane is UDP, and it is supported by Matlab/Simulink [
30]. Its main advantage is the ability to communicate in near real-time with minimal delays; the only delays are caused by the Windows operating system (which is not considered a real-time operating system) [
29].
To carry out the communication, an IP address and specific ports for sending/receiving data must be configured, for which it is important to take into account the following considerations:
Once both the address and the communication ports are configured, it is possible to use the MATLAB/Simulink UDP blocks (see
Figure 5) to send and receive data between MATLAB/Simulink and X-Plane.
UDP communication supports both IPv4 (Internet Protocol version 4) and IPv6 (Internet Protocol version 6) addresses; IPv4 is frequently used in applications that require fast response times and tolerate some data loss, which is one of the reasons why X-Plane uses it [
31]. A UDPv4 packet has a maximum length of 65,535 bytes, and Transmission Control Protocol (TCP) ports range from 0 to 65,535; of which 1024 to 49,151 are registered ports. Because these ports are reserved for specific applications, X-Plane uses them freely without affecting any other protocols.
To establish communication between MATLAB/Simulink and X-Plane, the IP address must first be configured, after this, set the UDP port to 49,001, which is provided by default to send data from X-Plane to MATLAB/Simulink.
4. Control Schemes
Since the system presented in (
1) has highly nonlinear dynamics, it is difficult to control and stabilize it. Therefore, it is proposed to feedforward the system dynamics in combination with the control proposals raised in
Section 4.1,
Section 4.2,
Section 4.3,
Section 4.3.2 and
Section 4.3.1. The aforementioned feedforward is obtained from (
1) and its objective is to linearize the system in the coordinates
.
For the feedforward, only the known dynamics of the quadrotor were considered, considering the rotor speed and friction coefficients as perturbations. Thus, the following feedforward control actions are proposed:
y are auxiliary controllers. To be clearer about the structure of the controllers applied in the system, it is worth mentioning that three proposals were carried out to analyze the behavior of the quadrotor.
The control architecture is shown in
Figure 6, which is applied to the flight control analysis of the quadrotor, presenting the interaction between MATLAB/Simulink and X-Plane for sending and receiving data between both software.
Figure 6 shows the control scheme used for the flight of the quadrotor, where the first block is the feedforward control block, which presents the dynamics shown in (
3)–(
6) combining the controllers mentioned in the following subsections with the objective of linearizing the system in the coordinates
; the control inputs
are sent to a transformation matrix which converts the control force terms into terms of angular velocities
which are sent to each rotor of the quadrotor in X-Plane through communication UDP, once this is conducted, by receiving data through UDP communication the coordinates
measured from X-Plane are obtained and with this feedback to the feedforward system with the desired coordinates
.
The compared control schemes are described below: Feedforward PID [
17]; feedforward PD in combination with nested saturations [
16]; GPI and nested saturations, both feedforward [
1]. In the first proposal, PID-type controllers were used in the four axes to analyze the behavior of the quadrotor and achieve the desired values in the four axes satisfactorily. For the second proposal, a PD controller was used in the z-axis to reach the trajectory faster, in the
and
axes, nested saturation controllers were used to stabilize the roll and pitch coordinates and in the
a PID controller was used to reduce oscillations in the yaw angle. Finally, the third proposal was applied as follows: for the height axis
z, a triple integrator GPI controller was used to better follow the trajectory tracking and reject disturbances; in the orientation part of the angles
and
a control law for nested saturations was applied which consists of a chain of integrators design with a backtracking procedure to stabilize the system at these angles for open environments and as in the previous proposals; the angle
is manipulated by a PID type controller.
4.1. Proposal 1: Feedforward PID
For this first control proposal, it was proposed that the auxiliary controllers
mentioned in Equations (
3)–(
6), were of PID type, which have the following structure:
with:
the proportional gain,
the integral gain and
the derivative gain,
is the position error with respect to time, which is calculated as
.
Figure 7 presents a block structure which describes the PID controller.
4.2. Proposal 2: Feedforward PD, PID and Nested Saturations
A PD feedforward controller was used to manipulate the
z axis and
angle; while to stabilize the
and
angles, a nested saturation controller was used [
16].
The structure of the feedforward PD is the same as that presented in (
7), omitting the integral part.
Nested Saturations Controller
The nested saturation controller used to stabilize the angles
and
is the one proposed in [
16], which has the following structure:
where
and
are saturation functions, for
.
Based on the stability test performed in [
16], the following conditions are proposed to keep the quadrotor in hover (at its equilibrium point):
and for are the lower and upper bounds of the saturations.
The scheme that represents the dynamics of the control by nested saturations is shown in
Figure 8.
4.3. Proposal 3: GPI Controller and Nested Saturations
In this section, a GPI controller with three integrators for height was considered; a nested saturation controller was proposed for open navigation environments to stabilize the angles
and
; while for the angle
the same control law of Proposals 1 is used [
1]. The proposed structures for the controllers used are presented below:
4.3.1. GPI Controller
The GPI controller structure was proposed as shown below [
32]:
Be the system:
where:
is an unknown constant disturbance signal.
We use the following integral reconstructor, which is designed to compensate for the lack of
measurement.
Considering
as a smooth reference signal for
z,
is proposed as [
1]:
with , .
If we substitute (
11) into (
13) and express the resulting dynamics in terms of the tracking error, we obtain the following dynamics:
, are chosen so that the roots of the characteristic polynomial lie on the left side of the complex (Hurwitz) plane. This makes the GPI controller robust to constant perturbations.
4.3.2. Nested Saturations Controller
A modification of the control scheme proposed in [
1] is used, which uses a controller based on nested saturations to bring its equilibrium point to the
and
angles. The technique has as its main requirement the representation of a non-linear system as chains of integrators with non-linear perturbations [
33]. The design procedure consists of a backstepping procedure that results in a fixed-point equation at the control input [
1,
34].
The operating logic of this proposal considers the following steps: (1) the z axis and the angle are stabilized and (2) the coordinates and are stabilized.
The nested saturation controller to stabilize the orientation angles
and
has the following structure [
1]:
For the control of the angle
, it is considered that controllers (
3), (
6) and (
11) guarantee the convergence of the tracking error to the origin, in particular,
. Thus, the subsystem
is represented as follows [
1]
where,
,
,
The following transformation is defined, with which the system (
15) can be expressed as a chain of integrators with non-linear perturbations.
getting
Thus, the proposed controller has the following structure:
To control the angle
; if
and
are very close to zero, the subsystem
is represented as follows:
The following transformation is applied:
As a result, the following chain of integrators is obtained:
Thus, the proposed controller is:
The control architecture that represents the routine performed by the nested saturation, GPI and PID controllers is shown in
Figure 9.
5. Numerical Results and Comparison
This section shows the results obtained in the X-Plane software for the three proposals made; the implementation sequence for the quadrotor control analysis is shown in
Figure 6. These proposals were made with different wind speeds that were selected between 0, 25 and 50 knots (kn).
Each case has the following purpose: in the z axis the aim is to track the trajectory of a Bezier polynomial of degree 9, reaching an initial value of 3 m and a final value of 40 m with initial and final times of 20 and 50 s, respectively. For the angles and , the equilibrium point of 0 rad must be reached and at angle we wish to achieve the tracking of a sine function of type . The above is conducted with a fixed simulation step of 0.05 s.
The control parameters used in the simulations are shown in
Table 3.
The controller gains were obtained through trial and error estimation analysis, examining each selected value, following the procedure shown below: First, the gains of were calculated, then was tuned, then , finally obtaining the profits for .
The tuning methodology used to find the values of the control gains was as follows: for the PID controller, first all the gains were set to zero, then the proportional constant was increased until a response was obtained that was most similar to the desired response. The integral gain was adjusted to correct the steady state error and finally was adjusted to reduce the overshoots.
The tuning to propose the values to the controller gains by nested saturations of proposal 2 was, starting from the stability test shown in [
16], first
was adjusted, then it was proposed
,
and
, the above was proposed to maintain stability in the axes
and
. To tune the control gains by nested saturations of proposal 3,
were first placed at zero, then
was adjusted, then
was adjusted and finally
was estimated.
For the GPI controller gains, the values of , , , and were initially proposed to ensure that the roots of the polynomial were Hurwitz (in numerical simulation). Subsequently, when linking MATLAB/Simulink with X-Plane, it was necessary to modify these (based on numerical results); first, the gain was increased, then , subsequently , then and finally to reduce the overshoot.
Figure 10 shows the results obtained in each of the quadrotor axes. It is observed that the applied controllers try to reach the desired value: in the
z and
axes it is observed that the desired trajectory is followed in the three proposals (see
Figure 10a,d), for
and
the controllers used aim to reach the equilibrium point (stabilize the quadrotor) (see
Figure 10b,c). Thus, it is concluded that the proposed controllers 1 and 3 show better performance.
The responses shown in
Figure 11, exhibit the behavior of the quadrotor for a wind speed of 25 kn, in this case, the trajectory tracking for the
z and
axes is observed with larger oscillations, where the controllers used in proposal 3 are the ones that present the best behavior towards trajectory following (see
Figure 11a,d), at the angles
and
the controllers of the three proposals carried out try to reach the intended value, so the controllers that have the best behavior are those of proposal 3 (see
Figure 11b,c).
Figure 12 shows the results for the flight of the quadrotor at a wind speed of 50 knots, where large oscillations can be seen when trying to reach the desired value, as well as
taking a longer time to achieve the control objective which is due to the fact that if the wind speed is higher, it will directly affect the angle
, on the other hand the controllers applied for proposal 3 continue to respond better than those applied in the proposals 1 and 2.
The control actions
and
shown in
Figure 13,
Figure 14 and
Figure 15 present the behavior of the controllers at wind speeds of 0, 25 and 50 knots, it can be seen that if the wind speed is high, the force increases, which corresponds to the force required for the quadrotor to remain in stationary flight, while
and
They keep oscillating around zero, this to try to maintain the stability of the quadrotor. It is worth mentioning that the values of the controllers are limited to possible operating ranges.
Comparison of Control Schemes
To better observe the comparison of the behavior of the controllers applied in each proposal, the following error performance metrics were obtained: Integral Error (IE) = ; Integral of the Absolute Error (IAE) = and the Mean Square Error (MSE) = .
Figure 16,
Figure 17,
Figure 18 and
Figure 19 show the behavior of the error, IE, IAE and MSE, respectively, in the
axes for the three control proposals at a wind speed of 50 kn.
Figure 16 shows the comparison of the error in the
axes for the three mentioned proposals at a wind speed of 50 kn.
The
Figure 17,
Figure 18 and
Figure 19 present the comparative behavior of the IE, IAE and the MSE, respectively, for the axes
at a wind speed of 50 kn.
Table 4 shows the results obtained for the error, IE, IAE and MSE, where the control performance is shown for each proposal applied.
The results seen in
Table 4 are those obtained by exposing the Quadrotor to wind speeds of 0 kn and 25 kn.
From
Table 4 and
Figure 16,
Figure 17,
Figure 18 and
Figure 19, it can be seen that control proposals 1 and 3 present good behavior in
at wind speeds of 0 kn and 25 kn, with proposal 3 being the one that shows the best control dynamics at a wind speed of 50 kn. Control proposal 2 can be seen to have acceptable behavior at a wind speed of 0 kn, since at higher wind speeds, this proposal fails to achieve the desired trajectory for the axes
. From the above, proposal 3 exhibits better dynamics at wind speeds of 0, 25 and 50 kn.
The images shown in
Figure 20, present the behavior of the quadrotor in the X-Plane, as well as its simulation environment.
6. Conclusions
The use of X-Plane and MATLAB/Simulink is attractive for the validation of control schemes without the need for a physical prototype. In this work, it was possible to integrate both tools and thus carry out the analysis of the behavior of the quadrotor in the face of environmental disturbances in a realistic simulation environment, validating the sending and receiving of data through the UDP communication protocol.
The advantages of using MATLAB/Simulink and X-Plane are as follows: being able to design your own aircraft and visualize its dynamics in different flight scenarios; in addition, meteorological variables that usually affect the aircraft in a real scenario can be added.
Regarding the control proposals, these allowed the tracking of the trajectories, even with the system exposed to different wind speeds. The application of the different control laws in the three proposals allowed us to know the robustness of each controller under different wind speeds; proposal 3 was the one that exhibited the best behavior under these environmental disturbances, allowing the desired values to be reached on the axes .
It is worth noting that the third controller differs from the controller reported in [
1] in its operating logic; in this work, the z-axis is controlled first, then the
angle, then
and finally
; while in [
1]
is controlled before
. This is due to the mathematical model used, which in our case is based on a local geodetic coordinate system ENU. Thus, the design methodology proposed in [
1] is validated for both ENU and NED-based models.
Using the transformation matrix, it was possible to determine the angular velocities of each motor based on the control actions, which allowed the analysis of the quadcopter flight control in the X-Plane software. Thus, it was possible to analyze the performance of the control schemes under different wind speeds.
It is essential to highlight that the quadrotor’s mathematical model was only used to design the control schemes, which, together with the transformation matrix, were programmed in MATLAB/Simulink. Thus, using X-Plane as a MIL environment is validated; this allows for identifying errors or problems of the proposed controllers, optimizing their performance, and evaluating different design/modification options before their coding and physical implementation [
18]. The integration of MATLAB/Simulink and X-Plane results in a low-risk test environment, which allows testing and evaluating the control schemes without risking physical systems, saving time and money [
35].
The proposed software integration presents opportunities for designing and validating new control schemes and innovative aircraft designs and inspires future work. Analyzing the flight behavior of large-scale aircraft stands out as a potential area for further research. The proposed co-simulation could also be expanded to include trajectory tracking, point-to-point route following, and quadrotor consensus or formation tasks. Additionally, the communication with external embedded control cards must be explored. These possibilities for future work highlight the potential for further innovation and research in this field.