import lejos.nxt.*; import lejos.util.*; import lejos.robotics.subsumption.*; import lejos.robotics.navigation.*; /** trying a FIRST lejos.robotics.subsumption/ Behavior-based robotics example: this application sets up an arbitrator to control a robot with just TWO possible behaviors, BehaviorProximity and BehaviorForward @author Bagnall - based on course textbook Chapter 14 example, pp. 278-279 @author adapted by Sharon Tuttle @version 2015-03-04 */ public class TwoBehaviors { // data fields private static final int INIT_SPEED = 40; private static final int INIT_ROTATION_SPEED = 80; /** set up and start an Arbitrator to manage a two-behaviors robot **/ public static void main(String[] args) { UltrasonicSensor ultraSensor = new UltrasonicSensor(SensorPort.S1); DifferentialPilot robot = new DifferentialPilot(56F, 120F, Motor.B, Motor.C); robot.setTravelSpeed(INIT_SPEED); robot.setRotateSpeed(INIT_ROTATION_SPEED); Behavior[] behaviorArray = {new BehaviorForward(robot), new BehaviorProximity(robot, ultraSensor)}; Arbitrator anArbitrator = new Arbitrator(behaviorArray); anArbitrator.start(); } }