Posted by @[Missing data]:
Hi,
What I want is:
When the task is canceld, RMF stops making assumptions about what your robot is doing, that is it will no longer be on the traffic schedule. Just like the behavior as interrupt_task.
How can I do it? I tried to use undate_handle.enable_responsive_wait(False).
But the result is not what I want.
Posted by @[Missing data]:
sorry, undate_handle.enable_responsive_wait(False) does work.
Is there any other method to do this?
Posted by @[Missing data]:
In fact, I want to know how interrupt_task does
Posted by @mxgrey:
At any time you can use interrupt
(python API) in your fleet adapter to stop the robot from being managed by RMF.
You can combine that with the (unstable) decommission function to prevent the task dispatcher from assigning any more tasks to the robot. Any tasks the robot currently has will remain in its queue unless you cancel them.
I think that combination of interrupt
and unstable_decommision
should get you the results you’re looking for. Unfortunately these APIs are only available in the C++/Python libraries and are not yet available from rmf_api_msgs
.
Posted by @mxgrey:
As for interrupt_task_request.json
, that schema allows a specific task to be interrupted, so it is different from the interrupt
method provided by the C++/Python API. We should consider adding an interrupt_robot_request.json
that would match what the C++/Pyhton API can do.