Farama-Foundation / Minigrid

Simple and easily configurable grid world environments for reinforcement learning
https://minigrid.farama.org/
Other
2.09k stars 604 forks source link

Add BabyAI levels #253

Closed saleml closed 1 year ago

saleml commented 2 years ago

Description

Add levels from babyai to envs.babyai.

Type of change

Checklist:

saleml commented 2 years ago

What does the verifier do?

verifier.py defines Instructions classes, that inherit from the abstract Instr class. A simple instruction (object of type ActionInstr) contains an environment (object of type MiniGridEnv), and the description of an object (object of type ObjDesc). A sequential instruction (object of type SeqInstr) chains multiple simple instructions. These instruction objects are created automatically by LevelGen or RoomGridLevel objects, that generate the levels / environments.

Each instruction has a natural language representation, obtained via the surface method. The verifier endows each Instruction class with a verify method, that is called after every step, that checks whether the instruction has been completed or not.

Do we want tests to check it?

That doesn't seem like a straightforward task, unless we bring in the bot from babyai, which solves BabyAI levels using only information available to any learning agent (including partial observability).