Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds configurable modifiers to observation manager #830

Merged
merged 29 commits into from
Aug 17, 2024

Conversation

jtigue-bdai
Copy link
Collaborator

Description

The goal of this PR is to introduce expanded functionality to observation corruption/realism. This is done by introducing the concept of configurable modifiers. This creates an architecture that can apply a list of custom modifiers to observation data giving flexibility to order of operations. Existing modifiers for clip, scale, bias, and noise can be used. This does so without changing the current functionality. This PR also includes two new modifiers that are stateful (i.e. output is dependent on previous state) that utilize a Callable class. They are a DigitalFilter and an Integrator.

Summary of Additions:

  • Adds ModifierCfg and Modifier
  • Adds example modifiers functions for bias, scale, clip, noise
  • Adds example modifiers classes: DigitalFilter, Integrator
  • Adds functionality to ObservationManager to prepare and handle modifiers of observation data
  • Adds unit tests for modifiers in test_modifiers.py
  • Adds test to test_observation_manager.py to test integration with modifiers

Type of change

  • New feature (non-breaking change which adds functionality)
  • This change requires a documentation update

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

@Mayankm96 Mayankm96 added the enhancement New feature or request label Aug 15, 2024
@jtigue-bdai jtigue-bdai marked this pull request as ready for review August 15, 2024 12:54
Copy link
Collaborator

@jsmith-bdai jsmith-bdai left a comment

Choose a reason for hiding this comment

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

Looks great, thanks for adding test, new docs and a useful feature 🚀

@Mayankm96 Mayankm96 changed the title Adds configurable modifiers to observations Adds configurable modifiers to observation manager Aug 16, 2024
@Mayankm96 Mayankm96 merged commit fecf239 into main Aug 17, 2024
2 of 3 checks passed
@Mayankm96 Mayankm96 deleted the jat/feature/modifiers branch August 17, 2024 13:27
iamdrfly pushed a commit to iamdrfly/IsaacLab that referenced this pull request Nov 21, 2024
# Description

The goal of this PR is to introduce expanded functionality to
observation corruption/realism. This is done by introducing the concept
of configurable modifiers. This creates an architecture that can apply a
list of custom modifiers to observation data giving flexibility to order
of operations. Existing modifiers for clip, scale, bias, and noise can
be used. This does so without changing the current functionality. This
PR also includes two new modifiers that are stateful (i.e. output is
dependent on previous state) that utilize a Callable class. They are a
`DigitalFilter` and an `Integrator`.

Summary of Additions:
- Adds `ModifierCfg` and `Modifier`
- Adds example modifiers functions for bias, scale, clip, noise
- Adds example modifiers classes: DigitalFilter, Integrator
- Adds functionality to `ObservationManager` to prepare and handle
modifiers of observation data
- Adds unit tests for modifiers in test_modifiers.py
- Adds test to test_observation_manager.py to test integration with
modifiers

## Type of change

- New feature (non-breaking change which adds functionality)
- This change requires a documentation update

## Checklist

- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [x] I have made corresponding changes to the documentation
- [x] 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

---------

Signed-off-by: jtigue-bdai <166445701+jtigue-bdai@users.noreply.github.com>
Co-authored-by: Mayank Mittal <mittalma@leggedrobotics.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants