Implementation:Haosulab ManiSkill XArm7Ability
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Simulation, Manipulation |
| Last Updated | 2026-02-15 08:00 GMT |
Overview
Concrete tool for simulating the UFactory xArm7 arm with Ability Hand in ManiSkill environments.
Description
The XArm7Ability combines a 7-DOF xArm7 arm with a 10-DOF Ability Hand (right variant). The arm has 7 joints (joint1 through joint7) with stiffness=1e3, damping=1e2, force_limit=500. The hand has 10 joints: 5 proximal (thumb_q1, index_q1, middle_q1, ring_q1, pinky_q1) and 5 distal (thumb_q2 through pinky_q2) with stiffness=1e3, damping=1e2, force_limit=50. Total DOF is 17. Fingertip link materials use high friction (static=2.0, dynamic=1.5). The end-effector link is base (the hand base). Supports EE pose control for the arm and target delta position control for the hand. Provides access to front finger links, fingertip links, and TCP.
uid: xarm7_ability
URDF path: {PACKAGE_ASSET_DIR}/robots/xarm7/xarm7_ability_right_hand.urdf
Supported control modes: pd_joint_delta_pos, pd_joint_pos, pd_ee_delta_pose, pd_ee_target_delta_pose
Usage
Use XArm7Ability for manipulation tasks requiring both long-reach arm positioning and dexterous finger-level manipulation. The combination of a 7-DOF arm with a 10-DOF hand enables complex grasping and in-hand manipulation workflows.
Code Reference
Source Location
- Repository: Haosulab_ManiSkill
- File: mani_skill/agents/robots/xarm/xarm7_ability.py
Signature
@register_agent()
class XArm7Ability(BaseAgent):
uid = "xarm7_ability"
urdf_path = f"{PACKAGE_ASSET_DIR}/robots/xarm7/xarm7_ability_right_hand.urdf"
arm_joint_names = ["joint1", ..., "joint7"]
hand_joint_names = ["thumb_q1", "index_q1", ..., "pinky_q2"] # 10 joints
arm_stiffness = 1e3
arm_damping = 1e2
arm_force_limit = 500
hand_stiffness = 1e3
hand_damping = 1e2
hand_force_limit = 50
ee_link_name = "base"
keyframes = dict(rest=Keyframe(qpos=np.array([0, -0.4, 0, 0.5, 0, 0.9, -3.0, 0, ...]), ...))
Import
from mani_skill.agents.robots.xarm.xarm7_ability import XArm7Ability
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| (inherited from BaseAgent) |
Outputs
| Name | Type | Description |
|---|---|---|
| robot agent | XArm7Ability | Configured 17-DOF arm+hand robot with arm and dexterous hand controllers |
Usage Examples
Creating Environment with Robot
import gymnasium as gym
import mani_skill.envs
env = gym.make("PickCube-v1", robot_uids="xarm7_ability")
obs, info = env.reset()