Adapt examples to new rendering behavior
This commit is contained in:
		
							parent
							
								
									a32343807f
								
							
						
					
					
						commit
						7d8e7c3f18
					
				@ -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()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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)
 | 
			
		||||
    #
 | 
			
		||||
 | 
			
		||||
@ -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)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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)
 | 
			
		||||
 | 
			
		||||
@ -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)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user