-
Notifications
You must be signed in to change notification settings - Fork 12
Optimization Backends
JokerJohn edited this page Apr 23, 2026
·
6 revisions
The standalone project uses the Python optimizer as the default backend.
Why:
- simpler installation
- no mandatory ROS / catkin requirement
- consistent integration with the PyQt + Open3D GUI
- validated parity against the legacy C++ backend
The C++ backend is still supported as an optional fallback.
Use it when:
- you already have the legacy backend environment
- you want direct parity checks against historical runs
- you need a fallback when Python GTSAM is temporarily unavailable
The Python backend follows the same runtime-parameter precedence used by the legacy optimizer:
- explicit CLI / GUI options
runtime_params.yaml- validated offline defaults
Both backends export:
pose_graph.g2ooptimized_poses_tum.txtglobal_map_manual_imu.pcdtrajectory.pcdpose_graph.pngmanual_loop_report.json
The full output layout is:
-
manual_loop_projects/<project_id>/- edit-state and resume files
-
manual_loop_runs/<run_id>/- actual optimizer outputs
-
manual_loop_exports/<export_id>/- final-export manifest pointing to one selected run
Manual Loop Closure Tools · Repository · README · MS-Mapping