-
Notifications
You must be signed in to change notification settings - Fork 145
Description
Before proceeding, is there an existing issue or discussion for this?
- I have done a search for similar issues and discussions.
OS and version
Ubuntu 24.04
Open-RMF installation type
Source build
Other Open-RMF installation methods
No response
Open-RMF version or commit hash
main
ROS distribution
Jazzy
ROS installation type
Binaries
Other ROS installation methods
No response
Package or library, if applicable
No response
Description of the bug
When a navigation graph is separated into two disconnected sub-graphs (e.g., Left Zone and Right Zone with no connecting lanes), the Fleet Adapter incorrectly bids for and assigns tasks to robots that physically cannot reach the target waypoint. This results in robots being assigned tasks they cannot complete, leading to an Error status that requires manual cancellation, rather than the task Failing immediately or being assigned to a capable robot.
Steps to reproduce the bug
Map/Graph: office_demo modified to create two isolated islands (Left Side and Right Side).
Modifications: Connecting lanes between the two sides were removed/closed (see attached image).
Fleet: 2 Robots (tinyRobot1 in Left Zone, tinyRobot2 in Right Zone).
Steps to Reproduce:
- Configure the map so Lounge is in the Right Zone and COE is in the Left Zone.
- Ensure there are no navigation lanes connecting these two zones.
- Submit a Loop/Patrol task: Lounge -> COE.
Expected behavior
The task submission should fail immediately (or return impossible) because no single robot can travel from Lounge to COE. No robot should move.
Actual behavior
- The Fleet Adapter accepts the task.
- It assigns the task to tinyRobot2 (located in the Right Zone).
- tinyRobot2 successfully travels to Lounge.
- Upon reaching Lounge, the robot attempts to plan to COE.
- Path planning fails (as expected).
Critical Issue: The task status changes to Error (not Failed), and the robot remains stuck at Lounge holding the task until explicitly canceled by the user.
