Skip to content

Commit

Permalink
single rover domain
Browse files Browse the repository at this point in the history
  • Loading branch information
maxzuo committed Sep 1, 2024
1 parent 6d50076 commit 5415446
Show file tree
Hide file tree
Showing 15 changed files with 3,610 additions and 1,839 deletions.
43 changes: 43 additions & 0 deletions planetarium/domains/blocksworld.pddl
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
;; source: https://github.com/AI-Planning/pddl-generators/blob/main/blocksworld/domain.pddl
;; same as used in IPC 2023
;;
(define (domain blocksworld)

(:requirements :strips)

(:predicates
(clear ?x)
(on-table ?x)
(arm-empty)
(holding ?x)
(on ?x ?y)
)

(:action pickup
:parameters (?ob)
:precondition (and (clear ?ob) (on-table ?ob) (arm-empty))
:effect (and (holding ?ob) (not (clear ?ob)) (not (on-table ?ob))
(not (arm-empty)))
)

(:action putdown
:parameters (?ob)
:precondition (holding ?ob)
:effect (and (clear ?ob) (arm-empty) (on-table ?ob)
(not (holding ?ob)))
)

(:action stack
:parameters (?ob ?underob)
:precondition (and (clear ?underob) (holding ?ob))
:effect (and (arm-empty) (clear ?ob) (on ?ob ?underob)
(not (clear ?underob)) (not (holding ?ob)))
)

(:action unstack
:parameters (?ob ?underob)
:precondition (and (on ?ob ?underob) (clear ?ob) (arm-empty))
:effect (and (holding ?ob) (clear ?underob)
(not (on ?ob ?underob)) (not (clear ?ob)) (not (arm-empty)))
)
)
38 changes: 38 additions & 0 deletions planetarium/domains/gripper.pddl
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
;; source: https://github.com/AI-Planning/pddl-generators/blob/main/gripper/domain.pddl
(define (domain gripper)
(:requirements :strips)
(:predicates
(room ?r)
(ball ?b)
(gripper ?g)
(at-robby ?r)
(at ?b ?r)
(free ?g)
(carry ?o ?g)
)

(:action move
:parameters (?from ?to)
:precondition (and (room ?from) (room ?to) (at-robby ?from))
:effect (and (at-robby ?to)
(not (at-robby ?from)))
)

(:action pick
:parameters (?obj ?room ?gripper)
:precondition (and (ball ?obj) (room ?room) (gripper ?gripper)
(at ?obj ?room) (at-robby ?room) (free ?gripper))
:effect (and (carry ?obj ?gripper)
(not (at ?obj ?room))
(not (free ?gripper)))
)

(:action drop
:parameters (?obj ?room ?gripper)
:precondition (and (ball ?obj) (room ?room) (gripper ?gripper)
(carry ?obj ?gripper) (at-robby ?room))
:effect (and (at ?obj ?room)
(free ?gripper)
(not (carry ?obj ?gripper)))
)
)
90 changes: 90 additions & 0 deletions planetarium/domains/rover-single.pddl
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
(define (domain rover-single)
(:requirements :strips :typing)
(:types
waypoint store camera mode objective
)

(:predicates
(at_rover ?y - waypoint)
(at_lander ?y - waypoint)
(can_traverse ?x - waypoint ?y - waypoint)
(empty ?s - store)
(have_rock_analysis ?w - waypoint)
(have_soil_analysis ?w - waypoint)
(full ?s - store)
(supports ?c - camera ?m - mode)
(available)
(visible ?w - waypoint ?p - waypoint)
(have_image ?o - objective ?m - mode)
(communicated_soil_data ?w - waypoint)
(communicated_rock_data ?w - waypoint)
(communicated_image_data ?o - objective ?m - mode)
(at_rock_sample ?w - waypoint)
(at_soil_sample ?w - waypoint)
(visible_from ?o - objective ?w - waypoint)
(channel_free)
)

(:action navigate
:parameters (?y - waypoint ?z - waypoint)
:precondition (and (can_traverse ?y ?z) (available) (at_rover ?y)
(visible ?y ?z))
:effect (and (not (at_rover ?y)) (at_rover ?z))
)

(:action sample_soil
:parameters (?s - store ?p - waypoint)
:precondition (and (at_rover ?p) (at_soil_sample ?p) (empty ?s))
:effect (and (not (empty ?s)) (full ?s) (have_soil_analysis ?x ?p)
(not (at_soil_sample ?p)))
)

(:action sample_rock
:parameters (?s - store ?p - waypoint)
:precondition (and (at_rover ?p) (at_rock_sample ?p) (empty ?s))
:effect (and (not (empty ?s)) (full ?s) (have_rock_analysis ?x ?p)
(not (at_rock_sample ?p)))
)

(:action drop
:parameters (?y - store)
:precondition (full ?y)
:effect (and (not (full ?y)) (empty ?y))
)

(:action take_image
:parameters (?p - waypoint ?o - objective ?i - camera ?m - mode)
:precondition (and (supports ?i ?m) (visible_from ?o ?p) (at_rover ?p))
:effect (have_image ?o ?m)
)

(:action communicate_soil_data
:parameters (?p - waypoint ?x - waypoint ?y - waypoint)
:precondition (and (at_rover ?x)
(at_lander ?y)(have_soil_analysis ?r ?p)
(visible ?x ?y)(available)(channel_free))
:effect (and (not (available))
(not (channel_free))(channel_free)
(communicated_soil_data ?p)(available))
)

(:action communicate_rock_data
:parameters (?p - waypoint ?x - waypoint ?y - waypoint)
:precondition (and (at_rover ?x)
(at_lander ?y)(have_rock_analysis ?p)
(visible ?x ?y)(available)(channel_free))
:effect (and (not (available))
(not (channel_free))
(channel_free)(communicated_rock_data ?p)(available))
)

(:action communicate_image_data
:parameters (?o - objective ?m - mode ?x - waypoint ?y - waypoint)
:precondition (and (at_rover ?x)
(at_lander ?y)(have_image ?o ?m)
(visible ?x ?y)(available)(channel_free))
:effect (and (not (available))
(not (channel_free))(channel_free)
(communicated_image_data ?o ?m)(available))
)
)
111 changes: 111 additions & 0 deletions planetarium/domains/rover.pddl
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
;; source: https://github.com/AI-Planning/pddl-generators/blob/main/rovers/domain.pddl
;; same as used in IPC 2023
;;
(define (domain rover)
(:requirements :strips :typing)
(:types
rover waypoint store camera mode lander objective
)

(:predicates
(at ?x - rover ?y - waypoint)
(at_lander ?x - lander ?y - waypoint)
(can_traverse ?r - rover ?x - waypoint ?y - waypoint)
(equipped_for_soil_analysis ?r - rover)
(equipped_for_rock_analysis ?r - rover)
(equipped_for_imaging ?r - rover)
(empty ?s - store)
(have_rock_analysis ?r - rover ?w - waypoint)
(have_soil_analysis ?r - rover ?w - waypoint)
(full ?s - store)
(calibrated ?c - camera ?r - rover)
(supports ?c - camera ?m - mode)
(available ?r - rover)
(visible ?w - waypoint ?p - waypoint)
(have_image ?r - rover ?o - objective ?m - mode)
(communicated_soil_data ?w - waypoint)
(communicated_rock_data ?w - waypoint)
(communicated_image_data ?o - objective ?m - mode)
(at_soil_sample ?w - waypoint)
(at_rock_sample ?w - waypoint)
(visible_from ?o - objective ?w - waypoint)
(store_of ?s - store ?r - rover)
(calibration_target ?i - camera ?o - objective)
(on_board ?i - camera ?r - rover)
(channel_free ?l - lander)
)

(:action navigate
:parameters (?x - rover ?y - waypoint ?z - waypoint)
:precondition (and (can_traverse ?x ?y ?z) (available ?x) (at ?x ?y)
(visible ?y ?z))
:effect (and (not (at ?x ?y)) (at ?x ?z))
)

(:action sample_soil
:parameters (?x - rover ?s - store ?p - waypoint)
:precondition (and (at ?x ?p) (at_soil_sample ?p)
(equipped_for_soil_analysis ?x) (store_of ?s ?x) (empty ?s))
:effect (and (not (empty ?s)) (full ?s) (have_soil_analysis ?x ?p)
(not (at_soil_sample ?p)))
)

(:action sample_rock
:parameters (?x - rover ?s - store ?p - waypoint)
:precondition (and (at ?x ?p) (at_rock_sample ?p)
(equipped_for_rock_analysis ?x) (store_of ?s ?x)(empty ?s))
:effect (and (not (empty ?s)) (full ?s) (have_rock_analysis ?x ?p)
(not (at_rock_sample ?p)))
)

(:action drop
:parameters (?x - rover ?y - store)
:precondition (and (store_of ?y ?x) (full ?y))
:effect (and (not (full ?y)) (empty ?y))
)

(:action calibrate
:parameters (?r - rover ?i - camera ?t - objective ?w - waypoint)
:precondition (and (equipped_for_imaging ?r) (calibration_target ?i ?t)
(at ?r ?w) (visible_from ?t ?w)(on_board ?i ?r))
:effect (calibrated ?i ?r)
)

(:action take_image
:parameters (?r - rover ?p - waypoint ?o - objective ?i - camera ?m - mode)
:precondition (and (calibrated ?i ?r) (on_board ?i ?r) (equipped_for_imaging ?r)
(supports ?i ?m) (visible_from ?o ?p) (at ?r ?p))
:effect (and (have_image ?r ?o ?m)
(not (calibrated ?i ?r)))
)

(:action communicate_soil_data
:parameters (?r - rover ?l - lander ?p - waypoint ?x - waypoint ?y - waypoint)
:precondition (and (at ?r ?x)
(at_lander ?l ?y)(have_soil_analysis ?r ?p)
(visible ?x ?y)(available ?r)(channel_free ?l))
:effect (and (not (available ?r))
(not (channel_free ?l))(channel_free ?l)
(communicated_soil_data ?p)(available ?r))
)

(:action communicate_rock_data
:parameters (?r - rover ?l - lander ?p - waypoint ?x - waypoint ?y - waypoint)
:precondition (and (at ?r ?x)
(at_lander ?l ?y)(have_rock_analysis ?r ?p)
(visible ?x ?y)(available ?r)(channel_free ?l))
:effect (and (not (available ?r))
(not (channel_free ?l))
(channel_free ?l)(communicated_rock_data ?p)(available ?r))
)

(:action communicate_image_data
:parameters (?r - rover ?l - lander ?o - objective ?m - mode ?x - waypoint ?y - waypoint)
:precondition (and (at ?r ?x)
(at_lander ?l ?y)(have_image ?r ?o ?m)
(visible ?x ?y)(available ?r)(channel_free ?l))
:effect (and (not (available ?r))
(not (channel_free ?l))(channel_free ?l)
(communicated_image_data ?o ?m)(available ?r))
)
)
Loading

0 comments on commit 5415446

Please sign in to comment.