From 4cf1499b45e2c52dfeed1e134a39d63f8643eb3a Mon Sep 17 00:00:00 2001 From: WindowsVistaisCool Date: Sat, 27 Jan 2024 18:34:57 -0500 Subject: [PATCH 1/4] [#118] cleaner way to create system tests --- src/main/java/frc/robot/RobotContainer.java | 8 +-- .../command/tests/DrivetrainSystemTest.java | 32 ++++++----- .../robot/command/tests/TurnSystemTest.java | 53 ++++++------------- .../tests/{ => testCommands}/DriveTest.java | 4 +- .../command/tests/testCommands/TurnTest.java | 48 +++++++++++++++++ src/main/java/frc/thunder | 2 +- 6 files changed, 88 insertions(+), 59 deletions(-) rename src/main/java/frc/robot/command/tests/{ => testCommands}/DriveTest.java (93%) create mode 100644 src/main/java/frc/robot/command/tests/testCommands/TurnTest.java diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 585f501c..8a4c5399 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -32,6 +32,7 @@ import frc.robot.command.Shoot; import frc.robot.command.tests.DrivetrainSystemTest; import frc.robot.command.tests.TurnSystemTest; +import frc.robot.command.tests.testCommands.TurnTest; import frc.robot.command.ChasePieces; import frc.robot.command.Climb; import frc.robot.command.ManualClimb; @@ -171,11 +172,6 @@ protected void configureFaultMonitors() { protected void configureSystemTests() { SystemTest.registerTest("Drive Test", new DrivetrainSystemTest(drivetrain, brake, DrivetrainConstants.SYS_TEST_SPEED_DRIVE)); - SystemTest.registerTest("Azimuth Test", new SequentialCommandGroup( - new TimedCommand(new TurnSystemTest(drivetrain, () -> DrivetrainConstants.SYS_TEST_SPEED_TURN), 1), - new WaitCommand(0.5), - new TimedCommand(new TurnSystemTest(drivetrain, () -> -DrivetrainConstants.SYS_TEST_SPEED_TURN), 1), - drivetrain.applyRequest(() -> brake) - )); + SystemTest.registerTest("Azimuth Test", new TurnSystemTest(drivetrain, brake, DrivetrainConstants.SYS_TEST_SPEED_TURN)); } } diff --git a/src/main/java/frc/robot/command/tests/DrivetrainSystemTest.java b/src/main/java/frc/robot/command/tests/DrivetrainSystemTest.java index 822a28e7..31adea81 100644 --- a/src/main/java/frc/robot/command/tests/DrivetrainSystemTest.java +++ b/src/main/java/frc/robot/command/tests/DrivetrainSystemTest.java @@ -6,26 +6,30 @@ import com.ctre.phoenix6.mechanisms.swerve.SwerveRequest; -import edu.wpi.first.wpilibj2.command.InstantCommand; import edu.wpi.first.wpilibj2.command.SequentialCommandGroup; import edu.wpi.first.wpilibj2.command.WaitCommand; +import frc.robot.command.tests.testCommands.DriveTest; import frc.robot.subsystems.Swerve; import frc.thunder.command.TimedCommand; +import frc.thunder.testing.SystemTestCommandGroup; -public class DrivetrainSystemTest extends SequentialCommandGroup { - +public class DrivetrainSystemTest extends SystemTestCommandGroup { + public DrivetrainSystemTest(Swerve drivetrain, SwerveRequest brake, double speed) { - addCommands( - new WaitCommand(0.5), - new TimedCommand(new DriveTest(drivetrain, () -> speed, () -> 0d), 1), // Forward - new WaitCommand(1), - new TimedCommand(new DriveTest(drivetrain, () -> -speed, () -> 0d), 1), // Backward - new WaitCommand(1), - new TimedCommand(new DriveTest(drivetrain, () -> 0d, () -> speed), 1), // Left - new WaitCommand(1), - new TimedCommand(new DriveTest(drivetrain, () -> 0d, () -> -speed), 1), // Right - new WaitCommand(0.5), - drivetrain.applyRequest(() -> brake) // Brake + super( + new SequentialCommandGroup( + new WaitCommand(0.5), + new TimedCommand(new DriveTest(drivetrain, () -> speed, () -> 0d), 1), // Forward + new WaitCommand(1), + new TimedCommand(new DriveTest(drivetrain, () -> -speed, () -> 0d), 1), // Backward + new WaitCommand(1), + new TimedCommand(new DriveTest(drivetrain, () -> 0d, () -> speed), 1), // Left + new WaitCommand(1), + new TimedCommand(new DriveTest(drivetrain, () -> 0d, () -> -speed), 1), // Right + new WaitCommand(0.5), + drivetrain.applyRequest(() -> brake) // Brake + ) ); } + } diff --git a/src/main/java/frc/robot/command/tests/TurnSystemTest.java b/src/main/java/frc/robot/command/tests/TurnSystemTest.java index 32b6b732..6a433a3e 100644 --- a/src/main/java/frc/robot/command/tests/TurnSystemTest.java +++ b/src/main/java/frc/robot/command/tests/TurnSystemTest.java @@ -4,45 +4,26 @@ package frc.robot.command.tests; -import java.util.function.DoubleSupplier; - import com.ctre.phoenix6.mechanisms.swerve.SwerveRequest; -import edu.wpi.first.wpilibj2.command.Command; +import edu.wpi.first.wpilibj2.command.SequentialCommandGroup; +import edu.wpi.first.wpilibj2.command.WaitCommand; +import frc.robot.command.tests.testCommands.TurnTest; import frc.robot.subsystems.Swerve; - -public class TurnSystemTest extends Command { - - private Swerve drivetrain; - private DoubleSupplier speed; - - /** - * System test for testing azimuth motors - * @param drivetrain swerve subsystem - * @param speed rotational rate - */ - public TurnSystemTest(Swerve drivetrain, DoubleSupplier speed) { - this.drivetrain = drivetrain; - this.speed = speed; - - addRequirements(drivetrain); - } - - @Override - public void initialize() {} - - @Override - public void execute() { - drivetrain.setControl(new SwerveRequest.RobotCentric().withVelocityX(0).withVelocityY(0).withRotationalRate(speed.getAsDouble())); +import frc.thunder.command.TimedCommand; +import frc.thunder.testing.SystemTestCommandGroup; + +public class TurnSystemTest extends SystemTestCommandGroup { + + public TurnSystemTest(Swerve drivetrain, SwerveRequest brake, double speed) { + super( + new SequentialCommandGroup( + new TimedCommand(new TurnTest(drivetrain, () -> speed), 1), + new WaitCommand(0.5), + new TimedCommand(new TurnTest(drivetrain, () -> -speed), 1), + drivetrain.applyRequest(() -> brake) + ) + ); } - @Override - public void end(boolean interrupted) { - drivetrain.setControl(new SwerveRequest.RobotCentric().withVelocityX(0).withVelocityY(0).withRotationalRate(0)); - } - - @Override - public boolean isFinished() { - return false; - } } diff --git a/src/main/java/frc/robot/command/tests/DriveTest.java b/src/main/java/frc/robot/command/tests/testCommands/DriveTest.java similarity index 93% rename from src/main/java/frc/robot/command/tests/DriveTest.java rename to src/main/java/frc/robot/command/tests/testCommands/DriveTest.java index 0e2bd4bd..f783e2f6 100644 --- a/src/main/java/frc/robot/command/tests/DriveTest.java +++ b/src/main/java/frc/robot/command/tests/testCommands/DriveTest.java @@ -2,7 +2,7 @@ // Open Source Software; you can modify and/or share it under the terms of // the WPILib BSD license file in the root directory of this project. -package frc.robot.command.tests; +package frc.robot.command.tests.testCommands; import java.util.function.DoubleSupplier; @@ -18,7 +18,7 @@ public class DriveTest extends Command { private DoubleSupplier speedY; /** - * Creates a new drive test + * System test command for testing drive motors * @param drivetrain swerve subsystem * @param speedX X velocity * @param speedY Y velocity diff --git a/src/main/java/frc/robot/command/tests/testCommands/TurnTest.java b/src/main/java/frc/robot/command/tests/testCommands/TurnTest.java new file mode 100644 index 00000000..f59548f8 --- /dev/null +++ b/src/main/java/frc/robot/command/tests/testCommands/TurnTest.java @@ -0,0 +1,48 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +package frc.robot.command.tests.testCommands; + +import java.util.function.DoubleSupplier; + +import com.ctre.phoenix6.mechanisms.swerve.SwerveRequest; + +import edu.wpi.first.wpilibj2.command.Command; +import frc.robot.subsystems.Swerve; + +public class TurnTest extends Command { + + private Swerve drivetrain; + private DoubleSupplier speed; + + /** + * System test command for testing azimuth motors + * @param drivetrain swerve subsystem + * @param speed rotational rate + */ + public TurnTest(Swerve drivetrain, DoubleSupplier speed) { + this.drivetrain = drivetrain; + this.speed = speed; + + addRequirements(drivetrain); + } + + @Override + public void initialize() {} + + @Override + public void execute() { + drivetrain.setControl(new SwerveRequest.RobotCentric().withVelocityX(0).withVelocityY(0).withRotationalRate(speed.getAsDouble())); + } + + @Override + public void end(boolean interrupted) { + drivetrain.setControl(new SwerveRequest.RobotCentric().withVelocityX(0).withVelocityY(0).withRotationalRate(0)); + } + + @Override + public boolean isFinished() { + return false; + } +} diff --git a/src/main/java/frc/thunder b/src/main/java/frc/thunder index 1bf13634..e887f7d6 160000 --- a/src/main/java/frc/thunder +++ b/src/main/java/frc/thunder @@ -1 +1 @@ -Subproject commit 1bf13634e93d412076ee270ebb26137b5b69cf1f +Subproject commit e887f7d6c264725820be98556253b22f4eaa82ad From 5a15828298def92a53a2a073a4bd664217cfa57a Mon Sep 17 00:00:00 2001 From: MattD8957 Date: Sat, 27 Jan 2024 23:29:51 -0500 Subject: [PATCH 2/4] [#123] update Vendor deps + made build --- src/main/java/frc/robot/RobotContainer.java | 16 ++++++++-------- vendordeps/PathplannerLib.json | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/java/frc/robot/RobotContainer.java b/src/main/java/frc/robot/RobotContainer.java index 585f501c..15b5b227 100644 --- a/src/main/java/frc/robot/RobotContainer.java +++ b/src/main/java/frc/robot/RobotContainer.java @@ -169,13 +169,13 @@ protected void configureFaultMonitors() { @Override protected void configureSystemTests() { - SystemTest.registerTest("Drive Test", new DrivetrainSystemTest(drivetrain, brake, DrivetrainConstants.SYS_TEST_SPEED_DRIVE)); - - SystemTest.registerTest("Azimuth Test", new SequentialCommandGroup( - new TimedCommand(new TurnSystemTest(drivetrain, () -> DrivetrainConstants.SYS_TEST_SPEED_TURN), 1), - new WaitCommand(0.5), - new TimedCommand(new TurnSystemTest(drivetrain, () -> -DrivetrainConstants.SYS_TEST_SPEED_TURN), 1), - drivetrain.applyRequest(() -> brake) - )); + // SystemTest.registerTest("Drive Test", new DrivetrainSystemTest(drivetrain, brake, DrivetrainConstants.SYS_TEST_SPEED_DRIVE)); + + // SystemTest.registerTest("Azimuth Test", new SequentialCommandGroup( + // new TimedCommand(new TurnSystemTest(drivetrain, () -> DrivetrainConstants.SYS_TEST_SPEED_TURN), 1), + // new WaitCommand(0.5), + // new TimedCommand(new TurnSystemTest(drivetrain, () -> -DrivetrainConstants.SYS_TEST_SPEED_TURN), 1), + // drivetrain.applyRequest(() -> brake) + // )); } } diff --git a/vendordeps/PathplannerLib.json b/vendordeps/PathplannerLib.json index 6ddd312f..cae13633 100644 --- a/vendordeps/PathplannerLib.json +++ b/vendordeps/PathplannerLib.json @@ -1,7 +1,7 @@ { "fileName": "PathplannerLib.json", "name": "PathplannerLib", - "version": "2024.1.5", + "version": "2024.1.6", "uuid": "1b42324f-17c6-4875-8e77-1c312bc8c786", "frcYear": "2024", "mavenUrls": [ @@ -12,7 +12,7 @@ { "groupId": "com.pathplanner.lib", "artifactId": "PathplannerLib-java", - "version": "2024.1.5" + "version": "2024.1.6" } ], "jniDependencies": [], @@ -20,7 +20,7 @@ { "groupId": "com.pathplanner.lib", "artifactId": "PathplannerLib-cpp", - "version": "2024.1.5", + "version": "2024.1.6", "libName": "PathplannerLib", "headerClassifier": "headers", "sharedLibrary": false, From 4614102389c3653485c966a7b4fa5a1fa6742253 Mon Sep 17 00:00:00 2001 From: WindowsVistaisCool Date: Sun, 28 Jan 2024 00:40:42 -0500 Subject: [PATCH 3/4] [#120] Update thunder --- src/main/java/frc/thunder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/frc/thunder b/src/main/java/frc/thunder index e887f7d6..cd540794 160000 --- a/src/main/java/frc/thunder +++ b/src/main/java/frc/thunder @@ -1 +1 @@ -Subproject commit e887f7d6c264725820be98556253b22f4eaa82ad +Subproject commit cd54079489d55b374a3d96cf4a81e697bae7e236 From bded2813ac56b89b97e11cc5ff3103308493f727 Mon Sep 17 00:00:00 2001 From: WindowsVistaisCool Date: Sun, 28 Jan 2024 00:44:45 -0500 Subject: [PATCH 4/4] [#120] adjust timings --- src/main/java/frc/robot/command/tests/TurnSystemTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/frc/robot/command/tests/TurnSystemTest.java b/src/main/java/frc/robot/command/tests/TurnSystemTest.java index 6a433a3e..7ae235c5 100644 --- a/src/main/java/frc/robot/command/tests/TurnSystemTest.java +++ b/src/main/java/frc/robot/command/tests/TurnSystemTest.java @@ -18,9 +18,11 @@ public class TurnSystemTest extends SystemTestCommandGroup { public TurnSystemTest(Swerve drivetrain, SwerveRequest brake, double speed) { super( new SequentialCommandGroup( - new TimedCommand(new TurnTest(drivetrain, () -> speed), 1), new WaitCommand(0.5), + new TimedCommand(new TurnTest(drivetrain, () -> speed), 1), + new WaitCommand(1), new TimedCommand(new TurnTest(drivetrain, () -> -speed), 1), + new WaitCommand(0.5), drivetrain.applyRequest(() -> brake) ) );