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.