Posted by @cwrx777:
In the event that robot is not in nav graph (e.g. after robot is manually pushed due to emergency stop (and localized) or moved using using the robot web UI), and when there is a GoToPlace to execute, _choose_goal
may return empty result.
is there a way to let the python side of the fleet adapter or external system know about the issue?
Currently the code will just perform _schedule_retry
.
Posted by @mxgrey:
We do open an issue for the robot when it has left the nav graph. That issue information will show up in the robot state message.
Without any changes to the current implementation of rmf_fleet_adapter
, you can use FleetUpdateHandle.set_update_listener
to set a callback that gets triggered with each fleet update. That callback could scan through the robot states and look for the lost
issue and then trigger whatever behavior you would like.
I’d be open to adding an unstable (experimental) API feature that lets you feed in a callback that we will trigger whenever a robot ends up in the lost state. I’d need some input on what arguments you would like the callback to be provided with (e.g. robot name? the position reported for the robot?).
Edited by @mxgrey at 2025-02-07T09:34:06Z
Posted by @cwrx777:
@mxgrey
I need to correct my scenario. Actually the robot is on navgraph but the navgraph is disconnected from the goal (e.g. due to lane closure or the robot is in test area where there is no path to the goal). so technically the robot is not lost.
Since the ‘no path found’ issue is when the robot is performing task, does it make sense if the report be also in the task state update, e.g a state that indicates that the task could not be performed (blocked?)