Skip to content

luigigargioni/PyPlanning

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyPlanning


A wrapper for Unified-Planning to create problem definition from domain code.

Structure

The repository is divided into two directories:

  • AIROB: contains the PDDL problem and domain files relative to a dummy problem Cubeotta. The problem requires the Cobotta robot to cooperate with the human operator to paint some specified sides of a cube that is located within the workspace. The robot can handle multiple tools, specifically a brush and a dryer. Both tools can be picked up and put down by the robot; the brush can be used to pick up colour, while the dryer can be turned on and off by the robot using it to dry a cube side after painting it. The AIROB directory contains folders where the domain is defined, while the problem is automatically generated by the code implemented in the domain files using decorators that convert it into PDDL actions, preconditions, effects, and predicates.
  • frontend: contains the code that handles the GUI. It is structured as a standard React Web App, with minimal style to make its usage more straightforward.

Multiple domains can be defined using the wrapper provided in the AIROB folder. The AIROB/domain directory needs to be left unaltered when switching from one domain to another as it contains the wrapper classes, while the AIROB/cubeotta directory is the one that is referenced to upon application launch and can therefore be exchanged with any other domain definition.

Installation

Clone the repository

git clone https://github.com/tetofonta/PyPlanning.git 

Create and activate a virtual env

python -m venv .venv
source .venv/bin/activate

Install the required packages

pip install -r requirements.txt

Start the backend (we will use the domain Cubeotta as an example)

python AIROB --domain cubeotta --num-cubes {num_cubes}

Use the following instructions to start the frontend (you will need to have installed Node)

cd frontend
npm install
npm run dev

About

AI-ROB A.A.2024 course project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 49.5%
  • TypeScript 49.0%
  • Other 1.5%