Upgrading to 2025.1.0

This commit is contained in:
thenetworkgrinch
2024-12-09 23:26:04 +00:00
parent 9fe6551d88
commit 4bc6978a20
35 changed files with 1902 additions and 1122 deletions

View File

@@ -2,7 +2,7 @@ package swervelib.parser;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import edu.wpi.first.math.controller.SimpleMotorFeedforward;
import edu.wpi.first.math.geometry.Pose2d;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
@@ -135,10 +135,7 @@ public class SwerveParser
*/
public SwerveDrive createSwerveDrive(double maxSpeed)
{
return createSwerveDrive(SwerveMath.createDriveFeedforward(physicalPropertiesJson.optimalVoltage,
maxSpeed,
physicalPropertiesJson.wheelGripCoefficientOfFriction),
maxSpeed);
return createSwerveDrive(maxSpeed, Pose2d.kZero);
}
/**
@@ -157,48 +154,20 @@ public class SwerveParser
*/
public SwerveDrive createSwerveDrive(double maxSpeed, double angleMotorConversionFactor, double driveMotorConversion)
{
physicalPropertiesJson.conversionFactor.angle = angleMotorConversionFactor;
physicalPropertiesJson.conversionFactor.drive = driveMotorConversion;
return createSwerveDrive(SwerveMath.createDriveFeedforward(physicalPropertiesJson.optimalVoltage,
maxSpeed,
physicalPropertiesJson.wheelGripCoefficientOfFriction),
maxSpeed);
physicalPropertiesJson.conversionFactors.angle.factor = angleMotorConversionFactor;
physicalPropertiesJson.conversionFactors.drive.factor = driveMotorConversion;
return createSwerveDrive(maxSpeed, Pose2d.kZero);
}
/**
* Create {@link SwerveDrive} from JSON configuration directory.
*
* @param driveFeedforward Drive feedforward to use for swerve modules, should be created using
* {@link swervelib.math.SwerveMath#createDriveFeedforward(double, double,
* double)}.
* @param maxSpeed Maximum speed of the robot in meters per second for normal+angular acceleration
* in {@link swervelib.SwerveController} of the robot.
* @param angleMotorConversionFactor Angle (AKA azimuth) motor conversion factor to convert motor controller PID loop
* units to degrees, usually created using
* {@link SwerveMath#calculateDegreesPerSteeringRotation(double, double)}.
* @param driveMotorConversion Drive motor conversion factor to convert motor controller PID loop units to
* meters per rotation, usually created using
* {@link SwerveMath#calculateMetersPerRotation(double, double, double)}.
* @param maxSpeed Maximum speed of the robot in meters per second for normal+angular acceleration in
* {@link swervelib.SwerveController} of the robot
* @param initialPose {@link Pose2d} initial pose.
* @return {@link SwerveDrive} instance.
*/
public SwerveDrive createSwerveDrive(SimpleMotorFeedforward driveFeedforward, double maxSpeed,
double angleMotorConversionFactor, double driveMotorConversion)
{
physicalPropertiesJson.conversionFactor.angle = angleMotorConversionFactor;
physicalPropertiesJson.conversionFactor.drive = driveMotorConversion;
return createSwerveDrive(driveFeedforward, maxSpeed);
}
/**
* Create {@link SwerveDrive} from JSON configuration directory.
*
* @param driveFeedforward Drive feedforward to use for swerve modules, should be created using
* {@link swervelib.math.SwerveMath#createDriveFeedforward(double, double, double)}.
* @param maxSpeed Maximum speed of the robot in meters per second for normal+angular acceleration in
* {@link swervelib.SwerveController} of the robot
* @return {@link SwerveDrive} instance.
*/
public SwerveDrive createSwerveDrive(SimpleMotorFeedforward driveFeedforward, double maxSpeed)
public SwerveDrive createSwerveDrive(double maxSpeed, Pose2d initialPose)
{
SwerveModuleConfiguration[] moduleConfigurations =
new SwerveModuleConfiguration[moduleJsons.length];
@@ -217,11 +186,12 @@ public class SwerveParser
moduleConfigurations,
swerveDriveJson.imu.createIMU(),
swerveDriveJson.invertedIMU,
driveFeedforward,
physicalPropertiesJson.createPhysicalProperties());
return new SwerveDrive(
swerveDriveConfiguration,
controllerPropertiesJson.createControllerConfiguration(swerveDriveConfiguration, maxSpeed), maxSpeed);
controllerPropertiesJson.createControllerConfiguration(swerveDriveConfiguration, maxSpeed),
maxSpeed,
initialPose);
}
}