Implementation:ARISE Initiative Robosuite LidObject
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Simulation, MJCF_Modeling |
| Last Updated | 2026-02-15 07:00 GMT |
Overview
Lid is a composite object that generates a square lid with a simple box handle on top, suitable for container covering and manipulation tasks.
Description
The Lid class extends CompositeObject to procedurally generate a flat rectangular lid with a raised handle. The lid consists of two box geoms: a flat top plate and a smaller handle positioned above it. The total height of the object is the sum of the lid thickness and handle height, with both components positioned relative to the center.
The top plate can be rendered as semi-translucent (RGBA alpha = 0.3 when transparent=True, which is the default) or opaque with either solid colors or realistic dark wood textures. The handle always uses either the specified RGBA color or the dark wood texture, and is created with double the base density (density * 2) to provide a lower center of mass that keeps the lid stable. The default lid density is 250 kg/m^3, lighter than most other objects.
The handle_geoms property provides access to the properly name-prefixed handle geometry name, which is useful for detecting robotic grasps on the handle. The lid size defaults to 30cm x 30cm with 1cm thickness, and the handle defaults to 2cm x 8cm x 3cm. The "WoodDark" material is used for textured rendering.
Usage
Use Lid for tasks involving covering or uncovering containers, such as lifting a lid off a pot or placing a cover on a bin. The transparent default makes it easy to see what is underneath during development and debugging.
Code Reference
Source Location
- Repository: ARISE_Initiative_Robosuite
- File: robosuite/models/objects/composite/lid.py
Signature
class Lid(CompositeObject):
def __init__(
self,
name,
lid_size=(0.3, 0.3, 0.01),
handle_size=(0.02, 0.08, 0.03),
transparent=True,
friction=None,
density=250.0,
use_texture=True,
rgba=(0.2, 0.1, 0.0, 1.0),
):
Import
from robosuite.models.objects.composite.lid import Lid
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| name | str | Yes | Name of this Lid object |
| lid_size | tuple(3) | No | (length, width, thickness) of the lid plate. Default: (0.3, 0.3, 0.01) |
| handle_size | tuple(3) | No | (thickness, length, height) of the handle. Default: (0.02, 0.08, 0.03) |
| transparent | bool | No | If True, lid plate is semi-translucent. Default: True |
| friction | tuple(3) or None | No | Friction values (sliding, torsional, rolling). Default: None |
| density | float | No | Density value for the lid plate. Default: 250.0 (handle uses 2x) |
| use_texture | bool | No | If True, use realistic wood textures. Default: True |
| rgba | tuple(4) or None | No | RGBA values when not using textures. Default: (0.2, 0.1, 0.0, 1.0) |
Outputs
| Name | Type | Description |
|---|---|---|
| Lid instance | CompositeObject | Lid object with flat plate and raised handle |
| handle_geoms | list[str] | List containing the name-prefixed handle geom name |
Usage Examples
from robosuite.models.objects.composite.lid import Lid
# Create a default transparent lid
lid = Lid(name="pot_lid")
# Create a solid opaque lid with custom dimensions
lid = Lid(
name="box_lid",
lid_size=(0.2, 0.2, 0.015),
handle_size=(0.03, 0.06, 0.04),
transparent=False,
density=300.0,
)
# Access handle geometry names for grasp detection
handle_names = lid.handle_geoms