Class GBN4

java.lang.Object
  |
  +--java.lang.Thread
        |
        +--interfaces.Controller
              |
              +--GBN4
All Implemented Interfaces:
java.lang.Runnable

public class GBN4
extends Controller

This class is a 3-1 net (plus bias) whos input comes from preprocessing 3 sensor inputs. The net was trained on 3 training patterns and generalises across 8 possible sets of binary inputs. see GBN3.training file for details. This robot tends to go wrong if it starts pointing the wrong way. This is because there is no training pattern to indicate how to deal with this circumstance. See GBN3 for an implementation that turns itself around, using 4 training patterns and generalising across 16 possible sets of binary inputs.

Author:
Graeme Bell
See Also:
GBN3

Fields inherited from class interfaces.Controller
SENSOR_TYPE_LIGHT, SENSOR_TYPE_TOUCH
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
GBN4()
           
 
Method Summary
 AbstractRobot getRobot()
          Returns the AbstractRobot associated with this controller
 int[] getSensors()
          Returns an array of the sensors used by this controller, and the type of sensor required.
 void halt()
          Stops this controller's thread running, i.e.
 void initController(AbstractRobot r)
          Initialises controller.
 void pause()
           
 void run()
          Starts this controller's thread running.
 void unpause()
           
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

GBN4

public GBN4()
Method Detail

run

public void run()
Description copied from class: Controller
Starts this controller's thread running. The 'real' controller functionality should be started from here.
Overrides:
run in class Controller

initController

public void initController(AbstractRobot r)
Description copied from class: Controller
Initialises controller. It should be noted that this method will only ever be called once, whereas run() can be called many times, so any variables or data structures etc. that are meant to persist in between stops and starts of the controller's thread, or that should only be initialised once should be set up from within this method, not in run().
Overrides:
initController in class Controller
Following copied from class: interfaces.Controller
Parameters:
r - the AbstractRobot associated with this controller

getSensors

public int[] getSensors()
Description copied from class: Controller
Returns an array of the sensors used by this controller, and the type of sensor required. This type must be one of the sensor type constants declared above. The index of the array is used to establish which sensor is being defined. e.g. if array[0] is SENSOR_TYPE_TOUCH then sensor 1 will be set to a touch sensor. The sensors array *must* be initialised with the correct values from the outset, and must not be set in initController(), or any other method. (see example Controllers for working examples)
Overrides:
getSensors in class Controller
Following copied from class: interfaces.Controller
Returns:
the sensor array

halt

public void halt()
Description copied from class: Controller
Stops this controller's thread running, i.e. must allow run() to return as quickly as possible. However it is acceptable for this method to do some housekeeping before stopping the controller, e.g. save some internal data strcuture to a file.
Overrides:
halt in class Controller

getRobot

public AbstractRobot getRobot()
Description copied from class: Controller
Returns the AbstractRobot associated with this controller
Overrides:
getRobot in class Controller
Following copied from class: interfaces.Controller
Returns:
the AbstractRobot

pause

public void pause()
Overrides:
pause in class Controller

unpause

public void unpause()
Overrides:
unpause in class Controller