Added claw and completed the behaviors. Not fully tested yet.

This commit is contained in:
Miguel Angel Astor Romero
2016-05-25 13:10:26 -04:30
parent 010b5ad544
commit d1ca7583a0
3 changed files with 7 additions and 5 deletions

View File

@@ -16,7 +16,7 @@ import lejos.robotics.subsumption.Arbitrator;
import lejos.robotics.subsumption.Behavior; import lejos.robotics.subsumption.Behavior;
import ve.ucv.ciens.cicore.icaro.ryabi.behaviors.AvoidObstaclesBehavior; import ve.ucv.ciens.cicore.icaro.ryabi.behaviors.AvoidObstaclesBehavior;
import ve.ucv.ciens.cicore.icaro.ryabi.behaviors.CatchBallBehavior; import ve.ucv.ciens.cicore.icaro.ryabi.behaviors.CatchBallBehavior;
import ve.ucv.ciens.cicore.icaro.ryabi.behaviors.SearchBoxBehavior; import ve.ucv.ciens.cicore.icaro.ryabi.behaviors.SearchBallBehavior;
import ve.ucv.ciens.cicore.icaro.ryabi.behaviors.SensorCalibrationBehavior; import ve.ucv.ciens.cicore.icaro.ryabi.behaviors.SensorCalibrationBehavior;
import ve.ucv.ciens.cicore.icaro.ryabi.behaviors.VictoryBehavior; import ve.ucv.ciens.cicore.icaro.ryabi.behaviors.VictoryBehavior;
import ve.ucv.ciens.cicore.icaro.ryabi.behaviors.WanderBehavior; import ve.ucv.ciens.cicore.icaro.ryabi.behaviors.WanderBehavior;
@@ -91,7 +91,7 @@ public class RyABI {
behaviors = new Behavior[5]; behaviors = new Behavior[5];
behaviors[0] = new WanderBehavior(pilot, sonar, touch, light, compass, WHEEL_DIAMETER, TRACK_WIDTH); behaviors[0] = new WanderBehavior(pilot, sonar, touch, light, compass, WHEEL_DIAMETER, TRACK_WIDTH);
behaviors[1] = new VictoryBehavior(); behaviors[1] = new VictoryBehavior();
behaviors[2] = new SearchBoxBehavior(pilot, sonar, touch, light, compass, WHEEL_DIAMETER, TRACK_WIDTH); behaviors[2] = new SearchBallBehavior(pilot, sonar, touch, light, compass, WHEEL_DIAMETER, TRACK_WIDTH);
behaviors[3] = new CatchBallBehavior(pilot, sonar, touch, light, compass, WHEEL_DIAMETER, TRACK_WIDTH); behaviors[3] = new CatchBallBehavior(pilot, sonar, touch, light, compass, WHEEL_DIAMETER, TRACK_WIDTH);
behaviors[4] = new AvoidObstaclesBehavior(pilot, sonar, touch, light, compass, WHEEL_DIAMETER, TRACK_WIDTH); behaviors[4] = new AvoidObstaclesBehavior(pilot, sonar, touch, light, compass, WHEEL_DIAMETER, TRACK_WIDTH);

View File

@@ -1,6 +1,7 @@
package ve.ucv.ciens.cicore.icaro.ryabi.behaviors; package ve.ucv.ciens.cicore.icaro.ryabi.behaviors;
import lejos.nxt.LightSensor; import lejos.nxt.LightSensor;
import lejos.nxt.Motor;
import lejos.nxt.TouchSensor; import lejos.nxt.TouchSensor;
import lejos.nxt.UltrasonicSensor; import lejos.nxt.UltrasonicSensor;
import lejos.nxt.addon.CompassHTSensor; import lejos.nxt.addon.CompassHTSensor;
@@ -24,7 +25,8 @@ public class CatchBallBehavior extends BaseBehavior {
@Override @Override
public void action() { public void action() {
// TODO Close claw. Motor.B.forward();
try { Thread.sleep(2000); } catch(InterruptedException e) { };
Rotations.rotate180(compass, pilot); Rotations.rotate180(compass, pilot);
state.setState(States.WANDER); state.setState(States.WANDER);

View File

@@ -11,14 +11,14 @@ import ve.ucv.ciens.cicore.icaro.ryabi.utils.RobotStateSingleton;
import ve.ucv.ciens.cicore.icaro.ryabi.utils.Rotations; import ve.ucv.ciens.cicore.icaro.ryabi.utils.Rotations;
import ve.ucv.ciens.cicore.icaro.ryabi.utils.States; import ve.ucv.ciens.cicore.icaro.ryabi.utils.States;
public class SearchBoxBehavior extends BaseBehavior { public class SearchBallBehavior extends BaseBehavior {
private SensorEventsQueue queue; private SensorEventsQueue queue;
private boolean ballFound; private boolean ballFound;
private FeatureDetectorsHandler detectorHandler; private FeatureDetectorsHandler detectorHandler;
private RobotStateSingleton state; private RobotStateSingleton state;
private boolean turnLeft; private boolean turnLeft;
public SearchBoxBehavior(ArcRotateMoveController pilot, UltrasonicSensor sonar, TouchSensor touch, LightSensor light, CompassHTSensor compass, float wheelDiameter, float trackWidth) { public SearchBallBehavior(ArcRotateMoveController pilot, UltrasonicSensor sonar, TouchSensor touch, LightSensor light, CompassHTSensor compass, float wheelDiameter, float trackWidth) {
super(pilot, sonar, touch, light, compass, wheelDiameter, trackWidth); super(pilot, sonar, touch, light, compass, wheelDiameter, trackWidth);
this.queue = SensorEventsQueue.getInstance(); this.queue = SensorEventsQueue.getInstance();
this.ballFound = false; this.ballFound = false;