Implementation:Haosulab ManiSkill XArm6Robotiq
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Simulation, Manipulation |
| Last Updated | 2026-02-15 08:00 GMT |
Overview
Concrete tool for simulating the UFactory xArm6 robot with Robotiq 2F-85 gripper in ManiSkill environments.
Description
The XArm6Robotiq combines a 6-DOF xArm6 arm with the Robotiq 2F-85 adaptive gripper. It has 12 active joints: 6 arm joints (joint1-joint6), 2 active finger joints (left/right_outer_knuckle_joint) with mimic control, and 4 passive finger joints (inner knuckle and inner finger joints). The arm uses high stiffness (1e4) and damping (1e3). The gripper uses very high stiffness (1e5) and damping (2000) with a low force limit (0.1). Mechanical constraints for the Robotiq gripper are implemented via SAPIEN drive creation in _after_loading_articulation. Collision groups are disabled among all gripper-related links. The file also defines XArm6RobotiqWristCamera variant with a wrist-mounted camera.
uid: xarm6_robotiq
URDF path: {ASSET_DIR}/robots/xarm6/xarm6_robotiq.urdf
Supported control modes: pd_joint_delta_pos, pd_joint_pos, pd_ee_delta_pos, pd_ee_delta_pose, pd_ee_pose, pd_joint_target_delta_pos, pd_ee_target_delta_pos, pd_ee_target_delta_pose, pd_joint_vel, pd_joint_pos_vel, pd_joint_delta_pos_vel
Usage
Use XArm6Robotiq for manipulation tasks requiring a strong industrial arm with an adaptive parallel gripper. The Robotiq gripper can conform to object shapes for more robust grasping compared to simple parallel-jaw grippers. Suitable for pick-and-place, assembly, and industrial manipulation scenarios.
Code Reference
Source Location
- Repository: Haosulab_ManiSkill
- File: mani_skill/agents/robots/xarm6/xarm6_robotiq.py
Signature
@register_agent(asset_download_ids=["xarm6"])
class XArm6Robotiq(BaseAgent):
uid = "xarm6_robotiq"
urdf_path = f"{ASSET_DIR}/robots/xarm6/xarm6_robotiq.urdf"
arm_joint_names = ["joint1", ..., "joint6"]
arm_stiffness = 1e4
arm_damping = 1e3
arm_force_limit = 100
gripper_stiffness = 1e5
gripper_damping = 2000
ee_link_name = "eef"
keyframes = dict(rest=Keyframe(...), zeros=Keyframe(...), ...)
@register_agent(asset_download_ids=["xarm6"])
class XArm6RobotiqWristCamera(XArm6Robotiq):
uid = "xarm6_robotiq_wristcam"
Import
from mani_skill.agents.robots.xarm6.xarm6_robotiq import XArm6Robotiq
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| (inherited from BaseAgent) |
Outputs
| Name | Type | Description |
|---|---|---|
| robot agent | XArm6Robotiq | Configured 6-DOF arm with Robotiq adaptive gripper controllers |
Usage Examples
Creating Environment with Robot
import gymnasium as gym
import mani_skill.envs
env = gym.make("PickCube-v1", robot_uids="xarm6_robotiq")
obs, info = env.reset()