Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How does QpSplineReferenceLineSmoother work? #1360

Closed
ixanezis opened this issue Nov 20, 2017 · 5 comments
Closed

How does QpSplineReferenceLineSmoother work? #1360

ixanezis opened this issue Nov 20, 2017 · 5 comments
Labels
Module: Planning Indicates planning module related issue Type: Question Indicates that an issue or pull request needs more information

Comments

@ixanezis
Copy link
Contributor

ixanezis commented Nov 20, 2017

I've visualized what happens inside the modules/planning/reference_line/qp_spline_reference_line_smoother_test.cc:
https://plot.ly/~ixanezis/169/

The result looks suspicious: the original reference line is at least straight where it should have been straight. The smoothed version is very wavy and goes too far away from the original reference line. How can a car be driving along such line?

(I've used the QpSplineReferenceLineSmoother with values from modules/planning/conf/planning_config.pb.txt)

@lianglia-apollo
Copy link
Contributor

lianglia-apollo commented Nov 21, 2017

The reference line smoother is to provide a parameterized function that in each direction the integration of squared third order derivative (as a function of the parameterizing variable) is minimized. It is true that the smoothed line is wavy when the original one is straight --- but the smoothed one has smaller curvature at the turning point.

@ixanezis
Copy link
Contributor Author

ixanezis commented Nov 22, 2017

To me, that looks unnatural. I wouldn't be turning left so much in advance, just to reduce the curvature at the turning point. Moreover, it would be strange to swing the car left-right on the straight line just in order to have a smaller curvature at the turning point.
I just can't imagine how this smoothing can be used in real world if it "smoothes" a pure straight piece of lane into a wavy road.

@lianglia-apollo
Copy link
Contributor

lianglia-apollo commented Nov 22, 2017

It is true that a trade-off exists when we decide whether to pay more attention to smaller curvature or less deviation from driving straight. The deviation can be adjusted based on constraints. Also, we are able to relax the endpoint lateral constraints to reduce the deviation.

@lianglia-apollo
Copy link
Contributor

This link (https://www.kartworldbelmont.com.au/uncategorized/how-to-choose-the-best-driving-line/) might be helpful. The lines are for F-1 racing, and smoothness is the only target. Of course, we need to make trade-offs.

@eugenegx eugenegx added Type: Question Indicates that an issue or pull request needs more information Module: Planning Indicates planning module related issue labels Mar 13, 2018
@binxxx
Copy link

binxxx commented Nov 19, 2018

The wavy behavior is really annoying. If the result is unacceptable, is there a better way to improve this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Module: Planning Indicates planning module related issue Type: Question Indicates that an issue or pull request needs more information
Projects
None yet
Development

No branches or pull requests

4 participants