Tasks in RMF
RMF 简化了跨多机队系统的任务分配和管理。 当用户提交新任务请求时,RMF 将智能地将其分配给机队中能够最佳执行任务的机器人。当
RMF 支持三种类型的现成任务请求:
- 清洁:适用于能够清洁设施内地板空间的机器人
- 配送:适用于能够在设施内不同位置之间配送物品的机器人
- 循环:适用于能够在设施内不同位置之间来回导航的机器人
注意:单个机器人可能能够执行上述一项或多项任务,并且可以配置队列适配器以反映其机器人的能力。 有关支持的任务类型的更多信息,请单击此处
在 RMF 21.04 及更高版本中,任务将根据由 Dispatcher 节点 rmf_dispatcher_node
协调的竞标过程的结果授予机器人队列。
当 Dispatcher 从仪表板或终端收到新任务请求时,它会向所有队列适配器发送 rmf_task_msgs/BidNotice
消息。如果队列适配器能够处理该请求,它会向 Dispatcher 提交 rmf_task_msgs/BidProposal
消息,并附带完成该任务所需的成本。队列适配器使用 rmf_task::agv::TaskPlanner
实例来确定如何最好地满足新请求。有关任务规划器的更多信息,请单击此处
然后,调度员将比较收到的所有“BidProposals”,并提交“rmf_task_msgs/DispatchRequest”消息,其中包含中标机器人的车队名称。调度员评估提案的方式有几种,例如最快完成、最低成本等,这些都可以配置。
电池充电与新的任务规划器紧密集成。当机器人的电量不足以完成一系列任务时,“ChargeBattery”任务将最佳地注入机器人的计划中。目前,我们假设地图中的每个机器人都有一个专用的充电位置,如交通编辑器地图中用“is_charger”选项注释的那样。