-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Description
Question
I want to train robots on a complex scene asset (many meshes, materials, and textures; several MB in size). I have reviewed the documentation and relevant code, and have tried several alternatives for days, but still don’t see a definite answer to the following:
1. Best way to load a large static visual-only scene for parallel training
What is the correct (or recommended) approach for loading a large, purely visual scene mesh (no physics, static geometry) so that it can be used efficiently across many parallel environments? Specifically:
- Can the scene be loaded once and shared by all environments (e.g., by setting
env_spacing = 0), or would that lead to interference (collisions, showing up on the wrong render) between envs? - Is converting the scene into an instanceable asset the only way to achieve this? If it must be instanceable:
- Can the entire scene be made a single instance, or does each mesh/material need to be its own instanced asset?
- If an instance is required per environment, do I need to manually apply the environment’s origin transform to each instance?
My scene is in GLB format link. When I use the mesh converter tool and load the resulting URDF half of the geometry disappears. If I convert it to OBJ the mesh converter sort of works, but I need to manually fix a broken path to get the scene to show up in the stage.
2. Best way to load custom collision geometry
I also created custom collision geometry for the scene using only box meshes (so all convex). These boxes are currently stored as meshes in a single file.
What is the recommended way to load these as collision geometry in Isaac Lab?
- How should I write the configuration for importing the mesh file directly?
- How do I know what sort of collision mesh processing will be applied (ex: convex decomposition, etc.) and how can I control it?
- Should I write a script to convert the boxes into a URDF with a single static link containing multiple
<collision>elements? I tried something along those lines, but when I imported that URDF nothing showed up in the stage. Does there need to be a fixed joint between the world link and the link with the collision meshes to ensure the parser sees it?
3. Build Information
Due to hardware limitations I am currently using:
- Isaac Lab 2.1.1
- Isaac Sim 4.5
But answers for the latest versions are welcome too.