This past season Error Code Xero took our first shot at path following. We used Path Weaver to generate the paths and a simple follower that was seen in other robot code that was a modified PID with feed forward terms for both velocity and acceleration. We also use a NAVX for correcting the heading. While teaching the students about path following via many white board sessions, I wished I had a tool that would do a better job of demonstrating this to the students. To that end, I have spent a great deal of time this off season creating my version of a Path Weaver style tool. In addition to making something more usable, the idea was to make something to help in teaching path following to each new generation of students as they come through.
This is all alpha code, don’t bet your season on anything here. I’m sure there are things I got wrong as I am learning, so feedback welcome.
It comes with the last two years field. It comes with a version of the Jaci Path generator, a generator taken from the Cheesy Poofs code, and a couple of highly experimental backend we are working on here.
This tool has the following features
- 100% open source
- Display the X and Y spline equations generated from the waypoints.
- Plots the trajectory profile below the field window
- Velocity constraints as a function of distance along the path for those generators that support it
- Output trajectories as JSON or CSV
- All generators are separate program. A new executable program and a JSON file describing it is all that is required to add a new generator backend.
- Uses the Path Weaver format for game fields so the next year’s field should drop right in. There is also a download capability so when the new field is available, it can be dropped automatically detected and downloaded.
- Uses your units of choice (inches, feet, meters, cm, etc.)
- Arrow keys (position)/Page Up (rotate)/Page Down(rotate) movement of waypoints
- Ability to publish generated trajectories to network tables for quick tuning of paths
- Ability to print paths, helpful for documenting automodes
- Help documentation (not my strong suit)
- Demo mode so you can see paths in action.
- Written in C++ and Qt so there are Windows, Mac OS and Linux versions. I must say I am way more familiar with Window so the Mac OS and Linux versions may need more work.
Jack (Butch) Griffin