Add blog post: Centimeter-Level Positioning with GTSAM: Double-Difference Factors for RTK GNSS#80
Add blog post: Centimeter-Level Positioning with GTSAM: Double-Difference Factors for RTK GNSS#80inuex35 wants to merge 12 commits into
Conversation
51ab29a to
afd13b2
Compare
Blog post covering the new DD pseudorange and carrier-phase factors contributed in borglab/gtsam#2502, including tightly-coupled GNSS-IMU fusion and a factor graph diagram. https://claude.ai/code/session_01GXrAYZRa5dsPzajT6cMfUW
d4dafc8 to
46bf56a
Compare
|
Nice start! Maybe add one of the challenge images and your result ? |
16e206e to
47ca857
Compare
Add blog post on RTK GNSS double-difference factors in GTSAM
|
Thanks! Added a Results on PPC-Dataset section with a Tokyo trajectory figure (truth / float / fix + error-colored view) — let me know what you think. |
|
Some more comments:
|
…ormatting - Replace co-author with single author (Kosuke Inoue, independent researcher) - Fix carrier-phase formula: replace LaTeX thin space after lambda with \cdot - Restore bullets for basic/lever-arm factor variants with short labels; disable justify on this list to avoid wide gaps around long code tokens - Add paragraph on LAMBDA fix-and-hold workflow (two enforcement modes, held until cycle slip) - Extend factor-graph caption with the ambiguity-variable workflow - Correct Tokyo trajectory caption: truth=gray, FLT=red, FIX=green; bottom row shows 3D error vs. ground truth via blue-to-red colormap Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Address review request to show the actual factor equations: the unary pseudorange residual and the binary carrier-phase residual, matching the GTSAM PR #2502 implementation (model + lambda*(N_ref - N_target) - observed).
Add that the reference satellite is typically chosen with high elevation and strong signal strength, since it is shared across all double differences in an epoch and is least affected by multipath/atmosphere.
Double differences are only formed within the same GNSS system (shared time reference); mixing constellations would leave inter-system biases uncancelled, so a reference satellite is picked per constellation.
Each DD carrier-phase factor is now drawn connecting the pose to BOTH ambiguity variables (N_ref and N_target), matching the ternary factor in the text/residual. The figure shows one unary DD pseudorange factor and one DD carrier-phase factor per reference/target satellite pair per epoch, with N_ref/N_target shared across epochs. Caption and intro paragraph updated accordingly.
It connects the pose plus N_ref and N_target (three variables).
|
Thanks, Frank! Addressed all points:
Let me know if you'd like more changes! |
This PR adds a blog post introducing the double-difference GNSS factors from borglab/gtsam#2502.
The post covers:
Why double differencing cancels satellite/receiver clock biases and atmospheric terms
The four new factors (DoubleDifferencePseudorangeFactor, DoubleDifferenceCarrierPhaseFactor, and their lever-arm variants)
A factor graph diagram for tightly-coupled GNSS-IMU positioning