Skip to content
Snippets Groups Projects
user avatar
Christoph Kowalski authored
Transferring the layouts and creating the configs. Additionally, enabling the choice of random or determinstic order generation in the configs.
dd81ab00
History
Main Pipeline Report Main Coverage Report Dev Pipeline Report Dev Coverage Report

Cooperative Cuisine Environment

The overcooked-like cooperative cuisine environment for real-time human cooperative interactions and artificial agents.

For an extensive introduction, have a look at the Documentation.

Installation

You have two options to install the environment. Either clone it and install it locally or install it in your site-packages. You need a Python 3.10 or newer environment conda environment.

Local Editable Installation

In your repo, PyCharmProjects or similar directory with the correct environment active:

conda install -c conda-forge pygraphviz
git clone https://gitlab.ub.uni-bielefeld.de/scs/cocosy/cooperative-cuisine.git
cd cooperative-cuisine
pip install -e .

Run

Run it via the command line (in your pyenv/conda environment):

cooperative-cuisine start -s localhost -sp 8080 -g localhost -gp 8000

The arguments shown are the defaults.

You can also start the Game Serverm Study Server (Matchmaking),and the PyGame GUI individually in different terminals.

cooperative-cuisine game-server -g localhost -gp 8000 --manager-ids SECRETKEY1 SECRETKEY2

cooperative-cuisine study-server -s localhost -sp 8080 -g localhost -gp 8000 --manager-ids SECRETKEY1

cooperative-cuisine gui -s localhost -sp 8080 -g localhost -gp 8000

You can start also several GUIs. The study server does the matchmaking.

Library Installation

The correct environment needs to be active:

pip install cooperative_cuisine@git+https://gitlab.ub.uni-bielefeld.de/scs/cocosy/cooperative-cuisine@main

Run

You can now use the environment and/or simulator in your python code. Just by importing it import cooperative_cuisine

Configuration

The environment configuration is currently done with 3 config files + GUI configuration.

Item Config

The item config defines which ingredients, cooking equipment and meals can exist and how meals and processed ingredients can be cooked/created.

Layout Config

You can define the layout of the kitchen via a layout file. The position of counters are based on a grid system, even when the players do not move grid steps but continuous steps. Each character defines a different type of counter. Which character is mapped to which counter is defined in the Environment config.

Environment Config

The environment config defines how a level/environment is defined. Here, the available plates, meals, order and player configuration is done.

Study Config

When starting a study, the study config holds all the information about the levels (layouts, dishes, orders). In the argument_parser.py it can be chosen whether the orders should in appear in a random ordering or whether their schedule should be pre-defined.

PyGame Visualization Config

Here the visualisation for all objects is defined. Reference the images or define a list of base shapes that represent the counters, ingredients, meals and players.

Troubleshooting

cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri) if you have a conda environment:

conda install -c conda-forge libstdcxx-ng

License

Cooperative Cuisine © 2024 by Social Cognitive Systems Group is licensed under CC BY-NC-SA 4.0 License: CC BY-NC-SA 4.0