Skip to content
Snippets Groups Projects
Commit 3a9f1f2b authored by Antonio Andriella's avatar Antonio Andriella
Browse files

Need to change the format and clean the code in the domain definition and

 check the code in the problem definition
parents
No related branches found
No related tags found
No related merge requests found
(define (domain game-strips)
(:requirements :strips)
(:requirements :typing)
(:requirements :equality)
(:requirements :fluents)
(:requirements :conditional-effects)
(:types p1 - pawn
p2 - pawn
user - agent
robot - agent
)
(:predicates (at ?x ?y)
(free ?x)
(carry ?x ?y ?z)
(disability ?x ?y)
(piece ?x)
(location ?x)
(gripper ?x)
(catch ?x ?y ?z)
(select ?x ?y)
(free_loc ?x)
(agent ?x)
(userMove_1 ?x ?z)
(userMove_2 ?x ?z)
(userMove_3 ?x ?z)
(userMove_4 ?x ?z)
(allowedMove ?x ?y)
(suggestedMove ?x ?z)
(suggestSolution ?x ?z)
(demonstrateMove ?x ?z)
;;For Gesture Engagement
(gestureEngagement)
(gestureEngagement_1)
(gestureEngagement_2)
(gestureEngagement_3)
;;For Demonstration Engagement
(demonstrationEngagement)
(demonstrationEngagement_1)
(demonstrationEngagement_2)
(demonstrationEngagement_3)
(demonstrationEngagement_4)
(checkMove_1)
(checkMove_2)
(checkMove_3)
(checkMove_4)
(verbalEngagement)
(verbalEngagement_1)
(verbalEngagement_2)
(verbalEngagement_3)
(verbalEngagement_4)
(releasedPawn)
(encourageUser)
(sendTricks)
(suggestSubset)
(suggestAnswer)
(performDemonstration)
(firstAttempt)
(secondAttempt)
(thirdAttempt)
(forthAttempt)
(waitForUserMove_1)
(waitForUserMove_2)
(waitForUserMove_3)
(waitForUserMove_4)
(rightMove_1)
(rightMove_2)
(rightMove_3)
(rightMove_4)
(DEBUG)
)
;gesture Engagement with the user
;; User sends move to the robot that moves the pawn
; (:action robot_move_for_you_pawns
; :parameters ( )
; :precondition (and (triggerMove) (gestureEngagement) (not(verbalEngagement)) (not(demonstrationEngagement)))
; :effect (and (not(triggerMove)))
; ;:effect (DEBUG)
; )
; (:action grab_
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition(and (at ?pawn ?from) (agent ?agent) (not(triggerMove)) (gestureEngagement) (not(verbalEngagement)) (not(demonstrationEngagement)) (userMove_1 ?pawn ?to) (location ?to) (not(free_loc ?from)) (gripper ?gripper) (piece ?pawn) (free ?gripper) (location ?from) (not(catch ?pawn ?from ?to)))
; :effect (and (not(free ?gripper)) (at ?pawn ?from) (location ?to) (catch ?pawn ?from ?to) )
; ;:effect(DEBUG)
; )
; (:action move_
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition(and (not(free ?gripper)) (location ?from) (catch ?pawn ?from ?to) (not(triggerMove)) (gestureEngagement) (not(verbalEngagement)) (not(demonstrationEngagement)) (location ?to) (free_loc ?to) (userMove_1 ?pawn ?to) (agent ?agent) )
; :effect (and (free_loc ?to) (carry ?agent ?gripper ?pawn) (select ?pawn ?to) )
; ;:effect(DEBUG)
; )
; (:action release_
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition(and (location ?from) (location ?to) (not(triggerMove)) (gripper ?gripper) (gestureEngagement) (not(verbalEngagement)) (not(demonstrationEngagement)) (free_loc ?to) (userMove_1 ?pawn ?to) (agent ?agent) (carry ?agent ?gripper ?pawn) (catch ?pawn ?from ?to) )
; :effect (and(rightMove_1) (at ?pawn ? ?to) )
; ;:effect(DEBUG)
; )
;Speech Engagement with user
; (:action first_attempt_move
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition(and (location ?from) (location ?to) (free_loc ?to) (not(gestureEngagement)) (userMove_1 ?pawn ?to) (agent ?agent) (not(verbalEngagement_1)) (catch ?pawn ?from ?to) )
; :effect (and (not(checkMove_1)) (not(rightMove)) (free_loc ?to) (carry ?agent ?gripper ?pawn) (select ?pawn ?to) )
; ;:effect(DEBUG)
; )
; (:action second_attempt_move
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition(and (location ?from) (location ?to) (free_loc ?to) (not(gestureEngagement)) (not(verbalEngagement_2)) (agent ?agent) (catch ?pawn ?from ?to) (userMove_2 ?pawn ?to))
; :effect (and (not(checkMove_2)) (not(rightMove)) (free_loc ?to) (not(at ?pawn ?from))(carry ?agent ?gripper ?pawn) (select ?pawn ?to) )
; ;:effect(DEBUG)
; )
; (:action third_attempt_move
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition(and (location ?from) (location ?to) (free_loc ?to) (not(gestureEngagement)) (not(verbalEngagement_3)) (agent ?agent) (catch ?pawn ?from ?to) (userMove_3 ?pawn ?to))
; :effect (and (not(checkMove_3)) (not(rightMove)) (free_loc ?to) (not(at ?pawn ?from))(carry ?agent ?gripper ?pawn) (select ?pawn ?to) )
; ;:effect (DEBUG)
; )
; (:action first_attempt_grab
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition(and (at ?pawn ?from) (agent ?agent) (not(gestureEngagement)) (not(verbalEngagement_1)) (userMove_1 ?pawn ?to) (location ?to) (not(free_loc ?from)) (gripper ?gripper) (piece ?pawn) (free ?gripper) (location ?from) (not(catch ?pawn ?from ?to)))
; :effect (and (not(free ?gripper)) (at ?pawn ?from) (location ?to) (catch ?pawn ?from ?to) )
; ;:effect(DEBUG)
; )
; (:action second_attempt_grab
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition(and (waitForUserMove_1) (not(gestureEngagement)) (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) )
; ;effect(DEBUG)
; )
; (:action third_attempt_grab
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition(and (not(verbalEngagement_3)) (not(gestureEngagement)) (userMove_3 ?pawn ?to) (agent ?agent) (not(free_loc ?from)) (location ?to) (not(free_loc ?from)) (gripper ?gripper) (piece ?pawn) (location ?from) (not(catch ?pawn ?from ?to)))
; :effect (and (not(free ?gripper)) (at ?pawn ?from) (location ?to) (catch ?pawn ?from ?to) )
; ;:effect (DEBUG)
; )
; (:action release_1st_attempt
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition (and (piece ?pawn) (rightMove_1) (firstAttempt) (userMove_1 ?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) (at ?pawn ? ?to) )
; ;:effect(DEBUG)
; )
;
; ;/*****************************************DEMONSTRATION ENGAGEMENT ALLTOGHETER *******************************************************************/
; (:action first_attempt_robot_move
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition(and (location ?from) (location ?to) (encourageUser) (free_loc ?to) (userMove_1 ?pawn ?to) (waitForUserMove_1)(agent ?agent) (not(demonstrationEngagement_1)) (catch ?pawn ?from ?to) )
; :effect (and (not(checkMove_1)) (not(rightMove)) (free_loc ?to) (carry ?agent ?gripper ?pawn) (select ?pawn ?to) )
; ;:effect(DEBUG)
; )
; (:action second_attempt_robot_move
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition(and (location ?from) (location ?to) (free_loc ?to) (not(gestureEngagement)) (not(verbalEngagement)) (not(demonstrationEngagement_2)) (agent ?agent) (catch ?pawn ?from ?to) (userMove_2 ?pawn ?to))
; :effect (and (not(checkMove_2)) (not(rightMove)) (free_loc ?to) (not(at ?pawn ?from))(carry ?agent ?gripper ?pawn) (select ?pawn ?to) )
; ;:effect(DEBUG)
; )
; (:action third_attempt_robot_move
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition(and (location ?from) (location ?to) (free_loc ?to) (not(gestureEngagement)) (not(verbalEngagement)) (not(demonstrationEngagement_3)) (agent ?agent) (catch ?pawn ?from ?to) (userMove_3 ?pawn ?to))
; :effect (and (not(checkMove_3)) (not(rightMove)) (free_loc ?to) (not(at ?pawn ?from))(carry ?agent ?gripper ?pawn) (select ?pawn ?to) )
; ;:effect (DEBUG)
; )
; (:action first_attempt_robot_grab
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition(and (at ?pawn ?from) (agent ?agent) (encourageUser) (waitForUserMove_1) (not(verbalEngagement)) (not(gestureEngagement)) (not(demonstrationEngagement_1)) (userMove_1 ?pawn ?to) (location ?to) (not(free_loc ?from)) (gripper ?gripper) (piece ?pawn) (free ?gripper) (location ?from) (not(catch ?pawn ?from ?to)))
; :effect (and (not(free ?gripper)) (at ?pawn ?from) (location ?to) (catch ?pawn ?from ?to) )
; ;:effect(DEBUG)
; )
; (:action second_attempt_robot_grab
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition(and (not(demonstrationEngagement_2)) (not(verbalEngagement))(not(gestureEngagement)) (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) )
; ;:effect(DEBUG)
; )
; (:action third_attempt_robot_grab
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition(and (not(demonstrationEngagement_3)) (not(verbalEngagement))(not(gestureEngagement)) (userMove_3 ?pawn ?to) (agent ?agent) (not(free_loc ?from)) (location ?to) (not(free_loc ?from)) (gripper ?gripper) (piece ?pawn) (location ?from) (not(catch ?pawn ?from ?to)))
; :effect (and (not(free ?gripper)) (at ?pawn ?from) (location ?to) (catch ?pawn ?from ?to) )
; ;:effect (DEBUG)
; )
; (:action robot_release_pawn_correct_position_user_success
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition (and (piece ?pawn) (rightMove)(not(verbalEngagement)) (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) (at ?pawn ? ?to) ))
; ;:effect(DEBUG)
; ;;check if the first move is the correct one
; (:action check_user_move_allowed_1
; :parameters( ?pawn ?from ?to)
; :precondition(and(piece ?pawn) (location ?from) (not(demonstrationEngagement_1)) (location ?to) (not(checkMove_1)) (catch ?pawn ?from ?to) (userMove_1 ?pawn ?to) (allowedMove ?pawn ?to) )
; :effect(and(rightMove) (firstAttempt) (rightMove_1) (not(waitForUserMove_1)))
; )
; (:action check_user_move_not_right_1
; :parameters( ?pawn ?from ?to)
; :precondition(and(piece ?pawn) (location ?from) (not(demonstrationEngagement_1)) (location ?to) (not(checkMove_1)) (catch ?pawn ?from ?to) (userMove_1 ?pawn ?to) (not(allowedMove ?pawn ?to) ) )
; :effect(and (not(rightMove)) (not(rightMove_1))(demonstrationEngagement_2) (not(secondAttempt))(not(waitForUserMove_1)))
; ;:effect(DEBUG)
; )
; (:action check_user_move_allowed_2
; :parameters( ?pawn ?from ?to)
; :precondition(and(piece ?pawn) (location ?from) (not(demonstrationEngagement_2)) (location ?to) (not(checkMove_2)) (catch ?pawn ?from ?to) (userMove_2 ?pawn ?to) (allowedMove ?pawn ?to) )
; :effect(and(rightMove) (rightMove_2) (not(waitForUserMove_2)))
; )
; (:action check_user_move_not_right_2
; :parameters( ?pawn ?from ?to)
; :precondition(and(piece ?pawn) (location ?from) (not(demonstrationEngagement_2)) (location ?to) (not(checkMove_2)) (catch ?pawn ?from ?to) (userMove_2 ?pawn ?to) (not(allowedMove ?pawn ?to) ))
; :effect(and (not(rightMove)) (demonstrationEngagement_3) (not(thirdAttempt)) (not(waitForUserMove_2)))
; ;:effect(DEBUG)
; )
; (:action check_user_move_allowed_3
; :parameters( ?pawn ?from ?to)
; :precondition(and(piece ?pawn) (location ?from) (not(demonstrationEngagement_3)) (not(checkMove_3)) (location ?to) (catch ?pawn ?from ?to) (userMove_3 ?pawn ?to) (allowedMove ?pawn ?to) )
; :effect(and(rightMove) (rightMove_3) (not(waitForUserMove_3)))
; ;:effect(DEBUG)
; )
; (:action check_user_move_not_right_3
; :parameters( ?pawn ?from ?to)
; :precondition(and(piece ?pawn) (location ?from) (not(releaseFail)) (not(demonstrationEngagement_3)) (not(checkMove_3)) (location ?to) (catch ?pawn ?from ?to) (userMove_3 ?pawn ?to) (not(allowedMove ?pawn ?to) ) )
; :effect(and(not(rightMove)) (releaseFail) (not(waitForUserMove_3)))
; ;:effect(DEBUG)
; )
; ; (:action robot_release_pawn_right_position_user_fail
; ; :parameters( ?agent ?gripper ?pawn ?from ?to)
; ; :precondition (and (piece ?pawn) (releaseFail) (not(rightMove_3))(not(rightMove)) (not(verbalEngagement)) (suggestSolution ?pawn ?to) (not(gestureEngagement)) (agent ?agent)(location ?from) (free_loc ?to) (location ?to) (not(at ?pawn ?to)) )
; ; ;: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(not(rightMove_3)) (suggestSolution ?pawn ?to) (releasedPawn) )
; ; ;:effect(DEBUG)
; ; )
; ;Levels of engagement for speech
; (:action demonstration_engagement_lev_1
; :parameters()
; :precondition(and (demonstrationEngagement) (demonstrationEngagement_1))
; :effect(and (not(encourageUser)))
; )
; (:action robot_encourage_user_to_suggest_move
; :parameters()
; :precondition (and(not(encourageUser)) (demonstrationEngagement) )
; :effect( and(encourageUser) (not(demonstrationEngagement_1)) (waitForUserMove_1))
; ;:effect (DEBUG)
; )
; (:action demonstration_engagement_lev_2
; :parameters()
; :precondition(and (demonstrationEngagement) (not(waitForUserMove_1)) (demonstrationEngagement_2) (not(demonstrationEngagement_1)) (checkMove_2) (not(secondAttempt)) )
; :effect(and (not(suggestSubset)) )
; ;:effect(DEBUG)
; )
; (:action robot_give_subset_solution_asking_user_to_choose
; :parameters( ?pawn ?from ?to_1 ?to_2 ?to_3)
; :precondition(and (not(suggestSubset)) (demonstrationEngagement) (location ?to_1) (at ?pawn ?from) (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))
; :effect(and (suggestSubset) (not(demonstrationEngagement_2)) (waitForUserMove_2))
; ;:effect(DEBUG)
; )
; (:action demonstration_engagement_lev_3
; :parameters()
; :precondition(and (demonstrationEngagement) (not(waitForUserMove_2)) (checkMove_3) (demonstrationEngagement_3) (not(demonstrationEngagement_1)) (not(demonstrationEngagement_2)) (not(thirdAttempt)))
; :effect(and (not(suggestAnswer)))
; ;:effect(DEBUG)
; )
; (:action robot_show_user_moving_pawn_right_position
; :parameters( ?pawn ?to)
; :precondition(and (not(suggestAnswer)) (demonstrationEngagement) (suggestSolution ?pawn ?to) (not(at ?pawn ?to)) (piece ?pawn) (location ?to))
; :effect(and (suggestAnswer) (not(demonstrationEngagement_3)) (waitForUserMove_3) )
; ;:effect(DEBUG)
; )
; (:action demonstration_engagement_only_lev_4
; :parameters()
; :precondition(and (demonstrationEngagement) (not(waitForUserMove_3)) (checkMove_4) (demonstrationEngagement_4) (not(demonstrationEngagement_1)) (not(demonstrationEngagement_2))(not(demonstrationEngagement_3)) (not(forthAttempt)))
; :effect(and (not(performDemonstration)))
; ;:effect(DEBUG)
; )
; (:action demonstrate_how_to_perform_move
; :parameters( ?pawn ?from ?to)
; :precondition(and (location ?from) (location ?to) (demonstrationEngagement) (not(performDemonstration)) (suggestSolution ?pawn ?to) (piece ?pawn))
; ;:effect(and (suggestSubset) (verbalEngagement_2) (not(waitForUserMove_2)) )
; :effect(and (waitForUserMove_4) (performDemonstration) (not(demonstrationEngagement_4)))
; )
; (:action forth_attempt_robot_grab
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition(and (not(demonstrationEngagement_4))(performDemonstration) (not(verbalEngagement))(not(gestureEngagement)) (suggestSolution ?pawn ?to) (agent ?agent) (not(free_loc ?from)) (location ?to) (not(free_loc ?from)) (gripper ?gripper) (piece ?pawn) (location ?from) (not(catch ?pawn ?from ?to)))
; :effect (and (not(free ?gripper)) (at ?pawn ?from) (location ?to) (catch ?pawn ?from ?to) )
; ;:effect (DEBUG)
; )
; (:action forth_attempt_robot_move
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition(and (location ?from) (location ?to) (free_loc ?to) (not(gestureEngagement)) (not(verbalEngagement)) (not(demonstrationEngagement_4)) (agent ?agent) (catch ?pawn ?from ?to) (suggestSolution ?pawn ?to))
; :effect (and (not(checkMove_4)) (not(rightMove)) (free_loc ?to) (not(at ?pawn ?from))(carry ?agent ?gripper ?pawn) (select ?pawn ?to) )
; ;:effect (DEBUG)
; )
; (:action robot_release_pawn_correct_position
; :parameters( ?agent ?gripper ?pawn ?from ?to)
; :precondition (and (piece ?pawn) (not(verbalEngagement)) (not(checkMove_4)) (suggestSolution ?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) (at ?pawn ? ?to) ))
; ;:effect(DEBUG)
;/**********************************************FIRST ATTEMPT******************************************************************************/
(:action speech_engagement_only_lev_1
:parameters()
:precondition(and (verbalEngagement_1) )
:effect(and (not(encourageUser)) )
;:effect(DEBUG)
)
(:action encourage_user_only_lev_1
:parameters()
:precondition(and (not(encourageUser)) (verbalEngagement_1) )
:effect(and (waitForUserMove_1) (verbalEngagement))
;:effect(debug)
)
;;User will add a move
(: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))
;:effect(DEBUG)
)
(: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))
;:effect(DEBUG)
)
(: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) )
:effect(and (firstAttempt) (rightMove_1) (not(waitForUserMove_1)) (checkMove_1))
;:effect(DEBUG)
)
(: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)
)
(: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))
;:effect(DEBUG)
)
; (:action release_lev_1_wrong_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) (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 (not(rightMove_1)) (at ?pawn ?to) (releasedPawn))
; ;:effect(DEBUG)
; )
;;;///***********************************************SECOND ATTEMPT ************************************************************************/
(:action speech_engagement_only_lev_2
:parameters()
:precondition(and (verbalEngagement_2) )
:effect(and (not(suggestSubset)) (not(waitForUserMove_2)) )
;:effect(DEBUG)
)
(: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))
;:effect(and (verbalEngagement_2) (not(waitForUserMove_2)) )
:effect(and (waitForUserMove_2) (verbalEngagement)(suggestSubset))
;:effect(debug)
)
;;User will add a move
(: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) )
;:effect(DEBUG)
)
(: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) )
;:effect(DEBUG)
)
(: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) )
:effect(and (firstAttempt) (rightMove_2) (not(waitForUserMove_2)) (checkMove_2))
;:effect(DEBUG)
)
(: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) ) )
:effect(and (not(rightMove_2))(secondAttempt) )
;:effect(DEBUG)
)
(: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))
;:effect(DEBUG)
)
;;;///***********************************************THIRD ATTEMPT ************************************************************************/
(:action speech_engagement_only_lev_3
:parameters()
:precondition(and (verbalEngagement_3) )
:effect(and (not(suggestAnswer))(not(waitForUserMove_3)))
;:effect(DEBUG)
)
(: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))
;:effect(and (suggestSubset) (verbalEngagement_2) (not(waitForUserMove_2)) )
:effect(and (waitForUserMove_3) (verbalEngagement) (suggestAnswer))
)
;;User will add a move
(: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) )
;:effect(DEBUG)
)
(: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) )
;:effect(DEBUG)
)
(: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) )
:effect(and (firstAttempt) (rightMove_3) (not(waitForUserMove_3)) (checkMove_3))
;:effect(DEBUG)
)
(: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) ) )
:effect(and (not(rightMove_3))(thirdAttempt) )
;:effect(DEBUG)
)
(: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))
;:effect(DEBUG)
)
;;;///***********************************************FORTH ATTEMPT with DEMONSTRATION ************************************************************************/
(:action speech_engagement_only_lev_4
:parameters()
:precondition(and (verbalEngagement_4) )
:effect(and (not(performDemonstration)))
;:effect(DEBUG)
)
(: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)) )
:effect(and (waitForUserMove_4) (verbalEngagement))
)
;;User will add a move
(: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)) )
;:effect(DEBUG)
)
(: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) )
;:effect(DEBUG)
)
(: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))
;:effect(DEBUG)
)
)
(DEFINE (PROBLEM STRIPS-GAMETEST)
(:DOMAIN GAME-STRIPS)
(:OBJECTS ROBOT HUMAN P1 P2 P3 P4 P5 L1 L2 L3 L4 L5 L6 L7 L8 L9 L10 HAND)
(:INIT
(SUGGESTEDMOVE P2 L3)
(SUGGESTEDMOVE P2 L1)
(SUGGESTEDMOVE P2 L2)
(verbalEngagement)
(verbalEngagement_2)
;FIRST STEP
; (demonstrationEngagement)
; (demonstrationEngagement_1)
; (demonstrationEngagement_2)
; (demonstrationEngagement_3)
; ;SECOND_STEP
; (USERMOVE_1 P1 L2)
; ;THIRD_STEP
; (SUGGESTEDMOVE P1 L2)
; (SUGGESTEDMOVE P1 L1)
; (SUGGESTEDMOVE P1 L3)
(PIECE P1)
(PIECE P2)
(PIECE P3)
(PIECE P4)
(PIECE P5)
(LOCATION L1)
(LOCATION L2)
(LOCATION L3)
(LOCATION L4)
(LOCATION L5)
(LOCATION L6)
(LOCATION L7)
(LOCATION L8)
(LOCATION L9)
(LOCATION L10)
(GRIPPER HAND)
(FREE_LOC L1)
(FREE_LOC L2)
(FREE_LOC L3)
(FREE_LOC L4)
(FREE_LOC L5)
(AGENT HUMAN)
(FREE HAND)
(AT P3 L7)
(AT P1 L8)
(AT P2 L9)
(AT P4 L10)
(AT P5 L6)
;;Predicate used for all the behaviour
(suggestAnswer)
(encourageUser)
(suggestSubset)
(sendTricks)
(performDemonstration)
(ALLOWEDMOVE P1 L1)
(ALLOWEDMOVE P2 L2)
(ALLOWEDMOVE P3 L3)
(ALLOWEDMOVE P4 L4)
(ALLOWEDMOVE P5 L5)
(checkMove_1)
(checkMove_2)
(checkMove_3)
)
(:GOAL(waitForUserMove_2))
;(:GOAL(DEBUG))
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment