Implementation:Haosulab ManiSkill WidowXAI
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Simulation, Manipulation |
| Last Updated | 2026-02-15 08:00 GMT |
Overview
Concrete tool for simulating the WidowX AI robot arm in ManiSkill environments.
Description
The WidowXAI is a 7-DOF robot arm (6 arm joints + 1 gripper joint) with a parallel-jaw gripper. The arm joints are joint_0 through joint_5 plus the left_carriage_joint (which also serves as the gripper control joint). The gripper has high-friction materials (static=2.0, dynamic=2.0). Arm stiffness is 1e3, damping 1e2, force limit 100. The gripper operates between 0.0 (closed) and 0.044 (open). The end-effector link is ee_gripper_link. Provides TCP pose computation, grasping detection, and static checking methods. Supports position, delta position, and target delta position control modes.
uid: widowxai
URDF path: {ASSET_DIR}/robots/widowxai/wxai_base.urdf
Supported control modes: pd_joint_delta_pos, pd_joint_pos, pd_joint_target_delta_pos
Usage
Use WidowXAI for manipulation tasks targeting the WidowX AI hardware. Suitable for pick-and-place and basic manipulation with a compact robot arm that has proper gripper control and TCP tracking.
Code Reference
Source Location
- Repository: Haosulab_ManiSkill
- File: mani_skill/agents/robots/widowxai/widowxai.py
Signature
@register_agent(asset_download_ids=["widowxai"])
class WidowXAI(BaseAgent):
uid = "widowxai"
urdf_path = f"{ASSET_DIR}/robots/widowxai/wxai_base.urdf"
arm_joint_names = ["joint_0", ..., "joint_5", "left_carriage_joint"]
gripper_joint_names = ["left_carriage_joint"]
ee_link_name = "ee_gripper_link"
arm_stiffness = 1e3
arm_damping = 1e2
arm_force_limit = 100
keyframes = dict(ready_to_grasp=Keyframe(qpos=np.array([0.0, 1.38, 1.04, -1.26, 0.0, 0.0, 0.026, 0.026]), ...))
Import
from mani_skill.agents.robots.widowxai.widowxai import WidowXAI
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| (inherited from BaseAgent) |
Outputs
| Name | Type | Description |
|---|---|---|
| robot agent | WidowXAI | Configured 7-DOF arm with gripper, TCP tracking, and grasping detection |
Usage Examples
Creating Environment with Robot
import gymnasium as gym
import mani_skill.envs
env = gym.make("PickCube-v1", robot_uids="widowxai")
obs, info = env.reset()