Skip to content

step2: persist ENU origin + GNSS/TUM tracks in session file - #514

Open
michalpelka wants to merge 1 commit into
mainfrom
mp/save_gnss_to_session
Open

step2: persist ENU origin + GNSS/TUM tracks in session file#514
michalpelka wants to merge 1 commit into
mainfrom
mp/save_gnss_to_session

Conversation

@michalpelka

Copy link
Copy Markdown
Contributor

Session::save()/load() only handle point clouds, so the GNSS track, TUM track and ENU projection origin (previously always re-derived from the first GNSS pose) are now written into / read back from the *.mjs JSON as extra "enu_origin", "gnss_measurements" and "tum_trajectory" keys. All keys are optional; older sessions load unchanged.

Also fix Session::load() path resolution: getNewPath() now keeps a referenced .laz/.csv path as-is when it still exists on disk, only relocating next to the session file as a fallback. This lets a session saved to a directory other than the one holding its scan files (e.g. one level up from a lio_result_* folder) reload its point clouds.

New PoseGraphLoopClosure::use_gnss_correspondences flag (default true). When off, graph_slam() adds no GNSS <-> LiDAR-trajectory observations to the optimisation; the GNSS track is still drawn. Exposed as a checkbox in the Manual Pose Graph Loop Closure GUI when GNSS poses are loaded.

@michalpelka
michalpelka force-pushed the mp/save_gnss_to_session branch from 4533849 to 6a7bdf1 Compare September 1, 2026 14:15
Session::save()/load() only handle point clouds, so the GNSS track, TUM
track and ENU projection origin (previously always re-derived from the
first GNSS pose) are now written into / read back from the *.mjs JSON as
extra "enu_origin", "gnss_measurements" and "tum_trajectory" keys. All
keys are optional; older sessions load unchanged.

Also fix Session::load() path resolution: getNewPath() now keeps a
referenced .laz/.csv path as-is when it still exists on disk, only
relocating next to the session file as a fallback. This lets a session
saved to a directory other than the one holding its scan files (e.g. one
level up from a lio_result_* folder) reload its point clouds.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

New PoseGraphLoopClosure::use_gnss_correspondences flag (default true).
When off, graph_slam() adds no GNSS <-> LiDAR-trajectory observations to
the optimisation; the GNSS track is still drawn. Exposed as a checkbox in
the Manual Pose Graph Loop Closure GUI when GNSS poses are loaded.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@michalpelka
michalpelka force-pushed the mp/save_gnss_to_session branch from 6a7bdf1 to 1624a57 Compare September 1, 2026 15:04
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