Blog

PathPlanner 2023 – A motion profile generator for FRC robots

PathPlanner 2023

PathPlanner 2023 is an motion profile generator designed for FRC robots developed by the team 3015. The primary attributes of PathPlanner are:

PathPlanner 2023

  • Every path is created using Bezier curves, which allow for an exact and precise shape of the path.
  • Holonomic mode allows decoupling of the robot’s movement from the direction in which it travels.
  • Real-time path preview
  • Allows the placement of “event marker” along the route that can trigger code that is following.
  • Split a path in a “path group” to follow each section of a path separately.
  • Automatic path saving as well as management of files
  • Robot-side vendor library for path generation as well as custom path following commands and controllers.
  • Full autonomy command generation by PathPlannerLib AutoBuilder

Hello everyone! The first version of the PathPlanner beta 2023 is out with a variety of updates and fixes. I’d love to hear any feedback or bug reports that you’ve got before the beginning of the 2023 season.

Download the latest version of the prerelease the link below 475 and install the PathPlannerLib 338 using the VSCode. The Wiki 391 has been updated to the latest version.

Major PathPlanner changes from 2022.

  • Redesigned to incorporate Material 3 standard. Material 3 standard
  • The theme of the app is dynamic and based on team colors (or whatever color you like)
  • Native Apple Silicon support
  • The ability to import and apply custom field images
  • Editor cards are now able to be moved around to change the position of them
  • Add an “Measure” Editor mode that measures distances in the field
  • Introduced added an “Event Marker” editor mode to put markers for events along the route. They could be used as triggers to additional commands when path following
  • The program has been updated to include the “Graph” Editor mode to facilitate visualizing generated paths
  • Introduced added a “Stop Point” option to waypoints. Stop points on paths may be loaded using in a “path group” within the PathPlannerLib. This will divide the path according to the stoppoints into individual routes
  • It has been added the capability to connect to servers that is running on the robot using PathPlannerLib (Java only at present). This will preserve modifications to the paths on the robot and avoid re-deploying as well as enabling the newly-created “Path following” editor mode, which will show your current route, the target pose of the robot, as well as the actual robot’s pose when it follows the path.

Major PathPlanner Lib modifications from 2022.

  • Help with “event markers”
  • Download a path file to be an individual path group (list of individual paths) divided in it’s “stop points”
  • It is now possible to run an “PathPlannerLib server” (java only at present). If linked to PathPlanner GUI the server will automatically modify the paths of the robot as they are modified within PathPlanner and display visualisations within PathPlanner of the actual path, the current pose, the current target pose, and the actual robot’s pose as it follows the path.
  • Added getConstraintsFromPath method to allow loading path constraints from a path file. This allows for path speed and velocity to be altered without the need to rebuild code.
  • Customizations added PPHolonomicDriveController that:
    • Utilizes PathPlanner direct paths
    • Utilizes holonomic angular velocity to serve as a feedforward to rotate
    • Automatically configures continuous input to the PID controller that controls rotation
  • Customizations added PPSwerveControllerCommand , PPMecanumControllerCommand , PPRamseteCommand , PPLTVUnicycleCommand , PPLTVDifferentialDriveCommand instructions (Java only for the moment) that:
    • Use path planner routes directly
    • Automatically triggers command from the given “event map” at the moment event markers are reached.
    • Sends Field2d and error information to SmartDashboard to debug
    • Sends data from the path following to the PathPlannerLib server to be displayed within PathPlanner
  • Addition of generatedPath methods to generate on-the-fly from a set of points
  • Added getInitialHolonomicPose method that can be used to reset holonomic odometry at the beginning of a path

This version will not be made available on the Mac App Store and Microsoft Store as of right now. I am not planning to automatically update people who aren’t ready to upgrade to the latest version at this time, however I have provided this link for those not aware.

PathPlanner  

PathPlannerLib

Download from one of the above app stores to receive auto-updates. Manual installs can be found here.

Documentation and Usage

Visit the Wiki

Make sure to install the PathPlannerLib to generate your path. The paths can be generated in CSV and the WPILib JSON files, however the vendor library is simpler to use and has all functions included in the GUI.

How to build by hand:

  • Download Flutter (this project is currently using v3.3.9)
  • Start the project using a terminal , and use using the command below: Flutter build
    • Valid platforms include:
      • Windows
      • Macos
      • linux
  • The app that is built can be downloaded here:
    • Windows: /build/windows/runner/Release
    • maxOS: /build/macos/Build/Products/Release
    • Linux: /build/linux/x64/release/bundle
  • OR Flutter Run or flutter run

GitHub

Visit Github

 

Also, read