From 08f404d0017ee9e69e1a298d9d6bc41c9cd8f020 Mon Sep 17 00:00:00 2001 From: Elijah Price Date: Thu, 28 Jan 2021 17:23:29 -0700 Subject: [PATCH 01/19] Increased Storage Speed not tested compare accuracy later --- src/main/java/frc4388/robot/Constants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/frc4388/robot/Constants.java b/src/main/java/frc4388/robot/Constants.java index 1995efa..d1dd424 100644 --- a/src/main/java/frc4388/robot/Constants.java +++ b/src/main/java/frc4388/robot/Constants.java @@ -171,7 +171,7 @@ public final class Constants { public static final int STORAGE_CAN_ID = 11; public static final double STORAGE_PARTIAL_BALL = 2; public static final double STORAGE_FULL_BALL = 7; - public static final double STORAGE_SPEED = 0.5; + public static final double STORAGE_SPEED = 0.75; public static final double STORAGE_TIMEOUT = 3000; /* Storage Characteristics */ From 73a6bd975d5b963a2d545623396f3a90d4370a92 Mon Sep 17 00:00:00 2001 From: Aarav Shah Date: Fri, 29 Jan 2021 14:58:10 -0700 Subject: [PATCH 02/19] Changed Double Negative Lol --- .../java/frc4388/robot/commands/drive/DriveWithJoystick.java | 2 +- src/main/java/frc4388/robot/subsystems/Drive.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/frc4388/robot/commands/drive/DriveWithJoystick.java b/src/main/java/frc4388/robot/commands/drive/DriveWithJoystick.java index b2aba9c..75ab279 100644 --- a/src/main/java/frc4388/robot/commands/drive/DriveWithJoystick.java +++ b/src/main/java/frc4388/robot/commands/drive/DriveWithJoystick.java @@ -94,7 +94,7 @@ public class DriveWithJoystick extends CommandBase { } */ - m_drive.driveWithInput(-moveOutput, steerOutput); + m_drive.driveWithInput(moveOutput, steerOutput); } // Called once the command ends or is interrupted. diff --git a/src/main/java/frc4388/robot/subsystems/Drive.java b/src/main/java/frc4388/robot/subsystems/Drive.java index 5860235..d73ad3e 100644 --- a/src/main/java/frc4388/robot/subsystems/Drive.java +++ b/src/main/java/frc4388/robot/subsystems/Drive.java @@ -349,7 +349,7 @@ public class Drive extends SubsystemBase { * using the Differential Drive class to manage the two inputs */ public void driveWithInput(double move, double steer) { - m_driveTrain.arcadeDrive(-move, steer); + m_driveTrain.arcadeDrive(move, steer); m_leftBackMotor.follow(m_leftFrontMotor); m_rightBackMotor.follow(m_rightFrontMotor); } From 5d75b044cca352e759c7dc26ed446eb03a256c55 Mon Sep 17 00:00:00 2001 From: Aarav Shah Date: Fri, 29 Jan 2021 15:43:38 -0700 Subject: [PATCH 03/19] Fixed the negative --- src/main/java/frc4388/robot/subsystems/Drive.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/frc4388/robot/subsystems/Drive.java b/src/main/java/frc4388/robot/subsystems/Drive.java index d73ad3e..5860235 100644 --- a/src/main/java/frc4388/robot/subsystems/Drive.java +++ b/src/main/java/frc4388/robot/subsystems/Drive.java @@ -349,7 +349,7 @@ public class Drive extends SubsystemBase { * using the Differential Drive class to manage the two inputs */ public void driveWithInput(double move, double steer) { - m_driveTrain.arcadeDrive(move, steer); + m_driveTrain.arcadeDrive(-move, steer); m_leftBackMotor.follow(m_leftFrontMotor); m_rightBackMotor.follow(m_rightFrontMotor); } From a7c41ebe2d990e7ad386d75aca0ef413eb521b5e Mon Sep 17 00:00:00 2001 From: Aarav Shah Date: Fri, 26 Feb 2021 12:36:28 -0700 Subject: [PATCH 04/19] Fixed the falcon for double falcons Co-Authored-By: Nirvan Bhalala <78400306+nbhalala27@users.noreply.github.com> --- src/main/java/frc4388/robot/Constants.java | 5 +- .../java/frc4388/robot/RobotContainer.java | 2 +- .../shooter/ShooterVelocityControlPID.java | 2 +- .../java/frc4388/robot/subsystems/Drive.java | 2 +- .../frc4388/robot/subsystems/Shooter.java | 71 ++++++++++++------- 5 files changed, 52 insertions(+), 30 deletions(-) diff --git a/src/main/java/frc4388/robot/Constants.java b/src/main/java/frc4388/robot/Constants.java index d1dd424..6521b27 100644 --- a/src/main/java/frc4388/robot/Constants.java +++ b/src/main/java/frc4388/robot/Constants.java @@ -112,7 +112,8 @@ public final class Constants { public static final class ShooterConstants { /* Motor IDs */ - public static final int SHOOTER_FALCON_ID = 8; + public static final int SHOOTER_FALCON_BALLER_ID = 8; + public static final int SHOOTER_FALCON_BALLER_FOLLOWER_ID = 15; public static final int SHOOTER_ANGLE_ADJUST_ID = 10; public static final int SHOOTER_ROTATE_ID = 9; @@ -156,7 +157,7 @@ public final class Constants { } public static final class LevelerConstants { - public static final int LEVELER_CAN_ID = 15; + public static final int LEVELER_CAN_ID = 30; } public static final class IntakeConstants {; diff --git a/src/main/java/frc4388/robot/RobotContainer.java b/src/main/java/frc4388/robot/RobotContainer.java index 940694c..925e2a4 100644 --- a/src/main/java/frc4388/robot/RobotContainer.java +++ b/src/main/java/frc4388/robot/RobotContainer.java @@ -163,7 +163,7 @@ public class RobotContainer { // runs the hood with joystick m_robotShooterHood.setDefaultCommand(new RunHoodWithJoystick(m_robotShooterHood, getOperatorController())); // moves the drum not - m_robotShooter.setDefaultCommand(new RunCommand(() -> m_robotShooter.runDrumShooterVelocityPID(1500), m_robotShooter)); + m_robotShooter.setDefaultCommand(new RunCommand(() -> m_robotShooter.runDrumShooter(0.2), m_robotShooter)); // drives climber with input from triggers on the opperator controller m_robotClimber.setDefaultCommand(new RunClimberWithTriggers(m_robotClimber, getDriverController())); // drives the leveler with an axis input from the driver controller diff --git a/src/main/java/frc4388/robot/commands/shooter/ShooterVelocityControlPID.java b/src/main/java/frc4388/robot/commands/shooter/ShooterVelocityControlPID.java index b3d3ac1..11ccd56 100644 --- a/src/main/java/frc4388/robot/commands/shooter/ShooterVelocityControlPID.java +++ b/src/main/java/frc4388/robot/commands/shooter/ShooterVelocityControlPID.java @@ -35,7 +35,7 @@ public class ShooterVelocityControlPID extends CommandBase { @Override public void execute() { //Tells whether the target velocity has been reached - m_actualVel = m_shooter.m_shooterFalcon.getSelectedSensorPosition(); + m_actualVel = m_shooter.m_shooterFalconLeft.getSelectedSensorPosition(); m_targetVel = m_shooter.addFireVel(); double error = m_actualVel - m_targetVel; if (Math.abs(error) < ShooterConstants.DRUM_VELOCITY_BOUND){ diff --git a/src/main/java/frc4388/robot/subsystems/Drive.java b/src/main/java/frc4388/robot/subsystems/Drive.java index 5860235..6022832 100644 --- a/src/main/java/frc4388/robot/subsystems/Drive.java +++ b/src/main/java/frc4388/robot/subsystems/Drive.java @@ -312,7 +312,7 @@ public class Drive extends SubsystemBase { public void passRequiredSubsystem(Pneumatics subsystem, Shooter shooter) { m_pneumaticsSubsystem = subsystem; m_shooter = shooter; - m_orchestra.addInstrument(m_shooter.m_shooterFalcon); + m_orchestra.addInstrument(m_shooter.m_shooterFalconLeft); } public void updateTime() { diff --git a/src/main/java/frc4388/robot/subsystems/Shooter.java b/src/main/java/frc4388/robot/subsystems/Shooter.java index 890e0f7..a45894e 100644 --- a/src/main/java/frc4388/robot/subsystems/Shooter.java +++ b/src/main/java/frc4388/robot/subsystems/Shooter.java @@ -21,8 +21,8 @@ import frc4388.utility.controller.IHandController; public class Shooter extends SubsystemBase { - public WPI_TalonFX m_shooterFalcon = new WPI_TalonFX(ShooterConstants.SHOOTER_FALCON_ID); - + public WPI_TalonFX m_shooterFalconLeft = new WPI_TalonFX(ShooterConstants.SHOOTER_FALCON_BALLER_ID); + public WPI_TalonFX m_shooterFalconRight = new WPI_TalonFX(ShooterConstants.SHOOTER_FALCON_BALLER_FOLLOWER_ID); public static Gains m_drumShooterGains = ShooterConstants.DRUM_SHOOTER_GAINS; public static Shooter m_shooter; public static IHandController m_controller; @@ -50,24 +50,42 @@ public class Shooter extends SubsystemBase { //SmartDashboard.putNumber("Velocity Target", 10000); //SmartDashboard.putNumber("Angle Target", 3); - m_shooterFalcon.configFactoryDefault(); - m_shooterFalcon.setNeutralMode(NeutralMode.Coast); - m_shooterFalcon.setInverted(true); - m_shooterFalcon.configOpenloopRamp(1, ShooterConstants.SHOOTER_TIMEOUT_MS); - m_shooterFalcon.configClosedloopRamp(0.75, ShooterConstants.SHOOTER_TIMEOUT_MS); + //LEFT FALCON + m_shooterFalconLeft.configFactoryDefault(); + m_shooterFalconLeft.setNeutralMode(NeutralMode.Coast); + m_shooterFalconLeft.setInverted(true); + m_shooterFalconLeft.configOpenloopRamp(1, ShooterConstants.SHOOTER_TIMEOUT_MS); + m_shooterFalconLeft.configClosedloopRamp(0.75, ShooterConstants.SHOOTER_TIMEOUT_MS); + + //RIGHT FALCON + m_shooterFalconRight.configFactoryDefault(); + m_shooterFalconRight.setNeutralMode(NeutralMode.Coast); + m_shooterFalconRight.setInverted(false); + m_shooterFalconRight.configOpenloopRamp(1, ShooterConstants.SHOOTER_TIMEOUT_MS); + m_shooterFalconRight.configClosedloopRamp(0.75, ShooterConstants.SHOOTER_TIMEOUT_MS); setShooterGains(); - m_shooterFalcon.configPeakOutputReverse(0, ShooterConstants.SHOOTER_TIMEOUT_MS); - - m_shooterFalcon.setSelectedSensorPosition(0, ShooterConstants.SHOOTER_PID_LOOP_IDX, ShooterConstants.SHOOTER_TIMEOUT_MS); - int closedLoopTimeMs = 1; - m_shooterFalcon.configClosedLoopPeriod(0, closedLoopTimeMs, ShooterConstants.SHOOTER_TIMEOUT_MS); + //LEFT FALCON + m_shooterFalconLeft.configPeakOutputReverse(0, ShooterConstants.SHOOTER_TIMEOUT_MS); + + m_shooterFalconLeft.setSelectedSensorPosition(0, ShooterConstants.SHOOTER_PID_LOOP_IDX, ShooterConstants.SHOOTER_TIMEOUT_MS); + + m_shooterFalconLeft.configClosedLoopPeriod(0, closedLoopTimeMs, ShooterConstants.SHOOTER_TIMEOUT_MS); + + m_shooterFalconLeft.configSupplyCurrentLimit(ShooterConstants.SUPPLY_CURRENT_LIMIT_CONFIG, ShooterConstants.SHOOTER_TIMEOUT_MS); + + + //RIGHT FALCON + //m_shooterFalconRight.configPeakOutputForward(0, ShooterConstants.SHOOTER_TIMEOUT_MS); + + m_shooterFalconRight.setSelectedSensorPosition(0, ShooterConstants.SHOOTER_PID_LOOP_IDX, ShooterConstants.SHOOTER_TIMEOUT_MS); + + m_shooterFalconRight.configClosedLoopPeriod(0, closedLoopTimeMs, ShooterConstants.SHOOTER_TIMEOUT_MS); + + m_shooterFalconRight.configSupplyCurrentLimit(ShooterConstants.SUPPLY_CURRENT_LIMIT_CONFIG, ShooterConstants.SHOOTER_TIMEOUT_MS); m_shooterTable = new ShooterTables(); - - m_shooterFalcon.configSupplyCurrentLimit(ShooterConstants.SUPPLY_CURRENT_LIMIT_CONFIG, ShooterConstants.SHOOTER_TIMEOUT_MS); - //SmartDashboard.putNumber("CSV 10", m_shooterTable.getVelocity(10)); //SmartDashboard.putNumber("CSV 200", m_shooterTable.getVelocity(200)); //SmartDashboard.putNumber("CSV 250", m_shooterTable.getVelocity(250)); @@ -83,13 +101,13 @@ public class Shooter extends SubsystemBase { public void periodic() { // This method will be called once per scheduler run try{ - SmartDashboard.putNumber("Drum Velocity", m_shooterFalcon.getSelectedSensorVelocity()); + SmartDashboard.putNumber("Drum Velocity", m_shooterFalconLeft.getSelectedSensorVelocity()); SmartDashboard.putNumber("Drum Velocity CSV", m_fireVel); - SmartDashboard.putNumber("Shooter Temp C", m_shooterFalcon.getTemperature()); + SmartDashboard.putNumber("Shooter Temp C", m_shooterFalconLeft.getTemperature()); - SmartDashboard.putNumber("Shooter Current", m_shooterFalcon.getSupplyCurrent()); + SmartDashboard.putNumber("Shooter Current", m_shooterFalconLeft.getSupplyCurrent()); SmartDashboard.putBoolean("Drum Ready" , m_isDrumReady); } @@ -118,18 +136,20 @@ public class Shooter extends SubsystemBase { * @param speed Speed to set the motor at */ public void runDrumShooter(double speed) { - m_shooterFalcon.set(speed); + m_shooterFalconLeft.set(TalonFXControlMode.PercentOutput, speed); + m_shooterFalconRight.follow(m_shooterFalconLeft); + //m_shooterFalconRight.set(TalonFXControlMode.PercentOutput, speed); } /** * Configures gains for shooter PID. */ public void setShooterGains() { - m_shooterFalcon.selectProfileSlot(ShooterConstants.SHOOTER_SLOT_IDX, ShooterConstants.SHOOTER_PID_LOOP_IDX); - m_shooterFalcon.config_kF(ShooterConstants.SHOOTER_SLOT_IDX, m_drumShooterGains.m_kF, ShooterConstants.SHOOTER_TIMEOUT_MS); - m_shooterFalcon.config_kP(ShooterConstants.SHOOTER_SLOT_IDX, m_drumShooterGains.m_kP, ShooterConstants.SHOOTER_TIMEOUT_MS); - m_shooterFalcon.config_kI(ShooterConstants.SHOOTER_SLOT_IDX, m_drumShooterGains.m_kI, ShooterConstants.SHOOTER_TIMEOUT_MS); - m_shooterFalcon.config_kD(ShooterConstants.SHOOTER_SLOT_IDX, m_drumShooterGains.m_kD, ShooterConstants.SHOOTER_TIMEOUT_MS); + m_shooterFalconLeft.selectProfileSlot(ShooterConstants.SHOOTER_SLOT_IDX, ShooterConstants.SHOOTER_PID_LOOP_IDX); + m_shooterFalconLeft.config_kF(ShooterConstants.SHOOTER_SLOT_IDX, m_drumShooterGains.m_kF, ShooterConstants.SHOOTER_TIMEOUT_MS); + m_shooterFalconLeft.config_kP(ShooterConstants.SHOOTER_SLOT_IDX, m_drumShooterGains.m_kP, ShooterConstants.SHOOTER_TIMEOUT_MS); + m_shooterFalconLeft.config_kI(ShooterConstants.SHOOTER_SLOT_IDX, m_drumShooterGains.m_kI, ShooterConstants.SHOOTER_TIMEOUT_MS); + m_shooterFalconLeft.config_kD(ShooterConstants.SHOOTER_SLOT_IDX, m_drumShooterGains.m_kD, ShooterConstants.SHOOTER_TIMEOUT_MS); } /** @@ -138,6 +158,7 @@ public class Shooter extends SubsystemBase { */ public void runDrumShooterVelocityPID(double targetVel) { //System.out.println("Target Velocity" + targetVel); - m_shooterFalcon.set(TalonFXControlMode.Velocity, targetVel); //Init PID + m_shooterFalconLeft.set(TalonFXControlMode.Velocity, targetVel); //Init PID + m_shooterFalconRight.follow(m_shooterFalconLeft); } } \ No newline at end of file From c274989aacc7e9a1ae6bdac476eae6e071ca822f Mon Sep 17 00:00:00 2001 From: Aarav Shah Date: Thu, 4 Mar 2021 17:26:04 -0700 Subject: [PATCH 05/19] Adjustments for shooter Co-Authored-By: Nirvan Bhalala <78400306+nbhalala27@users.noreply.github.com> --- src/main/java/frc4388/robot/Constants.java | 2 +- src/main/java/frc4388/robot/RobotContainer.java | 10 ++++++---- .../frc4388/robot/commands/shooter/TrackTarget.java | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/frc4388/robot/Constants.java b/src/main/java/frc4388/robot/Constants.java index 6521b27..831163e 100644 --- a/src/main/java/frc4388/robot/Constants.java +++ b/src/main/java/frc4388/robot/Constants.java @@ -212,7 +212,7 @@ public final class Constants { public static final class VisionConstants { public static final double FOV = 29.8; //Field of view of limelight - public static final double TARGET_HEIGHT = 71.5; + public static final double TARGET_HEIGHT = 67.5; public static final double LIME_ANGLE = 24.7; public static final double TURN_P_VALUE = 0.8; public static final double X_ANGLE_ERROR = 1.3; diff --git a/src/main/java/frc4388/robot/RobotContainer.java b/src/main/java/frc4388/robot/RobotContainer.java index 925e2a4..f129ce7 100644 --- a/src/main/java/frc4388/robot/RobotContainer.java +++ b/src/main/java/frc4388/robot/RobotContainer.java @@ -236,12 +236,14 @@ public class RobotContainer { // extends or retracts the extender new JoystickButton(getOperatorJoystick(), XboxController.X_BUTTON) - .whileHeld(new RunCommand(() -> m_robotIntake.runExtender(0.5))) - .whenReleased(new InstantCommand(() -> m_robotIntake.runExtender(0))); + //.whileHeld(new RunCommand(() -> m_robotIntake.runExtender(0.5))) + //.whenReleased(new InstantCommand(() -> m_robotIntake.runExtender(0))); + .whileHeld(new RunCommand(() -> m_robotShooterHood.runHood(0.5), m_robotShooterHood)); new JoystickButton(getOperatorJoystick(), XboxController.Y_BUTTON) - .whileHeld(new RunCommand(() -> m_robotIntake.runExtender(-0.5))) - .whenReleased(new InstantCommand(() -> m_robotIntake.runExtender(0))); + //.whileHeld(new RunCommand(() -> m_robotIntake.runExtender(-0.5))) + //.whenReleased(new InstantCommand(() -> m_robotIntake.runExtender(0))); + .whileHeld(new RunCommand(() -> m_robotShooterHood.runHood(-0.5), m_robotShooterHood)); // safety for climber and leveler new JoystickButton(getOperatorJoystick(), XboxController.BACK_BUTTON) diff --git a/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java b/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java index 3f46e9f..05d652d 100644 --- a/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java +++ b/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java @@ -69,7 +69,7 @@ public class TrackTarget extends CommandBase { yAngle = NetworkTableInstance.getDefault().getTable("limelight").getEntry("ty").getDouble(0); // Finding Distance - distance = VisionConstants.TARGET_HEIGHT / Math.tan((VisionConstants.LIME_ANGLE + yAngle) * (Math.PI / 180)); + distance = (VisionConstants.TARGET_HEIGHT) / Math.tan((VisionConstants.LIME_ANGLE + yAngle) * (Math.PI / 180)); realDistance = (1.09 * distance) - 12.8; From 2f2a01e95de39db3af4842efbc2c68a34921428c Mon Sep 17 00:00:00 2001 From: Aarav Shah Date: Fri, 5 Mar 2021 12:24:11 -0700 Subject: [PATCH 06/19] adjusted drum PIDs Using a P loop with a feedforward value. Works well even when rapid shooting. TODO Recollect CSV data values Co-Authored-By: Nirvan Bhalala <78400306+nbhalala27@users.noreply.github.com> --- src/main/java/frc4388/robot/Constants.java | 2 +- src/main/java/frc4388/robot/RobotContainer.java | 6 +++--- .../frc4388/robot/commands/shooter/CalibrateShooter.java | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/frc4388/robot/Constants.java b/src/main/java/frc4388/robot/Constants.java index 831163e..53037d1 100644 --- a/src/main/java/frc4388/robot/Constants.java +++ b/src/main/java/frc4388/robot/Constants.java @@ -121,7 +121,7 @@ public final class Constants { public static final int SHOOTER_SLOT_IDX = 0; public static final int SHOOTER_PID_LOOP_IDX = 1; public static final int SHOOTER_TIMEOUT_MS = 30; - public static final Gains DRUM_SHOOTER_GAINS = new Gains(1.5, 0.0, 100, 0.055, 0, 1.0); + public static final Gains DRUM_SHOOTER_GAINS = new Gains(0.34, 0.0, 0.0, 0.055, 0, 1.0); //Ff was 0.055 //public static final Gains DRUM_SHOOTER_GAINS = new Gains(0.55, 0.0, 100, 0.0, 0, 1.0); public static final Gains SHOOTER_TURRET_GAINS = new Gains(0.6, 0.0, 0.0, 0.0, 0, 1.0); public static final Gains SHOOTER_ANGLE_GAINS = new Gains(0.05, 0.0, 0.0, 0.0, 0, 0.3); diff --git a/src/main/java/frc4388/robot/RobotContainer.java b/src/main/java/frc4388/robot/RobotContainer.java index f129ce7..34a2360 100644 --- a/src/main/java/frc4388/robot/RobotContainer.java +++ b/src/main/java/frc4388/robot/RobotContainer.java @@ -238,12 +238,12 @@ public class RobotContainer { new JoystickButton(getOperatorJoystick(), XboxController.X_BUTTON) //.whileHeld(new RunCommand(() -> m_robotIntake.runExtender(0.5))) //.whenReleased(new InstantCommand(() -> m_robotIntake.runExtender(0))); - .whileHeld(new RunCommand(() -> m_robotShooterHood.runHood(0.5), m_robotShooterHood)); + .whileHeld(new RunCommand(() -> m_robotShooterHood.runHood(0.2), m_robotShooterHood)); new JoystickButton(getOperatorJoystick(), XboxController.Y_BUTTON) //.whileHeld(new RunCommand(() -> m_robotIntake.runExtender(-0.5))) //.whenReleased(new InstantCommand(() -> m_robotIntake.runExtender(0))); - .whileHeld(new RunCommand(() -> m_robotShooterHood.runHood(-0.5), m_robotShooterHood)); + .whileHeld(new RunCommand(() -> m_robotShooterHood.runHood(-0.2), m_robotShooterHood)); // safety for climber and leveler new JoystickButton(getOperatorJoystick(), XboxController.BACK_BUTTON) @@ -257,7 +257,7 @@ public class RobotContainer { //.whenPressed(new StoragePrep(m_robotStorage)) //.whenReleased(new InterruptSubystem(m_robotStorage)) .whenReleased(new InstantCommand(() -> m_robotLime.limeOff())); - //.whileHeld(new RunCommand(() -> m_robotShooter.runDrumShooterVelocityPID(13000))); + //.whileHeld(new RunCommand(() -> m_robotShooter.runDrumShooterVelocityPID(11000))); //.whileHeld(new HoldTarget(m_robotShooter, m_robotShooterAim)) //.whileHeld(new RunCommand(() -> m_robotShooter.runAngleAdjustPID(30))); diff --git a/src/main/java/frc4388/robot/commands/shooter/CalibrateShooter.java b/src/main/java/frc4388/robot/commands/shooter/CalibrateShooter.java index 5e28114..14e19ce 100644 --- a/src/main/java/frc4388/robot/commands/shooter/CalibrateShooter.java +++ b/src/main/java/frc4388/robot/commands/shooter/CalibrateShooter.java @@ -61,7 +61,7 @@ public class CalibrateShooter extends CommandBase { @Override public boolean isFinished() { if (m_shooterAim.m_shooterRotateMotor.getReverseLimitSwitch(LimitSwitchPolarity.kNormallyOpen).get() && - m_shooterHood.m_angleAdjustMotor.getReverseLimitSwitch(LimitSwitchPolarity.kNormallyOpen).get()) { + m_shooterHood.m_hoodDownLimit.get()) { return true; } return false; From c5c38d3017b7dc75e147003d1d1442bcfa936d2d Mon Sep 17 00:00:00 2001 From: Aarav Shah Date: Tue, 9 Mar 2021 17:54:52 -0700 Subject: [PATCH 07/19] Adjustment of csv values --- src/main/deploy/Robot Data - Distances.csv | 4 +--- src/main/java/frc4388/robot/RobotContainer.java | 12 ++++++------ 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/main/deploy/Robot Data - Distances.csv b/src/main/deploy/Robot Data - Distances.csv index e33cc7b..fa7b05c 100644 --- a/src/main/deploy/Robot Data - Distances.csv +++ b/src/main/deploy/Robot Data - Distances.csv @@ -2,6 +2,4 @@ Distance (in),Hood Ext. (u),Drum Velocity (u/ds),Center Displacment (deg) 70,20,7000,2.5, 127,27,8467,2, 223,31.25,10398,2.75, -272,32.4,11776,2.5, -342,33,13733,2, -458,30.5,17000,0, \ No newline at end of file +245,31,18000,1, diff --git a/src/main/java/frc4388/robot/RobotContainer.java b/src/main/java/frc4388/robot/RobotContainer.java index 34a2360..01e56ae 100644 --- a/src/main/java/frc4388/robot/RobotContainer.java +++ b/src/main/java/frc4388/robot/RobotContainer.java @@ -236,14 +236,14 @@ public class RobotContainer { // extends or retracts the extender new JoystickButton(getOperatorJoystick(), XboxController.X_BUTTON) - //.whileHeld(new RunCommand(() -> m_robotIntake.runExtender(0.5))) - //.whenReleased(new InstantCommand(() -> m_robotIntake.runExtender(0))); - .whileHeld(new RunCommand(() -> m_robotShooterHood.runHood(0.2), m_robotShooterHood)); + .whileHeld(new RunCommand(() -> m_robotIntake.runExtender(0.5))) + .whenReleased(new InstantCommand(() -> m_robotIntake.runExtender(0))); + //.whileHeld(new RunCommand(() -> m_robotShooterHood.runHood(0.2), m_robotShooterHood)); new JoystickButton(getOperatorJoystick(), XboxController.Y_BUTTON) - //.whileHeld(new RunCommand(() -> m_robotIntake.runExtender(-0.5))) - //.whenReleased(new InstantCommand(() -> m_robotIntake.runExtender(0))); - .whileHeld(new RunCommand(() -> m_robotShooterHood.runHood(-0.2), m_robotShooterHood)); + .whileHeld(new RunCommand(() -> m_robotIntake.runExtender(-0.5))) + .whenReleased(new InstantCommand(() -> m_robotIntake.runExtender(0))); + //.whileHeld(new RunCommand(() -> m_robotShooterHood.runHood(-0.2), m_robotShooterHood)); // safety for climber and leveler new JoystickButton(getOperatorJoystick(), XboxController.BACK_BUTTON) From 792388bdd5be03b6a43cadc107930f4afd915ee1 Mon Sep 17 00:00:00 2001 From: Aarav Shah Date: Thu, 11 Mar 2021 17:54:27 -0700 Subject: [PATCH 08/19] Collected close data point *chefs kiss* --- src/main/deploy/Robot Data - Distances.csv | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/deploy/Robot Data - Distances.csv b/src/main/deploy/Robot Data - Distances.csv index fa7b05c..89ac8c2 100644 --- a/src/main/deploy/Robot Data - Distances.csv +++ b/src/main/deploy/Robot Data - Distances.csv @@ -1,5 +1,7 @@ Distance (in),Hood Ext. (u),Drum Velocity (u/ds),Center Displacment (deg) -70,20,7000,2.5, -127,27,8467,2, -223,31.25,10398,2.75, +0,16,6000,1, +65.9,16,6000,1, +127,27,8467,1, +223,31.25,10398,1, 245,31,18000,1, +999,31,18000,1, \ No newline at end of file From 8c9ae1d16e91347f30603cb318ac027ab78518a3 Mon Sep 17 00:00:00 2001 From: Aarav Shah Date: Fri, 12 Mar 2021 11:34:35 -0700 Subject: [PATCH 09/19] Added new data --- src/main/deploy/Robot Data - Distances.csv | 10 +++--- src/main/deploy/Robot Data - DistancesOLD.csv | 35 +++++++++++++++---- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/src/main/deploy/Robot Data - Distances.csv b/src/main/deploy/Robot Data - Distances.csv index 89ac8c2..7a1a1f4 100644 --- a/src/main/deploy/Robot Data - Distances.csv +++ b/src/main/deploy/Robot Data - Distances.csv @@ -1,7 +1,9 @@ Distance (in),Hood Ext. (u),Drum Velocity (u/ds),Center Displacment (deg) 0,16,6000,1, 65.9,16,6000,1, -127,27,8467,1, -223,31.25,10398,1, -245,31,18000,1, -999,31,18000,1, \ No newline at end of file +126.6,20.25,7000,0.95, +180,24,8000,1, +185.85,26.5, 9000,1.625, +245,28.9,9500,.98, +262,28.9,9500,.98, +999,28.9,9500,.98, \ No newline at end of file diff --git a/src/main/deploy/Robot Data - DistancesOLD.csv b/src/main/deploy/Robot Data - DistancesOLD.csv index a15874a..77b3cfb 100644 --- a/src/main/deploy/Robot Data - DistancesOLD.csv +++ b/src/main/deploy/Robot Data - DistancesOLD.csv @@ -1,8 +1,29 @@ Distance (in),Hood Ext. (u),Drum Velocity (u/ds),Center Displacment (deg) -1,10,7769,0 -70,21,7769,0, check -100,24,8580,0 -145,28,9390,0 -230,31,11010,0,Add a 270 -397,33,14250,0 -415,33,14452,0 \ No newline at end of file +LOBING +0,16,6000,1, +65.9,16,6000,1, +126.6,20.25,7000,0.95, +180,21,7300,1, +185.85,23.5,7500,1.625, +245,26,9000,1, +262,28,9000,1.25, +999,28,9000,1.25, + +LASER +0,16,6000,1, +65.9,16,6000,1, +126.6,20.25,7000,0.95, +185.85,30,13000,1, +245,31,18000,1, +250,31,18000,1, +999,31,18000,1, + +IN BETWEEN +0,16,6000,1, +65.9,16,6000,1, +126.6,20.25,7000,0.95, +180,24,8000,1, +185.85,26.5, 9000,1.625, +245,27,11000,1, +262,27,11000,1.25, +999,27,11000,1.25, \ No newline at end of file From fcc91455ac2c08c061747e527e4f83d416baebbf Mon Sep 17 00:00:00 2001 From: Aarav Shah Date: Fri, 12 Mar 2021 12:37:06 -0700 Subject: [PATCH 10/19] Reduced Error --- src/main/deploy/Robot Data - Distances.csv | 16 ++++++++-------- src/main/deploy/Robot Data - DistancesOLD.csv | 12 +++++++++++- src/main/java/frc4388/robot/Constants.java | 2 +- src/main/java/frc4388/robot/RobotContainer.java | 4 ++-- .../robot/commands/shooter/TrackTarget.java | 12 +++++++----- 5 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/main/deploy/Robot Data - Distances.csv b/src/main/deploy/Robot Data - Distances.csv index 7a1a1f4..dbe365d 100644 --- a/src/main/deploy/Robot Data - Distances.csv +++ b/src/main/deploy/Robot Data - Distances.csv @@ -1,9 +1,9 @@ Distance (in),Hood Ext. (u),Drum Velocity (u/ds),Center Displacment (deg) -0,16,6000,1, -65.9,16,6000,1, -126.6,20.25,7000,0.95, -180,24,8000,1, -185.85,26.5, 9000,1.625, -245,28.9,9500,.98, -262,28.9,9500,.98, -999,28.9,9500,.98, \ No newline at end of file +0,16,6000,0, +65.9,16,6000,0, +126.6,20.25,7000,0, +180,24,8000,0, +185.85,26.5, 9000,1.1, +245,28.9,9500,0, +262,28.9,9500,0, +999,28.9,9500,0, \ No newline at end of file diff --git a/src/main/deploy/Robot Data - DistancesOLD.csv b/src/main/deploy/Robot Data - DistancesOLD.csv index 77b3cfb..a508fbc 100644 --- a/src/main/deploy/Robot Data - DistancesOLD.csv +++ b/src/main/deploy/Robot Data - DistancesOLD.csv @@ -26,4 +26,14 @@ IN BETWEEN 185.85,26.5, 9000,1.625, 245,27,11000,1, 262,27,11000,1.25, -999,27,11000,1.25, \ No newline at end of file +999,27,11000,1.25, + +HOLD +0,16,6000,1, +65.9,16,6000,1, +126.6,20.25,7000,0.95, +180,24,8000,1, +185.85,26.5, 9000,1.625, +245,28.9,9500,.98, +262,28.9,9500,.98, +999,28.9,9500,.98, \ No newline at end of file diff --git a/src/main/java/frc4388/robot/Constants.java b/src/main/java/frc4388/robot/Constants.java index 53037d1..59fbdef 100644 --- a/src/main/java/frc4388/robot/Constants.java +++ b/src/main/java/frc4388/robot/Constants.java @@ -215,7 +215,7 @@ public final class Constants { public static final double TARGET_HEIGHT = 67.5; public static final double LIME_ANGLE = 24.7; public static final double TURN_P_VALUE = 0.8; - public static final double X_ANGLE_ERROR = 1.3; + public static final double X_ANGLE_ERROR = 0.5; public static final double MOTOR_DEAD_ZONE = 0.2; public static final double DISTANCE_ERROR_EQUATION_M = 1.1279; public static final double DISTANCE_ERROR_EQUATION_B = -15.0684; diff --git a/src/main/java/frc4388/robot/RobotContainer.java b/src/main/java/frc4388/robot/RobotContainer.java index 01e56ae..080c646 100644 --- a/src/main/java/frc4388/robot/RobotContainer.java +++ b/src/main/java/frc4388/robot/RobotContainer.java @@ -254,9 +254,9 @@ public class RobotContainer { new JoystickButton(getOperatorJoystick(), XboxController.A_BUTTON) .whileHeld(new TrackTarget(m_robotShooterAim)) .whileHeld(new RunCommand(() -> m_robotShooterHood.runAngleAdjustPID(m_robotShooterHood.addFireAngle()))) - //.whenPressed(new StoragePrep(m_robotStorage)) - //.whenReleased(new InterruptSubystem(m_robotStorage)) .whenReleased(new InstantCommand(() -> m_robotLime.limeOff())); + + //.whileHeld(new RunCommand(() -> m_robotShooterAim.runshooterRotatePID())); //.whileHeld(new RunCommand(() -> m_robotShooter.runDrumShooterVelocityPID(11000))); //.whileHeld(new HoldTarget(m_robotShooter, m_robotShooterAim)) //.whileHeld(new RunCommand(() -> m_robotShooter.runAngleAdjustPID(30))); diff --git a/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java b/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java index 05d652d..598c317 100644 --- a/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java +++ b/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java @@ -76,17 +76,19 @@ public class TrackTarget extends CommandBase { if (target == 1.0) { // If target in view // Aiming Left/Right xAngle = xAngle + m_shooter.m_shooterTable.getCenterDisplacement(realDistance); - turnAmount = (xAngle / VisionConstants.FOV) * VisionConstants.TURN_P_VALUE; + turnAmount = ((xAngle / VisionConstants.FOV) * VisionConstants.TURN_P_VALUE); if (Math.abs(xAngle) < VisionConstants.X_ANGLE_ERROR) { turnAmount = 0; } // Angle Error Zone // Deadzones - else if (turnAmount > 0 && turnAmount < VisionConstants.MOTOR_DEAD_ZONE) { - turnAmount = VisionConstants.MOTOR_DEAD_ZONE; - } else if (turnAmount < 0 && turnAmount > -VisionConstants.MOTOR_DEAD_ZONE) { - turnAmount = -VisionConstants.MOTOR_DEAD_ZONE; + else if (turnAmount > 0 && turnAmount < 0.1){// VisionConstants.MOTOR_DEAD_ZONE) { + turnAmount = 0.1;//VisionConstants.MOTOR_DEAD_ZONE; + } else if (turnAmount < 0 && turnAmount > -0.1){//-VisionConstants.MOTOR_DEAD_ZONE) { + turnAmount = -0.1;//-VisionConstants.MOTOR_DEAD_ZONE; } + m_shooterAim.runShooterWithInput(-turnAmount);// - m_shooter.shooterTrims.m_turretTrim); + //m_shooterAim.runshooterRotatePID(targetAngle); SmartDashboard.putNumber("Distance to Target", realDistance); SmartDashboard.putNumber("Center Displacement", m_shooter.m_shooterTable.getCenterDisplacement(realDistance)); From 289efc78d5688976968885f550a713585579cbde Mon Sep 17 00:00:00 2001 From: ryan123rudder <42309874+ryan123rudder@users.noreply.github.com> Date: Tue, 23 Mar 2021 16:39:17 -0600 Subject: [PATCH 11/19] New points --- src/main/deploy/Robot Data - Distances.csv | 1 + src/main/java/frc4388/robot/RobotContainer.java | 9 ++++++--- .../robot/commands/shooter/ShooterTrenchPosition.java | 6 +++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/deploy/Robot Data - Distances.csv b/src/main/deploy/Robot Data - Distances.csv index dbe365d..0ee5cca 100644 --- a/src/main/deploy/Robot Data - Distances.csv +++ b/src/main/deploy/Robot Data - Distances.csv @@ -1,6 +1,7 @@ Distance (in),Hood Ext. (u),Drum Velocity (u/ds),Center Displacment (deg) 0,16,6000,0, 65.9,16,6000,0, +103,19,6600,1, 126.6,20.25,7000,0, 180,24,8000,0, 185.85,26.5, 9000,1.1, diff --git a/src/main/java/frc4388/robot/RobotContainer.java b/src/main/java/frc4388/robot/RobotContainer.java index 080c646..97bd1e9 100644 --- a/src/main/java/frc4388/robot/RobotContainer.java +++ b/src/main/java/frc4388/robot/RobotContainer.java @@ -185,8 +185,10 @@ public class RobotContainer { private void configureButtonBindings() { /* Test Buttons */ // A driver test button - /*new JoystickButton(getDriverJoystick(), XboxController.A_BUTTON) - .whileHeld(new InstantCommand(() -> m_robotDrive.tankDriveVelocity(1, -1), m_robotDrive));*/ + new JoystickButton(getDriverJoystick(), XboxController.A_BUTTON) + .whileHeld(new ShooterTrenchPosition(m_robotShooter, m_robotShooterHood, m_robotShooterAim)) + .whenReleased(new InterruptSubystem(m_robotShooter)) + .whenReleased(new InterruptSubystem(m_robotShooterHood)); // B driver test button new JoystickButton(getDriverJoystick(), XboxController.B_BUTTON) @@ -231,7 +233,7 @@ public class RobotContainer { //.whenPressed(new ShootFullGroup(m_robotShooter, m_robotShooterAim, m_robotShooterHood, m_robotStorage), false); //.whenReleased(new ManageStorage(m_robotStorage, StorageMode.RESET)); //.whenReleased(new RunCommand(() -> m_robotLime.limeOff())); - .whenPressed(new RunCommand(() -> m_robotStorage.runStorage(1), m_robotStorage)) + .whenPressed(new RunCommand(() -> m_robotStorage.runStorage(0.3), m_robotStorage)) .whenReleased(new InterruptSubystem(m_robotStorage)); // extends or retracts the extender @@ -270,6 +272,7 @@ public class RobotContainer { .whileHeld(new CalibrateShooter(m_robotShooter, m_robotShooterAim, m_robotShooterHood)); + //Run drum new JoystickManualButton(getOperatorJoystick(), XboxController.B_BUTTON, false) .whileHeld(new ShootPrepGroup(m_robotShooter, m_robotShooterAim, m_robotShooterHood, m_robotStorage), false) diff --git a/src/main/java/frc4388/robot/commands/shooter/ShooterTrenchPosition.java b/src/main/java/frc4388/robot/commands/shooter/ShooterTrenchPosition.java index ba452b7..793f245 100644 --- a/src/main/java/frc4388/robot/commands/shooter/ShooterTrenchPosition.java +++ b/src/main/java/frc4388/robot/commands/shooter/ShooterTrenchPosition.java @@ -34,9 +34,9 @@ public class ShooterTrenchPosition extends CommandBase { // Called every time the scheduler runs while the command is scheduled. @Override public void execute() { - m_shooter.runDrumShooterVelocityPID(5000); - m_hood.runAngleAdjustPID(3); - m_aim.runshooterRotatePID(-26.5); + m_shooter.runDrumShooterVelocityPID(5500); + m_hood.runAngleAdjustPID(11); + //m_aim.runshooterRotatePID(-28); } // Called once the command ends or is interrupted. From c25788454590c2bececea739cbb275216ea2919e Mon Sep 17 00:00:00 2001 From: ryan123rudder <42309874+ryan123rudder@users.noreply.github.com> Date: Wed, 24 Mar 2021 16:37:19 -0600 Subject: [PATCH 12/19] tuning --- src/main/deploy/Robot Data - Distances.csv | 18 ++- .../driverStation/GOAT DRIVERSTATION.json | 146 +++++++++++++++++- .../java/frc4388/robot/RobotContainer.java | 4 +- .../commands/shooter/ShooterGoalPosition.java | 2 +- 4 files changed, 155 insertions(+), 15 deletions(-) diff --git a/src/main/deploy/Robot Data - Distances.csv b/src/main/deploy/Robot Data - Distances.csv index 0ee5cca..4f2fb07 100644 --- a/src/main/deploy/Robot Data - Distances.csv +++ b/src/main/deploy/Robot Data - Distances.csv @@ -1,10 +1,12 @@ Distance (in),Hood Ext. (u),Drum Velocity (u/ds),Center Displacment (deg) -0,16,6000,0, -65.9,16,6000,0, +0,16,6000,1, +65.9,16,6000,1, 103,19,6600,1, -126.6,20.25,7000,0, -180,24,8000,0, -185.85,26.5, 9000,1.1, -245,28.9,9500,0, -262,28.9,9500,0, -999,28.9,9500,0, \ No newline at end of file +126.6,20.25,7000,1.5, +156.6,22,7500,1.5, +180,24,8000,2, +185.85,26.5,9000,2.5, +231,28.8,9500,1.8, +245,28.8,9500,1.8, +262,28.8,9500,1.8, +999,28.8,9500,1.8, \ No newline at end of file diff --git a/src/main/driverStation/GOAT DRIVERSTATION.json b/src/main/driverStation/GOAT DRIVERSTATION.json index e61f688..5035189 100644 --- a/src/main/driverStation/GOAT DRIVERSTATION.json +++ b/src/main/driverStation/GOAT DRIVERSTATION.json @@ -624,6 +624,12 @@ "_title": "DigitalInput[12]/Value", "Colors/Color when true": "#7CFC00FF", "Colors/Color when false": "#8B0000FF" + }, + { + "_type": "Speed Controller", + "_source0": "network_table:///LiveWindow/Ungrouped/Talon FX [15]", + "_title": "Talon FX [15]", + "Visuals/Orientation": "HORIZONTAL" } ] } @@ -1003,12 +1009,144 @@ } } } + }, + { + "title": "Tab 5", + "autoPopulate": false, + "autoPopulatePrefix": "", + "widgetPane": { + "gridSize": 128.0, + "showGrid": true, + "hgap": 16.0, + "vgap": 16.0, + "tiles": { + "3,0": { + "size": [ + 3, + 3 + ], + "content": { + "_type": "Camera Stream", + "_source0": "camera_server://limelight", + "_title": "limelight", + "Crosshair/Show crosshair": true, + "Crosshair/Crosshair color": "#FFFFFFFF", + "Controls/Show controls": true, + "Controls/Rotation": "NONE", + "compression": -1.0, + "fps": -1, + "imageWidth": 0, + "imageHeight": 0 + } + }, + "7,1": { + "size": [ + 1, + 1 + ], + "content": { + "_type": "Text View", + "_source0": "network_table:///SmartDashboard/Fire Angle CSV", + "_title": "/SmartDashboard/Fire Angle CSV" + } + }, + "7,0": { + "size": [ + 1, + 1 + ], + "content": { + "_type": "Text View", + "_source0": "network_table:///SmartDashboard/Drum Velocity CSV", + "_title": "/SmartDashboard/Drum Velocity CSV" + } + }, + "6,1": { + "size": [ + 1, + 1 + ], + "content": { + "_type": "Text View", + "_source0": "network_table:///SmartDashboard/Distance to Target", + "_title": "/SmartDashboard/Distance to Target" + } + }, + "3,3": { + "size": [ + 1, + 1 + ], + "content": { + "_type": "Text View", + "_source0": "network_table:///SmartDashboard/Distance to Target", + "_title": "/SmartDashboard/Distance to Target" + } + }, + "0,0": { + "size": [ + 2, + 2 + ], + "content": { + "_type": "Graph", + "_source0": "network_table:///SmartDashboard/Drum Velocity", + "_title": "/SmartDashboard/Drum Velocity", + "Graph/Visible time": 30.0, + "Y-axis/Automatic bounds": true, + "Y-axis/Upper bound": 1.0, + "Y-axis/Lower bound": -1.0, + "Visible data/SmartDashboard/Drum Velocity": true + } + }, + "6,2": { + "size": [ + 4, + 2 + ], + "content": { + "_type": "Graph", + "_source0": "network_table:///SmartDashboard/Drum Velocity", + "_title": "/SmartDashboard/Drum Velocity", + "Graph/Visible time": 30.0, + "Y-axis/Automatic bounds": true, + "Y-axis/Upper bound": 1.0, + "Y-axis/Lower bound": -1.0, + "Visible data/SmartDashboard/Drum Velocity": true + } + }, + "4,3": { + "size": [ + 1, + 1 + ], + "content": { + "_type": "Text View", + "_source0": "network_table:///SmartDashboard/Turret Angle Raw", + "_title": "/SmartDashboard/Turret Angle Raw" + } + }, + "6,0": { + "size": [ + 1, + 1 + ], + "content": { + "_type": "Boolean Box", + "_source0": "network_table:///SmartDashboard/Drum Ready", + "_title": "/SmartDashboard/Drum Ready", + "Colors/Color when true": "#7CFC00FF", + "Colors/Color when false": "#8B0000FF" + } + } + } + } } ], "windowGeometry": { - "x": -6.400000095367432, - "y": 1.600000023841858, - "width": 1547.199951171875, - "height": 828.7999877929688 + "x": -7.199999809265137, + "y": -7.199999809265137, + "width": 1550.4000244140625, + "height": 838.4000244140625 } } \ No newline at end of file diff --git a/src/main/java/frc4388/robot/RobotContainer.java b/src/main/java/frc4388/robot/RobotContainer.java index 97bd1e9..9578a71 100644 --- a/src/main/java/frc4388/robot/RobotContainer.java +++ b/src/main/java/frc4388/robot/RobotContainer.java @@ -191,8 +191,8 @@ public class RobotContainer { .whenReleased(new InterruptSubystem(m_robotShooterHood)); // B driver test button - new JoystickButton(getDriverJoystick(), XboxController.B_BUTTON) - .whenPressed(new TurnDegrees(m_robotDrive, 90)); + /*new JoystickButton(getDriverJoystick(), XboxController.B_BUTTON) + .whenPressed(new TurnDegrees(m_robotDrive, 90));*/ // Y driver test button new JoystickButton(getDriverJoystick(), XboxController.Y_BUTTON) .whenPressed(new Wait(m_robotDrive, 0, 0)); diff --git a/src/main/java/frc4388/robot/commands/shooter/ShooterGoalPosition.java b/src/main/java/frc4388/robot/commands/shooter/ShooterGoalPosition.java index b750c66..100e077 100644 --- a/src/main/java/frc4388/robot/commands/shooter/ShooterGoalPosition.java +++ b/src/main/java/frc4388/robot/commands/shooter/ShooterGoalPosition.java @@ -35,7 +35,7 @@ public class ShooterGoalPosition extends CommandBase { @Override public void execute() { m_shooter.runDrumShooterVelocityPID(5000); - m_hood.runAngleAdjustPID(3); + m_hood.runAngleAdjustPID(4); m_aim.runshooterRotatePID(-26.5); } From 2b760f520b25e6e87daa591a5fc053067352feb0 Mon Sep 17 00:00:00 2001 From: ryan123rudder <42309874+ryan123rudder@users.noreply.github.com> Date: Fri, 26 Mar 2021 19:22:11 -0600 Subject: [PATCH 13/19] Adjustments --- src/main/deploy/Robot Data - Distances.csv | 7 +++--- src/main/deploy/Robot Data - DistancesOLD.csv | 22 ++++++++++++++----- .../driverStation/GOAT DRIVERSTATION.json | 8 +++---- .../java/frc4388/robot/RobotContainer.java | 2 +- 4 files changed, 25 insertions(+), 14 deletions(-) diff --git a/src/main/deploy/Robot Data - Distances.csv b/src/main/deploy/Robot Data - Distances.csv index 4f2fb07..8b68b83 100644 --- a/src/main/deploy/Robot Data - Distances.csv +++ b/src/main/deploy/Robot Data - Distances.csv @@ -3,9 +3,10 @@ Distance (in),Hood Ext. (u),Drum Velocity (u/ds),Center Displacment (deg) 65.9,16,6000,1, 103,19,6600,1, 126.6,20.25,7000,1.5, -156.6,22,7500,1.5, -180,24,8000,2, -185.85,26.5,9000,2.5, +156.6,23,7500,1.5, +174,30,12000,1.5, +180,30,12000,1.3, +185.85,30,12000,1.3, 231,28.8,9500,1.8, 245,28.8,9500,1.8, 262,28.8,9500,1.8, diff --git a/src/main/deploy/Robot Data - DistancesOLD.csv b/src/main/deploy/Robot Data - DistancesOLD.csv index a508fbc..65b84e8 100644 --- a/src/main/deploy/Robot Data - DistancesOLD.csv +++ b/src/main/deploy/Robot Data - DistancesOLD.csv @@ -31,9 +31,19 @@ IN BETWEEN HOLD 0,16,6000,1, 65.9,16,6000,1, -126.6,20.25,7000,0.95, -180,24,8000,1, -185.85,26.5, 9000,1.625, -245,28.9,9500,.98, -262,28.9,9500,.98, -999,28.9,9500,.98, \ No newline at end of file +103,19,6600,1, +126.6,20.25,7000,1.5, +156.6,22,7500,1.5, +174,23,8000,1.5, +180,23,8000,1.3, +185.85,26.5,9000,1.3, +231,28.8,9500,1.8, +245,28.8,9500,1.8, +262,28.8,9500,1.8, +999,28.8,9500,1.8, + + + + + + diff --git a/src/main/driverStation/GOAT DRIVERSTATION.json b/src/main/driverStation/GOAT DRIVERSTATION.json index 5035189..486a0fe 100644 --- a/src/main/driverStation/GOAT DRIVERSTATION.json +++ b/src/main/driverStation/GOAT DRIVERSTATION.json @@ -1144,9 +1144,9 @@ } ], "windowGeometry": { - "x": -7.199999809265137, - "y": -7.199999809265137, - "width": 1550.4000244140625, - "height": 838.4000244140625 + "x": -6.400000095367432, + "y": 1.600000023841858, + "width": 1547.199951171875, + "height": 828.7999877929688 } } \ No newline at end of file diff --git a/src/main/java/frc4388/robot/RobotContainer.java b/src/main/java/frc4388/robot/RobotContainer.java index 9578a71..315aa66 100644 --- a/src/main/java/frc4388/robot/RobotContainer.java +++ b/src/main/java/frc4388/robot/RobotContainer.java @@ -233,7 +233,7 @@ public class RobotContainer { //.whenPressed(new ShootFullGroup(m_robotShooter, m_robotShooterAim, m_robotShooterHood, m_robotStorage), false); //.whenReleased(new ManageStorage(m_robotStorage, StorageMode.RESET)); //.whenReleased(new RunCommand(() -> m_robotLime.limeOff())); - .whenPressed(new RunCommand(() -> m_robotStorage.runStorage(0.3), m_robotStorage)) + .whenPressed(new RunCommand(() -> m_robotStorage.runStorage(0.5), m_robotStorage)) .whenReleased(new InterruptSubystem(m_robotStorage)); // extends or retracts the extender From de69bd7a22e410a2f1e29259338b39feccb1d773 Mon Sep 17 00:00:00 2001 From: Aarav Shah Date: Sat, 3 Apr 2021 15:39:00 -0600 Subject: [PATCH 14/19] AhAHHHH --- src/main/java/frc4388/robot/RobotContainer.java | 16 ++++++++-------- .../robot/commands/auto/TenBallAutoMiddle.java | 7 ++++--- .../robot/commands/shooter/ShootPrepGroup.java | 5 +++-- .../robot/commands/shooter/TrackTarget.java | 12 +++++++++--- .../java/frc4388/robot/subsystems/LimeLight.java | 2 +- 5 files changed, 25 insertions(+), 17 deletions(-) diff --git a/src/main/java/frc4388/robot/RobotContainer.java b/src/main/java/frc4388/robot/RobotContainer.java index 315aa66..104d757 100644 --- a/src/main/java/frc4388/robot/RobotContainer.java +++ b/src/main/java/frc4388/robot/RobotContainer.java @@ -173,7 +173,7 @@ public class RobotContainer { // runs the storage not //m_robotStorage.setDefaultCommand(new RunCommand(() -> m_robotStorage.runStorage(0), m_robotStorage)); m_robotStorage.setDefaultCommand(new ManageStorage(m_robotStorage)); - //m_robotLime.setDefaultCommand(new RunCommand(() -> m_robotLime.limeOff(), m_robotLime)); + m_robotLime.setDefaultCommand(new RunCommand(() -> m_robotLime.limeOff(), m_robotLime)); } /** @@ -233,7 +233,7 @@ public class RobotContainer { //.whenPressed(new ShootFullGroup(m_robotShooter, m_robotShooterAim, m_robotShooterHood, m_robotStorage), false); //.whenReleased(new ManageStorage(m_robotStorage, StorageMode.RESET)); //.whenReleased(new RunCommand(() -> m_robotLime.limeOff())); - .whenPressed(new RunCommand(() -> m_robotStorage.runStorage(0.5), m_robotStorage)) + .whenPressed(new RunCommand(() -> m_robotStorage.runStorage(1), m_robotStorage)) .whenReleased(new InterruptSubystem(m_robotStorage)); // extends or retracts the extender @@ -254,7 +254,7 @@ public class RobotContainer { // starts tracking target new JoystickButton(getOperatorJoystick(), XboxController.A_BUTTON) - .whileHeld(new TrackTarget(m_robotShooterAim)) + .whileHeld(new TrackTarget(m_robotShooterAim, m_robotLime)) .whileHeld(new RunCommand(() -> m_robotShooterHood.runAngleAdjustPID(m_robotShooterHood.addFireAngle()))) .whenReleased(new InstantCommand(() -> m_robotLime.limeOff())); @@ -274,15 +274,15 @@ public class RobotContainer { //Run drum - new JoystickManualButton(getOperatorJoystick(), XboxController.B_BUTTON, false) - .whileHeld(new ShootPrepGroup(m_robotShooter, m_robotShooterAim, m_robotShooterHood, m_robotStorage), false) + new JoystickButton(getOperatorJoystick(), XboxController.B_BUTTON) + .whileHeld(new ShootPrepGroup(m_robotShooter, m_robotShooterAim, m_robotShooterHood, m_robotStorage, m_robotLime), false) //.whenReleased(new ManageStorage(m_robotStorage, StorageMode.RESET)) .whenReleased(new InstantCommand(() -> m_robotLime.limeOff())); //Run drum manual - new JoystickManualButton(getOperatorJoystick(), XboxController.B_BUTTON, true) + /*new JoystickManualButton(getOperatorJoystick(), XboxController.B_BUTTON, true) .whileHeld(new RunCommand(() -> m_robotShooter.runDrumShooterVelocityPID(10000))) - .whenReleased(new RunCommand(() -> m_robotShooter.runDrumShooterVelocityPID(0))); + .whenReleased(new RunCommand(() -> m_robotShooter.runDrumShooterVelocityPID(0)));*/ @@ -356,7 +356,7 @@ public class RobotContainer { }; m_tenBallAutoMiddle = new TenBallAutoMiddle(m_robotShooterHood, m_robotStorage, m_robotIntake, m_robotShooter, - m_robotShooterAim, m_robotDrive,buildPaths(tenBallAutoMiddlePaths)); + m_robotShooterAim, m_robotDrive, m_robotLime, buildPaths(tenBallAutoMiddlePaths)); } /** diff --git a/src/main/java/frc4388/robot/commands/auto/TenBallAutoMiddle.java b/src/main/java/frc4388/robot/commands/auto/TenBallAutoMiddle.java index 28ae59c..b2bbc04 100644 --- a/src/main/java/frc4388/robot/commands/auto/TenBallAutoMiddle.java +++ b/src/main/java/frc4388/robot/commands/auto/TenBallAutoMiddle.java @@ -18,6 +18,7 @@ import frc4388.robot.commands.shooter.ShootPrepGroup; import frc4388.robot.commands.storage.RunStorage; import frc4388.robot.subsystems.Drive; import frc4388.robot.subsystems.Intake; +import frc4388.robot.subsystems.LimeLight; import frc4388.robot.subsystems.Shooter; import frc4388.robot.subsystems.ShooterAim; import frc4388.robot.subsystems.ShooterHood; @@ -30,7 +31,7 @@ public class TenBallAutoMiddle extends SequentialCommandGroup { /** * Creates a new TenBallAutoMiddle. */ - public TenBallAutoMiddle(ShooterHood shooterHood, Storage storage, Intake intake, Shooter shooter, ShooterAim shooterAim, Drive drive, RamseteCommand[] paths) { + public TenBallAutoMiddle(ShooterHood shooterHood, Storage storage, Intake intake, Shooter shooter, ShooterAim shooterAim, Drive drive, LimeLight m_limeLight, RamseteCommand[] paths) { // Add your commands in the super() call, e.g. // super(new FooCommand(), new BarCommand()); addCommands( @@ -46,10 +47,10 @@ public class TenBallAutoMiddle extends SequentialCommandGroup { new Wait(drive, 4, 0), new PrepChecker(shooter, shooterAim), new RunCommand(() -> intake.runExtender(IntakeConstants.EXTENDER_SPEED), intake), - new ShootPrepGroup(shooter, shooterAim, shooterHood, storage) + new ShootPrepGroup(shooter, shooterAim, shooterHood, storage, m_limeLight) ), new ParallelDeadlineGroup( - new ShootPrepGroup(shooter, shooterAim, shooterHood, storage), + new ShootPrepGroup(shooter, shooterAim, shooterHood, storage, m_limeLight), new RunStorage(storage) ) //paths[0], diff --git a/src/main/java/frc4388/robot/commands/shooter/ShootPrepGroup.java b/src/main/java/frc4388/robot/commands/shooter/ShootPrepGroup.java index df92eb4..0f15b7c 100644 --- a/src/main/java/frc4388/robot/commands/shooter/ShootPrepGroup.java +++ b/src/main/java/frc4388/robot/commands/shooter/ShootPrepGroup.java @@ -9,6 +9,7 @@ package frc4388.robot.commands.shooter; import edu.wpi.first.wpilibj2.command.ParallelDeadlineGroup; import frc4388.robot.commands.storage.StoragePrep; +import frc4388.robot.subsystems.LimeLight; import frc4388.robot.subsystems.Shooter; import frc4388.robot.subsystems.ShooterAim; import frc4388.robot.subsystems.ShooterHood; @@ -24,9 +25,9 @@ public class ShootPrepGroup extends ParallelDeadlineGroup { * @param m_shooterAim The ShooterAim subsystem * @param m_storage The Storage subsytem */ - public ShootPrepGroup(Shooter m_shooter, ShooterAim m_shooterAim, ShooterHood m_shooterHood, Storage m_storage) { + public ShootPrepGroup(Shooter m_shooter, ShooterAim m_shooterAim, ShooterHood m_shooterHood, Storage m_storage, LimeLight m_limeLight) { super( - new TrackTarget(m_shooterAim), + new TrackTarget(m_shooterAim, m_limeLight), new ShooterVelocityControlPID(m_shooter), new HoodPositionPID(m_shooterHood) ); diff --git a/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java b/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java index 598c317..0fca6a5 100644 --- a/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java +++ b/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java @@ -39,24 +39,30 @@ public class TrackTarget extends CommandBase { public double m_hoodTrim; public double m_turretTrim; + LimeLight m_limeLight; + /** * Uses the Limelight to track the target * @param shooterSubsystem The Shooter subsystem * @param aimSubsystem The ShooterAim subsystem */ - public TrackTarget(ShooterAim aimSubsystem) { + public TrackTarget(ShooterAim aimSubsystem, LimeLight limeLight) { m_shooterAim = aimSubsystem; m_shooter = m_shooterAim.m_shooterSubsystem; m_shooterHood = m_shooter.m_shooterHoodSubsystem; + m_limeLight = limeLight; addRequirements(m_shooterAim); - NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(1); - NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(0); + //NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(1); + //NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(0); + m_limeLight.limeOff(); } // Called when the command is initially scheduled. @Override public void initialize() { // Vision Processing Mode + //NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(0); + //NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(3); NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(0); NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(3); } diff --git a/src/main/java/frc4388/robot/subsystems/LimeLight.java b/src/main/java/frc4388/robot/subsystems/LimeLight.java index d8e39a4..9ea2c96 100644 --- a/src/main/java/frc4388/robot/subsystems/LimeLight.java +++ b/src/main/java/frc4388/robot/subsystems/LimeLight.java @@ -20,7 +20,7 @@ public class LimeLight extends SubsystemBase { public void limeOff(){ NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(1); - NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(0); + NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(1); } public void limeOn(){ From 1f91867209afd9f94af234797434490fd3ffec3e Mon Sep 17 00:00:00 2001 From: Aarav Shah Date: Mon, 5 Apr 2021 16:56:27 -0600 Subject: [PATCH 15/19] Trying to fix shooter --- .../robot/commands/shooter/TrackTarget.java | 1 + .../frc4388/robot/subsystems/LimeLight.java | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java b/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java index 0fca6a5..dbcfe5a 100644 --- a/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java +++ b/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java @@ -65,6 +65,7 @@ public class TrackTarget extends CommandBase { //NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(3); NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(0); NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(3); + m_limeLight.changePipeline(0); } // Called every time the scheduler runs while the command is scheduled. diff --git a/src/main/java/frc4388/robot/subsystems/LimeLight.java b/src/main/java/frc4388/robot/subsystems/LimeLight.java index 9ea2c96..09bd99d 100644 --- a/src/main/java/frc4388/robot/subsystems/LimeLight.java +++ b/src/main/java/frc4388/robot/subsystems/LimeLight.java @@ -19,7 +19,7 @@ public class LimeLight extends SubsystemBase { } public void limeOff(){ - NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(1); + NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(0); NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(1); } @@ -27,7 +27,24 @@ public class LimeLight extends SubsystemBase { NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(0); NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(3); } + + public void changePipeline(int pipelineId) + { + NetworkTableInstance.getDefault().getTable("limelight").getEntry("pipeline").setNumber(pipelineId); + } + public double getV() + { + return NetworkTableInstance.getDefault().getTable("limelight").getEntry("tv").getDouble(0); + } + public double getX() + { + return NetworkTableInstance.getDefault().getTable("limelight").getEntry("tx").getDouble(0); + } + public double getY() + { + return NetworkTableInstance.getDefault().getTable("limelight").getEntry("ty").getDouble(0); + } @Override public void periodic() { // This method will be called once per scheduler run From 8bb60f4b49cd682135f4aa3e224f476e721144d5 Mon Sep 17 00:00:00 2001 From: Aarav Shah Date: Tue, 6 Apr 2021 16:36:55 -0600 Subject: [PATCH 16/19] Revert "Trying to fix shooter" This reverts commit 1f91867209afd9f94af234797434490fd3ffec3e. --- .../robot/commands/shooter/TrackTarget.java | 1 - .../frc4388/robot/subsystems/LimeLight.java | 19 +------------------ 2 files changed, 1 insertion(+), 19 deletions(-) diff --git a/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java b/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java index dbcfe5a..0fca6a5 100644 --- a/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java +++ b/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java @@ -65,7 +65,6 @@ public class TrackTarget extends CommandBase { //NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(3); NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(0); NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(3); - m_limeLight.changePipeline(0); } // Called every time the scheduler runs while the command is scheduled. diff --git a/src/main/java/frc4388/robot/subsystems/LimeLight.java b/src/main/java/frc4388/robot/subsystems/LimeLight.java index 09bd99d..9ea2c96 100644 --- a/src/main/java/frc4388/robot/subsystems/LimeLight.java +++ b/src/main/java/frc4388/robot/subsystems/LimeLight.java @@ -19,7 +19,7 @@ public class LimeLight extends SubsystemBase { } public void limeOff(){ - NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(0); + NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(1); NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(1); } @@ -27,24 +27,7 @@ public class LimeLight extends SubsystemBase { NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(0); NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(3); } - - public void changePipeline(int pipelineId) - { - NetworkTableInstance.getDefault().getTable("limelight").getEntry("pipeline").setNumber(pipelineId); - } - public double getV() - { - return NetworkTableInstance.getDefault().getTable("limelight").getEntry("tv").getDouble(0); - } - public double getX() - { - return NetworkTableInstance.getDefault().getTable("limelight").getEntry("tx").getDouble(0); - } - public double getY() - { - return NetworkTableInstance.getDefault().getTable("limelight").getEntry("ty").getDouble(0); - } @Override public void periodic() { // This method will be called once per scheduler run From 95eef717eaed7631de8fa9f0ef5a904adb646450 Mon Sep 17 00:00:00 2001 From: Aarav Shah Date: Tue, 6 Apr 2021 16:37:01 -0600 Subject: [PATCH 17/19] Revert "AhAHHHH" This reverts commit de69bd7a22e410a2f1e29259338b39feccb1d773. --- src/main/java/frc4388/robot/RobotContainer.java | 16 ++++++++-------- .../robot/commands/auto/TenBallAutoMiddle.java | 7 +++---- .../robot/commands/shooter/ShootPrepGroup.java | 5 ++--- .../robot/commands/shooter/TrackTarget.java | 12 +++--------- .../java/frc4388/robot/subsystems/LimeLight.java | 2 +- 5 files changed, 17 insertions(+), 25 deletions(-) diff --git a/src/main/java/frc4388/robot/RobotContainer.java b/src/main/java/frc4388/robot/RobotContainer.java index 104d757..315aa66 100644 --- a/src/main/java/frc4388/robot/RobotContainer.java +++ b/src/main/java/frc4388/robot/RobotContainer.java @@ -173,7 +173,7 @@ public class RobotContainer { // runs the storage not //m_robotStorage.setDefaultCommand(new RunCommand(() -> m_robotStorage.runStorage(0), m_robotStorage)); m_robotStorage.setDefaultCommand(new ManageStorage(m_robotStorage)); - m_robotLime.setDefaultCommand(new RunCommand(() -> m_robotLime.limeOff(), m_robotLime)); + //m_robotLime.setDefaultCommand(new RunCommand(() -> m_robotLime.limeOff(), m_robotLime)); } /** @@ -233,7 +233,7 @@ public class RobotContainer { //.whenPressed(new ShootFullGroup(m_robotShooter, m_robotShooterAim, m_robotShooterHood, m_robotStorage), false); //.whenReleased(new ManageStorage(m_robotStorage, StorageMode.RESET)); //.whenReleased(new RunCommand(() -> m_robotLime.limeOff())); - .whenPressed(new RunCommand(() -> m_robotStorage.runStorage(1), m_robotStorage)) + .whenPressed(new RunCommand(() -> m_robotStorage.runStorage(0.5), m_robotStorage)) .whenReleased(new InterruptSubystem(m_robotStorage)); // extends or retracts the extender @@ -254,7 +254,7 @@ public class RobotContainer { // starts tracking target new JoystickButton(getOperatorJoystick(), XboxController.A_BUTTON) - .whileHeld(new TrackTarget(m_robotShooterAim, m_robotLime)) + .whileHeld(new TrackTarget(m_robotShooterAim)) .whileHeld(new RunCommand(() -> m_robotShooterHood.runAngleAdjustPID(m_robotShooterHood.addFireAngle()))) .whenReleased(new InstantCommand(() -> m_robotLime.limeOff())); @@ -274,15 +274,15 @@ public class RobotContainer { //Run drum - new JoystickButton(getOperatorJoystick(), XboxController.B_BUTTON) - .whileHeld(new ShootPrepGroup(m_robotShooter, m_robotShooterAim, m_robotShooterHood, m_robotStorage, m_robotLime), false) + new JoystickManualButton(getOperatorJoystick(), XboxController.B_BUTTON, false) + .whileHeld(new ShootPrepGroup(m_robotShooter, m_robotShooterAim, m_robotShooterHood, m_robotStorage), false) //.whenReleased(new ManageStorage(m_robotStorage, StorageMode.RESET)) .whenReleased(new InstantCommand(() -> m_robotLime.limeOff())); //Run drum manual - /*new JoystickManualButton(getOperatorJoystick(), XboxController.B_BUTTON, true) + new JoystickManualButton(getOperatorJoystick(), XboxController.B_BUTTON, true) .whileHeld(new RunCommand(() -> m_robotShooter.runDrumShooterVelocityPID(10000))) - .whenReleased(new RunCommand(() -> m_robotShooter.runDrumShooterVelocityPID(0)));*/ + .whenReleased(new RunCommand(() -> m_robotShooter.runDrumShooterVelocityPID(0))); @@ -356,7 +356,7 @@ public class RobotContainer { }; m_tenBallAutoMiddle = new TenBallAutoMiddle(m_robotShooterHood, m_robotStorage, m_robotIntake, m_robotShooter, - m_robotShooterAim, m_robotDrive, m_robotLime, buildPaths(tenBallAutoMiddlePaths)); + m_robotShooterAim, m_robotDrive,buildPaths(tenBallAutoMiddlePaths)); } /** diff --git a/src/main/java/frc4388/robot/commands/auto/TenBallAutoMiddle.java b/src/main/java/frc4388/robot/commands/auto/TenBallAutoMiddle.java index b2bbc04..28ae59c 100644 --- a/src/main/java/frc4388/robot/commands/auto/TenBallAutoMiddle.java +++ b/src/main/java/frc4388/robot/commands/auto/TenBallAutoMiddle.java @@ -18,7 +18,6 @@ import frc4388.robot.commands.shooter.ShootPrepGroup; import frc4388.robot.commands.storage.RunStorage; import frc4388.robot.subsystems.Drive; import frc4388.robot.subsystems.Intake; -import frc4388.robot.subsystems.LimeLight; import frc4388.robot.subsystems.Shooter; import frc4388.robot.subsystems.ShooterAim; import frc4388.robot.subsystems.ShooterHood; @@ -31,7 +30,7 @@ public class TenBallAutoMiddle extends SequentialCommandGroup { /** * Creates a new TenBallAutoMiddle. */ - public TenBallAutoMiddle(ShooterHood shooterHood, Storage storage, Intake intake, Shooter shooter, ShooterAim shooterAim, Drive drive, LimeLight m_limeLight, RamseteCommand[] paths) { + public TenBallAutoMiddle(ShooterHood shooterHood, Storage storage, Intake intake, Shooter shooter, ShooterAim shooterAim, Drive drive, RamseteCommand[] paths) { // Add your commands in the super() call, e.g. // super(new FooCommand(), new BarCommand()); addCommands( @@ -47,10 +46,10 @@ public class TenBallAutoMiddle extends SequentialCommandGroup { new Wait(drive, 4, 0), new PrepChecker(shooter, shooterAim), new RunCommand(() -> intake.runExtender(IntakeConstants.EXTENDER_SPEED), intake), - new ShootPrepGroup(shooter, shooterAim, shooterHood, storage, m_limeLight) + new ShootPrepGroup(shooter, shooterAim, shooterHood, storage) ), new ParallelDeadlineGroup( - new ShootPrepGroup(shooter, shooterAim, shooterHood, storage, m_limeLight), + new ShootPrepGroup(shooter, shooterAim, shooterHood, storage), new RunStorage(storage) ) //paths[0], diff --git a/src/main/java/frc4388/robot/commands/shooter/ShootPrepGroup.java b/src/main/java/frc4388/robot/commands/shooter/ShootPrepGroup.java index 0f15b7c..df92eb4 100644 --- a/src/main/java/frc4388/robot/commands/shooter/ShootPrepGroup.java +++ b/src/main/java/frc4388/robot/commands/shooter/ShootPrepGroup.java @@ -9,7 +9,6 @@ package frc4388.robot.commands.shooter; import edu.wpi.first.wpilibj2.command.ParallelDeadlineGroup; import frc4388.robot.commands.storage.StoragePrep; -import frc4388.robot.subsystems.LimeLight; import frc4388.robot.subsystems.Shooter; import frc4388.robot.subsystems.ShooterAim; import frc4388.robot.subsystems.ShooterHood; @@ -25,9 +24,9 @@ public class ShootPrepGroup extends ParallelDeadlineGroup { * @param m_shooterAim The ShooterAim subsystem * @param m_storage The Storage subsytem */ - public ShootPrepGroup(Shooter m_shooter, ShooterAim m_shooterAim, ShooterHood m_shooterHood, Storage m_storage, LimeLight m_limeLight) { + public ShootPrepGroup(Shooter m_shooter, ShooterAim m_shooterAim, ShooterHood m_shooterHood, Storage m_storage) { super( - new TrackTarget(m_shooterAim, m_limeLight), + new TrackTarget(m_shooterAim), new ShooterVelocityControlPID(m_shooter), new HoodPositionPID(m_shooterHood) ); diff --git a/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java b/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java index 0fca6a5..598c317 100644 --- a/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java +++ b/src/main/java/frc4388/robot/commands/shooter/TrackTarget.java @@ -39,30 +39,24 @@ public class TrackTarget extends CommandBase { public double m_hoodTrim; public double m_turretTrim; - LimeLight m_limeLight; - /** * Uses the Limelight to track the target * @param shooterSubsystem The Shooter subsystem * @param aimSubsystem The ShooterAim subsystem */ - public TrackTarget(ShooterAim aimSubsystem, LimeLight limeLight) { + public TrackTarget(ShooterAim aimSubsystem) { m_shooterAim = aimSubsystem; m_shooter = m_shooterAim.m_shooterSubsystem; m_shooterHood = m_shooter.m_shooterHoodSubsystem; - m_limeLight = limeLight; addRequirements(m_shooterAim); - //NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(1); - //NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(0); - m_limeLight.limeOff(); + NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(1); + NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(0); } // Called when the command is initially scheduled. @Override public void initialize() { // Vision Processing Mode - //NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(0); - //NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(3); NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(0); NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(3); } diff --git a/src/main/java/frc4388/robot/subsystems/LimeLight.java b/src/main/java/frc4388/robot/subsystems/LimeLight.java index 9ea2c96..d8e39a4 100644 --- a/src/main/java/frc4388/robot/subsystems/LimeLight.java +++ b/src/main/java/frc4388/robot/subsystems/LimeLight.java @@ -20,7 +20,7 @@ public class LimeLight extends SubsystemBase { public void limeOff(){ NetworkTableInstance.getDefault().getTable("limelight").getEntry("camMode").setNumber(1); - NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(1); + NetworkTableInstance.getDefault().getTable("limelight").getEntry("ledMode").setNumber(0); } public void limeOn(){ From 1ccc4a807c99e04fa64f9abc9908e3173d2ec752 Mon Sep 17 00:00:00 2001 From: Aarav Shah Date: Wed, 7 Apr 2021 16:33:35 -0600 Subject: [PATCH 18/19] Power port --- src/main/deploy/Robot Data - Distances.csv | 16 +++++++++------- src/main/deploy/Robot Data - DistancesOLD.csv | 14 ++++++++++++++ src/main/java/frc4388/robot/RobotContainer.java | 4 ++-- .../robot/commands/drive/DriveWithJoystick.java | 2 +- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/main/deploy/Robot Data - Distances.csv b/src/main/deploy/Robot Data - Distances.csv index 8b68b83..004b230 100644 --- a/src/main/deploy/Robot Data - Distances.csv +++ b/src/main/deploy/Robot Data - Distances.csv @@ -4,10 +4,12 @@ Distance (in),Hood Ext. (u),Drum Velocity (u/ds),Center Displacment (deg) 103,19,6600,1, 126.6,20.25,7000,1.5, 156.6,23,7500,1.5, -174,30,12000,1.5, -180,30,12000,1.3, -185.85,30,12000,1.3, -231,28.8,9500,1.8, -245,28.8,9500,1.8, -262,28.8,9500,1.8, -999,28.8,9500,1.8, \ No newline at end of file +174,28,12000,1.5, +180,28,12000,1.3, +185.85,28,12000,1.3, +187,28.4,12000,1.3 +200,28.4,12000,1.3 +231,28.4,12000,1.8, +245,28.8,12000,1.8, +262,28.8,12000,1.8, +999,28.8,12000,1.8, \ No newline at end of file diff --git a/src/main/deploy/Robot Data - DistancesOLD.csv b/src/main/deploy/Robot Data - DistancesOLD.csv index 65b84e8..61cc162 100644 --- a/src/main/deploy/Robot Data - DistancesOLD.csv +++ b/src/main/deploy/Robot Data - DistancesOLD.csv @@ -47,3 +47,17 @@ HOLD +Distance (in),Hood Ext. (u),Drum Velocity (u/ds),Center Displacment (deg) +0,16,6000,1, +65.9,16,6000,1, +103,19,6600,1, +126.6,20.25,7000,1.5, +156.6,23,7500,1.5, +174,28.5,13000,1.5, +180,28.5,13000,1.3, +185.85,28.5,13000,1.3, +190,28.5,13000,1.9 +231,28.5,13000,1.8, +245,28.8,13000,1.8, +262,28.8,13000,1.8, +999,28.8,13000,1.8, \ No newline at end of file diff --git a/src/main/java/frc4388/robot/RobotContainer.java b/src/main/java/frc4388/robot/RobotContainer.java index 315aa66..2fa815f 100644 --- a/src/main/java/frc4388/robot/RobotContainer.java +++ b/src/main/java/frc4388/robot/RobotContainer.java @@ -163,7 +163,7 @@ public class RobotContainer { // runs the hood with joystick m_robotShooterHood.setDefaultCommand(new RunHoodWithJoystick(m_robotShooterHood, getOperatorController())); // moves the drum not - m_robotShooter.setDefaultCommand(new RunCommand(() -> m_robotShooter.runDrumShooter(0.2), m_robotShooter)); + m_robotShooter.setDefaultCommand(new RunCommand(() -> m_robotShooter.runDrumShooterVelocityPID(12000), m_robotShooter)); // drives climber with input from triggers on the opperator controller m_robotClimber.setDefaultCommand(new RunClimberWithTriggers(m_robotClimber, getDriverController())); // drives the leveler with an axis input from the driver controller @@ -233,7 +233,7 @@ public class RobotContainer { //.whenPressed(new ShootFullGroup(m_robotShooter, m_robotShooterAim, m_robotShooterHood, m_robotStorage), false); //.whenReleased(new ManageStorage(m_robotStorage, StorageMode.RESET)); //.whenReleased(new RunCommand(() -> m_robotLime.limeOff())); - .whenPressed(new RunCommand(() -> m_robotStorage.runStorage(0.5), m_robotStorage)) + .whenPressed(new RunCommand(() -> m_robotStorage.runStorage(1.0), m_robotStorage)) .whenReleased(new InterruptSubystem(m_robotStorage)); // extends or retracts the extender diff --git a/src/main/java/frc4388/robot/commands/drive/DriveWithJoystick.java b/src/main/java/frc4388/robot/commands/drive/DriveWithJoystick.java index 75ab279..b39d6b9 100644 --- a/src/main/java/frc4388/robot/commands/drive/DriveWithJoystick.java +++ b/src/main/java/frc4388/robot/commands/drive/DriveWithJoystick.java @@ -94,7 +94,7 @@ public class DriveWithJoystick extends CommandBase { } */ - m_drive.driveWithInput(moveOutput, steerOutput); + m_drive.driveWithInput(moveOutput, steerOutput * .8); } // Called once the command ends or is interrupted. From 2aa1aa8d6c387011020115e591863bd0e3ce6c00 Mon Sep 17 00:00:00 2001 From: Aarav Shah Date: Wed, 7 Apr 2021 17:58:59 -0600 Subject: [PATCH 19/19] shooter tuning --- PathWeaver/Paths/GSC_ARED | 3 +++ PathWeaver/Paths/GSC_BRED | 3 +++ PathWeaver/pathweaver.json | 2 +- src/main/deploy/Robot Data - Distances.csv | 17 +++++++++-------- 4 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 PathWeaver/Paths/GSC_ARED create mode 100644 PathWeaver/Paths/GSC_BRED diff --git a/PathWeaver/Paths/GSC_ARED b/PathWeaver/Paths/GSC_ARED new file mode 100644 index 0000000..610bd7c --- /dev/null +++ b/PathWeaver/Paths/GSC_ARED @@ -0,0 +1,3 @@ +X,Y,Tangent X,Tangent Y,Fixed Theta,Name +0.0,0.0,10.0,0.0,true, +10.0,-10.0,0.0,-10.0,true, diff --git a/PathWeaver/Paths/GSC_BRED b/PathWeaver/Paths/GSC_BRED new file mode 100644 index 0000000..610bd7c --- /dev/null +++ b/PathWeaver/Paths/GSC_BRED @@ -0,0 +1,3 @@ +X,Y,Tangent X,Tangent Y,Fixed Theta,Name +0.0,0.0,10.0,0.0,true, +10.0,-10.0,0.0,-10.0,true, diff --git a/PathWeaver/pathweaver.json b/PathWeaver/pathweaver.json index ddd52e0..8f8dfe4 100644 --- a/PathWeaver/pathweaver.json +++ b/PathWeaver/pathweaver.json @@ -4,6 +4,6 @@ "maxVelocity": 1.7, "maxAcceleration": 2.7, "wheelBase": 0.648, - "gameName": "Infinite Recharge", + "gameName": "Galactic Search A", "outputDir": ".." } \ No newline at end of file diff --git a/src/main/deploy/Robot Data - Distances.csv b/src/main/deploy/Robot Data - Distances.csv index 004b230..7f63722 100644 --- a/src/main/deploy/Robot Data - Distances.csv +++ b/src/main/deploy/Robot Data - Distances.csv @@ -1,13 +1,14 @@ Distance (in),Hood Ext. (u),Drum Velocity (u/ds),Center Displacment (deg) -0,16,6000,1, -65.9,16,6000,1, -103,19,6600,1, -126.6,20.25,7000,1.5, -156.6,23,7500,1.5, +0,16,12000,1, +65.9,16,12000,1, +103,19,12000,1, +126.6,20.28,12000,1.5, +156.6,28,12000,1.5, 174,28,12000,1.5, -180,28,12000,1.3, -185.85,28,12000,1.3, -187,28.4,12000,1.3 +178,28,12000,1.3 +180,28.5,12000,1.3, +185.85,28.5,12000,1.3, +187,28.5,12000,1.3 200,28.4,12000,1.3 231,28.4,12000,1.8, 245,28.8,12000,1.8,