3#include "lemlib/chassis/chassis.hpp"
5#include "pros/motors.h"
6#include "pros/rtos.hpp"
28 drive_.set_brake_mode_all(pros::E_MOTOR_BRAKE_BRAKE);
34 chassis.moveToPose(-11, 44, 180, 2000, {.forwards=
false, .horizontalDrift=5.5});
40 chassis.swingToPoint(-28, 54.5, lemlib::DriveSide::RIGHT, 1500, { .direction=AngularDirection::CW_CLOCKWISE });
44 chassis.moveToPoint(-28, 54.5, 5000);
45 chassis.turnToPoint(-42, 55, 5000);
47 chassis.moveToPoint(-42, 55, 2500, {.minSpeed = 75},
false);
50 chassis.turnToPoint(-19, 40, 1000, {.forwards=
false});
51 chassis.moveToPoint(-19, 40, 1000, {.forwards=
false});
52 chassis.turnToPoint(-40, 39, 1000);
53 chassis.moveToPoint(-40, 39, 1000);
60 chassis.turnToPoint(9, 16.5, 1000, {.direction=AngularDirection::CW_CLOCKWISE});
61 chassis.moveToPoint(9, 16.5, 7500, {.minSpeed=25, .earlyExitRange=15});
76 drive_.set_brake_mode_all(pros::E_MOTOR_BRAKE_BRAKE);
82 chassis.moveToPose(-11, 44, 180, 2000, {.forwards=
false, .horizontalDrift=5.5});
88 chassis.swingToPoint(-28, 53.5, lemlib::DriveSide::RIGHT, 1500, {.direction=AngularDirection::CW_CLOCKWISE});
92 chassis.moveToPoint(-28, 53.5, 5000);
93 chassis.turnToPoint(-43, 54, 5000);
95 chassis.moveToPoint(-43, 54, 2500, {.minSpeed = 65},
false);
98 chassis.turnToPoint(-19, 40, 1000, {.forwards=
false});
99 chassis.moveToPoint(-19, 40, 1000, {.forwards=
false});
100 chassis.turnToPoint(-38, 39, 1000);
101 chassis.moveToPoint(-38, 39, 1000);
103 chassis.turnToPoint(9, 16.5, 1000, {.direction=AngularDirection::CW_CLOCKWISE});
104 chassis.moveToPoint(9, 16.5, 7500, {.minSpeed=25, .earlyExitRange=15});
108 chassis.moveToPoint(9, 16.5, 7500, {.maxSpeed=25});
117 drive_.set_brake_mode_all(pros::E_MOTOR_BRAKE_BRAKE);
119 chassis.moveToPoint(-14, 35, 2500, {.minSpeed=45, .earlyExitRange=2});
126 chassis.moveToPoint(
chassis.getPose().x-3.55,
chassis.getPose().y-14, 2000, {.forwards=false, .minSpeed=25});
131 chassis.turnToHeading(-170, 1000, {.direction=AngularDirection::CCW_COUNTERCLOCKWISE});
132 std::cout <<
chassis.getPose().x <<
" + " <<
chassis.getPose().y << std::endl;
133 std::cout <<
chassis.getPose().x <<
" + " <<
chassis.getPose().y+8 << std::endl;
139 std::cout <<
chassis.getPose().x <<
" + " <<
chassis.getPose().y << std::endl;
142 chassis.moveToPoint(-29, -12, 2500, {.forwards=
true},
true);
146 chassis.turnToPoint(-2, -14, 1000);
150 chassis.moveToPoint(-2, -14, 2500);
154 chassis.moveToPose(-35, 28, -180, 2500, {.forwards=
false, .lead=0.6},
false);
162 chassis.moveToPose(-48, 38, -135, 2000, {.forwards=
false, .horizontalDrift=5.5});
170 chassis.moveToPoint(-3.5, -3, 1000, {.minSpeed=20, .earlyExitRange=10});
178 drive_.set_brake_mode_all(pros::E_MOTOR_BRAKE_BRAKE);
182 chassis.moveToPose(0, -28, 0, 2000, {.forwards =
false});
189 chassis.turnToPoint(-25, -27, 1000);
198 chassis.moveToPoint(-25, -27, 1250, {.forwards =
true});
199 chassis.turnToPoint(-33.5, 6, 1000);
201 chassis.moveToPoint(-35, 7, 1500);
206 chassis.moveToPose(-25, -4, 170, 2000, {.horizontalDrift = 2});
207 chassis.moveToPoint(-32, 10, 1000, {.forwards =
false});
211 chassis.turnToPoint(14, -36, 800);
215 chassis.moveToPoint(14, -36, 5000);
222 drive_.set_brake_mode_all(pros::E_MOTOR_BRAKE_BRAKE);
224 chassis.moveToPoint(7, 35, 2500, {.minSpeed=45, .earlyExitRange=2});
227 chassis.turnToHeading(-17.5, 300);
230 chassis.moveToPoint(
chassis.getPose().x+3.55,
chassis.getPose().y-14, 2000, {.forwards=false, .minSpeed=25});
235 chassis.turnToHeading(-170, 1000, {.direction=AngularDirection::CCW_COUNTERCLOCKWISE});
236 std::cout <<
chassis.getPose().x <<
" + " <<
chassis.getPose().y << std::endl;
237 std::cout <<
chassis.getPose().x <<
" + " <<
chassis.getPose().y+8 << std::endl;
243 std::cout <<
chassis.getPose().x <<
" + " <<
chassis.getPose().y << std::endl;
246 chassis.moveToPoint(29, -12, 2500, {.forwards=
true},
true);
250 chassis.turnToPoint(4, -14, 1000);
254 chassis.moveToPoint(4, -14, 2500);
258 chassis.moveToPose(35, 24, -180, 2500, {.forwards=
false, .lead=0.6},
false);
266 chassis.moveToPose(48, 38, -135, 2000, {.forwards=
false, .horizontalDrift=5.5});
274 chassis.moveToPoint(3.5, -3, 1000, {.minSpeed=20, .earlyExitRange=10});
289 drive_.set_brake_mode_all(pros::E_MOTOR_BRAKE_BRAKE);
293 chassis.moveToPose(0, -28, 0, 2000, {.forwards =
false});
300 chassis.turnToPoint(25, -27, 1000);
309 chassis.moveToPoint(25, -27, 1250, {.forwards =
true});
310 chassis.turnToPoint(33.5, 6, 1000);
312 chassis.moveToPoint(35, 7, 1500);
317 chassis.moveToPose(25, -4, 170, 2000, {.horizontalDrift = 2});
318 chassis.moveToPoint(32, 10, 1000, {.forwards =
false});
322 chassis.turnToPoint(-14, -36, 800);
326 chassis.moveToPoint(-14, -36, 5000);
368 drive_.set_brake_mode_all(pros::E_MOTOR_BRAKE_BRAKE);
375 chassis.moveToPose(0, 28, -180, 2000, {.forwards=
false, .horizontalDrift=5.5});
387 chassis.turnToPoint(-25, 27, 1000);
395 chassis.moveToPoint(-27, 27, 1250, {.forwards =
true});
396 chassis.turnToPoint(-19, 0, 1000, {.forwards =
false});
400 chassis.moveToPoint(0, 18, 1250, {.forwards =
false});
406 chassis.moveToPoint(-25, 26, 1500, {.forwards =
true},
true);
407 chassis.turnToPoint(-25, 36, 1000, {.forwards =
false});
408 chassis.moveToPoint(-25, 34,1000, {.forwards =
false});
413 drive_.set_brake_mode_all(pros::E_MOTOR_BRAKE_BRAKE);
447 drive_.set_brake_mode_all(pros::E_MOTOR_BRAKE_BRAKE);
450 chassis.setPose(-12, -9, -112);
454 chassis.moveToPose(0, 30, -180, 2000, {.forwards=
false, .horizontalDrift=5.5});
466 chassis.turnToPoint(25, 27, 1000);
474 chassis.moveToPoint(27, 27, 1250, {.forwards =
true});
475 chassis.turnToPoint(19, 0, 1000, {.forwards =
false});
479 chassis.moveToPoint(10, -7, 1250, {.forwards =
false});
485 chassis.moveToPoint(25, 26, 1500, {.forwards =
true},
true);
486 chassis.turnToPoint(25, 36, 1000, {.forwards =
false});
487 chassis.moveToPoint(25, 34,1000, {.forwards =
false});
500 drive_.set_brake_mode_all(pros::E_MOTOR_BRAKE_BRAKE);
506 chassis.moveToPose(11, 44, 180, 2000, {.forwards=
false, .horizontalDrift=5.5});
512 chassis.swingToPoint(28, 54.5, lemlib::DriveSide::LEFT, 1500, {.direction=AngularDirection::CCW_COUNTERCLOCKWISE});
516 chassis.moveToPoint(28, 54.5, 5000);
517 chassis.turnToPoint(43, 55, 5000);
519 chassis.moveToPoint(43, 55, 2500, {.minSpeed = 65},
false);
522 chassis.turnToPoint(19, 40, 1000, {.forwards=
false});
523 chassis.moveToPoint(19, 40, 1000, {.forwards=
false});
524 chassis.turnToPoint(38, 39, 1000);
525 chassis.moveToPoint(38, 39, 1000);
527 chassis.turnToPoint(-8, 16.5, 1000, {.direction=AngularDirection::CCW_COUNTERCLOCKWISE});
528 chassis.moveToPoint(-8, 16.5, 7500, {.minSpeed=25, .earlyExitRange=10});
532 chassis.moveToPoint(-8, 16.5, 7500, {.maxSpeed=20},
false);
545 drive_.set_brake_mode_all(pros::E_MOTOR_BRAKE_BRAKE);
551 chassis.moveToPose(11, 44, 180, 2000, {.forwards=
false, .horizontalDrift=5.5});
557 chassis.swingToPoint(26, 55, lemlib::DriveSide::LEFT, 1500, {.direction=AngularDirection::CCW_COUNTERCLOCKWISE});
561 chassis.moveToPoint(26, 55, 5000);
562 chassis.turnToPoint(42, 55.5, 5000);
564 chassis.moveToPoint(42, 55.5, 2500, {.minSpeed = 65},
false);
567 chassis.turnToPoint(32, 40, 1000, {.forwards=
false});
568 chassis.moveToPoint(32, 40, 1000, {.forwards=
false});
569 chassis.turnToPoint(38, 39, 1000);
570 chassis.moveToPoint(38, 39, 1000);
572 chassis.turnToPoint(-5, 39, 1000, {.direction=AngularDirection::CCW_COUNTERCLOCKWISE});
573 chassis.moveToPoint(-5, 39, 7500, {.minSpeed=25, .earlyExitRange=15});
void RedPosBAK(Intake &intake, Latch &latch, Sweeper &sweeper, DistanceSensor &distance, LadyBrown &ladybrown)
void BlueNegBAK(Intake &intake, Latch &latch, DistanceSensor &distance, LadyBrown &ladybrown)
void RedNegBAK(Intake &intake, Latch &latch, DistanceSensor &distance, LadyBrown &ladybrown)
constexpr int delay_constant
void BluePosBAK(Intake &intake, Latch &latch, Sweeper &sweeper, DistanceSensor &distance, LadyBrown &ladybrown)
void BluePos(Intake &intake, Latch &latch, Sweeper &sweeper, DistanceSensor &distance, LadyBrown &ladybrown)
Runs the puncher routine for the Skills Challenge.
void RedPosLateGoalRush(Intake &intake, Latch &latch, Sweeper &sweeper, DistanceSensor &distance, LadyBrown &ladybrown)
void RedPos(Intake &intake, Latch &latch, Sweeper &sweeper, DistanceSensor &distance, LadyBrown &ladybrown)
Runs the autonomous path for the near side offensive game strategy.
static std::string autonName
The name of the autonomous program.
void BlueNeg(Intake &intake, Latch &latch, DistanceSensor &distance, LadyBrown &ladybrown)
Runs the autonomous path for the far side offensive game strategy. This function executes the autonom...
void Skills(Intake &intake, Latch &latch, DistanceSensor &distance, LadyBrown &ladybrown)
void AutoDrive(Intake &intake, Latch &latch, Sweeper &sweeper, DistanceSensor &distance, LadyBrown &ladybrown)
Drives the robot autonomously.
void BluePosLateGoalRush(Intake &intake, Latch &latch, Sweeper &sweeper, DistanceSensor &distance, LadyBrown &ladybrown)
static AUTON_ROUTINE auton
Sets the number of the autonomous program to use.
void RedNeg(Intake &intake, Latch &latch, DistanceSensor &distance, LadyBrown &ladybrown)
Runs the autonomous path for the far side defensive game strategy.
static void AutonSwitcher(int autonNum)
Switches the autonomous program.
The Intake class represents a robot intake system.
The LadyBrown class represents the robot lady brown subsystem.
The Latch class represents a latching mechanism.
void toggle()
Toggles latch state.
The Latch class represents a latching mechanism.
Robot::LadyBrown ladybrown
pros::MotorGroup drive_({LeftFront.get_port(), RightFront.get_port(), LeftMid.get_port(), RightMid.get_port(), LeftBack.get_port(), RightBack.get_port()})
pros::adi::Pneumatics LatchControl('A', false)
pros::Optical colorSensor(5)
pros::Motor IntakeMotor(-4, pros::v5::MotorGears::blue, pros::v5::MotorUnits::degrees)
pros::adi::Pneumatics SweeperControl('B', false)
lemlib::Chassis chassis(drivetrain, lateral_controller, angular_controller, sensors, &throttle_curve, &steer_curve)
pros::Motor HookMotor(3, pros::v5::MotorGears::green, pros::v5::MotorUnits::degrees)
pros::adi::Pneumatics IntakeLift('D', false)