Assign Tasks
Assign Tasks
WorldModel BasicPlayer
SenseHandler ActHandler
Connection
SOCCERSERVER
Utility classes which are used by the classes listed above but which
are not shown in the diagram are the following:
- PlayerSettings
- Logger, Timing (in Logger.C)
- ServerSettings
- SoccerTypes, SoccerCommand, Time (in SoccerTypes.C)
- Geometry, Line, Circle, Rectangle, VecPosition (all in Geometry.C)
- Parse
2. Some classes We may study
a. WorldModel(Nhâm)
This class contains the current representation of the world as observed by the agent. This
representation includes information about all the objects on the field such as the positions
and velocities of all the players and the ball. Information concerning the current play
mode is also stored, as well as the time and the score. Furthermore, the WorldModel
contains various types of methods that deal with the world state information in different
ways:
- Retrieval methods: for directly retrieving information about objects in the world
model; these methods are defined in the file WorldModel.C; this file also contains
methods for iterating over a specific set of objects; these methods make it possible
to compare information about different objects in the same set (e.g.
OBJECT_SET_OPPONENTS).
- Update methods: for updating the world model based on new sensory
information received from the SenseHandler; these methods are defined in the file
`WorldModelUpdate.C'.
- Prediction methods: for predicting future states of the world based on past
perceptions and for predicting the effect of actions performed by the agent; these
methods are defined in the file `WorldModelPredict.C'.
- High-level methods: for deriving high-level conclusions from basic information
about the state of the world (e.g. determining the fastest teammate to the ball);
these methods are defined in the file `WorldModelHighLevel.C'.
b. Object(Huyền)
This class contains information about all the objects in the simulation. Its implementation
is spread over six separate classes which together form an object type hierarchy. These
classes are the following:
c. BasicPlayer(Triệu)
This class defines the various skills than an agent can perform. The way in which these
skills are executed depends on the current state of the world model.
d. PlayerSettings(Dũng)
This class contains parameters which are used in the BasicPlayer class. An example of
such a parameter is `dPassEndSpeed' which denotes the desired end speed of the ball
when it is passed to a teammate. By changing the values of the parameters in this class it
is possible to adapt the behavior of the BasicPlayer.
e. Player(Dũng)
This class is a subclass of the BasicPlayer class that contains methods for reasoning
about the best possible action in a given situation. Action selection is based on the most
recent information about the state of the world as obtained from the WorldModel and on
the role of the agent in the current team formation. For making the final decision on
whether a particular type of action should be performed, the agent uses the parameter
values which are specified in the PlayerSettings class.
f. Formations(Hạt)
This class contains information about possible team formations as well as a method for
determining a strategic position on the field. Formations are read from a configuration
file (formations.conf) and are based on those used by the Simple Portugal team. The
implementation is spread over three separate classes:
- PlayerTypeInfo: contains information about a player type in a formation.
- FormationTypeInfo: contains information about one specific formation.
- Formations: contains information about all the possible team formations and stores
the currently used formation. This class is accessible from the WorldModel class.