ENVIRONMENT :
A flat, 3x3 grid surface with a wall of 2x4s around it. The main floor of the grid is "white" (a reasonably "light" color). Each cell of the grid is approximately 9.5 x 9.5 inches, and the grid will be laid out in black and red electrical tape of 3/4 inch width.. The grid lines are there only for navigational purposes and there is no interpretation difference between red and black lines. Anywhere from none to all of the 9 cells in the grid contain "dirt" (a piece of green construction paper). The SuckerBot's "home" is cell (1,1) which is the upper, left hand corner of the grid.
Home![]() |
||
![]() |
||
![]() |
![]() |
GOAL :
Ensure that each of the cells in the grid is "clean" and return "home." Upon finding dirt, the SuckerBot should suck it up (make an appropriate audible signal to a human user who must remove the construction paper before the SuckerBot may continue). Upon checking all 9 cells of the grid, the VaccuumBot should return to "home" and make a second audible signal (a little song?) to indicate that it is home.
DETAILS :
In chapter 2 of Russell and Norvig, your textbook started making reference to the SuckerBot. This week, you are going to get a chance to program a slightly more complex version of what is in the book. For the most part, the previous details should be self-explanatory. However, you should consider building a robot that has the following features:
A single bumper - If you tell your robot to move forward when it is facing a wall, your robot should detect the collision and respond appropriately (that is, STOP and move away).
A pair of light sensors - Since many of you have had problems keeping your robot moving straight, one way to adjust for this is to have your robot "self adjust" at each grid line. That is, when one of the light sensors indicates that it has crossed a grid line, the robot should perform a maneuver to "straighten out" by maneuvering BOTH sensors over the grid line. Then, and only then, would it proceed into the next cell.
For your initial design, you should build a SuckerBot that has perfect knowledge of its current state. That is, it knows that it starts at home (cell (1,1)) and is facing to the "right" (cell (2,1)). As it moves through the world, it should keep track of where it is in the world, what the state of that known world is, and know exactly how to return to home when it has cleaned up the entire grid.