COMP460/COMP570 Project 3

There have been some changes made to the lab in response to student experiences. Please review the lab.

In class demo: Thursday April 30th with project report turned 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 robotics.


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:

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

blue egg

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.

 tennis ball

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.

drawing of board
game board setup.
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)

Egg distribution

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.

Autonomous Robots

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.

The Heats

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 contest.

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
  1. Your robot's performance in the demo
  2. The in-demo interview.
  3. Your project reports.
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 idea)
As always - have lots of fun. I can answer any further questions that you have.

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.