Gat discusses an alternative to the Sense-Plan-Act (SPA) architecture that was commonly implemented within the Artificial Intelligence (AI) community in “On Three-Layer Architectures”. SPA was widely accepted within the AI community as the standard in which to develop AI. The SPA architecture essentially had three main components. The first component was a sensing system where the input data (from the sensors such as sonar or vision) would be translated into a world model. The second component was the planner which would take this world model and a goal and then create a plan to achieve this goal. The third and final component in the SPA architecture is the execution system which takes the plan from the planner and executes the actions from the plan. This architecture is very serial in nature, unidirectional and linear. The third component of this architecture was the easiest to implement since it is equivalent to running a software application. The issues that arose were that world modeling (sensing system) and planning (planner) were very hard problems. Specifically, planning is time consuming, the world may change during the planning process in a way that invalidates the resulting plan. Also, an unexpected outcome from the execution of a plan step can cause subsequent plan steps to be executed in an inappropriate context.

In contrast to this established architecture, Gat proposes a three-layer architecture. The main issue with SPA was that the problems the robots experienced can be viewed as a result of the method used to manage stored internal state information. You should not totally remove the internal state, like with the reactive approach, since this presents a problem of extracting reliable information about the world through sensors. The three-layer architecture is a compromise between these two approaches. This architecture organizes algorithms according to whether they contain no state (stateless sensor-based algorithms in the control component), contain state reflecting memories about the past (sequencer component) or contain state reflecting predictions about the future (deliberator component). This abstraction allows the isolation of different aspects of reality that can be tracked or predicted reliably and ignore the aspects that cannot. The controller component consists of one or more threads of computation that implement one or more feedback control loops, tightly coupling sensors to actuators. The sequencer component selects which primitive behavior the controller should use at any given time and supplies parameters for the behavior. The deliberator component produces plans for the sequencer to execute or can respond to specific queries from the sequencer.

In conclusion, I like the alternative architecture that Gat proposes as it delegates functionality to the core components, running on separate threads in the environment to make proper use of the given computational resources. The SPA architecture lends itself to stepping through from one component to the next with no communication back up the chain. This can be extremely costly since the planning stage itself is very error prone especially with dynamic changing environments. The three-layer architecture allows the intensive computations to be delegated to the deliberator component on a separate thread so that the controller can still gather sensor information and the sequencer component can still compute the plans. This is much more efficient use of the robots capabilities since these tasks can be done in parallel. The communication between these components allows modifications to be made which can be very helpful in a dynamic environment. The three-layer architecture is a better alternative to the SPA architecture.

Reference:

  1. Gat, Erann. “On Three-Layer Architectures.” <http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.165.5283&rep=rep1&type=pdf>