Open Two Doors#

Open Two Doors

Action Space

Discrete(7)

Observation Space

Dict('direction': Discrete(4), 'image': Box(0, 255, (7, 7, 3), uint8), 'mission': MissionSpace(<function BabyAIMissionSpace._gen_mission at 0x7f813d9da940>, None))

Reward Range

(0, 1)

Creation

gymnasium.make("BabyAI-OpenRedBlueDoorsDebug-v0")

Description#

Open door X, then open door Y The two doors are facing opposite directions, so that the agent Can’t see whether the door behind him is open. This task requires memory (recurrent policy) to be solved effectively.

Mission Space#

“open the {color} door, the open the {color} door”

{color} is the color of the box. Can be “red”, “green”, “blue”, “purple”, “yellow” or “grey”.

Action Space#

Num

Name

Action

0

left

Turn left

1

right

Turn right

2

forward

Move forward

3

pickup

Pick up an object

4

drop

Unused

5

toggle

Unused

6

done

Unused

Observation Encoding#

  • Each tile is encoded as a 3 dimensional tuple: (OBJECT_IDX, COLOR_IDX, STATE)

  • OBJECT_TO_IDX and COLOR_TO_IDX mapping can be found in minigrid/core/constants.py

  • STATE refers to the door state with 0=open, 1=closed and 2=locked

Rewards#

A reward of ‘1 - 0.9 * (step_count / max_steps)’ is given for success, and ‘0’ for failure.

Termination#

The episode ends if any one of the following conditions is met:

  1. The agent opens the door.

  2. Timeout (see max_steps).

Registered Configurations#

  • BabyAI-OpenTwoDoors-v0

  • BabyAI-OpenRedBlueDoors-v0

  • BabyAI-OpenRedBlueDoorsDebug-v0