|
Introduction
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.
|
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.
|
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.
|
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).
|
|
|
Figure 7.Gripper arm definitions
(Medium, Detailed).
|
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.
|
|
Sensors
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.
|
|
|
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.
|
|
|