Skip to content

Commit

Permalink
updates libraries to 2024
Browse files Browse the repository at this point in the history
  • Loading branch information
Merridew1 committed Jan 13, 2024
1 parent b7e58d9 commit a432db7
Show file tree
Hide file tree
Showing 22 changed files with 235 additions and 245 deletions.
16 changes: 16 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -158,5 +158,21 @@ gradle-app.setting
.settings/
bin/

# IntelliJ
*.iml
*.ipr
*.iws
.idea/
out/

# Fleet
.fleet

# Simulation GUI and other tools window save file
*-window.json

# Simulation data log directory
logs/

# Folder that has CTRE Phoenix Sim device config storage
ctre_sim/
2 changes: 1 addition & 1 deletion .wpilib/wpilib_preferences.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"enableCppIntellisense": false,
"currentLanguage": "java",
"projectYear": "2022",
"projectYear": "2024",
"teamNumber": 5572
}
2 changes: 1 addition & 1 deletion WPILib-License.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2009-2021 FIRST and other WPILib contributors
Copyright (c) 2009-2023 FIRST and other WPILib contributors
All rights reserved.

Redistribution and use in source and binary forms, with or without
Expand Down
14 changes: 8 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
plugins {
id "java"
id "edu.wpi.first.GradleRIO" version "2023.4.1"
id "edu.wpi.first.GradleRIO" version "2024.1.1"
}

sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

def ROBOT_MAIN_CLASS = "frc.robot.Main"

Expand Down Expand Up @@ -65,9 +67,8 @@ dependencies {
nativeRelease wpi.java.vendor.jniRelease(wpi.platforms.desktop)
simulationRelease wpi.sim.enableRelease()

testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.8.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
testImplementation 'org.junit.jupiter:junit-jupiter:5.10.1'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

test {
Expand All @@ -84,6 +85,7 @@ wpi.sim.addDriverstation()
// knows where to look for our Robot Class.
jar {
from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
from sourceSets.main.allSource
manifest edu.wpi.first.gradlerio.GradleRIOPlugin.javaManifest(ROBOT_MAIN_CLASS)
duplicatesStrategy = DuplicatesStrategy.INCLUDE
}
Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
4 changes: 3 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=permwrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=permwrapper/dists
35 changes: 22 additions & 13 deletions gradlew
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
Expand All @@ -80,13 +80,11 @@ do
esac
done

APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit

APP_NAME="Gradle"
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
Expand Down Expand Up @@ -133,22 +131,29 @@ location of your Java installation."
fi
else
JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi

# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
Expand Down Expand Up @@ -193,11 +198,15 @@ if "$cygwin" || "$msys" ; then
done
fi

# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'

# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.

set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
Expand Down
1 change: 1 addition & 0 deletions gradlew.bat
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

Expand Down
5 changes: 4 additions & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ pluginManagement {
repositories {
mavenLocal()
gradlePluginPortal()
String frcYear = '2023'
String frcYear = '2024'
File frcHome
if (OperatingSystem.current().isWindows()) {
String publicFolder = System.getenv('PUBLIC')
Expand All @@ -25,3 +25,6 @@ pluginManagement {
}
}
}

Properties props = System.getProperties();
props.setProperty("org.gradle.internal.native.headers.unresolved.dependencies.ignore", "true");
9 changes: 9 additions & 0 deletions src/main/java/frc/lib/math/Conversions.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ public static double degreesToFalcon(double degrees, double gearRatio) {
return ticks;
}

public static double degreesToFalconRotation(double degrees, double gearRatio) {
return degrees / (360.0 / gearRatio);
}

/**
* @param velocityCounts Falcon Velocity Counts
* @param gearRatio Gear Ratio between Falcon and Mechanism (set to 1 for Falcon RPM)
Expand Down Expand Up @@ -80,6 +84,11 @@ public static double mpsToFalcon(double velocity, double circumference, double g
return wheelVelocity;
}

public static double mpsToFalconRotations(double velocity, double circumference,
double gearRatio) {
return (velocity / circumference) * gearRatio;
}

/**
* Normalize angle to between 0 to 360
*
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/frc/lib/util/FieldConstants.java
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ public static final class StagingLocations {
* the rightmost point on the BLUE ALLIANCE wall.
*/
public static Translation2d allianceFlip(Translation2d translation) {
if (DriverStation.getAlliance() == Alliance.Red) {
if (DriverStation.getAlliance().get() == Alliance.Red) {
return new Translation2d(fieldLength - translation.getX(), translation.getY());
} else {
return translation;
Expand All @@ -261,7 +261,7 @@ public static Translation2d allianceFlip(Translation2d translation) {
* @return Pose2d flipped to Red Alliance
*/
public static Pose2d allianceFlip(Pose2d pose) {
if (DriverStation.getAlliance() == Alliance.Red) {
if (DriverStation.getAlliance().get() == Alliance.Red) {
return new Pose2d(fieldLength - pose.getX(), pose.getY(),
new Rotation2d(-pose.getRotation().getCos(), pose.getRotation().getSin()));
} else {
Expand Down
42 changes: 26 additions & 16 deletions src/main/java/frc/lib/util/swerve/SwerveModule.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
package frc.lib.util.swerve;

import com.ctre.phoenix.motorcontrol.ControlMode;
import com.ctre.phoenix.motorcontrol.DemandType;
import com.ctre.phoenix.motorcontrol.can.TalonFX;
import com.ctre.phoenix.sensors.CANCoder;
import com.ctre.phoenix6.configs.CANcoderConfiguration;
import com.ctre.phoenix6.configs.FeedbackConfigs;
import com.ctre.phoenix6.configs.TalonFXConfiguration;
import com.ctre.phoenix6.controls.DutyCycleOut;
import com.ctre.phoenix6.controls.PositionDutyCycle;
import com.ctre.phoenix6.controls.VelocityDutyCycle;
import com.ctre.phoenix6.hardware.CANcoder;
import com.ctre.phoenix6.hardware.TalonFX;
import edu.wpi.first.math.controller.SimpleMotorFeedforward;
import edu.wpi.first.math.geometry.Rotation2d;
import edu.wpi.first.math.kinematics.SwerveModulePosition;
Expand All @@ -21,10 +25,13 @@ public class SwerveModule {
private double angleOffset;
private TalonFX angleMotor;
private TalonFX driveMotor;
private CANCoder angleEncoder;
private CANcoder angleEncoder;
private double lastAngle;
SimpleMotorFeedforward feedforward = new SimpleMotorFeedforward(Constants.Swerve.driveKS,
Constants.Swerve.driveKV, Constants.Swerve.driveKA);
private DutyCycleOut drivePower = new DutyCycleOut(0);
private VelocityDutyCycle driveSpeed = new VelocityDutyCycle(0);
private PositionDutyCycle angleMotorPosition = new PositionDutyCycle(0);

/**
* Creates an instance of a Swerve Module
Expand All @@ -37,7 +44,7 @@ public SwerveModule(int moduleNumber, frc.lib.util.swerve.SwerveModuleConstants
angleOffset = constants.angleOffset;

/* Angle Encoder Config */
angleEncoder = new CANCoder(constants.cancoderID);
angleEncoder = new CANcoder(constants.cancoderID);
configAngleEncoder();

/* Angle Motor Config */
Expand Down Expand Up @@ -72,12 +79,13 @@ public void setDesiredState(SwerveModuleState desiredState, boolean isOpenLoop)

if (isOpenLoop) {
double percentOutput = desiredState.speedMetersPerSecond / Constants.Swerve.maxSpeed;
driveMotor.set(ControlMode.PercentOutput, percentOutput);
driveMotor.setControl(drivePower.withOutput(percentOutput));
} else {
double velocity = Conversions.mpsToFalcon(desiredState.speedMetersPerSecond,
double velocity = Conversions.mpsToFalconRotations(desiredState.speedMetersPerSecond,
Constants.Swerve.wheelCircumference, Constants.Swerve.driveGearRatio);
driveMotor.set(ControlMode.Velocity, velocity, DemandType.ArbitraryFeedForward,
feedforward.calculate(desiredState.speedMetersPerSecond));
driveMotor.setControl(driveSpeed.withVelocity(velocity)
.withFeedForward(feedforward.calculate(desiredState.speedMetersPerSecond)));

}

double angle =
Expand All @@ -86,8 +94,8 @@ public void setDesiredState(SwerveModuleState desiredState, boolean isOpenLoop)
: desiredState.angle.getDegrees(); // Prevent rotating module if speed is
// less then 1%. Prevents
// Jittering.
angleMotor.set(ControlMode.Position,
Conversions.degreesToFalcon(angle, Constants.Swerve.angleGearRatio));
angleMotor.setControl(angleMotorPosition.withPosition(
Conversions.degreesToFalconRotation(angle, Constants.Swerve.angleGearRatio)));
lastAngle = angle;
}

Expand All @@ -98,6 +106,8 @@ private void resetToAbsolute() {
double absolutePosition = Conversions.degreesToFalcon(
getCanCoder().getDegrees() - angleOffset, Constants.Swerve.angleGearRatio);
angleMotor.setSelectedSensorPosition(absolutePosition);
FeedbackConfigs as = new FeedbackConfigs();
angleMotor.
}

/**
Expand Down Expand Up @@ -130,15 +140,15 @@ public SwerveModulePosition getPosition() {
* Configure the Angle motor CANCoder
*/
private void configAngleEncoder() {
angleEncoder.configFactoryDefault();
angleEncoder.getConfigurator().apply(new CANcoderConfiguration());
angleEncoder.configAllSettings(Robot.ctreConfigs.swerveCanCoderConfig);
}

/**
* Configure the Angle motor
*/
private void configAngleMotor() {
angleMotor.configFactoryDefault();
angleMotor.getConfigurator().apply(new TalonFXConfiguration());
angleMotor.configAllSettings(Robot.ctreConfigs.swerveAngleFXConfig);
angleMotor.setInverted(Constants.Swerve.angleMotorInvert);
angleMotor.setNeutralMode(Constants.Swerve.angleNeutralMode);
Expand All @@ -149,7 +159,7 @@ private void configAngleMotor() {
* Configure the Drive motor
*/
private void configDriveMotor() {
driveMotor.configFactoryDefault();
driveMotor.getConfigurator().apply(new TalonFXConfiguration());
driveMotor.configAllSettings(Robot.ctreConfigs.swerveDriveFXConfig);
driveMotor.setInverted(Constants.Swerve.driveMotorInvert);
driveMotor.setNeutralMode(Constants.Swerve.driveNeutralMode);
Expand All @@ -162,7 +172,7 @@ private void configDriveMotor() {
* @return 2d rotation of the module
*/
public Rotation2d getCanCoder() {
return Rotation2d.fromDegrees(angleEncoder.getAbsolutePosition());
return Rotation2d.fromDegrees(angleEncoder.getAbsolutePosition().getValueAsDouble());
}

/**
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/frc/robot/Constants.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package frc.robot;

import com.ctre.phoenix.motorcontrol.NeutralMode;
import com.ctre.phoenix6.signals.NeutralModeValue;
import edu.wpi.first.math.geometry.Rotation3d;
import edu.wpi.first.math.geometry.Transform3d;
import edu.wpi.first.math.geometry.Translation2d;
Expand Down Expand Up @@ -113,8 +113,8 @@ public static final class Swerve {
public static final double maxAngularVelocity = 2;

/* Neutral Modes */
public static final NeutralMode angleNeutralMode = NeutralMode.Coast;
public static final NeutralMode driveNeutralMode = NeutralMode.Brake;
public static final NeutralModeValue angleNeutralMode = NeutralModeValue.Coast;
public static final NeutralModeValue driveNeutralMode = NeutralModeValue.Brake;

/* Motor Inverts */
public static final boolean driveMotorInvert = false;
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/frc/robot/commands/TeleopSwerve.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
package frc.robot.commands;

import edu.wpi.first.math.geometry.Translation2d;
import edu.wpi.first.wpilibj2.command.CommandBase;
import edu.wpi.first.wpilibj2.command.Command;
import edu.wpi.first.wpilibj2.command.button.CommandXboxController;
import frc.robot.Constants;
import frc.robot.subsystems.Swerve;

/**
* Creates an command for driving the swerve drive during tele-op
*/
public class TeleopSwerve extends CommandBase {
public class TeleopSwerve extends Command {

private boolean fieldRelative;
private boolean openLoop;
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/frc/robot/commands/TestTransform.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@
import edu.wpi.first.math.geometry.Transform2d;
import edu.wpi.first.math.kinematics.ChassisSpeeds;
import edu.wpi.first.math.trajectory.TrapezoidProfile;
import edu.wpi.first.wpilibj2.command.CommandBase;
import edu.wpi.first.wpilibj2.command.Command;
import frc.lib.util.FieldConstants;
import frc.robot.Constants;
import frc.robot.subsystems.Swerve;

/**
* Test April tag transform
*/
public class TestTransform extends CommandBase {
public class TestTransform extends Command {

private Swerve swerve;
private Transform2d transform2d;
Expand Down
Loading

0 comments on commit a432db7

Please sign in to comment.