PDDL在线规划器与POPF规划器差异及技术咨询
PDDL规划器相关疑问解析
我做了一个简单的拾取-放置测试:把物体从一个位置移到另一个位置,分别用在线PDDL规划器和伦敦国王学院(KCL)的POPF、MARVIN规划器跑了一遍,所有规划器都输出了有效规划,但结果差异明显:
- 在线规划器生成的最优规划:
(move bot startloc loc1) (pick bot ball loc1) (move bot loc1 dropzone) (drop bot ball dropzone)
- KCL的POPF和MARVIN生成的非最优规划:
(move bot startloc dropzone) (move bot dropzone loc1) (pick bot ball loc1) (move bot loc1 dropzone) (drop bot ball dropzone)
我有两个核心疑问:
- 为什么POPF会额外生成move动作,绕经dropZone再前往物品所在的loc1?
- 该在线规划服务采用的规划策略/规划器类型是什么?
测试用Domain文件(domain.pddl)
(define (domain drop) (:requirements :strips :typing) (:types robot location item ) (:predicates (robotAt ?r - robot ?l - location) (gripperEmpty ?r - robot) (itemAt ?i - item ?l - location) (itemPicked ?r - robot ?i - item) ) ;define actions here (:action move :parameters (?r - robot ?from ?to - location) :precondition (and (robotAt ?r ?from)) :effect (and (robotAt ?r ?to) (not (robotAt ?r ?from))) ) (:action pick :parameters (?r - robot ?item - item ?itemLocation - location) :precondition (and (gripperEmpty ?r) (robotAt ?r ?itemLocation) (itemAt ?item ?itemLocation)) :effect (and (itemPicked ?r ?item) (not (gripperEmpty ?r)) ) ) (:action drop :parameters (?r - robot ?item - item ?dropLocation - location) :precondition (and (itemPicked ?r ?item) (robotAt ?r ?dropLocation) ) :effect (and (not (itemPicked ?r ?item)) (gripperEmpty ?r) (itemAt ?item ?dropLocation)) ) )
测试用Problem文件(problem.pddl)
(define (problem single_drop) (:domain drop) (:objects bot - robot startLoc - location loc1 - location dropZone - location ball - item ) (:init (robotAt bot startLoc) (gripperEmpty bot) (itemAt ball loc1) ) (:goal (and (itemAt ball dropZone) )) )
内容的提问来源于stack exchange,提问作者Pranav Avekar
相关产品推荐
相关产品推荐

