Quadcopter Inertial Navigation System
Real-time attitude estimator fusing accelerometer and gyroscope data from an MPU-6050 IMU using rigid-body kinematics and Newton–Euler dynamics. Custom MicroPython driver for the RP2040 microcontroller.
Governing Equations
Methodology
The attitude estimator reads raw 6-DOF IMU data (3-axis accelerometer + 3-axis gyroscope) and estimates roll, pitch, and yaw in real time. The gyroscope integration is complemented by accelerometer-based tilt correction to prevent drift — a complementary filter approach. The custom MicroPython library implements I2C communication with the MPU-6050, handles register-level reads, and applies calibration offsets. Navigation output is passed to a Pixhawk flight controller to close the stabilisation loop. The driver has been published on GitHub and adopted by external developers.