First tagged release of gnss_gpu — GPU-accelerated GNSS positioning for the urban canyon.
Highlights
- Beats the classic baseline where it matters. On UrbanNav Tokyo Odaiba, the
PF 100K (DD + smoother + stop-detect)filter reaches 1.36 m P50 / 4.11 m RMS vs RTKLIB demo5 at 2.67 m / 13.08 m over 12,228 aligned epochs (49% better median, 69% better RMS). - Fast. A full 1,000,000-particle filter step runs in 81 ms (≈12 Hz) on a consumer Ada GPU; a 10,000-epoch batch WLS solve takes ~1 ms. See
benchmarks/RESULTS.md. - City-aware NLOS handling. Ray tracing against PLATEAU 3D building meshes does line-of-sight / non-line-of-sight classification with a 57.8× BVH speedup.
- Try it in ~1 second, no GPU or data needed:
A CPU-only urban-canyon simulation contrasting naive least squares (P50 10.30 m) with the package's robust SPP solver (P50 2.00 m).
PYTHONPATH=python python3 examples/demo_urban_canyon_sim.py
What's inside
- Reusable Python library (
python/gnss_gpu/) and CUDA/C++ kernels (src/). - PF/RBPF, double-difference observations, FGO, and robust SPP experiments under
experiments/. - Honest, reproducible scoring against RTKLIB and EKF baselines; a live results snapshot regenerated from the committed CSVs.
Notes
This is an experiment-first research workspace, not a single polished product. Stable code lives in the library/native directories; fast-moving runs live in experiments/ and internal_docs/. See CONTRIBUTING.md to get involved.
License: Apache-2.0