3061 Lib v2023.2.0
This will be the last release based on 2023 software components. Our focus will now shift to 2024 software components, and we plan to release a beta before kickoff updated for these new versions. The changes are categorized by topic in rough order of significance.
Phoenix 6
- add getPhoenix6Licensed method to RobotConfig to determine if a Phoenix 6 Pro license is installed for CTRE devices
- remove getSwerveAngleKF and getSwerveDriveKF methods from RobotConfig as they are no longer relevant with Phoenix 6
- add setYaw method to GyroIO since this can now be done synchronously; as a result, gyroOffset in Drivetrain has been removed
- replaced GyroIOPigeon2 with GyroIOPigeon2Phoenix6 to port to Phoenix 6
- refactor Conversions to port to Phoenix 6 (supports units used by Phoenix 6)
- replace custom swerve module optimize method with SwerveModuleState.optimize which is compatible with Phoenix 6 behavior
- add closed-loop errors to SwerveModuleIOInputs to facilitate tuning (fixes log PID controller error #44)
- change current and temperature inputs to single values instead of arrays
- add stator and supply current to SwerveModuleIOInputs (previously was just stator)
- replace SwerveModuleIOTalonFX with SwerveModuleIOTalonFXPhoenix6 to port to Phoenix 6. Key features:
- FOC enabled if Phoenix 6 is licensed
- all odometry-related signals are synchronized if Phoenix 6 is licensed (includes gyro and is managed in Drivetrain)
- leverages high-fidelity simulation of CTRE hardware devices
- incorporate 254 fix for swerve drift while rotating; see convertFromDiscreteChassisSpeedsToContinuous method in Drivetrain
- add logging of autonmous paths to AdvantageScope to assist with tuning (fixes log PID controller error #44)
- use actual timestamp when updating pose estimator instead of time from AdvantageKit
- log measured swerve module states in addition to serve module state setpoints such that both can be displayed in AdvantageScope
- port SubsystemIOTalonFX to Phoenix 6
- increase DRIVE_CONTINUOUS_CURRENT_LIMIT for swerve drive motor to 50 amps
- leverage Phoenix 6 continuous wrap feature
- use Fused CANcoder as feedback sensor for swerve angle control
Fault Reporter
- adapted FaultReporter (originally AdvancedSubsystem), SubsystemFault, SelfChecking classes from Ranger Robotics
- FaultReporter is a singleton with which subsystem can register to periodically perform checks on hardware devices for faults and can register to perform automated subsystem tests (e.g., pre-match checks)
- FaultReporter publishes results via Network Tables and is intended to be used in conjunction with Ranger Robotics’s pit display.
Serve Characterization
- update the "Swerve Drive Characterization" auto mode to use a larger range of voltages and to use the linear least-squares method (Moore-Penrose pseudoinverse) to calculate kS, kV, and kA (fixes update characterization to include kA and span a wider range of voltages #43)
- add the "Swerve Rotate Characterization" to characterize the swerve module's rotation mechanism
- add characterization constants for Nova
What's Changed
- update README for 2023.1.0 release by @gcschmit in #41
- Phoenix v6 by @gcschmit in #51
- characterization improvements by @gcschmit in #46
- Characterization fix by @gcschmit in #54
- Pit display by @gcschmit in #48
Full Changelog: v2023.1.0...v2023.2.0