diff --git a/RELENTLESS/include/superstructure.hpp b/RELENTLESS/include/superstructure.hpp index f3097e4..a421b6d 100644 --- a/RELENTLESS/include/superstructure.hpp +++ b/RELENTLESS/include/superstructure.hpp @@ -3,7 +3,7 @@ #define DRIVE_SPEED 110 #define TURN_SPEED 90 #define SWING_SPEED 90 - +// R1 -> WINGS, L1 -> CATA, L2 -> PTO, R2 -> INTAKE // Renu's control preferences #define RENU_PTO_TOGGLE DIGITAL_R2 #define RENU_CATA_CONTROL DIGITAL_R1 @@ -56,7 +56,12 @@ namespace superstruct { void wingsControlSingle(pros::controller_digital_e_t wingControlButton); void wingsControlComplex(pros::controller_analog_e_t leftWingButton, pros::controller_analog_e_t rightWingButton, pros::controller_analog_e_t wingButton); + //More methods + void toggleIntake(bool val); + void toggleRemovalMech(bool val); + void renu_control(); void ria_control(); + void chris_control(); } \ No newline at end of file diff --git a/RELENTLESS/src/ary-lib/drive/user_input.cpp b/RELENTLESS/src/ary-lib/drive/user_input.cpp index 43ec08a..6bea1f1 100644 --- a/RELENTLESS/src/ary-lib/drive/user_input.cpp +++ b/RELENTLESS/src/ary-lib/drive/user_input.cpp @@ -201,8 +201,8 @@ void Drive::arcade_standard(e_type stick_type, e_curve_type curve_type) { } else if (stick_type == SINGLE) { // Put the joysticks through the curve function if (curve_type == DEFAULT) { - fwd_stick = left_curve_function(master.get_analog(ANALOG_LEFT_Y)); - turn_stick = right_curve_function(master.get_analog(ANALOG_LEFT_X)); + fwd_stick = left_curve_function(master.get_analog(ANALOG_RIGHT_Y)); + turn_stick = right_curve_function(master.get_analog(ANALOG_RIGHT_X)); } else if (curve_type == LOGARITHMIC) { //fwd_stick = (master.get_analog(ANALOG_LEFT_Y) >= 1) ? 10 } else if (curve_type == SQRT) { diff --git a/RELENTLESS/src/autons.cpp b/RELENTLESS/src/autons.cpp index 1528533..19e7aa2 100644 --- a/RELENTLESS/src/autons.cpp +++ b/RELENTLESS/src/autons.cpp @@ -20,11 +20,12 @@ using namespace superstruct; void near_side() { // Score the triball preload - driveSync(107, true); // Go forward + driveSync(107, true); + // Go forward // Get the furthest triball driveSync(-38, true); // Move away from the goal - turnSync(-99); // Turn towards the triball against the barrier + turnSync(-99); // Turn towards the triball against the barrier driveSync(95, true); // Drive towards the triball // Turn towards the goal, and score the triball. @@ -39,10 +40,25 @@ void near_side() { turnSync(-90); // Turn to the triball and intake driveSync(12, true); - // chassis.set_drive_pid(2, DRIVE_SPEED, false, true); - // chassis.wait_drive(); + } void far_side() { + toggleIntake(true); + driveSync(60, true); + turnSync(-90); + + toggleIntake(false); + driveSync(30, true); + driveSync(-30, true); + + turnSync(-45); + driveSync(100, true); + toggleRemovalMech(true); + driveSync(-35, true); + toggleRemovalMech(false); + + turnSync(55); + driveSync(70, true); } diff --git a/RELENTLESS/src/globals.cpp b/RELENTLESS/src/globals.cpp index 6624dfb..04e8c4a 100644 --- a/RELENTLESS/src/globals.cpp +++ b/RELENTLESS/src/globals.cpp @@ -41,7 +41,7 @@ namespace globals { Drive chassis( {-2, -6, 12, 5}, {-16, 1, 4, -3}, - 16, + 18, WHEEL_SIZE, 600, DRIVE_RATIO diff --git a/RELENTLESS/src/main.cpp b/RELENTLESS/src/main.cpp index 4254a3e..370cbd0 100644 --- a/RELENTLESS/src/main.cpp +++ b/RELENTLESS/src/main.cpp @@ -71,12 +71,12 @@ void opcontrol() { if (currentuser == RENU) { chassis.tank_control(); renu_control(); - } else if (currentuser = RIA) { + } else if (currentuser == RIA) { chassis.tank_control(); // ria_control(); } else if (currentuser == CHRIS) { - chassis.arcade_standard(ary::SPLIT, ary::DEFAULT); - renu_control(); + chassis.arcade_standard(ary::SINGLE, ary::DEFAULT); + chris_control(); } else { renu_control(); } diff --git a/RELENTLESS/src/superstructure.cpp b/RELENTLESS/src/superstructure.cpp index 35bd9e7..4e31eb3 100644 --- a/RELENTLESS/src/superstructure.cpp +++ b/RELENTLESS/src/superstructure.cpp @@ -45,20 +45,20 @@ namespace superstruct { // Adjust exit conditions to allow for quick movements void configureExitConditions() { - chassis.set_exit_condition(chassis.turn_exit, 100, 3, 500, 7, 500, 500); + chassis.set_exit_condition(chassis.turn_exit, 50, 2, 220, 3, 500, 500); chassis.set_exit_condition(chassis.swing_exit, 100, 3, 500, 7, 500, 500); - chassis.set_exit_condition(chassis.drive_exit, 80, 50, 300, 150, 500, 500); + chassis.set_exit_condition(chassis.drive_exit, 40, 80, 300, 150, 500, 500); } // Adjust PID constants for accurate movements void configureConstants() { chassis.set_slew_min_power(80, 80); chassis.set_slew_distance(7, 7); - chassis.set_pid_constants(&chassis.headingPID, 11, 0, 20, 0); - chassis.set_pid_constants(&chassis.forward_drivePID, 0.45, 0, 5, 0); - chassis.set_pid_constants(&chassis.backward_drivePID, 0.45, 0, 5, 0); - chassis.set_pid_constants(&chassis.turnPID, 4, 0.003, 35, 15); - chassis.set_pid_constants(&chassis.swingPID, 6, 0, 40, 0); + chassis.set_pid_constants(&chassis.headingPID, 16, 0, 32, 0); + chassis.set_pid_constants(&chassis.forward_drivePID, 0.55, 0, 5, 0); + chassis.set_pid_constants(&chassis.backward_drivePID, 0.55, 0, 5, 0); + chassis.set_pid_constants(&chassis.turnPID, 6.5, 0.003, 35, 15); + chassis.set_pid_constants(&chassis.swingPID, 8.5, 0, 50, 0); } // Prepare the bot for the autonomous period of a match @@ -206,6 +206,16 @@ namespace superstruct { } } + void toggleIntake(bool val) { + int valTo = (val == true) ? 1 : 0; + intake_piston.set_value(valTo); + } + + void toggleRemovalMech(bool val) { + int valTo = (val == true) ? 1 : 0; + doinker_piston.set_value(valTo); + } + /* Handle respective controls */ @@ -221,4 +231,10 @@ namespace superstruct { wingsControlSingle(RIA_WINGS_CONTROL); intakeControl(RIA_INTAKE_CONTROL); } + + void chris_control() { + cataControl(RENU_PTO_TOGGLE, RENU_CATA_CONTROL); + wingsControlSingle(RENU_WING_CONTROL); + intakeControl(RENU_INTAKE_CONTROL); + } } \ No newline at end of file