isaac-sim / OmniIsaacGymEnvs

Reinforcement Learning Environments for Omniverse Isaac Gym
Other
764 stars 202 forks source link

Incorrect order of joints on loading from `.usd` #109

Open dhajnes opened 7 months ago

dhajnes commented 7 months ago

Hi, I am facing a very fundamental problem that causes me to be unable to get the correct rotations of a robot; I will elaborate in another issue.

I believe the problem arises from the incorrect order of joints loaded into the environment from the .usd file. For example, my USD is basically identical to the one in the anymal repository. Anymal gets loaded in the order given in the anymal_instancable.usd. I am able to load the robot, but I am not able to get or set the correct rotation, because it seems that the rotation is applied to a joint on the left leg.

This joint on the left leg, which is the pivot of the rotation, is the one that is reportedly loaded first. I can see this by printing

self._dof_names = self._metadata.dof_names

in the object ArticulationView in isaac.core.articulations.articulation_view.py.

Could you please help to resolve this issue? How to load the model in correct order as in the .usd? Why is this happening? I tried the NVIDIA forum and Discord and I think you, @kellyguo11 could give the biggest insight. Thank you very much.

kellyguo11 commented 7 months ago

Please see https://github.com/NVIDIA-Omniverse/OmniIsaacGymEnvs/issues/110#issuecomment-1819308914