Implementation:Haosulab ManiSkill AllegroHandTouch
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Simulation, Dexterous_Manipulation |
| Last Updated | 2026-02-15 08:00 GMT |
Overview
Concrete tool for simulating the Allegro Hand with Force-Sensitive Resistor (FSR) touch sensing in ManiSkill environments.
Description
The AllegroHandRightTouch extends AllegroHandRight with tactile sensing capabilities via FSR (Force-Sensitive Resistor) links. It adds 12 finger FSR links (3 per finger for thumb, index, middle, ring) and 4 palm FSR links, totaling 16 contact-sensing regions. The class provides methods for querying contact impulses both in GPU-accelerated and CPU modes: get_fsr_obj_impulse for pairwise contact with a specific object and get_fsr_impulse for total body contact impulses. Touch feedback (FSR impulse norms) is included in the proprioceptive observations. Uses a modified URDF with FSR link definitions.
uid: allegro_hand_right_touch
URDF path: {PACKAGE_ASSET_DIR}/robots/allegro/variation/allegro_hand_right_fsr_simple.urdf
Supported control modes: (inherited from AllegroHandRight) pd_joint_delta_pos, pd_joint_pos, pd_joint_target_delta_pos
Usage
Use AllegroHandRightTouch for dexterous manipulation tasks that benefit from tactile feedback, such as delicate object manipulation, slip detection, and contact-rich in-hand manipulation. The FSR impulse data enables policies that react to touch forces on each finger segment and the palm.
Code Reference
Source Location
- Repository: Haosulab_ManiSkill
- File: mani_skill/agents/robots/allegro_hand/allegro_touch.py
Signature
@register_agent()
class AllegroHandRightTouch(AllegroHandRight):
uid = "allegro_hand_right_touch"
urdf_path = f"{PACKAGE_ASSET_DIR}/robots/allegro/variation/allegro_hand_right_fsr_simple.urdf"
finger_fsr_link_names = ["link_14.0_fsr", "link_15.0_fsr", ...] # 12 finger FSR links
palm_fsr_link_names = ["link_base_fsr", "link_0.0_fsr", ...] # 4 palm FSR links
Import
from mani_skill.agents.robots.allegro_hand.allegro_touch import AllegroHandRightTouch
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| (inherited from BaseAgent) |
Outputs
| Name | Type | Description |
|---|---|---|
| robot agent | AllegroHandRightTouch | Configured 16-DOF hand with tactile FSR sensing on 16 contact regions |
Usage Examples
Creating Environment with Robot
import gymnasium as gym
import mani_skill.envs
env = gym.make("RotateSingleObjectInHand-v1", robot_uids="allegro_hand_right_touch")
obs, info = env.reset()