ARCHIVED.
The GUI is broken, but the vendordep is (to our knowledge) usable for building projects against WPILib's stable 2025 release.
These notes will be replaced by a larger announcement post soon. The below is meant for users upgrading from 2025 beta.
Use the vendor dependencies panel in VS Code (recommended) or the URL https://lib.choreo.autos/dep/ChoreoLib2025.json
Major Changes since Beta 9
- 2025 field
- Thanks to @mjansen4857 for giving us a copy of the PathPlanner field background to adapt for Choreo.
- Trajectories will be rotated around the field center, but retain a blue origin.
- If upgrading paths, note that the default Keep In Rectangle dimensions need to be updated manually. Use a width of
17.548 m
and a height of8.052 m
- Unitless values are no longer accepted and autofilled with a default unit in expression inputs.
- Variable names can be used without parentheses; a bugfix corrected this for
.x
,.y
, and.heading
inside pose variables. - In the list of paths, a generate button replaces the normal icon if the path is different than what was last generated.
- This mechanic is why the .traj files include a
snapshot
section.
- This mechanic is why the .traj files include a
- AutoBindings
- Removed from the AutoFactory constructor and made package-private.
- Use
AutoFactory.bind(String eventName, Command command)
instead, which now returns theAutoFactory
for chaining.
AutoTrajectory.resetOdometry()
is added, as a replacement toAutoRoutine.resetOdometry(AutoTrajectory)
, which no longer exists.- AutoChooser
- We intend to ensure that the command creator functions are only run when the alliance is correct. Thus:
- Changing alliance will re-run the creator.
- In simulation only, going directly from Disconnected to Autonomous for the first run will generate the command on
autonomousInit
. In real life, the auto will stop with a dashboard alert, since this is an unrealistic scenario.
- Many bugs with the library and the UI have been fixed.
What's Changed
- Clear .chor variables list when deserializaing by @shueja in #1055
- [trajoptlib] Reset differential cancellation flag by @calcmogul in #1058
- Rename LocalProgressUpdate::DiffTrajectory to DifferentialTrajectory, fixing mismatch with TS by @shueja in #1059
- Make rounding of trajectory sample fields normalize -0.0 to 0.0 by @shueja in #1062
- [ci] Upgrade to wpiformat 2024.51 by @calcmogul in #1064
- Simplify logic when receiving a successful generation in UI by @shueja in #1065
- [docs] Fix annotations in ChoreoLib Trajectory API documentation by @bryceroethel in #1069
- Add docs build instructions by @DeltaDizzy in #1052
- Remove numbers as valid input for dimensioned exprs by @shueja in #1067
- [docs] Update home page screenshot by @spacey-sooty in #1040
- [docs] Document Settings Improvements by @DeltaDizzy in #1068
- [docs] Fix requirements.txt by @bryceroethel in #1071
- [choreolib] AutoChooser Fixes and Sim behavior changes by @oh-yes-0-fps in #1057
- Fix controllers in getting started docs by @spacey-sooty in #1077
- [Choreolib] cleaned up various parts of the non-user facing code by @oh-yes-0-fps in #1048
- Add Python script for updating field dimensions across the project by @shueja in #1079
- Make AutoBindings package private by @spacey-sooty in #1076
- Clear undo history when opening a project. by @shueja in #1074
- [docs] Fix formatting of Auto Bindings section by @bryceroethel in #1083
- Use autogenerated field dimensions in default keep-in rectangle by @shueja in #1085
- [trajoptlib] Fix keep-out polygon distance by @calcmogul in #1086
- Remove dimension tooltips by @shueja in #1075
- Simpler ExpressionInput internals by always showing the same internal variable. by @shueja in #1073
- Directly depend on global variables store in expression stores by @shueja in #1084
- Add a way to clear the path list that properly sets activePath to default by @shueja in #1082
- [docs] Update saving page by @shueja in #1089
- [docs] Remove broken link to motor calculator docs by @shueja in #1091
- [docs] Update the view options page by @shueja in #1090
- [trajoptlib] Upgrade Sleipnir by @calcmogul in #1094
- Display a different icon if the trajectory is changed since being generated by @shueja in #1093
- Refactor path gradients and make them properly support diff drive by @calcmogul in #1095
- [trajoptlib] Clean up InputModulus() by @calcmogul in #1096
- [trajoptlib] Use direct collocation for diff drive dynamics constraints by @calcmogul in #1097
- [trajoptlib] Upgrade to fmt 11.1.1 by @calcmogul in #1098
- Remove file associations for STL headers by @calcmogul in #1100
- [trajoptlib] Normalize Rotation2d constructor arguments by @calcmogul in #1101
- [choreolib] Fix SwerveSample docs typo by @calcmogul in #1103
- [trajoptlib] Const-qualify solution passed to callback by @calcmogul in #1105
- [trajoptlib] Remove anti-tunneling constraint by @calcmogul in #1109
- Give AutoFactory.trajectoryCmd() an actual routine that runs by @shueja in #1110
- [trajoptlib] Hoist decision variables out of nested loops by @calcmogul in #1113
- [choreolib] Rename Alerts group to Choreo Alerts by @spacey-sooty in #1112
- Restore document from snapshot if project opening fails by @shueja in #1081
- Fix bug preventing "pose.x" from being transformed by @shueja in #1087
- Editing paths docs by @spacey-sooty in #1039
- 2025 Update: field and WPILib by @shueja in #1107
- Alert QoL + Docs updates by @Daniel1464 in #1111
- Update version to v2025.0.0 by @shueja in #1114
Full Changelog: v2025.0.0-beta-9...v2025.0.0