Reusable manipulation objects for Personal Robotics Lab projects.
This package provides simulation models and metadata for common manipulation objects like cans, bins, and other graspable items. Objects follow the asset_manager metadata format for compatibility with perception and planning pipelines.
uv add prl_assetsFor development:
git clone https://github.com/personalrobotics/prl_assets.git
cd prl_assets
uv sync --devUse with asset_manager to load objects:
from asset_manager import AssetManager
from prl_assets import OBJECTS_DIR
# Initialize asset manager with prl_assets objects
assets = AssetManager(OBJECTS_DIR)
# List available objects
print(assets.list())
# ['can', 'recycle_bin']
# Get path to simulation model
can_path = assets.get_path("can", "mujoco")
# Load in MuJoCo
import mujoco
model = mujoco.MjModel.from_xml_path(can_path)
# Get object metadata
meta = assets.get("can")
print(meta["dimensions"]) # [0.066, 0.066, 0.123]
print(meta["mass"]) # 0.05 kg
# Find objects by category
recyclables = assets.by_category("recyclable")Standard aluminum soda/beer can for manipulation tasks.
| Property | Value |
|---|---|
| Dimensions | 6.6cm diameter x 12.3cm height |
| Mass | 0.05 kg |
| Material | Aluminum |
| Categories | container, recyclable, graspable |
Open-top bin for discarding recyclable items.
| Property | Value |
|---|---|
| Dimensions | 25cm x 25cm x 30cm |
| Mass | 0.5 kg |
| Material | Plastic |
| Categories | container, receptacle, fixture |
Each object follows a standardized directory structure:
objects/
└── object_name/
├── meta.yaml # Object metadata
├── object_name.xml # MuJoCo model
├── object_name.usd # Isaac Sim model (optional)
└── object_name.png # Preview image
The meta.yaml file contains all object properties:
name: can
description: Standard aluminum soda/beer can
category: [container, recyclable, graspable]
# Physical properties
mass: 0.05 # kg
dimensions: [0.066, 0.066, 0.123] # meters
color: [0.8, 0.1, 0.1] # RGB
material: aluminum
# Geometric properties for grasp planning
geometric_properties:
type: cylinder
radius: 0.033
height: 0.123
# Simulator-specific configuration
mujoco:
xml_path: can.xml
scale: 1.0
friction: [0.6, 0.005, 0.0001]
# Perception aliases for detection systems
perception:
aliases: ["can", "soda can", "beer can"]
# Manipulation policy hints
policy:
grasping:
affordances: [lift, pour]
preferred_grasp_type: side_grasp
difficulty: easy- Create a new directory under
src/prl_assets/objects/ - Add a
meta.yamlwith required fields - Add simulator model files (e.g.,
.xmlfor MuJoCo) - Run
uv run python scripts/render_objects.pyto generate preview image - Update this README with the new object
MIT License - see LICENSE file for details.

