Robocup Simulation League: Simulated Soccer Players

Harvey Mudd College CS 154: Robotics - Lab Project 3
Michael A. Dickerson, Pomona College

My RoboCup simulated soccer team is written in Java using the Sun JDK 1.1.8. Up-to-the-minute documentation is available through Javadoc, the self-documenting mechanism supplied with the Java language.

This page should probably be viewed directly from the Robocup development host, at http://nightfall.singingtree.com/soccer

class javadoc source size

Madclient

The parent program, which understands command line parameters and can launch one or more Player threads. (Not yet complete.)


documentation

source
293

ServerConnection

Processes packets and constructs commands to be sent to the server. Does some final processing and sanity checking of supplied data, as well as limiting the data rate in order to enforce the Robocup communication speed limits. Using this class should guarantee that the client cannot violate Robocup specifications.


documentation

source
523

Player

A class which represents one simulated player, designed to run as its own thread. Each Player is completely self- sufficient, which is not optimally efficient but is a requirement of the Robocup competition.


documentation

source
67

World

One player's world model. Maintains two maps, one centered on the player which contains all dynamic game objects, and another which represents field landmarks in absolute coordinates for reference.


documentation

source
362

GameObject

The model of any individual object in the game. Uses a probabilistic, vector based approach to account for unreliable measurements while keeping memory use reasonable. Much of the geometry of the world model is contained in here (as well as in World).


documentation

source
282

Eye

A class for parsing visual sensory information received from the server, and integrating that information with the existing world model. (Not yet implemented.)


documentation

source
0

Ear

A class for parsing auditory sensory information received by the server and integrating that information, if appropriate, to the world model. (Not yet implemented.)


documentation

source
12

Point

A class which represents a point or vector in two dimensional Euclidean geometry. Uses rectangular coordinates internally, but can accept and supply polar coordinates (without changing the vector) if asked. Also understands the usual vector operations such as addition, scalar multiplication, dot product, etc. Using a smart Point class greatly simplifies the object and world models.


documentation

source
109