Adapt examples to new rendering behavior

This commit is contained in:
Dominik Moritz Roth 2024-03-14 15:50:42 +01:00
parent a32343807f
commit 7d8e7c3f18
5 changed files with 17 additions and 21 deletions

View File

@ -3,14 +3,14 @@ import fancy_gym
def example_run_replanning_env(env_name="fancy_ProDMP/BoxPushingDenseReplan-v0", seed=1, iterations=1, render=False):
env = gym.make(env_name)
env = gym.make(env_name, render_mode='human' if render else None)
env.reset(seed=seed)
for i in range(iterations):
while True:
ac = env.action_space.sample()
obs, reward, terminated, truncated, info = env.step(ac)
if render:
env.render(mode="human")
env.render()
if terminated or truncated:
env.reset()
break
@ -38,13 +38,13 @@ def example_custom_replanning_envs(seed=0, iteration=100, render=True):
'replanning_schedule': lambda pos, vel, obs, action, t: t % 25 == 0,
'condition_on_desired': True}
base_env = gym.make(base_env_id)
base_env = gym.make(base_env_id, render_mode='human' if render else None)
env = fancy_gym.make_bb(env=base_env, wrappers=wrappers, black_box_kwargs=black_box_kwargs,
traj_gen_kwargs=trajectory_generator_kwargs, controller_kwargs=controller_kwargs,
phase_kwargs=phase_generator_kwargs, basis_kwargs=basis_generator_kwargs,
seed=seed)
if render:
env.render(mode="human")
env.render()
obs = env.reset()

View File

@ -17,7 +17,7 @@ def example_dmc(env_id="dm_control/fish-swim", seed=1, iterations=1000, render=T
Returns:
"""
env = gym.make(env_id)
env = gym.make(env_id, render_mode='human' if render else None)
rewards = 0
obs = env.reset(seed=seed)
print("observation shape:", env.observation_space.shape)
@ -26,7 +26,7 @@ def example_dmc(env_id="dm_control/fish-swim", seed=1, iterations=1000, render=T
for i in range(iterations):
ac = env.action_space.sample()
if render:
env.render(mode="human")
env.render()
obs, reward, terminated, truncated, info = env.step(ac)
rewards += reward
@ -84,7 +84,7 @@ def example_custom_dmc_and_mp(seed=1, iterations=1, render=True):
# basis_generator_kwargs = {'basis_generator_type': 'rbf',
# 'num_basis': 5
# }
base_env = gym.make(base_env_id)
base_env = gym.make(base_env_id, render_mode='human' if render else None)
env = fancy_gym.make_bb(env=base_env, wrappers=wrappers, black_box_kwargs={},
traj_gen_kwargs=trajectory_generator_kwargs, controller_kwargs=controller_kwargs,
phase_kwargs=phase_generator_kwargs, basis_kwargs=basis_generator_kwargs,
@ -96,7 +96,7 @@ def example_custom_dmc_and_mp(seed=1, iterations=1, render=True):
# It is also possible to change them mode multiple times when
# e.g. only every nth trajectory should be displayed.
if render:
env.render(mode="human")
env.render()
rewards = 0
obs = env.reset()
@ -115,7 +115,7 @@ def example_custom_dmc_and_mp(seed=1, iterations=1, render=True):
env.close()
del env
def main(render = True):
def main(render = False):
# # Standard DMC Suite tasks
example_dmc("dm_control/fish-swim", seed=10, iterations=1000, render=render)
#

View File

@ -21,7 +21,7 @@ def example_general(env_id="Pendulum-v1", seed=1, iterations=1000, render=True):
"""
env = gym.make(env_id)
env = gym.make(env_id, render_mode='human' if render else None)
rewards = 0
obs = env.reset(seed=seed)
print("Observation shape: ", env.observation_space.shape)
@ -85,7 +85,7 @@ def example_async(env_id="fancy/HoleReacher-v0", n_cpu=4, seed=int('533D', 16),
# do not return values above threshold
return *map(lambda v: np.stack(v)[:n_samples], buffer.values()),
def main(render = True):
def main(render = False):
# Basic gym task
example_general("Pendulum-v1", seed=10, iterations=200, render=render)

View File

@ -2,7 +2,7 @@ import gymnasium as gym
import fancy_gym
def example_meta(env_id="fish-swim", seed=1, iterations=1000, render=True):
def example_meta(env_id="metaworld/button-press-v2", seed=1, iterations=1000, render=True):
"""
Example for running a MetaWorld based env in the step based setting.
The env_id has to be specified as `task_name-v2`. V1 versions are not supported and we always
@ -18,7 +18,7 @@ def example_meta(env_id="fish-swim", seed=1, iterations=1000, render=True):
Returns:
"""
env = gym.make(env_id)
env = gym.make(env_id, render_mode='human' if render else None)
rewards = 0
obs = env.reset(seed=seed)
print("observation shape:", env.observation_space.shape)
@ -27,9 +27,7 @@ def example_meta(env_id="fish-swim", seed=1, iterations=1000, render=True):
for i in range(iterations):
ac = env.action_space.sample()
if render:
# THIS NEEDS TO BE SET TO FALSE FOR NOW, BECAUSE THE INTERFACE FOR RENDERING IS DIFFERENT TO BASIC GYM
# TODO: Remove this, when Metaworld fixes its interface.
env.render(False)
env.render()
obs, reward, terminated, truncated, info = env.step(ac)
rewards += reward
if terminated or truncated:
@ -81,7 +79,7 @@ def example_custom_meta_and_mp(seed=1, iterations=1, render=True):
basis_generator_kwargs = {'basis_generator_type': 'rbf',
'num_basis': 5
}
base_env = gym.make(base_env_id)
base_env = gym.make(base_env_id, render_mode='human' if render else None)
env = fancy_gym.make_bb(env=base_env, wrappers=wrappers, black_box_kwargs={},
traj_gen_kwargs=trajectory_generator_kwargs, controller_kwargs=controller_kwargs,
phase_kwargs=phase_generator_kwargs, basis_kwargs=basis_generator_kwargs,
@ -93,7 +91,7 @@ def example_custom_meta_and_mp(seed=1, iterations=1, render=True):
# It is also possible to change them mode multiple times when
# e.g. only every nth trajectory should be displayed.
if render:
env.render(mode="human")
env.render()
rewards = 0
obs = env.reset(seed=seed)

View File

@ -13,15 +13,13 @@ def example_mp(env_name, seed=1, render=True):
Returns:
"""
env = gym.make(env_name)
env = gym.make(env_name, render_mode='human' if render else None)
returns = 0
obs = env.reset(seed=seed)
# number of samples/full trajectories (multiple environment steps)
for i in range(10):
if render and i % 2 == 0:
env.render(mode="human")
else:
env.render()
ac = env.action_space.sample()
obs, reward, terminated, truncated, info = env.step(ac)