Rusty Flying Robots: Learning a Full Robotics Stack with Real-Time Operation on an STM32 Microcontroller in a 9 ECTS MS Course

This paper presents a novel 9 ECTS master's course where students learn a complete robotics stack by implementing nonlinear control and state estimation algorithms in Rust on both PC simulations and resource-constrained STM32 microcontrollers, emphasizing the avoidance of black-box software to achieve real-time flight.

Original authors: Wolfgang Hoenig, Christoph Scherer, Khaled Wahba

Published 2026-04-02
📖 5 min read🧠 Deep dive

This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Imagine you want to teach a class of students how to build a flying robot. Usually, professors face a tricky choice:

  1. The "Toy" Route: Teach them simple math and let them code in easy languages (like Python), but the robot is too slow to actually fly in the real world. It's like learning to drive in a video game where the physics are fake.
  2. The "Black Box" Route: Give them a pre-made, super-complex software kit (like a full car engine) so they can drive immediately, but they never learn how the engine works.
  3. The "Hard Mode" Route: Force them to write everything from scratch in difficult, old-school languages (C/C++). This is great for learning, but it takes years to build the software, leaving no time to learn the actual robotics science.

This paper describes a new, clever way to do it. The authors created a course called "Rusty Flying Robots" that forces students to build a real, flying drone from the ground up, but they use a modern programming language called Rust to make it possible.

Here is the breakdown using simple analogies:

1. The Challenge: The "Tiny Brain" Problem

Most advanced robots run on powerful computers (like laptops). But real drones need to be small and light, so they use tiny, weak microchips (called STM32).

  • The Analogy: Imagine trying to run a high-definition movie on a 1990s calculator. It's supposed to be impossible.
  • The Solution: The students had to write code so efficient that it could run complex math on this tiny chip in "real-time" (meaning the drone reacts instantly, not a second later). If the code is too slow, the drone crashes.

2. The Secret Weapon: Rust

The class didn't use Python (too slow) or C (too dangerous and hard to manage). They used Rust.

  • The Analogy: Think of C as a manual transmission car with no seatbelts; if you make one tiny mistake, the car explodes. Python is like an automatic car with a heavy, slow engine; it's easy to drive but can't go fast enough for a race. Rust is like a race car with an automatic seatbelt system. It forces you to drive safely (no crashes due to memory errors) but still lets you go at full speed.
  • The Result: Even though most students had never seen Rust before, they learned it quickly because the language "catches" their mistakes before the code even runs.

3. The Four-Step Journey (The Syllabus)

Instead of using pre-made tools, the students built the entire "brain" of the drone in four stages:

  • Step 1: Building the Simulator (The Flight Simulator)
    • What they did: Before touching a real drone, they had to write their own video game to simulate physics.
    • The Analogy: Instead of renting a flight simulator, they had to build the physics engine, the wind, and the gravity from scratch. This taught them exactly how the drone moves mathematically.
  • Step 2: The Controller (The Pilot)
    • What they did: They wrote the code that tells the motors how fast to spin to keep the drone steady.
    • The Analogy: This is the "pilot's hands." If the wind blows the drone left, the pilot must instantly push the right motor harder. The students had to write this math so it worked on the tiny chip without the drone spinning out of control.
  • Step 3: The State Estimator (The Eyes)
    • What they did: The drone has sensors (gyroscopes, cameras) that are noisy and imperfect. The students wrote code to guess the drone's true position.
    • The Analogy: Imagine trying to walk through a foggy room while wearing glasses that distort your vision. You have to use your brain to guess where the wall actually is. The students built a mathematical "brain" that filters out the noise to know exactly where the drone is.
  • Step 4: The Planner (The Navigator)
    • What they did: They taught the drone how to fly through narrow gaps and make sharp turns.
    • The Analogy: This is the "GPS." It doesn't just say "go straight"; it calculates a smooth, fancy path to dodge obstacles, like a parkour athlete jumping between walls.

4. The Outcome: Did it Work?

The course was a huge success.

  • The Students: They were mostly computer science or engineering students. They had to learn a new language (Rust) and complex math, but they loved it.
  • The Feedback: Students called it "one of the best lectures ever." They admitted it was hard and took a lot of time, but they felt a massive sense of accomplishment when their code actually made a real drone fly.
  • The Takeaway: You don't need to hide the hard parts of robotics. If you give students the right tools (like Rust) and let them build the whole system, they can handle advanced, real-world engineering challenges much faster than expected.

In short: This paper proves that you can teach students to build a high-tech, real-world flying robot from scratch, using a tiny computer, without needing a super-computer or a pre-made software kit. It turns the classroom into a real engineering lab.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →