Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Haosulab ManiSkill RoboCasaAccessories

From Leeroopedia
Knowledge Sources
Domains Robotics, Simulation, Scene_Building
Last Updated 2026-02-15 08:00 GMT

Overview

Concrete tool providing accessory and miscellaneous fixture classes for RoboCasa kitchen environments, including coffee machines, toasters, stools, and wall-mounted accessories.

Description

This module defines several accessory fixture classes used for decorative and functional objects in RoboCasa kitchens:

Accessory -- Base class for all accessories/miscellaneous objects. Extends Fixture with duplicate_collision_geoms=False. Serves as the parent for specific accessory types.

CoffeeMachine -- A coffee machine accessory that supports simulated coffee pouring. Features:

  • _turned_on state tracking
  • update_state() checks if the robot gripper is pressing the start button to toggle the machine on
  • Coffee liquid sites that become visible when the machine is turned on
  • check_receptacle_placement_for_pouring() to verify a mug is placed under the pour spout
  • gripper_button_far() distance check helper

Toaster -- Simple toaster accessory with a natural language property returning "toaster".

Stool -- Simple stool accessory with a natural language property returning "stool".

WallAccessory -- Base class for wall-mounted accessories (outlets, clocks, paintings, lights). Features:

  • Attaches to a Wall object and computes its position based on wall side (back, front, left, right)
  • Adjustable protrusion parameter controlling how far the accessory extends from the wall
  • Automatic rotation alignment based on the wall's orientation
  • Special handling for light fixtures (pre-rotated by 90 degrees)

Usage

Used by the RoboCasa scene builder to populate kitchen scenes with decorative and functional accessories. Referenced in the FIXTURES registry as "accessory", "coffee_machine", "toaster", "stool", and "wall_accessory".

Code Reference

Source Location

Signature

class Accessory(Fixture):
    def __init__(self, scene, xml, name, pos=None, *args, **kwargs): ...

class CoffeeMachine(Accessory):
    def __init__(self, *args, **kwargs): ...
    def get_reset_regions(self, *args, **kwargs) -> dict: ...
    def get_state(self) -> dict: ...
    def update_state(self, env): ...
    def check_receptacle_placement_for_pouring(self, env, obj_name, xy_thresh=0.04) -> bool: ...
    def gripper_button_far(self, env, th=0.15) -> bool: ...
    @property
    def nat_lang(self) -> str: ...

class Toaster(Accessory): ...
class Stool(Accessory): ...

class WallAccessory(Fixture):
    def __init__(self, scene, xml, name, pos, attach_to=None, protrusion=0.02, *args, **kwargs): ...
    def _place_accessory(self): ...

Import

from mani_skill.utils.scene_builder.robocasa.fixtures.accessories import (
    Accessory, CoffeeMachine, Toaster, Stool, WallAccessory
)

I/O Contract

Class Key Parameters Description
Accessory xml, name, pos Base accessory loaded from MJCF
CoffeeMachine inherited Interactive coffee machine with pour simulation
WallAccessory attach_to (Wall), protrusion (float) Mounts on a wall, auto-positions based on wall side

Usage Examples

# Create a wall-mounted clock
clock = WallAccessory(
    scene=scene,
    xml="fixtures/accessories/clock.xml",
    name="kitchen_clock",
    pos=[1.0, None, 2.0],
    attach_to=back_wall,
    protrusion=0.02,
)

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment