Implementation:Haosulab ManiSkill FloatingAbilityHand
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Simulation, Dexterous_Manipulation |
| Last Updated | 2026-02-15 08:00 GMT |
Overview
Concrete tool for simulating the Floating Ability Hand (right variant) dexterous robot hand in ManiSkill environments.
Description
The FloatingAbilityHandRight is a 5-finger dexterous hand on a 6-DOF floating base. It features 16 total DOF: 6 root joints (XYZ position + RPY rotation), 4 active finger joints (index_q1, middle_q1, ring_q1, pinky_q1) plus 4 mimic joints (index_q2 through pinky_q2 following their respective q1 joints with multiplier=1.05851325 and offset=0.72349796), and 2 independent thumb joints (thumb_q1, thumb_q2). The hand has high-friction fingertip materials (static=2.0, dynamic=1.5) on all 5 distal finger links. Hand stiffness is 1e3, damping 1e2, force limit 50. After initialization, front finger links and fingertip links are stored for easy access.
uid: floating_ability_hand_right
URDF path: {PACKAGE_ASSET_DIR}/robots/ability_hand/ability_hand_right_floating.urdf
Supported control modes: pd_joint_pos
Usage
Use FloatingAbilityHand for dexterous in-hand manipulation tasks requiring a biologically-inspired 5-finger hand with a floating base. The mimic coupling between finger joints provides underactuated control that mimics real hand tendon mechanics. Suitable for grasping and in-hand manipulation research.
Code Reference
Source Location
- Repository: Haosulab_ManiSkill
- File: mani_skill/agents/robots/floating_ability_hand/floating_ability_hand.py
Signature
@register_agent()
class FloatingAbilityHandRight(BaseAgent):
uid = "floating_ability_hand_right"
urdf_path = f"{PACKAGE_ASSET_DIR}/robots/ability_hand/ability_hand_right_floating.urdf"
root_joint_names = ["root_x_axis_joint", ..., "root_z_rot_joint"]
hand_joint_names = ["index_q1", "middle_q1", "ring_q1", "pinky_q1", ...]
thumb_joint_names = ["thumb_q1", "thumb_q2"]
hand_stiffness = 1e3
hand_damping = 1e2
hand_force_limit = 50
keyframes = dict(rest=Keyframe(qpos=np.zeros(16), pose=sapien.Pose(p=[0, 0, 0])))
Import
from mani_skill.agents.robots.floating_ability_hand.floating_ability_hand import FloatingAbilityHandRight
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| (inherited from BaseAgent) |
Outputs
| Name | Type | Description |
|---|---|---|
| robot agent | FloatingAbilityHandRight | Configured floating dexterous hand with root, mimic hand, and thumb controllers |
Usage Examples
Creating Environment with Robot
import gymnasium as gym
import mani_skill.envs
env = gym.make("RotateSingleObjectInHand-v1", robot_uids="floating_ability_hand_right")
obs, info = env.reset()