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
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 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.
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
Video tutorials
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
ICAPS 2017 Tutorial on AI Planning for Robotics and Human-Robot Interaction (ROSPlan-PNP integration)
A VirtualBox virtual machine with ROSPlan and PNP installed and the demo shown during the ICAPS2017 tutorial is available. Follow instructions in the README files on the desktop of the machine.
Robot Programming lecture "Actions and Plans: PNP and ROS", 11/11/2014
LearnPNP (learning in plan space through PNP)
People
Vittorio Amos Ziparo
Daniele Calisi
Francesca Giannone
Guglielmo Gemignani
Eugenio Sebastiani
Valerio Sanelli
... and others ...
Publications
Papers and Theses related to PNP are summarized in the publications page.
Applications
Human-Robot Interaction
SPQReL RoboCup@Home team (2017)
COACHES (2014-2017)
Robot Soccer
S.P.Q.R. RoboCup team videos: Goalie Stricker
Multi-Robot Cooperation
Search and Rescue (S.P.Q.R. Rescue)
Projects using PNPs
Developed at Ro.Co.Co. Lab, Sapienza University of Rome, Italy