--- /dev/null
+package frc.robot.commands.gpm;
+
+import edu.wpi.first.wpilibj.GenericHID;
+import edu.wpi.first.wpilibj.PS5Controller;
+import edu.wpi.first.wpilibj2.command.InstantCommand;
+import edu.wpi.first.wpilibj2.command.ParallelCommandGroup;
+import edu.wpi.first.wpilibj2.command.SequentialCommandGroup;
+import frc.robot.commands.drive_comm.DriveToPose;
+import frc.robot.constants.FieldConstants;
+import frc.robot.subsystems.Climb.LinearClimb;
+import frc.robot.subsystems.drivetrain.Drivetrain;
+
+public class ClimbCommand extends SequentialCommandGroup{
+
+ public ClimbCommand(LinearClimb climb, Drivetrain drive, PS5Controller controller){
+ addCommands(
+ new ParallelCommandGroup(
+ new InstantCommand(() -> climb.goUp()),
+ new DriveToPose(drive, () -> FieldConstants.getClimbLocation())
+ ),
+ new InstantCommand(() -> controller.setRumble(GenericHID.RumbleType.kBothRumble, 1.0))
+ );
+ }
+
+
+}
import edu.wpi.first.apriltag.AprilTagFieldLayout;
import edu.wpi.first.apriltag.AprilTagFields;
+import edu.wpi.first.math.geometry.Pose2d;
+import edu.wpi.first.math.geometry.Rotation2d;
import edu.wpi.first.math.geometry.Translation3d;
import edu.wpi.first.math.util.Units;
import edu.wpi.first.wpilibj.DriverStation.Alliance;
/**Apriltag layout for 2026 REBUILT */
public static final AprilTagFieldLayout field = AprilTagFieldLayout.loadField(AprilTagFields.k2026RebuiltWelded);
+ // TODO: Find this
+ /**The coordinate of the climb position */
+ public static final Pose2d BLUE_CLIMB_LOCATION = new Pose2d(0, 0, new Rotation2d());
+ public static final Pose2d RED_CLIMB_LOCATION = new Pose2d(0, 0, new Rotation2d());
+
+ public static final Pose2d getClimbLocation(){
+ if (Robot.getAlliance() == Alliance.Blue){
+ return BLUE_CLIMB_LOCATION;
+ }
+ else{
+ return RED_CLIMB_LOCATION;
+ }
+ }
+
/** Location of hub target */
public static final Translation3d HUB_BLUE =
new Translation3d(Units.inchesToMeters(156.8), 4.035, Units.inchesToMeters(72));