• Mayank Mittal's avatar
    Fixes caching of the terrain using the terrain generator (#757) · 112036e9
    Mayank Mittal authored
    # 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
    112036e9
Name
Last commit
Last update
..
config Loading commit data...
docs Loading commit data...
omni/isaac/lab Loading commit data...
test Loading commit data...
pyproject.toml Loading commit data...
setup.py Loading commit data...