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)