EDU.gatech.cc.is.abstractrobot
Interface SocSmall

All Known Implementing Classes:
SocSmallSim

public interface SocSmall
extends SimpleInterface, KinSensor, KickActuator, GoalSensor, BallSensor, Transceiver

Provides an abstract interface to the simulated hardware of a small RoboCup robot. It's simulated size and perceptions match the specifications of RoboCup regulations for small robots. If you write a control system using this interface to the hardware, you can test it in simulation and (maybe someday) on mobile robots.

Sensors and Actuators
SocSmall robots can sense their position on the field, the locations of their teammates, opponents, the goals and the ball. The robots can turn and drive, as well as kick the ball, if they are close to it.

Frames of reference
We use a standard cartesian coordinate system in meters and radians. Pretend you are looking down on a robot: +x goes out to your right (East), +y goes up (North). The center of the soccer field is (0,0). When the robot is initialized, it is facing in the direction of the opponents goal. Headings are given in radians, with East=0, North=PI/2 and so on counter-clockwise around to 2*PI. Some methods return "egocentric" vectors. An egocentric vector is given relative to the center of the robot in the same heading reference frame as global coordinates. An object one meter east of the robot is at (1,0) egocentrically.

Implementations
This class is extended by a simulation class (SocSmallSim) The subclass handles details of interaction with the simulated world. Potentially, in the future, another implementation will extend this class for actual physical soccer robots.

Timestamps
Many of the sensor and motor command methods (e.g. get* and set*) require a timestamp as a parameter. This is to help reduce redundant computations for the same movement step. When real robots are used, this becomes especially important because I/O to sensors is expensive in time.

If the timestamp is less than or equal to the value sent on the last call to one of these methods, old data is returned. If the timestamp is greater than the last timestamp (or -1), the robot (simulated or real) is queried, and new data is returned. The idea is that during each control cycle the higher level software will increment the timestamp and use it for all calls to these methods.

Copyright (c)1997, 1998 Tucker Balch


Field Summary
static double KICKER_SPEED
          How fast the ball is kicked.
static double KICKER_SPOT_RADIUS
          How close the ball must be to the kicking zone for a kick to work.
static double MAX_STEER
          Max turning rate of a SocSmall robot.
static double MAX_TRANSLATION
          Max speed of a SocSmall robot.
static double RADIUS
          Radius of a SocSmall robot.
 
Methods inherited from interface EDU.gatech.cc.is.abstractrobot.SimpleInterface
getBackgroundColor, getDictionary, getForegroundColor, getID, getID, getObstacles, getPosition, getSteerHeading, getTime, quit, resetPosition, resetSteerHeading, setBaseSpeed, setDictionary, setDisplayString, setID, setObstacleMaxRange, setSpeed, setSteerHeading
 
Methods inherited from interface EDU.gatech.cc.is.abstractrobot.KinSensor
getOpponents, getPlayerNumber, getTeammates, setKinMaxRange
 
Methods inherited from interface EDU.gatech.cc.is.abstractrobot.KickActuator
canKick, kick
 
Methods inherited from interface EDU.gatech.cc.is.abstractrobot.GoalSensor
getOpponentsGoal, getOurGoal
 
Methods inherited from interface EDU.gatech.cc.is.abstractrobot.BallSensor
getBall, getJustScored
 
Methods inherited from interface EDU.gatech.cc.is.communication.Transceiver
broadcast, connected, getReceiveChannel, multicast, setCommunicationMaxRange, unicast
 

Field Detail

KICKER_SPOT_RADIUS

public static final double KICKER_SPOT_RADIUS
How close the ball must be to the kicking zone for a kick to work.

KICKER_SPEED

public static final double KICKER_SPEED
How fast the ball is kicked.

MAX_TRANSLATION

public static final double MAX_TRANSLATION
Max speed of a SocSmall robot.

MAX_STEER

public static final double MAX_STEER
Max turning rate of a SocSmall robot.

RADIUS

public static final double RADIUS
Radius of a SocSmall robot.