The SleipnirGroup team of developers invites all FRC teams to participate in our open beta of Choreo, a fully-featured trajectory optimization-based swerve drive autonomous path planning app.
Choreo is a tool for transforming 2D paths from rough sketches into optimal trajectories. With minimum-travel-time paths that respect your robot’s physical properties and limits, you can have a high degree of trust that your robot will be able to follow Choreo’s paths on the first try.
Download our beta release here!
Advantages
Delivers optimal solutions
Using CasADi, an industry-leading numerical optimization software, Choreo treats trajectory planning as a minimum-time problem, automatically refining both the shape of the path and the robot’s velocity and acceleration along it. CasADi is integrated into Choreo and does not require a separate installation.
Highly customizable
Choreo always respects your robot’s physical properties and limits, applying them to a simplified kinodynamic model of a swerve drive. By applying custom constraints, Choreo enables precise control of what you want your robot to do along the path. This means that you don’t have to “fudge” your path much to make it do what you want.
Easy to use
Choreo integrates with your robot project by providing JSON trajectory files that your robot reads and follows during the autonomous period of the FRC match, providing minimal overhead and points of failure. We provide a Java vendor library with a utility to load these trajectory files and a command factory to follow them.
Community support
Choreo is a fully open source project developed and maintained by the active and welcoming Sleipnir Discord server. Feel free to ask any questions there, and we will help you get Choreo integrated into your workflow. Issues with the Choreo app should be posted on the GitHub Issues tracker.
Comparison with existing path planning tools
Spline-based tools
Prior spline-based path planning tools (e.g. PathPlanner) allow users to draw a spline curve to define the shape of the path, and the tools determine the robot’s motion along that path according to the robot’s velocity and acceleration limits.
In contrast, Choreo uses a numerical optimization software to generate trajectories. With this technology, we refine the exact shape and motion of the path based on a set of user-specified requirements. These requirements currently include waypoints, custom constraints, and the physical properties of the robot, but the numerical optimization approach could be used with other constraints such as field obstacles.
Choreo’s optimization software seeks the path that passes through all waypoints, obeys all requirements, and does so in the shortest possible time. This approach means that trajectory generation is a compute-heavy process and can sometimes fail if the robot cannot physically obey all requirements. This approach unfortunately makes Choreo a poor fit for OTF/realtime path generation.
Path optimization tools
During the 2021 FIRST Robotics Competition season (INFINITE RECHARGE at Home), FRC 604 developed Quikplan, a differential-drive optimizer, for that year’s autonomous challenges. Like Choreo, Quickplan used CasADi to generate paths with minimal travel times that also obey the robot’s physics constraints. Quickplan also demonstrated obstacle avoidance.
Choreo currently only supports swerve drives, but differential drive support is planned.
History
Choreo is the evolution of several years of research and development in trajectory optimization by the contributors. Triple Helix Robotics collaborated on FRC 319’s BobTrajectory, a spline-based path planner and trajectory generator for differential-drives, from 2018 to 2021. After the 2021 season, Triple Helix took inspiration from FRC 604’s Quikplan and began developing HelixTrajectory (now SleipnirGroup’s TrajoptLib), a C++ library for optimizing swerve trajectories. HelixNavigator, the JavaFX-based trajectory optimization UI, was created to provide a simple, visual interface for HelixTrajectory. HelixNavigator later evolved into the web-on-desktop-based UI called Choreo. Choreo was first used in competition at Chezy Champs 2023 by team 8033, and soon after at Madtown Throwdown 2023 by team 6657.
Planned Improvements Before Kickoff
- Heading angles do not currently wrap around.
- We plan to make the workflow more integrated with robot projects.
- We plan to make the configuration of the robot physical properties more user-friendly.
- For best results, add a waypoint zero angular velocity constraint (second from the right in the top bar) to Start and End. The default path settings will be improved to include these.
Acknowledgements
Thank you to all contributors for your hard work over the past year!
SleipnirGroup Contributors
@calcmogul – Sleipnir, TrajoptLib
@Amicus1 – Choreo Frontend Lead
@JN25 – Choreo Frontend, Sleipnir
@justinb – Choreo Backend Lead, TrajoptLib, HelixNavigator creator
@dydx – Sleipnir
Triple Helix Robotics - FRC 2363
Highlander Robotics - FRC 8033
Arborbotics - FRC 6657
And many others who tested the app and contributed ideas!