Skip to Content

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

Keep Reading

Most Popular

This new data poisoning tool lets artists fight back against generative AI

The tool, called Nightshade, messes up training data in ways that could cause serious damage to image-generating AI models. 

Rogue superintelligence and merging with machines: Inside the mind of OpenAI’s chief scientist

An exclusive conversation with Ilya Sutskever on his fears for the future of AI and why they’ve made him change the focus of his life’s work.

The Biggest Questions: What is death?

New neuroscience is challenging our understanding of the dying process—bringing opportunities for the living.

How to fix the internet

If we want online discourse to improve, we need to move beyond the big platforms.

Stay connected

Illustration by Rose Wong

Get the latest updates from
MIT Technology Review

Discover special offers, top stories, upcoming events, and more.

Thank you for submitting your email!

Explore more newsletters

It looks like something went wrong.

We’re having trouble saving your preferences. Try refreshing this page and updating them one more time. If you continue to get this message, reach out to us at customer-service@technologyreview.com with a list of newsletters you’d like to receive.