I am trying to write a PDDL domain. I have 4 types. My issues is that when specifiying one of the predicates:
At(?x - type ?l - location)
I want x to be able to take on three of the types, but it only allows me to do one. What should I do?
I am trying to write a PDDL domain. I have 4 types. My issues is that when specifiying one of the predicates:
At(?x - type ?l - location)
I want x to be able to take on three of the types, but it only allows me to do one. What should I do?
The syntax of PDDL expects your predicate declaration to look as follows:
(at ?x - entity ?l - location)
Check closely the use of parentheses.
Otherwise, you are doing it right.
By expecting an entity
that is a supertype of agent
, object
and robot
, you will accept any of these subtypes.
However note that in many planners, the type object
is already implicitly defined as the root type. I recommend you rename it into physical_object
.
Okay so essentially what I did was I created a type called entity and then specififed that my robot, agent and object types are entities: