Skip to content

Commit 3c5cd36

Browse files
advanced align to cage
1 parent 5365eba commit 3c5cd36

File tree

2 files changed

+34
-9
lines changed

2 files changed

+34
-9
lines changed

src/main/java/frc/robot/RobotContainer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -407,8 +407,8 @@ private void configureDriverControllerBindings(
407407
xbox.povRight(), ManualAlignCommands.alignToSourceRight(drive, input));
408408
configureAlignmentAuto.accept(
409409
xbox.povLeft(), ManualAlignCommands.alignToSourceLeft(drive, input));
410-
configureAlignmentAuto.accept(xbox.povUp(), ManualAlignCommands.alignToCage(drive, input));
411-
configureAlignmentAuto.accept(xbox.povDown(), ManualAlignCommands.alignToReef(drive, input));
410+
configureAlignmentAuto.accept(xbox.povDown(), ManualAlignCommands.alignToCageAdv(drive, input));
411+
configureAlignmentAuto.accept(xbox.povUp(), ManualAlignCommands.alignToReef(drive, input));
412412

413413
if (includeAutoAlign) {
414414
// Align to reef

src/main/java/frc/robot/commands/ManualAlignCommands.java

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,45 @@
44
import edu.wpi.first.math.geometry.Pose2d;
55
import edu.wpi.first.math.geometry.Rotation2d;
66
import edu.wpi.first.math.geometry.Translation2d;
7+
import edu.wpi.first.math.util.Units;
78
import edu.wpi.first.wpilibj2.command.Command;
9+
import frc.robot.FieldConstants.Barge;
810
import frc.robot.FieldConstants.CoralStation;
911
import frc.robot.FieldConstants.Reef;
1012
import frc.robot.commands.controllers.JoystickInputController;
1113
import frc.robot.commands.controllers.SpeedLevelController.SpeedLevel;
1214
import frc.robot.subsystems.drive.Drive;
1315
import frc.robot.utility.AllianceFlipUtil;
16+
import java.util.List;
1417
import java.util.Optional;
18+
import java.util.stream.Stream;
1519

1620
public class ManualAlignCommands {
21+
1722
public static Command alignToCage(Drive drivetrain, JoystickInputController input) {
1823
return DriveCommands.joystickHeadingDrive(
1924
drivetrain,
2025
input::getTranslationMetersPerSecond,
21-
() -> Optional.of(AllianceFlipUtil.apply(Rotation2d.kZero)),
26+
() -> Optional.of(allianceRotation().plus(Rotation2d.k180deg)),
27+
() -> SpeedLevel.NO_LEVEL,
28+
() -> true);
29+
}
30+
31+
public static Command alignToCageAdv(Drive drivetrain, JoystickInputController input) {
32+
return DriveCommands.joystickHeadingDrive(
33+
drivetrain,
34+
input::getTranslationMetersPerSecond,
35+
() -> {
36+
Translation2d robotPose = drivetrain.getRobotPose().getTranslation();
37+
38+
List<Translation2d> cagePose =
39+
Stream.of(Barge.farCage, Barge.middleCage, Barge.closeCage)
40+
.map(AllianceFlipUtil::apply)
41+
.toList();
42+
43+
return Optional.of(
44+
robotPose.minus(robotPose.nearest(cagePose)).getAngle().plus(allianceRotation()));
45+
},
2246
() -> SpeedLevel.NO_LEVEL,
2347
() -> true);
2448
}
@@ -49,22 +73,23 @@ public static Command alignToReef(Drive drivetrain, JoystickInputController inpu
4973
Translation2d robotPose = drivetrain.getRobotPose().getTranslation();
5074
Translation2d reefPose = AllianceFlipUtil.apply(Reef.center);
5175

52-
double dx = robotPose.getX() - reefPose.getX();
53-
double dy = robotPose.getY() - reefPose.getY();
54-
55-
double angleRad = Math.atan2(dy, dx);
76+
double angleRad = robotPose.minus(reefPose).getAngle().getRadians();
5677

5778
for (Pose2d face : Reef.alignmentFaces) {
5879
double faceRad = face.getRotation().getRadians();
5980

60-
if (MathUtil.isNear(faceRad, angleRad, 0.5)) {
81+
if (MathUtil.isNear(faceRad, angleRad, Units.degreesToRadians(25))) {
6182
angleRad = faceRad;
6283
}
6384
}
6485

65-
return Optional.of(Rotation2d.fromRadians(angleRad));
86+
return Optional.of(AllianceFlipUtil.apply(Rotation2d.fromRadians(angleRad)));
6687
},
6788
() -> SpeedLevel.NO_LEVEL,
6889
() -> true);
6990
}
91+
92+
private static Rotation2d allianceRotation() {
93+
return AllianceFlipUtil.shouldFlip() ? Rotation2d.kZero : Rotation2d.k180deg;
94+
}
7095
}

0 commit comments

Comments
 (0)