3. Behaviour Based Artificial Intelligence
3.2. Examples of Behaviour Based Control Architectures
3.2.3. The Subsumption Architecture
In 1986 Brooks published a paper entitled "A Robust Layered Control System For A Mobile Robot" [Brooks86]. The paper was one of the first reports of the now prolific stream of work resulting from the new approach to AI (other publications by Brooks that expand on this work include [Brooks89] and [Brooks90b]). It presented the Subsumption Architecture and an example o f a real-world demonstration using the described techniques to control the movement and navigation of a relatively simple mobile robot. The behaviour of the robot was reported to be
reliable and robust and achieved cheaply with a minimum of computational resources. This was com pared to attempts at using traditional AI techniques to do similar tasks (e.g. the robot Shakey, developed at the Stanford University AI Laboratory [Nilsson84]). The comparison is still an impressive demonstration of the power and success of these newer methods.
The Subsumption Architecture is a bottom-up behaviour-oriented implementation of a layered network of semi-synchronous augmented finite state machine processes. It provides a mechanism that enables the real-time control structures of mobile robots to be built up in layers starting with very basic reactive response and reflexes. Further layers of the system can be added without the need to modify already-operational lower ones. One of the main characteristics of the system, one that typifies that of all BBAI research, is the nature of the interaction of the layers with sensors and actuators and thus with the real-world. Rather than using a functional approach which leads to a sequential pipe-line mechanism of sensors sensor-processing map-building action- planning action-realisation actuators (or something similar) the Subsumption Architecture results in a massively parallel mechanism with modules that have access to virtually any sensory or internal information. The redundancy that results enhances the system's perform ance by m aking it more robust and more able to respond quickly (as a reflex) to dangerous situations.
The mechanism consists of a number of finite state machines that have been augmented with real-time clock information, hence: Augmented Finite State Machines or AFSM s. The AFSMs are interconnected via single-element buffers and "wires". Information is not stored in the buffer, but only the value of the most recently-received wire signal. Consequently it is up to the AFSM to respond in some suitable way as messages can be lost if new ones arrive before the old ones have been used. The inputs and outputs of a particular AFSM may be inhibited or suppressed by a wire output of another AFSM. Inhibition is applied to a module's output and prevents this output from reaching its destination. Suppression affects the input to an AFSM. Its effect is similar to that of an inhibition but additionally the suppressing AFSM forces a new value onto the wire. Each AFSM also has a reset default input wire. Figure 3.5 below presents a single AFSM .
Inputs Real-time: clock Finite state machine O utputs
Figure 3.5. An augmented finite state machine and its interconnections: S: Suppressor; D: Default; I: Inhibitor.
Each AFSM acts on an asynchronous basis; there is no form of built-in handshaking operation (although this mechanism may be programmed in by the designer should this be desired). The system is, however, loosely synchronised by a characteristic time constant which determines the real-time processing rate of the AFSM. In other words the clock ticks of the A FSM real-time clock dictate the frequency at which the input registers are read and processed. This has an important effect. In normal software (software that does not have a similar real-time construct) the system slows down as the program becomes larger and more complex. The speed of execution is effectively determined by the size of the program. In stand-alone utility-type software (e.g. data-bases, spreadsheets, word processors etc.) the only effect that this has is to raise the user annoyance factor. However, in systems that interact directly with the real-world and that must respond to events as a matter of survival, this slowing down can lead to mistiming of actions. The characteristic time factor avoids this by ensuring that every AFSM 's processing rate remains the same despite any later additions to the software loading on the processor - although inevitably the processor will eventually become overloaded and thus begin to slow everything down.
Walk
<
Up Leg Trigger
/ Leg Down Beta Pos < Alpha __
Advance
Alpha Balance
Alpha P os ^
Figure 3.6. An example of a subsumption control structure, used for the low-level control of a walking robot’s legs (taken from [Brooks89]).
A single layer of a system will consists of several AFSMs and, as higher layers are added the lower layers become totally embedded in the system. The higher layers influence the lower layers by inhibition and suppression and also by their effect on the actuators and hence the vehicle's situation in the world. Figure 3.6 shows part of the control structure for the low-level control of the 12 degrees of freedom of the 6-legged walking robot Genghis in [Brooks89]. This w ork was later expanded to deal robustly with the 18 degrees of freedom of the Hannibal robot ([Ferrel93], [Ferrel94]). These control solutions provided robots that were able to navigate in complex environments and respond to various stimuli with changes in behaviour. The resulting behaviour o f the robots was reliable and robust, with Hannibal being able to compensate for missing and damaged limbs. Another significant factor contributing to the success of these systems was the relatively small computational expense (typically a few 16-bit microprocessors) of the solutions
offered. More detail on the programming of agents using the Subsumption Architecture and details of robots that have been built can be found in [Brooks89b], [Brooks90] and [Brooks91] as well as other robotic work emanating from the MIT AI laboratory ([Parker93] and [Mataric91]). Brooks' work is continuing with the development of the Cog robot as outlined in [Brooks & Stein 93]. Examples of other work using the subsumption architecture can be found in [Porter92], [Webber & Bisset94], [Mahadevan & Connell 92], [Gat et al 94], [Pinhanez95], [Cornell et al
94] and [Zorpette94] to name but a few.