Hi. I'm new to this group. I have been following it a bit since I started to do some experiments with GTSAM, and it has been helping me already getting a better grip on this stuff. Even with the documentation and tutorials out there, it's not that easy to digest all that GTSAM has to offer!
QuestionWhy is the noiseModel of the BearingFactor3D two dimensional? The measurement that goes with this factor is a Unit3 (3d local coordinate vector), so I'd expect to supply some noise model that expresses the noise in those components.
Background
I'm experimenting with a
NonlinearFactorGraph that has many
Pose3 nodes 'connected' with
BetweenFactorPose3 constraints. Some of them have Priors on their translation component, which works fine with
PoseTranslationPrior3D.
This graph optimizes with the given constrains and reasonable results, which is great.
Now I want to add observations made from some of these nodes to landmarks with known positions. None of these landmarks are unique, but their position is known and they are somewhat sparse - within the observational accuracy there will be no alternatives.
I was hoping this would be easy, but it turns out not so simple (at least not for me, novice GTSAM user).
I've managed to get something working. The idea is to add Point3 nodes to the graph for landmarks that have been observed. Since these come with known good positions, I'm inserting a
PriorFactorPoint3 for each of these with a very strict noise model.
Then, for each node with an observation of that landmark, I'm adding a
BearingFactor3D between the observation pose and the landmark point. This seems to be working as well, although the effect is kind of disappointing.
This may be due to the noiseModel used with that BearingFactor3D. To my surprise, this must be a 2 dimensional model, which I don't get. The measurement that goes with this factor is a 3d Unit3 vector, in local coordinates of the observation pose. So why is the noiseModel required to be a 2D model?
So I guess I'm not fully grasping the details here, and perhaps that's also why the effect of adding these observations does not seem to have much effect.
Regards,
Robert