
IMU Experiments - Tilt & Dead Reckoning
Using a sense hat with integrated gyroscope and accelerometer, we wrote an algorithm to compute tilt of the sensor - similar to the tilt measure app on an iPhone.
The second part of the project involved using a Kalman filter to estimate position based on gyro and accel. Different algorithmic approaches showed different tradeoffs - either greater compounding error, or underestimation.


Description
Used a Sense HAT with integrated accelerometer and gyroscope to calculate real-time pitch, roll, and yaw, similar to an iPhone's tilt measurement.
Compared accelerometer- vs. gyroscope-based tilt estimation, analyzing tradeoffs in short-term accuracy vs. long-term drift.
Fused both sensors using a weighted average approach for better tilt estimation and evaluated sensor noise using Allan deviation plots.
Implemented 1D, 2D, and 3D Kalman filters to estimate position using raw acceleration and angular rate data.
Introduced clamping and damping techniques to reduce integration drift and improve stability, especially for slow movements.
Validated results using ground-truth movement tests (e.g., 6 ft linear and square trajectories), and quantified error propagation in each filtering strategy.
Learning Outcomes
1. Technical Skills & Knowledge
Sensor fusion and Kalman filtering (1D/2D/3D implementations)
Python-based sensor data acquisition and signal processing
Coordinate frame transformations, Euler angle computation, and drift mitigation
Allan deviation analysis for evaluating sensor noise
Integrating raw IMU data to compute orientation and estimate dead-reckoning position
2. General Project/Practical Skills
Experimental validation: Designing and analyzing tests using real-world ground truth
Algorithm comparison: Evaluating tradeoffs across different sensor fusion approaches
Debugging and iteration: Tuning filter parameters, handling sensor bias, and noise suppression
Data visualization: Using plots and motion traces to analyze system performance
Documentation
Reach full documentation and demos here: https://docs.google.com/document/d/1E5fZ6nX09ltbGOVrwGjnuRKZJN6xzdibY4oq_WEFK_4/edit?usp=sharing
Using a sense hat with integrated gyroscope and accelerometer, we wrote an algorithm to compute tilt of the sensor - similar to the tilt measure app on an iPhone.
The second part of the project involved using a Kalman filter to estimate position based on gyro and accel. Different algorithmic approaches showed different tradeoffs - either greater compounding error, or underestimation.
An algorithm was developed to compute tilt using a sense hat with a gyroscope and accelerometer, akin to an iPhone's tilt measure app. The project also utilized a Kalman filter for position estimation based on gyro and accelerometer data, revealing tradeoffs between compounding error and underestimation in different algorithmic approaches.