Implementation:Haosulab ManiSkill UnitreeH1
| 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
- Repository: Haosulab_ManiSkill
- File: mani_skill/agents/robots/unitree_h1/h1.py
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()