CN113752247B - 一种机械臂动态调度方法和装置 - Google Patents

一种机械臂动态调度方法和装置 Download PDF

Info

Publication number
CN113752247B
CN113752247B CN202010574912.5A CN202010574912A CN113752247B CN 113752247 B CN113752247 B CN 113752247B CN 202010574912 A CN202010574912 A CN 202010574912A CN 113752247 B CN113752247 B CN 113752247B
Authority
CN
China
Prior art keywords
mechanical arm
time
dish cooking
task
pot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010574912.5A
Other languages
English (en)
Other versions
CN113752247A (zh
Inventor
沈婧楠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Qianshi Technology Co Ltd
Original Assignee
Beijing Jingdong Qianshi Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Qianshi Technology Co Ltd filed Critical Beijing Jingdong Qianshi Technology Co Ltd
Priority to CN202010574912.5A priority Critical patent/CN113752247B/zh
Publication of CN113752247A publication Critical patent/CN113752247A/zh
Application granted granted Critical
Publication of CN113752247B publication Critical patent/CN113752247B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/0045Manipulators used in the food industry
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Food Science & Technology (AREA)
  • Manipulator (AREA)
  • Feedback Control In General (AREA)

Abstract

本发明公开了一种机械臂动态调度方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:根据当前的机械臂调度方案,计算机械臂执行当前机械臂操作的释放时刻和各个锅的释放时刻;筛选出释放时刻最小的锅,从而从剩余的锅对应的各个菜品烹饪任务中筛选出重调度任务集合;以所述机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,从而调度所述机械臂。该实施方式能够解决现有机械臂调度方法仅适用于静态场景的技术问题。

Description

一种机械臂动态调度方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种机械臂动态调度方法和装置。
背景技术
在机械臂自动炒菜场景下,完成一道菜的自动烹饪需要机械臂进行多次送料盒、以及送空盆、取成品盆。由于一个机械臂负责多个锅,烹饪这些菜所需要执行的机械臂操作可能需要穿插执行。机械臂每次倾倒食材/辅料操作都需要在规定的时间窗内进行,否则会导致菜品烹饪质量不合格,如果多个菜同时进行烹饪且由一个机械臂负责送料盒,则需要调度算法来保证机械臂不发生争抢。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
考虑菜品制作任务动态下发的场景下,需要定时刷新任务池获取新的菜品烹饪任务,但是现有机械臂调度方法仅适用于静态场景,即假设资源(机械臂和锅)均为空闲状态(即在零时刻可用),导致资源没有得到充分利用,菜品制作效率较低。
发明内容
有鉴于此,本发明实施例提供一种机械臂动态调度方法和装置,以解决现有机械臂调度方法仅适用于静态场景的技术问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种机械臂动态调度方法,包括:
根据当前的机械臂调度方案,计算机械臂执行当前机械臂操作的释放时刻和各个锅的释放时刻;
筛选出释放时刻最小的锅,从而从剩余的锅对应的各个菜品烹饪任务中筛选出重调度任务集合;
以所述机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,从而调度所述机械臂。
可选地,所述重调度菜品烹饪任务集合中的各个重调度菜品烹饪任务满足以下条件:所述重调度菜品烹饪任务中至少有一个机械臂操作在机械臂执行当前机械臂操作的释放时刻之前没有开始,以及,所述重调度菜品烹饪任务为锅上的最后一个菜品烹饪任务。
可选地,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,包括:
在重调度条件的约束下,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案;
其中,所述重调度条件包括:
机械臂操作的准备时刻大于等于机械臂执行当前机械臂操作的释放时刻:
菜品烹饪的开始时刻大于等于锅的释放时刻;
重调度菜品烹饪任务在已分配的锅上执行;
若重调度菜品烹饪任务与新增的菜品烹饪任务被分配至同一口锅,则先执行重调度菜品烹饪任务,再执行新增的菜品烹饪任务;
机械臂在某一时刻只能执行一个机械臂操作;
机械臂操作的执行动作的开始时刻处于锅的烹饪时间最小值与烹饪时间最大值之间。
可选地,以所述机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,包括:
在重调度条件的约束下,以所述机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据所述重调度任务集合和新增的菜品烹饪任务集合中菜品烹饪任务的数量,各个菜品烹饪任务的机械臂操作的数量,各个机械臂操作的准备时间、执行时间和复位时间,以及,锅的数量,各个所述机械臂操作对应的锅的烹饪时间最小值、烹饪时间最大值和所述菜品烹饪任务对应的锅的复位时间,得到机械臂调度方案,使得所有菜品烹饪任务的最大完成时刻最小。
可选地,所述机械臂调度方案包括所述机械臂执行各个所述菜品烹饪任务中的各个所述机械臂操作的执行动作的开始时刻。
可选地,调度所述机械臂,包括:
根据所述机械臂执行各个所述菜品烹饪任务中的各个所述机械臂操作的执行动作的开始时刻,以及,各个所述菜品烹饪任务中的各个所述机械臂操作的准备时间和执行时间,计算各个所述菜品烹饪任务中的各个所述机械臂操作的准备动作的开始时刻和复位动作的开始时刻;
根据各个所述菜品烹饪任务中的各个所述机械臂操作的准备动作的开始时刻、执行动作的开始时刻和复位动作的开始时刻,以及,各个所述机械臂操作对应的料盒编号,调度所述机械臂。
可选地,所述机械臂调度方案还包括各个菜品烹饪任务与执行各个所述菜品烹饪任务的锅的对应关系,以及,各个锅对应的菜品烹饪任务的执行顺序;
所述方法还包括:根据各个所述菜品烹饪任务中的各个所述机械臂操作的执行动作的开始时刻和执行时间,计算各个锅的各个烹饪开始时刻和结束时刻。
另外,根据本发明实施例的另一个方面,提供了一种机械臂动态调度装置,包括:
计算模块,用于根据当前的机械臂调度方案,计算机械臂执行当前机械臂操作的释放时刻和各个锅的释放时刻;
筛选模块,用于筛选出释放时刻最小的锅,从而从剩余的锅对应的各个菜品烹饪任务中筛选出重调度任务集合;
调度模块,用于以所述机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,从而调度所述机械臂。
可选地,所述重调度菜品烹饪任务集合中的各个重调度菜品烹饪任务满足以下条件:所述重调度菜品烹饪任务中至少有一个机械臂操作在机械臂执行当前机械臂操作的释放时刻之前没有开始,以及,所述重调度菜品烹饪任务为锅上的最后一个菜品烹饪任务。
可选地,所述调度模块还用于:
在重调度条件的约束下,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案;
其中,所述重调度条件包括:
机械臂操作的准备时刻大于等于机械臂执行当前机械臂操作的释放时刻:
菜品烹饪的开始时刻大于等于锅的释放时刻;
重调度菜品烹饪任务在已分配的锅上执行;
若重调度菜品烹饪任务与新增的菜品烹饪任务被分配至同一口锅,则先执行重调度菜品烹饪任务,再执行新增的菜品烹饪任务;
机械臂在某一时刻只能执行一个机械臂操作;
机械臂操作的执行动作的开始时刻处于锅的烹饪时间最小值与烹饪时间最大值之间。
可选地,所述调度模块还用于:
在重调度条件的约束下,以所述机械执行当前机械臂操作臂的释放时刻作为开始调度时刻,根据所述重调度任务集合和新增的菜品烹饪任务集合中菜品烹饪任务的数量,各个菜品烹饪任务的机械臂操作的数量,各个机械臂操作的准备时间、执行时间和复位时间,以及,锅的数量,各个所述机械臂操作对应的锅的烹饪时间最小值、烹饪时间最大值和所述菜品烹饪任务对应的锅的复位时间,得到机械臂调度方案,使得所有菜品烹饪任务的最大完成时刻最小。
可选地,所述机械臂调度方案包括所述机械臂执行各个所述菜品烹饪任务中的各个所述机械臂操作的执行动作的开始时刻。
可选地,所述调度模块还用于:
根据所述机械臂执行各个所述菜品烹饪任务中的各个所述机械臂操作的执行动作的开始时刻,以及,各个所述菜品烹饪任务中的各个所述机械臂操作的准备时间和执行时间,计算各个所述菜品烹饪任务中的各个所述机械臂操作的准备动作的开始时刻和复位动作的开始时刻;
根据各个所述菜品烹饪任务中的各个所述机械臂操作的准备动作的开始时刻、执行动作的开始时刻和复位动作的开始时刻,以及,各个所述机械臂操作对应的料盒编号,调度所述机械臂。
可选地,所述机械臂调度方案还包括各个菜品烹饪任务与执行各个所述菜品烹饪任务的锅的对应关系,以及,各个锅对应的菜品烹饪任务的执行顺序;
所述调度模块还用于:根据各个所述菜品烹饪任务中的各个所述机械臂操作的执行动作的开始时刻和执行时间,计算各个锅的各个烹饪开始时刻和结束时刻。
根据本发明实施例的另一个方面,还提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现上述任一实施例所述的方法。
根据本发明实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用以机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,从而调度机械臂的技术手段,所以克服了现有技术中现有机械臂调度方法仅适用于静态场景的技术问题。本发明实施例针对机械臂自动炒菜的场景,定时从任务池中获得新增的菜品烹饪任务,然后计算机械臂和锅的释放时间并获取允许重调度的菜品烹饪任务,将允许重调度的菜品烹饪任务和新增的菜品烹饪任务一起计算调度方案,使得完成当前所有任务的目标函数最优,从而实现机械臂的动态调度,达到充分利用机械臂资源、提高菜品制作效率的目的。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的机械臂动态调度方法的主要流程的示意图;
图2是根据本发明实施例的将菜谱处理成模型所需要输入形式的示意图;
图3调用已有静态场景模型求得的两个菜品烹饪任务的调度方案的甘特图;
图4是在现有静态场景模型基础上直接增加新增的菜品烹饪任务的调度方案的甘特图;
图5是根据本发明实施例的新增的菜品烹饪任务的调度方案的甘特图;
图6是根据本发明一个可参考实施例的机械臂动态调度方法的主要流程的示意图;
图7是根据本发明实施例的机械臂动态调度装置的主要模块的示意图;
图8是本发明实施例可以应用于其中的示例性系统架构图;
图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的机械臂动态调度方法的主要流程的示意图。作为本发明的一个实施例,如图1所示,所述机械臂动态调度方法可以包括:
步骤101,根据当前的机械臂调度方案,计算机械臂执行当前机械臂操作的释放时刻和各个锅的释放时刻。
针对机械臂自动炒菜的场景,系统定时从任务池中获得新增的菜品烹饪任务,如果新增的菜品烹饪任务的数量大于等于1,则触发执行步骤101-103,从而实现机械臂动态调度。
在步骤101之前,需要计算当前的机械臂调度方案,包括:步骤1)、根据菜谱生成菜品烹饪任务,从而得到机械臂操作的数量,各个机械臂操作的准备时间、执行时间和复位时间,以及,各个所述机械臂操作对应的锅的烹饪时间最小值、烹饪时间最大值和所述菜品烹饪任务对应的锅的复位时间;其中,每个菜品烹饪任务包括链式的至少一个机械臂操作,每个机械臂操作包括准备动作、执行动作和复位动作;步骤2)、在调度条件的约束下,根据开始调度时刻,菜品烹饪任务的数量,各个菜品烹饪任务的机械臂操作的数量,各个机械臂操作的准备时间、执行时间和复位时间,以及,锅的数量,各个所述机械臂操作对应的锅的烹饪时间最小值、烹饪时间最大值和所述菜品烹饪任务对应的锅的复位时间,得到机械臂调度方案,使得所有菜品烹饪任务的最大完成时刻最小;步骤3)、根据所述机械臂调度方案调度所述机械臂。
一个多锅单臂自动炒菜场景下,完成一道菜的烹饪需要执行下述步骤:
1)操作员将烹饪当前菜品所需的料盒放在小车上,小车运行至炒锅处;
2)炒锅开始烹饪;
3)当需要倾倒料盒时,机械臂抓取料盒,将食材/辅料倒至锅中;
4)料盒倾倒完毕后,炒锅开始执行下一道工序(加热等);
5)机械臂抓取空盆,并将空盆放于炒锅处;
6)制完毕后,炒锅倾倒菜品至空盆中;
7)机械臂抓取成品盆送至输送线;
由上可见,完成一道菜的自动烹饪需要机械臂进行多次送料盒、送空盆、取成品盆。为提高机械臂的利用率,由多锅公用一个机械臂,为避免发生多锅争抢机械臂的情况,导致机械臂无法在规定时间内送料,需要对机械臂进行合理的调度。考虑需要制作n(n≥2)道菜的场景,菜品制作顺序不同可能会导致系统的炒菜效率不同。
首先,需要将原始的菜谱处理成模型所需要的输入形式。
本发明实施例将机械臂的调度问题建模为带资源约束和链式优先约束的单机调度问题,实际中存在两种资源:锅和机械臂,为了简化建模,本发明实施例将机械臂视为机器,而将锅看作额外的资源。每个菜品烹饪任务(Job)由一系列的需要按顺序执行的机械臂抓取操作(Operation)组成,考虑需要完成n(n≥2)个菜品烹饪任务的情况,通过建立数学模型并求解,可以获得在保证菜品制作质量的前提下,使得目标函数(譬如最大完成时刻、总完成时间等)最优的调度方案,包括确定锅的分配、菜品在锅上的烹饪顺序以及各操作的开始时刻。
把烹饪一道菜所需的一系列机械臂抓取操作(Operation)建模为一个菜品烹饪任务(Job),一个机械臂的抓取操作可以拆分为三子动作:1)机械臂抓取料盒送至炒锅上方;2)机械臂倾倒料盒;3)机械臂返回空。上述三个子动作所需要的时间可分别建模为:机械臂操作的准备时间(setup time)、机械臂操作的执行时间(process time)和机械臂操作的复位时间(remove time)。一个菜品烹饪任务的最后一个机械臂抓取操作为送空盆、取成品盆,此时机械臂操作的准备时间为机械臂抓取空盆并将空盆放置炒锅处,机械臂操作的执行时间为等待锅倾倒成品,机械臂操作的复位时间为将成品盆送至成品输送线并复位。
将机械臂开始倾倒料盒前所需要的锅的烹饪时间建模为烹饪时间最小值和烹饪时间最大值,实际烹饪时间应该在两者之间。后续炒锅的烹饪操作在完成料盒倾倒后立即开始。将洗锅时间建模为锅的复位时间。
图2是根据本发明实施例的将菜谱处理成模型所需要输入形式的示意图。一圆圈表示一个操作,用箭头表示执行顺序(链式优先约束)。
综上,一个确定的菜品烹饪任务应该准备下述输入数据:
1)该菜品烹饪任务的机械臂抓取操作的数量;
2)每个机械臂抓取操作的准备时间、执行时间、复位时间、烹饪时间最小值、烹饪时间最大值;该操作对应的料盒编号;
3)锅的复位时间。
可选地,菜品的烹饪可以是炒制、蒸煮或者熬制等,本发明实施例对此不作限制。
可选地,所述调度条件包括:
机械臂操作的执行动作的开始时刻处于锅的烹饪时间最小值与烹饪时间最大值之间;
机械臂在某一时刻只能执行一个机械臂操作;
一个菜品烹饪任务只能在一个锅上执行;
一个锅在某一时刻只能执行一个菜品烹饪任务;
所有菜品烹饪任务的最大完成时刻大于等于机械臂释放时刻和锅的释放时刻。
可选地,所述机械臂释放时刻等于最后一个菜品烹饪任务的最后一个机械臂操作的执行动作的结束时刻加上所述最后一个机械臂操作的复位时间;所述锅的释放时刻等于最后一个菜品烹饪任务的最后一个机械臂操作的执行动作的结束时刻加上所述最后一个菜品烹饪任务对应的锅的复位时间。
模型涉及到的输入参数符号如下:
n:需要执行的菜品烹饪任务的数量;
ni:菜品烹饪任务i的机械臂抓取操作的数量;
m:锅的数量;
Figure BDA0002550974230000101
任务i的第j个操作的机械臂操作的准备时间(机械臂抓取料盒送至炒锅上方的时间);
pij:任务i的第j个操作的机械臂操作的执行时间(机械臂倾倒料盒的时间);
Figure BDA0002550974230000102
任务i的第j个操作的机械臂操作的复位时间(机械臂返回空料盒的时间);
Figure BDA0002550974230000103
任务i的第j个操作的锅的烹饪时间最小值(机械臂开始倾倒料盒前所需要锅的最少烹饪时间,相当于工艺约束);
lij:任务i的第j个操作的锅的烹饪时间最大值(机械臂开始倾倒料盒前所允许的锅的最大烹饪时间,相当于工艺约束);
Figure BDA0002550974230000104
任务i的锅的复位时间(洗锅时间);
该模型涉及到的待决策变量的符号如下:
sij:任务i的第j个操作的执行动作的开始时刻;
cij:任务i的第j个操作的执行动作的结束时刻;
cmax:所有任务的最大完成时刻;
zijhg:0-1变量,zijhg=0(i≠h)表示任务i的第j个操作在任务h的第g个操作后执行;
vik:0-1变量,vik=1表示任务i在第k个锅上制作;
uih:0-1变量,uih=0(i≠h)表示任务i在任务h后执行;
W:一个足够大的整数;
目标函数如下:
mincmax
约束条件如下:
(1)菜品烹饪任务工艺约束,即机械臂操作的执行动作的开始时刻处于锅的烹饪时间最小值与烹饪时间最大值之间:
Figure BDA0002550974230000111
Figure BDA0002550974230000112
sij≤ci,j-1+liji=1,…n;j=2,…,ni
(2)机械臂在某一时刻只能执行一个操作:
cij=sij+piji=1,…n;j=1,…,ni
Figure BDA0002550974230000113
Figure BDA0002550974230000114
zijhg+zhgij=1i,h=1,…n;i≠h
(3)一个菜品烹饪任务只能在一个锅上执行:
Figure BDA0002550974230000115
(4)一个锅在某一时刻只能执行一个菜品烹饪任务:
Figure BDA0002550974230000116
uih+uhi≤1+(2-vik-vhk)Mi,h=1,…n;i≠h,k=1,…,m
uih+uhi≥1i,h=1,…n;i≠h
(5)与目标函数计算相关的约束,即所有菜品烹饪任务的最大完成时刻大于等于机械臂释放时刻和锅的释放时刻:
Figure BDA0002550974230000117
Figure BDA0002550974230000118
需要指出的是,为了便于计算,本发明实施例以零时刻作为开始调度时刻。
可选地,所述机械臂调度方案包括所述机械臂执行各个所述菜品烹饪任务中的各个所述机械臂操作的执行动作的开始时刻。构建的模型为线性模型,可以直接用求解器进行求得使得最大完成时刻(cmax)最小的调度解。此时所有菜品可以最快速度制作完成,系统效率最高。通过求解可以得到每个菜品烹饪任务的每个机械臂操作的执行动作的开始时刻,即sij
可选地,所述机械臂调度方案还包括各个菜品烹饪任务与执行各个所述菜品烹饪任务的锅的对应关系,以及,各个锅对应的菜品烹饪任务的执行顺序。可选地,在步骤2)之后,还包括:根据各个所述菜品烹饪任务中的各个所述机械臂操作的执行动作的开始时刻和执行时间,计算各个锅的各个烹饪开始时刻和结束时刻。通过求解还可以得到cij、vik,因此可得菜品制作任务的锅的分配,根据sij和cij可以推得机械臂每个执行动作的开始时间和结束时间,锅每次加热开始的时间和结束加热的时间亦可以简单推之。
可选地,步骤3)可以包括:根据所述机械臂执行各个所述菜品烹饪任务中的各个所述机械臂操作的执行动作的开始时刻,以及,各个所述菜品烹饪任务中的各个所述机械臂操作的准备时间和执行时间,计算各个所述菜品烹饪任务中的各个所述机械臂操作的准备动作的开始时刻和复位动作的开始时刻;根据各个所述菜品烹饪任务中的各个所述机械臂操作的准备动作的开始时刻、执行动作的开始时刻和复位动作的开始时刻,以及,各个所述机械臂操作对应的料盒编号,调度所述机械臂。
通过计算出的各个菜品烹饪任务中的各个机械臂操作的准备动作的开始时刻、执行动作的开始时刻和复位动作的开始时刻,以及,各个机械臂操作对应的料盒编号,能够更方便地、更准确地调度机械臂,从而提高菜品制作效率。
本发明实施例定时地扫描任务池,如果新增的菜品烹饪任务的数量大于等于1,则根据当前的机械臂调度方案,计算机械臂执行当前机械臂操作的释放时刻和各个锅的释放时刻。
rl1:机械臂执行当前机械臂操作的释放时刻,该时刻之前不允许对机械臂进行重调度,包括新增、删除或变更机械臂的取送操作;
rl1可以由下式计算得到:
Figure BDA0002550974230000121
其中,currentTime+Δt为当前时间加上一个缓冲时间(即延迟时间,可以自定义,比如2秒、3秒或者4秒等),Qr为已经下发指令的机械臂操作集合,
Figure BDA0002550974230000131
为机械臂完成所有已下发且不能变更的抓取操作的(预计)完成时刻。
Figure BDA0002550974230000132
锅k(k∈M)的释放时刻,该时刻之前不允许对锅k进行重调度,包括新增、删除、或变更锅的菜品烹饪任务;
Figure BDA0002550974230000133
可以由下式计算得到:
Figure BDA0002550974230000134
其中,Qc为已经确定锅的分配和烹饪顺序的菜品烹饪任务集合,
Figure BDA0002550974230000135
为锅k上已经确定烹饪顺序的菜品烹饪任务的(预计)完成时刻。
步骤102,筛选出释放时刻最小的锅,从而从剩余的锅对应的各个菜品烹饪任务中筛选出重调度任务集合。
可选地,所述重调度菜品烹饪任务集合中的各个重调度菜品烹饪任务满足以下条件:所述重调度菜品烹饪任务中至少有一个机械臂操作在机械臂执行当前机械臂操作的释放时刻rl1之前没有开始,以及,所述重调度菜品烹饪任务为锅上的最后一个菜品烹饪任务(已下发)。
设允许重调度的菜品烹饪任务的集合为N″,n″=|N″|≤m-1,即如果锅有两个,那么集合N″中最多只有1个任务。允许重调度的菜品烹饪任务i应包含开始时刻
Figure BDA0002550974230000136
不早于rl1的操作。另外计算下述内容作为该允许重调度的菜品烹饪任务的输入参数:
ki:表示任务i分配给锅ki执行;
prevRobotFti:任务i完成前置机械臂操作的机械臂的复位时刻,如果任务i没有前置机械臂操作,可令prevRobotFti=0;
prevCookerSti:任务i正在执行的烹饪操作的开始时刻;
如图3所示,假设rl1=3(虚线所示),只需要将任务1在时刻rl1之后的操作制作为允许重调度的菜品烹饪任务,k1=1,prevRobotFti=3,
Figure BDA0002550974230000137
步骤103,以所述机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,从而调度所述机械臂。
可选地,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,包括:在重调度条件的约束下,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案。其中,所述重调度条件包括:
机械臂操作的准备时刻大于等于机械臂执行当前机械臂操作的释放时刻:
菜品烹饪的开始时刻大于等于锅的释放时刻;
重调度菜品烹饪任务在已分配的锅上执行;
若重调度菜品烹饪任务与新增的菜品烹饪任务被分配至同一口锅,则先执行重调度菜品烹饪任务,再执行新增的菜品烹饪任务;
机械臂在某一时刻只能执行一个机械臂操作;
机械臂操作的执行动作的开始时刻处于锅的烹饪时间最小值与烹饪时间最大值之间。
在步骤101所述的静态模型的基础上新增输入参数如下:
机械臂执行当前机械臂操作的释放时刻rl1
锅k(k∈M)的释放时刻
Figure BDA0002550974230000141
菜品烹饪任务集合N=N′∪N″,其中N′为从任务池中新获得的菜品烹饪任务集合,N″为允许重调度的菜品烹饪任务集合。
在静态模型的基础上新增约束条件如下:
(1)新抓取动作/菜品制作的开始时刻不能早于机械臂/锅的释放时刻:
Figure BDA0002550974230000142
Figure BDA0002550974230000143
(2)重调度菜品烹饪任务在已分配的锅上执行:
Figure BDA0002550974230000144
(3)新菜品烹饪任务在重调度任务之后进行加工(如果在一个锅上烹饪):
Figure BDA0002550974230000151
(4)补充机械臂操作约束,即机械臂在某一时刻只能执行一个操作:
Figure BDA0002550974230000152
(5)补充菜品制作的工艺约束,即机械臂操作的执行动作的开始时刻处于锅的烹饪时间最小值与烹饪时间最大值之间:
Figure BDA0002550974230000153
si1≤prevCookerSti+li1,i∈N″
可选地,以所述机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,包括:
在重调度条件的约束下,以所述机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据所述重调度任务集合和新增的菜品烹饪任务集合中菜品烹饪任务的数量,各个菜品烹饪任务的机械臂操作的数量,各个机械臂操作的准备时间、执行时间和复位时间,以及,锅的数量,各个所述机械臂操作对应的锅的烹饪时间最小值、烹饪时间最大值和所述菜品烹饪任务对应的锅的复位时间,得到机械臂调度方案,使得所有菜品烹饪任务的最大完成时刻最小。
调用求解器可以获得使目标函数(最大完成时刻最小或者总完成时间最短)最优的调度解。根据计算得到的vik可得菜品制作任务的锅的分配,根据sij和cij可以推得每个机械臂操作的开始时刻和结束时刻,锅每次加热的开始时刻和结束时刻亦可以简单推之。
图3为调用已有静态场景模型求得的两个菜品烹饪任务(task1和task2)的调度方案的甘特图。在动态场景下,本申请定时刷新任务池获取了新的菜品烹饪任务(task3),假设当前时间为currentTime=3,基于现有技术的静态场景模型只能得到如图4所示的调度方案,资源没有得到充分利用。
而本发明实施例通过获取资源可使用状态和允许重调度的菜品烹饪任务,并通过在已有模型中增加新的约束来保证调度方案的可行性。通过求解本发明实施例改进的动态模型,可以获得如图5所示的调度方案,即实现了对task 1在currentTime之后的操作进行重调度。
根据上面所述的各种实施例,可以看出本发明实施例通过以机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,从而调度机械臂的技术手段,解决了现有技术中现有机械臂调度方法仅适用于静态场景的技术问题。本发明实施例针对机械臂自动炒菜的场景,定时从任务池中获得新增的菜品烹饪任务,然后计算机械臂和锅的释放时间并获取允许重调度的菜品烹饪任务,将允许重调度的菜品烹饪任务和新增的菜品烹饪任务一起计算调度方案,使得完成当前所有任务的目标函数最优,从而实现机械臂的动态调度,达到充分利用机械臂资源、提高菜品制作效率的目的。
图6是根据本发明一个可参考实施例的机械臂动态调度方法的主要流程的示意图。作为本发明的又一个实施例,如图6所示,所述机械臂动态调度方法可以包括:
步骤601,根据菜谱生成菜品烹饪任务,从而得到机械臂操作的数量,各个机械臂操作的准备时间、执行时间和复位时间,以及,各个所述机械臂操作对应的锅的烹饪时间最小值、烹饪时间最大值和所述菜品烹饪任务对应的锅的复位时间;其中,每个菜品烹饪任务包括链式的至少一个机械臂操作,每个机械臂操作包括准备动作、执行动作和复位动作。
步骤602,在调度条件的约束下,根据开始调度时刻,菜品烹饪任务的数量,各个菜品烹饪任务的机械臂操作的数量,各个机械臂操作的准备时间、执行时间和复位时间,以及,锅的数量,各个所述机械臂操作对应的锅的烹饪时间最小值、烹饪时间最大值和所述菜品烹饪任务对应的锅的复位时间,得到机械臂调度方案,使得所有菜品烹饪任务的最大完成时刻最小。
步骤603,根据所述机械臂调度方案调度所述机械臂。
步骤604,定时从任务池中获得新增的菜品烹饪任务。
步骤605,新增的菜品烹饪任务的数量是否大于等于1;若是,则执行步骤606;若否,则执行步骤604。
步骤606,根据当前的机械臂调度方案,计算机械臂执行当前机械臂操作的释放时刻和各个锅的释放时刻。
步骤607,筛选出释放时刻最小的锅,从而从剩余的锅对应的各个菜品烹饪任务中筛选出重调度任务集合。
步骤608,以所述机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案。
另外,在本发明一个可参考实施例中机械臂动态调度方法的具体实施内容,在上面所述机械臂动态调度方法中已经详细说明了,故在此重复内容不再说明。
图7是根据本发明实施例的机械臂动态调度装置的主要模块的示意图。如图7所示,所述机械臂动态调度装置700包括计算模块701、筛选模块702和调度模块703;其中,计算模块701用于根据当前的机械臂调度方案,计算机械臂执行当前机械臂操作的释放时刻和各个锅的释放时刻;筛选模块702用于筛选出释放时刻最小的锅,从而从剩余的锅对应的各个菜品烹饪任务中筛选出重调度任务集合;调度模块703用于以所述机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,从而调度所述机械臂。
可选地,所述重调度菜品烹饪任务集合中的各个重调度菜品烹饪任务满足以下条件:所述重调度菜品烹饪任务中至少有一个机械臂操作在机械臂执行当前机械臂操作的释放时刻之前没有开始,以及,所述重调度菜品烹饪任务为锅上的最后一个菜品烹饪任务。
可选地,所述调度模块703还用于:
在重调度条件的约束下,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案;
其中,所述重调度条件包括:
机械臂操作的准备时刻大于等于机械臂执行当前机械臂操作的释放时刻:
菜品烹饪的开始时刻大于等于锅的释放时刻;
重调度菜品烹饪任务在已分配的锅上执行;
若重调度菜品烹饪任务与新增的菜品烹饪任务被分配至同一口锅,则先执行重调度菜品烹饪任务,再执行新增的菜品烹饪任务;
机械臂在某一时刻只能执行一个机械臂操作;
机械臂操作的执行动作的开始时刻处于锅的烹饪时间最小值与烹饪时间最大值之间。
可选地,所述调度模块703还用于:
在重调度条件的约束下,以所述机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据所述重调度任务集合和新增的菜品烹饪任务集合中菜品烹饪任务的数量,各个菜品烹饪任务的机械臂操作的数量,各个机械臂操作的准备时间、执行时间和复位时间,以及,锅的数量,各个所述机械臂操作对应的锅的烹饪时间最小值、烹饪时间最大值和所述菜品烹饪任务对应的锅的复位时间,得到机械臂调度方案,使得所有菜品烹饪任务的最大完成时刻最小。
可选地,所述机械臂调度方案包括所述机械臂执行各个所述菜品烹饪任务中的各个所述机械臂操作的执行动作的开始时刻。
可选地,所述调度模块703还用于:
根据所述机械臂执行各个所述菜品烹饪任务中的各个所述机械臂操作的执行动作的开始时刻,以及,各个所述菜品烹饪任务中的各个所述机械臂操作的准备时间和执行时间,计算各个所述菜品烹饪任务中的各个所述机械臂操作的准备动作的开始时刻和复位动作的开始时刻;
根据各个所述菜品烹饪任务中的各个所述机械臂操作的准备动作的开始时刻、执行动作的开始时刻和复位动作的开始时刻,以及,各个所述机械臂操作对应的料盒编号,调度所述机械臂。
可选地,所述机械臂调度方案还包括各个菜品烹饪任务与执行各个所述菜品烹饪任务的锅的对应关系,以及,各个锅对应的菜品烹饪任务的执行顺序;
所述调度模块703还用于:根据各个所述菜品烹饪任务中的各个所述机械臂操作的执行动作的开始时刻和执行时间,计算各个锅的各个烹饪开始时刻和结束时刻。
根据上面所述的各种实施例,可以看出本发明实施例通过以机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,从而调度机械臂的技术手段,解决了现有技术中现有机械臂调度方法仅适用于静态场景的技术问题。本发明实施例针对机械臂自动炒菜的场景,定时从任务池中获得新增的菜品烹饪任务,然后计算机械臂和锅的释放时间并获取允许重调度的菜品烹饪任务,将允许重调度的菜品烹饪任务和新增的菜品烹饪任务一起计算调度方案,使得完成当前所有任务的目标函数最优,从而实现机械臂的动态调度,达到充分利用机械臂资源、提高菜品制作效率的目的。
需要说明的是,在本发明所述机械臂动态调度装置的具体实施内容,在上面所述机械臂动态调度方法中已经详细说明了,故在此重复内容不再说明。
图8示出了可以应用本发明实施例的机械臂动态调度方法或机械臂动态调度装置的示例性系统架构800。
如图8所示,系统架构800可以包括终端设备801、802、803,网络804和服务器805。网络804用以在终端设备801、802、803和服务器805之间提供通信链路的介质。网络804可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备801、802、803通过网络804与服务器805交互,以接收或发送消息等。终端设备801、802、803上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备801、802、803可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器805可以是提供各种服务的服务器,例如对用户利用终端设备801、802、803所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的物品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、物品信息——仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的机械臂动态调度方法一般由服务器805执行,相应地,所述机械臂动态调度装置一般设置在服务器805中。本发明实施例所提供的机械臂动态调度方法也可以由终端设备801、802、803执行,相应地,所述机械臂动态调度装置可以设置在终端设备801、802、803中。
应该理解,图8中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图9,其示出了适于用来实现本发明实施例的终端设备的计算机系统900的结构示意图。图9示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括计算模块、筛选模块和调度模块,其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,该设备实现如下方法:根据当前的机械臂调度方案,计算机械臂执行当前机械臂操作的释放时刻和各个锅的释放时刻;筛选出释放时刻最小的锅,从而从剩余的锅对应的各个菜品烹饪任务中筛选出重调度任务集合;以所述机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,从而调度所述机械臂。
根据本发明实施例的技术方案,因为采用以机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,从而调度机械臂的技术手段,所以克服了现有技术中现有机械臂调度方法仅适用于静态场景的技术问题。本发明实施例针对机械臂自动炒菜的场景,定时从任务池中获得新增的菜品烹饪任务,然后计算机械臂和锅的释放时间并获取允许重调度的菜品烹饪任务,将允许重调度的菜品烹饪任务和新增的菜品烹饪任务一起计算调度方案,使得完成当前所有任务的目标函数最优,从而实现机械臂的动态调度,达到充分利用机械臂资源、提高菜品制作效率的目的。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种机械臂动态调度方法,其特征在于,包括:
根据当前的机械臂调度方案,计算机械臂执行当前机械臂操作的释放时刻和各个锅的释放时刻;所述机械臂释放时刻等于最后一个菜品烹饪任务的最后一个机械臂操作的执行动作的结束时刻加上所述最后一个机械臂操作的复位时间;所述锅的释放时刻等于最后一个菜品烹饪任务的最后一个机械臂操作的执行动作的结束时刻加上所述最后一个菜品烹饪任务对应的锅的复位时间;
筛选出释放时刻最小的锅,从而从剩余的锅对应的各个菜品烹饪任务中筛选出重调度任务集合;重调度任务集合包括需要重新调度的重调度菜品烹饪任务;
以所述机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,从而调度所述机械臂。
2.根据权利要求1所述的方法,其特征在于,所述重调度任务集合中的各个重调度菜品烹饪任务满足以下条件:所述重调度菜品烹饪任务中至少有一个机械臂操作在机械臂执行当前机械臂操作的释放时刻之前没有开始,以及,所述重调度菜品烹饪任务为锅上的最后一个菜品烹饪任务。
3.根据权利要求1所述的方法,其特征在于,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,包括:
在重调度条件的约束下,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案;
其中,所述重调度条件包括:
机械臂操作的准备时刻大于等于机械臂执行当前机械臂操作的释放时刻:
菜品烹饪的开始时刻大于等于锅的释放时刻;
重调度菜品烹饪任务在已分配的锅上执行;
若重调度菜品烹饪任务与新增的菜品烹饪任务被分配至同一口锅,则先执行重调度菜品烹饪任务,再执行新增的菜品烹饪任务;
机械臂在某一时刻只能执行一个机械臂操作;
机械臂操作的执行动作的开始时刻处于锅的烹饪时间最小值与烹饪时间最大值之间。
4.根据权利要求3所述的方法,其特征在于,以所述机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,包括:
在重调度条件的约束下,以所述机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据所述重调度任务集合和新增的菜品烹饪任务集合中菜品烹饪任务的数量,各个菜品烹饪任务的机械臂操作的数量,各个机械臂操作的准备时间、执行时间和复位时间,以及,锅的数量,各个所述机械臂操作对应的锅的烹饪时间最小值、烹饪时间最大值和所述菜品烹饪任务对应的锅的复位时间,得到机械臂调度方案,使得所有菜品烹饪任务的最大完成时刻最小。
5.根据权利要求1所述的方法,其特征在于,所述机械臂调度方案包括所述机械臂执行各个所述菜品烹饪任务中的各个所述机械臂操作的执行动作的开始时刻。
6.根据权利要求5所述的方法,其特征在于,调度所述机械臂,包括:
根据所述机械臂执行各个所述菜品烹饪任务中的各个所述机械臂操作的执行动作的开始时刻,以及,各个所述菜品烹饪任务中的各个所述机械臂操作的准备时间和执行时间,计算各个所述菜品烹饪任务中的各个所述机械臂操作的准备动作的开始时刻和复位动作的开始时刻;
根据各个所述菜品烹饪任务中的各个所述机械臂操作的准备动作的开始时刻、执行动作的开始时刻和复位动作的开始时刻,以及,各个所述机械臂操作对应的料盒编号,调度所述机械臂。
7.根据权利要求6所述的方法,其特征在于,所述机械臂调度方案还包括各个菜品烹饪任务与执行各个所述菜品烹饪任务的锅的对应关系,以及,各个锅对应的菜品烹饪任务的执行顺序;
所述方法还包括:根据各个所述菜品烹饪任务中的各个所述机械臂操作的执行动作的开始时刻和执行时间,计算各个锅的各个烹饪开始时刻和结束时刻。
8.一种机械臂动态调度装置,其特征在于,包括:
计算模块,用于根据当前的机械臂调度方案,计算机械臂执行当前机械臂操作的释放时刻和各个锅的释放时刻;所述机械臂释放时刻等于最后一个菜品烹饪任务的最后一个机械臂操作的执行动作的结束时刻加上所述最后一个机械臂操作的复位时间;所述锅的释放时刻等于最后一个菜品烹饪任务的最后一个机械臂操作的执行动作的结束时刻加上所述最后一个菜品烹饪任务对应的锅的复位时间;
筛选模块,用于筛选出释放时刻最小的锅,从而从剩余的锅对应的各个菜品烹饪任务中筛选出重调度任务集合;重调度任务集合包括需要重新调度的重调度菜品烹饪任务;
调度模块,用于以所述机械臂执行当前机械臂操作的释放时刻作为开始调度时刻,根据所述重调度任务集合和新增的菜品烹饪任务集合,重新计算机械臂调度方案,从而调度所述机械臂。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
CN202010574912.5A 2020-06-22 2020-06-22 一种机械臂动态调度方法和装置 Active CN113752247B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010574912.5A CN113752247B (zh) 2020-06-22 2020-06-22 一种机械臂动态调度方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010574912.5A CN113752247B (zh) 2020-06-22 2020-06-22 一种机械臂动态调度方法和装置

Publications (2)

Publication Number Publication Date
CN113752247A CN113752247A (zh) 2021-12-07
CN113752247B true CN113752247B (zh) 2023-05-30

Family

ID=78785578

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010574912.5A Active CN113752247B (zh) 2020-06-22 2020-06-22 一种机械臂动态调度方法和装置

Country Status (1)

Country Link
CN (1) CN113752247B (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105469328A (zh) * 2015-11-17 2016-04-06 朱文清 一种用餐等待时间计算方法
CN107102894A (zh) * 2017-04-07 2017-08-29 百度在线网络技术(北京)有限公司 任务调度方法、装置和系统
KR102619973B1 (ko) * 2018-11-28 2024-01-02 삼성전자주식회사 복수의 태스크들을 스케줄링하는 전자 장치 및 그의 동작 방법
CN111096656B (zh) * 2019-12-13 2021-10-22 珠海格力电器股份有限公司 烹饪辅助方法、装置、计算机设备和存储介质
CN111243175A (zh) * 2019-12-31 2020-06-05 广东智源机器人科技有限公司 烹饪控制系统、方法、装置、存储介质及处理器
CN111198529A (zh) * 2020-01-16 2020-05-26 珠海格力电器股份有限公司 一种烹饪设备、烹饪方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN113752247A (zh) 2021-12-07

Similar Documents

Publication Publication Date Title
CN108062246B (zh) 用于深度学习框架的资源调度方法和装置
JP3717967B2 (ja) プロセス機械の制御とスケジューリングを行う装置と方法
CN106209682B (zh) 业务调度方法、装置和系统
CN108182111A (zh) 任务调度系统、方法和装置
JP2022532890A (ja) デジタルワークフォースの知的調整のためのシステムおよび方法
CN102760074A (zh) 高负荷业务流程可扩展性
CN113760488B (zh) 调度任务的方法、装置、设备和计算机可读介质
CN109308212A (zh) 一种任务处理方法、任务处理器及任务处理设备
CN109840815B (zh) 用于订单处理的系统及方法
CN115578023A (zh) 一种装配车间调度方法、装置、设备和存储介质
CN110247979A (zh) 一种调度方案确定方法、装置及电子设备
CN108874520A (zh) 计算方法及装置
CN113752247B (zh) 一种机械臂动态调度方法和装置
CN109508232A (zh) 一种任务调度管理的方法、装置及电子设备
WO2018227864A1 (zh) 信息处理方法及装置
CN109271238A (zh) 支持多种编程语言的任务调度装置和方法
CN115129481B (zh) 一种计算资源分配方法、装置及电子设备
CN113759731A (zh) 一种调度机械臂的方法和装置
CN106462360B (zh) 一种资源调度方法以及相关装置
CN115712501A (zh) 一种适用于工程机械的云仿真方法和系统
Son et al. Deadline allocation in a time-constrained workflow
CN114676965A (zh) 生产订单处理方法、装置、设备和存储介质
CN113752248A (zh) 一种机械臂调度方法和装置
CN112559179A (zh) 一种作业处理方法和装置
CN111782351A (zh) 一种分布式任务调度的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant