Final answer:
To constrain the robot to hold only one object, we add the EmptyHand predicate to the preconditions and effects of the PDDL operators. The successor-state axiom for EmptyHand specifies that the robot's hand is empty if it drops an object or performs no pick action while it was already empty-handed.
Step-by-step explanation:
The student is asking how to modify the operators of a robot's actions in a Planning Domain Definition Language (PDDL) format to account for a scenario where the robot can only hold one object at a time. This involves enforcing a constraint with the EmptyHand predicate.
To modify the operators to ensure the robot can only hold one object, we need to add the EmptyHand predicate to the preconditions and effects. The modified operators would look like this:
- Op(Go(x,y), At(Robot,x) ^ EmptyHand, «At(Robot,x)&At(Robot,y))
- Op(Pick(o), At(Robot,x) ^ At(o,x) ^ EmptyHand, ¬At(o,x) / Holding(o) ^ ¬EmptyHand)
- Op(Drop(o), At(Robot,x) ^ Holding(o), At(o,x) ^ EmptyHand)
The successor-state axiom for EmptyHand would be:
EmptyHand after an action if and only if the robot either drops an object or if the robot was already empty-handed and does not pick any new object up.