Petri Net Plans
Petri Net Plans is a set of libraries and tools to define and execute high-level multi-agent plans

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 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.
Execution environment: linux
Version of the environment: Ubuntu 16.04, 18.04 + Docker image
Additional information: This resource contains Executable, Libraries and Dockerfile to build and run docker images.
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.
The PNP asset includes:
- C++ library that can be linked to C++ applications
- Tools for plan generation, editing and monitoring
- ROS bridge to use PNP in ROS-based applications
- NAOQi bridge for NAOQi SDK (Aldebaran/SoftBank NAO and Pepper robots)
- Python interface for high-level programming
External links:
- PNP web page: http://pnp.diag.uniroma1.it/
- GitHub repository: https://github.com/iocchi/PetriNetPlans