Repository navigation
v0.2 — Audited structural GNSS methods
Highlights
- Completes the seven-method structural GNSS audit: weighted PF modes, fixed-lag FFBSi, DD-RTK/IMU ESKF, WCP, switchable pseudorange, signal-aware Doppler, and Recurrence Vector.
- Adds operational, opt-in DD-RTK/IMU tight coupling with live ambiguity covariance, carrier/code DD updates, slip retirement, partial ambiguity resolution, and bounded soft reset behavior.
- Adds research implementations and reproducible evidence for WCP, switchable factors, signal-aware Doppler, FFBSi, weighted PF modes, and candidate 3DMA recurrence methods.
- Moves the native project to required C++20/CUDA C++20 and validates CUDA 12.4 builds with a pinned modern CMake toolchain.
- Publishes audited full-run and blocked-holdout artifacts, explicit adoption decisions, and fail-closed artifact checks.
- Refreshes the README hero animation and results presentation around the structural-method milestone.
Release posture
Several new estimators remain opt-in or diagnostic-only where holdout evidence did not justify production adoption. The audit records both improvements and regressions rather than silently enabling research paths.
Validation
The release commit passed all eight repository CI jobs, including CUDA build/import, Python and wrapper smoke suites, lint, repository hygiene, site smoke, and workflow lint.
What's Changed
- chore(repo): untrack result artifacts + path-lint CI + branch protection by @rsasaki0109 in #101
- feat(ppc): commit ranker_gici_cluster_override selector mode by @rsasaki0109 in #102
- feat(gsdc2023): add TripWhitelistDDGate (default-deny DD-carrier gate) by @rsasaki0109 in #103
- feat(gsdc2023): divergence-gated 2-stage residual re-solve (FGO VD path) by @rsasaki0109 in #97
- feat(gsdc2023): opt-in DGNSS base correction for FGO-only rows by @rsasaki0109 in #99
- fix(bvh): route compute_multipath through the batch kernel by @rsasaki0109 in #104
- Validate ephemeris bindings and remove legacy BVH multipath kernel by @rsasaki0109 in #105
- Validate multipath and raytrace/BVH bindings by @rsasaki0109 in #106
- Validate skyplot and EKF bindings; update validation queue by @rsasaki0109 in #107
- Validate PF, RTK, SVGD, PF3D bindings; add input-shape docs by @rsasaki0109 in #108
- Refactor: shared input_validation helpers (Wave 1) by @rsasaki0109 in #109
- Refactor: shared pybind_validation header (pilot) by @rsasaki0109 in #110
- test: gap wrapper validation tests (Wave 2b) by @rsasaki0109 in #111
- Validate diffraction, signal_sim, and rtklib_spp (Wave 3) by @rsasaki0109 in #112
- Document BVH empty-mesh policy (Wave 4 C3) by @rsasaki0109 in #113
- Document EKF dual state backends (Wave 4 C4) by @rsasaki0109 in #114
- Add NLOS Waves 1-4: PF/DD measurement-layer soft weights by @rsasaki0109 in #117
- Wave 2: ranker bootstrap gate closed (oracle headroom 0.0 pp) by @rsasaki0109 in #118
- inuex35 TC-FGO benchmark campaign WP3-WP9: scorer, FGO backbone, RTK sweeps, canyon root cause by @rsasaki0109 in #119
- inuex35 TC-FGO campaign WP10-WP12e: Python port, Schur AR stack, closure by @rsasaki0109 in #120
- WP14 verified campaign closure: gnssplusplus GTSAM TC-FGO beats inuex35 (submodule bump + benchmark doc) by @rsasaki0109 in #121
- RB-FGO-PF milestone-2 win + WP15 CUDA batch-LAMBDA by @rsasaki0109 in #122
- Show RB-FGO-PF milestone in README by @rsasaki0109 in #123
- Split ParticleFilterDevice into config/runtime/smoother modules (Wave 5) by @rsasaki0109 in #115
- Add examples demo chooser and CI wrapper smoke job (Wave 6) by @rsasaki0109 in #116
- Reuse PF device observation scratch buffers by @rsasaki0109 in #124
- Fuse PF device DD weight updates by @rsasaki0109 in #125
- Fuse PF DD likelihood kernels by @rsasaki0109 in #126
- Add audited GNSS structural methods by @rsasaki0109 in #127
- Fix CUDA20 CI toolchain by @rsasaki0109 in #128
- Bump version to 0.2.0 by @rsasaki0109 in #129
Full Changelog: v0.1.0...v0.2.0