---
title: "Experimental Nonlinear and Incremental Control Stabilization of a Tail-Sitter UAV with Hardware-in-t"
url: "https://maker.wiznet.io/gavinchang/projects/experimental-nonlinear-and-incremental-control-stabilization-of-a-tail-sitter-uav-with-hardware-in-t-1/"
markdown_url: "https://maker.wiznet.io/gavinchang/projects/experimental-nonlinear-and-incremental-control-stabilization-of-a-tail-sitter-uav-with-hardware-in-t-1/md"
type: "UCC: User Created Content"
author: "Alexandre AthaydeORCID,Alexandra MoutinhoORCID"
author_url: "https://www.mdpi.com/2218-6581/13/3/51"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "Alexandre AthaydeORCID,Alexandra MoutinhoORCID"
original_url: "https://www.mdpi.com/2218-6581/13/3/51"
published: "2025-12-18"
language: "en"
likes: 0
views: 995
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# Experimental Nonlinear and Incremental Control Stabilization of a Tail-Sitter UAV with Hardware-in-t

> Experimental Nonlinear and Incremental Control Stabilization of a Tail-Sitter UAV with Hardware-in-the-Loop Validation

Original author: Alexandre AthaydeORCID,Alexandra MoutinhoORCID (source: https://www.mdpi.com/2218-6581/13/3/51)

## Article

## **Abstract**

Tail-sitters aim to combine the advantages of fixed-wing aircraft and rotorcraft but require a robust and fast stabilization strategy to perform vertical maneuvers and transitions to and from aerodynamic flight. The research conducted in this work explores different nonlinear control solutions for the problem of stabilizing a tail-sitter when hovering. For this purpose, the first controller is an existing strategy for tail-sitter control obtained from the literature, the second is an application of Nonlinear Dynamic Inversion (NDI), and the last one is its incremental version, INDI. These controllers were implemented and tuned in a simulation in order to stabilize a model of the tail-sitter, complemented by estimation methods that allow the feedback of the necessary variables. These estimators and controllers were then implemented in a microcontroller and validated in a Hardware-in-the-Loop (HITL) scenario with simple maneuvers in vertical flight. Lastly, the developed control solutions were used to stabilize the aircraft in experimental flight while being monitored by a motion capture system. The experimental results allow the validation of the model of the X-Vert and provide a comparison of the performance of the different control solutions, where the INDI presents itself as a robust control strategy with accurate tracking capabilities and less actuator demand.

**Keywords:**

[**tail-sitter**](https://www.mdpi.com/search?q=tail-sitter); [**unmanned aerial vehicles (UAVs)**](https://www.mdpi.com/search?q=unmanned+aerial+vehicles+%28UAVs%29); [**vertical take-off and landing (VTOL)**](https://www.mdpi.com/search?q=vertical+take-off+and+landing+%28VTOL%29); [**nonlinear control**](https://www.mdpi.com/search?q=nonlinear+control); [**incremental control**](https://www.mdpi.com/search?q=incremental+control); [**attitude control**](https://www.mdpi.com/search?q=attitude+control)

## **1. Introduction**

Unmanned Aerial Vehicles (UAVs) have been increasing in popularity in the last decades, with broad scientific, industrial and military uses [[**1**](https://www.mdpi.com/2218-6581/13/3/51#B1-robotics-13-00051)]. From a wide range of urban applications [[**2**](https://www.mdpi.com/2218-6581/13/3/51#B2-robotics-13-00051)] to topographic mapping and surveillance operations [[**3**](https://www.mdpi.com/2218-6581/13/3/51#B3-robotics-13-00051)], which are useful for agricultural purposes [[**4**](https://www.mdpi.com/2218-6581/13/3/51#B4-robotics-13-00051)], for example, these aircraft are undeniably helpful and are becoming virtually indispensable in many fields. It is natural that a given application may influence the requirements for the UAV to be used. Rotorcraft are usually chosen when high maneuverability is intended, while fixed-wing aircraft are more common when needing to cover large distances due to their higher endurance, with each having their own drawbacks [[**5**](https://www.mdpi.com/2218-6581/13/3/51#B5-robotics-13-00051)]. As a middle ground between these two types of aircraft, hybrid UAVs have also been the subject of intense research [[**6**](https://www.mdpi.com/2218-6581/13/3/51#B6-robotics-13-00051)], aiming to combine the advantages of fixed-wings and rotorcraft while simultaneously avoiding or diminishing their shortcomings. These sort of vehicles are also commonly designated as Vertical Take-Off and Landing (VTOL) aircraft, as they have the capability to take off vertically, perform a transition to cruise flight, and then transition back to vertical flight for landing operations. These UAVs can be classified according to a number of aspects, for example, whether they perform their transition maneuvers by rotating their rotors or wings, as in tilt-rotor or tilt-wing aircraft, respectively, or tilt themselves in landing maneuvers, as in tail-sitters, which owe their denomination to the fact that they land on their tails. The reviews in Refs. [[**5**](https://www.mdpi.com/2218-6581/13/3/51#B5-robotics-13-00051),[**6**](https://www.mdpi.com/2218-6581/13/3/51#B6-robotics-13-00051),[**7**](https://www.mdpi.com/2218-6581/13/3/51#B7-robotics-13-00051)] provide additional insights into VTOL aircraft. Among the different hybrid and convertible UAVs mentioned in these works, tail-sitters have a simplified mechanical design, generally requiring fewer actuators and moving parts, although at the cost of being susceptible to crosswinds when performing vertical flight, as the wing is perpendicular to the ground, and thus requiring complex transition maneuvers [[**6**](https://www.mdpi.com/2218-6581/13/3/51#B6-robotics-13-00051)].

The state of the art in aircraft control starts with model-based linear feedback controllers: a nonlinear model of the system is designed, comprising different subsystems with varying degrees of complexity, and is then linearized at a certain operating point, usually hovering flight for rotorcraft or constant-airspeed leveled flight for fixed-wing aircraft. Afterward, linear controllers are designed using adequate methods, of which Proportional–Integral–Derivative (PID) and Linear Quadratic Regulators (LQRs) are examples [[**8**](https://www.mdpi.com/2218-6581/13/3/51#B8-robotics-13-00051),[**9**](https://www.mdpi.com/2218-6581/13/3/51#B9-robotics-13-00051)]. However, the performance of these controllers is highly influenced by nonlinearities and model mismatches, both of which are not infrequent in UAVs that face large angles of attack. Furthermore, as the models used to compute such controllers depend heavily on the airspeed and air density, these linear control strategies are commonly paired with a scheduling mechanism [[**10**](https://www.mdpi.com/2218-6581/13/3/51#B10-robotics-13-00051),[**11**](https://www.mdpi.com/2218-6581/13/3/51#B11-robotics-13-00051)], which may become computationally expensive for the flight controller. As a way of circumventing many of these issues, nonlinear strategies are the object of development and discussion in flight control, as they allow the nonlinearities of the model to be incorporated in the control design phase, thus making it less susceptible to the aforementioned loss of performance [[**12**](https://www.mdpi.com/2218-6581/13/3/51#B12-robotics-13-00051),[**13**](https://www.mdpi.com/2218-6581/13/3/51#B13-robotics-13-00051)]. Nonlinear Dynamic Inversion (NDI) is a well-known example used in aircraft stabilization, which works by inverting the model—along with many of its nonlinearities—in order to determine the control action to take, leading to more robust controllers [[**14**](https://www.mdpi.com/2218-6581/13/3/51#B14-robotics-13-00051),[**15**](https://www.mdpi.com/2218-6581/13/3/51#B15-robotics-13-00051)]. However, NDI, along with similar nonlinear control strategies like Backstepping [[**16**](https://www.mdpi.com/2218-6581/13/3/51#B16-robotics-13-00051)], still requires an accurate model of the UAV to be controlled, thus requiring extensive parameter identification through either wind tunnel or flight testing and making it susceptible to model inaccuracies [[**17**](https://www.mdpi.com/2218-6581/13/3/51#B17-robotics-13-00051)]. As a way to counteract such limitations, a reformulation of these control strategies can be performed so that they rely more on sensor data instead of the information provided by the model, leading to incremental versions of these controllers—INDI [[**18**](https://www.mdpi.com/2218-6581/13/3/51#B18-robotics-13-00051),[**19**](https://www.mdpi.com/2218-6581/13/3/51#B19-robotics-13-00051)] and IBKS [[**20**](https://www.mdpi.com/2218-6581/13/3/51#B20-robotics-13-00051),[**21**](https://www.mdpi.com/2218-6581/13/3/51#B21-robotics-13-00051)]. These control strategies have the advantage of only requiring the modeling of the actuation components—like propellers, rotors and control surfaces—to compute the control action, and they have been demonstrated to be more robust to model mismatches and parameter uncertainty [[**22**](https://www.mdpi.com/2218-6581/13/3/51#B22-robotics-13-00051),[**23**](https://www.mdpi.com/2218-6581/13/3/51#B23-robotics-13-00051),[**24**](https://www.mdpi.com/2218-6581/13/3/51#B24-robotics-13-00051)]. In particular, tail-sitters benefit from control strategies that are less model-dependent, as they face high angles of attack (AOAs) and complex propeller–fuselage interactions, both of which are difficult aspects to portray. Some previous research works address the application of incremental control laws to tail-sitters [[**25**](https://www.mdpi.com/2218-6581/13/3/51#B25-robotics-13-00051),[**26**](https://www.mdpi.com/2218-6581/13/3/51#B26-robotics-13-00051),[**27**](https://www.mdpi.com/2218-6581/13/3/51#B27-robotics-13-00051),[**28**](https://www.mdpi.com/2218-6581/13/3/51#B28-robotics-13-00051)], but they do not draw a comparison with conventional nonlinear controllers in order to highlight the advantages of their incremental versions.

This work provides a comprehensive model of the E-Flite/Horizon Hobby X-Vert VTOL, a small and highly maneuverable bi-rotor tail-sitter UAV that was previously modeled in Ref. [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)], together with a systematic comparison of the performance of different controllers in the presence of sensor noise and possible model mismatches. Three control strategies were considered: (i) a simplified version of the nonlinear control strategy proposed in Ref. [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)], consisting of an adaptation to the specific conditions of vertical flight and designated as the benchmark nonlinear controller (BNC), (ii) the conventional Nonlinear Dynamic Inversion and (iii) its incremental counterpart, INDI. These strategies were implemented to control the X-Vert when performing vertical flight and compared in three distinct environments: (i) in a simulation with the comprehensive model of the tail-sitter in order to provide a baseline comparison of the performance of the controllers, (ii) in a Hardware-in-the-Loop (HITL) simulation, where these control solutions were implemented in a microcontroller unit (MCU) enabling the control of the computer-simulated aircraft by an external flight controller using Ethernet communications, which was specifically designed and assembled for the control of the X-Vert VTOL, and (iii) in a controlled indoor environment in order to assess the controllers’ performance and robustness when controlling the real UAV to perform simple maneuvers in vertical flight.

## **2. Aircraft Simulator**

The simulator developed in this work encompasses a model of the X-Vert tail-sitter UAV, as well as the necessary elements to replicate an experimental scenario. A generic overview of the simulation environment is provided in [**Figure 1**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f001) that accounts for these diverse components, where 𝐱, 𝐮 and 𝐳, respectively, stand for the state, input and output vectors. The subset of 𝐱 that is used for vertical flight control is represented by 𝐲, and thus, 𝐲𝑟𝑒𝑓 and 𝐲𝑒𝑠𝑡 are used, respectively, to denote its reference and estimation.

![Robotics 13 00051 g001](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g001-550.jpg)

**Figure 1.** Simulation environment.

The current section addresses the X-Vert model, starting with a short description of this UAV and then describing the equations of motion of the model in detail, accounting for its aerodynamics, propulsion system, ground contact forces and gravity. Since the sensors do not yield direct measurements for any of the components of 𝐱, an estimation step, described at the end of this section, is necessary, allowing the remaining necessary states to be reconstructed from the available sensor data. The control block, representing the centerpiece of this research work, is addressed separately in [**Section 3**](https://www.mdpi.com/2218-6581/13/3/51#sec3-robotics-13-00051). Lastly, 𝐲𝑟𝑒𝑓 consists of a set of simple maneuvers in vertical flight, which are described in detail in [**Section 4**](https://www.mdpi.com/2218-6581/13/3/51#sec4-robotics-13-00051).

Throughout this section, multiple constants and coefficients will be defined and used to describe the simulated aircraft, but their values are omitted for presentation purposes; the values are provided in [**Appendix A**](https://www.mdpi.com/2218-6581/13/3/51#app1-robotics-13-00051) with their respective sources.

### *2.1. Tail-Sitter Prototype and Nonlinear Model*

The X-Vert VTOL is a radio-controlled aircraft manufactured by E-Flite/Horizon Hobby [[**30**](https://www.mdpi.com/2218-6581/13/3/51#B30-robotics-13-00051)]. It is a half-meter-wingspan tail-sitter with two elevons—control surfaces that combine the traditional functions of the aileron and elevator—and two proprotors—which are thus denominated because they work simultaneously as rotors and propellers. This aircraft was chosen for this research work due to its VTOL capabilities and small dimensions, allowing for indoor flight. The prototype used for this work was retrofitted with additional sensors and electronics, which are described in [**Section 5**](https://www.mdpi.com/2218-6581/13/3/51#sec5-robotics-13-00051), and is shown in [**Figure 2**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f002), where the elevons and proprotors can be seen.

![Robotics 13 00051 g002](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g002-550.jpg)

**Figure 2.** The experimental prototype based on the frame of the X-Vert VTOL.

#### 2.1.1. Equations of Motion

The aircraft model used in the developed simulator is largely based on Ref. [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)], as it already provides a comprehensive model for the specific tail-sitter UAV used in this work, the X-Vert VTOL. The aforementioned model assumes the UAV as a rigid body and accounts for the influence of the propulsion subsystem, aerodynamics, ground contact forces and gravity, but it excludes the ground effect on the aerodynamics and assumes constant atmospheric properties. This model is described briefly, with an additional emphasis on the aspects that differ from the aforementioned work.

This UAV requires four inputs, namely, the deflections of the two elevons, 𝛿𝑅 and 𝛿𝐿, and the throttle signals for the two proprotors, 𝜏𝑅 and 𝜏𝐿, with the subscripts “*R*” and “*L*” denoting the *right* and *left* sides of the wing, respectively. However, it is more convenient to represent these inputs as the more traditional ones in flight control: 𝛿𝑎 and 𝛿𝑒, respectively, standing for differential and simultaneous elevon deflection, representing the functions of *ailerons* and the *elevator*, and 𝜏𝑟 and 𝜏𝑡, being the analogous inputs applied to the proprotors, taking the role of the *rudder* and *throttle*. Therefore, the input vector 𝐮 can be obtained from the original four inputs [𝛿𝑅,𝛿𝐿,𝜏𝑅,𝜏𝐿]𝑇 by applying an adequate transformation [[**31**](https://www.mdpi.com/2218-6581/13/3/51#B31-robotics-13-00051)] and is represented by

𝐮=[𝛿𝑎,𝛿𝑒,𝜏𝑟,𝜏𝑡]𝑇

(1)

The state vector 𝐱=[𝐯𝐵𝑔,𝐰𝐵𝑔,𝐩𝑁𝐸𝐷,𝐪𝑁𝐸𝐷,Ω]𝑇 is represented by the linear and angular velocity vectors in relation to the ground and expressed in the body frame, 𝐯𝐵𝑔 and 𝐰𝐵𝑔, respectively; the position of the aircraft in the North–East–Down (fixed) frame, 𝐩𝑁𝐸𝐷; and its orientation in relation to this same frame, expressed in quaternion form, 𝐪𝑁𝐸𝐷. Naturally, the usage of quaternions for attitude representation is intended to avoid the well-known singularity issues related to more familiar representations, like the Euler angles [[**31**](https://www.mdpi.com/2218-6581/13/3/51#B31-robotics-13-00051)]. Two additional states are included in 𝐱 to account for the angular velocities of the left and right motors that rotate the proprotors, represented briefly by Ω=[Ω𝑅,Ω𝐿]𝑇.

It should be noted that it is common to represent aforementioned velocity vectors with respect to the air—𝐯𝐵𝑎=𝐯𝐵𝑔−𝐯𝐵𝑤 and 𝐰𝐵𝑎=𝐰𝐵𝑔−𝐰𝐵𝑤—especially when accounting for the effects of aerodynamics, as these are impacted by the wind, by providing additional components for these velocities, 𝐯𝐵𝑤 and 𝐰𝐵𝑤. Although this work assumes negligible wind, and therefore, 𝐯𝐵𝑎=𝐯𝐵𝑔 and 𝐰𝐵𝑎=𝐰𝐵𝑔, the subscript *a* will still be kept when air velocities should be used for generalization purposes. Examples of this are the angle of attack (AOA) 𝛼, the sideslip angle 𝛽 and airspeed 𝑉𝑡, which are computed using the air velocity vector 𝐯𝐵𝑎 [[**31**](https://www.mdpi.com/2218-6581/13/3/51#B31-robotics-13-00051),[**32**](https://www.mdpi.com/2218-6581/13/3/51#B32-robotics-13-00051),[**33**](https://www.mdpi.com/2218-6581/13/3/51#B33-robotics-13-00051)].

The dynamics and kinematics of the UAV are expressed by

𝐯˙𝐵𝑔=1𝑚𝑢𝑎𝑣𝐟𝐵−(𝐰𝐵𝑔×𝐯𝐵𝑔)

(2)

𝐰˙𝐵𝑔=𝐉−1𝑢𝑎𝑣(𝐦𝐵−𝐰𝐵𝑔×𝐉𝑢𝑎𝑣𝐰𝐵𝑔)

(3)

𝐩˙𝑁𝐸𝐷=𝐑𝑁𝐸𝐷𝐵𝐯𝐵𝑔𝐪˙𝑁𝐸𝐷=12(𝐒𝐰𝐪𝐪𝑁𝐸𝐷)

(4)

where 𝑚𝑢𝑎𝑣 represents the mass of the X-Vert, and 𝐉𝑢𝑎𝑣 is its inertia matrix, while 𝐟𝐵 and 𝐦𝐵, respectively, stand for the resulting force and moment vectors acting on it. Additionally, 𝐑𝑁𝐸𝐷𝐵 and 𝐒𝐰𝐪 denote auxiliary matrices that depict the influence of 𝐯𝐵𝑔 and 𝐰𝐵𝑔, respectively, on 𝐩𝑁𝐸𝐷 and 𝐪𝑁𝐸𝐷, having been obtained from Ref. [[**31**](https://www.mdpi.com/2218-6581/13/3/51#B31-robotics-13-00051)].

Four different aspects contribute to the forces and moments acting on the UAV, these being the propulsion system, the aerodynamics, the ground contact effects and the gravity. Since it is assumed that the force and moment balances are expressed in the center of gravity (CG) of the aircraft, the moment that results from gravity effects is neglected, and therefore, 𝐟𝐵 and 𝐦𝐵 are expressed by

𝐟𝐵=𝐟𝐵𝑝+𝐟𝐵𝑎+𝐟𝐵𝑐+𝐟𝐵𝑔

(5)

𝐦𝐵=𝐦𝐵𝑝+𝐦𝐵𝑎+𝐦𝐵𝑐

(6)

with each of the components being described in the following sections.

#### 2.1.2. Propulsion Forces and Moments

The rotation of each proprotor of the X-Vert generates thrust *T* and torque *Q*, which influence the propulsion force 𝐟𝐵𝑝 and moment 𝐦𝐵𝑝, accounting for the positions of the right and left proprotors [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)]:

𝐟𝐵𝑝=⎡⎣⎢⎢𝑇𝑅+𝑇𝐿00⎤⎦⎥⎥

(7)

𝐦𝐵𝑝=⎡⎣⎢⎢𝑄𝑅−𝑄𝐿00⎤⎦⎥⎥+(𝐝𝑝𝑟,𝑅×𝐟𝐵𝑝,𝑅)+(𝐝𝑝𝑟,𝐿×𝐟𝐵𝑝,𝐿)

(8)

The thrust and torque of each proprotor depend on its angular velocity and incoming airspeed. By taking 𝑉𝑡 as the vectorial norm of 𝐯𝐵𝑎 and defining 𝜑 as the angle that this vector makes with the rotational axis of each proprotor, the advance ratio *J* is obtainable, which can then be used to compute the thrust and power coefficients required for *T* and *Q* [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)]:

𝐽=𝜋cos(𝜑)·𝑉𝑡Ω𝑅𝑝𝑟𝑜𝑝

(9)

𝑇=4𝜋2𝜌𝑎Ω2𝑅4𝑝𝑟𝑜𝑝𝐶𝑇(𝐽)

(10)

𝑄=4𝜋3𝜌𝑎Ω2𝑅5𝑝𝑟𝑜𝑝𝐶𝑃(𝐽)

(11)

Although more comprehensive models for the 𝐶𝑇 and 𝐶𝑃 coefficients are common when modeling UAVs [[**34**](https://www.mdpi.com/2218-6581/13/3/51#B34-robotics-13-00051)], a second-degree dependence on the advance ratio *J* of the form 𝐶𝑇/𝑃=𝑐𝑇/𝑃,2𝐽2+𝑐𝑇/𝑃,1𝐽+𝑐𝑇/𝑃,0 was considered satisfactory for the purposes of this research, and the required parameters are provided in [**Appendix A**](https://www.mdpi.com/2218-6581/13/3/51#app1-robotics-13-00051).

The relationship between the angular velocity of the motors Ω and the throttle input 𝜏 is modeled as the dynamics of a Brushless Direct Current (BLDC) electric motor regulated by an Electronic Speed Controller (ESC) [[**35**](https://www.mdpi.com/2218-6581/13/3/51#B35-robotics-13-00051)], but a simplification is made by assuming the steady-state solution for the dynamics of the electric current, resulting in the first-order model

Ω˙=1𝐽𝑝𝑟(𝐾𝑡𝐼−𝑄−𝐵𝑚Ω)

(12)

𝐼=𝑉𝑏𝑎𝑡𝜏−𝐾𝑒Ω𝑅𝑚

(13)

which assumes a constant battery voltage 𝑉𝑏𝑎𝑡, with the torque constant, 𝐾𝑡; the back-electromotive force, 𝐾𝑒; the motor resistance, 𝑅𝑚; the rotational inertia of the proprotor, 𝐽𝑝𝑟; and the damping constant, 𝐵𝑚. The values for these constants were obtained from a similar motor to the one that is used in the X-Vert, and it can be verified that the steady-state solution of ([**12**](https://www.mdpi.com/2218-6581/13/3/51#FD12-robotics-13-00051)) agrees with the motor model in Ref. [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)] for the aforementioned value of 𝑉𝑏𝑎𝑡.

Lastly, the rotation of the proprotors originates an induced airspeed 𝑉𝑖𝑛𝑑 that is dependent on the generated thrust and inflow airspeed, which can be found by solving [[**36**](https://www.mdpi.com/2218-6581/13/3/51#B36-robotics-13-00051)]

𝑉4𝑖𝑛𝑑+2cos(𝜑)𝑉𝑡𝑉3𝑖𝑛𝑑+𝑉2𝑡𝑉2𝑖𝑛𝑑=⎛⎝⎜⎜𝑇2𝜌𝜋𝑅2𝑝𝑟𝑜𝑝⎞⎠⎟⎟2

(14)

Once 𝑉𝑖𝑛𝑑 is computed, the slipstream velocity 𝐯𝑠𝑙𝑖𝑝 and radius 𝑟𝑠𝑙𝑖𝑝 are determined by

𝐯𝑠𝑙𝑖𝑝=𝐯𝑎+⎡⎣⎢⎢−2𝑉𝑖𝑛𝑑00⎤⎦⎥⎥

(15)

𝑟𝑠𝑙𝑖𝑝=𝑅2𝑝𝑟𝑜𝑝(𝑉𝑡+𝑉𝑖𝑛𝑑𝑉𝑡+2𝑉𝑖𝑛𝑑)−−−−−−−−−−−−−−−−−√

(16)

assuming fully developed flow. The aerodynamic angles for the slipstream, 𝛼𝑠𝑙𝑖𝑝 and 𝛽𝑠𝑙𝑖𝑝, and the absolute slipstream airspeed, 𝑉𝑠𝑙𝑖𝑝, are obtainable from 𝐯𝑠𝑙𝑖𝑝 [[**31**](https://www.mdpi.com/2218-6581/13/3/51#B31-robotics-13-00051),[**32**](https://www.mdpi.com/2218-6581/13/3/51#B32-robotics-13-00051)].

#### 2.1.3. Aerodynamic Forces and Moments

The wing of the X-Vert is modeled as a set of flat-plate segments for the left and right sides, following a similar approach to those taken in Refs. [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051),[**37**](https://www.mdpi.com/2218-6581/13/3/51#B37-robotics-13-00051),[**38**](https://www.mdpi.com/2218-6581/13/3/51#B38-robotics-13-00051)] but including additional aerodynamic derivatives to account for lateral aerodynamics and the effects of the angular rates [[**31**](https://www.mdpi.com/2218-6581/13/3/51#B31-robotics-13-00051)]:

𝐟𝐵𝑎=𝐟𝐵𝑎,𝑅+𝐟𝐵𝑎,𝐿+𝐟𝐵𝑎,𝑙𝑎𝑡+𝑑𝑒𝑟𝑖𝑣𝑠

(17)

𝐦𝐵𝑎=𝐦𝐵𝑎,𝑅+𝐦𝐵𝑎,𝐿+𝐦𝐵𝑎,𝑙𝑎𝑡+𝑑𝑒𝑟𝑖𝑣𝑠

(18)

Each side of the wing is divided into three zones for the computation of aerodynamic forces and moments, as illustrated in [**Figure 3**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f003): zone 1 (𝑧1)—the elevon section, which is in the slipstream of the proprotors; zone 2 (𝑧2)—the elevon section outside said slipstream; and zone 3 (𝑧3)—the remainder of the side of the wing.

![Robotics 13 00051 g003](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g003-550.jpg)

**Figure 3.** The division of the wing into three zones for the computation of the aerodynamic forces and moments according to different angle-of-attack and airspeed values, as well as elevon deflection.

Accounting for such division, the drag *D*, lift *L* and pitching moment *m* for each zone can be expressed in the body frame as

𝐟𝐵𝑎,𝑅/𝐿=𝐑𝐵𝑊,𝑠𝑙𝑖𝑝⎡⎣⎢⎢⎢−𝐷𝑧10−𝐿𝑧1⎤⎦⎥⎥⎥𝑅/𝐿+𝐑𝐵𝑊⎡⎣⎢⎢⎢−𝐷𝑧2−𝐷𝑧30−𝐿𝑧2−𝐿𝑧3⎤⎦⎥⎥⎥𝑅/𝐿

(19)

𝐦𝐵𝑎,𝑅/𝐿=⎡⎣⎢⎢⎢0𝑚𝑧1+𝑚𝑧2+𝑚𝑧30⎤⎦⎥⎥⎥𝑅/𝐿+(𝐝𝐴𝐶,𝑅/𝐿×𝐟𝐵𝑎,𝑅/𝐿)

(20)

where 𝐑𝐵𝑊 introduces the influence of the angle of attack and the sideslip angle, 𝛼 and 𝛽, and 𝐑𝐵𝑊,𝑠𝑙𝑖𝑝 takes on an analogous role but for the angles for zone 1, 𝛼𝑠𝑙𝑖𝑝 and 𝛽𝑠𝑙𝑖𝑝, which account for the slipstream effects. The distance of the aerodynamic center (AC) of the right and left sides of the wing are denoted, respectively, by 𝐝𝐴𝐶,𝑅 and 𝐝𝐴𝐶,𝑅/𝐿, which are assumed to be the same for each side of the wing, regardless of the zone.

The drag, lift and pitching moment for each zone are obtained by using the data for the aerodynamic coefficients—𝐶𝐷, 𝐶𝐿 and 𝐶𝑚—from Ref. [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)] for the angle of attack and elevon deflection and combining them with the airspeed at each zone and its span. For example, zone 1 has a span of 𝑏𝑧1=2𝑟𝑠𝑙𝑖𝑝, which is influenced by the slipstream air velocity 𝑉𝑠𝑙𝑖𝑝, and the aerodynamic coefficients account for the slipstream AOA 𝛼𝑠𝑙𝑖𝑝 and elevon deflection 𝛿, resulting in

𝐷𝑧1=12𝜌𝑎𝑉2𝑠𝑙𝑖𝑝𝑐𝑤𝑏𝑧1(𝐶𝐷)𝛼𝑠𝑙𝑖𝑝,𝛿

(21)

𝐿𝑧1=12𝜌𝑎𝑉2𝑠𝑙𝑖𝑝𝑐𝑤𝑏𝑧1(𝐶𝐿)𝛼𝑠𝑙𝑖𝑝,𝛿

(22)

𝑚𝑧1=12𝜌𝑎𝑉2𝑠𝑙𝑖𝑝𝑐2𝑤𝑏𝑧1(𝐶𝑚)𝛼𝑠𝑙𝑖𝑝,𝛿

(23)

where 𝑐𝑤 denotes the mean aerodynamic chord (MAC) of the wing, and 𝜌𝑎 denotes the air density, both assumed to be constant. Zones 2 and 3 use 𝑉𝑡 for the airspeed value and 𝛼 as the angle of attack to obtain the aerodynamic coefficients, but zone 2 accounts for the elevon deflection, while zone 3 does not. The spans for each zone to be used in computations analogous to ([**21**](https://www.mdpi.com/2218-6581/13/3/51#FD21-robotics-13-00051)) are defined directly from the wingspan of the X-Vert, 𝑏𝑤, and elevon span, 𝑏𝑒: 𝑏𝑧2=𝑏𝑒−2𝑟𝑠𝑙𝑖𝑝, 𝑏𝑧2=𝑏𝑤3−𝑏𝑒.

The last aspect of ([**17**](https://www.mdpi.com/2218-6581/13/3/51#FD17-robotics-13-00051)) to describe is the influence of lateral aerodynamics and aerodynamic derivatives by means of 𝐟𝐵𝑎,𝑙𝑎𝑡+𝑑𝑒𝑟𝑖𝑣𝑠 and 𝐦𝐵𝑎,𝑙𝑎𝑡+𝑑𝑒𝑟𝑖𝑣𝑠, given by

𝐟𝐵𝑎,𝑙𝑎𝑡+𝑑𝑒𝑟𝑖𝑣𝑠=12𝜌𝑎𝑉2𝑡𝑏𝑤𝑐𝑤𝐑𝐵𝑊⎡⎣⎢⎢⎢⎢0𝐶𝑌𝛽sin(𝛽)+𝑏𝑤2𝑉𝑡(𝐶𝑌𝑝𝑝𝑎+𝐶𝑌𝑟𝑟𝑎)𝑐𝑤2𝑉𝑡𝐶𝐿𝑞𝑞𝑎⎤⎦⎥⎥⎥⎥

(24)

𝐦𝐵𝑎,𝑙𝑎𝑡+𝑑𝑒𝑟𝑖𝑣𝑠=12𝜌𝑎𝑉2𝑡𝑏𝑤𝑐𝑤⎡⎣⎢⎢⎢⎢⎢⎢𝑏𝑤𝐶𝑙𝛽sin(𝛽)+𝑏2𝑤2𝑉𝑡(𝐶𝑙𝑝𝑝𝑎+𝐶𝑙𝑟𝑟𝑎)𝑐2𝑤2𝑉𝑡(𝐶𝑚𝑞𝑞𝑎)𝑏𝑤𝐶𝑛𝛽(2𝛽)+𝑏2𝑤2𝑉𝑡(𝐶𝑛𝑝𝑝𝑎+𝐶𝑛𝑟𝑟𝑎)⎤⎦⎥⎥⎥⎥⎥⎥

(25)

which have been adopted from Ref. [[**31**](https://www.mdpi.com/2218-6581/13/3/51#B31-robotics-13-00051)] but modified to allow for larger values of 𝛽.

Since no specific data for the X-Vert were available for these coefficients, the values were obtain from another flying-wing UAV [[**39**](https://www.mdpi.com/2218-6581/13/3/51#B39-robotics-13-00051)] and used according to ([**24**](https://www.mdpi.com/2218-6581/13/3/51#FD24-robotics-13-00051)). Despite the fact that the UAV in the aforementioned research work is not the X-Vert, it is still a flying-wing aircraft, which the X-Vert resembles, and thus, the resulting values for the coefficients should be satisfactory. The adequate determination of these parameters often requires experimental identification and/or computational methods [[**31**](https://www.mdpi.com/2218-6581/13/3/51#B31-robotics-13-00051)], which undoubtedly fall out of the scope of this work. This may lead to the introduction of eventual modeling errors, but for the purpose of designing control strategies for the X-Vert, it is acknowledged with the expectation that the controllers will be robust to these eventual model mismatches.

#### 2.1.4. Ground Contact Forces and Moments

The interaction of the ground is from Ref. [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)], which employs a spring–damper analogy to represent the ground contact force at each contact point *k*, expressed in the inertial frame:

𝐟𝑁𝐸𝐷𝑐,𝑘=⎡⎣⎢⎢⎢00−𝑚𝑢𝑎𝑣𝑘𝑐,𝑝𝑑𝑘⎤⎦⎥⎥⎥−𝑚𝑢𝑎𝑣𝑘𝑐,𝑣𝐯𝑁𝐸𝐷𝑘

(26)

where 𝑑𝑘 stands for the depth of point *k*, and 𝐯𝑁𝐸𝐷𝑘=𝐑𝐵𝑁𝐸𝐷(𝐯𝑁𝐸𝐷𝑔,𝑘+𝐰𝑁𝐸𝐷𝑔,𝑘×𝐫𝑐,𝑘) is its velocity expressed in the inertial frame, with 𝐫𝑐,𝑘 being the position of the point in relation to the CG, where “*c*” denotes *contact* 𝑘𝑐,𝑝 and 𝑘𝑐,𝑣 are gains for the spring–damper system, and their values were kept the same as in Ref. [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)]. 𝐟𝑁𝐸𝐷𝑐,𝑘 also accounts for an upper limit of zero, representing the loss of contact with the ground for each point.

Five contact points were used, corresponding to the four corners of the main wing and the noise of the UAV, as shown in [**Appendix A**](https://www.mdpi.com/2218-6581/13/3/51#app1-robotics-13-00051), and thus, the ground force and moment vectors can be computed by expressing 𝐟𝑁𝐸𝐷𝑐,𝑘 for each in the body frame:

𝐟𝐵𝑐=∑𝑘=15𝐑𝑁𝐸𝐷𝐵𝐟𝑁𝐸𝐷𝑐,𝑘

(27)

𝐦𝐵𝑐=∑𝑘=15𝐫𝑐,𝑘×𝐑𝑁𝐸𝐷𝐵𝐟𝑁𝐸𝐷𝑐,𝑘

(28)

#### 2.1.5. Gravity Force

The last force acting on the simulated model of the X-Vert is gravity. As explained before, it is assumed that this force acts on the CG of the UAV, producing no moment, and therefore, its effects can be modeled by

𝐟𝐵𝑔=𝑚𝑢𝑎𝑣𝐑𝐵𝑁𝐸𝐷𝐠𝑁𝐸𝐷

(29)

where 𝐠𝑁𝐸𝐷=[0,0,9.8065]𝑇 m/s2 denotes the gravity acceleration vector expressed in the fixed frame.

### *2.2. Sensors*

The simulator used in this work also accounts for the sensors onboard the UAV, namely, an accelerometer and a gyroscope—a common combination for estimating the attitude of aircraft—and sonar, which is used to assist in Vertical Take-off and Landing maneuvers. The output vector 𝐳=[𝐚𝐵𝑔,𝑎𝑐𝑐,𝐰𝐵𝑔,𝑔𝑦𝑟,𝑑𝐵𝑠𝑜𝑛]𝑇 comprises the acceleration vector provided by the accelerometer, 𝐚𝐵𝑔,𝑎𝑐𝑐, the angular velocity from gyroscope readings, 𝐰𝐵𝑔,𝑔𝑦𝑟, and the distance measured by sonar, 𝑑𝐵𝑠𝑜𝑛, all expressed in the body frame. It is noted that the sensors are assumed to be coincident with the center of gravity (CG) of the UAV.

The models for the accelerometer and gyroscope [[**40**](https://www.mdpi.com/2218-6581/13/3/51#B40-robotics-13-00051)] are provided, respectively, by

𝐚𝐵𝑔,𝑎𝑐𝑐=𝐚𝐵+𝐰𝐵𝑔×𝐯𝐵𝑔+𝐑𝐵𝑁𝐸𝐷𝐠𝑁𝐸𝐷+𝐛𝑎𝑐𝑐+𝜂𝑎𝑐𝑐

(30)

𝐰𝐵𝑔,𝑔𝑦𝑟=𝐰𝐵𝑔+𝐛𝑔𝑦𝑟+𝜂𝑔𝑦𝑟

(31)

where 𝐛 denotes the bias of the respective sensor, and 𝜂 is its zero-mean Gaussian noise vector.

The sonar sensor is mounted on the underside of the X-Vert and points to its tail, parallel to the *x*-axis of the body frame, and its model is given by

𝑑𝐵𝑠𝑜𝑛=𝑃𝐷||𝐮𝑁𝐸𝐷𝑠𝑜𝑛||𝐮𝑁𝐸𝐷𝑠𝑜𝑛·𝐞𝑧+𝑏𝑠𝑜𝑛+𝜂𝑠𝑜𝑛

(32)

where 𝑑𝐵𝑠𝑜𝑛 represents the measurements of the sensor, 𝑃𝐷 is the Down coordinate expressed in the NED frame, 𝐮𝑁𝐸𝐷𝑠𝑜𝑛=𝐑𝑁𝐸𝐷𝐵(−𝐞𝑥) depicts the orientation vector of the sonar expressed in this same frame, 𝐞𝑥 and 𝐞𝑧 represent the respective unit vectors, and 𝜂𝑠𝑜𝑛 denotes the noise of the sensor.

When it comes to implementing the models of these sensors, some considerations should be provided regarding their respective biases and noise components. Firstly, the biases are assumed to be constant and capable of being removed by means of an adequate calibration process in an experimental scenario. Consequently, they take null values for simulation purposes, as shown in [**Appendix A**](https://www.mdpi.com/2218-6581/13/3/51#app1-robotics-13-00051). Secondly, the specific noise characteristics of each sensor are usually characterized by their respective variance 𝜎2, for which a combination of theoretical values from Ref. [[**31**](https://www.mdpi.com/2218-6581/13/3/51#B31-robotics-13-00051)] and measurements from the real sensors were used (see [**Section 5**](https://www.mdpi.com/2218-6581/13/3/51#sec5-robotics-13-00051)). Since the goal is not extensive sensor identification but only the portrayal of the effects of their characteristic noise for simulation purposes, the values provided in [**Appendix A**](https://www.mdpi.com/2218-6581/13/3/51#app1-robotics-13-00051) are illustrative but were kept in their respective orders of magnitude.

### *2.3. Attitude and Vertical Velocity Estimators*

For the purpose of the stabilization of the X-Vert, the variables related to the attitude, 𝐰𝐵𝑔 and 𝐪𝑁𝐸𝐷, are required. Additionally, the longitudinal component of the velocity, 𝑢𝐵𝑔, and the Down position, 𝑃𝐷, are necessary for altitude control in vertical flight. Therefore, the estimated output vector is defined as

𝐲𝑒𝑠𝑡=[𝑢̂ 𝐵𝑔,𝐰𝐵𝑔,𝑔𝑦𝑟,𝑃̂ 𝐷,𝐪̂ 𝑁𝐸𝐷]𝑇

(33)

In order to save computational resources, a choice was made to use simple and fast methods to estimate these states of complementary nature. Starting with the attitude, an estimate of 𝐪𝑁𝐸𝐷 is obtainable through the combination of accelerometer and gyroscope data using the Madgwick algorithm [[**41**](https://www.mdpi.com/2218-6581/13/3/51#B41-robotics-13-00051)]:

𝐪̂ 𝑁𝐸𝐷𝑘=𝐪̂ 𝑁𝐸𝐷𝑘−1+𝑇𝑠(12𝐪̂ 𝑁𝐸𝐷𝑘−1⊗[0,𝐰𝐵𝑔,𝑔𝑦𝑟]𝑇−𝛽𝐶𝐹𝐉𝑔𝐟𝑔||𝐉𝑔𝐟𝑔||)

(34)

where 𝐟𝑔 is an objective function to be minimized, and 𝐉𝑔 is its Jacobian matrix, the expressions of both having been omitted in this work but being readily available in the original research [[**41**](https://www.mdpi.com/2218-6581/13/3/51#B41-robotics-13-00051)]. This estimator includes the accelerometer readings 𝐚𝐵𝑔,𝑎𝑐𝑐 in 𝐟𝑔 and combines them with the integration of the gyroscope measurements 𝐰𝑔,𝑔𝑦𝑟, balancing the relative weights between both with the scalar 𝛽𝐶𝐹, which takes the role of the single design variable for adjusting this estimator. Since the accelerometer does not perceive any change in rotation over an axis aligned with the gravity vector, the estimator is subject to some drift, as it relies only on the gyroscope integration for these cases. Nonetheless, for short flight times, it provided satisfactory results, presenting a fast and simple estimation strategy for the attitude in vertical flight while acting as a filter for the noise present in the sensors.

Following analogous reasoning, the readings from the accelerometer, excluding the gravity contribution, can be integrated to estimate the velocity over the *x*-axis of the UAV, while another estimate of it is obtainable by deriving sonar readings. By pairing both of these in the form of a more conventional complementary filter [[**31**](https://www.mdpi.com/2218-6581/13/3/51#B31-robotics-13-00051)], the longitudinal velocity 𝑢𝑔 can be computed by filtering and combining both of these estimates according to

𝑢̂ 𝐵𝑔,𝑘=𝛼𝐶𝐹·𝐿𝑃𝐹(𝑢̂ 𝐵𝑠𝑜𝑛,𝑘)+(1−𝛼𝐶𝐹)·𝐻𝑃𝐹(𝑢̂ 𝐵𝑎𝑐𝑐,𝑘)

(35)

in which 𝛼𝐶𝐹 is a design variable, and where 𝑢̂ 𝑠𝑜𝑛,𝑘 and 𝑢̂ 𝑎𝑐𝑐,𝑘 are the previously described estimates of 𝑢𝑔 from the sonar and accelerometer, respectively, defined by

𝑢̂ 𝐵𝑠𝑜𝑛,𝑘=𝑑𝐵𝑠𝑜𝑛,𝑘−𝑑𝐵𝑠𝑜𝑛,𝑘−1𝑇𝑠

(36)

𝑢̂ 𝐵𝑎𝑐𝑐,𝑘=𝑢̂ 𝐵𝑎𝑐𝑐,𝑘−1+𝑇𝑠(𝑎𝐵𝑎𝑐𝑐,𝑋+𝑔0·2(𝑞0𝑞2−𝑞1𝑞3))

(37)

and 𝐿𝑃𝐹 and 𝐻𝑃𝐹 denote, respectively, the *low-pass filter* and *high-pass filter*, both first-order as defined in Ref. [[**31**](https://www.mdpi.com/2218-6581/13/3/51#B31-robotics-13-00051)]. Despite being a somewhat rudimentary estimation method when compared to more complex sensor-fusion algorithms like the Kalman filter [[**31**](https://www.mdpi.com/2218-6581/13/3/51#B31-robotics-13-00051)], the combination of these two estimators provides observations of all the necessary variables at a relatively low computational cost, with the added benefit of requiring only two design variables — 𝛼𝐶𝐹 and 𝛽𝐶𝐹.

## **3. Nonlinear Control Strategies for Tail-Sitter UAV Vertical Flight**

This section describes the design of different nonlinear control strategies based on the model of the X-Vert and applied to its vertical flight. As the focus of this work is to compare the different control methods in stabilizing the UAV, a choice was made to test these with the same velocity control strategy defined in Ref. [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)]. With this in mind, it is useful to reorganize the state and input vectors to account for a decoupled design of attitude and velocity controllers. The velocity controller focuses on keeping a desired forward velocity and altitude 𝐱𝑣𝑒𝑙=[𝑢𝐵𝑔,𝑃𝐷]𝑇 using the throttle input 𝐮𝑣𝑒𝑙=𝜏𝑡. Similarly, attitude stabilization corresponds to the states 𝐱𝑎𝑡𝑡=[𝐰𝐵𝑔,𝐪𝑁𝐸𝐷]𝑇 and inputs 𝐮𝑎𝑡𝑡=[𝛿𝑎,𝛿𝑒,𝜏𝑟]𝑇.

### *3.1. Equilibrium at Hover*

Under the assumption that no wind is present, the equilibrium conditions for the X-Vert in hovering flight can be evaluated by computing the steady-state solutions of ([**3**](https://www.mdpi.com/2218-6581/13/3/51#FD3-robotics-13-00051)) at a given nonzero altitude and knowing that 𝐪𝑁𝐸𝐷=[2−−√/2,0,2−−√/2,0]𝑇, 𝑢𝐵𝑔=0 m/s. Under such conditions, the thrust generated by both motors must be equal to the opposing forces, namely, the gravity and aerodynamic drag resulting from a nonzero slipstream velocity behind the propellers, and the ground contact force will be zero. Thus, the value for Ω0 can be obtained by numerically solving the equation

2𝑇(Ω)−2𝐷(𝛼𝑤,𝛿𝑒=0)−𝑚𝑢𝑎𝑣𝑔0=0

(38)

Once Ω0 has been determined, the necessary throttle to maintain a hovering condition, 𝑡𝑎𝑢𝑡,0, can be found by computing the steady-state solution of ([**12**](https://www.mdpi.com/2218-6581/13/3/51#FD12-robotics-13-00051)). By performing these two steps, the values of Ω0=1167.167 rad/s and 𝜏𝑡,0=0.831 were determined using the parameters of the X-Vert in [**Appendix A**](https://www.mdpi.com/2218-6581/13/3/51#app1-robotics-13-00051). Therefore, the state and input vectors when hovering become

𝐱0=[𝟎𝟏×𝟑,𝟎𝟏×𝟑,0,0,𝑃𝐷,0,2−−√/2,0,2−−√/2,0,1167.167,1167.167]𝑇

(39)

𝐮0=[0,0,0,0.831]𝑇

(40)

in the corresponding units.

The last aspects of relevance for the equilibrium at hover are the advance ratio of the propellers, the slipstream velocity and the respective radius, as the first allows the computation of 𝐶𝑇 and 𝐶𝑃, while the latter two directly influence the authority of the elevons. Under the assumption of 𝑉𝑡=0 m/s, it follows that 𝐽=0, and 𝐯𝑠𝑙𝑖𝑝,0 and 𝑅𝑠𝑙𝑖𝑝,0 can be obtained directly from ([**14**](https://www.mdpi.com/2218-6581/13/3/51#FD14-robotics-13-00051)) and ([**15**](https://www.mdpi.com/2218-6581/13/3/51#FD15-robotics-13-00051)).

### *3.2. Rotational Dynamics in Affine Form*

The NDI control strategy requires that the system to be controlled is expressed in affine form. Addressing the rotational subsystem of ([**3**](https://www.mdpi.com/2218-6581/13/3/51#FD3-robotics-13-00051)), it can be reorganized into

𝐰˙𝐵𝑔=𝐅(𝐰𝐵𝑔)+𝐆⎡⎣⎢⎢𝛿𝑎𝛿𝑒𝜏𝑟⎤⎦⎥⎥

(41)

which, in turn, requires that the resultant moment 𝐦𝐵 be divided into its wing and actuator contributions, as the following equations suggest [[**42**](https://www.mdpi.com/2218-6581/13/3/51#B42-robotics-13-00051)]:

𝐅(𝐰𝐵𝑔)=𝐉−1𝑢𝑎𝑣(𝐦𝐵𝑤𝑖𝑛𝑔−𝐰𝐵𝑔×𝐉𝑢𝑎𝑣𝐰𝐵𝑔)

(42)

𝐆⎡⎣⎢⎢𝛿𝑎𝛿𝑒𝜏𝑟⎤⎦⎥⎥=𝐉−1𝑢𝑎𝑣𝐦𝐵𝑐𝑜𝑛𝑡

(43)

Since 𝐦𝐵 depends solely on the propulsion and aerodynamics of the X-Vert, each of these must be mathematically manipulated in order to allow for the implementation of ([**41**](https://www.mdpi.com/2218-6581/13/3/51#FD41-robotics-13-00051)). Starting with ([**7**](https://www.mdpi.com/2218-6581/13/3/51#FD7-robotics-13-00051)) and linearizing it for the operating condition defined by Ω0, the moment contribution from the propulsion subsystem becomes

𝐦𝐵𝑝≈⎡⎣⎢⎢⎢𝑘𝑄2Ω0(Ω𝑅−Ω𝐿)0−𝑑𝑝𝑟,𝑦𝑘𝑇2Ω0(Ω𝑅−Ω𝐿)⎤⎦⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢4𝑘𝑄Ω20𝜏𝑡,00−4𝑑𝑝𝑟,𝑦𝑘𝑇Ω20𝜏𝑡,0⎤⎦⎥⎥⎥⎥⎥𝜏𝑟

(44)

where 𝑘𝑇=4𝜋2𝜌𝑎𝑅4𝑝𝑟𝑜𝑝𝐶𝑇(0) and 𝑘𝑄=4𝜋3𝜌𝑎𝑅5𝑝𝑟𝑜𝑝𝐶𝑃(0) were used to simplify the notation. The second equality of ([**44**](https://www.mdpi.com/2218-6581/13/3/51#FD44-robotics-13-00051)) is achieved by performing the approximation Ω𝑅/𝐿≈Ω0𝜏𝑡,0𝜏𝑅/𝐿.

A similar process must be applied for the aerodynamic contribution expressed by ([**17**](https://www.mdpi.com/2218-6581/13/3/51#FD17-robotics-13-00051)). Since 𝑉𝑡=0, the lift, drag and pitching moment will only be influenced by the slipstream velocity on the control surfaces, and 𝛼𝑠𝑙𝑖𝑝=0 and 𝛽𝑠𝑙𝑖𝑝=0 as 𝐯𝑠𝑙𝑖𝑝 will be aligned with the axes of the propellers. Using a linear approximation of the aerodynamic coefficients defined by 𝐶𝐷/𝐿/𝑚≈𝑘𝐷/𝐿/𝑚𝛿 with 𝑘𝐷/𝐿/𝑚=(𝐶𝐷/𝐿/𝑚(𝛼=0,𝛿=𝛿𝑚𝑎𝑥)−𝐶𝐷/𝐿/𝑚(𝛼=0,𝛿=0))/𝛿𝑚𝑎𝑥, the aerodynamic contribution to 𝐦𝐵 can be approximated as follows:

𝐦𝐵𝑎≈𝜌𝑎𝑉2𝑠𝑙𝑖𝑝𝑅𝑠𝑙𝑖𝑝𝑐̲⎡⎣⎢⎢⎢−2𝑑𝐴𝐶,𝑦𝑘𝐿02𝑑𝐴𝐶,𝑦𝑘𝐷02𝑐̲𝑘𝑚+2𝑑𝐴𝐶,𝑥𝑘𝐿0⎤⎦⎥⎥⎥[𝛿𝑎𝛿𝑒]

(45)

It is evident from ([**44**](https://www.mdpi.com/2218-6581/13/3/51#FD44-robotics-13-00051)) and ([**45**](https://www.mdpi.com/2218-6581/13/3/51#FD45-robotics-13-00051)) that 𝐦𝐵𝑤𝑖𝑛𝑔=𝟎3×1, and therefore, the 𝐅 and 𝐆 components of ([**41**](https://www.mdpi.com/2218-6581/13/3/51#FD41-robotics-13-00051)) can be adequately determined by merging ([**44**](https://www.mdpi.com/2218-6581/13/3/51#FD44-robotics-13-00051)) and ([**45**](https://www.mdpi.com/2218-6581/13/3/51#FD45-robotics-13-00051)) into

𝐅(𝐰𝐵𝑔)=𝐉−1𝑢𝑎𝑣(−𝐰𝐵𝑔×𝐉𝑢𝑎𝑣𝐰𝐵𝑔)

(46)

𝐆=𝐉−1𝑢𝑎𝑣⎡⎣⎢⎢⎢⎢⎢−2𝑑𝐴𝐶,𝑦𝑘𝐿02𝑑𝐴𝐶,𝑦𝑘𝐷02𝑐̲𝑘𝑚+2𝑑𝐴𝐶,𝑥𝑘𝐿04𝑘𝑄Ω20𝜏𝑡,00−4𝑑𝑝,𝑦𝑘𝑇Ω20𝜏𝑡,0⎤⎦⎥⎥⎥⎥⎥

(47)

Accounting for the aforementioned assumptions, the 𝐆 matrix in ([**46**](https://www.mdpi.com/2218-6581/13/3/51#FD46-robotics-13-00051)) is constant and thus can be determined with the parameters and constants of the X-Vert model supplied in [**Appendix A**](https://www.mdpi.com/2218-6581/13/3/51#app1-robotics-13-00051). Furthermore, this matrix can be simplified considering only its diagonal, assuming that each of the components of 𝐮𝑎𝑡𝑡=[𝛿𝑎,𝛿𝑒,𝜏𝑟]𝑇 predominantly affects 𝑝𝑔, 𝑞𝑔 and 𝑟𝑔, respectively. Therefore, its numerical value is

𝐆≈⎡⎣⎢⎢−25.492000−95.726000−274.151⎤⎦⎥⎥

(48)

in appropriate units, as it will be used in the NDI and INDI controllers.

### *3.3. Velocity Control*

In order to draw an objective comparison among the different stabilization methods for the X-Vert, a suitable forward velocity controller must be chosen, and care must be taken that it ensures a minimal slipstream velocity to provide control authority to the elevons. As the design of such a controller falls out of the scope of this work, and the strategy of Ref. [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)], taken as the benchmark nonlinear controller, already provides an adequate solution, this was adopted. It consists of determining the desired thrust that tracks the references for 𝑃𝐷 and 𝑢𝐵𝑔,

𝐹𝑑=𝑚𝑢𝑎𝑣(2(𝑞0𝑞2−𝑞1𝑞3))(𝑔0−𝑘𝑃𝐷𝑃𝐷,𝑒𝑟𝑟)+𝑚𝑢𝑎𝑣𝑘𝑢𝑢𝑒𝑟𝑟

(49)

in which 𝑢𝑒𝑟𝑟=𝑢𝐵𝑔,𝑟𝑒𝑓−𝑢𝐵𝑔 and 𝑃𝐷,𝑒𝑟𝑟=𝑃𝐷,𝑟𝑒𝑓−𝑃𝐷.

Knowing the desired forward force, the propeller model ([**9**](https://www.mdpi.com/2218-6581/13/3/51#FD9-robotics-13-00051)) can be used to determine the angular velocity and motor torque, which, in turn, allow the throttle input 𝜏𝑡 to be computed. Nonetheless, as explained in Ref. [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)], it is useful to provide a lower boundary on 𝐹𝑑 to ensure a minimum slipstream airspeed 𝑉𝑠𝑙𝑖𝑝,𝑚𝑖𝑛 of 7 m/s on the control surfaces, and an upper limit so it can have some yawing authority:

𝐹𝑑∈[𝜌𝑎𝜋𝑅2𝑝𝑟𝑜𝑝𝑉2𝑠𝑙𝑖𝑝,𝑚𝑖𝑛,2·0.95·4𝜋2𝜌𝑎𝑅4𝑝𝑟𝑜𝑝𝐶𝑇(0)Ω2𝑚𝑎𝑥]

(50)

The maximum angular velocity of Ω𝑚𝑎𝑥=1367.665 rad/s was retrieved by numerically solving ([**12**](https://www.mdpi.com/2218-6581/13/3/51#FD12-robotics-13-00051)) for 𝜏=1.

The expression in ([**49**](https://www.mdpi.com/2218-6581/13/3/51#FD49-robotics-13-00051)) was used to compute 𝜏𝑡 in order to complement the NDI and INDI attitude stabilization methods with a forward velocity control option. However, the benchmark nonlinear controller separately computes the left and right throttle signals, 𝜏𝑅 and 𝜏𝐿, together with the attitude stabilization, which was chosen to be maintained.

### *3.4. Attitude Stabilization*

#### 3.4.1. Benchmark Nonlinear Controller (BNC)

The controller used as a benchmark for attitude stabilization is an adaptation of the one in Ref. [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)], made by applying the previously referred assumption of zero airspeed, 𝑉𝑡=0. Similarly to the velocity controller, a desired set of moments can be defined by

𝐦𝐵𝑑=𝐉𝑢𝑎𝑣(𝐊𝑎𝑝𝐪𝑒𝑟𝑟,1:3+𝐊𝑎𝑑𝐰𝐵𝑔)

(51)

where 𝐊𝑎𝑝 and 𝐊𝑎𝑑 are 3-by-3 diagonal gain matrices, with elements 𝑘𝑖,𝑖>0 for 𝑖=1,2,3, and 𝐪𝑒𝑟𝑟,1:3 stands for the vectorial components of 𝐪𝑒𝑟𝑟=𝐪𝑁𝐸𝐷∗⊗𝐪𝑁𝐸𝐷𝑟𝑒𝑓—the error quaternion—which results from the quaternion product of the conjugate of 𝐪𝑁𝐸𝐷 with 𝐪𝑁𝐸𝐷𝑟𝑒𝑓 [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051),[**32**](https://www.mdpi.com/2218-6581/13/3/51#B32-robotics-13-00051)]. Knowing 𝐦𝑑 and obtaining 𝐹𝑑 from ([**49**](https://www.mdpi.com/2218-6581/13/3/51#FD49-robotics-13-00051)), the required thrust for each motor is computed from

[𝑇𝐿𝑇𝑅]=12⎡⎣⎢⎢111𝑑𝑝,𝑦−1𝑑𝑝,𝑦⎤⎦⎥⎥[𝐹𝑑𝑚𝑑,𝑍]

(52)

From 𝑇𝑅 and 𝑇𝐿, the angular velocity of each motor can be computed by inverting the propeller model in ([**9**](https://www.mdpi.com/2218-6581/13/3/51#FD9-robotics-13-00051)). In turn, knowing 𝑄𝑅 and 𝑄𝐿 enables the calculation of 𝜏𝑅 and 𝜏𝐿 by solving ([**12**](https://www.mdpi.com/2218-6581/13/3/51#FD12-robotics-13-00051)) under steady-state conditions. Lastly, the elevon deflections are obtained from

[𝛿𝐿𝛿𝑅]=𝑅2𝑝𝑟𝑜𝑝𝜋2𝑘𝑇⎡⎣⎢⎢⎢1𝑐𝑥Ω2𝐿−1𝑐𝑥Ω2𝑅−1𝑐𝑦Ω2𝐿−1𝑐𝑦Ω2𝑅⎤⎦⎥⎥⎥[𝑚𝑑,𝑋−𝑄𝑅+𝑄𝐿𝑚𝑑,𝑌]

(53)

where 𝑐𝑥 and 𝑐𝑦 represent, respectively, the rolling and pitching moment deflection coefficients in the slipstream, as defined in the original research work [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)].

It is useful to reorganize the inputs that result from the BNC in an expression analogous to ([**1**](https://www.mdpi.com/2218-6581/13/3/51#FD1-robotics-13-00051)), allowing them to be compared with their respective counterparts that result from the remaining controllers:

⎡⎣⎢⎢⎢⎢𝛿𝑎𝛿𝑒𝜏𝑟𝜏𝑡⎤⎦⎥⎥⎥⎥=12⎡⎣⎢⎢⎢⎢1100−1100001100−11⎤⎦⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢𝛿𝑅𝛿𝐿𝜏𝑅𝜏𝐿⎤⎦⎥⎥⎥⎥

(54)

#### 3.4.2. Nonlinear Dynamic Inversion (NDI) Controller

The application of NDI to the attitude stabilization problem consists of the inversion of the model of the system so that the resulting inputs [𝛿𝑎,𝛿𝑒,𝜏𝑟]𝑇 enable the aircraft to follow the desired dynamics, which can be made to depend on the relevant error variables:

𝐰˙𝐵𝑔,𝑑=𝐊𝐰(𝐊𝐪𝐪𝑒𝑟𝑟,1:3+𝐰𝐵𝑔)

(55)

Afterward, ([**41**](https://www.mdpi.com/2218-6581/13/3/51#FD41-robotics-13-00051)) can be inverted to solve for the control inputs accounting for this desired dynamics, resulting in the following straightforward control law [[**14**](https://www.mdpi.com/2218-6581/13/3/51#B14-robotics-13-00051)]:

𝐮𝑁𝐷𝐼=⎡⎣⎢⎢𝛿𝑎𝛿𝑒𝜏𝑟⎤⎦⎥⎥=𝐆−1(𝐰˙𝐵𝑔,𝑑−𝐅(𝐰𝐵𝑔))

(56)

#### 3.4.3. Incremental Nonlinear Dynamic Inversion (INDI) Controller

The third attitude controller is the incremental version of NDI, INDI. Generically, the INDI control is deduced from ([**41**](https://www.mdpi.com/2218-6581/13/3/51#FD41-robotics-13-00051)) under the assumptions that the control inputs have a higher impact on the dynamics of the aircraft and a high sample rate is possible [[**13**](https://www.mdpi.com/2218-6581/13/3/51#B13-robotics-13-00051)]. An increment for the control action Δ𝐮 can then be computed, accounting for the control-effectiveness matrix 𝐆 to allow for the tracking of 𝐰˙𝐵𝑔,𝑑, as defined by ([**55**](https://www.mdpi.com/2218-6581/13/3/51#FD55-robotics-13-00051)) [[**17**](https://www.mdpi.com/2218-6581/13/3/51#B17-robotics-13-00051)]:

𝐮𝐼𝑁𝐷𝐼=⎡⎣⎢⎢𝛿𝑎𝛿𝑒𝜏𝑟⎤⎦⎥⎥𝑘=𝜆𝐆−1(𝐰˙𝐵𝑔,𝑑−𝐰˙𝐵𝑔)+⎡⎣⎢⎢𝛿𝑎𝛿𝑒𝜏𝑟⎤⎦⎥⎥𝑘−1

(57)

where an additional scaling factor 𝜆 is included, acting as a low-pass filter in the computation of 𝐮𝐼𝑁𝐷𝐼 [[**13**](https://www.mdpi.com/2218-6581/13/3/51#B13-robotics-13-00051),[**43**](https://www.mdpi.com/2218-6581/13/3/51#B43-robotics-13-00051)]. Nonetheless, Equation ([**57**](https://www.mdpi.com/2218-6581/13/3/51#FD57-robotics-13-00051)) assumes that the angular acceleration is available, and therefore, it must be estimated. A second-order derivative filter is used, as it is based on a method of estimating 𝐰˙𝐵𝑔 from the gyroscope readings 𝐰𝐵𝑔,𝑔𝑦𝑟 [[**44**](https://www.mdpi.com/2218-6581/13/3/51#B44-robotics-13-00051)], illustrated by

𝑆𝐷(𝑠)=𝜔2𝑆𝐷𝑠𝑠2+2𝜁𝜔𝑆𝐷𝑠+𝜔2𝑆𝐷

(58)

Assuming the damping coefficient 𝜁=2, the trade-off value for the cutoff frequency 𝜔𝑆𝐷 must be found when tuning the INDI controller, aiming to find a balance between an acceptable level of noise and the delay introduced by the filtering operations [[**43**](https://www.mdpi.com/2218-6581/13/3/51#B43-robotics-13-00051)]. An additional tool that helps in achieving a control action robust to noise is a command filter:

𝐶𝐹(𝑠)=1𝜏𝐶𝐹𝑠+1

(59)

which acts as a low-pass filter and saturation to enforce the limits of the actuators, defined by a single parameter, 𝜏𝐶𝐹 [[**44**](https://www.mdpi.com/2218-6581/13/3/51#B44-robotics-13-00051)].

[**Figure 4**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f004) illustrates the different steps in computing the INDI control action 𝐮𝐼𝑁𝐷𝐼.

![Robotics 13 00051 g004](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g004-550.jpg)

**Figure 4.** A block diagram representing the implementation of the INDI controller: the angular acceleration 𝐰˙𝐵𝑔 is estimated from 𝐰𝐵𝑔,𝑔𝑦𝑟 using ([**58**](https://www.mdpi.com/2218-6581/13/3/51#FD58-robotics-13-00051)) and then compared to the desired dynamics 𝐰˙𝐵𝑔,𝑑, and the difference is used to compute the required control increment. This is added to the control action of the previous time-step, being filtered by ([**59**](https://www.mdpi.com/2218-6581/13/3/51#FD59-robotics-13-00051)) and subject to actuator saturation.

## **4. Hardware-in-the-Loop Simulation**

The simulation for this work was developed in the Simulink environment of MATLAB 2021a, aiming to test the different attitude controllers with the simulator of the X-Vert and its sensors. Additionally, the ability to perform Hardware-in-the-Loop (HITL) simulations allowed the validation of the implementation of these controllers in a microcontroller unit (MCU).

### *4.1. Hardware and Communications*

The chosen microcontroller for this work was the Arduino Nano 33 IOT [[**45**](https://www.mdpi.com/2218-6581/13/3/51#B45-robotics-13-00051)], as it fulfilled the requirements for both hardware-in-the-loop validation and experimental flight testing: it has a built-in 6-degree-of-freedom (DOF) Inertial Measurement Unit (IMU), more specifically the LSM6DS3, connected via an Inter-Integrated Circuit (I2C or I2C), for the previously described attitude estimation; Wi-Fi and Bluetooth capacities for communications provided by the built-in NINA-W102 module; five pulse-width modulation (PWM) pins, especially helpful for servomotor and ESC control; a 32-bit Cortex-M0+ main processor functioning at 48 MHz for the required onboard computations of the estimation and controller implementations; and additional wired communication capabilities, highlighting the Serial Peripheral Interface (SPI), which is of relevance due to its high velocity.

Regarding the communication method between the computer running MATLAB and the Arduino, the choice was to employ the User Datagram Protocol (UDP) over Ethernet, as this combination is relatively simple to implement while allowing the fast stream of data packets. To use UDP over Ethernet for HITL validation, an assembly was made that comprised the Arduino Nano 33 IOT and a W5500 Ethernet module [[**46**](https://www.mdpi.com/2218-6581/13/3/51#B46-robotics-13-00051)] connected via SPI. This assembly is shown in [**Figure 5**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f005), where an additional printed circuit board (PCB) can also be seen, designed to allow the usage of two 4-by-2 connectors, which are more convenient than the original layout on the W5500.

![Robotics 13 00051 g005](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g005-550.jpg)

**Figure 5.** The assembly designed for HITL development comprising the Arduino Nano 33 IOT board on the left, the W5500 Ethernet adapter on the bottom right and the adapter PCB on the top right.

### *4.2. Benchmark Maneuver for Vertical Flight*

To validate the different attitude control solutions, a set of maneuvers had to be designed, allowing the degrees of freedom of the stabilized UAV to be explored. As depicted in [**Figure 6**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f006), these maneuvers correspond to a time-varying vector of references:

𝐲𝑟𝑒𝑓(𝑡)=[𝑢𝐵𝑟𝑒𝑓,𝐰𝐵𝑔,𝑟𝑒𝑓,𝑃𝐷,𝑟𝑒𝑓,𝐪𝑁𝐸𝐷𝑟𝑒𝑓]𝑇

(60)

which enables forward velocity, angular velocity, altitude and attitude values to be tracked by the controllers, where 𝐰𝐵𝑔,𝑟𝑒𝑓 was taken as zero for attitude stabilization.

![Robotics 13 00051 g006](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g006-550.jpg)

**Figure 6.** References for the benchmark maneuver for vertical flight: in the **upper-left** corner, 𝑞1,𝑟𝑒𝑓; in the **upper-right** corner, 𝑞2,𝑟𝑒𝑓; in the **lower-left** corner, 𝑞3,𝑟𝑒𝑓; and in the **lower-right** corner, −𝑃𝐷,𝑟𝑒𝑓.

To this end, the set of maneuvers in vertical flight starts with take-off after 5 s, ensuring that the communications and estimators have reached their steady states, and an altitude of 2 m is held. Afterward, a four-stage maneuver is run for every axis of the aircraft: rotating by 15 degrees (𝜋12 rad) for 5 s, returning to fully vertical orientation for another 5 s, then rotating in the opposite direction for the same time, and ending with another 5 s stop. The UAV executes this maneuver for each axis following a Y-Z-X order (corresponding to different pitch, yaw and roll angles) and, once concluded, performs a vertical landing. Using dashed lines to illustrate this set of references for ℎ=−𝑃𝐷, 𝑞1, 𝑞2 and 𝑞3, [**Figure 6**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f006) presents a graphical interpretation of the described set of maneuvers. Lastly, 𝑢𝑟𝑒𝑓 was considered to be zero throughout the maneuvers, except for the take-off and landing procedures, and thus, it is omitted as a reference for these plots.

### *4.3. Simulation Environment*

The simulation in Simulink for HITL follows the general layout of a feedback-controlled system, as previously shown in [**Figure 1**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f001), but adapted to a Simulink environment (see [**Figure 7**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f007)). The first block, in blue, generates the reference 𝐲𝑟𝑒𝑓(𝑡) to be tracked; the green blocks consist of the control techniques and estimators, which were, respectively, addressed in [**Section 3**](https://www.mdpi.com/2218-6581/13/3/51#sec3-robotics-13-00051) and at the end of [**Section 2**](https://www.mdpi.com/2218-6581/13/3/51#sec2-robotics-13-00051); the yellow block implements the X-Vert model, together with models for its sensors; the communications with the Arduino board via Ethernet/UDP are managed by the orange-colored block; and the last block in red is included for visualization purposes. The controller and estimator blocks are shown in the same color, as they represent the software that must be implemented externally in the MCU. An additional switch (in white) is included to allow the interchange between the control action being generated by the Arduino and the one computed directly by MATLAB, allowing the control solutions to be tested in a purely simulated environment or with the HITL implementation.

![Robotics 13 00051 g007](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g007-550.jpg)

**Figure 7.** An overview of the Simulink environment developed for testing the attitude control solutions.

Some remarks regarding the simulation and HITL implementation are as follows:

Sampling times: The simulation was run at 200 Hz, representing a fixed sample time of 𝑇𝑠,𝑠𝑖𝑚=0.005 s, as it was considered significantly low while still allowing the simulation to run in real time without requiring high computational power. Regarding the implementations of the controllers and estimators, both in MATLAB and in the MCU, these were also kept at 𝑇𝑠,𝑐𝑜𝑛𝑡=0.005 s for the same reasons.

Filter discretization: While MATLAB allows the implementation of transfer functions in continuous time, a discrete form is desired to validate the MCU implementation of the HPF and LPF for the velocity estimation in ([**35**](https://www.mdpi.com/2218-6581/13/3/51#FD35-robotics-13-00051)) and the SD and CF filters—respectively, ([**58**](https://www.mdpi.com/2218-6581/13/3/51#FD58-robotics-13-00051)) and ([**59**](https://www.mdpi.com/2218-6581/13/3/51#FD59-robotics-13-00051))—for the INDI controller. The bilinear transformation

𝑠(𝑧)=2𝑇𝑠,𝑐𝑜𝑛𝑡(1−𝑧−11+𝑧−1)

(61)

is employed for this purpose, and the deduction of the discrete expressions for each of the previously referenced filters is omitted.

Estimators and altitude controller: An effort was made to maintain the same parameters for the estimators and altitude controller in both the pure simulation and HITL, allowing for simulation runs to focus on the attitude controllers. With this in mind, the estimators were tuned using the values 𝛼𝐶𝐹=0.99 and 𝛽𝐶𝐹=0.05, respectively, for ([**34**](https://www.mdpi.com/2218-6581/13/3/51#FD34-robotics-13-00051)) and ([**35**](https://www.mdpi.com/2218-6581/13/3/51#FD35-robotics-13-00051)), and the gains of the altitude controller in ([**49**](https://www.mdpi.com/2218-6581/13/3/51#FD49-robotics-13-00051)) were 𝑘𝑃𝐷=18 and 𝑘𝑢=8, the same as in their original work [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)].

MCU implementation: The implementation in the Arduino Nano 33 IOT board follows a standard Arduino program flow: in the *setup*, the Ethernet communications are established, and the relevant variables are initialized; then, an infinite *loop* is run every instant according to the sample time 𝑇𝑠,𝑐𝑜𝑛𝑡, which consists of receiving the UDP packet (which comprises both the references and the simulated sensor data, as can be seen in [**Figure 7**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f007)), performing the estimation of the attitude, vertical velocity and altitude, using these to compute the control action and sending it via a UDP packet back to MATLAB, completing the cycle. The controllers can be changed via the Simulink interface to allow for the same program to run all the different control strategies. Lastly, regarding all the code implementation, it should be noted that only the built-in functions available for Arduino, namely, for Ethernet, Wi-Fi, UDP and SPI, were used, with the remaining necessary ones for the estimators and controllers having been written.

Visualization: For the goal of having a visual interface with the simulation, mainly for inspecting the attitude of the UAV, a three-dimensional environment was developed using the Simulink 3D Animation tools, and a Computer-Aided Design (CAD) model of a bi-rotor tail-sitter from Ref. [[**47**](https://www.mdpi.com/2218-6581/13/3/51#B47-robotics-13-00051)] was included in it, as shown in [**Figure 8**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f008). In order to not overburden the simulation, a low update frequency of 10 Hz is used in this block.

![Robotics 13 00051 g008](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g008-550.jpg)

**Figure 8.** The Simulink 3D environment with a tail-sitter model [[**47**](https://www.mdpi.com/2218-6581/13/3/51#B47-robotics-13-00051)].

### *4.4. Simulation and HITL Results*

The simulations were run accounting for the considerations provided in this section. A significant delay was noticeable when the HITL simulations ran, which necessitated some parameter re-tuning. The most noticeable case of this is the INDI controller running in HITL, where it was verified that the command filter introduced an additional delay in the computed control action, which proved to be unmanageable when added to the already-existing delay in communications. Therefore, a value of 𝜏𝐻𝐼𝑇𝐿𝐶𝐹=0 was used, effectively removing the command filter component of the INDI controller.

Regarding the metrics to evaluate in order to be able to draw an objective comparison among the different control solutions for the X-Vert, two were chosen. The first was the root-mean-square error, 𝑅𝑀𝑆, of the three vectorial components of the quaternion, 𝑞1, 𝑞2 and 𝑞3, when compared to the respective references,

𝑅𝑀𝑆𝑞𝑖=∑𝑡=575(𝑞𝑟𝑒𝑓𝑖,𝑡−𝑞𝑖,𝑡)2,𝑖=1,2,3

(62)

to analyze the tracking performance. The second was the oscillation of the actuators, represented by 𝜇 and obtained by computing the RMS of the control action with that obtained after applying a tenth-order median filter, the aim of which is to attest to the smoothness of the control action of each controller and, therefore, its robustness to sensor noise:

𝜇𝛿𝑒/𝑎=∑𝑡=575(𝛿𝑒/𝑎,𝑡−𝛿𝑓𝑖𝑙𝑡𝑒/𝑎,𝑡)2or𝜇𝜏𝑟=∑𝑡=575(𝜏𝑟,𝑡−𝜏𝑓𝑖𝑙𝑡𝑟,𝑡)2

(63)

The average of each metric is also provided to facilitate the aforementioned comparison. Lastly, it is noted that the computations of these metrics were only performed for the time interval between 5 and 75 s, which mark, respectively, the take-off and landing.

#### 4.4.1. Simulation Results

Firstly, simulation-only tests were performed, meaning that the model, controllers and estimators were running in the Simulink environment, without external hardware. The parameters for the attitude controllers used for simulation were the following:

BNC (simulation): 𝐊𝑠𝑖𝑚𝑎𝑑=diag[60,60,60], 𝐊𝑠𝑖𝑚𝑎𝑝=diag[700,700,700];

NDI (simulation): 𝐊𝑁𝐷𝐼,𝑠𝑖𝑚𝐰=diag[10,50,10], 𝐊𝑁𝐷𝐼,𝑠𝑖𝑚𝐪=diag[5,20,5];

INDI (simulation): 𝐊𝐼𝑁𝐷𝐼,𝑠𝑖𝑚𝐰=diag[10,10,10], 𝐊𝐼𝑁𝐷𝐼,𝑠𝑖𝑚𝐪=diag[5,5,5], 𝜔𝑠𝑖𝑚𝑆𝐷=50, 𝜏𝑠𝑖𝑚𝐶𝐹=0.01, 𝜆𝑠𝑖𝑚=0.2.

[**Figure 9**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f009) presents the results obtained when tracking the three vectorial components of 𝐪𝑟𝑒𝑓 and comparing them with the reference described previously, illustrated in [**Figure 6**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f006). It can be verified that all the controllers follow the references, with some small discrepancies. Similarly, [**Figure 10**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f010) presents the input vectors for attitude control, 𝐮𝑎𝑡𝑡, for the different controllers, overlapping the plots so a comparison regarding their oscillation can be made. The results for this case are summarized in [**Table 1**](https://www.mdpi.com/2218-6581/13/3/51#table_body_display_robotics-13-00051-t001), rounded to the fourth decimal place.

![Robotics 13 00051 g009](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g009-550.jpg)

**Figure 9.** Tracking results for 𝑞1, 𝑞2 and 𝑞3, ordered from left to right. The references are shown by the pink dashed lines, and the results for the BNC, NDI and INDI are represented in red, blue and black.

![Robotics 13 00051 g010](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g010-550.jpg)

**Figure 10.** Plots for 𝛿𝑎, 𝛿𝑒 and 𝜏𝑟, ordered from left to right. The inputs generated by the BNC are represented in red, the ones from NDI are shown in blue, and INDI is in black.

**Table 1.** Simulation results.

![](https://pub.mdpi-res.com/img/table.png)

Inspecting [**Table 1**](https://www.mdpi.com/2218-6581/13/3/51#table_body_display_robotics-13-00051-t001) and [**Figure 9**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f009), it can be seen that the BNC provides the overall best tracking performance, although surpassed by the other two specifically for 𝑞2. Nonetheless, all the implemented control solutions show excellent tracking of the references, and the differences in tracking performance are minimal. The main distinction among the three is the smoothness of the control action, as evidenced by the 𝜇𝑠𝑖𝑚𝛿𝑎, 𝜇𝑠𝑖𝑚𝛿𝑒 and 𝜇𝑠𝑖𝑚𝜏𝑟 columns of [**Table 1**](https://www.mdpi.com/2218-6581/13/3/51#table_body_display_robotics-13-00051-t001), where the INDI controller demonstrates excellent robustness to sensor noise by having oscillation values an order of magnitude below those of the BNC and NDI. This is highlighted in [**Figure 10**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f010), which shows that the BNC has the highest oscillation for 𝛿𝑎 and 𝜏𝑟, and NDI provides the largest **𝜇𝑠𝑖𝑚𝛿𝑒** value.

#### 4.4.2. Hardware-in-the-Loop Results

Taking the previous parameters as a starting point, the controllers were re-tuned to accommodate the HITL configuration required by the communications delay. For the BNC and NDI controllers, this was a matter of performing a slight decrease in the gains, but for INDI, not only the gains were adjusted, but the cutoff frequency 𝜔𝑆𝐷 also had to be changed, and its command filter component had to be removed. Accounting for this, the controllers for HITL simulation have the following values:

BNC (HITL): 𝐊𝐻𝐼𝑇𝐿𝑎𝑑=diag[60,60,60], 𝐊𝐻𝐼𝑇𝐿𝑎𝑝=diag[500,500,500];

NDI (HITL): 𝐊𝑁𝐷𝐼,𝐻𝐼𝑇𝐿𝐰=diag[10,20,10], 𝐊𝑁𝐷𝐼,𝐻𝐼𝑇𝐿𝐪=diag[5,20,5];

INDI (HITL): 𝐊𝐼𝑁𝐷𝐼,𝐻𝐼𝑇𝐿𝐰=diag[5,5,5], 𝐊𝐼𝑁𝐷𝐼,𝐻𝐼𝑇𝐿𝐪=diag[5,5,5], 𝜔𝐻𝐼𝑇𝐿𝑆𝐷=100, 𝜏𝐻𝐼𝑇𝐿𝐶𝐹=0, 𝜆𝐻𝐼𝑇𝐿=0.1.

For these values, the hardware-in-the-loop simulations with the Arduino as part of the control loop were run as specified before, providing the results in [**Table 2**](https://www.mdpi.com/2218-6581/13/3/51#table_body_display_robotics-13-00051-t002).

**Table 2.** Hardware-in-the-Loop results.

![](https://pub.mdpi-res.com/img/table.png)

Omitting the figures for the HITL scenario, [**Table 2**](https://www.mdpi.com/2218-6581/13/3/51#table_body_display_robotics-13-00051-t002) allows conclusions to be drawn that slightly differ from those made for the simulation-only scenario: while all the controllers demonstrated excellent tracking capacity, this time, it is the BNC that shows a marginally worse performance by having the highest value of 𝑅𝑀𝑆𝐻𝐼𝑇𝐿𝑞. In addition to this, the BNC also suffers from the largest actuator oscillation, while the INDI controller stands out by having the lowest. Lastly, the NDI controller takes the middle ground for both 𝑅𝑀𝑆𝐻𝐼𝑇𝐿𝑞 and 𝜇𝐻𝐼𝑇𝐿𝑢𝑎𝑡𝑡. These results hint that the performance of the BNC may be more vulnerable to the delay in communications of this HITL implementation, while the INDI and NDI appear to be more robust to it.

## **5. Experimental Validation**

The last component of the research performed for this work is the experimental implementation and testing of the control solutions described in [**Section 3**](https://www.mdpi.com/2218-6581/13/3/51#sec3-robotics-13-00051) after they were validated in simulations and HITL. The different aspects of this experimental component are described now, providing the results from flight trials and a comparison among the different nonlinear control strategies.

### *5.1. Flight Controller Design*

The original flight controller (FC) of the X-Vert acted not only as the FC itself with a dedicated board of sensors but also as a receiver for the transmitter and as a pair of Electronic Speed Controllers (ESCs) for the BLDC motors. Since this board was not re-programmable, these different functions had to be covered in a different way. Starting with a dedicated FC, the following components were used, many of which are native to the Nano 33 IOT board [[**45**](https://www.mdpi.com/2218-6581/13/3/51#B45-robotics-13-00051)]:

Microcontroller unit (MCU): Cortex M0+ (native to Arduino board);

Inertial Measurement Unit (IMU): LSM6DS3 accelerometer and gyroscope (native to Arduino board);

Sonar: HC-SR04 ultrasonic sensor;

Communications: UDP/Wi-Fi via NINA W102 module (native to Arduino board).

For the experimental scenario, the UDP communications were reformulated to work via Wi-Fi instead of Ethernet, which required minimal adjustment. A dedicated case was designed and 3D-printed to accommodate the Arduino board, the HC-SR04 ultrasonic sensor and a support PCB for the servo and ESC connectors, which can be seen in [**Figure 11**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f011).

![Robotics 13 00051 g011](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g011-550.jpg)

**Figure 11.** The flight controller based on the Arduino Nano 33 IOT with the servo and ESC connectors (**left**) and the full assembly of the FC with the HC-SR04 ultrasonic sensor (**right**).

The integration of the aforementioned FC into the frame of the X-Vert required additional steps as well, namely, providing power to the required components. A power distribution board (PDB) was included to regulate the voltage provided by the battery powering the ESCs, servos and flight controller to their adequate levels. The electronic components used in the experimental assembly were the following:

Servos: Spektrum A220 4g servos [[**48**](https://www.mdpi.com/2218-6581/13/3/51#B48-robotics-13-00051)];

ESC: SkyRC 20A Nano ESC with BLHeli firmware [[**49**](https://www.mdpi.com/2218-6581/13/3/51#B49-robotics-13-00051)];

BLDC motors: E-Flite BL280 2600 Kv Brushless Outrunner Motor [[**50**](https://www.mdpi.com/2218-6581/13/3/51#B50-robotics-13-00051)];

PDB: Matek Mini Power Hub [[**51**](https://www.mdpi.com/2218-6581/13/3/51#B51-robotics-13-00051)];

Battery: Gens Ace 450 mAh 7.4 V battery [[**52**](https://www.mdpi.com/2218-6581/13/3/51#B52-robotics-13-00051)].

[**Figure 12**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f012) presents a diagram of the connections of the different electronic components, which were assembled in the frame of the X-Vert, as shown previously in [**Figure 2**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f002).

![Robotics 13 00051 g012](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g012-550.jpg)

**Figure 12.** A diagram of the electronics of the experimental assembly. From left to right: battery (red); PDB (orange); FC (yellow); ESCs (blue); BLDC motors (cyan); and servos (green). The power supply lines can be seen in red displaying the respective voltage levels, the signal lines provided by the FC are shown in yellow, and the three-phase ones are shown in blue.

The management of the simulation was once again performed in Simulink, which was responsible for providing the references to the flight controller and for registering the control action and the estimated attitude computed by it.

In order to verify the effectiveness of this communication strategy while also taking the opportunity to partially validate the different control strategies, a test assembly was designed and 3D-printed, comprising the electronics (with the exception of the servos) and propellers, as shown in [**Figure 13**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f013). Since the beam-like frame with the two motors and propellers is able to pivot around its center by means of a bearing, mounting the FC on it allows the testing of the stabilization algorithms on the *z*-axis of the UAV and also ensures that any errors and problems in the implementation are detected. This proved to be of vital importance since the X-Vert is a fragile aircraft, and initial crashes were demonstrated to significantly hinder development.

![Robotics 13 00051 g013](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g013-550.jpg)

**Figure 13.** The 3D-printed test assembly designed to validate the communications and controller implementation, showing the proprotors, ESCs and PDB.

### *5.2. Ground Truth*

In order to evaluate the performance of the controllers in the experimental scenario, a method for effectively tracking the position and attitude of the X-Vert is required. A motion capture system (MCS) covering an area of 12 by 4 m enveloped in a safety net, available at the host facility IDMEC—Instituto de Engenharia Mecânica—was used for this purpose. By using this set of cameras and the dedicated Qualysis Track Manager software by Qualysis [[**53**](https://www.mdpi.com/2218-6581/13/3/51#B53-robotics-13-00051)], together with reflective markers placed on the surface of the X-Vert, it was possible to track both 𝐩𝑁𝐸𝐷 and 𝐪𝑁𝐸𝐷 with high precision inside the aforementioned area. [**Figure 14**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f014) shows the utilized installations and also provides an illustration of the area using the MCS, where the reconstruction of the X-Vert can be seen. The coordinate frame of the MCS does not match the previously described NED orientation, but care was taken to process the gathered data to account for the necessary conversion. Accounting for this, the position and orientation of the X-Vert provided by the MCS are assumed as the ground truth for the experimental trials and are therefore represented directly by 𝐩𝑁𝐸𝐷 and 𝐪𝑁𝐸𝐷, respectively.

![Robotics 13 00051 g014](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g014-550.jpg)

**Figure 14.** On the left: the 12-by-4 m net-protected arena used. On the right: a 3D reconstruction of the X-Vert using the MCS.

### *5.3. Benchmark Maneuver for Experimental Vertical Flight*

The benchmark maneuver described in [**Section 4**](https://www.mdpi.com/2218-6581/13/3/51#sec4-robotics-13-00051) had to be adapted to the context of the experimental tests, where the available flight area is limited to the arena previously described. A decision was made to focus on the pitch control of the aircraft, as it was considered the most necessary to stabilize when in vertical flight and will present significant challenges for the transition to aerodynamic flight in future work. Therefore, the solution found for performing the experimental trials was to order the X-Vert to perform a take-off and hold its altitude at 0.5 m, manually guide it to the center of the arena if a substantial deviation happened during the initial maneuvers, and only then provide a set of references for 𝑞2. This set consisted of rotating −10 degrees around the *y*-axis of the aircraft when it was fully vertical, holding this attitude for 2 s, returning to vertical orientation for 2 s, and then performing a symmetric rotation for another 2 s. This was carried out to ensure that the same reference would be provided during the tests for different controllers, allowing suitable conclusions to be drawn. Nonetheless, depending on the actual performance of the controller, additional lateral corrections were sometimes provided in order to prevent collisions, but this was avoided as much as possible.

An example of references of an experimental test, specifically the one performed for the BNC, is shown in [**Figure 15**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f015), which shows some small corrections during the process of guiding the UAV to the center of the arena, together with the aforementioned references of 2 s for 𝑞2 and the constant reference altitude of 0.5 m.

![Robotics 13 00051 g015](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g015-550.jpg)

**Figure 15.** References for the experimental trial for the BNC.

### *5.4. Parameter Tuning for Experimental Flight*

The adaptation to an experimental scenario necessitated another parameter tuning in order to accommodate such changes. It was soon realized that the Arduino Nano 33 IOT could not perform the cycles at 200 Hz when using UDP over Wi-Fi, and thus, a sample time 𝑇𝑠,𝑒𝑥𝑝=0.01 s was used instead, as it proved to be sufficiently low to stabilize the aircraft. The estimators and controllers were subject to a re-tuning as well, imposed not only by the transition from the simulation to the experimental setting but also by the change in the sampling frequency. Similarly to the simulation and HITL results, an effort was made to ensure that the parameters of the estimators and altitude controller were the same for the trials using different attitude controllers, and their values are

𝛼𝑒𝑥𝑝𝐶𝐹=0.905,𝛽𝑒𝑥𝑝𝐶𝐹=0.05,𝑘𝑒𝑥𝑝𝑝𝐷=10,𝑘𝑒𝑥𝑝𝑢=5

(64)

Regarding the controller gains and remaining parameters, these also had to be adjusted for the experimental trials, and the values are shown next:

BNC (experimental): 𝐊𝑒𝑥𝑝𝑎𝑑=diag[20,60,20], 𝐊𝑒𝑥𝑝𝑎𝑝=diag[200,500,200];

NDI (experimental): 𝐊𝑁𝐷𝐼,𝑒𝑥𝑝𝐰=diag[20,20,20], 𝐊𝑁𝐷𝐼,𝑒𝑥𝑝𝐪=diag[10,20,10];

INDI (experimental): 𝐊𝐼𝑁𝐷𝐼,𝑒𝑥𝑝𝐰=diag[2,5,2], 𝐊𝐼𝑁𝐷𝐼,𝑒𝑥𝑝𝐪=diag[5,5,5], 𝜔𝑠𝑖𝑚𝑆𝐷=100, 𝜏𝑒𝑥𝑝𝐶𝐹=0, 𝜆𝑒𝑥𝑝=0.2.

As can be seen, 𝜏𝑒𝑥𝑝𝐶𝐹=0 implies the absence of the command filter described in [**Section 3**](https://www.mdpi.com/2218-6581/13/3/51#sec3-robotics-13-00051). It was not deemed necessary since INDI already provided a smooth actuation, as will be described next, and the additional filtering introduced an unwanted delay.

### *5.5. Vertical Flight Results*

Using the described setup, multiple trials were run for each of the controllers, and the data from each were registered using the following process: the references 𝐲𝑟𝑒𝑓, generated by MATLAB, were saved in a file generated at the end of each flight trial; in the same file, the quaternion 𝐪̂ 𝑁𝐸𝐷 estimated by the FC and the control action 𝐮 computed by it and sent to MATLAB via Wi-Fi/UDP were also saved; and the orientation and position provided by the MCS, 𝐪𝑁𝐸𝐷 and 𝐩𝑁𝐸𝐷, were exported from the QTM software at the end of the trials to a separate file. Matching the timestamps of the two files, it was possible to overlap them, effectively allowing for the comparison of the reference quaternion, the respective estimation by the onboard FC and the quaternion provided by the MCS. Using the same experimental trial for the BNC, as shown in [**Figure 15**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f015), the curves for 𝐪𝑁𝐸𝐷𝑟𝑒𝑓, 𝐪̂ 𝑁𝐸𝐷 and 𝐪𝑁𝐸𝐷—from take-off to landing—are shown in [**Figure 16**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f016), which also shows the comparison between the reference altitude 𝑃𝐷𝑟𝑒𝑓=−0.5 [m] and its value provided by the MCS, assumed as the ground truth. It should be noted that the estimated altitude was considered to be of less relevance for the purpose of comparing attitude controllers and, thus, was omitted in order to reduce the amount of data being transmitted.

![Robotics 13 00051 g016](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g016-550.jpg)

**Figure 16.** The full-length experimental trial for the BNC, where the references are shown by the red dashed line, the ground truth is represented by black, and the estimated values are presented in blue.

For the purposes of computing the evaluation metrics 𝑅𝑀𝑆𝑒𝑥𝑝𝑞 and 𝜇𝑒𝑥𝑝, a 10 s window was considered for each trial, corresponding to an interval of 2 s before and 2 s after the references were sent. This ensured that the comparison was fair, regardless of the length of the trials for each controller. [**Figure 17**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f017) presents the tracking results for each controller according this 10 s window of each flight trial.

![Robotics 13 00051 g017](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g017-550.jpg)

**Figure 17.** Tracking results for the different attitude controllers, where the references are shown by the red dashed line, the ground truth is represented by black, and the estimated values are presented in blue.

Analyzing [**Figure 17**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f017), it is clear that all the controllers are capable of tracking the references in 𝑞2 while also stabilizing the remaining degrees of freedom of the attitude. The BNC enables the accurate tracking of 𝑞2, but its performance worsens for 𝑞1 and 𝑞3. On the other hand, the NDI controller manages to keep these closer to null values but has some some spikes when tracking 𝑞2, although still managing to track it with precision. In the trial for the INDI controller strategy, additional lateral references were provided in order to avoid collisions, but the controller still managed to track the references. Nonetheless, since these lateral references were provided simultaneously to the 𝑞2 references, some performance loss may have happened. [**Table 3**](https://www.mdpi.com/2218-6581/13/3/51#table_body_display_robotics-13-00051-t003) provides the evaluation metrics that summarize the tracking results for the experimental trials, where it can be seen that NDI has the best overall performance, while INDI has the worst, possibly evidencing the aforementioned loss of performance for this controller, and the BNC provides the middle ground among the three controllers. Lastly, regarding altitude tracking, it is clear that there was a sudden drop in altitude in the trial for the NDI controller, which was duly analyzed, and the explanation is provided after the analysis regarding actuator oscillation.

**Table 3.** Experimental results of tracking 𝐪𝑁𝐸𝐷𝑟𝑒𝑓.

![](https://pub.mdpi-res.com/img/table.png)

Moving on to the analysis of actuator oscillation, [**Figure 18**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f018) provides the plots of 𝐮=[𝛿𝑎,𝛿𝑒,𝜏𝑟,𝜏𝑡]𝑇 registered for the trial of each controller.

![Robotics 13 00051 g018](https://www.mdpi.com/robotics/robotics-13-00051/article_deploy/html/images/robotics-13-00051-g018-550.jpg)

**Figure 18.** Plots of each component of 𝐮=[𝛿𝑎,𝛿𝑒,𝜏𝑟,𝜏𝑡]𝑇 recorded during the flight trials of each controller.

Focusing the analysis on the inputs used for attitude stabilization—𝛿𝑎, 𝛿𝑒 and 𝜏𝑟—the first obvious conclusion that can be drawn is that there is far less noise in the respective plots when compared to the simulation and HITL results. This may be explained by the reduction in the values of the gains but could also evidence excessive noise when modeling the sensors. Analyzing the smoothness of the curves in [**Figure 18**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f018), it can be stated that NDI and the BNC appear to be similar, with the BNC being more noisy for 𝛿𝑎 and NDI for 𝛿𝑒, and that there is virtually no oscillation for 𝜏𝑟 for all three controllers. For the elevator input, the INDI controller has a far smoother actuation when compared to the remaining two control strategies, not showing any of the sudden spikes that appear in the 𝛿𝑒 curves of the trials for NDI and the BNC. Nonetheless, the curve for 𝛿𝑎 has an almost constant oscillation, which could have been caused by the previously mentioned simultaneous lateral references during the maneuvers. Summarizing these results, [**Table 4**](https://www.mdpi.com/2218-6581/13/3/51#table_body_display_robotics-13-00051-t004) provides the values for **𝜇𝐻𝐼𝑇𝐿𝛿𝑎**, **𝜇𝐻𝐼𝑇𝐿𝛿𝑒** and **𝜇𝐻𝐼𝑇𝐿𝜏𝑟**, as well as their average values.

**Table 4.** Experimental results for oscillation of 𝒖𝑎𝑡𝑡.

![](https://pub.mdpi-res.com/img/table.png)

Lastly, some considerations about the altitude control should be provided, namely, the sudden loss of altitude shown in [**Figure 17**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f017) for the experimental trial of the NDI controller. As [**Figure 18**](https://www.mdpi.com/2218-6581/13/3/51#fig_body_display_robotics-13-00051-f018) also demonstrates for the same trial, the curve of 𝜏𝑡 has abrupt decreases, which cannot be explained by excessive altitude. A similar event also happened during the experimental flight with the INDI controller, although to a smaller degree. After thorough analysis, it was found that this was caused by the partial obstruction of the sonar by the tail of the X-Vert when its pitch went beyond 90 degrees. Since this obstruction caused the sonar not to receive a response signal (activating a timeout), it assumed a far greater altitude than the real one, and the controller responded accordingly, decreasing the throttle input. This issue was acknowledged, and in general, the controllers demonstrated robustness to its influence, but it should be addressed in future work.

In summary, the general conclusions for the experimental flight tests largely agree with those drawn for the simulation and HITL scenarios when comparing the values of **𝑅𝑀𝑆𝑞** and **𝜇𝑢𝑎𝑡𝑡** for each. Some discrepancies are found when comparing the performance of each controller among the three scenarios, which can happen due to possible mismatches between the X-Vert simulation model and the real aircraft, the robustness of each control method to such discrepancies, and the tuning parameters of each controller, such as the gains, among others. These discrepancies are therefore expected to arise, but the conclusions drawn are qualitatively the same, as they confirm that all the control solutions are capable of tracking the references, with the INDI controller standing out by providing a smoother control action with less actuator oscillation.

## **6. Conclusions**

In this research work, a simulator for a tail-sitter UAV was developed, allowing for the testing of different control strategies in a simulated scenario. The attitude controllers tested were of a nonlinear nature, with one being from a previous work developed for the same aircraft [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)], one being based on Nonlinear Dynamic Inversion principles, and the last being its incremental version, INDI. The controllers and estimators were implemented in an Arduino board and integrated into the simulated environment in order to enable Hardware-in-the-Loop testing of the control solutions. The simulation and HITL results for performing standard maneuvers in vertical flight demonstrated that all the implemented controllers manage to track the references, although the INDI control strategy stands out by providing a far smoother actuation. Advancing to an experimental scenario, a tail-sitter was adapted in order to accept the Arduino-based flight controller, and indoor experimental trials for vertical flight were conducted. The results of these highlight once again the smoothness of actuation of the INDI control strategy, nonetheless demonstrating that all the implemented controllers are capable of stabilizing the X-Vert in vertical flight and tracking the provided references.

As an overview of the achievements of this work, a major contribution of this work is the streamlined development and testing of different control solutions: these are first developed in simulations, then validated with the HITL tools using the same simulated model after the implementation of the control solution for the flight controller, and finally tested with an experimental setup. This integrated pipeline facilitates the iterative and structured development and test of flight control solutions, which proved to be crucial for this research work, as they allowed the three controllers to be implemented and evaluated using the same metrics. The fact that the different control solutions were able to stabilize the X-Vert in vertical flight provides another considerable contribution, where INDI demonstrated increased robustness to sensor noise, evidenced by a smoother control action, which is beneficial and less demanding for the physical actuators of the aircraft. An obvious limitation of this work to be noted is the negative effect of sonar on altitude control, which, despite appearing to not have had a noteworthy impact on the attitude tracking results, is obviously unwanted. In future iterations of this research, is it advised to complement the altitude estimation with a barometer and to use sonar only for specific take-off and landing moments, and not during maneuvers for significant attitude changes.

Continuing on the topic of future work, the suggested continuation is to explore the performance of the BNC, NDI and INDI control solutions for an outdoor scenario, where aerodynamic flight can be performed. This will require a new iteration of the flight controller, accounting for new sensors to estimate the necessary variables—such as airspeed—and may necessitate the reformulation of the estimation methods to account for these. Additionally, this introduces the challenge of transitioning to and from aerodynamic flight, and the control strategies have to be robust enough to enable a safe transition, which will eventually also require reformulation to account for non-zero airspeed. Nonetheless, a robust vertical flight is crucial for tail-sitters to ensure safe take-off and landing maneuvers, and therefore, this research provides major contributions on this topic and is expected to progress to the aforementioned aspects in future iterations.

## **Author Contributions**

Conceptualization, A.A., A.M. and J.R.A.; methodology, A.A., A.M. and J.R.A.; software, A.A. and J.R.A.; validation, A.M. and J.R.A.; formal analysis, A.A.; investigation, A.A.; resources, A.M.; data curation, A.A.; writing—original draft preparation, A.A.; writing—review and editing, A.M. and J.R.A.; visualization, A.A.; supervision, A.M. and J.R.A.; project administration, A.M.; funding acquisition, A.M. All authors have read and agreed to the published version of the manuscript.

## **Funding**

This work was supported by National Funds by FCT—Fundação para a Ciência e Tecnologia, I.P.—through IDMEC under the project Eye in the Sky (PCIF/SSI/0103/2018) and under LAETA, project UIDB/50022/2020.

## **Institutional Review Board Statement**

Not applicable.

## **Informed Consent Statement**

Not applicable.

## **Data Availability Statement**

Data are contained within the article.

## **Conflicts of Interest**

The authors declare no conflicts of interest.

## **Abbreviations**

The following abbreviations are used in this manuscript:

| AC | Aerodynamic center |
| --- | --- |
| AOA | Angle of attack |
| BLDC | Brushless Direct Current |
| BNC | Benchmark nonlinear controller |
| CAD | Computer-Aided Design |
| CF | Complementary/Command Filter |
| CG | Center of gravity |
| DOF | Degree of freedom |
| ESC | Electronic Speed Controller |
| FC | Flight controller |
| HITL | Hardware-in-the-Loop |
| HPF | High-pass filter |
| I2C | Inter-Integrated Circuit |
| IMU | Inertial Measurement Unit |
| INDI | Incremental Nonlinear Dynamic Inversion |
| LPF | Low-pass filter |
| LQR | Linear Quadratic Regulator |
| MAC | Mean aerodynamic chord |
| MCS | Motion capture system |
| MCU | Microcontroller unit |
| MDPI | Multidisciplinary Digital Publishing Institute |
| NDI | Nonlinear Dynamic Inversion |
| NED | North–East–Down |
| PCB | Printed circuit board |
| PID | Proportional–Integral–Derivative |
| PWM | Pulse-width modulation |
| QTM | Qualysis Track Manager |
| RMS | Root mean square |
| SD | Second-(order) derivative |
| SPI | Serial Peripheral Interface |
| UAV | Unmanned Aerial Vehicle |
| UDP | User Datagram Protocol |
| VTOL | Vertical Take-off and Landing |

## **Appendix A. X-Vert Simulator Parameters and Constants**

### *Appendix A.1. General Parameters*

**Table A1.** Geometry and mass properties of the X-VERT VTOL [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)].

![](https://pub.mdpi-res.com/img/table.png)

### *Appendix A.2. Propulsion Subsystem*

**Table A2.** Parameters of the propulsion components of the X-VERT VTOL [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)].

![](https://pub.mdpi-res.com/img/table.png)

### *Appendix A.3. Aerodynamic Subsystem*

The equations for 𝐶𝐿𝛼, 𝐶𝐷𝛼 and 𝐶𝑚𝛼 for the aerodynamic curves from Ref. [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)] are as follows:

𝐶𝐿𝛼(𝛼,𝛿)=0.7(sin(2𝛼)+1.5sin(2𝛼)1+100sin4(𝛼))+(−0.2sin(|𝛼|)+0.2cos2(𝛼))(𝛿𝛿𝑚𝑎𝑥)[−]

(A1)

𝐶𝐷𝛼(𝛼,𝛿)=0.1+1.1sin2(𝛼+𝑐𝑓𝑐𝑤𝛿)[−]

(A2)

𝐶𝑚𝛼(𝛼,𝛿)=−0.35sin(𝛼+0.2𝛿𝛿𝑚𝑎𝑥)−0.5⎛⎝⎜⎜⎜sin(𝛼)1+100sin4(𝛼−𝜋2)⎞⎠⎟⎟⎟+(𝛿𝛿𝑚𝑎𝑥)⎛⎝⎜⎜⎜⎜⎜−0.1sin(𝛼+|0.8𝛿𝛿𝑚𝑎𝑥|)1+400sin6(𝛼−𝜋2)⎞⎠⎟⎟⎟⎟⎟[−]

(A3)

**Table A3.** Aerodynamic parameters for the X-Vert VTOL [[**39**](https://www.mdpi.com/2218-6581/13/3/51#B39-robotics-13-00051)].

![](https://pub.mdpi-res.com/img/table.png)

### *Appendix A.4. Ground Contact Subsystem*

**Table A4.** Constants for the ground contact forces [[**29**](https://www.mdpi.com/2218-6581/13/3/51#B29-robotics-13-00051)].

![](https://pub.mdpi-res.com/img/table.png)

### *Appendix A.5. Sensors*

**Table A5.** Sensor properties of the X-VERT VTOL [[**31**](https://www.mdpi.com/2218-6581/13/3/51#B31-robotics-13-00051)].

![](https://pub.mdpi-res.com/img/table.png)

## **References**

1. Telli, K.; Kraa, O.; Himeur, Y.; Ouamane, A.; Boumehraz, M.; Atalla, S.; Mansoor, W. A comprehensive review of recent research trends on unmanned aerial vehicles (uavs). *Systems* **2023**, *11*, 400. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=A+comprehensive+review+of+recent+research+trends+on+unmanned+aerial+vehicles+%28uavs%29&author=Telli,+K.&author=Kraa,+O.&author=Himeur,+Y.&author=Ouamane,+A.&author=Boumehraz,+M.&author=Atalla,+S.&author=Mansoor,+W.&publication_year=2023&journal=Systems&volume=11&pages=400&doi=10.3390/systems11080400)] [[**CrossRef**](https://doi.org/10.3390/systems11080400)]

2. Xu, H.; Wang, L.; Han, W.; Yang, Y.; Li, J.; Lu, Y.; Li, J. A Survey on UAV Applications in Smart City Management: Challenges, Advances, and Opportunities. *IEEE J. Sel. Top. Appl. Earth Obs. Remote Sens.* **2023**, *16*, 8982–9010. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=A+Survey+on+UAV+Applications+in+Smart+City+Management:+Challenges,+Advances,+and+Opportunities&author=Xu,+H.&author=Wang,+L.&author=Han,+W.&author=Yang,+Y.&author=Li,+J.&author=Lu,+Y.&author=Li,+J.&publication_year=2023&journal=IEEE+J.+Sel.+Top.+Appl.+Earth+Obs.+Remote+Sens.&volume=16&pages=8982%E2%80%939010&doi=10.1109/JSTARS.2023.3317500)] [[**CrossRef**](https://doi.org/10.1109/JSTARS.2023.3317500)]

3. Chehreh, B.; Moutinho, A.; Viegas, C. Latest Trends on Tree Classification and Segmentation Using UAV Data—A Review of Agroforestry Applications. *Remote Sens.* **2023**, *15*, 2263. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Latest+Trends+on+Tree+Classification+and+Segmentation+Using+UAV+Data%E2%80%94A+Review+of+Agroforestry+Applications&author=Chehreh,+B.&author=Moutinho,+A.&author=Viegas,+C.&publication_year=2023&journal=Remote+Sens.&volume=15&pages=2263&doi=10.3390/rs15092263)] [[**CrossRef**](https://doi.org/10.3390/rs15092263)]

4. Rakesh, D.; Kumar, N.A.; Sivaguru, M.; Keerthivaasan, K.V.R.; Janaki, B.R.; Raffik, R. Role of UAVs in innovating agriculture with future applications: A review. In Proceedings of the 2021 International Conference on Advancements in Electrical, Electronics, Communication, Computing and Automation (ICAECA), Coimbatore, India, 8–9 October 2021. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Role+of+UAVs+in+innovating+agriculture+with+future+applications:+A+review&conference=Proceedings+of+the+2021+International+Conference+on+Advancements+in+Electrical,+Electronics,+Communication,+Computing+and+Automation+%28ICAECA%29&author=Rakesh,+D.&author=Kumar,+N.A.&author=Sivaguru,+M.&author=Keerthivaasan,+K.V.R.&author=Janaki,+B.R.&author=Raffik,+R.&publication_year=2021)]

5. Saeed, A.S.; Younes, A.B.; Cai, C.; Cai, G. A survey of hybrid unmanned aerial vehicles. *Prog. Aerosp. Sci.* **2018**, *98*, 91–105. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=A+survey+of+hybrid+unmanned+aerial+vehicles&author=Saeed,+A.S.&author=Younes,+A.B.&author=Cai,+C.&author=Cai,+G.&publication_year=2018&journal=Prog.+Aerosp.+Sci.&volume=98&pages=91%E2%80%93105&doi=10.1016/j.paerosci.2018.03.007)] [[**CrossRef**](https://doi.org/10.1016/j.paerosci.2018.03.007)]

6. Ducard, G.J.; Allenspach, M. Review of designs and flight control techniques of hybrid and convertible VTOL UAVs. *Aerosp. Sci. Technol.* **2021**, *118*, 107035. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Review+of+designs+and+flight+control+techniques+of+hybrid+and+convertible+VTOL+UAVs&author=Ducard,+G.J.&author=Allenspach,+M.&publication_year=2021&journal=Aerosp.+Sci.+Technol.&volume=118&pages=107035&doi=10.1016/j.ast.2021.107035)] [[**CrossRef**](https://doi.org/10.1016/j.ast.2021.107035)]

7. Misra, A.; Jayachdran, S.; Kenche, S.; Katoch, A.; Suresh, A.; Gundabattini, E.; Selvaraj, S.K.; Legesse, A.A. A Review on Vertical Take-Off and Landing (VTOL) Tilt-Rotor and Tilt Wing Unmanned Aerial Vehicles (UAVs). *J. Eng.* **2022**, *2022*, 1803638. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=A+Review+on+Vertical+Take-Off+and+Landing+%28VTOL%29+Tilt-Rotor+and+Tilt+Wing+Unmanned+Aerial+Vehicles+%28UAVs%29&author=Misra,+A.&author=Jayachdran,+S.&author=Kenche,+S.&author=Katoch,+A.&author=Suresh,+A.&author=Gundabattini,+E.&author=Selvaraj,+S.K.&author=Legesse,+A.A.&publication_year=2022&journal=J.+Eng.&volume=2022&pages=1803638&doi=10.1155/2022/1803638)] [[**CrossRef**](https://doi.org/10.1155/2022/1803638)]

8. Okasha, M.; Shah, J.; Fauzi, W.; Hanouf, Z. Gain scheduled linear quadratic control for quadcopter. *IOP Conf. Ser. Mater. Sci. Eng.* **2017**, *270*, 012009. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Gain+scheduled+linear+quadratic+control+for+quadcopter&author=Okasha,+M.&author=Shah,+J.&author=Fauzi,+W.&author=Hanouf,+Z.&publication_year=2017&journal=IOP+Conf.+Ser.+Mater.+Sci.+Eng.&volume=270&pages=012009&doi=10.1088/1757-899X/270/1/012009)] [[**CrossRef**](https://doi.org/10.1088/1757-899X/270/1/012009)]

9. Poksawat, P.; Wang, L.; Mohamed, A. Gain scheduled attitude control of fixed-wing UAV with automatic controller tuning. *IEEE Trans. Control. Syst. Technol.* **2017**, *26*, 1192–1203. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Gain+scheduled+attitude+control+of+fixed-wing+UAV+with+automatic+controller+tuning&author=Poksawat,+P.&author=Wang,+L.&author=Mohamed,+A.&publication_year=2017&journal=IEEE+Trans.+Control.+Syst.+Technol.&volume=26&pages=1192%E2%80%931203&doi=10.1109/TCST.2017.2709274)] [[**CrossRef**](https://doi.org/10.1109/TCST.2017.2709274)]

10. Qiao, J.; Liu, Z.; Zhang, Y. Gain scheduling based PID control approaches for path tracking and fault tolerant control of a quad-rotor UAV. *Int. J. Mech. Eng. Robot. Res.* **2018**, *7*, 401–408. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Gain+scheduling+based+PID+control+approaches+for+path+tracking+and+fault+tolerant+control+of+a+quad-rotor+UAV&author=Qiao,+J.&author=Liu,+Z.&author=Zhang,+Y.&publication_year=2018&journal=Int.+J.+Mech.+Eng.+Robot.+Res.&volume=7&pages=401%E2%80%93408&doi=10.18178/ijmerr.7.4.401-408)] [[**CrossRef**](https://doi.org/10.18178/ijmerr.7.4.401-408)]

11. Melo, A.G.; Andrade, F.A.; Guedes, I.P.; Carvalho, G.F.; Zachi, A.R.; Pinto, M.F. Fuzzy gain-scheduling PID for UAV position and altitude controllers. *Sensors* **2022**, *22*, 2173. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Fuzzy+gain-scheduling+PID+for+UAV+position+and+altitude+controllers&author=Melo,+A.G.&author=Andrade,+F.A.&author=Guedes,+I.P.&author=Carvalho,+G.F.&author=Zachi,+A.R.&author=Pinto,+M.F.&publication_year=2022&journal=Sensors&volume=22&pages=2173&doi=10.3390/s22062173)] [[**CrossRef**](https://doi.org/10.3390/s22062173)]

12. Pashilkar, A.A.; Ismail, S.; Ayyagari, R.; Sundararajan, N. Design of a nonlinear dynamic inversion controller for trajectory following and maneuvering for fixed wing aircraft. In Proceedings of the 2013 IEEE Symposium on Computational Intelligence for Security and Defense Applications (CISDA), Singapore, 16–19 April 2013. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Design+of+a+nonlinear+dynamic+inversion+controller+for+trajectory+following+and+maneuvering+for+fixed+wing+aircraft&conference=Proceedings+of+the+2013+IEEE+Symposium+on+Computational+Intelligence+for+Security+and+Defense+Applications+%28CISDA%29&author=Pashilkar,+A.A.&author=Ismail,+S.&author=Ayyagari,+R.&author=Sundararajan,+N.&publication_year=2013)]

13. Azinheira, J.R.; Moutinho, A. Hover Control of an UAV with Backstepping Design Including Input Saturations. *IEEE Trans. Control. Syst. Technol.* **2014**, *16*, 517–526. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Hover+Control+of+an+UAV+with+Backstepping+Design+Including+Input+Saturations&author=Azinheira,+J.R.&author=Moutinho,+A.&publication_year=2014&journal=IEEE+Trans.+Control.+Syst.+Technol.&volume=16&pages=517%E2%80%93526&doi=10.1109/TCST.2007.908209)] [[**CrossRef**](https://doi.org/10.1109/TCST.2007.908209)]

14. Horn, J.F. Non-linear dynamic inversion control design for rotorcraft. *Aerospace* **2019**, *6*, 38. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Non-linear+dynamic+inversion+control+design+for+rotorcraft&author=Horn,+J.F.&publication_year=2019&journal=Aerospace&volume=6&pages=38&doi=10.3390/aerospace6030038)] [[**CrossRef**](https://doi.org/10.3390/aerospace6030038)]

15. Wang, F.; Wang, P.; Deng, H.; Chen, B. Nonlinear Dynamic Inversion Control of VTOL Tilt-Wing UAV. In Proceedings of the 2018 Eighth International Conference on Instrumentation & Measurement, Computer, Communication and Control (IMCCC), Harbin, China, 19–21 July 2018. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Nonlinear+Dynamic+Inversion+Control+of+VTOL+Tilt-Wing+UAV&conference=Proceedings+of+the+2018+Eighth+International+Conference+on+Instrumentation+&+Measurement,+Computer,+Communication+and+Control+%28IMCCC%29&author=Wang,+F.&author=Wang,+P.&author=Deng,+H.&author=Chen,+B.&publication_year=2018)]

16. Fu, Y.; Zhang, Y.; Yu, Z.; Liu, Z. A Backstepping Control Strategy for Fixed Wing UAV under Actuator Failure. In Proceedings of the 2019 IEEE 28th International Symposium on Industrial Electronics (ISIE), Vancouver, BC, Canada, 12–14 June 2019. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=A+Backstepping+Control+Strategy+for+Fixed+Wing+UAV+under+Actuator+Failure&conference=Proceedings+of+the+2019+IEEE+28th+International+Symposium+on+Industrial+Electronics+%28ISIE%29&author=Fu,+Y.&author=Zhang,+Y.&author=Yu,+Z.&author=Liu,+Z.&publication_year=2019)]

17. Smeur, E.J.; Chu, Q.; De Croon, G.C. Adaptive incremental nonlinear dynamic inversion for attitude control of micro air vehicles. *J. Guid. Control. Dyn.* **2016**, *39*, 450–461. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Adaptive+incremental+nonlinear+dynamic+inversion+for+attitude+control+of+micro+air+vehicles&author=Smeur,+E.J.&author=Chu,+Q.&author=De+Croon,+G.C.&publication_year=2016&journal=J.+Guid.+Control.+Dyn.&volume=39&pages=450%E2%80%93461)]

18. Azinheira, J.R.; Moutinho, A.; Carvalho, J.R. Lateral control of airship with uncertain dynamics using incremental nonlinear dynamics inversion. *IFAC Pap. Online* **2015**, *48*, 69–74. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Lateral+control+of+airship+with+uncertain+dynamics+using+incremental+nonlinear+dynamics+inversion&author=Azinheira,+J.R.&author=Moutinho,+A.&author=Carvalho,+J.R.&publication_year=2015&journal=IFAC+Pap.+Online&volume=48&pages=69%E2%80%9374&doi=10.1016/j.ifacol.2015.12.012)] [[**CrossRef**](https://doi.org/10.1016/j.ifacol.2015.12.012)]

19. Sieberling, S.; Chu, Q.P.; Mulder, J.A. Robust flight control using incremental nonlinear dynamic inversion and angular acceleration prediction. *J. Guid. Control. Dyn.* **2019**, *33*, 1732–1742. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Robust+flight+control+using+incremental+nonlinear+dynamic+inversion+and+angular+acceleration+prediction&author=Sieberling,+S.&author=Chu,+Q.P.&author=Mulder,+J.A.&publication_year=2019&journal=J.+Guid.+Control.+Dyn.&volume=33&pages=1732%E2%80%931742&doi=10.2514/1.49978)] [[**CrossRef**](https://doi.org/10.2514/1.49978)]

20. Acquatella, P.; van Kampen, E.; Chu, Q.P. Incremental backstepping for robust nonlinear flight control. In Proceedings of the EuroGNC 2013, Delft, The Netherlands, 10–12 April 2013. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Incremental+backstepping+for+robust+nonlinear+flight+control&conference=Proceedings+of+the+EuroGNC+2013&author=Acquatella,+P.&author=van+Kampen,+E.&author=Chu,+Q.P.&publication_year=2013)]

21. Guerreiro, N.M.; Moutinho, A. Robust incremental backstepping controller for the attitude and airspeed tracking of a commercial airplane. In Proceedings of the 2019 IEEE 10th International Conference on Mechanical and Aerospace Engineering (ICMAE), Brussels, Belgium, 22–25 July 2019. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Robust+incremental+backstepping+controller+for+the+attitude+and+airspeed+tracking+of+a+commercial+airplane&conference=Proceedings+of+the+2019+IEEE+10th+International+Conference+on+Mechanical+and+Aerospace+Engineering+%28ICMAE%29&author=Guerreiro,+N.M.&author=Moutinho,+A.&publication_year=2019)]

22. Cordeiro, R.A.; Azinheira, J.R.; Moutinho, A. Robustness of incremental backstepping flight controllers: The boeing 747 case study. *IEEE Trans. Aerosp. Electron. Syst.* **2021**, *57*, 3492–3505. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Robustness+of+incremental+backstepping+flight+controllers:+The+boeing+747+case+study&author=Cordeiro,+R.A.&author=Azinheira,+J.R.&author=Moutinho,+A.&publication_year=2021&journal=IEEE+Trans.+Aerosp.+Electron.+Syst.&volume=57&pages=3492%E2%80%933505&doi=10.1109/TAES.2021.3082663)] [[**CrossRef**](https://doi.org/10.1109/TAES.2021.3082663)]

23. Tal, E.; Karaman, S. Accurate tracking of aggressive quadrotor trajectories using incremental nonlinear dynamic inversion and differential flatness. *IEEE Trans. Control. Syst. Technol.* **2020**, *29*, 1203–1218. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Accurate+tracking+of+aggressive+quadrotor+trajectories+using+incremental+nonlinear+dynamic+inversion+and+differential+flatness&author=Tal,+E.&author=Karaman,+S.&publication_year=2020&journal=IEEE+Trans.+Control.+Syst.+Technol.&volume=29&pages=1203%E2%80%931218&doi=10.1109/TCST.2020.3001117)] [[**CrossRef**](https://doi.org/10.1109/TCST.2020.3001117)]

24. Jayaraman, B.; Giri, D.K.; Ghosh, A.K. Attitude Tracking Control of a Light Aircraft Using Classical and Incremental Nonlinear Dynamic Inversion Approaches. In Proceedings of the 2021 International Conference on Unmanned Aircraft Systems (ICUAS), Athens, Greece, 15–18 June 2021. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Attitude+Tracking+Control+of+a+Light+Aircraft+Using+Classical+and+Incremental+Nonlinear+Dynamic+Inversion+Approaches&conference=Proceedings+of+the+2021+International+Conference+on+Unmanned+Aircraft+Systems+%28ICUAS%29&author=Jayaraman,+B.&author=Giri,+D.K.&author=Ghosh,+A.K.&publication_year=2021)]

25. Smeur, E.J.; Bronz, M.; de Croon, G.C. Incremental control and guidance of hybrid aircraft applied to a tailsitter unmanned air vehicle. *J. Guid. Control. Dyn.* **2020**, *43*, 274–287. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Incremental+control+and+guidance+of+hybrid+aircraft+applied+to+a+tailsitter+unmanned+air+vehicle&author=Smeur,+E.J.&author=Bronz,+M.&author=de+Croon,+G.C.&publication_year=2020&journal=J.+Guid.+Control.+Dyn.&volume=43&pages=274%E2%80%93287&doi=10.2514/1.G004520)] [[**CrossRef**](https://doi.org/10.2514/1.G004520)]

26. Tal, E.A.; Karaman, S. Global trajectory-tracking control for a tailsitter flying wing in agile uncoordinated flight. In Proceedings of the AIAA Aviation 2021 Forum, Online, 2–6 August 2021. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Global+trajectory-tracking+control+for+a+tailsitter+flying+wing+in+agile+uncoordinated+flight&conference=Proceedings+of+the+AIAA+Aviation+2021+Forum&author=Tal,+E.A.&author=Karaman,+S.&publication_year=2021)]

27. Tal, E.; Karaman, S. Global incremental flight control for agile maneuvering of a tailsitter flying wing. *J. Guid. Control. Dyn.* **2022**, *45*, 2332–2349. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Global+incremental+flight+control+for+agile+maneuvering+of+a+tailsitter+flying+wing&author=Tal,+E.&author=Karaman,+S.&publication_year=2022&journal=J.+Guid.+Control.+Dyn.&volume=45&pages=2332%E2%80%932349&doi=10.2514/1.G006645)] [[**CrossRef**](https://doi.org/10.2514/1.G006645)]

28. Yang, Y.; Zhu, J.; Yang, J. INDI-based transitional flight control and stability analysis of a tail-sitter UAV. In Proceedings of the 2020 IEEE International Conference on Systems, Man, and Cybernetics (SMC), Toronto, ON, Canada, 11–14 October 2020. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=INDI-based+transitional+flight+control+and+stability+analysis+of+a+tail-sitter+UAV&conference=Proceedings+of+the+2020+IEEE+International+Conference+on+Systems,+Man,+and+Cybernetics+%28SMC%29&author=Yang,+Y.&author=Zhu,+J.&author=Yang,+J.&publication_year=2020)]

29. Chiappinelli, R.; Nahon, M. Modeling and Control of a Tailsitter UAV. In Proceedings of the 2018 International Conference on Unmanned Aircraft Systems (ICUAS), Dallas, TX, USA, 12–15 June 2018. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Modeling+and+Control+of+a+Tailsitter+UAV&conference=Proceedings+of+the+2018+International+Conference+on+Unmanned+Aircraft+Systems+%28ICUAS%29&author=Chiappinelli,+R.&author=Nahon,+M.&publication_year=2018)]

30. E-Flite XVERT VTOL Webpage. Available online: [**https://www.horizonhobby.de/en_DE/product/x-vert-vtol-bnf-basic-504mm/EFL1850.html**](https://www.horizonhobby.de/en_DE/product/x-vert-vtol-bnf-basic-504mm/EFL1850.html) (accessed on 24 January 2024).

31. Beard, R.W.; McLain, T.W. *Small Unmanned Aircraft: Theory and Practice*, 1st ed.; Princeton University Press: Princeton, NJ, USA, 2018. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Small+Unmanned+Aircraft:+Theory+and+Practice&author=Beard,+R.W.&author=McLain,+T.W.&publication_year=2018)]

32. Stevens, B.L.; Lewis, F.L. *Aircraft Control and Simulation: Dynamics, Controls Design, and Autonomous Systems*, 3rd ed.; John Wiley & Sons: Hoboken, NJ, USA, 2016. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Aircraft+Control+and+Simulation:+Dynamics,+Controls+Design,+and+Autonomous+Systems&author=Stevens,+B.L.&author=Lewis,+F.L.&publication_year=2016)]

33. Nelson, R.C. *Flight Stability and Automatic Control*, 2nd ed.; McGraw-Hill: New York, NY, USA, 1998. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Flight+Stability+and+Automatic+Control&author=Nelson,+R.C.&publication_year=1998)]

34. Whidborne, J.; Mendez, A.; Cooke, A. Effect of Rotor Tilt on the Gust Rejection Properties of Multirotor Aircraft. *Drones* **2022**, *6*, 305. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Effect+of+Rotor+Tilt+on+the+Gust+Rejection+Properties+of+Multirotor+Aircraft&author=Whidborne,+J.&author=Mendez,+A.&author=Cooke,+A.&publication_year=2022&journal=Drones&volume=6&pages=305&doi=10.3390/drones6100305)] [[**CrossRef**](https://doi.org/10.3390/drones6100305)]

35. Khan, W.; Nahon, M. Toward an accurate physics-based UAV thruster model. *IEEE ASME Trans. Mechatron.* **2013**, *18*, 1269–1279. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Toward+an+accurate+physics-based+UAV+thruster+model&author=Khan,+W.&author=Nahon,+M.&publication_year=2013&journal=IEEE+ASME+Trans.+Mechatron.&volume=18&pages=1269%E2%80%931279&doi=10.1109/TMECH.2013.2264105)] [[**CrossRef**](https://doi.org/10.1109/TMECH.2013.2264105)]

36. McCormick, B.W. *Aerodynamics, Aeronautics and Flight Mechanics*, 2nd ed.; John Wiley & Sons: Hoboken, NJ, USA, 1979. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Aerodynamics,+Aeronautics+and+Flight+Mechanics&author=McCormick,+B.W.&publication_year=1979)]

37. Khan, W.; Nahon, M. Real-time modeling of agile fixed-wing UAV aerodynamics. In Proceedings of the 2015 International Conference on Unmanned Aircraft Systems (ICUAS), Denver, CO, USA, 9–12 June 2015. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Real-time+modeling+of+agile+fixed-wing+UAV+aerodynamics&conference=Proceedings+of+the+2015+International+Conference+on+Unmanned+Aircraft+Systems+%28ICUAS%29&author=Khan,+W.&author=Nahon,+M.&publication_year=2015)]

38. Khan, W.; Nahon, M. Modeling dynamics of agile fixed-wing UAVs for real-time applications. In Proceedings of the 2016 International Conference on Unmanned Aircraft Systems (ICUAS), Arlington, VA, USA, 7–10 June 2016. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Modeling+dynamics+of+agile+fixed-wing+UAVs+for+real-time+applications&conference=Proceedings+of+the+2016+International+Conference+on+Unmanned+Aircraft+Systems+%28ICUAS%29&author=Khan,+W.&author=Nahon,+M.&publication_year=2016)]

39. Prisacariu, V.; Cîrciu, I.; Boscoianu, M. Flying wing aerodynamic analysis. *Rev. Air Force Acad.* **2012**, *2*, 31–35. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Flying+wing+aerodynamic+analysis&author=Prisacariu,+V.&author=C%C3%AErciu,+I.&author=Boscoianu,+M.&publication_year=2012&journal=Rev.+Air+Force+Acad.&volume=2&pages=31%E2%80%9335)]

40. Esteves, D.J.; Moutinho, A.; Azinheira, J.R. Stabilization and altitude control of an indoor low-cost quadrotor: Design and experimental results. In Proceedings of the 2015 IEEE International Conference on Autonomous Robot Systems and Competitions, Vila Real, Portugal, 8–10 April 2015. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Stabilization+and+altitude+control+of+an+indoor+low-cost+quadrotor:+Design+and+experimental+results&conference=Proceedings+of+the+2015+IEEE+International+Conference+on+Autonomous+Robot+Systems+and+Competitions&author=Esteves,+D.J.&author=Moutinho,+A.&author=Azinheira,+J.R.&publication_year=2015)]

41. Madgwick, S.O.; Harrison, A.J.; Vaidyanathan, R. Estimation of IMU and MARG orientation using a gradient descent algorithm. In Proceedings of the 2011 IEEE International Conference on Rehabilitation Robotics, Zurich, Switzerland, 29 June–1 July 2011. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Estimation+of+IMU+and+MARG+orientation+using+a+gradient+descent+algorithm&conference=Proceedings+of+the+2011+IEEE+International+Conference+on+Rehabilitation+Robotics&author=Madgwick,+S.O.&author=Harrison,+A.J.&author=Vaidyanathan,+R.&publication_year=2011)]

42. Acquatella, P.; van Ekeren, W.; Chu, Q.P. Pi (d) tuning for flight control systems via incremental nonlinear dynamic inversion. *IFAC Pap. Online* **2017**, *50*, 8175–8180. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Pi+%28d%29+tuning+for+flight+control+systems+via+incremental+nonlinear+dynamic+inversion&author=Acquatella,+P.&author=van+Ekeren,+W.&author=Chu,+Q.P.&publication_year=2017&journal=IFAC+Pap.+Online&volume=50&pages=8175%E2%80%938180&doi=10.1016/j.ifacol.2017.08.1265)] [[**CrossRef**](https://doi.org/10.1016/j.ifacol.2017.08.1265)]

43. Cordeiro, R.A.; Azinheira, J.R.; Moutinho, A. Cascaded incremental backstepping controller for the attitude tracking of fixed-wing aircraft. In Proceedings of the 5th CEAS Conference on Guidance, Navigation and Control, Berlin, Germany, 3–5 April 2019. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Cascaded+incremental+backstepping+controller+for+the+attitude+tracking+of+fixed-wing+aircraft&conference=Proceedings+of+the+5th+CEAS+Conference+on+Guidance,+Navigation+and+Control&author=Cordeiro,+R.A.&author=Azinheira,+J.R.&author=Moutinho,+A.&publication_year=2019)]

44. Cordeiro, R.A.; Marton, A.S.; Azinheira, J.R.; Carvalho, J.R.; Moutinho, A. Increased robustness to delay in incremental controllers using input scaling gain. *IEEE Trans. Aerosp. Electron. Syst.* **2021**, *58*, 1199–1210. [[**Google Scholar**](https://scholar.google.com/scholar_lookup?title=Increased+robustness+to+delay+in+incremental+controllers+using+input+scaling+gain&author=Cordeiro,+R.A.&author=Marton,+A.S.&author=Azinheira,+J.R.&author=Carvalho,+J.R.&author=Moutinho,+A.&publication_year=2021&journal=IEEE+Trans.+Aerosp.+Electron.+Syst.&volume=58&pages=1199%E2%80%931210&doi=10.1109/TAES.2021.3123215)] [[**CrossRef**](https://doi.org/10.1109/TAES.2021.3123215)]

45. Arduino Nano 33 IOT Product Page. Available online: [**https://docs.arduino.cc/hardware/nano-33-iot/**](https://docs.arduino.cc/hardware/nano-33-iot/) (accessed on 24 January 2024).

46. Wiznet W5500 Product Page. Available online: [**https://www.wiznet.io/product-item/w5500/**](https://www.wiznet.io/product-item/w5500/) (accessed on 24 January 2024).

47. CAD Model UAV Tailsitter at GrabCAD Website. Available online: [**https://grabcad.com/library/uav-tailsitter-1**](https://grabcad.com/library/uav-tailsitter-1) (accessed on 24 January 2024).

48. Spektrum A220 4g Aircraft Servo Product Page, Horizon Hobby Website. Available online: [**https://www.horizonhobby.com/product/a220-4g-aircraft-servo-x-vert/SPMSA220.html**](https://www.horizonhobby.com/product/a220-4g-aircraft-servo-x-vert/SPMSA220.html) (accessed on 24 January 2024).

49. 20A Nano ESC Product Page, SkyRC Website. Available online: [**https://www.skyrc.com/Discontinued_Products/20A_ESC**](https://www.skyrc.com/Discontinued_Products/20A_ESC) (accessed on 24 January 2024).

50. BL280 Brushless Outrunner Motor 2600Kv Product Page, Horizon Hobby Website. Available online: [**https://www.horizonhobby.com/product/bl280-brushless-outrunner-motor-2600kv/EFLM1809.html**](https://www.horizonhobby.com/product/bl280-brushless-outrunner-motor-2600kv/EFLM1809.html) (accessed on 24 January 2024).

51. Mini Power Hub Product Page, MatekSys Website. Available online: [**http://www.mateksys.com/?portfolio=hub5v12v#tab-id-1**](http://www.mateksys.com/?portfolio=hub5v12v#tab-id-1) (accessed on 24 January 2024).

52. Gens Ace G-Tech Soaring 450 mAh 7.4 V Battery Product Page, Gens Ace Website. Available online: [**https://www.gensace.de/gens-ace-g-tech-soaring-450mah-7-4v-30c-2s1p-lipo-battery-pack-with-jst-syp-plug.html**](https://www.gensace.de/gens-ace-g-tech-soaring-450mah-7-4v-30c-2s1p-lipo-battery-pack-with-jst-syp-plug.html) (accessed on 24 January 2024).

53. Qualysis Track Manager Software, Qualysis Website. Available online: [**https://www.qualisys.com/software/qualisys-track-manager/**](https://www.qualisys.com/software/qualisys-track-manager/) (accessed on 24 January 2024).

---

Source: https://maker.wiznet.io/gavinchang/projects/experimental-nonlinear-and-incremental-control-stabilization-of-a-tail-sitter-uav-with-hardware-in-t-1/
