Esempio n. 1
0
def test_simple_ltl_env(env, sampler):
    env = gym.make(env)
    env = ltl_wrappers.LTLEnv(env,
                              progression_mode="full",
                              ltl_sampler=sampler)

    letter_types = env.propositions

    def valid_action(a):
        return a in letter_types

    for _ in range(10):
        obs = env.reset()
        for _ in range(10000):
            env.show()
            print(obs["text"])
            print("\nAction? ", end="")
            a = input().strip()
            while not valid_action(a):
                a = input().strip()
            a = letter_types.index(a)

            obs, reward, done, info = env.step(a)

            if done:
                env.show()
                print(reward)
                print("Done!")
                input()
                break

            print(reward)

    env.close()
Esempio n. 2
0
def test_env(env, sampler):
    env = gym.make(env)
    #env = ltl_wrappers.LTLEnv(env, progression_mode="full", ltl_sampler="Sequence_2_3")
    env = ltl_wrappers.LTLEnv(env,
                              progression_mode="full",
                              ltl_sampler=sampler)
    str_to_action = {"w": 0, "s": 1, "a": 2, "d": 3}

    import random
    for _ in range(10):
        obs = env.reset()
        for _ in range(10000):
            env.show()
            print(obs["text"])
            print("\nAction? ", end="")
            a = input()
            while a not in str_to_action:
                a = input()
            print()
            a = str_to_action[a]
            #a = random.randrange(env.action_space.n)
            obs, reward, done, info = env.step(a % env.action_space.n)

            if done:
                env.show()
                print(reward)
                print("Done!")
                input()
                break

            print(reward)

    env.close()
Esempio n. 3
0
def make_env(env_key,
             progression_mode,
             ltl_sampler,
             seed=None,
             intrinsic=0,
             noLTL=False):
    env = gym.make(env_key)
    env.seed(seed)

    # Adding LTL wrappers
    if (noLTL):
        return ltl_wrappers.NoLTLWrapper(env)
    else:
        return ltl_wrappers.LTLEnv(env, progression_mode, ltl_sampler,
                                   intrinsic)
Esempio n. 4
0
def make_env(env_id,
             mpi_rank=0,
             subrank=0,
             seed=None,
             logger_dir=None,
             initializer=None):
    if initializer is not None:
        initializer(mpi_rank=mpi_rank, subrank=subrank)

    env = gym.make(env_id)

    # Adding general wraps
    env = ltl_wrappers.LTLEnv(env)
    env = ltl_wrappers.NoLTLWrapper(env)  # For testing purposes

    env.seed(seed + subrank if seed is not None else None)
    env = bench.Monitor(env,
                        logger_dir
                        and os.path.join(logger_dir,
                                         str(mpi_rank) + '.' + str(subrank)),
                        allow_early_resets=True)

    return env
Esempio n. 5
0
                    type=int,
                    help="random seed to generate the environment with",
                    default=-1)
parser.add_argument("--tile_size",
                    type=int,
                    help="size at which to render tiles",
                    default=32)
parser.add_argument('--agent_view',
                    default=False,
                    help="draw the agent sees (partially observable view)",
                    action='store_true')

args = parser.parse_args()

# `base_env` is the backend minigrid
# `env` is the (1-level) wrapped minigrid from our code
# `ltl_env` is the (2-level) wrapped minigrid with LTL goals
env = gym.make(args.env)
base_env = env.env
ltl_env = ltl_wrappers.LTLEnv(env,
                              progression_mode="full",
                              ltl_sampler="AdversarialSampler")

window = Window('gym_minigrid - ' + args.env)
window.reg_key_handler(key_handler)

reset()

# Blocking event loop
window.show(block=True)
Esempio n. 6
0
                            help='The path to the model to load.')

    parser_viz.add_argument(
        "--ltl-sampler",
        default="Default",
        help="the ltl formula template to sample from (default: DefaultSampler)"
    )

    args = vars(parser.parse_args())  # make it a dictionary
    outdir = './storage/random-agent-results'

    if (args["command"] == "play"):
        env = gym.make(args["env_id"])
        env.num_steps = 10000000
        env = safety_wrappers.Play(env)
        env = ltl_wrappers.LTLEnv(env, ltl_sampler="Default")

        agent = PlayAgent(env)

    elif (args["command"] == "random"):
        env = gym.make(args["env_id"])
        env.num_steps = 10000
        env = safety_wrappers.Play(env)
        env = ltl_wrappers.LTLEnv(env, ltl_sampler="Default")

        agent = RandomAgent(env.action_space)

    elif (args["command"] == "viz"):
        # If the config is available (from trainig) then just load it here instead of asking the user of this script to provide all training time configs
        config = vars(utils.load_config(args["model_path"]))
        args.update(config)