-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Closed
Labels
Description
Bug report
Required Info:
- Operating System: Ubuntu 24.04
- ROS2 Version: Jazzy
- Version or commit hash: main
- DDS implementation: CycloneDDS
Steps to reproduce issue
- Have a planner that will fail on configure(wrong config, params etc.).
- Call lifecycle transition to configure for planner server. It will fail since planner will fail.
- Call lifecycle transition to configure again.
Expected behavior
- The transition should succeed if you fixed the issue(config etc.) or transition should fail again.
Actual behavior
- Planner server crashes with
what(): Node '/global_costmap/global_costmap' has already been added to an executor.
Additional information
- I think the issue is valid also for controller server.
- https://github.com/ros-navigation/navigation2/blob/jazzy/nav2_planner/src/planner_server.cpp#L85 Here we call configure on costmap which adds it to executor, so even if transition fails it is still in configured state.
- So I think either costmap should return early if it is already in configured state or planner server should unconfigure(deactivate?) here https://github.com/ros-navigation/navigation2/blob/jazzy/nav2_planner/src/planner_server.cpp#L122
Reactions are currently unavailable