Skip to content

[Bug]: Fleet Adapter assigns tasks to robots in disconnected sub-graphs (Invalid Bidding & Partial Execution) #341

@alex-roba

Description

@alex-roba

Before proceeding, is there an existing issue or discussion for this?

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:

  1. Configure the map so Lounge is in the Right Zone and COE is in the Left Zone.
  2. Ensure there are no navigation lanes connecting these two zones.
  3. 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

  1. The Fleet Adapter accepts the task.
  2. It assigns the task to tinyRobot2 (located in the Right Zone).
  3. tinyRobot2 successfully travels to Lounge.
  4. Upon reaching Lounge, the robot attempts to plan to COE.
  5. 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.

Additional information or screenshots

Image

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions