aiddl-test.planning.task-network.dock-worker-robot.domain.aiddl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aiddl-common-scala Show documentation
Show all versions of aiddl-common-scala Show documentation
Provides common types and algorithm implementations for the fast prototyping integrative AI systems with the AIDDL framework.
The newest version!
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; AIDDL version of the 'Dock Worker Robot' methods described in:
;; Automated Planning - Theory and Praxis
;; by Malik Ghallab and Dana Nau and Paolo Traverso
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(#mod self org.aiddl.test.planning.task-network.dwr)
(#req EVAL org.aiddl.eval.namespace)
(#nms nms-basic basic-ops@EVAL)
(#nms nms-type type-ops@EVAL)
(#req HTN org.aiddl.common.planning.task-network)
(^Method@HTN take-and-put
(substitute
(
name:(take-and-put ?c ?k ?l1 ?l2 ?p2 ?p2 ?x1 ?x2)
task:(move-topmost-container ?p1 ?p2)
signature:{
?c:t_container
?k:t_crane
?l1:t_location
?l2:t_location
?p1:t_pile
?p2:t_pile
?x1:t_container
?x2:t_container }
preconditions:{
(top ?c ?p1) : true
(on ?c ?x1) : true
(attached ?p1 ?l1) : true
(belong ?k ?l1) : true
(attached ?p2 ?l2) : true
(top ?x2 ?p2) : true
}
sub-tasks:[ t1 t2 ]
)
{
t1: (take ?k ?l1 ?c ?x1 ?p1)
t2: (put ?k ?l2 ?c ?x2 ?p2)
})
)
(^Method@HTN recursive-move
(
name:(recursive-move ?p ?q ?c ?x)
task:(move-stack ?p ?q)
signature:{?p:t_pile ?q:t_pile ?c:t_container ?x:t_container}
preconditions:{
(top ?c ?p) : true
(on ?c ?x) : true
}
sub-tasks:[(move-topmost-container ?p ?q) (move-stack ?p ?q)]
)
)
(^Method@HTN do-nothing
(
name:(do-nothing ?p ?q)
task:(move-stack ?p ?q)
signature:{?p:t_pile ?q:t_pile}
preconditions:{
(top pallet ?p) : true
}
sub-tasks:[]
)
)
(^Task@HTN u1 (move-stack p1a p1b))
(^Task@HTN u2 (move-stack p1b p1c))
(^Task@HTN u3 (move-stack p2a p2b))
(^Task@HTN u4 (move-stack p2b p2c))
(^Task@HTN u5 (move-stack p3a p3b))
(^Task@HTN u6 (move-stack p3b p3c))
(^Method@HTN move-each-twice
(
name:(move-each-twice)
task:(move-all-stacks)
preconditions:{ }
sub-tasks:[$u1 $u2 $u3 $u4 $u5 $u6]
)
)
(^set M { $take-and-put $recursive-move $do-nothing $move-each-twice })
© 2015 - 2025 Weber Informatics LLC | Privacy Policy