Browse Source

Renamed environments

Maxime Chevalier-Boisvert 7 years ago
parent
commit
271e2f9939

+ 3 - 3
README.md

@@ -86,8 +86,8 @@ and with large rooms to experiment with sparse rewards.
 ### Door & key environment
 
 Registered configurations:
-- `MiniGrid-Door-Key-8x8-v0`
-- `MiniGrid-Door-Key-16x16-v0`
+- `MiniGrid-DoorKey-8x8-v0`
+- `MiniGrid-DoorKey-16x16-v0`
 
 <p align="center">
 <img src="/figures/door-key-env.png">
@@ -101,7 +101,7 @@ useful to experiment with curiosity or curriculum learning.
 ### Multi-room environment
 
 Registered configurations:
-- `MiniGrid-Multi-Room-N6-v0`
+- `MiniGrid-MultiRoom-N6-v0`
 
 <p align="center">
 <img src="/figures/multi-room.gif" width=416 height=424>

+ 1 - 0
gym_minigrid/__init__.py

@@ -1,2 +1,3 @@
 # Import these environments to make sure they register themselves
 import gym_minigrid.envs.simple_envs
+import gym_minigrid.envs.fourroomqa

+ 1 - 9
gym_minigrid/envs/__init__.py

@@ -1,10 +1,2 @@
 from gym_minigrid.envs.simple_envs import *
-from gym_minigrid.envs.fourroom import *
-
-
-
-
-
-
-# TODO:
-# MiniGrid-FourRoom-16x16-v0
+from gym_minigrid.envs.fourroomqa import *

+ 0 - 2
gym_minigrid/envs/fourroom.py

@@ -1,2 +0,0 @@
-from gym_minigrid.minigrid import *
-from gym_minigrid.register import register

+ 70 - 0
gym_minigrid/envs/fourroomqa.py

@@ -0,0 +1,70 @@
+from gym_minigrid.minigrid import *
+from gym_minigrid.register import register
+
+"""
+class Room:
+    def __init__(self,
+        top,
+        size,
+        entryDoorPos,
+        exitDoorPos
+    ):
+        self.top = top
+        self.size = size
+        self.entryDoorPos = entryDoorPos
+        self.exitDoorPos = exitDoorPos
+"""
+
+class FourRoomQAEnv(MiniGridEnv):
+    """
+    Environment to experiment with embodied question answering
+    https://arxiv.org/abs/1711.11543
+    """
+
+    # TODO: define actions
+
+
+
+
+    def __init__(self, size=16):
+        assert size >= 8
+        super(FourRoomQAEnv, self).__init__(gridSize=size, maxSteps=8*size)
+
+        # TODO: self.actions
+
+        # TODO: self.action_space
+
+
+
+
+    def _genGrid(self, width, height):
+        grid = super(FourRoomQAEnv, self)._genGrid(width, height)
+
+        # TODO: work in progress
+
+        """
+        # Create a vertical splitting wall
+        splitIdx = self._randInt(2, gridSz-3)
+        for i in range(0, gridSz):
+            grid.set(splitIdx, i, Wall())
+
+        # Place a door in the wall
+        doorIdx = self._randInt(1, gridSz-2)
+        grid.set(splitIdx, doorIdx, Door('yellow'))
+
+        # Place a key on the left side
+        #keyIdx = self._randInt(1 + gridSz // 2, gridSz-2)
+        keyIdx = gridSz-2
+        grid.set(1, keyIdx, Key('yellow'))
+        """
+
+        return grid
+
+
+
+
+
+register(
+    id='MiniGrid-FourRoomQA-v0',
+    entry_point='gym_minigrid.envs:FourRoomQAEnv'
+)

+ 3 - 3
gym_minigrid/envs/simple_envs.py

@@ -57,12 +57,12 @@ class DoorKeyEnv16x16(DoorKeyEnv):
         super(DoorKeyEnv16x16, self).__init__(size=16)
 
 register(
-    id='MiniGrid-Door-Key-8x8-v0',
+    id='MiniGrid-DoorKey-8x8-v0',
     entry_point='gym_minigrid.envs:DoorKeyEnv'
 )
 
 register(
-    id='MiniGrid-Door-Key-16x16-v0',
+    id='MiniGrid-DoorKey-16x16-v0',
     entry_point='gym_minigrid.envs:DoorKeyEnv16x16'
 )
 
@@ -323,7 +323,7 @@ class MultiRoomEnvN6(MultiRoomEnv):
         )
 
 register(
-    id='MiniGrid-Multi-Room-N6-v0',
+    id='MiniGrid-MultiRoom-N6-v0',
     entry_point='gym_minigrid.envs:MultiRoomEnvN6',
     reward_threshold=1000.0
 )

+ 1 - 1
standalone.py

@@ -18,7 +18,7 @@ def main():
         "--env-name",
         dest="env_name",
         help="gym environment to load",
-        default='MiniGrid-Multi-Room-N6-v0'
+        default='MiniGrid-MultiRoom-N6-v0'
     )
     (options, args) = parser.parse_args()