Skip to content

Commit 72cc86d

Browse files
committed
Enable rough terrain for bipeds (H1, Cassie) and Digit on Newton
Restore per-biped overrides dropped by parent PR's consolidation: - All bipeds (H1, Cassie, G1, Digit): restore reset_robot_joints.params["position_range"] = (1.0, 1.0). Bipeds have precise init poses that should not be randomly scaled on reset. - Cassie: add leg armature=0.02 for stability on rough terrain. Out of scope (pre-existing issues that fail on PhysX too): - G1: finger joints dilute learning; addressed in follow-up PR. - Digit: closed-loop kinematics fail in 7 steps on both backends.
1 parent cf53a59 commit 72cc86d

4 files changed

Lines changed: 13 additions & 0 deletions

File tree

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

Lines changed: 7 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
@@ -60,12 +61,18 @@ def __post_init__(self):
6061
super().__post_init__()
6162
# scene
6263
self.scene.robot = CASSIE_CFG.replace(prim_path="{ENV_REGEX_NS}/Robot")
64+
# Cassie Newton-only armature for biped stability on rough terrain; PhysX unchanged
65+
self.scene.robot.actuators["legs"].armature = preset(default=0.0, newton=0.02)
66+
67+
6368
self.scene.height_scanner.prim_path = "{ENV_REGEX_NS}/Robot/pelvis"
6469

6570
# Cassie uses "pelvis" as base body — disable mass randomization for bipeds
6671
self.events.add_base_mass = None
6772
self.events.base_com = None
6873
self.events.base_external_force_torque.params["asset_cfg"].body_names = ".*pelvis"
74+
# Cassie has precise initial pose — don't scale joint defaults randomly on reset
75+
self.events.reset_robot_joints.params["position_range"] = (1.0, 1.0)
6976

7077
# actions
7178
self.actions.joint_pos.scale = 0.5

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,8 @@ def __post_init__(self):
232232
self.events.add_base_mass.params["asset_cfg"].body_names = "torso_base"
233233
self.events.base_external_force_torque.params["asset_cfg"].body_names = "torso_base"
234234
self.events.base_com.default.params["asset_cfg"].body_names = "torso_base"
235+
# Digit has precise initial pose — don't scale joint defaults randomly on reset
236+
self.events.reset_robot_joints.params["position_range"] = (1.0, 1.0)
235237

236238
# Override actuator to target only actuated joints. Digit has ball joints (rod constraints)
237239
# that MuJoCo represents with 4 DoFs instead of 3, inflating joint_pos to 74 columns while

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,8 @@ def __post_init__(self):
119119
self.events.add_base_mass = None
120120
self.events.base_com = None
121121
self.events.base_external_force_torque.params["asset_cfg"].body_names = "torso_link"
122+
# G1 has precise initial pose — don't scale joint defaults randomly on reset
123+
self.events.reset_robot_joints.params["position_range"] = (1.0, 1.0)
122124

123125
# Rewards
124126
self.rewards.lin_vel_z_l2.weight = 0.0

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ def __post_init__(self):
8585

8686
# H1 uses "torso_link" as base body — disable mass randomization for bipeds
8787
self.events.add_base_mass = None
88+
# H1 has precise initial pose — don't scale joint defaults randomly on reset
89+
self.events.reset_robot_joints.params["position_range"] = (1.0, 1.0)
8890
self.events.base_com = None
8991
self.events.base_external_force_torque.params["asset_cfg"].body_names = ".*torso_link"
9092

0 commit comments

Comments
 (0)