-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Simple Smoother Aborts Navigation with "No Segments Smoothed" Error When Approaching End of Path #4710
Comments
I'm trying to figure out why it is that you had zero segments, it should work with a single point and I don't see any logging for why the navigation2/nav2_smoother/src/simple_smoother.cpp Lines 184 to 191 in 4e62a89
I would say we could change that to a This leads me to a few motivational questions
Is that expected through for a "successful" return case? I would think not. I would think it would be better in the BT XML to decide what to do with a failed path smoothing iteration rather than having failures masked at the server level. Perhaps we could update the BT Node for the Smoother to have a parameter for returning the unaltered path if the path smoothing process fails and still have the BT node return success -- which would allow the server to return Alternatively, it brings up the question: if we back out to the last valid path, isn't that OK to use if not converged? And I don't have a clear answer to that off the top of my head. If we exceed the number of iterations, that's not converged fully, so that feels wrong to say "done successfully". Similarly, if we stop convergence due to collision, it also seems to me that this shouldn't be considered "succesful", even if partially smoothed. But I could also see where some users (like yourself) may want that. I think this also could be a parameterization for user selection of behavior they'd want. If fail to converge due to constraints, but did some smoothing, whether to consider that valid or invalid. So for a solution, we could make this a parameter either and/or in both of the BT Node for the smoother for handling at the BT XML level or within the plugin as an algorithm level paramaterization. What do you think? |
Bug report
Required Info:
Steps to reproduce issue
Use the following
nav2
parameters:Set up the behavior tree as follows:
Execute navigation. The robot will traverse the path and then start approaching the end of it.
Expected behavior
The robot smoothly navigates the entire path without aborting, and
SmoothPath
completes as expected.Actual behavior
When the robot approaches the end of the path, the
simple_smoother
aborts the navigation with the following error:Additional information
Logs:
...repeating endlessly
The exception is thrown even though the smoother could simply return a jagged path. The above exception leads to the whole navigation process being aborted. On the internet, there doesn't seem to be available much information on how to properly setup the SmoothPath node or handle BehaviorTree errors.
The text was updated successfully, but these errors were encountered: