diff --git a/src/main/deploy/pathplanner/paths/My Bumpers Arent All The Way Over.path b/src/main/deploy/pathplanner/paths/My Bumpers Arent All The Way Over.path index 74dcf9e..954aba4 100644 --- a/src/main/deploy/pathplanner/paths/My Bumpers Arent All The Way Over.path +++ b/src/main/deploy/pathplanner/paths/My Bumpers Arent All The Way Over.path @@ -69,7 +69,7 @@ }, "prevControl": { "x": 8.08578683847011, - "y": 0.4907704016028375 + "y": 0.49077040160283747 }, "nextControl": { "x": 8.318287488908608, diff --git a/src/main/deploy/pathplanner/settings.json b/src/main/deploy/pathplanner/settings.json index 5bf438c..c2c05b6 100644 --- a/src/main/deploy/pathplanner/settings.json +++ b/src/main/deploy/pathplanner/settings.json @@ -1,6 +1,6 @@ { - "robotWidth": 0.9, - "robotLength": 0.9, + "robotWidth": 0.921, + "robotLength": 0.787, "holonomicMode": true, "pathFolders": [], "autoFolders": [], @@ -9,24 +9,26 @@ "defaultMaxAngVel": 540.0, "defaultMaxAngAccel": 720.0, "defaultNominalVoltage": 12.0, - "robotMass": 74.088, - "robotMOI": 6.883, + "robotMass": 64.864, + "robotMOI": 37.809, "robotTrackwidth": 0.546, - "driveWheelRadius": 0.048, - "driveGearing": 5.143, - "maxDriveSpeed": 5.45, + "driveWheelRadius": 0.051, + "driveGearing": 6.122, + "maxDriveSpeed": 4.66, "driveMotorType": "krakenX60", - "driveCurrentLimit": 60.0, + "driveCurrentLimit": 65.0, "wheelCOF": 1.2, - "flModuleX": 0.273, - "flModuleY": 0.273, - "frModuleX": 0.273, - "frModuleY": -0.273, - "blModuleX": -0.273, - "blModuleY": 0.273, - "brModuleX": -0.273, - "brModuleY": -0.273, + "flModuleX": 0.238, + "flModuleY": 0.3015, + "frModuleX": 0.238, + "frModuleY": -0.3015, + "blModuleX": -0.238, + "blModuleY": 0.3015, + "brModuleX": -0.238, + "brModuleY": -0.3015, "bumperOffsetX": 0.0, "bumperOffsetY": 0.0, - "robotFeatures": [] + "robotFeatures": [ + "{\"name\":\"Rectangle\",\"type\":\"rounded_rect\",\"data\":{\"center\":{\"x\":0.55,\"y\":0.0},\"size\":{\"width\":0.921,\"length\":0.305},\"borderRadius\":0.05,\"strokeWidth\":0.02,\"filled\":false}}" + ] } \ No newline at end of file diff --git a/src/main/java/frc/robot/constants/AutoConstants.java b/src/main/java/frc/robot/constants/AutoConstants.java index f28498a..5e77fa9 100644 --- a/src/main/java/frc/robot/constants/AutoConstants.java +++ b/src/main/java/frc/robot/constants/AutoConstants.java @@ -14,7 +14,7 @@ import edu.wpi.first.math.util.Units; // TODO This is all hold over from 2025, does any of it need to change? public class AutoConstants { - public static final double kMaxSpeedMetersPerSecond = 5; + public static final double kMaxSpeedMetersPerSecond = 4; public static final double kMaxAccelerationMetersPerSecondSquared = 4; public static final double kMaxAngularSpeedRadiansPerSecond = Math.PI; public static final double kMaxAngularAccelerationRadiansPerSecondSquared = Math.PI; diff --git a/src/main/java/frc/robot/constants/DrivetrainConstants.java b/src/main/java/frc/robot/constants/DrivetrainConstants.java index fdd990e..501ce8c 100644 --- a/src/main/java/frc/robot/constants/DrivetrainConstants.java +++ b/src/main/java/frc/robot/constants/DrivetrainConstants.java @@ -9,8 +9,7 @@ import edu.wpi.first.math.numbers.N3; import edu.wpi.first.math.util.Units; public class DrivetrainConstants { - // TODO Hold over from 2025, adjust? - public static final double kMaxSpeedMetersPerSecond = 4.125; + public static final double kMaxSpeedMetersPerSecond = 4.663; public static final double kMaxAngularSpeed = 2 * Math.PI; public static final double kTrackWidth = Units.inchesToMeters(23.75); diff --git a/src/main/java/frc/robot/constants/HoodConstants.java b/src/main/java/frc/robot/constants/HoodConstants.java index f4f9f25..6bdeff0 100644 --- a/src/main/java/frc/robot/constants/HoodConstants.java +++ b/src/main/java/frc/robot/constants/HoodConstants.java @@ -17,7 +17,7 @@ public class HoodConstants { // TODO Real Values public static final int kMotorCANID = 0; - public static final double kConversionFactor = 0; + public static final double kConversionFactor = 3.0*147.0/8.0; public static final double kP = 0; public static final double kI = 0; diff --git a/src/main/java/frc/robot/constants/IntakePivotConstants.java b/src/main/java/frc/robot/constants/IntakePivotConstants.java index 8ba6812..c8f2b0b 100644 --- a/src/main/java/frc/robot/constants/IntakePivotConstants.java +++ b/src/main/java/frc/robot/constants/IntakePivotConstants.java @@ -7,8 +7,8 @@ import com.revrobotics.spark.config.SparkBaseConfig.IdleMode; public class IntakePivotConstants { // TODO Real values public enum IntakePivotPosition { - kUp(0), - kDown(0); + kUp(Math.toRadians(116.0)), + kDown(Math.toRadians(0.0)); private double positionRadians; private IntakePivotPosition(double positionRadians) { @@ -23,7 +23,7 @@ public class IntakePivotConstants { public static final int kLeftMotorCANID = 0; public static final int kRightMotorCANID = 0; - public static final double kConversionFactor = 0; + public static final double kConversionFactor = 60.0/11.0*60.0/18.0*38.0/16.0; // Ultra conservative multiplier to prevent 1/8" lexan destruction, modify at your own peril public static final double kMaxManualSpeedMultiplier = .3; @@ -32,8 +32,9 @@ public class IntakePivotConstants { public static final double kI = 0; public static final double kD = 0; public static final double kS = 0; - public static final double kV = 0; - public static final double kA = 0; + public static final double kV = 5.26; + public static final double kA = 0.05; + public static final double kG = 0.25; public static final boolean kInvertMotors = false; @@ -51,17 +52,17 @@ public class IntakePivotConstants { .idleMode(kIdleMode) .smartCurrentLimit(kCurrentLimit) .inverted(kInvertMotors); - KLeftMotorConfig.absoluteEncoder + KLeftMotorConfig.encoder .positionConversionFactor(kConversionFactor) .velocityConversionFactor(kConversionFactor / 60); KLeftMotorConfig.closedLoop - .feedbackSensor(FeedbackSensor.kAbsoluteEncoder) + .feedbackSensor(FeedbackSensor.kPrimaryEncoder) .pid(kP, kI, kD) .outputRange(-1, 1) .positionWrappingEnabled(true) .positionWrappingInputRange(0, 2 * Math.PI) .feedForward - .sva(kS, kV, kA); + .svag(kS, kV, kA, kG); kRightMotorConfig .idleMode(kIdleMode) diff --git a/src/main/java/frc/robot/constants/IntakeRollerConstants.java b/src/main/java/frc/robot/constants/IntakeRollerConstants.java index f92de77..a7b76a6 100644 --- a/src/main/java/frc/robot/constants/IntakeRollerConstants.java +++ b/src/main/java/frc/robot/constants/IntakeRollerConstants.java @@ -8,7 +8,7 @@ public class IntakeRollerConstants { public static final int kLeftMotorCANID = 0; public static final int kRightMotorCANID = 0; - public static final int kCurrentLimit = 30; + public static final int kCurrentLimit = 40; public static final boolean kInvertMotors = false; diff --git a/src/main/java/frc/robot/constants/ShooterConstants.java b/src/main/java/frc/robot/constants/ShooterConstants.java index ae24d45..84d7642 100644 --- a/src/main/java/frc/robot/constants/ShooterConstants.java +++ b/src/main/java/frc/robot/constants/ShooterConstants.java @@ -24,7 +24,7 @@ public class ShooterConstants { // TODO Conversion factor? - public static final double kWheelDiameter = Units.inchesToMeters(6); + public static final double kWheelDiameter = Units.inchesToMeters(4); // TODO Real values public static final int kLeftShooterMotor1CANID = 0; @@ -41,20 +41,20 @@ public class ShooterConstants { public static final double kLeftI = 0; public static final double kLeftD = 0; public static final double kLeftS = 0; - public static final double kLeftV = 0; + public static final double kLeftV = 0.21; public static final double kLeftA = 0; public static final double kRightP = 0; public static final double kRightI = 0; public static final double kRightD = 0; public static final double kRightS = 0; - public static final double kRightV = 0; + public static final double kRightV = 0.21; public static final double kRightA = 0; public static final double kShooterHeightMeters = 0; // TODO Is this value sane? - public static final int kCurrentLimit = 30; + public static final int kCurrentLimit = 50; public static final IdleMode kShooterIdleMode = IdleMode.kCoast; diff --git a/src/main/java/frc/robot/constants/SpindexerConstants.java b/src/main/java/frc/robot/constants/SpindexerConstants.java index bf46cbe..d64c6d6 100644 --- a/src/main/java/frc/robot/constants/SpindexerConstants.java +++ b/src/main/java/frc/robot/constants/SpindexerConstants.java @@ -12,9 +12,9 @@ public class SpindexerConstants { public static final int kSpindexerMotorCANID = 0; public static final int kFeederMotorCANID = 0; - public static final int kSpindexerStatorCurrentLimit = 80; - public static final int kSpindexerSupplyCurrentLimit = 30; - public static final int kFeederCurrentLimit = 30; + public static final int kSpindexerStatorCurrentLimit = 90; + public static final int kSpindexerSupplyCurrentLimit = 50; + public static final int kFeederCurrentLimit = 40; public static final boolean kFeederMotorInverted = false; diff --git a/src/main/java/frc/robot/subsystems/IntakePivot.java b/src/main/java/frc/robot/subsystems/IntakePivot.java index fc9c2e0..2924d02 100644 --- a/src/main/java/frc/robot/subsystems/IntakePivot.java +++ b/src/main/java/frc/robot/subsystems/IntakePivot.java @@ -5,8 +5,8 @@ import java.util.function.DoubleSupplier; import org.littletonrobotics.junction.Logger; -import com.revrobotics.AbsoluteEncoder; import com.revrobotics.PersistMode; +import com.revrobotics.RelativeEncoder; import com.revrobotics.ResetMode; import com.revrobotics.spark.SparkClosedLoopController; import com.revrobotics.spark.SparkMax; @@ -22,7 +22,7 @@ public class IntakePivot extends SubsystemBase { private SparkMax leftMotor; private SparkMax rightMotor; - private AbsoluteEncoder encoder; + private RelativeEncoder encoder; private SparkClosedLoopController controller; @@ -46,7 +46,8 @@ public class IntakePivot extends SubsystemBase { controller = leftMotor.getClosedLoopController(); - encoder = leftMotor.getAbsoluteEncoder(); + encoder = leftMotor.getEncoder(); + encoder.setPosition(IntakePivotConstants.IntakePivotPosition.kUp.getPositionRadians()); } @Override