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 UnitreeH1

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

Overview

Concrete tool for simulating the Unitree H1 humanoid robot in ManiSkill environments.

Description

The UnitreeH1 is a 19-DOF humanoid with legs (hip yaw/roll/pitch, knee, ankle per leg = 10 joints), torso (1 joint), and arms (shoulder pitch/roll/yaw, elbow per arm = 8 joints). The robot has a free root link (fix_root_link=False) and loads multiple collision meshes. Body stiffness is 1e3, damping 1e2, force limit 100. Gravity compensation is disabled. Provides is_standing (checks torso height between 0.8m and 1.2m) and is_fallen (torso below 0.3m) helper methods. Also defines UnitreeH1Simplified variant with simplified collision meshes.

uid: unitree_h1

URDF path: {ASSET_DIR}/robots/unitree_h1/urdf/h1.urdf

Supported control modes: pd_joint_pos, pd_joint_delta_pos

Usage

Use UnitreeH1 for humanoid locomotion tasks including standing, walking, and balance control. The 19-DOF design provides a good balance between complexity and controllability for bipedal locomotion research.

Code Reference

Source Location

Signature

@register_agent(asset_download_ids=["unitree_h1"])
class UnitreeH1(BaseAgent):
    uid = "unitree_h1"
    urdf_path = f"{ASSET_DIR}/robots/unitree_h1/urdf/h1.urdf"
    fix_root_link = False
    load_multiple_collisions = True
    body_joints = ["left_hip_yaw_joint", ..., "right_elbow_joint"]  # 19 joints
    body_stiffness = 1e3
    body_damping = 1e2
    body_force_limit = 100
    keyframes = dict(standing=Keyframe(pose=sapien.Pose(p=[0, 0, 0.975]), qpos=np.array([...])))

@register_agent(asset_download_ids=["unitree_h1"])
class UnitreeH1Simplified(UnitreeH1):
    uid = "unitree_h1_simplified"

Import

from mani_skill.agents.robots.unitree_h1.h1 import UnitreeH1

I/O Contract

Inputs

Name Type Required Description
(inherited from BaseAgent)

Outputs

Name Type Description
robot agent UnitreeH1 Configured 19-DOF humanoid with legs, torso, and arms

Usage Examples

Creating Environment with Robot

import gymnasium as gym
import mani_skill.envs

env = gym.make("UnitreeH1Stand-v1", robot_uids="unitree_h1")
obs, info = env.reset()

Related Pages

Page Connections

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