From 06340c572464f1111356a8a46f7e5135c040bc8f Mon Sep 17 00:00:00 2001 From: Alyssum-chenyiyi <13162501939@163.com> Date: Sun, 1 Mar 2026 16:11:31 +0800 Subject: [PATCH] climber MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 现在,当想让climber放下时,它会一直运动直到松开按键 此外,当xy同时被按下时,编码器将会被清零 --- src/main/java/frc/robot/Constants.java | 1 + src/main/java/frc/robot/controls/ClimberControls.java | 8 ++++++-- src/main/java/frc/robot/subsystems/ClimberSubsystem.java | 7 +++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/frc/robot/Constants.java b/src/main/java/frc/robot/Constants.java index fc94776..f5efb93 100644 --- a/src/main/java/frc/robot/Constants.java +++ b/src/main/java/frc/robot/Constants.java @@ -122,6 +122,7 @@ public final class Constants { public static final double climbUpTicks = 94; // TODO: 实测后调整 public static final double climbDownTicks = 0; // TODO: 实测后调整 public static final double holdToleranceRot = 0.5; + public static final double deltaDownTicks = 1; public static final Slot0Configs slot0Configs = new Slot0Configs(); diff --git a/src/main/java/frc/robot/controls/ClimberControls.java b/src/main/java/frc/robot/controls/ClimberControls.java index ba01cac..8040e04 100644 --- a/src/main/java/frc/robot/controls/ClimberControls.java +++ b/src/main/java/frc/robot/controls/ClimberControls.java @@ -24,15 +24,19 @@ public class ClimberControls { return Commands.run(()->{ //climber.climbUp(); // 优先级:如果同时按,优先上升(你也可以反过来) - if (controller.y().getAsBoolean()) { + if(controller.y().getAsBoolean()&&controller.x().getAsBoolean()){ + climber.zeroEncoder(); + } + else if (controller.y().getAsBoolean()) { climber.climbUp(); } else if (controller.x().getAsBoolean()) { - climber.climbDown(); + climber.climbDownNonStop(); } else { // 松开:记录当前位置 + 锁死 climber.captureHoldPosition(); climber.holdPosition(); } + // 调试用 table.getEntry("xHeld_up").setBoolean(controller.x().getAsBoolean()); diff --git a/src/main/java/frc/robot/subsystems/ClimberSubsystem.java b/src/main/java/frc/robot/subsystems/ClimberSubsystem.java index 20eccac..051a3b1 100644 --- a/src/main/java/frc/robot/subsystems/ClimberSubsystem.java +++ b/src/main/java/frc/robot/subsystems/ClimberSubsystem.java @@ -25,6 +25,7 @@ public class ClimberSubsystem extends SubsystemBase { private final VelocityVoltage velocityRequest = new VelocityVoltage(0).withSlot(0); private double holdPositionTicks = 0.0; + private double deltaPositionTicks = 0.0; private final NetworkTable climberTable; @@ -71,6 +72,12 @@ public class ClimberSubsystem extends SubsystemBase { public void climbDown() { targetPositionTicks = Constants.Climber.climbDownTicks; climberMotor.setControl(positionHoldRequest.withPosition(targetPositionTicks)); + + } + public void climbDownNonStop(){ + + deltaPositionTicks = Constants.Climber.deltaDownTicks; + climberMotor.setControl(positionHoldRequest.withPosition(targetPositionTicks-deltaPositionTicks)); } public void captureHoldPosition() {