Guidance algorithm for smooth trajectory tracking of a fixed wing UAV
flying in wind flows.

arXiv:1610.02797v2 [cs.RO] 15 Feb 2017

Hector Garcia de Marina1 , Yuri A. Kapitanyuk2 , Murat Bronz1 , Gautier Hattenberger1 and Ming Cao2
Abstract— This paper presents an algorithm for solving the
problem of tracking smooth curves by a fixed wing unmanned
aerial vehicle travelling with a constant airspeed and under a
constant wind disturbance. The algorithm is based on the idea
of following a guiding vector field which is constructed from
the implicit function that describes the desired (possibly timevarying) trajectory. The output of the algorithm can be directly
expressed in terms of the bank angle of the UAV in order to
achieve coordinated turns. Furthermore, the algorithm can be
tuned offline such that physical constraints of the UAV, e.g. the
maximum bank angle, will not be violated in a neighborhood of
the desired trajectory. We provide the corresponding theoretical
convergence analysis and performance results from actual
flights.

I. INTRODUCTION
The usage of unmanned aerial vehicles (UAVs) in tasks,
such as monitoring missions, surveillance or patrolling, has
found broad applications. In order to accomplish such missions successfully, it is very often required to track or follow
a predetermined path with high accuracy. For example, when
performing the aerial mapping for a geographical area of
interest, one needs to guarantee that the vehicle will fly
over a prescribed trajectory by solving path-following control
problem. There is no unique approach for addressing this
problem for fixed wing UAVs as it has been surveyed in
[1]. Most popular open-source UAV autopilots (such as
Ardupilot [2], Pixhawk [3] and Paparazzi [4]) use algorithms
that are based on one of the following ideas: Tracking a
time-varying reference point [5], [6], [7] (also known as
carrot-chasing or rabbit-chasing); tracking a vector field
[8], [9]; or minimizing some error signals involving the
Euclidean distance to the desired path and other variables
[10]. These algorithms have been shown to be reliable and
easy to implement with limited hardware resources; however,
they have several limitations. Firstly, they are limited by
the necessity of measuring the actual distance between the
UAV and the given trajectory. In practice, this restricts the
usage of such algorithms to straight lines and circles mostly
[8], [9], [10]; for more generic trajectories they can only
provide local stability without information about the region
of attraction [7]. Secondly, most of the models using these
algorithms do not take into account the wind and they have to
This work at ENAC has been supported by the Skycanner project (STAE
foundation).
1 Hector Garcia de Marina, Murat Bronz and Gautier Hattenberger are
with the University of Toulouse, Ecole nationale de l’aviation civile (ENAC),
31000 Toulouse, France hgdemarina@ieee.org.
2 Yuri
Kapitanyiuk and Ming Cao are with the ENTEG
institute at the University of Groningen, the Neherlands.
{i.kapitanyuk,m.cao}@rug.nl.

address this issue by employing extra controllers in cascade.
An integral action can be considered in order to compensate
such a disturbance for following a straight line. However, this
approach usually fails for generic trajectories, even circles,
since when the UAV is following such a path, the wind
velocity vector is not fixed with respect to the body frame.
Techniques such as the estimation of the sideslip angle are
effective, but typically such results [11] are confined to
Dubin’s path, i.e., straight lines and circles. Thirdly, one can
design a generic trajectory matching the physical constraints
of the vehicle, e.g., maximum heading rate that determines
the bank angle. However, the output from most of the above
mentioned algorithms is a heading to be followed by the
UAV. This setting point is forwarded usually to another
controller in a cascaded fashion, and therefore making it
difficult to assert that the physical constraints of the UAV
are satisfied when the vehicle is not on the desired path.
The work presented in this paper is an extension of
the algorithm given in [12]. More precisely, the theoretical
contribution of our work includes the technique of dealing
with wind disturbance when following a generic sufficiently
smooth 2D path, whereas the practical contributions lie in the
adaptation and integration of the algorithm to an actual fixed
wing UAV. In particular, the presented algorithm is based on
the idea of following a vector field [8], [9] that converges
smoothly to the desired path, where the convergence is global
if certain conditions are satisfied. Instead of considering the
Euclidean distance, the notion of error is given by the implicit
equation of the desired trajectory, making the tracking task
much easier to be implemented. Furthermore, this approach
makes it possible to deal with the problem of tracking
time-varying trajectories or to define a 3D trajectory as the
intersection of two surfaces [13]. This last feature is desirable
for certain practical problems. For example, for the sampling
of the atmosphere by UAVs [14] one can model the boundary
of travelling clouds by a 3D slowly changing paraboloid
parallel to the ground. The desired trajectory for studying the
surroundings of such a cloud can be given by the intersection
of a plane with this paraboloid.
Note that the guidance vector field is not a novel concept
at all and work based on it covering generic trajectories has
been presented before [15]. However, the authors in [15]
have only considered vehicles that can be modeled by fully
actuated unit mass points. This kind of model is not suitable
for actual fixed wings, where in an optimal or trimmed flight
the air-speed must be constant. In our work, we can consider
the case when the UAV is flying with a constant air-speed,
where our algorithm provides the desired heading-rate for the

vehicle. If we consider 2D ground parallel trajectories, then
the heading rate can be directly translated to a coordinated
turn, i.e. a bank angle that makes the UAV to turn without
inducing any acceleration in the lateral axis of the vehicle.
These turns are desirable because they assist the attitude
estimators [16], [17] based on the readings of accelerometers,
utilizing the observation of the gravity acceleration vector.
The paper is organized as follows. The path following
problem under a constant disturbance is set up in Section
II. We provide a solution to the problem based on the vector
field in Section III derived from Lyapunov stability analysis.
We explain the implementation of the algorithm in an actual
fixed-wing UAV and present its performance from actual
flights in Section IV. We finally finish the paper with some
conclusions in Section V.
The presented algorithm in this paper has been implemented in the popular open-source autopilot system Paparazzi [4] and it is ready to be used by the general public.
II. P ROBLEM DEFINITION
We consider for the fixed wing UAV the following nonholonomic model in 2D
(
ṗ = sm(ψ) + w
(1)
ψ̇ = u,
where p ∈ R2 is the position of the UAV with respect to
some inertial navigation frame ON , s ∈ R+ is a constant that
T
can be considered as the airspeed, m = cos(ψ) sin(ψ)
with ψ ∈ (−π, π] being the attitude yaw angle, w ∈ R2 is
a constant1 with respect to ON representing the wind and u
is the control action that will make the UAV to turn. Here,
the UAV is underactuated. We also notice that the course
heading χ ∈ (−π, π], i.e. the direction the velocity vector ṗ
is pointing at, in general is different from the yaw angle ψ
because of the wind.
Although a fixed wing can fly backwards in ON , i.e. the
course heading and the yaw angle differ by π radians, for the
sake of simplicity in the analysis we consider the following
realistic assumption.
Assumption 2.1: The constant airspeed s is greater than
the Euclidean norm of the wind vector w, i.e. s > ||w||.
In fact, it is quite straightforward to check that this assumption is necessary if one wants to reach a generic desired path
from almost every initial position.
Consider the desired path P ∈ R2 described by the
following implicit equation
P := {p : ϕ(p) = 0},

(2)

where we assume that the function ϕ : R2 → R belongs to
the C 2 space and it is regular in a neighborhood of P, i.e.
∇ϕ(p) 6= 0,

p ∈ NP ,

(3)

where NP := {p : |ϕ(p)| ≤ c∗ } for a constant c∗ ∈ R+ .
The plane R2 can be covered by the following disjoint sets
1 For the sake of simplicity we consider that w is constant, but we will
see after the main result that this requirement can be indeed relaxed.

sm

ṗ
n

w
χ

ψ
τ

ϕ(p∗ ) = e

ṗˆd
ṗd
p∗
ON

−ke en

ϕ(p) = c > 0
P := ϕ(p) = 0
ϕ(p) = c < 0

Fig. 1: The direction to be followed by the UAV at the point
p∗ is given by ṗˆd . The tangent and normal vectors τ and n are
calculated from ∇ϕ(p∗ ). The error distance e is calculated
as ϕ(p∗ ), and therefore it is different from the notion of the
Euclidean distance in general.

ϕ(p) = c ∈ R, where each level set is defined for a value,
and in particular the zero level set ϕ(p) = 0 corresponds
uniquely to the desired path P. Therefore, we can employ
these level sets for the notion of error distance between the
UAV and P, namely
e(p) := ϕ(p) ∈ R.

(4)

Note that the error is signed and it differs from the notion
of the Euclidean distance.
The main goal is to design a control action u(p, ṗ, ψ) such
that e(t) → 0 as t → ∞ and because of (1) along with
Assumption 2.1 the UAV will travel over P with ṗ(t) 6=
0, ∀t ≥ 0. As will be seen, the control action requires to have
available the following states from the UAV: its position and
velocity with respect to ON , from for example a GPS signal
and its yaw angle also with respect to ON , which can be
obtained from a well calibrated compass in areas far away
from the Earth’s poles.
III. G UIDANCE LAW DESIGN AND ANALYSIS
Let us first introduce some notation. We define by n(p) :=
∇ϕ(p) the normal vector to the curve corresponding to the
level set ϕ(p) and the tangent vector τ at the same point p
is given by the rotation


0 1
τ (p) = En(p), E =
.
−1 0
Note that E will determine in which direction P will be
tracked.
The guidance controller is constructed in two steps. The
first one is about constructing a guidance vector field such
that once the UAV is tracking it, the vehicle will converge to

P. The second step deals with the task of steering the UAV
in order to converge to such a guiding vector field.
A. Vector field design
The main idea to construct a guiding vector field pointing
at P is based on decreasing the norm of (4). Consider the
following Lyapunov function
1
(5)
V1 (p) = ||e(p)||2 ,
2
whose time derivative along (1) is given by
dV1
= enT ṗ.
dt
Consider the following desired velocity vector
ṗd (p) := τ (p) − ke e(p)n(p),

(6)

(7)

where ke ∈ R+ is a gain that will tune how aggressive the
vector field is. It is clear that
enT ṗd = enT τ − e2 ke ||n||2 = −e2 ke ||n||2 ≤ 0,

(8)

is decreasing if and only if e 6= 0 for p ∈ NP . Note that
since τ is perpendicular to n, once the UAV is over P then
the vehicle will track the direction given by only τ , i.e. the
tangent to the desired path. Therefore, we define (7) as the
guidance vector field to be followed. In particular, the UAV
has to track the orientation of the unit vector calculated from
(7), i.e. the desired course heading χd (p).
Remark 3.1: It is now clear the role of Assumption 2.1.
If s < ||w|| then it is not possible to travel in the direction
against the wind, and therefore being impossible to track the
guidance vector field (7) in general.
x
Let us define x̂ := ||x||
for x ∈ Rn . Now we are going
to calculate what the desired course heading rate χ̇d (ṗ, p) is
once the UAV is tracking correctly the guidance vector field
given in (7), i.e. what the course heading rate is such that
the set G := {ṗ : ṗˆ = ṗˆd } is invariant.
The time derivative of the unit vector defining the desired
heading is given by
dṗˆd
p̈d
p̈d
= (I − ṗˆd ṗˆTd )
= (ṗˆTd E)T (ṗˆTd E)
dt
||ṗd ||
||ṗd ||
p̈
d
T
= −E ṗˆd ṗˆd E
,
||ṗd ||

(9)

hence the infinitesimal rotation of ṗˆd can be described by
dṗˆd
= −χ̇d E ṗˆd ,
(12)
dt
which is perpendicular to ṗˆd and the angular speed is
determined by χ̇d . Working out further (12) we identify that
dṗˆd
= −χ̇d ṗˆd
dt
dṗˆd
= −χ̇d
ṗˆTd E T
dt
!T
dṗˆd
E ṗˆd ,
χ̇d =
dt
ET

(13)

therefore by tracking back (10), (9) and (7) for the angular
velocity (13) we notice that the desired course heading rate
χ̇d in order to keep G invariant can be computed by only
sensing the ground velocity ṗ and position p of the UAV.
We summarize such observations into the following Lemma.
Lemma 3.2: The set G := {ṗ : ṗˆ = ṗˆd }, with ṗd being
the guidance vector field in (7), is invariant for the following
course heading rate
χ̇(p, ṗ) =

 T
ṗd
− E ṗˆd ṗˆTd E (E − ke e) H(ϕ(p))ṗ − ke nT ṗn
,
E
||ṗd ||2
(14)
that only depends on ṗ and p.
Proof: By direct inspection of (14) it is clear that it
only depends on ṗ and p. Consider that p ∈ G with ṗd as
in (7). Then in order to keep G invariant we have to satisfy
ˆ The
the right hand side of (9) for the time derivative of ṗ.
angular velocity (14) is the substitution of (10) and (9) into
(13), which determines the course heading rate χ̇ in order to
keep G invariant.
Remark 3.3: Notice that the yaw rate ψ̇ and the course
heading rate χ̇ are different concepts and quantities. However, according to (1) by actuating over the yaw, we are
also actuating over the course heading. The aim of the next
section is to show how to design u in (1) such that the UAV
is following the appropriated course heading rate.
B. Converging to the guidance vector field

where I is the identity matrix with the appropriate dimensions and from (7) we derive
d
p̈d = (E − ke e)n
dt
= (E − ke e)H(ϕ(p))ṗ − ke nT ṗn,
(10)

Now we are going to present how to make the UAV to
converge to the guidance vector field defined in (7). The
ˆ
ground velocity ṗ can be trivially decomposed as ṗ = ||ṗ||ṗ.
Now consider the following Lyapunov function

where H(·) is the Hessian operator, establishing then the
condition of ϕ(p) being C 2 . Physically it means that the
UAV in order to track P needs to know how the curvature
of the desired trajectory evolves.
Now we derive the expression of the desired heading rate
χ̇d once ṗ ∈ G. Since ||ṗˆd ||2 = 1, we have that

where η ∈ (−π, π] is the angle between the two unit vectors
ṗˆ and ṗˆd . It is clear that V2 (η) = 0 ⇐⇒ η = 0, i.e. the
ground velocity of the UAV is aligned with the vector field.
Now we are ready for our main result.
Theorem 3.4: Consider a desired trajectory P as in (2)
such that ϕ(p) is C 2 and satisfies (3). Assume that the UAV
is modeled by (1) under Assumption 2.1 and the vehicle can
measure its ground velocity ṗ, position p and yaw angle ψ

1 d||ṗˆd ||2
dṗˆd
= ṗˆTd
= 0,
2 dt
dt

(11)

V2 (η) = 1 − ṗˆT ṗˆd ,

(15)

with respect to some navigation frame ON . Then the control
action

||ṗ|| 
u(ṗ, p, ψ) = ψ̇ =
χ̇d (ṗ, p) + kd ṗˆT E ṗˆd , (16)
s cos β


where β = arccos ṗˆT m(ψ) is the sideslip angle, kd ∈
R+ determines how fast the UAV converges to the guidance
vector field and χ̇d is given in Lemma 3.2, guides the UAV
(at least locally) to converge asymptotically to travel over P
for all the initial conditions p(0) ∈ Nc ⊂ NP , where Nc is
as NP in (3) but with a constant 0 ≤ c < c∗ .
Proof: We need to show that the unit velocity vector ṗˆ
of the UAV converges asymptotically to the unit velocity
vector ṗˆd given by the vector field (7), i.e. χ(p, ṗ, ψ) −
χd (p, ṗ, ψ) → 0 as t → ∞. Consider that p(0) ∈ Nc and
take the time derivative of the Lyapunov function (15)




dˆ
dˆ
dV2
= −ṗˆTd
ṗ − ṗˆT
ṗd .
(17)
dt
dt
dt
We now work out the first time derivative term on the right
hand side of (17) since the second term has been calculated
in (12):
dˆ
d
1
E ṗˆṗˆT E ṗ
ṗ = −
dt
||ṗ||
dt
s
d
=−
E ṗˆṗˆT E m(ψ)
||ṗ||
dt
s
=
E ṗˆṗˆT E ψ̇Em(ψ)
||ṗ||

sψ̇  ˆT
ˆ
=−
ṗ m(ψ) E ṗ.
||ṗ||

(18)

By choosing

||ṗ|| 
χ̇d + kd ṗˆT E ṗˆd ,
s cos β

IV. I MPLEMENTATION AND FLIGHT PERFORMANCE
In this Section we are going to discuss several practical
issues in order to implement the guidance vector field (7)
to an actual fixed wing in the opensource project Paparazzi
[4]. We conclude the section by showing the performance of
actual flights employing the results2 in Theorem 3.4.
A. Gain tuning

We now substitute (18) and (12) into (17) and we arrive at

sψ̇  ˆT
dV2
ṗ m(ψ) ṗˆTd E ṗˆ − χ̇d ṗˆTd E ṗˆ
=
dt
||ṗ||
!
sψ̇
ˆ
=
cos β − χ̇d ṗˆTd E ṗ.
(19)
||ṗ||

u(ṗ, p, ψ) = ψ̇ =

Remark 3.5: Note that for some trajectories, such as
straight lines, we have that NP = R2 , and therefore the
convergence in Theorem 3.4 is global. For other trajectories
where the set of critical points ∇φ(p) = 0 is bounded and
does not intercept P, e.g. the center of an ellipse, a more
precise condition for kd can be given in order to be more
specific about NP and Nc [12].
Remark 3.6: We also note that if the yaw angle ψ is not
accessible or reliable, e.g. if the UAV is close to the Earth’s
poles, one can replace it by measuring the sideslip angle β
and still employing the results from Theorem 3.4.
Remark 3.7: One can check that a non-constant positive
airspeed s(t), but satisfying Assumption 2.1, will not change
the convergence results in Theorem 3.4. In fact the condition
of having a constant wind w can also be relaxed by just
considering that s(t) > sup{||w(t)||}, ∀t ≥ 0, i.e. we
exclude situations where the UAV stops or flies backwards
with respect to the ground.

(20)

we have that
dV2
= −kd (ṗˆT E ṗˆd )2 ≤ 0,
(21)
dt
which is non-increasing in the (compact) set NP . The
constant kd has to be big enough such that the UAV does
not leave the set NP once the vehicle starts in Nc , i.e. we
need to align the UAV with the vector field as soon as
possible in order to satisfy (3) for all t ≥ 0. The (worst case)
calculation of kd is a strictly geometrical and kinematic task
that depends on s, w, ψ, c and c∗ . Because of (21), the condition (3) and Assumption (2.1), by invoking the LaSalle’s
invariance principle, we conclude that χ (p(t), ṗ(t), ψ(t)) −
ˆ
χd (p(t), ṗ(t), ψ(t)) → 0, or equivalently ṗ(t)
→ G, as
t → ∞, implying that p(t) → P as t → ∞ with the UAV
travelling over the desired trajectory P with ṗ(t) 6= 0, ∀t.

We are going to show that the gains ke in the guidance
vector field (7) and kd in the control action (16) can be
designed in order to satisfy the physical constraint given by
the maximum bank angle φ∗ of the UAV.
If we consider that the flight path angle is zero, i.e. the
UAV is keeping its altitude, and s >> ||w||, i.e. we have a
small sideslip β, the yaw rate ψ̇ can be well approximated
by the following expression [18]
g tan φ cos θ
,
(22)
s
where g is the gravity acceleration and φ and θ are the
roll and pitch attitude angles, respectively, of the UAV.
The expression (22) is also known as the condition for a
coordinated turn. In such a case the UAV does not experience
any acceleration in its lateral body axes. This is desirable
since many of the attitude estimation algorithms employed
in projects like Paparazzi, such as [16], [17], are based on the
observation of gravity. We also consider that in a trimmed
flight, the pitch angle θ remains constant and usually is close
to zero.
From (22) it is clear that we have to satisfy
ψ̇ =

|φ∗ | ≤ arctan

s u(ṗ, p, ψ)
.
g cos θ

(23)

If one is interested in visiting a certain area with the UAV,
then it should restrict the desired trajectory P such that
(23) is satisfied under the worst case condition for ||ṗ||
2 For more details about the implementation of the algorithm
and further experimental results we refer to the website
https://wiki.paparazziuav.org/wiki/Module/guidance vector field

(determined by the expected wind speed) in (16) with η = 0.
Our algorithm covers the popular splines [19] for trajectory
generation in order to satisfy constraints such as (23).
A conservative value for kd in order to satisfy (23) can be
calculated by considering ṗˆT E ṗˆd = ±1 in (20). However,
one needs to have in mind that kd should be sufficiently big
(in the transient of the UAV converging to the guidance vector field) according to Theorem 3.4 for keeping p(t) ∈ NP .
Finally, ke directly influences how smooth (compromised by
how fast) the convergence of the guidance vector field to P
is and it can be chosen arbitrarily small. Therefore, one can
calculate beforehand the values of ke and kd such that (23)
is satisfied in NP .

Fig. 2: UAV Jumper at the aero model club of Eole at Muret
(Toulouse) before the experiment’s flight in a pre-storm day.

B. Experimental platform
We have tested the validity of Theorem 3.4 in our fixed
wing UAV shown in Figure 2 called Jumper. It is about
450grams of weight, 70cm of wingspan, actuated by two
elevons and one motor. The electronics include a battery
that allows about 30 minutes of autonomoy at the nominal
flight, which corresponds to about an airspeed of s = 11m/s.
The vehicle has a high maneuverability and we have set in
the autopilot a saturation of |φ∗ | = 45 degrees to the roll
angle. The chosen board for the autopilot is the Apogee [4],
supported by Paparazzi, which includes the usual sensors of
three axis gyros, accelerometers, magnetometers and a GPS.
Therefore we can measure p, ṗ and ψ as required in Theorem
3.4. The microcontroller on board is a STMicroelectronics
STM32F4. Although there is a logging system on board, the
vehicle counts with a serial radio link in order to monitor its
status from the ground. The algorithm in Theorem 3.4 has
been programmed as a (guidance) module in Paparazzi and it
can be combined or integrated easily with other modules in
the system. In particular, we have set the periodic frequency
of the guidance vector field module to 60Hz. The source code
can be checked online at the Paparazzi repository, where the
implementation of the guidance algorithm is independent of
the trajectory. This allows other users to specify their own
trajectories by only defining the implicit ϕ(p), ∇ϕ(p) and
H(ϕ(p)) in C-code. In addition, Paparazzi allows easily to
change parameters on flight, and different values for ke and
kd can be set on-the-fly from the ground station.

C. Flight experiments
The flights have taken place at the aero model club of
Eole at Muret, close to the city of Toulouse in France. We
performed the flights on the 18th of August, 2016 between
the 14:00 and 18:00 hours local time. The wind according to
the weather service of MeteoFrance was about 5m/s blowing
from the east with gusts of about 10m/s. Therefore Jumper
with a nominal airspeed of s = 11m/s satisfies Assumption
2.1.
As a benchmark we consider different ellipses as desired

P, namely


(px − hx ) cos α − (py − hy ) sin α
a

2



(px − hx ) sin α + (py − hy ) cos α
b

2

ϕ(p) =
+

− 1, (24)


T
where h = hx hy
is the center of the ellipse with
respect to ON , α is the rotation angle of the ellipse with
respect to the horizontal axis of ON and a and b are the
lengths of the ellipse’s axis. Note that only for p = h we
have that ∇ϕ(p) = 0, and therefore (24) satisfies (3) for
some c∗ > 0.
The autopilot allows to have a fully automated flight, from
the take-off until the landing. We show in Figure 3 one of
the tested ellipses corresponding to a = 50, b = 75 meters
and α = −15 degrees, together with the described Jumper’s
trajectory. We have designed ke = 0.4 and kd = 1 such that
φ (without wind) is less than 45 degrees for c∗ ≤ 6 in NP .
We describe the experiment in more detail in Figures 3-5.
V. C ONCLUSIONS
This paper has presented an algorithm for making fixed
wing UAVs following smooth trajectories under the presence
of wind. The guidance strategy is based on tracking a
vector field generated from the implicit form of the desired trajectory. The simplicity of this algorithm allows its
implementation in small embedded systems as the Apogee
autopilot. The algorithm has been implemented in Paparazzi
as an independent module and does not depend on the desired
trajectory, allowing other users to employ the algorithm by
just codifying the implicit equation of the trajectory, along
with its gradient and Hessian.
We are currently extending and testing the results of this
paper for formation flying control by employing the different
level sets of a desired trajectory as an input for consensus
algorithms and combining the recent findings in [20], [21]
for controlling rigid formations.

Fig. 3: Screenshot from the Paparazzi’s ground control
station. From the flight log we have drawn on top several
positions of the UAV (blue triangles). The yaw ψ is represented by the orientation of the triangle and the black arrows
stand for the course heading. The desired ellipse has been
marked with a black dashed line. We have marked the last
position of the UAV, after two turns to the ellipse, in red
color. The vector field is represented in white color and the
blue line is the actual trajectory.

Fig. 4: Evolution of the adimensional error signal calculated
as in (24). Note that this signal is different from the notion
of Euclidean distance.

R EFERENCES
[1] P. B. Sujit, S. Saripalli, and J. B. Sousa, “Unmanned aerial vehicle
path following: A survey and analysis of algorithms for fixed-wing
unmanned aerial vehicless,” IEEE Control Systems, vol. 34, no. 1, pp.
42–59, Feb 2014.
[2] Ardupilot. Uav open-source project. [Online]. Available: http:
//ardupilot.org
[3] Pixhawk. Uav open-source project. [Online]. Available: http:
//pixhawk.org
[4] Paparazzi. Uav open-source project. [Online]. Available: http:
//wiki.paparazziuav.org/
[5] A. Micaelli and C. Samson, “Trajectory tracking for unicycle-type and
two-steering-wheels mobile robots,” Ph.D. dissertation, INRIA, 1993.
[6] D. Soetanto, L. Lapierre, and A. Pascoal, “Adaptive, non-singular
path-following control of dynamic wheeled robots,” in Decision and
Control, 2003. Proceedings. 42nd IEEE Conference on, vol. 2. IEEE,
2003, pp. 1765–1770.
[7] S. Park, J. Deyst, and J. How, “A new nonlinear guidance logic
for trajectory tracking,” in AIAA guidance, navigation, and control
conference and exhibit, 2004, p. 4900.

Fig. 5: Roll angle signal. The black dashed line is the
constraint φ∗ . It is passed when the UAV has tail wind
(maximum ground speed) and crosses the minor axis of the
ellipse (maximum turning rate for P). The tuning of the gains
ke and kd was done considering almost no wind, but in the
experiment the wind is almost the 50% of the airspeed.

[8] D. R. Nelson, D. B. Barber, T. W. McLain, and R. W. Beard, “Vector
field path following for miniature air vehicles,” IEEE Transactions on
Robotics, vol. 23, no. 3, pp. 519–529, 2007.
[9] E. W. Frew, D. A. Lawrence, C. Dixon, J. Elston, and W. J. Pisano,
“Lyapunov guidance vector fields for unmanned aircraft applications,”
in Proceedings of the American Control Conference, 2007, pp. 371–
376.
[10] A. Ratnoo, P. Sujit, and M. Kothari, “Adaptive optimal path following
for high wind flights,” IFAC Proceedings Volumes, vol. 44, no. 1, pp.
12 985–12 990, 2011.
[11] T. I. Fossen, K. Y. Pettersen, and R. Galeazzi, “Line-of-sight path
following for dubins paths with adaptive sideslip compensation of drift
forces,” IEEE Transactions on Control Systems Technology, vol. 23,
no. 2, pp. 820–827, 2015.
[12] Y. A. Kapitanyuk, A. V. Proskurnikov, and M. Cao, “A guiding vector
field algorithm for path following control of nonholonomic mobile
robots,” IEEE Transactions on Control System Technology, submitted,
2016.
[13] J. Wang, Y. A. Kapitanyuk, S.A.Chepinskiy, D. Liu, and A. Krasnov,
“Geometric path following control in a moving frame,” in IFACPapersOnLine, vol. 48, no. 11, 2015, pp. 150–155.
[14] A. Renzaglia, C. Reymann, and S. Lacroix, “Monitoring the evolution
of clouds with uavs,” in 2016 IEEE International Conference on
Robotics and Automation (ICRA), May 2016, pp. 278–283.
[15] V. M. Goncalves, L. C. A. Pimenta, C. A. Maia, B. C. O. Dutra, and
G. A. S. Pereira, “Vector fields for robot navigation along time-varying
curves in -dimensions,” IEEE Transactions on Robotics, vol. 26, no. 4,
pp. 647–659, Aug 2010.
[16] H. G. de Marina, F. J. Pereda, J. M. Giron-Sierra, and F. Espinosa,
“Uav attitude estimation using unscented kalman filter and triad,” IEEE
Transactions on Industrial Electronics, vol. 59, no. 11, pp. 4465–4474,
2012.
[17] J.-P. Condomines, C. Seren, and G. Hattenberger, “Pi-invariant unscented kalman filter for sensor fusion,” in 53rd IEEE Conference on
Decision and Control, 2015, pp. 1035–1040.
[18] B. L. Stevens, F. L. Lewis, and E. N. Johnson, Aircraft Control and
Simulation: Dynamics, Controls Design, and Autonomous Systems.
John Wiley & Sons, 2015.
[19] R. J. Gill, D. Kulić, and C. Nielsen, “Spline path following for redundant mechanical systems,” IEEE Transactions on Robotics, vol. 31,
no. 6, pp. 1378–1392, 2015.
[20] H. G. de Marina, B. Jayawardhana, and M. Cao, “Distributed rotational
and translational maneuvering of rigid formations and their applications,” Robotics, IEEE Transactions on, vol. 32, no. 3, pp. 684–696,
2016.
[21] H. G. de Marina, M. Cao, and B. Jayawardhana, “Controlling rigid formations of mobile agents under inconsistent measurements,” Robotics,
IEEE Transactions on, vol. 31, no. 1, pp. 31–39, 2015.

