area code
This commit is contained in:
@@ -503,7 +503,7 @@ public class Auto_LT_Close extends LinearOpMode {
|
|||||||
|
|
||||||
|
|
||||||
if (gateCycle) {
|
if (gateCycle) {
|
||||||
startAutoGate();
|
startAuto();
|
||||||
shoot(0.501, 0.501, 0.501);
|
shoot(0.501, 0.501, 0.501);
|
||||||
cycleStackClose();
|
cycleStackClose();
|
||||||
shoot(0.501,0.501, 0.501);
|
shoot(0.501,0.501, 0.501);
|
||||||
|
|||||||
@@ -79,8 +79,8 @@ public class Auto_LT_Far extends LinearOpMode {
|
|||||||
public static double shootStackTime = 2;
|
public static double shootStackTime = 2;
|
||||||
public static double shootGateTime = 2.5;
|
public static double shootGateTime = 2.5;
|
||||||
public static double colorSenseTime = 1;
|
public static double colorSenseTime = 1;
|
||||||
public static double intakeStackTime = 2.5;
|
public static double intakeStackTime = 5;
|
||||||
public static double intakeGateTime = 2;
|
public static double intakeGateTime = 3.75;
|
||||||
double obeliskTurrPos1 = 0.0;
|
double obeliskTurrPos1 = 0.0;
|
||||||
double obeliskTurrPos2 = 0.0;
|
double obeliskTurrPos2 = 0.0;
|
||||||
double obeliskTurrPos3 = 0.0;
|
double obeliskTurrPos3 = 0.0;
|
||||||
@@ -122,6 +122,8 @@ public class Auto_LT_Far extends LinearOpMode {
|
|||||||
robot.limelight.pipelineSwitch(1);
|
robot.limelight.pipelineSwitch(1);
|
||||||
|
|
||||||
turret = new Turret(robot, TELE, robot.limelight);
|
turret = new Turret(robot, TELE, robot.limelight);
|
||||||
|
limelightUsed = false;
|
||||||
|
|
||||||
|
|
||||||
// Spindexer.teleop = false;
|
// Spindexer.teleop = false;
|
||||||
|
|
||||||
@@ -190,6 +192,7 @@ public class Auto_LT_Far extends LinearOpMode {
|
|||||||
turret.setTurret(turrDefault);
|
turret.setTurret(turrDefault);
|
||||||
|
|
||||||
servos.setSpinPos(spinStartPos);
|
servos.setSpinPos(spinStartPos);
|
||||||
|
limelightUsed = true;
|
||||||
|
|
||||||
servos.setTransferPos(transferServo_out);
|
servos.setTransferPos(transferServo_out);
|
||||||
}
|
}
|
||||||
@@ -231,6 +234,7 @@ public class Auto_LT_Far extends LinearOpMode {
|
|||||||
gamepad2.rumble(500);
|
gamepad2.rumble(500);
|
||||||
sleep(1000);
|
sleep(1000);
|
||||||
turret.setTurret(turrDefault);
|
turret.setTurret(turrDefault);
|
||||||
|
limelightUsed = true;
|
||||||
|
|
||||||
servos.setSpinPos(spinStartPos);
|
servos.setSpinPos(spinStartPos);
|
||||||
|
|
||||||
@@ -259,10 +263,10 @@ public class Auto_LT_Far extends LinearOpMode {
|
|||||||
shootGate = drive.actionBuilder(new Pose2d(pickupGateX, pickupGateY, Math.toRadians(pickupGateH)))
|
shootGate = drive.actionBuilder(new Pose2d(pickupGateX, pickupGateY, Math.toRadians(pickupGateH)))
|
||||||
.strafeToLinearHeading(new Vector2d(xShoot, yShoot), Math.toRadians(hShoot));
|
.strafeToLinearHeading(new Vector2d(xShoot, yShoot), Math.toRadians(hShoot));
|
||||||
|
|
||||||
limelightUsed = true;
|
|
||||||
|
|
||||||
TELE.addData("Red?", redAlliance);
|
TELE.addData("Red?", redAlliance);
|
||||||
TELE.addData("Turret Default", turrDefault);
|
TELE.addData("Turret Default", turrDefault);
|
||||||
|
TELE.addData("Limelight On?",limelightUsed);
|
||||||
TELE.addData("Gate Cycle?", gatePickup);
|
TELE.addData("Gate Cycle?", gatePickup);
|
||||||
TELE.addData("Pickup Stack?", stack3);
|
TELE.addData("Pickup Stack?", stack3);
|
||||||
TELE.addData("Start Position", autoStart);
|
TELE.addData("Start Position", autoStart);
|
||||||
@@ -281,11 +285,17 @@ public class Auto_LT_Far extends LinearOpMode {
|
|||||||
robot.transfer.setPower(1);
|
robot.transfer.setPower(1);
|
||||||
|
|
||||||
startAuto();
|
startAuto();
|
||||||
shoot();
|
if (redAlliance){
|
||||||
|
shoot(autoStartRX, autoStartRY, autoStartRH);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
shoot(autoStartBX, autoStartBY, autoStartBH);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if (stack3){
|
if (stack3){
|
||||||
cycleStackFar();
|
cycleStackFar();
|
||||||
shoot();
|
shoot(xShoot, yShoot, hShoot);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (gatePickup && getRuntime() - stamp < endAutoTime){
|
while (gatePickup && getRuntime() - stamp < endAutoTime){
|
||||||
@@ -294,10 +304,7 @@ public class Auto_LT_Far extends LinearOpMode {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
cycleGatePrepareShoot();
|
cycleGatePrepareShoot();
|
||||||
if (getRuntime() - stamp > endAutoTime + shootAllTime + 1){
|
shoot(xShoot, yShoot, hShoot);
|
||||||
break;
|
|
||||||
}
|
|
||||||
shoot();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gatePickup || stack3){
|
if (gatePickup || stack3){
|
||||||
@@ -324,28 +331,46 @@ public class Auto_LT_Far extends LinearOpMode {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void shoot(){
|
void shoot(double x, double y, double z){
|
||||||
Actions.runBlocking(
|
Actions.runBlocking(
|
||||||
new ParallelAction(
|
new ParallelAction(
|
||||||
autoActions.shootAllAuto(shootAllTime, spindexerSpeedIncrease, 0.501, 0.501, 0.501)
|
autoActions.shootAllAuto(shootAllTime, spindexerSpeedIncrease, x, y, z)
|
||||||
)
|
)
|
||||||
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void startAuto(){
|
void startAuto(){
|
||||||
Actions.runBlocking(
|
|
||||||
new ParallelAction(
|
|
||||||
autoActions.manageShooterAuto(
|
|
||||||
flywheel0Time,
|
|
||||||
0.501,
|
|
||||||
0.501,
|
|
||||||
0.501,
|
|
||||||
true
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
if (redAlliance){
|
||||||
);
|
Actions.runBlocking(
|
||||||
|
new ParallelAction(
|
||||||
|
autoActions.manageShooterAuto(
|
||||||
|
flywheel0Time,
|
||||||
|
autoStartRX,
|
||||||
|
autoStartRY,
|
||||||
|
autoStartRH,
|
||||||
|
true
|
||||||
|
)
|
||||||
|
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
Actions.runBlocking(
|
||||||
|
new ParallelAction(
|
||||||
|
autoActions.manageShooterAuto(
|
||||||
|
flywheel0Time,
|
||||||
|
autoStartBX,
|
||||||
|
autoStartBY,
|
||||||
|
autoStartBH,
|
||||||
|
true
|
||||||
|
)
|
||||||
|
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void leave3Ball(){
|
void leave3Ball(){
|
||||||
@@ -371,9 +396,13 @@ public class Auto_LT_Far extends LinearOpMode {
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
servos.setSpinPos(spinStartPos);
|
servos.setSpinPos(spinStartPos);
|
||||||
|
spindexer.setIntakePower(-0.1);
|
||||||
Actions.runBlocking(
|
Actions.runBlocking(
|
||||||
new ParallelAction(
|
new ParallelAction(
|
||||||
shoot3.build()
|
shoot3.build(),
|
||||||
|
autoActions.manageShooterAuto(
|
||||||
|
shootStackTime,xShoot, yShoot, hShoot, false
|
||||||
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -383,7 +412,7 @@ public class Auto_LT_Far extends LinearOpMode {
|
|||||||
new ParallelAction(
|
new ParallelAction(
|
||||||
pickupGate.build(),
|
pickupGate.build(),
|
||||||
autoActions.intake(
|
autoActions.intake(
|
||||||
intakeStackTime,
|
intakeGateTime,
|
||||||
pickupGateX,
|
pickupGateX,
|
||||||
pickupGateY,
|
pickupGateY,
|
||||||
pickupGateH
|
pickupGateH
|
||||||
@@ -393,16 +422,16 @@ public class Auto_LT_Far extends LinearOpMode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void cycleGatePrepareShoot(){
|
void cycleGatePrepareShoot(){
|
||||||
|
spindexer.setIntakePower(-0.1);
|
||||||
Actions.runBlocking(
|
Actions.runBlocking(
|
||||||
new ParallelAction(
|
new ParallelAction(
|
||||||
shootGate.build(),
|
shootGate.build(),
|
||||||
autoActions.prepareShootAll(
|
autoActions.manageShooterAuto(
|
||||||
colorSenseTime,
|
shootGateTime,
|
||||||
shootGateTime,
|
|
||||||
motif,
|
|
||||||
xShoot,
|
xShoot,
|
||||||
yShoot,
|
yShoot,
|
||||||
hShoot
|
hShoot,
|
||||||
|
false
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -10,11 +10,11 @@ public class Back_Poses {
|
|||||||
public static double rShootX = 100, rShootY = 60, rShootH = 125.2;
|
public static double rShootX = 100, rShootY = 60, rShootH = 125.2;
|
||||||
public static double bShootX = 100, bShootY = -60, bShootH = -125.2;
|
public static double bShootX = 100, bShootY = -60, bShootH = -125.2;
|
||||||
|
|
||||||
public static double rStackPickupFarAX = 73, rStackPickupFarAY = 51, rStackPickupFarAH = 145;
|
public static double rStackPickupFarAX = 75, rStackPickupFarAY = 45, rStackPickupFarAH = 150;
|
||||||
public static double bStackPickupFarAX = 73, bStackPickupFarAY = -51, bStackPickupFarAH = -145;
|
public static double bStackPickupFarAX = 75, bStackPickupFarAY = -45, bStackPickupFarAH = -150;
|
||||||
|
|
||||||
public static double rStackPickupFarBX = 53, rStackPickupFarBY = 71, rStackPickupFarBH = 145.1;
|
public static double rStackPickupFarBX = 45, rStackPickupFarBY = 80, rStackPickupFarBH = 145.1;
|
||||||
public static double bStackPickupFarBX = 55, bStackPickupFarBY = -71, bStackPickupFarBH = -145.1;
|
public static double bStackPickupFarBX = 45, bStackPickupFarBY = -80, bStackPickupFarBH = -145.1;
|
||||||
|
|
||||||
public static double rStackPickupMiddleAX = 55, rStackPickupMiddleAY = 39, rStackPickupMiddleAH = 145;
|
public static double rStackPickupMiddleAX = 55, rStackPickupMiddleAY = 39, rStackPickupMiddleAH = 145;
|
||||||
public static double bStackPickupMiddleAX = 55, bStackPickupMiddleAY = -39, bStackPickupMiddleAH = -145;
|
public static double bStackPickupMiddleAX = 55, bStackPickupMiddleAY = -39, bStackPickupMiddleAH = -145;
|
||||||
@@ -22,8 +22,8 @@ public class Back_Poses {
|
|||||||
public static double rStackPickupMiddleBX = 45, rStackPickupMiddleBY = 49, rStackPickupMiddleBH = 145.1;
|
public static double rStackPickupMiddleBX = 45, rStackPickupMiddleBY = 49, rStackPickupMiddleBH = 145.1;
|
||||||
public static double bStackPickupMiddleBX = 45, bStackPickupMiddleBY = -49, bStackPickupMiddleBH = -145.1;
|
public static double bStackPickupMiddleBX = 45, bStackPickupMiddleBY = -49, bStackPickupMiddleBH = -145.1;
|
||||||
|
|
||||||
public static double rPickupGateXA = 60, rPickupGateYA = 83, rPickupGateHA = 145;
|
public static double rPickupGateXA = 60, rPickupGateYA = 90, rPickupGateHA = 140;
|
||||||
public static double bPickupGateXA = 60, bPickupGateYA = -83, bPickupGateHA = -145;
|
public static double bPickupGateXA = 60, bPickupGateYA = -90, bPickupGateHA = -140;
|
||||||
public static double rPickupGateXB = 84, rPickupGateYB = 76, rPickupGateHB = 145;
|
public static double rPickupGateXB = 84, rPickupGateYB = 76, rPickupGateHB = 145;
|
||||||
public static double bPickupGateXB = 84, bPickupGateYB = -76, bPickupGateHB = -145;
|
public static double bPickupGateXB = 84, bPickupGateYB = -76, bPickupGateHB = -145;
|
||||||
public static double rPickupGateXC = 50, rPickupGateYC = 83, rPickupGateHC = 190;
|
public static double rPickupGateXC = 50, rPickupGateYC = 83, rPickupGateHC = 190;
|
||||||
|
|||||||
@@ -142,6 +142,62 @@ public class TeleopV3 extends LinearOpMode {
|
|||||||
while (opModeIsActive()) {
|
while (opModeIsActive()) {
|
||||||
|
|
||||||
//TELE.addData("Is limelight on?", robot.limelight.getStatus());
|
//TELE.addData("Is limelight on?", robot.limelight.getStatus());
|
||||||
|
drive.updatePoseEstimate();
|
||||||
|
Pose2d currentPose = drive.localizer.getPose();
|
||||||
|
|
||||||
|
if (enableSpindexerManager) {
|
||||||
|
//if (!shootAll) {
|
||||||
|
spindexer.processIntake();
|
||||||
|
//}
|
||||||
|
|
||||||
|
// RIGHT_BUMPER
|
||||||
|
if (gamepad1.right_bumper && intakeTicker > resetSpinTicks) {
|
||||||
|
spindexer.setIntakePower(1);
|
||||||
|
} else if (gamepad1.cross) {
|
||||||
|
spindexer.setIntakePower(-1);
|
||||||
|
} else {
|
||||||
|
spindexer.setIntakePower(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// LEFT_BUMPER
|
||||||
|
if (!shootAll && gamepad1.leftBumperWasReleased()) {
|
||||||
|
shootStamp = getRuntime();
|
||||||
|
shootAll = true;
|
||||||
|
|
||||||
|
shooterTicker = 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
intakeTicker++;
|
||||||
|
if (shootAll) {
|
||||||
|
intakeTicker = 0;
|
||||||
|
intake = false;
|
||||||
|
reject = false;
|
||||||
|
|
||||||
|
if (shooterTicker == 0) {
|
||||||
|
spindexer.prepareShootAllContinous();
|
||||||
|
//TELE.addLine("preparing to shoot");
|
||||||
|
// } else if (shooterTicker == 2) {
|
||||||
|
// //servo.setTransferPos(transferServo_in);
|
||||||
|
// spindexer.shootAll();
|
||||||
|
// TELE.addLine("starting to shoot");
|
||||||
|
} else if (spindexer.shootAllComplete()) {
|
||||||
|
//spindexPos = spindexer_intakePos1;
|
||||||
|
shootAll = false;
|
||||||
|
spindexer.resetSpindexer();
|
||||||
|
//spindexer.processIntake();
|
||||||
|
//TELE.addLine("stop shooting");
|
||||||
|
}
|
||||||
|
shooterTicker++;
|
||||||
|
//spindexer.processIntake();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gamepad1.left_stick_button) {
|
||||||
|
servo.setTransferPos(transferServo_out);
|
||||||
|
//spindexPos = spindexer_intakePos1;
|
||||||
|
shootAll = false;
|
||||||
|
spindexer.resetSpindexer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//DRIVETRAIN:
|
//DRIVETRAIN:
|
||||||
|
|
||||||
@@ -169,9 +225,9 @@ public class TeleopV3 extends LinearOpMode {
|
|||||||
|
|
||||||
//TURRET TRACKING
|
//TURRET TRACKING
|
||||||
|
|
||||||
double robX = drive.localizer.getPose().position.x;
|
double robX = currentPose.position.x;
|
||||||
double robY = drive.localizer.getPose().position.y;
|
double robY = currentPose.position.y;
|
||||||
double robH = drive.localizer.getPose().heading.toDouble();
|
double robH = currentPose.heading.toDouble();
|
||||||
|
|
||||||
double robotX = robX + xOffset;
|
double robotX = robX + xOffset;
|
||||||
double robotY = robY + yOffset;
|
double robotY = robY + yOffset;
|
||||||
@@ -278,63 +334,7 @@ public class TeleopV3 extends LinearOpMode {
|
|||||||
shootAllSpindexerSpeedIncrease = shootAllSpindexerSpeedIncrease+0.01;
|
shootAllSpindexerSpeedIncrease = shootAllSpindexerSpeedIncrease+0.01;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (enableSpindexerManager) {
|
|
||||||
//if (!shootAll) {
|
|
||||||
spindexer.processIntake();
|
|
||||||
//}
|
|
||||||
|
|
||||||
// RIGHT_BUMPER
|
|
||||||
if (gamepad1.right_bumper && intakeTicker > resetSpinTicks) {
|
|
||||||
spindexer.setIntakePower(1);
|
|
||||||
} else if (gamepad1.cross) {
|
|
||||||
spindexer.setIntakePower(-1);
|
|
||||||
} else {
|
|
||||||
spindexer.setIntakePower(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// LEFT_BUMPER
|
|
||||||
if (!shootAll && gamepad1.leftBumperWasReleased()) {
|
|
||||||
shootStamp = getRuntime();
|
|
||||||
shootAll = true;
|
|
||||||
|
|
||||||
shooterTicker = 0;
|
|
||||||
|
|
||||||
}
|
|
||||||
intakeTicker++;
|
|
||||||
if (shootAll) {
|
|
||||||
intakeTicker = 0;
|
|
||||||
intake = false;
|
|
||||||
reject = false;
|
|
||||||
|
|
||||||
if (shooterTicker == 0) {
|
|
||||||
spindexer.prepareShootAllContinous();
|
|
||||||
//TELE.addLine("preparing to shoot");
|
|
||||||
// } else if (shooterTicker == 2) {
|
|
||||||
// //servo.setTransferPos(transferServo_in);
|
|
||||||
// spindexer.shootAll();
|
|
||||||
// TELE.addLine("starting to shoot");
|
|
||||||
} else if (spindexer.shootAllComplete()) {
|
|
||||||
//spindexPos = spindexer_intakePos1;
|
|
||||||
shootAll = false;
|
|
||||||
spindexer.resetSpindexer();
|
|
||||||
//spindexer.processIntake();
|
|
||||||
//TELE.addLine("stop shooting");
|
|
||||||
}
|
|
||||||
shooterTicker++;
|
|
||||||
//spindexer.processIntake();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (gamepad1.left_stick_button) {
|
|
||||||
servo.setTransferPos(transferServo_out);
|
|
||||||
//spindexPos = spindexer_intakePos1;
|
|
||||||
shootAll = false;
|
|
||||||
spindexer.resetSpindexer();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//EXTRA STUFFINESS:
|
//EXTRA STUFFINESS:
|
||||||
drive.updatePoseEstimate();
|
|
||||||
|
|
||||||
for (LynxModule hub : allHubs) {
|
for (LynxModule hub : allHubs) {
|
||||||
hub.clearBulkCache();
|
hub.clearBulkCache();
|
||||||
|
|||||||
@@ -71,6 +71,8 @@ public class Drivetrain {
|
|||||||
robot.frontRight.setPower(frontRightPower);
|
robot.frontRight.setPower(frontRightPower);
|
||||||
robot.backRight.setPower(backRightPower);
|
robot.backRight.setPower(backRightPower);
|
||||||
}
|
}
|
||||||
|
Pose2d currentPos = drive.localizer.getPose();
|
||||||
|
brakePos = currentPos;
|
||||||
|
|
||||||
if (brake > 0.4 && robot.frontLeft.getZeroPowerBehavior() != DcMotor.ZeroPowerBehavior.BRAKE && !autoDrive) {
|
if (brake > 0.4 && robot.frontLeft.getZeroPowerBehavior() != DcMotor.ZeroPowerBehavior.BRAKE && !autoDrive) {
|
||||||
robot.frontLeft.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
|
robot.frontLeft.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
|
||||||
@@ -78,15 +80,9 @@ public class Drivetrain {
|
|||||||
robot.backLeft.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
|
robot.backLeft.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
|
||||||
robot.backRight.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
|
robot.backRight.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
|
||||||
|
|
||||||
drive.updatePoseEstimate();
|
|
||||||
|
|
||||||
brakePos = drive.localizer.getPose();
|
|
||||||
autoDrive = true;
|
autoDrive = true;
|
||||||
|
|
||||||
} else if (brake > 0.4) {
|
} else if (brake > 0.4) {
|
||||||
drive.updatePoseEstimate();
|
|
||||||
|
|
||||||
Pose2d currentPos = drive.localizer.getPose();
|
|
||||||
|
|
||||||
TrajectoryActionBuilder traj2 = drive.actionBuilder(currentPos)
|
TrajectoryActionBuilder traj2 = drive.actionBuilder(currentPos)
|
||||||
.strafeToLinearHeading(new Vector2d(brakePos.position.x, brakePos.position.y), brakePos.heading.toDouble(), VEL_CONSTRAINT, ACCEL_CONSTRAINT);
|
.strafeToLinearHeading(new Vector2d(brakePos.position.x, brakePos.position.y), brakePos.heading.toDouble(), VEL_CONSTRAINT, ACCEL_CONSTRAINT);
|
||||||
|
|||||||
@@ -242,6 +242,7 @@ public class Turret {
|
|||||||
return bearingOffset;
|
return bearingOffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double targetTurretPos;
|
||||||
public void trackGoal(Pose2d deltaPos) {
|
public void trackGoal(Pose2d deltaPos) {
|
||||||
|
|
||||||
/* ---------------- FIELD → TURRET GEOMETRY ---------------- */
|
/* ---------------- FIELD → TURRET GEOMETRY ---------------- */
|
||||||
@@ -273,7 +274,7 @@ public class Turret {
|
|||||||
|
|
||||||
limelightRead();
|
limelightRead();
|
||||||
// Active correction if we see the target
|
// Active correction if we see the target
|
||||||
if (result.isValid() && !lockOffset && limelightUsed) {
|
if (result.isValid() && !lockOffset && limelightUsed && targetTurretPos > turrMin && targetTurretPos < turrMax) {
|
||||||
currentTrackOffset += bearingAlign(result);
|
currentTrackOffset += bearingAlign(result);
|
||||||
currentTrackCount++;
|
currentTrackCount++;
|
||||||
|
|
||||||
@@ -329,7 +330,7 @@ public class Turret {
|
|||||||
|
|
||||||
/* ---------------- ANGLE → SERVO POSITION ---------------- */
|
/* ---------------- ANGLE → SERVO POSITION ---------------- */
|
||||||
|
|
||||||
double targetTurretPos = turrDefault + (turretAngleDeg * (turret180Range * 2.0) / 360);
|
targetTurretPos = turrDefault + (turretAngleDeg * (turret180Range * 2.0) / 360);
|
||||||
|
|
||||||
// Clamp to physical servo limits
|
// Clamp to physical servo limits
|
||||||
targetTurretPos = Math.max(turrMin, Math.min(targetTurretPos, turrMax));
|
targetTurretPos = Math.max(turrMin, Math.min(targetTurretPos, turrMax));
|
||||||
|
|||||||
Reference in New Issue
Block a user