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]

[Robot swarms in action]

Multi-agent systems Robots AI Added on 28/06/2017

I've been spending a lot of time at the Bristol Robotics Laboratory working with a swarm of e-puck robots. I am currently looking at foraging with various types of robot swarms, previously explored in my PhD thesis and my recent publication, and comparing how the swarms work in simulation and in the real world.

A swarm of e-puck robotsDuring foraging, robots start from the base and search the arena for worksites that contain resource. They then travel back and forth between a found worksite and the base, delivering resources (if you've ever played any kind of strategy game, or watched ants forage, you know what I am talking about). This kind of research helps us to understand how to design algorithms for robots doing autonomous collection of raw resources or package delivery, or for autonomous taxis that have to respond to people booking trips.

The lab is a semi-virtual environment, where four cameras track the robot movement. There is a program running on a computer that keeps track of where virtual worksites are located and how much resource they hold, as well as where the robots are. The program informs a robot when it is near a worksite. The robot then remembers the worksite's position and starts foraging from it. In a real-world application, such virtual sensing could be replaced by cameras mounted on robots.

Here is an example of robots collecting virtual items from three different worksites:

What I am mostly interested in is whether sharing of information about where worksites are located helps the robots to collect resources faster. Looking at how ants and bees do foraging, it looks like sharing of information can be advantageous for the swarm. However, as we have previously shown in simulation, having a lot of information is not always good. For example, when a lot of robots get "persuaded" to collect from the same worksite, congestion is created, which prevents the robots from working efficiently. Here is an example of how such congestion looks like:

While the previous simulation work helped us to learn a lot about the advantages and disadvantages of communication in swarms,  doing similar experiments with real robots is already revealing interesting new things. In the real world, robots often fail and become obstacles for the rest of the swarm. Also, their movement and obstacle avoidance is not as smooth as in a simulation, which impacts the ability of the swarm to find and exhaust worksites. Another interesting thing is that every robot seems to have a  "personality" of its own, depending on its particular hardware. One robot might not "see" far enough, while another moves a bit slower than others. More annoyingly, some robots decide to stop working when others hit them too often or too hard. Similarly as people, it looks like some robots are simply hard-wired to be more difficult to work with that others.

This work was possible thanks to Prof. Alan Winfield and the Bristol Robotics Laboratory.

{Please enable JavaScript in order to post comments}

How to compile code for e-puck robots on your computer

Compiling code natively on e-puck robots or cross-compiling on your computer can be very tedious. Luckily, there is a third option: compiling code on a virtualised robot system on your computer, then sending the program onto the robot.

Are Robot Swarms Like Brains?

I have recently explored a way of measuring how information flows within a robot swarm. I think that there is something intriguing behind this idea - a swarm's resemblance to the human brain.

Designing robot swarms

In software engineering, a design pattern associates a particular class of known problem with a particular class of effective solution. Analogously, swarm robot engineers would benefit from design patterns that each associate specific robot control schemes with desired collective performance. In this project, we characterise such design patterns for robot swarms in the context of collective foraging and task allocation.


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.