From b236f43f4d9051497d6f8953040feca3975b9efe Mon Sep 17 00:00:00 2001 From: Alyssum-chenyiyi <13162501939@163.com> Date: Thu, 5 Mar 2026 18:57:57 +0800 Subject: [PATCH] climb auto --- src/main/java/frc/robot/Constants.java | 3 + .../subsystems/CommandSwerveDrivetrain.java | 70 ++++++++++++ .../robot/subsystems/LimelightSupplier.java | 108 ++++++++++++++++++ 3 files changed, 181 insertions(+) create mode 100644 src/main/java/frc/robot/subsystems/LimelightSupplier.java diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index 8793572..1b6c31d 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -78,6 +78,9 @@ public final class Constants { public static final String LIMELIGHT_NAME_Shooter = "limelight-shooter"; public static final String LIMELIGHT_NAME_Intaker = "limelight-intaker"; public static final Boolean UsingMetaTag2 = true; + public static final double AutoClimbAlignSpeed = 0.5;//等查资料 + public static final double AutoClimbAlignTolerance = 0.1;//? + public static final double AutoClimbmaxAngularVelocity = 0.5;//等查资料 } public class Field { diff --git a/src/main/java/frc/robot/subsystems/CommandSwerveDrivetrain.java b/src/main/java/frc/robot/subsystems/CommandSwerveDrivetrain.java index 46987f0..c7f845e 100644 --- a/src/main/java/frc/robot/subsystems/CommandSwerveDrivetrain.java +++ b/src/main/java/frc/robot/subsystems/CommandSwerveDrivetrain.java @@ -15,6 +15,7 @@ import edu.wpi.first.math.Matrix; import edu.wpi.first.math.VecBuilder; import edu.wpi.first.math.geometry.Pose2d; import edu.wpi.first.math.geometry.Rotation2d; +import edu.wpi.first.math.geometry.Translation2d; import edu.wpi.first.math.kinematics.ChassisSpeeds; import edu.wpi.first.math.numbers.N1; import edu.wpi.first.math.numbers.N3; @@ -130,6 +131,8 @@ public class CommandSwerveDrivetrain extends TunerSwerveDrivetrain implements Su ); } + + @@ -276,6 +279,73 @@ public class CommandSwerveDrivetrain extends TunerSwerveDrivetrain implements Su return true; } + + public String driveToAprilTag(){ + //Rotation2d targetHeading = getPose().getRotation(); + if(!LimelightSupplier.isTargetVisible() ){ + return "No Target"; + } + boolean ifRightTag = false; + int trueId = LimelightSupplier.getAprilTagID(); + for(int id : new int[]{16,32}){ + if(id == trueId){ + ifRightTag = true; + break; + } + } + if(!ifRightTag){ + return "No Target"; + } + double tx = LimelightSupplier.getTX() ; + double targetTz = -LimelightSupplier.getTargetTZ(); + double ry = LimelightSupplier.getTargetRotationY(); + + double multiply = Constants.Limelight.AutoClimbAlignSpeed; + if(Math.abs(tx)