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 setting of environment seed at initialization #940

Merged
merged 42 commits into from
Sep 10, 2024
Merged

Conversation

Mayankm96
Copy link
Contributor

@Mayankm96 Mayankm96 commented Sep 5, 2024

Description

Various randomization and procedural generation operations happen at initialization. However, as noted in one of the issues, the seed setting happens after all these operations are performed. This means that the creation of the environment is not completely deterministic. This MR resolves this issue by adding a seed configuration to the environment.

Fixes #904

Type of change

  • Bug fix (non-breaking change which fixes an issue)

Screenshots

The before and after results over three runs with the default seed (seed: 42)

./isaaclab.sh -p source/standalone/workflows/rsl_rl/train.py --task Isaac-Velocity-Rough-Anymal-C-v0 --headless --run_name seed_fix
Results over three runs
Before (main at 788a061) before
Now (this MR) after

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 marked this pull request as ready for review September 5, 2024 15:22
@Mayankm96 Mayankm96 added bug Something isn't working enhancement New feature or request labels Sep 5, 2024
@Mayankm96
Copy link
Contributor Author

Here are the results:

Isaac-Velocity-Flat-Anymal-D-v0

image

Isaac-Velocity-Rough-Anymal-D-v0

image

Isaac-Velocity-Flat-G1-v0

image

Isaac-Velocity-Rough-G1-v0

image

Isaac-Cartpole-v0

image

Isaac-Lift-Cube-Franka-v0

image

Isaac-Open-Drawer-Franka-v0

image

Isaac-Repose-Cube-Allegro-v0

image

Isaac-Repose-Cube-Allegro-Direct-v0

image

Isaac-Repose-Cube-Shadow-Direct-v0

image

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.

Thanks for finding / fixing and adding tests!

I think we should think twice before adding such a long running test - but don't want to block this PR for that

tools/per_test_timeouts.py Outdated Show resolved Hide resolved
@Mayankm96 Mayankm96 merged commit ac71354 into main Sep 10, 2024
2 of 3 checks passed
@Mayankm96 Mayankm96 deleted the fix/env-seed branch September 10, 2024 05:33
iamdrfly pushed a commit to iamdrfly/IsaacLab that referenced this pull request Nov 21, 2024
# Description

Various randomization and procedural generation operations happen at
initialization. However, as noted in one of the issues, the seed setting
happens after all these operations are performed. This means that the
creation of the environment is not completely deterministic. This MR
resolves this issue by adding a `seed` configuration to the environment.

Fixes isaac-sim#904

## Type of change

- Bug fix (non-breaking change which fixes an issue)

## Screenshots

The before and after results over **three runs** with the default seed
(seed: 42)

```bash
./isaaclab.sh -p source/standalone/workflows/rsl_rl/train.py --task Isaac-Velocity-Rough-Anymal-C-v0 --headless --run_name seed
```

| Results over three runs |
| ------ | 
| Before (main at 788a061)
![before](https://github.com/user-attachments/assets/21a6a9f3-7438-4e73-92dd-a32106272fcb)
|
| Now (this MR)
![after](https://github.com/user-attachments/assets/821b9c63-34b7-4ce2-8d36-4c979c47070b)
|

## 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: Mayank Mittal <12863862+Mayankm96@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug Report] Possible resolution for random seed setting and non-deterministic training
4 participants