This is a PDDL+ Task Planning domain and problem set developed for a "Robot-enabled" cafe environment, as part of the course "Artificial Intelligence for Robotics II" at the University of Genoa, Italy. For more details, please refer to the attached report. This is a joint effort by:
The design of the domain is best represented by the below image:
The domain is PDDL+ domain and requires a planning engine to be installed. To download the ENHSP Planning Engine, please follow the instructions given on the ENHSP webpage: https://sites.google.com/view/enhsp/
After installing the planning engine:
Clone the repository:
git clone https://github.com/amanarora9848/robocafe_AI_task_planning.git
The script generate_plan.sh
can be used to generate plans for the given base pddl+ domain and problems with or without using an optimizer, and can also calculate metrics like mean and standard deviation for given data points specific to an optimizer, if used.
For help regarding running the generate_plan.sh script, run the following command:
$ ./generate_plan.sh -h
A typical output after running the script, for, say 30 repititions with planner configuration of opt-hrmax is as follows:
$ ./generate_plan.sh -p ../enhsp-20.jar -f test.pddl -m 12000 -z -c opt-hrmax -r 30
planner: ../enhsp-20.jar
planner configuration: opt-hrmax
problem: test.pddl
Number of repititions requested: 30
Progress : [########################################] 100.00%
DONE
Metrics written to file: generated_metrics/metrics_test_opt-hrmax.txt
The generated plans are stored in the folder generated_plans
and the metrics are stored in the folder generated_metrics
.
The repository has six branches, each implementing a specific part of the assignment:
- main: Contains the base PDDL+ domain and problems.
- extension1: Contains the PDDL+ domain and problems for extension 1.
- extension2: Contains the PDDL+ domain and problems for extension 2.
- extension3: Contains the PDDL+ domain and problems for extension 3.
- extension4_enhanced: Contains the PDDL+ domain and problems for extension 4.
- complete: Contains the 'complete' PDDL+ domain integrated with all the extensions and the problems.
To run the script for any of the branches, please checkout to the branch and run the script as mentioned above.