-
Notifications
You must be signed in to change notification settings - Fork 138
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
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
- 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. - Enable the Parking Spot Manager/Reservation system.
- Occupy the robot's final destination with another robot.
- Issue a GoToPlace task to the occupied final destination.
Expected behavior
No response
Actual behavior
No response
Additional information or screenshots
No response