Add SphericalCamera Python bindings#2446
Merged
dellaert merged 3 commits intoborglab:developfrom Mar 5, 2026
Merged
Conversation
dellaert
reviewed
Mar 4, 2026
Member
dellaert
left a comment
There was a problem hiding this comment.
Nice !!!
I'm not sure we need the traits mechanism though. Unit3 is a 2D manifold and it has a Local method in its traits already. And the local method for Point2 is just subtraction. And because the dimension of Unit3 is also 2, there is also no need for dim Z.
…ementErrorHelper Remove the MeasurementErrorHelper traits mechanism and MeasurementTraits.h. Unit3 is a 2D manifold just like Point2, so traits<Measurement>::Local works directly for both types without needing a specialized errorVector path. https://claude.ai/code/session_01NGPWjL8oTZqkvqup7RxDMf
Simplify Unit3 measurement error: use traits::Local instead of Measur…
Contributor
Author
dellaert
reviewed
Mar 5, 2026
Member
dellaert
left a comment
There was a problem hiding this comment.
This looks more like it! Love it :-)
I’ll run CI to see if it compiles across platforms, then approve.
Thanks !!
dellaert
approved these changes
Mar 5, 2026
Member
dellaert
left a comment
There was a problem hiding this comment.
All required CI passed, so I’ll merge. Thank you again.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Hi, I'm not familiar with the project's contribution guidelines or conventions, so please let me know if there's anything I should change regarding code style, naming, testing, or the overall approach. Any feedback is welcome.
I have been working on enabling Structure-from-Motion (SfM) for 360-degree (omnidirectional) cameras using GTSAM and https://github.com/inuex35/gtsfm. With the SphericalCamera Python bindings added in this PR, combined with improvements we have made on the GTSFM side, it is now possible to run a full SfM pipeline for 360-degree cameras — from bearing-vector
measurements through to bundle adjustment — entirely in Python.