CMSC 421: Project 2
Exploring the Sense/Plan/Act Cycle
Due: - Tuesday, April 22
Late Policy as originally stated:
- If you submit the assignment (see
Project 2
submission info ) by 3:30 PM on Tuesday April 22, it will be considered as on time and graded for full credit.
- elseif you submit the assignment by 3:30 on Thursday April 24, it is a late submission and you will forfeit 2/3 of a letter grade,
- elseif you submit the assignment by 3:30 on Tuesday April 29 it will be accepted as very late, with a 4/3 letter grade loss.
- The project will not be accepted after 3:30PM April 29.
Goals of Project
In the textbook, page 163-165, there is a short discussion of something called the Sense/Plan/Act cycle in which is discusses problems where an agent cannot use search-based planning approaches for a number of reasons. In this assignment, you will explore a domain where that is true, and use a simulator based on a plan/sense/act cycle, so you can explore this kind of "reactive planning" as it is sometimes called.
Robotic Soccer is a good task for exploring this issue for several reasons. First, it is played in (simulated) real-time so the time spent reasoning matters. Second, compared to many robot tasks, performance is easy to measure. Third, the complexities of team behavior (preplanning, communication signaling, etc.) are laregly eliminated since the robots cannot communicate.
Your task is simple -- you must program a soccer team which beats a team which we have prepared. Your team can be homogeneous or heterogeneous as you wish. You will also need to writeup what you do which will count towards your grade.
Set-up
You will need to do the following:
- Download the teambots simulator from here . This page also has all the available information -- the documentation stinks (and has 404 errors in it) - that's part of the "fun" of the assignment...
- Set your CLASSPATH variable as described on that web site (not the way the README says, it may be wrong).
- Copy the following files from the web to "teambots area"/Domains/teams/ :
i. JAHGoalie.java
ii. JAHPele.java
iii. robocup421.dsc (plays one, one-minute game at a time - you may edit as you wish)
iv.robocup421-submit.dsc (for submitting your team - see below)
- Compile the JAH*.java files.
- Run "demo" - if this works you are ready to go, if not - get help. (note: you may need to edit the demo file to call your java execution code i.e. /foo/bar/java instead of just java - depends on your installation).
Assignment
Your assignment is straightforward. Our team is an okay, but not great team. You must beat it convincingly, building a team that can tie or win every game in a 5 game series (90 seconds per game). You must include at least two different robotic players (not just one duplicated 5 times).
What you will need to submit:
- Your code (one java file for each of the robots you use) -- this may be anywhere from 2 through 5 files depending on how you decide to solve the problem.
- A transcript of how your team does in a 5 game series: to do this you must show how your team does using robocup421-submit.dsc . (Either send the output of running this to a file, or copy and paste to file.) Do not change this file in anyway, except to put your players in as the number 2 team.
- A description of how you got your team to play - giving a basic description of the one or more players you created and what they do. Explain why you think your team is better than ours. This description can be a couple of pages or longer, more if you create more than two players. This description must be TYPED (and submitted electronically).
Your grade will be determined, in order of significance, by:
- The performance of your team with both players substituted. Your team outplaying the our team will result in at least a B.
- 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 the baseline.
Notes
You can figure out how to improve the code by examining the other robots. You may take pieces of code from any of these you want, but copying an entire player is cheating. (Note, to really do well you'll probably need to take code from a couple of different players and then improve on it).
If time permits we will have a championship between
teams in class (First place gets 10 points extra on final, Second gets 5 point). If you're interested in trying this, we'll need to know by April 22.
Web Accessibility