sk.robotics.rlcs.agents.robot
Class ApproachAgent

java.lang.Object
  extended by sk.robotics.rlcs.agentspace.Agent
      extended by sk.robotics.rlcs.agents.robot.MoveAgentBase
          extended by sk.robotics.rlcs.agents.robot.ApproachAgent
All Implemented Interfaces:
java.lang.Runnable

public class ApproachAgent
extends MoveAgentBase

Agent for moving a robot towards destination, stored in space. This agent turns the robot until it heads towards the destination point, and then moves it forward until it reaches the destination.


Nested Class Summary
static class ApproachAgent.Cfg
           
 
Nested classes/interfaces inherited from class sk.robotics.rlcs.agentspace.Agent
Agent.AgentThread, Agent.Hidden, Agent.ThreadCreator, Agent.WorkerThreadGroup
 
Field Summary
 
Fields inherited from class sk.robotics.rlcs.agents.robot.MoveAgentBase
cfg
 
Fields inherited from class sk.robotics.rlcs.agentspace.Agent
logTimeFormat, space, thread, workerThreads
 
Constructor Summary
ApproachAgent(ApproachAgent.Cfg cfg)
           
 
Method Summary
protected  Movement selectMove(Position pos, java.awt.geom.Point2D dest)
          Abstract method for determining next movement command to send to the robot.
 
Methods inherited from class sk.robotics.rlcs.agents.robot.MoveAgentBase
senseSelectAct
 
Methods inherited from class sk.robotics.rlcs.agentspace.Agent
cleanup, exit, getConfig, getIdleTime, getWorkerThreadGroup, isAlive, kill, log, log, log, log, log, run, senseSelectAct, setLogLevel, setPeriodicTrigger, setPeriodicTrigger, sleep, start, startup, toString, trigger, trigger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ApproachAgent

public ApproachAgent(ApproachAgent.Cfg cfg)
Method Detail

selectMove

protected Movement selectMove(Position pos,
                              java.awt.geom.Point2D dest)
Description copied from class: MoveAgentBase
Abstract method for determining next movement command to send to the robot. It should return Movement object representing the desired command.
Returning null will quit current sense-select-act iteration immediately, without sending anything to the robot.
Returning Movement.NO_MOVE will delete the movement block from space, instead of storing it there. The effect on the robot is the same, it will stop, but the difference is that another agents with lower priority can reclaim control over the block.

Specified by:
selectMove in class MoveAgentBase