Skip to content

Conversation

@nvcyc
Copy link
Contributor

@nvcyc nvcyc commented Oct 29, 2024

Description

This PR adds a recorder manager (RecorderManager) and relevant utility classes for recording data produced in various reset and step stages in manager-based environments.

Wither the built-in recorder manager, users can create custom recorder terms in their environment configurations with callback functions returning tensors to be recorded as environments advance. It is particularly useful for implementing an app that collects human-operated demos and for those who want to record robot actions for post-validation/replay in Isaac Lab environments.

The recorder manager works in both single- and multi-environment use cases. An episode for an environment instance is exported to a dataset file, via a dataset file handler, upon completion (a termination term is signaled a reset to the environment instance is triggered).

By default, the recorder manager is inactive (by assigning no recorder terms in the default configuration), which should have minimal performance impact for existing apps that do not require data recording.

Type of change

  • New feature (non-breaking change which adds functionality)
  • This change requires a documentation update -- to be updated in later PRs

Checklist

  • 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

@nvcyc nvcyc force-pushed the cy/recorder_manager branch 2 times, most recently from 37b6d9c to 62087f0 Compare November 2, 2024 19:08
@nvcyc nvcyc force-pushed the cy/recorder_manager branch 6 times, most recently from 0e16d99 to 18f8f71 Compare November 7, 2024 23:58
@kellyguo11
Copy link
Contributor

test_episode_data.py test seems to be failing

@nvcyc nvcyc force-pushed the cy/recorder_manager branch 3 times, most recently from afde2dd to 3604590 Compare November 26, 2024 17:11
@nvcyc nvcyc force-pushed the cy/recorder_manager branch from fe7e5fe to 49d30cd Compare December 2, 2024 23:55
@nvcyc nvcyc force-pushed the cy/recorder_manager branch from ea91b75 to 3cb1d1d Compare December 4, 2024 00:10
Co-authored-by: Kelly Guo <[email protected]>
Signed-off-by: CY Chen <[email protected]>
Copy link
Contributor Author

@nvcyc nvcyc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the reviews. Comments are addressed.

Copy link
Collaborator

@jtigue-bdai jtigue-bdai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for new feature. LGTM

@kellyguo11 kellyguo11 merged commit 01a2547 into isaac-sim:main Dec 4, 2024
5 checks passed
SevenFo pushed a commit to SevenFo/IsaacLab that referenced this pull request May 19, 2025
# Description

<!--
Thank you for your interest in sending a pull request. Please make sure
to check the contribution guidelines.

Link: https://isaac-sim.github.io/IsaacLab/source/refs/contributing.html
-->

This PR adds a recorder manager (RecorderManager) and relevant utility
classes for recording data produced in various reset and step stages in
manager-based environments.

Wither the built-in recorder manager, users can create custom recorder
terms in their environment configurations with callback functions
returning tensors to be recorded as environments advance. It is
particularly useful for implementing an app that collects human-operated
demos and for those who want to record robot actions for
post-validation/replay in Isaac Lab environments.

The recorder manager works in both single- and multi-environment use
cases. An episode for an environment instance is exported to a dataset
file, via a dataset file handler, upon completion (a termination term is
signaled a reset to the environment instance is triggered).

By default, the recorder manager is inactive (by assigning no recorder
terms in the default configuration), which should have minimal
performance impact for existing apps that do not require data recording.

## Type of change

<!-- As you go through the list, delete the ones that are not
applicable. -->

- New feature (non-breaking change which adds functionality)
- This change requires a documentation update -- to be updated in later
PRs

## Checklist

- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] I have updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [x] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there

<!--
As you go through the checklist above, you can mark something as done by
putting an x character in it

For example,
- [x] I have done this task
- [ ] I have not done this task
-->

---------

Signed-off-by: CY Chen <[email protected]>
Co-authored-by: Kelly Guo <[email protected]>
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.

3 participants