Buzz, a programming language for a self-organizing swarm of drones



    There is something mesmerizing in swarms of insects, flocks of birds and schools of fish. Many living things behave together as one living organism. At the same time, scientists explain that in such situations, every living component of a whole swarm builds its behavior, focusing only on its neighbors.

    The same theme has interested Canadians of Italian origin, Pintsiroli Carlo ( Carlo Pinciroli ), which since 2007 is engaged in research in the field of managing a large number of semi-autonomous robots . He  and his colleagues spoke about the latest achievement in this field - the programming language for the swarm of robots Buzz. The development is conducted by scientists from the MIST Polytechnic Laboratory of the Canadian Institute École Polytechnique de Montréal and their foreign colleagues.

    Programming a mobile robot is a rather complicated task in itself. The task of controlling the behavior of a whole flock, and even in a changing environment, when robots must make decisions about their actions, is even more difficult. There are two approaches to it - from bottom to top, and from top to bottom.

    The bottom-up approach suggests that the programmer needs to work with all the details and nuances of the behavior of robots, starting from the system of their movement and orientation. The top-down approach involves setting tasks at a high level, in which details of the behavior of robots are calculated on the basis of pre-prepared algorithms.

    image
    Swarm of robots from the projectMcLurkin , another researcher in this field.

    The authors of the Buzz language describe him as a syntactic heir to the now widely distributed JavaScript, Python, and Lua. This is done to reduce the entry threshold into the language. They tried to make it so that the programmer had a choice of approach - he would be able to choose whether to work from bottom to top or top to bottom.

    The language is enriched with special designs for working with swarms of robots. For example, swarm allows you to divide robots into groups, each of which will have its own task. The design of neighbors allows you to work with the interaction of neighboring robots with each other and emulate the behavior of animals in real schools.

    There are other constructions - for example, virtual stigmergy (virtual stigmergy), which gives robots a command to transmit to everyone and remember information in the form of sets of key-value pairs. It is named after the mechanism of indirect coordinated interaction of insects, which was first observed in termites. When one of them changes the state of the environment, others perceive this change, and it serves as an incentive for them to determine their subsequent actions.

    Carlo Pinziroli also created ARGoS during his research activities . - A program to simulate the work of a large number of robots. This program is used by several institutes and independent research teams working in similar directions. The video shows a demonstration of the interaction of a virtual swarm of robots in the virtual environment of ARGoS, which emulate the work of Spiri copters (a crowdfunding project that is currently at the stage of releasing a finished product).

    The video shows how a swarm of robots solves the problem of finding two different targets and dividing the swarm into two parts according to the found target. They do this in three stages.



    On the first, robots are gaining a given height. At the same time, robots that have gained height inform all of their neighbors about the achievement of this intermediate goal (virtual stigmergy). At the second stage, robots perform a visual search for an object, rotating around a vertical axis.

    At the third stage, the robots that find the desired object inform the neighbors about the success, and share with them information about the color of the object and the distance to it. Those robots that, having made a full turn, did not see any of the search objects, based on the information received from neighbors, decide which of the two groups to join.

    The fourth stage is the division of the swarm into two. Robots that find an object and robots that receive information about an object from their neighbors are divided into two groups.

    The authors of the article hope that Buzz will allow everyone interested in robotics to realize their ideas in a fairly simple way, and will also advance the issue of programming swarm of robots to the next level. According to their information, now there are no standard platforms that would allow researchers to compare their achievements, share them and use the achievements of others in this area.

    Buzz is free, its source code is open and distributed under the MIT license.

    Also popular now: