Skip to content

[Bug]: More Scenario where Premature Task Completion when using Parking Reservation (use_parking_reservation: true) can happen  #342

@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

There are two related logic bugs in the GoToPlace event (specifically in rmf_fleet_adapter/src/rmf_fleet_adapter/events/GoToPlace.cpp) that occur when a robot is assigned a Waitpoint (e.g., a parking spot via the reservation system) but the planner calculates an empty plan because the robot is already at that location.

False Completion: The task status is incorrectly marked as Completed instead of Standby when max_merge_waypoint_distance is > default value hence, the robot receive empty path when waiting at the parking spot.

Unresponsive Watchdog Loop: The previous movement command is not explicitly stopped. This leaves the MoveRobot phase active in the background. Since the robot is stationary at the waitpoint, no feedback updates are sent. This triggers the 10-second watchdog timer, causing an infinite loop of "Unresponsive command handle" warnings and unnecessary replanning.

Steps to reproduce the bug

  1. Configuration: Set the max_merge_waypoint_distance parameter for the fleet adapter to a value large enough to trigger an empty plan when the robot is near a waypoint (e.g., 0.09 meters).
    Note: If this value is too small (default), the planner typically generates a tiny path adjustment, masking the bug. Setting it to 0.09 ensures plan.get_waypoints() returns empty when the robot is at the parking spot.
  2. Enable the Parking Spot Manager/Reservation system.
  3. Occupy the robot's final destination with another robot.
  4. Issue a GoToPlace task to the occupied final destination.

Expected behavior

No response

Actual behavior

No response

Additional information or screenshots

No response

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