当前位置:首页 期刊杂志

用于仓储物流的工业机器人码垛算法

时间:2024-07-28

张 涛

上海发那科机器人有限公司 上海 201906

1 研究背景

在现代工业物流自动化领域中,使用机器人来进行码垛装箱、拆垛搬运已经成为一种高效、快捷的方式[1-4]。机器人技术的应用[5-6]是企业间相互竞争和未来发展的重要因素,托盘码垛技术已成为高效物流的关键技术之一。

对于托盘码垛技术,国内外学者进行了大量研究[7-9],但大多集中在单一尺寸物料方面,而对于多尺寸物料的场景,虽也有少部分研究[10-12],但模型却较为简单,使用条件有限。笔者结合实际物流自动化领域码垛应用的需要,从新的角度对机器人混箱码垛问题展开探讨。针对多货品不同尺寸的混箱码垛场景,基于各种箱子和托盘的尺寸,设计了一种工业机器人码垛算法,能分析出最佳的码垛序列。

2 混箱码垛问题

2.1 混箱码垛定义

混箱码垛指面对多个尺寸不同的箱子,需要计算出如何选择最多的箱子码放在固定的托盘上,并保证码垛整齐。码垛工作将由工业机器人来完成。

定义一个托盘,其长度为L,宽度为W,需要在托盘上尽可能多地摆放各种不同尺寸的箱子。以某电商的托盘为例,其长度固定为1 200 mm,宽度为1 000 mm,托盘自身高150 mm,可摆放的最大高度为1 350 mm。所有箱子的长宽尺寸在200 mm×200 mm至600 mm×600 mm的范围内,高度不确定。

所有可抓取箱子的尺寸通过上位机传给机器人,机器人根据所有箱子的尺寸,完成垛型的规划,并进行码垛。

2.2 混箱码垛约束条件

为了实现将尽可能多的箱子搬运至托盘内,在算法设计时,需满足以下约束条件:

(1)摆放至托盘上的箱子不得超出托盘的边界;

(2)摆放至托盘上的箱子不得发生重叠;

(3)摆放至托盘上的箱子应尽可能贴着托盘边存放;

(4)摆放至托盘上的箱子,其长边与短边应与托盘边界平行;

(5)摆放至托盘上的箱子只有两种姿态,箱子的长边与托盘的长边平行,或箱子的长边与托盘的短边平行,不得出现倾倒或倾斜摆放的现象;

(6)底层箱子放满后,上层箱子落位在底层箱子上,依次类推,最大高度不得超出限制。

2.3 集合定义

定义所有可抓取的n个箱子的集合S={S1,S2,S3,…,Sn},对应编号集合I={1,2,3,…,n}。每个Si(i∈I,Si表示第i个箱子)都具备自己的属性,如长度Li、宽度Wi、高度Hi及原始位置的旋转角Ri,Ri=0或90°。为方便计算,定义所有箱子的长度不小于宽度。计算完成之后,每个Si又会产生新的属性,如顺序Oi、坐标Pi、层级Qi等。

3 算法模型

要建立针对混箱码垛的工业机器人码垛算法模型,并寻求最优的垛型,对底层码垛规则的定义尤为重要。现对托盘进行区域划分,如图1所示,划成若干个区域,并建立坐标系。

图1 坐标系

定义托盘长边方向为X轴,短边方向为Y轴。对于区域1,选择集合{Si}中箱子占地面积最大的那一个,如Sa(1≤a≤n,且a∈Z),占用整块区域1,且Sa长边放在X轴方向,短边放在Y轴方向。

对于其它区域,分别建立最优化模型,并加上约束条件,来求取最优解。例如,对于区域2,其长度为L-La,其中L为托盘长度,La为落位在区域1中箱子Sa的长度。为使区域2的长边能摆放更多的箱子,且保证区域2内的箱子尽可能整齐,将所有箱子{Si}的长和宽合并成一个集合C={Ci,j},其中j=1或2,且Ci,1=Li,Ci,2=Wi。此外,定义已经完成落位的箱子的编号集合为D,并定义尚未落位的箱子的编号集合为E,且E=I-D。例如,当5号箱子落位在区域1之后,D={5},E={1,2,3,4,6,7,…,n};再当3、7、10号箱子落位在区域2之后,D={3,5,7,10},E={1,2,4,6,8,9,11,12,…,n};依次类推。随着箱子在各区域上的落位,集合D会发生变化,同时E也会发生变化,因此集合D和集合E不是固定元素的集合。

根据托盘和所有箱子的尺寸,可以判断沿区域2的X方向摆放的箱子数量范围为1~4个。区域2箱子的摆放可横放,旋转角为0°,也可竖放,旋转角为90°,所以计算能摆放在区域2内的箱子的总长时,需同时考虑使用每个箱子的Li或Wi来计算,并记录旋转角。

建立区域2最优化模型如下为:

式中:p=1,2,3,4;j=1,2;ik∈E;Ap为区域2的X方向摆放了p个箱子以后剩余的长度;Bp为区域2摆放了p个箱子之后,Y方向各箱子的最大尺寸差,其值越小,说明箱子摆放得越整齐;g为各箱子之间需要留出的间隙;Cik,j为从尚未落位的箱子集合E中取出一个箱子,编号为ik,且1≤k≤p,当j=1时,Cik,j=Lik,Cik,3-j=Wik,当j=2时,Cik,j=Wik,Cik,3-j=Lik。

按照如图2所示计算流程,最终可输出一组最优化结果。值得注意的是,每个箱子间需留有一定的间隙,即参数g,g需要提前设定,作为已知的参数。即使g发生1 mm的变化,计算出来的最优化结果也会发生改变。

当区域2内的箱子落位之后,其区域尺寸就确定了,记录各ik和j的值,并更新集合D和E。下面进行区域3的规划,在进行区域3规划之前,需要先考虑区域6的情况。由于区域1~区域5内箱子摆放的不确定性,在进行区域6规划的时候需考虑如图3所示的几种情形。

图2 计算流程

为避免箱子之间可能存在的干涉,在进行区域3计算时需加上一个额外的限制条件,即 max{Cik,3-j}≤La。如此,可避免情形B和情形D的出现,进行区域6规划的时候只需考虑情形A和情形C。

考虑边界条件,区域3在Y方向的尺寸应小于W-Wa,且根据箱子及托盘的尺寸,可以判断区域3 Y方向摆放的箱子数量范围为1~3个。

建立区域3最优化模型为:

式中:p=1,2,3;j=1,2;ik∈E。

计算出最优的ik和j之后,区域3的箱子就可以落位了,同时记录j的值以判断落位时是否需要旋转90°,并更新集合D和E。

区域4、区域5的箱子也可采用相同的方法,最后剩下托盘中心的区域6。

对于区域6,首先计算其X方向和Y方向的尺寸,然后选择两者中较大的那一个作为长边,采用类似区域2的最优化算法,最后针对剩下的空间,如仍有大于150 mm×150 mm的空间,则可以再次在没有落位的箱子中选取合适的箱子。

整个过程需要五六次最优化建模及求解。为缩短求解时间,如有m个尺寸相同的箱子,则在计算时只有4个箱子参与,其它箱子不进入计算搜索范围。

图3 区域6情形

通过求解,将会使托盘区域内存放的箱子数量最多,从而使托盘平面上箱子的占有率最大。在求解结果时,当一个箱子落位后,应在集合Si中删除。所得最优解不仅确定了托盘上箱子的数量,而且确定了每个箱子在托盘上的存放位置。

以上是底层码垛的方法,对于高层码垛,由于底层箱子高度可能参差不齐,因此无法将高层的箱子同时落位在底层多于1个箱子之上。对于高层码垛,将底层箱子的上表面作为一个区域,再使用最优化算法对高层箱子进行落位,例如,将区域1的箱子Sa作为底层箱子,其上表面的尺寸将作为高层码垛优化算法的边界条件。

建立高层最优化模型为:

4 应用举例

4.1 同尺寸箱子

上述设计的算法,不仅适用于混装的不同尺寸箱子,而且适用于同尺寸箱子。对于全都是400 mm×300 mm×350 mm的箱子,设置间隙为3 mm。使用所设计的算法,可得到最优化结果如图4~图7所示。

图4 同尺寸箱子底层码垛平面图

图5 同尺寸箱子底层码垛立体图

图6 同尺寸箱子二层码垛立体图

按照区域1~区域6的算法,数字1~8为箱子的落位顺序。三层箱子高度为1 050 mm,未超过总高1 200 mm的限制条件。

图7 同尺寸箱子更高层码垛立体图

4.2 不同尺寸箱子

在混箱码垛例子中,共有50种可被码垛的不同尺寸的箱子,见表1。

按照所述算法,表1中码垛了27个箱子,没有落位顺序的另外23个箱子没有办法存放在同一个托盘上。计算结果如图8~图11所示。所生成的混箱码垛序列和每个箱子的位置可以发送给机器人,由机器人来完成码垛作业。

图8 不同尺寸箱子底层码垛平面图

图9 不同尺寸箱子底层码垛立体图

4.3 间隙分析

由于间隙的不同,所产生的的结果也会不同,间隙分别设置为2 mm、3 mm、4 mm时所产生的计算结果依次如图12、图13、图14所示。

表1 混箱尺寸

图10 不同尺寸箱子二层码垛立体图

图11 不同尺寸箱子更高层码垛立体图

图12 间隙2 mm时计算结果

图13 间隙3 mm时计算结果

比较间隙为2 mm、3 mm、4 mm时的优化计算结果,可以发现虽然顺序的前几个箱子编号相同,但放第六个箱子时,编号已经不同了,这说明间隙对优化的顺序影响是很大的。另外,间隙2 mm的条件下,只能放25个箱子,但这并不能说明2 mm间隙时箱子放得少这种结果不是最佳的。这是因为间隙小时,需填充的各区域面积会变大,所选择的箱子尺寸也就会大,这样可能会减少能够选择的箱子数量。因此,需要根据实际情况来决定间隙值,而不是根据能摆放的总数来决定。

图14 间隙4 mm时计算结果

5 结语

针对在仓储物流行业中出现的混箱码垛问题,设计了一种工业机器人码垛算法。通过算法,对托盘进行区域划分,在每个区域中分别建立最优化模型,计算出最优解,最终生成整个托盘的码垛序列及码垛位置,为工业机器人的实际码垛提供了指令,实现了工业机器人码垛的智能化。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!