Visual interfacing changes, needs more work before an actual implementation is tried with PhotonLib

This commit is contained in:
Bradley Bickford 2024-01-12 14:07:49 -05:00
parent 5e784eb9f6
commit 224d966e3e
3 changed files with 16 additions and 5 deletions

View File

@ -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);
}

View File

@ -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();

View File

@ -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,