Move AimLeadTime to being defined by ShooterConstants.

This commit is contained in:
Michael Mikovsky
2026-02-20 15:24:05 -08:00
parent 803371e99d
commit 32ede81ffa
4 changed files with 7 additions and 6 deletions
@@ -34,6 +34,7 @@ import frc4388.robot.subsystems.LED;
import frc4388.robot.subsystems.intake.Intake; import frc4388.robot.subsystems.intake.Intake;
import frc4388.robot.subsystems.intake.Intake.IntakeMode; import frc4388.robot.subsystems.intake.Intake.IntakeMode;
import frc4388.robot.subsystems.shooter.Shooter; import frc4388.robot.subsystems.shooter.Shooter;
import frc4388.robot.subsystems.shooter.ShooterConstants;
import frc4388.robot.subsystems.swerve.SwerveDrive; import frc4388.robot.subsystems.swerve.SwerveDrive;
import frc4388.robot.subsystems.vision.Vision; import frc4388.robot.subsystems.vision.Vision;
import frc4388.utility.DeferredBlock; import frc4388.utility.DeferredBlock;
@@ -222,7 +223,9 @@ public class RobotContainer {
() -> { () -> {
m_robotSwerveDrive.driveFacingPosition( m_robotSwerveDrive.driveFacingPosition(
getDeadbandedDriverController().getLeft(), getDeadbandedDriverController().getLeft(),
FieldPositions.HUB_POSITION); FieldPositions.HUB_POSITION,
ShooterConstants.AIM_LEAD_TIME.get()
);
}, m_robotSwerveDrive) }, m_robotSwerveDrive)
); );
// .onTrue(new InstantCommand(() -> { // .onTrue(new InstantCommand(() -> {
@@ -24,6 +24,7 @@ public class ShooterConstants {
public static final ConfigurableDouble INDEXER_FORWARD_OUTPUT = new ConfigurableDouble("Indexer FWD % Output", -0.1); public static final ConfigurableDouble INDEXER_FORWARD_OUTPUT = new ConfigurableDouble("Indexer FWD % Output", -0.1);
public static final ConfigurableDouble INDEXER_REVERSE_OUTPUT = new ConfigurableDouble("Indexer reverse % Output", 0.0); public static final ConfigurableDouble INDEXER_REVERSE_OUTPUT = new ConfigurableDouble("Indexer reverse % Output", 0.0);
public static final ConfigurableDouble AIM_LEAD_TIME = new ConfigurableDouble("Aim lead time", 0);
// Shoot mode tolerances // Shoot mode tolerances
public static final ConfigurableDouble ROBOT_MIN_HUB = new ConfigurableDouble("Shoot min dist M", 0); public static final ConfigurableDouble ROBOT_MIN_HUB = new ConfigurableDouble("Shoot min dist M", 0);
@@ -339,7 +339,7 @@ public class SwerveDrive extends SubsystemBase implements Queryable {
// Drive with the robot facing towards a specific position // Drive with the robot facing towards a specific position
public void driveFacingPosition(Translation2d leftStick, Translation2d fieldPos) { public void driveFacingPosition(Translation2d leftStick, Translation2d fieldPos, double aimLeadTime) {
// Get the current speed of the robot // Get the current speed of the robot
Translation2d robotSpeed = new Translation2d( Translation2d robotSpeed = new Translation2d(
@@ -348,7 +348,7 @@ public class SwerveDrive extends SubsystemBase implements Queryable {
); );
// Calculate a point to aim ahead of the actual position. // Calculate a point to aim ahead of the actual position.
Translation2d fieldPosLead = robotSpeed.times(SwerveDriveConstants.AIM_LEAD_TIME.get()).plus(fieldPos); Translation2d fieldPosLead = robotSpeed.times(aimLeadTime).plus(fieldPos);
// Calculate the angle between the current position and the lead position // Calculate the angle between the current position and the lead position
Rotation2d ang = fieldPosLead.minus(getPose2d().getTranslation()).getAngle(); Rotation2d ang = fieldPosLead.minus(getPose2d().getTranslation()).getAngle();
@@ -39,9 +39,6 @@ public final class SwerveDriveConstants {
public static double PLAYBACK_ROTATION_SPEED = AUTO_MAX_ROT_SPEED; public static double PLAYBACK_ROTATION_SPEED = AUTO_MAX_ROT_SPEED;
public static double ROT_CORRECTION_SPEED = 10; // MIN_ROT_SPEED; public static double ROT_CORRECTION_SPEED = 10; // MIN_ROT_SPEED;
// TODO: Replace with a constant
public static final ConfigurableDouble AIM_LEAD_TIME = new ConfigurableDouble("Aim lead time", 0);
public static final double CORRECTION_MIN = 10; public static final double CORRECTION_MIN = 10;
public static final double CORRECTION_MAX = 50; public static final double CORRECTION_MAX = 50;