Page 65 - Designing Sociable Robots
P. 65
breazeal-79017 book March 18, 2002 13:59
46 Chapter 4
is required to determine which behavior(s) to activate and for how long, given that the robot
has several motivations that it must tend to and different behaviors that it can use to achieve
them. The main responsibility of the behavior system is to carry out this arbitration. In
particular, it addresses the issues of relevancy, coherency, persistence, and opportunism.
By doing so, the robot is able to behave in a sensible manner in a complex and dynamic
environment. The behavior system is described in depth in chapter 9.
The motor system The motor system arbitrates the robot’s motor skills and expressions.
It consists of four subsystems: the motor skills system, the facial animation system, the
expressive vocalization system, and the oculo-motor system. Given that a particular goal
and behavioral strategy have been selected, the motor system determines how to move the
robot to carry out that course of action. Overall, the motor skills system coordinates body
posture, gaze direction, vocalizations, and facial expressions to address issues of blending
and sequencing the action primitives from the specialized motor systems. The motor systems
are described in chapters 9, 10, 11, and 12.
4.4 Mechanics of the Synthetic Nervous System
The overall architecture is agent-based as conceptualized by Minsky (1988), Maes (1991),
and Brooks (1986), and bears strongest resemblance to that of Blumberg (1996). As such,
the SNS is implemented as a highly distributed network of interacting elements. Each
computational element (or node) receives messages from those elements connected to its
inputs, performs some sort of specific computation based on these messages, and then
sends the results to those elements connected to its outputs. The elements connect to form
networks, and networks are connected to form the component systems of the SNS.
The basic computational unit For this implementation, the basic computational process
is modeled as shown in figure 4.2. Its activation level, A, is computed by the equation:
j=1
A = ( w j · i j ) + b for integer values of inputs i j , weights w j , and bias b over the
n
number of inputs n. The weights can be either positive or negative; a positive weight
corresponds to an excitatory connection, and a negative weight corresponds to an inhibitory
connection. Each process is responsible for computing its own activation level. The process
is active when its activation level exceeds an activation threshold, T . When active, the
process can send activation energy to other nodes to favor their activation. It may also
perform some special computation, send output messages to connected processes, and/or
express itself through motor acts by sending outputs to actuators. Each drive, emotion,
behavior, perceptual releaser, and motor process is modeled as a different type that is
specifically tailored for its role in the overall system architecture. Hence, although they
differ in function, they all follow the basic activation scheme.

