Is your local coordinate derivative wrong?
I am reading your GTSAM4.0 code about using Betweenfactor and pose3d type to get pose graph optimization results. I read the book and paper you mentioned in the code: "Chirikjian11book2" and "Barfoot14tro". In these two papers, the SE3 Expmap derivative matrix should be: [J_(w) Q; Z_3x3 J_(w)] But in your code the SE3 Expmap derivative matrix is: [J_(w) Z_3x3; Q J_(w)] Is your code wrong? or I am wrong? The code I mentioned is in Pose3.cpp/computeQforExpmapDerivative
Comments (4)
-
-
We do have unit tests for this. I also think the difference is in the order of rotation and translation in se3 vectors as you said. Barfoot14tro uses the first part for translation (See eq. 4 in their paper).
-
OK, reporter, if you're convinced by this, please close the issue, or give arguments why our unit test is flawed.
-
- changed status to resolved
We think derivatives are correct, and reporter is confused about Lie algebra convention used by GTSAM. Unit tests confirm. Open to re-opening if reporter can provide new evidence.
- Log in to comment
Could be :-) But conventions often differ in the literature. Two things to know about GTSAM conventions:
T <- T * Exp(\xi)
\xi
is laid out rotation first, then . translation.Still convinced? Also, is there no unit test that checks this? Tagging @thduynguyen