-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Fix Unitree Go1 and Go2 calf actuator limits ignoring the knee reduction #7564
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| Changed | ||
| ^^^^^^^ | ||
|
|
||
| * Changed :attr:`~isaaclab.actuators.DCMotorCfg.saturation_effort` to accept a joint-name-pattern | ||
| dictionary in addition to a scalar. Joints in one actuator group that sit behind different gear | ||
| reductions can now be given their own stall torque, which previously required splitting them into | ||
| separate actuator groups. Existing scalar configurations are unaffected. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -405,7 +405,9 @@ def __init__(self, cfg: DCMotorCfg, *args, **kwargs): | |
| # parse configuration | ||
| if self.cfg.saturation_effort is None: | ||
| raise ValueError("The saturation_effort must be provided for the DC motor actuator model.") | ||
| self._saturation_effort = self.cfg.saturation_effort | ||
| self._saturation_effort = resolve_joint_parameter( | ||
| self.cfg.saturation_effort, None, self._joint_names, self._num_envs, self._device | ||
| ) | ||
|
Comment on lines
+408
to
+410
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
A dictionary that does not cover every joint resolves uncovered entries to |
||
| # check that quantities are provided | ||
| if self.cfg.actuator_velocity_limit is None: | ||
| raise ValueError("The velocity limit must be provided for the DC motor actuator model.") | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| Fixed | ||
| ^^^^^ | ||
|
|
||
| * Fixed the Unitree Go1 and Go2 leg actuator limits ignoring the knee reduction. Both robots applied | ||
| the hip and thigh limits to the calf joints, which capped calf torque well below its rated value and | ||
| let the torque-speed curve keep motoring past its rated speed. The calf joints now use the limits | ||
| 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), | ||
| and the hip and thigh limits were aligned with the same assets (23.7 N·m, 30.1 rad/s). | ||
|
|
||
| These robots now produce more calf torque at lower calf speeds, so policies trained on the previous | ||
| configuration should be retrained rather than reused directly. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
personally I dislike the emdashes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well Klaude love's them.