Skip to content

3061 Lib v2024.3.0

Latest
Compare
Choose a tag to compare
@gcschmit gcschmit released this 26 Jul 18:11
· 1 commit to main since this release
684fe90

This is the final release for 2024 Crescendo season. It reflects the 3061-relevant portions of our 2024 robot code as of the last competition (IRI) plus a few minor bug fixes.

We will shift our focus to preseason projects, which will primarily be developed in the frc-software-2024 repository, which is also publicly accessible. The next 3061-lib release will be a 2025 beta that reflects the results of these preseason projects.

The changes since the v2024.2.0 release are categorized by topic in rough order of significance.

Drivetrain Subsystem

  • add ability to override rotation during PathPlanner paths (useful for targeting)
  • constrain the robot pose to stay on the field, which doesn't happen when the wheels slip when colliding with the field walls
  • reset the robot's pose to the previous pose when the pose "teleports" (i.e., changes much more than possible); why this happens rarely is still not understood but may have something to do with vision pose estimates with invalid timestamps
  • add accessor to get measured angular velocity of the drivetrain
  • add accessor to get the estimated robot pose in the future based on current velocity
  • tuned system test for drivetrain
  • add enabled inputs for drive and steer motors
  • fix bug where swerve states in inputs were not initialized
  • use new initial configs for drie and steer motors in CTRE's SwerveModuleConstantsFactory to specify current limits
  • fix bug where closed loop reference and error signals were not associated with current control mode and, therefore, returning invalid values
  • add constants for MK4i L3+
  • tune current limits for swerve drive motors
  • remove swerve drive characterization autos (need to use separate project with SysId)
  • add auto command to characterize swerve wheel diameter based on 6328's clever technique
  • fix bug in DriveToPose to account for blue field origin

Simulation

  • use TorqueCurrentFOC for steer control in simulation to match physical robot (CTRE fixed bug preventing this)

Vision

  • change behavior of reset pose to vision to wait until a recent vision pose estimate is available before applying
  • count how many times each camera provides a new estimated pose
  • add ambiguity threshold for including estimated poses from vision
  • attempt to mitigate impact of NT4 bug where timestamps may be in the future by applying a ceiling of the current time
  • only provide a vision-based robot pose if the data is less than 0.5 seconds old
  • tune function to calculate standard deviation for vision pose estimates
  • add input to capture if the estimate is from seeing multiple tags
  • fix bug where multi-tag poses would have an ambiguity of 0, which would result in standard deviations that were too low
  • fix simulation bug where the PhotonPoseEstimator needs to be provided with the transform from the camera to the robot
  • fix simulation bug where cameras added to the vision system sim don't need to have transform applied

LEDs

  • remove duplicate auto finished pulse in LEDs class
  • remove distraction LED pattern
  • add fire LED pattern
  • add orange pulse LED pattern
  • add support for GRB LED strips connected to roboRIO

Debugging

  • add names to all scheduled commands to facilitate debugging

PathPlanner Autos

  • put tuning auto paths in PathPlanner folders
  • adjust PathPlanner defaults for 2024 robot
  • add start point auto that sets the robot's pose to the specified position
  • run follow path warmup command in robotInit to force loading of PathPlanner's Java classes

Robot Configurations

  • remove 2023 robot configurations
  • add 2024 Artemis robot configurations
  • add practice board configuration for testing off-robot with basic electrical board

Field2d

  • consolidate management of current alliance color in Field2d singleton
  • add method to determine if the robot has complete left the alliance side of the field (useful in auto)

Miscellaneous

  • allow all physical toggle switches to trigger when disabled (avoids need to force toggle when enabled)
  • update to latest vendor deps
  • display LEDs and DIO ports in the sim GUI
  • add workaround from CTRE to ensure that the CANivore has been enumerated by the root hub and therefore, hoot files will be properly generated
  • add DEMO_MODE to Constants that slows robot's velocity and displays alternative LED patterns

What's Changed

Full Changelog: v2024.2.0...v2024.3.0