Skip to content

Update configs to new conventions from rsl_rl >= 5.0#5551

Merged
kellyguo11 merged 6 commits into
isaac-sim:developfrom
StafaH:rsl_rl_5
May 13, 2026
Merged

Update configs to new conventions from rsl_rl >= 5.0#5551
kellyguo11 merged 6 commits into
isaac-sim:developfrom
StafaH:rsl_rl_5

Conversation

@StafaH

@StafaH StafaH commented May 8, 2026

Copy link
Copy Markdown
Contributor

Description

Formatted articulation root predicate expressions for readability. No behavior change and no new dependencies.

Type of change

Code cleanup and migration to rsl_rl >= 5.0

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I have updated the changelog and the corresponding version in the extension's config/extension.toml file
  • I have added my name to the CONTRIBUTORS.md or my name already exists there

@github-actions github-actions Bot added documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team infrastructure labels May 8, 2026
@greptile-apps

greptile-apps Bot commented May 8, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR migrates all RSL-RL agent PPO configs from the deprecated RslRlPpoActorCriticCfg/RslRlPpoActorCriticRecurrentCfg API to the new rsl_rl ≥ 5.0 RslRlMLPModelCfg/RslRlRNNModelCfg actor-critic model config API, removes the deprecated empirical_normalization runner field (replacing it with per-model obs_normalization), and renames the \"policy\" key in explicit obs_groups dicts to \"actor\".

  • 38 rsl_rl_ppo_cfg.py task configs updated: policy = RslRlPpoActorCriticCfg(...) replaced with separate actor = RslRlMLPModelCfg(...) and critic = RslRlMLPModelCfg(...), with distribution config expressed via distribution_cfg=GaussianDistributionCfg(...).
  • RNN recurrent configs (gear assembly for Rizon 4s and UR10e) migrated to RslRlRNNModelCfg with HeteroscedasticGaussianDistributionCfg to preserve the state_dependent_std=True and noise_std_type=\"log\" semantics.
  • Documentation and the project template updated to reflect the new API.

Confidence Score: 5/5

Safe to merge — this is a uniform config-only migration with no changes to environment logic, model architectures, or training algorithms.

Every changed file is a configuration dataclass or documentation snippet. The mapping from old to new fields is verified end-to-end by the existing handle_deprecated_rsl_rl_cfg utility and its test suite. Normalization flags, hidden dims, distribution types (Gaussian vs. HeteroscedasticGaussian), and obs_groups keys are all faithfully preserved. Flat subclass overrides and the asymmetric ShadowHandAsymFF architecture are correctly migrated.

No files require special attention. The gear-assembly RNN configs are the most complex (RslRlRNNModelCfg + HeteroscedasticGaussianDistributionCfg) but are correctly migrated.

Important Files Changed

Filename Overview
source/isaaclab_tasks/isaaclab_tasks/manager_based/manipulation/deploy/gear_assembly/config/rizon_4s/agents/rsl_rl_ppo_cfg.py Migrates RNN recurrent PPO config to RslRlRNNModelCfg with HeteroscedasticGaussianDistributionCfg; obs_groups key correctly updated from 'policy' to 'actor'.
source/isaaclab_tasks/isaaclab_tasks/manager_based/manipulation/deploy/gear_assembly/config/ur_10e/agents/rsl_rl_ppo_cfg.py Same RNN recurrent migration as rizon_4s; obs_groups key correctly changed from 'policy' to 'actor'.
source/isaaclab_tasks/isaaclab_tasks/direct/shadow_hand/agents/rsl_rl_ppo_cfg.py Three configs migrated including the asymmetric ShadowHandAsymFFPPORunnerCfg; actor/critic hidden dims correctly kept distinct.
source/isaaclab_tasks/isaaclab_tasks/manager_based/locomotion/velocity/config/a1/agents/rsl_rl_ppo_cfg.py Flat subclass overrides correctly updated from self.policy.actor_hidden_dims to self.actor.hidden_dims and self.critic.hidden_dims.
source/isaaclab_tasks/isaaclab_tasks/manager_based/manipulation/deploy/reach/config/rizon_4s/agents/rsl_rl_ppo_cfg.py empirical_normalization=True removed; obs_groups key updated to 'actor'; obs_normalization=True correctly inferred for both actor and critic.
tools/template/templates/agents/rsl_rl_ppo_cfg Project template correctly updated to use RslRlMLPModelCfg with the new API.
docs/source/policy_deployment/04_reach/reach_policy.rst Documentation code snippet correctly updated; obs_groups key changed to 'actor' and empirical_normalization removed in favor of obs_normalization on each model.
source/isaaclab_tasks/changelog.d/rsl-rl-model-configs.rst New changelog entry accurately describes the migration from deprecated policy configs to actor/critic model configs.

Reviews (1): Last reviewed commit: "Ruff" | Re-trigger Greptile

@kellyguo11 kellyguo11 moved this to In review in Isaac Lab May 8, 2026
@StafaH StafaH changed the title Rsl rl 5 Update configs to new conventions from rsl_rl >= 5.0 May 8, 2026
@ClemensSchwarke

Copy link
Copy Markdown
Collaborator

Hi @StafaH, thanks a lot for the PR! The only problem I am seeing (and why I did not update the configs) is that there is a function that updates old configs to the new structure but not the other way around because it is already quite lengthy. Updating the configs would thus break the tasks if the user uses an older rsl-rl version. The options I am seeing are 1. also including logic for converting new configs to the old structure, 2. not updating the configs, or 3. accepting that the default tasks break for older rsl-rl versions.

Cheers,
Clemens

@StafaH

StafaH commented May 11, 2026

Copy link
Copy Markdown
Contributor Author

Hi @ClemensSchwarke, I synced with @kellyguo11 and we prefer option 3. The develop branch pins rsl_rl >= 5.0 so we can begin migrating users to this with a warning or an error if we detect < 5.0 in the train script.

I can also flip the old script to create the old config from the new config if an older version of rsl_rl is detected, inverting the whole setup (isaaclab 3.0 will use new configs and rsl_rl >= 5.0. Not sure if this needed but if you recommend then we can do that.

@ClemensSchwarke

Copy link
Copy Markdown
Collaborator

I agree for lab 3.0, I missed that this PR isn't going to main. Thanks @StafaH !

@StafaH
StafaH requested a review from ooctipus as a code owner May 12, 2026 23:58
@kellyguo11
kellyguo11 merged commit b2582a4 into isaac-sim:develop May 13, 2026
32 of 34 checks passed
@github-project-automation github-project-automation Bot moved this from In review to Done in Isaac Lab May 13, 2026
@StafaH
StafaH deleted the rsl_rl_5 branch May 28, 2026 19:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation infrastructure isaac-lab Related to Isaac Lab team

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants