Skip to content
Open
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
4 changes: 0 additions & 4 deletions scripts/reinforcement_learning/rl_games/play.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,10 +95,6 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen
# override configurations with non-hydra CLI arguments
env_cfg.scene.num_envs = args_cli.num_envs if args_cli.num_envs is not None else env_cfg.scene.num_envs
env_cfg.sim.device = args_cli.device if args_cli.device is not None else env_cfg.sim.device
# update agent device to match simulation device
if args_cli.device is not None:
agent_cfg["params"]["config"]["device"] = args_cli.device
agent_cfg["params"]["config"]["device_name"] = args_cli.device

# randomly sample a seed if seed = -1
if args_cli.seed == -1:
Expand Down
5 changes: 0 additions & 5 deletions scripts/reinforcement_learning/rl_games/train.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,11 +102,6 @@ def main(env_cfg: ManagerBasedRLEnvCfg | DirectRLEnvCfg | DirectMARLEnvCfg, agen
"Please use GPU device (e.g., --device cuda) for distributed training."
)

# update agent device to match simulation device
if args_cli.device is not None:
agent_cfg["params"]["config"]["device"] = args_cli.device
agent_cfg["params"]["config"]["device_name"] = args_cli.device

# randomly sample a seed if seed = -1
if args_cli.seed == -1:
args_cli.seed = random.randint(0, 10000)
Expand Down
2 changes: 1 addition & 1 deletion source/isaaclab_rl/config/extension.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]

# Note: Semantic Versioning is used: https://semver.org/
version = "0.4.4"
version = "0.4.5"

# Description
title = "Isaac Lab RL"
Expand Down
10 changes: 10 additions & 0 deletions source/isaaclab_rl/docs/CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
Changelog
---------

0.4.5 (2025-11-10)
~~~~~~~~~~~~~~~~~~

Changed
^^^^^^^

* Added support for decoupling RL device from simulation device in for RL games wrapper.
This allows users to run simulation on one device (e.g., CPU) while running RL training/inference on another device.


0.4.4 (2025-10-15)
~~~~~~~~~~~~~~~~~~

Expand Down
4 changes: 4 additions & 0 deletions source/isaaclab_rl/isaaclab_rl/rl_games/rl_games.py
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,10 @@ def _process_obs(self, obs_dict: VecEnvObs) -> dict[str, torch.Tensor] | dict[st
- ``"obs"``: either a concatenated tensor (``concate_obs_group=True``) or a Dict of group tensors.
- ``"states"`` (optional): same structure as above when state groups are configured; omitted otherwise.
"""
# move observations to RL device if different from sim device
if self._rl_device != self._sim_device:
obs_dict = {key: obs.to(device=self._rl_device) for key, obs in obs_dict.items()}

# clip the observations
for key, obs in obs_dict.items():
obs_dict[key] = torch.clamp(obs, -self._clip_obs, self._clip_obs)
Expand Down
Loading