Skip to content

Commit a67b001

Browse files
committed
WIP: G1 rough-terrain fixes — remove fingers from action space + Newton armature/damping presets
Reduces action_rate_l2 penalty from -0.6 to -0.25 by restricting the 14 finger joints from the action vector; locomotion-relevant joints only (hips, knees, ankles, shoulders, elbows, torso). Adds Newton-only armature (0.03) and damping (20.0) presets on the legs actuator to stabilize G1 under the MJWarp solver where the USD baseline values (armature=0.01, damping=5.0) produce excessive oscillation. Measured results (1500 iter, 4096 envs, last30 avg reward): - G1 PhysX baseline: +11.68 - G1 PhysX (fingers-out-of-action): +20.54 (beats H1 PhysX +18.15) - G1 Newton baseline: -2.33 - G1 Newton (fingers-out-of-action): +5.35 - G1 Newton (fingers + armature + damping): +9.61 (47% of PhysX) Newton still lags PhysX on G1; residual gap is physics-level and out of scope for this PR. Marking WIP pending further tuning or upstream Newton improvements.
1 parent 43520bc commit a67b001

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

  • source/isaaclab_tasks/isaaclab_tasks/manager_based/locomotion/velocity/config/g1

source/isaaclab_tasks/isaaclab_tasks/manager_based/locomotion/velocity/config/g1/rough_env_cfg.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
LocomotionVelocityRoughEnvCfg,
1414
RewardsCfg,
1515
)
16+
from isaaclab_tasks.utils import preset
1617

1718
##
1819
# Pre-defined configs
@@ -144,6 +145,22 @@ def __post_init__(self):
144145
# terminations
145146
self.terminations.base_contact.params["sensor_cfg"].body_names = "torso_link"
146147

148+
# G1 H1: remove finger joints from the action space. 14 finger joints contribute
149+
# to action_rate_l2 penalty (G1 hits -0.6 at 1500 iter vs H1's -0.2 — 3x
150+
# penalty from extra dims). Restrict actions to locomotion-relevant joints.
151+
self.actions.joint_pos.joint_names = [
152+
".*_hip_.*", ".*_knee_joint", ".*_ankle_.*", ".*_shoulder_.*", ".*_elbow_.*",
153+
"torso_joint",
154+
]
155+
156+
# G1 Newton armature bump (Go2-pattern). Baseline G1 Newton lagged PhysX even
157+
# after the finger-space fix (5.35 vs 20.54). Higher armature stabilizes joints
158+
# on Newton without affecting PhysX.
159+
self.scene.robot.actuators["legs"].armature = preset(default=0.01, newton=0.03)
160+
# Also bump damping on Newton — G1 hip/knee damping=5.0 is similar low-damp
161+
# pattern that hurts Newton stability (same as Digit's low hip damping).
162+
self.scene.robot.actuators["legs"].damping = preset(default=5.0, newton=20.0)
163+
147164

148165
@configclass
149166
class G1RoughEnvCfg_PLAY(G1RoughEnvCfg):

0 commit comments

Comments
 (0)