All Projects
B.E. Thesis Project · 2022 – 2023

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.

MicroPythonRP2040IMUKinematicsNewton-EulerPixhawk

Governing Equations

Newton–Euler (rotational)
Iω˙+ω×(Iω)=τ\mathbf{I} \dot{\boldsymbol{\omega}} + \boldsymbol{\omega} \times (\mathbf{I} \boldsymbol{\omega}) = \boldsymbol{\tau}

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.

Simulation Results

Simulation visualisation coming soon