lejos.robotics.subsumption
Interface Behavior


public interface Behavior

The Behavior interface represents an object embodying a specific behavior belonging to a robot. Each behavior must define three things:
1) The circumstances to make this behavior seize control of the robot. e.g. When the touch sensor determines the robot has collided with an object.
2) The action to perform when this behavior takes control. e.g. Back up and turn.
3) A way to quickly exit from the action when the Arbitrator selects a higher priority behavior to take control. These are represented by defining the methods takeControl(), action(), and suppress() respectively.
A behavior control system has one or more Behavior objects. When you have defined these objects, create an array of them and use that array to initialize an Arbitrator object.

Version:
0.9 May 2011
See Also:
Arbitrator

Method Summary
 void action()
          The code in action() represents the tasks the robot performs when this behavior becomes active.
 void suppress()
          The code in suppress() should cause the current behavior to exit.
 boolean takeControl()
          The boolean return indicates if this behavior should seize control of the robot.
 

Method Detail

takeControl

boolean takeControl()
The boolean return indicates if this behavior should seize control of the robot. For example, a robot that reacts if a touch sensor is pressed:
public boolean takeControl() {
return touch.isPressed();
}

Returns:
boolean Indicates if this Behavior should seize control.

action

void action()
The code in action() represents the tasks the robot performs when this behavior becomes active. It can be as complex as navigating around a room, or as simple as playing a tune.
The contract for implementing this method is:
If its task is is complete, the method returns. It also must return promptly when the suppress() method is called, for example by testing the boolean suppress flag.
When this method exits, the robot is in a safe state for another behavior to run its action() method


suppress

void suppress()
The code in suppress() should cause the current behavior to exit.
The contract for implementing this method is:
Exit quickly, for example, just set boolean flag.