robocup-software
robocup-software copied to clipboard
Fix curvature issues with Bezier path and re-enable curvature limiting
Description
Currently, our path smoothing code places Bezier waypoints at the endpoints when you have zero initial/final velocity. This creates numerical conditioning issues, which make curvature infinite near the endpoints in these case.
In general, we should switch to a path smoothing algorithm that explicitly considers curvature (or some related measure). For example, it should be pretty simple to use Hermite curves and place "velocity" (d/ds) values such that the sum of squared "acceleration" (d^2/ds^2) at curve endpoints is minimized.
This is currently reflected in BezierPathTest.cpp, in the DISABLED tests.
Requirements
DISABLEDtests from the Bezier path test are re-enabled and passing.- In velocity profiling code, curvature limiting is re-enabled (
VelocityProfiling.cpp)
Fixed in comp 2021 (#1709)