Objects
InternDataEngine supports various types of objects for simulation tasks. All object classes are located in workflows/simbox/core/objects/.
Supported Object Types
| Class | Description |
|---|---|
RigidObject | Rigid body objects with physics properties (graspable objects) |
GeometryObject | Static geometry objects without physics (tables, fixtures) |
ArticulatedObject | Articulated objects with joints (microwaves, drawers) |
PlaneObject | Simple planes with textures (floors, backgrounds) |
XFormObject | Transform-only objects |
ShapeObject | Basic geometric shapes |
ConveyorObject | Conveyor belt objects |
RigidObject
RigidObject is used for objects that have physical properties and can be manipulated by robots. It inherits from Isaac Sim's RigidPrim and supports collision detection, mass properties, and texture randomization.
__init__(self, asset_root, root_prim_path, cfg, *args, **kwargs)
Initialize a rigid object in the simulation scene.
Parameters:
- asset_root (str): Root path for asset files.
- root_prim_path (str): Root prim path in USD stage.
- cfg (dict): Configuration dictionary containing:
- name (str): Object name.
- path (str): USD file path relative to asset_root.
- prim_path_child (str): Child prim path for rigid body.
- translation (list, optional): Initial translation [x, y, z].
- euler (list, optional): Initial euler rotation [rx, ry, rz] in degrees.
- scale (list, optional): Scale factor [sx, sy, sz].
- mass (float, optional): Object mass.
- **kwargs: Additional keyword arguments passed to
RigidPrim.
Config Example
objects:
-
name: pick_object_left
path: pick_and_place/pre-train-pick/assets/omniobject3d-banana/omniobject3d-banana_001/Aligned_obj.usd
target_class: RigidObject
dataset: oo3d
category: "omniobject3d-banana"
prim_path_child: Aligned
translation: [0.0, 0.0, 0.0]
euler: [0.0, 0.0, 0.0]
scale: [0.001, 0.001, 0.001]
apply_randomization: True
orientation_mode: "suggested"Configuration Parameters
- name (str): Unique identifier for this object instance.
- path (str): Path to the USD file containing the object mesh.
- target_class (str): Must be
RigidObjectfor rigid bodies. - dataset (str): Dataset source identifier.
- category (str): Object category name.
- prim_path_child (str): Name of the child prim that contains the mesh.
- translation (list): Initial position [x, y, z] in world coordinates.
- euler (list): Initial rotation in degrees [roll, pitch, yaw].
- scale (list): Scale factors for each axis.
- apply_randomization (bool): Whether to apply domain randomization.
- orientation_mode (str): Orientation mode for randomization.
GeometryObject
GeometryObject is used for static objects without physics simulation. It's ideal for environmental objects like tables, shelves, or fixtures that don't need to interact physically with other objects.
__init__(self, asset_root, root_prim_path, cfg, *args, **kwargs)
Initialize a geometry object in the simulation scene.
Parameters:
- asset_root (str): Root path for asset files.
- root_prim_path (str): Root prim path in USD stage.
- cfg (dict): Configuration dictionary containing:
- name (str): Object name.
- path (str): USD file path relative to asset_root.
- prim_path_child (str, optional): Child prim path suffix.
- **kwargs: Additional keyword arguments passed to
GeometryPrim.
Difference from RigidObject:
- No physics simulation (no mass, no collision response)
- Lighter weight for static environment objects
- Cannot be grasped or moved by robots
Config Example
objects:
-
name: table
path: table0/instance.usd
target_class: GeometryObject
translation: [0.0, 0.0, 0.375]
scale: [0.001, 0.001053, 0.001056]Configuration Parameters
- name (str): Unique identifier for this object.
- path (str): Path to the USD file.
- target_class (str): Must be
GeometryObjectfor static geometry. - translation (list): Position in world coordinates.
- scale (list): Scale factors for each axis.
PlaneObject
PlaneObject creates simple planes with optional texture mapping. It's commonly used for floors, backgrounds, and other flat surfaces.
__init__(self, asset_root, root_prim_path, cfg, *args, **kwargs)
Initialize a plane object in the simulation scene.
Parameters:
- asset_root (str): Root path for asset files.
- root_prim_path (str): Root prim path in USD stage.
- cfg (dict): Configuration dictionary containing:
- name (str): Object name.
- size (list): Plane dimensions [width, height].
- translation (list, optional): Position [x, y, z].
- euler (list, optional): Rotation in degrees [roll, pitch, yaw].
- texture (dict, optional): Texture configuration.
- **kwargs: Additional keyword arguments.
Config Example
objects:
-
name: floor
target_class: PlaneObject
size: [5.0, 5.0]
translation: [0, 0, 0]
texture:
texture_lib: "floor_textures"
apply_randomization: True
texture_id: 1
texture_scale: [1.0, 1.0]
-
name: background0
target_class: PlaneObject
size: [3.0, 5.0]
translation: [-2, 0, 1]
euler: [0.0, 90.0, 0.0]
texture:
texture_lib: "background_textures"
apply_randomization: True
texture_id: 1
texture_scale: [1.0, 1.0]
-
name: background1
target_class: PlaneObject
size: [3.0, 5.0]
translation: [2, 0, 1]
euler: [0.0, 90.0, 0.0]
texture:
texture_lib: "background_textures"
apply_randomization: True
texture_id: 1
texture_scale: [1.0, 1.0]
-
name: background2
target_class: PlaneObject
size: [5.0, 3.0]
translation: [0, -2, 1]
euler: [90.0, 0.0, 0.0]
texture:
texture_lib: "background_textures"
apply_randomization: True
texture_id: 1
texture_scale: [1.0, 1.0]
-
name: background3
target_class: PlaneObject
size: [5.0, 3.0]
translation: [0, 2, 1]
euler: [90.0, 0.0, 0.0]
texture:
texture_lib: "background_textures"
apply_randomization: True
texture_id: 1
texture_scale: [1.0, 1.0]Configuration Parameters
- name (str): Unique identifier for the plane.
- target_class (str): Must be
PlaneObject. - size (list): Plane dimensions [width, height].
- translation (list): Position [x, y, z].
- euler (list): Rotation angles [roll, pitch, yaw] in degrees.
- texture.texture_lib (str): Name of texture library folder.
- texture.apply_randomization (bool): Whether to randomize texture selection.
- texture.texture_id (int): Specific texture ID (used when randomization is False).
- texture.texture_scale (list): Scale factors for texture UV mapping.
ArticulatedObject
ArticulatedObject handles objects with movable joints, such as microwaves, drawers, and cabinets. It inherits from Isaac Sim's Articulation class and provides methods for joint control and state retrieval.
__init__(self, asset_root, root_prim_path, cfg, *args, **kwargs)
Initialize an articulated object in the simulation scene. Loads articulation info from the specified info.json file.
Parameters:
- asset_root (str): Root path for asset files.
- root_prim_path (str): Root prim path in USD stage.
- cfg (dict): Configuration dictionary containing:
- name (str): Object name.
- path (str): USD file path relative to asset_root.
- info_name (str): Name of the skill folder containing
info.json. - category (str): Object category identifier.
- euler (list, optional): Initial rotation [roll, pitch, yaw].
- joint_position_range (list, optional): Random range for initial joint position [min, max].
- apply_randomization (bool, optional): Whether to apply domain randomization.
- **kwargs: Additional keyword arguments passed to
Articulation.
get_articulated_info(self, object_info)
Parse and store articulation information from the object's info.json file. This method extracts keypoints, joint paths, scale information, and axis orientations.
Parameters:
- object_info (dict): Dictionary loaded from
Kps/{skill}/info.jsoncontaining:- object_keypoints (dict): Keypoint positions in link_0 frame.
- object_scale (list): Object scale factors.
- object_prim_path (str): Prim path for the object.
- object_link_path (str): Prim path for the articulated link.
- object_base_path (str): Prim path for the base link.
- object_joint_path (str): Prim path for the joint.
- joint_index (int): Index of the main joint.
- object_link0_rot_axis (str): Rotation axis of the link.
- object_base_front_axis (str): Front axis of the base.
get_joint_position(self, stage)
Count and configure joints in the articulated object. This method identifies prismatic and revolute joints, and optionally fixes the base of the articulated object.
Parameters:
- stage (UsdStage): The USD stage containing the articulation.
Sets the following attributes:
- object_joint_number (int): Total number of joints found.
Config Example
objects:
-
name: close_v_left
target_class: ArticulatedObject
info_name: "close_v"
euler: [0.0, 0.0, 90.0]
joint_position_range: [0.6, 0.8]
apply_randomization: False
path: "art/microwave_gr/microwave7119/instance.usd"
category: "microwave_gr"Configuration Parameters
- name (str): Unique identifier for the articulated object.
- target_class (str): Must be
ArticulatedObject. - info_name (str): Name of the skill folder containing
info.json. - euler (list): Initial rotation [roll, pitch, yaw] in degrees.
- joint_position_range (list): Random range for initial joint position [min, max].
- apply_randomization (bool): Whether to apply domain randomization.
- path (str): Path to the USD file (relative to asset_root).
- category (str): Object category identifier.