What are Trajectories?
Trajectories are paths that a robot follows to autonomously drive to different points around the field in a fast and reliable way.
Choreo Trajectories
Choreo is a new trajectory library that specifically optimizes for path speed. In 2023 we used PathPlanner. A big advantage is that you don’t have to tweak paths to make them faster. Current tweaking using PathPlanner you often make requests of the robot to follow a path that it physically cannot actually do. Choreo helps a lot in this case with getting fast paths up quickly.
mjansen4857 3015 Programming Mentor
The whole point of Choreo is to not have to spend a lot of time tweaking paths to get it to do what you want. For example:
- Run the path, it overshoots a curve
- Change the path to slow down at the curve or increase the curve radius
- Run the path again, its translating too fast while rotating, causing error to build up from module saturation
- Slow down translation along the rotation
- Run it again, auto takes longer than 15s now
- Try to speed up some sections and shorten others
- It overshoots a curve again
- Repeat
PathPlanner gives you a lot more control over your path compared to Choreo, but as a result, you can make a path the robot just can’t physically follow. When you do this, you’re going to have to do a lot of testing and tweaking to get it to a point where the robot can follow it. I literally made PathPlanner, but it still takes our team hours to tweak and test paths to get them to a good spot. That’s just how it works. Choreo tries to remove a lot of that testing and tweaking time by calculating a path that the robot can actually follow accurately from the beginning.
Yes, you have to spend time learning a new tool, but if it saves a bunch of time not having to test and tweak paths, you’re going to have a net time savings if you need to manage a bunch of autonomous modes.
The downside for Choreo is it’s not able to run on the fly generation; meaning for tasks like aligning to a node in the 2023 game, we would have to use PathPlanner for that.
Choreo
Path Planner
What do we Use?
In 2024 we used PathPlanner only. Even though it generates slightly slower paths which make it harder to execute everything in autonomous, it has features that allow it to recalculate on the fly if the robot gets bumped. These corrections lead to a more reliable autonomous, rather than being lost after a teammate bumps you out of the way.