Isaac Sim Version
4.5.0
4.2.0
4.1.0
4.0.0
4.5.0
2023.1.1
2023.1.0-hotfix.1
Other (please specify):
Operating System
Ubuntu 22.04
Ubuntu 20.04
Windows 11
Windows 10
Other (please specify): Ubuntu 24.04
Topic Description
I use a custom extension to debug my code in IsaacSim*. My workflow is
- Open a stage that I want to work with
- Open my “debug extension” that runs code to actuate an Articulation in the stage
- Execute that code via my custom extension
- Debug/adapt the code, reset my extension, do it all over again
The code I use to reset the stage is inspired by all the Example Extension provided and is the following:
def _on_reset(self):
asyncio.ensure_future(self._on_reset_async())
async def _on_reset_async(self):
self._stage = omni.usd.get_context().get_stage()
self._world.clear_all_callbacks()
self.scene.clear(registry_only=True)
await self._world.play_async()
await update_stage_async()
await self._world.reset_async()
await self._world.pause_async()
await omni.kit.app.get_app().next_update_async()
At first sight, this looks fine – the simulation stops, the objects move back to their initial position etc. However, there is a mesh in the scene I am currently working on which I want to assign a triangle-mesh collider to. I used the physics toolbar → Set Static Collider functionality to do so. The collision behavior of this particular body changes with my reset, and I have no idea why (see below). Further, the collider debug view does not show any changes - it seems to be out of sync with the actual simulation.
Detailed Description
This is the stage after some time steps. The collision works as expected:
This is the stage after some time steps after resetting my extension. The “fingers” are in collision with the blue object here. The blue body collider is shown as a meshcollider, but behaves like a convex decomposition/overapproximation:
Steps to Reproduce
- Load stage
- Reset via the extension reset method
- Collision behavior changes
For completeness, I have attached the stage I am working on.
stage.zip (7.3 KB)
Logs
The logs already give a reason for this behavior: PhysicsUSD: Parse collision - triangle mesh collision (approximation None/MeshSimplification) cannot be a part of a dynamic body, falling back to convexHull approximation: /World/doublepipe/doublepipe/mesh13. For dynamic collision please use approximations: convex hull, convex decomposition, box, sphere or SDF approximation
. However, I did not find any information about how to make this body non-dynamic? It doesn’t move in my simulation, it doesn’t have physics attributes except for the collider, and I get the same error message even when I right click -> lock
it.
*Side question: Debugging over a custom extension for every new feature is really tedious but still faster than starting a new IsaacSim App every time I fix a minor bug in my code. Is there really not better option for debugging in IsaacSim?