Skip to content

3061 Lib v2023.2.0

Compare
Choose a tag to compare
@gcschmit gcschmit released this 04 Nov 15:09
· 26 commits to main since this release
d6ba072

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

Full Changelog: v2023.1.0...v2023.2.0