-
Notifications
You must be signed in to change notification settings - Fork 932
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
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Mayankm96
changed the title
Adds warning when caching the procedural terrain
Fixes caching of the terrain using the terrain generator
Jul 30, 2024
Dhoeller19
reviewed
Aug 2, 2024
source/extensions/omni.isaac.lab/omni/isaac/lab/terrains/terrain_generator_cfg.py
Outdated
Show resolved
Hide resolved
Dhoeller19
approved these changes
Aug 2, 2024
Co-authored-by: David Hoeller <dhoeller@nvidia.com> Signed-off-by: Mayank Mittal <12863862+Mayankm96@users.noreply.github.com>
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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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:
np.random.Generator
(RNG) instead of setting the seed globallyNote: 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
Checklist
pre-commit
checks with./isaaclab.sh --format
config/extension.toml
fileCONTRIBUTORS.md
or my name already exists there