The Roomba Race

Tue Dec 12 at 16-18 and Thu Dec 14 at 13-15.
The race is streamed live in CK112.
Also streamed LIVE with on-board cameras online.
(Use Conference ID 3030 for qualifiers and 3031 for actual race. Leave PIN and Sign-in name empty.)

A robotics programming project for Fall 2006 Artificial Intelligence course at the Department of Computer Science, University of Helsinki.

Final Roomba task will be a "race" in which a Roomba, equipped with a Nokia N80 cell phone camera, has to drive a course through two gates, go around a single pole, and return through the gates back and dock. A schematic picture (not in scale) can be seen below.

The zones are defined by the vague carpet lines. The gates are 2.5 roombas wide, and they are marked by light poles (diameter 63 mm, height 297mm) of different colors (approximate colors shown in the picture). The colors are in fixed order. The gates are not necessarily parallel to the starting line, but the blue pole is always closer to the wall with the door than the red pole. Similarly, the orange pole is always closer to the door wall than the green one. The starting line is the border between zone 0 and zone 1. The first gate will be placed somewhere in zone 1, the second gate in zone 2 and the last pole in zone 3. The race will end when Roomba has docked and signaled it or when maximum time of 5 minutes has been elapsed.

There are 7 checkpoints on the track, numbers and locations of which are marked to the picture. The first checkpoint occurs as soon as Roomba has moved over the starting line. Rest of the checkpoints are as follows:

  1. Fully through Gate 1
  2. Fully through Gate 2
  3. Around the pole
  4. Fully through Gate 2
  5. Fully through Gate 1
  6. Over the starting line
  7. Docking base touched
  8. Docked, stopped motors, and signaled

Race format

The race consists of two parts: the time trials will be held on Tuesday, December 12 at 16-18, and the actual race will be on Thursday, December 14 at 13-15. The time trial and the race are otherwise similar, but in the time trial there is only one Roomba on the track at a time. Roomba-0 will be equipped with camera-1 and it is controlled from the desktop dop-49. Roomba-1 will be equipped with camera-2 and it is controlled from the desktop dop-136. Roombas are assigned randomly for each team. The number of Roomba (0 or 1) is given as a command line parameter to the roomba controlling program.

Teams are seeded for the race based on their time trial performance. The actual race is run in the cup-format in which the winner advances to the next round. The general idea is that the top seeded team races against the bottom seeded one, the second best against the second from the bottom, etc. (see, the bracket). In the race there will be two Roombas on the track, but only one docking station. Before the final there will be a race for the 3rd position.

Scoring

The performance of a Roomba will be measured by the last checkpoint it reaches and the time it reaches it.

Members of the race winning team will get full 20 points. Everybody whose Roomba gets to the checkpoint 0 in time trial gets at least 5 points. After that, in the time trial, teams get a point per checkpoint (so the maximum is 5 + 8 = 13). In the final race, the positions 2,3 and 4 will earn 5, 4 and 3 points respectively. The teams in (tied) positions 5-8 will get 2 extra points and the last team will get 1. The teams get points only if they move over the starting line (checkpoint 0).

Start procedure

  1. Roomba(s) are taken from the dock and placed somewhere on the starting line.
  2. Roomba controlling program is started.
  3. The roomba will play the "Ready to start"-tune, the famous staring motif of Ludwig van Beethoven's Symphony No. 5 in C Minor (Op. 67), that in Roomba song 0 byte sequence (in decimal and slower than allegro tempo) is "0 10 0 16 43 16 43 16 43 16 39 32 0 16 42 16 42 16 42 16 38 64". You may change tempo and durations of the low notes to your liking.
  4. Spot-button is pressed down for about a second
  5. Spot-button is released: timing starts and Roomba is ready to go.

Finish procedure

The Roomba is considered to be completed the course as soon as it has docked so that the green docking light has been lit for at least a full second and its motor has stopped, after which Roomba plays the Finished-tune, the ending of the Franz Gruber's Silent Night (as song 1): 1 7 48 30 43 10 41 20 43 30 41 10 38 20 36 60. The clock is stopped when the tune ends.

Other rules

Links

The final groups have been formed. Please, report any changes.

Glance at programming with Roomba.

To get you started with cell phones camera, here is some help how to get the phone to send pictures to you.