Skip to content

[Workflow] Default core tasks to RSL-RL - #7067

Merged
StafaH merged 5 commits into
isaac-sim:developfrom
StafaH:mh/default-rsl-rl
Aug 14, 2026
Merged

[Workflow] Default core tasks to RSL-RL#7067
StafaH merged 5 commits into
isaac-sim:developfrom
StafaH:mh/default-rsl-rl

Conversation

@StafaH

@StafaH StafaH commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Splits the default RL-library change from #6980.\n\n- Resolves default_agent from task registration when --rl_library is omitted.\n- Registers RSL-RL as the default for core tasks, including a Pendulum RSL-RL config.\n- Adds dispatch coverage and a breaking-change fragment.\n\nValidation: uv run python -m pytest source/isaaclab_rl/test/test_entrypoints.py -q (11 passed, 2 skipped).\n\nSupersedes the RSL-RL portion of #6980.

@StafaH
StafaH requested a review from a team August 13, 2026 08:00
@github-actions github-actions Bot added the isaac-lab Related to Isaac Lab team label Aug 13, 2026
@greptile-apps

greptile-apps Bot commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Adds task-driven RL backend selection so unified training and playback commands use each task's registered default when --rl_library is omitted.

  • Registers RSL-RL as the default backend for core tasks.
  • Adds an RSL-RL PPO configuration for the Pendulum task.
  • Adds dispatch tests and documents the CLI behavior change.

Confidence Score: 5/5

The PR appears safe to merge with no concrete blocking or non-blocking defects identified.

Default resolution follows the repository's established task-name normalization and registry contracts, while the new Pendulum configuration matches the environment conversion and RSL-RL observation-group conventions.

Important Files Changed

Filename Overview
source/isaaclab_rl/isaaclab_rl/entrypoints/dispatch.py Resolves a supported default backend from task registration while preserving explicit selection and existing error handling.
source/isaaclab_rl/test/test_entrypoints.py Adds focused coverage for dispatch through a task-registered default backend.
source/isaaclab_tasks/isaaclab_tasks/core/pendulum/agents/rsl_rl_ppo_cfg.py Adds a structurally valid PPO runner configuration matching the Pendulum task's converted single-agent observation group.
source/isaaclab_tasks/isaaclab_tasks/core/pendulum/init.py Registers the new Pendulum RSL-RL configuration and selects it as the task default.
source/isaaclab_tasks/isaaclab_tasks/core/cartpole/init.py Marks RSL-RL as the default for each registered core Cartpole variant.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    CLI["train/play CLI"] --> Explicit{"--rl_library supplied?"}
    Explicit -- Yes --> Backend["Dispatch selected backend"]
    Explicit -- No --> Task["Read --task"]
    Task --> Registry["Import task registrations and query Gym spec"]
    Registry --> Default{"Supported default_agent?"}
    Default -- Yes --> Backend
    Default -- No --> Help["Show backend selector error/help"]
Loading

Reviews (1): Last reviewed commit: "Default core tasks to RSL-RL" | 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 task-registry-driven RSL-RL default is coherent with existing registration metadata, but default resolution introduces an unguarded runtime dependency on isaaclab_tasks before backend launch.

  • Design and architecture: Keeping the default backend in task registration is data-driven, but _resolve_default_library now crosses from isaaclab_rl into isaaclab_tasks during CLI parsing. The import should be guarded so unavailable or pre-launch task registration cannot replace the established selector fallback with an exception.
  • API: Explicit --rl_library selection remains unchanged. When it is omitted, however, an unavailable or failing isaaclab_tasks import can now raise instead of returning the existing missing-selection help and exit code 2.
  • Implementation: The dispatch and argument-forwarding paths are otherwise consistent, and the Pendulum configuration follows sibling RSL-RL configs. The new dispatch test replaces isaaclab_tasks with a stub, so it does not cover the real import path responsible for the compatibility concern.

Minor fixes needed. Posted 1 actionable finding inline.

Automated review; human maintainers own approval decisions.

if args.task is None:
return None

import isaaclab_tasks # noqa: F401

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 · Design Architecture — Unguarded task-registry import during CLI parsing

_resolve_default_library runs inside run_cli, before _run_backend starts the backend that constructs AppLauncher, and imports isaaclab_tasks unguarded. This module otherwise defers even isaaclab.app to stay lightweight, and task packages pull in Kit-dependent isaaclab.envs modules. An install without isaaclab_tasks (or a pre-launch import failure) now raises instead of returning the previous exit-2 message. Guard the import and fall back to None.

@AntoineRichard AntoineRichard left a comment

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.

One concern on pendulum, otherwise LGTM

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.

Pendulum is MARL only, will that work with RSL_RL?

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.

Not sure if we should use RSL_RL

@StafaH
StafaH merged commit 09c163e into isaac-sim:develop Aug 14, 2026
48 of 49 checks passed
@ooctipus
ooctipus deleted the mh/default-rsl-rl branch August 14, 2026 01:55
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