Teleo-Reactive Programs and the Triple-Tower Architecture

I describe an architecture for linking perception and action in a robot. It consists of three “towers” of layered components. The “perception tower” contains rules that create increasingly abstract descriptions of the current environmental situation starting with the primitive predicates produced by the robot’s sensory apparatus. These descriptions are deposited in a “model tower” which is continuously kept faithful to the current environmental situation by a “truthmaintenance” system. The predicates in the model tower, in turn, evoke appropriate action-producing programs in the “action tower. ” It is proposed that the actions be written as “teleo-reactive” programs---ones that react dynamically to changing situations in ways that lead inexorably toward their goals. Programs in the action tower are organized more-or-less hierarchically---bottoming out in programs that cause the robot to take primitive actions in its environment. The effects of the actions are sensed by the robot’s sensory mechanism, completing a sense-model-act cycle that is quiescent only at those times when the robot’s goal is perceived to be satisfied. I illustrate the operation of the architecture using a simple block-stacking task. I. Agent Architectures Can anything in general be said about intelligent agent architectures? Just as there are millions of species of animals, occupying millions of different niches, I expect that there will be many species of artificial agents---each a specialist for one of a countless number of tasks. The exact forms of their architectures will depend on their tasks and their environments. For example, some will work in time-stressed situations in which reactions to unpredictable and changing environmental states must be fast and unequivocal. Others will have the time and the knowledge to predict the effects of future courses of action so that more rational choices can be made. Even though there will probably never be a single, all-purpose agent architecture, there is one that I think might play a prominent role in many future systems. It can be viewed as an elaboration of 1 Parts of this section are adapted from Chapter 25 of my book, Artificial Intelligence: A New Synthesis, San Francisco: Morgan Kaufmann, 1998. 2 the first two levels of the popular three-level architectures that have been prominent in robotics research. A. Three-Level Architectures One of the first integrated intelligent agent systems was a collection of computer programs and hardware known as “Shakey the Robot” (Nilsson, 1984). Shakey's design was an early example of what has come to be called a three-level architecture. The levels correspond to different paths from sensory signals to motor commands. At the lowest level of such architectures are actions that use a short and fast path from sensory signals to effectors. Important “reflexes” are handled by this pathway---such as “stop” when touch sensors detect a close object ahead. Servo control of motors for achieving set-point targets for shaft angles and so on are also handled by these low-level mechanisms. The intermediate level combines the low level actions into more complex behaviors---ones whose realization depends on the situation (as sensed and modeled) at the time of execution. This level uses more abstract (or more “coarse”) perceptual predicates and more complex actions than do the lower ones. Whereas reflex actions are typically evoked by primitive sensory signals, the coordination of intermediate-level actions requires more elaborate perceptual processing. The third level usually involves systems that can generate plans consisting of a sequence of intermediate level programs. The three-level architecture has been used in a variety of robot systems. As a typical example, see (Connell, 1992). B. The Triple-Tower Architecture A generalization of the three-level architecture has been proposed by Albus and colleagues (Albus, 1991; Albus, McCain, & Lumia, 1989). They envision hierarchies or “towers” of perceptual, modeling, and action processing. We propose here a particular instantiation of their triple-tower architecture. The novel features of our proposal are: 1. The use of teleo-reactive programs in the action tower 2. The use of perceptual rules in the perception tower. These rules create increasingly abstract predicates from simpler ones 3. The use of a truth-maintenance system (TMS) to keep the predicates in the model tower continuously faithful to changes in the sensed environment My version of this triple-tower architecture is illustrated in Figure 1. The operation of such a system would proceed as follows: Aspects of the environment that are relevant to the agent’s roles are sensed and converted to primitive predicates and values. These are stored at the lowest level of the model tower. Their presence there may immediately evoke primitive actions at the bottom of the action tower. These actions, in turn, affect the environment, and some of these effects may be sensed---creating a loop in which the environment itself might play an important computational role. 3 The perception tower consists of rules that convert predicates stored in the model tower into more abstract predicates which are then deposited at higher levels in the model tower. These processes can continue until even the highest levels of the model tower are populated. Fig. 1. A Triple-Tower Architecture The action tower consists of a loose hierarchy of action routines that are triggered by the contents of the model tower. The lowest level action routines are simple reflexes---evoked by predicates corresponding to primitive percepts. More complex actions are evoked by more abstract predicates appropriate for those actions. High-level actions “call” other actions until the process bottoms out at the primitive actions that actually affect the environment. We also allow for the possibility that the actions themselves might affect the model tower directly (in addition to the loop through the environment) by writing additional and/or altered content. With the ability both to read from and write in memory, the triple-tower structure is a perfectly general computational architecture. Sensors Model Tower (Predicates + TMS) Perception Tower (Rules) Action Tower (Action Routines)