Notes: The Subsumption Architecture


As pointed out by Brooks [Brooks 86] classical AI usually runs into problems of extensibility (software or hardware), robustness (software or hardware), integration of multiple sensor devices and achieving multiple competing goals.

Brooks however decomposes the problem of building autonomous vehicles into layers of desired behaviour or levels of competence. The first three defined by Brooks are as follows:

As can be seen each higher level contains as a subset each lower level of competence. The important part of this is that each layer of control can be built as a completely separate component and simply added to existing layers to achieve the overall level of competence.

For example, a level 0 machine is built (it does of course contain some sensor monitoring routines, processing software and task execution procedures like a simple machine built using classical AI) and after thorough testing, a complete, simple autonomous vehicle is available.

Then the next control layer is built, it can monitor the data paths in the level 0 layer and can put data onto the level 0 data paths thereby subsuming the normal data flow of level 0. The new control layer along with the level 0 layer is classed as achieving level 1 competence. The next layer is added to achieve level 2 competence and so on. Brooks calls this method of control a Subsumption Architecture.

Early Subsumption

In the paper Brooks [Brooks 86] presented in 1986, Subsumption is outlined as being composed of completely separate agents (software programs or finite state machines) with input/output lines that can receive or send typed messages. In addition on any input line to an agent a Suppressor node may be present (see Figure 1.1).


Figure 1.1 Suppression and inhibition nodes

A Suppression node allows the replacement of the normal flow of data into an agent by data from another agent (normal data flow is suppressed for a specific time period after the replacement data is received). On any output line from an agent an Inhibitor node may be present. This node allows another agent to inhibit the output of an agent for a specific time period. In Brooks' early machines such as Herbert [Brooks 88] each subsumption agent was composed of a finite state machine implemented by timers and a processor. Each processor board had several input and output lines along with corresponding control lines, these transmitted 24 bit messages at 280 baud. A reset line initialises each finite state machine to some predefined starting condition. To implement subsumption each card contained an inhibit line: if a message arrived on one of these lines all output from the card would be suspended for a time specified by an on-board potentiometer.

Later Subsumption

The building of real robots that interacted with the real-world brought out some deficiencies with the subsumption architecture, these were mainly the result of trying to manage large collections of subsumption agents and synchronisation. These problems were fixed with the development of the Behaviour Language [Brooks 90], a language for writing large collections of subsumption architecture finite state machines. This new subsumption uses monostables (variables which are active for a specified time period) and registers (variables which can hold a range of values). Behaviours are now classed as collections of Augmented Finite State Machines which may exhibit inhibition and suppression internally: monostables and registers defined within a behaviour may be accessible by any AFSM within a particular behaviour.

Behaviours also exhibit inhibition and suppression but only by other behaviours. Registers and monostables defined within a behaviour are not viewable outside of the behaviour they are defined in, however their values may be passed by messages between behaviours. Registers within a behaviour are sometimes used as an excitation indicator. A good example of a machine built using the new subsumption architecture is Hannibal [Ferrell 93]. Hannibal is a hexapod (six legged), has over 100 physical sensors and 1500 AFSM's grouped into several dozen behaviours split over eight on-board computers.

The subsumption architecture works. Several reliable, robust, real-time machines have been built using both the new and old subsumption architecture: one, Hannibal, is arguably the most complicated autonomous agent yet built. However adding more behaviours to a subsumption machine by hand is a black art and may have some very unfortunate consequences, this was shown in [Ferrell 93] and [Brooks 90-2].


Forward to Alife Notes Index
Back to main Alife Index
Back to main Index