Skip to content

Update the template generator for RSL-RL - #6806

Open
ClemensSchwarke wants to merge 3 commits into
isaac-sim:developfrom
ClemensSchwarke:fix/rsl_rl_template
Open

Update the template generator for RSL-RL#6806
ClemensSchwarke wants to merge 3 commits into
isaac-sim:developfrom
ClemensSchwarke:fix/rsl_rl_template

Conversation

@ClemensSchwarke

Copy link
Copy Markdown
Collaborator

Description

This PR adds Distillation to the list of available algorithms for RSL-RL. It also updates the config templates to RSL-RL version 5. This is a reimplementation of #5117 but now targeting develop.

Type of change

  • Template generator update

Checklist

  • I have run the pre-commit checks with ./isaaclab.sh --format
  • My changes generate no new warnings

@ClemensSchwarke
ClemensSchwarke requested a review from a team July 30, 2026 13:56
@github-actions github-actions Bot added bug Something isn't working infrastructure labels Jul 30, 2026
Comment on lines +30 to +31
{% set runner_prefix = {"distillation": "Distillation"}.get(algorithm, algorithm|upper) %}
{% set agent_config = "." ~ rl_library.name ~ "_" ~ algorithm ~ "_cfg:" ~ runner_prefix ~ "RunnerCfg" %}

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.

P1 Distillation default entry point missing

When a project is generated with RSL-RL Distillation but without PPO, registration exposes only rsl_rl_distillation_cfg_entry_point, while the standard train and play commands request rsl_rl_cfg_entry_point, causing configuration loading to fail with Could not find configuration for the environment.

Comment thread tools/template/common.py

# RL algorithms
SINGLE_AGENT_ALGORITHMS = ["AMP", "PPO"]
SINGLE_AGENT_ALGORITHMS = ["AMP", "PPO", "DISTILLATION"]

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.

P1 Algorithm expectations omit Distillation

Adding DISTILLATION changes the discovered RSL-RL single-agent algorithms to ["DISTILLATION", "PPO"], but the checked-in discovery tests still expect only ["PPO"], causing test_get_algorithms_per_rl_library_filters_by_workflow_type to fail.

@greptile-apps

greptile-apps Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR extends generated RSL-RL projects with Distillation and updates their configuration templates for RSL-RL v5.

  • Adds Distillation algorithm discovery and a corresponding runner configuration template.
  • Adds explicit observation-group mappings to generated PPO configurations.
  • Generates the Distillation runner class entry point and updates the CLI capability table.

Confidence Score: 4/5

The missing default Distillation entry point and stale test expectations should be fixed before merging.

Distillation-only generated projects fail configuration loading through the standard train and play commands, and the changed discovery result breaks checked-in template-generator assertions.

Files Needing Attention: tools/template/templates/tasks/__init__task; tools/template/common.py; source/isaaclab_rl/test/test_template_generator.py

Important Files Changed

Filename Overview
tools/template/common.py Adds Distillation to single-agent discovery but leaves explicit discovery-test expectations stale.
tools/template/templates/agents/rsl_rl_distillation_cfg Adds a v5-style Distillation runner configuration consistent with existing repository configurations.
tools/template/templates/agents/rsl_rl_ppo_cfg Adds actor and critic observation-group mappings matching existing RSL-RL v5 configurations.
tools/template/templates/tasks/__init__task Resolves the Distillation class name correctly, but algorithm-only projects lack the default configuration key used by training and playback.
tools/template/cli.py Improves algorithm display wrapping and advertises RSL-RL distributed-training support.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
    CLI[Template CLI selects RSL-RL Distillation] --> Gen[Generate task and Distillation config]
    Gen --> Reg[Register rsl_rl_distillation_cfg_entry_point]
    Train[Default train or play command] --> Default[Request rsl_rl_cfg_entry_point]
    Default --> Missing[Configuration key absent]
    Missing --> Error[Configuration-loading ValueError]
Loading

Reviews (1): Last reviewed commit: "fix template for new 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

No material issues were identified in the reviewed diff.

  • Design and architecture: No material concerns.
  • API: No material concerns.
  • Implementation: No material concerns.

Ship it. No actionable findings were identified in the reviewed diff.

Conservative automated review; human maintainers own approval decisions.

@kellyguo11

Copy link
Copy Markdown
Contributor

thanks for this update! could you also update the template generator tests to take into consideration the new changes?

Cover Distillation in algorithm discovery, generated config files, and registry entry points so the tests match the newly supported RSL-RL workflow.
@github-actions github-actions Bot added the isaac-lab Related to Isaac Lab team label Aug 3, 2026
@kellyguo11 kellyguo11 moved this to In progress in Isaac Lab Aug 3, 2026
@kellyguo11 kellyguo11 moved this from In progress to In review in Isaac Lab Aug 3, 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 infrastructure isaac-lab Related to Isaac Lab team

Projects

Status: In review

Development

Successfully merging this pull request may close these issues.

3 participants