SETU
GPS-denied egomotion tracking
Offline navigation that keeps tracking a vehicle through GPS outages, using the phone’s own sensors and maps.
207 KBon-device model
- 1–5 ms inference
- 227 Hz sensor pipeline
- 84,000+ parameters
- C++20
- Kotlin
- Android
- PyTorch
- TensorFlow Lite
- Eigen
- GNSS/IMU
- RI-EKF
- MapLibre
How SETU works
- Problem
- GPS drops out in GNSS-denied environments, and navigation has to bridge the outage offline.
- What he built
- An offline navigation system for GNSS-denied environments, combining inertial sensing, road constraints, and map-based localization to bridge GPS outages.
- A Spectral Velocity Odometry (SVO) pipeline that extracts wheel-rotation frequencies from smartphone accelerometer vibrations to estimate vehicle speed without double-integrating acceleration.
- An on-device CNN-GRU velocity model trained on real vehicle recordings — 207 KB, 84,000+ parameters, 1–5 ms inference on mobile devices.
- A high-rate sensor pipeline processing real driving data at up to 227 Hz, with offline maps, continuous GNSS-to-dead-reckoning handover, and deterministic replay for validation.