Files
issacdataengine/docs_crawled/config_assets.md
Tangger 3d6b73753a feat: add test tube pick task with custom assets and grasp annotations
- Add pick_test_tube task: USDC asset repackaging, grasp generation, task config
- Add tools: usdc_to_obj.py, repackage_test_tube.py, fix_test_tube_materials.py
- Add custom_task_guide.md: full Chinese documentation for creating custom tasks
- Add crawled InternDataEngine online docs (23 pages)
- Add grasp generation script (gen_tube_grasp.py) and pipeline config
2026-04-05 11:01:59 +08:00

7.4 KiB
Raw Blame History

Source: https://internrobotics.github.io/InternDataEngine-Docs/config/assets.html

Assets

All simulation assets are organized under workflows/simbox/assets . This document describes the asset structure, required assets, and organization conventions.

Asset Structure

workflows/simbox/assets/
├── envmap_lib/              # HDR environment maps for scene lighting
├── background_textures/     # Background textures for domain randomization
├── floor_textures/          # Floor textures for domain randomization
├── table_textures/          # Table surface textures
├── table0/                  # Default table USD model
├── lift2/                   # ARX Lift-2 robot assets
├── G1_120s/                 # Genie-1 robot assets
├── franka/                  # Franka robot assets
├── frankarobotiq/           # Franka with Robotiq 2F-85 gripper assets
├── split_aloha_mid_360/     # Agilex Split ALOHA robot assets
├── basic/                   # Basic task-specific assets
│   ├── arrange_the_tableware/
│   ├── hang_the_cup_on_rack/
│   ├── pour/
│   ├── store_the_eggs/
│   └── ...                  # Other task folders
├── art/                     # Articulated object assets
│   ├── electriccooker/
│   ├── microwave_gr/
│   ├── laptop/
│   └── ...
├── long_horizon/            # Long-horizon task assets
└── pick_and_place/          # Pick-and-place task assets

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Required Assets

To run a simulation task, the following assets are required:

  • **Environment Maps **( envmap_lib/ ): HDR lighting for scene illumination.
  • **Background Textures **( background_textures/ ): Domain randomization backgrounds.
  • **Floor Textures **( floor_textures/ ): Floor appearance variation.
  • **Table Model **( table0/ ): Default table fixture.
  • **Robot Assets **(e.g., lift2/ ): Robot USD and kinematics configs.
  • **Task Assets **(e.g., basic/<task_name>/ ): Objects specific to each task.

Rigid Object Assets

This section describes the asset structure for rigid objects, using workflows/simbox/example_assets/task/sort_the_rubbish as an example.

Directory Organization

Different object categories are placed in separate folders at the same level. Objects of the same category are grouped together in a single folder to facilitate **category-level randomization **.

workflows/simbox/example_assets/task/sort_the_rubbish/
├── garbage_can/             # Container category
│   ├── recyclable_can/
│   └── nonrecyclable_can/
├── non_recyclable_garbage/  # Non-recyclable items category
│   ├── obj_1/
│   ├── obj_2/
│   └── ...
└── recyclable_garbage/      # Recyclable items category
    ├── bottle_0/
    ├── bottle_1/
    └── ...

1 2 3 4 5 6 7 8 9 10 11 12

Object Instance Structure

Each object instance folder contains the USD model, textures, and annotations:

workflows/simbox/example_assets/task/sort_the_rubbish/non_recyclable_garbage/obj_2/
├── Aligned_obj.usd              # Object USD with physics properties (mass, collision, etc.)
├── Aligned_grasp_sparse.npy     # Grasp pose annotations (for pickable objects)
└── textures/                    # Texture files
    └── baked_mesh_*.png

1 2 3 4 5

**File Naming Conventions: **

  • **Aligned_obj.usd **( file ): USD file containing the 3D model with complete physics properties (mass, collision mesh, etc.).
  • **Aligned_grasp_sparse.npy **( file ): Grasp pose annotations for manipulation tasks.
  • **textures/ **( directory ): Directory containing texture maps for the object.

Articulated Object Assets

Articulated objects (e.g., doors, drawers, appliances) follow a similar organization pattern. This section uses workflows/simbox/assets/art/electriccooker as an example.

Directory Organization

Different articulated object categories are placed in separate folders. Objects within the same category share consistent orientation, category classification, and functionality after preprocessing.

workflows/simbox/assets/art/electriccooker/
├── electriccooker_0002/
├── electriccooker_0008/
├── electriccooker_0011/
├── electriccooker_0017/
├── electriccooker_0031/
└── ...

1 2 3 4 5 6 7

Articulated Object Instance Structure

Each articulated object instance contains the USD model, materials, and keypoint annotations:

workflows/simbox/assets/art/electriccooker/electriccooker_0031/
├── instance.usd             # Articulated object USD
├── instance.png             # Preview image
├── Materials/               # Material definitions
└── Kps/                     # Keypoint annotations
    └── close_h/             # Keypoints for "close horizontally" action
        ├── keypoints.json
        ├── keypoints_final.json
        └── info.json

1 2 3 4 5 6 7 8 9

**File Naming Conventions: **

  • **instance.usd **( file ): USD file for articulated objects (unlike rigid objects which use Aligned_obj.usd ).
  • **instance.png **( file ): Preview/thumbnail image.
  • **Materials/ **( directory ): Material and texture definitions.
  • **Kps/ **( directory ): Keypoint annotations for interaction points.
  • **Kps/<action_type>/ **( directory ): Action-specific keypoints (e.g., close_h for closing horizontally).

Keypoint Annotations

Keypoint annotations define interaction points for articulated objects:

Kps/
├── close_h/         # Close horizontally (e.g., laptop, pot, electric cooker)
├── close_v/         # Close vertically (e.g., microwave)
├── open_h/          # Open horizontally
├── open_v/          # Open vertically
├── pull/            # Pull (e.g., drawer)
├── push/            # Push
└── ...

1 2 3 4 5 6 7 8

Each action folder contains:

  • **keypoints.json **( file ): Initial keypoint positions.
  • **keypoints_final.json **( file ): Final/processed keypoint positions.
  • **info.json **( file ): Metadata about the keypoints.

Asset Configuration

Assets are referenced in task YAML configurations: yaml

objects:
  - name: bottle_1
    path: task/sort_the_rubbish/recyclable_garbage/bottle_1/Aligned_obj.usd
    target_class: RigidObject
    category: bottle

1 2 3 4 5

For more details on object configuration, see Objects.

Best Practices

**Category Organization **: Group objects of the same category in a single folder for efficient domain randomization.

**Consistent Naming **: Use standardized naming conventions:

  • Aligned_obj.usd for rigid objects

  • instance.usd for articulated objects

  • Aligned_grasp_sparse.npy for grasp annotations

**Complete Physics Properties **: Ensure USD files include:

  • Accurate mass properties

  • Collision meshes

  • Appropriate friction coefficients

**Preprocessing **: For all objects, ensure consistent frame and alignment across instances in the same category.