Skip to content

Releases: mjansen4857/pathplanner

PathPlanner v2025.0.0 Beta 5

25 Nov 21:50
2d72e3d
Compare
Choose a tag to compare
Pre-release

This beta release focuses on refactoring the robot config/settings to allow for arbitrary swerve module positions, as well as the ability to add custom features to the robot preview to represent something like an intake. There have also been a few bug fixes.

A couple things to note with this update:

  • PPLib beta 5 requires WPILib beta 2
  • You will need to reconfigure your robot's module positions in the GUI. They will not be automatically translated from the previously set trackwidth/wheelbase
  • If you use the RobotConfig.fromGUISettings() method to load a RobotConfig in code, you MUST regenerate your settings file from the GUI or the method will fail to load the settings. You can do this by changing any setting.
  • If not using the above method, you will need to change the creation of your RobotConfig to use individual module positions, which must be in FL, FR, BL, BR order.

Individual Module Positions

image

The GUI settings menu has been reworked to allow for the configuration of each individual module position, instead of just trackwidth and wheelbase. This allows PathPlanner to properly generate trajectories for robots without rectangular swerve module placement. To help visualize module positions, a robot preview is always shown in the robot config settings.

PPLib has also been updated to utilize individual module positions in RobotConfig.

Robot Features

image

The ability to add custom shapes to the robot preview to represent different robot features has also been added. This can be used to represent things like intakes to make path creation a bit easier, or can be used to draw pretty much anything on the robot preview. Currently, features can be added as a rectangle, circle, or line. The robot's bumpers can now also be offset from the center of the robot's drivetrain.

Full Changelog

New Contributors

v2025.0.0-beta-4...v2025.0.0-beta-5

PathPlanner v2025.0.0 Beta 4

07 Nov 18:55
0d0d9a2
Compare
Choose a tag to compare
Pre-release

This beta release includes the ability to export paths/autos as an image or animated GIF, more PathPlannerAuto trigger factories, and various bug fixes and minor improvements.

Export Paths to PNG/GIF from GUI

Paths and autos can no be exported to a PNG or animated GIF. The export supports light mode for printability as well as a transparent background for PNGs. Paths and autos can be exported using the export button at the top of the path/auto tree.

pathplanner
pathplanner

More PathPlannerAuto triggers (Java implementation only for now)

  • Time before reaching event
  • Distance from event
  • Distance from event end (useful for specifically the end of zoned events)

Full Changelog

New Contributors

v2025.0.0-beta-3...v2025.0.0-beta-4

PathPlanner v2025.0.0 Beta 3

17 Oct 15:36
8860151
Compare
Choose a tag to compare
Pre-release

This beta release updates PPLib for the 2025 WPILib beta and adds support for the Java units library.

A bug in the GUI preventing the command/event name dropdown from working was also fixed.

Full Changelog

v2025.0.0-beta-2.1...v2025.0.0-beta-3

PathPlanner v2025.0.0 Beta 2.1

12 Oct 17:04
b7b65a1
Compare
Choose a tag to compare
Pre-release

Fixes Choreo path splitting for Choreo 2025 beta 3

Full Changelog

v2025.0.0-beta-2...v2025.0.0-beta-2.1

PathPlanner v2025.0.0 Beta 2

11 Oct 19:10
c6b586b
Compare
Choose a tag to compare
Pre-release

This update adds various improvements/quality of life features and adds the ability to bind triggers to a PathPlannerAuto to create complex trigger-based auto routines.

This will be the last beta release for 2024 WPILib barring any fixes for major issues. Beta 3 will be updated to use the upcoming 2025 WPILib beta.

Release Highlights

Point Towards Zone Triggers

You can now bind commands to triggers controlled by entering/leaving a point towards zone. This can be useful for overriding rotation feedback in a point towards zone to ensure accurate aiming while still using the rotation feedforwards from a path.

PointTowardsZoneTrigger Docs

PathPlannerAuto Triggers

Allows for creation of event triggers and point towards zone triggers on a per-auto basis instead of globally for all path following commands. Allows for the creation of various other triggers for conditions such as:

  • Auto is currently running
  • Name of path currently being followed
  • Time elapsed/within timestamp range
  • Near a field position
  • Within field area
  • Event trigger
  • Point towards zone trigger

These triggers will only be polled when the auto they were created with is currently running, which can not only allow for customizing the function of the same marker between different autos, but help with performance by preventing polling of trigger conditions when they are not needed.

PathPlannerAuto Trigger Docs

Unlimited Global Constraints

An option has been added to the path global constraints that would make those constraints "unlimited". When unlimited constraints are used, the trajectory generator will only limit for the maximum capabilities of the robot.

Nominal Voltage Constraint

A new option was added to constraints that allows setting the nominal battery voltage. This is effectively a constraint on max velocity and max angular velocity, but automatically applied based on the expected battery voltage throughout the path, which may sag from running other systems such as a shooter or intake. This constraint is still used if constraints are "unlimited".

Event Marker Name Dropdown

Since the names of event markers are used to bind to EventTriggers, the name field for event markers was changed to use a dropdown menu like named commands. This will use the same events list the named command dropdown displays.

Windows & Mac Installers

These were retroactively added to the beta 1 release, but each release now includes a windows installer and a macOS dmg file so you don't need to manually extract the release somewhere, setup shortcuts, etc.

Full Changelog

v2025.0.0-beta-1...v2025.0.0-beta-2

PathPlanner v2025.0.0 Beta 1

06 Oct 02:20
96ad2d1
Compare
Choose a tag to compare
Pre-release

The first PathPlanner beta realease of the 2025 season is now available! You can download the latest beta from here, and install PathPlannerLib through VSCode. The beta version of PPLib now uses a different vendor json file, so you will need to remove your 2024 PPLib install to install the 2025 beta. The main vendor json will be updated to the 2025 version with the kickoff release. The documentation has been updated for the beta. Note: Beta 1 currently requires WPILib 2024. Once the WPILib 2025 beta is released, PPLib will require the 2025 beta. Also, simulation on macos is not currently supported, this will be resolved once PPLib updates to use the WPILib 2025 beta.

This release focuses on the ground-up rework of PathPlanner's trajectory generation, which aims to solve the shortcomings of the previous iteration and attempts to give PathPlanner trajectories a "just works" quality with little to no tuning, all while maintaining the ability to generate trajectories on-the-fly.

Beyond the trajectory generator rework, this release also includes new zoned event markers, "point towards" zones, the ability for event markers to function as a Trigger as an alternative to using NamedCommands, a path optimization tool in the GUI, updated support for Choreo 2025 (using PPLib 2025 with Choreo requires Choreo 2025), and more. For people already familiar with PathPlanner and PathPlannerLib, I recommend checking out the docs again. Significant changes have been made to the settings, and there have been some changes to PPLib usage, such as configuring AutoBuilder, which is now condensed into a single configure method.

Improvements of Trajectory V2

trajv2

Respects Swerve Dynamics

Trajectories are now generated with swerve kinematics/dynamics in mind to make sure each state is within the robot's capabilities, increasing path following accuracy and consistency.

Motor Torque Based Acceleration Limits

Trajectory V2 uses the available torque output of your robot's drive motors to limit the acceleration and deceleration along the trajectory. One of the issues with limiting acceleration of a module or the robot as a whole with a constant maximum acceleration/torque is that the robot's drive motors are unable to provide constant torque throughout its entire RPM range. Therefore, they cannot maintain a linear acceleration, which requires the user to either reduce the maximum acceleration or velocity below the true maximum capabilities of the robot, or risk the robot falling behind the target acceleration when already near the max velocity. Essentially, you would have to choose between high speed or high accuracy.

Trajectory V2 now limits the acceleration of each module based on the maximum possible torque output of its motor. This uses the motor's current RPM and current limit to get the true maximum torque output of the motor. The robot as a whole will only accelerate as much as the torque outputs from each motor would allow for. Furthermore, forces within the module due to friction are taken into account, which further limits the robot's acceleration but aids in deceleration.

Arbitrary velocity/acceleration constraints can still be used via global constraints or constraint zones, and they will further limit the robot's motion as long as the arbitrary constraints are within the robot's capabilities.

Traction Control

The maximum torque applied by each drive motor is limited by the force of friction between the wheels and the carpet to prevent wheel slip. Furthermore, the maximum speed in curves is limited to prevent the wheels from slipping due to the centripetal forces it experiences.

Balanced Translation and Rotation

Translation and rotation speed is balanced to ensure that every rotation target is hit. The robot will now be able to slow down to give enough time for a rotation to complete.

Torque-Current Feedforwards

During generation, torque-current feedforwards are calculated at every state. Path following commands can now output these feedforwards along with the normal ChassisSpeed output, allowing Phoenix Pro teams using TorqueCurrentFOC control modes to utilize these values to further increase path following performance and accuracy. For teams using voltage output, the module's acceleration is also provided, which can be converted to a voltage feedforward using the characterized kA value.

Other Notable Changes In Beta 1

Path Optimization

The path editor now includes a path optimizer tool that uses a genetic algorithm to adjust the shape of the path, minimizing the total trajectory runtime. The optimizer is not guaranteed to find the true "optimal" path shape, but it can still significantly improve the runtime of unoptimized paths. The optimizer can be run for multiple iterations if better results are desired.

path-optimizer

Zoned Event Markers & Event Triggers

Event markers now have the option of including an end position. If a marker is zoned, its associated command will start when the robot enters the zone, and be stopped when it exits the zone. Event markers can now also be used as triggers based on the name they are given in the GUI. For zoned markers, event triggers will remain high while within the zone, and go low when leaving. If a marker is unzoned, its trigger will go high for one loop. Using events as triggers allows for much more complex behavior than NamedCommands, by binding different commands to a marker going high/low, combining multiple event triggers together to handle overlaps, or combining event triggers with other custom triggers to react to sensor reading, for example.

Future beta releases will expand on this concept by allowing for the creation of triggers on individual PathPlannerAuto commands to create more customizable/complex auto behaviors on a per-auto basis.

"Point Towards" Zones

Point towards zones are zones within a path where the robot should aim at a target position on the field. For example, this can be used to track a goal position while following a path. Overriding rotation feedback while in this zone can further increase aiming accuracy. In a future beta release, you will be able to bind commands to a trigger controlled by entering/exiting a point towards zone to easily switch on/off a rotation feedback override.

Replanning Removed

Path replanning has been removed for various reasons. First and foremost: it seemed to cause more issues than it solved. It is very difficult to create a generalized replanning solution that works for everybody. Everyone expects it to work a little bit differently, and it can't really work perfectly for everyone. It tended to cause a lot of confusion for some people, so I think it is best to remove the generalized solution and leave any complex replanning up to individual teams to implement according to their needs if they want such a feature. Furthermore, the computation requirements for trajectory generation has significantly increased. Teams heavily relying on replanning to stich their autos together would experience noticeably higher generation time if they were constantly generating new paths throughout auto mode instead of using the pre-generated "ideal" trajectory.

Torque-Based Swerve Setpoint Generator (Currently Java Only)

A custom version of FRC team 254's SwerveSetpointGenerator which generates setpoints based on available motor torque instead of a maximum acceleration. Also includes various other limits carried over from the generation algorithm, such as limiting torque to maintain traction and limiting module heading changes to prevent sliding. This implementation uses the same configuration object as trajectory generation, making setup quick and easy.

Override Correction Feedback

Methods have been added to PPHolonomicDriveController that allow for overriding the X, Y, and rotation feedback/correction while path following. This can be used to correct the robots X/Y velocity or rotation velocity to target a game piece or goal, while still using the feedforward velocities from the trajectory.


As usual, I appreciate anyone who spends the time time test these beta releases, and highly value any feedback/issue reporting on the github issues page. Good luck to everyone in 2025!

Full Changelog

Read more

PathPlanner v2024.1.7

28 Mar 15:49
d0e12f5
Compare
Choose a tag to compare
   

Changelog

  • Fix issue preventing the autos list from scrolling on some trackpads
  • Added a duplicate button to commands in event markers/autos

PathPlannerLib Changelog

PathPlanner v2024.1.5

18 Mar 16:39
9c8fe55
Compare
Choose a tag to compare
   

Changelog

  • Folders will now scroll when scrolling through the path/auto lists
  • Event markers will now have their position shown for choreo paths and autos (Event markers for choreo paths cannot be edited within PathPlanner)

PathPlannerLib Changelog

PathPlanner v2024.1.4

07 Feb 18:04
Compare
Choose a tag to compare
   

Changelog

  • Fix bug preventing the use of X/Y position text fields for linked waypoints

PathPlannerLib Changelog

PathPlanner v2024.1.3

06 Feb 19:23
28c8d06
Compare
Choose a tag to compare
   

Changelog

  • Prevent crash when loading project settings that have been manually edited
  • New paths will now use the default constraints by default

PathPlannerLib Changelog