papagina / RotationContinuity

Coder for "On the Continuity of Rotation Representations"
MIT License
338 stars 55 forks source link

Questions about continuous representation #17

Closed BossunWang closed 11 months ago

BossunWang commented 1 year ago

Hi expert, Nice work to build the continuous representation from rotation matrix(SO(3)). I have two questions to ask for hold continuous representation.

  1. I would like to use linear interpolation for rotation matrix, so I tranform rotaiotn matrix to quaternion then using slerp. But as you mention about quaternion maybe discontinuous, and I would like to transform rotation matrix to representation space R and linear interpolation directly, Is this way could be continuous and correct interpolation method?

  2. I would like to know when I transform by PCA or kernel PCA for representation space R, Is it hold continuous after this transform?

papagina commented 11 months ago
  1. linear interpolation directly in space R won't give you uniform interpolation in SO(3). Transforming to rotation matrix and then quaternion then using slerp probably is still the best way and won't cause continuity problem if in your task the rotation angles between the two interpolation targets are always within pi. Otherwise, a possible approach is to use atlas, e.g., using four quaternions to cover the full SO(3) space. you can read about quatx4 in this paper https://arxiv.org/abs/2006.06234
  2. you can't compress R to dimension less than 5 and keep continuous.