CN118343510A - 一种拆垛方法、系统、装置、设备以及存储介质 - Google Patents

一种拆垛方法、系统、装置、设备以及存储介质 Download PDF

Info

Publication number
CN118343510A
CN118343510A CN202410578688.5A CN202410578688A CN118343510A CN 118343510 A CN118343510 A CN 118343510A CN 202410578688 A CN202410578688 A CN 202410578688A CN 118343510 A CN118343510 A CN 118343510A
Authority
CN
China
Prior art keywords
pose
top layer
point cloud
package
stack
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.)
Pending
Application number
CN202410578688.5A
Other languages
English (en)
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.)
Hangzhou Hikrobot Co Ltd
Original Assignee
Hangzhou Hikrobot Co Ltd
Filing date
Publication date
Application filed by Hangzhou Hikrobot Co Ltd filed Critical Hangzhou Hikrobot Co Ltd
Publication of CN118343510A publication Critical patent/CN118343510A/zh
Pending legal-status Critical Current

Links

Abstract

本申请实施例提供了一种拆垛方法、系统、装置、设备以及存储介质,涉及机器人技术领域。具体实现方案为:从货垛上方的3D相机采集的货垛点云中识别各个包裹的包裹点云;基于所识别出的包裹点云,判断所述货垛的顶层是否为满垛层;若所述顶层为满垛层,基于所识别出的包裹点云,确定所述顶层的顶层位姿,并从预先设置的各个模板位姿中,选取与所述顶层位姿相匹配的模板位姿,作为第一位姿;基于所识别出的包裹点云,确定针对所述顶层中所包括的所有包裹进行整体抓取的抓取位姿;控制机械臂按照所述抓取位姿和所述第一位姿对应的抓取方式,将所述顶层中包括的所有包裹从所述货垛上整体抓取至指定位置。可见,通过本方案,可以提高拆垛效率。

Description

一种拆垛方法、系统、装置、设备以及存储介质
技术领域
本申请涉及机器人技术领域,特别是涉及一种拆垛方法、系统、装置、设备以及存储介质。
背景技术
在物流场景中,为保证各个包裹被准确的送往目的地,需要对包裹进行分拣。然而包裹集散地每天有大量包裹需要分拣,为提高分拣效率、节省人力成本,一般由叉车将包裹垒放形成的货垛运输至分拣设备附近,然后机械臂将货垛中的包裹一个一个的取下,放到分拣设备上进行分拣。
上述机械臂取下货垛中的包裹并放到分拣设备上的过程称为拆垛。
由于上述拆垛方式中机械臂是一个包裹一个包裹取下,拆垛效率低下,尤其是货垛中包裹较多的情况下,拆垛效率更低。
发明内容
本申请实施例的目的在于提供一种拆垛方法、系统、装置、设备以及存储介质,以提高拆垛效率。具体技术方案如下:
第一方面,本申请实施例提供了一种拆垛方法,所述方法包括:
从货垛上方的3D相机采集的货垛点云中识别各个包裹的包裹点云;
基于所识别出的包裹点云,判断所述货垛的顶层是否为满垛层;
若所述顶层为满垛层,基于所识别出的包裹点云,确定所述顶层的顶层位姿,并从预先设置的各个模板位姿中,选取与所述顶层位姿相匹配的模板位姿,作为第一位姿;其中,所述顶层位姿包括所述顶层中所包括各个包裹的位姿数据;每一模板位姿与满垛层中包裹的一种排布方式相对应,且每一模板位姿对应有预设的抓取方式,所述模板位姿包括满垛层中所包括各个包裹的位姿数据;
基于所识别出的包裹点云,确定针对所述顶层中所包括的所有包裹进行整体抓取的抓取位姿;
控制机械臂按照所述抓取位姿和所述第一位姿对应的抓取方式,将所述顶层中包括的所有包裹从所述货垛上整体抓取至指定位置。
第二方面,本申请实施例提供了一种拆垛系统,包括3D相机、控制设备和机械臂;
所述3D相机,用于采集位于其下方视野范围内的货垛的货垛点云;
所述控制设备,用于从所述3D相机采集的货垛点云中识别各个包裹的包裹点云;基于所识别出的各个包裹的包裹点云,判断所述货垛的顶层是否为满垛层;若所述顶层为满垛层,基于所识别出的包裹点云,确定所述顶层的顶层位姿,并从预先设置的各个模板位姿中,选取与所述顶层位姿相匹配的模板位姿,作为第一位姿;基于所识别出的包裹点云,确定针对所述顶层中所包括的所有包裹进行整体抓取的抓取位姿;其中,所述顶层位姿包括所述顶层中所包括各个包裹的位姿数据;每一模板位姿与满垛层中包裹的一种排布方式相对应,且每一模板位姿对应有预设的抓取方式,所述模板位姿包括满垛层中所包括各个包裹的位姿数据;
所述机械臂,用于按照所述控制设备确定的抓取位姿和所述第一位姿对应的抓取方式,将所述顶层中所包括的所有包裹从所述货垛上整体抓取至指定位置。
第三方面,本申请实施例提供了一种拆垛装置,所述装置包括:
识别模块,用于从货垛上方的3D相机采集的货垛点云中识别各个包裹的包裹点云;
判断模块,用于基于所识别出的包裹点云,判断所述货垛的顶层是否为满垛层;
选取模块,用于若所述顶层为满垛层,基于所识别出的包裹点云,确定所述顶层的顶层位姿,并从预先设置的各个模板位姿中,选取与所述顶层位姿相匹配的模板位姿,作为第一位姿;其中,所述顶层位姿包括所述顶层中所包括各个包裹的位姿数据;每一模板位姿与满垛层中包裹的一种排布方式相对应,且每一模板位姿对应有预设的抓取方式,所述模板位姿包括满垛层中所包括各个包裹的位姿数据;
确定模块,用于基于所识别出的包裹点云,确定针对所述顶层中所包括的所有包裹进行整体抓取的抓取位姿;
控制模块,用于控制机械臂按照所述抓取位姿和所述第一位姿对应的抓取方式,将所述顶层中包括的所有包裹从所述货垛上整体抓取至指定位置。
第四方面,本申请实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的拆垛方法的步骤。
第五方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的拆垛方法的步骤。
本申请实施例有益效果:
本申请实施例提供的方案,在得到各个包裹的包裹点云后,先判断货垛的顶层是否为满垛层;若顶层为满垛层,根据各个包裹的包裹点云确定顶层位姿,并从预设的各个模板位姿中选取与顶层位姿相匹配的模板位姿,作为第一位姿;接着,基于所识别出的包裹点云,确定针对顶层中所包括的所有包裹进行整体抓取的抓取位姿。由于每一模板位姿对应有预设的抓取方式,因此可以控制机械臂按照所确定的抓取位姿和第一位姿对应的抓取方式,将顶层中包括的所有包裹从货垛上整体抓取至指定位置。这样,机械臂在进行拆垛时,一次可以抓取一层的包裹进行拆垛,从而可以提高拆垛效率。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本申请实施例提供的一种拆垛方法的流程图;
图2为本申请实施例提供的包裹的排布方式的一种示意图;
图3为实现本申请实施例提供的一种确定模板位姿的方式的流程图;
图4为实现本申请实施例提供的拆垛方法中的步骤S103的流程图;
图5为本申请实施例提供的一种拆垛系统的结构示意图;
图6为本申请实施例提供的一种检测ROI和基准面ROI的区域范围的示意图;
图7为本申请实施例提供的一种3DBox ROI的区域范围的示意图;
图8为本申请实施例提供的一种拆垛场景中的货垛图像的示意图;
图9为本申请实施例提供的一种拆垛装置的结构示意图;
图10为实现本申请实施例提供的拆垛方法的电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
首先,对本申请实施例涉及的专业术语进行介绍。
托盘:物流行业用于摆放包裹、使用叉车进行搬运的物件。
货垛:又称为码垛,由包裹垒放形成。
抓取位姿:在机械臂视觉定位下,机械臂可抓取的坐标。
下面,对本申请实施例所提供的一种拆垛方法进行介绍。
本申请实施例所提供的一种拆垛方法,应用于控制设备,该控制设备可以是各类电子设备,该电子设备可以是个人电脑、服务器、以及其他具有数据处理能力的设备。另外,可以理解的是,本申请实施例提供的拆垛方法可以通过软件、硬件或软硬件结合的方式实现。
其中,本申请实施例所提供的一种拆垛方法,可以包括:
从货垛上方的3D相机采集的货垛点云中识别各个包裹的包裹点云;
基于所识别出的包裹点云,判断所述货垛的顶层是否为满垛层;
若所述顶层为满垛层,基于所识别出的包裹点云,确定所述顶层的顶层位姿,并从预先设置的各个模板位姿中,选取与所述顶层位姿相匹配的模板位姿,作为第一位姿;其中,所述顶层位姿包括所述顶层中所包括各个包裹的位姿数据;每一模板位姿与满垛层中包裹的一种排布方式相对应,且每一模板位姿对应有预设的抓取方式,所述模板位姿包括满垛层中所包括各个包裹的位姿数据;
基于所识别出的包裹点云,确定针对所述顶层中所包括的所有包裹进行整体抓取的抓取位姿;
控制机械臂按照所述抓取位姿和所述第一位姿对应的抓取方式,将所述顶层中包括的所有包裹从所述货垛上整体抓取至指定位置。
本申请实施例提供的方案,在得到各个包裹的包裹点云后,先判断货垛的顶层是否为满垛层;若顶层为满垛层,根据各个包裹的包裹点云确定顶层位姿,并从预设的各个模板位姿中选取与顶层位姿相匹配的模板位姿,作为第一位姿;接着,基于所识别出的包裹点云,确定针对顶层中所包括的所有包裹进行整体抓取的抓取位姿。由于每一模板位姿对应有预设的抓取方式,因此可以控制机械臂按照所确定的抓取位姿和第一位姿对应的抓取方式,将顶层中包括的所有包裹从货垛上整体抓取至指定位置。这样,机械臂在进行拆垛时,一次可以抓取一层的包裹进行拆垛,从而可以提高拆垛效率。
下面结合附图,对本申请实施例所提供的拆垛方法进行介绍。
如图1所示,本申请实施例所提供的拆垛方法,包括步骤S101-S105:
S101,从货垛上方的3D相机采集的货垛点云中识别各个包裹的包裹点云;
本实施例中,3D(三维)相机架设在货垛上方,用于采集位于其下方视野范围内的货垛的货垛点云。示例性的,在实际场景中,包裹垒放在托盘上形成货垛,通过叉车将托盘及其上方摆放的货垛搬运到3D相机的视野范围内,以利用3D相机对货垛进行扫描,得到货垛点云。然后,利用目标检测算法,对货垛点云中的各个包裹进行识别,以从货垛点云中识别出各个包裹的包裹点云。
可以理解的是,在实际应用中,由于货垛摆放在托盘上,因此3D相机对货垛进行扫描采集点云时,也会采集到托盘的点云。为了从3D相机采集得到的点云中获取货垛点云,可以利用ROI(Region of Interes,感兴趣区域)对3D相机采集得到的点云进行分割,以分割出货垛点云。示例性的,利用ROI对3D相机采集得到的点云进行分割的方式可以是:利用预设的3DBox(三维盒子)ROI或者预设的基准面ROI将货垛的点云和托盘的点云分割开,以得到货垛点云和托盘点云。其中,预设的3DBox ROI和预设的基准面ROI可以是相关技术人员根据经验所设定的、可以分割出货垛点云的区域。
另外,由于点云中包括三维坐标以及RGB(Red Green Blue,红绿蓝)颜色信息,因此,在获得3D相机采集的货垛点云后,可以利用预先训练完成的、用于进行包裹识别的目标检测算法从货垛点云中识别出各个包裹的包裹点云,也就是根据货垛点云中的RGB颜色信息从货垛点云中识别出各个包裹的区域,然后将各个包裹的区域内的点云识别为各个包裹的包裹点云。由于3D相机从货垛的上方对货垛进行扫描,因此从货垛点云中所识出的各个包裹的包裹点云为俯视视角下该货垛中的各个包裹的包裹点云。
需要说明的是,本申请实施例对如何获取3D相机采集的货垛点云的方式并不限定,例如,可以直接采用预先训练完成的、用于进行货垛识别的目标检测算法对3D相机采集得到的点云进行检测,以从3D相机采集得到的点云中识别出货垛点云,这都是合理的。并且,本申请实施例对进行包裹识别以及货垛识别所采用的目标检测算法的具体算法类型并不限定,例如目标检测算法可以是SSD(Single Shot MultiBox Detector,单次多边框检测)、Fast R-CNN(Fast Region-based Convolutional Network,一种基于区域卷积网络的快速目标检测方法),等等。
S102,基于所识别出的包裹点云,判断货垛的顶层是否为满垛层;
本实施例中,满垛层为按照预定摆放规则摆放满包裹的包裹层,也就是,满垛层中摆放有预定数量的包裹,且该预定数量的包裹摆放成预定形状。示例性的,在实际应用中,该预定形状通常为规则的形状,例如长方形、正方形,等等;该预定数量可以是生产过程中由相关技术人员进行设定的,例如该预定数量可以设置为5、10,等等。
可以理解的是,在针对货垛进行拆垛时,若顶层不为满垛层,则顶层的所有包裹形成的整体形状为不规则的形状,此时,难以利用机械臂对顶层的所有包裹进行整体抓取。因此,为了便于利用机械臂对顶层的所有包裹进行整体抓取,可以先判断货垛的顶层是否为满垛层。并且,由于步骤S101所识出的包裹点云为俯视视角下该货垛中的各个包裹的包裹点云,因此,可以根据所识别出的包裹点云判断货垛的顶层是否为满垛层。
可选地,在一种实现方式中,基于所识别出的包裹点云,判断货垛的顶层是否为满垛层,包括步骤A1-A4:
A1,判断所识别出的包裹点云所表征的包裹数量是否为预设数值;
A2,若否,则确定顶层不为满垛层;
A3,若是,基于所识别出的包裹点云,确定各个包裹的高度,并基于所确定的各个包裹的高度判断是否存在与其他包裹之间的高度差超过预定阈值的包裹;
A4,若存在,则确定顶层不为满垛层,否则,确定顶层为满垛层。
本实现方式中,预设数值为预先设置的满垛层中应摆放包裹的数量。若所识别出的包裹点云所表征的包裹数量不为预设数值,则可以直接确定顶层不为满垛层。另外,由于所识出的各个包裹的包裹点云为俯视视角下该货垛中的各个包裹的包裹点云,因此,若所识别出的包裹点云所表征的包裹数量为预设数值,则包括两种情况:一种为满垛层;另一种为所识别出的包裹点云所表征的包裹中包括顶层和次顶层的包裹。此时,还可以基于所识别出的每一包裹的包裹点云,确定该包裹的高度,即该包裹在3D相机的相机坐标系下的深度。若存在与其他包裹之间的高度差超过预定阈值的包裹,则确定顶层不为满垛层,否则,确定顶层为满垛层。示例性的,该预定阈值可以是货垛中的任一包裹的自身高度的1/3、1/2,等等。
示例性的,基于所识别出的每一包裹的包裹点云确定该包裹的高度的方式可以是:针对每一包裹,将该包裹点云中的各个点的深度坐标值的均值作为该包裹的高度。需要说明的是,本申请实施例对基于所识别出的包裹点云确定各个包裹的高度的方式并不限定。
另外,本申请实施例对判断货垛的顶层是否为满垛层的方式并不限定。例如,还可以直接通过判断各个包裹点云中的具有最大高度的第一目标点和具有最小高度的第二目标点之间的高度差是否超过预定阈值,若超过则确定顶层不为满垛层,否则确定顶层为满垛层,这都是合理的。
S103,若顶层为满垛层,基于所识别出的包裹点云,确定顶层的顶层位姿,并从预先设置的各个模板位姿中,选取与顶层位姿相匹配的模板位姿,作为第一位姿;其中,顶层位姿包括顶层中所包括各个包裹的位姿数据;每一模板位姿与满垛层中包裹的一种排布方式相对应,且每一模板位姿对应有预设的抓取方式,模板位姿包括满垛层中所包括各个包裹的位姿数据;
本实施例中,预先设置有多个模板位姿,且每一模板位姿对应有预设的抓取方式,该预设的抓取方式为使得机械臂可以对具有该模板位姿的一层包裹稳定地进行抓取的抓取方式。
示例性的,如图2所示,若满垛层中包裹的排布方式包括排布方式1和排布方式2,则可以设置模板位姿1和模板位姿2。其中,模板位姿1中包括按照排布方式1进行排布的各个包裹的位姿数据,模板位姿2中包括按照排布方式2进行排布的各个包裹的位姿数据。此时,模板位姿1对应的抓取方式可以为机械臂的末端抓手抓取该包裹层的上侧边和下侧边的方式;模板2对应的抓取方式可以为机械臂的末端抓手抓取该包裹层的左侧边和右侧边的方式。示例性的,在一种拆垛场景中,机械臂的末端抓手为由相互对立的两侧平板形成的夹板,且该两侧平板为一长一短。此时,模板位姿1对应的抓取方式为:长板位于该包裹层的上侧边,短板位于该包裹层的下侧边的抓取方式;模板位姿2对应的抓取方式为:长板位于该包裹层的右侧边、短板位于该包裹层的左侧边的抓取方式。
需要说明的是,为了方案布局清晰,在下述实施例中对该多个模板位姿的设置方式进行介绍,这里不再赘述。
另外,可以理解的是,若顶层为满垛层,则所识别出的包裹点云为顶层的各个包裹的包裹点云。基于所识别出的包裹点云,可以确定顶层中各个包裹的位姿数据,从而得到顶层位姿。由于每一模板位姿对应有预设的抓取方式,在得到顶层位姿后,从预先设置的各个模板位姿中选取与顶层位姿相匹配的模板位姿,这样,后续可以利用该相匹配的模板位姿对应的抓取方式对该顶层的所有包裹进行整体抓取。其中,与顶层位姿相匹配的模板位姿为:与顶层位姿的差异最小的模板位姿。需要说明的是,为了方案布局清晰,在下述实施例中对基于所识别出的包裹点云,确定顶层的顶层位姿,并从预先设置的各个模板位姿中,选取与顶层位姿相匹配的模板位姿的实现方式进行介绍,这里不再赘述。
S104,基于所识别出的包裹点云,确定针对顶层中所包括的所有包裹进行整体抓取的抓取位姿;
由于顶层为满垛层,所识别出的包裹点云为顶层的各个包裹的包裹点云,因此,基于所识别出的包裹点云可以确定顶层中所包括所有包裹构成的整体形状,在确定出顶层所有包裹构成的整体形状后,即可根据该整体形状确定对所有包裹进行抓取的抓取位姿。
可选地,在一种实现方式中,基于所识别出的包裹点云,确定针对顶层中所包括的所有包裹进行整体抓取的抓取位姿,包括步骤B1-B3:
B1,基于所识别出的包裹点云,确定货垛的上表面的平面轮廓;
B2,确定平面轮廓的中心点坐标以及旋转角度;
B3,将所确定的中心点坐标以及旋转角度,确定为针对顶层中所包括的所有包裹进行整体抓取的抓取位姿。
本实现方式中,可以对所识别出的各个包裹的包裹点云进行点云融合,也就是将各个包裹的包裹点云进行合并,得到一整块平面点云。在得到平面点云后,可以利用点云边缘检测算法,从平面点云中提取出货垛的上表面的边缘信息,也就是识别出货垛的上表面的各个边缘点。然后,将所识别出的边缘点构成的轮廓确定为上表面的平面轮廓。示例性的,点云边缘检测算法可以是Canny(一种多级边缘检测算法)、Sobel(一种用于边缘检测的线性滤波器),等等,本申请实施例对此并不限定。
在确定上表面的平面轮廓后,可以计算平面轮廓的中心点坐标以及旋转角度。示例性的,若平面轮廓的上下方向为Y轴方向,左右方向为X轴方向,则可以将平面轮廓中的上、下边上各个边缘点的Y坐标的均值,作为中心点坐标中的Y坐标,将平面轮廓中的左、右边上各个边缘点的X坐标的均值,作为中心点坐标中的X坐标,得到中心点坐标。另外,在3D相机的相机坐标系下,可以预先设定旋转角度为0的基准矩形,然后计算平面轮廓相对于该基准矩形的旋转角度,作为平面轮廓的旋转角度。示例性的,若旋转角度为0的基准矩形为:矩形中心点到该矩形的长边的垂线的方向为Y轴方向的一矩形,则可以通过计算该平面轮廓的中心点到该平面轮廓的长边的垂线与Y轴之间的夹角,将该夹角确定为平面轮廓的旋转角度。
可以理解的是,机械臂对顶层中的所有包裹进行整体抓取时,需要确定末端爪手的抓取位姿。在确定出平面轮廓的中心点坐标以及旋转角度后,可以将所确定的中心点坐标和旋转角度,确定为机械臂针对顶层中所包括的所有包裹进行整体抓取的抓取位姿。这样,后续可以通过控制机械臂按照该抓取位姿对顶层中所有包裹进行整体抓取。也就是,控制机械臂的末端爪手按照该抓取位姿进行位姿调整,以在调整到该抓取位姿下后,对顶层中所有包裹进行整体抓取。
需要说明的是,本申请实施例对确定针对顶层中所包括的所有包裹进行整体抓取的抓取位姿的方式并不限定,例如,还可以将平面轮廓的任一边上的中点坐标以及该平面轮廓的旋转角度确定为机械臂针对顶层中所有包裹进行整体抓取的抓取位姿,这都是合理的。
S105,控制机械臂按照抓取位姿和第一位姿对应的抓取方式,将顶层中包括的所有包裹从货垛上整体抓取至指定位置。
本实施例中,在确定出抓取位姿和第一位姿后,即可控制机械臂按照该抓取位姿以及第一位姿对应的抓取方式,将顶层中包括的所有包裹从货垛上整体抓取至指定位置。示例性的,机械臂可以按照所确定的抓取位姿调整末端爪手的位姿,使得末端抓手的中心点移动到所确定的中心点坐标的位置,然后按照所确定出的旋转角度进行旋转,以使得末端抓手调整至所确定出的抓取位姿下。然后,根据第一位姿对应的抓取方式,调整末端抓手的两侧在抓取顶层的所有包裹时分别应位于顶层所有包裹的侧边的位置。
示例性的,若顶层的所有包裹按照排布方式1进行排布,且此时所计算出的针对顶层中的所有包裹进行整体抓取抓取位姿为:中心点坐标为(10,10),旋转角度为15°;则可以控制机械臂按照该抓取位姿调整末端抓手的位姿,使得末端抓手的中心点移动到(10,10)的坐标位置,且末端抓手的旋转角度为15°。可以理解的是,由于机械臂的末端抓手的长度有限,为了能够将顶层中所有包裹整体抓取,在将末端抓手的位姿调整到抓取位姿后,还需要考虑顶层中各个包裹的排布方式,以使得机械臂能够稳定地将顶层中所有包裹整体抓取。因此,在将末端抓手的位姿调整到抓取位姿后,还可以按照第一位姿对应的抓取方式调整末端抓手的两侧分别应位于顶层所有包裹的侧边的位置。此时,由于顶层的所有包裹按照排布方式1进行排布,排布方式1对应的抓取方式为末端抓手的两侧分别抓取上、下侧边,则在将末端抓手的位姿调整到抓取位姿后,还可以将末端抓手的两侧分别调整至顶层所有包裹的上、下侧边。
示例性的,在一种拆垛场景中,若机械臂的末端抓手为由相互对立的两侧平板形成的夹板,且该两侧平板为一长一短。此时,排布方式1对应的抓取方式为:长板位于该顶层所有包裹的上侧边、短板位于该顶层所有包裹的下侧边的抓取方式。则在将末端抓手的位姿调整到抓取位姿后,将末端抓手中的长板调整至顶层所有包裹的上侧边,将末端抓手中的短板调整至顶层所有包裹的下侧边。
另外,该指定位置可以为任一预定位置,在实际拆垛场景中,该指定位置可以是传送带上的一位置,通过传送带将拆卸下的包裹运输至分拣设备。可以理解的是,由于本方案中机械臂在进行拆垛时,一次可以抓取一层的包裹进行拆垛,因此可以提高拆垛效率。并且,在进行包裹分拣时,拆垛是分拣之前的步骤,因此提高拆垛效率也会进一步提高分拣效率。另外,需要说明的是,机械臂将货垛的顶层中包括的所有包裹从货垛上整体抓取至指定位置后,3D相机可以继续对新的顶层进行点云采集,即返回执行步骤S101,直至整个货垛拆垛完成。
本申请实施例提供的方案,在得到各个包裹的包裹点云后,先判断货垛的顶层是否为满垛层;若顶层为满垛层,根据各个包裹的包裹点云确定顶层位姿,并从预设的各个模板位姿中选取与顶层位姿相匹配的模板位姿,作为第一位姿;接着,基于所识别出的包裹点云,确定针对顶层中所包括的所有包裹进行整体抓取的抓取位姿。由于每一模板位姿对应有预设的抓取方式,因此可以控制机械臂按照所确定的抓取位姿和第一位姿对应的抓取方式,将顶层中包括的所有包裹从货垛上整体抓取至指定位置。这样,机械臂在进行拆垛时,一次可以抓取一层的包裹进行拆垛,从而可以提高拆垛效率。
可选地,在本申请的另一实施例中,针对每一货垛样品,按照以下方式确定模板位姿,其中,货垛样品的顶层为满垛层,不同货垛样品的顶层中包裹的排布方式不同。如图3所示,确定模板位姿的方式包括步骤S301-S304:
S301,获取货垛样品上方的3D相机采集的第一样本点云;
本实施例中,控制设备可以周期性的向3D相机发送数据获取请求,以从3D相机中获得第一样本点云;或者,3D相机在采集到第一样本点云后主动向控制设备进行上报,以使得控制设备获得第一样本点云,这都是合理的。本申请实施例对获取第一样本点云的方式并不限定。
示例性的,在实际应用场景中,3D相机架设在货垛样品上方,货垛样品摆放在托盘上,利用叉车叉取托盘以将托盘以及货垛样品运输至3D相机的视野范围内,以利用3D相机对货垛样品进行扫描,从而采集得到第一样本点云。其中,货垛样品可以是实际拆垛场景中的任一货垛,且不同货垛样品的顶层中的各个包裹具有不同的排布方式。这样,可以采集到不同的排布方式下、顶层中的各个包裹的位姿数据,从而后续可以确定出多种不同的模板位姿。
S302,基于预先设置的感兴趣区域,将第一样本点云中的货垛点云与托盘点云分离,得到货垛样品的第二样本点云;
可以理解的是,由于货垛摆放在托盘上,因此3D相机对货垛样品进行扫描采集得到的第一样本点云中,包括货垛点云以及托盘点云。本实施例中,利用ROI对3D相机采集得到的第一样本点云进行分割,以将第一样本点云中的货垛点云与托盘点云分离,得到货垛样品的第二样本点云。需要说明的是,利用ROI对3D相机采集得到的第一样本点云进行分割的方式可以是:利用预设的3Dbox ROI或者预设的基准面ROI将第一样本点云中货垛点云和托盘点云分离。其中,预设的3DBox ROI和预设的基准面ROI可以是相关技术人员根据经验所设定的、可以分割出货垛样品的第二样本点云的区域。
S303,从第二样本点云中识别各个包裹的包裹点云,作为第三样本点云;
S304,基于第三样本点云,确定货垛样品的顶层中所包括的包裹的位置数据和姿态数据,作为一模板位姿。
由于点云中包括三维坐标以及RGB颜色信息,因此,在得到第二样本点云后,可以利用预先训练完成的、用于进行包裹识别的目标检测算法从第二样本点云中识别出各个包裹的包裹点云,作为第三样本点云。示例性的,该目标检测算法可以是SSD、Fast R-CNN,等等。
由于3D相机从货垛样品的上方对货垛样品进行扫描,因此从第二样本点云中中所识出的各个包裹的包裹点云为俯视视角下该货垛样品中的各个包裹的包裹点云。由于第三样本点云为俯视视角下该货垛样品中的各个包裹的包裹点云,因此可以根据第三样本点云确定货垛样品的顶层中所包括的包裹的位置数据和姿态数据。
示例性的,包裹的位置数据可以为包裹的中心点坐标、角点坐标等等,姿态数据可以为包裹的旋转角度。示例性的,在得到第三样本点云后,针对第三样本点云中的每一包裹点云,可以利用点云边缘检测算法,从包裹点云中提取出该包裹的边缘信息,也就是识别出包裹的各个边缘点;然后,根据所识别出的边缘点构成的包裹轮廓,确定该包裹的中心点坐标并作为该包裹的位置数据。若预设的旋转角度为0的基准矩形为:矩形中心点到该矩形的长边的垂线的方向为Y轴方向的一矩形,则可以通过计算该包裹轮廓的中心点到该包裹轮廓的长边的垂线与Y轴之间的夹角,将该夹角确定为包裹轮廓的旋转角度,也就是该包裹的姿态数据。这样,可以得到货垛样品的顶层中所包括的包裹的位置数据和姿态数据,从而得到一模板位姿。示例性的,点云边缘检测算法可以是Canny、Sobel,等等。
需要说明的是,本申请实施例对该模板位姿的设置方式并不限定,例如在实际应用中,该模板位姿可以由相关技术人员根据经验自行设置,这都是合理的。
可见,通过本方案,可以根据拆垛场景中包裹的实际摆放情况设置模板位姿,从而可以提高实际拆垛流程中,货垛的顶层位姿与模板位姿的匹配概率,进而保证货垛的正常拆卸。
可选地,在本申请的另一实施例中,位姿数据包括:位置数据以及姿态数据;
相应地,在本实施例中,如图4所示,上述步骤S103中基于所识别出的包裹点云,确定顶层的顶层位姿,并从预先设置的各个模板位姿中,选取出与顶层位姿相匹配的模板位姿,作为第一位姿,包括步骤S1031-S1034:
S1031,基于所识别出的包裹点云,确定顶层中所包括的包裹的位置数据以及姿态数据,得到顶层位姿;
示例性的,包裹的位置数据可以为包裹的中心点坐标、角点坐标等等,姿态数据可以为包裹的旋转角度。基于所识别出的包裹点云,确定顶层中各个包裹的位置和姿态数据的方式可以是:针对每一包裹点云,利用点云边缘检测算法,从包裹点云中提取出该包裹的边缘信息,也就是识别出包裹的各个边缘点;然后,根据所识别出的边缘点构成的包裹轮廓,确定该包裹的中心点坐标并作为该包裹的位置数据。若预设的旋转角度为0的基准矩形为:矩形中心点到该矩形的长边的垂线的方向为Y轴方向的一矩形,则可以通过计算该包裹轮廓的中心点到该包裹轮廓的长边的垂线与Y轴之间的夹角,将该夹角确定为包裹轮廓的旋转角度,也就是该包裹的姿态数据。这样,可以得到顶层中各个包裹的位置数据以及姿态数据,即得到顶层位姿。
S1032,针对每一模板位姿,分别计算该模板位姿中所包括的包裹的位置数据与顶层位姿中所包括的包裹的位置数据之间的第一差异值,以及,模板位姿中所包括的包裹的姿态数据与顶层位姿中所包括的包裹的姿态数据的第二差异值;
由于与顶层位姿相匹配的模板位姿为:与顶层位姿的差异最小的模板位姿,因此,针对每一模板位姿,可以计算该模板位姿中所包括的包裹的位置数据与顶层位姿中所包括的包裹的位置数据之间的第一差异值,以及,模板位姿中所包括的包裹的姿态数据与顶层位姿中所包括的包裹的姿态数据的第二差异值。这样,后续可以根据该第一差异值和第二差异值确定每一模板位姿与顶层位姿之间的总差异,从而可以从各个模板位姿中确定出与顶层位姿差异最小的模板位姿。
可选地,在一种实现方式中,分别计算该模板位姿中所包括的包裹的位置数据与顶层位姿中所包括的包裹的位置数据的第一差异值,以及,该模板位姿中所包括的包裹的姿态数据与顶层位姿中所包括的包裹的姿态数据的第二差异值,包括步骤C1-C3:
C1,针对每一候选对应关系,计算顶层中的每一第一包裹与第二包裹的位置数据之间的距离之和,作为距离差异值,以及,计算顶层中的每一第一包裹与第二包裹的姿态数据之间的角度差之和,作为角度差异值;其中,每一候选对应关系用于描述各个第一包裹与该模板位姿描述的各个包裹之间的对应关系,第二包裹为:针对该候选对应关系、该模版位姿描述的包裹中与第一包裹对应的包裹;
可以理解的是,由于在计算模板位姿中所包括的包裹的位置数据与顶层位姿中所包括的包裹的位置数据的第一差异值,或者,计算模板位姿中所包括的包裹的姿态数据与顶层位姿中所包括的包裹的姿态数据的第二差异值时,若计算差异的两包裹的对应关系不同,则所计算出的差异值会有所不同。
例如,若顶层中的所有包裹为{包裹A1,包裹A2,包裹A3,包裹A4,包裹A5},模板位姿所描述的所有包裹为{包裹B1,包裹B2,包裹B3,包裹B4,包裹B5},则可以将计算包裹A1与包裹B1之间的距离D1,包裹A2与包裹B2之间的距离D2,包裹A3与包裹B3之间的距离D3,包裹A4与包裹B4之间的距离D4,包裹A5与包裹B5之间的距离D5,并将D1、D2、D3、D4、D5的和值,作为距离差异值。此时,候选对应关系为:包裹A1对应包裹B1,包裹A2对应包裹B2,包裹A3对应包裹B3,包裹A4对应包裹B4,包裹A5对应包裹B5。另外,还可以计算包裹A1与包裹B5之间的距离D6,包裹A2与包裹B4之间的距离D7,包裹A3与包裹B3之间的距离D3,包裹A4与包裹B2之间的距离D8,包裹A5与包裹B1之间的距离D9,并将D6、D7、D3、D8、D9的和值,作为距离差异值。此时,候选对应关系为:包裹A1对应包裹B5,包裹A2对应包裹B4,包裹A3对应包裹B3,包裹A4对应包裹B2,包裹A5对应包裹B1。
因此,在本实现方式中,针对每一候选对应关系,计算顶层中的每一第一包裹与第二包裹的位置数据之间的距离之和,作为距离差异值,以及,计算顶层中的每一第一包裹与第二包裹的姿态数据之间的角度差之和,作为角度差异值。这样,可以得到每一候选对应关系下的距离差异值和角度差异值。
C2,基于每一候选对应关系对应的距离差异值和角度差异值,计算该候选对应关系对应的总差异值;
C3,将所对应总差异值最小的候选对应关系所对应的距离差异值和角度差异值,分别确定为第一差异值和第二差异值。
本实现方式中,可以预先设置针对距离差异值和角度差异值的权重参数,然后基于预设的权重参数对每一候选对应关系对应的距离差异值和角度差异值进行加权求和,得到该候选对应关系对应的总差异值。在得到各个候选对应关系对应的总差异值之后,将所对应总差异值最小的候选对应关系所对应的距离差异值和角度差异值,分别确定为第一差异值和第二差异值。
需要说明的是,本申请实施例对计算该第一差异值和第二差异值的方式并不限定。例如,还可以从顶层中选取一包裹,通过循环匹配的方式,分别计算该包裹与该模板位姿所描述的各个包裹之间的距离和角度差,将所计算出的距离和角度差的加权和最小的包裹确定为该包裹对应的目标包裹。然后,从顶层中选取另一包裹,重复上述循环匹配的步骤,直至顶层中所有包裹全部匹配完成。此时每一包裹与所对应目标包裹之间的距离之和即为第一差异值,每一包裹与所对应目标包裹之间的角度差之和即为第二差异值。
S1033,利用预设的权重参数对每一模板位姿对应的第一差异值和第二差异值进行加权求和,得到每一模板位姿对应的第三差异值;
本实施例中,预设的权重参数可以包括针对第一差异值设置的第一权重和针对第二差异值设置的第二权重。示例性的,第一权重可以为0.7,第二权重可以为0.3。需要说明的是,该预设的权重参数可以由相关技术人员根据经验进行设定,本申请实施例对此并不限定。
S1034,将所对应第三差异值最小的模板位姿,确定为第一位姿。
可以理解的是,模板位姿对应的第三差异值越小表征该模板位姿与顶层位姿中的包裹的排布方式越接近,此时可采用相同的抓取方式。因此,可以将所对应差异值最小的模板位姿,确定为第一位姿。
需要说明的是,在其他实现方式中,还可以预设第三差异值的容忍度范围,若第三差异值超过该容忍度范围,则表明各个预设的模板位姿与顶层位姿的差异均较大,此时可以进行报警处理。若第三差异值在该容忍度范围内,将第三差异值最小的模板位姿,确定为第一位姿。这样,可以保证所确定的第一位姿对应的抓取方式可以适用于针对顶层的所有包裹进行整体抓取。
可见,通过本方案,可以从各个预设的模板位姿中,准确的确定出与顶层位姿相匹配的模板位姿。
可选地,在本申请的另一实施例中,在图1所示实施例的基础上,所述方法还包括:
若顶层不为满垛层,进行报警处理。
本实施例中,若判断出货垛的顶层不为满垛层,则顶层的包裹的形状不规则,此时难以通过机械臂对顶层的所有包裹进行整体抓取。因此,进行报警处理,以使相关工作人员进行接管。示例性的,可以通过控制设备警示灯等工业告警设备工作,以进行报警处理。
可见,通过本方案,能够及时对不能利用机械臂进行整体抓取的货垛进行报警,以使人工进行接管,从而保证拆垛过程的正常进行。
相应上述方法实施例,本申请实施例还提供了一种拆垛系统,如图5所示,包括3D相机510、控制设备520和机械臂530;
所述3D相机510,用于采集位于其下方视野范围内的货垛的货垛点云;
所述控制设备520,用于从所述3D相机采集的货垛点云中识别各个包裹的包裹点云;基于所识别出的各个包裹的包裹点云,判断所述货垛的顶层是否为满垛层;若所述顶层为满垛层,基于所识别出的包裹点云,确定所述顶层的顶层位姿,并从预先设置的各个模板位姿中,选取与所述顶层位姿相匹配的模板位姿,作为第一位姿;基于所识别出的包裹点云,确定针对所述顶层中所包括的所有包裹进行整体抓取的抓取位姿;其中,所述顶层位姿包括所述顶层中所包括各个包裹的位姿数据;每一模板位姿与满垛层中包裹的一种排布方式相对应,且每一模板位姿对应有预设的抓取方式,所述模板位姿包括满垛层中所包括各个包裹的位姿数据;
所述机械臂530,用于按照所述控制设备确定的抓取位姿和所述第一位姿对应的抓取方式,将所述顶层中所包括的所有包裹从所述货垛上整体抓取至指定位置。
需要说明的是,关于系统中的各个设备的功能在上述方法实施例中进行了介绍,这里不再赘述。
为了更好的理解本方案,下面结合一个具体的示例对本申请实施例所提供的拆垛方法进行阐述。
目前,物流行业内的拆垛方式大多是采用机械臂一个一个的将包裹从货垛上抓取下来,这样,拆垛效率低下。为了提高拆垛效率,本示例提供了一种利用机械臂对整层包裹进行整体抓取的拆垛方式,包括预处理阶段和拆垛阶段;其中,预处理阶段用于设置多个模板位姿,每一模板位姿的设置过程包括:
(1)在货垛样品上方架设3D相机,利用3D相机进行采图,并利用采集到的货垛图像进行模型训练,以训练得到用于识别货垛图像中的各个包裹的包裹检测模型(对应于上文中能够进行包裹识别的目标检测算法)。其中,3D相机采集的货垛图像为点云,且点云中包括三维坐标和RGB颜色信息。
(2)绘制检测ROI用于指定识别范围,并使用3DBox ROI或者基准面ROI将包裹的点云和托盘的点云进行分割,也就是,在点云分割工具中预先设置检测ROI以及3DBox ROI或者基准面ROI,以利用3DBox ROI或者基准面ROI将3D相机采集的点云分割为托盘点云和包裹点云。其中,预先设置的检测ROI和基准面ROI的区域范围可以如图6所示,设置完成后,进行点云分割处理时会重点关注检测ROI的区域范围内的点云。并且,基准面ROI用于进行点云分割,该基准面ROI的区域范围内的点云为货垛点云。在该检测ROI的区域内,利用基准面ROI将托盘点云和包裹点云分割开。另外,预先设置的3DBox ROI的区域范围如图7所示,该图中的立方体区域为3DBox ROI的区域范围。通过在点云分割工具中对该3DBox ROI进行旋转和移动等操作,可以将货垛点云提取出来。示例性的,点云分割工具可以是PCL(PointCloud Library,一种广泛使用的开源点云库)等用于处理点云的工具。
(3)通过3D相机获取的点云,确定货垛样品的顶层中的各个包裹的位姿情况。其中,货垛样品为实际拆垛场景中的各个货垛,不同货垛样品的顶层中的包裹具有不同的排布方式。这样,可以采集到不同的排布方式下、顶层中的各个包裹的位姿数据,将包括有一货垛样品的顶层中所包括的各个包裹的位姿数据作为一模板位姿。并且,针对每一模板位姿,设置其对应的抓取方式。
拆垛阶段的处理流程包括:
(1)将包裹垒放好在托盘上后,搬运至3D相机的视野范围内进行识别,以从3D相机采集的货垛图像(对应于上文中的货垛点云)中识别各个包裹的包裹点云。示例性的,可以利用目标检测算法,对货垛图像中的各个包裹进行识别,以根据货垛图像中的RGB颜色信息从货垛图像中识别出各个包裹的区域,然后将每一包裹的区域内的点云识别为该包裹的包裹点云。其中,对货垛图像中的各个包裹进行识别的示意图如图8所示,可以看出图中识别出5个矩形框,分别为矩形框1、2、3、4和5。每一矩形框为识别出的一包裹对应的区域,根据所识别出的各个包裹的区域可以获得各个包裹的点云,从而确定各个包裹的摆放位姿。
(2)进行顶层位姿筛选,排除单层不满垛的情况。也就是,判断货垛的顶层是否为满垛层,若为满垛层则继续,若不为满垛层则进行报警处理。其中,判断顶层是否为满垛层的方式可以是根据各个包裹的包裹点云,确定所识别出的各个包裹的高度,然后根据各个包裹的高度判断各个包裹是否出现上下分层。若出现上下分层则判断顶层不为满垛层,否则,判断顶层为满垛层。其中,识别是否出现上下分层的方式可以是识别是否存在与其他包裹之间的高度差超过预定阈值的包裹,若存在则出现上下分层,否则未出现上下分层。
(3)进行位姿匹配。根据识别出的各个包裹的包裹点云,确定顶层位姿。其中,顶层位姿包括货垛的顶层中所包括各个包裹的位姿数据。从预处理阶段设置的多个模版位姿中,选取与形成位姿相匹配的模板位姿,即选出与顶层位姿的误差值(对应于上文中的第三差异值)最小的位姿为选中位姿(对应于上文中的第一位姿)。
(4)进行点云融合,也就是将识别出的各个包裹的包裹点云进行合并,得到一整块平面点云。利用点云边缘检测算法,从平面点云中提取出货垛的上表面的边缘信息,也就是识别出货垛的上表面的各个边缘点。然后,将所识别出的边缘点构成的轮廓确定为上表面的平面轮廓。在确定上表面的平面轮廓后,可以计算平面轮廓的中心点坐标以及旋转角度。将该计算出的中心点坐标以及旋转角度确定为抓取位姿。
(5)控制机械臂按照所确定的抓取位姿以及选中位姿对应的抓取方式,对顶层中的所有包裹进行整体抓取。
可见,通过本方案,可以提高拆垛效率。并且,适用于针对具有不同排布方式的货垛进行拆垛,即适用大多数货垛拆垛的应用场景。另外,还可以适配多种类型的机械臂(三轴、四轴、六轴),且能够对不符合抓取条件的货垛进行检测和报警。
本申请的技术方案中,所涉及的用户个人信息的获取、存储、使用、加工、传输、提供和公开等操作,均是在已取得用户授权的情况下进行的。
相应上述方法实施例,本申请实施例还提供了一种拆垛装置,如图9所示,所述装置包括:
识别模块910,用于从货垛上方的3D相机采集的货垛点云中识别各个包裹的包裹点云;
判断模块920,用于基于所识别出的包裹点云,判断所述货垛的顶层是否为满垛层;
选取模块930,用于若所述顶层为满垛层,基于所识别出的包裹点云,确定所述顶层的顶层位姿,并从预先设置的各个模板位姿中,选取与所述顶层位姿相匹配的模板位姿,作为第一位姿;其中,所述顶层位姿包括所述顶层中所包括各个包裹的位姿数据;每一模板位姿与满垛层中包裹的一种排布方式相对应,且每一模板位姿对应有预设的抓取方式,所述模板位姿包括满垛层中所包括各个包裹的位姿数据;
确定模块940,用于基于所识别出的包裹点云,确定针对所述顶层中所包括的所有包裹进行整体抓取的抓取位姿;
控制模块950,用于控制机械臂按照所述抓取位姿和所述第一位姿对应的抓取方式,将所述顶层中包括的所有包裹从所述货垛上整体抓取至指定位置。
可选地,所述位姿数据包括:位置数据以及姿态数据;
所述选取模块基于所识别出的包裹点云,确定所述顶层的顶层位姿,并从预先设置的各个模板位姿中,选取出与所述顶层位姿相匹配的模板位姿,作为第一位姿,包括:
基于所识别出的包裹点云,确定所述顶层中所包括的包裹的位置数据以及姿态数据,得到顶层位姿;
针对每一模板位姿,分别计算该模板位姿中所包括的包裹的位置数据与所述顶层位姿中所包括的包裹的位置数据之间的第一差异值,以及,该模板位姿中所包括的包裹的姿态数据与所述顶层位姿中所包括的包裹的姿态数据的第二差异值;
利用预设的权重参数对每一模板位姿对应的第一差异值和第二差异值进行加权求和,得到每一模板位姿对应的第三差异值;
将所对应第三差异值最小的模板位姿,确定为第一位姿。
可选地,所述分别计算该模板位姿中所包括的包裹的位置数据与所述顶层位姿中所包括的包裹的位置数据的第一差异值,以及,该模板位姿中所包括的包裹的姿态数据与所述顶层位姿中所包括的包裹的姿态数据的第二差异值,包括:
针对每一候选对应关系,计算所述顶层中的每一第一包裹与第二包裹的位置数据之间的距离之和,作为距离差异值,以及,计算所述顶层中的每一第一包裹与第二包裹的姿态数据之间的角度差之和,作为角度差异值;其中,每一候选对应关系用于描述各个第一包裹与该模板位姿描述的各个包裹之间的对应关系,所述第二包裹为:针对该候选对应关系、该模版位姿描述的包裹中与所述第一包裹对应的包裹;
基于每一候选对应关系对应的距离差异值和角度差异值,计算该候选对应关系对应的总差异值;
将所对应总差异值最小的候选对应关系所对应的距离差异值和角度差异值,分别确定为第一差异值和第二差异值。
可选地,针对每一货垛样品,按照以下方式确定模板位姿,其中,所述货垛样品的顶层为满垛层,不同货垛样品的顶层中包裹的排布方式不同:
获取货垛样品上方的3D相机采集的第一样本点云;
基于预先设置的感兴趣区域,将所述第一样本点云中的货垛点云与托盘点云分离,得到所述货垛样品的第二样本点云;
从所述第二样本点云中识别各个包裹的包裹点云,作为第三样本点云;
基于所述第三样本点云,确定所述货垛样品的顶层中所包括的包裹的位置数据和姿态数据,作为一模板位姿。
可选地,所述确定模块,包括:
第一确定子模块,用于基于所识别出的包裹点云,确定所述货垛的上表面的平面轮廓;
第二确定子模块,用于确定所述平面轮廓的中心点坐标以及旋转角度;
第三确定子模块,用于将所确定的中心点坐标以及旋转角度,确定为针对所述顶层中所包括的所有包裹进行整体抓取的抓取位姿。
可选地,所述判断模块,包括:
第一判断子模块,用于判断所识别出的包裹点云所表征的包裹数量是否为预设数值;
第四确定子模块,用于若否,则确定所述顶层不为满垛层;
第二判断子模块,用于若是,基于所识别出的包裹点云,确定各个包裹的高度,并基于所确定的各个包裹的高度判断是否存在与其他包裹之间的高度差超过预定阈值的包裹;
第五确定子模块,用于若存在,则确定所述顶层不为满垛层,否则,确定所述顶层为满垛层。
本申请实施例还提供了一种电子设备,如图10所示,包括:
存储器1001,用于存放计算机程序;
处理器1002,用于执行存储器1001上所存放的程序时,实现上述任一所述的拆垛方法的步骤;
并且上述电子设备还可以包括通信总线和/或通信接口,处理器1002、通信接口、存储器1001通过通信总线完成相互间的通信。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一拆垛方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一拆垛方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者固态硬盘(Solid StateDisk,SSD)等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统和装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (10)

1.一种拆垛方法,其特征在于,所述方法包括:
从货垛上方的3D相机采集的货垛点云中识别各个包裹的包裹点云;
基于所识别出的包裹点云,判断所述货垛的顶层是否为满垛层;
若所述顶层为满垛层,基于所识别出的包裹点云,确定所述顶层的顶层位姿,并从预先设置的各个模板位姿中,选取与所述顶层位姿相匹配的模板位姿,作为第一位姿;其中,所述顶层位姿包括所述顶层中所包括各个包裹的位姿数据;每一模板位姿与满垛层中包裹的一种排布方式相对应,且每一模板位姿对应有预设的抓取方式,所述模板位姿包括满垛层中所包括各个包裹的位姿数据;
基于所识别出的包裹点云,确定针对所述顶层中所包括的所有包裹进行整体抓取的抓取位姿;
控制机械臂按照所述抓取位姿和所述第一位姿对应的抓取方式,将所述顶层中包括的所有包裹从所述货垛上整体抓取至指定位置。
2.根据权利要求1所述的方法,其特征在于,所述位姿数据包括:位置数据以及姿态数据;
所述基于所识别出的包裹点云,确定所述顶层的顶层位姿,并从预先设置的各个模板位姿中,选取出与所述顶层位姿相匹配的模板位姿,作为第一位姿,包括:
基于所识别出的包裹点云,确定所述顶层中所包括的包裹的位置数据以及姿态数据,得到顶层位姿;
针对每一模板位姿,分别计算该模板位姿中所包括的包裹的位置数据与所述顶层位姿中所包括的包裹的位置数据之间的第一差异值,以及,该模板位姿中所包括的包裹的姿态数据与所述顶层位姿中所包括的包裹的姿态数据的第二差异值;
利用预设的权重参数对每一模板位姿对应的第一差异值和第二差异值进行加权求和,得到每一模板位姿对应的第三差异值;
将所对应第三差异值最小的模板位姿,确定为第一位姿。
3.根据权利要求2所述的方法,其特征在于,所述分别计算该模板位姿中所包括的包裹的位置数据与所述顶层位姿中所包括的包裹的位置数据的第一差异值,以及,该模板位姿中所包括的包裹的姿态数据与所述顶层位姿中所包括的包裹的姿态数据的第二差异值,包括:
针对每一候选对应关系,计算所述顶层中的每一第一包裹与第二包裹的位置数据之间的距离之和,作为距离差异值,以及,计算所述顶层中的每一第一包裹与第二包裹的姿态数据之间的角度差之和,作为角度差异值;其中,每一候选对应关系用于描述各个第一包裹与该模板位姿描述的各个包裹之间的对应关系,所述第二包裹为:针对该候选对应关系、该模版位姿描述的包裹中与所述第一包裹对应的包裹;
基于每一候选对应关系对应的距离差异值和角度差异值,计算该候选对应关系对应的总差异值;
将所对应总差异值最小的候选对应关系所对应的距离差异值和角度差异值,分别确定为第一差异值和第二差异值。
4.根据权利要求1所述的方法,其特征在于,针对每一货垛样品,按照以下方式确定模板位姿,其中,所述货垛样品的顶层为满垛层,不同货垛样品的顶层中包裹的排布方式不同:
获取货垛样品上方的3D相机采集的第一样本点云;
基于预先设置的感兴趣区域,将所述第一样本点云中的货垛点云与托盘点云分离,得到所述货垛样品的第二样本点云;
从所述第二样本点云中识别各个包裹的包裹点云,作为第三样本点云;
基于所述第三样本点云,确定所述货垛样品的顶层中所包括的包裹的位置数据和姿态数据,作为一模板位姿。
5.根据权利要求1所述的方法,其特征在于,所述基于所识别出的包裹点云,确定针对所述顶层中所包括的所有包裹进行整体抓取的抓取位姿,包括:
基于所识别出的包裹点云,确定所述货垛的上表面的平面轮廓;
确定所述平面轮廓的中心点坐标以及旋转角度;
将所确定的中心点坐标以及旋转角度,确定为针对所述顶层中所包括的所有包裹进行整体抓取的抓取位姿。
6.根据权利要求1所述的方法,其特征在于,所述基于所识别出的包裹点云,判断所述货垛的顶层是否为满垛层,包括:
判断所识别出的包裹点云所表征的包裹数量是否为预设数值;
若否,则确定所述顶层不为满垛层;
若是,基于所识别出的包裹点云,确定各个包裹的高度,并基于所确定的各个包裹的高度判断是否存在与其他包裹之间的高度差超过预定阈值的包裹;
若存在,则确定所述顶层不为满垛层,否则,确定所述顶层为满垛层。
7.一种拆垛系统,其特征在于,包括3D相机、控制设备和机械臂;
所述3D相机,用于采集位于其下方视野范围内的货垛的货垛点云;
所述控制设备,用于从所述3D相机采集的货垛点云中识别各个包裹的包裹点云;基于所识别出的各个包裹的包裹点云,判断所述货垛的顶层是否为满垛层;若所述顶层为满垛层,基于所识别出的包裹点云,确定所述顶层的顶层位姿,并从预先设置的各个模板位姿中,选取与所述顶层位姿相匹配的模板位姿,作为第一位姿;基于所识别出的包裹点云,确定针对所述顶层中所包括的所有包裹进行整体抓取的抓取位姿;其中,所述顶层位姿包括所述顶层中所包括各个包裹的位姿数据;每一模板位姿与满垛层中包裹的一种排布方式相对应,且每一模板位姿对应有预设的抓取方式,所述模板位姿包括满垛层中所包括各个包裹的位姿数据;
所述机械臂,用于按照所述控制设备确定的抓取位姿和所述第一位姿对应的抓取方式,将所述顶层中所包括的所有包裹从所述货垛上整体抓取至指定位置。
8.一种拆垛装置,其特征在于,所述装置包括:
识别模块,用于从货垛上方的3D相机采集的货垛点云中识别各个包裹的包裹点云;
判断模块,用于基于所识别出的包裹点云,判断所述货垛的顶层是否为满垛层;
选取模块,用于若所述顶层为满垛层,基于所识别出的包裹点云,确定所述顶层的顶层位姿,并从预先设置的各个模板位姿中,选取与所述顶层位姿相匹配的模板位姿,作为第一位姿;其中,所述顶层位姿包括所述顶层中所包括各个包裹的位姿数据;每一模板位姿与满垛层中包裹的一种排布方式相对应,且每一模板位姿对应有预设的抓取方式,所述模板位姿包括满垛层中所包括各个包裹的位姿数据;
确定模块,用于基于所识别出的包裹点云,确定针对所述顶层中所包括的所有包裹进行整体抓取的抓取位姿;
控制模块,用于控制机械臂按照所述抓取位姿和所述第一位姿对应的抓取方式,将所述顶层中包括的所有包裹从所述货垛上整体抓取至指定位置。
9.一种电子设备,其特征在于,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一项所述的方法。
CN202410578688.5A 2024-05-10 一种拆垛方法、系统、装置、设备以及存储介质 Pending CN118343510A (zh)

Publications (1)

Publication Number Publication Date
CN118343510A true CN118343510A (zh) 2024-07-16

Family

ID=

Similar Documents

Publication Publication Date Title
DE102019009189B4 (de) Robotersytem mit Fehlererkennung und dynamischem Packmechanismus
CN111633633B (zh) 具有自动化物体检测机构的机器人系统及其操作方法
DE102019009206B4 (de) Robotersystem mit dynamischem Packmechanismus
CN113351522B (zh) 物品分拣方法、装置及系统
CN113420746B (zh) 机器人视觉分拣方法、装置、电子设备和存储介质
CN113284178B (zh) 物体码垛方法、装置、计算设备及计算机存储介质
CN114241037A (zh) 混合尺寸卸盘
JP7175487B1 (ja) 画像ベースのサイジングメカニズムを備えたロボットシステム及びロボットシステムを操作するための方法
CN115485216A (zh) 机器人多表面夹持器组件及其操作方法
US11485015B2 (en) System for eliminating interference of randomly stacked workpieces
CN114800533B (zh) 一种用于工业机器人的分拣控制方法及系统
JP7126667B1 (ja) 深さベースの処理メカニズムを伴うロボットシステム及びロボットシステムを操作するための方法
CN118343510A (zh) 一种拆垛方法、系统、装置、设备以及存储介质
CN116175542B (zh) 确定夹具抓取顺序的方法、装置、电子设备和存储介质
Yano et al. Surface-Graph-Based 6DoF Object-Pose Estimation for Shrink-Wrapped Items Applicable to Mixed Depalletizing Robots.
CN117682248A (zh) 一种基于3d视觉定位的周转箱识别方法和系统
CN115609569A (zh) 具有基于图像的尺寸确定机制的机器人系统及其操作方法
CN115258510A (zh) 具有物体更新机制的机器人系统和用于操作所述机器人系统的方法

Legal Events

Date Code Title Description
PB01 Publication