Onboard Wind-Preview Model Predictive Control Using Pitot-Static Sensing for Multirotor UAVs
Authors: Bas Meere, Eline Wisse, Laurens Vousten, Sander Doodeman, Elena Torta, Paula Chanfreut, Duarte Antunes
Organizations: Department of Mechanical Engineering, Eindhoven University of Technology, 5612 AE Eindhoven, The Netherlands, in the Control Systems Technology group · Department of Mechanical Engineering, Eindhoven University of Technology, 5612 AE Eindhoven, The Netherlands, in the Robotics group
Effective wind gust rejection and stable hovering are critical for the outdoor operation of autonomous drones. However, existing gust rejection methods are primarily reactive, inferring the disturbance from the resulting motion or measuring it at the airframe. Either way, the wind has already begun to act before it can be compensated. In this work, we anticipate the gust instead by measuring the wind ahead of the drone with a low-cost, low-weight pitot-static sensor mounted on a boom. The resulting wind preview is incorporated into a nonlinear model predictive controller (MPC), which optimizes the drone motion while anticipating wind disturbances. A longer boom offers more preview time but adds inertia and degrades flight performance. We characterize this trade-off in simulation and show that the optimal preview distance is not a fixed property of the platform, but shifts with the wind speed and with how quickly the drone can respond. Indoor hardware experiments confirm the trend and show that the proposed controller substantially improves hover performance against a PX4 baseline and an otherwise identical wind-unaware MPC. Outdoor experiments show that the error along the wind direction is reduced by 54 percent with respect to the baseline, demonstrating that a single wind-aligned sensor can significantly improve hovering performance.
Figures & tables
Fig. 1 : Outdoor flight experiment with a boom-mounted pitot-static sensor. The boom measures the wind upstream of the drone, giving the MPC a preview of incoming gusts to improve hover performance in windy conditions.
Fig. 2 : Angle sensitivity of the pitot-static sensor. A pressure coefficient Cp = 1 means the probe registers the full flow. Two repeated sweeps are shown.
Fig. 3 : Wind speed measurement comparison between a static anemometer and the pitot tube mounted on a hovering drone. Even at low wind speed and while hovering the pitot sensor is able to capture the wind speed effectively.
Fig. 4 : Control diagram of the wind-preview MPC including wind sensing and the PX4 inner loop. The boom length D is shown dashed as it is a configuration parameter rather than a runtime signal.
Parameter
Value
Parameter
Value
mdrone
2.06 kg
Q
diag(5,5,3,1,1,1,6,6,6)
μboom
41 g m−1
R
diag(0.1,1,1,1)
msensor
5 g
P
2 Q
A
0.1 m2
N
30
Cd
0.5
Ts
1/30 s
αEMA
0.05
TMA
60 s (0.1 s indoor)
TABLE I : Parameters used in simulation and on hardware.
Fig. 5 : Segment of longitudinal, lateral and vertical wind components of a 7 m/s field generated under IEC class A normal turbulence. Note the different vertical scales.
Fig. 6 : Position error in x for a simulated flight with three different boom lengths.
Fig. 7 : Standard deviation of the position error in x against boom length, for four mean wind speeds. Longer booms give more preview time but add inertia, producing an optimum at 1.25 m for 4 and 7 m/s (circled). At 2 m/s the drone is fast enough that boom length has little effect, and at 10 m/s the preview time is too short to help much.
Fig. 8 : Performance improvement with boom length at 4 m/s wind for an artificially slowed drone, obtained by limiting the maximum body rate in the MPC (deg/s). Slower platforms benefit more from preview.
Fig. 9 : Indoor experimental setup where the drone hovers in front of a fan, with the boom-mounted pitot tube pointing into the flow. A sheet in front of the fan is opened rapidly to generate a repeatable gust.
Fig. 10 : (Top) Mean position error (solid) with one standard deviation (shaded) for each controller. RMSE over the window is 0.144 m for the PX4 baseline, 0.120 m for the wind-unaware MPC, and 0.048 m for the wind-aware MPC. (Bottom) Mean wind speed at the boom, pooled across all runs.
Fig. 11 : (Top) Mean position error (solid) with one standard deviation (shaded) for four different boom lengths. (Bottom) Mean wind speed at the boom, pooled across all runs.
Boom length [m]
RMSE [m] (2 m/s)
RMSE [m] (4 m/s)
0.5
0.0593 (0.010)
0.0836 (0.009)
0.75
0.0602 (0.008)
0.0722 (0.009)
1.0
0.0569 (0.010)
0.0652 (0.017)
1.25
0.0552 (0.006)
0.0538 (0.009)
TABLE II : Hardware performance for different boom lengths at two wind speeds. Values are the mean RMSE over 10 runs, with the standard deviation in parentheses.
Fig. 12 : Position error for the outdoor experiments. RMSE along x , the direction aligned with the boom, improves by 54 percent, while y stays similar. The setpoint changes to the current position when changing controllers.
Small multirotor aircraft are increasingly tasked with operations in the atmospheric boundary layer, where turbulent winds comparable to the vehicle's airspeed degrade trajectory tracking and can defeat conventional feedback control. This work illustrates a two-stage learning pipeline that first estimates the local wind from onboard kinematics and dynamics and then exploits that estimate inside a reinforcement learning (RL) flight controller. The wind estimator, an attention-augmented gated recurrent network trained on thousands of simulated flights through von Karman turbulence with power-law shear and veer, recovers the horizontal wind vector with a per-flight root-mean-square error of 0.40 m/s and a direction error of 3.2 degrees on unseen wind regimes, an accuracy near the floor imposed by unresolved turbulence, and generalizes to vertical ascent profiles with a skill score of 0.861 over a constant-wind reference. A proximal policy optimization controller receiving the frozen estimator's output reduces horizontal trajectory tracking error by 48% relative to a wind-blind proportional-derivative baseline across mean winds of 4 m/s to 12 m/s, winning on 100% of evaluation episodes. A three-way ablation decomposes this improvement into a kinematic component, available without wind information, and a wind-perception component; the perception share rises with wind speed, from small in light winds toward roughly half the total benefit in strong winds, consistent with the quadratic scaling of aerodynamic drag. The controller degrades gracefully on out-of-distribution winds of 13 m/s to 15 m/s, where the baseline fails catastrophically.
Local wind conditions strongly influence drone performance: headwinds increase flight time, crosswinds and wind shear hinder agility in cluttered spaces, while tailwinds reduce travel time. Although adaptive controllers can mitigate turbulence, they remain unaware of the surrounding geometry that generates it, preventing proactive avoidance. Existing methods that model how wind interacts with the environment typically rely on computationally expensive fluid dynamics simulations, limiting real-time adaptation to new environments and conditions. To bridge this gap, we present WESPR, a fast framework that predicts how environmental geometry affects local wind conditions, enabling proactive path planning and control adaptation. Our lightweight pipeline integrates geometric perception and local weather data to estimate wind fields, compute cost-efficient paths, and adjust control strategies, all within 10 seconds. We validate WESPR on a Crazyflie drone navigating turbulent obstacle courses. Our results show a 35.6% reduction on average in maximum trajectory deviation and a 24.6% improvement in stability compared to a wind-agnostic adaptive controller.
Wind disturbances remain a key barrier to reliable autonomous navigation for lightweight quadrotors, where the rapidly varying airflow can destabilize both planning and tracking. This paper introduces GustPilot, a hierarchical wind-resilient navigation stack in which a deep reinforcement learning (DRL) policy generates inertial-frame velocity reference for gate traversal. At the same time, a geometric Incremental Nonlinear Dynamic Inversion (INDI) controller provides low-level tracking with fast residual disturbance rejection. The INDI layer achieves this by providing incremental feedback on both specific linear acceleration and angular acceleration rate, using onboard sensor measurements to reject wind disturbances rapidly. Robustness is obtained through a two-level strategy, wind-aware planning learned via fan-jet domain randomization during training, and rapid execution-time disturbance rejection by the INDI tracking controller. We evaluate GustPilot in real flights on a 50g quad-copter platform against a DRL-PID baseline across four scenarios ranging from no-wind to fully dynamic conditions with a moving gate and a moving disturbance source. Despite being trained only in a minimal single-gate and single-fan setup, the policy generalizes to significantly more complex environments (up to six gates and four fans) without retraining. Across 80 experiments, DRL-INDI achieves a 94.7% versus 55.0% for DRL-PID as average Overall Success Rate (OSR), reduces tracking RMSE up to 50%, and sustains speeds up to 1.34 m/s under wind disturbances up to 3.5 m/s. These results demonstrate that combining DRL-based velocity planning with structured INDI disturbance rejection provides a practical and generalizable approach to wind-resilient autonomous flight navigation.
Amir Atef Habel, Roohan Ahmed Khan, Fawad Mehboob +2
Intelligent Space Robotics Laboratory, Center for Digital Engineering, Skolkovo Institute of Science and Technology, Moscow, Russia.