This project implements a basic indoor positioning system using trilateration and Kalman Filter smoothing in Python. It was created as part of preparation for contributing to the Movement project under Google Summer of Code (GSoC) 2025.
The goal is to estimate the position of a moving object indoors by using distance measurements from three fixed beacons (A, B, C). We apply:
- Trilateration: Calculates raw position estimates from distances.
- Kalman Filtering: Smooths the noisy position estimates over time.
A CSV file contains the measured distances to three beacons (Distance A, Distance B, Distance C) at each timestamp. Example:
Distance A,Distance B,Distance C
2.1, 3.9, 2.8
...
Beacon coordinates:
- A: (0, 0)
- B: (5, 0)
- C: (2.5, 5)
Create a virtual environment and install dependencies:
pip install -r requirements.txtOpen the notebook:
jupyter notebook Indoor_Positioning_System.ipynbRun all cells to perform:
- Distance-based trilateration
- Kalman Filter smoothing
- Visualization
The final plot shows:
- Raw estimated positions from trilateration (blue dots)
- Smoothed trajectory using Kalman Filter (orange line)
This shows how filtering reduces noise in indoor location tracking.
This project demonstrates:
- Experience with Kalman Filters and state estimation
- Working with noisy sensor data
- Real-world use cases of motion smoothing
It aligns well with the Movement GSoC project on Kalman filters for animal tracking or indoor positioning.
[Kaustubh Dangche]
Masterβs in Data Science at Illinois Institute Of Technology, USA
GitHub: [Kaustubhdangche]