Select the pelvis prim on the GUI: World > Envs > env_0 > Humanoid > pelvis
Press ‘f’ to center on the pelvis
Note how the controls to adjust the position of the pelvis doesn’t change positions when the simulation is running. This illustrates why none of our programmatic code works for retrieving an XForm position when we use:
When we run the simulation with a fresh stage with only a single instance, our code works at tracking specific XForms or joints. The Isaac GUI is updated also reflect the changing position as well.
We tested this bug on 2023.1 and 2022.2.1 on three different machines.
This is not universal as i use getworldposes() in my rl and does work for my custom usd robot and have debugged previously …
the humanoid task uses some specific custom views so that may be an edge case where things are going wrong
and in my later code
xpos = torch.stack([self._lfoot.get_world_poses()[0][:, 0], self._rfoot.get_world_poses()[0][:, 0],
self._body.get_world_poses()[0][:, 0]], dim=1)
Maybe naive of me but perhaps the way you are referencing by trying to pull individual environments rather than the whole tensor … then you can extract the environment you want
Hi there, for performance reasons, the OmniIsaacGymEnvs setup avoids syncing updates to USD. Updates are instead passed through fabric, from which states can be collected using the physics tensor APIs provided in the omni.isaac.core RigidPrimView and ArticulationView classes. If you would like to use USD APIs during simulation, you will need to set the Simulation Settings to USD as the Simulation Output, as shown in the screenshot, then use the CPU pipeline when launching an environment with command line argument pipeline=cpu.