The Netmaze Robot Simulator


netmaze

Download Netmaze v0.96
last update : may 2001
Download Movie

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

top view

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:

net3

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)

tactile

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 :

ir4 raf


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