From 3f98a98e28120b5b8a1b7a389f465f483c5d1f95 Mon Sep 17 00:00:00 2001 From: Giacomo Spigler Date: Sat, 29 Jun 2024 12:55:23 +0200 Subject: [PATCH 1/7] proposed change to mujocoenv as per issue 1059 --- gymnasium/envs/mujoco/mujoco_env.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/gymnasium/envs/mujoco/mujoco_env.py b/gymnasium/envs/mujoco/mujoco_env.py index 2f3e530503..44e00bf094 100644 --- a/gymnasium/envs/mujoco/mujoco_env.py +++ b/gymnasium/envs/mujoco/mujoco_env.py @@ -82,15 +82,13 @@ def __init__( self.frame_skip = frame_skip - assert self.metadata["render_modes"] == [ - "human", - "rgb_array", - "depth_array", - ], self.metadata["render_modes"] - if "render_fps" in self.metadata: - assert ( - int(np.round(1.0 / self.dt)) == self.metadata["render_fps"] - ), f'Expected value: {int(np.round(1.0 / self.dt))}, Actual value: {self.metadata["render_fps"]}' + self.metadata["render_modes"] = [ + "human", + "rgb_array", + "depth_array", + ] + self.metadata["render_fps"] = int(np.round(1.0 / self.dt)) + if observation_space is not None: self.observation_space = observation_space self._set_action_space() From 84bb681b699b0947f965163fb4556423e5787c22 Mon Sep 17 00:00:00 2001 From: Giacomo Spigler Date: Sat, 29 Jun 2024 13:10:15 +0200 Subject: [PATCH 2/7] proposed change to mujocoenv as per issue 1059 --- gymnasium/envs/mujoco/ant_v4.py | 2 +- gymnasium/envs/mujoco/mujoco_env.py | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/gymnasium/envs/mujoco/ant_v4.py b/gymnasium/envs/mujoco/ant_v4.py index a277f6de08..004870e9aa 100644 --- a/gymnasium/envs/mujoco/ant_v4.py +++ b/gymnasium/envs/mujoco/ant_v4.py @@ -17,7 +17,7 @@ class AntEnv(MujocoEnv, utils.EzPickle): "rgb_array", "depth_array", ], - "render_fps": 20, + "render_fps": 30, } def __init__( diff --git a/gymnasium/envs/mujoco/mujoco_env.py b/gymnasium/envs/mujoco/mujoco_env.py index 44e00bf094..d6ec60ff31 100644 --- a/gymnasium/envs/mujoco/mujoco_env.py +++ b/gymnasium/envs/mujoco/mujoco_env.py @@ -37,6 +37,14 @@ def expand_model_path(model_path: str) -> str: class MujocoEnv(gym.Env): """Superclass for MuJoCo based environments.""" + metadata = { + "render_modes": [ + "human", + "rgb_array", + "depth_array", + ] + } + def __init__( self, model_path: str, @@ -82,12 +90,8 @@ def __init__( self.frame_skip = frame_skip - self.metadata["render_modes"] = [ - "human", - "rgb_array", - "depth_array", - ] - self.metadata["render_fps"] = int(np.round(1.0 / self.dt)) + if "render_fps" not in self.metadata: + self.metadata["render_fps"] = int(np.round(1.0 / self.dt)) if observation_space is not None: self.observation_space = observation_space From bdc6f9b04503adc34247444abb79f424df3a506d Mon Sep 17 00:00:00 2001 From: Giacomo Spigler Date: Tue, 16 Jul 2024 18:54:15 +0200 Subject: [PATCH 3/7] fixed assert for render_fps in mujocoenv --- gymnasium/envs/mujoco/ant_v4.py | 2 +- gymnasium/envs/mujoco/mujoco_env.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gymnasium/envs/mujoco/ant_v4.py b/gymnasium/envs/mujoco/ant_v4.py index 004870e9aa..a277f6de08 100644 --- a/gymnasium/envs/mujoco/ant_v4.py +++ b/gymnasium/envs/mujoco/ant_v4.py @@ -17,7 +17,7 @@ class AntEnv(MujocoEnv, utils.EzPickle): "rgb_array", "depth_array", ], - "render_fps": 30, + "render_fps": 20, } def __init__( diff --git a/gymnasium/envs/mujoco/mujoco_env.py b/gymnasium/envs/mujoco/mujoco_env.py index d6ec60ff31..a96d7892e5 100644 --- a/gymnasium/envs/mujoco/mujoco_env.py +++ b/gymnasium/envs/mujoco/mujoco_env.py @@ -90,9 +90,14 @@ def __init__( self.frame_skip = frame_skip - if "render_fps" not in self.metadata: + if "render_fps" in self.metadata: + assert ( + int(np.round(1.0 / self.dt)) == self.metadata["render_fps"] + ), f'Expected value: {int(np.round(1.0 / self.dt))}, Actual value: {self.metadata["render_fps"]}' + else: self.metadata["render_fps"] = int(np.round(1.0 / self.dt)) + if observation_space is not None: self.observation_space = observation_space self._set_action_space() From de75373665112d9b1ccf2eba875907c16a5bfece Mon Sep 17 00:00:00 2001 From: Giacomo Spigler Date: Sun, 21 Jul 2024 18:23:01 +0200 Subject: [PATCH 4/7] precommit tests --- gymnasium/envs/mujoco/mujoco_env.py | 1 - 1 file changed, 1 deletion(-) diff --git a/gymnasium/envs/mujoco/mujoco_env.py b/gymnasium/envs/mujoco/mujoco_env.py index a96d7892e5..f0fdacc5a8 100644 --- a/gymnasium/envs/mujoco/mujoco_env.py +++ b/gymnasium/envs/mujoco/mujoco_env.py @@ -97,7 +97,6 @@ def __init__( else: self.metadata["render_fps"] = int(np.round(1.0 / self.dt)) - if observation_space is not None: self.observation_space = observation_space self._set_action_space() From 0d3ba9fbac86c95ca831856110009210bcd7df34 Mon Sep 17 00:00:00 2001 From: Giacomo Spigler Date: Mon, 22 Jul 2024 17:49:32 +0200 Subject: [PATCH 5/7] fixed bug with overriding class variable 'metadata' --- gymnasium/envs/mujoco/mujoco_env.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gymnasium/envs/mujoco/mujoco_env.py b/gymnasium/envs/mujoco/mujoco_env.py index f0fdacc5a8..2f76e2b8a4 100644 --- a/gymnasium/envs/mujoco/mujoco_env.py +++ b/gymnasium/envs/mujoco/mujoco_env.py @@ -95,6 +95,8 @@ def __init__( int(np.round(1.0 / self.dt)) == self.metadata["render_fps"] ), f'Expected value: {int(np.round(1.0 / self.dt))}, Actual value: {self.metadata["render_fps"]}' else: + # Make a copy of the dictionary to avoid modifying the class variable + self.metadata = self.metadata.copy() self.metadata["render_fps"] = int(np.round(1.0 / self.dt)) if observation_space is not None: From 4b09aaed82dcb1640a93c75fdb06dfe79a163697 Mon Sep 17 00:00:00 2001 From: Giacomo Spigler Date: Wed, 24 Jul 2024 18:42:57 +0200 Subject: [PATCH 6/7] updates to metadata in mujocoenv --- gymnasium/envs/mujoco/mujoco_env.py | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/gymnasium/envs/mujoco/mujoco_env.py b/gymnasium/envs/mujoco/mujoco_env.py index 2f76e2b8a4..5a8e3f8423 100644 --- a/gymnasium/envs/mujoco/mujoco_env.py +++ b/gymnasium/envs/mujoco/mujoco_env.py @@ -37,14 +37,6 @@ def expand_model_path(model_path: str) -> str: class MujocoEnv(gym.Env): """Superclass for MuJoCo based environments.""" - metadata = { - "render_modes": [ - "human", - "rgb_array", - "depth_array", - ] - } - def __init__( self, model_path: str, @@ -90,14 +82,14 @@ def __init__( self.frame_skip = frame_skip - if "render_fps" in self.metadata: - assert ( - int(np.round(1.0 / self.dt)) == self.metadata["render_fps"] - ), f'Expected value: {int(np.round(1.0 / self.dt))}, Actual value: {self.metadata["render_fps"]}' - else: - # Make a copy of the dictionary to avoid modifying the class variable - self.metadata = self.metadata.copy() - self.metadata["render_fps"] = int(np.round(1.0 / self.dt)) + self.metadata = { + "render_modes": [ + "human", + "rgb_array", + "depth_array", + ], + "render_fps": int(np.round(1.0 / self.dt)) + } if observation_space is not None: self.observation_space = observation_space From dac810bdd929ae23c2785417e65017f8a320723f Mon Sep 17 00:00:00 2001 From: Giacomo Spigler Date: Sun, 28 Jul 2024 19:30:31 +0200 Subject: [PATCH 7/7] minor fix --- gymnasium/envs/mujoco/mujoco_env.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gymnasium/envs/mujoco/mujoco_env.py b/gymnasium/envs/mujoco/mujoco_env.py index 5a8e3f8423..bbfcb75de5 100644 --- a/gymnasium/envs/mujoco/mujoco_env.py +++ b/gymnasium/envs/mujoco/mujoco_env.py @@ -88,7 +88,7 @@ def __init__( "rgb_array", "depth_array", ], - "render_fps": int(np.round(1.0 / self.dt)) + "render_fps": int(np.round(1.0 / self.dt)), } if observation_space is not None: