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 0x7fb62c0b31f0>, 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