Learning-Based Quadcopter Wind Control

Learning-Based Quadcopter Wind Control

ISEF Category: Robotics and Intelligent Machines

Ready to Turn This Idea Into a Real Project?

This guide was put together with the help of AI research tools to give you a solid starting point. But a competitive science fair project lives in the details: refining your research question, fine-tuning your variables, analyzing your data, and presenting your findings like a seasoned scientist.

For next steps tailored to your interests, skill level, and timeline, work one-on-one with a MehtA+ mentor. Learn more about MehtA+ Science & Engineering Research Mentorship →

Subcategory: Control Theory  ·  Difficulty: Advanced  ·  Setup: University Lab  ·  Time: Full Year

The Hook

A small gust can push a quadcopter off course fast. That is why drone control is a big deal, even for tiny indoor flyers. Your project asks a smart question, can a controller learn the wind instead of just reacting to it?

What Is It?

A quadcopter stays up by constantly balancing thrust from four motors. A normal PID controller watches the error between where the drone should be and where it is, then corrects that error. PID stands for proportional, integral, and derivative. Think of it like steering a shopping cart with tiny, quick course corrections.

A disturbance observer tries to do one extra job. It estimates outside forces, like wind from a fan, and helps the controller cancel them before the drone drifts too far. The learning-based part means the observer improves from data, so it can adapt to patterns that a fixed controller may miss. You can test this first in simulation, then in software-in-the-loop, and, if you have safe access, in real flight.

Why This Is a Good Topic

This topic works well for a science fair because you can measure clear outcomes. Flight-path RMSE gives you a number you can compare across controllers, and wind from a fan gives you a repeatable disturbance. You also get to study a real problem in drones, which are affected by gusts, payload shifts, and sensor noise. A student can learn control design, simulation, data analysis, and experimental comparison in one project.

Research Questions

  • How does a learning-based disturbance observer change flight-path RMSE compared with a vanilla cascaded PID under fan wind?
  • What is the effect of wind direction on the observer's ability to keep a quadcopter on its planned path?
  • To what extent does observer training data from one flight pattern transfer to a new path shape?
  • Which disturbance estimate input, position error, velocity error, or acceleration error, gives the best tracking under the same wind load?
  • Does the learning-based observer reduce overshoot more than PID alone after a sudden wind change?
  • What is the effect of sensor noise on the gap between simulated performance and real-flight performance?
  • To what extent does the controller's benefit change as fan distance or fan speed increases?

Basic Materials

  • PyBullet simulation environment on a laptop.
  • Crazyflie or Tiny Whoop quadcopter for indoor testing.
  • Crazyflie client software or a SITL setup for simulated flight.
  • Motion capture system, overhead camera, or AprilTag tracking for position measurement.
  • Desk fan with adjustable speed for repeatable wind disturbance.
  • Markers or floor tape to define target waypoints.
  • Tripod or fixed camera mount for consistent video capture.
  • Spreadsheet or notebook for logging trial results.
  • Battery charger and spare batteries for repeated runs.

Advanced Materials

  • Access to a Crazyflie development kit or similar small quadcopter platform.
  • Motion capture system or multi-camera tracking setup for precise position data.
  • IMU telemetry stream from the drone for observer inputs.
  • Onboard or companion-computer logging setup for high-rate flight data.
  • Python environment with simulation and analysis libraries.
  • Wind-speed meter or anemometer to quantify fan output.
  • Safety net or indoor flight enclosure for protected testing.
  • Optional radio or telemetry bridge for real-time controller updates.

Software & Tools

  • PyBullet: Simulates quadcopter motion and external disturbances in a controlled virtual space.
  • Python: Handles controller logic, data logging, and comparison plots.
  • NumPy: Stores and processes flight data arrays for error calculations.
  • Pandas: Organizes trial results into tables for analysis across conditions.
  • Matplotlib: Plots trajectory error, disturbance response, and controller comparison graphs.

Experiment Steps

  1. Define the exact flight task, such as hover, straight-line travel, or waypoint tracking, so you can compare controllers on the same path.
  2. Build a simulation baseline with a standard cascaded PID controller and log flight-path error under no-wind and fan-wind conditions.
  3. Design the disturbance observer inputs and decide what the learner will estimate, such as wind-induced force or correction terms.
  4. Set up a fair comparison plan with the same vehicle model, same path, and the same disturbance schedule for every controller.
  5. Decide how you will validate results in SITL and, if safe access exists, in a real indoor flight setup.
  6. Plan your analysis metrics, including RMSE, overshoot, settling behavior, and trial-to-trial consistency.

Common Pitfalls

  • Training the observer on only one flight path, which makes it look good on the test path but weak on new paths.
  • Comparing controllers with different tuning levels, which mixes up better design with better parameter choice.
  • Using fan wind without measuring or repeating its placement, which makes the disturbance change from trial to trial.
  • Relying on simulation results only, which can hide sensor noise, delays, and motor limits that appear in real flight.
  • Logging too little data to compute RMSE, overshoot, and disturbance response cleanly across repeated runs.

What Makes This Competitive

A strong version of this project does more than show one controller beats another. You can test generalization across different paths, wind strengths, and disturbance directions. You can also compare simulation, SITL, and real flight to show where the model breaks down. Careful ablation tests, such as removing the learning part or changing the disturbance input, can make your results much stronger.

Project Variations

  • Test the same observer on a Crazyflie hover task and compare how well it holds position against fan gusts.
  • Swap the learning-based observer for a classic disturbance observer and compare tracking on a Tiny Whoop path-following task.
  • Keep the controller fixed and compare how different fan angles or fan speeds change flight-path error and recovery time.

Learn More

  • MIT OpenCourseWare, Control Systems: search MIT OpenCourseWare for undergraduate control systems lectures and notes.
  • NIST Digital Library of Mathematical Functions is not relevant here, so use PubMed instead: search for human factors or drone control review articles only if needed for context.
  • NASA Technical Reports Server: search for small UAV control, disturbance rejection, and flight dynamics reports.
  • IEEE Xplore or your school library portal: search for review articles on quadcopter disturbance observers and adaptive control.
  • ROS and Gazebo documentation: use the free project docs to learn about simulation, sensors, and flight-control workflows.
  • Crazyflie documentation: read the official docs for platform limits, logging, and indoor flight setup.

For next steps tailored to your interests, skill level, and timeline, work one-on-one with a MehtA+ mentor. Learn more about MehtA+ Science & Engineering Research Mentorship →

To discover more projects, visit the MehtA+ Science Fair Project Discovery Hub​ →

Shopping Cart