Closed PottedRosePetal closed 1 year ago
The 6D representation involves using 3 numbers in intervals to represent a rotation. Rotation space is compact - there is no "edge" in any direction, but the 3 numbers have "edges" (which somehow "wrap") in all directions. It's not just extreme values of yaw? In all rotation directions there must be a discontinuity in representations. You need to work out yourself if this matters for your work, we can't help.
The documentation for matrix_to_rotation_6d says "Note that 6D representation is not unique.". I went over the paper a little bit, but it seems to be a little bit over my head. What exactly is meant with that? I tried out the following code and couldnt find anything indicating non-uniqueness?
for the quaternion part it seems like the cutoff is pi, then it behaves differently. I think I read something about that somewhere, but I think that would be nice to include in the docs if that is intended behaviour. For the last element in my output I get: Quaternions: tensor([6.2832, 6.2832, 6.2832]) tensor([-0.9720, -0.9720, -0.9720]) which seems insane to me tbh. But I dont really know quaternions so thats that. Its obvious that the angles are broken due to the gimbal lock, but that shouldnt apply for rotations besides a yaw of pi/2, at least it didnt for the 6D repr.
I was just wondering if I need to prepare for some bad surprises once I use the 6D representation to train my model.