diff --git a/domain_definition.pddl b/domain_definition.pddl index 43d10f3f9aaec42f45a8fef372dc51a9299b3565..95469242321c130521a5b1e0ae74b1f512a257ec 100644 --- a/domain_definition.pddl +++ b/domain_definition.pddl @@ -2,18 +2,12 @@ (:requirements :strips) (:requirements :typing) (:requirements :equality) - (:requirements :fluents) - (:requirements :conditional-effects) - (:types p1 - pawn - p2 - pawn - user - agent - robot - agent - ) - (:predicates (at ?x ?y) + + (:predicates + (at ?x ?y) (free ?x) (carry ?x ?y ?z) - (disability ?x ?y) (piece ?x) (location ?x) (gripper ?x) @@ -25,7 +19,6 @@ (userMove_1 ?x ?z) (userMove_2 ?x ?z) (userMove_3 ?x ?z) - (userMove_4 ?x ?z) (allowedMove ?x ?y) (suggestedMove ?x ?z) @@ -33,13 +26,11 @@ (demonstrateMove ?x ?z) - ;;For Gesture Engagement (gestureEngagement) (gestureEngagement_1) (gestureEngagement_2) (gestureEngagement_3) - ;;For Demonstration Engagement (demonstrationEngagement) (checkMove_1) @@ -51,12 +42,10 @@ (verbalEngagement_1) (verbalEngagement_2) (verbalEngagement_3) - (verbalEngagement_4) - (releasedPawn) + (releasedBlock) (encourageUser) - (sendTricks) (suggestSubset) (suggestAnswer) (performDemonstration) @@ -104,36 +93,34 @@ ) (:action attempt_grab_lev_1 - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition(and (not(gestureEngagement)) (waitForUserMove_1) (not(demonstrationEngagement)) (not(encourageUser)) (verbalEngagement) (at ?pawn ?from) (userMove_1 ?pawn ?to) (piece ?pawn) (agent ?agent) (location ?to) (location ?from) (not(free_loc ?from)) (gripper ?gripper) (not(catch ?pawn ?from ?to))) - :effect (and (not(free ?gripper)) (at ?pawn ?from) (catch ?pawn ?from ?to) (verbalEngagement_1)) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition(and (not(gestureEngagement)) (waitForUserMove_1) (not(demonstrationEngagement)) (not(encourageUser)) (verbalEngagement) (at ?block ?from) (userMove_1 ?block ?to) (piece ?block) (agent ?agent) (location ?to) (location ?from) (not(free_loc ?from)) (gripper ?gripper) (not(catch ?block ?from ?to))) + :effect (and (not(free ?gripper)) (at ?block ?from) (catch ?block ?from ?to) (verbalEngagement_1)) ) (:action attempt_move_lev_1 - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition(and (verbalEngagement_1) (location ?from) (location ?to) (free_loc ?to) (agent ?agent) (catch ?pawn ?from ?to) (userMove_1 ?pawn ?to)) - :effect (and (not(checkMove_1)) (free_loc ?to) (not(at ?pawn ?from)) (carry ?agent ?gripper ?pawn)) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition(and (verbalEngagement_1) (location ?from) (location ?to) (free_loc ?to) (agent ?agent) (catch ?block ?from ?to) (userMove_1 ?block ?to)) + :effect (and (not(checkMove_1)) (free_loc ?to) (not(at ?block ?from)) (carry ?agent ?gripper ?block)) ) (:action check_user_move_allowed_1 - :parameters( ?pawn ?from ?to) - :precondition(and(piece ?pawn) (location ?from) (location ?to) (not(checkMove_1)) (catch ?pawn ?from ?to) (userMove_1 ?pawn ?to) (allowedMove ?pawn ?to) ) + :parameters( ?block ?from ?to) + :precondition(and(piece ?block) (location ?from) (location ?to) (not(checkMove_1)) (catch ?block ?from ?to) (userMove_1 ?block ?to) (allowedMove ?block ?to) ) :effect(and (firstAttempt) (rightMove_1) (not(waitForUserMove_1)) (checkMove_1)) ) (:action check_user_move_not_right_1 - :parameters( ?pawn ?from ?to) - :precondition(and(piece ?pawn) (location ?from) (location ?to) (not(checkMove_1)) (catch ?pawn ?from ?to) (userMove_1 ?pawn ?to) (not(allowedMove ?pawn ?to) ) ) - ;:effect (and(not(rightMove_1)) (firstAttempt)) - :effect(DEBUG) + :parameters( ?block ?from ?to) + :precondition(and(piece ?block) (location ?from) (location ?to) (not(checkMove_1)) (catch ?block ?from ?to) (userMove_1 ?block ?to) (not(allowedMove ?block ?to) ) ) + :effect (and(not(rightMove_1)) (firstAttempt)) ) (:action release_lev_1_correct_position - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition (and (piece ?pawn) (rightMove_1) (checkMove_1) (firstAttempt) (allowedMove ?pawn ?to) (not(waitForUserMove_1)) (not(secondAttempt)) (userMove_1 ?pawn ?to) (not(gestureEngagement)) (agent ?agent) (catch ?pawn ?from ?to) (location ?from) (free_loc ?to) (not(free ?gripper)) (gripper ?gripper) (location ?to) (not(at ?pawn ?to)) (carry ?agent ?gripper ?pawn)) - ;:effect(and (at ?pawn ?to) (free ?gripper) (not(select ?pawn ?to)) (not(free_loc ?to)) (not(catch ?pawn ?from ?to)) (not(carry ?agent ?gripper ?pawn))) - :effect (and (rightMove_1) (at ?pawn ?to) (releasedPawn)) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition (and (piece ?block) (rightMove_1) (checkMove_1) (firstAttempt) (allowedMove ?block ?to) (not(waitForUserMove_1)) (not(secondAttempt)) (userMove_1 ?block ?to) (not(gestureEngagement)) (agent ?agent) (catch ?block ?from ?to) (location ?from) (free_loc ?to) (not(free ?gripper)) (gripper ?gripper) (location ?to) (not(at ?block ?to)) (carry ?agent ?gripper ?block)) + :effect (and (rightMove_1) (at ?block ?to) (releasedBlock)) ) ;;;///***********************************************SECOND ATTEMPT ************************************************************************/ @@ -146,42 +133,41 @@ ) (:action suggest_subsets_user_only_lev_2 - :parameters( ?pawn ?from ?to_1 ?to_2 ?to_3) - :precondition(and (not(suggestSubset)) (verbalEngagement_2) (not(waitForUserMove_2)) (not(= ?to_1 ?to_2)) (not(= ?to_1 ?to_3)) (not(= ?to_2 ?to_3)) (location ?to_2) (location ?to_3) (suggestedMove ?pawn ?to_1) (suggestedMove ?pawn ?to_2) (suggestedMove ?pawn ?to_3) (piece ?pawn)) + :parameters( ?block ?from ?to_1 ?to_2 ?to_3) + :precondition(and (not(suggestSubset)) (verbalEngagement_2) (not(waitForUserMove_2)) (not(= ?to_1 ?to_2)) (not(= ?to_1 ?to_3)) (not(= ?to_2 ?to_3)) (location ?to_2) (location ?to_3) (suggestedMove ?block ?to_1) (suggestedMove ?block ?to_2) (suggestedMove ?block ?to_3) (piece ?block)) :effect(and (waitForUserMove_2) (verbalEngagement)(suggestSubset)) ) (:action attempt_grab_lev_2 - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition(and (not(gestureEngagement)) (waitForUserMove_2) (not(demonstrationEngagement_2)) (suggestSubset) (at ?pawn ?from) (userMove_2 ?pawn ?to) (piece ?pawn) (agent ?agent) (location ?to) (location ?from) (not(free_loc ?from)) (gripper ?gripper) (not(catch ?pawn ?from ?to))) - :effect (and (not(free ?gripper)) (at ?pawn ?from) (location ?to) (catch ?pawn ?from ?to) (verbalEngagement_2) ) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition(and (not(gestureEngagement)) (waitForUserMove_2) (not(demonstrationEngagement_2)) (suggestSubset) (at ?block ?from) (userMove_2 ?block ?to) (piece ?block) (agent ?agent) (location ?to) (location ?from) (not(free_loc ?from)) (gripper ?gripper) (not(catch ?block ?from ?to))) + :effect (and (not(free ?gripper)) (at ?block ?from) (location ?to) (catch ?block ?from ?to) (verbalEngagement_2) ) ) (:action attempt_move_lev_2 - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition(and (location ?from) (verbalEngagement_2) (location ?to) (free_loc ?to) (agent ?agent) (catch ?pawn ?from ?to) (userMove_2 ?pawn ?to)) - :effect (and (not(checkMove_2)) (free_loc ?to) (not(at ?pawn ?from))(carry ?agent ?gripper ?pawn) (select ?pawn ?to) ) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition(and (location ?from) (verbalEngagement_2) (location ?to) (free_loc ?to) (agent ?agent) (catch ?block ?from ?to) (userMove_2 ?block ?to)) + :effect (and (not(checkMove_2)) (free_loc ?to) (not(at ?block ?from))(carry ?agent ?gripper ?block) (select ?block ?to) ) ) (:action check_user_move_allowed_2 - :parameters( ?pawn ?from ?to) - :precondition(and(piece ?pawn) (location ?from) (location ?to) (not(checkMove_2)) (catch ?pawn ?from ?to) (userMove_2 ?pawn ?to) (allowedMove ?pawn ?to) ) + :parameters( ?block ?from ?to) + :precondition(and(piece ?block) (location ?from) (location ?to) (not(checkMove_2)) (catch ?block ?from ?to) (userMove_2 ?block ?to) (allowedMove ?block ?to) ) :effect(and (firstAttempt) (rightMove_2) (not(waitForUserMove_2)) (checkMove_2)) ) (:action check_user_move_not_right_2 - :parameters( ?pawn ?from ?to) - :precondition(and(piece ?pawn) (location ?from) (location ?to) (not(checkMove_2)) (catch ?pawn ?from ?to) (userMove_2 ?pawn ?to) (not(allowedMove ?pawn ?to) ) ) + :parameters( ?block ?from ?to) + :precondition(and(piece ?block) (location ?from) (location ?to) (not(checkMove_2)) (catch ?block ?from ?to) (userMove_2 ?block ?to) (not(allowedMove ?block ?to) ) ) :effect(and (not(rightMove_2))(secondAttempt) ) ) (:action release_lev_2_correct_position - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition (and (piece ?pawn) (rightMove_2) (checkMove_2) (firstAttempt) (not(demonstrationEngagement)) (allowedMove ?pawn ?to) (not(waitForUserMove_2)) (not(secondAttempt)) (userMove_2 ?pawn ?to) (agent ?agent) (catch ?pawn ?from ?to) (location ?from) (select ?pawn ?to) (free_loc ?to) (not(free ?gripper)) (gripper ?gripper) (location ?to) (not(at ?pawn ?to)) (carry ?agent ?gripper ?pawn)) - ;:effect(and (at ?pawn ?to) (free ?gripper) (not(select ?pawn ?to)) (not(free_loc ?to)) (not(catch ?pawn ?from ?to)) (not(carry ?agent ?gripper ?pawn))) - :effect (and (rightMove_1) (at ?pawn ?to) (releasedPawn)) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition (and (piece ?block) (rightMove_2) (checkMove_2) (firstAttempt) (not(demonstrationEngagement)) (allowedMove ?block ?to) (not(waitForUserMove_2)) (not(secondAttempt)) (userMove_2 ?block ?to) (agent ?agent) (catch ?block ?from ?to) (location ?from) (select ?block ?to) (free_loc ?to) (not(free ?gripper)) (gripper ?gripper) (location ?to) (not(at ?block ?to)) (carry ?agent ?gripper ?block)) + :effect (and (rightMove_1) (at ?block ?to) (releasedBlock)) ) @@ -196,42 +182,41 @@ ) (:action suggest_solution_user_only_lev_3 - :parameters( ?pawn ?from ?to) - :precondition(and (location ?from) (location ?to) (not(waitForUserMove_3)) (verbalEngagement_3) (not(suggestAnswer)) (suggestSolution ?pawn ?to) (piece ?pawn)) + :parameters( ?block ?from ?to) + :precondition(and (location ?from) (location ?to) (not(waitForUserMove_3)) (verbalEngagement_3) (not(suggestAnswer)) (suggestSolution ?block ?to) (piece ?block)) :effect(and (waitForUserMove_3) (verbalEngagement) (suggestAnswer)) ) (:action attempt_grab_lev_3 - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition(and (not(gestureEngagement)) (waitForUserMove_3) (not(demonstrationEngagement)) (suggestAnswer) (verbalEngagement) (at ?pawn ?from) (userMove_3 ?pawn ?to) (piece ?pawn) (agent ?agent) (location ?to) (location ?from) (not(free_loc ?from)) (gripper ?gripper) (not(catch ?pawn ?from ?to))) - :effect (and (not(free ?gripper)) (at ?pawn ?from) (location ?to) (catch ?pawn ?from ?to) (verbalEngagement_3) ) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition(and (not(gestureEngagement)) (waitForUserMove_3) (not(demonstrationEngagement)) (suggestAnswer) (verbalEngagement) (at ?block ?from) (userMove_3 ?block ?to) (piece ?block) (agent ?agent) (location ?to) (location ?from) (not(free_loc ?from)) (gripper ?gripper) (not(catch ?block ?from ?to))) + :effect (and (not(free ?gripper)) (at ?block ?from) (location ?to) (catch ?block ?from ?to) (verbalEngagement_3) ) ) (:action attempt_move_lev_3 - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition(and (location ?from) (verbalEngagement_3) (location ?to) (free_loc ?to) (agent ?agent) (catch ?pawn ?from ?to) (userMove_3 ?pawn ?to)) - :effect (and (not(checkMove_3)) (free_loc ?to) (not(at ?pawn ?from))(carry ?agent ?gripper ?pawn) ) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition(and (location ?from) (verbalEngagement_3) (location ?to) (free_loc ?to) (agent ?agent) (catch ?block ?from ?to) (userMove_3 ?block ?to)) + :effect (and (not(checkMove_3)) (free_loc ?to) (not(at ?block ?from))(carry ?agent ?gripper ?block) ) ) (:action check_user_move_allowed_3 - :parameters( ?pawn ?from ?to) - :precondition(and(piece ?pawn) (location ?from) (location ?to) (not(checkMove_3)) (catch ?pawn ?from ?to) (userMove_3 ?pawn ?to) (allowedMove ?pawn ?to) ) + :parameters( ?block ?from ?to) + :precondition(and(piece ?block) (location ?from) (location ?to) (not(checkMove_3)) (catch ?block ?from ?to) (userMove_3 ?block ?to) (allowedMove ?block ?to) ) :effect(and (firstAttempt) (rightMove_3) (not(waitForUserMove_3)) (checkMove_3)) ) (:action check_user_move_not_right_3 - :parameters( ?pawn ?from ?to) - :precondition(and(piece ?pawn) (location ?from) (location ?to) (not(checkMove_3)) (catch ?pawn ?from ?to) (userMove_3 ?pawn ?to) (not(allowedMove ?pawn ?to) ) ) + :parameters( ?block ?from ?to) + :precondition(and(piece ?block) (location ?from) (location ?to) (not(checkMove_3)) (catch ?block ?from ?to) (userMove_3 ?block ?to) (not(allowedMove ?block ?to) ) ) :effect(and (not(rightMove_3))(thirdAttempt) ) ) (:action release_lev_3_correct_position - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition (and (piece ?pawn) (rightMove_3) (checkMove_3) (firstAttempt) (allowedMove ?pawn ?to) (not(waitForUserMove_3)) (not(secondAttempt)) (userMove_3 ?pawn ?to) (not(gestureEngagement)) (agent ?agent) (catch ?pawn ?from ?to) (location ?from) (free_loc ?to) (not(free ?gripper)) (gripper ?gripper) (location ?to) (not(at ?pawn ?to)) (carry ?agent ?gripper ?pawn)) - ;:effect(and (at ?pawn ?to) (free ?gripper) (not(select ?pawn ?to)) (not(free_loc ?to)) (not(catch ?pawn ?from ?to)) (not(carry ?agent ?gripper ?pawn))) - :effect (and (rightMove_3) (at ?pawn ?to) (releasedPawn)) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition (and (piece ?block) (rightMove_3) (checkMove_3) (firstAttempt) (allowedMove ?block ?to) (not(waitForUserMove_3)) (not(secondAttempt)) (userMove_3 ?block ?to) (not(gestureEngagement)) (agent ?agent) (catch ?block ?from ?to) (location ?from) (free_loc ?to) (not(free ?gripper)) (gripper ?gripper) (location ?to) (not(at ?block ?to)) (carry ?agent ?gripper ?block)) + :effect (and (rightMove_3) (at ?block ?to) (releasedBlock)) ) @@ -250,36 +235,34 @@ ) (:action attempt_grab_lev_1 - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition(and (not(verbalEngagement)) (waitForUserMove_1) (not(demonstrationEngagement)) (not(encourageUser)) (gestureEngagement) (at ?pawn ?from) (userMove_1 ?pawn ?to) (piece ?pawn) (agent ?agent) (location ?to) (location ?from) (not(free_loc ?from)) (gripper ?gripper) (not(catch ?pawn ?from ?to))) - :effect (and (not(free ?gripper)) (at ?pawn ?from) (catch ?pawn ?from ?to) (gestureEngagement_1)) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition(and (not(verbalEngagement)) (waitForUserMove_1) (not(demonstrationEngagement)) (not(encourageUser)) (gestureEngagement) (at ?block ?from) (userMove_1 ?block ?to) (piece ?block) (agent ?agent) (location ?to) (location ?from) (not(free_loc ?from)) (gripper ?gripper) (not(catch ?block ?from ?to))) + :effect (and (not(free ?gripper)) (at ?block ?from) (catch ?block ?from ?to) (gestureEngagement_1)) ) (:action attempt_move_lev_1 - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition(and (gestureEngagement_1) (location ?from) (location ?to) (free_loc ?to) (agent ?agent) (catch ?pawn ?from ?to) (userMove_1 ?pawn ?to)) - :effect (and (not(checkMove_1)) (free_loc ?to) (not(at ?pawn ?from)) (carry ?agent ?gripper ?pawn)) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition(and (gestureEngagement_1) (location ?from) (location ?to) (free_loc ?to) (agent ?agent) (catch ?block ?from ?to) (userMove_1 ?block ?to)) + :effect (and(not(checkMove_1)) (free_loc ?to) (not(at ?block ?from)) (carry ?agent ?gripper ?block)) ) (:action check_user_move_allowed_1 - :parameters( ?pawn ?from ?to) - :precondition(and(piece ?pawn) (location ?from) (location ?to) (not(checkMove_1)) (catch ?pawn ?from ?to) (userMove_1 ?pawn ?to) (allowedMove ?pawn ?to) ) + :parameters( ?block ?from ?to) + :precondition(and(piece ?block) (location ?from) (location ?to) (not(checkMove_1)) (catch ?block ?from ?to) (userMove_1 ?block ?to) (allowedMove ?block ?to) ) :effect(and (firstAttempt) (rightMove_1) (not(waitForUserMove_1)) (checkMove_1)) ) (:action check_user_move_not_right_1 - :parameters( ?pawn ?from ?to) - :precondition(and(piece ?pawn) (location ?from) (location ?to) (not(checkMove_1)) (catch ?pawn ?from ?to) (userMove_1 ?pawn ?to) (not(allowedMove ?pawn ?to) ) ) - ;:effect (and(not(rightMove_1)) (firstAttempt)) - :effect(DEBUG) + :parameters( ?block ?from ?to) + :precondition(and(piece ?block) (location ?from) (location ?to) (not(checkMove_1)) (catch ?block ?from ?to) (userMove_1 ?block ?to) (not(allowedMove ?block ?to) ) ) + :effect (and(not(rightMove_1)) (firstAttempt)) ) (:action release_lev_1_correct_position - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition (and (piece ?pawn) (rightMove_1) (checkMove_1) (firstAttempt) (allowedMove ?pawn ?to) (not(waitForUserMove_1)) (not(secondAttempt)) (userMove_1 ?pawn ?to) (not(gestureEngagement)) (agent ?agent) (catch ?pawn ?from ?to) (location ?from) (free_loc ?to) (not(free ?gripper)) (gripper ?gripper) (location ?to) (not(at ?pawn ?to)) (carry ?agent ?gripper ?pawn)) - ;:effect(and (at ?pawn ?to) (free ?gripper) (not(select ?pawn ?to)) (not(free_loc ?to)) (not(catch ?pawn ?from ?to)) (not(carry ?agent ?gripper ?pawn))) - :effect (and (rightMove_1) (at ?pawn ?to) (releasedPawn)) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition (and (piece ?block) (rightMove_1) (checkMove_1) (firstAttempt) (allowedMove ?block ?to) (not(waitForUserMove_1)) (not(secondAttempt)) (userMove_1 ?block ?to) (not(gestureEngagement)) (agent ?agent) (catch ?block ?from ?to) (location ?from) (free_loc ?to) (not(free ?gripper)) (gripper ?gripper) (location ?to) (not(at ?block ?to)) (carry ?agent ?gripper ?block)) + :effect (and (rightMove_1) (at ?block ?to) (releasedBlock)) ) ;;;///***********************************************SECOND ATTEMPT ************************************************************************/ @@ -292,41 +275,41 @@ ) (:action point_out_area_only_lev_2 - :parameters( ?pawn ?from ?to_1 ?to_2 ?to_3) - :precondition(and (not(suggestSubset)) (gestureEngagement_2) (not(waitForUserMove_2)) (not(= ?to_1 ?to_2)) (not(= ?to_1 ?to_3)) (not(= ?to_2 ?to_3)) (location ?to_2) (location ?to_3) (suggestedMove ?pawn ?to_1) (suggestedMove ?pawn ?to_2) (suggestedMove ?pawn ?to_3) (piece ?pawn)) + :parameters( ?block ?from ?to_1 ?to_2 ?to_3) + :precondition(and (not(suggestSubset)) (gestureEngagement_2) (not(waitForUserMove_2)) (not(= ?to_1 ?to_2)) (not(= ?to_1 ?to_3)) (not(= ?to_2 ?to_3)) (location ?to_2) (location ?to_3) (suggestedMove ?block ?to_1) (suggestedMove ?block ?to_2) (suggestedMove ?block ?to_3) (piece ?block)) :effect(and (waitForUserMove_2) (gestureEngagement)(suggestSubset)) ) (:action attempt_grab_lev_2 - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition(and (not(verbalEngagement)) (waitForUserMove_2) (not(demonstrationEngagement) (suggestSubset) (at ?pawn ?from) (userMove_2 ?pawn ?to) (piece ?pawn) (agent ?agent) (location ?to) (location ?from) (not(free_loc ?from)) (gripper ?gripper) (not(catch ?pawn ?from ?to)))) - :effect (and (not(free ?gripper)) (at ?pawn ?from) (location ?to) (catch ?pawn ?from ?to) (verbalEngagement_2)) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition(and (not(verbalEngagement)) (waitForUserMove_2) (not(demonstrationEngagement) (suggestSubset) (at ?block ?from) (userMove_2 ?block ?to) (piece ?block) (agent ?agent) (location ?to) (location ?from) (not(free_loc ?from)) (gripper ?gripper) (not(catch ?block ?from ?to)))) + :effect (and (not(free ?gripper)) (at ?block ?from) (location ?to) (catch ?block ?from ?to) (verbalEngagement_2)) ) (:action attempt_move_lev_2 - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition(and (location ?from) (gestureEngagement_2) (location ?to) (free_loc ?to) (agent ?agent) (catch ?pawn ?from ?to) (userMove_2 ?pawn ?to)) - :effect (and (not(checkMove_2)) (free_loc ?to) (not(at ?pawn ?from))(carry ?agent ?gripper ?pawn) (select ?pawn ?to) ) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition(and (location ?from) (gestureEngagement_2) (location ?to) (free_loc ?to) (agent ?agent) (catch ?block ?from ?to) (userMove_2 ?block ?to)) + :effect (and (not(checkMove_2)) (free_loc ?to) (not(at ?block ?from))(carry ?agent ?gripper ?block) (select ?block ?to) ) ) (:action check_user_move_allowed_2 - :parameters( ?pawn ?from ?to) - :precondition(and(piece ?pawn) (location ?from) (location ?to) (not(checkMove_2)) (catch ?pawn ?from ?to) (userMove_2 ?pawn ?to) (allowedMove ?pawn ?to) ) + :parameters( ?block ?from ?to) + :precondition(and(piece ?block) (location ?from) (location ?to) (not(checkMove_2)) (catch ?block ?from ?to) (userMove_2 ?block ?to) (allowedMove ?block ?to) ) :effect(and (firstAttempt) (rightMove_2) (not(waitForUserMove_2)) (checkMove_2)) ) (:action check_user_move_not_right_2 - :parameters( ?pawn ?from ?to) - :precondition(and(piece ?pawn) (location ?from) (location ?to) (not(checkMove_2)) (catch ?pawn ?from ?to) (userMove_2 ?pawn ?to) (not(allowedMove ?pawn ?to) ) ) + :parameters( ?block ?from ?to) + :precondition(and(piece ?block) (location ?from) (location ?to) (not(checkMove_2)) (catch ?block ?from ?to) (userMove_2 ?block ?to) (not(allowedMove ?block ?to) ) ) :effect(and (not(rightMove_2))(secondAttempt) ) ) (:action release_lev_2_correct_position - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition (and (piece ?pawn) (rightMove_2) (checkMove_2) (firstAttempt) (not(demonstrationEngagement)) (allowedMove ?pawn ?to) (not(waitForUserMove_2)) (not(secondAttempt)) (userMove_2 ?pawn ?to) (agent ?agent) (catch ?pawn ?from ?to) (location ?from) (select ?pawn ?to) (free_loc ?to) (not(free ?gripper)) (gripper ?gripper) (location ?to) (not(at ?pawn ?to)) (carry ?agent ?gripper ?pawn)) - :effect (and (rightMove_1) (at ?pawn ?to) (releasedPawn)) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition (and (piece ?block) (rightMove_2) (checkMove_2) (firstAttempt) (not(demonstrationEngagement)) (allowedMove ?block ?to) (not(waitForUserMove_2)) (not(secondAttempt)) (userMove_2 ?block ?to) (agent ?agent) (catch ?block ?from ?to) (location ?from) (select ?block ?to) (free_loc ?to) (not(free ?gripper)) (gripper ?gripper) (location ?to) (not(at ?block ?to)) (carry ?agent ?gripper ?block)) + :effect (and (rightMove_1) (at ?block ?to) (releasedBlock)) ) @@ -341,41 +324,41 @@ ) (:action point_out_solution_only_lev_3 - :parameters( ?pawn ?from ?to) - :precondition(and (location ?from) (location ?to) (not(waitForUserMove_3)) (gestureEngagement_3) (not(suggestAnswer)) (suggestSolution ?pawn ?to) (piece ?pawn)) + :parameters( ?block ?from ?to) + :precondition(and (location ?from) (location ?to) (not(waitForUserMove_3)) (gestureEngagement_3) (not(suggestAnswer)) (suggestSolution ?block ?to) (piece ?block)) :effect(and (waitForUserMove_3) (gestureEngagement) (suggestAnswer)) ) (:action attempt_grab_lev_3 - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition(and (not(verbalEngagement)) (waitForUserMove_3) (not(demonstrationEngagement)) (suggestAnswer) (gestureEngagement) (at ?pawn ?from) (userMove_3 ?pawn ?to) (piece ?pawn) (agent ?agent) (location ?to) (location ?from) (not(free_loc ?from)) (gripper ?gripper) (not(catch ?pawn ?from ?to))) - :effect (and (not(free ?gripper)) (at ?pawn ?from) (location ?to) (catch ?pawn ?from ?to) (gestureEngagement_3) ) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition(and (not(verbalEngagement)) (waitForUserMove_3) (not(demonstrationEngagement)) (suggestAnswer) (gestureEngagement) (at ?block ?from) (userMove_3 ?block ?to) (piece ?block) (agent ?agent) (location ?to) (location ?from) (not(free_loc ?from)) (gripper ?gripper) (not(catch ?block ?from ?to))) + :effect (and (not(free ?gripper)) (at ?block ?from) (location ?to) (catch ?block ?from ?to) (gestureEngagement_3) ) ) (:action attempt_move_lev_3 - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition(and (location ?from) (gestureEngagement_3) (location ?to) (free_loc ?to) (agent ?agent) (catch ?pawn ?from ?to) (userMove_3 ?pawn ?to)) - :effect (and (not(checkMove_3)) (free_loc ?to) (not(at ?pawn ?from))(carry ?agent ?gripper ?pawn) ) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition(and (location ?from) (gestureEngagement_3) (location ?to) (free_loc ?to) (agent ?agent) (catch ?block ?from ?to) (userMove_3 ?block ?to)) + :effect (and (not(checkMove_3)) (free_loc ?to) (not(at ?block ?from))(carry ?agent ?gripper ?block) ) ) (:action check_user_move_allowed_3 - :parameters( ?pawn ?from ?to) - :precondition(and(piece ?pawn) (location ?from) (location ?to) (not(checkMove_3)) (catch ?pawn ?from ?to) (userMove_3 ?pawn ?to) (allowedMove ?pawn ?to) ) + :parameters( ?block ?from ?to) + :precondition(and(piece ?block) (location ?from) (location ?to) (not(checkMove_3)) (catch ?block ?from ?to) (userMove_3 ?block ?to) (allowedMove ?block ?to) ) :effect(and (firstAttempt) (rightMove_3) (not(waitForUserMove_3)) (checkMove_3)) ) (:action check_user_move_not_right_3 - :parameters( ?pawn ?from ?to) - :precondition(and(piece ?pawn) (location ?from) (location ?to) (not(checkMove_3)) (catch ?pawn ?from ?to) (userMove_3 ?pawn ?to) (not(allowedMove ?pawn ?to) ) ) + :parameters( ?block ?from ?to) + :precondition(and(piece ?block) (location ?from) (location ?to) (not(checkMove_3)) (catch ?block ?from ?to) (userMove_3 ?block ?to) (not(allowedMove ?block ?to) ) ) :effect(and (not(rightMove_3))(thirdAttempt) ) ) (:action release_lev_3_correct_position - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition (and (piece ?pawn) (rightMove_3) (checkMove_3) (firstAttempt) (allowedMove ?pawn ?to) (not(waitForUserMove_3)) (not(secondAttempt)) (userMove_3 ?pawn ?to) (not(verbalEngagement)) (agent ?agent) (catch ?pawn ?from ?to) (location ?from) (free_loc ?to) (not(free ?gripper)) (gripper ?gripper) (location ?to) (not(at ?pawn ?to)) (carry ?agent ?gripper ?pawn)) - :effect (and (rightMove_3) (at ?pawn ?to) (releasedPawn)) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition (and (piece ?block) (rightMove_3) (checkMove_3) (firstAttempt) (allowedMove ?block ?to) (not(waitForUserMove_3)) (not(secondAttempt)) (userMove_3 ?block ?to) (not(verbalEngagement)) (agent ?agent) (catch ?block ?from ?to) (location ?from) (free_loc ?to) (not(free ?gripper)) (gripper ?gripper) (location ?to) (not(at ?block ?to)) (carry ?agent ?gripper ?block)) + :effect (and (rightMove_3) (at ?block ?to) (releasedBlock)) ) @@ -391,31 +374,29 @@ ) (:action demonstrate_how_to_perform_move - :parameters( ?pawn ?from ?to) - :precondition(and (location ?from) (location ?to) (verbalEngagement_4) (not(performDemonstration)) (demonstrateMove ?pawn ?to) (piece ?pawn)) - ;:effect(and (suggestSubset) (verbalEngagement_2) (not(waitForUserMove_2)) ) + :parameters( ?block ?from ?to) + :precondition(and (location ?from) (location ?to) (verbalEngagement_4) (not(performDemonstration)) (demonstrateMove ?block ?to) (piece ?block)) :effect(and (waitForUserMove_4) (verbalEngagement)) ) (:action grab_lev_4 - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition(and (not(gestureEngagement)) (waitForUserMove_4) (not(demonstrationEngagement)) (not(performDemonstration))(verbalEngagement_4) (verbalEngagement) (at ?pawn ?from) (demonstrateMove ?pawn ?to) (piece ?pawn) (agent ?agent) (location ?to) (location ?from) (not(free_loc ?from)) (gripper ?gripper) (not(catch ?pawn ?from ?to))) - :effect (and (not(free ?gripper)) (at ?pawn ?from) (location ?to) (catch ?pawn ?from ?to) (not(verbalEngagement_4)) ) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition(and (not(gestureEngagement)) (waitForUserMove_4) (not(demonstrationEngagement)) (not(performDemonstration))(verbalEngagement_4) (verbalEngagement) (at ?block ?from) (demonstrateMove ?block ?to) (piece ?block) (agent ?agent) (location ?to) (location ?from) (not(free_loc ?from)) (gripper ?gripper) (not(catch ?block ?from ?to))) + :effect (and (not(free ?gripper)) (at ?block ?from) (location ?to) (catch ?block ?from ?to) (not(verbalEngagement_4)) ) ) (:action move_lev_4 - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition(and (location ?from) (not(verbalEngagement_4)) (location ?to) (free_loc ?to) (agent ?agent) (catch ?pawn ?from ?to) (demonstrateMove ?pawn ?to)) - :effect (and (not(checkMove_4)) (free_loc ?to) (not(at ?pawn ?from))(carry ?agent ?gripper ?pawn) (select ?pawn ?to) ) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition(and (location ?from) (not(verbalEngagement_4)) (location ?to) (free_loc ?to) (agent ?agent) (catch ?block ?from ?to) (demonstrateMove ?block ?to)) + :effect (and (not(checkMove_4)) (free_loc ?to) (not(at ?block ?from))(carry ?agent ?gripper ?block) (select ?block ?to) ) ) (:action release_lev_4_correct_position - :parameters( ?agent ?gripper ?pawn ?from ?to) - :precondition (and (piece ?pawn) (not(checkMove_4)) (demonstrateMove ?pawn ?to) (allowedMove ?pawn ?to) (not(gestureEngagement)) (agent ?agent) (catch ?pawn ?from ?to) (location ?from) (select ?pawn ?to) (free_loc ?to) (not(free ?gripper)) (gripper ?gripper) (location ?to) (not(at ?pawn ?to)) (carry ?agent ?gripper ?pawn)) - ;:effect(and (at ?pawn ?to) (free ?gripper) (not(select ?pawn ?to)) (not(free_loc ?to)) (not(catch ?pawn ?from ?to)) (not(carry ?agent ?gripper ?pawn))) - :effect (and (rightMove_4) (at ?pawn ?to) (releasedPawn)) + :parameters( ?agent ?gripper ?block ?from ?to) + :precondition (and (piece ?block) (not(checkMove_4)) (demonstrateMove ?block ?to) (allowedMove ?block ?to) (not(gestureEngagement)) (agent ?agent) (catch ?block ?from ?to) (location ?from) (select ?block ?to) (free_loc ?to) (not(free ?gripper)) (gripper ?gripper) (location ?to) (not(at ?block ?to)) (carry ?agent ?gripper ?block)) + :effect (and (rightMove_4) (at ?block ?to) (releasedBlock)) )