Project 2: Develop and Compare Homogeneous versus Heterogeneous
Simulated Robot Soccer Teams
Due: Tuesday Sep 17
This project uses the TeamBots environment, which you
can get at www.teambots.org.
Open questions in multirobot research
include issues like the benefits of
communication, cooperation and learning, and
whether team members should specialize or
be homogeneous. In this project, you will explore
the last question.
Soccer is a good task for multi-robot
investigations. First, it involves cooperation
and competition. Second, compared to many robot
tasks, performance is easy to measure.
Your task for this project is to develop a
homogeneous multi-robot soccer team for the TeamBots
simulation: one in which all the robots'
behaviors are identical.
Once that is complete, you should revise your team
so that at least one robot behaves differently from the others
(the choice of which robot and how it behaves differently
You should develop the homogeneous team first, then
implement the specialized team as a modification
of the homogeneous one. If the teams are substantially
similar except for the specialization, we can make
stronger statements about the performance advantage
or disadvanage of specialization.
After you've implemented your teams, compare their
performance against one of
the benchmark teams (SchemaDemo) included in the
You should also compare your homogeneous team against
the heterogeneous one.
If time permits we will have a championship between
teams in class.
Hand in printed copies of the following
The source for your homogeneous team, call it
YourTeamHomogeneous.java, where YourTeam is a
The source for your heterogeneous team, call it
YourTeamHeterogeneous.java, where YourTeam is a
A report describing your teams.
Include a results section that reports
the score of your team versus the team
you modified to design your code (or vs
BasicTeam if you wrote your code from scratch),
and the score of your team versus
SchemaDemo in a (simulated) 10 minute game.
Also include an analysis of
why you believe your team is better or worse
than the others.
- (If appropriate) run your homogeneous
team 5 times against
the team you revised to create your team.
Report the average score.
- Run your homogeneous team 5 times against SchemaDemo
and report the average score.
- Run your heterogeneous team 5 times against SchemaDemo
and report the average score.
- Run your homogeneous team 5 times against your
heterogeneous team. Report the average score.
Your grade will be determined, in order of significance, by:
The performance of your team. If you designed
your team by modifying existing code (which
is OK), your
team should be able to defeat the existing
team. If you can do that, you will get at
least a B. All teams should perform better
The creativity of your solution. You may
base your team on existing code, but
your team should include some kind of clever
improvement, not just a change of parameters.
Your analysis of why your team performs better
or worse than another.