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 Fetch

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

Overview

Concrete tool for simulating the Fetch mobile manipulation robot agent in ManiSkill environments.

Description

The Fetch robot is a mobile manipulator with a 7-DOF arm, a parallel-jaw gripper, a movable torso, a pan-tilt head, and a mobile base. It is loaded from a URDF file and features 15 active joints total: 3 base joints (x, y, rotation), 3 body joints (head pan, head tilt, torso lift), 7 arm joints (shoulder pan/lift, upperarm roll, elbow flex, forearm roll, wrist flex/roll), and 2 mimic gripper finger joints. The robot has two onboard cameras: a head camera and a hand camera mounted on the gripper link. Custom collision groups are defined for the wheels and the base. Gripper materials use high friction (static=2.0, dynamic=2.0) for stable grasping.

uid: fetch

URDF path: {PACKAGE_ASSET_DIR}/robots/fetch/fetch.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_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, pd_joint_delta_pos_stiff_body

Usage

Use the Fetch robot for mobile manipulation tasks that require navigating to objects and performing pick-and-place operations. The mobile base allows the robot to traverse environments, the torso lift enables reaching different heights, and the head cameras provide visual feedback. Suitable for tasks such as table-top manipulation, room navigation with object interaction, and teleoperation demonstrations via the ee_align control mode.

Code Reference

Source Location

Signature

@register_agent()
class Fetch(BaseAgent):
    uid = "fetch"
    urdf_path = f"{PACKAGE_ASSET_DIR}/robots/fetch/fetch.urdf"
    urdf_arm_ik_path = f"{PACKAGE_ASSET_DIR}/robots/fetch/fetch_torso_up.urdf"
    keyframes = dict(
        rest=Keyframe(
            pose=sapien.Pose(),
            qpos=np.array([0, 0, 0, 0.386, 0, -0.370, 0.562, -1.032, 0.695, 0.955, -0.1, 2.077, 0, 0.015, 0.015]),
        )
    )

Import

from mani_skill.agents.robots.fetch.fetch import Fetch

I/O Contract

Inputs

Name Type Required Description
(inherited from BaseAgent)

Outputs

Name Type Description
robot agent Fetch Configured mobile manipulator with arm, gripper, body, and base controllers plus head and hand cameras

Usage Examples

Creating Environment with Robot

import gymnasium as gym
import mani_skill.envs

env = gym.make("PickCube-v1", robot_uids="fetch")
obs, info = env.reset()

Related Pages

Page Connections

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