From 13f281e35a00a4ac313405d9dcf4170dd723082b Mon Sep 17 00:00:00 2001 From: Tayler Uva <8679670+TaylerUva@users.noreply.github.com> Date: Sat, 13 Jun 2026 15:38:37 -0700 Subject: [PATCH 1/3] Refactor rotor subsystem to clarify leader and follower roles for motors --- .../java/frc/robot/subsystems/Rotors.java | 83 +++++++++++-------- 1 file changed, 48 insertions(+), 35 deletions(-) diff --git a/src/main/java/frc/robot/subsystems/Rotors.java b/src/main/java/frc/robot/subsystems/Rotors.java index 0ee0be0..74930ba 100644 --- a/src/main/java/frc/robot/subsystems/Rotors.java +++ b/src/main/java/frc/robot/subsystems/Rotors.java @@ -20,21 +20,33 @@ @Logged public class Rotors extends SubsystemBase { - final TalonFX serializerRollers = new TalonFX(rotorIDs.SERIALIZER_ROLLERS_CAN); - final TalonFX intakeRollersWest = new TalonFX(rotorIDs.INTAKE_ROLLERS_WEST_CAN); - final TalonFX intakeRollersEast = new TalonFX(rotorIDs.INTAKE_ROLLERS_EAST_CAN); - final TalonFX transferRollersWest = new TalonFX((rotorIDs.TRANSFER_ROLLERS_WEST_CAN)); - final TalonFX transferRollersEast = new TalonFX((rotorIDs.TRANSFER_ROLLERS_EAST_CAN)); + final TalonFX serializerRollersLeader = new TalonFX(rotorIDs.SERIALIZER_ROLLERS_CAN); + + final TalonFX intakeRollersWestFollower = new TalonFX(rotorIDs.INTAKE_ROLLERS_WEST_CAN); + final TalonFX intakeRollersEastLeader = new TalonFX(rotorIDs.INTAKE_ROLLERS_EAST_CAN); + + final TalonFX transferRollersWestLeader = new TalonFX((rotorIDs.TRANSFER_ROLLERS_WEST_CAN)); + final TalonFX transferRollersEastFollower = new TalonFX((rotorIDs.TRANSFER_ROLLERS_EAST_CAN)); + final TalonFX flywheelTopWest = new TalonFX((rotorIDs.FLYWHEEL_TOP_WEST_CAN)); - final TalonFX flywheelTopEast = new TalonFX((rotorIDs.FLYWHEEL_TOP_EAST_CAN)); + final TalonFX flywheelTopEastLeader = new TalonFX((rotorIDs.FLYWHEEL_TOP_EAST_CAN)); final TalonFX flywheelBottomWest = new TalonFX((rotorIDs.FLYWHEEL_BOTTOM_WEST_CAN)); final TalonFX flywheelBottomEast = new TalonFX((rotorIDs.FLYWHEEL_BOTTOM_EAST_CAN)); + AngularVelocity lastDesiredFlyWheelSpeed = Units.RPM.of(0); AngularVelocity lastDesiredTransferRollersSpeed = Units.RPM.of(0); - Follower flywheelEastFollower = new Follower(flywheelTopEast.getDeviceID(), MotorAlignmentValue.Aligned); - Follower flywheelWestFollower = new Follower(flywheelTopEast.getDeviceID(), MotorAlignmentValue.Opposed); - Follower transferRollersEastFollower = new Follower(transferRollersWest.getDeviceID(), MotorAlignmentValue.Opposed); - Follower intakeRollerEastFollower = new Follower(intakeRollersEast.getDeviceID(), MotorAlignmentValue.Opposed); + + Follower flywheelFollowerAlignedRequest = new Follower(flywheelTopEastLeader.getDeviceID(), + MotorAlignmentValue.Aligned); + Follower flywheelFollowerOpposedRequest = new Follower(flywheelTopEastLeader.getDeviceID(), + MotorAlignmentValue.Opposed); + + Follower transferRollersFollowerOpposedRequest = new Follower(transferRollersWestLeader.getDeviceID(), + MotorAlignmentValue.Opposed); + + Follower intakeRollerWestFollowerOpposedRequest = new Follower(intakeRollersEastLeader.getDeviceID(), + MotorAlignmentValue.Opposed); + final MotionMagicVelocityVoltage flyWheelVelocityRequest = new MotionMagicVelocityVoltage(0); final MotionMagicVelocityVoltage transferRollersVelocityRequest = new MotionMagicVelocityVoltage(0); final MotionMagicVelocityVoltage serializerVelocityRequest = new MotionMagicVelocityVoltage(0); @@ -44,12 +56,12 @@ public class Rotors extends SubsystemBase { // private boolean intakeRollersAtSpeed = false;/ public Rotors() { - serializerRollers.getConfigurator().apply(ConstRotors.SERIALIZER_ROLLERS_CONFIGURATION); - intakeRollersEast.getConfigurator().apply(ConstRotors.INTAKE_ROLLERS_EAST_CONFIGURATION); - intakeRollersWest.getConfigurator().apply(ConstRotors.INTAKE_ROLLERS_WEST_CONFIGURATION); - transferRollersEast.getConfigurator().apply(ConstRotors.TRANSFER_ROLLERS_EAST_CONFIGURATION); - transferRollersWest.getConfigurator().apply(ConstRotors.TRANSFER_ROLLERS_WEST_CONFIGURATION); - flywheelTopEast.getConfigurator().apply(ConstRotors.FLYWHEEL_EAST_CONFIGURATION); + serializerRollersLeader.getConfigurator().apply(ConstRotors.SERIALIZER_ROLLERS_CONFIGURATION); + intakeRollersEastLeader.getConfigurator().apply(ConstRotors.INTAKE_ROLLERS_EAST_CONFIGURATION); + intakeRollersWestFollower.getConfigurator().apply(ConstRotors.INTAKE_ROLLERS_WEST_CONFIGURATION); + transferRollersEastFollower.getConfigurator().apply(ConstRotors.TRANSFER_ROLLERS_EAST_CONFIGURATION); + transferRollersWestLeader.getConfigurator().apply(ConstRotors.TRANSFER_ROLLERS_WEST_CONFIGURATION); + flywheelTopEastLeader.getConfigurator().apply(ConstRotors.FLYWHEEL_EAST_CONFIGURATION); flywheelTopWest.getConfigurator().apply(ConstRotors.FLYWHEEL_WEST_CONFIGURATION); flywheelBottomEast.getConfigurator().apply(ConstRotors.FLYWHEEL_EAST_CONFIGURATION); flywheelBottomWest.getConfigurator().apply(ConstRotors.FLYWHEEL_WEST_CONFIGURATION); @@ -62,53 +74,54 @@ public AngularVelocity getFlyWheelSpeeds() { if (Robot.isSimulation()) { return lastDesiredFlyWheelSpeed; } - return flywheelTopEast.getVelocity().getValue(); + return flywheelTopEastLeader.getVelocity().getValue(); } public AngularVelocity getSerializerRollersVelocity() { - return serializerRollers.getVelocity().getValue(); + return serializerRollersLeader.getVelocity().getValue(); } public AngularVelocity getIntakeRollersVelocity() { - return intakeRollersEast.getVelocity().getValue(); + return intakeRollersEastLeader.getVelocity().getValue(); } public AngularVelocity getTransferRollersVelocity() { - return transferRollersEast.getVelocity().getValue(); + return transferRollersEastFollower.getVelocity().getValue(); } public void setSerializerRollersPercentOutput(Double speed) { - serializerRollers.set(speed); + serializerRollersLeader.set(speed); } public void setIntakeRollersPercentOutput(Double speed) { - intakeRollersEast.set(speed); - intakeRollersWest.setControl(intakeRollerEastFollower); + intakeRollersEastLeader.set(speed); + intakeRollersWestFollower.setControl(intakeRollerWestFollowerOpposedRequest); } public void setTransferRollersSpeeds(AngularVelocity speed) { - transferRollersEast.setControl(transferRollersVelocityRequest.withVelocity(speed)); - transferRollersWest.setControl(transferRollersEastFollower); + // THIS WAS THE BUG, LEADER AND FOLLOWER WERE SWITCHED + transferRollersWestLeader.setControl(transferRollersVelocityRequest.withVelocity(speed)); + transferRollersEastFollower.setControl(transferRollersFollowerOpposedRequest); } public void setTransferRollersPercentOutput(Double speed) { - transferRollersEast.set(speed); - transferRollersWest.setControl(transferRollersEastFollower); + transferRollersEastFollower.set(speed); + transferRollersWestLeader.setControl(transferRollersFollowerOpposedRequest); } public void setFlyWheelSpeeds(AngularVelocity speed) { - flywheelTopEast.setControl(flyWheelVelocityRequest.withVelocity(speed)); - flywheelTopWest.setControl(flywheelWestFollower); - flywheelBottomWest.setControl(flywheelWestFollower); - flywheelBottomEast.setControl(flywheelEastFollower); + flywheelTopEastLeader.setControl(flyWheelVelocityRequest.withVelocity(speed)); + flywheelTopWest.setControl(flywheelFollowerOpposedRequest); + flywheelBottomWest.setControl(flywheelFollowerOpposedRequest); + flywheelBottomEast.setControl(flywheelFollowerAlignedRequest); lastDesiredFlyWheelSpeed = speed; } public void setFlywheelPercentOutput(double speed) { - flywheelTopEast.set(speed); - flywheelTopWest.setControl(flywheelWestFollower); - flywheelBottomWest.setControl(flywheelWestFollower); - flywheelBottomEast.setControl(flywheelEastFollower); + flywheelTopEastLeader.set(speed); + flywheelTopWest.setControl(flywheelFollowerOpposedRequest); + flywheelBottomWest.setControl(flywheelFollowerOpposedRequest); + flywheelBottomEast.setControl(flywheelFollowerAlignedRequest); } public boolean isFlyWheelAtSpeed(AngularVelocity tolerance) { From 3966a99b2c749f9ae8f8ce752d666d60300b99fa Mon Sep 17 00:00:00 2001 From: Krypton-4-FRCTeam3255-Shared Date: Sat, 13 Jun 2026 18:27:05 -0700 Subject: [PATCH 2/3] fixxed west transfer --- src/main/java/frc/robot/constants/ConstRotors.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/constants/ConstRotors.java b/src/main/java/frc/robot/constants/ConstRotors.java index 64c3624..b0997ef 100644 --- a/src/main/java/frc/robot/constants/ConstRotors.java +++ b/src/main/java/frc/robot/constants/ConstRotors.java @@ -96,7 +96,13 @@ public class ConstRotors { TRANSFER_ROLLERS_WEST_CONFIGURATION.MotorOutput.NeutralMode = NeutralModeValue.Coast; TRANSFER_ROLLERS_WEST_CONFIGURATION.MotorOutput.Inverted = InvertedValue.Clockwise_Positive; - + TRANSFER_ROLLERS_WEST_CONFIGURATION.Slot0.kP = 0.7; + TRANSFER_ROLLERS_WEST_CONFIGURATION.Slot0.kS = 0.15; + TRANSFER_ROLLERS_WEST_CONFIGURATION.Slot0.kV = 0.12; + TRANSFER_ROLLERS_WEST_CONFIGURATION.Slot0.kA = 0; + TRANSFER_ROLLERS_WEST_CONFIGURATION.MotionMagic.MotionMagicCruiseVelocity = 0; + TRANSFER_ROLLERS_WEST_CONFIGURATION.MotionMagic.MotionMagicAcceleration = 9999; + TRANSFER_ROLLERS_WEST_CONFIGURATION.MotionMagic.MotionMagicJerk = 0; } } From 4f949a8487202df53cab912f9a6c35212f156d56 Mon Sep 17 00:00:00 2001 From: Wu-Fan-529 <3681247216@qq.com> Date: Sun, 14 Jun 2026 10:13:52 +0800 Subject: [PATCH 3/3] qf --- src/main/java/frc/robot/subsystems/Rotors.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/frc/robot/subsystems/Rotors.java b/src/main/java/frc/robot/subsystems/Rotors.java index 74930ba..55592e7 100644 --- a/src/main/java/frc/robot/subsystems/Rotors.java +++ b/src/main/java/frc/robot/subsystems/Rotors.java @@ -86,7 +86,7 @@ public AngularVelocity getIntakeRollersVelocity() { } public AngularVelocity getTransferRollersVelocity() { - return transferRollersEastFollower.getVelocity().getValue(); + return transferRollersWestLeader.getVelocity().getValue(); } public void setSerializerRollersPercentOutput(Double speed) { @@ -105,8 +105,8 @@ public void setTransferRollersSpeeds(AngularVelocity speed) { } public void setTransferRollersPercentOutput(Double speed) { - transferRollersEastFollower.set(speed); - transferRollersWestLeader.setControl(transferRollersFollowerOpposedRequest); + transferRollersWestLeader.set(speed); + transferRollersEastFollower.setControl(transferRollersFollowerOpposedRequest); } public void setFlyWheelSpeeds(AngularVelocity speed) {