[Other issue]: Dispatch Queue vs Direct Queue #512
Replies: 2 comments 1 reply
-
Hi @ItamarEliakim-R, I've moved this ticket to our Discussion board.
There is an on-going effort to include priority in task updates so perhaps you can chime in on whether the implementation there aligns with the changes you've made. Perhaps you can upstream some of your efforts.
The |
Beta Was this translation helpful? Give feedback.
-
Apologies for the delayed response. I didn’t realize the conversation had shifted from rmf_ros2 to this thread. It’s encouraging to see the ongoing work on priority reporting. I’ve been working on a similar concept and would love to contribute upstream. Regarding the direct vs. queued tasks, there's a strong case for unifying these approaches within the design. There are scenarios, from individual robot tasks to fleet-wide operations, where this consolidation would be beneficial. Currently, the direct queue seems to override the priority parameter, causing tasks to jump ahead regardless of the priority level in the dispatch queue. For instance, imagine a scenario where several tasks are directly requested while others are queued with higher priority. In this case, it makes sense for the system to finish the higher-priority tasks before assigning any direct requests to the robots. This logic can be applied across different use cases, from cleaning operations to logistics management. Additionally, by unifying the logic for both queues, we can unify areas of the code, such as reporting task states over WS. Currently, the direct task queue isn't transmitted over WS in the same manner as the dispatch task queue. I plan to submit a PR soon, aiming for consistent behavior with minimal modifications. I’ll need to further evaluate the design to ensure a seamless integration of the two queues. However, I’m confident we can achieve a cleaner, more structured codebase by consolidating them, creating a single source of truth, with an additional attribute on the direct queue to specify its direct-robot assignment. It's not urgent, but definitely an effort that I'd love starting as a side project to contribute to and improve the feedback I get from our customers. |
Beta Was this translation helpful? Give feedback.
-
Before proceeding, is there an existing issue or discussion for this?
Description
Hey,
I’m currently working on a feature that allows changing task priority after a bid has been assigned to a specific fleet. This enhancement was requested by our customer who manages several robots in a large facility and needs to reprioritize tasks when urgent packages arrive.
The solution involves adapting our custom API server (not the default RMF one) to introduce a new task prioritization schema in the
task_api_requests
. This update then propagates to the Dispatcher and TaskManager.However, I’ve noticed that there's a distinction between the
DirectQueue
andQueue(Dispatch Task)
. I’m curious about the reasoning behind this separation—why not consolidate both into a single structure?Looking forward to your insights!
Thanks,
Itamar
Beta Was this translation helpful? Give feedback.
All reactions