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 FourierHands

From Leeroopedia
Knowledge Sources
Domains Robotics, Simulation, MJCF_Modeling
Last Updated 2026-02-15 07:00 GMT

Overview

FourierHands defines the dexterous left and right hand gripper models for the Fourier GR1 humanoid robot in robosuite.

Description

This module contains two classes, FourierLeftHand and FourierRightHand, both extending GripperModel. These represent the five-fingered dexterous hands of the Fourier GR1 robot, each with 6 degrees of freedom (DOF) in control space that map to 11 physical joints through the format_action method.

The format_action method implements a joint coupling scheme where a 6-dimensional action vector is expanded to 11 joint values using index mapping. Specifically, action indices [0,0,1,1,2,2,3,3,4,4,5] map the 6 control inputs to 11 joints: index and middle finger joints are each duplicated (2 joints per action), while the thumb rotation and a separate control each have their own dedicated action. This coupling avoids using MuJoCo equality constraints, which were found to make finger movement laggy.

Both hands share identical control properties: a grasp speed of 0.15, initial joint positions of all zeros (11 joints), and grasp configurations that map -1 (open) and 1 (close) to specific joint angle arrays. The left hand uses geometry names prefixed with L_ and the right hand uses R_, covering thumb, index, middle, ring, and pinky finger collision geometries for both finger and fingerpad groups.

Usage

Use FourierLeftHand or FourierRightHand when configuring a Fourier GR1 humanoid robot that requires dexterous manipulation capabilities. These grippers are typically assigned automatically by the robot model configuration but can also be specified explicitly in custom robot setups.

Code Reference

Source Location

Signature

class FourierLeftHand(GripperModel):
    def __init__(self, idn=0):

class FourierRightHand(GripperModel):
    def __init__(self, idn=0):

Import

from robosuite.models.grippers.fourier_hands import FourierLeftHand, FourierRightHand

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
FourierLeftHand / FourierRightHand instance GripperModel Dexterous hand model with 6 DOF control and 11 physical joints
init_qpos np.array Array of 11 zeros representing the default open position
dof int Returns 6 (control degrees of freedom)
speed float Returns 0.15 (grasp speed)
grasp_qpos dict Maps -1 (open) and 1 (close) to 6-element joint angle arrays

Usage Examples

from robosuite.models.grippers.fourier_hands import FourierLeftHand, FourierRightHand
import numpy as np

# Create left and right hand instances
left_hand = FourierLeftHand(idn=0)
right_hand = FourierRightHand(idn=0)

# Format a 6-DOF action to 11 joint commands
action = np.array([0.5, -0.3, 0.2, 0.1, -0.5, 0.8])
joint_commands = left_hand.format_action(action)
# joint_commands has shape (11,) due to joint coupling

# Access grasp configurations
open_config = left_hand.grasp_qpos[-1]   # open position
close_config = left_hand.grasp_qpos[1]   # close position

Related Pages

Page Connections

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