Behaviour-Data Relations Modeling Language

 

Overview


BDRML version 1.0

BDRML

Designing and representing control algorithms is challenging in swarm robotics, where the collective swarm performance depends on interactions between robots and with their environment. The currently available modeling languages, such as UML, cannot fully express these interactions. The Behaviour-Data Relations Modeling Language (BDRML):

  • Describes robot behaviours, not states.
    • E.g. defines a "Work" behaviour versus a "Worker" state
    • It can therefore model finite-state machines, neural network controllers, behaviour-based controllers, etc.
  • Represents both behaviours and data as primitives, so they can relate to each other. This allows BDRML to:
    • Explicitly represent what information is communicated and where it is stored
    • Combine the capabilities of statecharts and class diagrams (that describe control algorithms) and of sequence charts (that describe communication)
  • Allows to specify relations between behaviours and data external to a robot’s memory
    • It can therefore represent communication between robots and interactions with their environment

Consider the example below, where a collective task allocation robot control algorithm is represented in the form of (a) statechart, (b) class diagram, (c) sequence chart. A robot searches the environment as a "Scout" and becomes a "Worker" upon finding a worksite, where reward is located. A Worker extracts reward from the worksite (for example, it performs an inspection task or helps a customer nearby), while broadcasting recruitment signals to Scouts that are close. Any Scout that is recruited becomes a Worker as well. A Worker resumes scouting when its worksite is depleted.

(a) statechart, (b) class diagram, (c) sequence chart

In relation to swarm control algorithms, these representations suffer from two of problems:

  • Data is not represented explicitly, making it difficult to express where information is stored or how it is operated on
  • It is not possible to represent relationships between behaviours and data of multiple different robots


A BDRML diagram On the other hand, a BDRML diagram of the same algorithm would look like the picture on the right. Recruitment is represented explicitely via:

  • The Send relation between "Work" and "Worksite location". This makes it clear what data is sent and what behaviour a recruiter is executing while sending the data
  • The conditional transition between "Scout" and "Work". This makes it clear when a robot can get recruited

See more examples