Beispiel #1
0
def register_marl_env(
    env_name,
    env_class,
    n_agents,
    grid_size,
    view_size,
    view_tile_size=8,
    view_offset=0,
    agent_color=None,
    env_kwargs={},
):
    colors = ["red", "blue", "purple", "orange", "olive", "pink"]
    assert n_agents <= len(colors)

    class RegEnv(env_class):
        def __new__(cls):
            instance = super(env_class, RegEnv).__new__(env_class)
            instance.__init__(
                agents=[
                    GridAgentInterface(
                        color=c if agent_color is None else agent_color,
                        view_size=view_size,
                        view_tile_size=8,
                        view_offset=view_offset,
                    ) for c in colors[:n_agents]
                ],
                grid_size=grid_size,
                **env_kwargs,
            )
            return instance

    env_class_name = f"env_{len(registered_envs)}"
    setattr(this_module, env_class_name, RegEnv)
    registered_envs.append(env_name)
    gym_register(env_name, entry_point=f"marlgrid.envs:{env_class_name}")
Beispiel #2
0
def register_marl_env(
    env_name,
    env_class,
    n_agents,
    grid_size,
    view_size,
    view_tile_size=8,
    done_condition="all",
    env_kwargs={},
):
    colors = ["red", "blue", "purple", "orange", "olive"]
    assert n_agents <= len(colors)

    class RegEnv(env_class):
        def __init__(self):
            super().__init__(
                agents=[
                    InteractiveGridAgent(color=c,
                                         view_size=view_size,
                                         view_tile_size=8)
                    for c in colors[:n_agents]
                ],
                grid_size=grid_size,
                done_condition=done_condition,
                **env_kwargs,
            )

    env_class_name = f"env_{len(registered_envs)}"
    setattr(this_module, env_class_name, RegEnv)
    registered_envs.append(env_name)
    gym_register(env_name, entry_point=f"marlgrid.envs:{env_class_name}")
Beispiel #3
0
def register(
    id,
    num_agents,
    num_preies,
    num_obstacles,
    direction_alpha,
    use_human_command,
    entry_point,
    reward_threshold=0.95
):
    assert id.startswith("MiniGrid-")
    assert id not in env_list

    # Register the environment with OpenAI gym
    gym_register(
        id=id,
        entry_point=entry_point,
        kwargs={'num_agents': num_agents, \
        'num_preies': num_preies, \
        'num_obstacles': num_obstacles, \
        'direction_alpha': direction_alpha,\
        'use_human_command': use_human_command},
        reward_threshold=reward_threshold
    )

    # Add the environment to the set
    env_list.append(id)
Beispiel #4
0
def register(id, entry_point, **kwargs):
    if not id in gym_registry.env_specs:
        try:
            gym_register(id=id, entry_point=entry_point, **kwargs)
        except Exception as e:
            print("warning: failed to register environment\n" + str(e))
    envs[id] = (entry_point, kwargs)
def register(id, entry_point, reward_threshold=0.95):

    # Register the environment with OpenAI gym
    gym_register(id=id,
                 entry_point=entry_point,
                 reward_threshold=reward_threshold)

    # Add the environment to the set
    env_list.append(id)
Beispiel #6
0
 def setup(self):
     if self.env_name == 'GridworldEnv':
         env = GridworldEnv(self.env_param)
     else:
         env_name = f'{self.env_name}-{self.id}-v0'
         gym_register(id=env_name,entry_point=self.env_factory, max_episode_steps=200,)
         env = gym.make(env_name).unwrapped
     self.env = env
     self.set_seed(self.seed)
Beispiel #7
0
def register(id, entry_point, reward_threshold=0.95):
    assert id.startswith("MiniGrid-")
    assert id not in env_list

    # Register the environment with OpenAI gym
    gym_register(id=id, entry_point=entry_point, reward_threshold=reward_threshold)

    # Add the environment to the set
    env_list.append(id)
Beispiel #8
0
def register(env_id, entry_point, reward_threshold=0.95):
    """Register a new environment with OpenAI gym based on id."""
    assert env_id.startswith("MultiGrid-")
    if env_id in env_list:
        del gym.envs.registry.env_specs[id]
    else:
        # Add the environment to the set
        env_list.append(id)

    # Register the environment with OpenAI gym
    gym_register(id=env_id, entry_point=entry_point, reward_threshold=reward_threshold)
Beispiel #9
0
def register(id: str, order_enforce: bool = False, **kwargs):
    COMPILER_GYM_ENVS.append(id)

    # As of gym==0.21.0 a new OrderEnforcing wrapper is enabled by default. Turn
    # this off as CompilerEnv already enforces this and the wrapper obscures the
    # docstrings of the base class.
    gym_version = _parse_version_string(gym.__version__)
    if gym_version and gym_version >= (0, 21):
        kwargs["order_enforce"] = order_enforce

    gym_register(id=id, **kwargs)
Beispiel #10
0
 def setup(self):
     env_name = f'{self.env_name}-{self.id}-v0'
     gym_register(
         id=env_name,
         entry_point=self.env_factory,
         max_episode_steps=200,
     )
     env = gym.make(env_name)
     self.env = NormalizedActions(env)
     self.set_seed(self.seed)
     self.ou_noise = OUNoise(self.env.action_space)
Beispiel #11
0
def register():
    global _registered
    name = 'Cards-v0'
    if not _registered:
        from gym.envs.registration import register as gym_register
        gym_register(
            id=name,
            entry_point='cards_env:CardsEnv',
            nondeterministic=True,
        )
        _registered = True
    return name
Beispiel #12
0
def register(
    id,
    entry_point,
    reward_threshold=900
):
    assert id.startswith("MiniGrid-")
    assert id not in env_list

    # Register the environment with OpenAI gym
    gym_register(
        id=id,
        entry_point=entry_point,
        reward_threshold=reward_threshold
    )

    # Add the environment to the set
    env_list.append(id)
def register():
    gym_register(ENV_ID,
                 entry_point="lib.microtaur:FourShortLegsEnv",
                 max_episode_steps=1000)
Beispiel #14
0
                        sfx0 = 'Clr' if random_colors else ''
                        sfx1 = resolution_suffix(resolution, obs_ptcloud)
                        sfx1 += dbg_viz_suffix(dbg)
                        env_id = base_env_name + sfx0 + 'BulletEnv' + sfx1 + '-v' + str(
                            env_v)
                        kwargs = {
                            'base_env_name': base_env_name,
                            'env_v': env_v,
                            'random_colors': random_colors,
                            'obs_resolution': resolution,
                            'obs_ptcloud': obs_ptcloud,
                            'debug': dbg == 1,
                            'visualize': dbg == 2
                        }
                        gym_register(id=env_id,
                                     entry_point='bulb.envs:AuxBulletEnv',
                                     kwargs=kwargs)
                        #print(env_id)

# Register rearrangement envs.
num_versions = 6 * 2  # 6 versions and their black-background variants
for robot in ['Reacher', 'Franka']:
    for variant in ['Ycb', 'OneYcb', 'Geom', 'OneGeom']:
        for resolution in OBS_RESOLUTIONS:
            for obs_ptcloud in [False, True]:
                if obs_ptcloud and resolution is None: continue
                for version in range(num_versions):
                    for dbg in [0, 1, 2]:
                        sfx = resolution_suffix(resolution, obs_ptcloud)
                        sfx += dbg_viz_suffix(dbg)
                        env_id = robot + 'Rearrange' + variant + sfx + '-v' + str(
Beispiel #15
0
def reregister():
    for env in envs:
        del gym_registry.env_specs[env]
        gym_register(id=env, entry_point=envs[env][0], **envs[env][1])
from gym.envs.registration import register as gym_register
from gym_minigrid.envs.distshift import DistShiftEnv


class DistShift3(DistShiftEnv):
    def __init__(self, agent_start_pos=(1, 1), agent_start_dir=0):
        super().__init__(strip2_row=2, agent_start_pos=agent_start_pos,
                         agent_start_dir=agent_start_dir)


class DistShift4(DistShiftEnv):
    def __init__(self, agent_start_pos=(1, 1), agent_start_dir=0):
        super().__init__(strip2_row=5, agent_start_pos=agent_start_pos,
                         agent_start_dir=agent_start_dir)


# Register the environment with OpenAI gym
gym_register(
    id='MiniGrid-DistShift1-v1',
    entry_point='mod_envs.distshift:DistShift3',
    reward_threshold=0.95
)

gym_register(
    id='MiniGrid-DistShift2-v1',
    entry_point='mod_envs.distshift:DistShift4',
    reward_threshold=0.95
)
Beispiel #17
0
    def __init__(self, n=5, max_steps=6):
        self.observation_space = gym.spaces.Discrete(n)
        self.action_space = gym.spaces.Discrete(n)
        self.max_steps = max_steps

        self.i = None
        self.seq = None
        self.target = None

    def reset(self):
        self.i = 0
        self.seq = np.random.randint(self.observation_space.n,
                                     size=[self.max_steps])
        self.target = self.seq[0]

        return self.seq[0]

    def step(self, action):
        self.i += 1

        if self.i < len(self.seq):
            return self.seq[self.i], 0, False, {}
        else:
            return 0, float(action == self.target), True, {}


gym_register(
    id="MemoryTest-v0",
    entry_point="envs:MemoryTest",
)
        elif actionV[i] > bounds[1][i]:
            actionV[i] = bounds[1][i]
    return actionV


from rlsimenv.config import SIMULATION_ENVIRONMENTS

from gym.envs.registration import register as gym_register
# Use the gym_register because it allows us to set the max_episode_steps.
# try:

print("Registering rlsimenv environments")

gym_register(
    id='ContinuousMaxwellsDemon-v0',
    entry_point='rlsimenv.MaxwellsDemon:MaxwellsDemonPartiallyObserved',
    reward_threshold=0.95,
    max_episode_steps=500,
)
gym_register(
    id='ContinuousMaxwellsDemonFullyObserved-v0',
    entry_point='rlsimenv.MaxwellsDemon:MaxwellsDemonFullyObserved',
    reward_threshold=0.95,
    max_episode_steps=500,
)

gym_register(id='MiniCraftBoxesFullyObserved-v0',
             entry_point='rlsimenv.MiniCraftBoxes:MiniCraftBoxesFullyObserved',
             reward_threshold=0.95,
             max_episode_steps=500,
             kwargs={'gui': False})
Beispiel #19
0
def register(id, *args, **kwargs):  # pylint: disable=redefined-builtin
    assert id.startswith('POMDP-')
    #print(env_list)
    assert id not in env_list
    env_list.append(id)
    gym_register(id, *args, **kwargs)
Beispiel #20
0
from gym.envs.registration import register as gym_register

gym_register(
    id='MiniGrid-MaxwellsDemon-v0',
    entry_point='surprise.envs.minigrid.envs.maxwells_demon_room:MaxwellsDemonEnv',
    reward_threshold=0.95,
    max_episode_steps=500,
)

gym_register(
    id='MiniGrid-SimpleEnemyEnvHMMMarginal-v0',
    entry_point='surprise.envs.minigrid.envs.simple_room_hmm_marginal:SimpleEnemyEnvHMMMarginal',
    reward_threshold=0.95,
    max_episode_steps=5000,
)

gym_register(
    id='MiniGrid-SimpleEnemyTagEnvHMM-v0',
    entry_point='surprise.envs.minigrid.envs.simple_room_tag_hmm:SimpleEnemyTagEnvHMM',
    reward_threshold=0.95,
    max_episode_steps=5000,
)

gym_register(
    id='MiniGrid-SimpleEnemyTAgEnvHMMMarginal-v0',
    entry_point='surprise.envs.minigrid.envs.simple_room_hmm_tag_marginal:SimpleEnemyEnvTagHMMMarginal',
    reward_threshold=0.95,
    max_episode_steps=5000,
)
Beispiel #21
0
        return self._get_obs()


class Reacher_Fixed_Train(Reacher_Fixed):
    def __init__(self):
        super().__init__(mode=0)


class Reacher_Fixed_Test(Reacher_Fixed):
    def __init__(self):
        super().__init__(mode=1)


gym_register(
    id='ReacherFixedTrain-v0',
    entry_point=Reacher_Fixed_Train,
    max_episode_steps=50,
    reward_threshold=-3.75,
)

gym_register(
    id='ReacherFixedTest-v0',
    entry_point=Reacher_Fixed_Test,
    max_episode_steps=10000,
    reward_threshold=-3.75,
)


class OracleHalfCheetahTest(ICML_envs.OracleHalfCheetah_Friction):
    def __init__(self):
        super().__init__(density_set=[
            500, 550, 600, 650, 700, 750, 800, 850, 900, 950, 1000, 1050, 1100,
Beispiel #22
0
    file = open(terrainRL_PATH + "/args/envs.json")
    env_data = json.load(file)
    file.close()

    return env_data


from gym.envs.registration import register as gym_register
# Use the gym_register because it allows us to set the max_episode_steps.
env_data = getEnvsList()

gym_register(id='PD_Biped2D_Flat-v0',
             entry_point='simAdapter.terrainRLSim:TerrainRLSimWrapper',
             reward_threshold=0.95,
             max_episode_steps=512,
             kwargs={
                 'config': env_data["PD_Biped2D_Flat-v0"],
                 "render": True
             })

gym_register(id='PD_Biped2D_Gaps_Terrain-v0',
             entry_point='simAdapter.terrainRLSim:TerrainRLSimWrapper',
             reward_threshold=0.95,
             max_episode_steps=512,
             kwargs={
                 'config': env_data["PD_Biped2D_Gaps_Terrain-v0"],
                 "render": True,
                 "flatten_observation": True,
                 "fall_check": False
             })
Beispiel #23
0
def register(id: str, **kwargs):
    COMPILER_GYM_ENVS.append(id)
    gym_register(id=id, **kwargs)
Beispiel #24
0
def register(id, *args, **kwargs):
    assert id.startswith('POMDP-')
    assert id not in env_list
    env_list.append(id)
    gym_register(id, *args, **kwargs)
Beispiel #25
0
    def step(self, action):
        first_phase = self.i // self.seq_size == 0

        obs = 0
        reward = 0
        done = False

        if first_phase:
            if action != 0:
                reward -= 1

            if self.i + 1 < self.seq_size:
                obs = self.seq[self.i + 1]
        else:
            i = self.i - self.seq_size
            if action == self.seq[i]:
                reward += 1

            if i + 1 >= self.seq_size:
                done = True

        self.i += 1

        return obs, reward, done, {}


gym_register(
    id="SeqCopy-v0",
    entry_point="envs:SeqCopy",
)