This project implements a multi-agent reinforcement learning environment inspired by Overcooked AI.
Two agents must cooperate implicitly (without pre-defined roles, they will chose their role by their own decesion based on environment feedback) to complete cooking tasks such as:
- Picking up 3 onions and one dish
- Cooking onions as a soup in a pot
- Delivering finished soup with dish to a counter
This project uses Unity ML-Agents package with conda envionment package management tool.
1. Create and activate a conda environment (About the python version, you can take reference from Unity Ml-Agents guideline. It's better to set up the environment step by step followed by Unity Ml-Agnets guide)
import ContinousOVercookedSimulator.unitypackage to your unity 3D project.
And then create you own environment by conda.
conda create -n overcooked
conda activate overcookedRun training with your configuration file (run.yaml):
mlagents-learn run.yaml --run-id=<your_run_id> --forcerun.yamlβ defines PPO/MAPOCA training parameters--run-idβ unique identifier for each experiment--forceβ overwrite previous runs with the same ID
Start TensorBoard to visualize training curves:
tensorboard --logdir results/<your_run_id>You can monitor:
- Cumulative Reward β overall performance of agents
- Completion Time β efficiency of task completion
- Two agents interact in the same environment
- Role allocation is implicit, not pre-defined
- Agents must coordinate to achieve maximum reward by finishing and delivering cooked food
conda activate overcooked
mlagents-learn run.yaml --run-id=test_run --force
tensorboard --logdir results/test_run