Implementation:ARISE Initiative Robosuite PandaGripper
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Simulation, MJCF_Modeling |
| Last Updated | 2026-02-15 07:00 GMT |
Overview
PandaGripper provides the two-fingered parallel jaw gripper model for Franka's Panda robot arm, with both base (2-DOF) and simplified (1-DOF) variants.
Description
This module contains two classes for the Franka Panda gripper. PandaGripperBase is the foundational class that loads the MJCF XML from grippers/panda_gripper.xml and defines the default joint positions at [0.020833, -0.020833], representing a slightly open configuration. The base class passes actions through to actuators without modification and defines collision geometry groups for two fingers and their fingerpads.
PandaGripper extends the base to provide 1-DOF synchronized control suitable for most manipulation tasks. It maps a single scalar action to coordinated two-finger movement using the formula: current_action = clip(current_action + [-1, 1] * speed * sign(action), -1, 1). The [-1, 1] multiplier ensures the fingers move in opposite directions (one opens while the other closes), creating the characteristic parallel jaw motion. The gripper operates at a speed of 0.2, providing responsive open/close behavior.
The collision geometry definitions include finger1_collision and finger2_collision for the main finger bodies, and finger1_pad_collision and finger2_pad_collision for the fingerpad contact surfaces. This is one of the most commonly used grippers in robosuite, paired with the Panda robot arm for standard manipulation benchmarks.
Usage
Use PandaGripper (1-DOF) for standard pick-and-place and manipulation tasks with the Franka Panda arm. Use PandaGripperBase when direct 2-DOF actuator control is needed. The Panda gripper is the default gripper for the Panda robot in robosuite.
Code Reference
Source Location
- Repository: ARISE_Initiative_Robosuite
- File: robosuite/models/grippers/panda_gripper.py
Signature
class PandaGripperBase(GripperModel):
def __init__(self, idn=0):
class PandaGripper(PandaGripperBase):
# Inherits __init__; overrides format_action, speed, dof
Import
from robosuite.models.grippers.panda_gripper import PandaGripper, PandaGripperBase
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| idn | int or str | No | Unique identification number or string for this gripper instance. Default: 0 |
Outputs
| Name | Type | Description |
|---|---|---|
| PandaGripperBase instance | GripperModel | Base 2-DOF parallel jaw gripper model |
| PandaGripper instance | GripperModel | 1-DOF synchronized parallel jaw gripper (speed: 0.2) |
| init_qpos | np.array | [0.020833, -0.020833] default joint positions |
Usage Examples
from robosuite.models.grippers.panda_gripper import PandaGripper
import numpy as np
# Create the 1-DOF Panda gripper
gripper = PandaGripper(idn=0)
# Close the gripper
action = np.array([1.0])
formatted = gripper.format_action(action) # 2-element array with opposing directions
# Open the gripper
action = np.array([-1.0])
formatted = gripper.format_action(action)
# Check initial joint positions
print(gripper.init_qpos) # [0.020833, -0.020833]
print(gripper.dof) # 1
print(gripper.speed) # 0.2