Releases: Team537/RobotCode2025
v4.0.0
What's Changed
- pref(drive): optimize update frequencies for gyroscope and motors by @CameronMyhre in #114
- Hotfix/narwhal climber constants update by @iapcmeimpcij2pjncr in #116
- feature: change climber back to two button control and update constants for climb speed and intake angle by @iapcmeimpcij2pjncr in #118
- Hotfix/update wrist climber by @iapcmeimpcij2pjncr in #119
- Hotfix/update wrist climber by @CameronMyhre in #120
- chore(build): update SpotBugs task to ignore failures by @CameronMyhre in #121
- GitHub/temp dissable spotbugs by @CameronMyhre in #122
- fix: update setpoints for L3 and intaking by @iapcmeimpcij2pjncr in #123
- fix: update setpoints for L3 and intaking by @CameronMyhre in #124
- fix: enable photon pose estimator by @iapcmeimpcij2pjncr in #125
- fix: enable photon pose estimator by @CameronMyhre in #126
- fix: drop L3 elevator height by 0.03 by @iapcmeimpcij2pjncr in #127
- Hotfix/update l3 setpont by @iapcmeimpcij2pjncr in #128
- feat: add score offset to smart dashboard by @iapcmeimpcij2pjncr in #129
- feat: add delay to coral score command to prevent premature score and add climb constants to smart dashboard by @iapcmeimpcij2pjncr in #132
- Sync main -> dev after comp by @shortstuffsushi in #131
- fix: update narwhal gear motor reduction to reflect mechanical changes by @iapcmeimpcij2pjncr in #135
- center and multi score routines by @shortstuffsushi in #133
- fix(swerve): correct control frame period calculation by @CameronMyhre in #137
- feat(robot): add tush push starting transform for autonomous routines by @CrumblzTheEgg in #134
- fix: reduce tolerance and remove wait command from narwhal wrist and narwhal assembly score command by @iapcmeimpcij2pjncr in #138
- feat: Add Data Logging with default settings by @quipp in #136
- feat(vision): improve PhotonVision accuracy by @CameronMyhre in #139
- Release/v4.0.0 by @CameronMyhre in #140
Full Changelog: v3.0.3...v4.0.0
v3.0.3
What's Changed
- Release/v3.0.0 by @CameronMyhre in #108
- Hotfix/center auto fix by @CrumblzTheEgg in #110
- Hotfix/right auto intake fix by @CrumblzTheEgg in #112
- Hotfix/narwhal climber constants update by @iapcmeimpcij2pjncr in #115
- feature: change climber back to two button control and update constants for climb speed and intake angle by @iapcmeimpcij2pjncr in #117
Full Changelog: v3.0.2...v3.0.3
v3.0.2
What's Changed
- fix(RobotContainer): update intake command parameter by @CrumblzTheEgg in #111
- pref(drive): optimize update frequencies for gyroscope and motors by @CameronMyhre in #113
Full Changelog: v3.0.1...v3.0.2
v3.0.1
What's Changed
- fix(robot): update command for upper assembly intake by @CrumblzTheEgg in #109
Full Changelog: v3.0.0...v3.0.1
v3.0.0
What's Changed
- Release/v2.1.0 by @CameronMyhre in #85
- Feature/upper assembly interface by @CrumblzTheEgg in #86
- feat(field): add ReefScoringLocation enum by @CameronMyhre in #89
- chore(build): update Gson dependency to version 2.12.1 by @CameronMyhre in #90
- feat: create the NarwhalUpperAssembly & made minor improvements to formatting by @iapcmeimpcij2pjncr in #93
- Create the NarwhalUpperAssembly & made minor improvements to formatting by @iapcmeimpcij2pjncr in #94
- feature/add general math classes by @CameronMyhre in #92
- feature/update oceanview data access by @CameronMyhre in #91
- chore(vendordeps): update REVLib to version 2025.0.3 by @CameronMyhre in #96
- feat(network): add port forwarding for photonvision2.local by @CameronMyhre in #97
- feat(vision): add time synchronization with Raspberry Pi by @CameronMyhre in #95
- Feature/narwhal autonomous commands by @iapcmeimpcij2pjncr in #98
- feature/setup odometry cameras by @CameronMyhre in #99
- elastic integration by @shortstuffsushi in #78
- chore: update GradleRIO and PathplannerLib versions by @CameronMyhre in #102
- feat(odometry): enhance odometry update frequency by @CameronMyhre in #100
- Feature/drive enhancements by @CrumblzTheEgg in #103
- Clean Up + Tush Push boolean by @shortstuffsushi in #104
- Drop starting position from elastic by @shortstuffsushi in #105
- Bugfix/pose fixes by @CrumblzTheEgg in #106
- Release/v3.0.0 by @CameronMyhre in #107
New Contributors
- @shortstuffsushi made their first contribution in #78
Full Changelog: v2.1.0...v3.0.0
v2.1.0
GitHub Release Notes: RobotCode2025 v2.1.0
We are excited to announce version 2.1.0 of our 2025 competition code! This release features several code enhancements, autonomous driving functionality, and a DriveSubsystem
rework.
Changelog
🚀 New Features
- Narwhal Mechanisms
- Added functionality to the Narwhal elevator mechanism.
- Added controller support for teleop control of mechanisms.
- Squid Mechanisms
- Added Squid manipulator mechanism.
- Pathfinding Funcunality
- Added full pathfinding support to the field. The robot is now able to navigate around detected obstacles in real time.
- Comprehensive NavGrid to describe the entire field.
- Autonomous Movement
- Added path following support.
🛠️ Enhancements
- Narwhal Mechanism Code
- Cleaned up code and improved documentation.
- Drive Subsystem
- Reworked
DriveSubsystem
to allow for more comprehensive mechanism control, leveraging mathematical models for finer control.
- Reworked
Usage Notes
For Drive Team:
- Mechanism Improvements
- More comprehensive mechanism code is available on main.
- In the event of issue, bugfixes should take minimal time to complete.
For Developers:
- Code Improvements
- Narwhal code is much cleaner.
- DrvieSubsystem Rework
- The
DrvieSubsystem
is not much more comprehensive
- The
v2.0.0
GitHub Release Notes: RobotCode2025 v2.0.0
We are excited to announce version 2.0.0 of our 2025 robot code! This release is jam-packed with features and improvements, including several upper assembly enhancements, comment improvements, and even software to handle our custom vision solution, OceanView. Below is a more specific breakdown of what has changed.
Changelog
🚀 New Features
- OceanViewManager
- Introduced the new
OceanViewManager
class, which parses OceanView data from a coprocessor like a Raspberry PI and reduced detection noise by using rolling averages. - Integrates seamlessly with the new
UDPReceiver
andTCPSender
classes, ensuring data is efficiently and reliably gathered.
- Introduced the new
- Driver Camera Support
- Introduced support for using a driver camera. Simply plug in a USB camera into one of the RoboRIO's ports and you'll be able to view it on any dashboard of your choice.
- Elastic Dashboard Support
- Added support of Elastic Dashboard. The current dashboard layout can be found here.
- Gamepad Support
- Added support for controlling Narwhal team's mechanisms with a logitech controller. Currently support is in place for the climber mechanism and wrist.
- Narwhal Mechanisms
- Added a
NarwhalClimber
to control the climber mechanism on the Narwhal's upper assembly.
- Added a
- UpperAssembly Interface
- Added a new
UpperAssembly
interface andUpperAssemblyBase
abstract class to seamlessly integrate both the Squid and Narwhal mechanisms together.
- Added a new
🛠️ Enhancements
- Squid Mechanisms
- Tuned PID values for several mechanisms, allowing for more responsive and fluid mechanism control.
📝 Code Quality
- Improved comment quality, ensuring consistency and descriptiveness.
- Unified
util
andutils
intoutil
, organizing related files under subfolders.
Breaking Changes
- Unified
util
andutils
intoutil
, organizing related files under subfolders. Make sure imports are updated accordingly.
Usage Notes
For Drive Team:
- Narwhal and Squid Enhancements
- The Narwhal mechanisms are now much more comprehensive. Expect them to control smoothly
- The Squid mechanisms should be more fluid and responsive.
- Upper assembly type currently has to be changed in the code. If you need this adjusted, let Autonomy team know.
For Developers:
- Comment Improvements
- Everything should be much more comprehensibly documented, making development much easier.
- Util Folder Reorganization
- The
util
folder was reorganized to be easier to navigate. Related files are now grouped together. Make sure you update new imports acordingly.
- The
v1.4.0
GitHub Release Notes: RobotCode2025 v1.4.0
We are excited to announce v1.4.0, featuring a major rework of the drive subsystem with Kraken motor integration, improved PID tuning, and better motor control configurations. These enhancements improve drive performance, flexibility, and stability while keeping the code organized and maintainable. Below is a detailed breakdown of the updates.
Changelog
🚀 New Features
- Kraken Motor Drive System
- Introduced mid-match drive switching, allowing dynamic selection of different drive and turning motor types.
- Implemented Field-Oriented Control (FOC) for more precise and efficient motor operation.
- Added separate commands for manual driving, improving subsystem readability and modularity.
- Created a configuration file to centralize and streamline motor configurations.
🛠️ Enhancements
- Kraken Motor Behavior Fixes
- Added feedforward compensation to reduce steady-state error and improve control stability.
- Refined PID constants and conversion factors for better turning and driving motor performance.
- Drive Subsystem Refinements
- Improved turning motor control, fixing prior issues affecting responsiveness.
- Adjusted motor IDs to match original configurations, ensuring proper mapping across the system.
📝 Code Quality
- Refactored Configurations
- Organized configurations into a dedicated file, improving maintainability and reducing redundancy.
- Enhanced command structure for better separation of manual and automated drive handling.
Usage Notes
For Drive Team:
- Drive System Adjustments
- The ability to switch drive and turning motors mid-match allows greater adaptability during competition.
- Expect smoother and more responsive motor performance due to feedforward improvements and PID tuning.
- Field-Oriented Control (FOC) should provide better handling, particularly in high-precision scenarios.
For Developers:
- Subsystem Improvements
- The drive system now follows a cleaner, more modular structure, making further adjustments easier.
- The new config file simplifies tuning and modification of motor settings.
- Refactored Kraken motor behavior ensures long-term reliability and flexibility in future updates.
v1.3.0
GitHub Release Notes: FRC Project v1.3.0
We’re excited to release v1.3.0, which introduces the Squid Climber and Squid Manipulator, along with improved documentation and updates to GitHub Actions. This release enhances robot functionality, improves code maintainability, and ensures better development workflows. Below is a detailed breakdown of the changes.
🚀 New Features
- Squid Climber
- Added a new climber for the Squid upper assembly, including manual controls.
- Enables controlled climbing during endgame maneuvers.
- Squid Manipulator
- Introduced a subsystem to control roller mechanisms for gripping and releasing game elements.
- Includes methods to control roller speed and angles for precision handling.
- Does not include sensor-based automation yet—future updates will incorporate feedback mechanisms.
🛠️ Enhancements
- Comprehensive Javadoc Documentation
- Detailed documentation for
SquidClimber
andSquidManipulator
. - Documented methods, constructors, and fields with clear descriptions.
- Improved readability by adding inline comments explaining configuration steps.
- Updated
SquidClimberPosition
enum with descriptions for each constant, making state management clearer.
- Detailed documentation for
- GitHub Actions Update
- Upgraded upload-artifact action to version 4 for better performance and reliability.
- Reformatted YAML files with improved indentation for better maintainability.
📝 Code Quality
- Code Structure Improvements
- Merged latest changes from dev to ensure compatibility.
- Improved code readability and maintainability across multiple files.
Usage Notes
For Drive Team:
- Squid Climber & Manipulator
- Climbing Mechanism: The Squid Climber allows manual control for climbing; ensure proper engagement during endgame.
- Roller Control: The Squid Manipulator now enables finer control over object handling. Expect refinements as sensor data integration is added.
For Developers:
- New Subsystems
- Squid Climber and Squid Manipulator subsystems are now modular and can be extended with automation in future iterations.
- Code is fully documented—refer to Javadoc comments for detailed implementation.
- GitHub Actions
- Developers should experience smoother CI/CD processes with the updated GitHub Actions configurations.
v1.2.0
GitHub Release Notes: RobotCode2025 v1.2.0
We are excited to announce v1.2.0, a release that includes significant enhancements to the vision system, odometry, subsystem architecture, and overall code quality. This update also introduces new subsystems and utility features, ensuring better performance and a streamlined development process. Below is the comprehensive breakdown of changes included in this release.
Changelog
🚀 New Features
- Vision Odometry Integration
- Added
VisionOdometry
class to integrate vision-based pose estimates with drivetrain odometry. - Enhanced
PhotonVisionCamera
for improved pose estimation. - Constants updated with a new pose strategy for
PhotonPoseEstimator
. - Modified
RobotContainer
to include theVisionOdometry
subsystem and camera setup. DriveSubsystem
now includes a method to retrieve theSwerveDrivePoseEstimator
.
- Added
- LED Manager and Configurations
- Introduced the
LEDManager
class to manage LED patterns dynamically. - Added an
LEDConfiguration
enum for customizable LED states. - Organized subsystems with
LEDManager
for consistent architecture.
- Introduced the
- Unified Vision and Drive Odometry
- Combined odometry updates for vision and drivetrain for seamless pose estimation.
- Improved thread safety with a synchronized
getRobotPose()
method.
- Narwhal Mechanisms
- Added subsystems for the Narwhal Intake-Outtake and Narwhal Wrist Mechanism, including temporary constants for control positions.
- Updated comments and documentation for clarity and maintainability.
- Improved Drive Speeds
- Increased drive speeds and accelerations to theoretical limits, fully tested for reliability and performance.
🛠️ Enhancements
- Vision System Improvements
- Introduced camera stream forwarding using PortForwarder, enabling live camera streams via the robot’s network.
- Added constants for multiple camera setups, including front and side cameras, to enhance vision system flexibility.
- Incorporated new pose estimation strategies and Transform3d imports for better positioning and fallback mechanisms.
- Field Debugging and Display
- Integrated Field2d for visual debugging of robot positions on the SmartDashboard.
- Improved periodic methods in DriveSubsystem and VisionOdometry for consistent pose updates.
- Restructured Utilities and Autonomous Configuration
- Moved Alliance and AutonomousRoutine enums to a new Autonomous package for better organization.
- Updated imports and configurations in the main container.
📝 Code Quality
- Documentation and Comments
- Enhanced Javadoc comments across multiple classes, including DriveSubsystem, SwerveModule, and utility classes.
- Added author tags and version information for improved traceability.
- Reorganized subsystem documentation for clarity.
- Style Improvements
- Removed debug print statements from the vision and drive subsystems to clean up console output.
- Reformatted comments for better readability and consistency.
- Improved variable naming conventions and removed unused imports.
- Thread Safety
- Added synchronization to getRobotPose to prevent concurrency issues.
🐛 Bug Fixes
- AprilTag Field Layout
- Updated AprilTag field layout from 2024Crescendo to 2025Reefscape for current season compatibility.
- Configuration and Constants
- Resolved duplicate constant declarations in the configuration files.
- GitHub Actions Fixes
- Addressed issues with Gradle builds, SpotBugs analysis, and PMD reports.
Usage Notes
For Drive Team:
- Vision and Odometry
- The updated vision system integrates seamlessly with odometry, enhancing autonomous accuracy. Ensure the PhotonVision system is calibrated correctly on the field.
- Use the SmartDashboard’s Field2d visualization for real-time debugging of robot positions.
- LED Configurations
- LED patterns can now be dynamically managed. Patterns will indicate the current robot state or match phase for better situational awareness.
- Drive Performance
- With increased drive speeds and acceleration limits, expect faster and more responsive robot movements. Test in practice matches to ensure consistency.
For Developers:
- Subsystem Enhancements
- The new
LEDManager
and Narwhal subsystems offer extensibility for future updates. Review these implementations for consistency with team architecture.
- The new
- Code Maintenance
- Javadoc comments and reorganized utilities make the codebase more maintainable. Follow the updated conventions for future contributions.
- Utilize Field2d and SmartDashboard visualizations for debugging complex autonomous routines.