CS 395/Fall 2002
Group Assignment 3: Marathon Man

Out: Tuesday, October 29
Due: Monday, November 4, 2:00pm

"The perceived level of intelligence of your robot is directly proportional to its velocity"
                - (Dave) Miller's law

"It's can't be reasoned with, it can't be bargained with ... it doesn't feel pity or remorse or fear ... and it will not stop.  Ever."
                - Kyle Reese to Sara Connor, The Terminator

This assignment is simple: write a wandering program that never stops.  You may use vision, sonar, dead reckoning, ESP, whatever you want.  You just can't use remote control.

Scoring

You will run your wanderer for 3.5 minutes through the corridor areas around the East wing of the building.  We will not make it go behind Olga's desk, but we reserve the right to try to herd it places.  However, we (Aaron and Ian) are the only ones allowed to herd it during the tests.  Your program will have 30 seconds to "warm up", after which we will track its measured minimum translational velocity over 60-second intervals.  After three 60-second intervals, the program will automatically stop and your score will be the average of the minimal velocities for each of the preceding intervals.

So here's your dilemma: the faster you run your base, the higher your score.  On the other hand, if you hit anything, your velocity will go to zero, giving you a zero for that time period.  How much do you trust your code?  How brave are you?  How stupid?

Procedural matters

A program for tracking your minimal velocity, computing your score, and automatically stopping after 3.5 minutes is available in the directory c:\marathon.scm.  Simply load the file and include the signal compute-score in your try-signals command.  It will display the running minimal velocities for each of the 60-second intervals and print your final score in the emacs window.

Good luck.