next up previous
Next: Example of how ROGUE Up: Execution and Monitoring Previous: Executing Actions

Monitoring

 

There are two types of events that ROGUE needs to monitor in the environment.

The first centers around actions. Each time ROGUE executes an action, it needs to verify its outcome because actions may have multiple outcomes or fail unexpectedly. ROGUE may need to invoke replanning, or select actions at a branching condition. ROGUE also needs to verify the preconditions of an action before executing it because the world may change, invalidating one of the system's beliefs. ROGUE uses a layered verification process, incrementally calling methods with greater cost and accuracy, until a predefined confidence threshold is reached. Action monitors are invoked only when the action is executed.

The second centers around exogenous events in the environment. Certain events may cause changes in the environment that affect current goals, or opportunities may arise that ROGUE can take advantage of. For example, ROGUE can monitor battery power, or examine camera images for open doors or particular objects. Environment monitors are invoked when relevant goals are introduced to the system.

Both types of monitoring procedures specify (1) what to monitor and (2) the methods that can be used to monitor it. Action monitors monitor the preconditions and effects of the action, while environment monitors are determined by the programmer. The action monitors, based on the planning domain model, provide a focus for execution monitoring. It is an open problem to autonomously decide what exogenous events to monitor that will be relevant for planning.

Although action monitoring is sequential and of limited time-span, while environment monitoring is parallel and continuous, the two sets of procedures have similar effects on planning.

Once ROGUE has done the required monitoring, ROGUE needs to update PRODIGY4.0's state description as appropriate. In execution monitoring, the update occurs when the object is detected, or when battery power falls below a certain threshold. In action monitoring, the critical update is when the actual outcome of the monitoring does not meet the expected outcome. These updates will force PRODIGY4.0 to re-examine its plan, adding or discarding operators as necessary.

If the primary effect of the action has been unexpectedly satisfied, ROGUE adds the knowledge to PRODIGY4.0's state description and PRODIGY4.0 does not attempt to achieve it. Observing the environment and maintaining a state description in this way improves the efficiency of the system because it will not attempt redundant actions.

If a required precondition is no longer true as a side-effect of some other action or environment monitoring, ROGUE deletes the relevant precondition from PRODIGY4.0's state. PRODIGY4.0 will therefore replan in an attempt to find an action that will re-achieve it.

In action monitoring, if the action fails, ROGUE will first try the built-in recovery methods. These recovery methods are very simple; more complex ones are treated as separate operators for PRODIGY4.0 to reason about. For example, ROGUE will try calling the navigation routine a predefined number of times before deciding that the action completely failed. At the scene of a pickup or delivery, if ROGUE times-out while waiting for a response to a query, ROGUE will prompt for a user a second time before failing. If, despite the built-in recovery methods, ROGUE determines that the action has completely failed, ROGUE will delete the effect from PRODIGY4.0's state description, and PRODIGY4.0 will replan to achieve it.

Occasionally during environment monitoring, knowledge will unexpectedly be added to the state that causes an action to become executable, or a task to become higher priority. Each time PRODIGY4.0 makes a decision, it re-examines all of its options, and will factor the new action or goal into the process.

In this manner, ROGUE is able to detect execution failures and compensate for them, as well as to respond to changes in the environment. The interleaving of planning and execution reduces the need for replanning during the execution phase and increases the likelihood of overall plan success because the planner is constantly being updated with information about changes in the world. It allows the system to adapt to a changing environment where failures can occur.



next up previous
Next: Example of how ROGUE Up: Execution and Monitoring Previous: Executing Actions

Karen Zita Haigh
Mon Oct 6 14:33:27 EDT 1997