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:ARISE Initiative Robosuite HumanoidUpperBodyModel

From Leeroopedia
Revision as of 11:59, 16 February 2026 by Admin (talk | contribs) (Auto-imported from implementations/ARISE_Initiative_Robosuite_HumanoidUpperBodyModel.md)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Knowledge Sources
Domains Robotics, Robot Modeling, Humanoid Robots
Last Updated 2026-02-15 07:00 GMT

Overview

The HumanoidUpperBodyModel class is the abstract base class for humanoid upper-body robot models in robosuite, supporting bimanual configurations where the base platform can be of any type.

Description

HumanoidUpperBodyModel extends RobotModel to provide a base class for humanoid robots where only the upper body (bimanual arms and torso) is modeled, with flexibility in the base platform choice. This distinguishes it from the full HumanoidModel which assumes a free-standing humanoid with legs.

The class provides the same gripper management functionality as HumanoidModel: the add_gripper method merges gripper MJCF models into the robot's end-effector bodies, tracking them in an OrderedDict. It extracts hand rotation offsets for both arms during initialization and maintains a list of camera names from the worldbody.

The key distinction from HumanoidModel is that default_mount is defined as an abstract property (raises NotImplementedError) rather than defaulting to "HumanoidFreeMount". This requires subclasses to explicitly define their mount type, enabling upper-body humanoids to be placed on wheeled bases, fixed mounts, or other platforms.

All other abstract properties match those of HumanoidModel: default_gripper, arm_type, base_xpos_offset, top_offset, _horizontal_radius, default_controller_config, and init_qpos.

Usage

Do not instantiate this class directly. Use it as the base class when defining humanoid upper-body robot models that need a configurable base platform (e.g., mounted on a mobile base, a fixed stand, or a wheeled platform).

Code Reference

Source Location

Signature

class HumanoidUpperBodyModel(RobotModel):
    def __init__(self, fname, idn=0)

    def add_gripper(self, gripper, arm_name=None)

Import

from robosuite.models.robots.manipulators.humanoid_upperbody_model import HumanoidUpperBodyModel

I/O Contract

Inputs

Name Type Required Description
fname str Yes Path to the MJCF XML file for this robot
idn int or str No Unique identification number or string (default: 0)
gripper GripperModel Yes (add_gripper) Gripper MJCF model to mount on the arm
arm_name str No (add_gripper) Name of arm mount body; defaults to eef_name

Outputs

Name Type Description
eef_name str or dict Prefix-adjusted end-effector name(s); dict for bimanual robots
models list List of all sub-models including the robot and attached grippers
grippers OrderedDict Dictionary of attached gripper models keyed by arm name
hand_rotation_offset dict Quaternion offsets (xyzw) for right and left hand frames
cameras list Camera names defined in the robot's worldbody

Usage Examples

from robosuite.models.robots.manipulators.humanoid_upperbody_model import HumanoidUpperBodyModel

# HumanoidUpperBodyModel is abstract - use a concrete subclass
# Example of a custom upper-body humanoid on a wheeled base:

class MyUpperBodyHumanoid(HumanoidUpperBodyModel):
    arms = ["right", "left"]

    def __init__(self, idn=0):
        super().__init__("path/to/upper_body.xml", idn=idn)

    @property
    def default_mount(self):
        return "WheeledBaseMount"  # Must be explicitly defined

    @property
    def default_gripper(self):
        return {"right": "Robotiq85Gripper", "left": "Robotiq85Gripper"}

    @property
    def arm_type(self):
        return "bimanual"

    # ... implement other required abstract properties

Related Pages

Page Connections

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