Dynamic Obstacles#

Dynamic Obstacles

Action Space

Discrete(3)

Observation Space

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

Reward Range

(-1, 1)

Creation

gymnasium.make("MiniGrid-Dynamic-Obstacles-16x16-v0")

Description#

This environment is an empty room with moving obstacles. The goal of the agent is to reach the green goal square without colliding with any obstacle. A large penalty is subtracted if the agent collides with an obstacle and the episode finishes. This environment is useful to test Dynamic Obstacle Avoidance for mobile robots with Reinforcement Learning in Partial Observability.

Mission Space#

“get to the green goal square”

Action Space#

Num

Name

Action

0

left

Turn left

1

right

Turn right

2

forward

Move forward

3

pickup

Unused

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. A ‘-1’ penalty is subtracted if the agent collides with an obstacle.

Termination#

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

  1. The agent reaches the goal.

  2. The agent collides with an obstacle.

  3. Timeout (see max_steps).

Registered Configurations#

  • MiniGrid-Dynamic-Obstacles-5x5-v0

  • MiniGrid-Dynamic-Obstacles-Random-5x5-v0

  • MiniGrid-Dynamic-Obstacles-6x6-v0

  • MiniGrid-Dynamic-Obstacles-Random-6x6-v0

  • MiniGrid-Dynamic-Obstacles-8x8-v0

  • MiniGrid-Dynamic-Obstacles-16x16-v0