From 5322db4648916dfaa63e4b04e4b26220f0519005 Mon Sep 17 00:00:00 2001 From: Cindy Zhang Date: Tue, 16 Feb 2016 10:44:00 -0800 Subject: [PATCH] separated each pass defense command (purely driving ones) into two, one based on distance and one based on time --- .../commands/auton/DefaultAutonStrategy.java | 10 ++--- .../commands/auton/PassLowBarDistance.java | 37 +++++++++++++++++ .../{PassLowBar.java => PassLowBarTime.java} | 6 +-- .../commands/auton/PassMoatDistance.java | 41 +++++++++++++++++++ .../{PassMoat.java => PassMoatTime.java} | 4 +- .../commands/auton/PassRampartDistance.java | 40 ++++++++++++++++++ ...{PassRampart.java => PassRampartTime.java} | 4 +- .../commands/auton/PassRockWallDistance.java | 39 ++++++++++++++++++ ...assRockWall.java => PassRockWallTime.java} | 4 +- .../auton/PassRoughTerrainDistance.java | 41 +++++++++++++++++++ ...Terrain.java => PassRoughTerrainTime.java} | 4 +- 11 files changed, 214 insertions(+), 16 deletions(-) create mode 100644 src/org/usfirst/frc/team3501/robot/commands/auton/PassLowBarDistance.java rename src/org/usfirst/frc/team3501/robot/commands/auton/{PassLowBar.java => PassLowBarTime.java} (88%) create mode 100755 src/org/usfirst/frc/team3501/robot/commands/auton/PassMoatDistance.java rename src/org/usfirst/frc/team3501/robot/commands/auton/{PassMoat.java => PassMoatTime.java} (93%) mode change 100755 => 100644 create mode 100755 src/org/usfirst/frc/team3501/robot/commands/auton/PassRampartDistance.java rename src/org/usfirst/frc/team3501/robot/commands/auton/{PassRampart.java => PassRampartTime.java} (91%) mode change 100755 => 100644 create mode 100755 src/org/usfirst/frc/team3501/robot/commands/auton/PassRockWallDistance.java rename src/org/usfirst/frc/team3501/robot/commands/auton/{PassRockWall.java => PassRockWallTime.java} (92%) mode change 100755 => 100644 create mode 100644 src/org/usfirst/frc/team3501/robot/commands/auton/PassRoughTerrainDistance.java rename src/org/usfirst/frc/team3501/robot/commands/auton/{PassRoughTerrain.java => PassRoughTerrainTime.java} (91%) diff --git a/src/org/usfirst/frc/team3501/robot/commands/auton/DefaultAutonStrategy.java b/src/org/usfirst/frc/team3501/robot/commands/auton/DefaultAutonStrategy.java index 5b6453dd..318de7c1 100755 --- a/src/org/usfirst/frc/team3501/robot/commands/auton/DefaultAutonStrategy.java +++ b/src/org/usfirst/frc/team3501/robot/commands/auton/DefaultAutonStrategy.java @@ -22,10 +22,10 @@ public class DefaultAutonStrategy extends CommandGroup { addSequential(new PassSallyPort()); else if (defense == Constants.Defense.ROUGH_TERRAIN) - addSequential(new PassRoughTerrain()); + addSequential(new PassRoughTerrainTime()); else if (defense == Constants.Defense.LOW_BAR) - addSequential(new PassLowBar()); + addSequential(new PassLowBarTime()); else if (defense == Constants.Defense.CHEVAL_DE_FRISE) addSequential(new PassChevalDeFrise()); @@ -34,13 +34,13 @@ public class DefaultAutonStrategy extends CommandGroup { addSequential(new PassDrawBridge()); else if (defense == Constants.Defense.MOAT) - addSequential(new PassMoat()); + addSequential(new PassMoatDistance()); else if (defense == Constants.Defense.ROCK_WALL) - addSequential(new PassRockWall()); + addSequential(new PassRockWallDistance()); else if (defense == Constants.Defense.RAMPART) - addSequential(new PassRampart()); + addSequential(new PassRampartDistance()); addSequential(new AimAndAlign()); addSequential(new Shoot()); diff --git a/src/org/usfirst/frc/team3501/robot/commands/auton/PassLowBarDistance.java b/src/org/usfirst/frc/team3501/robot/commands/auton/PassLowBarDistance.java new file mode 100644 index 00000000..ee69e2a9 --- /dev/null +++ b/src/org/usfirst/frc/team3501/robot/commands/auton/PassLowBarDistance.java @@ -0,0 +1,37 @@ +package org.usfirst.frc.team3501.robot.commands.auton; + +import org.usfirst.frc.team3501.robot.commands.driving.DriveDistance; + +import edu.wpi.first.wpilibj.command.CommandGroup; + +/*** + * This command will drive the robot through the low bar. + * + * dependency on sensors: encoders + * dependency on subsystems: drivetrain + * dependency on other commands: DriveForDist + * + * pre-condition: robot is flush against the ramp of the outerworks in front of + * the low bar + * + * post-condition: the robot has passed the low bar and is in the next zone + * + * @author Meryem and Avi + * + */ + +public class PassLowBarDistance extends CommandGroup { + + private final double DISTANCE = 4.0; + private final double DEFAULT_SPEED = 0.5; + + public PassLowBarDistance() { + // TODO: need to add sequential for retracting the arms and shooting hood + // once those commands are made + addSequential(new DriveDistance(DISTANCE, DEFAULT_SPEED)); + } + + public PassLowBarDistance(double speed) { + addSequential(new DriveDistance(DISTANCE, speed)); + } +} diff --git a/src/org/usfirst/frc/team3501/robot/commands/auton/PassLowBar.java b/src/org/usfirst/frc/team3501/robot/commands/auton/PassLowBarTime.java similarity index 88% rename from src/org/usfirst/frc/team3501/robot/commands/auton/PassLowBar.java rename to src/org/usfirst/frc/team3501/robot/commands/auton/PassLowBarTime.java index cbdaeef6..fde2ee40 100755 --- a/src/org/usfirst/frc/team3501/robot/commands/auton/PassLowBar.java +++ b/src/org/usfirst/frc/team3501/robot/commands/auton/PassLowBarTime.java @@ -20,18 +20,18 @@ import edu.wpi.first.wpilibj.command.CommandGroup; * */ -public class PassLowBar extends CommandGroup { +public class PassLowBarTime extends CommandGroup { private final double DISTANCE = 4.0; private final double DEFAULT_SPEED = 0.5; - public PassLowBar() { + public PassLowBarTime() { // TODO: need to add sequential for retracting the arms and shooting hood // once those commands are made addSequential(new DriveDistance(DISTANCE, DEFAULT_SPEED)); } - public PassLowBar(double speed) { + public PassLowBarTime(double speed) { addSequential(new DriveDistance(DISTANCE, speed)); } } diff --git a/src/org/usfirst/frc/team3501/robot/commands/auton/PassMoatDistance.java b/src/org/usfirst/frc/team3501/robot/commands/auton/PassMoatDistance.java new file mode 100755 index 00000000..735e9710 --- /dev/null +++ b/src/org/usfirst/frc/team3501/robot/commands/auton/PassMoatDistance.java @@ -0,0 +1,41 @@ +package org.usfirst.frc.team3501.robot.commands.auton; + +import org.usfirst.frc.team3501.robot.commands.driving.DriveForTime; + +import edu.wpi.first.wpilibj.command.CommandGroup; + +/*** + * This command will drive the robot through the moat. + * + * The code drives the robot for a specific time at a specific speed up the ramp + * to the defense then drive over the defense at a different speed and time. + * + * dependency on subsystem: drivetrain + * + * dependency on other commands: DriveForTime + * + * pre-condition: robot is flush against the ramp of the outerworks in front of + * the moat + * + * post-condition: the robot has passed the moat and is in the next zone + * + * @author Meryem and Avi + * + */ + +public class PassMoatDistance extends CommandGroup { + + private final double BEG_TIME = 0; + private final double MID_TIME = 0; + private final double END_TIME = 0; + private final double BEG_SPEED = 0; + private final double MID_SPEED = 0; + private final double END_SPEED = 0; + + public PassMoatDistance() { + addSequential(new DriveForTime(BEG_TIME, BEG_SPEED)); + addSequential(new DriveForTime(MID_TIME, MID_SPEED)); + addSequential(new DriveForTime(END_TIME, END_SPEED)); + + } +} diff --git a/src/org/usfirst/frc/team3501/robot/commands/auton/PassMoat.java b/src/org/usfirst/frc/team3501/robot/commands/auton/PassMoatTime.java old mode 100755 new mode 100644 similarity index 93% rename from src/org/usfirst/frc/team3501/robot/commands/auton/PassMoat.java rename to src/org/usfirst/frc/team3501/robot/commands/auton/PassMoatTime.java index 1f465d95..d46f015c --- a/src/org/usfirst/frc/team3501/robot/commands/auton/PassMoat.java +++ b/src/org/usfirst/frc/team3501/robot/commands/auton/PassMoatTime.java @@ -23,7 +23,7 @@ import edu.wpi.first.wpilibj.command.CommandGroup; * */ -public class PassMoat extends CommandGroup { +public class PassMoatTime extends CommandGroup { private final double BEG_TIME = 0; private final double MID_TIME = 0; @@ -32,7 +32,7 @@ public class PassMoat extends CommandGroup { private final double MID_SPEED = 0; private final double END_SPEED = 0; - public PassMoat() { + public PassMoatTime() { addSequential(new DriveForTime(BEG_TIME, BEG_SPEED)); addSequential(new DriveForTime(MID_TIME, MID_SPEED)); addSequential(new DriveForTime(END_TIME, END_SPEED)); diff --git a/src/org/usfirst/frc/team3501/robot/commands/auton/PassRampartDistance.java b/src/org/usfirst/frc/team3501/robot/commands/auton/PassRampartDistance.java new file mode 100755 index 00000000..4ff3a85d --- /dev/null +++ b/src/org/usfirst/frc/team3501/robot/commands/auton/PassRampartDistance.java @@ -0,0 +1,40 @@ +package org.usfirst.frc.team3501.robot.commands.auton; + +import org.usfirst.frc.team3501.robot.commands.driving.DriveForTime; + +import edu.wpi.first.wpilibj.command.CommandGroup; + +/*** + * This command will drive the robot through the rampart. + * + * dependency on subsystems: drivetrain + * + * dependency on other commands: DriveForTime + * + * pre-condition: robot is flush against the ramp of the outerworks in front of + * the rampart + * + * post-condition: the robot has passed the rampart and is in the next zone + * + * @author Meryem and Avi + * + */ + +public class PassRampartDistance extends CommandGroup { + + public PassRampartDistance() { + + final double BEG_TIME = 0; + final double BEG_SPEED = 0; + final double MID_TIME = 0; + final double MID_SPEED = 0; + final double END_TIME = 0; + final double END_SPEED = 0; + + addSequential(new DriveForTime(BEG_TIME, BEG_SPEED)); + addSequential(new DriveForTime(MID_TIME, MID_SPEED)); + addSequential(new DriveForTime(END_TIME, END_SPEED)); + + } + +} diff --git a/src/org/usfirst/frc/team3501/robot/commands/auton/PassRampart.java b/src/org/usfirst/frc/team3501/robot/commands/auton/PassRampartTime.java old mode 100755 new mode 100644 similarity index 91% rename from src/org/usfirst/frc/team3501/robot/commands/auton/PassRampart.java rename to src/org/usfirst/frc/team3501/robot/commands/auton/PassRampartTime.java index 426063dc..582292e0 --- a/src/org/usfirst/frc/team3501/robot/commands/auton/PassRampart.java +++ b/src/org/usfirst/frc/team3501/robot/commands/auton/PassRampartTime.java @@ -20,9 +20,9 @@ import edu.wpi.first.wpilibj.command.CommandGroup; * */ -public class PassRampart extends CommandGroup { +public class PassRampartTime extends CommandGroup { - public PassRampart() { + public PassRampartTime() { final double BEG_TIME = 0; final double BEG_SPEED = 0; diff --git a/src/org/usfirst/frc/team3501/robot/commands/auton/PassRockWallDistance.java b/src/org/usfirst/frc/team3501/robot/commands/auton/PassRockWallDistance.java new file mode 100755 index 00000000..08ca2c36 --- /dev/null +++ b/src/org/usfirst/frc/team3501/robot/commands/auton/PassRockWallDistance.java @@ -0,0 +1,39 @@ +package org.usfirst.frc.team3501.robot.commands.auton; + +import org.usfirst.frc.team3501.robot.commands.driving.DriveForTime; + +import edu.wpi.first.wpilibj.command.CommandGroup; + +/*** + * This command will drive the robot through the rock wall. + * + * dependency on subsystems: drivetrain + * + * dependency on other commands: DriveForTime + * + * pre-condition: robot is flush against the ramp of the outerworks in front of + * the rock wall + * + * post-condition: the robot has passed the rock wall and is in the next zone + * + * @author Meryem and Avi + * + */ + +public class PassRockWallDistance extends CommandGroup { + + private final double BEG_TIME = 0; + private final double MID_TIME = 0; + private final double END_TIME = 0; + private final double BEG_SPEED = 0; + private final double MID_SPEED = 0; + private final double END_SPEED = 0; + + public PassRockWallDistance() { + + addSequential(new DriveForTime(BEG_TIME, BEG_SPEED)); + addSequential(new DriveForTime(MID_TIME, MID_SPEED)); + addSequential(new DriveForTime(END_TIME, END_SPEED)); + + } +} diff --git a/src/org/usfirst/frc/team3501/robot/commands/auton/PassRockWall.java b/src/org/usfirst/frc/team3501/robot/commands/auton/PassRockWallTime.java old mode 100755 new mode 100644 similarity index 92% rename from src/org/usfirst/frc/team3501/robot/commands/auton/PassRockWall.java rename to src/org/usfirst/frc/team3501/robot/commands/auton/PassRockWallTime.java index b27c6de1..05cfcc64 --- a/src/org/usfirst/frc/team3501/robot/commands/auton/PassRockWall.java +++ b/src/org/usfirst/frc/team3501/robot/commands/auton/PassRockWallTime.java @@ -20,7 +20,7 @@ import edu.wpi.first.wpilibj.command.CommandGroup; * */ -public class PassRockWall extends CommandGroup { +public class PassRockWallTime extends CommandGroup { private final double BEG_TIME = 0; private final double MID_TIME = 0; @@ -29,7 +29,7 @@ public class PassRockWall extends CommandGroup { private final double MID_SPEED = 0; private final double END_SPEED = 0; - public PassRockWall() { + public PassRockWallTime() { addSequential(new DriveForTime(BEG_TIME, BEG_SPEED)); addSequential(new DriveForTime(MID_TIME, MID_SPEED)); diff --git a/src/org/usfirst/frc/team3501/robot/commands/auton/PassRoughTerrainDistance.java b/src/org/usfirst/frc/team3501/robot/commands/auton/PassRoughTerrainDistance.java new file mode 100644 index 00000000..97289947 --- /dev/null +++ b/src/org/usfirst/frc/team3501/robot/commands/auton/PassRoughTerrainDistance.java @@ -0,0 +1,41 @@ +package org.usfirst.frc.team3501.robot.commands.auton; + +import org.usfirst.frc.team3501.robot.commands.driving.DriveForTime; + +import edu.wpi.first.wpilibj.command.CommandGroup; + +/*** + * This command will drive the robot through the rough terrain. + * + * dependency on subsytems: drivetrain + * + * dependency on other commands: DriveForTime + * + * pre-condition: robot is flush against the ramp of the outerworks in front of + * the rough terrain + * + * post-condition: the robot has passed the rough terrain and is in the next + * zone + * + * @author Meryem and Avi + * + */ +public class PassRoughTerrainDistance extends CommandGroup { + + // TODO: test for the time + private final double BEG_TIME = 0; + private final double MID_TIME = 0; + private final double END_TIME = 0; + + private final double BEG_SPEED = 0; + private final double MID_SPEED = 0; + private final double END_SPEED = 0; + + public PassRoughTerrainDistance() { + + addSequential(new DriveForTime(BEG_TIME, BEG_SPEED)); + addSequential(new DriveForTime(MID_TIME, MID_SPEED)); + addSequential(new DriveForTime(END_TIME, BEG_SPEED)); + + } +} diff --git a/src/org/usfirst/frc/team3501/robot/commands/auton/PassRoughTerrain.java b/src/org/usfirst/frc/team3501/robot/commands/auton/PassRoughTerrainTime.java similarity index 91% rename from src/org/usfirst/frc/team3501/robot/commands/auton/PassRoughTerrain.java rename to src/org/usfirst/frc/team3501/robot/commands/auton/PassRoughTerrainTime.java index 8851edf6..6bc6b223 100755 --- a/src/org/usfirst/frc/team3501/robot/commands/auton/PassRoughTerrain.java +++ b/src/org/usfirst/frc/team3501/robot/commands/auton/PassRoughTerrainTime.java @@ -20,7 +20,7 @@ import edu.wpi.first.wpilibj.command.CommandGroup; * @author Meryem and Avi * */ -public class PassRoughTerrain extends CommandGroup { +public class PassRoughTerrainTime extends CommandGroup { // TODO: test for the time private final double BEG_TIME = 0; @@ -31,7 +31,7 @@ public class PassRoughTerrain extends CommandGroup { private final double MID_SPEED = 0; private final double END_SPEED = 0; - public PassRoughTerrain() { + public PassRoughTerrainTime() { addSequential(new DriveForTime(BEG_TIME, BEG_SPEED)); addSequential(new DriveForTime(MID_TIME, MID_SPEED)); -- 2.30.2