Hello, I have a question about environment reset using OIGE. So for the task I am setting up I have to spawn a new cube every x timesteps in an episode. Each cube is a DynamicCuboid generated in env_0, then cloned to all other environments and finally, all the clones are wrapped around a RigidPrimView (e.g. for all cube_0, the view is named cube_view_0).
The issue comes when resetting a specific environment. If at the end of the episode I’ve generated 10 cubes, the reset should consist of removing them all and spawning a new cube_0. However, with this approach 2 issues arise:
- I am able to delete cube prims using the delete_prim() function of omni.isaac.core.utils.prims. However, when I delete cube_0 (as an example), the associated cube_view_0 is not removed. Therefore, when I want to generate a new cube_0 and its corresponding new cube_view_0 the following exception is printed in the terminal: “Cannot add the object cube_view_0 to the scene since its name is not unique”. Do you know of any way to also eliminate RigidPrimViews or a workaround for this issue?
- More importantly, doing as described above, every time I delete a prim, the prim is simultaneously deleted in all environments, meaning I cannot perform independent environment resets. Is there any way of deleted and generating prims in specific environments while still taking advantage of the efficient memory usage of OIGE parallelization?