From b0fe99a8b5fe257d3b0310dccdbbbad62fa0943b Mon Sep 17 00:00:00 2001 From: root Date: Sat, 18 Aug 2018 15:12:43 +0000 Subject: [PATCH] towards https://github.com/TeamSPoon/planner_api/issues/1 --- docs/images/arm-cupcake.png | Bin 0 -> 36222 bytes test/driverlog/domain.pddl | 81 ++++++++++++++++++++++++++++++++++++ test/driverlog/pfile01 | 48 +++++++++++++++++++++ test/driverlog/pfile02 | 59 ++++++++++++++++++++++++++ test/driverlog/pfile03 | 59 ++++++++++++++++++++++++++ test/letseat/domain.pddl | 72 ++++++++++++++++++++++++++++++++ test/letseat/pfile.pddl | 19 +++++++++ 7 files changed, 338 insertions(+) create mode 100644 docs/images/arm-cupcake.png create mode 100644 test/driverlog/domain.pddl create mode 100644 test/driverlog/pfile01 create mode 100644 test/driverlog/pfile02 create mode 100644 test/driverlog/pfile03 create mode 100644 test/letseat/domain.pddl create mode 100644 test/letseat/pfile.pddl diff --git a/docs/images/arm-cupcake.png b/docs/images/arm-cupcake.png new file mode 100644 index 0000000000000000000000000000000000000000..a8e52f49d81168da532d86597f7f9680c1966b00 GIT binary patch literal 36222 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 WCUY`shI=XavA1!wK58{P;C}%T2E8i) literal 0 HcmV?d00001 diff --git a/test/driverlog/domain.pddl b/test/driverlog/domain.pddl new file mode 100644 index 0000000..4af62c0 --- /dev/null +++ b/test/driverlog/domain.pddl @@ -0,0 +1,81 @@ +; Taken from http://picat-lang.org/aips02/driverlog.pddl + +(define (domain driverlog) + (:requirements :typing) + (:types location locatable - object + driver truck obj - locatable + + ) + (:predicates + (at ?obj - locatable ?loc - location) + (in ?obj1 - obj ?obj - truck) + (driving ?d - driver ?v - truck) + (link ?x ?y - location) (path ?x ?y - location) + (empty ?v - truck) +) + + +(:action LOAD-TRUCK + :parameters + (?obj - obj + ?truck - truck + ?loc - location) + :precondition + (and (at ?truck ?loc) (at ?obj ?loc)) + :effect + (and (not (at ?obj ?loc)) (in ?obj ?truck))) + +(:action UNLOAD-TRUCK + :parameters + (?obj - obj + ?truck - truck + ?loc - location) + :precondition + (and (at ?truck ?loc) (in ?obj ?truck)) + :effect + (and (not (in ?obj ?truck)) (at ?obj ?loc))) + +(:action BOARD-TRUCK + :parameters + (?driver - driver + ?truck - truck + ?loc - location) + :precondition + (and (at ?truck ?loc) (at ?driver ?loc) (empty ?truck)) + :effect + (and (not (at ?driver ?loc)) (driving ?driver ?truck) (not (empty ?truck)))) + +(:action DISEMBARK-TRUCK + :parameters + (?driver - driver + ?truck - truck + ?loc - location) + :precondition + (and (at ?truck ?loc) (driving ?driver ?truck)) + :effect + (and (not (driving ?driver ?truck)) (at ?driver ?loc) (empty ?truck))) + +(:action DRIVE-TRUCK + :parameters + (?truck - truck + ?loc-from - location + ?loc-to - location + ?driver - driver) + :precondition + (and (at ?truck ?loc-from) + (driving ?driver ?truck) (link ?loc-from ?loc-to)) + :effect + (and (not (at ?truck ?loc-from)) (at ?truck ?loc-to))) + +(:action WALK + :parameters + (?driver - driver + ?loc-from - location + ?loc-to - location) + :precondition + (and (at ?driver ?loc-from) (path ?loc-from ?loc-to)) + :effect + (and (not (at ?driver ?loc-from)) (at ?driver ?loc-to))) + + +) diff --git a/test/driverlog/pfile01 b/test/driverlog/pfile01 new file mode 100644 index 0000000..d4de756 --- /dev/null +++ b/test/driverlog/pfile01 @@ -0,0 +1,48 @@ +(define (problem DLOG-2-2-2) + (:domain driverlog) + (:objects + driver1 - driver + driver2 - driver + truck1 - truck + truck2 - truck + package1 - obj + package2 - obj + s0 - location + s1 - location + s2 - location + p1-0 - location + p1-2 - location + ) + (:init + (at driver1 s2) + (at driver2 s2) + (at truck1 s0) + (empty truck1) + (at truck2 s0) + (empty truck2) + (at package1 s0) + (at package2 s0) + (path s1 p1-0) + (path p1-0 s1) + (path s0 p1-0) + (path p1-0 s0) + (path s1 p1-2) + (path p1-2 s1) + (path s2 p1-2) + (path p1-2 s2) + (link s0 s1) + (link s1 s0) + (link s0 s2) + (link s2 s0) + (link s2 s1) + (link s1 s2) +) + (:goal (and + (at driver1 s1) + (at truck1 s1) + (at package1 s0) + (at package2 s0) + )) + + +) diff --git a/test/driverlog/pfile02 b/test/driverlog/pfile02 new file mode 100644 index 0000000..0d4b07a --- /dev/null +++ b/test/driverlog/pfile02 @@ -0,0 +1,59 @@ +(define (problem DLOG-2-2-3) + (:domain driverlog) + (:objects + driver1 - driver + driver2 - driver + truck1 - truck + truck2 - truck + package1 - obj + package2 - obj + package3 - obj + s0 - location + s1 - location + s2 - location + p0-1 - location + p0-2 - location + p1-0 - location + p2-1 - location + ) + (:init + (at driver1 s0) + (at driver2 s0) + (at truck1 s0) + (empty truck1) + (at truck2 s1) + (empty truck2) + (at package1 s2) + (at package2 s1) + (at package3 s1) + (path s0 p0-1) + (path p0-1 s0) + (path s1 p0-1) + (path p0-1 s1) + (path s0 p0-2) + (path p0-2 s0) + (path s2 p0-2) + (path p0-2 s2) + (path s2 p2-1) + (path p2-1 s2) + (path s1 p2-1) + (path p2-1 s1) + (link s0 s2) + (link s2 s0) + (link s1 s0) + (link s0 s1) + (link s1 s2) + (link s2 s1) +) + (:goal (and + (at driver1 s1) + (at driver2 s1) + (at truck1 s2) + (at truck2 s0) + (at package1 s0) + (at package2 s2) + (at package3 s0) + )) + + +) diff --git a/test/driverlog/pfile03 b/test/driverlog/pfile03 new file mode 100644 index 0000000..8ad17ff --- /dev/null +++ b/test/driverlog/pfile03 @@ -0,0 +1,59 @@ +(define (problem DLOG-2-2-4) + (:domain driverlog) + (:objects + driver1 - driver + driver2 - driver + truck1 - truck + truck2 - truck + package1 - obj + package2 - obj + package3 - obj + package4 - obj + s0 - location + s1 - location + s2 - location + p0-1 - location + p2-0 - location + p2-1 - location + ) + (:init + (at driver1 s1) + (at driver2 s0) + (at truck1 s1) + (empty truck1) + (at truck2 s2) + (empty truck2) + (at package1 s0) + (at package2 s0) + (at package3 s1) + (at package4 s1) + (path s0 p0-1) + (path p0-1 s0) + (path s1 p0-1) + (path p0-1 s1) + (path s2 p2-0) + (path p2-0 s2) + (path s0 p2-0) + (path p2-0 s0) + (path s2 p2-1) + (path p2-1 s2) + (path s1 p2-1) + (path p2-1 s1) + (link s1 s0) + (link s0 s1) + (link s1 s2) + (link s2 s1) + (link s2 s0) + (link s0 s2) +) + (:goal (and + (at driver2 s2) + (at truck1 s1) + (at truck2 s2) + (at package1 s1) + (at package2 s1) + (at package3 s2) + )) + + +) diff --git a/test/letseat/domain.pddl b/test/letseat/domain.pddl new file mode 100644 index 0000000..ad88b23 --- /dev/null +++ b/test/letseat/domain.pddl @@ -0,0 +1,72 @@ +(define (domain letseat) + + (:requirements :typing) + + (:types + location locatable - object + bot cupcake - locatable + robot - bot + ) + + (:predicates + (on ?obj - locatable ?loc - location) + (holding ?arm - locatable ?cupcake - locatable) + (arm-empty) + (path ?location1 - location ?location2 - location) + ) + + + (:action pick-up + :parameters + (?arm - bot + ?cupcake - locatable + ?loc - location) + :precondition + (and + (on ?arm ?loc) + (on ?cupcake ?loc) + (arm-empty) + ) + :effect + (and + (not (on ?cupcake ?loc)) + (holding ?arm ?cupcake) + (not (arm-empty)) + ) + ) + + (:action drop + :parameters + (?arm - bot + ?cupcake - locatable + ?loc - location) + :precondition + (and + (on ?arm ?loc) + (holding ?arm ?cupcake) + ) + :effect + (and + (on ?cupcake ?loc) + (arm-empty) + (not (holding ?arm ?cupcake)) + ) + ) + + (:action move + :parameters + (?arm - bot + ?from - location + ?to - location) + :precondition + (and + (on ?arm ?from) + (path ?from ?to) + ) + :effect + (and + (not (on ?arm ?from)) + (on ?arm ?to) + ) + ) +) \ No newline at end of file diff --git a/test/letseat/pfile.pddl b/test/letseat/pfile.pddl new file mode 100644 index 0000000..6b207ed --- /dev/null +++ b/test/letseat/pfile.pddl @@ -0,0 +1,19 @@ +(define (problem letseat-simple) + (:domain letseat) + (:objects + arm - robot + cupcake - cupcake + table - location + plate - location + ) + + (:init + (on arm table) + (on cupcake table) + (arm-empty) + (path table plate) + ) + (:goal + (on cupcake plate) + ) +)