Implementation:ARISE Initiative Robosuite RethinkGripper
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Simulation, MJCF_Modeling |
| Last Updated | 2026-02-15 07:00 GMT |
Overview
RethinkGripper provides the long two-fingered parallel jaw gripper model for Rethink Robotics arms, with both base (2-DOF) and simplified (1-DOF) variants.
Description
This module contains two classes for the Rethink Robotics gripper. RethinkGripperBase loads the MJCF XML from grippers/rethink_gripper.xml and defines default joint positions at [0.020833, -0.020833]. The base class passes actions directly to the actuators and defines detailed collision geometry groups: each finger has four geometry segments (l_finger_g0, l_finger_g1, l_fingertip_g0, l_fingerpad_g0 for the left; similarly prefixed with r_ for the right), while the fingerpad groups use the pad geometries alone.
RethinkGripper extends the base to provide 1-DOF synchronized control. It maps a single scalar action to two-finger movement using the formula: current_action = clip(current_action + [1, -1] * speed * sign(action), -1, 1). Note the [1, -1] multiplier pattern (opposite of PandaGripper's [-1, 1]), which reflects the different joint convention in the Rethink gripper XML. The speed is set to 0.2 for responsive control.
This gripper is designed for use with Rethink Robotics arms such as the Sawyer, featuring long finger profiles suitable for a variety of grasping tasks. The collision geometry provides detailed finger segmentation for accurate contact modeling.
Usage
Use RethinkGripper (1-DOF) for standard manipulation tasks with Rethink Robotics arms like Sawyer. Use RethinkGripperBase when direct 2-DOF actuator access is required.
Code Reference
Source Location
- Repository: ARISE_Initiative_Robosuite
- File: robosuite/models/grippers/rethink_gripper.py
Signature
class RethinkGripperBase(GripperModel):
def __init__(self, idn=0):
class RethinkGripper(RethinkGripperBase):
# Inherits __init__; overrides format_action, speed, dof
Import
from robosuite.models.grippers.rethink_gripper import RethinkGripper, RethinkGripperBase
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 |
|---|---|---|
| RethinkGripperBase instance | GripperModel | Base 2-DOF long parallel jaw gripper model |
| RethinkGripper 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.rethink_gripper import RethinkGripper
import numpy as np
# Create the 1-DOF Rethink gripper
gripper = RethinkGripper(idn=0)
# Close the gripper
action = np.array([1.0])
formatted = gripper.format_action(action)
# Open the gripper
action = np.array([-1.0])
formatted = gripper.format_action(action)
# Check properties
print(gripper.init_qpos) # [0.020833, -0.020833]
print(gripper.dof) # 1
print(gripper.speed) # 0.2