Skip to content

[Tasks] Fix pretrained checkpoint lookup for domain presets - #7594

Open
StafaH wants to merge 2 commits into
isaac-sim:developfrom
StafaH:fix/pretrained-checkpoint-presets
Open

[Tasks] Fix pretrained checkpoint lookup for domain presets#7594
StafaH wants to merge 2 commits into
isaac-sim:developfrom
StafaH:fix/pretrained-checkpoint-presets

Conversation

@StafaH

@StafaH StafaH commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Description

Published checkpoint lookup included the task, physics backend, renderer backend, and RL library, but ignored domain presets. As a result, a depth policy could not be found and an unsuffixed RGB policy could be selected for an incompatible preset.

This change:

  • adds non-default domain presets to the canonical checkpoint filename;
  • keeps aliases of the default preset, such as RGB, on the existing unsuffixed filename;
  • derives the selection centrally from the existing preset overrides, covering all checkpoint consumers;
  • declares the published Cartpole depth checkpoint and disables the environment-browser pretrained option for undeclared preset selections.

No new dependencies.

Type of change

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

Release backport

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

Screenshots

Not applicable; the UI change disables the existing pretrained-checkpoint checkbox for unsupported preset selections.

Validation

  • 17 existing/new pretrained-checkpoint tests passed.
  • 28 existing/new environment documentation tests passed.
  • Environment browser generation check passed for 137 registered training environments.
  • Ruff lint and formatting hooks passed on all touched Python files.
  • The repository-wide format command passed every hook except the changelog-fragment comparison, which reports pre-existing develop/base differences in unrelated isaaclab_newton, isaaclab_experimental, isaaclab_tasks, and isaaclab_visualizers files.

Checklist

  • I have read and understood the contribution guidelines
  • I have run the complete pre-commit checks without unrelated base failures
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove the fix is effective
  • I have added a changelog fragment for every touched package
  • My name already exists in CONTRIBUTORS.md

@StafaH
StafaH requested a review from a team September 5, 2026 03:08
@github-actions github-actions Bot added bug Something isn't working documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team infrastructure labels Sep 5, 2026
@greptile-apps

greptile-apps Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR incorporates non-default domain presets into canonical pretrained-checkpoint identity while preserving unsuffixed names for aliases of the default configuration. It also declares the Cartpole depth checkpoint and uses generated compatibility metadata to disable unsupported pretrained selections in the environment browser.

  • Resolves selected non-default domain presets from existing preset overrides.
  • Adds preset suffixes to backend-aware checkpoint paths.
  • Carries per-library checkpoint compatibility into generated browser data.
  • Preserves default-preset aliases such as RGB on existing unsuffixed paths.
  • Leaves the canonical publishing workflow without domain-preset plumbing.

Confidence Score: 4/5

The lookup and browser changes appear safe to merge, with a non-blocking gap in the supported workflow for publishing preset-specific checkpoints.

Runtime lookup correctly distinguishes non-default domain presets and preserves default aliases, but the repository’s publishing job model cannot convey those presets and therefore cannot generate the new suffixed publication paths.

Files Needing Attention: source/isaaclab_rl/isaaclab_rl/utils/pretrained_checkpoint.py and scripts/tools/train_and_publish_checkpoints.py

Important Files Changed

Filename Overview
source/isaaclab_rl/isaaclab_rl/utils/pretrained_checkpoint.py Adds domain-preset-aware checkpoint naming and automatic lookup selection, but the corresponding publishing workflow cannot yet supply the new identity component.
source/isaaclab_tasks/isaaclab_tasks/core/cartpole/init.py Declares RL-Games depth-checkpoint compatibility for the direct camera Cartpole task.
tools/environ_docs.py Derives default aliases and registered preset-specific checkpoint compatibility for generated browser rows.
docs/source/_static/css/environment-browser.js Consumes generated compatibility metadata and disables pretrained selection for unsupported preset and library combinations.
source/isaaclab_rl/test/test_pretrained_checkpoint.py Covers default-alias filtering and preset-suffixed checkpoint retrieval.
tools/test/test_environ_docs.py Verifies compatibility metadata collection and browser-row serialization.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  O["CLI preset overrides"] --> R["Resolve non-default domain presets"]
  R --> N["Canonical checkpoint filename"]
  B["Physics and renderer backends"] --> N
  L["RL library"] --> N
  N --> F["Fetch published checkpoint"]
  M["Task compatibility metadata"] --> G["Generated environment-browser rows"]
  G --> U["Enable or disable pretrained option"]
  P["Checkpoint publishing workflow"] -. "domain preset not currently conveyed" .-> N
Loading

Reviews (1): Last reviewed commit: "Resolve pretrained checkpoints by preset" | Re-trigger Greptile

Comment thread source/isaaclab_rl/isaaclab_rl/utils/pretrained_checkpoint.py

@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 preset-aware filename and browser integration are consistent for backend-aware checkpoints, but backend-less legacy lookup now fails when process arguments include a non-default domain preset.

  • Design and architecture: Central preset resolution gives backend-aware checkpoint consumers a consistent filename identity. However, resolving presets implicitly from process-wide sys.argv before determining whether the caller requested the legacy layout couples that compatibility path to unrelated CLI state.
  • API: The new parameters are keyword-only and otherwise backward compatible, but get_published_pretrained_checkpoint still documents omission of both backends as selecting the legacy layout. With presets=<non-default> in sys.argv, that documented call now raises ValueError instead of returning the legacy checkpoint. Preset resolution should occur only for backend-aware lookup.
  • Implementation: Preset suffix construction, publish/fetch paths, cache naming, generated browser metadata, and UI updates on preset or library changes were traced and are internally consistent. The remaining implementation fix is to avoid forwarding implicitly resolved preset names into backend-less legacy filename generation.

Minor fixes needed. Posted 1 actionable finding inline.

Automated review; human maintainers own approval decisions.

Comment thread source/isaaclab_rl/isaaclab_rl/utils/pretrained_checkpoint.py
@StafaH StafaH changed the title Fix pretrained checkpoint lookup for domain presets [Tasks] Fix pretrained checkpoint lookup for domain presets Sep 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working documentation Improvements or additions to documentation infrastructure isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant