Beruflich Dokumente
Kultur Dokumente
Background
This project was inspired by The Cheesy Poofs 2014 software release which contained a Java application
which generated their autonomous mode paths. It was used to generate their Einstein path to dodge
1114s blocker. It was also inspired by our robots failure in autonomous last year.
How it works
This section will cover how the math related portions of the program work. The program starts by
interpolating a curve between the second and second to last waypoints. At these points, the robot
heading doesnt matter to us, so we use a cubic Bezier spline. The implementation is from a PDF file
from UCLA which is no longer available online. The program takes the points that lie on the curve and
calculate Bezier control points from these. Then, lines are drawn to connect each segment. After the
Bezier curve has been generated, we need to make a smooth curve that connects the endpoints to the
Bezier curve in the middle. These end curves are bolded in the program.
In order for the curve to be smooth, the second derivative must be continuous, which can be a problem
at the connections between splines. In this situation, the first derivative represents the slope of the line
and is related to the robots heading. The second derivative measures how fast the first derivative
changes, and is related the turning radius at a point. The tighter turns have a smaller turning radius and,
as a result of changing directions quickly, have a larger second derivative. If only the first derivative is
continuous, meaning it must be equal at the endpoints of the splines, the robots heading may be
continuous, but if the second derivatives are not equal, it may suddenly change the tightness of the turn
in a jerky way. In addition, the second derivative is used to help determine the robots velocity. If the
second derivative is very large, the robot is changing directions quickly and needs to travel slower. So, if
the second derivative has a jump the velocity will have a jump too.