CN115947127A 审中 一种拆垛方法、装置及电子设备
技术领域 [0001]本申请涉及机器人技术领域,特别是涉及一种拆垛方法、装置及电子设备。 背景技术 [0002]拆垛为将托盘上规则放置好的纸箱(或者包装袋)一个个抓取下来,并放在传送带上运送至其他工序位置的流程。拆垛策略的制定影响着拆垛效率,不合理的拆垛策略将导致额外的运动耗时,而相关技术中缺少能够提高拆垛效率的拆垛方法。 发明内容 [0003]本申请实施例的目的在于提供一种高效率的拆垛方法,以提高了拆垛效率。具体技术方案如下: [0004]根据本申请的第一方面,提供了一种拆垛方法,所述方法包括: [0005]获取位于垛形顶层的各包裹的包裹信息,各所述包裹的所述包裹信息包括:所述包裹的位置信息和所述各包裹的尺寸信息; [0006]针对每个包裹,根据所述各包裹的包裹信息对将所述包裹移动到目标位置的移动路径进行碰撞检测,得到碰撞检测结果; [0007]将所述碰撞检测结果为不碰撞的目标包裹抓取到所述目标位置。 [0008]在一种可能的实施例中,所述根据所述各包裹的包裹信息对将所述包裹移动到目标位置的移动路径进行碰撞检测,得到碰撞检测结果,包括: [0009]根据所述第一包裹的位置信息和尺寸信息,确定将所述第一包裹移动到目标位置的移动路径对应的第一点集,所述第一点集中包括所述第一包裹的移动路径上所有的空间点,所述第一包裹为所述各包裹中任一包裹; [0010]根据第二包裹的位置信息和尺寸信息,确定第二包裹对应的第二点集,所述第二点集中包括所述第二包裹包括的所有空间点,所述第二包裹为所述各包裹中不为所述第一包裹的任一包裹; [0011]若所述第一点集和第二点集的闵可夫斯基差中包含原点,则确定碰撞检测结果为第一包裹和第二包裹会发生碰撞。 [0012]在一种可能的实施例中,所述根据所述各包裹的包裹信息对将所述包裹移动到目标位置的移动路径进行碰撞检测,得到碰撞检测结果,包括: [0013]若所述第一点集和第二点集的闵可夫斯基差中不包含原点,则确定碰撞检测结果为第一包裹和第二包裹不会发生碰撞。 [0014]在一种可能的实施例中,所述将所述碰撞检测结果为不碰撞的目标包裹抓取到所述目标位置,包括: [0015]确定所述碰撞检测结果为不碰撞的目标包裹; [0016]根据所述目标包裹的包裹信息确定所述目标包裹的包裹高度、包裹大小和包裹距离,所述包裹高度为所述目标包裹距离预设水平面的高度,所述包裹距离为所述目标包裹到目标位置的距离; [0017]根据所述目标包裹的包裹高度、包裹大小和包裹距离确定所述目标包裹的抓取优先级,所述目标包裹的抓取优先级与所述目标包括的包裹高度、包裹大小正相关,与包裹距离负相关; [0018]将所述抓取优先级满足预设优先级条件的所述目标包裹抓取到所述目标位置。 [0019]在一种可能的实施例中,所述根据所述目标包裹的包裹高度、包裹大小和包裹距离确定所述目标包裹的抓取优先级,包括: [0020]将所述目标包裹的包裹高度、包裹大小和包裹距离加权求和,得到所述目标包裹的抓取优先级,其中,在所述加权求和过程中包裹高度的权重大于包裹距离的权重,且包裹距离的权重大于包裹大小的权重。 [0021]根据本申请的第二方面,提供了一种拆垛装置,所述装置包括: [0022]信息获取模块,用于获取位于垛形顶层的各包裹的包裹信息,各所述包裹的所述包裹信息包括:所述包裹的位置信息和所述各包裹的尺寸信息; [0023]碰撞检测模块,用于针对每个包裹,根据所述各包裹的包裹信息对将所述包裹移动到目标位置的移动路径进行碰撞检测,得到碰撞检测结果; [0024]抓取模块,用于将所述碰撞检测结果为不碰撞的目标包裹抓取到所述目标位置。 [0025]在一种可能的实施例中,所述碰撞检测模块,包括: [0026]第一点集子模块,用于根据所述第一包裹的位置信息和尺寸信息,确定将所述第一包裹移动到目标位置的移动路径对应的第一点集,所述第一点集中包括所述第一包裹的移动路径上所有的空间点,所述第一包裹为所述各包裹中任一包裹; [0027]第二点集子模块,根据第二包裹的位置信息和尺寸信息,确定第二包裹对应的第二点集,所述第二点集中包括所述第二包裹包括的所有空间点,所述第二包裹为所述各包裹中不为所述第一包裹的任一包裹; [0028]碰撞子模块,用于若所述第一点集和第二点集的闵可夫斯基差中包含原点,则确定碰撞检测结果为第一包裹和第二包裹会发生碰撞。 [0029]在一种可能的实施例中,所述碰撞检测模块,包括: [0030]不碰撞子模块,用于不碰撞若所述第一点集和第二点集的闵可夫斯基差中不包含原点,则确定碰撞检测结果为第一包裹和第二包裹不会发生碰撞。 [0031]在一种可能的实施例中,所述抓取模块,包括: [0032]目标确定子模块,用于确定所述碰撞检测结果为不碰撞的目标包裹; [0033]信息确定子模块,用于根据所述目标包裹的包裹信息确定所述目标包裹的包裹高度、包裹大小和包裹距离,所述包裹高度为所述目标包裹距离预设水平面的高度,所述包裹距离为所述目标包裹到目标位置的距离; [0034]优先级子模块,用于根据所述目标包裹的包裹高度、包裹大小和包裹距离确定所述目标包裹的抓取优先级,所述目标包裹的抓取优先级与所述目标包括的包裹高度、包裹大小正相关,与包裹距离负相关; [0035]抓取子模块,用于将所述抓取优先级满足预设优先级条件的所述目标包裹抓取到所述目标位置。 [0036]在一种可能的实施例中,所述优先级子模块,具体用于将所述目标包裹的包裹高度、包裹大小和包裹距离加权求和,得到所述目标包裹的抓取优先级,其中,在所述加权求和过程中包裹高度的权重大于包裹距离的权重,且包裹距离的权重大于包裹大小的权重。 [0037]根据本申请的第三方面,提供了一种电子设备,包括: [0038]存储器,用于存放计算机程序; [0039]处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的方法。 [0040]根据本申请的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的方法。 [0041]本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的拆垛方法。 [0042]本申请实施例有益效果: [0043]本申请实施例提供的实施例,根据垛形顶层的各包裹的包裹信息和目标位置,对各包裹在移动到目标位置的移动路径进行碰撞检测,得到碰撞检测结果,在碰撞检测结果为不碰撞的情况下才将该包裹作为目标包裹抓取到目标位置,避免了在拆垛过程中抓取的包裹在移动过程中与其他包裹发生碰撞,也避免了在抓取目标包裹的过程中绕过其他包裹来到达目标位置导致的抓取时间较长,提高了拆垛效率。 [0044]当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。 附图说明 [0045]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。 [0046]图1为本申请实施例提供的一种拆垛方法的一种流程示意图; [0047]图2为本申请实施例提供的一种垛形的正视图; [0048]图3为本申请实施例提供的一种垛形的俯视平面图; [0049]图4为本申请实施例提供的一种包裹直线移动路径的俯视平面图; [0050]图5为本申请实施例提供的一种包裹折线移动路径的俯视平面图; [0051]图6为本申请实施例提供的另一种拆垛方法的一种流程示意图; [0052]图7为本申请实施例提供的一种拆垛装置的结构示意图; [0053]图8为本申请实施例提供的一种电子设备的结构示意图。 具体实施方式 [0054]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。 [0055]相关技术中的拆垛方法通常是利用TOF(Time of flight,飞行时间)相机采集垛型最上层货物的三维点云图像,并将三维点云图像输入至训练好的模型,得到最上层各包裹的空间位置信息。根据最上层各包裹的空间位置信息确定拆垛策略,机械臂执行单层拆垛作业,重复单层拆垛过程,直至托盘上所有货物被移除。该技术提供了一种视觉引导的拆垛方法,通过视觉信息确定最上层包裹的位置,先抓最上层的包裹,但是未说明同层包裹的处理方式,而不同的同层包裹的处理方式影响着拆垛的效率,例如同层包裹的处理方式不合理,在直接抓取包裹时可能出现与其他包裹的碰撞或抓取路径需要额外绕道的情况,使得拆垛既不安全效率又低,基于此,本申请提供了一种拆垛方法,如图1所示,方法包括: [0056]S101,获取位于垛形顶层的各包裹的包裹信息。 [0057]S102,针对每个包裹,根据各包裹的包裹信息对将包裹移动到目标位置的移动路径进行碰撞检测,得到碰撞检测结果。 [0058]S103,将碰撞检测结果为不碰撞的目标包裹抓取到目标位置。 [0059]其中,在S101中,各包裹的包裹信息包括:包裹的位置信息和各包裹的尺寸信息。 [0060]垛形是指货垛的外部轮廓形状,常见的垛形可以是平台垛、起脊垛、行列垛等等,其中,包裹为组成垛形的货物,不同的包裹可以有不同的形状大小,不同的包裹也可以位于垛形中不同的位置。因此,一个垛形的各包裹具有其对应的包裹信息,包括该包裹位置信息,例如该包裹离地面的高度、在空间内的坐标等等,还包括该包裹的尺寸信息,如该包裹的长、宽、高等信息。 [0061]垛形的顶层指垛形中该层包裹上方无其他包裹层数,即,从垛形的俯视图中查看到的包裹,即为垛形的顶层各包裹,可以理解的是,该垛形顶层可以是高度相同的同一层包裹,也可以是高度不同的不同层的包裹,如图2所示,图2为一个垛形的正视图,其中包裹1可以是该垛形顶层的包裹,包裹1、包裹2和包裹3也可以是该垛形顶层的包裹。而包裹的位置信息可以通过相机从垛形的上方拍照,得到垛形的俯视平面图,通过俯视平面图确定各包裹的位置信息和尺寸信息,如图3所示。 [0062]其中,在S102中,目标位置为垛形中的各包裹需要放置的目的地,其可以是传送带也可以是其他固定位置,本申请并不限定。将包裹移动到目标位置的移动路径是指将包裹从包裹在垛形中的初始位置直线移动到目标位置的移动路径,可以理解的是,由于两点之间直线最短,将包裹直接从初始位置直线移动到目标位置的移动路径也是该包裹到目标位置的最短移动路径。 [0063]作为一种示例,各包裹的碰撞检测可以利用空间划分方法,例如使用八叉树,划分后与其他包裹不在同一节点的包裹可以认为不会与其他包裹发生碰撞。作为另一种示例,可以采用分离轴定理的相关算法,例如将凸包裹的每个面作为可能的分离轴的面,作过原点的垂直于分离轴的面的线,求每个面在该线上投影,看是否与其他包裹的投影重叠,若所有情况下投影都重叠,则说明包裹与其他包裹在移动路径上会发生碰撞。 [0064]在一种可能的实施例中,本申请针对每个包裹的移动路径进行碰撞检测,还可以是通过以下碰撞检测方法: [0065]S1021,根据第一包裹的位置信息和尺寸信息,确定将第一包裹移动到目标位置的移动路径对应的第一点集。 [0066]S1022,根据第二包裹的位置信息和尺寸信息,确定第二包裹对应的第二点集。 [0067]S1023,若第一点集和第二点集的闵可夫斯基差中包含原点,则确定碰撞检测结果为第一包裹和第二包裹会发生碰撞。 [0068]其中,在S1021中,第一点集中包括第一包裹的移动路径上所有的空间点,第一包裹为各包裹中任一包裹。 [0069]第一包裹为垛形顶层的任意一个包裹。空间点可以是三维点云图像中的点云,第一点集为第一包裹在移动过程中所覆盖的所有点云的集合。根据第一包裹的尺寸信息可以确定出第一包裹自身所覆盖的所有空间点,而根据第一包裹的位置信息,可以确定出将第一包裹移动到目标位置的移动路径,因此,基于第一包裹的尺寸信息和位置信息可以确定出将第一包裹移动到目标位置的移动路径对应的第一点集。下文为描述方便,可以将该点集称为点集A。 [0070]其中,在S1022中,第二点集中包括第二包裹包括的所有空间点,第二包裹为各包裹中不为第一包裹的任一包裹。 [0071]第二包裹为垛形顶层各包裹中任一除第一包裹以外的包裹,而第二点集为第二包裹所在空间位置中包括的所有空间点,示例性的,若第二包裹为边长分别为1m的正方体,则第二点集即为第二包裹该边长为1m的正方体所包括的所有空间点。因此,可以根据第二包裹的位置信息和尺寸信息,确定出第二包裹对应的具体的第二点集。下文为描述方便,可以将该点集称为点集B。 [0072]其中,在S1023中,以上述点集A和点集B为例,其闵可夫斯基差的定义应该为: [0073]A-B={a-b;a∈A,b∈B} [0074]在上式中,a和b分别为两个位置向量,而a为点集A中任一顶点对应的位置向量,b为点集B中任一顶点对应的位置向量,a-b表示位置向量的差。可以理解的是,若a-b=0,则说明a和b是相同的位置向量,而又由于a和b分别点集A和点集B顶点对应的位置向量,因此,说明点集A和点集B的是有相交的情况的。示例性的,若a向量表示为(1,1,1),且点集B存在一个顶点的b向量表示为(1,1,1),则a-b=(0,0,0)即,a向量和b向量是位于相同位置的两个位置向量,进而说明点集A和点集B有相交的情况。进一步的,由于点集A(第一点集)和点集B(第二点集)相交,因此,第一包裹的移动路径会与第二包裹相交,即,第一包裹在移动到目标位置的过程中会与第二包裹发生碰撞。 [0075]选用该实施例,确定第一包裹对应的第一点集和第二包裹对应的第二点集,根据第一点集和第二点集的闵可夫斯基差判断第一点集和第二点集是否有交集,进而确定出第一包裹在移动到目标位置的过程中是否和第二包裹发生碰撞,将第一包裹和第二包裹的碰撞检测简化,提供了一种高效的碰撞检测方法,进而提高了拆垛方法的效率。 [0076]相应的,若第一点集和第二点集的闵可夫斯基差中不包含原点,则说明任一第一点集和空间点和第二点集的空间点不重合,进而第一包裹在移动到目标位置的移动路径上不会与第二包裹发生碰撞,因此,第一包裹在被移动到目标位置的过程中不会与垛形中任一包裹发生碰撞,进一步的,后续应该将该第一包裹直接抓取到目标位置,避免拆垛过程中碰撞到其他包裹出现的安全问题和需要避免与其他包裹碰撞出现的绕路抓取的低效情况。 [0077]作为一种示例,第一点集和第二点集的闵可夫斯基差是否包含原点可以通过GJK算法进行确定,具体的,如前所述,若A-B包含原点(即任一a-b=(0,0,0)),则说明第一包裹会与第二包裹发生碰撞,因此,设A-B=C,可以将问题转化为搜索点集C中距离原点最近的点,若点集C中距离原点最近的点不为原点,则说明C中不存在原点,进而点集A和点集B没有相同的空间点,第一包裹和第二包裹不会发生碰撞,而若点集C中距离原点最近的点为原点,则说明C中存在原点,进而点集A和点集B有相同的空间点,第一包裹和第二包裹会发生碰撞。 [0078]而由于点集中空间点数据量较大,如果直接根据点集A和点集B计算点集C中所有空间点的坐标难度较大,因此,针对于点集C,可以遍历点集C对应的凸体中任意4个顶点构成的四面体对应的点集Q是否包含原点,可以理解的是,只要点集C中的任意一个四面体对应的点集Q包含原点,则说明点集C包含原点。 [0079]首先,在确定点集Q时,先选出一个搜索方向v,由于点集C中空间点不容易确定,因此,在点集A的顶点处的位置向量中确定出与搜索方向v方向相同的a,具体的SA(v)=argmax{a*v},可以理解的是,a是使得a*v最大的方向,可见,a的方向与v方向相同,基于该确定出四面体的第一个顶点a,然后再点集B的顶点处的位置向量中确定出与搜索方向v方向相反的b,将该b作为四面体的第二顶点,可以理解的是,此时的a和b分别是点集A和点集B的顶点上方向相反且在v方向上距离最远的两个点。然后,改变搜索方向v,得到新的搜索方向,以与前述确定顶点a和顶点b相同的方法确定出四面体的第三个顶点和第四个顶点,基于此,确定出四面体的四个顶点,将四个顶点连接,得到点集C中的一个四面体,该四面体对应的点集即为一个点集Q,确定该点集Q对应的空间点中是否包括原点,若包括,则确定第一包裹和第二包裹会发生碰撞。 [0080]若不包裹,则继续确定新的点集Q,具体的,将上一个四面体中距离原点最远的顶点删除,确定剩下的三个点组成的三角形这个面对应的法向量,将该法向量作为新的搜索方向v,然后根据上述方法,重新确定新的四面体的四个顶点,得到新的点集Q,进而确定该新的点集Q中是否包含原点,若不包含,依照上述方法确定新的点集Q。 [0081]通过上述方法,确定出第一点集和第二点集的闵可夫斯基差是否包含原点,若包含,则说明第一包裹和第二包裹会发生碰撞。 [0082]其中,在S103中,碰撞检测结果会包括各个包裹在移动到目标位置时是否会与其他包裹发生碰撞的结果,如图4所示,在将包裹2直接抓取到目标位置的路径上会碰撞大包裹1,因此,包裹2的碰撞检测结果为碰撞,该包裹2不能作为目标包裹,若要在该中情况中先抓取包裹2到目标位置,则需要绕过包裹1,增加移动路径,如图5的包裹2的移动路径所示,降低了拆垛效率。可以理解的是,若一个包裹在移动到目标位置时不会与任一垛形中的包裹发生碰撞,如图5的包裹1所示,则说明该包裹在抓取过程中不会引起与其他包裹的安全问题,并且,在抓取该包裹的过程中也不需要在路线上绕过其他包裹到达目标位置,提高了拆垛的效率和成功率。 [0083]选用该实施例,根据垛形顶层的各包裹的包裹信息和目标位置,对各包裹在移动到目标位置的移动路径进行碰撞检测,得到碰撞检测结果,在碰撞检测结果为不碰撞的情况下才将该包裹作为目标包裹抓取到目标位置,避免了在拆垛过程中抓取的包裹在移动过程中与其他包裹发生碰撞,也避免了在抓取目标包裹的过程中绕过其他包裹来到达目标位置导致的抓取时间较长,提高了拆垛效率。 [0084]在多个包裹的碰撞检测结果都为不碰撞的场景下,在拆垛过程中一个机器臂也可能一次只能抓取一个包裹,基于此,本申请还提供了包裹的抓取方法,以选取出最合理的目标包裹进行抓取,如图6所示,方法包括: [0085]S601,获取位于垛形顶层的各包裹的包裹信息。 [0086]S602,针对每个包裹,根据各包裹的包裹信息对将包裹移动到目标位置的移动路径进行碰撞检测,得到碰撞检测结果。 [0087]S603,确定碰撞检测结果为不碰撞的目标包裹。 [0088]S604,根据目标包裹的包裹信息确定目标包裹的包裹高度、包裹大小和包裹距离。 [0089]S605,根据目标包裹的包裹高度、包裹大小和包裹距离确定目标包裹的抓取优先级。 [0090]S606,将抓取优先级满足预设优先级条件的目标包裹抓取到目标位置。 [0091]其中,在S601中,此步骤与S101相同,具体请参见S101的相关描述,此处不再赘述。 [0092]其中,在S602中,此步骤与S102相同,具体请参见S102的相关描述,此处不再赘述。 [0093]其中,在S603中,如前所述,各个包裹的碰撞检测结果表示该包裹在移动到目标位置时是否会与其他包裹发生碰撞,将其中碰撞检测结果显示为不碰撞的包裹作为目标包裹。 [0094]其中,在S604中,包裹距离为目标包裹到目标位置的距离,包裹高度为目标包裹距离预设水平面的高度。 [0095]包裹信息中包括了包裹的尺寸信息,而包裹的尺寸信息包括的包裹大小,例如包裹的长宽高,包裹信息中还包括了包裹所在位置距离预设水平面的高度即包裹高度,与目标位置的距离即包裹距离,其中,预设水平面作为基准来比较垛形中各包裹的高度,预设水平面可以是地面,也可以是放置垛形的台面,或者其他以特定的平面,本申请对此并不限定。 [0096]其中,在S605中,目标包裹的抓取优先级与目标包括的包裹高度、包裹大小正相关,与包裹距离负相关。 [0097]可以理解的是,包裹高度越高,说明该包裹在垛形中所处的位置越高,若不优先抓取可能后续在抓取其他包裹时出现掉落的安全隐患,因此,包裹高度与该目标包裹的抓取优先级正相关。并且,在判断包裹高度时,可以以包裹高度对应的包裹层数来比较,例如A目标包裹的包裹层数为3层,B目标包裹的包裹层数也为3层,则A目标包裹和B目标包裹的包裹高度对应的抓取优先级应该是相同的,即使,A目标包裹的包裹高度可能与B目标包裹的高度可能有微小差距,只要该差距在预设阈值内,即可判断A目标包裹和B目标包裹的包裹高度基本相同。 [0098]而包裹大小越大,其在垛形中所占空间越大,也越可能在其他包裹移动时与其他包裹发生碰撞,因此,需要优先抓取,包裹大小与目标包裹的抓取优先级正相关。而包裹距离距离越长,则说明该目标包裹需要抓取的路径和时间越长,抓取速率较低,因此,为了提高拆垛效率,应该优先抓取包裹距离短的目标包裹,进而,目标包裹的抓取优先级与包裹距离负相关。基于此,确定出各个目标包裹的抓取优先级。 [0099]具体的,在各个目标包裹的优先级可以根据以下方法确定: [0100]将目标包裹的包裹高度、包裹大小和包裹距离加权求和,得到目标包裹的抓取优先级,其中,在加权求和过程中包裹高度的权重大于包裹距离的权重,且包裹距离的权重大于包裹大小的权重。 [0101]确定出包裹高度、包裹大小和包裹距离这三项分别对应的权重,将且这三项对应的权重为:包裹高度的权重大于包裹大小的权重,包裹大小的权重大于包裹距离的权重。可以理解的是,包裹高度决定了一个目标包裹是否容易跌落安全隐患,因此,将包裹高度的权重设置为最大的,包裹距离影响了目标包裹的抓取速率,而不影响垛形中各包裹的安全问题,因此,将包裹距离的权重设置为小于包裹高度的权重大于包裹大小的权重,包裹大小决定了该目标包裹是否容易与其他包裹发生碰撞而导致包裹掉落的安全隐患,将包裹大小的权重设置为小于包裹距离的权重。基于此,将各个目标包裹的包裹高度、包裹大小和包裹距离与其对应的权重加权求和,获得各个目标包裹的抓取优先级,可以理解的是,计算得到的加权之和越大,该目标包裹被抓取的优先级越高。 [0102]选用该实施例,为影响拆垛安全和效率的各个因素设置了合理的权重,计算出各个目标包裹对应的合理的抓取优先级,以便后续根据该抓取优先级高效安全地拆垛。 [0103]可以理解的是前述S605中关于抓取优先级的确定方式的描述仅是本申请提供的一种抓取优先级确定方式,在其他可能的实施例中,根据实际应用场景的不同,可以选用不同的方式确定目标包裹的抓取优先级。 [0104]作为一种示例,在垛形较大的情况下,权重的分配还可以是包裹距离的权重设置为最大。即,在该示例中将目标包裹的包裹高度、包裹大小和包裹距离加权求和得到目标包裹的抓取优先级,其中,在加权求和过程中包裹距离的权重大于包裹高度和包裹大小的权重,且该示例中可以是包裹高度的权重大于包裹大小的权重,也可以是包裹大小的权重大于包裹高度的权重。可以理解的是,由于垛形较大,因此各个目标包裹到目标位置的距离差距会较大,此时将包裹距离的权重设置为最大的,可以优先抓取最近的目标包裹,提高抓取效率。 [0105]作为另一种示例,若垛形中的所有包裹的高度且包裹大小都类似,此时可以不需要考虑各目标包裹的包裹高度的权重和包裹大小,只考虑各目标包裹的包裹距离,从而合理、高效的拆垛。即,在该示例可以仅根据目标包裹的包裹距离确定抓取优先级,如对目标包裹的包裹距离进行归一化,并将归一化解结果确定为目标包裹的抓取优先级。 [0106]作为另一种示例,若垛形中包裹的大小差距较大,则可以将包裹大小的权重设置为最大,因此将包裹大小的权重设置为最大,可优先抓取较大的目标包裹,降低拆垛过程中的安全隐患。即,在该示例中将目标包裹的包裹高度、包裹大小和包裹距离加权求和得到目标包裹的抓取优先级,其中,在加权求和过程中包裹大小的权重大于包裹高度和包裹距离的权重,且该示例中可以是包裹高度的权重大于包裹距离的权重,也可以是包裹距离的权重大于包裹高度的权重。可以理解的是,包裹大小较大的目标包裹若在垛形中发生掉落则造成的后果较小包裹较为严重,因此应当尽可能优先抓取包裹大小较大的目标包裹。 [0107]其中,在S606中,预设优先级条件可以是抓取优先级最高,即将抓取优先级最高的目标包裹抓取的目标位置。可以理解的是,一个目标包裹的抓取优先级越高,该目标包裹越会被优先抓取。 [0108]可以理解的是,由于在一个目标包裹被抓取后,之前可能与该目标包裹发生碰撞的包裹,此次的碰撞检测结果就不会与其他包裹发生碰撞,而成为目标包裹,进而可能会使得各个其他目标包裹的抓取优先级发生变化,而最后确定出满足预设优先级条件的目标包裹也会发生变化,因此,为了提高拆垛效率,碰撞检测结果和抓取优先级可以是每抓取一个目标包裹后重新再重新计算一次,重新确定出抓取优先级最高的目标包裹进行抓取。 [0109]选用该实施例,根据目标包裹的包裹信息,确定出各个目标包裹的抓取优先级,并在目标包裹中确定出抓取优先级满足预设优先级条件的目标包裹抓取,制定了合理的拆垛策略,提高了拆垛效率。 [0110]相应于本申请的拆垛方法,本申请还提供了一种拆垛装置,如图7所示,装置包括: [0111]信息获取模块701,用于获取位于垛形顶层的各包裹的包裹信息,各所述包裹的所述包裹信息包括:所述包裹的位置信息和所述各包裹的尺寸信息; [0112]碰撞检测模块702,用于针对每个包裹,根据所述各包裹的包裹信息对将所述包裹移动到目标位置的移动路径进行碰撞检测,得到碰撞检测结果; [0113]抓取模块703,用于将所述碰撞检测结果为不碰撞的目标包裹抓取到所述目标位置。 [0114]在一种可能的实施例中,所述碰撞检测模块702,包括: [0115]第一点集子模块,用于根据所述第一包裹的位置信息和尺寸信息,确定将所述第一包裹移动到目标位置的移动路径对应的第一点集,所述第一点集中包括所述第一包裹的移动路径上所有的空间点,所述第一包裹为所述各包裹中任一包裹; [0116]第二点集子模块,根据第二包裹的位置信息和尺寸信息,确定第二包裹对应的第二点集,所述第二点集中包括所述第二包裹包括的所有空间点,所述第二包裹为所述各包裹中不为所述第一包裹的任一包裹; [0117]碰撞子模块,用于若所述第一点集和第二点集的闵可夫斯基差中包含原点,则确定碰撞检测结果为第一包裹和第二包裹会发生碰撞。 [0118]在一种可能的实施例中,所述碰撞检测模块702,包括: [0119]不碰撞子模块,用于不碰撞若所述第一点集和第二点集的闵可夫斯基差中不包含原点,则确定碰撞检测结果为第一包裹和第二包裹不会发生碰撞。 [0120]在一种可能的实施例中,所述抓取模块703,包括: [0121]目标确定子模块,用于确定所述碰撞检测结果为不碰撞的目标包裹; [0122]信息确定子模块,用于根据所述目标包裹的包裹信息确定所述目标包裹的包裹高度、包裹大小和包裹距离,所述包裹高度为所述目标包裹距离预设水平面的高度,所述包裹距离为所述目标包裹到目标位置的距离; [0123]优先级子模块,用于根据所述目标包裹的包裹高度、包裹大小和包裹距离确定所述目标包裹的抓取优先级,所述目标包裹的抓取优先级与所述目标包括的包裹高度、包裹大小正相关,与包裹距离负相关; [0124]抓取子模块,用于将所述抓取优先级满足预设优先级条件的所述目标包裹抓取到所述目标位置。 [0125]在一种可能的实施例中,所述优先级子模块,具体用于将所述目标包裹的包裹高度、包裹大小和包裹距离加权求和,得到所述目标包裹的抓取优先级,其中,在所述加权求和过程中包裹高度的权重大于包裹距离的权重,且包裹距离的权重大于包裹大小的权重。 [0126]本申请实施例还提供了一种电子设备,如图8所示,包括: [0127]存储器801,用于存放计算机程序; [0128]处理器802,用于执行存储器801上所存放的程序时,实现如下步骤: [0129]获取位于垛形顶层的各包裹的包裹信息,各所述包裹的所述包裹信息包括:所述包裹的位置信息和所述各包裹的尺寸信息; [0130]针对每个包裹,根据所述各包裹的包裹信息对将所述包裹移动到目标位置的移动路径进行碰撞检测,得到碰撞检测结果; [0131]将所述碰撞检测结果为不碰撞的目标包裹抓取到所述目标位置。 [0132]并且上述电子设备还可以包括通信总线和/或通信接口,处理器802、通信接口、存储器801通过通信总线完成相互间的通信。 [0133]上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。 [0134]通信接口用于上述电子设备与其他设备之间的通信。 [0135]存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。 [0136]上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。 [0137]在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一拆垛方法的步骤。 [0138]在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一拆垛方法。 [0139]在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)等。 [0140]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。 [0141]本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。 [0142]以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
现在,一起体验智慧芽的产品和服务
自动注册,无需人工审核,即可立即开始查询专利
立即注册
澳门正版图库

AI助手