ePlanSys
ePlanSys is an epistemic planning system for ROS 2. It extends PlanSys2 with planning and execution for agents that do not know everything about their environment: domains where an action’s precondition may be a statement about what an agent knows, and where what to do next depends on what a sensing action turned out to observe.
A classical PlanSys2 plan is a sequence. Every action’s preconditions are known to hold when its turn comes, so there is nothing to decide at run time. Under partial observability that no longer holds, and the solution to a planning problem is a policy: a tree whose branches are the possible observations. The packages documented here add the pieces that produce such a policy, execute it, and keep a model of what the agents know while it runs.
The classical PlanSys2 packages are included here with their upstream commit
history, and their documentation is the PlanSys2 web page. All of them have been modified: the extension
points the epistemic packages attach to were widened, compatibility shims were
added for Humble and Rolling, and defects found while running the system were
corrected. NOTICE records the package origins and the categories of
modification.
Packages
Package |
Contents |
|---|---|
|
The |
|
The EPDDL front end: it runs the |
|
The six service definitions of the epistemic state: |
|
The policy representation, its rendering as a behavior tree, the four
epistemic behavior tree nodes, and the |
|
The |
|
The |
|
An alternative plan solver plugin that runs the same planner as an external process instead of in process, for deployments where the planner binary is built and versioned separately. |
|
The command line front end: the |
|
Runnable missions. The corridor demo needs no simulator and no hardware, so a clone of this repository can execute an epistemic policy with one command. See Demos. |
|
A metapackage that installs PlanSys2 and all of the above as one unit. It builds nothing itself. |
Contents
Getting started
Concepts
- Epistemic Models
- EPDDL and Grounded Tasks
- Architecture
- Plan solver plugin
- Running the planner as a subprocess
- Policies
- Behavior tree
- Reporting an observation
- Epistemic nodes
- The domain side
- Epistemic state
- When information arrives from outside the plan
- When replanning stops getting anywhere
- When the world contradicts the model
- Replanning from the current belief
- One agent’s point of view
- Perception
- Executor configuration
- Package boundaries
Tutorials
Open-RMF execution
Reports