Exiting lift at destination floor (#538)

Posted by @MrOCW:

Lift has arrived on floor [L06] and opened its doors for robot [<MY ROBOT>]
Requesting replan for [<MY ROBOT>] because it is too far from its commanded path. Details:

While sending my robot from L1 to L6, I get these logs on my fleet adapter. This causes the robot to constantly attempt to go to the Lift waypoint instead of getting out. After reaching the lift waypoint, the same thing happens again in a loop

Posted by @mxgrey:

There should be more info following Details:. Are you able to share that with us? Feel free to censor out waypoint names as needed.


Edited by @mxgrey at 2024-10-01T02:29:05Z

Hi, i’m facing the same issue. With RMF repeatedly sending the robot back to level 1.

Here is my context:

  • Robot invisibot_fleet/inv1 is sent to a new floor, l2_foo
  • Lift arrives at L1, door opened.
  • Lift arrives at L2, door opened.
  • Replan is triggered in an endless loop, the robot is unable to leave the lift.

I have since implemented the localisation hook to resolve this issue, although i’m still curious as to why this happened. And this seems like it only happens occasionally (1 of 5 times it succeeds), which leads me to believe that there may be some race condition on the fleet adapter side.

May I seek someones advice on this, are there any known race conditions that may cause this issue?

I am using the easy full control python fleet adapter and RMF, with cyclonedds as the RMW. Everything was ran in Jazzy.

[INFO] [1751959158.753290308] [invisibot_fleet_fleet_adapter]: Executing go_to_place [l2_foo] for robot [invisibot_fleet/inv1]
[INFO] [1751959158.754384135] [invisibot_fleet_command_handle]: Commanding [inv1] to navigate to [ 8.97025444 -9.68922477 -1.63098833]on map [L1]
[INFO] [1751959158.754690053] [invisibot_fleet_command_handle]: [RobotAPI] Requesting http://127.0.0.1:8001/navigate_to_pose/ to inv1 API server
[INFO] [1751959158.755066664] [invisibot_fleet_command_handle]: Sending POST request to: http://127.0.0.1:8001/navigate_to_pose/
[INFO] [1751959158.755346814] [invisibot_fleet_command_handle]: Query parameters: {'robot_name': 'inv1'}
[INFO] [1751959158.755611634] [invisibot_fleet_command_handle]: Request body (JSON): {'x': 8.970254435856528, 'y': -9.689224774611027, 'yaw': -1.6309883289829805, 'level_name': 'L1', 'index': 5}
[INFO] [1751959158.758389222] [invisibot_fleet_command_handle]: Successfully received response: <Response [200]>
[INFO] [1751959160.754869602] [invisibot_fleet_fleet_adapter]: Lift has arrived on floor [L2] and opened its doors for robot [invisibot_fleet/inv1]
[INFO] [1751959160.756289545] [invisibot_fleet_fleet_adapter]: Requesting replan for [invisibot_fleet/inv1] because it is too far from its commanded path. Details:
Current location
 -- L1 < 8.97025 -9.68922> [#5] | on waypoint | orientation -93.4487
Commanded path:
 -- t=0 #6 < 8.97025 -9.68922 -1.63099> yaw=-93.4487 event [LiftDoorOpen lift1] approach lanes: 16
 -- t=7.77832 #7 <9.05113 -8.1355 -1.6228> yaw=-92.9798 event [LiftSessionEnd lift1] approach lanes: 12
[INFO] [1751959160.757037809] [invisibot_fleet_fleet_adapter]: Replanning requested for [invisibot_fleet/inv1]
[INFO] [1751959160.757761055] [invisibot_fleet_fleet_adapter]: Planning for [invisibot_fleet/inv1] to [l2_foo] from one of these locations:
 -- L1 < 8.97025 -9.68922> [#5] | on waypoint | orientation -93.4487
[INFO] [1751959160.762482917] [invisibot_fleet_fleet_adapter]: Executing go_to_place [l2_foo] for robot [invisibot_fleet/inv1]
[INFO] [1751959160.765037293] [invisibot_fleet_command_handle]: Commanding [inv1] to navigate to [ 8.97025444 -9.68922477 -1.63098833]on map [L1]
[INFO] [1751959160.765442569] [invisibot_fleet_command_handle]: [RobotAPI] Requesting http://127.0.0.1:8001/navigate_to_pose/ to inv1 API server
[INFO] [1751959160.765865939] [invisibot_fleet_command_handle]: Sending POST request to: http://127.0.0.1:8001/navigate_to_pose/
[INFO] [1751959160.766145767] [invisibot_fleet_command_handle]: Query parameters: {'robot_name': 'inv1'}
[INFO] [1751959160.766511198] [invisibot_fleet_command_handle]: Request body (JSON): {'x': 8.970254435856528, 'y': -9.689224774611027, 'yaw': -1.6309883289830756, 'level_name': 'L1', 'index': 6}
[INFO] [1751959160.769460230] [invisibot_fleet_command_handle]: Successfully received response: <Response [200]>
[INFO] [1751959162.752950290] [invisibot_fleet_fleet_adapter]: Lift has arrived on floor [L2] and opened its doors for robot [invisibot_fleet/inv1]
[INFO] [1751959162.753229157] [invisibot_fleet_fleet_adapter]: Requesting replan for [invisibot_fleet/inv1] because it is too far from its commanded path. Details:
Current location
 -- L1 < 8.97025 -9.68922> [#5] | on waypoint | orientation -93.4487
Commanded path:
 -- t=0 #6 < 8.97025 -9.68922 -1.63099> yaw=-93.4487 event [LiftDoorOpen lift1] approach lanes: 16
 -- t=7.77832 #7 <9.05113 -8.1355 -1.6228> yaw=-92.9798 event [LiftSessionEnd lift1] approach lanes: 12
[INFO] [1751959162.753522431] [invisibot_fleet_fleet_adapter]: Replanning requested for [invisibot_fleet/inv1]