EDU.gatech.cc.is.abstractrobot
Interface MultiForageN150

All Known Implementing Classes:
MultiForageN150Hard, MultiForageN150Sim, MultiForageN150HardPassiveGrip

public interface MultiForageN150
extends SimpleN150, VisualObjectSensor, GripperActuator, KinSensor, Transceiver

Provides an abstract interface to the hardware of a foraging Nomad 150 robot. Introduction
If you write a control system using this interface to the hardware, you can test it in simulation and on mobile robots.

"Multi Foraging" means the robot can sense several different classes of objects to collect, along with different bins in which to to deposit them. A SimpleN150 robot has sonar range finders, bumper switches, and odometry and steering, translation and turret motors. These capabilities are extended on a MultiForageN150 through the addition of color vision and a gripper.

Vision sensing
Vision hardware provides six "channels" that each track a different type of object. Each call to one of the vision routines requires a reference to which channel is being accessed. Bins and objects to collect are sensed by the same vision hardware.

Frames of reference
We use a standard cartesian coordinate system in meters and radians. Pretend you are looking down on the robot: +x goes out to your right (East), +y goes up (North). When the robot is initialized, it is facing the +x direction. Headings are given in radians, with East=0, North=PI/2 and so on CCW 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 (MultiForageN150Sim) and a physical robot class (MultiForageN150Hard). The subclasses handle details of interaction with the real or simulated world.

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 the amount of I/O to the physical robot. 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 -1 or greater than the last timestamp, the robot 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

See Also:
MultiForageN140Hard, MultiForageN140Sim

Field Summary
static double GRIPPER_CAPTURE_RADIUS
           
static double GRIPPER_POSITION
           
static int VISION_FOV_DEG
           
static double VISION_FOV_RAD
           
static double VISION_RANGE
           
 
Fields inherited from interface EDU.gatech.cc.is.abstractrobot.SimpleN150
MAX_STEER, MAX_TRANSLATION, MAX_TURRET, RADIUS, SONAR_RADIUS
 
Methods inherited from interface EDU.gatech.cc.is.abstractrobot.SimpleN150
getTurretHeading, resetTurretHeading, setTurretHeading
 
Methods inherited from interface EDU.gatech.cc.is.abstractrobot.VisualObjectSensor
getVisualObjects, setVisionNoise
 
Methods inherited from interface EDU.gatech.cc.is.abstractrobot.GripperActuator
getObjectInGripper, setGripperFingers, setGripperHeight
 
Methods inherited from interface EDU.gatech.cc.is.abstractrobot.KinSensor
getOpponents, getPlayerNumber, getTeammates, setKinMaxRange
 
Methods inherited from interface EDU.gatech.cc.is.communication.Transceiver
broadcast, connected, getReceiveChannel, multicast, quit, setCommunicationMaxRange, unicast
 
Methods inherited from interface EDU.gatech.cc.is.abstractrobot.SimpleInterface
getBackgroundColor, getDictionary, getForegroundColor, getID, getID, getObstacles, getPosition, getSteerHeading, getTime, resetPosition, resetSteerHeading, setBaseSpeed, setDictionary, setDisplayString, setID, setObstacleMaxRange, setSpeed, setSteerHeading
 

Field Detail

VISION_RANGE

public static final double VISION_RANGE

VISION_FOV_DEG

public static final int VISION_FOV_DEG

VISION_FOV_RAD

public static final double VISION_FOV_RAD

GRIPPER_CAPTURE_RADIUS

public static final double GRIPPER_CAPTURE_RADIUS

GRIPPER_POSITION

public static final double GRIPPER_POSITION