Flying Robots

Intro

Wolfgang Hönig

Oct 17, 2025

Introductions

About Me

About You

  • Name
  • Major
  • Prior experience (programming, math, robots, …)
  • What you expect from the class

Class Format

Goals

  1. Learn to transition from math/theory to a working (compute-constrained) physical robot
  2. Understand the classic robotics pipeline on a concrete example
    • physics/simulation, controls, state estimation, planning
    • Missing: perception
  3. Learn about flying robots (mostly multirotors, focused on algorithms)

Non-Goals

  • Learning details about aerodynamics or flight dynamics
  • Mechanical/electrical challenges when building flying robots

Format / Learning Style

  1. Lectures on Foundations (\(\approx 4\))
    • Dynamics/Physics/Simulation
    • Controller
    • State Estimation
    • Motion Planning
  2. Programming in Rust (4 assignments)
    • Simulation
    • Validation on physical robots (or with real data)
    • Individual work (no teams)
  3. Seminar-style discussion

Robots

Bitcraze Crazyflie 2.1

  • Commercial, off-the-shelf (270 EUR)
  • Sensors:
    • Inertial Measurement Unit (IMU)
  • Actuators:
    • 4 brushed motors with propellers
  • Compute:
    • Flight control: STM32 microcontroller (ARM Cortex-M4, 168 MHz, 192 kb RAM, 1 MB flash)
    • Communication: nRF51 (ARM Cortex-M0, 32 MHz, 16 kB RAM)
  • Size: ca. 9cm rotor-to-rotor
  • Weight: ca. 27g

Flight Space

MAR 4.014

  • 7 x 4 x 2.75 m
  • with safety nets and padding
  • external tracking systems for ground truth
    • Optitrack motion capture
    • LightHouse

Time Commitment

9 ECTS (270h):

  • Lecture: \(5 \cdot 1.5 = 8h\)

  • Discussion \(15 \cdot 1.5 = 23h\)

  • 230h programming, testing (i.e. 15h/week)

  • Lectures/Discussions on Friday (10am-2pm; with breaks; MAR 0.013)

  • Time slots for practical part throughout the week (MAR 4.014)

Grading

  • Portfolio: 4 assignments (20 points each) + oral exam (15min; 20 points)
  • Assignment deliverables: code (for simulation and real flights), flight demo (for 3 out of the 4), verbal discussion (10min)
  • Grading scale:
1.0 1.3 1.7 2.0 2.3 2.7 3.0 3.3 3.7 4.0
95 90 85 80 75 70 65 60 55 50
  • This class does not count as “project” class, as required for some degrees!

Schedule (1)

Week Topic Notes
1 (Oct 17) Intro, Rust, Dynamics (1D + 2D)
2 Dynamics 3D Assignment 1 out
3 Discussion Enrollment due
4 Discussion
5 Grading Assignment 1 Grade Assignment 1
6 Geometric Controller (1D, 2D, 3D) Assignment 2 out
7 Discussion
8 Presentation of simulation results

Schedule (2)

Week Topic Notes
9 Flight tests
10 Flight tests Grade Assignment 2
(holiday)
(holiday)
11 (Jan 9 ) EKF Assignment 3 out
12 Discussion
13 Flight tests Grade Assignment 3
14 Motion Planning Assignment 4 out
15 Discussion
16 Flight tests Grade Assignment 4

Related Classes (TUB)

  • Robotics: Fundamentals, Robotics: both have practical parts (ground robots and manipulators)
  • Robotics Project, Event-based Robot Vision: Project, Learning and Intelligent Systems: Project: project courses without curriculum

We focus on compute-constrained systems and use Rust.

It’s a regular class, not a project, with emphasis on the practical part.

Related Material

  • Dynamics and Control of Autonomous Flight, book from 2025 by Mark W. Mueller
    • Lecture notes of classes at UC Berkley; less practical
  • Handbook of Robotics, Chapter 26 “Flying Robots”
    • More concerned with the mechanics than the algorithms
  • Robotics: Aerial Robotics on Coursera
    • Only MATLAB simulations
  • Underactuated Robotics by Russ Tedrake
    • Very mathy cross-section of robotics; simulation only

Prerequisites

  1. Background in robotics (e.g., Robotics course by Oliver Brock)
  2. Strong programming skills in a low-level language (e.g., C) and a high-level language (e.g., Python)

Enrollment Procedure

Due to the flight tests, the class is limited to 10 students.

  • If you remain interested, please enroll by Nov 1st
  • If you drop the class, please also send me a message / E-Mail (waiting list)

Statement of Changes To Last Year

  • Assignment 1 will include synthetic test data to rule out issues with dynamics implementation
  • The controller will include the correct formulation of higher-order terms (was incorrect in slides and scientific papers)
  • We will also use Rust for motion planning
  • (If time allows) A few more advanced topics for the lecture part

Questions

?