CS 1020 - Homework 3-5 - The Eight-Ball Contest
Design, build and program a robot capable of removing as many
ping-pong balls as possible from a playing field during a designated
time period. The playing field will be a rectangular arena, inspired
by a pool table, about 4' x 6' large, bounded by wooden boards
(2-by-4's), and containing 14 ping-pong balls in random locations.
There will be several holes ("pockets") along the perimeter, and the
object is to push the balls through these holes. However, to make it
more interesting, there will also be a designated black "8
ball", which may not be removed if any other balls are still present
in the playing field. Since it is rather difficult for a robot to
detect balls or their colors, this special 8 ball will be
placed in the middle of an
14" x 14" square delineated with black tape in the center of the
playing field, so that your robot can keep a safe distance. Points
are scored by "pocketing" the other balls. A bright
light will be mounted above one of the pockets, which will be worth
Initially, your robot will be placed in a random spot in the
playing field. No human intervention will be allowed once the start
button is pressed. The winner is the robot that accumulates the most
The tentative scoring rules are as follows (these maybe
refined over the next week):
The competition will be held on Friday, 1/18.
- 1 point for each ball pushed in a "dark" corner pocket
- 2 points for each ball pushed in a "dark" center pocket or shot over the boundary
- 3 points for each ball pushed in the "light" corner pocket
- -5 points for each ball still in the arena if the 8-ball is pocketed prematurely
- 10 points if the 8-ball is pocketed last into a "dark" pocket or shot over the boundary
- 20 points if the 8-ball is pocketed last into the "light" pocket
Part I (Homework 3), due: Monday, 1/14
- By Monday you should build some kind of ping-pong-ball-handling
device that will become part of your robot. (Ping-pong balls will be
supplied.) We leave it up to you what to do with the balls, but a big
snow-plow-like robot that tries to push the balls around might not be
very effective. Rather, you should try to gain some kind of control
over the ball(s). For example:
We are being deliberately vague here, because we don't want to
restrict your creative potential! Whatever you build, however, you
should think about how it would be used in your actual robot. Make
sure your device does not get too heavy or bulky, since eventually it
will need to be mounted on a mobile platform.
On Monday we will meet with each group to discuss and evaluate your
progress and to grade your ball-handling device.
- build a ball gatherer (some sort of rotating arms or
wheels that push balls into a container);
- build a ball shooter (like a baseball pitching
- build a ball whacker (a horizontal propeller that can
drive balls in a certain direction, or perhaps even over
the boards) - but be careful, since random whacking might dislodge the 8-ball...
- Print out your code for lab 3
and submit it at the beginning of class on Monday
Part II (Homework 4), due: Wednesday, 1/16
- Build a car that can carry your device and that can explore the
playing field in search for balls. The focus for Wednesday should be less
on the programming and more on the mechanics. Make sure you build a
sturdy car that can drive and turn with a good speed. Remember some
of the lessons learned during the Sciborg contest: building stable
gear boxes, making sure the gear train can move freely, supporting
axles in more than 1 place, keeping most of the weight over the main
wheels, and using bracing.
- Print out your code for the sensor calibration exercise (lab 4),
and submit it at the beginning of class on Wednesday.
- Read the Handy Logo reference manual from the reading and also
revisit the reading from last Wednesday in preparation for the quiz on Wednesday. Be on time!
Part III (Homework 5), due: Friday, 1/18
- Complete your robot. The competition will take place promptly
at 9 AM on Friday. Your robot should be ready to go including being fully charged!
- Print out your code for lab 5
and submit it at the beginning of class on Friday.