Skip to content

Commit 5cfe96d

Browse files
Fix Unitree Go1 and Go2 calf actuator limits
Both configurations applied one set of DC motor limits to all twelve leg joints, but the Go1 and Go2 calf sits behind an extra knee reduction (1.50:1 and 1.92:1). The calf was therefore capped at roughly half its rated torque while its torque-speed curve kept motoring up to a no-load speed it cannot reach on hardware. Give the calf its own limits, taken from the joint drives authored in go1.usd and go2.usd, which already carry the reduction. The hip and thigh limits are aligned with the same assets so all three come from one source.
1 parent 52fddeb commit 5cfe96d

2 files changed

Lines changed: 21 additions & 6 deletions

File tree

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
Fixed
2+
^^^^^
3+
4+
* Fixed the Unitree Go1 and Go2 leg actuator limits ignoring the knee reduction. Both robots applied
5+
the hip and thigh limits to the calf joints, which capped calf torque well below its rated value and
6+
let the torque-speed curve keep motoring past its rated speed. The calf joints now use the limits
7+
authored in ``go1.usd`` and ``go2.usd`` (Go1: 35.55 N·m, 20.06 rad/s; Go2: 45.43 N·m, 15.70 rad/s),
8+
and the hip and thigh limits were aligned with the same assets (23.7 N·m, 30.1 rad/s).
9+
10+
These robots now produce more calf torque at lower calf speeds, so policies trained on the previous
11+
configuration should be retrained rather than reused directly.

source/isaaclab_assets/isaaclab_assets/robots/unitree.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,11 @@
3939
torque_scale=1.0,
4040
input_order="pos_vel",
4141
input_idx=[0, 1, 2],
42-
actuator_effort_limit=23.7, # taken from spec sheet
43-
actuator_velocity_limit=30.0, # taken from spec sheet
44-
saturation_effort=23.7, # same as effort limit
42+
# the calf sits behind an extra 1.5:1 knee reduction, so its joint-side torque is higher
43+
# and its joint-side speed lower than the hip and thigh. Values match ``go1.usd``.
44+
actuator_effort_limit={".*_hip_joint": 23.7, ".*_thigh_joint": 23.7, ".*_calf_joint": 35.55},
45+
actuator_velocity_limit={".*_hip_joint": 30.1, ".*_thigh_joint": 30.1, ".*_calf_joint": 20.06},
46+
saturation_effort={".*_hip_joint": 23.7, ".*_thigh_joint": 23.7, ".*_calf_joint": 35.55},
4547
)
4648
"""Configuration of Go1 actuators using MLP model.
4749
@@ -171,9 +173,11 @@
171173
actuators={
172174
"base_legs": DCMotorCfg(
173175
joint_names_expr=[".*_hip_joint", ".*_thigh_joint", ".*_calf_joint"],
174-
actuator_effort_limit=23.5,
175-
saturation_effort=23.5,
176-
actuator_velocity_limit=30.0,
176+
# the calf sits behind an extra 1.92:1 knee reduction, so its joint-side torque is
177+
# higher and its joint-side speed lower than the hip and thigh. Values match ``go2.usd``.
178+
actuator_effort_limit={".*_hip_joint": 23.7, ".*_thigh_joint": 23.7, ".*_calf_joint": 45.43},
179+
saturation_effort={".*_hip_joint": 23.7, ".*_thigh_joint": 23.7, ".*_calf_joint": 45.43},
180+
actuator_velocity_limit={".*_hip_joint": 30.1, ".*_thigh_joint": 30.1, ".*_calf_joint": 15.70},
177181
stiffness=25.0,
178182
damping=0.5,
179183
friction=0.0,

0 commit comments

Comments
 (0)