Skip to content

WIP: add CLASLIB parity tooling and track C work#4

Draft
rsasaki0109 wants to merge 9 commits into
developfrom
codex/track-c-claslib-parity-wip
Draft

WIP: add CLASLIB parity tooling and track C work#4
rsasaki0109 wants to merge 9 commits into
developfrom
codex/track-c-claslib-parity-wip

Conversation

@rsasaki0109
Copy link
Copy Markdown
Owner

Summary

  • add CLASLIB parity tooling, scripts, tests, and SSR-to-OBS/OSR support for fair comparison
  • carry the Track C CLAS parity work across OSR parity, WL/NL fixing, and the current beta-lane experiments
  • keep this as a draft because accuracy parity with CLASLIB is not finished yet

Current state

  • branch contains the current WIP used for CLAS parity investigation
  • current beta-lane state keeps the best-so-far late-epoch behavior plus a small non-GPS DD outlier drop in the fixed-beta path
  • fixed-rate parity is improved, but position accuracy is still not CLASLIB-equivalent

Latest parity numbers

  • 10 epochs: PPP fixed 8/10, RMS 3D 2.3049 m
  • 30 epochs: PPP fixed 28/30, RMS 3D 3.2995 m

Main remaining gap

  • the remaining gap appears to be in the beta/fixed residual space rather than OSR parity or basic WL/NL availability
  • this PR is intended as a checkpoint branch for review, not for merge yet

Validation performed

  • built gnss_ppp
  • ran CLASLIB parity runs for 10-epoch and 30-epoch cases

@rsasaki0109
Copy link
Copy Markdown
Owner Author

Added CLAS developer documentation in commit 1af9f24.

Scope of this docs-only update:

  • added a CLAS section to MkDocs nav
  • added CLAS Quick Start
  • added CLAS API & Flow
  • added CLAS Compact SSR Policies
  • added CLAS Parity Datasets & Artifacts
  • added CLAS Debug Tag Playbook
  • added CLAS Parity Blockers
  • enabled Mermaid rendering for the docs site
  • tightened docs regression coverage in tests/test_docs_site.py

Validation done locally:

  • python3 -m mkdocs build --strict
  • python3 tests/test_docs_site.py

This updates the CLAS development/docs surface only. It does not claim CLASLIB-equivalent solver accuracy.

Add concurrency groups, timeouts, PR triggers for develop branch,
and test_ci_workflows.py to validate workflow YAML structure.
- Startup phase variance inflation to reduce code→ambiguity bleed
- Separate iono/trop atmos token selection with freshness-first trop
- Beta state trop estimation in IF-LC fixed solution
- GPS-only DD retry and iono-aware dd_state_transform for NL AR
- WL-NL hold improvements with DD constraint persistence
- Extensive debug logging for startup epoch analysis
Root cause: navigation.cpp picked orbit/clock/code-bias from
non-preferred CLAS networks (e.g. network 1 at tow=230515),
causing 0.55m LOS + 1.12m cbias divergence from CLASLIB.

Changes:
- pickOrbit/pickClock prefer preferred_network_id entries
- mergeCodeBiasGroup uses strictBiasScore first-pass to block
  non-preferred network code bias, with codeFallbackScore fallback
- Interpolation before/after prefer preferred network entries
- Disable trop estimation in claslib-parity preset (matches CLASLIB
  tropopt=off; trop state was drifting to unphysical negative values)

Result: 30ep RMS 3D 2.77→2.25m, 100ep 5.90→3.90m, 300/300 fixed.
Swept 4/6/8/10/15/20/50σ on 30+100 epoch benchmarks.
8σ gives best combined score: 30ep 2.44m, 100ep 1.98m RMS 3D.
100ep improved from 3.90m to 1.98m (49% reduction).
Swept 2/3/5/10/20/50. Threshold 10 gives best 100ep RMS 3D = 1.34m
(was 1.98m at threshold 3). Higher threshold delays integer fixing
until position converges, preventing early mis-fixing.
All thresholds maintained 100/100 fixed rate.
SIS continuity delta was computed from observation-time interpolated
orbit/clock, giving 4x larger corrections than CLASLIB (e.g. G25:
-0.327m vs CLASLIB -0.084m). Now uses exact/held SSR epoch values,
reducing G25 delta to -0.092m. Remaining 9mm gap is from orbit
reference epoch resolution.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant