With this software you can simulate in 3D a mobile robot in a maze. Included are the maze layout and robot used in the c’t robot contest. Also included is a full installer/uninstaller.
Download Robot Simulator (400kb)
To install, run the downloaded file. To unistall, select uninstall from the Start menu.
Screenshots



Robot Simulator Uses’ Manual
Manual updated to build 011023:003
Robot Simulator Program Keys
GENERAL
ESC: Quit
F12: Toggle full screen/window
R: Reload scene configuration
OBJECT MANIPULATION
1-9,0: Select object, object 1 is the robot.
Left/right arrow: Turn object left/right
Up/down arrow: Move object forward/backward
CAMERA CONTROL
F1-F6: Select camera (keep pressed until view changes). Cameras can at a fixed position or can be mounted on a object.
A/D: Turn camera left/right.
W/S: Move camera forward/backward.
Page up/down: Move camera up/down.
Home/End: Turn camera up/down.
Scene Configuration
The scene configuration is stored in the text file config.txt in the working directory. The following commands can be used in the configuration file. A command is aways on a separate line and starts with the command name, followed by the command arguments. Units are in meters. Blank lines are ignored. Any characters appearing after the hash (#) character are considered comments.
Configuration Commands
| Camera camno posx posy posz rotz lookup objno | Define a camera at position and rotation. If objno>0 then the camera is bound the object with that objno. Last camera defined is the active camera upon startup. |
| ObjectStart objectno | Start an object definiton block. Last object defined is the active object upon startup. |
| Position posx posy posz | Set object positon |
| Orientation rotx roty rotz | Set object orientation |
| Collision limit | Turn on collision detection for this object. Limit is the radius within no other object can approach this object. |
| PushMatrix | Push current transformation matrix on stack |
| Translate x y z | Translate position |
| Rotate deg axisx axisy axisz | Rotate along axis |
| Color r g b alpha | Set color |
| DrawBox sizex sizey sizez | Draw box at current position |
| DrawDisk radius thickness no_segments | Draw a disk around the z-axis |
| DrawBase width lenght height thickness | Draw base plane in coloridx 0, with walls around it. |
| DrawWall x1 y1 x2 y2 height thickness | Draw a wall. |
| PopMatrix | Pop transformation matrix from stack |
| ObjectEnd | End object definiton |
Collision Detection
The program uses 3D collision detection between objects and walls. Objects are represented for collision detection purposes by a sphere centered at objects Position, with radius set with the Collision command. Collision betweens between objects will move the object collided into in the same amount as the moving object.