To whom it may concern,
I am fairly new to GTSAM. But am starting to get more comfortable with the library.
I thought I'd highlight what I believe to be a degeneracy case in the gtsam::Pose3AttitudeFactor.
From what I can see, there exists two minimums in the following problem.
- R = I = [[1, 0, 0], [0, 1, 0], [0, 0, 1]] (upside up)
- R = [[-1, 0, 0], [0, -1, 0], [0, 0, 1]] (upside down)
When there should only be one (upside up).
In the problem, if I set the initial estimate to a rotation about the x-axis of 3 * pi / 4 radians, the solution converges to upside down.
Alternatively, if I set the initial estimate to a rotation about the x-axis of pi / 4 radians, the solution converges to upside up.
I believe this would not happen if the error were computed as the arc-length distance from one point on the unit sphere to the next.
In this case, upside down would result in a maximum error, instead of a minimum.
Let me know what you think,
Bradley Kohler