Skip to content
Snippets Groups Projects
Commit b96b6826 authored by GATEAU Thibault's avatar GATEAU Thibault
Browse files

[TP2] first draft consigne

parent 468c8553
No related branches found
No related tags found
No related merge requests found
TP02/cookingSim.png

741 KiB

# TP02 - Cooking simulation
# Classical planning application in an "Overcook" style game.
![cookingSim.png](cookingSim.png "PDDL")
## Domain
Planner will decide which actions the agent will achieve to cook onion soups. Goal is to deliver as much as onion soups to the customers waiting.
Actions are already defined for the agent:
- move (from one location to another one)
- pickup (an ingredient)
- drop (an ingredient)
- chop (a specific ingredient: onions)
- cook (a sepcific recipie: onion soup)
- serve (an ingredient that is ready to be served)
Additional actions are provided, mainly for debug purpose:
- get_position
- stop
- idle
Partially filled file is provided (file: cooking_domain.hddl).
## Problem
To begin with, we will consider only one agent a1.
A world is already set (file: cooking_problem.hddl). Predicates are specifying objects caracteristics.
Locations are connected between them to simplify agent movement in the world (e.g. the center of the map is connected to the cooking place: "connected centerloc cookLoc").
Eventually, some soup recipies are provided.
## Set-up project environment
- [x] if you ahve completed TP01, repository should be up to fate, else
```
mkdir -p git && cd git
git clone https://gitlab.isae-supaero.fr/saclab/ssa/intro-htn.git
cd intro-htn
HTN_PATH=$(pwd)
```
### On SI computers
- [ ] if needed re-load SI environment
- [ ] check that the planner is working
```
cd $HTN_PATH
source loadEnv.bash
cd TP02/
plan cooking_domain.hddl cooking_problem.hddl debug
```
## check the simulator
- [ ] check that the simulator is working
```
TODO - PB
```
## Repository Overview
```
plan cooking_domain.hddl cooking_problem.hddl
```
open 2 files:
- cooking_domain.hddl (the panning domain)
- cooking_problem.hddl (the planning problem)
- [x] an example of problem is provided - serving one soup to your customers
- [ ] check that you can generate the plan and load it into the simulator
```
plan cooking_domain.hddl cooking_problem.hddl debug > plan.txt
./PascalCookingSimulator plan.txt
```
- [ ] now, comment 1 line and uncomment 1 line to make the agent start "far away" from the delivery location and check that planning process will fail.
- [ ] an example of domain is provided - your goal is to complete abstract tasks :
- DO NOT change elementary actions
- DO NOT change predicates or types
- you can create as many tasks (and associated methods) as you wish to provide 3 onion soups to you customers.
- check execution line per line... HDDL is not the more ergonomic way to debug... use recursivity with care.
## Open question:
Find a way to provide as many onion as possible in the "stockloc" to do an infinite number of soups.
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment