4#include "lemlib/api.hpp"
5#include "lemlib/util.hpp"
7#include "pros/motors.h"
8#include "pros/rtos.hpp"
15 topMotor.set_brake_mode(pros::E_MOTOR_BRAKE_HOLD);
35 std::cout <<
"Color Rejected" << std::endl;
40 std::cout <<
"Color Accepted" << std::endl;
91 if(!trapDoor_commanded)
93 topMotor.set_brake_mode(pros::E_MOTOR_BRAKE_COAST);
108 std::cout <<
"Matchload state unchanged\n" << std::endl;
124 u_int32_t start_time = pros::millis();
126 while(pros::millis() - start_time < time)
149 const uint32_t LOOP_DELAY_MS = 10;
150 uint32_t start_time = pros::millis();
152 const float MCL_GAIN = 0.05f;
155 lemlib::Pose odomPose =
chassis.getPose(
true);
162 float new_x = odomPose.x + (target_x - odomPose.x) * MCL_GAIN;
163 float new_y = odomPose.y + (target_y - odomPose.y) * MCL_GAIN;
164 chassis.setPose(new_x, new_y, odomPose.theta);
166 pros::Task::delay_until(&start_time, LOOP_DELAY_MS);
184void relativeMotion(
float expected_x,
float expected_y,
float expected_theta,
float distance,
int timeout_ms,
bool forw =
true,
float earlyExit = 0)
186 lemlib::Pose targetPose(
187 expected_x + distance * std::sin(lemlib::degToRad(expected_theta)),
188 expected_y + distance * std::cos(lemlib::degToRad(expected_theta)),
192 chassis.moveToPoint(targetPose.x, targetPose.y, timeout_ms, {.forwards = forw, .earlyExitRange = earlyExit});
197 pros::Task counter_task([=]() {
199 uint32_t start_time = pros::millis();
200 while(pros::millis() - start_time < time_ms && count < balls)
202 start_time = pros::millis();
207 pros::Task::delay_until(&start_time, 10);
210 pros::Task::current().remove();
void outtake(int power=12000)
void intake(int power=12000)
void MCL_reset(bool x=true, bool y=true)
void score_longgoal_auton(int power=12000, Color allianceColor=Color::RED)
void matchload_wiggle(int time=1000, int speed=100)
void fusion_loop_fn(void *ignore)
void enable_fused_odometry(bool enable)
void score_longgoal(int power=12000, Color allianceColor=Color::RED)
void matchload_state(bool state)
void score_midgoal(int power=12000)
void relativeMotion(float expected_x, float expected_y, float expected_theta, float distance, int timeout_ms, bool forw=true, float earlyExit=0)
void score_bottomgoal(int power=12000)
void matchload_counter(int balls, int time_ms)
void resting_state(bool trapDoor_commanded=false)
pros::Motor topMotor(7, pros::v5::MotorGears::blue)
pros::adi::Pneumatics trapDoor('A', false)
pros::Motor intakeMotor(18, pros::v5::MotorGears::blue)
pros::Distance frontDistance(13)
pros::adi::Pneumatics descore('D', false)
pros::adi::Pneumatics matchload('B', false)
pros::MotorGroup rightMotors
pros::MotorGroup leftMotors
pros::Mutex particle_mutex