![]() |
![]() |
Professional
Microsoft Robotics Developer Studio
The original idea (and code) for the Maze Simulator came from Ben Axelrod and was posted on Channel 9.
The code has been modified by Trevor Taylor so that you can have coloured walls and they can also be of different heights. The program only supports 16 different colours (or textures), but this is sufficient to give it that wonderful "Lego-like" quality that seems so appropriate for a simulated maze.
In addition, you can create spheres, i.e. balls, that the robot can push around. A little "magic" is required to make a ball bounce properly. The relevant parameter is exposed in the config file as the Bounce Threshold.
The Maze Simulator allows you to select either the Pioneer 3DX robot (with a camera mounted on top) or the Lego NXT by changing the RobotType in the configuration file. You can also change the position and orientation of the camera.
The Maze Simulator can also be used for Visual Line Following. You need to create your lines as a bitmap, and then set up the Maze Simulator configuration so that the lines are very tiny walls -- only a couple of millimeters high. Then you adjust the camera so that it points downwards and you have to use vision to find and follow the lines.
To create new mazes, a Maze Generator program is also included with the code in this chapter.
The Maze Simulator allows you to get something up and running quickly in a simulated, but interesting, environment.
A Documentation page is provided with instructions on how to run the program.
There is a brief Tutorial. However, it does not explain the program in detail. You can use the software without having to make any changes to the code. You should try the Microsoft Simulation Tutorials on which this program is based.
This code is based very heavily on the Microsoft MRDS Tutorials and feedback from the MRDS Team. It is not warranted to be suitable for any purpose other than playing around with MRDS. There are known bugs, and it is not intended as a definitive example of how to write robotic systems or simulation systems.
[ Documentation ] | [ Tutorial ]