A View from Emerging Technology from the arXiv
A Programming Language For Robot Swarms
When it comes to robotic flocks, do you control each machine individually or the entire swarm overall? A new programming language allows both.
One of the more fascinating sights of an autumn evening is the flocking behaviour of starlings as they lurch and swoop in extraordinary demonstrations of aerodynamic synchronisation.
It turns out that these complex displays come about as a result of a simple set of rules that govern how the birds fly relatively to each other. Indeed, this flocking has been relatively straightforward to simulate on computer for many years.
But it has never been repeated with flying robots or ground-based ones for that matter, for two reasons. First because nobody has built robots with the same agility and speed. But even with less agile robots, the task is tricky because of the second reason: there is no easy way to control such a flock.
The first factor is changing rapidly. Cheap, capable robots—flying or otherwise–have caused an explosion of interest in flocks and swarms. Numerous researchers, hobbyists and artists are experimenting with these machines and hoping to study and exploit and the swarming behaviour they generate.
These groups are all finding that controlling large numbers of identical robots is something of a challenge. And in the absence of an established programming language, they are having to tackle the same problems in the same ways. In other words, they are re-inventing the wheel.
Today, Carlo Pinciroli at the Ecole Polytechnique de Montreal in Canada and a few pals say they have developed a programming language for just this purpose. “We present Buzz, a novel programming language for heterogeneous robot swarms,” they say.
There are two opposing approaches to controlling a swarm. The first is a bottom up method in which each robot is controlled individually. That’s useful for fine tuning the interaction between specific robots but becomes increasingly difficult to manage as the size of the swarm increase.
The opposing method is a top down approach in which the swarm is controlled as a whole. That’s much more effective for large swarms but does not allow for the fine tuning of individual robot behaviours.
Pinciroli and co say their new language allows both methods. “We believe that a language for robot swarms must combine both bottom-up and top-down primitives, allowing the developer to pick the most comfortable level of abstraction to express a swarm algorithm,” they say.
They say that Buzz also allows commands to be combined in intuitive ways with predictable results that make it relatively easy to use. It is also scalable and so can be used effectively in swarms of varying sizes.
They go on to show various examples of how the language works in practice and leads to self -organised behaviour using relatively simple rules, just like real swarms and flocks.
That’s interesting work that has the power to become a technology amplifier. Pinciroli and co say that the absence of a standardised programming language for swarms is a significant barrier to future progress because there is no easy way for researchers to share their work and build on each other’s breakthroughs.
“We believe that one of the most important aspects of Buzz is its potential to become an enabler for future research on real-world, complex swarm robotics systems,” says the team.
And they have ambitious plans for the future. For example, they want to create a library of well-known swarm behaviours that will become building blocks for the future work of others.
Interesting stuff which may mean that the extraordinary flocks you see on future autumn evenings may not be starlings at all.
Ref: arxiv.org/abs/1507.05946 : Buzz: An Extensible Programming Language for Self-Organizing Heterogeneous Robot Swarms