of heuristics for balancing control between the differ-
ent action selection engines, as they are assumed to be
autonomous processes. The different engines will get
priorities in different cases; e.g., the plans of the dia-
logue engine will get top priority if a misunderstand-
ing needs to be repaired. On the other hand, if the
dialogue engine does not have any urgent issues, the
reasoning engine will get control over the interaction
in order to address its goals. Furthermore, it can ver-
ify whether the goals of the different action selection
engines adhere to certain norms that apply to the com-
panion robot in question, as well as provide new goals
based on timing rules; e.g., to avoid long silences, the
robot should always say something within a few sec-
onds, even if the reasoning engine is still busy.
Databases. We have created a distinct functional
component in the architecture where data is stored in
different forms. This data includes domain knowl-
edge, ontologies, situation models, and profiles of the
robot itself and of other agents. The ontologies and
domain knowledge are (possibly static) databases that
are used by the input preprocessing modules to find
data representations suitable to the action selection
engines and databases. The agent profiles store infor-
mation about other agents, such as the robot’s interac-
tion histories with these modeled agents, the common
grounds between the robot and each modeled agent,
and the presumed beliefs, goals, plans, and emotions
of each modeled agent. These agent models also in-
clude one of the robot itself, which enables it to reason
about its own emotions, goals, etc.
In order to provide a consistent interface to these
different databases, a query manager must be in place
to handle queries, originating from the action selec-
tion engines. A special situation arises when the robot
queries its own agent model, for there already exist
modules containing the goals, plans, and emotions of
the robot itself. So the query manager should ensure
that queries concerning these types of data can get
their results directly from these modules.
Finally, a relevant data extractor takes care of
interpreting incoming data in order to determine
whether it can be stored in a more suitable format;
e.g., if visual and auditory data from the input pre-
processing component provides new (updated) infor-
mation about the environment of the robot, it is in-
terpreted by the relevant data extractor and stored
in the situation model. Moreover, simple spatial-
temporal reasoning may be performed by the relevant
data extractor. If advanced spatial-temporal reasoning
is needed for some companion robot, it may be better
to delegate this task to a separate input preprocessing
module.
Emotion Synthesizer. Typically, companion robots
must show some level of affective behavior. This
means responding appropriately to emotions of a (hu-
man) user, but also includes experiencing emotions it-
self in response to the current situation and its internal
state. The emotions that concern this functional com-
ponent are those of the companion robot itself and are
at a cognitive level, i.e., at the level of the action se-
lection engines. Examples of emotions are joy when
a goal is achieved, disappointment when a plan fails,
resentment when another agent (e.g. a human user)
gains something at the expense of the robot, etc. More
reactive emotions (e.g., startle) can be handled by a
low-level behavior.
The emotion component consists of three parts.
The appraiser is a process that triggers the creation
of emotions based on the state of the action selec-
tion engines. The intensity of triggered emotions is
influenced by the robot’s mood (the representation
of which may be as simple as a single number) and
a database of previously triggered emotions. This
database of emotions then influences the action se-
lection engines (by way of their emotional heuris-
tics module) and the animations of the robot, e.g., by
showing a happy or sad face.
Output Preprocessing. Different processes may try
to control the robot’s actuators at the same time; obvi-
ously, this calls for conflict management and schedul-
ing of control signals. Moreover, some modules may
produce actions that cannot be directly executed, but
instead these abstract actions need some preprocess-
ing to convert them to the low-level control signals
expected by the robot’s actuators. E.g., the dialogue
engine may want some sentence to be uttered by the
robot, but this must first be converted from text to a
sound signal before it can be sent to the loudspeaker.
This functionality is provided by the text-to-speech
module, which is also assumed to produce corre-
sponding lip sync animations.
For companion robots with a relatively simple mo-
tor system, it suffices to have a single module for
animation control which converts abstract animation
commands to low-level control signals. This can be
done with the help of an animation database contain-
ing sequences of animations that can be invoked by
name and then readily played out. For companion
robots with a complex motor system, the animation
control module may be replaced by a motion engine
(which is placed among the other action selection en-
gines), as discussed above. In this case, an anima-
tion database may still fulfill an important role as a
storage of small, commonly used sequences of motor
commands.
Finally, actuator control requests may occur con-
A GENERIC ARCHITECTURE FOR A COMPANION ROBOT
319