1.本公开涉及仓储物流领域,特别涉及物品拣选方法及装置、计算机可读存储介质。
背景技术:2.随着网购的普及,物品流通趋向于准时制和多品种化,在仓储中心和物流中心,待分拣的物品的种类和数量急剧增加,分拣作业物流仓储中的工作量占比越来越高。单凭人工分拣已经无法满足大规模的分拣要求,自动化分拣已经成为提高分拣的效率关键。
3.在货箱中,物品可能是堆叠摆放的,即,一个物品可能会压住另一个物品,如果系统不知道物品之间堆叠的关系,就可能生成错误的拣选顺序。例如,先拣选下面的物品,一方面可能出现被压住的物品难以抓起的情况,一方面可能导致上面的物品掉落,从而导致物品的损坏。
技术实现要素:4.根据本公开的第一方面,提供了一种物品拣选方法,包括:一种物品拣选方法,包括:获取货箱内多个物品的拣选信息,其中,拣选信息包括物品的拣选面和拣选点、物品所在货箱的图像;根据物品所在货箱的图像,确定物品之间的邻近关系;根据物品的倾斜角度和高度的至少一种,以及物品之间的邻近关系,确定物品之间的约束关系,其中,物品的倾斜角度根据物品的拣选面和拣选点确定,物品的高度根据物品所在货箱的图像确定;根据约束关系,确定多个物品的拣选顺序。
5.在一些实施例中,所述根据物品所在货箱的图像,确定物品之间的邻近关系,包括:
6.在两个物品相互接触的情况下,确定这两个物品互为邻近物品;
7.在一个物品与另外两个物品都接触的情况下,确定另外两个物品互为邻近物品。
8.在一些实施例中,所述确定物品之间的约束关系,包括:
9.在物品的高度大于其邻近物品的高度的情况下,确定物品对该邻近物品有约束。
10.在一些实施例中,所述确定物品之间的约束关系,包括:
11.根据物品的倾斜角度,对多个物品分组;
12.在物品与其邻近物品属于同一组的情况下,根据物品的倾斜角度,确定物品与该邻近物品之间的约束关系。
13.在一些实施例中,所述在物品与其邻近物品属于同一组的情况下,根据物品的倾斜角度,确定物品与该邻近物品之间的约束关系包括:
14.根据组内物品的拣选面的面积,确定第一拣选方向,其中,第一拣选方向指示该组物品的第一拣选顺序;
15.根据物品和该邻近物品的拣选点,确定物品与该邻近物品的第二拣选方向,其中,第二拣选方向指示物品与该邻近物品的第二拣选顺序;
16.根据第一拣选方向和第二拣选方向,确定物品与该邻近物品之间的约束关系。
17.在一些实施例中,所述根据组内物品的拣选面的面积,确定第一拣选方向,包括:
18.在同一组物品的拣选面中,在面积最大的拣选面和面积最小的拣选面的比值超过比值阈值的情况下,计算第一向量作为第一拣选方向,其中,第一向量为从面积最大的拣选面上的拣选点指向面积最小的拣选面上的拣选点的方向。
19.在一些实施例中,所述根据组内物品的拣选面的面积,确定第一拣选方向,包括:
20.在同一组物品的拣选面中,在面积最大的拣选面和面积最小的拣选面的比值不超过比值阈值的情况下,根据该组的物品的倾斜角度,计算第二向量,其中,第二向量表示该组物品的整体倾斜方向;
21.在第一向量与第二向量的夹角不超过第一阈值的情况下,将第一向量确定为第一拣选方向;
22.在第一向量与第二向量的夹角超过第一阈值的情况下,将第一向量的反方向确定为第一拣选方向。
23.在一些实施例中,所述第二拣选方向为从物品的拣选面的拣选点指向该邻近物品的拣选面的拣选点的方向。
24.在一些实施例中,所述根据第一拣选方向和第二拣选方向,确定物品与该邻近物品之间的约束关系,包括:
25.在第一拣选方向和第二拣选方向的夹角不超过第二阈值的情况下,确定物品对该邻近物品有约束。
26.在一些实施例中,所述确定物品之间的约束关系,包括:
27.在物品与其邻近物品不属于同一组、且物品的高度大于其邻近物品的高度的情况下,确定物品对该邻近物品有约束。
28.在一些实施例中,所述物品包括多个拣选面,所述根据物品所在货箱的图像,确定物品之间的邻近关系,包括:
29.在两个拣选面相互接触的情况下,确定这两个拣选面互为邻近拣选面;
30.在一个拣选面与另外两个拣选面都接触的情况下,确定另外两个拣选面互为邻近拣选面。
31.在一些实施例中,所述确定物品之间的约束关系,包括:
32.在拣选面的高度大于其邻近拣选面的高度的情况下,确定拣选面对该邻近拣选面有约束。
33.在一些实施例中,所述物品的倾斜角度包括物品的拣选面的倾斜角度,所述确定物品之间的约束关系,包括:
34.根据拣选面的倾斜角度,对物品的拣选面分组;
35.在拣选面与其邻近拣选面属于同一组的情况下,根据拣选面的倾斜角度,确定拣选面与该邻近拣选面之间的约束关系。
36.在一些实施例中,所述在拣选面与其邻近拣选面属于同一组的情况下,根据拣选面的倾斜角度,确定拣选面与该邻近拣选面之间的约束关系,包括:
37.根据组内拣选面的面积,确定第一拣选方向,其中,第一拣选方向指示该组拣选面的第一拣选顺序;
38.根据拣选面和该邻近拣选面的拣选点,确定拣选面与该邻近拣选面的第二拣选方
向,其中,第二拣选方向指示拣选面与该邻近拣选面的第二拣选顺序;
39.根据第一拣选方向和第二拣选方向,确定拣选面与该邻近拣选面之间的约束关系。
40.在一些实施例中,所述根据组内拣选面的面积,确定第一拣选方向,包括:
41.在同一组拣选面中,在面积最大的拣选面和面积最小的拣选面的比值超过比值阈值的情况下,计算第一向量作为第一拣选方向,其中,第一向量为从面积最大的拣选面上的拣选点指向面积最小的拣选面上的拣选点的方向。
42.在一些实施例中,所述根据组内拣选面的面积,确定第一拣选方向,包括:
43.在同一组拣选面中,在面积最大的拣选面和面积最小的拣选面的比值不超过比值阈值的情况下,根据该组拣选面的倾斜角度,计算第二向量,其中,第二向量表示该组拣选面的整体倾斜方向;
44.在第一向量与第二向量的夹角不超过第三阈值的情况下,将第一向量确定为第一拣选方向;
45.在第一向量与第二向量的夹角超过第三阈值的情况下,将第一向量的反方向确定为第一拣选方向。
46.在一些实施例中,所述第二拣选方向为从拣选面的拣选点指向其邻近拣选面的拣选点的方向。
47.在一些实施例中,所述根据第一拣选方向和第二拣选方向,确定拣选面与该邻近拣选面之间的约束关系,包括:
48.在第一拣选方向和第二拣选方向的夹角不超过第四阈值的情况下,确定拣选面对该邻近拣选面有约束。
49.在一些实施例中,所述确定物品之间的约束关系,包括:
50.在拣选面与其邻近拣选面不属于同一组、且拣选面的高度大于其邻近拣选面的高度的情况下,确定拣选面对该邻近拣选面有约束。
51.在一些实施例中,根据约束关系,确定多个物品的拣选顺序包括:
52.根据拣选信息,生成排序结果,其中,排序结果表示物品拣选的难易程度;
53.根据排序结果和物品之间的约束关系,确定多个物品的拣选顺序。
54.根据本公开的第二方面,提供了一种物品拣选方法,包括:
55.获取模块,被配置为获取货箱内多个物品的拣选信息,其中,拣选信息包括物品的拣选面和拣选点、物品所在货箱的图像;
56.邻近关系确定模块,被配置为根据物品所在货箱的图像,确定物品之间的邻近关系;
57.约束关系确定模块,被配置为根据物品的倾斜角度和高度的至少一种,以及物品之间的邻近关系,确定物品之间的约束关系,其中,物品的倾斜角度根据物品的拣选面和拣选点确定,物品的高度根据物品所在货箱的图像确定;
58.拣选顺序确定模块,被配置为根据约束关系,确定多个物品的拣选顺序。
59.根据本公开的第三方面,提供了一种物品拣选装置,包括:
60.存储器;以及
61.耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指
令,执行根据本公开任一实施例所述的物品拣选方法。
62.根据本公开的第四方面,一种计算机可存储介质,其上存储有计算机程序指令,该指令被处理器执行时,实现根据本公开任一实施例所述的物品拣选方法。
附图说明
63.构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
64.参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
65.图1示出根据本公开一些实施例的物品拣选方法的流程图;
66.图2示出了根据本公开一些实施例的物品叠放的示意图;
67.图3示出了根据本公开另一些实施例的物品叠放的示意图;
68.图4(a)示出了根据本公开一些实施例的确定第一拣选方向的示意图;
69.图4(b)示出了根据本公开另一些实施例的确定第一拣选方向的示意图;
70.图4(c)示出了根据本公开一些实施例的确定第二拣选方向示意图;
71.图4(d)示出了根据本公开一些实施例的确定邻近物品之间约束关系的示意图;
72.图5示出了根据本公开一些实施例的生成约束关系矩阵的流程图;
73.图6示出了根据本公开再一些实施例的物品叠放的示意图;
74.图7示出了根据本公开又一些实施例的物品叠放的示意图;
75.图8示出了根据本公开一些实施例的确定邻近拣选面之间约束关系的示意图;
76.图9示出根据本公开一些实施例的物品拣选装置的框图;
77.图10示出根据本公开另一些实施例的物品拣选装置的框图;
78.图11示出用于实现本公开一些实施例的计算机系统的框图。
具体实施方式
79.现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
80.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
81.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
82.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
83.在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
84.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
85.在货箱中,物品可能是堆叠摆放的,一个物品可能会压住另一个物品。物品之间的堆叠情况会影响拣选成功率,被压住的物品不易形成稳定的抓取状态。如果拣选的顺序不
合理,例如,先拣选了下面的物品,可能会导致上面的物品掉落,从而导致物品的损坏。另外,物品除了上下堆叠外,也可能由于物品倾斜,导致左侧的物品部分压住了右侧的物品,右侧的物品难以抓取,另外,如果先抽出右侧的物品,就可能导致左侧的物品因为没有支撑而摔坏。
86.相关技术中,难以确定物品之间的这种压叠的相互约束关系,因此只能按照物品被识别到的顺序来拣选物品,可能造成物品损坏。
87.图1示出根据本公开一些实施例的物品拣选方法的流程图。
88.如图1所示,物品拣选方法包括步骤s1-步骤s4。
89.在步骤s1中,获取货箱内多个物品的拣选信息,其中,拣选信息包括物品的拣选面和拣选点、物品所在货箱的图像。
90.例如,用相机从货箱的上方,向下拍摄堆叠在货箱内的物品的图像,即,拍摄物品的俯视图,并计算物品的拣选点和拣选面,其中,拣选点是机械臂抓取物品或吸取物品时接触的物品上的点,拣选面是拣选点所在的面。
91.在步骤s2中,根据物品所在货箱的图像,确定物品之间的邻近关系。
92.在一些实施例中,在两个物品相互接触的情况下,确定这两个物品互为邻近物品;在一个物品与另外两个物品都接触的情况下,确定另外两个物品互为邻近物品。
93.例如,邻近物品包括相邻物品和次相邻物品,相邻物品为直接接触的两个物品,次相邻物品为相邻物品的相邻物品。
94.图2示出了根据本公开一些实施例的物品叠放的示意图。
95.图2为纵向叠放在货箱内的物品a、b、c的二维侧视图。如图2所示,物品a和物品b接触,确定a和b为邻近物品。而物品b和物品a、c都存在接触,物品a和c之间也可能有约束关系,因此将物品a和c也定义为邻近关系。
96.本公开不仅考虑了直接接触的两个物品之间的约束关系,还考虑了间接接触的两个物品之间可能存在的约束关系,综合考虑了各种可能的情况,减少遗漏,从而提高根据约束关系进行拣选的成功率。
97.在一些实施例中,利用机器学习模型识别物品所在货箱的图像,判断物品之间是否接触。
98.例如,当两个物品的某个边或某个面,部分或全部重合,则认为这两个物品之间相互接触。
99.在步骤s3中,根据物品的倾斜角度和高度的至少一种,以及物品之间的邻近关系,确定物品之间的约束关系,其中,物品的倾斜角度根据物品的拣选面和拣选点确定,物品的高度根据物品所在货箱的图像确定。
100.在一些实施例中,物品之间的约束关系表示物品之间压叠关系。
101.在一些实施例中,确定物品之间的约束关系,包括:在物品的高度大于其邻近物品的高度的情况下,确定物品对该邻近物品有约束。
102.在图2中,物品a的高度高于物品b,且物品a和b互为邻近物品,则a对b有约束。类似地,物品a和c也是邻近物品,且a高于c,所以物品a对物品c也有约束。其中,物品的高度可以是物品的一个表面的高度、物品的几何中心的高度、重心的高度、物品的拣选点的高度等,也可以根据实际需要综合考虑上述多种高度。
103.在一些实施例中,确定物品之间的约束关系,包括:根据物品的倾斜角度,对多个物品分组;在物品与其邻近物品属于同一组的情况下,根据物品的倾斜角度,确定物品与该邻近物品之间的约束关系
104.例如,倾斜趋势相同的物品之间可能相互压叠,因此,将倾斜趋势相同的物品分为一组,根据倾斜角度,确定同组内物品的压叠关系。另外,分组可以给具备相同倾斜趋势的一组物品的拣选先后顺序提供先验指导,按照倾斜趋势分组可在确定组内成员的拣选顺序时,提供一定的容错能力,即使有成员的角度偏离主方向一定程度,也不影响整组统一的拣选先后顺序。
105.在一些实施例中,根据物品的倾斜角度,对多个物品分组,包括:将倾斜角度在预设范围内的物品分为一组。
106.图3示出了根据本公开另一些实施例的物品叠放的示意图。
107.图3为横向叠放在货箱内的物品a、b、c的二维侧视图。如图3所示
108.物品a、b、c的倾斜角度是相近的,则将物品a、b、c分为一组。
109.在一些实施例中,在物品与其邻近物品属于同一组的情况下,根据物品的倾斜角度,确定物品与该邻近物品之间的约束关系包括:在物品所在组的倾斜角度的方向与从物品指向其相邻物品的方向小于预设阈值的情况下,确定物品对该相邻物品有约束。
110.例如,如图3所示,物品a压住了物品b的一部分。在计算约束关系时,物品a、b、c都是向左侧倾斜。而物品a在其邻近物品b的左侧,即物品a指向物品b的方向是从右向左,和倾斜角度相反,所以物品a对物品b没有约束。相反,物品b指向物品a的方向是从左向右,和倾斜角度相近,所以物品b对物品a有约束。
111.在一些实施例中,根据物品的倾斜角度,确定物品与该邻近物品之间的约束关系包括:根据组内物品的拣选面的面积,确定第一拣选方向,其中,第一拣选方向指示该组物品的第一拣选顺序;在物品与该邻近物品属于同一组的情况下,根据物品和该邻近物品的拣选点,确定物品与该邻近物品的第二拣选方向,其中,第二拣选方向指示物品与该邻近物品的第二拣选顺序;根据第一拣选方向和第二拣选方向,确定物品与该邻近物品之间的约束关系。
112.在一些实施例中,物品的倾斜角度是物品的拣选面的法向量与货箱底面的夹角。
113.可以按照以下方法确定第一拣选方向,用来表示组内物品的压叠关系。
114.在一些实施例中,在物品与该邻近物品属于同一组的情况下,根据组内物品的拣选面的面积,确定第一拣选方向,包括:在同一组物品的拣选面中,在面积最大的拣选面和面积最小的拣选面的比值超过比值阈值的情况下,计算第一向量作为第一拣选方向,其中,第一向量为从面积最大的拣选面上的拣选点指向面积最小的拣选面上的拣选点的方向。
115.图4(a)示出了根据本公开一些实施例的确定第一拣选方向的示意图。
116.图4(a)为物品a、b、c的二维侧视图。如图4所示,物品a、b、c、的倾斜角度相近,为一组。
117.假设每个物品只考虑一个拣选面,对物品a、b、c的拣选面按照面积排序,在图4(a)中,假设面积最小的拣选面为拣选面1,面积最大的拣选面为拣选面2,黑色圆点为拣选点,从面积最大的拣选面指向面积最小的拣选面的方向如图中实线箭头方向所示。假设拣选面2和拣选面1的比值超过比值阈值,则认为该组内物品的拣选面的面积存在明显差异,第一
拣选方向就是从面积最大的拣选面指向面积最小的拣选面的方向。
118.如果一个物品有多个拣选面,那么从多个拣选面中,根据抓取的难易程度,选择最容易拣选的拣选面,或是计算物品的拣选面的倾斜角度与物品的倾斜角度的夹角,选择夹角小于预设的阈值的拣选面,即选出与物品的倾斜趋势一致的拣选面。
119.因为通常情况下,在最上面的物品露出的拣选面的面积更大,而被压住的物品露出的拣选面的面积更小,即。拣选面的面积能够反映物品的压叠关系。从而根据拣选面的面积大小,确定同一组的物品的第一拣选方向。
120.在一些实施例中,根据组内物品的拣选面的面积,确定同一组中物品的第一拣选方向,包括:在同一组物品的拣选面中,在面积最大的拣选面和面积最小的拣选面的比值不超过比值阈值的情况下,根据该组的物品的倾斜角度,计算第二向量,其中,第二向量表示该组物品的整体倾斜方向;在第一向量与第二向量之间的夹角不超过第一阈值的情况下,将第一向量确定为第一拣选方向;在第一向量与第二向量之间的夹角超过第一阈值的情况下,将第一向量的反方向确定为第一拣选方向。
121.例如,如果组内物品的拣选面的面积不存在明显差异,则判断“最大面拣选点到最小面拣选点连线向量方向”与该组的整体倾斜方向是否相近。若相似,则该组成员的拣选顺序即为最大拣选面的拣选点到最小拣选面的拣选点连线向量的方向,若不相似,则该组成员的拣选顺序即为最大拣选面的拣选点到最小拣选面的拣选点连线向量的反方向。
122.另外,可以选择组内的一个物品的倾斜角度,作为该组的整体倾斜方向,也可以计算该组的倾斜角度的平均值或中位值,作为该组的整体倾斜方向,在此不做限定。
123.图4(b)示出了根据本公开另一些实施例的确定第一拣选方向的示意图。
124.如图4(b)所示,假设拣选面2和拣选面1的比值不超过比值阈值,则还需要比较第一向量和第二向量(即,该组物品的整体倾斜方向)。假设第一阈值为90度,显然,图4(b)中第一向量和第二向量的夹角没有超过90度,那么第一拣选方向为第一向量的方向。反之,如果第一向量和第二向量的夹角超过90度,那么第一拣选方向为第一向量的反方向。也就是说,最后选定的第一拣选方向是与该组物品的整体倾斜趋势更接近的方向,从而使得第一拣选方向能够更准确地表示该组堆叠情况。
125.在一些实施例中,第二拣选方向为从物品的拣选面的拣选点指向其邻近物品的拣选面的拣选点的方向。
126.图4(c)示出了根据本公开一些实施例的确定第二拣选方向示意图。
127.如图4(c)所示,假设当前物品为b,需要判断物品b与其邻近物品c的约束关系,那么定义第二拣选方向为从物品b的拣选点指向物品c的拣选点。
128.在一些实施例中,根据第一拣选方向和第二拣选方向,确定物品与该邻近物品之间的约束关系,包括:在第一拣选方向和第二拣选方向的夹角不超过第二阈值的情况下,确定物品对该邻近物品有约束。
129.图4(d)示出了根据本公开一些实施例的确定邻近物品之间约束关系的示意图。
130.第一拣选方向和第二拣选方向如图4(d)中所示。假设第二阈值为90度,则图4(d)中,第一拣选方向和第二拣选方向的夹角显然大于第二阈值,因此,物品b对物品c没有约束。相反,从物品c的拣选点指向物品b的拣选点的方向与第一拣选方向的夹角小于阈值,则物品c对物品b有约束。
131.在一些实施例中,确定物品之间的约束关系,包括:在物品与其邻近物品不属于同一组、且物品的高度大于其邻近物品的高度的情况下,确定物品对该邻近物品有约束。
132.例如,如果两个物品的倾斜趋势不相似,则不需要判断左右压叠的约束情况,只需要判断纵向压叠的情况,因此,根据高度判断约束关系。
133.在一些实施例中,确定物品之间的约束关系包括:根据高度和倾斜角度的至少一个,生成约束关系矩阵。
134.约束关系矩阵adjacent_matrix中元素的值的定义如下。
135.adjacent_matrix[i,j]=0:物品i与物品j不是邻近物品,无约束关系;
[0136]
adjacent_matrix[i,j]=1:物品i与物品j是邻近物品,物品i对物品j有约束关系;
[0137]
adjacent_matrix[i,j]=-1:物品i与物品j是邻近物品,物品j对物品i有约束关系;
[0138]
adjacent_matrix[i,j]=2:物品i与物品j是邻近物品,但无约束关系。
[0139]
其中,如果adjacent_matrix[i,j]=1,那么对应的adjacent_matrix[j,i]=-1。
[0140]
图5示出根据本公开一些实施例的生成约束关系矩阵的流程图。
[0141]
如图5所示,生成约束关系矩阵包括步骤(1)-(15)。
[0142]
在步骤(1)中,根据拣选面上拣选点法向量与货箱底部的夹角,判断物品两两之间是否存在相同的倾斜趋势,将倾斜趋势一致的物品分为一组,并计算每一组的第一拣选方向。第一拣选方向即拣选顺序的排序方向,是带方向的空间向量,用于指示物品的拣选顺序,也是物品压叠的次序;
[0143]
在步骤(2)中,将每个当前物品作为候选项,遍历所有物品;
[0144]
在步骤(3)中,判断是否所有候选项与其相邻物品的约束关系都计算完毕,其中,相邻物品指的是两个物品相互接触,并且每组相邻物品的对应关系都保存在相邻物品集n中。如果是,则转到步骤(10),否则,转到步骤(4);
[0145]
在步骤(4)中,遍历当前候选项之外的其他物品;
[0146]
在步骤(5)中,判断候选项i和其他物品j是否是相邻物品,如果是,转到步骤(6),如果否,将约束矩阵中,候选项i对j的位置adjacent_matrix[i,j]置0;
[0147]
在步骤(6)中,判断候选项i和相邻物品j是否属于同一倾斜趋势的组,如果是,则转到步骤(7),如果否,则转到步骤(8);
[0148]
在步骤(7)中,判断候选项i和相邻物品j所在组的第一拣选方向、与从候选项i指向相邻物品j的第二拣选方向,是否一致,如果是,将约束矩阵中,候选项i对j的位置置1,如果否,则候选项i对j的位置置-1;
[0149]
在步骤(8)中,判断候选项和该相邻物品的高度是否相等,如果是,则将约束矩阵中,候选项i对j的位置置2,否则,转到步骤(9);
[0150]
在步骤(9)中,判断候选项的高度是否低于相邻物品的高度,如果是,将约束矩阵中,候选项i对j的位置置-1,如果否,则候选项i对j的位置置1;
[0151]
在步骤(10)中,判断是否所有候选项与次相邻物品的约束关系都计算完毕,如果是,则结束运算,如果否,则转到步骤(11);
[0152]
在步骤(11)中,将当前候选项的相邻物品的相邻物品作为当前候选项次相邻物
品,将物品与其次相邻物品的对应关系存入次相邻物品集m中,遍历在集合m中当前候选项的次相邻物品,;
[0153]
在步骤(12)中,判断候选项i对该次相邻物品j是否属于同一倾斜趋势的组,如果是,则转到步骤(13),如果否,则转到步骤(14);
[0154]
在步骤(13)中,判断候选项i和次相邻物品j所在组的第一拣选方向、与从候选项i指向次相邻物品j的第二拣选方向,是否一致,如果是,将约束矩阵中,候选项i对j的位置置1,如果否,则候选项i对j的位置置-1;
[0155]
在步骤(14)中,判断候选项i和该次相邻物品j的高度是否相等,如果是,则将约束矩阵中,候选项i对j的位置置2,否则,转到步骤(15);
[0156]
在步骤(15)中,判断候选项i的高度是否低于次相邻物品j的高度,如果是,将约束矩阵中,候选项i对j的位置置-1,如果否,则候选项i对j的位置置1,另外,如果在步骤(5)中,计算得到i对j对应位置为0,但是在步骤(15),重新计算得到i对j对应位置为1或-1,则用当前计算结果覆盖原来的计算结果。
[0157]
本公开通过确定物品之间的邻近关系,先找出了有可能相互存在约束关系的邻近的物品,然后根据物品的高度和倾斜角的至少一种和邻近关系,确定物品之间的相互压叠的约束关系,实现了对物品的横向压叠关系和/或纵向压叠关系的识别,避免了将被压住的物品排在压住该物品的其他物品之前进行拣选的风险,解决了物品相互堆叠影响拣选顺序的问题,提高机械臂拣选物品的成功率。
[0158]
除了直接判断物品之间的约束关系之外,还可以判断物品的拣选面之间的约束关系,从而反映出物品之间的约束关系。下面介绍判断物品的拣选面之间的约束关系的方法。
[0159]
判断物品的拣选面之间的约束关系与直接判断物品之间的约束关系的思路类似。在上述直接判断物品之间的约束关系的方法中,是将每个物品作为一个候选项,判断物品之间的邻近关系和约束关系,而在判断物品的拣选面之间的约束关系时,将物品的每个拣选面都作为一个候选项,判断拣选面之间的邻近关系和约束关系。
[0160]
在一些实施例中,物品包括多个拣选面,根据物品所在货箱的图像,确定物品之间的邻近关系,包括:在两个拣选面之间存在接触的情况下,确定这两个拣选面互为邻近拣选面;
[0161]
在一个拣选面与另外两个拣选面都接触的情况下,确定另外两个拣选面互为邻近拣选面。
[0162]
图6示出了根据本公开再一些实施例的物品叠放的示意图。
[0163]
图6是纵向叠放的物品a和b的三维侧视图。如图6所示,物品a的a1面与物品b的b1面为邻近拣选面,且物品a的a1面与物品a的a2面为邻近拣选面,则物品a的a2面与物品b的b1面和b2面都为邻近拣选面。也就是说,不仅不同物品的两个拣选面可以互为邻近拣选面,同一个物品的两个拣选面也可以互为邻近拣选面。
[0164]
在一些实施例中,利用机器学习模型识别物品所在货箱的图像,判断拣选面之间是否接触。
[0165]
例如,当两个拣选面的某个边或某个面部分或全部重合,则认为这两个拣选面之间相互接触。
[0166]
如图6所示,a1面和b1面有一条边重合,即物品a的a1面与物品b的b1面接触,确定
物品a的a1面与物品b的b1面为邻近拣选面。
[0167]
确定拣选面与邻近拣选面之间的约束关系的方法与确定物品与邻近物品之间的约束关系的方法类似,下面将简要进行介绍,相同内容请参照前述确定物品与邻近物品之间的约束关系的方法,此处不再重复描述。
[0168]
在一些实施例中,确定物品之间的约束关系,包括:在一个拣选面的高度大于其邻近拣选面的高度的情况下,确定拣选面对该邻近拣选面有约束。
[0169]
例如,在图6中,a1面是b1面、b2面的邻近拣选面,且高度大于b1面、b2面,因此,a1面对b1面、b2面有约束,需要先从a1面抓取,才能从b1面或b2面抓取。其中,拣选面的高度可以是拣选面的一个边的高度、拣选面的几何中心的高度、拣选面上拣选点的高度等,也可以根据实际需要,综合考虑上述多种高度。
[0170]
在一些实施例中,物品的倾斜角度包括物品的拣选面的倾斜角度,确定物品之间的约束关系,包括:根据拣选面的倾斜角度,对物品的拣选面分组;在拣选面与其邻近拣选面属于同一组的情况下,根据拣选面的倾斜角度,确定拣选面与该邻近拣选面之间的约束关系。其中,倾斜角度为拣选面上的拣选点的法向量相对于货箱底部平面的倾斜角度。
[0171]
例如,倾斜趋势相同的拣选面之间可能相互压叠,因此,将倾斜趋势相同的拣选面分为一组,根据倾斜角度,确定同组内拣选面的压叠关系。
[0172]
在一些实施例中,根据拣选面的倾斜角度,对多个拣选面分组,包括:将倾斜角度在预设范围内的拣选面分为一组。
[0173]
图7示出了根据本公开又一些实施例的物品叠放的示意图。
[0174]
在图7中,对于拣选面a1、b1、c1、a2、b2、c2来说,根据拣选面的倾斜角度,可以将拣选面a1、b1、c1分为一组,将a2、b2、c2分为一组。
[0175]
在一些实施例中,确定拣选面与该邻近拣选面之间的约束关系,包括:根据组内拣选面的面积,确定第一拣选方向,其中,第一拣选方向指示该组拣选面的第一拣选顺序;在拣选面与该邻近拣选面属于同一组的情况下,根据拣选面和该邻近拣选面的拣选点,确定拣选面与该邻近拣选面的第二拣选方向,其中,第二拣选方向指示拣选面与该邻近拣选面的第二拣选顺序;根据第一拣选方向和第二拣选方向,确定拣选面与该邻近拣选面之间的约束关系。其中,第二拣选方向为从拣选面的拣选点指向其邻近拣选面的拣选点的方向。
[0176]
可以按照下列方法确定第一拣选方向,用来表示组内拣选面的压叠关系。
[0177]
(1)在同一组拣选面中,在面积最大的拣选面和面积最小的拣选面的比值超过比值阈值的情况下,计算第一向量作为第一拣选方向,其中,第一向量为从面积最大的拣选面上的拣选点指向面积最小的拣选面上的拣选点的方向。
[0178]
(2)在同一组拣选面中,在面积最大的拣选面和面积最小的拣选面的比值不超过比值阈值的情况下,根据该组拣选面的倾斜角度,计算第二向量,其中,第二向量表示该组拣选面的整体倾斜方向;在第一向量与第二向量之间的夹角不超过第三阈值的情况下,将第一向量确定为第一拣选方向;在第一向量与第二向量之间的夹角超过第三阈值的情况下,将第一向量的反方向确定为第一拣选方向。
[0179]
在一些实施例中,根据第一拣选方向和第二拣选方向,确定拣选面与该邻近拣选面之间的约束关系,包括:在第一拣选方向和第二拣选方向的夹角不超过第四阈值的情况下,确定拣选面对该邻近拣选面有约束。
[0180]
图8示出了根据本公开一些实施例的确定邻近拣选面之间约束关系的示意图。
[0181]
如图8所示,a2、b2、c2这一组拣选面的第一拣选方向以及从b2指向c2的第二拣选方向,均与图4(d)中相似。假设第二阈值为90度,则第一拣选方向和第二拣选方向的夹角大于第二阈值,因此,拣选面a2对拣选面c2没有约束。相反,拣选面c2对拣选面a2有约束。
[0182]
机械臂等拣选系统中的图像识别方案(例如,识别图像用于确定高度、是否存在接触等),采用的是有监督学习的方式,有监督学习就需要大量标注数据,对于二维的拣选面级别的识别方案,标注技术成熟,标注费用低,人工标注也更好操作。根据本公开的一些实施例,以拣选面为单位,计算每个拣选面之间的约束关系,从而确定拣选顺序,能够降低成本。
[0183]
在一些实施例中,根据约束关系,确定多个物品的拣选顺序包括:根据拣选信息,生成排序结果,其中,排序结果表示物品拣选的难易程度;根据排序结果和物品之间的约束关系,确定多个物品的拣选顺序。
[0184]
例如,根据表示物品拣选难度的影响因子,生成表示物品拣选的难易程度的排序结果。例如根据影响因子的加权和,生成排序结果,或是将影响因子作为机器学习模型的输入,得到排序结果。其中,影响因子包括:拣选面的面积、以拣选点为圆心的拣选面的最大内切圆的面积、拣选点的法向量与货箱的底面的法向量的夹角、拣选点到货箱的各个面的距离、拣选点到货箱的中心的距离、机器学习模型识别得到的物品为待拣选物品的概率。
[0185]
在步骤s4中,根据约束关系,确定多个物品的拣选顺序。
[0186]
例如,将物品的拣选顺序排在被其约束的物品前。对于一个物品i,如果被物品j约束,则将j的拣选顺序排在i之前,从而得到多个物品的拣选顺序。
[0187]
在一些实施例中,根据约束关系,确定多个物品的拣选顺序包括:根据拣选信息,生成排序结果,其中,排序结果表示物品拣选的难易程度;根据排序结果和物品之间的约束关系,确定多个物品的拣选顺序。
[0188]
例如,多个物品的拣选顺序需要满足下列条件:
[0189]
(1)满足物品之间的约束关系,即,将物品的拣选顺序排在被其约束的物品前。
[0190]
(2)在满足(1)的前提下,仍不能确定排序位置的物品,按照表示物品拣选的难易程度的排序结果进行排序。即,在
[0191]
(1)和(2)冲突的情况下,需要保证最终的物品拣选顺序满足(1)。
[0192]
如果在步骤s3中,直接得到了物品之间的约束关系,那么在计算排序结果和最终拣选顺序时,也是对多个物品进行排序,如果在步骤s3中,计算得到的是拣选面之间的约束关系,那么在计计算排序结果和最终拣选顺序时,也是对多个拣选面进行排序。
[0193]
本公开通过根据物品拣选的难易程度,先初次排序物品,得到排序结果。然后,根据约束关系,对初次排序结果进行重排,得到最后拣选顺序。在满足物品之间的约束关系对拣选顺序的要求的前提下,又考虑了物品拣选的难易程度,既解决了物品相互压叠影响抓取效果、造成物品损坏的问题,又实现了让好拣选的物品先被拣选上来,提高了拣选成功率和效率。
[0194]
图9示出根据本公开一些实施例的物品拣选装置的框图。
[0195]
如图9所示,物品拣选装置9包括获取模块91、邻近关系确定模块92、约束关系确定模块93、拣选顺序确定模块94。
[0196]
获取模块91,被配置为获取货箱内多个物品的拣选信息,其中,拣选信息包括物品的拣选面和拣选点、物品所在货箱的图像,例如执行如图1所示的步骤s1;
[0197]
邻近关系确定模块92,被配置为根据物品所在货箱的图像,确定物品之间的邻近关系,例如执行如图1所示的步骤s2;
[0198]
约束关系确定模块93,被配置为根据物品的倾斜角度和高度的至少一种,以及物品之间的邻近关系,确定物品之间的约束关系,其中,物品的倾斜角度根据物品的拣选面和拣选点确定,物品的高度根据物品所在货箱的图像确定,例如执行如图1所示的步骤s3;
[0199]
拣选顺序确定模块94,被配置为根据约束关系,确定多个物品的拣选顺序,例如执行如图1所示的步骤s4。
[0200]
图10示出根据本公开另一些实施例的物品拣选装置的框图。
[0201]
如图10所示,物品拣选装置10包括存储器101;以及耦接至该存储器101的处理器102,存储器101用于存储执行物品拣选方法。处理器102被配置为基于存储在存储器101中的指令,执行本公开中任意一些实施例中的物品拣选方法。
[0202]
图11示出用于实现本公开一些实施例的计算机系统的框图。
[0203]
如图11所示,计算机系统110可以通用计算设备的形式表现。计算机系统110包括存储器1110、处理器1120和连接不同系统组件的总线1100。
[0204]
存储器1110例如可以包括系统存储器、非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(boot loader)以及其他程序等。系统存储器可以包括易失性存储介质,例如随机存取存储器(ram)和/或高速缓存存储器。非易失性存储介质例如存储有执行本公开中任意一些实施例中的物品拣选方法的指令。非易失性存储介质包括但不限于磁盘存储器、光学存储器、闪存等。
[0205]
处理器1120可以用通用处理器、数字信号处理器(dsp)、应用专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑设备、分立门或晶体管等分立硬件组件方式来实现。相应地,诸如判断模块和确定模块的每个模块,可以通过中央处理器(cpu)运行存储器中执行相应步骤的指令来实现,也可以通过执行相应步骤的专用电路来实现。
[0206]
总线1100可以使用多种总线结构中的任意总线结构。例如,总线结构包括但不限于工业标准体系结构(isa)总线、微通道体系结构(mca)总线、外围组件互连(pci)总线。
[0207]
计算机系统110还可以包括输入输出接口1130、网络接口1140、存储接口1150等。这些接口1130、1140、1150以及存储器1110、和处理器1120之间可以通过总线1100连接。输入输出接口1130可以为显示器、鼠标、键盘等输入输出设备提供连接接口。网络接口1140为各种联网设备提供连接接口。存储接口1150为软盘、u盘、sd卡等外部存储设备提供连接接口。
[0208]
这里,参照根据本公开实施例的方法、装置和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个框以及各框的组合,都可以由计算机可读程序指令实现。
[0209]
这些计算机可读程序指令可提供到通用计算机、专用计算机或其他可编程装置的处理器,以产生一个机器,使得通过处理器执行指令产生实现在流程图和/或框图中一个或多个框中指定的功能的装置。
[0210]
这些计算机可读程序指令也可读存储在计算机可读存储器中,这些指令使得计算
机以特定方式工作,从而产生一个制造品,包括实现在流程图和/或框图中一个或多个框中指定的功能的指令。
[0211]
本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。
[0212]
通过上述实施例中的物品拣选方法及装置、计算机可读存储介质,提高了物品拣选的成功率。
[0213]
至此,已经详细描述了根据本公开的物品拣选方法及装置、计算机可读存储介质。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
技术特征:1.一种物品拣选方法,包括:获取货箱内多个物品的拣选信息,其中,拣选信息包括物品的拣选面和拣选点、物品所在货箱的图像;根据物品所在货箱的图像,确定物品之间的邻近关系;根据物品的倾斜角度和高度的至少一种,以及物品之间的邻近关系,确定物品之间的约束关系,其中,物品的倾斜角度根据物品的拣选面和拣选点确定,物品的高度根据物品所在货箱的图像确定;根据约束关系,确定多个物品的拣选顺序。2.根据权利要求1所述的物品拣选方法,其中,所述根据物品所在货箱的图像,确定物品之间的邻近关系包括:在两个物品相互接触的情况下,确定这两个物品互为邻近物品;在一个物品与另外两个物品都接触的情况下,确定另外两个物品互为邻近物品。3.根据权利要求2所述的物品拣选方法,其中,所述确定物品之间的约束关系包括:在物品的高度大于其邻近物品的高度的情况下,确定物品对该邻近物品有约束。4.根据权利要求2所述的物品拣选方法,其中,所述确定物品之间的约束关系包括:根据物品的倾斜角度,对多个物品分组;在物品与其邻近物品属于同一组的情况下,根据物品的倾斜角度,确定物品与该邻近物品之间的约束关系。5.根据权利要求4所述的物品拣选方法,其中,所述在物品与其邻近物品属于同一组的情况下,根据物品的倾斜角度,确定物品与该邻近物品之间的约束关系包括:根据组内物品的拣选面的面积,确定第一拣选方向,其中,第一拣选方向指示该组物品的第一拣选顺序;根据物品和该邻近物品的拣选点,确定物品与该邻近物品的第二拣选方向,其中,第二拣选方向指示物品与该邻近物品的第二拣选顺序;根据第一拣选方向和第二拣选方向,确定物品与该邻近物品之间的约束关系。6.根据权利要求5所述的物品拣选方法,其中,所述根据组内物品的拣选面的面积,确定第一拣选方向,包括:在同一组物品的拣选面中,在面积最大的拣选面和面积最小的拣选面的比值超过比值阈值的情况下,计算第一向量作为第一拣选方向,其中,第一向量为从面积最大的拣选面上的拣选点指向面积最小的拣选面上的拣选点的方向。7.根据权利要求6所述的物品拣选方法,其中,所述根据组内物品的拣选面的面积,确定第一拣选方向,包括:在同一组物品的拣选面中,在面积最大的拣选面和面积最小的拣选面的比值不超过比值阈值的情况下,根据该组的物品的倾斜角度,计算第二向量,其中,第二向量表示该组物品的整体倾斜方向;在第一向量与第二向量的夹角不超过第一阈值的情况下,将第一向量确定为第一拣选方向;在第一向量与第二向量的夹角超过第一阈值的情况下,将第一向量的反方向确定为第一拣选方向。
8.根据权利要求5所述的物品拣选方法,其中,所述第二拣选方向为从物品的拣选面的拣选点指向该邻近物品的拣选面的拣选点的方向。9.根据权利要求5所述的物品拣选方法,其中,所述根据第一拣选方向和第二拣选方向,确定物品与该邻近物品之间的约束关系,包括:在第一拣选方向和第二拣选方向的夹角不超过第二阈值的情况下,确定物品对该邻近物品有约束。10.根据权利要求4所述的物品拣选方法,其中,所述确定物品之间的约束关系,包括:在物品与其邻近物品不属于同一组、且物品的高度大于其邻近物品的高度的情况下,确定物品对该邻近物品有约束。11.根据权利要求1所述的物品拣选方法,其中,所述物品包括多个拣选面,所述根据物品所在货箱的图像,确定物品之间的邻近关系,包括:在两个拣选面相互接触的情况下,确定这两个拣选面互为邻近拣选面;在一个拣选面与另外两个拣选面都接触的情况下,确定另外两个拣选面互为邻近拣选面。12.根据权利要求11所述的物品拣选方法,其中,所述确定物品之间的约束关系,包括:在拣选面的高度大于其邻近拣选面的高度的情况下,确定拣选面对该邻近拣选面有约束。13.根据权利要求11所述的物品拣选方法,其中,所述物品的倾斜角度包括物品的拣选面的倾斜角度,所述确定物品之间的约束关系,包括:根据拣选面的倾斜角度,对物品的拣选面分组;在拣选面与其邻近拣选面属于同一组的情况下,根据拣选面的倾斜角度,确定拣选面与该邻近拣选面之间的约束关系。14.根据权利要求13所述的物品拣选方法,其中,所述在拣选面与其邻近拣选面属于同一组的情况下,根据拣选面的倾斜角度,确定拣选面与该邻近拣选面之间的约束关系,包括:根据组内拣选面的面积,确定第一拣选方向,其中,第一拣选方向指示该组拣选面的第一拣选顺序;根据拣选面和该邻近拣选面的拣选点,确定拣选面与该邻近拣选面的第二拣选方向,其中,第二拣选方向指示拣选面与该邻近拣选面的第二拣选顺序;根据第一拣选方向和第二拣选方向,确定拣选面与该邻近拣选面之间的约束关系。15.根据权利要求14所述的物品拣选方法,其中,所述根据组内拣选面的面积,确定第一拣选方向,包括:在同一组拣选面中,在面积最大的拣选面和面积最小的拣选面的比值超过比值阈值的情况下,计算第一向量作为第一拣选方向,其中,第一向量为从面积最大的拣选面上的拣选点指向面积最小的拣选面上的拣选点的方向。16.根据权利要求15所述的物品拣选方法,其中,所述根据组内拣选面的面积,确定第一拣选方向,包括:在同一组拣选面中,在面积最大的拣选面和面积最小的拣选面的比值不超过比值阈值的情况下,根据该组拣选面的倾斜角度,计算第二向量,其中,第二向量表示该组拣选面的
整体倾斜方向;在第一向量与第二向量的夹角不超过第三阈值的情况下,将第一向量确定为第一拣选方向;在第一向量与第二向量的夹角超过第三阈值的情况下,将第一向量的反方向确定为第一拣选方向。17.根据权利要求14所述的物品拣选方法,其中,所述第二拣选方向为从拣选面的拣选点指向其邻近拣选面的拣选点的方向。18.根据权利要求14所述的物品拣选方法,其中,所述根据第一拣选方向和第二拣选方向,确定拣选面与该邻近拣选面之间的约束关系,包括:在第一拣选方向和第二拣选方向的夹角不超过第四阈值的情况下,确定拣选面对该邻近拣选面有约束。19.根据权利要求13所述的物品拣选方法,其中,所述确定物品之间的约束关系,包括:在拣选面与其邻近拣选面不属于同一组、且拣选面的高度大于其邻近拣选面的高度的情况下,确定拣选面对该邻近拣选面有约束。20.根据权利要求1所述的物品拣选方法,其中,根据约束关系,确定多个物品的拣选顺序包括:根据拣选信息,生成排序结果,其中,排序结果表示物品拣选的难易程度;根据排序结果和物品之间的约束关系,确定多个物品的拣选顺序。21.一种物品拣选方法,包括:获取模块,被配置为获取货箱内多个物品的拣选信息,其中,拣选信息包括物品的拣选面和拣选点、物品所在货箱的图像;邻近关系确定模块,被配置为根据物品所在货箱的图像,确定物品之间的邻近关系;约束关系确定模块,被配置为根据物品的倾斜角度和高度的至少一种,以及物品之间的邻近关系,确定物品之间的约束关系,其中,物品的倾斜角度根据物品的拣选面和拣选点确定,物品的高度根据物品所在货箱的图像确定;拣选顺序确定模块,被配置为根据约束关系,确定多个物品的拣选顺序。22.一种物品拣选装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令,执行根据权利要求1至20任一项所述的物品拣选方法。23.一种计算机可存储介质,其上存储有计算机程序指令,该指令被处理器执行时,实现根据权利要求1至20任一项所述的物品拣选方法。
技术总结本公开涉及物品拣选方法及装置、计算机可存储介质,涉及仓储物流领域。物品拣选方法包括:获取货箱内多个物品的拣选信息,其中,拣选信息包括物品的拣选面和拣选点、物品所在货箱的图像;根据物品所在货箱的图像,确定物品之间的邻近关系;根据物品的倾斜角度和高度的至少一种,以及物品之间的邻近关系,确定物品之间的约束关系,其中,物品的倾斜角度根据物品的拣选面和拣选点确定,物品的高度根据物品所在货箱的图像确定;根据约束关系,确定多个物品的拣选顺序。品的拣选顺序。品的拣选顺序。
技术研发人员:陈智勇 于伟 梅涛
受保护的技术使用者:京东科技控股股份有限公司
技术研发日:2022.07.21
技术公布日:2022/11/1