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) explicitly 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. Here’s the work I presented this week at #IROS2017.
Primitives are the basic blocks of BDRML. They include:
The following relations between entities can exist:
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 \textit{update} relation always must specify the new value or the value update function.
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.
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.
An 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.
Publication:
Pitonakova, L., Crowder, R. & Bullock, S. (in press). 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.