Added claw and completed the behaviors. Not fully tested yet.
This commit is contained in:
@@ -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);
|
||||||
|
|
||||||
|
@@ -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);
|
||||||
|
@@ -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;
|
Reference in New Issue
Block a user