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()
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()
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)
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
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)
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)