The Netmaze Robot Simulator
What is Netmaze?
Netmaze is a 3D simulation environment derived from a doom-like
video game written by Michael Hipp in 1991.
It is a free software under the Gnu General Public License.
Current features include :
-client-server architecture.
-3D rendering using openGL with possible hardware acceleration.
-real-time interactions
Its purpose is to provide researchers in AI and autonomous robotics with
a complete and easy to use simulation environment.
Netmaze can be used for robot navigation, behavior, artificial
vision, multi-agent systems, etc.
Experiments performed on real-world robots need the presence of a human
operator checking that they are not perturbed by some unexpected behavior
of the system, or that the robot actually 'learns' what it is supposed
to. This involves costly and long experiments, that are necessarily shortened
in scale. In addition to this restriction, human control can be an
experimental bias.
Simulation is an appropriate answer to these shortcomings; experiments
can be repeated and studied in more detail since all the parameters they
involve are known and can be analyzed. High numbers of experiments can
be carried out automatically. Hence, simulation is an approach complementary
to real-world robots.
What does it feel like for a simulated robot?
The environment is a maze delimited by walls. The size and configuration
of the maze can be defined by the user. Texture-mapping allows to
incorporate complex images.
Simulated robots perceive the world through a visual input, a
collision sensor and a range finder.
They may interact with walls and other agents through collisions.
They also have the possibility to play the video game, ie
to shoot at eachother with colored balls (see picture above),
and to feel pain when they are shot.
Here is a screenshot of the visual input of a robot:
On this picture, two agents (red balls) are facing the robot.
256 tactile sensors are placed around the body of the agent. They
indicate collisions with other objects
(walls or other agents). Tactile sensors are in the medial horizontal
plane relative to the agent.
Here is the display of the tactile sensor, detecting a collision
on the front left :
(the vertical arrow indicates the frontal axis of the agent)
The range finder covers the visual area. Its value indicates the
distance between objects and the agent.
Here (right picture) is output of the range finder, available to
the robot, that corresponds to the image on the left :
The white line at the bottom of the picture displays the value
of the range finder in the medial horizontal plane.
This constitutes a reduced version of the range finder input.
The range finder information can be used to avoid collisions.
What is required?
You need Linux, X11, and OpenGL.
How does it work?
Netmaze runs a server on a computer. Agents may connect to
the server from other machines of your network, or from the same machine.
How to use it?
The code of an agent is very simple to write.
Only the mapping between sensors (range finder, vision, collision)
to the effectors (motors) need to be written.
Here is the code of
an example
that does nothing but walk forward and react to collisions.
Please send any bug report or suggestion to
Thomas Voegtlin
voegtlin@isc.cnrs.f