Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions source/isaaclab_rl/changelog.d/default-rsl-rl.minor.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Changed
^^^^^^^

* **Breaking:** Changed the ``train`` and ``play`` CLI commands to use a task's
registered default RL library when ``--rl_library`` is omitted. Pass
``--rl_library`` explicitly to select a different library.
21 changes: 21 additions & 0 deletions source/isaaclab_rl/isaaclab_rl/entrypoints/dispatch.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
import sys
from typing import TYPE_CHECKING

import gymnasium as gym

if TYPE_CHECKING:
from .simple_agents import PolicyName

Expand Down Expand Up @@ -106,6 +108,8 @@ def run_cli(action: str, argv: list[str] | None = None) -> int:
parser = argparse.ArgumentParser(add_help=False)
parser.add_argument("--rl_library", choices=sorted(backends))
selected, backend_argv = parser.parse_known_args(argv)
if selected.rl_library is None:
selected.rl_library = _resolve_default_library(argv, backends)
if selected.rl_library is None:
_print_selector_help(action, sorted(backends))
if "-h" in argv or "--help" in argv:
Expand All @@ -116,6 +120,23 @@ def run_cli(action: str, argv: list[str] | None = None) -> int:
return 0


def _resolve_default_library(argv: list[str], backends: dict[str, str]) -> str | None:
"""Return the task-registered default RL library requested by command-line arguments."""
parser = argparse.ArgumentParser(add_help=False)
parser.add_argument("--task")
args, _ = parser.parse_known_args(argv)
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.


try:
default_library = gym.spec(args.task.split(":")[-1]).kwargs.get("default_agent")
except gym.error.Error:
return None
return default_library if default_library in backends else None


def _print_selector_help(action: str, backends: list[str]) -> None:
"""Print help for a unified entrypoint before a backend is selected."""
parser = argparse.ArgumentParser(description=f"{action.capitalize()} an RL agent with a selected backend.")
Expand Down
29 changes: 28 additions & 1 deletion source/isaaclab_rl/test/test_entrypoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import sys
import types

import gymnasium as gym
import pytest

from isaaclab_rl.entrypoints import PlaybackRequest, TrainingRequest, api, dispatch
Expand Down Expand Up @@ -146,6 +147,32 @@ def _fake_run_backend(module_name: str, argv: list[str], *, run_as_script: bool)
}


def test_dispatch_uses_task_registered_default_backend(monkeypatch) -> None:
"""A task registry default selects the backend when the CLI omits it."""
task_name = "Isaac-DefaultAgentDispatchTest"
gym.register(id=task_name, entry_point="dummy:Env", kwargs={"default_agent": "rsl_rl"})
monkeypatch.setitem(sys.modules, "isaaclab_tasks", types.ModuleType("isaaclab_tasks"))
received: dict[str, object] = {}
monkeypatch.setattr(
dispatch,
"_run_backend",
lambda module_name, argv, *, run_as_script: received.update(
module_name=module_name, argv=argv, run_as_script=run_as_script
),
)

try:
assert dispatch.run_train_cli(["--task", task_name]) == 0
finally:
gym.registry.pop(task_name, None)

assert received == {
"module_name": "isaaclab_rl.entrypoints.backends.train_rsl_rl",
"argv": ["--task", task_name],
"run_as_script": False,
}


def test_dispatch_fuses_option_like_kit_args(monkeypatch) -> None:
"""Space-separated option-like Kit arguments are fused before backend parsing."""
received: dict[str, object] = {}
Expand All @@ -160,7 +187,7 @@ def test_dispatch_fuses_option_like_kit_args(monkeypatch) -> None:

def test_dispatch_requires_a_backend() -> None:
"""Missing backend selection returns the conventional CLI error status."""
assert dispatch.run_train_cli(["--task", "Isaac-Cartpole"]) == 2
assert dispatch.run_train_cli([]) == 2


def _torch_backend_state() -> tuple[bool, bool, bool, bool]:
Expand Down
5 changes: 5 additions & 0 deletions source/isaaclab_tasks/changelog.d/default-rsl-rl.minor.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Changed
^^^^^^^

* **Breaking:** Changed core tasks to use RSL-RL when ``--rl_library`` is omitted, except the multi-agent Pendulum task, which uses SKRL.
Pass ``--rl_library`` explicitly to select a different RL library.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.joint_pos_env_cfg:FrankaCabinetEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:CabinetPPORunnerCfg",
"default_agent": "rsl_rl",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_manager_ppo_cfg.yaml",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_manager_ppo_cfg.yaml",
},
Expand All @@ -35,6 +36,7 @@
"env_cfg_entry_point": f"{__name__}.cabinet_direct_env_cfg:FrankaCabinetDirectEnvCfg",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_direct_ppo_cfg.yaml",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:FrankaCabinetPPORunnerCfg",
"default_agent": "rsl_rl",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_direct_ppo_cfg.yaml",
},
)
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
"env_cfg_entry_point": f"{__name__}.cartpole_direct_env_cfg:CartpoleEnvCfg",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_direct_ppo_cfg.yaml",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:CartpoleDirectPPORunnerCfg",
"default_agent": "rsl_rl",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_direct_ppo_cfg.yaml",
"sb3_cfg_entry_point": f"{agents.__name__}:sb3_ppo_cfg.yaml",
},
Expand All @@ -50,6 +51,7 @@
"env_cfg_entry_point": f"{__name__}.cartpole_direct_camera_env_cfg:CartpoleCameraEnvCfg",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_camera_ppo_cfg.yaml",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:CartpoleCameraDirectPPORunnerCfg",
"default_agent": "rsl_rl",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_direct_camera_ppo_cfg.yaml",
},
)
Expand All @@ -66,6 +68,7 @@
"env_cfg_entry_point": f"{__name__}.cartpole_manager_env_cfg:CartpoleEnvCfg",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_manager_ppo_cfg.yaml",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:CartpolePPORunnerCfg",
"default_agent": "rsl_rl",
"rsl_rl_with_symmetry_cfg_entry_point": (
f"{agents.__name__}.rsl_rl_ppo_cfg:CartpolePPORunnerWithSymmetryCfg"
),
Expand All @@ -83,6 +86,7 @@
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_camera_ppo_cfg.yaml",
"rl_games_feature_cfg_entry_point": f"{agents.__name__}:rl_games_manager_feature_ppo_cfg.yaml",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:CartpoleCameraPPORunnerCfg",
"default_agent": "rsl_rl",
"rsl_rl_feature_cfg_entry_point": (
f"{agents.__name__}.rsl_rl_ppo_cfg:CartpoleCameraFeaturePPORunnerCfg"
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,6 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.fourbar_pole_manager_env_cfg:FourbarPoleSwingupEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_manager_ppo_cfg:FourbarPolePPORunnerCfg",
"default_agent": "rsl_rl",
},
)
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.handover_env_cfg:HandoverEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:HandoverPPORunnerCfg",
"default_agent": "rsl_rl",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_ppo_cfg.yaml",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_ppo_cfg.yaml",
"skrl_ippo_cfg_entry_point": f"{agents.__name__}:skrl_ippo_cfg.yaml",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.franka_env_cfg:FrankaReorientEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:FrankaPPORunnerCfg",
"default_agent": "rsl_rl",
},
)

Expand All @@ -30,5 +31,6 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.franka_env_cfg:FrankaLiftEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:FrankaPPORunnerCfg",
"default_agent": "rsl_rl",
},
)
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.franka_soft_env_cfg:FrankaSoftEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:FrankaDeformablePPORunnerCfg",
"default_agent": "rsl_rl",
},
)

Expand All @@ -28,6 +29,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.franka_cloth_env_cfg:FrankaClothEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:FrankaClothPPORunnerCfg",
"default_agent": "rsl_rl",
},
)

Expand Down Expand Up @@ -61,6 +63,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.franka_soft_env_cfg:FrankaSoftCameraEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:FrankaDeformableCameraPPORunnerCfg",
"default_agent": "rsl_rl",
},
)

Expand All @@ -71,5 +74,6 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.franka_cloth_env_cfg:FrankaClothCameraEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:FrankaDeformableCameraPPORunnerCfg",
"default_agent": "rsl_rl",
},
)
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.kuka_allegro_env_cfg:KukaAllegroReorientEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:KukaAllegroPPORunnerCfg",
"default_agent": "rsl_rl",
},
)

Expand All @@ -30,6 +31,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.kuka_allegro_env_cfg:KukaAllegroLiftEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:KukaAllegroPPORunnerCfg",
"default_agent": "rsl_rl",
},
)

Expand All @@ -44,6 +46,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.kuka_allegro_camera_env_cfg:KukaAllegroReorientCameraEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:KukaAllegroPPORunnerCfg",
"default_agent": "rsl_rl",
},
)

Expand All @@ -54,5 +57,6 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.kuka_allegro_camera_env_cfg:KukaAllegroLiftCameraEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:KukaAllegroPPORunnerCfg",
"default_agent": "rsl_rl",
},
)
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
"env_cfg_entry_point": f"{__name__}.ant_direct_env_cfg:AntEnvCfg",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_direct_ppo_cfg.yaml",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:AntDirectPPORunnerCfg",
"default_agent": "rsl_rl",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_direct_ppo_cfg.yaml",
},
)
Expand All @@ -42,6 +43,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.ant_manager_env_cfg:AntEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:AntPPORunnerCfg",
"default_agent": "rsl_rl",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_manager_ppo_cfg.yaml",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_manager_ppo_cfg.yaml",
"sb3_cfg_entry_point": f"{agents.__name__}:sb3_manager_ppo_cfg.yaml",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
"env_cfg_entry_point": f"{__name__}.humanoid_direct_env_cfg:HumanoidEnvCfg",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_direct_ppo_cfg.yaml",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:HumanoidDirectPPORunnerCfg",
"default_agent": "rsl_rl",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_direct_ppo_cfg.yaml",
},
)
Expand All @@ -42,6 +43,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.humanoid_manager_env_cfg:HumanoidEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:HumanoidPPORunnerCfg",
"default_agent": "rsl_rl",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_manager_ppo_cfg.yaml",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_manager_ppo_cfg.yaml",
"sb3_cfg_entry_point": f"{agents.__name__}:sb3_manager_ppo_cfg.yaml",
Expand Down

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

Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
disable_env_checker=True,
kwargs={
"env_cfg_entry_point": f"{__name__}.pendulum_env_cfg:PendulumEnvCfg",
"default_agent": "skrl",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_ppo_cfg.yaml",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_ppo_cfg.yaml",
"skrl_ippo_cfg_entry_point": f"{agents.__name__}:skrl_ippo_cfg.yaml",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
"env_cfg_entry_point": f"{__name__}.franka_reach_env_cfg:FrankaReachEnvCfg",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_ppo_cfg.yaml",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:FrankaReachPPORunnerCfg",
"default_agent": "rsl_rl",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_ppo_cfg.yaml",
},
)
Expand All @@ -38,5 +39,6 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.franka_reach_osc_env_cfg:FrankaReachEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:FrankaReachPPORunnerCfg",
"default_agent": "rsl_rl",
},
)
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"env_cfg_entry_point": f"{__name__}.joint_pos_env_cfg:UR10ReachEnvCfg",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_ppo_cfg.yaml",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:UR10ReachPPORunnerCfg",
"default_agent": "rsl_rl",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_ppo_cfg.yaml",
},
)
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"env_cfg_entry_point": f"{__name__}.allegro_hand_direct_env_cfg:AllegroHandEnvCfg",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_ppo_cfg.yaml",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:AllegroHandDirectPPORunnerCfg",
"default_agent": "rsl_rl",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_ppo_cfg.yaml",
},
)
Expand All @@ -36,6 +37,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.allegro_hand_manager_env_cfg:AllegroHandManagerEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:AllegroHandManagerPPORunnerCfg",
"default_agent": "rsl_rl",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_ppo_cfg.yaml",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_ppo_cfg.yaml",
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
"env_cfg_entry_point": f"{__name__}.shadow_hand_direct_env_cfg:ShadowHandEnvCfg",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_ppo_cfg.yaml",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:ShadowHandPPORunnerCfg",
"default_agent": "rsl_rl",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_ppo_cfg.yaml",
},
)
Expand All @@ -37,6 +38,7 @@
"env_cfg_entry_point": f"{__name__}.shadow_hand_manager_env_cfg:ShadowHandManagerEnvPresetCfg",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_ppo_cfg.yaml",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:ShadowHandManagerPPORunnerCfg",
"default_agent": "rsl_rl",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_ppo_cfg.yaml",
},
)
Expand All @@ -52,6 +54,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.shadow_hand_direct_camera_env_cfg:ShadowHandCameraEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:ShadowHandCameraFFPPORunnerCfg",
"default_agent": "rsl_rl",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_ppo_camera_cfg.yaml",
},
)
Expand All @@ -62,6 +65,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.shadow_hand_camera_manager_env_cfg:ShadowHandCameraManagerEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:ShadowHandCameraFFPPORunnerCfg",
"default_agent": "rsl_rl",
"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_ppo_camera_cfg.yaml",
},
)
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.flat_env_cfg:AnymalDFlatEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:AnymalDFlatPPORunnerCfg",
"default_agent": "rsl_rl",
"rsl_rl_recurrent_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:AnymalDFlatPPORunnerRecurrentCfg",
"rsl_rl_distillation_cfg_entry_point": (
f"{agents.__name__}.rsl_rl_distillation_cfg:AnymalDFlatDistillationRunnerCfg"
Expand All @@ -37,6 +38,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.rough_env_cfg:AnymalDRoughEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:AnymalDRoughPPORunnerCfg",
"default_agent": "rsl_rl",
"rsl_rl_with_symmetry_cfg_entry_point": (
f"{agents.__name__}.rsl_rl_ppo_cfg:AnymalDRoughPPORunnerWithSymmetryCfg"
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.flat_env_cfg:CassieFlatEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:CassieFlatPPORunnerCfg",
"default_agent": "rsl_rl",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_flat_ppo_cfg.yaml",
},
)
Expand All @@ -29,6 +30,7 @@
kwargs={
"env_cfg_entry_point": f"{__name__}.rough_env_cfg:CassieRoughEnvCfg",
"rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:CassieRoughPPORunnerCfg",
"default_agent": "rsl_rl",
"skrl_cfg_entry_point": f"{agents.__name__}:skrl_rough_ppo_cfg.yaml",
},
)
Loading
Loading