Closed rtkg closed 5 months ago
Two things are happening: 1) a bug in the velocity interpolation that failed to scale by the inverse of the time step, and 2) a difference between derivative representations. There are three choices, intrinsic angular velocity, extrinsic angular velocity, If $w$ is the angular velocity at a rotation $R$ expressed in local coordinates, then the a) intrinsic representation of the derivative would be $[w]$, b) the extrinsic (world space angular velocity) representation would be $[Rw]$, and c) the matrix derivative representation would be $[Rw]R$. At some point I chose c) because it matches more closely with the naive derivative. However, on second thought I think it would be better to use an extrinsic representation since it's more intuitive to set up.
I just pushed a change to main to make these changes. You can use patch_a_pip_install.py
to get the fixes. Let me know if this works.
That looks much better, thanks for the fix. I also think that using the angular velocity vector expressed in the inertial frame makes sense.
Hi, thanks for your work on this project.
I discovered some strange behavior when using SO3Hermite trajectory in that the angular velocities yielded by the .deriv() method don't correspond to the milestones I set when queried for the milestone times. Also, the curves look suspicious as shown in the minimal example below:
Maybe I'm just misunderstanding the meaning of 'outgoing velocities' in the argument list?