Petri Net Plans

PNPs are more expressive than Finite State Machines (FSM) and allow for automatic plan analysis, which can provide formal guarantees on the performance of the plans. Execution of PNPs is extremely efficient and allows the design of real-time pro-active and reactive behaviors. PNPs have been used in several robotic applications, including soccer (Best Demo Award at AAMAS 2008), search and rescue, surveillance, multi-robot cooperation, social robots, etc.



Introduction

Petri Net Plans (PNP) is a formalism for high level description of complex plans (i.e., set of actions interacting in a complex way). PNP is useful to program cognitive agents (such as robots, videogame agents, multi-robot/multi-agent systems, etc.).

PNPs are inspired to languages for reasoning about actions, yet they are more expressive than most of them, offering a full fledged set of operators for dealing with non-instantaneous actions, sensing actions, action failures, concurrent actions and cooperation in a multi agent context. PNPs include also choice operators used for non-deterministic execution and for learning in the plan space through a Reinforcement Learning algorithm.

Components

PNP GENERATION

A new development in Petri Net Plans is the implementation of algorithms for the generation of PNPs,

More details are illustrated in the web page PNP Generation.

ROSPLAN INTEGRATION

ROSPlan is a ROS interface for some standard planners using PDDL model language.

PNP_ROSPlan is a component for receiving plans from ROSPlan, transforming them into PNP, adding Execution Rules and executing them according to the PNP semantics.

More details are given in the web page ROSPlan_to_PNP.

HATP CONDITIONAL PLANNING

PNP has been used as a formalism to generate and execute conditional plans based on HATP formalism.

More details are given in these web pages.

Download

github https://github.com/iocchi/PetriNetPlans

AI4EU https://www.ai4europe.eu/research/ai-catalog/petri-net-plans

dockerhub https://hub.docker.com/r/iocchi/pnp

Main tutorial

Tutorial document

Video tutorials

YouTube Playlist

1. Installation and running examples
2. Create a new PNP application
3. Create a plan with a PDDL solver
4. Generate PNP with Execution Rules
5. PNP action/condition implementation
6. PNP Emergency Room demo

Other tutorials

People



Publications

Papers and Theses related to PNP are summarized in the publications page.

Applications

  • Human-Robot Interaction

    • SPQReL RoboCup@Home team (2017)

Projects using PNPs

    • AI4EU (2019-2021)

    • COACHES (2014-2017)

    • Cooperative Autonomous Robots in Complex and Humans Environments

    • SAMAN (2014-2015)

    • Multi-Robot adaptive system in unknown environments

    • Bee-SAFE (2011-2013)

    • Multi-Robot system for demining operations

Developed at Ro.Co.Co. Lab, Sapienza University of Rome, Italy