75.1k views
2 votes
Consider a robot whose operation is described by the following PDDL operators: Op(Go(x,y),At(Robot,x),«At(Robot,x)ɅAt(Robot,y)) Op(Pick(o),At(Robot,x)^At(0,x),¬At(0,x)/Holding(o)) Op(Drop(o),At(Robot,x)/Holding(o),At(0,x)^¬Holding(o) The operators allow the robot to hold more than one object. Show how to modify them with an EmptyHand predicate for a robot that can hold only one object. a. b . Assuming that these are the only actions in the world, write a successor-state axiom for EmptyHand

1 Answer

4 votes

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.

User Carlpett
by
7.7k points