Skip to content

Latest commit

 

History

History
37 lines (32 loc) · 1.99 KB

README.md

File metadata and controls

37 lines (32 loc) · 1.99 KB

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