-
Notifications
You must be signed in to change notification settings - Fork 966
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
[Proposal] Migrating the base IsaacEnv
#59
Comments
IsaacEnv
to follow GymnasiumIsaacEnv
A third option to consider: Simply define it as a Over the years, I have run into countless issues I can trace back to the "kitchen sink" structure of I believe in the modern days, The best part is using a Something as simple as: from typing import Protocol, runtime_checkable, Any, SupportsFloat, Optional
@dataclass
class StepReturn:
observation: Any
reward: SupportsFloat
terminated: bool
truncated: bool
#info: Info | None
@dataclass
class ResetReturn:
observation: Any
#info: Info | None
@runtime_checkable
class EnvCompatible(Protocol):
def step( self, action: Any ) -> StepReturn:
"""Step."""
def reset( self, seed: Optional[Any], options: Optional[Any]) -> ResetReturn:
"""Reset.""" Edit: You can also make something Anyways, just something to think about. |
Added relative joint position actions and moving average joint actions. These are useful for "smoothened" out action spaces for environments such as in-hand manipulation. - New feature (non-breaking change which adds functionality) - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./orbit.sh --format` - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] I have run all the tests with `./orbit.sh --test` and they pass - [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 --------- Co-authored-by: Mayank Mittal <[email protected]>
…sim#59) Added relative joint position actions and moving average joint actions. These are useful for "smoothened" out action spaces for environments such as in-hand manipulation. - New feature (non-breaking change which adds functionality) - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./orbit.sh --format` - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] I have run all the tests with `./orbit.sh --test` and they pass - [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 --------- Co-authored-by: Mayank Mittal <[email protected]>
…sim#59) Added relative joint position actions and moving average joint actions. These are useful for "smoothened" out action spaces for environments such as in-hand manipulation. - New feature (non-breaking change which adds functionality) - [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with `./orbit.sh --format` - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [x] I have run all the tests with `./orbit.sh --test` and they pass - [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 --------- Co-authored-by: Mayank Mittal <[email protected]>
Proposal
Gymnasium is the maintained version of OpenAI Gym that is now handled by Farama Foundation. It is currently the definition used in libraries such as rllib and tianshou, while others like stable-baselines3 will also update soon.
More recently, there has been an interesting proposal on RL environment definition in the framework
torchrl
which would fit well for our targetted applications.This thread aims to serve as a voting/staging on what would be the best environment definition to use.
Motivation
Migrating to Gym 0.28
The current Gym definition (from 0.21.0) is outdated and depends on older libraries such as
importlib-meta==4.1
package. This creates conflicts with new updated packages and it would be best to switch to the new Gym definition.Related issues: OIGE #28, Sb3 #1327
Once SB3 also upgrades to Gymnasium, then it would be best to update everything to use the latest definitions.
More information on Gymnasium:
Migrating to TorchRL definition
The environment definition
EnvBase
which relies heavily on usingtensordict
.The advantages of their base class are:
tensordict
makes it easier to work with given the scaling possible with Isaac Sim and should be more efficient/flexible thandict
oftorch.Tensor
Related Issues: torchrl #883
Effect on the remaining framework
Since there are wrappers for other RL frameworks (RL-Games and RSL-RL), this probably won't cause any breaking changes on that side. We will just need to adapt them based on the chosen
IsaacEnv
definition.Checklist
The text was updated successfully, but these errors were encountered: