我正在尝试编写一个PDDL域。我有4种类型。我的问题是,在指定其中一个谓词时:
At(?x - type ?l - location)我希望x能够接受其中的三种类型,但它只允许我做一种。我该怎么办?
发布于 2021-04-22 16:53:59
syntax of PDDL期望您的谓词声明如下所示:
(at ?x - entity ?l - location)仔细检查括号的用法。
否则,你就做对了。通过期望entity是agent、object和robot的超类型,您将接受这些子类型中的任何一个。
但是请注意,在许多规划器中,类型object已经被隐式定义为根类型。我建议您将其重命名为physical_object。
发布于 2021-04-22 17:33:21
实际上,我创建了一个名为entity的类型,然后指定我的机器人、代理和对象类型都是实体:
(:types
entity
agent - entity
object - entity
robot - entity
location
)
(:predicates
At(?x - entity, ?l - location)
)https://stackoverflow.com/questions/67208973
复制相似问题