STM32-Based IMU Attitude Estimation
This project involves using an STM32 microcontroller and an MPU6050 sensor module to measure angular velocity and acceleration. The collected sensor data will be processed to determine the attitude angles (roll, pitch, and yaw) of the system. The project will include sensor calibration, data filtering (e.g., complementary or Kalman filter), and real-time angle computation for accurate motion tracking applications.
Introduction
This project aims to build a simple but functional system that can estimate the orientation (attitude) of an object in real time. We used an STM32F103C8T6 microcontroller together with an MPU6050 sensor, which includes a 3-axis gyroscope and a 3-axis accelerometer.
By collecting data from the sensor and processing it through our own code, we can estimate how the object is tilted—specifically its roll, pitch, and yaw angles. To make the results more stable and accurate, we applied filtering techniques (e.g., complementary filter) to combine acceleration and gyroscope data.
The project mainly involves:
Reading raw sensor data through I2C communication
Calibrating the sensor to reduce offset and noise
Using a filtering algorithm to compute stable angle values
Updating the angles in real time
This kind of system is commonly used in applications like drones, mobile phones, and robot balance systems. Our goal is to understand how such a system works from both a hardware and software perspective by building one from scratch.