- Introduce a factored representation language called Planning Domain Definition Language (PDDL) that allows for compressive expressiveness of the planning domain (general application space such as logistics) and problem (the specific logistics task we face).
- Solve the planning problem by using domain-independent solvers that are able to reason over the PDDL expressed domain and problem. The domain independence is probably not the most efficient way to solve a planning problem but it is the most general and flexible way to do so and the associated tradeoff is worth making.
- The domain model written in a planning language and in the so called domain file.
- A problem definition that describes the initial state and the desired goal state using the domain model’s terminology; and produces as output a plan, that is, a sequence of actions that takes the agent from the initial state to the goal state.

PDDL Language Constructs
PDDL Domain File
PDDL expresses the four things we need to plan a sequence of actions. The set of all predicates and action schemas are defined in the domain file () as shown next.| Domain Syntax | Description |
|---|---|
| Types | A description of the possible types of objects in the world. A type can inherit from another type. |
| Constants | The set of constants, which are objects which appear in all problem instances of this domain. |
| Predicates | A predicate is the part of a sentence or clause containing a verb and stating something about the subject. Each predicate is described by a name and a signature, consisting of an ordered list of types. Properties of the objects (contained in the problem specification) we are interested in. Each property evaluates to TRUE or FALSE. The domain also describes a set of derived predicates, which are predicates associated with a logical expression. The value of each derived predicate is computed automatically by evaluating the logical expression associated with it. |
| Actions / Operators | Actions are described by action schemas that effectively define the functions needed to do problem-solving search. The schema consist of the name, the signature or the list of all the boolean variables that are ground and functionless, a precondition and effect. The signature is now an ordered list of named parameters, each with a type. |
| The precondition is a logical formula, whose basic building blocks are the above mentioned predicates, combined using the standard first-order logic logical connectives. The predicates can only be parametrized by the operator parameters, the domain constraints, or, if they appear within the scope of a forall or exists statement, by the variable introduced by the quantifier. | |
| The effect is similar, except that it described a partial assignment, rather than a formula, and thus can not contain any disjunctions. | |
| In PDDL a state is a conjunction of ground boolean predicates which means that if the predicate has any arguments they are constants (grounded) without any variables. For example, is a state expression. is distinct than . All fluents that are not specified are assumed to be FALSE - the so-called closed world assumption. |

- Blocks are picked up and put down by the arm
- Blocks can be picked up only if they are clear, i.e., without any block on top
- The arm can pick up a block only if the arm is empty, i.e., if it is not holding another block, i.e., the arm can be pick up only one block at a time
- The arm can put down blocks on blocks or on the table
| Problem Syntax | Description |
|---|---|
| Initial State | Each state is represented as conjunction of ground boolean variables. For example, is a state expression. is distinct than . All fluents that are not specified are assumed to be FALSE. |
| Goal | All things we want to be TRUE. The goal is like a precondition - a conjunction of literals that may contain variables. |
PDDL Tools
Use the PDDL VSCode extension as described here
to invoke this planning server and ensure you understand the ropes of using PDDL planners. The blocks word problem is a classic problem employed in the International Planning Competition (IPC) 2000. For non-trivial examples in robotics see Plansys2 - any AI engineer must know and understand the ROS2 platform.

