Hi, thanks a lot for open-sourcing this great work!
I’m currently processing DogML data for RL training, and I noticed a potential inconsistency in the computation of the root rotation quaternion in vis.py.
In recover_root_rot_pos, the quaternion is constructed as:
r_rot_quat[..., 0] = np.cos(r_rot_ang)
r_rot_quat[..., 2] = np.sin(r_rot_ang)
However, for a standard quaternion representation of a rotation around the Y-axis, the angle is usually halved, i.e.:
r_rot_quat[..., 0] = np.cos(r_rot_ang * 0.5)
r_rot_quat[..., 2] = np.sin(r_rot_ang * 0.5)
Without the 0.5 factor, the resulting quaternion seems to represent a rotation with doubled angle compared to the standard SO(3) definition.
I just wanted to check whether this was an intentional design choice (e.g., due to a specific convention in the dataset), or if this might be an oversight.
Thanks again for your excellent work!
Hi, thanks a lot for open-sourcing this great work!
I’m currently processing DogML data for RL training, and I noticed a potential inconsistency in the computation of the root rotation quaternion in
vis.py.In
recover_root_rot_pos, the quaternion is constructed as:However, for a standard quaternion representation of a rotation around the Y-axis, the angle is usually halved, i.e.:
Without the
0.5factor, the resulting quaternion seems to represent a rotation with doubled angle compared to the standard SO(3) definition.I just wanted to check whether this was an intentional design choice (e.g., due to a specific convention in the dataset), or if this might be an oversight.
Thanks again for your excellent work!