1516X Push Back 1.0
1516X's robot code for the 2025-2026 VEX Robotics Competition
Loading...
Searching...
No Matches
autonFunctions.cpp
Go to the documentation of this file.
1#include "autonFunctions.h"
2#include "globals.h"
3#include "lemlib/util.hpp"
4#include "pros/rtos.hpp"
5#include <cmath>
6#include <sys/types.h>
7#include "colorSort.h"
8#include "IntakeAntiJam.h"
9
10
11const VelocityControllerConfig config{
125.09498070723,
130.23396112183,
141.22496514644,
150.964796393603,
160.522291806997,
1710.933332351,
1844.6788428062,
19};
20
22 while (true) {
23 jamManager.update();
24 pros::delay(10);
25 }
26}
27
28
29void intake(int power)
30{
31 if(hood.is_extended()) { hood.retract(); }
32 jamManager.set_velocities((int)power/3, -(int)power/3, power);
33}
34
35void outtake(int power)
36{
37 if(!intake_lift.is_extended()) { intake_lift.extend(); }
38 jamManager.set_velocities(-((int)power/3), ((int)power/3), -power);
39}
40
41void score_longgoal(int power, Color allianceColor)
42{
43 if(!hood.is_extended()) { hood.extend(); }
44 jamManager.set_velocities((int)power/3, -(int)power/3, power);
45}
46
47void intake_stop(bool hood_state)
48{
49 jamManager.stop();
50 if(!hood_state) hood.retract();
51 else hood.extend();
52
53 if(intake_lift.is_extended()) { intake_lift.retract(); }
54}
55
56void score_midgoal(int power)
57{
58 jamManager.set_velocities((int)power/3, (int)power/3, power);
59}
60
61void score_midgoal_auton(int power, Color allianceColor, int time)
62{
63 u_int32_t start_time = pros::millis();
64 if(time != -1) {
65 while(pros::millis() - start_time < (u_int32_t)time) {
66 jamManager.set_velocities((int)power/3, (int)power/3, power);
67 chassis.tank(-20, -20);
68 pros::delay(10);
69 }
70 }
71 chassis.brake();
73}
74
75void score_longgoal_auton(int power, Color allianceColor, int time)
76{
77 u_int32_t start_time = pros::millis();
78 if(time != -1) {
79 while(pros::millis() - start_time < (u_int32_t)time) {
80 if(!hood.is_extended()) { hood.extend(); }
81 jamManager.set_velocities((int)power/3, -(int)power/3, power);
82 chassis.tank(-20, -20);
83 pros::delay(10);
84 }
85 }
86 chassis.brake();
88}
90{
91
92}
93
94void matchload_state(bool state)
95{
96 if(state)
97 {
98 if(!matchloader.is_extended()) {matchloader.extend();}
99 }
100 else
101 {
102 if(matchloader.is_extended()) {matchloader.retract();}
103 }
104}
105
106
107void relativeMotion(float expected_x, float expected_y, float expected_theta, float distance, int timeout_ms, bool forw, float earlyExit)
108{
109 lemlib::Pose targetPose(
110 expected_x + distance * std::sin(lemlib::degToRad(expected_theta)),
111 expected_y + distance * std::cos(lemlib::degToRad(expected_theta)),
112 expected_theta
113 );
114
115 chassis.moveToPoint(targetPose.x, targetPose.y, timeout_ms, {.forwards = forw, .earlyExitRange = earlyExit});
116}
117
118double calculateAngle(double robotHeading) {
119 double d1 = frontDistance.get();
120 double d2 = frontDistance2.get() + 10;
121
122 if (d1 > 1800 || d2 > 1800) return -1;
123 double wallAngleDeg = atan2((d1 - d2) * 0.0393701, 10.75) * 180.0 / M_PI;
124
125 if ((robotHeading >= 315 && robotHeading < 360) || (robotHeading >= 0 && robotHeading < 45)) {
126 return wallAngleDeg;
127 }
128 else if (robotHeading >= 45 && robotHeading < 135) {
129 return 90 + wallAngleDeg;
130 }
131 else if (robotHeading >= 135 && robotHeading < 225) {
132 return 180 + wallAngleDeg;
133 }
134 else if (robotHeading >= 225 && robotHeading < 315) {
135 return 270 + wallAngleDeg;
136 }
137
138 return -1;
139}
void relativeMotion(float expected_x, float expected_y, float expected_theta, float distance, int timeout_ms, bool forw, float earlyExit)
void score_midgoal_auton(int power, Color allianceColor, int time)
const VelocityControllerConfig config
void score_longgoal(int power, Color allianceColor)
void intake_to_basket()
void antiJamTask()
void intake(int power)
double calculateAngle(double robotHeading)
void matchload_state(bool state)
void score_midgoal(int power)
void intake_stop(bool hood_state)
void score_longgoal_auton(int power, Color allianceColor, int time)
void outtake(int power)
Chassis chassis(drivebase, lateral_controller, angular_controller, sensors, &throttle_curve, &steer_curve)
pros::adi::Pneumatics matchloader('C', false)
IntakeAntiJam jamManager(intakeMotor, outtakeMotor, storageMotor, 55)
pros::adi::Pneumatics intake_lift('A', false)
pros::adi::Pneumatics hood('B', false)
Color allianceColor
Definition globals.cpp:103
pros::Distance frontDistance(8)