This is a follow-up to my post here:
https://groups.google.com/g/gtsam-users/c/CciNzw_PC8I
I did get GenericProjectionFactor to work with the changes I mentioned in that previous post. One user also mentioned trying smart projection factors as they seem to inherently handle those degenerate states, which I would like to try. However, looking at SmartProjectionPose3Factor (in the Python API) it looks like it is structured a bit differently than other factors. Please correct me if I am misunderstanding anything below.
It looks like SmartProjectionPose3Factor must contain all of the "projection factors" within the same factor object (so one Factor per landmark). This contrasts with the GenericProjectionFactor which allows users to create multiple factors (one Factor per pixel observation, and thus we can have multiple factors per landmark) associated with the same landmark. Is there a way to use smart projection factors (via the Python API) in the same style as the GenericProjectionFactors, where I can define the SmartProjectionPose3Factor per each observation, and just initialize each factor with the landmark ID that the factor 'belongs' to?
Thanks in advance!