PDDL (Planning Domain Definition Language)
Robotics & Perception/Basic

PDDL (Planning Domain Definition Language)

이 글은 필자의 이해를 돕기 위해 작성된 글입니다. 참고자료1, 참고자료2

PDDL은 "classical" planning task의 표준 encoding language입니다. PDDL planning task는 다음과 같이 이루어져 있습니다.

  • problem.pddl
    • Objects: 존재하는 물체들
    • Initial state: 시작 state
    • Goal specification: 우리가 원하는 goal
# gripper-four.pddl
(define (problem <problem name ex. gripper-four>)
	(:domain <domain name ex. gripper>)
	<PDDL code for objects>
   	<PDDL code for initial state>
    	[...]
    	<PDDL code for goal specification>
)
  • domain .pddl
    • Predicates: 물체들에 대한 제약
    • Actions/Operators: world를 바꾸기 위한 방식들
      • 각 action 당 description, precondition, 과 effect로 이루어져있다. Precondition과 effect는 predicate로 이루어져있다.
# gripper.pddl
(define (domain <domain name ex. gripper>)
	<PDDL code for predicates>
    <PDDL code for first action>
    [...]
    <PDDL code for last action>
)

 

예를 들면 다음과 같이 만들 수 있다.

problem pddl
domain pddl