COMP460/COMP570 Project 3
There have been some changes made to the lab in response to student experiences. Please review the lab.
Due: In class demo: Thursday April 30th with project report
by 5pm the following Tuesday May 5th. One report per group once again.
Final code is to be sent in a zip/gz/bz2 archive by email to the
instructor by 5pm that following Tuesday as well. Please include group
information in the zip file.
Overview and Objective:
You will design a robot which will try to move desirable (blue) plastic
eggs to its own nest while keeping the undesirable plastic eggs
(painted black) out of its nest. You will be competing with another
robot who will be trying to collect eggs itself. This lab is adapted
from one used a several other colleges including UMass Lowel where the
inventor of the handyboard robot controller teaches a course in
You have the same materials to work with as in project 2. If you wish
to bring in your own legos you are more than welcome to do so. If your
design needs a few extra parts, you may ask your instructor for them. I have legos, servos, and lego moters, but no additional black gear moters.
Your task is to build a robot that will collect eggs from the game
world and deposit them in the appropriate nest. There will be blue
painted eggs that look like this
The blue eggs are worth one point to which ever robot gets one in its
nest. Note that there might be a few places where the paint has chipped
off of the eggs.
There are also yellow tennis balls. These look like this. It turned out that the color vision didn't work well for black.
The tennis balls are worth -4 (minus four) points to which ever
robot gets one in its nest. In the final demo competition, there will
be 20 blue eggs and 5 tennis balls . Therefore, if you manage to put all
of the objects in your own nest, you will have a total score of 0.
The Game board
The board or game world is setup as shown in the image below.
The outer edge of the board is 1 1/4" white PVC pipe. The bottom of the
board in the picture is a slightly off white surface made of
posterboard and masking
tape. This didn't work out so well so we are going to use a black
poster paper for the game surface. The two nests, shown in color above,
are of colored posterboard.
There is a blue nest and a bright red-orange nest. Teams will be
randomly assigned a nest for each of their trials. The team assigned to
the orange nest will start at the position shown above by a orange X
(It will be silver in the actual map). The team assigned to the bright
blue nest will start at the position shown above by a blue
X (once again it will be silver in the actual map)
Eggs will be distributed randomly accross the black part of the board.
Before the two teams are randomly assigned a nest, each team will have
the opportunity to protest the arraingement. If either team does so,
the eggs will be recollected and randomly distributed again. Each team
can protest only two egg layouts in the entire contest. Eggs must be
entirely inside the nest to be considered in the nest.
Your robot must work atonomously through each heat of the contest. Your
team will be able to callibrate your robot on its own nest after nest
assignments are made, then you must put your robot on your start X.
When the instructor begins the heat, you can press one button to begin
your robots autonomous mode, then you must let your robot compete
unaided for the two minutes of the heat.
Each heat will be two minutes long. Two robots will compete in the
heat. Your robot will try to put black eggs in the opponants nest
and/or blue eggs in its own nest during that time. The robot with the
highest score at the end of the two minutes (even if that score is
negative) wins. In the event of a tie, if both teams have a score of 0
or less, both are considered to have lost. If both teams have a
positive score, the robots will be reset for a sudden death round. The
first time there is a score change, the one with the highest score wins
the heat. When a robot loses any two heats, it is eliminated from the
Robot specification and behavior
Your robot may put eggs in either nest. All eggs in your nest count for
you (or against you as the case may be) even if placed their by the
opposing team. Your robot may not try to damage the other robot.
However, you should build your robot to be strong enough to survive
being run into by accident. (The instructor will be the final abitrator
of what is and is not acceptable). You are working in a multi robot
environment and must understand that this changes how your robot will
interact with the world. Your robot may not leave the gameboard at any
time during the heat (it can't jump the PVC boundry and then come
back). Your robot may play a negative game so long as it doesn't try to
harm the opposing robot. For example, it might collect three black
eggs, deposit them into the opposing nest, and then sit in front of the
next, blocking the nest to prevent the robot from putting any more blue
eggs in the nest (or from expelling the black ones.). Robots may be no
larger than on cubic foot at the start of a heat. Robots may "open up"
after the heat starts if needed.
As always, grading will be a mixture of
For the demo part of your grade, the grading will be done using the
following scheme (thanks to the CMU undergrad robotics program for this
- Your robot's performance in the demo
- The in-demo interview.
- Your project reports.
As always - have lots of fun. I can answer any further questions that you have.
- F: your robot does nothing
- D: Your robot moves
- C: your robot gains possession of an egg (manages to locate and move it)
- B: your robot brings an egg to the correct nest (the opponants nest for black eggs and its own nest for blue eggs)
- A: your robot brings more than one egg to the correct nest.
(bringing incorrect eggs counts against you for this part of the
- In addition, the robot that wins the contest gets 15 extra credit
points for its team. The team that comes in second gets seven extra
The Project report
The project report is a report of what you tried to do, what you did,
what you learned and what you accomplished. To make my correcting
easier, let me give you guidlines on what I'd like to see in it. Make
sure you use section headings to make each section easy to find.
- this is where you explain the problem you were trying to solve and why it is relevent
- Robot design
- Here tell me what sort of robot you designed (in hardware).
Tell me what worked and what did not work. Discuss what you learned
based on what worked and what did not.
- Software design
- Here discuss what sort of control program you built. Again tell
me what worked and what did not. Discuss what you learned about robot
control software from your experience. Discuss your approach and its
relevence to both the current task at hand and the general problem of
robots acting in the world.
- Include a discussion of your vision, navigation, and overall strategy
- Evaluate your robot
- For both design robot and software design, consider the four
standards we are using to evaluate a robotic architecture and consider
how your robot meets each of them. For niche targetability, include
your robot's actual performance in the demo.
- Concuding discussion
- Summarize what you learned. Consider the following target
audience: next year's robotics students. In this section, summarize
from the preceding sections all of the worthwhile dos and don'ts that
you discovered in doing this lab. It is not really relevent that your
robot did really great unless you tell the reader why. Think about what
you would have liked to know when you first saw this lab, and if you
have any insights after doing the lab, share them here.