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

[doc] updating readme

parent 8108dacd
Branches
No related tags found
No related merge requests found
Showing
with 11191 additions and 0 deletions
----------------------Tasks-----------------------
0: gatheranddeliver(a1)
---------------------Planning---------------------
gatheranddeliver_m_readytoserve(a1)
deliver_food_m_deliver_food_ready(a1 souplite)
goto_m_goto_already_there(a1 deliveryloc)
pickup(a1 souplite deliveryloc)
goto_m_goto_already_there(a1 deliveryloc)
serve(a1 souplite deliveryloc)
Time: 7.963180541992188e-05s
-----------------------Plan-----------------------
0: pickup(a1 souplite deliveryloc)
1: serve(a1 souplite deliveryloc)
Total time: 0.0027313232421875s
<!DOCTYPE html>
<html data-lt-installed="true" lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<title>readme.md - Grip</title>
<link rel="icon" href="http://localhost:6419/__/grip/static/favicon.ico">
<link rel="stylesheet" href="readme_fichiers/dark_colorblind-56fff47acadc.css">
<link rel="stylesheet" href="readme_fichiers/primer-primitives-4cf0d59ab51a.css">
<link rel="stylesheet" href="readme_fichiers/primer-react.7558f0254d56b9bec77f.module.css">
<link rel="stylesheet" href="readme_fichiers/code-2cae59811c3d.css">
<link rel="stylesheet" href="readme_fichiers/light_high_contrast-fd5499848985.css">
<link rel="stylesheet" href="readme_fichiers/repos-overview.9cc263aa0716ce801059.module.css">
<link rel="stylesheet" href="readme_fichiers/global-521d889e2b6c.css">
<link rel="stylesheet" href="readme_fichiers/github-33c8af45ae17.css">
<link rel="stylesheet" href="readme_fichiers/notifications-subscriptions-menu.1bcff9205c241e99cff2.module.css">
<link rel="stylesheet" href="readme_fichiers/dark-9c5b7a476542.css">
<link rel="stylesheet" href="readme_fichiers/repository-0f7cf89e325a.css">
<link rel="stylesheet" href="readme_fichiers/light_tritanopia-31d17ba3e139.css">
<link rel="stylesheet" href="readme_fichiers/light_colorblind-71cd4cc132ec.css">
<link rel="stylesheet" href="readme_fichiers/dark_dimmed-afda8eb0fb33.css">
<link rel="stylesheet" href="readme_fichiers/dark_tritanopia-68d6b2c79663.css">
<link rel="stylesheet" href="readme_fichiers/light-3e154969b9f9.css">
<link rel="stylesheet" href="readme_fichiers/dark_high_contrast-2494e44ccdc5.css">
<link rel="stylesheet" href="readme_fichiers/primer-03722e173ec3.css">
<link rel="stylesheet" href="readme_fichiers/octicons.css">
<style>
/* Page tweaks */
.preview-page {
margin-top: 64px;
margin-bottom: 21px;
}
/* User-content tweaks */
.timeline-comment-wrapper > .timeline-comment:after,
.timeline-comment-wrapper > .timeline-comment:before {
content: none;
}
/* User-content overrides */
.discussion-timeline.wide {
width: 920px;
}
</style>
</head>
<body>
<div class="page">
<div id="preview-page" class="preview-page" data-autorefresh-url="/__/grip/refresh/">
<main id="js-repo-pjax-container">
<div class="clearfix new-discussion-timeline container-xl px-3 px-md-4 px-lg-5">
<div class="repository-content">
<div class="clearfix">
<div class="Layout Layout--flowRow-until-md Layout--sidebarPosition-end Layout--sidebarPosition-flowRow-end">
<div class="Layout-main">
<div id="readme" class="Box md Box--responsive">
<div class="Box-header d-flex border-bottom-0 flex-items-center flex-justify-between color-bg-default rounded-top-2">
<div class="d-flex flex-items-center">
<h2 class="Box-title">
readme.md
</h2>
</div>
</div>
<div class="Box-body px-5 pb-5">
<article id="grip-content" class="markdown-body entry-content container-lg">
<div class="markdown-heading"><h1 class="heading-element">TP02 - Cooking simulation</h1><a id="user-content-tp02---cooking-simulation" class="anchor" aria-label="Permalink: TP02 - Cooking simulation" href="#tp02---cooking-simulation"><span aria-hidden="true" class="octicon octicon-link"></span></a></div>
<div class="markdown-heading"><h1 class="heading-element">Classical planning application in an "Overcook" style game.</h1><a id="user-content-classical-planning-application-in-an-overcook-style-game" class="anchor" aria-label="Permalink: Classical planning application in an &quot;Overcook&quot; style game." href="#classical-planning-application-in-an-overcook-style-game"><span aria-hidden="true" class="octicon octicon-link"></span></a></div>
<p><a target="_blank" rel="noopener noreferrer" href="http://localhost:6419/cookingSim.png"><img src="readme_fichiers/cookingSim.png" alt="cookingSim.png" title="PDDL" style="max-width: 100%;"></a></p>
<div class="markdown-heading"><h2 class="heading-element">Domain</h2><a id="user-content-domain" class="anchor" aria-label="Permalink: Domain" href="#domain"><span aria-hidden="true" class="octicon octicon-link"></span></a></div>
<p>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.</p>
<p>Actions are already defined for the agent:</p>
<ul>
<li>move (from one location to another one)</li>
<li>pickup (an ingredient)</li>
<li>drop (an ingredient)</li>
<li>pickup-stack (an ingredient from a stack of ingredients)</li>
<li>drop-stack (an ingredient on a stack)</li>
<li>chop (a specific ingredient: onions)</li>
<li>cook (a specific recipie: onion soup)</li>
<li>serve (an ingredient that is ready to be served)</li>
</ul>
<p>Additional actions are provided, mainly for debug purpose:</p>
<ul>
<li>get_position (of an agent)</li>
<li>checkLoc (of an ingredient)</li>
<li>stop</li>
<li>idle</li>
<li>checkCarry (what ingredient my agent is carrying?)</li>
</ul>
<p>Partially filled file is provided (file: cooking_domain.hddl).</p>
<div class="markdown-heading"><h2 class="heading-element">Problem</h2><a id="user-content-problem" class="anchor" aria-label="Permalink: Problem" href="#problem"><span aria-hidden="true" class="octicon octicon-link"></span></a></div>
<p>To begin with, we will consider only one agent a1.</p>
<p>A world is already set (file: cooking_problem.hddl). Predicates are specifying objects caracteristics.</p>
<p>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").</p>
<p>Eventually, some soup recipies are provided: a lite (with only 1
chopped onion), esay one, and a standard one (with 3 chopped onions).</p>
<div class="markdown-heading"><h2 class="heading-element">Set-up project environment</h2><a id="user-content-set-up-project-environment" class="anchor" aria-label="Permalink: Set-up project environment" href="#set-up-project-environment"><span aria-hidden="true" class="octicon octicon-link"></span></a></div>
<ul>
<li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" checked="checked" disabled="disabled"> if you ahve completed TP01, repository should be up to date, else</li>
</ul>
<pre><code>mkdir -p git &amp;&amp; cd git
git clone https://gitlab.isae-supaero.fr/saclab/ssa/intro-htn.git
cd intro-htn
HTN_PATH=$(pwd)
</code></pre>
<div class="markdown-heading"><h3 class="heading-element">On SI computers</h3><a id="user-content-on-si-computers" class="anchor" aria-label="Permalink: On SI computers" href="#on-si-computers"><span aria-hidden="true" class="octicon octicon-link"></span></a></div>
<ul>
<li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled"> if needed re-load SI environment</li>
<li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled"> check that the planner is working</li>
</ul>
<pre><code>cd $HTN_PATH
module load julia/1.9.3
module load anaconda3/2024
source loadEnv.bash
cd TP02/
plan cooking_domain.hddl cooking_problem.hddl debug &gt; plan.txt
</code></pre>
<div class="markdown-heading"><h2 class="heading-element">check the simulator</h2><a id="user-content-check-the-simulator" class="anchor" aria-label="Permalink: check the simulator" href="#check-the-simulator"><span aria-hidden="true" class="octicon octicon-link"></span></a></div>
<ul>
<li class="task-list-item"><input type="checkbox" class="task-list-item-checkbox" disabled="disabled"> check that the simulator is working</li>
</ul>
<pre><code>cd OvercookedVisu
make
cd ..
./OvercookedVisu/overcooked ../plan.txt
</code></pre>
<div class="markdown-heading"><h2 class="heading-element">Repository Overview</h2><a id="user-content-repository-overview" class="anchor" aria-label="Permalink: Repository Overview" href="#repository-overview"><span aria-hidden="true" class="octicon octicon-link"></span></a></div>
<pre><code>plan cooking_domain.hddl cooking_problem.hddl
</code></pre>
<p>open 2 files:</p>
<ul>
<li>
<p>cooking_domain.hddl (the panning domain)</p>
</li>
<li>
<p>cooking_problem.hddl (the planning problem)</p>
</li>
<li>
<p>[x] an example of problem is provided - serving one soup to your customers</p>
</li>
<li>
<p>[ ] check that you can generate the plan and load it into the simulator</p>
</li>
</ul>
<pre><code>plan cooking_domain.hddl cooking_problem.hddl debug &gt; plan.txt
./OvercookedVisu/overcooked plan.txt
</code></pre>
<ul>
<li>
<p>[ ] 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.</p>
</li>
<li>
<p>[ ] an example of domain is provided - your goal is to complete abstract tasks :</p>
<ul>
<li>DO NOT change elementary actions</li>
<li>DO NOT change predicates or types</li>
<li>you can create as many tasks (and associated methods) as you wish to provide 3 onion soups to you customers.</li>
<li>check execution line per line... HDDL is not the more ergonomic way to debug... use recursivity with care.</li>
</ul>
</li>
</ul>
<div class="markdown-heading"><h2 class="heading-element">recommendations</h2><a id="user-content-recommendations" class="anchor" aria-label="Permalink: recommendations" href="#recommendations"><span aria-hidden="true" class="octicon octicon-link"></span></a></div>
<ul>
<li>Start to implement move_to / goto tasks</li>
<li>use (yes) method to validate your current behavior</li>
<li>(if necessary, remove tasks and preconditions for testing purposes...)</li>
<li>proceed step by step, line per line, varaible per variable...</li>
</ul>
<div class="markdown-heading"><h2 class="heading-element">problem resolution suggestion</h2><a id="user-content-problem-resolution-suggestion" class="anchor" aria-label="Permalink: problem resolution suggestion" href="#problem-resolution-suggestion"><span aria-hidden="true" class="octicon octicon-link"></span></a></div>
<ul>
<li>when movement it's ok, test if you are able to deliver a "soupLite"
located at the "cookLoc" location (comment / uncomment problem file)</li>
<li>try to cook a "soupLite" recipie and deliver it (comment / uncomment problem file)</li>
<li>try to chop 1 onion, cook the chopped onion into a soupLite and deliver it</li>
<li>eventually, cook a 3 onion soup and serve it.</li>
</ul>
<div class="markdown-heading"><h2 class="heading-element">Open question:</h2><a id="user-content-open-question" class="anchor" aria-label="Permalink: Open question:" href="#open-question"><span aria-hidden="true" class="octicon octicon-link"></span></a></div>
<p>Find a way to provide as many onion as possible in the "stockloc" to do an infinite number of soups.</p>
</article>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
</div>
</div><script>
function showCanonicalImages() {
var images = document.getElementsByTagName('img');
if (!images) {
return;
}
for (var index = 0; index < images.length; index++) {
var image = images[index];
if (image.getAttribute('data-canonical-src') && image.src !== image.getAttribute('data-canonical-src')) {
image.src = image.getAttribute('data-canonical-src');
}
}
}
function scrollToHash() {
if (location.hash && !document.querySelector(':target')) {
var element = document.getElementById('user-content-' + location.hash.slice(1));
if (element) {
element.scrollIntoView();
}
}
}
function autorefreshContent(eventSourceUrl) {
var initialTitle = document.title;
var contentElement = document.getElementById('grip-content');
var source = new EventSource(eventSourceUrl);
var isRendering = false;
source.onmessage = function(ev) {
var msg = JSON.parse(ev.data);
if (msg.updating) {
isRendering = true;
document.title = '(Rendering) ' + document.title;
} else {
isRendering = false;
document.title = initialTitle;
contentElement.innerHTML = msg.content;
showCanonicalImages();
}
}
source.onerror = function(e) {
if (e.readyState === EventSource.CLOSED && isRendering) {
isRendering = false;
document.title = initialTitle;
}
}
}
window.onhashchange = function() {
scrollToHash();
}
window.onload = function() {
scrollToHash();
}
showCanonicalImages();
var autorefreshUrl = document.getElementById('preview-page').getAttribute('data-autorefresh-url');
if (autorefreshUrl) {
autorefreshContent(autorefreshUrl);
}
</script>
</body></html>
\ No newline at end of file
File added
This diff is collapsed.
TP02/readme_fichiers/cookingSim.png

774 KiB

This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
.FooterActions-module__buttonsContainer--lkkwg,.FooterActions-module__footerContainer--Z9ixI{align-items:center;display:flex;justify-content:flex-end}.FooterActions-module__buttonsContainer--lkkwg{padding-left:0;text-align:left}.ThreadList-module__filterContainer--eNebD{margin-left:var(--base-size-24);padding-top:var(--base-size-8)}.ThreadList-module__threadContent--Ry8II{border-color:var(--borderColor-default,var(--color-border-default));border-radius:var(--borderRadius-medium);border-style:solid;border-width:thin;margin:var(--base-size-16);margin-bottom:0}.ThreadList-module__threadRow--lx6FW{padding:var(--base-size-8) var(--base-size-12)}.NotificationsSubscriptionsMenu-module__watchCounter--nAbhU{background-color:var(--buttonCounter-default-bgColor-rest,var(--color-btn-counter-bg));display:inline-block;padding:0 6px}.NotificationsSubscriptionsMenu-module__watchButton--ifxlS{height:var(--base-size-32);padding:0;width:var(--base-size-32)}.NotificationsSubscriptionsMenu-module__watchButton--ifxlS [data-component=leadingVisual]{color:var(--fgColor-muted,var(--color-fg-muted));margin-right:0!important}
/*# sourceMappingURL=notifications-subscriptions-menu-f5c02f30fc56.js.map*/
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment