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

Fixes caching of the terrain using the terrain generator #757

Merged
merged 31 commits into from
Aug 2, 2024

Conversation

Mayankm96
Copy link
Contributor

@Mayankm96 Mayankm96 commented Jul 30, 2024

Description

The caching of terrains with the terrain generator did not work as expected even when curriculum was enabled (which should have yielded the same terrain every time). On deeper investigation, it appears that the terrain generator samples a range when using the curriculum to not have the same sub-terrain in columns of the same terrain type. Thus, the terrain difficulty was stochastic between runs which affected the caching of the terrain.

This MR fixes the following:

  • Adds documentation of the above behavior
  • Modifies the generator to use np.random.Generator (RNG) instead of setting the seed globally
  • Adds a warning if the user wants to cache the terrain and the seed is not set
  • Adds tests to check caching works for the terrain generator with and without curriculum

Note: Right now, complete determinism (i.e. same terrain is generated) is only possible when seed is set and caching is enabled. If caching is disabled, it is possible that the terrain may have small differences. To fix this, the RNG needs to be propagated to all the generation functions as well. I leave that as a future TODO.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • 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 changed the title Adds warning when caching the procedural terrain Fixes caching of the terrain using the terrain generator Jul 30, 2024
@Mayankm96 Mayankm96 added the bug Something isn't working label Jul 30, 2024
@Mayankm96 Mayankm96 self-assigned this Jul 30, 2024
Mayankm96 and others added 2 commits August 2, 2024 13:28
Co-authored-by: David Hoeller <dhoeller@nvidia.com>
Signed-off-by: Mayank Mittal <12863862+Mayankm96@users.noreply.github.com>
@Mayankm96 Mayankm96 merged commit 112036e into main Aug 2, 2024
2 of 3 checks passed
@Mayankm96 Mayankm96 deleted the test/terrain-gen branch August 2, 2024 12:27
iamdrfly pushed a commit to iamdrfly/IsaacLab that referenced this pull request Nov 21, 2024
# Description

The caching of terrains with the terrain generator did not work as
expected even when the curriculum was enabled (which should have yielded the
same terrain every time). On deeper investigation, it appears that the
terrain generator samples a range when using the curriculum to avoid having
the same sub-terrain in columns of the same terrain type. Thus, the
terrain `difficulty` was stochastic between runs, which affected the
caching of the terrain.

This MR fixes the following:

- Adds documentation of the above behavior
- Modifies the generator to use `np.random.Generator` (RNG) instead of
setting the seed globally
- Adds a warning if the user wants to cache the terrain and the seed is
not set
- Adds tests to check caching works for the terrain generator with and
without curriculum

Note: Right now, complete determinism (i.e., the same terrain is generated)
is only possible when seed is set and caching is enabled. If caching is
disabled, it is possible that the terrain may have small differences. To
fix this, the RNG needs to be propagated to all the generation functions
as well. I leave that as a future TODO.

## Type of change

- Bug fix (non-breaking change which fixes an issue)
- 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants