empty.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. from gym_minigrid.minigrid import Goal, Grid, MiniGridEnv
  2. from gym_minigrid.register import register
  3. class EmptyEnv(MiniGridEnv):
  4. """
  5. Empty grid environment, no obstacles, sparse reward
  6. """
  7. def __init__(self, size=8, agent_start_pos=(1, 1), agent_start_dir=0, **kwargs):
  8. self.agent_start_pos = agent_start_pos
  9. self.agent_start_dir = agent_start_dir
  10. super().__init__(
  11. grid_size=size,
  12. max_steps=4 * size * size,
  13. # Set this to True for maximum speed
  14. see_through_walls=True,
  15. **kwargs
  16. )
  17. def _gen_grid(self, width, height):
  18. # Create an empty grid
  19. self.grid = Grid(width, height)
  20. # Generate the surrounding walls
  21. self.grid.wall_rect(0, 0, width, height)
  22. # Place a goal square in the bottom-right corner
  23. self.put_obj(Goal(), width - 2, height - 2)
  24. # Place the agent
  25. if self.agent_start_pos is not None:
  26. self.agent_pos = self.agent_start_pos
  27. self.agent_dir = self.agent_start_dir
  28. else:
  29. self.place_agent()
  30. self.mission = "get to the green goal square"
  31. register(
  32. id="MiniGrid-Empty-5x5-v0", entry_point="gym_minigrid.envs.empty:EmptyEnv", size=5
  33. )
  34. register(
  35. id="MiniGrid-Empty-Random-5x5-v0",
  36. entry_point="gym_minigrid.envs.empty:EmptyEnv",
  37. size=5,
  38. agent_start_pos=None,
  39. )
  40. register(
  41. id="MiniGrid-Empty-6x6-v0",
  42. entry_point="gym_minigrid.envs.empty:EmptyEnv",
  43. size=6,
  44. )
  45. register(
  46. id="MiniGrid-Empty-Random-6x6-v0",
  47. entry_point="gym_minigrid.envs.empty:EmptyEnv",
  48. size=6,
  49. agent_start_pos=None,
  50. )
  51. register(
  52. id="MiniGrid-Empty-8x8-v0",
  53. entry_point="gym_minigrid.envs.empty:EmptyEnv",
  54. )
  55. register(
  56. id="MiniGrid-Empty-16x16-v0",
  57. entry_point="gym_minigrid.envs.empty:EmptyEnv",
  58. size=16,
  59. )