-
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
Retrying configure for planner/controller is not possible #4678
Comments
You need to set the lifecycle state back to inactive before trying again via the cleanup transition. Error states that happen from failed transitions need to be explicitly recovered from by transitioning back down to a lower state and trying again See the ROS 2 lifecycle node design docs: https://design.ros2.org/articles/node_lifecycle.html |
I can't see clearly where it says we should cleanup after And If I try cleanup after configure failure, I get |
Ah, I see. We don't enter the failure state in that situation, we simply fail the transition. The only semi-clean way I see of handling this is if we reset/unconfigure anything setup in prior to returning the failure in https://github.com/ros-navigation/navigation2/blob/jazzy/nav2_planner/src/planner_server.cpp#L122. That way subsequent attempt's state will be back to what it should be from an unconfigured state. It is a little fragile with edits in the future though. I suppose we could also try manually calling What do you think? |
Yeah, it makes sense. I'll test it. |
Revieewing your PR now! |
Merged |
Bug report
Required Info:
Steps to reproduce issue
Expected behavior
Actual behavior
what(): Node '/global_costmap/global_costmap' has already been added to an executor.
Additional information
The text was updated successfully, but these errors were encountered: