Starting viewport
Unitree Robotics · humanoid
Unitree H1
Full-size electric humanoid from Unitree with 5-DOF-per-leg design, known for a 3.3 m/s humanoid walking-speed record.
Frames · Unitree H1
5 items · credit and license on each
Studio render of the published MJCF, keyframe pose from the model. Geometry only; colours are the model's own materials.Rendered by Hyperspawn from mujoco_menagerie/unitree_h1 (BSD-3-Clause) · Hyperspawn render · source 
Side view of the same MJCF render, keyframe pose from the model.Rendered by Hyperspawn from mujoco_menagerie/unitree_h1 (BSD-3-Clause) · Hyperspawn render · source 4 s turntable of the MJCF studio render.Rendered by Hyperspawn from mujoco_menagerie/unitree_h1 (BSD-3-Clause) · Hyperspawn render · source Introducing Unitree H1: Its First General-purpose Humanoid Robot| Embodied AI Price below $90kUnitree Robotics · official embed · source Unitree H1 Breaking humanoid robot speed world record [full-size humanoid] Evolution V3.0Unitree Robotics · official embed · source
Policy in the viewport
Unitree H1 velocity walking
Velocity tracking on flat ground (forward, lateral, yaw rate)
Plays in tabReal-robot deploy documented
- Checkpoint
- deploy/pre_train/h1/motion.ptlegged_gym (Isaac Gym) + rsl_rl PPO, ActorCriticRecurrent (LSTM 64, MLP 32, ELU)
- License
- BSD-3-Clause
- Model
- Unitree H1 10-DoF · unitreerobotics/unitree_rl_gym/resources/robots/h1/scene.xml
- Export
- ONNX opset 17 with the LSTM state as explicit inputs/outputs; weights copied unchanged. max |a_torch - a_onnx| < 5e-6 over 200 stateful random steps (onnxruntime 1.x CPU).
- Timing
- physics 2 ms · policy every 10 steps (50 Hz) · network runs after the step
- Obs
- 41 floats: base_ang_vel[3] x0.25 · projected_gravity[3] · command[3] x[2, 2, 0.25] · joint_pos_rel[10] · joint_vel[10] x0.05 · last_action[10] · gait_phase[2] T=0.8sLSTM state [1, 1, 64] carried between steps, zeroed on reset
- Action
- 10 joint targets = action x 0.25 + default · PD kp/kd 150/2, 200/4, 40/2 · torque to motor ctrl
- Joints
- left_hip_yaw_joint, left_hip_roll_joint, left_hip_pitch_joint, left_knee_joint, left_ankle_joint, right_hip_yaw_joint, right_hip_roll_joint, right_hip_pitch_joint, right_knee_joint, right_ankle_joint
- Commands
- trained vx [-1, 1] vy [-1, 1] yaw [-1, 1] · starts at [0.5, 0, 0]
- Tested
- 60 s at [0.5, 0, 0] in MuJoCo 3.14.0 WASM + onnxruntime-web 1.30 (wasm, 1 thread), Chromium, real time: no fall, mean speed along heading 0.47 m/s, base height never below 1.00 m (2026-09-25)
- Notes
- The reference script runs PD on every 2 ms physics step: tau = kp*(target - q) - kd*qdot, written straight to the motor ctrl; MuJoCo clamps it to each joint's actuatorfrcrange.
- The policy runs after every 10th step on the post-step state (50 Hz). gait phase = (steps*dt mod 0.8)/0.8, steps counted from reset.
- Base angular velocity is qvel[3:6] of the free joint (body frame). Projected gravity uses the reference formula on qpos[3:7] (w,x,y,z).
- Training used heading mode (yaw-rate command recomputed from heading error); the policy input is still (vx, vy, yaw rate).
- Replay check: this runtime (MuJoCo WASM + onnxruntime-web in Node) and the reference script (MuJoCo 3.14 Python + TorchScript) give the same base trajectory to the centimetre over 30 s at [0.5, 0, 0] (x 13.80 m, y -0.21 m).
Contract file: packages/sim/policies/unitree_h1_walk/contract.json · served at /policies/unitree_h1_walk/contract.json
Provenance
- Model
- Unitree H1 10-DoF
- Commit
- 276801e46c5d
- Entry
- resources/robots/h1/scene.xml
- Files
- 23 · 14 MB, fetched from raw.githubusercontent.com, cached in your browser
- License
- BSD-3-Clause
- Engine
- MuJoCo 3.14.0, official WebAssembly build · three.js renderer
- Controller
- Published policy (deploy/pre_train/h1/motion.pt), torque PD at 500 Hz; Hold and Limp are the generic PD controllers
- Caveat
- Opens walking on its published policy (set the command to 0 to stand). Hold and Limp are our generic PD controllers; this legs-only model does not stay up under Hold.
- Note
- unitree_rl_gym's H1: 10 torque-driven leg joints, arms and torso fixed. The model its published walking policy is replayed on.
- Model
- Unitree H1
- Commit
- c96a32d28fb5
- Entry
- unitree_h1/scene.xml
- Files
- 23 · 14 MB, fetched from raw.githubusercontent.com, cached in your browser
- License
- BSD-3-Clause
- Engine
- MuJoCo 3.14.0, official WebAssembly build · three.js renderer
- Controller
- PD hold on the stand keyframe with an ankle-strategy tilt term; not a learned policy
Policies listed for Unitree H1
The build package lists no other policies. The one above is the only published checkpoint for Unitree H1 that we replay.
Train on GPUs
mjlab ships no stock task for Unitree H1. The training page gives you the pinned model and the steps to write a robot config.