You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thanks for implementing the 6D rotation control in the environment! However, I noticed that IsaacGym and pytorch3d use different conventions for quaternions that lead to trouble:
elifself.act_rot_repr=="rot_6d":
importpytorch3d.transformsaspt# Create "actions" dataset.rot_6d=action[:, 3:9]
rot_mat=pt.rotation_6d_to_matrix(rot_6d)
# pytorch3d has the real part first (w, x, y, z)quat=pt.matrix_to_quaternion(rot_mat)
action_quat=quat[env_idx]
# IsaacGym expects the real part last (x, y, z, w)action_quat=torch.cat([action_quat[1:], action_quat[:1]])
Or, maybe there's a nicer way to make sure the conventions align!
Thank you!
Lars
The text was updated successfully, but these errors were encountered:
Hi @minoring !
Thanks for implementing the 6D rotation control in the environment! However, I noticed that IsaacGym and pytorch3d use different conventions for quaternions that lead to trouble:
From pytorch3d source:
From IsaacGym documentation:
Therefore, I believe this piece of code in the
FurnitureSimEnv
:furniture-bench/furniture_bench/envs/furniture_sim_env.py
Lines 734 to 740 in 4d7a33c
Should be something more like this:
Or, maybe there's a nicer way to make sure the conventions align!
Thank you!
Lars
The text was updated successfully, but these errors were encountered: