1919
2020package org .curtinfrc .frc2026 .util .Repulsor ;
2121
22+ import org .curtinfrc .frc2026 .util .Repulsor .Fields .Rebuilt2026 ;
23+ import org .curtinfrc .frc2026 .util .Repulsor .Fields .FieldMapBuilder .CategorySpec ;
24+ import org .curtinfrc .frc2026 .util .Repulsor .Setpoints .HeightSetpoint ;
25+ import org .curtinfrc .frc2026 .util .Repulsor .Setpoints .RepulsorSetpoint ;
26+ import org .curtinfrc .frc2026 .util .Repulsor .Setpoints .SetpointType ;
27+ import org .curtinfrc .frc2026 .util .Repulsor .Setpoints .StaticPoseSetpoint ;
28+
2229import edu .wpi .first .math .controller .PIDController ;
2330import edu .wpi .first .math .geometry .Pose2d ;
2431import edu .wpi .first .math .kinematics .ChassisSpeeds ;
32+ import edu .wpi .first .wpilibj2 .command .Command ;
2533import edu .wpi .first .wpilibj2 .command .SubsystemBase ;
2634
2735public abstract class DriveRepulsor extends SubsystemBase {
@@ -30,4 +38,15 @@ public abstract class DriveRepulsor extends SubsystemBase {
3038 public abstract Pose2d getPose ();
3139
3240 public abstract PIDController getOmegaPID ();
41+
42+ public Command alignTo (Pose2d targetPose ) {
43+ Repulsor re = StaticInstance .getInstance ();
44+
45+ RepulsorSetpoint setpoint = new RepulsorSetpoint (new StaticPoseSetpoint ("ALIGN_TARGET_" + targetPose .hashCode (), SetpointType .kOther , targetPose ), HeightSetpoint .L1 );
46+
47+ assert re != null : "Repulsor instance is not initialized" ;
48+ assert re .isSameDrive (this ) : "Repulsor instance does not match this DriveRepulsor" ;
49+
50+ return re .alignTo (setpoint , CategorySpec .kEndgame );
51+ }
3352}
0 commit comments