Implementation:ARISE Initiative Robosuite CompositionalRobots
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Robot Modeling, Simulation |
| Last Updated | 2026-02-15 07:00 GMT |
Overview
The compositional module defines composite robot configurations that combine arm models with specific bases, grippers, and initial configurations, including mobile manipulators and dexterous hand variants.
Description
This module provides several robot classes that extend existing robot models with specific compositional configurations. Each class overrides key properties to define a complete robot system by specifying the base platform, arm type, gripper, initial joint positions, and workspace offsets.
PandaOmron combines a Panda arm with an OmronMobileBase, providing a mobile manipulator configuration with adjusted initial joint positions and torso position. SpotWithArm and SpotWithArmFloating mount a SpotArm on either a full Spot quadruped base or a floating base variant, with appropriate workspace offsets. The floating variant removes the legs from the simulation.
PandaDexRH and PandaDexLH are dexterous manipulation variants that replace the Panda's default gripper with an InspireRightHand or InspireLeftHand respectively. These classes define gripper mount position and quaternion offsets to properly align the dexterous hand with the Panda arm's end effector.
All classes inherit from their respective arm model base classes and primarily override property methods to customize the robot configuration without modifying the underlying arm kinematics.
Usage
Use these classes when you need a specific robot configuration that combines an arm with a particular base or gripper. They are typically referenced by name in environment configurations and loaded through robosuite's robot factory.
Code Reference
Source Location
- Repository: ARISE_Initiative_Robosuite
- File: robosuite/models/robots/compositional.py
Signature
class PandaOmron(Panda):
...
class SpotWithArm(SpotArm):
...
class SpotWithArmFloating(SpotArm):
def __init__(self, idn=0)
class PandaDexRH(Panda):
...
class PandaDexLH(Panda):
...
Import
from robosuite.models.robots.compositional import (
PandaOmron, SpotWithArm, SpotWithArmFloating, PandaDexRH, PandaDexLH
)
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| idn | int or str | No | Unique identification number or string for the robot instance (default: 0) |
Outputs
| Name | Type | Description |
|---|---|---|
| default_base | str | Name of the default base type (e.g., "OmronMobileBase", "Spot") |
| default_arms | dict | Dictionary mapping arm positions to arm model names |
| default_gripper | dict | Dictionary mapping arm positions to gripper model names |
| init_qpos | np.ndarray | Default initial joint positions for the robot |
| base_xpos_offset | dict | Workspace offset dictionary for different arena types |
Usage Examples
import robosuite
# Create an environment with the PandaOmron mobile manipulator
env = robosuite.make(
"Lift",
robots="PandaOmron",
has_renderer=True,
has_offscreen_renderer=False,
)
env.reset()
# Create an environment with the Panda + dexterous right hand
env_dex = robosuite.make(
"Lift",
robots="PandaDexRH",
has_renderer=True,
)
env_dex.reset()