From bb6db35fb193b6f8f4151592e9c37349cfe7b5b3 Mon Sep 17 00:00:00 2001 From: parikmehta Date: Sat, 13 Jul 2024 19:59:49 -0700 Subject: [PATCH 1/4] removing old tuning files --- .../ftc/teamcode/tuning/LocalizationTest.java | 76 ------------------- .../teamcode/tuning/ManualFeedbackTuner.java | 63 --------------- .../ftc/teamcode/tuning/SplineTest.java | 39 ---------- .../ftc/teamcode/tuning/TuningOpModes.java | 0 4 files changed, 178 deletions(-) delete mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/tuning/LocalizationTest.java delete mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/tuning/ManualFeedbackTuner.java delete mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/tuning/SplineTest.java delete mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/tuning/TuningOpModes.java diff --git a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/tuning/LocalizationTest.java b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/tuning/LocalizationTest.java deleted file mode 100644 index 803ea15..0000000 --- a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/tuning/LocalizationTest.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.firstinspires.ftc.teamcode.tuning; - -import com.acmerobotics.dashboard.FtcDashboard; -import com.acmerobotics.dashboard.telemetry.MultipleTelemetry; -import com.acmerobotics.dashboard.telemetry.TelemetryPacket; -import com.acmerobotics.roadrunner.Pose2d; -import com.acmerobotics.roadrunner.PoseVelocity2d; -import com.acmerobotics.roadrunner.Vector2d; -import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; - -import org.firstinspires.ftc.teamcode.Drawing; -import org.firstinspires.ftc.teamcode.MecanumDrive; -import org.firstinspires.ftc.teamcode.TankDrive; - -public class LocalizationTest extends LinearOpMode { - @Override - public void runOpMode() throws InterruptedException { - telemetry = new MultipleTelemetry(telemetry, FtcDashboard.getInstance().getTelemetry()); - - if (TuningOpModes.DRIVE_CLASS.equals(MecanumDrive.class)) { - MecanumDrive drive = new MecanumDrive(hardwareMap, new Pose2d(0, 0, 0)); - - waitForStart(); - - while (opModeIsActive()) { - drive.setDrivePowers(new PoseVelocity2d( - new Vector2d( - -gamepad1.left_stick_y, - -gamepad1.left_stick_x - ), - -gamepad1.right_stick_x - )); - - drive.updatePoseEstimate(); - - telemetry.addData("x", drive.pose.position.x); - telemetry.addData("y", drive.pose.position.y); - telemetry.addData("heading (deg)", Math.toDegrees(drive.pose.heading.toDouble())); - telemetry.update(); - - TelemetryPacket packet = new TelemetryPacket(); - packet.fieldOverlay().setStroke("#3F51B5"); - Drawing.drawRobot(packet.fieldOverlay(), drive.pose); - FtcDashboard.getInstance().sendTelemetryPacket(packet); - } - } else if (TuningOpModes.DRIVE_CLASS.equals(TankDrive.class)) { - TankDrive drive = new TankDrive(hardwareMap, new Pose2d(0, 0, 0)); - - waitForStart(); - - while (opModeIsActive()) { - drive.setDrivePowers(new PoseVelocity2d( - new Vector2d( - -gamepad1.left_stick_y, - 0.0 - ), - -gamepad1.right_stick_x - )); - - drive.updatePoseEstimate(); - - telemetry.addData("x", drive.pose.position.x); - telemetry.addData("y", drive.pose.position.y); - telemetry.addData("heading (deg)", Math.toDegrees(drive.pose.heading.toDouble())); - telemetry.update(); - - TelemetryPacket packet = new TelemetryPacket(); - packet.fieldOverlay().setStroke("#3F51B5"); - Drawing.drawRobot(packet.fieldOverlay(), drive.pose); - FtcDashboard.getInstance().sendTelemetryPacket(packet); - } - } else { - throw new RuntimeException(); - } - } -} diff --git a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/tuning/ManualFeedbackTuner.java b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/tuning/ManualFeedbackTuner.java deleted file mode 100644 index 0b6f193..0000000 --- a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/tuning/ManualFeedbackTuner.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.firstinspires.ftc.teamcode.tuning; - -import com.acmerobotics.roadrunner.Pose2d; -import com.acmerobotics.roadrunner.ftc.Actions; -import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; - -import org.firstinspires.ftc.teamcode.MecanumDrive; -import org.firstinspires.ftc.teamcode.TankDrive; -import org.firstinspires.ftc.teamcode.ThreeDeadWheelLocalizer; -import org.firstinspires.ftc.teamcode.TwoDeadWheelLocalizer; - -public final class ManualFeedbackTuner extends LinearOpMode { - public static double DISTANCE = 64; - - @Override - public void runOpMode() throws InterruptedException { - if (TuningOpModes.DRIVE_CLASS.equals(MecanumDrive.class)) { - MecanumDrive drive = new MecanumDrive(hardwareMap, new Pose2d(0, 0, 0)); - - if (drive.localizer instanceof TwoDeadWheelLocalizer) { - if (TwoDeadWheelLocalizer.PARAMS.perpXTicks == 0 && TwoDeadWheelLocalizer.PARAMS.parYTicks == 0) { - throw new RuntimeException("Odometry wheel locations not set! Run AngularRampLogger to tune them."); - } - } else if (drive.localizer instanceof ThreeDeadWheelLocalizer) { - if (ThreeDeadWheelLocalizer.PARAMS.perpXTicks == 0 && ThreeDeadWheelLocalizer.PARAMS.par0YTicks == 0 && ThreeDeadWheelLocalizer.PARAMS.par1YTicks == 1) { - throw new RuntimeException("Odometry wheel locations not set! Run AngularRampLogger to tune them."); - } - } - waitForStart(); - - while (opModeIsActive()) { - Actions.runBlocking( - drive.actionBuilder(new Pose2d(0, 0, 0)) - .lineToX(DISTANCE) - .lineToX(0) - .build()); - } - } else if (TuningOpModes.DRIVE_CLASS.equals(TankDrive.class)) { - TankDrive drive = new TankDrive(hardwareMap, new Pose2d(0, 0, 0)); - - if (drive.localizer instanceof TwoDeadWheelLocalizer) { - if (TwoDeadWheelLocalizer.PARAMS.perpXTicks == 0 && TwoDeadWheelLocalizer.PARAMS.parYTicks == 0) { - throw new RuntimeException("Odometry wheel locations not set! Run AngularRampLogger to tune them."); - } - } else if (drive.localizer instanceof ThreeDeadWheelLocalizer) { - if (ThreeDeadWheelLocalizer.PARAMS.perpXTicks == 0 && ThreeDeadWheelLocalizer.PARAMS.par0YTicks == 0 && ThreeDeadWheelLocalizer.PARAMS.par1YTicks == 1) { - throw new RuntimeException("Odometry wheel locations not set! Run AngularRampLogger to tune them."); - } - } - waitForStart(); - - while (opModeIsActive()) { - Actions.runBlocking( - drive.actionBuilder(new Pose2d(0, 0, 0)) - .lineToX(DISTANCE) - .lineToX(0) - .build()); - } - } else { - throw new RuntimeException(); - } - } -} diff --git a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/tuning/SplineTest.java b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/tuning/SplineTest.java deleted file mode 100644 index d70825e..0000000 --- a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/tuning/SplineTest.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.firstinspires.ftc.teamcode.tuning; - -import com.acmerobotics.roadrunner.Pose2d; -import com.acmerobotics.roadrunner.Vector2d; -import com.acmerobotics.roadrunner.ftc.Actions; -import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; - -import org.firstinspires.ftc.teamcode.MecanumDrive; -import org.firstinspires.ftc.teamcode.TankDrive; - -public final class SplineTest extends LinearOpMode { - @Override - public void runOpMode() throws InterruptedException { - Pose2d beginPose = new Pose2d(0, 0, 0); - if (TuningOpModes.DRIVE_CLASS.equals(MecanumDrive.class)) { - MecanumDrive drive = new MecanumDrive(hardwareMap, beginPose); - - waitForStart(); - - Actions.runBlocking( - drive.actionBuilder(beginPose) - .splineTo(new Vector2d(30, 30), Math.PI / 2) - .splineTo(new Vector2d(0, 60), Math.PI) - .build()); - } else if (TuningOpModes.DRIVE_CLASS.equals(TankDrive.class)) { - TankDrive drive = new TankDrive(hardwareMap, beginPose); - - waitForStart(); - - Actions.runBlocking( - drive.actionBuilder(beginPose) - .splineTo(new Vector2d(30, 30), Math.PI / 2) - .splineTo(new Vector2d(0, 60), Math.PI) - .build()); - } else { - throw new RuntimeException(); - } - } -} diff --git a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/tuning/TuningOpModes.java b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/tuning/TuningOpModes.java deleted file mode 100644 index e69de29..0000000 From 48437d703f8a4e3a8246541d6c79d77ff8b52d96 Mon Sep 17 00:00:00 2001 From: parikmehta Date: Sat, 13 Jul 2024 20:22:12 -0700 Subject: [PATCH 2/4] Added Roadrunner stuff anf removed unecessary files --- TeamCode/build.gradle | 9 +- .../ftc/teamcode/AprilTagAlignment.java | 4 - .../firstinspires/ftc/teamcode/Drawing.java | 22 - .../firstinspires/ftc/teamcode/Localizer.java | 8 - .../ftc/teamcode/MecanumDrive.java | 469 ------------ .../firstinspires/ftc/teamcode/TankDrive.java | 487 ------------- .../ftc/teamcode/ThreeDeadWheelLocalizer.java | 83 --- .../ftc/teamcode/TwoDeadWheelLocalizer.java | 104 --- .../ftc/teamcode/drive/DriveConstants.java | 94 +++ .../teamcode/drive/SampleMecanumDrive.java | 311 ++++++++ .../ftc/teamcode/drive/SampleTankDrive.java | 305 ++++++++ .../drive/StandardTrackingWheelLocalizer.java | 100 +++ .../opmode/AutomaticFeedforwardTuner.java | 221 ++++++ .../teamcode/drive/opmode/BackAndForth.java | 52 ++ .../drive/opmode/DriveVelocityPIDTuner.java | 171 +++++ .../drive/opmode/FollowerPIDTuner.java | 55 ++ .../drive/opmode/LocalizationTest.java | 45 ++ .../drive/opmode/ManualFeedforwardTuner.java | 152 ++++ .../drive/opmode/MaxAngularVeloTuner.java | 73 ++ .../drive/opmode/MaxVelocityTuner.java | 84 +++ .../drive/opmode/MotorDirectionDebugger.java | 93 +++ .../ftc/teamcode/drive/opmode/SplineTest.java | 38 + .../ftc/teamcode/drive/opmode/StrafeTest.java | 46 ++ .../teamcode/drive/opmode/StraightTest.java | 46 ++ .../drive/opmode/TrackWidthTuner.java | 88 +++ .../TrackingWheelForwardOffsetTuner.java | 104 +++ .../TrackingWheelLateralDistanceTuner.java | 130 ++++ .../ftc/teamcode/drive/opmode/TurnTest.java | 27 + .../EmptySequenceException.java | 4 + .../TrajectorySequence.java | 44 ++ .../TrajectorySequenceBuilder.java | 679 ++++++++++++++++++ .../TrajectorySequenceRunner.java | 306 ++++++++ .../sequencesegment/SequenceSegment.java | 41 ++ .../sequencesegment/TrajectorySegment.java | 20 + .../sequencesegment/TurnSegment.java | 36 + .../sequencesegment/WaitSegment.java | 12 + .../util/AssetsTrajectoryManager.java | 70 ++ .../ftc/teamcode/util/AxesSigns.java | 45 ++ .../ftc/teamcode/util/AxisDirection.java | 8 + .../ftc/teamcode/util/DashboardUtil.java | 54 ++ .../ftc/teamcode/util/Encoder.java | 125 ++++ .../ftc/teamcode/util/LogFiles.java | 273 +++++++ .../ftc/teamcode/util/LoggingUtil.java | 60 ++ .../ftc/teamcode/util/LynxModuleUtil.java | 124 ++++ .../ftc/teamcode/util/RegressionUtil.java | 156 ++++ .../ftc/teamcode/webcamTesting.java | 2 +- build.dependencies.gradle | 2 + 47 files changed, 4300 insertions(+), 1182 deletions(-) delete mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/AprilTagAlignment.java delete mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Drawing.java delete mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Localizer.java delete mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/MecanumDrive.java delete mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/TankDrive.java delete mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/ThreeDeadWheelLocalizer.java delete mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/TwoDeadWheelLocalizer.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/DriveConstants.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/SampleMecanumDrive.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/SampleTankDrive.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/StandardTrackingWheelLocalizer.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/opmode/AutomaticFeedforwardTuner.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/opmode/BackAndForth.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/opmode/DriveVelocityPIDTuner.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/opmode/FollowerPIDTuner.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/opmode/LocalizationTest.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/opmode/ManualFeedforwardTuner.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/opmode/MaxAngularVeloTuner.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/opmode/MaxVelocityTuner.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/opmode/MotorDirectionDebugger.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/opmode/SplineTest.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/opmode/StrafeTest.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/opmode/StraightTest.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/opmode/TrackWidthTuner.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/opmode/TrackingWheelForwardOffsetTuner.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/opmode/TrackingWheelLateralDistanceTuner.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/drive/opmode/TurnTest.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/trajectorysequence/EmptySequenceException.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/trajectorysequence/TrajectorySequence.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/trajectorysequence/TrajectorySequenceBuilder.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/trajectorysequence/TrajectorySequenceRunner.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/trajectorysequence/sequencesegment/SequenceSegment.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/trajectorysequence/sequencesegment/TrajectorySegment.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/trajectorysequence/sequencesegment/TurnSegment.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/trajectorysequence/sequencesegment/WaitSegment.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/util/AssetsTrajectoryManager.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/util/AxesSigns.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/util/AxisDirection.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/util/DashboardUtil.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/util/Encoder.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/util/LogFiles.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/util/LoggingUtil.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/util/LynxModuleUtil.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/util/RegressionUtil.java diff --git a/TeamCode/build.gradle b/TeamCode/build.gradle index 0373eae..e710941 100644 --- a/TeamCode/build.gradle +++ b/TeamCode/build.gradle @@ -33,8 +33,9 @@ dependencies { implementation project(':FtcRobotController') annotationProcessor files('lib/OpModeAnnotationProcessor.jar') - implementation "com.acmerobotics.roadrunner:ftc:0.1.12" - implementation "com.acmerobotics.dashboard:dashboard:0.4.14" - implementation 'com.acmerobotics.roadrunner:core:1.0.0-beta3' - implementation 'com.acmerobotics.roadrunner:actions:1.0.0-beta3' + implementation 'org.apache.commons:commons-math3:3.6.1' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.7' + implementation 'com.acmerobotics.roadrunner:core:0.5.6' + + } diff --git a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/AprilTagAlignment.java b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/AprilTagAlignment.java deleted file mode 100644 index 024bbbd..0000000 --- a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/AprilTagAlignment.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.firstinspires.ftc.teamcode; - -public class AprilTagAlignment { -} diff --git a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Drawing.java b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Drawing.java deleted file mode 100644 index 38114d8..0000000 --- a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Drawing.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.firstinspires.ftc.teamcode; - -import com.acmerobotics.dashboard.canvas.Canvas; -import com.acmerobotics.roadrunner.Pose2d; -import com.acmerobotics.roadrunner.Vector2d; - -public final class Drawing { - private Drawing() {} - - - public static void drawRobot(Canvas c, Pose2d t) { - final double ROBOT_RADIUS = 9; - - c.setStrokeWidth(1); - c.strokeCircle(t.position.x, t.position.y, ROBOT_RADIUS); - - Vector2d halfv = t.heading.vec().times(0.5 * ROBOT_RADIUS); - Vector2d p1 = t.position.plus(halfv); - Vector2d p2 = p1.plus(halfv); - c.strokeLine(p1.x, p1.y, p2.x, p2.y); - } -} diff --git a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Localizer.java b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Localizer.java deleted file mode 100644 index 974ab79..0000000 --- a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Localizer.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.firstinspires.ftc.teamcode; - -import com.acmerobotics.roadrunner.Time; -import com.acmerobotics.roadrunner.Twist2dDual; - -public interface Localizer { - Twist2dDual