Skip to content
Open
Show file tree
Hide file tree
Changes from 5 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
Loading