Giter VIP home page Giter VIP logo

pyplanning's Introduction

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

pyplanning's People

Contributors

eletoo avatar tetofonta avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

luigigargioni

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.