Brooks is one of the first advocates of reactive behavior-based methods for robot programming. His subsumption architecture is based on different layers, each of which work concurrently and asynchronously to achieve individual goals. In the earlier designs, the behaviors were represented by augmented finite state machines (AFSMs), thus the Behavior Language still includes AFSMs as the low level building blocks. The behavior language has a Lisp-like syntax and compiler available even into programmable-array logic circuits.
An AFSM encapsulates a behavioral transformation function where the input to the function can be suppressed or the output can be inhibited by other components of the system. It is also possible to reset an AFSM to its initial state. Each layer in the subsumption architecture has a specific goal. The higher layers can use the output of the lower levels and also affect their input and output to achieve their goals which are generally more abstract then the goals of the lower layers. It is argued that this kind of hierarchical interaction between layers prohibits designing higher levels independently.
When an AFSM is started, it waits for a specific triggering event and then its body executed. Such events can depend on time, a predicate about the state of the system, a message deposited to a specific internal register, or other components being enabled or disabled. In the body it is possible to perform primitive actions or to put messages in order to interact with other AFSMs.
No comments:
Post a Comment