<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Translating Cooperative Strategies for Robot Behavior⋆</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Hochschule Harz, Automation and Computer Sciences Department</institution>
          ,
          <addr-line>D-38855 Wernigerode</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>This paper presents a method for engineering and programming multirobot systems, based on a combination of statecharts and hybrid automata, which are well-known in the fields of software engineering and artificial intelligence. This formal specification method allows graphical presentation of the whole multiagent system behavior. In addition, these specifications can be directly executed on mobile robots. We describe the transformation process from the specification to executable code, after introducing the necessary definitions. A translator that automatically converts hybrid hierarchical statecharts into simple flat hybrid automata (i.e. without hierarchies) has been implemented. The respective tool allows the text-based input of hybrid hierarchical automata specifications of multiagent system with synchronization. The translation into flat automata is performed by means of different plug-ins, leading e.g. to executable code for Sony Aibo robot dogs. The plug-in just mentioned has been successfully applied in the RoboCup four-legged league.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Robotic soccer provides many research challenges and one of them is behavior control
including the subjects of team play, cooperation and flexible, quick reaction. A soccer
team can be designed as a homogeneous multiagent system. Since the behavior of
multiagent systems and agents alone can be understood as driven by external events and
internal states, an efficient way to model such systems are state transition diagrams,
which are well-established in software engineering. They are graphical representations
of finite state machines with hierarchically structured states and transitions which lead
from one state to another depending on the input or events. Outputs or actions can be
done during transitions or in states. State transition diagrams have been applied
successfully for multiagent systems in general and in the RoboCup, a simulation of (human)
soccer with real or simulated robots (see e.g. [
        <xref ref-type="bibr" rid="ref19 ref2 ref5">2, 5, 19</xref>
        ]).
      </p>
      <p>
        However, state transition diagrams do not properly cover all aspects of multiagent
systems. Therefore, hybrid hierarchical automata (HHA) with timed synchronization
have been developed to take continuous processes in the environment into account [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
Moreover, they can consider time as an additional factor for synchronization processes.
This formalism can help to model situations when two or more agents have to deal with
one resource. In the domain of soccer e.g., the agents have to consent that exactly one
player goes to the ball.
⋆ This paper emerged from the master thesis of the first author [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
      </p>
      <p>
        Therefore, as a running
example, we consider a
scenario influenced by the UEFA
champions league competition
2006/2007: the Makaay move
(see Fig. 1). Let there be one
player of type A and two
players of type B in the offensive
team. Player A performs the
kick-off, while the players of
type B are waiting in different
sectors on the pitch, which is
divided into sectors (cf. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]).
      </p>
      <p>Player A chooses a direction
for passing (right or left
midfield, sectors 3 or 5), then kicks
off and passes to one player
of type B in the destination
sector. Player A runs to
sector 1 (middle offense) where B
has passed the ball to. Finally,
player A tries to shoot to the
goal directly. If it fails, A tries
it again. Meanwhile, B goes to
the ball if it is nearer to it. B
then passes to A in sector 1
again. Fig. 1. Statechart for Makaay move.</p>
      <p>In the sequel, Sect. 2 covers the formal specification of hybrid statecharts.
Corresponding description and target languages are defined and compared in Sect. 3. With
these foundations, we can create a concept for the translation process. Sect. 4 then deals
with the design of the application and shows an example of use. Finally, we discuss
related works in Sect. 5 and conclude with Sect. 6.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Hybrid Statecharts</title>
      <p>2.1</p>
      <sec id="sec-2-1">
        <title>States and Transitions</title>
        <p>
          In a realistic physical environment, it is inevitable to consider continuous actions in
addition to discrete changes. Hybrid automata extend regular state transition diagrams
with methods that deal with those continuous actions. To understand the
characteristics, we will introduce several definitions for hierarchical hybrid automata with timed
synchronization now [
          <xref ref-type="bibr" rid="ref7 ref8">7, 8</xref>
          ] – called HHA.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Definition 1 (basic components). The basic components of a state machine are the</title>
        <p>following disjoint sets:
S: a finite set of states, partitioned into three disjoint sets: Ssimple, Scomp, and Sconc
— called simple, composite and concurrent states, containing one designated start
state s0 ∈ Scomp ∪ Sconc;
X: a finite set of variables, partitioned into two disjoint sets: Xreal and Xint — the
continuous/real-numbered and the integral/integer variables, respectively; for each
x ∈ X we introduce the variables x′ for the conclusions of a discrete change;
T: a finite set of transitions with T ⊆ S × S.</p>
        <p>Definition 2 (state hierarchy). Each state s is associated with zero, one or more initial
states α(s): a simple state has zero, a composite state exactly one, and a concurrent
state more than one initial state. In the latter case, the initial states are called regions.
Moreover, each state s ∈ S \ {s0} is associated to exactly one superior state β(s).
Therefore, it must hold β(s) ∈ Sconc ∪ Scomp. A concurrent state must not directly contain other
concurrent ones. Furthermore, it is assumed that all transitions s1T s2 ∈ T keep to the
hierarchy, i. e. β(s1) = β(s2). Furthermore, we write αn(s) or βn(s) for the n-fold
application of α or β to s, in particular, α0(s) = β0(s) = s. Variables x ∈ X may be declared
locally in a certain state γ(x) ∈ S. A variable x ∈ X is valid in all states s ∈ S with
βn(s) = γ(x) for some n ≥ 0, unless another variable with the same name overwrites it
locally.</p>
        <p>As said earlier, Fig. 1 depicts the statechart for our running soccer example. Here,
states are named after their affiliation to the players or the actions which are being done
at that moment. The states soccer makaay (which is the start state s0 here), kickoff,
go-to-ball, player-A and player-B are composite states; teamplay is a concurrent state
while all others are simple states. The oval symbol ball is a synchronization point and
will be discussed in Sect. 2.2.</p>
      </sec>
      <sec id="sec-2-3">
        <title>Definition 3 (jump and state conditions). For each transition, there exists a jump</title>
        <p>condition. This is a predicate with free variables from the valid variables of X ∪ X ′.
Additionally, each state s ∈ S contains a state condition which describes continuous
changes in s. It is a predicate with free variables from X ∪ {t}.</p>
        <p>
          Events are well-known in UML statecharts [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] and hybrid automata [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. They can
easily be expressed by (binary) integer variables in our formalism. Therefore, we do not
introduce them explicitly in our definitions. But in contrast to simple hybrid automata,
we introduce hierarchies. Fig. 2(a) shows an example state tree, which is induced by
the β-function. Here, R is the root of the tree, and e.g. state 1 can be reached from 5,
i.e. 1 = β3(5). Note that the value of βn is always uniquely determined due to the
treelike (and not graph-like) structure of the state hierarchy. Furthermore, let α3(R) = 3. A
configuration (defined next) is the subset of the active states in the state tree.
        </p>
      </sec>
      <sec id="sec-2-4">
        <title>Definition 4 (configuration and completion). A configuration c is a rooted tree of</title>
        <p>states with the root node as the topmost initial state of the overall state machine.
Whenever a state s is an immediate predecessor of s′ in c, it must hold β(s′) = s. A
configuration must be completed by applying the following procedure recursively as long as
possible to leaf nodes: if there is a leaf node in c labeled with a state s, then introduce
all α(s) as immediate successors of s.</p>
        <p>
          The semantics of our automata can now be defined by alternating sequences of
discrete and continuous steps. Following the synchrony hypothesis, we assume that
discrete state changes (via transitions whose annotated jump condition holds in the
current situation) happen in zero time, while continuous steps (within one state) may
last some time. Due to the lack of space, for details on the semantics of HHA, the reader
is referred to [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ].
        </p>
        <p>Fig. 2(b) demonstrates the relationship between state trees and configurations. It
depicts several configurations that are created from the state tree in Fig. 2(a). A
configuration itself can be connected to another one. The original transition t, which was used
for the completion of s2 in c2, is used in a discrete step while its origin is changed from
s1 to c1 and its target from s2 to c2.</p>
        <p>(a) State tree with
synchronization point x.</p>
        <p>
          (b) Configurations with synchronization problem.
Synchronization is significant for modeling multiagent systems. Usually, a system deals
with limited resources. The interaction with them can take part in several states.
Especially when reacting to events from the environment, the reaction process takes some
time τ &gt; 0. For this, a synchronization takes care of the common resources defined at
a synchronization point. While synchronization is associated with transitions,
implemented via labels in original hybrid automata [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], synchronization is associated with
states in HHA, i.e. actions which last some certain time. In contrast to this, the
synchrony hypothesis states (for discrete steps), that a system is infinitely fast and therefore
can react immediately within zero seconds, i.e., a transition takes zero time.
Definition 5. A synchronization point is identified by a variable x ∈ Xsync ⊆ X with
a maximum capacity C(x) &gt; 0. Each state connected to the synchronization point is
classified by one of the following relations, R+ ⊆ S × Xsync or R− ⊆ Xsync × S. If a state
increases the capacity, it will be classified by R+ and otherwise by R−, if it decreases
it (or resets the resource). In general, each connection in R+ ∪ R− is annotated with a
number m with 0 &lt; m ≤ C(x) which identifies the volume to be increased or decreased
from the synchronization point, respectively.
        </p>
        <p>Synchronization may take some time, since they are connected to (continuous)
states and not to discrete transitions. Thus, the synchronization process can
theoretically be interfered by other actions or concurrent states which also try to share the same
synchronization point. To avoid side effects that may lead to inconsistency or even
system failure, the process is separated into allocation and (future) occupation of resources.
For this, the allocation variables x+ and x− register the request for occupation or release
for each synchronization point x. Therefore, x+ and x− must be added to X .</p>
        <p>
          In this case (synchronization point x and connected state s), s1T s2 is called incoming
transition for s iff αn(s2) = s for some n ≥ 0, initializing transition iff it is an incoming
one with αn(s) = γ(x), outgoing transition iff s1 = βn(s) for some n ≥ 0 where s1 occurs
in the current configuration and x is valid in s, successful outgoing transition iff it is an
outgoing transition with s1 = s and failed outgoing transition iff it is not a successful
outgoing transition. Note that outgoing transitions cannot be characterized statically but
only dynamically by investigating the configuration trees. This is an important issue for
the revoking of the allocation (see Sect. 4.2). At a synchronization point x, additional
constraints must be defined which affect the transitions that are incident with all states
s connected to x. Due to the lack of space, for details on the synchronization concept,
the reader is referred to [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ].
        </p>
        <p>The synchronization point ball in Fig. 1 has a capacity of 1. Thus, it can be
interpreted as a Boolean value as there is only one ball in a soccer match. Both states
go-to-ball occupy the synchronization point ball. Hence, they belong to the relation
R+. The states kick-to-goal and pass-to-sector release it and therefore belong to R−.</p>
        <p>The example in Fig. 2(a) also makes use of a synchronization point. As seen in the
tree, the state R introduces the synchronization point x while 4 is somehow using it
here. The definition is marked with the dashed arrow pointing at x. However, for some
multiagent systems, the synchronization must be converted into ordinary variables if a
target platform does not provide synchronization interfaces.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Specification Languages</title>
      <p>After having defined basic concepts, let us now consider concrete languages for
programming multiagent systems with HHA. Therefore, we will discuss two languages
briefly in the sequel: HAL and XABSL.</p>
      <p>
        The project goals of HAL [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] were the definition of an ASCII-formatted
specification language for hybrid automata with timed-synchronization and, furthermore, its
transformation into an input format for model checkers such as HyTech [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. HAL is
at the same time the name of the project and the name for the specification language
(Hybrid Automaton Language). This corresponds to the definitions introduced in the
previous section. A HAL specification is usually written into an ASCII formatted file.
According to the syntax, it consists of a global frame which must be a composite
automaton. It may include several other automata following the rules of hybrid automata
with timed synchronization. Even though the terms of inheritance, polymorphism are
not defined in HAL syntax, modularization is actually known. The namespace of two
parallel automata cannot collide while subsequent automata can access variables of their
superiors. An example is shown in the listing (Fig. 3).
      </p>
      <p>
        Another successful approach of modeling agent behavior is XABSL (Extensible
Agent Behavior Specification Language) [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. It was developed and integrated into
the code basis of the GermanTeam, several times world and German champion in the
RoboCup four-legged league, as a language for behavior engineering. The
specifications can be transformed automatically into intermediate code which has to be
interpreted on the target platform by the XabslEngine. The XABSL package also provides
functionalities for visualization, debugging and documentation. The option division in
XABSL specifications includes a global symbol file to get access to the environment. It
consists of one initial and several other states with their own decision trees. The action
division specifies all assignments that are executed there. A subsequent option call is
also possible.
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>The Translator Tool</title>
      <p>The HAL converter provides a window-based flattening mechanism for state machine
specifications, a batch mode for quick processing, and re-usability. Additionally, there
should be a graphical editor to easily create source code from hybrid statecharts.
Already created files (or files that are created manually) are allowed to be used as an
input for the application. Hence, a lexer and a parser provide the conformity with the
HAL syntax. With this design, it is possible to create a hybrid automaton which can be
used later as input for the flattening algorithm (see below). The translator from HAL
to XABSL shall cover all features of synchronized hybrid state machines that can be
transferred to XABSL.
4.1</p>
      <sec id="sec-4-1">
        <title>Flattening Algorithm</title>
        <p>
          For the translation process, there is no simple one-to-one structural mapping between
HHA and XABSL. As XABSL and also standard verification tools often are not able
to cope with hierarchies, it is required to flatten the automaton, i.e., all states except
the initial one are transformed into simple ones. As the translator shall be feasible of
creating processable output for those tools, this gives us another reason to flatten the
hierarchical structure. Though this transformation may lead to state explosion, it could
be avoided, nevertheless, if hierarchical configurations could be processed as directly
as in some logic-based implementations [
          <xref ref-type="bibr" rid="ref15 ref7">7, 15</xref>
          ].
        </p>
        <p>In the implementation, configurations are used to clarify which agent currently is in
which state. The flattening algorithm processes an input state tree and converts it to a set
of configurations. In particular, the output can be used to simplify the agent’s behavior
structure and to gain performance due to less complexity. For this, the algorithm is
divided into four major parts.</p>
      </sec>
      <sec id="sec-4-2">
        <title>1. Copy regions</title>
        <p>Expand the regions in the tree according to their cardinality c (given in the upper
right corner of a region). Modify each region to a composite state, copy it c-times
and replace the original with the copies.</p>
      </sec>
      <sec id="sec-4-3">
        <title>2. Globalize variables and constants</title>
        <p>Each state may introduce variables and constants. Each local definition must be
globalized as it will be used in the configuration flows and transitions later on. The
global definitions must be uniquely named to avoid namespace collisions.</p>
      </sec>
      <sec id="sec-4-4">
        <title>3. Convert synchronizations</title>
        <p>If a state uses a synchronization point to interact with other states, these
synchronizations must be resolved. Due to their complexity, a relatively extensive
inspection is required which is explained in detail in Sect. 2.2 and 4.2. Although the
resulting additions to transition guards reduce readability, the even more complex
process of inter-state synchronization could be eliminated. A practical approach for
the detection of the correct place to revoke an allocation is given below.</p>
      </sec>
      <sec id="sec-4-5">
        <title>4. Create configurations</title>
        <p>Each state tree possesses an initial configuration c0. This contains all the initial
states that can be reached in the tree beginning at the root. According to the
completion algorithm (Def. 4), the configurations are created recursively beginning at
c0. Already existing configurations will be recognized and used if transitions lead
to them. These newly created transitions form the discrete steps of the system.</p>
        <p>The synchronization conversion in the third step is a rather complex process. At first,
all synchronization points in the automaton are collected. After this, the automaton will
be traversed, and the occupation, the release, as well as the allocation, and its revoke
are added for each synchronization found in the state tree. The synchronization point x
itself, its maximum capacity C(x), and its allocation variables x+ and x− are converted
into global variables. For each transition type, different expressions must be added to
the guards and the discrete expressions. However, a flag x f for each synchronization
point x is introduced indicating its current status. If x is occupied then x f := −1. If x is
allocated but not occupied yet then x f := 1. Otherwise, x f := 0. For all not initializing
incoming transitions, x f := 1 will be added to their discrete expressions, x f := 0 will be
added for all initializing incoming transitions, x f := −1 will be added for all successful
outgoing transitions. For each not successful outgoing transition, it must be checked if
x is already allocated but not occupied by this synchronization. Therefore, the transition
must be duplicated. The comparison x f = 1 is added to the guard of the first transition,
x f 6= 1 is added to the second one. The revocation of the allocation is added only to the
discrete expression of the first one. Finally, all synchronization points can be erased as
they are now properly converted into ordinary variables.
4.2</p>
      </sec>
      <sec id="sec-4-6">
        <title>Allocation in Synchronizations</title>
        <p>During the development of the theoretical model of hybrid automata with timed
synchronization, a problem concerning not successfully outgoing transitions occurs. The
correct situation has to be found, when the allocation shall be revoked, since it must
actually be done only once per occupation. For this purpose, some definitions have to
be introduced.</p>
        <p>Let δ(s) return all variables used in the state s but not defined there. Furthermore,
we introduce a mapping ζ which returns all state successors of s that use x and are part
of the configuration c:</p>
        <p>ζ(s, x, c) = {si | βn(si) = s ∧ x ∈ δ(si) ∧ si ∈ S(c), n &gt; 0}
shows – among others – a transition from state 2 to 7. Fig. 2(b) shows the appropriate
configurations with c0 being the initial one. In this case, the synchronization point x is
defined in the state R while only 4 is using x. In fact, R must be a concurrent state as
it defines a synchronization point. Though concurrent states usually have two or more
regions, this example reduces complexity and actually uses only one.</p>
        <p>Let us now have a closer look on what is happening in c1 when the process has
activated state 5. State 4 is also active as it is the immediate predecessor of state 5 in the
tree. The transition from 2 to 7 is a not successful outgoing transition for 4 as 2 = βn(4)
with n = 1 &gt; 0.</p>
        <p>Now, to collect all states that may have allocated x before the transition t induces a
discrete step to c2, the mapping ζ can be applied. Here, ζ is used with the parameter 2
as this state is the origin of the transition. In the configuration c1 this is a set containing
one single state: ζ(2, x, c1) = {4}. That statement confirms that (only) 4 has allocated
the synchronization point x in this situation. There has no occupation been done yet.
So for the transition t, the allocation has to be revoked and further actions can be done
during the process. On the contrary, the configuration c3 does not have an active
allocation or occupation since ζ(2, x, c3) = 0/. Therefore, the synchronization point remains
unchanged for the transition t.</p>
        <p>The XabslFish plug-in defines constraints which check the input automaton for the
proper structure. For this, the flattener algorithm must have processed the automaton.
The regions must be copied according to their capacities, the variables must be
globalized to provide an efficient handling of the XABSL symbol file and the synchronizations
must be converted into ordinary variables. The variables must not be renamed during
their globalization as they will later be translated by use of the configuration file.</p>
        <p>The conversion of the flattened automaton starts with reading the appropriate
configuration file. This is used to transform HAL variables to expressions, to basic behavior
4.3</p>
      </sec>
      <sec id="sec-4-7">
        <title>User Interface</title>
        <p>From a shell the user can start
the Java application in console or
window mode with several
mandatory and optional parameters. As
shown in Fig. 4, all configurations
can be set intuitively in the
window mode. The required input file
can either be typed into the
textfield on the top of the main content
pane or it can be chosen by using
a file dialog window. The
temporary and the target output file are
named accordingly. However, they
can be defined individually, too.
4.4</p>
      </sec>
      <sec id="sec-4-8">
        <title>XabslFish</title>
        <p>Fig. 4. HAL screen-shot before starting the
translation.
calls or for their declaration in the output symbol file. In the second step of the
translation, the symbol file is generated. A Boolean flag indicates if any symbol has to be
written at all. In case that there is no symbol to write, the file will not be created. In
consequence of that it can be decided if the future options will include this file or not. The
third step is the major part of the translation. Here, the automaton tree is traversed and
each node will be converted into an option. The subsequent automata become
accessible via internal states while initial subsequent states keep their status. Each transition
from a successor to another automaton is implemented into the state decision tree where
discrete expressions are converted into actions in the target state. If all successor nodes
are completed the own flow expressions of the current automaton will be converted into
actions. This algorithm is processed recursively for each automaton.
4.5</p>
      </sec>
      <sec id="sec-4-9">
        <title>An Example of Use</title>
        <p>
          Let us now come back to our running example (Fig. 1). For purpose of clarity, the
transition labels with the jump conditions and the discrete expressions are omitted as
well as the flow expressions and invariants in the states. However, within this example
there are several main features of synchronized hybrid automata covered. The soccer
team has at least three players: one of type A, two of type B. Furthermore, there is
exactly one ball on the field which can be interpreted as a resource with the maximum
capacity 1. Due to the lack of space, for further details on the implementation, the reader
is referred to [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
5
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Related Work</title>
      <p>
        There are many related works on the specification of multiagent systems and also on
software engineering of multiagent systems (see e.g. [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]), including Agent UML [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ],
where UML statecharts for modeling agent behavior are also considered, but not in the
main focus of interest, however. We will therefore only briefly discuss some work on
multi-robot coordination architecture, coordination mechanisms, and on formal
specification of multi-robot systems.
      </p>
      <p>
        As proposed by [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], multiagent systems have to deal with allocation and
synchronization of tasks and concurrent subtasks. There are market-based approaches which
support the coordination of the robot teams while each robot is paid revenue for each
accomplished subtask and otherwise incurs cost for allocating team resources.
ALLIANCE [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] is the name of an architecture for fault tolerant multi-robot cooperation.
With this, it is possible to create multiagent systems that can deal with failures and
uncertainties in the selection and execution of actions and dynamically changing
environment.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], coordination mechanisms are introduced in a concrete multi-robot
architecture. The scenario description language Q in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] concentrates on social agents that
interact with humans. However, these articles deal with teamwork behaviors and
interaction rather than translating a formalism to a specific hardware platform. Nevertheless,
modeling and implementing multiagent systems is proposed in [
        <xref ref-type="bibr" rid="ref2 ref5">2, 5</xref>
        ]. Though this is
based on UML statecharts, yet, we use hybrid automata with timed synchronization in
addition, in order to construct those systems.
      </p>
      <p>
        The paper [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] presents a case study in multi-robot coordination, employing linear
hybrid automata. By a rectangular approximation of the physical environment, the
geometric regions in which a robot reaches a given goal faster with the help of
communication, can be computed. [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] employs Petri nets for the specification of multiagent plans.
Here, synchronization also can be expressed quite naturally within the Petri net
framework. The MABLE language [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] is based on BDI agents, described textually, and a
tool for modeling and verifying multiagent systems. However, the focus in the papers
just mentioned is on verification or analysis and not on implementation and
generating executable code on mobile robots, whereas we apply standard software engineering
methods to real robots in this paper.
6
      </p>
    </sec>
    <sec id="sec-6">
      <title>Discussion and Conclusions</title>
      <p>XabslFish allows the behavior control of Aibo robots (or any other XABSL-driven
robots) to be designed as a multiagent system with formal methods. Therefore, the
performance of the robot is enhanced. The safety of a correct behavior control is based
upon the fact that the translation from HAL to XABSL can precisely be adjusted
manually for each input automaton. The application XabslFish supports the modeling of
hybrid automata with timed synchronization and translates the specification to an
understandable format for the target platform. The soccer domain is used as an example
for multiagent systems, which have to act autonomously in a dynamic environment.</p>
      <p>XabslFish translates multiagent system specifications from the hybrid automaton
language HAL to XABSL. It is designed as a plug-in for the application, the HAL
converter, that deals with hybrid automata. Even though it can translate the major part of a
state machine automatically, some individual mappings must be defined in a
configuration file. In summary, this paper exemplifies that multiagent systems can be specified by
formal methods based on standard modeling procedures (namely state machines). It is
also demonstrated, how by transformation techniques executable code can be generated,
running on a mobile robot (namely the Aibo robot).</p>
      <p>
        Future work will concentrate on an implementation of the formalism with constraint
logic programming (CLP), which can be used for both, engineering and analysis of
multiagent systems, following the lines of [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. This will lead to an even more realistic
knowledge engineering system.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>R.</given-names>
            <surname>Alur</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Esposito</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Kumar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and I.</given-names>
            <surname>Lee</surname>
          </string-name>
          .
          <article-title>Formal modeling and analysis of hybrid systems: A case study in multi-robot coordination</article-title>
          .
          <source>In World Congress on Formal Methods (1)</source>
          , pages
          <fpage>212</fpage>
          -
          <lpage>232</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>T.</given-names>
            <surname>Arai</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Stolzenburg</surname>
          </string-name>
          .
          <article-title>Multiagent systems specification by UML statecharts aiming at intelligent manufacturing</article-title>
          .
          <source>In Castelfranchi and Johnson [4]</source>
          , pages
          <fpage>11</fpage>
          -
          <lpage>18</lpage>
          . Volume
          <volume>1</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>T.</given-names>
            <surname>Bernstein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Borns</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Colmsee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnotta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Germer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Nause</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Pacha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Thomas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Vellguth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Wiebke</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Windler</surname>
          </string-name>
          .
          <article-title>HAL - hybrid automaton language</article-title>
          .
          <source>Technical report</source>
          , Department of Automation and Computer Sciences, Hochschule Harz,
          <year>2006</year>
          .
          <article-title>Team project description (in German)</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>C.</given-names>
            <surname>Castelfranchi</surname>
          </string-name>
          and W. L. Johnson, editors.
          <source>Proceedings of the 1st International Joint</source>
          Conference on Autonomous Agents &amp;
          <string-name>
            <surname>Multi-Agent</surname>
            <given-names>Systems</given-names>
          </string-name>
          , Bologna, Italy,
          <year>2002</year>
          . ACM Press.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. V. T. da
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Choren</surname>
          </string-name>
          , and
          <string-name>
            <surname>C. J. P. de Lucena</surname>
          </string-name>
          .
          <article-title>A UML based approach for modeling and implementing multi-agent systems</article-title>
          .
          <source>Autonomous Agents and Multiagent Systems</source>
          ,
          <volume>2</volume>
          :
          <fpage>914</fpage>
          -
          <lpage>921</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>F.</given-names>
            <surname>Dylla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ferrein</surname>
          </string-name>
          , G. Lakemeyer,
          <string-name>
            <given-names>J.</given-names>
            <surname>Murray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Obst</surname>
          </string-name>
          , T. Ro¨fer,
          <string-name>
            <given-names>S.</given-names>
            <surname>Schiffer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Stolzenburg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Visser</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Wagner</surname>
          </string-name>
          .
          <article-title>Approaching a formal soccer theory from behaviour specifications in robotic soccer</article-title>
          . In P. Dabnichcki and
          <string-name>
            <surname>A</surname>
          </string-name>
          . Baca, editors,
          <source>Computers in Sport</source>
          , pages
          <fpage>161</fpage>
          -
          <lpage>185</lpage>
          . WIT Press, Southampton, Boston,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>U.</given-names>
            <surname>Furbach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Murray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Schmidsberger</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Stolzenburg</surname>
          </string-name>
          .
          <article-title>Hybrid multiagent systems with timed synchronization - specification and model checking</article-title>
          . In M. Dastani,
          <string-name>
            <given-names>A.</given-names>
            <surname>El Fallah Seghrouchni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ricci</surname>
          </string-name>
          , and M. Winikoff, editors,
          <source>Post-Proceedings of 5th International Workshop on Programming Multi-Agent Systems</source>
          at 6th International Joint Conference on Autonomous Agents &amp;
          <string-name>
            <surname>Multi-Agent</surname>
            <given-names>Systems</given-names>
          </string-name>
          , LNAI
          <volume>4908</volume>
          , pages
          <fpage>205</fpage>
          -
          <lpage>220</lpage>
          , Honolulu,
          <year>2008</year>
          . Springer, Berlin, Heidelberg, New York.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>T.</given-names>
            <surname>Henzinger</surname>
          </string-name>
          .
          <article-title>The theory of hybrid automata</article-title>
          .
          <source>In Proceedings of the 11th Annual Symposium on Logic in Computer Science</source>
          , pages
          <fpage>278</fpage>
          -
          <lpage>292</lpage>
          , New Brunswick, NJ,
          <year>1996</year>
          . IEEE Computer Society Press.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>T.</given-names>
            <surname>Ishida</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Yamane</surname>
          </string-name>
          .
          <article-title>Introduction to scenario description language q</article-title>
          .
          <source>In ICKS '07: Proceedings of the Second International Conference on Informatics Research for Development of Knowledge Society Infrastructure</source>
          , pages
          <fpage>137</fpage>
          -
          <lpage>144</lpage>
          , Washington, DC, USA,
          <year>2007</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>G. A.</given-names>
            <surname>Kaminka</surname>
          </string-name>
          and
          <string-name>
            <surname>I. Frenkel.</surname>
          </string-name>
          <article-title>Integration of coordination mechanisms in the BITE multirobot architecture</article-title>
          .
          <source>In ICRA-07</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. M. L o¨tzsch, M. Ju¨ngel, M. Risler, and
          <string-name>
            <given-names>T.</given-names>
            <surname>Krause</surname>
          </string-name>
          . XABSL:
          <article-title>The Extensible Agent Behavior Specification Language</article-title>
          . URI: http://www2.informatik.hu-berlin.de/ki/XABSL/,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. Object Management Group, Inc.
          <source>UML Version 2.1.2 (Infrastructure and Superstructure)</source>
          ,
          <year>November 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>J. Odell</surname>
            ,
            <given-names>H. V. D.</given-names>
          </string-name>
          <string-name>
            <surname>Parunak</surname>
            , and
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Bauer</surname>
          </string-name>
          .
          <article-title>Extending UML for agents</article-title>
          . In G. Wagner,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lesperance</surname>
          </string-name>
          , and E. Yu, editors,
          <source>Proceedings of the Agent-Oriented Information Systems Workshop at 17th National Conference on Artificial Intelligence</source>
          , pages
          <fpage>3</fpage>
          -
          <lpage>17</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>L. E. Parker. Alliance:</surname>
          </string-name>
          <article-title>An architecture for fault tolerant multirobot cooperation</article-title>
          .
          <source>IEEE Transactions on Robotics and Automaton</source>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>C. Reinl</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Ruh</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Stolzenburg</surname>
            , and
            <given-names>O.</given-names>
          </string-name>
          <article-title>von Stryk. Multi-robot systems optimization and analysis using MILP and CLP</article-title>
          . In P. U. Lima,
          <string-name>
            <given-names>N.</given-names>
            <surname>Vlassis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Spaan</surname>
          </string-name>
          , and F. S. Melo, editors, Workshop 1:
          <string-name>
            <given-names>Formal</given-names>
            <surname>Models</surname>
          </string-name>
          and
          <article-title>Methods for Multi-Robot Systems at</article-title>
          7th International Joint Conference on Autonomous Agents and
          <string-name>
            <surname>Multi-Agent</surname>
            <given-names>Systems</given-names>
          </string-name>
          , pages
          <fpage>11</fpage>
          -
          <lpage>16</lpage>
          , Estoril, Portugal,
          <year>2008</year>
          . International Foundation for Autonomous Agents and
          <string-name>
            <surname>Multi-Agent Systems</surname>
          </string-name>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>F.</given-names>
            <surname>Ruh</surname>
          </string-name>
          .
          <article-title>A translator for cooperative strategies of mobile agents for four-legged robots</article-title>
          .
          <source>Master thesis</source>
          , Fachbereich Automatisierung und Informatik, Hochschule Harz,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>A. T. Stentz</surname>
            ,
            <given-names>M. B.</given-names>
          </string-name>
          <string-name>
            <surname>Dias</surname>
            ,
            <given-names>R. M.</given-names>
          </string-name>
          <string-name>
            <surname>Zlot</surname>
            , and
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Kalra</surname>
          </string-name>
          .
          <article-title>Market-based approaches for coordination of multi-robot teams at different granularities of interaction</article-title>
          .
          <source>In Proceedings of the ANS 10th International Conference on Robotics and Remote Systems for Hazardous Environments</source>
          ,
          <year>March 2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>M. Wooldridge</surname>
          </string-name>
          , M. Fisher,
          <string-name>
            <surname>M.-P. Huget</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Parsons</surname>
          </string-name>
          .
          <article-title>Model checking multi-agent systems with MABLE</article-title>
          .
          <source>In Castelfranchi and Johnson [4]</source>
          , pages
          <fpage>952</fpage>
          -
          <lpage>959</lpage>
          . Volume
          <volume>2</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>V. A.</given-names>
            <surname>Ziparo</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Iocchi</surname>
          </string-name>
          .
          <article-title>Petri net plans</article-title>
          .
          <source>In Proceedings of the Fourth International Workshop on Modelling of Objects, Components and Agents, MOCA'06</source>
          , pages
          <fpage>267</fpage>
          -
          <lpage>289</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>