Developing and testing control software for mobile robots is a very long and tedious process. A swarm-bot is a very complex entity made of many highly sophisticated robot units, thus it is important to have an aiding tool with which to carry out most of the control development.

The Swarmbot3D simulator is such a tool. It is a full programming environment in which to design and test not only new robot control but also new experimental set-ups in which to place them.

The development of Swarmbot3D within the simulation workpackage WP3 of the SWARM-BOTS project was intended to support the following supporting roles:

  • To be able to predict accurately both kinematics and dynamics of a single s-bot and of a swarm-bot in 3D;
  • To evaluate hardware design options for different components;
  • To design swarmbot experiments in 3D worlds;
  • To investigate different distributed control algorithms.
Swarm-bot of semi-connected s-bots in a
		formation on a flat plane

Figure 1. Swarm-bot of semi-connected s-bots in a formation on a flat plane.

Simulation Environment

Swarmbot3D was developed on top of Vortex, a commercial physics simulation engine from Critical Mass Lab, Inc.

The simulator allows to define both robots and worlds as XML text files. It is highly customizable in all all its aspects. It provides an easy to use GUI with which to interact directly with the loaded robots and with which to customize world definition such as diffused light brightness, gravity pull, egocentric camera view, resetting, etc.

One s-bot on a rough terrain

Figure 2. Swarmbot3D Tree Structure


Simulator Characteristics

Swarmbot3D is a sophisticated simulation package.

Its main characteristics can be summarized as follows.

  • Continuous 3D Dynamics. It is a continuous 3D dynamics simulator of a multi-agent system (swarm-bot) of cooperating robots ( s-bot).
  • Hardware S-Bot Compatibility. All hardware functionalities (sensors+mechanics) of one real s-bot have been implmented.
  • Software S-Bot Compatibility. Programs developed in Swarmbot3D are totally portable to the real robot since they are defined in terms of a common API.
  • Interactive Control. It provides on-line interactive control during simulation, useful for rapid prototyping.
  • Multi-Level Models. Most of the robot simulation modules have implementations at different levels of detail. In this respect, 4 different s-bot reference models have been defined (Fast, Simple, Medium, and Detailed).
    Dynamic Model Switching. is an extra feature unique in simulation of complex systems such as robots. It allows switching between representation models in real-time.
  • Swarm Handling. It has the capability of handling a group of robots either as independent units or in a swarm configuration. Physical connections between two robots are created dynamically during a simulation and can be deactivated when the components disband.
One detailed s-bot on a smooth plane.

Figure 3. One detailed s-bot on a smooth plane.

S-bot Model definition

One of the key characteristics of Swarmbot3D is modularity.

One s-bot has been defined in terms of a 4 main mechanical sub-systems:

  • treels,
  • turret,
  • front gripper arm,
  • side gripper arm.

A robot model is created by declaring a combination of these parts. Treels and turret are compulsory, whereas front and side arms are optional.

Each part has been defined at different levels of details. A combination of parts can therefore determine the robot approximation chosen to represent one s-bot (hierarchy).

S-Bots can easily be customized simply by opportunely editing the XML file containing their definition, however for a question of convenience 4 models were pre-packaged:

  • Fast (2 driving wheels, 2 caster wheels, one simple treels body, one turret),
  • Simple(same as Fast but twice its size to match better the real s-bot),
  • Medium (6 spherical wheels, one detailed treels body, one detailed turret, one coarse gripper arm),
  • Detailed (replica of the real s-bot in all of its parts, mechanical and sensorial).
S-Bots' hierarchy of reference models.

Figure 4. S-Bots' hierarchy of reference models.

Treels simple definition. Treels medium definition. Treels detailed definition.

Figure 5. Treels definitions (Simple, Medium, Detailed).

Turret simple definition. Turret simple definition. Turret detailed definition.

Figure 6.Turret definitions (Simple, Medium, Detailed).

Gripper arm medium definition. Gripper arm detailed definition.

Figure 7.Gripper arm definitions (Medium, Detailed).

S-Bot detailed flexible arm definition.

Figure 8.S-Bot detailed flexible arm definition.

Terrain Model Definitions

Modeling terrains within Swarmbot3D is very easy. Exactly as done with the robot modules, they can be defined in a text based XML format.

It is possible to define a terrain as a mere smooth plane, as mesh surfaces, as a composition of planes at different altitudes, or even as combination of all of the above.

Although users can customize the terrain they wish, for a question of convinience 3 different terrain reference models have been pre-packaged:

  • smooth plane,
  • composition of planes,
  • rough terrain (mesh surface).

Every terrain definition implies a different computational load on the simulator. The lowest overhead is given by the smooth plane, whereas the highest is given by a rough terrain modeled as a mesh surface.

A terrain defined as composite planes at different altitudes gives the same kind of overhead of the simple plane.

The simulator underlying physics engine (vortex) is unable to handle boolean operation onto geometrical solids, thus it is not possible to define holes in the ground simply subtracting areas from it. The only way is either defining a customized mesh surface, or using composite planes. The latter has the advantage over the former of implying lower overheads.

Terrain modeled as smooth plane Terrain modeled as composite plane Terrain modeled as mesh surface

Figure 9. Pre-defined terrain models (plane, composite planes, rough terrain as mesh surface).


Each simulated s-bot is equipped with several sensors. However, not all robot reference models are able to host all of them.

The Fast and Simple s-bot reference models possess only a simple form of proximity and sound sensors implemented as sample based look-up table. They also possess a basic form of effort sensor with which to read forces acting on them.

The Medium and Detailed model possess, instead, all the sensing capabilities of the real robot with the exclusion of the humitity and teperature perceptions.

The sensors available for these last two reference models are:

  • IR proximity sensors,
  • ground IR sensors,
  • grippers' optical barriers,
  • joints encoders,
  • force-torque sensors,
  • light sensors,
  • tachometer,
  • sound detector,
  • effort sensor,
  • inclinometer,
  • omni-directional camera.

The technique used for implementing each IR sensors is based on ray tracing. Briefly, an imaginary cone with amplitude matching that of the real IR is defined. The cone is pivoted at the location of an IR emitter around the turret. Randomly four rays are traced from the pivot along the cone surface and one is traced from the pivot along the cone axis. If an intersection of one of the 5 rays is found, a signal is triggered.

This is a simple implementation of the real IR, but it has proven to be sufficient for simulating a functional approximation of them.

Ground IR sensors are implemented similarly to the lateral IR sensors but with a much shorter range.

S-bot IR proximity sensors. S-bot IR proximity sensors GUI.

Figure 10. S-bot IR proximity sensors with its associated GUI.

S-bot IR ground sensors. S-Bot gripper's optical barrier.

Figure 11. IR ground sensors and gripper's optical barrier.

S-Bot red light ring. S-Bot green light ring. S-Bot blue light ring.

Figure 12. S-Bot red, green, blue light ring.

S-Bot sound detector.

Figure 13. S-Bot sound detectors (microphones).

3D Scene view. S-Bot centred view.

Figure 14. 3D Scene and the S-Bot centred camera view.

Dynamic Model Switching

A unique feature of Swarmbot3D is the possibility of dynamically switching the model representation of one simulated s-bot.

The simulator provides a hierarchy of reference robot models and each of them implies a different computational overhead. By using this technique, it is possible to force the simulator to employ the simplest s-bot description able to cope with the current environment situation.

The underlying assumption is that all robot model have to be compatible with each other.

Thanks to this technique, Swarmbot3D is able to optimize the efficiency of a swarm simulation by employing a model which is always the least computationally demanding and at the same time the most accurate among those available in a hierarchy.

Snap shot 0 of model switching. Snap shot 1 of model switching. Snap shot 2 of model switching. Snap shot 3 of model switching. Snap shot 4 of model switching. Snap shot 5 of model switching. Snap shot 6 of model switching. Snap shot 7 of model switching. Snap shot 8 of model switching. Snap shot 9 of model switching.

Figure 15. Snap shots of the dynamic model switching technique.

Swarm-bots project started
on October 1,2001
The project terminated
on March 31, 2005.
Last modified:
Fri, 27 Jun 2014 11:26:47 +0200
web administrator: