Skip to content

Help regarding Hierarchical planning #578

Closed Answered by arbimo
MannavaVivek asked this question in Q&A
Discussion options

You must be logged in to vote

The problem in the model is in the two lines:

 t1 = m.add_subtask(move, m.robot, m.source, on(m.objects))
 t3 = m.add_subtask(move, m.objects, at(m.robot), m.destination)

There you use the value of non-static fluents (at, on). This is ambiguous as it is unclear at which time the fluent should be evaluated and this would impact the value passed to the subtasks.
Instead you should use a parameter (that is, invariant in time), whose value may be restricted in preconditions.

Here is a corrected model (with other minor fixes). Note that ltmp is only implicitly constrained by its usage but you may as well impose its value in preconditions.

m = Method("move-object-actual", objects=Objects, robot=

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by MannavaVivek
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants