empty.py 1.8 KB

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