Implementation:ARISE Initiative Robosuite PandaRobot
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Robot Modeling, Manipulation |
| Last Updated | 2026-02-15 07:00 GMT |
Overview
The Panda class defines the robot model for the Franka Emika Panda, a 7-DOF single-arm manipulator commonly used in robotic manipulation research.
Description
The Panda class extends ManipulatorModel to represent the Franka Emika Panda robot, a sensitive single-arm manipulator with 7 degrees of freedom. It loads its MJCF model from robots/panda/robot.xml and sets custom joint damping values during initialization (0.1 for the first five joints and 0.01 for the last two wrist joints).
The robot is configured with a single right arm, a PandaGripper as the default end-effector, and uses a RethinkMount base. The default controller configuration is "default_panda". The initial joint configuration places the arm in a common manipulation-ready pose with the elbow bent and the wrist oriented for grasping.
Workspace offsets are defined for three arena types: bins, empty, and table. The table offset is computed as a function of table length to properly position the robot relative to the table edge. The robot's horizontal radius is 0.5 and its top offset is 1.0 in the z-direction.
Usage
Use this class when you need a standard single-arm manipulator in a robosuite environment. The Panda is one of the most commonly used robots in robosuite and serves as the default choice for many manipulation tasks. Specify "Panda" as the robot name when creating environments.
Code Reference
Source Location
Signature
class Panda(ManipulatorModel):
arms = ["right"]
def __init__(self, idn=0)
Import
from robosuite.models.robots.manipulators.panda_robot import Panda
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| idn | int or str | No | Unique identification number or string for this robot instance (default: 0) |
Outputs
| Name | Type | Description |
|---|---|---|
| default_base | str | "RethinkMount" |
| default_gripper | dict | {"right": "PandaGripper"} |
| default_controller_config | dict | {"right": "default_panda"} |
| init_qpos | np.ndarray | 7-element array: [0, pi/16, 0, -5pi/6, 0, pi-0.2, pi/4] |
| arm_type | str | "single" |
| top_offset | np.ndarray | [0, 0, 1.0] |
| _horizontal_radius | float | 0.5 |
Usage Examples
import robosuite
# Create a Lift environment with a Panda robot
env = robosuite.make(
"Lift",
robots="Panda",
has_renderer=True,
has_offscreen_renderer=False,
use_camera_obs=False,
control_freq=20,
)
obs = env.reset()
# The Panda has a single arm
robot = env.robots[0]
print(f"Arm type: {robot.robot_model.arm_type}") # "single"
print(f"DOF: {len(robot.robot_model.init_qpos)}") # 7