Professional Documents
Culture Documents
3946
second step - described in section II-B.2 - we include the With the help of the trigonometric relationships dis-
ground velocity states to obtain the wind vector as the played in the equilibrium of forces in the bottom left
difference between freestream and ground velocities. corner of Fig. 3 and equations (2) - (4), we can solve for
1) Freestream velocity: To determine the freestream v∞ . This provides us with the following mapping of pitch
velocity I v ∞ , we consider the forces acting on the vehicle angles θ to freestream velocities v∞
body in steady-state flight, i.e. at a constant freestream
velocity and constant altitude. Without loss of generality,
2mg tan |θ|
we consider the 2-dimensional case with only frontal v∞ = ± = ±kx tan |θ|. (5)
horizontal freestream velocity v∞ and drop all indices cD ρA
for 3-dimensional reference frames. The same model is
applied to the lateral freestream velocity and is regarded with the lumped parameter kx .
as a analogous and decoupled problem. The prevailing We conclude that the frontal component of the hori-
forces are depicted in the free body diagram in Fig. 3. zontal freestream velocity can be modelled as the square
Hereby, fT denotes the total thrust force produced by the root tangent of the pitch angle θ, scaled by a coefficient
propellers, fG denotes the gravitational force pointing kx . Conveniently, we apply the same model to the y-axis
downwards and fL and fD denote the aerodynamic lift of the vehicle’s body, mapping the roll angle φ to the lat-
and drag forces acting on the wing surface. To maintain eral freestream velocity, with a scaling factor ky . Whereas
the steady-state of constant freestream and altitude, the the flat-plate assumption cannot be directly justified
aircraft is tilted by the pitch angle θ. Assuming a flat- for lateral freestream, it has shown a reasonable fit on
plate model [8], the equations for the lift and drag forces empirical data (see section II-C). Intuitively, the scaling
are given by factor k describes the relationship between constant tilt
angles and constant freestream velocities at the steady-
1 2
||fL ||2 = cL ρA sin(θ) cos(θ)v∞ , (2) state. For high drag and lift forces, the factor k becomes
2 small, meaning that higher tilt angles are needed to move
1 with a certain velocity relative to the air.
||fD ||2 = cD ρA cos2 (θ)v∞
2
, (3)
2 Furthermore, we extend the model by two parameters
with cL and cD being the lift and drag coefficients, to include asymmetries along the bx axis:
ρ being the air density and A being the wing area. • As the wing is slightly tilted w.r.t the fuselage and
Additionally, the gravitational force is given by IMU in positive pitch direction, we introduce an
offset parameter ox .
||fG ||2 = mg. (4)
• Because the curvature of the fuselage is significantly
different and also the wing’s airfoil is asymmetric,
we split the scaling parameter into separate scaling
factors kx+ and kx− for positive and negative pitch
angles respectively.
By rotating the resulting freestream velocities around the
yaw angle ψ with the transformation matrix
cos(ψ) − sin(ψ)
Tψ = , (6)
sin(ψ) cos(ψ)
3947
2) Wind Triangle: Converting the freestream velocity
obtained in section II-B.1 into wind velocities is trivial
given a reliable estimate for the ground velocities. We
apply the so-called wind triangle [4], shown in Fig. 4,
which simply states that the vector of wind velocities
vW is equal to the difference between the freestream
velocity v∞ (relative speed of air to UAV) and the
ground velocity vG (relative speed of ground to UAV).
We obtain the following equation for inferring the wind
speed vector
I vW = f (I v G , φ, θ, ψ) = I v ∞ − I v G . (8)
with I v ∞ obtained from equation (7) as a function of (a) Roll maneuver
the angles φ, θ and ψ.
C. Parameter Identification
(b) Pitch maneuver
In order to complete the theoretical model, derived
with multiple strong assumptions in section II-B.1, em- Fig. 5: Constant tilt angle and altitude flight maneuvers
pirical data is needed. We perform outdoor flight ma- for roll and pitch.
neuvers to identify values for kx+ , kx− , ox and ky ,
as well as quantify the model uncertainty used for the
estimation framework in Section III. The flights are
performed outdoors with almost no wind, so we can wind bias B bW . Hence, we approximate the freestream
consider the measured ground velocities as a measure for velocity, by using the measured ground velocity B v G ,
the freestream velocity v∞ (see section II-B.2). corrected by the wind bias B bW as follows
Specifically, to determine the parameters for the static
model in equation (8), we fly the system in steady state v
B ∞
= B v G − B bW (10)
at multiple tilt angles and measure the corresponding
ground velocities. The maneuvers are performed along
1) Roll maneuvers: The measured roll angles are
both bx and by axes separately, with constant pitch and
transformed by the model function from equation (7),
roll angles respectively. An example is depicted in Fig.
5.
obtaining the augmented independent variable xi =
sign(φi ) tan |φi | for every data point i ∈ 1, 2, ..., Ni re-
Hereby, we denote the measured world frame ground
spectively. As the dependent variable corresponding to
velocity I v G , rotated by the yaw angle with Tψ as
xi , we use the approximate freestream velocity yi =
v G[x]
v
B ∞[y] ,i
. We perform a weighted linear least squares
B
v = Tψ I vG =
B G
(9) regression (WLLS), using the weights wi to normalise
v
B G[y]
the data w.r.t to the number of data points collected for
To correct for biases caused by slight winds, the every segment of a certain angle/velocity pair. This is
maneuvers have been performed in successive pairs of to eliminate the bias towards the more densely sampled
opposite direction by changing heading (i.e. yaw angle) parts of the measured range. For the by -model, the
by 180◦ . Assuming constant wind throughout such a regression is constrained to a line through the origin,
pair of successive measurements, the arithmetic mean as the UAV is assumed to be symmetric along the by
between the average measured ground velocities corre- axis. The optimal scale factor ky∗ is obtained from the
sponds directly to the wind speed, which we call the roll maneuvers by the following optimization
3948
Ni
2
ky∗
= argmin wi ky xi − yi . (11)
ky i=1
2) Pitch maneuvers: For the bx -model, the dependent
variable is extended, to obtain the bx -axis parameters
stacked in the vector kx = (kx+ , kx− , ox ). We obtain the
extended dependent variable by
⎛ ⎞
I{θi >0} tan |θi |
xi = ⎝I{θi ≤0} tan |θi |⎠ .
1
The rest of the WLLS regression is analogous to the
one performed on the roll maneuvers. We acquire the
optimal parameter set kx by the following optimisation
Ni
2
kx∗
= argmin wi kx xi − yi . (12)
kx i=1
Fig. 6 depicts the resulting model fit, plotting the
freestream velocities yi against the tilt angles for each
of the roll and pitch maneuvers.
III. Estimation Framework
In order to reliably estimate the wind velocity, we use a
Kalman filter formulation [9], tracking the 2-dimensional
wind velocity vector I v W in the inertial north-east frame,
as well as a 2 × 2 covariance matrix P , capturing the
uncertainty about the states. The Kalman filter starts
with an initial guess for the state and covariance and Fig. 6: Model fit from constant tilt angle and altitude
then recursively alternates between a propagation step flight maneuvers for roll (upper) and pitch (lower). The
and a measurement step. measured data points (blue, transparent) are plotted into
A. Propagation Step a tilt angle to freestream velocity frame. The system
Typically, the propagation step is based on a process model with optimal parameters (red, solid) is shown with
model, which in this case captures the expected behavior 3σ-bounds (red, shaded area).
of wind and serves as a prediction of the wind speeds
between incoming measurements. In general, wind ve-
locity is known to constitute a dominant static part The covariance matrix Q of the noise parameter ηp
and a highly uncertain dynamic part, the wind gusts. can be tuned to capture the expected dynamic range of
For reference on the dynamic range of wind, a common wind.
model for simulating wind is the Dryden Gust Model [10].
It models the wind as a power spectral density (PSD) B. Measurement Step
function with a dominant static part at frequency 0 rad/s, In this step, we use the sensor measurements to obtain
and a dynamic part in the range of 0.1 − 1.5 rad/s. the inferred wind velocity vector I ṽ W , determined by
Due to this highly uncertain behavior, for the purpose equation (8). Along with a covariance matrix R, these
of prediction in the given Kalman filter, north and east are plugged into the Kalman filter at the measurement
wind speeds are best modelled by random walk step
xk+1 = xk + ηp (13) z = I ṽ W + ηm , (15)
with process noise ηp ∼ N (0, Q), modeled as additive where z is the measurement used as input to the
Gaussian noise. Hereby, xk denotes the state vector at Kalman filter, constituting the inferred wind speed vec-
the discrete timestep k. In this case, the state vector tor I ṽ W with additive Gaussian measurement noise
x corresponds to the north and east components of the ηm ∼ N (0, R).
wind velocity The uncertainty about the measurement model is
threefold:
vW[N ] • The state variance of the attitude estimates φ, θ
x = I vW = . (14)
vW[E] and ψ is given by the main state estimator by
3949
fusion of IMU and magnetometer measurements.
When propagated from quaternions to euler an-
gles and then through the wind model from equa-
tion (8), it amounts to a variance in the range of
10−6 −10−3 m2/s2 on the wind states.
• The state variance of the ground velocity vector I v G
is also given by the main state estimator by fusion
of IMU, magnetometer and GPS measurements. It
lies in the range of 0.02−0.2 m2/s2 .
• The modelling error quantified by the residual errors
rx and ry of the regressions from equations (12) and
(11) amount to rx = 0.09 m2/s2 and ry = 0.36 m2/s2
and are fixed to the vehicles body frame.
Evidently, the contribution of the attitude variance to
the wind estimate is a at least two orders of magnitude
smaller than both other error sources and can therefore
be neglected in this framework. The most dominant
source of uncertainty, namely the modelling error, is
composed of two body-fixed noise parameters rx and ry ,
which are propagated to the wind velocity estimates by
rotation around the yaw angle ψ. As for the uncertainty
about the ground velocity vector I v G , it is given in the
inertial north-east frame directly and is denoted by rN
and rE . Hence, the overall measurement noise matrix R
can be computed as
Fig. 7: Kalman filter flowgraph showing the process
r 0 r 0 model used in the propagation step (A) and the mea-
R = Tψ x Tψ + N . (16)
0 ry 0 rE surement model used for the measurement step (B).
3950
surements are delivered every 10 seconds at a resolution 50
Angle [◦ ]
of 22.5 ◦ and an internal measurement error of up to 7 ◦ . 0
This allows us to validate the general performance of the −50
wind estimator, however we cannot determine a true esti- −100
mation error with the current ground truth measurement
0 50 100 150 200 250
setup. Therefore, in this section we merely speak of an
approximate estimation error as an evaluation measure Time [s]
for the estimation of wind speed and direction.
60
The flight maneuvers performed to validate the wind
Angle [◦ ]
estimates include combinations of holding the vehicle’s 40
position against the wind (non-zero tilt angles), as well 20
as holding zero tilt angle and letting the vehicle’s position
drift with the wind. This has allowed decoupling the 50 100 150 200 250
effects of the different terms in equation (8) and has
Time [s]
helped in tuning the estimator parameters. Furthermore,
the experiments have been performed at a range of Fig. 8: Top: The estimated wind direction is plotted
varying orientations, i.e. yaw angles, to evaluate the mea- (blue, solid), along with its mean value over 10 second
surement model along both body-frame axes separately, segments (blue, dots). The ground truth measurement of
as well as coupled pitch/roll tilt angles. the wind direction (red, stars) is plotted for reference, as
well as the UAV’s heading, i.e. yaw angle ψ (blue dashed
B. Estimation Results line). Bottom: The estimation error (blue, circles), i.e. the
difference between the average estimated and measured
In the following, we evaluate the performance of the wind direction at 10 second intervals is plotted along with
proposed approach, demonstrating the results on a rep- the output resolution of the wind vane (red, dashed line)
resentative data set1 To compare the estimated states at 22.5 ◦ .
to the ground truth data, we convert the wind velocity
vector into direction and magnitude to match the sensor
output.
1) Wind Direction: The upper plot in Fig. 8 depicts 2) Wind Speed: Along the same evaluation criteria,
the estimated wind direction compared to the direction we observe the resulting magnitude of the wind velocity
delivered by the wind sensor at 0.1 Hz. Additionally, we estimate in Fig. 9, as we did for the wind direction.
have plotted the mean estimated wind direction over 10 s The top plot shows the estimated wind speed com-
intervals to match the sensor output for better visual pared to the averaged wind speed provided by the wind
evaluation. We can see that the estimated direction is sensor at 0.1 Hz. As with the wind direction, we have
well aligned with the ground truth and remains stable plotted the mean estimated wind speed over 10 s match-
w.r.t. changes in the yaw angle. The lower plot in Fig. ing the sensor output. Notice, the steep convergence from
8 shows the approximate estimation error, i.e. the dif- an arbitrary initialisation of 4 m/s towards the ground
ference between the estimated and the measured wind truth measurement within the first 2 seconds. On the
direction, with a mean error of approximately 15◦ . bottom plot, we can see the residuals between the esti-
It is important to note, that the approximate esti- mated wind speed and the ground truth measurements,
mation error of 15◦ falls into the same range of the with a mean difference below 0.4 m/s. This corresponds
measurement error of the wind vane, which is ±7◦ with to a relative error below 25%, clearly larger than mea-
a further depreciation by the crude output resolution of surement accuracy of the ground truth sensor. We con-
22.5◦ . Furthermore, the sample frequency of the ground firm the validity of the estimate within the presented
truth is by a factor of 500 smaller than the recorded estimation error, showing that there is still room for
estimate. Therefore, we cannot determine wether the improvement in terms of magnitude of the estimated
sensor measurement or the estimated wind direction is wind velocity.
closer to the true wind direction. We conclude that the Overall, the wind estimator shows promising quali-
estimation in terms of wind direction is valid and it is tative results. We have quantified the estimated wind
not possible to quantify further improvements to the velocity within the constraints of the deployed mea-
estimation accuracy with the current ground truth setup. surement setup. We see great potential for employing
the current wind estimate in applications that make
1 For practical and weather dependent reasons, the validation use of an approximate indication of wind speed and
set was collected on the predecessor of the prototype presented in direction, e.g. high-level navigation laws. However, the
the section II, however the modelling and estimation approach is estimation accuracy of the real-time wind speed may
identical. In section II, we chose to present the modelling data from
the airframe with more pronounced asymmetries along the bx axis not be sufficient for applications with higher demands
to emphasize the generalisability of the model. on accuracy at fast-changing dynamics, e.g. model-based
3951
Wind speed [m/s] Wind speed [m/s]
optimised hovering. Further improvements to the wind
estimator can include adding measurement models to the
3 Kalman filter, which consider the aerodynamic moment,
2 as well as the actuation response. Moreover, deriving a
1 dynamic model could help estimate fast-changing wind
0 50 100 150 200 250 gusts, as opposed to the static model derived in this work.
3952