Implementation:Haosulab ManiSkill PandaStick
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Simulation, Manipulation |
| Last Updated | 2026-02-15 08:00 GMT |
Overview
Concrete tool for simulating the Panda arm with a stick end-effector (no gripper) in ManiSkill environments.
Description
PandaStick is a 7-DOF Panda arm variant that replaces the parallel-jaw gripper with a stick tool attached to the end-effector. It has 7 arm joints (panda_joint1 through panda_joint7) and no gripper joints. The end-effector link is panda_hand_tcp. Arm stiffness is 1e3, damping 1e2, force limit 100. The robot supports a comprehensive set of control modes including EE pose control, EE delta pose with alignment frame for teleoperation, and joint-level velocity and position-velocity controllers. Useful for tasks requiring tool usage rather than grasping.
uid: panda_stick
URDF path: {PACKAGE_ASSET_DIR}/robots/panda/panda_stick.urdf
Supported control modes: pd_joint_delta_pos, pd_joint_pos, pd_ee_delta_pos, pd_ee_delta_pose, pd_ee_delta_pose_align, 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 PandaStick for tasks requiring pushing, poking, stirring, or any manipulation that uses a tool rather than grasping. The stick end-effector is particularly suited for pushing tasks and contact-rich manipulation where a gripper is not needed.
Code Reference
Source Location
- Repository: Haosulab_ManiSkill
- File: mani_skill/agents/robots/panda/panda_stick.py
Signature
@register_agent()
class PandaStick(BaseAgent):
uid = "panda_stick"
urdf_path = f"{PACKAGE_ASSET_DIR}/robots/panda/panda_stick.urdf"
arm_joint_names = ["panda_joint1", ..., "panda_joint7"]
ee_link_name = "panda_hand_tcp"
arm_stiffness = 1e3
arm_damping = 1e2
arm_force_limit = 100
keyframes = dict(rest=Keyframe(qpos=np.array([0.0, pi/8, 0, -5pi/8, 0, 3pi/4, pi/4]), pose=sapien.Pose()))
Import
from mani_skill.agents.robots.panda.panda_stick import PandaStick
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| (inherited from BaseAgent) |
Outputs
| Name | Type | Description |
|---|---|---|
| robot agent | PandaStick | Configured 7-DOF arm with stick end-effector (no gripper) |
Usage Examples
Creating Environment with Robot
import gymnasium as gym
import mani_skill.envs
env = gym.make("PushCube-v1", robot_uids="panda_stick")
obs, info = env.reset()