Trajectory optimization of tail-sitter considering speed constraints

Mingyue Fan, Fangfang Xie, Tingwei Ji, Yao Zheng
Abstract

Tail-sitters, with the advantages of both the fixed-wing unmanned aerial vehicles (UAVs) and vertical take-off and landing UAVs, have been widely designed and researched in recent years. With the change in modern UAV application scenarios, it is required that UAVs have fast maneuverable three-dimensional flight capabilities. Due to the highly nonlinear aerodynamics produced by the fuselage and wings of the tail-sitter, how to quickly generate a smooth and executable trajectory is a problem that needs to be solved urgently. We constrain the speed of the tail-sitter, eliminate the differential dynamics constraints in the trajectory generation process of the tail-sitter through differential flatness, and allocate the time variable of the trajectory through the state-of-the-art trajectory generation method named MINCO. By discretizing the trajectory in time, we convert the speed constraint on the vehicle into a soft constraint, thereby achieving the time-optimal trajectory for the tail-sitter to fly through any given waypoints.

1 Introduction

Compared with fixed-wing unmanned aerial vehicles (UAVs), vertical take-off and landing (VTOL) UAVs do not require a runway for takeoff and landing, and have the ability to hover in the air. They have been applied in various fields such as search and rescue [1], dam inspection [2], payload transportation [3], and agricultural assistance [4]. Common types of VTOL aircraft include quadcopters and helicopters.

Hybrid UAVs aim to retain the advantages of vertical take-off and landing UAVs while incorporating the strengths of fixed-wing UAVs—that is, they offer the ability to perform vertical take-offs and hover, with a long-duration flight capabilities and a larger payload capacity. Common types of hybrid UAVs include tilt-rotor [5, 6], tilt-wing [7], and dual-system [8, 9]. Among these, the tail-sitters have its rotors rigidly fixed to the wing, achieving the transition between vertical take-off/landing and cruising flight by tilting the entire body. This design offers simplicity in mechanics and ease of installation—qualities that are particularly important for small, low-cost, portable UAVs. Based on these advantages, an increasing number of institutions and researchers have taken an interest in tail-sitters, leading to the development of single-propeller [10, 11, 12], dual-propeller [13, 14, 15], quad-propeller [16, 17], even penta-propeller [18] tail-sitters.

Traditional applications of UAVs often operate in high-altitude areas. At a certain height, a UAV is considered as a uniformly moving two-dimensional point mass, so a combined navigation positioning system based on Global Positioning System (GPS) and Inertial Measurement Unit (IMU) is sufficient for the UAV to successfully complete preset tasks. However, with the changing scenarios of modern UAV applications, UAVs are increasingly required to fly in spatially constrained areas such as building clusters, forests, and even indoors, necessitating UAVs to possess swift maneuverability in three-dimensional flight. For tail-sitters, due to the aerodynamic forces generated by the fuselage and wings during flight, generating a smooth, efficient, and executable trajectory is an urgent problem.

Generating high-quality trajectories for tail-sitters presents four major algorithmic challenges. Firstly, under constraints of size, weight, and power, there are stringent requirements for real-time trajectory calculation using limited onboard resources. Secondly, to achieve full-envelope flight of the tail-sitter, trajectories need to be discretized in time, and the generation of these trajectories must consider the aerodynamics of the tail-sitter. Thirdly, reliable trajectories require acceptable states and inputs, so the trajectory cannot merely be smooth in terms of geometric shape (such as B-splines and Bezier curves), the trajectory was required to satisfy dynamic constraints. Fourthly, due to the high nonlinearity of the aerodynamics of the tail-sitter’s fuselage and wings, it’s a challenge to ensure that the generated trajectory does not cause the tail-sitter to experience unacceptable angle of attack during flight.

Our contributions are outlined as follows:

1.Based on differential flatness, we have designed a trajectory generation method for tail-sitters that precisely considers the three-dimensional dynamic model. This generates the optimal executable trajectory for the tail-sitter, considering flight time, actuator constraints, and speed constraints.

2.We propose an optimization-based multistage trajectory generation method. This allows the tail-sitter to start from a hovering state and generate optimal trajectories that pass through any given three-dimensional intermediate waypoints. To the best of our knowledge, this is the first time that this method has been proposed for tail-sitters.

2 Related work

There are currently two approaches to trajectory generation for tail-sitters.

The first approach treats the tail-sitter as a quadrotors during low-speed vertical flight, and as a fixed-wing aircraft during horizontal flight, separately applying mature trajectory generation methods for quadrotors and horizontal flight of fixed-wing aircraft. For example, Mellinger [19] was the first to verify that the parallel-axis quadrotors are differentially flat, enabling the quadrotors to generate trajectories passing through specified keyframes starting from the hovering state. Mueller [20] treated the trajectory planning between two points of the quadrotor as an Optimal Boundary Value Problem (OBVP), solving it using Pontryagin’s minimum principle. Both of these methods are directly applicable to tail-sitters during low-speed vertical flight. Similarly, for horizontal flight, where the tail-sitter performs two-dimensional planar motion, the well-known Dubins path [21] or Dubins-Polynomials trajectory [22] considering control constraints, are applicable.

However, this brings about new challenges. Due to the large area of the tail-sitter’s fuselage and wings exposed to the air, the transition between low-speed vertical flight and horizontal flight is extremely challenging. Verling [23] accomplished the transition between hovering and horizontal flight by linearly increasing or decreasing the pitch angle, without considering the influence of the nonlinear aerodynamics generated by the tail-sitter during the transition on the pitch angle. Lyu [24] designed a controller that can achieve the transition between hovering and horizontal flight with minimal changes in altitude, again without considering the aerodynamic forces generated during the transition, thus requiring a large amount of trial and error in experiments. To incorporate the aerodynamics of the tail-sitter during the transition phase, the transition phase problem is usually treated as a nonlinear optimization problem. Since the transition generally occurs on the sagittal plane of the fuselage, Kita [25] modeled the aerodynamics and thrust on the sagittal plane of the tail-sitter, calculated the reference trajectory of the pitch angle offline, and achieved the transition in the shortest time while limiting altitude changes. Oosedo [26] did similar work for the same purpose. Naldi and Marconi [27] numerically solved the problem considering both minimum time and minimum energy during the transition phase. Li [28] optimized the energy of the tail-sitter during the forward flight transition, obtaining the trajectory of the pitch angle. Furthermore, McIntosh and Mishra [29] generated obstacle avoidance trajectories during the transition phase considering wake effects on the aerodynamic forces, but this trajectory is two-dimensional and simplistically considers obstacles as circles.

To sum up, from a computational perspective, existing transition methods have issues such as large errors, inaccurate models, and high computational costs, making online planning difficult to achieve. From a practical application perspective, the transition phase only occurs in one-dimensional or two-dimensional Euclidean space, which is unable to achieve rapid and agile flight.

In under-actuated systems, differential flatness is a very important property. This property, which applies to dynamical systems described by ordinary differential equations, was first proposed by Fliess [30]. Utilizing differential flatness transformations, the system’s reference states and reference inputs can be directly determined by the transient information of the flat output trajectory, without the need for integrating the differential equations of the dynamical system. The differential flatness property of quadrotors was first proposed by Mellinger [19] and has been repeatedly proven to be an effective method for trajectory planning in the development of rotorcraft over the past decade [31, 32, 33, 34, 35, 36].

Recently, Tal [37] and Lu [38] have proposed tail-sitter trajectory planning based on differential flatness.

Tal [37] proposed the differential flatness property of the tail-sitter based on the ϕitalic-ϕ\phiitalic_ϕ-theory aerodynamic model [39], where the position of the vehicle and the Euler yaw angle were chosen as flat outputs. By solving the minimum snap trajectory in flat space, they achieved maneuverable flight of the tail-sitter [40]. However, Tal’s work still has shortcomings. First, the ϕitalic-ϕ\phiitalic_ϕ-theory model approximates the differential motion equations model with polynomials, and its error will reduce the quality of the trajectory and control performance. Second, the ϕitalic-ϕ\phiitalic_ϕ-theory model assumes no wind conditions, considering only the attitude and speed of the aircraft in the inertial frame, rather than the aerodynamic angles and airspeed. Third, Tal’s method assumes that the aircraft will not be subjected to lateral forces, so the fuselage is hollowed out, which is not applicable to the general tail-sitter model. Compared with the ϕitalic-ϕ\phiitalic_ϕ-theory model, Lu [38] considered the real, complete 3D model of the tail-sitter without any simplifications, demonstrated the differential flatness property of the precise aerodynamic model and more general tail-sitter fuselage, and enabled the tail-sitter to perform maneuvers such as the Cuban eight at high altitudes. It’s worth mentioning that while Tal hollowed out the fuselage to make the aircraft not consider the lateral forces it is subjected to, Lu forced the tail-sitter to perform coordinated flight, i.e., no sideslip, leading to the same effect of avoiding lateral forces as Tal’s. Due to the highly nonlinear aerodynamics, lateral forces make the solution of the vehicle’s attitude and control very complex. Although Zhou [41] solved this highly nonlinear constraint using numerical methods, this method is still not suitable for real-time computation and is something we strive to avoid.

On the trajectory optimization level, neither Lu nor Tal have delved deeply. Trajectory optimization has a long history in control literature [42]. These types of problems come in various forms, but overall they optimize a series of inputs to dynamic systems, subject to constraints including but not limited to motion differential equations, obstacles, and control inputs. Many existing solvers can handle trajectory optimization problems with a general structure and obtain high-quality solutions, such as GPOPS-II [43] based on the pseudospectral method and ACADO [44] based on the shooting method. These solvers typically discretize trajectory optimization problems into nonlinear programming problems with a large number of optimization variables and equality constraints through direct or indirect methods, and then resort to some high-performance general nonlinear programming solvers, such as SNOPT [45] and IPOPT [46]. However, in practical applications, trajectory planning often has constraints that are difficult to describe explicitly, non-smooth constraints, integer variables, and so on [47]. Moreover, general solvers are usually affected by computational efficiency. The author has tried to use SNOPT in GPOPS-II to solve the two-dimensional trajectory of a tail-sitter with a 6-D state and 2-D input, from a stationary takeoff from the ground to a certain position to enter level flight, and it took more than 10 minutes.

Mellinger [19] use fixed-duration splines to characterize the flat trajectories of quadrotors, integrating the square norm of the fourth-order time derivative as a cost function for quadratic programming to ensure the smoothness of the trajectory. This scheme fixes the total time of the trajectory and then allocates time to each stage of the trajectory, lacking effective optimization for the entire trajectory. Additionally, this scheme only supports simplified dynamic constraints. Bry [22] eliminates equality constraints by using boundary derivative transformations, thus solving an unconstrained quadratic programming problem and obtaining a closed-form solution. However, the efficiency of solving sparse linear equation systems is questionable when the problem scale is large. Furthermore, the vehicle’s flight speed and other dynamic constraints cannot be explicitly incorporated into the trajectory generation. Burke [48] solves the primal-dual variable of quadratic programming problems with linear complexity, but the advantage of their algorithm only becomes apparent when there are many trajectory stages. Wang [49] provide an analytical inverse of the boundary derivative transformation, along with the analytical gradient of parameters, but this analytical inverse is only applicable to situations with only one start and one end point and cannot solve multistage trajectory.

In summary, many state-of-the-art UAVs trajectory planning methods in academia are to solve weakened problems of basic problems, either sacrificing time optimization, sacrificing constraint fidelity, or using heuristic approximate solutions, to exchange for the computational efficiency of online planning. However, the quality of the trajectory solution is far from the truth value.

3 Flight Dynamics

This section introduces the dynamic model of the tail-sitter, which forms the basis of our trajectory generation algorithm. Section 3.1 introduces the tail-sitter we use, and in section 3.2 we define the inertial coordinate system and body coordinate system we use. Section 3.3 presents the translational and rotational dynamics of the tail-sitter, and the aerodynamics that the tail-sitter is subjected to are shown in section 3.4.

3.1 Tail-sitter Model

The vehicle we use is the SWAN K1 PRO, developed by HEQ UAV Technical Company, located in Shenzhen, China. The vehicle has a total mass of 1.3328kg and a wingspan of 1.085m, as shown in Figure 1. As can be seen, the vehicle has no control surfaces, and all torques and forces are generated by the four propellers on the fuselage. Specifically, propellers 1 and 3 constantly rotate clockwise, while propellers 2 and 4 constantly rotate counterclockwise, balancing torques with each other.

Refer to caption
Figure 1: SWAN K1 PRO

3.2 Coordinate Frames

As shown in Figure 2, the inertial frame {𝐎𝐱𝐲𝐳}𝐎𝐱𝐲𝐳\left\{\mathbf{O}\mathbf{x}\mathbf{y}\mathbf{z}\right\}{ bold_Oxyz } is defined as North-East-Down (NED), and correspondingly, the body frame {𝐎b𝐱b𝐲b𝐳b}subscript𝐎𝑏subscript𝐱𝑏subscript𝐲𝑏subscript𝐳𝑏\left\{\mathbf{O}_{b}\mathbf{x}_{b}\mathbf{y}_{b}\mathbf{z}_{b}\right\}{ bold_O start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT bold_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT bold_y start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT bold_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT } is defined as Front-Right-Down (FRD). Here, O𝑂Oitalic_O is the origin of the world coordinate system, and Obsubscript𝑂𝑏O_{b}italic_O start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT is the center of gravity of the vehicle.

Refer to caption
Figure 2: coordinate frames and aerodynamic forces

3.3 Vehicle Equations of Motion

We consider the state of the tail-sitter 𝐱={𝐩,𝐯,𝐑,𝝎}𝐱𝐩𝐯𝐑𝝎\mathbf{x}=\left\{\mathbf{p},\mathbf{v},\mathbf{R},\boldsymbol{\omega}\right\}bold_x = { bold_p , bold_v , bold_R , bold_italic_ω }, where 𝐩3𝐩superscript3\mathbf{p}\in\mathbb{R}^{3}bold_p ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT and 𝐯3𝐯superscript3\mathbf{v}\in\mathbb{R}^{3}bold_v ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT are, respectively, the vehicle position and velocity in the world-fixed reference frame. 𝐑SO(3)𝐑𝑆𝑂3\mathbf{R}\in SO(3)bold_R ∈ italic_S italic_O ( 3 ) denotes the rotation from the inertial frame to the body frame, 𝝎3𝝎superscript3\boldsymbol{\omega}\in\mathbb{R}^{3}bold_italic_ω ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT is the angular velocity of the vehicle. The input for the tail-sitter at the aspects of force and torque is 𝐮={f,𝝉}𝐮𝑓𝝉\mathbf{u}=\left\{f,\boldsymbol{\tau}\right\}bold_u = { italic_f , bold_italic_τ }, where f𝑓fitalic_f and 𝝉3𝝉superscript3\boldsymbol{\tau}\in\mathbb{R}^{3}bold_italic_τ ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT denote the thrust and control moment vector produced by 4 propellers, respectively. Hence, The vehicle translational and rotational dynamics are given by:

𝐩˙=𝐯˙𝐩𝐯\displaystyle\dot{\mathbf{p}}=\mathbf{v}over˙ start_ARG bold_p end_ARG = bold_v (1a)
𝐯˙=𝐠+1m(f𝐑𝐞1+𝐑𝐟a)˙𝐯𝐠1𝑚𝑓subscript𝐑𝐞1subscript𝐑𝐟𝑎\displaystyle\dot{\mathbf{v}}=\mathbf{g}+\frac{1}{m}(f\mathbf{R}\mathbf{e}_{1}% +\mathbf{R}\mathbf{f}_{a})over˙ start_ARG bold_v end_ARG = bold_g + divide start_ARG 1 end_ARG start_ARG italic_m end_ARG ( italic_f bold_Re start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + bold_Rf start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ) (1b)
𝐑˙=𝐑𝝎˙𝐑𝐑𝝎\displaystyle\dot{\mathbf{R}}=\mathbf{R}\left\lfloor\boldsymbol{\omega}\right\rfloorover˙ start_ARG bold_R end_ARG = bold_R ⌊ bold_italic_ω ⌋ (1c)
𝐉𝝎˙=𝝉+𝐌a𝝎×𝐉𝝎𝐉˙𝝎𝝉subscript𝐌𝑎𝝎𝐉𝝎\displaystyle\mathbf{J}\dot{\boldsymbol{\omega}}=\boldsymbol{\tau}+\mathbf{M}_% {a}-\boldsymbol{\omega}\times\mathbf{J}\boldsymbol{\omega}bold_J over˙ start_ARG bold_italic_ω end_ARG = bold_italic_τ + bold_M start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT - bold_italic_ω × bold_J bold_italic_ω (1d)

where 𝐠=(0,0,9.8)T𝐠superscript009.8𝑇\mathbf{g}=(0,0,9.8)^{T}bold_g = ( 0 , 0 , 9.8 ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT is the gravitational acceleration, and m𝑚mitalic_m is the vehicle mass. 𝐞1=(1,0,0)Tsubscript𝐞1superscript100𝑇\mathbf{e}_{1}=(1,0,0)^{T}bold_e start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = ( 1 , 0 , 0 ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT, 𝐞2=(0,1,0)Tsubscript𝐞2superscript010𝑇\mathbf{e}_{2}=(0,1,0)^{T}bold_e start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = ( 0 , 1 , 0 ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT, 𝐞3=(0,0,1)Tsubscript𝐞3superscript001𝑇\mathbf{e}_{3}=(0,0,1)^{T}bold_e start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = ( 0 , 0 , 1 ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT, are unit vectors. 𝐟a3subscript𝐟𝑎superscript3\mathbf{f}_{a}\in\mathbb{R}^{3}bold_f start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT and 𝐌a3subscript𝐌𝑎superscript3\mathbf{M}_{a}\in\mathbb{R}^{3}bold_M start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT are the aerodynamics force and moment in the body frame, which will be introduced in Section 3.4. 𝐉3×3𝐉superscript33\mathbf{J}\in\mathbb{R}^{3\times 3}bold_J ∈ blackboard_R start_POSTSUPERSCRIPT 3 × 3 end_POSTSUPERSCRIPT is the inertia tensor matrix of the vehicle about the body frame with the center of gravity as the origin. The notation \left\lfloor\cdot\right\rfloor⌊ ⋅ ⌋ converts a 3-D vector into a skew-symmetric matrix.

It should be note that we assume that the thrust direction is aligned to the 𝐱bsubscript𝐱𝑏\mathbf{x}_{b}bold_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT. For cases where propellers have a fixed installation angle, it just needs to be transformed by a constant matrix.

3.4 Aerodynamics

As Lu [38] has done, we require the tail-sitter to perform coordinated flight. The coordinated flight is flight without side-slip, that is, as shown in Figure 2, β=0𝛽0\beta=0italic_β = 0. This type of flight always places the air speed experienced by the UAV in the 𝐱b𝐎b𝐳bsubscript𝐱𝑏subscript𝐎𝑏subscript𝐳𝑏\mathbf{x}_{b}\mathbf{O}_{b}\mathbf{z}_{b}bold_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT bold_O start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT bold_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT plane of the body frame, but does not limit the degrees of freedom of the tail-sitter in space. By applying centripetal force through roll to turn, the tail-sitter can still reach any position. Compared with uncoordinated flight, coordinated flight not only achieves the maximum aerodynamic efficiency, but also minimizes the potential adverse aerodynamic torques [50], thus greatly reducing the computational load of the trajectory generation algorithm.

Therefore, the aerodynamic force 𝐟asubscript𝐟𝑎\mathbf{f}_{a}bold_f start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT is modeled in the body frame as follows:

𝐟a=[cosα0sinα010sinα0cosα][𝒟𝒴]subscript𝐟𝑎delimited-[]𝛼0𝛼010𝛼0𝛼delimited-[]𝒟𝒴\displaystyle\mathbf{f}_{a}=\left[\begin{array}[]{ccc}-\cos\alpha&0&\sin\alpha% \\ 0&1&0\\ -\sin\alpha&0&-\cos\alpha\end{array}\right]\left[\begin{array}[]{l}\mathcal{D}% \\ \mathcal{Y}\\ \mathcal{L}\end{array}\right]bold_f start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT = [ start_ARRAY start_ROW start_CELL - roman_cos italic_α end_CELL start_CELL 0 end_CELL start_CELL roman_sin italic_α end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 1 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL - roman_sin italic_α end_CELL start_CELL 0 end_CELL start_CELL - roman_cos italic_α end_CELL end_ROW end_ARRAY ] [ start_ARRAY start_ROW start_CELL caligraphic_D end_CELL end_ROW start_ROW start_CELL caligraphic_Y end_CELL end_ROW start_ROW start_CELL caligraphic_L end_CELL end_ROW end_ARRAY ] (8)

where α𝛼\alphaitalic_α is the angle of attack. \mathcal{L}caligraphic_L, 𝒟𝒟\mathcal{D}caligraphic_D, 𝒴𝒴\mathcal{Y}caligraphic_Y are respectively the lift, drag, and side force produced by fuselage and wings. The aerodynamic moment vector 𝐌asubscript𝐌𝑎\mathbf{M}_{a}bold_M start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT consists of rolling L𝐿Litalic_L, pitching M𝑀Mitalic_M, and yawing N𝑁Nitalic_N moment along the body axis 𝐱bsubscript𝐱𝑏\mathbf{x}_{b}bold_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT, 𝐲bsubscript𝐲𝑏\mathbf{y}_{b}bold_y start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT, 𝐳bsubscript𝐳𝑏\mathbf{z}_{b}bold_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT. :

𝐌a=(L,M,N)Tsubscript𝐌𝑎superscript𝐿𝑀𝑁𝑇\displaystyle\mathbf{M}_{a}=(L,M,N)^{T}bold_M start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT = ( italic_L , italic_M , italic_N ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT (9)

Referring to Etkin and Reid [51], the aerodynamic forces and moments are further parameterized as:

=12ρV2SCL𝒟=12ρV2SCD𝒴=12ρV2SCYL=12ρV2Sc¯ClM=12ρV2Sc¯CmN=12ρV2Sc¯Cn12𝜌superscript𝑉2𝑆subscript𝐶𝐿𝒟12𝜌superscript𝑉2𝑆subscript𝐶𝐷𝒴12𝜌superscript𝑉2𝑆subscript𝐶𝑌𝐿12𝜌superscript𝑉2𝑆¯𝑐subscript𝐶𝑙𝑀12𝜌superscript𝑉2𝑆¯𝑐subscript𝐶𝑚𝑁12𝜌superscript𝑉2𝑆¯𝑐subscript𝐶𝑛\begin{split}\mathcal{L}&=\frac{1}{2}\rho V^{2}SC_{L}\\ \mathcal{D}&=\frac{1}{2}\rho V^{2}SC_{D}\\ \mathcal{Y}&=\frac{1}{2}\rho V^{2}SC_{Y}\\ L&=\frac{1}{2}\rho V^{2}S\bar{c}C_{l}\\ M&=\frac{1}{2}\rho V^{2}S\bar{c}C_{m}\\ N&=\frac{1}{2}\rho V^{2}S\bar{c}C_{n}\end{split}start_ROW start_CELL caligraphic_L end_CELL start_CELL = divide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_ρ italic_V start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_S italic_C start_POSTSUBSCRIPT italic_L end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL caligraphic_D end_CELL start_CELL = divide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_ρ italic_V start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_S italic_C start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL caligraphic_Y end_CELL start_CELL = divide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_ρ italic_V start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_S italic_C start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_L end_CELL start_CELL = divide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_ρ italic_V start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_S over¯ start_ARG italic_c end_ARG italic_C start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_M end_CELL start_CELL = divide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_ρ italic_V start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_S over¯ start_ARG italic_c end_ARG italic_C start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_N end_CELL start_CELL = divide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_ρ italic_V start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_S over¯ start_ARG italic_c end_ARG italic_C start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_CELL end_ROW (10)

where V=𝐯a𝑉normsubscript𝐯𝑎V=||\mathbf{v}_{a}||italic_V = | | bold_v start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT | | is the norm of the air speed, ρ𝜌\rhoitalic_ρ is the density of the air, S𝑆Sitalic_S is the reference area of the wing, c¯¯𝑐\bar{c}over¯ start_ARG italic_c end_ARG is the mean aerodynamic chord. Note that 𝐯a=𝐯𝐰subscript𝐯𝑎𝐯𝐰\mathbf{v}_{a}=\mathbf{v}-\mathbf{w}bold_v start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT = bold_v - bold_w, where 𝐰𝐰\mathbf{w}bold_w is wind velocity. CLsubscript𝐶𝐿C_{L}italic_C start_POSTSUBSCRIPT italic_L end_POSTSUBSCRIPT, CDsubscript𝐶𝐷C_{D}italic_C start_POSTSUBSCRIPT italic_D end_POSTSUBSCRIPT, and CYsubscript𝐶𝑌C_{Y}italic_C start_POSTSUBSCRIPT italic_Y end_POSTSUBSCRIPT are the lift coefficient, drag coefficient, and side force coefficients of the vehicle, respectively, while Clsubscript𝐶𝑙C_{l}italic_C start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT, Cmsubscript𝐶𝑚C_{m}italic_C start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT, and Cnsubscript𝐶𝑛C_{n}italic_C start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT are the rolling, pitching, and yawing moment coefficients, respectively. They are each a set of dimensionless numbers, the values of which are solely related to the aircraft’s shape and attitude.

The real vehicle mentioned in Section 3.1 was scanned and reconstructed in three dimensions, and the resulting geometric model was input into Ansys Fluent to calculate the aerodynamic coefficients of the vehicle at different angles of attack. The air speed was set to 8m/s8𝑚𝑠8m/s8 italic_m / italic_s, the y-plus value was set to 1111, the boundary layer was set to 5555 layers, the boundary layer growth rate was set to 1.151.151.151.15, the turbulence model we selected was the commonly used Spalart-Allmaras model for aircraft, and the pressure-velocity coupling algorithm we selected was SIMPLEC. The experiment found that when the number of grids reached 4.574.574.574.57 million, there was no significant change in the results. Figure 3 shows the air speed over the surface of the aircraft when the angle of attack is 10101010.

Refer to caption
Figure 3: The air speed over the surface of the tail-sitter when the angle of attack is 10

Due to the absence of side-slip and the fact that the aircraft is symmetrical about plane 𝐱b𝐎b𝐳bsubscript𝐱𝑏subscript𝐎𝑏subscript𝐳𝑏\mathbf{x}_{b}\mathbf{O}_{b}\mathbf{z}_{b}bold_x start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT bold_O start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT bold_z start_POSTSUBSCRIPT italic_b end_POSTSUBSCRIPT, the actual aerodynamic forces acting on the vehicle are only lift, drag, and pitching moment. We measure the angle of attack every 10 degrees and fit the results obtained with a carefully selected polynomial function. The final results are as shown in the Figure 4.

Refer to caption
((a))
Refer to caption
((b))
Refer to caption
((c))
Figure 4: The results obtained from Fluent

It should be noted that we assume the aerodynamic forces are not affected by the propeller slipstream, which is generally true for quad-rotor tail-sitters, as the propellers are mounted on rack on either side of the wing, far away from the fuselage.

4 Multistage trajectory optimization

4.1 Problem Formulation

We translate the trajectory planning problem as an multi-objective optimization problem. We require the trajectory to minimize snap, i.e., the fourth derivative of position, and total time, while satisfying the maximum speed constraint of the tail-sitter and passing through intermediate waypoints. If we assume that there are M1𝑀1M-1italic_M - 1 intermediate waypoints, so it can be known that the total trajectory is divided into M𝑀Mitalic_M segments. We use Tisubscript𝑇𝑖T_{i}italic_T start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT to represent the duration of the i𝑖iitalic_ith piece of the total trajectory.

The multi-objective optimization problem is formulated as follows:

min01MTi𝐩(4)(t)T𝐩(4)(t)𝑑tsuperscriptsubscript0superscriptsubscript1𝑀subscript𝑇𝑖superscript𝐩4superscript𝑡𝑇superscript𝐩4𝑡differential-d𝑡\displaystyle\min\int_{0}^{\sum_{1}^{M}T_{i}}\mathbf{p}^{(4)}(t)^{T}\mathbf{p}% ^{(4)}(t)dtroman_min ∫ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∑ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT italic_T start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUPERSCRIPT bold_p start_POSTSUPERSCRIPT ( 4 ) end_POSTSUPERSCRIPT ( italic_t ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT bold_p start_POSTSUPERSCRIPT ( 4 ) end_POSTSUPERSCRIPT ( italic_t ) italic_d italic_t (11a)
min1MTisuperscriptsubscript1𝑀subscript𝑇𝑖\displaystyle\min\sum_{1}^{M}T_{i}roman_min ∑ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT italic_T start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT (11b)
s.t.formulae-sequencest\displaystyle\mathrm{s.t.}\ roman_s . roman_t . t[0,1MTi]𝑡0superscriptsubscript1𝑀subscript𝑇𝑖\displaystyle t\in[0,\sum_{1}^{M}T_{i}]italic_t ∈ [ 0 , ∑ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT italic_T start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ] (11c)
𝐯(t)<Vmaxnorm𝐯𝑡subscript𝑉𝑚𝑎𝑥\displaystyle\left\|\mathbf{v}(t)\right\|<V_{max}∥ bold_v ( italic_t ) ∥ < italic_V start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT (11d)
𝐩[3](0)=𝐬0,𝐩[3](1MTi)=𝐬fformulae-sequencesuperscript𝐩delimited-[]30subscript𝐬0superscript𝐩delimited-[]3superscriptsubscript1𝑀subscript𝑇𝑖subscript𝐬𝑓\displaystyle\mathbf{p}^{[3]}(0)=\mathbf{s}_{0},\ \mathbf{p}^{[3]}(\sum_{1}^{M% }T_{i})=\mathbf{s}_{f}bold_p start_POSTSUPERSCRIPT [ 3 ] end_POSTSUPERSCRIPT ( 0 ) = bold_s start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , bold_p start_POSTSUPERSCRIPT [ 3 ] end_POSTSUPERSCRIPT ( ∑ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT italic_T start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) = bold_s start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT (11e)
𝐩(Ti)=𝐬i, 1i<Mformulae-sequence𝐩subscript𝑇𝑖subscript𝐬𝑖1𝑖𝑀\displaystyle\mathbf{p}(T_{i})=\mathbf{s}_{i},\ 1\leq i<Mbold_p ( italic_T start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) = bold_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , 1 ≤ italic_i < italic_M (11f)
Ti>0, 1i<Mformulae-sequencesubscript𝑇𝑖01𝑖𝑀\displaystyle T_{i}>0,\ 1\leq i<Mitalic_T start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT > 0 , 1 ≤ italic_i < italic_M (11g)
𝐩˙=𝐯˙𝐩𝐯\displaystyle\dot{\mathbf{p}}=\mathbf{v}over˙ start_ARG bold_p end_ARG = bold_v (11h)
𝐯˙=𝐠+aT𝐑𝐞1+1m𝐑𝐟a˙𝐯𝐠subscript𝑎𝑇subscript𝐑𝐞11𝑚subscript𝐑𝐟𝑎\displaystyle\dot{\mathbf{v}}=\mathbf{g}+a_{T}\mathbf{R}\mathbf{e}_{1}+\frac{1% }{m}\mathbf{R}\mathbf{f}_{a}over˙ start_ARG bold_v end_ARG = bold_g + italic_a start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT bold_Re start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + divide start_ARG 1 end_ARG start_ARG italic_m end_ARG bold_Rf start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT (11i)
𝐑˙=𝐑𝝎˙𝐑𝐑𝝎\displaystyle\dot{\mathbf{R}}=\mathbf{R}\left\lfloor\boldsymbol{\omega}\right\rfloorover˙ start_ARG bold_R end_ARG = bold_R ⌊ bold_italic_ω ⌋ (11j)
𝐉𝝎˙=𝝉+𝐌a𝝎×𝐉𝝎𝐉˙𝝎𝝉subscript𝐌𝑎𝝎𝐉𝝎\displaystyle\mathbf{J}\dot{\boldsymbol{\omega}}=\boldsymbol{\tau}+\mathbf{M}_% {a}-\boldsymbol{\omega}\times\mathbf{J}\boldsymbol{\omega}bold_J over˙ start_ARG bold_italic_ω end_ARG = bold_italic_τ + bold_M start_POSTSUBSCRIPT italic_a end_POSTSUBSCRIPT - bold_italic_ω × bold_J bold_italic_ω (11k)

where 𝐩(x)(t)superscript𝐩𝑥𝑡\mathbf{p}^{(x)}(t)bold_p start_POSTSUPERSCRIPT ( italic_x ) end_POSTSUPERSCRIPT ( italic_t ) means the x𝑥xitalic_x-th derivative of position, 𝐬0subscript𝐬0\mathbf{s}_{0}bold_s start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, 𝐬fsubscript𝐬𝑓\mathbf{s}_{f}bold_s start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, and𝐬isubscript𝐬𝑖\mathbf{s}_{i}bold_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT are all user-defined, 𝐩[x](x+1)×3superscript𝐩delimited-[]𝑥superscript𝑥13\mathbf{p}^{[x]}\in\mathbb{R}^{(x+1)\times 3}bold_p start_POSTSUPERSCRIPT [ italic_x ] end_POSTSUPERSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT ( italic_x + 1 ) × 3 end_POSTSUPERSCRIPT defined by

𝐩[x]=(𝐩,𝐩˙,,𝐩(x))Tsuperscript𝐩delimited-[]𝑥superscript𝐩˙𝐩superscript𝐩𝑥𝑇\displaystyle\mathbf{p}^{[x]}=(\mathbf{p},\dot{\mathbf{p}},\ldots,\mathbf{p}^{% (x)})^{T}bold_p start_POSTSUPERSCRIPT [ italic_x ] end_POSTSUPERSCRIPT = ( bold_p , over˙ start_ARG bold_p end_ARG , … , bold_p start_POSTSUPERSCRIPT ( italic_x ) end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT (12)

Let’s briefly explain equation (11). First, it is clear that equations (11h)-(11k) are equivalent to equations (1a)-(1d), which means that our trajectory must satisfy the dynamics constraints of the tail-sitter. Second, in practice, minimizing snap roughly corresponds to reducing the required control moment and thus increasing the likelihood that the control input limits are satisfied and the trajectory is feasible. This is why we choose to minimize the integral of snap. Finally, from equation (10), it can be known that the aerodynamic forces produced by the tail-sitter’s fuselage and wings are highly related to speed. If there is no constraint on the tail-sitter’s speed, the generated trajectory could cause the tail-sitter to have an unacceptable angle of attack, leading to the tail-sitter’s inputs being unexecutable or even causing the tail-sitter to crash directly. This is why we must keep the tail-sitter’s speed below a certain value.

4.2 Differential Flatness

We eliminate the dynamics constraints (11h)-(11k) by differential flatness.

Consider the following type of the dynamical system:

𝐱˙=f(𝐱)+g(𝐱)𝐮˙𝐱𝑓𝐱𝑔𝐱𝐮\displaystyle\dot{\mathbf{x}}=f(\mathbf{x})+g(\mathbf{x})\mathbf{u}over˙ start_ARG bold_x end_ARG = italic_f ( bold_x ) + italic_g ( bold_x ) bold_u (13)

with state 𝐱n𝐱superscript𝑛\mathbf{x}\in\mathbb{R}^{n}bold_x ∈ blackboard_R start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT, and input 𝐮m𝐮superscript𝑚\mathbf{u}\in\mathbb{R}^{m}bold_u ∈ blackboard_R start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT. The map g𝑔gitalic_g is assumed to have rank m𝑚mitalic_m. If there exists a flat output 𝐲𝐲\mathbf{y}bold_y such that 𝐱𝐱\mathbf{x}bold_x and 𝐮𝐮\mathbf{u}bold_u can be represented by finite order derivatives of 𝐲m𝐲superscript𝑚\mathbf{y}\in\mathbb{R}^{m}bold_y ∈ blackboard_R start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT:

𝐱˙=𝔄(𝐲,𝐲˙,,𝐲(k))˙𝐱𝔄𝐲˙𝐲superscript𝐲𝑘\displaystyle\dot{\mathbf{x}}=\mathfrak{A}(\mathbf{y},\dot{\mathbf{y}},\ldots,% \mathbf{y}^{(k)})over˙ start_ARG bold_x end_ARG = fraktur_A ( bold_y , over˙ start_ARG bold_y end_ARG , … , bold_y start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT ) (14)
𝐮˙=𝔅(𝐲,𝐲˙,,𝐲(j))˙𝐮𝔅𝐲˙𝐲superscript𝐲𝑗\displaystyle\dot{\mathbf{u}}=\mathfrak{B}(\mathbf{y},\dot{\mathbf{y}},\ldots,% \mathbf{y}^{(j)})over˙ start_ARG bold_u end_ARG = fraktur_B ( bold_y , over˙ start_ARG bold_y end_ARG , … , bold_y start_POSTSUPERSCRIPT ( italic_j ) end_POSTSUPERSCRIPT ) (15)

then the system is said to be differentially flat [30]. 𝔄𝔄\mathfrak{A}fraktur_A and 𝔅𝔅\mathfrak{B}fraktur_B each represent a set of differential flat transformations, determined by f𝑓fitalic_f and g𝑔gitalic_g. k𝑘kitalic_k and j𝑗jitalic_j are both natural numbers.

Fortunately, for dynamical systems like those described in equation (1), and states and inputs defined as in equation (2), their differential flat transformations have been thoroughly proven by Lu [38]. In the case of coordinated flight of tail-sitters, the flat output 𝐲𝐲\mathbf{y}bold_y is the position of the vehicle. Therefore, trajectory optimization can be carried out in the flat output space 𝐲𝐲\mathbf{y}bold_y, and the continuity order in the corresponding flat output space can ensure that the dynamical differential constraints are precisely satisfied.

4.3 Minimum Snap Trajectory Generation

We define time vector 𝐓𝐓\mathbf{T}bold_T as

𝐓=(T1,T2,,TM)T𝐓superscriptsubscript𝑇1subscript𝑇2subscript𝑇𝑀𝑇\displaystyle\mathbf{T}=(T_{1},T_{2},\ldots,T_{M})^{T}bold_T = ( italic_T start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_T start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , … , italic_T start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT (16)

Equation (11a) is a linear quadratic optimization problem, which ensures the generation of the smoothest possible trajectory from determined temporal parameters 𝐓𝐓\mathbf{T}bold_T and spacial parameters 𝐩isubscript𝐩𝑖\mathbf{p}_{i}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT. Although linear quadratic optimization problems have been widely studied and applied, previous works typically confines the problem to a single stage, considering only one set of boundary conditions and trajectory generation problems under various cost functions [20, 52]. Wang [47] proved that for a multistage snap minimization problem, the position of the vehicle can be represented by a set of seventh-degree polynomials, without the need for computation of the cost function (11a) itself or its gradient.Specifically, for the trajectory optimization problem in the following form:

min01MTi𝐩(4)(t)T𝐩(4)(t)𝑑tsuperscriptsubscript0superscriptsubscript1𝑀subscript𝑇𝑖superscript𝐩4superscript𝑡𝑇superscript𝐩4𝑡differential-d𝑡\displaystyle\min\int_{0}^{\sum_{1}^{M}T_{i}}\mathbf{p}^{(4)}(t)^{T}\mathbf{p}% ^{(4)}(t)dtroman_min ∫ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∑ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT italic_T start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUPERSCRIPT bold_p start_POSTSUPERSCRIPT ( 4 ) end_POSTSUPERSCRIPT ( italic_t ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT bold_p start_POSTSUPERSCRIPT ( 4 ) end_POSTSUPERSCRIPT ( italic_t ) italic_d italic_t (17a)
s.t.formulae-sequencest\displaystyle\mathrm{s.t.}\ roman_s . roman_t . t[0,1MTi]𝑡0superscriptsubscript1𝑀subscript𝑇𝑖\displaystyle t\in[0,\sum_{1}^{M}T_{i}]italic_t ∈ [ 0 , ∑ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT italic_T start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ] (17b)
𝐩[3](0)=𝐬0,𝐩[3](1MTi)=𝐬fformulae-sequencesuperscript𝐩delimited-[]30subscript𝐬0superscript𝐩delimited-[]3superscriptsubscript1𝑀subscript𝑇𝑖subscript𝐬𝑓\displaystyle\mathbf{p}^{[3]}(0)=\mathbf{s}_{0},\ \mathbf{p}^{[3]}(\sum_{1}^{M% }T_{i})=\mathbf{s}_{f}bold_p start_POSTSUPERSCRIPT [ 3 ] end_POSTSUPERSCRIPT ( 0 ) = bold_s start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , bold_p start_POSTSUPERSCRIPT [ 3 ] end_POSTSUPERSCRIPT ( ∑ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT italic_T start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) = bold_s start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT (17c)
𝐩(Ti)=𝐬i, 1i<Mformulae-sequence𝐩subscript𝑇𝑖subscript𝐬𝑖1𝑖𝑀\displaystyle\mathbf{p}(T_{i})=\mathbf{s}_{i},\ 1\leq i<Mbold_p ( italic_T start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) = bold_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , 1 ≤ italic_i < italic_M (17d)
Ti>0, 1i<Mformulae-sequencesubscript𝑇𝑖01𝑖𝑀\displaystyle T_{i}>0,\ 1\leq i<Mitalic_T start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT > 0 , 1 ≤ italic_i < italic_M (17e)

and if the initial and final conditions, i.e., 𝐬0subscript𝐬0\mathbf{s}_{0}bold_s start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT and 𝐬fsubscript𝐬𝑓\mathbf{s}_{f}bold_s start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, and the intermediate waypoints, i.e., 𝐬isubscript𝐬𝑖\mathbf{s}_{i}bold_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, are given, and the time parameter 𝐓𝐓\mathbf{T}bold_T of the trajectory is also specified, then the entire trajectory exists and can be uniquely determined. Moreover, the trajectory is composed of M𝑀Mitalic_M seventh-degree polynomials.

Therefore, the expression for the i𝑖iitalic_ith segment of the trajectory is denoted by:

𝐩i(t)=𝐜iTρ(t),t[0,Ti]formulae-sequencesubscript𝐩𝑖𝑡superscriptsubscript𝐜𝑖𝑇𝜌𝑡𝑡0subscript𝑇𝑖\displaystyle\mathbf{p}_{i}(t)=\mathbf{c}_{i}^{T}\rho(t),t\in[0,T_{i}]bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_t ) = bold_c start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT italic_ρ ( italic_t ) , italic_t ∈ [ 0 , italic_T start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ] (18)

where 𝐜i8×3subscript𝐜𝑖superscript83\mathbf{c}_{i}\in\mathbb{R}^{8\times 3}bold_c start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT 8 × 3 end_POSTSUPERSCRIPT are the coefficients of seventh-degree polynomials, ρ(x)=(1,x,x2,,x7)T𝜌𝑥superscript1𝑥superscript𝑥2superscript𝑥7𝑇\rho(x)=(1,x,x^{2},\ldots,x^{7})^{T}italic_ρ ( italic_x ) = ( 1 , italic_x , italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , … , italic_x start_POSTSUPERSCRIPT 7 end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT. We use relative time for each segment of the trajectory, i.e., the starting time for each segment is 0. The state of the vehicle at time Tisubscript𝑇𝑖T_{i}italic_T start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT is identical to that at the beginning of the next segment. Hence, the trajectory could be described by a coefficient matrix 𝐜8M×3𝐜superscript8𝑀3\mathbf{c}\in\mathbb{R}^{8M\times 3}bold_c ∈ blackboard_R start_POSTSUPERSCRIPT 8 italic_M × 3 end_POSTSUPERSCRIPT defined by:

𝐜=(𝐜1,𝐜2,,𝐜M)T𝐜superscriptsubscript𝐜1subscript𝐜2subscript𝐜𝑀𝑇\displaystyle\mathbf{c}=(\mathbf{c}_{1},\mathbf{c}_{2},\ldots,\mathbf{c}_{M})^% {T}bold_c = ( bold_c start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , bold_c start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , … , bold_c start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT (19)

Define 𝐇0subscript𝐇0\mathbf{H}_{0}bold_H start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, 𝐆M4×8subscript𝐆𝑀superscript48\mathbf{G}_{M}\in\mathbb{R}^{4\times 8}bold_G start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT 4 × 8 end_POSTSUPERSCRIPT as:

𝐇0=(ρ(0),ρ˙(0),,ρ(3)(0))Tsubscript𝐇0superscript𝜌0˙𝜌0superscript𝜌30𝑇\displaystyle\mathbf{H}_{0}=(\rho(0),\dot{\rho}(0),\ldots,\rho^{(3)}(0))^{T}bold_H start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = ( italic_ρ ( 0 ) , over˙ start_ARG italic_ρ end_ARG ( 0 ) , … , italic_ρ start_POSTSUPERSCRIPT ( 3 ) end_POSTSUPERSCRIPT ( 0 ) ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT (20)
𝐆M=(ρ(TM),ρ˙(TM),,ρ(3)(TM))Tsubscript𝐆𝑀superscript𝜌subscript𝑇𝑀˙𝜌subscript𝑇𝑀superscript𝜌3subscript𝑇𝑀𝑇\displaystyle\mathbf{G}_{M}=(\rho(T_{M}),\dot{\rho}(T_{M}),\ldots,\rho^{(3)}(T% _{M}))^{T}bold_G start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT = ( italic_ρ ( italic_T start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT ) , over˙ start_ARG italic_ρ end_ARG ( italic_T start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT ) , … , italic_ρ start_POSTSUPERSCRIPT ( 3 ) end_POSTSUPERSCRIPT ( italic_T start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT ) ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT (21)

Define 𝐇isubscript𝐇𝑖\mathbf{H}_{i}bold_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, 𝐆i8×8subscript𝐆𝑖superscript88\mathbf{G}_{i}\in\mathbb{R}^{8\times 8}bold_G start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT 8 × 8 end_POSTSUPERSCRIPT as:

𝐇i=(𝟎8×1,ρ(0),ρ˙(0),,ρ(6)(0))Tsubscript𝐇𝑖superscriptsuperscript081𝜌0˙𝜌0superscript𝜌60𝑇\displaystyle\mathbf{H}_{i}=(\mathbf{0}^{8\times 1},-\rho(0),-\dot{\rho}(0),% \ldots,-\rho^{(6)}(0))^{T}bold_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = ( bold_0 start_POSTSUPERSCRIPT 8 × 1 end_POSTSUPERSCRIPT , - italic_ρ ( 0 ) , - over˙ start_ARG italic_ρ end_ARG ( 0 ) , … , - italic_ρ start_POSTSUPERSCRIPT ( 6 ) end_POSTSUPERSCRIPT ( 0 ) ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT (22)
𝐆i=(ρ(Ti),ρ(Ti),ρ˙(TM),,ρ(6)(TM))Tsubscript𝐆𝑖superscript𝜌subscript𝑇𝑖𝜌subscript𝑇𝑖˙𝜌subscript𝑇𝑀superscript𝜌6subscript𝑇𝑀𝑇\displaystyle\mathbf{G}_{i}=(\rho(T_{i}),\rho(T_{i}),\dot{\rho}(T_{M}),\ldots,% \rho^{(6)}(T_{M}))^{T}bold_G start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = ( italic_ρ ( italic_T start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) , italic_ρ ( italic_T start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) , over˙ start_ARG italic_ρ end_ARG ( italic_T start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT ) , … , italic_ρ start_POSTSUPERSCRIPT ( 6 ) end_POSTSUPERSCRIPT ( italic_T start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT ) ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT (23)

In order to obtain the matrix 𝐜𝐜\mathbf{c}bold_c, we establish a linear system:

𝐀𝐜=𝐛𝐀𝐜𝐛\displaystyle\mathbf{A}\mathbf{c}=\mathbf{b}bold_Ac = bold_b (24)

where 𝐀8M×8M𝐀superscript8𝑀8𝑀\mathbf{A}\in\mathbb{R}^{8M\times 8M}bold_A ∈ blackboard_R start_POSTSUPERSCRIPT 8 italic_M × 8 italic_M end_POSTSUPERSCRIPT and 𝐛8M×3𝐛superscript8𝑀3\mathbf{b}\in\mathbb{R}^{8M\times 3}bold_b ∈ blackboard_R start_POSTSUPERSCRIPT 8 italic_M × 3 end_POSTSUPERSCRIPT are:

𝐀=(𝐇0𝟎𝟎𝟎𝐆1𝐇1𝟎𝟎𝟎𝐆2𝐇2𝟎𝟎𝟎𝟎𝐇M1𝟎𝟎𝟎𝐆M)𝐀matrixmissing-subexpressionsubscript𝐇0000missing-subexpressionsubscript𝐆1subscript𝐇100missing-subexpression0subscript𝐆2subscript𝐇20missing-subexpressionmissing-subexpression000subscript𝐇𝑀1missing-subexpression000subscript𝐆𝑀\displaystyle\mathbf{A}=\begin{pmatrix}&\mathbf{H}_{0}&\mathbf{0}&\mathbf{0}&% \ldots&\mathbf{0}\\ &\mathbf{G}_{1}&\mathbf{H}_{1}&\mathbf{0}&\ldots&\mathbf{0}\\ &\mathbf{0}&\mathbf{G}_{2}&\mathbf{H}_{2}&\ldots&\mathbf{0}\\ &\vdots&\vdots&\vdots&\ddots&\vdots\\ &\mathbf{0}&\mathbf{0}&\mathbf{0}&\ldots&\mathbf{H}_{M-1}\\ &\mathbf{0}&\mathbf{0}&\mathbf{0}&\ldots&\mathbf{G}_{M}\end{pmatrix}bold_A = ( start_ARG start_ROW start_CELL end_CELL start_CELL bold_H start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL start_CELL bold_0 end_CELL start_CELL bold_0 end_CELL start_CELL … end_CELL start_CELL bold_0 end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL bold_G start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL bold_H start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL bold_0 end_CELL start_CELL … end_CELL start_CELL bold_0 end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL bold_0 end_CELL start_CELL bold_G start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL bold_H start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL bold_0 end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL bold_0 end_CELL start_CELL bold_0 end_CELL start_CELL bold_0 end_CELL start_CELL … end_CELL start_CELL bold_H start_POSTSUBSCRIPT italic_M - 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL bold_0 end_CELL start_CELL bold_0 end_CELL start_CELL bold_0 end_CELL start_CELL … end_CELL start_CELL bold_G start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ) (25)
𝐛=(𝐩0[3]T,𝐩1,𝟎3×7,,𝐩M1,𝟎3×7,𝐩f[3]T)T𝐛superscriptsuperscriptsuperscriptsubscript𝐩0delimited-[]3𝑇subscript𝐩1superscript037subscript𝐩𝑀1superscript037superscriptsuperscriptsubscript𝐩𝑓delimited-[]3𝑇𝑇\displaystyle\mathbf{b}=({\mathbf{p}_{0}^{[3]}}^{T},\mathbf{p}_{1},\mathbf{0}^% {3\times 7},\ldots,\mathbf{p}_{M-1},\mathbf{0}^{3\times 7},{\mathbf{p}_{f}^{[3% ]}}^{T})^{T}bold_b = ( bold_p start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT [ 3 ] end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT , bold_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , bold_0 start_POSTSUPERSCRIPT 3 × 7 end_POSTSUPERSCRIPT , … , bold_p start_POSTSUBSCRIPT italic_M - 1 end_POSTSUBSCRIPT , bold_0 start_POSTSUPERSCRIPT 3 × 7 end_POSTSUPERSCRIPT , bold_p start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT start_POSTSUPERSCRIPT [ 3 ] end_POSTSUPERSCRIPT start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT (26)

The matrix 𝐀𝐀\mathbf{A}bold_A which must be nonsingularity can be considered as a function of the time vector 𝐓𝐓\mathbf{T}bold_T, and the matrix 𝐛𝐛\mathbf{b}bold_b can be viewed as a function of the spatial parameter 𝐩𝐩\mathbf{p}bold_p. By solving equation (24), a minimum snap trajectory can be obtained.

Figure 5 illustrates the minimum snap trajectories under different temporal and spatial parameters. Compared to the trajectory shown in Figure 5(a), Figure 5(b) shows the result of changing the duration T4subscript𝑇4T_{4}italic_T start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT between waypoints 𝐩3subscript𝐩3\mathbf{p}_{3}bold_p start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT and 𝐩4subscript𝐩4\mathbf{p}_{4}bold_p start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT while kee** the waypoint positions constant. Figure 5(c) shows the result of altering the position of 𝐩3subscript𝐩3\mathbf{p}_{3}bold_p start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT while kee** the time used between waypoints constant. It can be observed that the speed of the vehicle is highly correlated with the spatial parameters 𝐩𝐩\mathbf{p}bold_p and the time parameters 𝐓𝐓\mathbf{T}bold_T. Even a slight change in any element of these parameters not only affects the speed of the vehicle in the global trajectory but also causes a change in the shape of the entire trajectory.

Refer to caption
((a))
Refer to caption
((b))
Refer to caption
((c))
Figure 5: minimum snap trajectory with 4 intermediate waypoints

4.4 Trajectory Optimization

4.4.1 Penalty Function of Continuous-time Constraints

The maximum speed constraint, i.e., equation (11d), is a soft constraint, as we allow minor exceedance over the maximum speed constraint we set on the trajectory. Setting the maximum speed constraint slightly lower than the actual maximum allowable speed is necessary in some cases. This point will be elaborated in detail in Section 4.4.3.

When the constraint have clear physical meanings and the requirements for precision are not high, the penalty functional method is a simple and effective method. Furthermore, penalty methods have no requirement on a feasible initial guess, which is nontrivial to construct.

Equation (11d) requires that the inequality is satisfied at any moment on the trajectory. However, since the trajectory position is composed of M𝑀Mitalic_M seventh-degree polynomials, this means that in order to satisfy the maximum speed constraint, we need to find the maximum value of M𝑀Mitalic_M different sixth-degree polynomials on different convex sets M𝑀Mitalic_M times, which is extremely challenging. We ensure the satisfaction of the continuous-time constraints at a certain resolution by adopting temporal discretization in the time domain. We define:

P(||𝐯||)=i=1Mj=1Nmax[VijVmax,0]3\displaystyle P(||\mathbf{v}||)=\sum_{i=1}^{M}\sum_{j=1}^{N}\max[V_{ij}-V_{max% },0]^{3}italic_P ( | | bold_v | | ) = ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT ∑ start_POSTSUBSCRIPT italic_j = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_N end_POSTSUPERSCRIPT roman_max [ italic_V start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT - italic_V start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT , 0 ] start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT (27)

where N𝑁Nitalic_N controls the resolution of trajectory, Vijsubscript𝑉𝑖𝑗V_{ij}italic_V start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT represents the speed at a sampled point on the trajectory. There are two aspects worth noting. First, the larger the value of N𝑁Nitalic_N, the less likely it is for the trajectory to have a speed exceeding the constraint at any given moment. Second, the cubic form of the function forms a differentiable strictly convex penalty.

4.4.2 Temporal Constraint Elimination

It is evident that 𝐓>0M𝐓superscriptsubscriptabsent0𝑀\mathbf{T}\in\mathbb{R}_{>0}^{M}bold_T ∈ blackboard_R start_POSTSUBSCRIPT > 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT, and equation (11g) is a hard constraint. This restrict the domain of 𝐓𝐓\mathbf{T}bold_T to simple manifolds, and optimization on the manifold frequently requires retractions. We satisfy this hard constraint by defining:

𝐓=e𝐱𝐓superscript𝑒𝐱\displaystyle\mathbf{T}=e^{\mathbf{x}}bold_T = italic_e start_POSTSUPERSCRIPT bold_x end_POSTSUPERSCRIPT (28)

where 𝐱=(x1,x2,,xM)𝐱subscript𝑥1subscript𝑥2subscript𝑥𝑀\mathbf{x}=(x_{1},x_{2},\ldots,x_{M})bold_x = ( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , … , italic_x start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT ). As a result, we can directly optimize the unconstrained surrogate variables 𝐱𝐱\mathbf{x}bold_x in Euclidean space.

It is worth noting that equation (11b) is the sum of linear functions with respect to each segment of trajectory time Tisubscript𝑇𝑖T_{i}italic_T start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, and is thus a convex function. The function f(x)=ex𝑓𝑥superscript𝑒𝑥f(x)=e^{x}italic_f ( italic_x ) = italic_e start_POSTSUPERSCRIPT italic_x end_POSTSUPERSCRIPT is also a convex function over its domain xR𝑥𝑅x\in Ritalic_x ∈ italic_R. Since the sum of convex functions is convex, setting 𝐓=e𝐱𝐓superscript𝑒𝐱\mathbf{T}=e^{\mathbf{x}}bold_T = italic_e start_POSTSUPERSCRIPT bold_x end_POSTSUPERSCRIPT does not alter the convexity of equation (11b).

4.4.3 Results

In summary, we propose to solve a lightweight relaxed optimization via unconstrained LP. The relaxation to (11) is defined as

min1Mexi+wP(𝐯)superscriptsubscript1𝑀superscript𝑒subscript𝑥𝑖𝑤𝑃norm𝐯\displaystyle\min\sum_{1}^{M}e^{x_{i}}+wP(||\mathbf{v}||)roman_min ∑ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT italic_e start_POSTSUPERSCRIPT italic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUPERSCRIPT + italic_w italic_P ( | | bold_v | | ) (29)

where w>0𝑤subscriptabsent0w\in\mathbb{R}_{>0}italic_w ∈ blackboard_R start_POSTSUBSCRIPT > 0 end_POSTSUBSCRIPT is a weight number which should be a large constant. As can be seen, the original problem (11) has been transformed from a multi-objective optimization problem into an unconstrained optimal problem (29). According to Figure 5, given the waypoints, the speed of the vehicle is affected by the duration between two waypoints. Therefore, we choose 𝐱𝐱\mathbf{x}bold_x to become decision variable of expression (29).

As shown in Figure 5, changes to any element within the time parameter 𝐓𝐓\mathbf{T}bold_T will lead to alterations in the characteristics of the entire trajectory. This is where the difficulty lies in multistage trajectory optimization, that is, we require the gradient of equation (27) with respect to the time vector 𝐓𝐓\mathbf{T}bold_T. With available gradient, the relaxation (29) could be solved by the limited-memory Broyden-Fletcher-Goldfarb-Shanno algorithm [53].

Refer to caption
((a))
Refer to caption
((b))
Figure 6: Two examples of trajectory optimization

Figure 6(a) shows the time-optimal trajectory of the tail-sitter ascending within a two-dimensional plane through given waypoints under certain speed constraints. Figure 6(b) shows the time-optimal trajectory of the tail-sitter through given waypoints in Euclidean space under certain speed constraints. The vehicle states and control quantities of the two trajectories are shown in Figures 7 and 8.

Refer to caption
((a))
Refer to caption
((b))
Refer to caption
((c))
Refer to caption
((d))
Refer to caption
((e))
Refer to caption
((f))
Figure 7: Details of the trajectory as shown in Figure 6(a)
Refer to caption
((a))
Refer to caption
((b))
Refer to caption
((c))
Refer to caption
((d))
Refer to caption
((e))
Refer to caption
((f))
Figure 8: Details of the trajectory as shown in Figure 6(b)

It should be noted that our algorithm allows the tail-sitter to pass through any waypoints, and Figures 6 are just a brief demonstration of the algorithm. The attitude of the tail-sitter is determined by its angle of attack, which is calculated from the vehicle’s speed and acceleration using Newton-Raphson method. This can sometimes lead to the solution converging to unreasonable values under certain circumstances. Since the control inputs of the tail-sitter are all calculated based on its attitude, an unreasonable angle of attack can lead to disastrous consequences. In practice, such situations often occur in the middle of the vehicle’s trajectory and when the tail-sitter is approaching its initial or final condition.

Figure 9(a) illustrates the unreasonable angle of attack at the initial and final condition on the trajectory as shown in Figure 6(a). As depicted in Figure 6(a), the tail-sitter moves in a straight line at the beginning and end stages, and it should not have a positive acceleration when the angle of attack is greater than 90 degrees. Figure 9(b) shows the unreasonable angle of attack calculated for the tail-sitter in the middle stages.

Refer to caption
((a))
Refer to caption
((b))
Figure 9: abnormal angle of attack

Given that Newton-Raphson method requires certain initial values, one solution to the situation shown in Figure 9(a) is to constantly manually adjust the initial values. However, this is troublesome and does not meet our need for real-time trajectory generation. Here, two solutions are proposed. Firstly, for the situation shown in Figure 9(a), it is usually due to the tail-sitter’s speed being too small, causing numerical instability in the solution. Therefore, a particularly small value can be set for the speed at the initial and final states, which usually solves the problem. Secondly, for the situation shown in Figure 9(b), it is usually because the acceleration required by the tail-sitter in a certain time interval is too large, causing the force generated by the tail-sitter’s fuselage and wings to be unable to meet the acceleration requirement. Therefore, this problem can be solved by appropriately reducing the value of the maximum speed constraint

Combining all elements above, the complete trajectory generation can be obtained as shown in Algorithm 1.

1 Given: Initial conditions 𝐱0subscript𝐱0\mathbf{x}_{0}bold_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, final conditions 𝐱fsubscript𝐱𝑓\mathbf{x}_{f}bold_x start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, waypoints 𝐩isubscript𝐩𝑖\mathbf{p}_{i}bold_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT.
2 L-BFGS:
3 Initialize 𝐓0superscript𝐓0\mathbf{T}^{0}bold_T start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT, 𝐠0h(𝐓0)superscript𝐠0superscript𝐓0\mathbf{g}^{0}\leftarrow\nabla h(\mathbf{T}^{0})bold_g start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT ← ∇ italic_h ( bold_T start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT ), 𝐁0𝐈superscript𝐁0𝐈\mathbf{B}^{0}\leftarrow\mathbf{I}bold_B start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT ← bold_I, k0𝑘0k\leftarrow 0italic_k ← 0
4 while 𝐠k>δnormsuperscript𝐠𝑘𝛿||\mathbf{g}^{k}||>\delta| | bold_g start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT | | > italic_δ do
5      Calculating the trajectory generated by the temporal parameter 𝐓ksuperscript𝐓𝑘\mathbf{T}^{k}bold_T start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT using MINCO;
6       By discretizing the velocity of the obtained trajectory, we derive the penalty function (27);
7       𝐝𝐁k𝐠k𝐝superscript𝐁𝑘superscript𝐠𝑘\mathbf{d}\leftarrow-\mathbf{B}^{k}\mathbf{g}^{k}bold_d ← - bold_B start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT bold_g start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT;
8       𝐭𝐭absent\mathbf{t}\leftarrowbold_t ← Lewis Overton line search;
9       𝐓k+1𝐓k+𝐭𝐝superscript𝐓𝑘1superscript𝐓𝑘𝐭𝐝\mathbf{T}^{k+1}\leftarrow\mathbf{T}^{k}+\mathbf{t}\mathbf{d}bold_T start_POSTSUPERSCRIPT italic_k + 1 end_POSTSUPERSCRIPT ← bold_T start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT + bold_td;
10       𝐁k+1superscript𝐁𝑘1absent\mathbf{B}^{k+1}\leftarrowbold_B start_POSTSUPERSCRIPT italic_k + 1 end_POSTSUPERSCRIPT ← Cautious-Limited-Memory-BFGS(𝐠k+1𝐠k,𝐓k+1𝐓k)superscript𝐠𝑘1superscript𝐠𝑘superscript𝐓𝑘1superscript𝐓𝑘(\mathbf{g}^{k+1}-\mathbf{g}^{k},\mathbf{T}^{k+1}-\mathbf{T}^{k})( bold_g start_POSTSUPERSCRIPT italic_k + 1 end_POSTSUPERSCRIPT - bold_g start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT , bold_T start_POSTSUPERSCRIPT italic_k + 1 end_POSTSUPERSCRIPT - bold_T start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT );
11       kk+1𝑘𝑘1k\leftarrow k+1italic_k ← italic_k + 1;
12 end while
Solve f𝑓fitalic_f and 𝝉𝝉\boldsymbol{\tau}bold_italic_τ by differential flatness transformation.
Algorithm 1 Multistage trajectory generation

References

  • [1] Teodor Tomic, Korbinian Schmid, Philipp Lutz, Andreas Domel, Michael Kassecker, Elmar Mair, Iris Lynne Grixa, Felix Ruess, Michael Suppa, and Darius Burschka. Toward a fully autonomous uav: Research platform for indoor and outdoor urban search and rescue. IEEE Robotics & Automation Magazine, 19(3):46–56, 2012.
  • [2] Rodrigo Kuntz Rangel, Joacy L. Freitas, and Vilmar Antônio Rodrigues. Development of a multipurpose hydro environmental tool using swarms, uav and usv. In 2019 IEEE Aerospace Conference, pages 1–15, 2019.
  • [3] Pratik Prajapati and Vineet Vashista. Aerial physical human robot interaction for payload transportation. IEEE Robotics and Automation Letters, 8(8):4903–4910, 2023.
  • [4] Zichen Huang, Lok Tsay, Tomoo Shiigi, Xunyue Zhao, Hiroaki Nakanishi, Tetsuhito Suzuki, Yuichi Ogawa, and Naoshi Kondo. A noise tolerant spread spectrum sound-based local positioning system for operating a quadcopter in a greenhouse. Sensors, 20:1981, 04 2020.
  • [5] Mike Allenspach and Guillaume Jacques Joseph Ducard. Nonlinear model predictive control and guidance for a propeller-tilting hybrid unmanned air vehicle. Automatica, 132:109790, 2021.
  • [6] Leonard Bauersfeld, Lukas Spannagl, Guillaume J. J. Ducard, and Christopher H. Onder. Mpc flight control for a tilt-rotor vtol aircraft. IEEE Transactions on Aerospace and Electronic Systems, 57(4):2395–2409, 2021.
  • [7] David Rohr, Matthias Studiger, Thomas Stastny, Nicholas R. J. Lawrance, and Roland Siegwart. Nonlinear model predictive velocity control of a vtol tiltwing uav. IEEE Robotics and Automation Letters, 6(3):5776–5783, 2021.
  • [8] R Park. Arcturus uav upgrades the jump15 vtol uav. Airlines & Aviation, Aerospace & Defense, 2014.
  • [9] Haowei Gu, Ximin Lyu, Zexiang Li, Shaojie Shen, and Fu Zhang. Development and experimental verification of a hybrid vertical take-off and landing (vtol) unmanned aerial vehicle (uav). In 2017 International Conference on Unmanned Aircraft Systems (ICUAS), pages 160–169. IEEE, 2017.
  • [10] Adrian Frank, James McGrew, Mario Valenti, Daniel Levine, and Jonathan How. Hover, transition, and level flight control design for a single-propeller indoor airplane. In AIAA Guidance, Navigation and Control Conference and Exhibit, page 6318, 2007.
  • [11] Wufan Wang, Jihong Zhu, and Minchi Kuang. Design, modelling and hovering control of a tail-sitter with single thrust-vectored propeller. In 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pages 5971–5976. IEEE, 2017.
  • [12] Christophe De Wagter, Rick Ruijsink, Ewoud JJ Smeur, Kevin G van Hecke, Freek van Tienen, Erik van der Horst, and Bart DW Remes. Design, control, and visual navigation of the delftacopter vtol tail-sitter uav. Journal of Field Robotics, 35(6):937–960, 2018.
  • [13] Yijie Ke, Kangli Wang, Kehong Gong, Shupeng Lai, and Ben M Chen. Model based robust forward transition control for tail-sitter hybrid unmanned aerial vehicles. In 2017 13th IEEE International Conference on Control & Automation (ICCA), pages 828–833. IEEE, 2017.
  • [14] Yijie Ke, Kangli Wang, and Ben M Chen. Design and implementation of a hybrid uav with model-based flight capabilities. IEEE/ASME Transactions on Mechatronics, 23(3):1114–1125, 2018.
  • [15] **gxuan Sun, Boyang Li, Chih-Yung Wen, and Chih-Keng Chen. Design and implementation of a real-time hardware-in-the-loop testing platform for a dual-rotor tail-sitter unmanned aerial vehicle. Mechatronics, 56:1–15, 2018.
  • [16] Haowei Gu, Xiaoyu Cai, **ni Zhou, Zexiang Li, Shaojie Shen, and Fu Zhang. A coordinate descent method for multidisciplinary design optimization of electric-powered winged uavs. In 2018 International Conference on Unmanned Aircraft Systems (ICUAS), pages 1189–1198. IEEE, 2018.
  • [17] Nidhish Raj, Ashutosh Simha, Mangal Kothari, Ravi N Banavar, et al. Iterative learning based feedforward control for transition of a biplane-quadrotor tailsitter uas. In 2020 IEEE International Conference on Robotics and Automation (ICRA), pages 321–327. IEEE, 2020.
  • [18] Hao Liu, Fachun Peng, Frank L Lewis, and Yan Wan. Robust tracking control for tail-sitters in flight mode transitions. IEEE Transactions on Aerospace and Electronic Systems, 55(4):2023–2035, 2018.
  • [19] Daniel Mellinger and Vijay Kumar. Minimum snap trajectory generation and control for quadrotors. In 2011 IEEE international conference on robotics and automation, pages 2520–2525. IEEE, 2011.
  • [20] Mark W Mueller, Markus Hehn, and Raffaello D’Andrea. A computationally efficient motion primitive for quadrocopter trajectory generation. IEEE transactions on robotics, 31(6):1294–1310, 2015.
  • [21] Aditya K Rao, Kushal P Singh, and Twinkle Tripathy. Curvature bounded trajectories of desired lengths for a dubins vehicle. Automatica, 167:111749, 2024.
  • [22] Adam Bry, Charles Richter, Abraham Bachrach, and Nicholas Roy. Aggressive flight of fixed-wing and quadrotor aircraft in dense indoor environments. The International Journal of Robotics Research, 34(7):969–1002, 2015.
  • [23] Sebastian Verling, Basil Weibel, Maximilian Boosfeld, Kostas Alexis, Michael Burri, and Roland Siegwart. Full attitude control of a vtol tailsitter uav. In 2016 IEEE international conference on robotics and automation (ICRA), pages 3006–3012. IEEE, 2016.
  • [24] Ximin Lyu, Haowei Gu, Ya Wang, Zexiang Li, Shaojie Shen, and Fu Zhang. Design and implementation of a quadrotor tail-sitter vtol uav. In 2017 IEEE international conference on robotics and automation (ICRA), pages 3924–3930. IEEE, 2017.
  • [25] Koichi Kita, Atsushi Konno, and Masaru Uchiyama. Transition between level flight and hovering of a tail-sitter vertical takeoff and landing aerial robot. Advanced Robotics, 24(5-6):763–781, 2010.
  • [26] Atsushi Oosedo, Satoko Abiko, Atsushi Konno, and Masaru Uchiyama. Optimal transition from hovering to level-flight of a quadrotor tail-sitter uav. Autonomous Robots, 41:1143–1159, 2017.
  • [27] Roberto Naldi and Lorenzo Marconi. Optimal transition maneuvers for a class of v/stol aircraft. Automatica, 47(5):870–879, 2011.
  • [28] Boyang Li, **gxuan Sun, Weifeng Zhou, Chih-Yung Wen, Kin Huat Low, and Chih-Keng Chen. Transition optimization for a vtol tail-sitter uav. IEEE/ASME transactions on mechatronics, 25(5):2534–2545, 2020.
  • [29] Kristoff McIntosh and Sandipan Mishra. Transition trajectory planning and control for quadrotor biplanes in obstacle cluttered environments. In Vertical Flight Society 78th Annual Forum Proceedings, 2022.
  • [30] Michel Fliess, Jean Lévine, Philippe Martin, and Pierre Rouchon. Flatness and defect of non-linear systems: introductory theory and examples. International journal of control, 61(6):1327–1361, 1995.
  • [31] Markus Ryll, John Ware, John Carter, and Nick Roy. Efficient trajectory planning for high speed flight in unknown environments. In 2019 International conference on robotics and automation (ICRA), pages 732–738. IEEE, 2019.
  • [32] Helen Oleynikova, Christian Lanegger, Zachary Taylor, Michael Pantic, Alexander Millane, Roland Siegwart, and Juan Nieto. An open-source system for vision-based micro-aerial vehicle map**, planning, and flight in cluttered environments. Journal of Field Robotics, 37(4):642–666, 2020.
  • [33] Ji Zhang, Chen Hu, Rushat Gupta Chadha, and Sanjiv Singh. Falco: Fast likelihood-based collision avoidance with extension to human-guided navigation. Journal of Field Robotics, 37(8):1300–1313, 2020.
  • [34] Leobardo Campos-Macías, Rodrigo Aldana-López, Rafael de la Guardia, José I Parra-Vilchis, and David Gómez-Gutiérrez. Autonomous navigation of mavs in unknown cluttered environments. Journal of Field Robotics, 38(2):307–326, 2021.
  • [35] Xin Zhou, Zhepei Wang, Hongkai Ye, Chao Xu, and Fei Gao. Ego-planner: An esdf-free gradient-based local planner for quadrotors. IEEE Robotics and Automation Letters, 6(2):478–485, 2020.
  • [36] Philipp Foehn, Dario Brescianini, Elia Kaufmann, Titus Cieslewski, Mathias Gehrig, Manasi Muglikar, and Davide Scaramuzza. Alphapilot: Autonomous drone racing. Autonomous Robots, 46(1):307–320, 2022.
  • [37] Ezra A Tal and Sertac Karaman. Global trajectory-tracking control for a tailsitter flying wing in agile uncoordinated flight. In AIAA Aviation 2021 Forum, page 3214, 2021.
  • [38] Guozheng Lu, Yixi Cai, Nan Chen, Fanze Kong, Yunfan Ren, and Fu Zhang. Trajectory generation and tracking control for aggressive tail-sitter flights. The International Journal of Robotics Research, 43(3):241–280, 2024.
  • [39] Leandro R Lustosa, François Defaÿ, and Jean-Marc Moschetta. Global singularity-free aerodynamic model for algorithmic flight control of tail sitters. Journal of Guidance, Control, and Dynamics, 42(2):303–316, 2019.
  • [40] Ezra Tal, Gilhyun Ryou, and Sertac Karaman. Aerobatic trajectory generation for a vtol fixed-wing aircraft using differential flatness. IEEE Transactions on Robotics, 2023.
  • [41] **ni Zhou, Ximin Lyu, Zexiang Li, Shaojie Shen, and Fu Zhang. A unified control method for quadrotor tail-sitter uavs in all flight modes: Hover, transition, and level flight. In 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pages 4835–4841. IEEE, 2017.
  • [42] John T Betts. Practical methods for optimal control and estimation using nonlinear programming. SIAM, 2010.
  • [43] Michael A Patterson and Anil V Rao. Gpops-ii: A matlab software for solving multiple-phase optimal control problems using hp-adaptive gaussian quadrature collocation methods and sparse nonlinear programming. ACM Transactions on Mathematical Software (TOMS), 41(1):1–37, 2014.
  • [44] Boris Houska, Hans Joachim Ferreau, and Moritz Diehl. Acado toolkit—an open-source framework for automatic control and dynamic optimization. Optimal Control Applications and Methods, 32(3):298–312, 2011.
  • [45] Philip E Gill, Walter Murray, and Michael A Saunders. Snopt: An sqp algorithm for large-scale constrained optimization. SIAM review, 47(1):99–131, 2005.
  • [46] Andreas Wächter and Lorenz T Biegler. On the implementation of an interior-point filter line-search algorithm for large-scale nonlinear programming. Mathematical programming, 106:25–57, 2006.
  • [47] Zhepei Wang, Xin Zhou, Chao Xu, and Fei Gao. Geometrically constrained trajectory optimization for multicopters. IEEE Transactions on Robotics, 38(5):3259–3278, 2022.
  • [48] Declan Burke, Airlie Chapman, and Iman Shames. Generating minimum-snap quadrotor trajectories really fast. In 2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pages 1487–1492. IEEE, 2020.
  • [49] Zhepei Wang, Hongkai Ye, Chao Xu, and Fei Gao. Generating large-scale trajectories efficiently using double descriptions of polynomials. In 2021 IEEE International Conference on Robotics and Automation (ICRA), pages 7436–7442. IEEE, 2021.
  • [50] Brian L Stevens, Frank L Lewis, and Eric N Johnson. Aircraft control and simulation: dynamics, controls design, and autonomous systems. John Wiley & Sons, 2015.
  • [51] Bernard Etkin and Lloyd Duff Reid. Dynamics of flight: stability and control. John Wiley & Sons, 1995.
  • [52] Sikang Liu, Nikolay Atanasov, Kartik Mohta, and Vijay Kumar. Search-based motion planning for quadrotors using linear quadratic minimum time control. In 2017 IEEE/RSJ international conference on intelligent robots and systems (IROS), pages 2872–2879. IEEE, 2017.
  • [53] Dong C Liu and Jorge Nocedal. On the limited memory bfgs method for large scale optimization. Mathematical programming, 45(1):503–528, 1989.