diff --git a/src/main/java/frc/robot/interfaces/IAprilTagProvider.java b/src/main/java/frc/robot/interfaces/IAprilTagProvider.java new file mode 100644 index 0000000..09d3107 --- /dev/null +++ b/src/main/java/frc/robot/interfaces/IAprilTagProvider.java @@ -0,0 +1,9 @@ +package frc.robot.interfaces; + +import java.util.OptionalDouble; + +public interface IAprilTagProvider { + + public OptionalDouble getTagHorizontalOffsetByID(int id); + public OptionalDouble getTagDistanceFromCameraByID(int id); +} diff --git a/src/main/java/frc/robot/utilities/VisualPoseProvider.java b/src/main/java/frc/robot/interfaces/IVisualPoseProvider.java similarity index 61% rename from src/main/java/frc/robot/utilities/VisualPoseProvider.java rename to src/main/java/frc/robot/interfaces/IVisualPoseProvider.java index 62fc574..f8649a9 100644 --- a/src/main/java/frc/robot/utilities/VisualPoseProvider.java +++ b/src/main/java/frc/robot/interfaces/IVisualPoseProvider.java @@ -1,8 +1,10 @@ -package frc.robot.utilities; +package frc.robot.interfaces; + +import java.util.Optional; import edu.wpi.first.math.geometry.Pose2d; -public interface VisualPoseProvider { +public interface IVisualPoseProvider { public record VisualPose(Pose2d visualPose, double timestamp) {} public VisualPose getVisualPose(); diff --git a/src/main/java/frc/robot/subsystems/Drivetrain.java b/src/main/java/frc/robot/subsystems/Drivetrain.java index 2378635..0809087 100644 --- a/src/main/java/frc/robot/subsystems/Drivetrain.java +++ b/src/main/java/frc/robot/subsystems/Drivetrain.java @@ -24,7 +24,7 @@ import frc.robot.constants.AutoConstants; import frc.robot.constants.DrivetrainConstants; import frc.robot.utilities.MAXSwerveModule; import frc.robot.utilities.SwerveUtils; -import frc.robot.utilities.VisualPoseProvider; +import frc.robot.interfaces.IVisualPoseProvider; import edu.wpi.first.wpilibj2.command.Command; import edu.wpi.first.wpilibj2.command.PIDCommand; import edu.wpi.first.wpilibj2.command.SubsystemBase; @@ -42,7 +42,7 @@ public class Drivetrain extends SubsystemBase { private final SlewRateLimiter m_magLimiter; private final SlewRateLimiter m_rotLimiter; - private final VisualPoseProvider m_visualPoseProvider; + private final IVisualPoseProvider m_visualPoseProvider; // Odometry class for tracking robot pose SwerveDrivePoseEstimator m_poseEstimator; @@ -55,7 +55,7 @@ public class Drivetrain extends SubsystemBase { private double m_prevTime; /** Creates a new DriveSubsystem. */ - public Drivetrain(Pose2d initialPose, VisualPoseProvider visualPoseProvider) { + public Drivetrain(Pose2d initialPose, IVisualPoseProvider visualPoseProvider) { m_frontLeft = new MAXSwerveModule( DrivetrainConstants.kFrontLeftDrivingCanId, DrivetrainConstants.kFrontLeftTurningCanId,