Skip to content

Remove solver-specific velocity task tuning - #7607

Open
ooctipus wants to merge 1 commit into
isaac-sim:developfrom
ooctipus:zhengyuz/unify-velocity-solver-inputs
Open

Remove solver-specific velocity task tuning#7607
ooctipus wants to merge 1 commit into
isaac-sim:developfrom
ooctipus:zhengyuz/unify-velocity-solver-inputs

Conversation

@ooctipus

@ooctipus ooctipus commented Sep 6, 2026

Copy link
Copy Markdown
Collaborator

Description

Remove backend-specific task and training changes from rough velocity configurations so physics selection no longer silently changes the comparison inputs.

  • Remove MJWarp-only actuator armature overrides from Anymal-C, Cassie, Go1, and Go2.
  • Use the same 5,000-iteration G1 PPO budget for every physics backend.
  • Replace the one-option base-COM PresetCfg with its owned EventTerm and update the robot-specific callers.
  • Remove tests whose only contract was the deleted G1 budget or Go2 armature special case. Keep the legacy Newton alias check tied to the selected solver instead of an actuator side effect.

Downstream configurations that intentionally require different values can still set them explicitly.

Type of change

  • Bug fix (non-breaking change which fixes an issue)

Release backport

  • Backport this pull request to the active release branch after it merges into develop

Testing

  • uv run --extra test python -m pytest source/isaaclab_tasks/test/core/test_hydra.py source/isaaclab_tasks/test/core/test_velocity_newton_cfg.py — 88 passed.
  • uv run isaaclab -f — passed.
  • No new tests were added.

Checklist

  • I have read and understood the contribution guidelines.
  • I have run the pre-commit checks.
  • Documentation changes are not required.
  • My changes generate no new warnings.
  • I removed tests that encoded the deleted backend-specific tuning.
  • I added an isaaclab_tasks changelog fragment.
  • My name already exists in CONTRIBUTORS.md.

@ooctipus
ooctipus requested a review from a team September 6, 2026 07:10
@github-actions github-actions Bot added the isaac-lab Related to Isaac Lab team label Sep 6, 2026
@greptile-apps

greptile-apps Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR removes solver-specific tuning from rough-velocity configurations so backend selection no longer changes task or training configuration inputs.

  • Removes MJWarp-only armature overrides from Anymal-C, Cassie, Go1, and Go2.
  • Standardizes the G1 rough PPO training budget at 5,000 iterations.
  • Simplifies shared base-COM randomization from a single-option preset to an owned event and updates robot-specific mutations.
  • Updates tests and adds a changelog fragment for the unified behavior.

Confidence Score: 5/5

The PR appears safe to merge; no actionable correctness, security, or repository-rule violations were identified.

The simplified base-COM event remains intact during preset resolution, the Newton alias selects the expected MJWarp solver configuration, and the removed tuning values have no remaining internal callers that depend on their preset shape.

Important Files Changed

Filename Overview
source/isaaclab_tasks/isaaclab_tasks/core/velocity/velocity_env_cfg.py Replaces the one-option base-COM preset with an equivalent plain event that remains active across solver selections.
source/isaaclab_tasks/isaaclab_tasks/core/velocity/config/g1/agents/rsl_rl_ppo_cfg.py Sets the G1 rough PPO budget to 5,000 iterations for every backend without disrupting derived runner configurations.
source/isaaclab_tasks/isaaclab_tasks/core/velocity/config/go2/rough_env_cfg.py Removes the MJWarp-specific actuator armature override so the task uses the shared robot asset configuration.
source/isaaclab_tasks/test/core/test_hydra.py Retargets the legacy Newton alias test to the selected solver rather than a removed actuator side effect.
source/isaaclab_tasks/changelog.d/unify-velocity-solver-inputs.rst Documents the removal of backend-specific velocity-task and training inputs.

Reviews (1): Last reviewed commit: "Remove solver-specific velocity task tun..." | Re-trigger Greptile

@isaaclab-review-bot isaaclab-review-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isaac Lab Review Bot

The backend-tuning cleanup is coherent, but flattening EventsCfg.base_com changes an existing configuration access path and needs explicit breaking-change classification and migration guidance before merge.

  • Design and architecture: Removing solver-conditioned armatures and training budgets simplifies backend comparisons. However, replacing the one-option PresetCfg with an EventTerm changes the structure inherited by downstream velocity configurations from base_com.default to base_com.
  • API: The EventsCfg.base_com type change breaks downstream configurations using the previously shipped self.events.base_com.default.params[...] customization pattern. The changelog should mark this compatibility change clearly and document the base_com.default to base_com migration.
  • Implementation: The in-repository a1, go1, and digit callers were updated consistently, and the legacy Newton alias test now checks the selected MJWarpSolverCfg directly. These internal updates also demonstrate the concrete migration downstream callers must perform.

Minor fixes needed. Posted 1 actionable finding inline.

Automated review; human maintainers own approval decisions.

"com_range": {"x": (-0.05, 0.05), "y": (-0.05, 0.05), "z": (-0.01, 0.01)},
},
),
base_com = EventTerm(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Warning · Api — base_com type change lacks migration guidance

EventsCfg.base_com changes from a PresetCfg to a plain EventTerm, so any config following the pattern this repo shipped — self.events.base_com.default.params[...], as a1, go1 and digit did before this diff — now raises AttributeError during __post_init__. The changelog fragment describes it only as "a plain event" and gives migration guidance for the removed backend values, not for this access path. Mark it breaking and state the base_com.default -> base_com migration.


# scene
self.scene.robot = ANYMAL_C_CFG.replace(prim_path="{ENV_REGEX_NS}/Robot")
self.scene.robot.actuators["legs"].armature = preset(

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it not need armature anymore and no Nan?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yup no nan anymore

@ooctipus

ooctipus commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants