Execution Monitoring of High-Level Robot Programs.

   Giuseppe De Giacomo, Ray Reiter and Mikhail Soutchanski

Imagine a robot that is executing a program on-line, and,
insofar as it is reasonable to do so, it wishes
to continue with this on-line program execution, no matter what exogenous events
occur in the world. Execution monitoring is the robot's process of
observing the world for discrepancies between the actual world and its internal
representation of it, and recovering from such discrepancies.


We provide a situation calculus-based account of such on-line program
executions, with monitoring. This account relies on a specification for a
single-step interpreter for the logic programming language Golog. 
The theory is supported by an implementation that is illustrated 
by a standard blocks world in which a robot is executing a Golog program to
build a suitable tower. The monitor makes use of a simple kind of planner
for recovering from malicious exogenous actions performed by
another agent. After performing the sequence of actions
generated by the recovery procedure, the robot eliminates the discrepancy 
and resumes executing its tower-building program.