We (David Ziegler, Renke Schulte and Tobias Sturm) have built a swarm of ASURO robots, which were developed by the DLR. We gave the swarm a task: Push small phials, that are randomly distributed, to one point. Without direct communication or central control.

We participated in ‘Jugend forscht’ 2009/2010. We were surprised, that even the robots didn’t solve the task, we won the regional competition in Bad Kreuznach and won the second place in the federal competition in Ludwigshafen).

2010/2011 we participated again with the same robots. We focused on the evaluation of the effectivity of the swarm and ran many experiments.

Are cooperative robots more efficient?

We asked ourselves, whether multiple robots are more efficient than a single one. We thought of a task and compared the single robot to the swarm. We were using modified ASURO robots. In addition, we developed a simulation to evaluate bigger swarms. After multiple experimental series we can show, that the swarm is more efficient in absolute numbers, but each participants of the swarm has a efficiency of only 48% of the single one.

Test Record


Phials are distributed randomly over the experimental area, which is limited by boundaries. These phials shall be pushed by one or multiple robots to one point on the area. We want to answer the question, whether multiple robots are more efficient than a single one $efficiency=\frac{effectivity}{ressources}$. Robots can not communicate among each other.

Hardware and experimental area

We used and modified the ASURO-Platform of the DLR: We added an infrared sensor, which can measure the distance to the next object in it’s beam and we added a dozer to push single phials at a time.

Modified robot

The dozer is on a height, where it fits over the boundaries of the area. The infrared sensor does not measure the boundary, as you can see on the following picture.

Each robot has 6 push sensors at the front. It can use odometer sensors on both wheels (unfortunately very imprecise). All five robots got the same C program.

The experimental area is shaped as an octagon, each side 80cm long. We filmed the experiments with a web cam, which was attached some meters above the area.

We did experiments with our simulation analogical. These experiments could be done more often, with more than 5 robots and over a longer time.

Visualization in the simulation: Robots are shaped as a quad. The bean of the infrared sensor is the dotted blue line.


Robots are not able to communicate among each other. They can’t find a place together where to push the phials to. We thought of the following strategy: Robots are do have the state “pushing phial” and “not pushing any phial”. And they are aware of the size of the biggest collection of phials they have ever measured.

  1. Drive randomly around. If you collide turn randomly and continue.
  2. Find a collection of phials / a single phial
  3. Measure the size of this collection (Assume that the collection is a circle and calculate the radius $ \frac{ \sin{ \frac{ \alpha}{2}} * d}{1 - \sin{\frac{ \alpha}{2}}} $, whereas $ \alpha $ is the turn distance and $ d $ the minimal distance between the robot and the collection.
  4. “not pushing any phial” Is this collection smaller than the biggest known? If yes, take one phial of the collection and continue with 1. If no, remember size and continue
  5. “pushing a phial” Is this collection bigger or equals the biggest known collection? If yes: drop phial. If no, continue with 1.

How a collection is simplified as a circle


I developed the simulation as a Multi Agent System: Each Asuro is represented by an agent. Each agent consists of two layers: One simulates the hardware and provides a similar API as the original Asuros. The other layer represents the C program, which runs on the ASUROs. The code has to be ported from C to Java manually. The ported software uses commands like setMotorPower exaclty the same way, as it uses it on the hardware. The hardware layer manages the state changes in the simulated reality. Each Agent lives in a thread.

We introduced this strict split up between hardware and C program, to avoid accidental additional inputs. There are no stimuli for the C program besides time, push sensors, infrared sensor and odometer.

!Principle of the simulation](http://downloads.tobiassturm.de/projects/asuros/simulation.png)

Overview over packages and classes in the simulation

The simulation runs experiments in batch mode, which is parameterized by a config file. Each experiment will be run multiple times. The simulation will generate the average over these experiments and make detailed logs for each one of them.

Experiments and evaluation

We did experiments with the following constellations:

  1. one Asuro, randomly-repeatable start positions of phials
  2. one Asuro, phials are on raster positions
  3. four asuros, same phial start positions as in 1.
  4. four Asuros, same phial start positions as in 2.

We define, that two phials belong to the same collection, as soon as their distance of their centers is less than 15cm. We imagined a circumcircle with the radius of 7.5cm around each phial. Two phials belong to the same collection, if these circumcirlce are overlapping. If two phials are standing closer together, their circumcircles will overlap more. If there are many collections, the total area that is occupied by circumcircles becomes smaller, which is an indicator for the efficency. We concluded: (i) $ effectivity \sim \frac{1}{occupied area} $.

You achieve the lowers Efficency by having every phial in no collection: (ii) $ effectivity = num phials * 7,5cm^{2} * \pi $.

To compare two experiments with a different number of phials, we define the occupied area at the beginning: (iii) $ Effectivity \sim num phials $.

From the proportionality we conclude: (i) & (iii) $ Effectivity \sim \frac{num phials}{occupied area} $.

If there are no overlappings (ii), we define the Effectivity as 0: $ Effectivity = 0 = \frac{num phials}{numphials * 7,5cm^{2} * \pi} + c$. Which concludes to $ c = - \frac{1}{7,5cm^{2}} $.

Our formula for Effectivity: $ Effectivity(t) = \frac{num phials(t)}{occupied area(t)} - \frac{1}{7,5cm^{2}} $

We filmed all experiments with a webcam, which was vertical above the experimental area. We took a snapshot at the end of each area

End of experiment

We extracted the coordinates of the centers of the phials with a small tool, which we developed, and drew the circumcircles around the centers.

Evaluation of phial positions with our tool

We could then calculate the Effectivity could be compared with the Effectivity from the beginning of the experiment. The delta is in the magnitude of $ 10^{-6} $.


We measured the effectivity for a single robot. If the swarm is as efficient (or even more efficient, because of spill-over effects), it should gain an effectivity which is at least three times as high as the single robot, to achieve the same efficency. This was not the case, as you can see in the image below. We assert, that the robots are more blocking each other and destroy collections of other robots.

Result of our experiments

There are more results in our documentation (see below).