PathPlanner 2023 – A motion profile generator for FRC robots
PathPlanner 2023 is an motion profile generator designed for FRC robots developed by the team 3015. The primary attributes of PathPlanner are:
PathPlanner 2023
Table of Contents
- 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.
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
- Valid platforms include:
- 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
- Windows:
- OR
Flutter Run
or flutter run
GitHub
Also, read
- Codeplayon Jetpack Compose Tutorial
- Codeplayon Android Tutorial
- Codeplayon Flutter Tutorial
- Codeplayon on Github