Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Haosulab ManiSkill XArm6NoGripper

From Leeroopedia
Knowledge Sources
Domains Robotics, Simulation, Manipulation
Last Updated 2026-02-15 08:00 GMT

Overview

Concrete tool for simulating the UFactory xArm6 robot arm without a gripper in ManiSkill environments.

Description

The XArm6NoGripper is a 6-DOF xArm6 arm without any end-effector gripper. It has 6 arm joints (joint1 through joint6) with stiffness=1000, per-joint damping=[50]*6, per-joint friction=[0.1]*6, and force_limit=100. The end-effector link is link6. The robot provides a comprehensive set of controller modes including EE pose, EE delta pose, joint velocity, and joint position-velocity controllers. It defines multiple keyframes including rest, zeros, and individual joint stretches (stretch_j1 through stretch_j6) for testing joint ranges. Also defines XArm6NoGripperWristCamera variant with a wrist-mounted 128x128 camera.

uid: xarm6_nogripper

URDF path: {ASSET_DIR}/robots/xarm6/xarm6_nogripper.urdf

Supported control modes: pd_joint_pos, pd_joint_delta_pos, pd_joint_target_delta_pos, pd_ee_delta_pos, pd_ee_delta_pose, pd_ee_pose, pd_ee_target_delta_pos, pd_ee_target_delta_pose, pd_joint_vel, pd_joint_pos_vel, pd_joint_delta_pos_vel

Usage

Use XArm6NoGripper for tasks where the xArm6 arm needs a custom tool attachment or for contact-rich manipulation without grasping. The per-joint friction tuning provides realistic behavior. The wrist camera variant is useful for visual servoing research.

Code Reference

Source Location

Signature

@register_agent(asset_download_ids=["xarm6"])
class XArm6NoGripper(BaseAgent):
    uid = "xarm6_nogripper"
    urdf_path = f"{ASSET_DIR}/robots/xarm6/xarm6_nogripper.urdf"
    arm_joint_names = ["joint1", ..., "joint6"]
    arm_stiffness = 1000
    arm_damping = [50, 50, 50, 50, 50, 50]
    arm_friction = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
    arm_force_limit = 100
    ee_link_name = "link6"
    keyframes = dict(rest=Keyframe(...), zeros=Keyframe(...), stretch_j1=Keyframe(...), ...)

@register_agent()
class XArm6NoGripperWristCamera(XArm6NoGripper):
    uid = "xarm6_nogripper_wristcam"

Import

from mani_skill.agents.robots.xarm6.xarm6_nogripper import XArm6NoGripper

I/O Contract

Inputs

Name Type Required Description
(inherited from BaseAgent)

Outputs

Name Type Description
robot agent XArm6NoGripper Configured 6-DOF arm with per-joint friction tuning and comprehensive control modes (no gripper)

Usage Examples

Creating Environment with Robot

import gymnasium as gym
import mani_skill.envs

env = gym.make("PushCube-v1", robot_uids="xarm6_nogripper")
obs, info = env.reset()

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment