Minimalistic Gridworld Environment (MiniGrid)

Mark Towers 34bfa2a6b3 bump version to 2.1.1 (#314) 2 years ago
.github d189814fdc Update gh-pages.yml (#300) 2 years ago
docs 9677ebc899 Bug fix in DirectionObsWrapper, new tests, & name change (#310) 2 years ago
figures 88ebc71e9c Added Docstrings to the BabyAI envs (#302) 2 years ago
minigrid 34bfa2a6b3 bump version to 2.1.1 (#314) 2 years ago
tests 9677ebc899 Bug fix in DirectionObsWrapper, new tests, & name change (#310) 2 years ago
.gitignore b7d447b34f Add updated favicon to documentation website (#299) 2 years ago
.pre-commit-config.yaml 88ebc71e9c Added Docstrings to the BabyAI envs (#302) 2 years ago
CNAME aadf537175 CNAME and dependencies for Documentations (#245) 2 years ago
CODE_OF_CONDUCT.rst ffe57c9fbd Update setup, coc, license (#263) 2 years ago
LICENSE ffe57c9fbd Update setup, coc, license (#263) 2 years ago
README.md 268c56b691 Fixed linked, issue #281 2 years ago
minigrid-text.png f5ffddf57c Add files via upload 2 years ago
py.Dockerfile 926425fc04 Naming change: gym_minigrid->minigrid (#238) 2 years ago
pyproject.toml 52e41dfae8 setup.py to pyprpoject.toml (#295) 2 years ago
requirements.txt 4c409330df migrate to gymnasium (#239) 2 years ago
setup.py b409e23e8a add back long description (#297) 2 years ago
test_requirements.txt 8fdebee79e :hammer: Refactor manual_control (#268) 2 years ago

README.md

pre-commit

Figure Door Key Curriculum

The Minigrid library contains a collection of discrete grid-world environments to conduct research on Reinforcement Learning. The environments follow the [Gymnasium]() standard API and they are designed to be lightweight, fast, and easily customizable.

The documentation website is at minigrid.farama.org, and we have a public discord server (which we also use to coordinate development work) that you can join here: https://discord.gg/B8ZJ92hu

Note that the library was previously known as gym-minigrid and it has been referenced in several publications. If your publication uses the Minigrid library and you wish for it to be included in the list of publications, please create an issue in the GitHub repository.

Installation

To install the Minigrid library use pip install minigrid.

We support Python 3.7, 3.8, 3.9 and 3.10 on Linux and macOS. We will accept PRs related to Windows, but do not officially support it.

Environments

The included environments can be divided in two groups. The original Minigrid environments and the BabyAI environments.

Minigrid

The list of the environments that were included in the original Minigrid library can be found in the documentation. These environments have in common a triangle-like agent with a discrete action space that has to navigate a 2D map with different obstacles (Walls, Lava, Dynamic obstacles) depending on the environment. The task to be accomplished is described by a mission string returned by the observation of the agent. These mission tasks include different goal-oriented and hierarchical missions such as picking up boxes, opening doors with keys or navigating a maze to reach a goal location. Each environment provides one or more configurations registered with Gymansium. Each environment is also programmatically tunable in terms of size/complexity, which is useful for curriculum learning or to fine-tune difficulty.

BabyAI

These environments have been imported from the BabyAI project library and the list of environments can also be found in the documentation. The purpose of this collection of environments is to perform research on grounded language learning. The environments are derived from the Minigrid grid-world environments and include an additional functionality that generates synthetic natural-looking instructions (e.g. “put the red ball next to the box on your left”) that command the the agent to navigate the world (including unlocking doors) and move objects to specified locations in order to accomplish the task.

Training an Agent

The rl-starter-files is a repository with examples on how to train Minigrid environments with RL algorithms. This code has been tested and is known to work with this environment. The default hyper-parameters are also known to converge.

Citation

The original gym-minigrid environments were created as part of work done at Mila. The Dynamic obstacles environment were added as part of work done at IAS in TU Darmstadt and the University of Genoa for mobile robot navigation with dynamic obstacles.

To cite this project please use:

@software{minigrid,
  author = {Chevalier-Boisvert, Maxime and Willems, Lucas and Pal, Suman},
  title = {Minimalistic Gridworld Environment for Gymnasium},
  url = {https://github.com/Farama-Foundation/Minigrid},
  year = {2018},
}

If using the BabyAI environments please also cite the following:

@article{chevalier2018babyai,
  title={Babyai: A platform to study the sample efficiency of grounded language learning},
  author={Chevalier-Boisvert, Maxime and Bahdanau, Dzmitry and Lahlou, Salem and Willems, Lucas and Saharia, Chitwan and Nguyen, Thien Huu and Bengio, Yoshua},
  journal={arXiv preprint arXiv:1810.08272},
  year={2018}
}