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.
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)
PNP software library allows to specify and execute agent's behaviors designed by the user. PNP library does not collect, manipulate or use user dara, does not take autonomous decisions and does not introduce any kind of bias. Trustworthy AI should be guaranteed by users writing the specification of the AI agents through PNP formalism.
PNP software library does not collect or use any data from users.