Sensor Fusion for Accurate Motion Tracking

Fusing noisy GPS and accelerometer data using a Kalman filter

Key insight

Estimating motion from real sensors is difficult:

  • Accelerometer → high-frequency but noisy and drifting
  • GPS → accurate but low-rate and noisy

A Kalman filter combines both to recover a stable and accurate trajectory.


System

Simulated 2D motion with:

  • ground-truth trajectory
  • noisy accelerometer data
  • low-rate GPS updates

A discrete-time state-space model estimates:

  • position
  • velocity

using recursive Kalman filtering.


What I did

  • Built a modular Python system for motion simulation and sensor fusion
  • Implemented discrete-time state-space model and Kalman filter
  • Simulated realistic sensor noise and multi-rate measurements
  • Evaluated estimation accuracy using RMSE

Methods & tools

  • Language: Python
  • Core: Kalman filtering, state-space modeling
  • Design: modular architecture
  • Evaluation: trajectory comparison and RMSE

Key results

1. Reduced estimation error

  • Position RMSE reduced by ~20% vs raw GPS

2. Stable trajectory reconstruction

  • Noisy measurements filtered into a smooth trajectory
  • Velocity estimates remain consistent

3. Multi-rate sensor fusion

  • Combines high-rate accelerometer with low-rate GPS
  • Handles asynchronous measurements robustly

Takeaway

Sensor fusion combines models with measurements to estimate hidden states.

This project shows how Kalman filtering improves accuracy and robustness in noisy environments.


Media


▶️ View more videos →


Code

  • GitHub: https://github.com/huzaifrahim/physics_sensor_fusion