CMSC 422

Program 1, due 3/12/02
Reactive Programming

Note: You will be turning in a write-up to go along with the programming project - details later.

Note: You will need to download the Khepera robot simulator from here and learn how it works. This is part of the assignment, and I suggest you do it ASAP because if you cannot get it to compile, you're out of luck.

Note:You may need to patch the simulator for it to run on WAM or on non-solaris Unix platforms. Click here if you need patches.

Note: You will need to save nothing.world and hendler.world into the WORLD subdirectory in your copy of SIM


Part Ia Load the "nothing" world. Make a robot which, when placed close enough to a lamp to sense it, will move towards the lamp and stop when it hits it. (You can assume that you start near enough to the lamp, but not that you know in which direction the lamp is. To create a lamp, use "+" and "add" in the menu, and then "scan" it in.)


Part Ib: Load the "nothing" world. Make a robot which will search this world for a lamp. That is, it should find a lamp somewhere in the world, and stop when it finds it (printing out some message indicating it found it).


Part IIa: Load the "hendler" world. Make a robot which will search this world -- again, it should wander through the world in some sort of pattern that will cause it to cover most of the space in the world. Note, you might use some maze following behavior to do this.


PartIIb: Load the "hendler" world. Make a robot which will search this world for a lamp and stop when it finds it.


Part III: The simulator includes two worlds "T.world" and "Y.world." Make a robot that can be started anywhere within the T or Y and determine which one it is in.


Extra Credit: The simulator includes a number of other worlds (Chaos, circle, maze, maze1, snail, teach, etc.) Make a "smart" robot that can determine which world it is in.

Web Accessibility