From ebc235ae2a4a7dd2ef267276cf0846d86a64cdbf Mon Sep 17 00:00:00 2001 From: BrunoOsio Date: Sat, 20 Feb 2021 19:19:05 -0300 Subject: [PATCH 1/9] created base template of routines folder --- .../java/frc/robot/routines/Autonomous.java | 32 +++++++++++++++++ .../java/frc/robot/routines/IRoutines.java | 7 ++++ .../java/frc/robot/routines/Teleoperated.java | 34 +++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 src/main/java/frc/robot/routines/Autonomous.java create mode 100644 src/main/java/frc/robot/routines/IRoutines.java create mode 100644 src/main/java/frc/robot/routines/Teleoperated.java diff --git a/src/main/java/frc/robot/routines/Autonomous.java b/src/main/java/frc/robot/routines/Autonomous.java new file mode 100644 index 0000000..0b92fe3 --- /dev/null +++ b/src/main/java/frc/robot/routines/Autonomous.java @@ -0,0 +1,32 @@ +package frc.robot.routines; + +import static java.util.Objects.isNull; + +public class Autonomous implements IRoutines { + private static Autonomous autonomous; + + private Autonomous() { } + + public static Autonomous getInstance(){ + if (isNull(autonomous)) autonomous = new Autonomous(); + + return autonomous; +} + + + @Override + public void init() { + // TODO Auto-generated method stub + } + + @Override + public void periodic() { + // TODO Auto-generated method stub + } + + @Override + public void cancel() { + // TODO Auto-generated method stub + } + +} diff --git a/src/main/java/frc/robot/routines/IRoutines.java b/src/main/java/frc/robot/routines/IRoutines.java new file mode 100644 index 0000000..5df82e9 --- /dev/null +++ b/src/main/java/frc/robot/routines/IRoutines.java @@ -0,0 +1,7 @@ +package frc.robot.routines; + +public interface IRoutines { + void init(); + void periodic(); + void cancel(); +} diff --git a/src/main/java/frc/robot/routines/Teleoperated.java b/src/main/java/frc/robot/routines/Teleoperated.java new file mode 100644 index 0000000..502be8e --- /dev/null +++ b/src/main/java/frc/robot/routines/Teleoperated.java @@ -0,0 +1,34 @@ +package frc.robot.routines; + +import static java.util.Objects.isNull; + +public class Teleoperated implements IRoutines { + private static Teleoperated teleop; + + private Teleoperated() { } + + public static Teleoperated getInstance(){ + if (isNull(teleop)) teleop = new Teleoperated(); + + return teleop; +} + + @Override + public void init() { + // TODO Auto-generated method stub + + } + + @Override + public void periodic() { + // TODO Auto-generated method stub + + } + + @Override + public void cancel() { + // TODO Auto-generated method stub + + } + +} From bf4b61c4bf7437470230397a5d7173acd7ea9c49 Mon Sep 17 00:00:00 2001 From: BrunoOsio Date: Mon, 22 Feb 2021 14:16:25 -0300 Subject: [PATCH 2/9] created routines template --- src/main/java/frc/robot/Robot.java | 39 ++++++----- .../java/frc/robot/routines/Autonomous.java | 43 +++++++++--- .../java/frc/robot/routines/Teleoperated.java | 69 +++++++++++++++---- 3 files changed, 110 insertions(+), 41 deletions(-) diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index e9e7d63..ea3877d 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -1,17 +1,20 @@ package frc.robot; import edu.wpi.first.wpilibj.TimedRobot; -import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.CommandScheduler; +import frc.robot.routines.Autonomous; +import frc.robot.routines.Teleoperated; +import frc.robot.subsystems.Drivetrain; +import frc.robot.subsystems.Intake; public class Robot extends TimedRobot { - private Command autonomousCommand; - - private RobotContainer robotContainer; + public static Drivetrain drivetrain; + public static Intake intake; @Override - public void robotInit() { - this.robotContainer = new RobotContainer(); + public void robotInit() { + drivetrain = new Drivetrain(); + intake = new Intake(); } @Override @@ -20,34 +23,32 @@ public void robotPeriodic() { } @Override - public void disabledInit() { - this.robotContainer.reset(); - } + public void disabledInit() {} @Override public void disabledPeriodic() {} @Override public void autonomousInit() { - this.autonomousCommand = this.robotContainer.getAutonomousCommand(); - - if (this.autonomousCommand != null) { - this.autonomousCommand.schedule(); - } + Autonomous.getInstance().init(); } @Override - public void autonomousPeriodic() {} + public void autonomousPeriodic() { + Autonomous.getInstance().periodic(); + } @Override public void teleopInit() { - if (this.autonomousCommand != null) { - this.autonomousCommand.cancel(); - } + Autonomous.getInstance().cancel(); + Teleoperated.getInstance().init(); } @Override - public void teleopPeriodic() {} + public void teleopPeriodic() { + Teleoperated.getInstance().periodic(); + + } @Override public void testInit() { diff --git a/src/main/java/frc/robot/routines/Autonomous.java b/src/main/java/frc/robot/routines/Autonomous.java index 0b92fe3..8009bea 100644 --- a/src/main/java/frc/robot/routines/Autonomous.java +++ b/src/main/java/frc/robot/routines/Autonomous.java @@ -1,32 +1,55 @@ package frc.robot.routines; import static java.util.Objects.isNull; +import static java.util.Objects.nonNull; + +import edu.wpi.first.wpilibj.smartdashboard.SendableChooser; +import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; +import edu.wpi.first.wpilibj2.command.Command; +import frc.core.util.TrajectoryBuilder; +import frc.robot.commands.autons.GalacticA; public class Autonomous implements IRoutines { private static Autonomous autonomous; + private Command automonousCommand; + private SendableChooser chooser; + private TrajectoryBuilder trajectoryBuilder; + private Autonomous() { } public static Autonomous getInstance(){ - if (isNull(autonomous)) autonomous = new Autonomous(); + if (isNull(autonomous)) return new Autonomous(); return autonomous; -} - + } @Override public void init() { - // TODO Auto-generated method stub + this.chooser = new SendableChooser<>(); + this.setAutonomousOptions(); + + this.automonousCommand = this.getAutonomousCommand(); + + if (nonNull(this.automonousCommand)) this.automonousCommand.schedule(); } @Override - public void periodic() { - // TODO Auto-generated method stub - } + public void periodic() { } @Override public void cancel() { - // TODO Auto-generated method stub + if (nonNull(this.automonousCommand)) this.automonousCommand.cancel(); } - -} + + private Command getAutonomousCommand() { + return this.chooser.getSelected(); + } + + private void setAutonomousOptions() { + this.chooser.setDefaultOption("Galactic A", new GalacticA(this.trajectoryBuilder)); + this.chooser.addOption("Galactic A", new GalacticA(this.trajectoryBuilder)); + + SmartDashboard.putData("SELECT AUTONOMOUS", this.chooser); + } +} \ No newline at end of file diff --git a/src/main/java/frc/robot/routines/Teleoperated.java b/src/main/java/frc/robot/routines/Teleoperated.java index 502be8e..01b4706 100644 --- a/src/main/java/frc/robot/routines/Teleoperated.java +++ b/src/main/java/frc/robot/routines/Teleoperated.java @@ -2,33 +2,78 @@ import static java.util.Objects.isNull; +import edu.wpi.first.wpilibj.XboxController; +import edu.wpi.first.wpilibj.GenericHID.Hand; +import edu.wpi.first.wpilibj.XboxController.Axis; +import edu.wpi.first.wpilibj.XboxController.Button; +import edu.wpi.first.wpilibj2.command.button.JoystickButton; +import frc.robot.Robot; +import frc.robot.Constants.OIConstants; +import frc.robot.commands.drivetrain.ArcadeDrive; +import frc.robot.commands.drivetrain.CurvatureDrive; +import frc.robot.commands.intake.CollectPowerCell; +import frc.robot.commands.intake.ReleasePowerCell; + public class Teleoperated implements IRoutines { - private static Teleoperated teleop; + private static Teleoperated teleoperated; + + private XboxController driver, operator; private Teleoperated() { } public static Teleoperated getInstance(){ - if (isNull(teleop)) teleop = new Teleoperated(); + if (isNull(teleoperated)) teleoperated = new Teleoperated(); - return teleop; -} + return teleoperated; + } @Override public void init() { - // TODO Auto-generated method stub - + this.driver = new XboxController(OIConstants.driverControllerPort); + this.operator = new XboxController(OIConstants.operatorControllerPort); } @Override public void periodic() { - // TODO Auto-generated method stub - + this.configureButtonBindings(); } @Override - public void cancel() { - // TODO Auto-generated method stub + public void cancel() { } + + private void configureButtonBindings() { + this.commandsDrivetrain(); + this.commandsIntake(); + } + + private void commandsIntake() { + var buttonBumperLeft = new JoystickButton(this.operator, Button.kBumperLeft.value); + var axisTriggerLeft = new JoystickButton(this.operator, Axis.kLeftTrigger.value); + + buttonBumperLeft + .whileHeld(new CollectPowerCell(Robot.intake)); + + axisTriggerLeft + .whileHeld(new ReleasePowerCell(Robot.intake)); + } + + private void commandsDrivetrain() { + var buttonBumperLeft = new JoystickButton(this.driver, Button.kBumperLeft.value); + + buttonBumperLeft.whileHeld( + new CurvatureDrive( + Robot.drivetrain, + () -> this.driver.getY(Hand.kLeft), + () -> this.driver.getX(Hand.kRight) + ) + ); + Robot.drivetrain.setDefaultCommand( + new ArcadeDrive( + Robot.drivetrain, + () -> this.driver.getY(Hand.kLeft), + () -> this.driver.getX(Hand.kRight) + ) + ); } - -} +} \ No newline at end of file From 08793323ae30ecdecc6c3bc7a38e6e204eee6f22 Mon Sep 17 00:00:00 2001 From: BrunoOsio Date: Tue, 23 Feb 2021 10:16:04 -0300 Subject: [PATCH 3/9] trajectoryBuilder is now instantiated as static in robot init --- .vscode/launch.json | 12 ++++-- src/main/java/frc/robot/Robot.java | 6 +++ .../java/frc/robot/routines/Autonomous.java | 38 ++++++++++++++++--- 3 files changed, 48 insertions(+), 8 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index c9c9713..b463252 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -4,18 +4,24 @@ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ - + { + "type": "java", + "name": "Launch Main", + "request": "launch", + "mainClass": "frc.robot.Main", + "projectName": "frc-2021" + }, { "type": "wpilib", "name": "WPILib Desktop Debug", "request": "launch", - "desktop": true, + "desktop": true }, { "type": "wpilib", "name": "WPILib roboRIO Debug", "request": "launch", - "desktop": false, + "desktop": false } ] } diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index ea3877d..ff74c95 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -2,8 +2,10 @@ import edu.wpi.first.wpilibj.TimedRobot; import edu.wpi.first.wpilibj2.command.CommandScheduler; +import frc.core.util.TrajectoryBuilder; import frc.robot.routines.Autonomous; import frc.robot.routines.Teleoperated; +import frc.robot.routines.Autonomous.RobotPath; import frc.robot.subsystems.Drivetrain; import frc.robot.subsystems.Intake; @@ -11,10 +13,14 @@ public class Robot extends TimedRobot { public static Drivetrain drivetrain; public static Intake intake; + public static TrajectoryBuilder trajectoryBuilder; + @Override public void robotInit() { drivetrain = new Drivetrain(); intake = new Intake(); + + trajectoryBuilder = new TrajectoryBuilder(drivetrain, RobotPath.getPaths()); } @Override diff --git a/src/main/java/frc/robot/routines/Autonomous.java b/src/main/java/frc/robot/routines/Autonomous.java index 8009bea..13e5c7f 100644 --- a/src/main/java/frc/robot/routines/Autonomous.java +++ b/src/main/java/frc/robot/routines/Autonomous.java @@ -3,18 +3,46 @@ import static java.util.Objects.isNull; import static java.util.Objects.nonNull; +import java.util.ArrayList; +import java.util.List; + import edu.wpi.first.wpilibj.smartdashboard.SendableChooser; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; import edu.wpi.first.wpilibj2.command.Command; -import frc.core.util.TrajectoryBuilder; + +import frc.robot.Robot; import frc.robot.commands.autons.GalacticA; + + public class Autonomous implements IRoutines { private static Autonomous autonomous; private Command automonousCommand; private SendableChooser chooser; - private TrajectoryBuilder trajectoryBuilder; + + public enum RobotPath { + //add all paths here + GALACTIC_A("galaticA"); + + private final String fileName; + private RobotPath(String fileName) { + this.fileName = fileName; + } + + public static String[] getPaths() { + List pathsList = new ArrayList<>(); + + for(String path : RobotPath.getPaths()) { + pathsList.add(path.toString()); + } + + String[] pathsArray = new String[pathsList.size()]; + pathsList.toArray(pathsArray); + + return pathsArray; + } + } private Autonomous() { } @@ -47,9 +75,9 @@ private Command getAutonomousCommand() { } private void setAutonomousOptions() { - this.chooser.setDefaultOption("Galactic A", new GalacticA(this.trajectoryBuilder)); - this.chooser.addOption("Galactic A", new GalacticA(this.trajectoryBuilder)); + this.chooser.setDefaultOption("Galactic A", new GalacticA(Robot.trajectoryBuilder)); + this.chooser.addOption("Galactic A", new GalacticA(Robot.trajectoryBuilder)); SmartDashboard.putData("SELECT AUTONOMOUS", this.chooser); - } + } } \ No newline at end of file From 0eac8b6deffb22421c4033e44413d65f93f72c3e Mon Sep 17 00:00:00 2001 From: BrunoOsio Date: Tue, 23 Feb 2021 12:45:42 -0300 Subject: [PATCH 4/9] fixed singleton errors at routines, added buffer commands, improved autonomous enum, instantiations are now in global variables --- .../java/frc/core/components/Limelight.java | 2 +- src/main/java/frc/robot/Robot.java | 10 ++++-- .../java/frc/robot/routines/Autonomous.java | 31 +++++++------------ .../java/frc/robot/routines/Teleoperated.java | 21 +++++++++---- 4 files changed, 35 insertions(+), 29 deletions(-) diff --git a/src/main/java/frc/core/components/Limelight.java b/src/main/java/frc/core/components/Limelight.java index a8527fb..ae535de 100644 --- a/src/main/java/frc/core/components/Limelight.java +++ b/src/main/java/frc/core/components/Limelight.java @@ -58,7 +58,7 @@ private CamMode(int value) { } public static Limelight getInstance() { - if (isNull(limelight)) return new Limelight(); + if (isNull(limelight)) limelight = new Limelight(); return limelight; } diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index ff74c95..6cb55aa 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -6,12 +6,14 @@ import frc.robot.routines.Autonomous; import frc.robot.routines.Teleoperated; import frc.robot.routines.Autonomous.RobotPath; +import frc.robot.subsystems.Buffer; import frc.robot.subsystems.Drivetrain; import frc.robot.subsystems.Intake; public class Robot extends TimedRobot { public static Drivetrain drivetrain; public static Intake intake; + public static Buffer buffer; public static TrajectoryBuilder trajectoryBuilder; @@ -19,8 +21,9 @@ public class Robot extends TimedRobot { public void robotInit() { drivetrain = new Drivetrain(); intake = new Intake(); + buffer = new Buffer(); - trajectoryBuilder = new TrajectoryBuilder(drivetrain, RobotPath.getPaths()); + trajectoryBuilder = new TrajectoryBuilder(drivetrain, RobotPath.get()); } @Override @@ -29,7 +32,9 @@ public void robotPeriodic() { } @Override - public void disabledInit() {} + public void disabledInit() { + drivetrain.reset(); + } @Override public void disabledPeriodic() {} @@ -52,6 +57,7 @@ public void teleopInit() { @Override public void teleopPeriodic() { + //its may causing bugs Teleoperated.getInstance().periodic(); } diff --git a/src/main/java/frc/robot/routines/Autonomous.java b/src/main/java/frc/robot/routines/Autonomous.java index 13e5c7f..f882882 100644 --- a/src/main/java/frc/robot/routines/Autonomous.java +++ b/src/main/java/frc/robot/routines/Autonomous.java @@ -3,8 +3,7 @@ import static java.util.Objects.isNull; import static java.util.Objects.nonNull; -import java.util.ArrayList; -import java.util.List; +import java.util.Arrays; import edu.wpi.first.wpilibj.smartdashboard.SendableChooser; import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; @@ -13,33 +12,28 @@ import frc.robot.Robot; import frc.robot.commands.autons.GalacticA; - - public class Autonomous implements IRoutines { private static Autonomous autonomous; - private Command automonousCommand; - private SendableChooser chooser; + private Command automonousCommand = this.getAutonomousCommand(); + private SendableChooser chooser = new SendableChooser<>(); public enum RobotPath { //add all paths here GALACTIC_A("galaticA"); - private final String fileName; + public final String fileName; private RobotPath(String fileName) { this.fileName = fileName; } - public static String[] getPaths() { - List pathsList = new ArrayList<>(); + public static String[] get() { + var robotPathValues = RobotPath.values(); + var pathsArray = Arrays + .stream(robotPathValues) + .map(p -> p.fileName) + .toArray(String[]::new); - for(String path : RobotPath.getPaths()) { - pathsList.add(path.toString()); - } - - String[] pathsArray = new String[pathsList.size()]; - pathsList.toArray(pathsArray); - return pathsArray; } } @@ -47,18 +41,15 @@ public static String[] getPaths() { private Autonomous() { } public static Autonomous getInstance(){ - if (isNull(autonomous)) return new Autonomous(); + if (isNull(autonomous)) autonomous = new Autonomous(); return autonomous; } @Override public void init() { - this.chooser = new SendableChooser<>(); this.setAutonomousOptions(); - this.automonousCommand = this.getAutonomousCommand(); - if (nonNull(this.automonousCommand)) this.automonousCommand.schedule(); } diff --git a/src/main/java/frc/robot/routines/Teleoperated.java b/src/main/java/frc/robot/routines/Teleoperated.java index 01b4706..c584ae8 100644 --- a/src/main/java/frc/robot/routines/Teleoperated.java +++ b/src/main/java/frc/robot/routines/Teleoperated.java @@ -9,6 +9,7 @@ import edu.wpi.first.wpilibj2.command.button.JoystickButton; import frc.robot.Robot; import frc.robot.Constants.OIConstants; +import frc.robot.commands.buffer.Feed; import frc.robot.commands.drivetrain.ArcadeDrive; import frc.robot.commands.drivetrain.CurvatureDrive; import frc.robot.commands.intake.CollectPowerCell; @@ -17,7 +18,8 @@ public class Teleoperated implements IRoutines { private static Teleoperated teleoperated; - private XboxController driver, operator; + private XboxController driver = new XboxController(OIConstants.driverControllerPort); + private XboxController operator = new XboxController(OIConstants.operatorControllerPort); private Teleoperated() { } @@ -28,10 +30,7 @@ public static Teleoperated getInstance(){ } @Override - public void init() { - this.driver = new XboxController(OIConstants.driverControllerPort); - this.operator = new XboxController(OIConstants.operatorControllerPort); - } + public void init() {} @Override public void periodic() { @@ -42,8 +41,9 @@ public void periodic() { public void cancel() { } private void configureButtonBindings() { - this.commandsDrivetrain(); this.commandsIntake(); + this.commandsDrivetrain(); + this.commandsBuffer(); } private void commandsIntake() { @@ -76,4 +76,13 @@ private void commandsDrivetrain() { ) ); } + + private void commandsBuffer(){ + Robot.buffer.setDefaultCommand( + new Feed( + Robot.buffer, + () -> this.operator.getY(Hand.kRight) + ) + ); + } } \ No newline at end of file From 9f1843c383e8a2bc663e65d91f9041ab98008632 Mon Sep 17 00:00:00 2001 From: BrunoOsio Date: Thu, 25 Feb 2021 11:53:49 -0300 Subject: [PATCH 5/9] fixed order of global variables at autonomous.java --- src/main/java/frc/robot/routines/Autonomous.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/routines/Autonomous.java b/src/main/java/frc/robot/routines/Autonomous.java index f882882..81bd2c5 100644 --- a/src/main/java/frc/robot/routines/Autonomous.java +++ b/src/main/java/frc/robot/routines/Autonomous.java @@ -15,8 +15,8 @@ public class Autonomous implements IRoutines { private static Autonomous autonomous; - private Command automonousCommand = this.getAutonomousCommand(); private SendableChooser chooser = new SendableChooser<>(); + private Command automonousCommand = this.getAutonomousCommand(); public enum RobotPath { //add all paths here From 752a2d64da5d599f1cc73b3e76b8848630b2f0ca Mon Sep 17 00:00:00 2001 From: BrunoOsio Date: Sun, 14 Mar 2021 22:15:24 -0300 Subject: [PATCH 6/9] fixed limelight push --- src/main/java/frc/core/components/Limelight.java | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/main/java/frc/core/components/Limelight.java b/src/main/java/frc/core/components/Limelight.java index 224e5e4..28088ad 100644 --- a/src/main/java/frc/core/components/Limelight.java +++ b/src/main/java/frc/core/components/Limelight.java @@ -47,19 +47,8 @@ private CamMode(int value) { } } -<<<<<<< HEAD - public static Limelight getInstance() { - if (isNull(limelight)) limelight = new Limelight(); - - return limelight; - } - - private NetworkTableEntry getEntry(Entry entry) { - return this.table.getEntry(entry.key); -======= private static NetworkTableEntry getEntry(Entry entry) { return table.getEntry(entry.key); ->>>>>>> c8a50e53344d5d2a1271aadc5f64e1400699348f } private static double getValue(Entry entry) { From 5b5aae0570011d837e9ea1a781ff141cf40bb24e Mon Sep 17 00:00:00 2001 From: BrunoOsio Date: Sun, 14 Mar 2021 22:52:39 -0300 Subject: [PATCH 7/9] updated routines --- src/main/java/frc/robot/Robot.java | 6 ++++ .../frc/robot/commands/autons/GalacticA.java | 2 +- .../java/frc/robot/routines/Autonomous.java | 20 +++++++++---- .../java/frc/robot/routines/Teleoperated.java | 28 +++++++++++++++++-- 4 files changed, 48 insertions(+), 8 deletions(-) diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index 6cb55aa..d0395ee 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -9,12 +9,15 @@ import frc.robot.subsystems.Buffer; import frc.robot.subsystems.Drivetrain; import frc.robot.subsystems.Intake; +import frc.robot.subsystems.Shooter; public class Robot extends TimedRobot { public static Drivetrain drivetrain; public static Intake intake; public static Buffer buffer; + public static Shooter shooter; + public static Autonomous autonomous; public static TrajectoryBuilder trajectoryBuilder; @Override @@ -22,6 +25,9 @@ public void robotInit() { drivetrain = new Drivetrain(); intake = new Intake(); buffer = new Buffer(); + shooter = new Shooter(); + + autonomous.configOptions(); trajectoryBuilder = new TrajectoryBuilder(drivetrain, RobotPath.get()); } diff --git a/src/main/java/frc/robot/commands/autons/GalacticA.java b/src/main/java/frc/robot/commands/autons/GalacticA.java index 3fd8f8b..1e6ec91 100644 --- a/src/main/java/frc/robot/commands/autons/GalacticA.java +++ b/src/main/java/frc/robot/commands/autons/GalacticA.java @@ -7,7 +7,7 @@ public class GalacticA extends SequentialCommandGroup { public GalacticA(TrajectoryBuilder trajectoryBuilder) { super.addCommands( - trajectoryBuilder.buildTrajectory("autoAwards") + trajectoryBuilder.buildTrajectory("galacticA") ); } } diff --git a/src/main/java/frc/robot/routines/Autonomous.java b/src/main/java/frc/robot/routines/Autonomous.java index 81bd2c5..deac9bf 100644 --- a/src/main/java/frc/robot/routines/Autonomous.java +++ b/src/main/java/frc/robot/routines/Autonomous.java @@ -16,11 +16,15 @@ public class Autonomous implements IRoutines { private static Autonomous autonomous; private SendableChooser chooser = new SendableChooser<>(); - private Command automonousCommand = this.getAutonomousCommand(); + private Command automonousCommand; public enum RobotPath { //add all paths here - GALACTIC_A("galaticA"); + GALACTIC_A("galacticA"), + GALACTIC_B("galacticB"), + SLALOM("slalom"), + BOUNCE("bounce"), + BARREL("barrel"); public final String fileName; private RobotPath(String fileName) { @@ -48,7 +52,8 @@ public static Autonomous getInstance(){ @Override public void init() { - this.setAutonomousOptions(); + this.configOptions(); + this.automonousCommand = this.getAutonomousCommand(); if (nonNull(this.automonousCommand)) this.automonousCommand.schedule(); } @@ -65,10 +70,15 @@ private Command getAutonomousCommand() { return this.chooser.getSelected(); } - private void setAutonomousOptions() { + public void configOptions() { this.chooser.setDefaultOption("Galactic A", new GalacticA(Robot.trajectoryBuilder)); this.chooser.addOption("Galactic A", new GalacticA(Robot.trajectoryBuilder)); + // waiting for merge autonomous classes + // this.chooser.addOption("Galactic B", new GalacticB(Robot.trajectoryBuilder)); + // this.chooser.addOption("Slalom", new Slalom(Robot.trajectoryBuilder)); + // this.chooser.addOption("Bounce", new Bounce(Robot.trajectoryBuilder)); + // this.chooser.addOption("Barrel", new Barrel(Robot.trajectoryBuilder)); - SmartDashboard.putData("SELECT AUTONOMOUS", this.chooser); + SmartDashboard.putData("SELECTED AUTONOMOUS", this.chooser); } } \ No newline at end of file diff --git a/src/main/java/frc/robot/routines/Teleoperated.java b/src/main/java/frc/robot/routines/Teleoperated.java index 0051b79..0b4c32c 100644 --- a/src/main/java/frc/robot/routines/Teleoperated.java +++ b/src/main/java/frc/robot/routines/Teleoperated.java @@ -7,13 +7,18 @@ import edu.wpi.first.wpilibj.XboxController.Axis; import edu.wpi.first.wpilibj.XboxController.Button; import edu.wpi.first.wpilibj2.command.button.JoystickButton; +import edu.wpi.first.wpilibj2.command.button.Trigger; +import frc.core.util.DoubleButton; import frc.robot.Robot; import frc.robot.Constants.OIConstants; import frc.robot.commands.buffer.Feed; +import frc.robot.commands.buffer.SmartFeed; import frc.robot.commands.drivetrain.ArcadeDrive; import frc.robot.commands.drivetrain.CurvatureDrive; import frc.robot.commands.intake.CollectPowerCell; import frc.robot.commands.intake.ReleasePowerCell; +import frc.robot.commands.shooter.ShootPowerCellAngle; +import frc.robot.commands.shooter.ShootPowerCellDefault; public class Teleoperated implements IRoutines { private static Teleoperated teleoperated; @@ -30,7 +35,7 @@ public static Teleoperated getInstance(){ } @Override - public void init() {} + public void init() { } @Override public void periodic() { @@ -44,6 +49,7 @@ private void configureButtonBindings() { this.commandsIntake(); this.commandsDrivetrain(); this.commandsBuffer(); + this.commandsShooter(); } private void commandsIntake() { @@ -57,6 +63,24 @@ private void commandsIntake() { .whileHeld(new ReleasePowerCell(Robot.intake)); } + private void commandsShooter() { + var buttonBumperRight = new JoystickButton(this.operator, Button.kBumperRight.value); + + Trigger isAtSettedVelocity = new Trigger(() -> Robot.shooter.atSettedVelocity()); + + buttonBumperRight + .whileHeld(new ShootPowerCellDefault(Robot.shooter)) + .and(isAtSettedVelocity).whileActiveContinuous(new Feed(Robot.buffer)); + + var doubleButton = new DoubleButton( + this.operator, + Button.kBumperRight.value, + Button.kA.value + ); + + doubleButton.whileActiveContinuous(new ShootPowerCellAngle(Robot.shooter)); + } + private void commandsDrivetrain() { var buttonBumperLeft = new JoystickButton(this.driver, Button.kBumperLeft.value); @@ -79,7 +103,7 @@ private void commandsDrivetrain() { private void commandsBuffer(){ Robot.buffer.setDefaultCommand( - new Feed(Robot.buffer) + new SmartFeed(Robot.buffer) ); } } \ No newline at end of file From d950c32e3cbde5dca2c6cbdb89c0916c8caf470f Mon Sep 17 00:00:00 2001 From: BrunoOsio Date: Mon, 15 Mar 2021 11:54:17 -0300 Subject: [PATCH 8/9] fixed robot runtime --- src/main/java/frc/robot/Robot.java | 5 +++-- src/main/java/frc/robot/routines/Autonomous.java | 10 +++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main/java/frc/robot/Robot.java b/src/main/java/frc/robot/Robot.java index d0395ee..e297623 100644 --- a/src/main/java/frc/robot/Robot.java +++ b/src/main/java/frc/robot/Robot.java @@ -27,9 +27,10 @@ public void robotInit() { buffer = new Buffer(); shooter = new Shooter(); - autonomous.configOptions(); - + trajectoryBuilder = new TrajectoryBuilder(drivetrain, RobotPath.get()); + + Autonomous.getInstance().configOptions(); } @Override diff --git a/src/main/java/frc/robot/routines/Autonomous.java b/src/main/java/frc/robot/routines/Autonomous.java index deac9bf..5cecb33 100644 --- a/src/main/java/frc/robot/routines/Autonomous.java +++ b/src/main/java/frc/robot/routines/Autonomous.java @@ -20,11 +20,11 @@ public class Autonomous implements IRoutines { public enum RobotPath { //add all paths here - GALACTIC_A("galacticA"), - GALACTIC_B("galacticB"), - SLALOM("slalom"), - BOUNCE("bounce"), - BARREL("barrel"); + GALACTIC_A("galacticA"); + // GALACTIC_B("galacticB"), + // SLALOM("slalom"), + // BOUNCE("bounce"), + // BARREL("barrel"); public final String fileName; private RobotPath(String fileName) { From b700a3a09d3fb2b66680cb161fcdac7d61c27c12 Mon Sep 17 00:00:00 2001 From: BrunoOsio Date: Mon, 15 Mar 2021 12:33:46 -0300 Subject: [PATCH 9/9] added aimTarget --- src/main/java/frc/robot/routines/Teleoperated.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/frc/robot/routines/Teleoperated.java b/src/main/java/frc/robot/routines/Teleoperated.java index 0b4c32c..a341931 100644 --- a/src/main/java/frc/robot/routines/Teleoperated.java +++ b/src/main/java/frc/robot/routines/Teleoperated.java @@ -13,6 +13,7 @@ import frc.robot.Constants.OIConstants; import frc.robot.commands.buffer.Feed; import frc.robot.commands.buffer.SmartFeed; +import frc.robot.commands.drivetrain.AimTarget; import frc.robot.commands.drivetrain.ArcadeDrive; import frc.robot.commands.drivetrain.CurvatureDrive; import frc.robot.commands.intake.CollectPowerCell; @@ -99,6 +100,11 @@ private void commandsDrivetrain() { () -> this.driver.getX(Hand.kRight) ) ); + + var buttonBumperRight = new JoystickButton(this.driver, Button.kBumperRight.value); + + buttonBumperRight + .whileHeld(new AimTarget(Robot.drivetrain)); } private void commandsBuffer(){