Pull Requests are always reviewed!
I highly encourage anyone who wants to help make YAGSL better to create pull requests with any modifications you have made that increases your quality of life.
Contributing
YAGSL development is done on the dev
branch of the YAGSL-Example repository here at src/main/java/swervelib
.
All PR's should be based off of and merged into here. YAGSL is propagated often to the other repositories.
2024.4.8.7
Increased logging verbosity to introduce logging modes for the field and data. (PR #185 by 5010 )
2024.4.8.6
Added PIDF helper functions SwerveModule.setDrivePIDF
and SwerveModule.setAnglePIDF
alongside SwerveModule.getDrivePIDF
and SwerveModule.getAnglePIDF
.
Changed feedforward around to use SwerveModule.setFeedforward
instead of directly modifying SwerveModule.feedforward
Renamed SwerveModule.feedforward
to SwerveModule.driveFeedforward
.
Added anti-jitter disabling option via SwerveModule.setAntiJitter
which also modifies the encoder offsets that are pushed to the motor controllers.
2024.4.8.5
Fixed NavX inversion state not taking any affect on the robot.
2024.4.8.4
Updated anti jitter to run before cosine compensation.
2024.4.8.3
Updated Pigeon2Swerve
to use imu.getRotation3d()
instead of handling the CAN timeouts.
Massively reduced memory footprint required. (with help from @TheGamer1002 )
2024.4.8.2
Made CTRE wait for status times static for user modification. CANCoderSwerve.STATUS_TIMEOUT_SECONDS
,TalonFXSwerve.STATUS_TIMEOUT_SECONDS
, and Pigeon2Swerve.STATUS_TIMEOUT_SECONDS
can be modified for desired use case.
2024.4.8.1
Added SwerveDrive.setCosineCompensation
function which can enable and disable cosine compensation as desired, disabled by default in sim because of discrepancies with real robots.
2024.4.8
waitForStatusUpdate
is used instead of refresh
with default timeouts of 20ms.
Added Cache
class to cache variables over a validityPeriod
which will speed up processing and reduce CAN utilization.
Added SwerveDrive.updateCacheValidityPeriods
so the user can change the cache validity period to their hearts desire.
Added SwerveDrive.getModuleMap()
which will fetch all of the SwerveModule
's as a HashMap where the key is the module's filename without .json
so frontleft.json
would have the key of frontleft
.
2024.4.7
Modules will stay in the previous position if the desired velocity is 0.
Cosine compensation is now reported through telemetry as expected.
2024.4.6.3
Updated heading correction to use getOdometryHeading()
instead of getYaw()
(PR #150 by @Blargleflakes ) This does impact heading correction PID values in controllerproperties.json
and may NEED these value's increased by 50x.
Added ability to disable the cosine compensator via config files. (PR #148 by @fovea1959 )
Added SwerveDrive.getGyro()
to return SwerveIMU
.
Added SwerveMotor.setVoltage
and SwerveMotor.getVoltage
and SwerveMotor.getAppliledOutput
to the SwerveMotor
wrapper for future use with SysId.
Added functions to test setting voltage of all swerve module motor.
Added function to find coupling ratio of all swerve modules.
Added function to set steering/azimuth/angle using of all swerve modules.
Added function to find kV for drive motors to move.
Set the angle motor relative encoder position AFTER changing the conversion factor. (Issue #155 )
Fixed module open loop control by sending maxSpeed
to the module. (by @nstrike and @MarshallTappen )
Prevent drive motors from moving when absoluteEncoderOffset
is not tuned. (Found by @fovea1959 )
Updated javadocs for SwerveDrive.addVisionMeasurement
so that they reflect the latest changes.
2024.4.6.1
Added SwerveDrive.getOdometryHeading()
Fixed SwerveDrive.addVisionMeasurement
with vision standard deviations.
Added IMU readings to SmartDashboard via Raw IMU Yaw
(gyro with invert applied) and Adjusted IMU Yaw
(pose estimation rotation).
Changed navx_mxp
to navx_mxp_serial
to notate that it's serial over MXP.
Added warning when using navx_mxp_serial
or navx_usb
.
Added back wheel speed desaturation.
2024.4.6
Simplified SwerveMath.calculateDegreesPerRotation
and SwerveMath.calculateMetersPerRotation
to exclude encoder resolution and add a default.
Changed Module[...] Raw Motor Encoder
to Module[...] Raw Angle Encoder
.
Added Module[...] Raw Drive Encoder
2024.4.5
Fix for TalonFX Angle motor control (by @bhall-ctre , and @Wackyvert 2225 Mentor) .
TalonFX's needed to use conversion factor as gear ratio rather than gear ratio + unit conversion.
Conversion factor needed to be inverted.
setPosition update to reflect current position.
Changed ma3
encoders to be read via analog input. (Discovered by @CoZm0 )
Support 3 wheel swerve module setups with PathPlanner helper function. (PR #139 by @TechnologyMan00 )
Added SwerveModule.getAbsoluteEncoder()
SwerveDrive.getMaximumVelocity()
and SwerveDrive.getMaximumAngularVelocity()
.
Reccommend Tuner X when a compatible Tuner X config is used.
Added ability to change heading correction deadband.
2024.4.2
Added feedforward to SparkMAX's.
Added feedforward to TalonFX's
Fixed TalonFX conversion factor (made by @jkbo6 PR #128 )
Heading Correction update to make it less sensitive (made by @balien-12 PR #132 )
Fixed cosine compensator error (made by @jkbo6 PR #129 )
Last updated 2 months ago