Awning is a self-contained quadrotor simulator and flight controller written in C, with a real-time 3D viewer built on raylib. It’s designed as an end-to-end sandbox for exploring flight dynamics, sensor modeling, state estimation, and control.
- Simulates a quadrotor as a rigid body with motor dynamics and basic aerodynamic effects
- Generates realistic onboard sensor data (IMU, barometer, GNSS, magnetometer) with noise, bias drift, and independent update rates
- Estimates full state (position, velocity, orientation) using an Extended Kalman Filter
- Stabilizes and tracks motion via a cascaded PID control stack (position → velocity → attitude → rate → motors)
- Provides real-time visualization with a 3D view and live telemetry/debug graphs
- A background simulation loop advances physics, sensors, and controller at fixed rates
- A separate rendering loop handles visualization, UI, and interaction
- A lightweight debug channel system streams internal signals to the UI for inspection