What is SpiderPlan?
SpiderPlan is a constraint-based planning framework that allows inclusion of many different types of knowledge into automated planning. It also features execution and comes with an interface to the Robot Operating System (ROS).
Featured Constraint Types & Solvers
- State-variable assignment attached to flexible temporal interval
- Domain constraints
- Temporal constraints
- Reusable resources
- Math constraints (simple calculations)
- Set constraints (simple)
- Interaction Constraints
- Used for social acceptability, proactivity and context-awareness in Human-aware Planning
- ROS (Robot Operating System)
- Publish variables to ROS
- Subsribe to ROS topics
- Make variables ROS goals (actionlib)
- Use ROS service calls
Dependencies & Requirements
The following libraries will be fetched from maven when running gradle:
Installation & Test
All commands assume the current folder is the SpiderPlan root folder. The run.sh script will also build the project.
Run default test case:
Running a single problem:
We need to provide a planner definition (.spider) as first argument followed by any number of domain description files (.uddl).
./run.sh ./domains/household/planner.spider ./domains/household/domain.uddl ./domains/household/test-cases/test01.uddl
Running an experiment:
Planner definition, domain description and problem folder are specidied in the experiment definition (.experiment). Running the following line will solve all problems with the specified planner and domain and store the results in a .csv file.