13/07/2018 11:42am
Artificial Consciousness: Is it possible to give a #robot a soul? [LINK]
12/07/2018 6:36pm
RT @DeepMindAI: Measuring abstract reasoning in neural networks - our latest #ICML2018 paper - takes inspiration from human IQ tests to exp…
10/07/2018 2:15pm
Preferential #foraging leads to a better #swarm performance in dynamic environments, provided that information flow… [LINK]
06/07/2018 10:19am
Personalized “deep learning” equips robots for autism therapy @MIT via @Robohub It's so great that through technolo… [LINK]
05/07/2018 8:27pm
Looking forward to presenting our paper on information flow regulation in preferentially #foraging #robot #swarms a… [LINK]

[Behaviour-Data Relations Modeling Language]

Multi-agent systems AI Project: Designing Robot Swarms
Date: Sep 2017

BDRML version: 1.0 - Go to the BDRML web site for more up-to-date information

Publication: Pitonakova, L., Crowder, R. & Bullock, S. (2017). Behaviour-Data Relations Modelling Language For Multi-Robot Control Algorithms. Proceedings of the 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2017), IEEE, 727-732.

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) explicitely represents robot behaviours and data that robots utilise, as well as relationships between them. This allows BDRML to express control algorithms where robots cooperate and share information with each other while interacting with the environment.

BDRML primitives

Primitives are the basic blocks of BDRML. They include:

  • Behaviour: A set of processes that deal with a particular situation a robot finds itself in, for example "Scout"
  • Internal data structure: Information that is stored in a robot's memory
  • External data structure: Information that is stored in a non-robot entity, i.e., in the robot's environment

BDRML primitives

BDRML relations

The following relations between entities can exist:

  • Transition: The robot transitions from one behavioural mode to another
  • Read \ Write: Internal data is used \ stored by the robot engaged in particular behaviour
  • Receive \ Send: External data is used \ stored by the robot. In the case of the Send relation, a robot may also send the data to another robot that stores it in its own internal data structure
  • Copy: Information is copied from one data structure to another
  • Update: The value of a data structure is updated from that in the previous time step by a subroutine not visualised in the BDRML diagram (for example, a pheromone level may spontaneously decrease over time).

The write and send relations can optionally define the new data structure value or a function that updates the value, indicated by a dashed line extending from the end of the relation arrow in a visual description, and written before a colon proceeding the data structure name in a textual description. The update relation always must specify the new value or the value update function.

BDRML relations

BRML relation conditions

Each relation or operation occurs under a specific set of conditions. A condition is visually represented as an annotated triangle at the beginning of a relation or operation arrow. In a textual representation, a condition set follows a relation signature and is separated from it by a colon. Unless otherwise specified, the "or" logical operator is used when multiple conditions affect a single relation.

BDRML relation conditions


A full BDRML representation consists of both visual and textual specification. A set of behaviours, B, internal data structures, Di and external data structures, De, are first defined, followed by a list of relations between them. Each box, circle and arrow in the visual representation must have a corresponding element or line in the textual representation and vice versa.

A BDRML representation exampleAn example is shown in the picture. The described algorithm allows robots to search for worksites and recruit each other to perform work and it can be applied for decentralised task allocation. A robot performs the "Scout" behaviour by searching the environment for worksites that can be found with a probability p(F). A successful Scout, that finds a worksite, performs the "Work" behaviour, during which it reads from and writes into its internal data structure, "Worksite location", to keep track of where the worksite is located. Additionally, a working robot sends Worksite location to any Scout that it encounters in order to recruit it.

Note how the condition that allows a robot to transition from the Scout to the Work behaviour can be triggered by both p(F) or by recruitment, i.e., by existence of the internal data structure in the Scout's memory. Also note that the condition of recruitment, "scout encountered" signifies that the two robots have to be at a similar place at a similar time for recruitment to occur. The BDRML diagram fully and unambiguously describes when recruitment is performed, what information is exchanged between robots and how it affects robot behaviour.

{Please enable JavaScript in order to post comments}

Coding for tomorrow: Why is good code important?

"Why should I care about how my code is written, as long as it works?" I will argue here that well-structured and well-written code not only saves time on a project, it also helps you to invest your time in a way that is meaningful for your future work.

Task Allocation in Foraging Robot Swarms

Bee-inspired self-regulation algorithms for robot swarms that deliver items into a single drop-off location and need to prevent congestion.


The main purpose of pyCreeper is to wrap tens of lines of python code, required to produce graphs that look good for a publication, into functions. It takes away your need to understand various quirks of matplotlib and gives you back ready-to-use and well-documented code.

Information Flow Regulation in Preferentially Foraging Swarms

Swarms are tasked with foraging from multiple sources in dynamic environments where source locations change periodically. Preferential foraging leads to a better swarm performance, provided that information flow among robots, that results from recruitment, is regulated

Robustness of Foraging E-puck Swarms

Swarms of five e-puck robots are used in a semi-virtual environment, facilitated by the VICON positioning system. Recruitment can make swarms more robust to noise in robot global positioning data.

Citations count fails to measure the impact of research

Academic career progress is often judged by so-called "h-index", that measures how much your research is being cited. I recently had a detailed look at what exactly the citations, specifically those reported by Google Scholar, amount to. Only a relatively small fraction of the reported citations corresponded to research being applied or reproduced in a meaningful way.