用于机器人炒菜的信息处理方法和装置与流程

文档序号:27831263发布日期:2021-12-07 22:20阅读:150来源:国知局
用于机器人炒菜的信息处理方法和装置与流程

1.本公开涉及计算机技术领域,更具体地,涉及一种用于机器人炒菜的信息处理方法和装置、电子设备、及介质。


背景技术:

2.在机器人自动炒菜的场景下,通常会由一个机器人(例如,机械臂)负责多个锅(例如两个锅)进行菜品炒制,即一个机器人有可能同时炒制多道菜(类似于一个人同时炒两个菜,并行作业)。其中,在一个时间点机器人对一个锅里的菜进行炒制操作(譬如抓取食材、调料放入锅中),并在整个炒菜过程中穿插交替执行对两个锅中的菜的炒制操作。由于不同菜品的炒制方式是不一样的,有些菜品组合在这种一臂多锅的场景下的炒制效率比较高,而有些菜品组合的炒制效率则比较低。例如,炒菜和炖菜组合在一起炒制时,在炖菜的蒸煮时间内机器人就可以去负责一道炒菜,这种情况下炒制效率会比较高。再例如,两道都需要持续占用机器人的炒菜在一起时,则可能出现在机械复杂一个锅的炒菜时另一个锅必须闲置等待,这种情况下炒制效率就会比较低。
3.在实现本公开的技术构思的过程中,发明人发现现有技术中至少存在以下问题:针对食堂等少品种大批量的供餐场景对每日供应的菜品组合(菜单)进行推荐时,如果凭仅仅借经验,考虑营养要求(譬如荤素搭配等)进行每日菜单的设计,有可能发生菜单涉及的菜品组合在进行同时炒制时效率较低的情况。


技术实现要素:

4.有鉴于此,本公开实施例提供了一种可以使得菜品组合的炒制效率尽可能高的用于机器人炒菜的信息处理方法和装置、电子设备、及介质。
5.本公开实施例的一个方面提供了一种用于机器人炒菜的信息处理方法。所述方法包括:获取可选菜品的信息,得到菜品集合ω=u
i=1,...,c
ω
i
,其中所述可选菜品包括c类菜品,ω
i
为所述可选菜品中第i类菜品的集合,c为大于等于1的整数;获取炒菜用的设备信息,所述设备信息包括一个机器人负责的炒锅数m,m为大于等于1的整数;对于所述可选菜品中的每个菜品ω∈ω,获取单独炒制该菜品时的设备占用时间,所述设备占用时间包括机器人净占用时间rt
ω
、以及锅占用时间ct
ω
;基于所述可选菜品中不同菜品的所述机器人净占用时间rt
ω
以及锅占用时间ct
ω
,对一个机器人同时炒制的m个菜品进行组合。
6.根据本公开的实施例,所述基于所述可选菜品中不同菜品的所述机器人净占用时间rt
ω
以及锅占用时间ct
ω
,对一个机器人同时炒制的m个菜品进行组合包括:基于所述可选菜品中任意m个菜品的机器人净占用时间的总时长以及该m个菜品并行炒制时锅占用时间的总时长二者的时间差,对一个机器人同时炒制的m个菜品进行组合。
7.根据本公开的实施例,所述对一个机器人同时炒制的m个菜品进行组合包括:当一个菜品组成的第一组合对应的所述时间差,小于该菜品组成的第二组合对应的所述时间差时,将该菜品划分到所述第一组合中。
8.根据本公开的实施例,所述基于所述可选菜品中不同菜品的所述机器人净占用时间rt
ω
以及锅占用时间ct
ω
,对一个机器人同时炒制的m个菜品进行组合包括:获取菜单要求信息,菜单要求信息包括需要生成的菜单天数d;以及基于所述菜品集合ω、所述设备信息、所述设备占用时间、以及菜单要求信息,获得最优菜单π
t
={ω|x
ωt
=1},其中,x
ωt
=1表示菜品ω在第t天被选择,t=1,2,...d,其中,所述最优菜单中机器人净占用时间的总时长与m个菜品并行炒制时锅占用时间的总时长二者之间的时间差最小。
9.根据本公开的实施例,所述获得最优菜单包括:构建菜单优化模型,将所述菜品集合ω、所述设备信息、和所述设备占用时间输入到所述菜单优化模型,以及获取所述菜单优化模型的输出,得到所述最优菜单π
t
={ω|x
ωt
=1}。其中构建菜单优化模型包括:设置菜单优化模型的目标函数min∑
t=1,...d
|∑
ω∈ω
x
ωt
rt
ω-∑
ω∈ω
x
ωt
ct
ω
/m|;以及基于所述菜单要求信息构建所述菜单优化模型的约束条件。
10.根据本公开的实施例,所述获取所述菜单优化模型的输出包括首先将所述目标函数线性化,得到线性目标函数,如下:
[0011][0012][0013]
f
t
≥-∑
ω∈ω
x
ωt
rt
ω
+∑
ω∈ω
x
ωt
ct
ω
/m;
[0014]
然后利用求解器求解所述线性目标函数,得到所述菜单优化模型的输出。
[0015]
根据本公开的实施例,所述获得最优菜单包括首先获取与所述菜单要求信息相匹配的n个不同的菜单π
s,t
={ω|x
ωt
=1},π
s,t
为第s个菜单,s=1,...,n,其中n为大于等于2的整数;然后对于所述第s个菜单π
s,t
={ω|x
ωt
=1},获取机器人净占用时间的总时长与m个菜品并行炒制时锅占用时间的总时长二者之间的时间差,如下:δt=|∑
ω∈ω
x
ωt
rt
ω-∑
ω∈ω
x
ωt
ct
ω
/m|;之后将所述n个不同菜单中所述时间差δt最小的菜单作为所述最优菜单。
[0016]
根据本公开的实施例,所述菜单要求信息还包括:每个菜品在d天内允许被选择的次数;和/或在d天中的第t天要求包含的菜品种类数a,其中,a≤c;和/或在d天中的第t天要求第i类菜品的数量k
i

[0017]
本公开实施例的另一方面提供了一种用于机器人炒菜的信息处理装置。所述装置包括第一获取模块、第二获取模块、第三获取模块、以及优化模块。第一获取模块用于获取可选菜品的信息,得到菜品集合ω=u
i=1,...,c
ω
i
,其中所述可选菜品包括c类菜品,ω
i
为所述可选菜品中第i类菜品的集合,c为大于等于1的整数。第二获取模块用于获取炒菜用的设备信息,所述设备信息包括一个机器人负责的炒锅数m,m为大于等于1的整数。第三获取模块用于对于所述可选菜品中的每个菜品ω∈ω,获取单独炒制该菜品时的设备占用时间,所述设备占用时间包括机器人净占用时间rt
ω
、以及锅占用时间ct
ω
。所述优化模块用于基于所述可选菜品中不同菜品的所述机器人净占用时间rt
ω
以及锅占用时间ctω,对一个机器人同时炒制的m个菜品进行组合。
[0018]
根据本公开的一个实施例,所述优化模块还包括第四获取模块以及菜单优化模
块。第四获取模块用于获取菜单要求信息,菜单要求信息包括需要生成的菜单天数d。菜单优化模块用于基于所述菜品集合ω、所述设备信息、所述设备占用时间、以及菜单要求信息,获得最优菜单π
t
={ω|x
ωt
=1},其中,x
ωt
=1表示菜品ω在第t天被选择,t=1,2,...d;其中,所述最优菜单中机器人净占用时间的总时长与m个菜品并行炒制时锅占用时间的总时长二者之间的时间差最小。
[0019]
根据本公开的实施例,所述菜单优化模块包括模型构建子模块、输入子模块、以及第一获取子模块。模型构建子模块用于构建菜单优化模型,包括设置菜单优化模型的目标函数:min∑
t=1,...d
|∑
ω∈ω
x
ωt
rt
ω-∑
ω∈ω
x
ωt
ct
ω
/m|;以及基于所述菜单要求信息构建所述菜单优化模型的约束条件。输入子模块用于将所述菜品集合ω、所述设备信息、所述设备占用时间输入到所述菜单优化模型。第一获取子模块用于获取所述菜单优化模型的输出,得到所述最优菜单π
t
={ω|x
ωt
=1}。
[0020]
根据本公开的实施例,所述菜单优化模块包括多菜单获取子模块、时间差获取子模块、以及第二获取子模块。多菜单获取子模块用于获取与所述菜单要求信息相匹配的n个不同的菜单π
s,t
={ω|x
ωt
=1},π
s,t
为第s个菜单,s=1,...,n;n为大于等于2的整数。时间差获取子模块用于对于所述第s个菜单π
s,t
={ω|x
ωt
=1},获取机器人净占用时间的总时长与m个菜品并行炒制时锅占用时间的总时长二者之间的时间差δt=|∑
ω∈ω
x
ωt
rt
ω-∑
ω∈ω
x
ωt
ct
ω
/m|。第二获取子模块用于将所述n个不同菜单中所述时间差δt最小的菜单作为所述最优菜单。
[0021]
本公开实施例的另一方面提供了一种电子设备。该电子设备包括:一个或多个存储器、以及一个或多个处理器。所述存储器存储有可执行指令。所述处理器执行所述可执行指令以实现如上所述的方法。
[0022]
本公开实施例的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
[0023]
本公开实施例的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
[0024]
上述一个或多个实施例具有如下优点或益效果:可以至少部分地减轻一个机器人负责多个锅进行菜品炒制时炒制效率低下问题,通过根据机器人净占用时间的总时长与m个菜品并行炒制时锅占用时间的总时长二者之间的时间差进行菜品组合,使得一个机器人负责多个锅进行菜品炒制时炒制效率尽可能高。
附图说明
[0025]
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
[0026]
图1示意性示出了根据本公开实施例的用于机器人炒菜的信息处理方法和装置的应用场景;
[0027]
图2示意性示出了根据本公开实施例的用于机器人炒菜的信息处理方法的流程图;
[0028]
图3a示意性示出了根据本公开另一实施例的菜单π
t
={ω|x
ωt
=1}的示意;
[0029]
图3b示意性示出了生活中常见的一个食堂菜单的示例;
[0030]
图4示意性示出了根据本公开另一实施例的用于机器人炒菜的信息处理方法的流程图;
[0031]
图5示意性示出了根据本公开一实施例的用于机器人炒菜的信息处理方法中获得最优菜单的流程图;
[0032]
图6示意性示出了根据本公开另一实施例的用于机器人炒菜的信息处理方法中获得最优菜单的流程图;
[0033]
图7示意性示出了根据本公开实施例的用于机器人炒菜的信息处理装置的方框图;
[0034]
图8示意性示出了根据本公开一实施例的菜单优化模块的方框图;
[0035]
图9示意性示出了根据本公开另一实施例的菜单优化模块的方框图;以及
[0036]
图10示意性示出了适于实现根据本公开实施例的用于机器人炒菜的信息处理方法的电子设备的结构框图。
具体实施方式
[0037]
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
[0038]
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
[0039]
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
[0040]
在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。
[0041]
本公开希望至少一定程度上改善相关技术中在凭仅仅借经验进行菜品组合,会引起一个机器人负责多个锅进行菜品炒制时炒制效率较低的问题,尤其是针对食堂等少品种大批量的供餐场景。因此,本公开的实施例提供了一种用于机器人炒菜的信息处理方法和装置、电子设备、以及介质。
[0042]
具体地,根据本公开实施例的用于机器人炒菜的信息处理方法可以包括:首先获取可选菜品的信息,得到菜品集合ω=u
i=1,...,c
ω
i
,其中可选菜品包括c类菜品,ω
i
为可选菜品中第i类菜品的集合,c为大于等于1的整数;然后获取炒菜用的设备信息,该设备信息
包括一个机器人负责的炒锅数m,m为大于等于1的整数;接着对于可选菜品中的每个菜品ω∈ω,获取单独炒制该菜品时的设备占用时间,该设备占用时间包括机器人净占用时间rt
ω
、以及锅占用时间ct
ω
;之后基于可选菜品中不同菜品的机器人净占用时间rt_ω以及锅占用时间ct_ω,对一个机器人同时炒制的m个菜品进行组合。例如,基于可选菜品中任意m个菜品的机器人净占用时间的总时长以及该m个菜品并行炒制时锅占用时间的总时长二者的时间差,对一个机器人同时炒制的m个菜品进行组合。
[0043]
以此方式,本公开的各个实施例可以根据各种组合中的菜品的机器人净占用时间与m个菜品并行炒制时锅占用时间的总时长的比较,来确定一个机器人同时炒制的m个菜品,使得一个机器人负责多个锅进行菜品炒制时炒制效率尽可能高。
[0044]
图1示意性示出了根据公开实施例的用于机器人炒菜的信息处理方法和装置的应用场景100。
[0045]
如图1所示,该应用场景100可以包括机器人101、以及锅102、103。机器人101可以负责锅102、103中的菜品的交替炒制操作,实现锅102、103中的两道菜的并行炒制。例如,机器人101可以是悬挂式机器人,可以沿轨道104移动,在要负责具体的锅的炒制操作时,可以将机器人101沿轨道104移动到相应的锅102或103的上方。如图1中当前时刻所示,锅103中的菜品正在进行蒸煮中,在此间隙将机器人101移动到锅102的上方,对锅102中的菜品执行炒制操作,例如加入调料。当然可以理解,机器人101为悬挂式机器人仅为一种示例,并不对本公开构成任何限定。
[0046]
需要说明的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
[0047]
图2示意性示出了根据本公开实施例的用于机器人炒菜的信息处理方法的流程图。
[0048]
如图2所示,该信息处理方法可以包括操作s210~操作s240。
[0049]
在操作s210,获取可选菜品的信息,得到菜品集合ω=u
i=1,...,c
ω
i
,其中可选菜品包括c类菜品,ω
i
为可选菜品中第i类菜品的集合,c为大于等于1的整数。
[0050]
在操作s220,获取炒菜用的设备信息,设备信息包括一个机器人负责的炒锅数m,m为大于等于1的整数。当m=1时代表一个机器人负责一个锅,所有菜品均为串行炒制。当m大于1时,代表一个机器人可以负责多个锅,可以进行菜品的并行炒制。例如,在图1的示例中m=2。在另一些实施例中,m还可以取3或者更大的值。
[0051]
在操作s230,对于可选菜品中的每个菜品ω∈ω,获取单独炒制该菜品时的设备占用时间,设备占用时间包括机器人净占用时间rt
ω
、以及锅占用时间ct
ω

[0052]
机器人净占用时间rt
ω
是在炒制一个菜品的过程中对机器人的净利用时间,可以是多个不连续的时间的总时长。例如,机器人1在锅102中放完料盖上盖子之后去照顾锅103,那么在计算锅102中的菜品的机器人净占用时间时机器人照顾锅103中的菜品的时间就不能计算在内。
[0053]
锅占用时间ct
ω
是连续计时的,例如无论对锅102中的菜品还是锅103中的菜品,一旦开始炒制直到菜品出锅的整个持续时间内,锅102和锅103都会被持续占用。
[0054]
在操作s240,基于所述可选菜品中不同菜品的所述机器人净占用时间rt
ω
以及锅
占用时间ct
ω
,对一个机器人同时炒制的m个菜品进行组合。
[0055]
根据本公开的一个实施例,可以基于所述可选菜品中任意m个菜品的机器人净占用时间的总时长以及该m个菜品并行炒制时锅占用时间的总时长二者的时间差,对一个机器人同时炒制的m个菜品进行组合。例如,当一个菜品组成的第一组合对应的所述时间差,小于该菜品组成的第二组合对应的所述时间差时,将该菜品划分到所述第一组合中。以此方式可以使机器人同时炒制的效率尽可能高。以此方式,可以在每次进行多个菜品的炒制时,对一个机器人并行炒制的菜品进行组合,提高机器人炒制菜品的效率。
[0056]
根据本公开的另一实施例,可以基于所述可选菜品中不同菜品的所述机器人净占用时间rt
ω
以及锅占用时间ct
ω
,对食堂每日供应的菜单进行优化,使得在满足食堂供餐要求的条件下,机器人炒制菜品效率尽可能高。
[0057]
图3a示意性示出了根据本公开实施例的菜单π
t
={ω|x
ωt
=1}的示意。
[0058]
如图3a所示,菜品集合ω=u
i=1,...,c
ω
i
,其中可选菜品包括c类菜品(例如,荤菜、素菜、甜品、或面点等),ω
i
为可选菜品中第i类菜品的集合,c为大于等于1的整数。ω∈ω,为可选菜品中的任意一个菜品。
[0059]
菜单天数为需要生成的菜单的天数,总天数为d,其中t=1,2,...d;
[0060]
x
ωt
例如可以被设置为取值为0或1的变量。其中x
ωt
=1表示菜品ω在第t天被选择,ω∈ω,t=1,2,...d。例如,若x
11
=1,代表ω=1所表示的菜品在第一天内被炒制。
[0061]
从而,根据图3a所示出图表各个方格项的取值,就可以得到d内的菜单。其中,π
t
={ω|x
ωt
=1}表示第t天内取值为1时对应的ω的值所代表的菜品被选择。
[0062]
可以理解的是,ω的取值与菜品集合ω中的菜品的标识有关。例如,在实际应用中,可以对菜品集合ω中的所有菜品进行编号,从而将菜品名转换成数字,以进行数字化处理。例如,可以将“番茄鸡蛋”按照素菜编号为1,可以将“炖排骨”按照荤菜编号为2。从而,ω=1对应的菜品即为“番茄鸡蛋”,ω=2对应的菜品即为“炖排骨”[0063]
当然,在另一些实施例中,也可以将各种菜品先分类,并按照各自的分类再进行唯一性编号等。例如对于荤菜以1开头标识,对于素菜以2开头进行标识,这样,例如可以将“番茄鸡蛋”按照素菜编号为11,将“炖排骨”按照荤菜编号为21。从而,ω=11对应的菜品即为“番茄鸡蛋”,ω=21对应的菜品即为“炖排骨”。
[0064]
图3b示意性示出了生活中常见的一个食堂用菜单的示例。
[0065]
如图3b所示,该食堂菜单为工作日五天的菜单,其中每天两荤两素。
[0066]
该菜单例如可以是基于图3a所示的菜单转换而成的。例如,以星期一的四个菜品为例进行说明。假设红烧排骨、豆角、木须柿子、以及尖椒千豆腐在菜品集合ω中的标识ω取值分别为1、3、7和8(具体数值是为了示例起见任意设置)。根据本公开的实施例,星期一的菜单π
t
={ω|x
ωt
=1}在图3a中的表示为:t=1所在列各项取值为x
11
=1、x
31
=1、x
71
=1、以及x
81
=1,其余各项取值均为0。进而,可以从图3a中第一列取出取值为1的各项对应的ω值,再找到对应的菜品名,即可得到图3b中星期一的菜单。图3b中其余工作日中菜单也可以以类似的方式获得。
[0067]
本公开实施例可以针对食堂等少品种大批量的供餐场景进行菜单优化设计。不同于基于顾客点餐的餐厅的供餐形式,通常食堂供餐可以提前设置好菜单,然后提供给用餐人员进行选择,进而可以在满足基本的菜单要求(例如,营养搭配、以及菜单天数等)后,根
据不同菜品占用机器人和锅的特点的优化配合来提高整体炒制效率。
[0068]
具体而言,食堂等少品种大批量的供餐场景的菜单优化问题例如可以抽象为:设总共有c类菜品(例如,荤菜、素菜、面点、或甜品等分类),第i类菜品的可选菜品集合为ω
i
,其中,第i类菜品的数量|ω
i
|=m
i
;要求生成的d天的菜单(例如,一周五天)。为了营养搭配起见有时还会要求每日菜单所包含的第i类菜品的数量要求为k
i
。另外为了菜品丰富起见,可能还会要求每天菜品不能重复,这样,显然需要满足k
i
·
d≤m
i
,该问题才有可行解。而要提高炒制效率,则要求d天的菜单所呈现的总体效果能够实现机器人和锅的配合效率较高,尽量减少炒制过程中机器人的闲置时间或者锅的闲置时间。
[0069]
图4示意性示出了根据本公开另一实施例的用于机器人炒菜的信息处理方法的流程图。
[0070]
如图4所示,根据本公开另一实施例的用于机器人炒菜的信息处理方法可以包括操作s210~操作s230、以及操作s440和操作s450。
[0071]
在操作s210,获取可选菜品的信息,得到菜品集合ω=u
i=1,...,c
ω
i
,其中可选菜品包括c类菜品,ω
i
为可选菜品中第i类菜品的集合,c为大于等于1的整数。
[0072]
在操作s220,获取炒菜用的设备信息,设备信息包括一个机器人负责的炒锅数m,m为大于等于1的整数。当m=1时代表一个机器人负责一个锅,所有菜品均为串行炒制。当m大于1时,代表一个机器人可以负责多个锅,可以进行菜品的并行炒制。例如,在图1的示例中m=2。在另一些实施例中,m还可以取3或者更大的值。
[0073]
在操作s230,对于可选菜品中的每个菜品ω∈ω,获取单独炒制该菜品时的设备占用时间,设备占用时间包括机器人净占用时间rtω、以及锅占用时间ct
ω

[0074]
机器人净占用时间rt
ω
是在炒制一个菜品的过程中对机器人的净利用时间,可以是多个不连续的时间的总时长。例如,机器人1在锅102中放完料盖上盖子之后去照顾锅103,那么在计算锅102中的菜品的机器人净占用时间时机器人照顾锅103中的菜品的时间就不能计算在内。
[0075]
锅占用时间ct
ω
是连续计时的,例如无论对锅102中的菜品还是锅103中的菜品,一旦开始炒制直到菜品出锅的整个持续时间内,锅102和锅103都会被持续占用。
[0076]
在操作s440,获取菜单要求信息,菜单要求信息包括需要生成的菜单天数d。
[0077]
另外,菜单要求信息例如还可以包括每个菜品在d天内允许被选择的次数。例如,d天每个菜品只能被选择1次,这意味着在d天内所有菜品不重复。
[0078]
又例如,菜单要求信息还可以包括在d天中的第t天要求包含的菜品种类数a,其中,a≤c。例如,如表3所示的d天内每天分别包括荤菜和素菜两类。又例如,也可以是d天内不同天要求保护的菜品种类数a不同。例如,当菜品种类可以包括荤菜、素菜、甜品、面点、和汤品5种时,可以限定d天内每天包括3类(即,a=3),或者也可以限定d天内比如前三天包括5类,其余天包括3类。
[0079]
或者,再例如,菜单要求信息还可以包括在d天中的第t天要求第i类菜品的数量k
i
。例如,如表3所示的d天内每天包括荤菜两个,素菜两个。或者又例如,可以在d天的不同天内第i类菜品的数量不同。例如,可以是根据经验第一天用餐人数较多,从而在第一天要求荤菜3个,素菜1个;后几天要求荤菜2个、素菜2个。
[0080]
菜单要求信息可以根据各个用餐场景、或者营养搭配要求、或者根据经验等来没
定,对此本公开不予限定。
[0081]
在操作s450,基于菜品集合ω、设备信息、设备占用时间、以及菜单要求信息,获得最优菜单π
t
={ω|x
ωt
=1},其中,x
ωt
=1表示菜品ω在第t天被选择,t=1,2,...d,其中,最优菜单中机器人净占用时间的总时长与m个菜品并行炒制时锅占用时间的总时长二者之间的时间差最小。其中,m个菜品并行炒制时锅占用时间的总时长中m个锅占用中相重合的时间段仅记录为一个时间段。在一个实施例中,可以将m个菜品单独炒制时锅占用时间的总时长加和后再除以m,来近似估算实际情况下m个菜品并行炒制时锅占用时间的总时长。以图1为例,锅102和103中的菜品并行炒制时锅占用时间的总时长,在实际中可能是锅102和103中占用时间最长的那一个锅的占用时长。为了简化计算,可以将锅102和锅103的各自占用时长加和后再除以2,得到锅102和103中的菜品并行炒制时锅占用时间的总时长。
[0082]
在一个实施例中,操作s450中可以根据菜品集合ω、设备信息、设备占用时间、以及菜单要求信息等进行菜单定制。例如可以根据以上参数构建菜单优化模型,从而求解最优菜单,例如得到图3a所示的菜单,进而可以根据图3a转换得到类似于图3b所示的生活化的菜单。对此的具体实现可以参考如下图5和图6的相关说明。
[0083]
在另一个实施例中,操作s450中可以对多个已有菜单进行评价,根据每个机器人净占用时间的总时长与m个菜品并行炒制时锅占用时间的总时长锅占用时间的总时长二者之间的时间差,从中选择出时间差最小的菜单作为最优菜单。例如,可以先得到多个类似于图3b所示的菜单,然后将每个菜单转换为图3a的形式,接着在此基础上计算每个菜单中机器人净占用时间的总时长与m个菜品并行炒制时锅占用时间的总时长锅占用时间的总时长二者之间的时间差。根据该时间差对各个菜单的炒制效率进行评价,从中选择出炒制效率最优的一组菜单。
[0084]
以此方式,本公开实施例的用于机器人炒菜的信息处理方法,可以根据机器人净占用时间的总时长与m个菜品并行炒制时锅占用时间的总时长锅占用时间的总时长二者之间的时间差最小来推荐菜单,使得一个机器人负责多个锅进行菜品炒制时炒制效率尽可能高。
[0085]
图5示意性示出了根据本公开一实施例的用于机器人炒菜的信息处理方法中操作s450获得最优菜单的流程图。
[0086]
如图5所示,根据本公开的实施例操作s450可以包括操作s501~操作s504。本公开实施例的方法可以实现机器人自动炒菜场景下的菜单定制。
[0087]
在操作s501,设置菜单优化模型的目标函数,如下式(1)。
[0088]
min∑
t=1,...d
|∑
ω∈ω
x
ωt
rt
ω-∑
ω∈ω
x
ωt
ct
ω
/m|
ꢀꢀꢀ
式(1)
[0089]
其中,∑
ω∈ω
x
ωt
rt
ω
表示了图3a所示的菜单中机器人净占用时间的总时长,∑
ω∈ω
x
ωt
ct
ω
/m代表了图3a所示的菜单中m个菜品并行炒制时锅占用时间的总时长,除以m以简化的形式将m个锅中重合的时间段仅记录其中之一。在式(1)中近似假设两两菜品都可以并行处理,从而m个菜品并行炒制时锅占用时间的总时长,简化为所有菜品的锅占用时间总和的m分之一因此,式(1)的含义为如果菜品组合中机器人实际净占用时间和锅的实际占用时间相近,则在进行菜品组合炒制时,机器人和锅的利用率都能达到一个相对比较高的水平,而不会发生机器人利用率过低或者锅的利用率过低的情况,是用目标函数的最小化的作为实际优化的估计。
[0090]
在操作s502,基于菜单要求信息构建菜单优化模型的约束条件。假设,在一个实施例中,菜单要求信息包括要求生成d天的菜单,每个菜品只能被选择一次,并且每天菜单中第i类菜品有且有k
i
个,对应的约束条件可以包括如下式(2)和式(3)所示。
[0091]

t=1,2,...,d
x
ωt
≤1,ω∈ω
ꢀꢀꢀꢀ
式(2)
[0092][0093]
其中,式(2)表示d天内每个菜品只能被选择一次,式(3)表示每天菜单中第i类菜品有且有k
i
个。
[0094]
当然当菜单要求信息还包括其他内容时,也可以对应设置相应的约束条件。
[0095]
在操作s503,将菜品集合ω、设备信息、和设备占用时间输入到菜单优化模型,即输入到式(1)中计算满足(2)和式(3)的解x
ωt
,其中ω∈ω,t=1,2,...d。
[0096]
在操作s504,获取菜单优化模型的输出,得到最优菜单π
t
={ω|x
ωt
=1}。如果上述菜单优化模型存在可行解,即能够求解出x
ωt
要么取0,要求取1,则可以得到例如可以如图3a所示的菜单,即为最优菜单。
[0097]
根据本公开的实施例,操作s504中可以将目标函数线性化,得到线性目标函数,如下式(4);然后利用求解器求解式(4)中线性目标函数,得到菜单优化模型的输出。
[0098][0099][0100]
f
t
≥-∑
ω∈ω
x
ωt
rt
ω
+∑
ω∈ω
x
ωt
ct
ω
/m;
ꢀꢀꢀꢀ
式(4)
[0101]
式(1)和式(4)是等价的,其中式(4)为去掉绝对值符号的线性表达式,放到线性求解器中求解更容易。
[0102]
可以理解,在式(1)中近似假设两两菜品都可以并行处理,从而m个菜品并行炒制时锅占用时间的总时长,简化为所有菜品的锅占用时间总和的m分之一。这样得到的菜单与理论上可能存在的真实的最优菜单并不完全等同,可能会存在有某一组炒菜组合实际上只能串行炒制。但是通过式(1)的目标函数的最小化,可以使图3a所示的菜单在d天内整体上炒制效率较高,至少在一个维度上衡量出这样的菜单是比较效率的。
[0103]
图6示意性示出了根据本公开另一实施例的用于机器人炒菜的信息处理方法中操作s450获得最优菜单的流程图。
[0104]
如图6所示,根据本公开的实施例操作s450可以包括操作s601~操作s603。本公开实施的方法可以适于对多个菜单进行评价和优选。
[0105]
在操作s601,获取与菜单要求信息相匹配的n个不同的菜单π
s,t
={ω|x
ωt
=1},π
s,t
为第s个菜单,s=1,...,n,其中n为大于等于2的整数。例如,该n个不同的菜单可以是人工按照经验,根据菜单要求信息(例如,菜单天数、荤素种类等营养要求等)安排出来的菜单。
[0106]
在操作s602,对于第s个菜单π
s,t
={ω|x
ωt
=1},获取机器人净占用时间的总时长与m个菜品并行炒制时锅占用时间的总时长二者之间的时间差,如式(5)所示。
[0107]
δt=|∑
ω∈ω
x
ωt
rt
ω-∑
ω∈ω
x
ωt
ct
ω
/m|
ꢀꢀꢀꢀ
式(5)
[0108]
类似于式(1),∑
ω∈ω
x
ωt
rt
ω
表示了图3a所示的菜单中机器人净占用时间的综合,∑
ω∈ω
x
ωt
ct
ω
/m代表了图3a所示的菜单中m个菜品并行炒制时锅占用时间的总时长,除以m以简化的形式将m个锅中重合的时间段仅记录其中之一。其中,近似假设两两菜品都可以并行处理,从而m个菜品并行炒制时锅占用时间的总时长,简化为所有菜品的锅占用时间总和的m分之一。因此,式(5)可以用作对菜单中机器人实际净占用时间和锅的实际占用时间的差值的一个估计。
[0109]
在操作s603,将n个不同菜单中时间差δt最小的菜单作为最优菜单。以此方式,可以多个菜单的炒制效率进行评价,从中选择出一个炒制效率最高的菜单。
[0110]
图7示意性示出了根据本公开实施例的用于机器人炒菜的信息处理装置700的方框图。
[0111]
如图7所示,根据本公开的实施例该用于机器人炒菜的信息处理装置700包括第一获取模块710、第二获取模块720、第三获取模块730、以及优化模块740。该用于机器人炒菜的信息处理装置700可以用于执行参考图2~图6所描述的用于机器人炒菜的信息处理方法。
[0112]
第一获取模块710例如可以执行操作s210,用于获取可选菜品的信息,得到菜品集合ω=u
i=1,...,c
ω
i
,其中可选菜品包括c类菜品,ω
i
为可选菜品中第i类菜品的集合,c为大于等于1的整数。
[0113]
第二获取模块720例如可以执行操作s220,用于获取炒菜用的设备信息,设备信息包括一个机器人负责的炒锅数m,m为大于等于1的整数。
[0114]
第三获取模块730例如可以执行操作s230,用于对于可选菜品中的每个菜品ω∈ω,获取单独炒制该菜品时的设备占用时间,设备占用时间包括机器人净占用时间rt
ω
、以及锅占用时间ctω。
[0115]
优化模块740例如可以执行操作s240,用于基于所述可选菜品中不同菜品的所述机器人净占用时间rt
ω
以及锅占用时间ct
ω
,对一个机器人同时炒制的m个菜品进行组合。
[0116]
根据本公开的一个实施例,所述优化模块740可以包括第四获取模块741、以及菜单优化模块742。
[0117]
第四获取模块741例如可以执行操作s440,用于获取菜单要求信息,菜单要求信息包括需要生成的菜单天数d。
[0118]
菜单优化模块742例如可以执行操作s450,用于基于菜品集合ω、设备信息、设备占用时间、以及菜单要求信息,获得最优菜单π
t
={ω|x
ωt
=1},其中,x
ωt
=1表示菜品ω在第t天被选择,t=1,2,...d;其中,最优菜单中机器人净占用时间的总时长与m个菜品并行炒制时锅占用时间的总时长二者之间的时间差最小。
[0119]
图8示意性示出了根据本公开一实施例的菜单优化模块742的方框图。
[0120]
如图8所示,根据本公开的实施例菜单优化模块742可以包括模型构建子模块801、输入子模块802、以及第一获取子模块803。
[0121]
模型构建子模块801例如可以执行操作s501和操作s502,用于构建菜单优化模型,包括设置菜单优化模型的目标函数:min∑
t=1,...d
|∑
ω∈ω
x
ωt
rt
ω-∑
ω∈ω
x
ωt
ct
ω
/m|,以及基于菜单要求信息构建菜单优化模型的约束条件。
[0122]
输入子模块802例如可以执行操作s503,用于将菜品集合ω、设备信息、设备占用
时间输入到菜单优化模型。
[0123]
第一获取子模块803例如可以执行操作s504,用于获取菜单优化模型的输出,得到最优菜单π
t
={ω|x
ωt
=1}。
[0124]
图9示意性示出了根据本公开另一实施例的菜单优化模块742的方框图。
[0125]
如图9所示,菜单优化模块742可以包括多菜单获取子模块901、时间差获取子模块902、以及第二获取子模块903。
[0126]
多菜单获取子模块901例如可以执行操作s601,用于获取与菜单要求信息相匹配的n个不同的菜单π
s,t
={ω|x
ωt
=1},π
s,t
为第s个菜单,s=1,...,n;n为大于等于2的整数。
[0127]
时间差获取子模块902例如可以执行操作s602,用于对于第s个菜单π
s,t
={ω|x
ωt
=1},获取机器人净占用时间的总时长与m个菜品并行炒制时锅占用时间的总时长二者之间的时间差δt=|∑
ω∈ω
x
ωt
rt
ω-∑
ω∈ω
x
ωt
ct
ω
/m|。
[0128]
第二获取子模块903例如可以执行操作s603,用于将n个不同菜单中时间差δt最小的菜单作为最优菜单。
[0129]
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
[0130]
例如,第一获取模块710、第二获取模块720、第三获取模块730、优化模块740、第四获取模块741、菜单优化模块742、模型构建子模块801、输入子模块802、第一获取子模块803、多菜单获取子模块901、时间差获取子模块902、以及第二获取子模块903中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一获取模块710、第二获取模块720、第三获取模块730、优化模块740、第四获取模块741、菜单优化模块742、模型构建子模块801、输入子模块802、第一获取子模块803、多菜单获取子模块901、时间差获取子模块902、以及第二获取子模块903中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获取模块710、第二获取模块720、第三获取模块730、优化模块740、第四获取模块741、菜单优化模块742、模型构建子模块801、输入子模块802、第一获取子模块803、多菜单获取子模块901、时间差获取子模块902、以及第二获取子模块903中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
[0131]
图10示意性示出了适于实现根据本公开实施例的用于机器人炒菜的信息处理方
法的电子设备1000的结构框图。图10示出的电子设备1000仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0132]
如图10所示,根据本公开实施例的电子设备1000包括处理器1001,其可以根据存储在只读存储器(rom)1002中的程序或者从存储部分1008加载到随机访问存储器(ram)1003中的程序而执行各种适当的动作和处理。处理器1001例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器1001还可以包括用于缓存用途的板载存储器。处理器1001可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
[0133]
在ram 1003中,存储有电子设备1000操作所需的各种程序和数据。处理器1001、rom 1002以及ram 1003通过总线1004彼此相连。处理器1001通过执行rom 1002和/或ram 1003中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom 1002和ram 1003以外的一个或多个存储器中。处理器1001也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
[0134]
根据本公开的实施例,电子设备1000还可以包括输入/输出(i/o)接口1005,输入/输出(i/o)接口1005也连接至总线1004。电子设备1000还可以包括连接至i/o接口1005的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至i/o接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
[0135]
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被处理器1001执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
[0136]
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
[0137]
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom 1002和/或ram 1003和/或rom 1002和ram 1003以外的一个或多个存储器。
[0138]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0139]
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
[0140]
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1