现在,当想让climber放下时,它会一直运动直到松开按键
此外,当xy同时被按下时,编码器将会被清零
This commit is contained in:
Alyssum-chenyiyi
2026-03-01 16:11:31 +08:00
parent d79e1e61a3
commit 06340c5724
3 changed files with 14 additions and 2 deletions
+1
View File
@@ -122,6 +122,7 @@ public final class Constants {
public static final double climbUpTicks = 94; // TODO: 实测后调整 public static final double climbUpTicks = 94; // TODO: 实测后调整
public static final double climbDownTicks = 0; // TODO: 实测后调整 public static final double climbDownTicks = 0; // TODO: 实测后调整
public static final double holdToleranceRot = 0.5; public static final double holdToleranceRot = 0.5;
public static final double deltaDownTicks = 1;
public static final Slot0Configs slot0Configs = new Slot0Configs(); public static final Slot0Configs slot0Configs = new Slot0Configs();
@@ -24,15 +24,19 @@ public class ClimberControls {
return Commands.run(()->{ return Commands.run(()->{
//climber.climbUp(); //climber.climbUp();
// 优先级:如果同时按,优先上升(你也可以反过来) // 优先级:如果同时按,优先上升(你也可以反过来)
if (controller.y().getAsBoolean()) { if(controller.y().getAsBoolean()&&controller.x().getAsBoolean()){
climber.zeroEncoder();
}
else if (controller.y().getAsBoolean()) {
climber.climbUp(); climber.climbUp();
} else if (controller.x().getAsBoolean()) { } else if (controller.x().getAsBoolean()) {
climber.climbDown(); climber.climbDownNonStop();
} else { } else {
// 松开:记录当前位置 + 锁死 // 松开:记录当前位置 + 锁死
climber.captureHoldPosition(); climber.captureHoldPosition();
climber.holdPosition(); climber.holdPosition();
} }
// 调试用 // 调试用
table.getEntry("xHeld_up").setBoolean(controller.x().getAsBoolean()); table.getEntry("xHeld_up").setBoolean(controller.x().getAsBoolean());
@@ -25,6 +25,7 @@ public class ClimberSubsystem extends SubsystemBase {
private final VelocityVoltage velocityRequest = new VelocityVoltage(0).withSlot(0); private final VelocityVoltage velocityRequest = new VelocityVoltage(0).withSlot(0);
private double holdPositionTicks = 0.0; private double holdPositionTicks = 0.0;
private double deltaPositionTicks = 0.0;
private final NetworkTable climberTable; private final NetworkTable climberTable;
@@ -71,6 +72,12 @@ public class ClimberSubsystem extends SubsystemBase {
public void climbDown() { public void climbDown() {
targetPositionTicks = Constants.Climber.climbDownTicks; targetPositionTicks = Constants.Climber.climbDownTicks;
climberMotor.setControl(positionHoldRequest.withPosition(targetPositionTicks)); climberMotor.setControl(positionHoldRequest.withPosition(targetPositionTicks));
}
public void climbDownNonStop(){
deltaPositionTicks = Constants.Climber.deltaDownTicks;
climberMotor.setControl(positionHoldRequest.withPosition(targetPositionTicks-deltaPositionTicks));
} }
public void captureHoldPosition() { public void captureHoldPosition() {