in mae_envs/envs/box_locking.py [0:0]
def __init__(self, env, n_objs, task='all', fixed_order=False,
obj_lock_obs_key='obj_lock', obj_pos_obs_key='box_pos',
act_lock_key='action_glue', agent_pos_key='agent_pos',
lock_reward=5.0, unlock_penalty=10.0, shaped_reward_scale=1.0,
success_reward=1, return_threshold=0.1):
super().__init__(env)
self.n_objs = n_objs
self.task = task or 'all'
assert task in ['all', 'order', 'all-return', 'order-return'], (
f'task {task} is currently not supported')
self.need_return = 'return' in self.task
self.return_threshold = return_threshold
if self.need_return:
self.task = self.task.replace('-return', '')
self.n_agents = self.unwrapped.n_agents
assert self.n_agents == 1, 'The locking tasks only support 1 agent'
self.agent_key = agent_pos_key
self.obj_order = list(range(self.n_objs))
self.fixed_order = fixed_order
self.lock_key = obj_lock_obs_key
self.pos_key = obj_pos_obs_key
self.act_key = act_lock_key
self.lock_reward = lock_reward
self.unlock_penalty = unlock_penalty
self.shaped_reward_scale = shaped_reward_scale
self.success_reward = success_reward
self.objs_locked = np.zeros((n_objs, ), dtype=np.int8)
self.spawn_pos = None
self.spawn_pos_dist = None
self.next_obj = None
self.next_obj_dist = 0
self.unlocked_objs = []