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

gymnasium==1.0 support (#211) #2

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/content/multi-goal_api.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ goal, e.g. state derived from the simulation.

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make("FetchReach-v2")
env.reset()
Expand Down
3 changes: 3 additions & 0 deletions docs/envs/franka_kitchen/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ The tasks can be selected when the environment is initialized passing a list of
```python

import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('FrankaKitchen-v1', tasks_to_complete=['microwave', 'kettle'])
```
Expand Down
3 changes: 3 additions & 0 deletions docs/envs/shadow_dexterous_hand/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ These environments are instanceated by adding the following strings to the Hand

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('HandManipulateEgg_BooleanTouchSensors-v1')
```
Expand Down
4 changes: 4 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ The creation and interaction with the robotic environments follow the Gymnasium
```{code-block} python

import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make("FetchPickAndPlace-v2", render_mode="human")
observation, info = env.reset(seed=42)
for _ in range(1000):
Expand Down
4 changes: 3 additions & 1 deletion gymnasium_robotics/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
from gymnasium_robotics.envs.maze import maps
from gymnasium_robotics.envs.multiagent_mujoco import mamujoco_v0

__version__ = "1.2.4"


def register_robotics_envs():
"""Register all environment ID's to Gymnasium."""
Expand Down Expand Up @@ -1237,7 +1239,7 @@ def _merge(a, b):
)


__version__ = "1.2.4"
register_robotics_envs()


try:
Expand Down
3 changes: 3 additions & 0 deletions gymnasium_robotics/envs/adroit_hand/adroit_door.py
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,9 @@ class AdroitHandDoorEnv(MujocoEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('AdroitHandDoor-v1', max_episode_steps=400)
```
Expand Down
3 changes: 3 additions & 0 deletions gymnasium_robotics/envs/adroit_hand/adroit_hammer.py
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,9 @@ class AdroitHandHammerEnv(MujocoEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('AdroitHandHammer-v1', max_episode_steps=400)
```
Expand Down
3 changes: 3 additions & 0 deletions gymnasium_robotics/envs/adroit_hand/adroit_pen.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,9 @@ class AdroitHandPenEnv(MujocoEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('AdroitHandPen-v1', max_episode_steps=400)
```
Expand Down
3 changes: 3 additions & 0 deletions gymnasium_robotics/envs/adroit_hand/adroit_relocate.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,9 @@ class AdroitHandRelocateEnv(MujocoEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('AdroitHandRelocate-v1', max_episode_steps=400)
```
Expand Down
6 changes: 6 additions & 0 deletions gymnasium_robotics/envs/fetch/pick_and_place.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,9 @@ class MujocoFetchPickAndPlaceEnv(MujocoFetchEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('FetchPickAndPlaceDense-v2')
```
Expand All @@ -118,6 +121,9 @@ class MujocoFetchPickAndPlaceEnv(MujocoFetchEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('FetchPickAndPlace-v2', max_episode_steps=100)
```
Expand Down
6 changes: 6 additions & 0 deletions gymnasium_robotics/envs/fetch/push.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,9 @@ class MujocoFetchPushEnv(MujocoFetchEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('FetchPushDense-v2')
```
Expand All @@ -146,6 +149,9 @@ class MujocoFetchPushEnv(MujocoFetchEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('FetchPush-v2', max_episode_steps=100)
```
Expand Down
6 changes: 6 additions & 0 deletions gymnasium_robotics/envs/fetch/reach.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,9 @@ class MujocoFetchReachEnv(MujocoFetchEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('FetchReachDense-v2')
```
Expand All @@ -104,6 +107,9 @@ class MujocoFetchReachEnv(MujocoFetchEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('FetchReach-v2', max_episode_steps=100)
```
Expand Down
6 changes: 6 additions & 0 deletions gymnasium_robotics/envs/fetch/slide.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,9 @@ class MujocoFetchSlideEnv(MujocoFetchEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('FetchSlideDense-v2')
```
Expand All @@ -145,6 +148,9 @@ class MujocoFetchSlideEnv(MujocoFetchEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('FetchSlide-v2', max_episode_steps=100)
```
Expand Down
4 changes: 4 additions & 0 deletions gymnasium_robotics/envs/franka_kitchen/kitchen_env.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ class KitchenEnv(GoalEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('FrankaKitchen-v1', tasks_to_complete=['microwave', 'kettle'])
```

Expand Down
8 changes: 8 additions & 0 deletions gymnasium_robotics/envs/maze/ant_maze.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,3 +122,11 @@ def render(self):
def close(self):
super().close()
self.ant_env.close()

@property
def model(self):
return self.ant_env.model

@property
def data(self):
return self.ant_env.data
17 changes: 17 additions & 0 deletions gymnasium_robotics/envs/maze/ant_maze_v4.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ class AntMazeEnv(MazeEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

example_map = [[1, 1, 1, 1, 1],
[1, C, 0, C, 1],
Expand Down Expand Up @@ -158,6 +161,9 @@ class AntMazeEnv(MazeEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('AntMaze_UMaze-v4')
```
Expand Down Expand Up @@ -192,6 +198,9 @@ class AntMazeEnv(MazeEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('AntMaze_UMaze-v4', max_episode_steps=100)
```
Expand Down Expand Up @@ -319,3 +328,11 @@ def render(self):
def close(self):
super().close()
self.ant_env.close()

@property
def model(self):
return self.ant_env.model

@property
def data(self):
return self.ant_env.data
17 changes: 17 additions & 0 deletions gymnasium_robotics/envs/maze/point_maze.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,9 @@ class PointMazeEnv(MazeEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

example_map = [[1, 1, 1, 1, 1],
[1, C, 0, C, 1],
Expand Down Expand Up @@ -253,6 +256,9 @@ class PointMazeEnv(MazeEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('PointMaze_UMazeDense-v3')
```
Expand Down Expand Up @@ -286,6 +292,9 @@ class PointMazeEnv(MazeEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('PointMaze_UMaze-v3', max_episode_steps=100)
```
Expand Down Expand Up @@ -415,3 +424,11 @@ def render(self):
def close(self):
super().close()
self.point_env.close()

@property
def model(self):
return self.point_env.model

@property
def data(self):
return self.point_env.data
2 changes: 1 addition & 1 deletion gymnasium_robotics/envs/multiagent_mujoco/mujoco_multi.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import gymnasium
import numpy as np
import pettingzoo
from gymnasium.wrappers.time_limit import TimeLimit
from gymnasium.wrappers import TimeLimit

from gymnasium_robotics.envs.multiagent_mujoco.coupled_half_cheetah import (
CoupledHalfCheetahEnv,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,9 @@ class MujocoHandBlockEnv(MujocoManipulateEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('HandManipulateBlock-v1')
```
Expand Down Expand Up @@ -193,6 +196,9 @@ class MujocoHandBlockEnv(MujocoManipulateEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('HandManipulateBlock-v1', max_episode_steps=100)
```
Expand All @@ -203,7 +209,6 @@ class MujocoHandBlockEnv(MujocoManipulateEnv, EzPickle):

* v1: the environment depends on the newest [mujoco python bindings](https://mujoco.readthedocs.io/en/latest/python.html) maintained by the MuJoCo team in Deepmind.
* v0: the environment depends on `mujoco_py` which is no longer maintained.

"""

def __init__(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,9 @@ class MujocoHandEggEnv(MujocoManipulateEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('HandManipulateEgg-v1')
```
Expand Down Expand Up @@ -196,6 +199,9 @@ class MujocoHandEggEnv(MujocoManipulateEnv, EzPickle):

```
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('HandManipulateEgg-v1', max_episode_steps=100)
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,9 @@ class MujocoHandPenEnv(MujocoManipulateEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('HandManipulatePen-v1')
```
Expand Down Expand Up @@ -195,6 +198,9 @@ class MujocoHandPenEnv(MujocoManipulateEnv, EzPickle):

```python
import gymnasium as gym
import gymnasium_robotics

gym.register_envs(gymnasium_robotics)

env = gym.make('HandManipulatePen-v1', max_episode_steps=100)
```
Expand All @@ -205,7 +211,6 @@ class MujocoHandPenEnv(MujocoManipulateEnv, EzPickle):

* v1: the environment depends on the newest [mujoco python bindings](https://mujoco.readthedocs.io/en/latest/python.html) maintained by the MuJoCo team in Deepmind.
* v0: the environment depends on `mujoco_py` which is no longer maintained.

"""

def __init__(
Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ classifiers = [
'Topic :: Scientific/Engineering :: Artificial Intelligence',
]
dependencies = [
"mujoco>=2.3.3, <3.0",
"mujoco>=2.2.0",
"numpy>=1.21.0",
"gymnasium>=0.26",
"gymnasium>=1.0.0a1",
"PettingZoo>=1.23.0",
"Jinja2>=3.0.3",
"imageio"
Expand Down
Loading