Oxplorer (Formerly known as Pathfinding-3044) has been released!
Oxplorer is a realtime (<5ms on rio 1), dynamic pathfinder for FRC java robots. It uses a visibility graph, the A* algorithm and some bézier path smoothing to generate paths that are safe for the robot to follow. The only required inputs to generate a path are the starting and ending points, the rest is taken care of! Generated paths are not splines/trajectories, but a series of linear segments represented as a big list of points (curves are sampled as linear segments).
Oxplorer does not have path following code. There is a way to convert the output paths to trajectories, which I will probably bundle with the package soon, but Oxplorer itself is just for path generation. It does not calculate velocity information or anything of the sort, but we might make an extension in the future that does so.
Oxplorer has also not been tested on a real robot yet! If you want to try, please take precautions to make sure the robot doesn’t do anything unexpected, and I’d love to hear about your attempt!
Demo
Before the demo, please note the following
- The path following, inverse kinematics, and score selection system is NOT part of Oxplorer, only the generated paths.
- This demo is fairly dated, path generation is both faster and better now
- There are many parameters you can adjust to get paths to being closer to your liking if you think corners are too sharp, too close to obstacles, etc.
More info
Installation & usage instructions are available on the github page. If you have feedback, suggestions, questions, bugs, want to discuss, etc, you can do so here or on the 3044 Packages Discord!
On a Rio 1, for a fairly complex path on last years field, we got results in <5ms per path. Haven’t tested on a Rio 2 yet. Keep in mind this varies depending on the path, your settings, and the field.
This is the same algorithm as in my post about auto-scoring (In fact that’s where the demo came from), just updated. There is a more in depth explanation there, though it is a bit dated.