Here’s my attempt at autonomous path generating software. It’s similar to 254’s, but uses parametric splines, splines with unspecified headings at waypoints, and acceleration limits through turns.

It uses the robot’s starting and ending position and heading at two points and a series of up to 6 waypoints to generate a piecewise parametric 2nd derivative continuous function that goes through the points and has the starting and ending angles. It also outputs a text file with each wheel’s distance travelled, x position, y position, velocity, acceleration, first, and second derivative (y with respect to x) at 0.01 second intervals, which can be previewed in real time. The acceleration and velocity can have limits, and the velocity at the start and end must be zero. It also smoothly decreases velocity through turns.

Here’s a video of the spline editor: https://www.youtube.com/watch?v=pdqiJzgY6rI&list=UUSX1Ce6q9bfBMtpDr0IXytg

Check out the project on GitHub: https://github.com/dicarlo236/PathInterpolate/tree/Release/PathInterpolate/src/pathinterpolate

A better description of how it works is on the wiki page on GitHub.

The interesting classes are Spline, Robot, Path, and SplineEditor.

A robot controller is included, but it’s not tested.