Skip to content

Add video recording support to eval_runner.py#445

Merged
cvolkcvolk merged 16 commits intomainfrom
cvolk/feature/video_grid_droid_pnp
Mar 13, 2026
Merged

Add video recording support to eval_runner.py#445
cvolkcvolk merged 16 commits intomainfrom
cvolk/feature/video_grid_droid_pnp

Conversation

@cvolkcvolk
Copy link
Collaborator

@cvolkcvolk cvolkcvolk commented Feb 26, 2026

Summary

Adds the ability to record videos of evaluation jobs via --video flag. Each job produces an mp4 in a per-job subdirectory under --video_dir

python isaaclab_arena/evaluation/eval_runner.py \
  --eval_jobs_config isaaclab_arena_environments/eval_jobs_configs/droid_pnp_srl_gr00t_jobs_config.json \
  --video

@cvolkcvolk cvolkcvolk changed the title Droid Pnp screen record DRAFT Droid Pnp screen record Feb 26, 2026
@cvolkcvolk cvolkcvolk changed the title DRAFT Droid Pnp screen record Add video recording support to eval_runner.py Feb 27, 2026
@cvolkcvolk cvolkcvolk marked this pull request as ready for review February 27, 2026 10:16
@cvolkcvolk cvolkcvolk force-pushed the cvolk/feature/video_grid_droid_pnp branch from bcce498 to 9f1e1cb Compare February 27, 2026 10:48
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Clemens Volk <cvolk@nvidia.com>
cvolkcvolk added a commit that referenced this pull request Mar 12, 2026
## Summary

- Removes `.unwrapped` from `make_registered_and_return_cfg` and
`policy_runner.py` so Arena aligns with how Isaac Lab itself handles
environments
- `make_registered_and_return_cfg` now returns the wrapped env from
`gym.make()` directly, consistent with Isaac Lab's RL scripts
(`train.py`, `play.py`) which keep the wrapped env and pass it to the RL
runner
- Utility functions and tests that need to reach past the gym API
boundary to Isaac Lab-specific attributes (`.scene`, `.cfg`, `.device`,
`.termination_manager`) now use `env.unwrapped.X` explicitly at each
access site
- Keeping the wrapped env allows gym wrappers (e.g. `RecordVideo`) to be
composed on top cleanly, without special-casing in
`make_registered_and_return_cfg`

## Motivation

PR #445 (video recording support) required adding `if render_mode is
None: env = env.unwrapped` to conditionally skip unwrapping — an awkward
workaround caused by Arena's convention of always returning the base
env. This refactor removes the root cause.

---------

Signed-off-by: Clemens Volk <cvolk@nvidia.com>
@cvolkcvolk cvolkcvolk merged commit 92e05c6 into main Mar 13, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants