From 030330cfa229d867aea2885eee76cedc7b13edf1 Mon Sep 17 00:00:00 2001 From: Jack Revoy Date: Fri, 27 Sep 2024 11:28:20 -0600 Subject: [PATCH 1/8] testing git --- .../java/org/firstinspires/ftc/teamcode/teleop/StrafeDrive.java | 1 + 1 file changed, 1 insertion(+) diff --git a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/teleop/StrafeDrive.java b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/teleop/StrafeDrive.java index 1eda2dd..3e2b36f 100644 --- a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/teleop/StrafeDrive.java +++ b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/teleop/StrafeDrive.java @@ -9,6 +9,7 @@ /** * TeleOp OpMode for simply driving with strafing wheels + * Look at JAVA DOC! */ @TeleOp(name = "Basic Strafe Drive", group = "Iterative OpMode") public class StrafeDrive extends OpMode { From 71cebb6048417d3e928ae7ad5f5c9e83406608f8 Mon Sep 17 00:00:00 2001 From: Jack Revoy Date: Mon, 30 Sep 2024 10:37:18 -0600 Subject: [PATCH 2/8] added RoadRunner and MeepMeep --- MeepMeepTesting/.gitignore | 1 + MeepMeepTesting/build.gradle | 17 + .../meepmeeptesting/MeepMeepTesting.java | 34 ++ TeamCode/build.gradle | 2 + .../ftc/teamcode/auton/Drawing.java | 22 + .../ftc/teamcode/auton/Localizer.java | 8 + .../ftc/teamcode/auton/MecanumDrive.java | 489 +++++++++++++++++ .../ftc/teamcode/auton/TankDrive.java | 498 ++++++++++++++++++ .../auton/ThreeDeadWheelLocalizer.java | 100 ++++ .../teamcode/auton/TwoDeadWheelLocalizer.java | 130 +++++ .../auton/messages/DriveCommandMessage.java | 24 + .../auton/messages/MecanumCommandMessage.java | 19 + .../MecanumLocalizerInputsMessage.java | 30 ++ .../teamcode/auton/messages/PoseMessage.java | 18 + .../auton/messages/TankCommandMessage.java | 15 + .../messages/TankLocalizerInputsMessage.java | 17 + .../messages/ThreeDeadWheelInputsMessage.java | 17 + .../messages/TwoDeadWheelInputsMessage.java | 35 ++ .../auton/tuning/LocalizationTest.java | 76 +++ .../auton/tuning/ManualFeedbackTuner.java | 63 +++ .../ftc/teamcode/auton/tuning/SplineTest.java | 39 ++ .../teamcode/auton/tuning/TuningOpModes.java | 180 +++++++ build.dependencies.gradle | 2 + settings.gradle | 3 +- 24 files changed, 1838 insertions(+), 1 deletion(-) create mode 100644 MeepMeepTesting/.gitignore create mode 100644 MeepMeepTesting/build.gradle create mode 100644 MeepMeepTesting/src/main/java/com/example/meepmeeptesting/MeepMeepTesting.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/Drawing.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/Localizer.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/MecanumDrive.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/TankDrive.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/ThreeDeadWheelLocalizer.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/TwoDeadWheelLocalizer.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/messages/DriveCommandMessage.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/messages/MecanumCommandMessage.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/messages/MecanumLocalizerInputsMessage.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/messages/PoseMessage.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/messages/TankCommandMessage.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/messages/TankLocalizerInputsMessage.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/messages/ThreeDeadWheelInputsMessage.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/messages/TwoDeadWheelInputsMessage.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/tuning/LocalizationTest.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/tuning/ManualFeedbackTuner.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/tuning/SplineTest.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/tuning/TuningOpModes.java diff --git a/MeepMeepTesting/.gitignore b/MeepMeepTesting/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/MeepMeepTesting/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/MeepMeepTesting/build.gradle b/MeepMeepTesting/build.gradle new file mode 100644 index 0000000..cb8c197 --- /dev/null +++ b/MeepMeepTesting/build.gradle @@ -0,0 +1,17 @@ +plugins { + id 'java-library' +} + +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 +} + +repositories { + maven { url = 'https://jitpack.io' } + maven { url = 'https://maven.brott.dev/' } +} + +dependencies { + implementation 'com.github.rh-robotics:MeepMeep:v1.0.0' +} \ No newline at end of file diff --git a/MeepMeepTesting/src/main/java/com/example/meepmeeptesting/MeepMeepTesting.java b/MeepMeepTesting/src/main/java/com/example/meepmeeptesting/MeepMeepTesting.java new file mode 100644 index 0000000..df3e744 --- /dev/null +++ b/MeepMeepTesting/src/main/java/com/example/meepmeeptesting/MeepMeepTesting.java @@ -0,0 +1,34 @@ +package com.example.meepmeeptesting; + +import com.acmerobotics.roadrunner.geometry.Pose2d; + +import org.rowlandhall.meepmeep.MeepMeep; +import org.rowlandhall.meepmeep.roadrunner.DefaultBotBuilder; +import org.rowlandhall.meepmeep.roadrunner.entity.RoadRunnerBotEntity; + +public class MeepMeepTesting { + public static void main(String[] args) { + MeepMeep meepMeep = new MeepMeep(800); + + RoadRunnerBotEntity myBot = new DefaultBotBuilder(meepMeep) + // Set bot constraints: maxVel, maxAccel, maxAngVel, maxAngAccel, track width + .setConstraints(60, 60, Math.toRadians(180), Math.toRadians(180), 15) + .followTrajectorySequence(drive -> drive.trajectorySequenceBuilder(new Pose2d(0, 0, 0)) + .forward(30) + .turn(Math.toRadians(90)) + .forward(30) + .turn(Math.toRadians(90)) + .forward(30) + .turn(Math.toRadians(90)) + .forward(30) + .turn(Math.toRadians(90)) + .build()); + + + meepMeep.setBackground(MeepMeep.Background.FIELD_INTOTHEDEEP_JUICE_DARK) + .setDarkMode(true) + .setBackgroundAlpha(0.95f) + .addEntity(myBot) + .start(); + } +} \ No newline at end of file diff --git a/TeamCode/build.gradle b/TeamCode/build.gradle index bab0335..2e2961d 100644 --- a/TeamCode/build.gradle +++ b/TeamCode/build.gradle @@ -71,4 +71,6 @@ dependencies { implementation 'org.apache.commons:commons-math3:3.6.1' implementation 'org.ftclib.ftclib:core:2.0.1' implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.7' + implementation 'org.apache.commons:commons-math3:3.6.1' + implementation 'com.acmerobotics.roadrunner:core:0.5.6' } diff --git a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/Drawing.java b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/Drawing.java new file mode 100644 index 0000000..a6e74f3 --- /dev/null +++ b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/Drawing.java @@ -0,0 +1,22 @@ +package org.firstinspires.ftc.teamcode.auton; + +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/auton/Localizer.java b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/Localizer.java new file mode 100644 index 0000000..d560574 --- /dev/null +++ b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/auton/Localizer.java @@ -0,0 +1,8 @@ +package org.firstinspires.ftc.teamcode.auton; + +import com.acmerobotics.roadrunner.Time; +import com.acmerobotics.roadrunner.Twist2dDual; + +public interface Localizer { + Twist2dDual