Minimalistic Gridworld Environment (MiniGrid)

Maxime Chevalier-Boisvert 1fef1554c8 Updated README пре 7 година
basicrl 8fc72cda9f Fixed basicrl code пре 7 година
gym_minigrid a7a56cdfe2 Added keyboard handling to standalone.py пре 7 година
.gitignore 8fc72cda9f Fixed basicrl code пре 7 година
LICENSE 51a5d9079d Initial commit пре 7 година
README.md 1fef1554c8 Updated README пре 7 година
setup.py f28a1ba73f Updated README пре 7 година
standalone.py a7a56cdfe2 Added keyboard handling to standalone.py пре 7 година

README.md

Minimalistic Grid World Environment (MiniGrid)

There are other grid world Gym environments out there, but this one is designed to be particularly simple, lightweight and fast. The code has very few dependencies, making it less likely to break or fail to install. It loads no external sprites/textures, and it can run at up to 5800 FPS on a quad-core laptop, which means you can run your experiments faster.

Installation

Clone this repository and install the other dependencies with pip3:

git clone https://github.com/maximecb/gym-minigrid.git
cd gym-minigrid
pip3 install -e .

Optionally, if you wish use the reinforcement learning code included under /basicrl, you can install its dependencies as follows:

cd basicrl

# PyTorch
conda install pytorch torchvision -c soumith

# OpenAI baselines
git clone https://github.com/openai/baselines.git
cd baselines
pip install -e .

# Other requirements
pip install -r requirements.txt

Note: the basicrl code is a custom fork of this repository, which was modified to work with this environment.

Usage

To run the standalone UI application, which allows you to manually control the agent with the arrow keys:

./standalone.py

The environment being run can be selected with the --env-name option, eg:

./standalone.py --env-name MiniGrid-Fetch-8x8-v0

To see available environments and their implementation, look at simple_envs.py.

Basic reinforcement learning code is provided in the basicrl subdirectory. You can perform training using the ACKTR algorithm with:

python3 basicrl/main.py --env-name MiniGrid-Empty-8x8-v0 --no-vis --num-processes 32 --algo acktr

You can view the result of training using the enjoy.py script:

python3 basicrl/enjoy.py --env-name MiniGrid-Empty-8x8-v0 --load-dir ./trained_models/acktr