Unitree H1 / H1-2: Known Problems & Fixes

Last updated

9 known issues View robot profile →
Warranty & Safety Notice: Unofficial modifications or unapproved firmware changes may void your warranty and could cause hardware damage or injury. Always consult the manufacturer or a certified technician before performing repairs. Workarounds listed below are community-sourced and provided without guarantee.
SDK/software Blocks Use Workaround Exists

DDS lowstate subscriber fails and SSL cert missing during teleop startup

Symptom
When running teleop_hand_and_arm.py on the H1, two concurrent failures occur: a FileNotFoundError for an SSL certificate file needed by the vuer server, and repeated 'lowstate_subscriber is not ok! Please check dds.' messages indicating the DDS connection to the robot cannot be established.
Affected
xr_teleoperate h1 branch; Python 3.8; unitree_dds_wrapper (stale version)
Fix / Workaround
Community suggestion: replace the temporary unitree_dds_wrapper with the official unitree_sdk2_python library in the robot_arm.py and robot_hand.py control files. One commenter also reported success by switching the message type library from unitree_hg to unitree_go (unitree_go is for H1, unitree_hg is for H1_2/G1).
SDK/software Degrades Use Workaround Exists

H1 teleoperation positional inaccuracy and Inspire Hand fingers fail to close fully

Symptom
During teleoperation of the H1 (Education Edition) with Inspire Hands and Meta Quest 3, a persistent offset exists between the operator's hand movements and the robot's arm positions such that the robot's hands cannot fully close together. The Inspire Hand fingers also fail to close completely — a gap of approximately 5 cm remains between the index finger and thumb even when the operator's fingers are touching. Overall manipulation lacks positional accuracy.
Affected
Unitree H1 Education Edition (4-DOF arms); Inspire Hands; Meta Quest 3
Fix / Workaround
Vendor reply: the latest release switched the hand remapping algorithm from Vector to DexPilot, which accounts for constraints between all fingers and was suggested to improve pinch actions. No confirmation that this fully resolved the positional inaccuracy.
hand/gripper Blocks Use Workaround Exists

Inspire Hand serial port fails to open on /dev/ttyUSB0

Symptom
When launching the Inspire Hand controller with the command sudo ./inspire_hand -s /dev/ttyUSB0, the program immediately reports 'Open Serial port /dev/ttyUSB0 failed' and cannot connect to the hand.
Fix / Workaround
Vendor reply: directed user to a separate issue thread for the DFX Inspire Hand (RS485) and a separate issue thread for the FTP Inspire Hand (Modbus TCP), depending on hand model.
SDK/software Blocks Use Workaround Exists

Training crashes with unpad_trajectories shape mismatch for H1/H1-2/G1 tasks

Symptom
RL training for the h1, h1_2, and g1 tasks crashes at or around 1000 iterations with a RuntimeError: 'shape [-1, 1044, 64] is invalid for input of size 1572864' inside the unpad_trajectories function. The go2 task does not exhibit this problem.
Affected
unitree_rl_gym; rsl_rl 1.0.2; Python 3.8
Fix / Workaround
Community fix: update utils.py in rsl_rl to a newer upstream version from the leggedrobotics/rsl_rl repository (specifically the unpad_trajectories function). One commenter also noted that too many early episode terminations can trigger the bug, and adding two lines to utils.py per a linked pull request resolved it.
network/connectivity Blocks Use Open / Unresolved

H1-2 robot hands unreachable at 192.168.124.210 via network bridge configuration

Symptom
On the H1-2, the robot hands at IP 192.168.124.210 cannot be pinged from the user's computer despite a network bridge being configured. Other devices on the 192.168.124.x subnet such as the LiDAR are reachable. A support ticket submitted through Unitree's ticket system was closed without resolution.
Affected
Unitree H1-2
Fix / Workaround
no confirmed fix
SDK/software Blocks Use Workaround Exists

Sim-to-sim controller repeatedly fails to connect to simulated robot lowstate

Symptom
When running the sim-to-sim setup with MuJoCo and the g1 configuration, the controller repeatedly prints 'Waiting for connection rt/lowstate' and never successfully connects to the simulated robot.
Affected
unitree_rl_lab; MuJoCo sim; g1 robot scene (scene_29dof.xml); domain_id: 0; interface: lo
Fix / Workaround
Community suggestion: run the controller with the explicit network interface flag, e.g. ./g1.ctrl -n lo.
SDK/software Blocks Use Open / Unresolved

H1-2 low-level SDK example raises AttributeError on NoneType lowstate objects

Symptom
Running h1_low_level_example.py against the H1-2 robot produces repeated RecurrentThread exceptions: "AttributeError: 'NoneType' object has no attribute 'imu_state'" and "'NoneType' object has no attribute 'motor_state'", indicating the SDK is not receiving valid lowstate data from the robot.
Affected
unitree_sdk2_python; H1-2 robot; CycloneDDS with rmw_cyclonedds_cpp
Fix / Workaround
no confirmed fix
SDK/software Blocks Use Open / Unresolved

Training crashes with RuntimeError: normal expects all elements of std >= 0.0

Symptom
During RL training for the Unitree-H1-Velocity task, the training run crashes after a large number of timesteps with 'RuntimeError: normal expects all elements of std >= 0.0', caused by invalid standard deviation values in the policy distribution. The same error was reproduced on the Unitree-G1-29dof-Velocity task after approximately 3 hours of training.
Affected
IsaacLab 2.1.0, isaacsim 4.5.0.0
Fix / Workaround
A vendor-side patch (commit e72a072c4db68b79a816b3b89bf3b6a0525d113e) suggested adding 'bad_orientation' to terminations, but a community report confirms the error still occurs after that patch is applied.
SDK/software Blocks Use Workaround Exists

H1 robot with hands explodes in simulation when joint target position is set

Symptom
When importing h1_with_hands.urdf via the Isaac Sim 4.2.0 URDF Importer and setting a joint target position, the robot behaves erratically and 'blows up' in the simulation. The standard h1.urdf without hands does not exhibit this behaviour.
Affected
Isaac Sim 4.2.0
Fix / Workaround
A vendor reply suggests the instability is possibly caused by control parameters; recommended workarounds include reducing stiffness and simulation dt, or fixing the revolute joints in the hand.

Need professional help with your Unitree H1 / H1-2?

Join the repair waitlist and we’ll connect you with certified technicians and service partners.

Join the Repair Waitlist →
🌐