Implementation:Haosulab ManiSkill TriFingerPro
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Simulation, Dexterous_Manipulation |
| Last Updated | 2026-02-15 08:00 GMT |
Overview
Concrete tool for simulating the TriFinger Pro robot in ManiSkill environments.
Description
The TriFingerPro is a 9-DOF tri-finger robot platform modified from the NVIDIA IsaacGymEnvs implementation. It has 3 fingers, each with 3 joints (base_to_upper, upper_to_middle, middle_to_lower), oriented at 0, 120, and 240 degrees. The tip links (finger_tip_link_0, finger_tip_link_120, finger_tip_link_240) use high-friction materials (static=2.0, dynamic=1.0). Joint stiffness is 1e2, damping 1e1, force limit 2e1. The robot provides proprioceptive observations including tip poses (7 values per tip) and tip linear velocities (3 per tip). Also provides root joint tracking for finger base rotations.
uid: trifingerpro
URDF path: {PACKAGE_ASSET_DIR}/robots/trifinger/trifingerpro.urdf
Supported control modes: pd_joint_delta_pos, pd_joint_pos, pd_joint_target_delta_pos, pd_joint_vel, pd_joint_pos_vel, pd_joint_delta_pos_vel
Usage
Use TriFingerPro for dexterous manipulation benchmarks involving object reorientation, precise positioning, and in-hand manipulation. The symmetrical tri-finger design enables stable three-point contact manipulation. Commonly used in the Real Robot Challenge and related benchmarks.
Code Reference
Source Location
- Repository: Haosulab_ManiSkill
- File: mani_skill/agents/robots/trifingerpro/trifingerpro.py
Signature
@register_agent()
class TriFingerPro(BaseAgent):
uid = "trifingerpro"
urdf_path = f"{PACKAGE_ASSET_DIR}/robots/trifinger/trifingerpro.urdf"
joint_names = [
"finger_base_to_upper_joint_0", "finger_upper_to_middle_joint_0", "finger_middle_to_lower_joint_0",
"finger_base_to_upper_joint_120", ..., "finger_base_to_upper_joint_240", ...
] # 9 joints
joint_stiffness = 1e2
joint_damping = 1e1
joint_force_limit = 2e1
tip_link_names = ["finger_tip_link_0", "finger_tip_link_120", "finger_tip_link_240"]
Import
from mani_skill.agents.robots.trifingerpro.trifingerpro import TriFingerPro
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| (inherited from BaseAgent) |
Outputs
| Name | Type | Description |
|---|---|---|
| robot agent | TriFingerPro | Configured 9-DOF tri-finger robot with tip pose and velocity feedback |
Usage Examples
Creating Environment with Robot
import gymnasium as gym
import mani_skill.envs
env = gym.make("TriFingerRotateCube-v1", robot_uids="trifingerpro")
obs, info = env.reset()