Implementation:Haosulab ManiSkill FloatingPandaGripper
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Simulation, Grasping |
| Last Updated | 2026-02-15 08:00 GMT |
Overview
Concrete tool for simulating a floating Panda parallel-jaw gripper (without the arm) in ManiSkill environments.
Description
The FloatingPandaGripper is a Panda parallel-jaw gripper mounted on a 6-DOF floating base (3 translational + 3 rotational root joints). It has 8 total DOF: 6 root joints and 2 gripper finger joints (panda_finger_joint1, panda_finger_joint2) with a mimic controller. The end-effector link is panda_hand_tcp. Gripper materials use high friction (static=2.0, dynamic=2.0). Stiffness is 1e3, damping 1e2, force limit 100. Provides multiple keyframes: open_facing_down, open_facing_up, and open_facing_side. Supports both EE pose control (pd_ee_pose, pd_ee_delta_pose) and joint-level control.
uid: floating_panda_gripper
URDF path: {PACKAGE_ASSET_DIR}/robots/panda/panda_v2_gripper.urdf
Supported control modes: pd_joint_delta_pos, pd_joint_pos, pd_ee_delta_pose, pd_ee_pose, pd_ee_pose_quat
Usage
Use FloatingPandaGripper for simple grasping tasks where only the gripper needs to be positioned in 3D space without arm kinematics constraints. Ideal for learning basic pick-and-place policies, grasp synthesis research, and benchmarks that decouple grasping from arm motion planning.
Code Reference
Source Location
- Repository: Haosulab_ManiSkill
- File: mani_skill/agents/robots/floating_panda_gripper/floating_panda_gripper.py
Signature
@register_agent()
class FloatingPandaGripper(BaseAgent):
uid = "floating_panda_gripper"
urdf_path = f"{PACKAGE_ASSET_DIR}/robots/panda/panda_v2_gripper.urdf"
root_joint_names = ["root_x_axis_joint", ..., "root_z_rot_joint"]
gripper_joint_names = ["panda_finger_joint1", "panda_finger_joint2"]
gripper_stiffness = 1e3
gripper_damping = 1e2
gripper_force_limit = 100
ee_link_name = "panda_hand_tcp"
keyframes = dict(
open_facing_down=Keyframe(...), open_facing_up=Keyframe(...), open_facing_side=Keyframe(...)
)
Import
from mani_skill.agents.robots.floating_panda_gripper.floating_panda_gripper import FloatingPandaGripper
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| (inherited from BaseAgent) |
Outputs
| Name | Type | Description |
|---|---|---|
| robot agent | FloatingPandaGripper | Configured floating gripper with root and mimic finger controllers |
Usage Examples
Creating Environment with Robot
import gymnasium as gym
import mani_skill.envs
env = gym.make("PickCube-v1", robot_uids="floating_panda_gripper")
obs, info = env.reset()