对象抓取方法及装置

文档序号:551872 发布日期:2021-05-14 浏览:1次 >En<

阅读说明:本技术 对象抓取方法及装置 (Object grabbing method and device ) 是由 段文杰 夏冬青 丁有爽 邵天兰 于 2021-02-05 设计创作,主要内容包括:本发明公开了一种对象抓取方法及装置,方法包括:针对与三维物品区域相对应的点云进行聚类处理,得到多个点云簇;计算各个点云簇所对应的物品对象的位姿关键点以及位姿关键点的深度值,对各个点云簇所对应的物品对象进行分层处理,得到多个从顶层至底层依次排列的点云分层;按照从顶层至底层的顺序,依次将当前点云分层中包含的物品对象作为目标物品对象,当判断出与目标物品对象的位姿关键点相对应的覆盖检测区域内包含与当前点云分层相对应的底层点云分层中的物品对象时,将其确定为压叠物品对象;将各个点云分层中包含的其他物品对象确定为待抓取对象。该方式能够剔除压叠物品对象,防止其他物品飞出并破坏的问题,提升了抓取过程的可靠性。(The invention discloses an object grabbing method and device, wherein the method comprises the following steps: clustering the point clouds corresponding to the three-dimensional article area to obtain a plurality of point cloud clusters; calculating the position and pose key points of the object corresponding to each point cloud cluster and the depth values of the position and pose key points, and carrying out layering processing on the object corresponding to each point cloud cluster to obtain a plurality of point cloud layers which are sequentially arranged from the top layer to the bottom layer; sequentially taking the object objects contained in the current point cloud layering as target object objects according to the sequence from the top layer to the bottom layer, and determining the object objects contained in the bottom layer point cloud layering corresponding to the current point cloud layering as overlapped object objects when the object objects contained in the coverage detection area corresponding to the pose key points of the target object are judged; and determining other object objects contained in each point cloud layering as objects to be grabbed. This mode can reject and press the folding article object, prevents the problem of other article departure and destruction, has promoted the reliability of snatching the process.)

对象抓取方法及装置

技术领域

本发明涉及智能程控机器人及机械手控制技术领域,具体涉及一种对象抓取方法及装置。

背景技术

目前,随着机械手等智能程控机器人的广泛普及,越来越多的物品能够借助智能程控机器人实现抓取以及运输操作。例如,物流包装能够通过智能程控机器人进行抓取,从而大幅提升抓取效率。在现有技术中,为了实现准确抓取,需要预先识别物品区域中包含的待抓取对象,从而控制智能程控机器人针对待抓取对象进行抓取。

然而,发明人在实现本发明的过程中发现,由于物品区域中包含的多个物品之间可能存在相互压叠的情况,因此,一旦将被压叠的物品识别为待抓取对象并执行抓取操作,则可能在抓取该被压叠物品时导致位于其上层的其他物品飞出,从而导致其他物品在抓取过程中被破坏的问题。由此可见,现有的抓取方式无法准确识别物品之间的压叠关系。

发明内容

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的对象抓取方法及装置。

根据本发明的一个方面,提供了一种对象抓取方法,包括:

针对与三维物品区域相对应的点云进行聚类处理,得到多个与物品对象相对应的点云簇;

计算各个点云簇所对应的物品对象的位姿关键点以及所述位姿关键点的深度值,按照深度值对各个点云簇所对应的物品对象进行分层处理,得到多个从顶层至底层依次排列的点云分层;

按照从顶层至底层的顺序,依次将当前点云分层中包含的物品对象作为目标物品对象,当判断出与所述目标物品对象的位姿关键点相对应的覆盖检测区域内包含与所述当前点云分层相对应的底层点云分层中的物品对象时,将所述与所述当前点云分层相对应的底层点云分层中的物品对象确定为压叠物品对象;

将各个点云分层中包含的除压叠物品对象之外的物品对象确定为待抓取对象。

可选的,所述与所述目标物品对象的位姿关键点相对应的覆盖检测区域包括:与所述目标物品对象的位姿关键点相对应的椎体区域;

其中,所述椎体区域的顶部根据所述目标物品对象的位姿关键点确定,且所述椎体区域的底部位于所述目标物品对象所在的当前点云分层所对应的底层点云分层中。

可选的,所述椎体区域包括:圆锥区域和/或圆台区域;

其中,当所述椎体区域为圆锥区域时,所述圆锥区域的顶点根据所述目标物品对象的位姿关键点确定;当所述椎体区域为圆台区域时,所述圆台区域的上底面根据所述目标物品对象的位姿关键点确定。

可选的,所述多个从顶层至底层依次排列的点云分层的数量为N,且位于最顶层的点云分层为第1个点云分层;则当所述目标物品对象所在的当前点云分层为第M个点云分层时,所述与所述当前点云分层相对应的底层点云分层包括:位于第M个点云分层底部的N-M个点云分层;其中,N和M均为自然数,且M小于或等于N。

可选的,所述计算各个点云簇所对应的物品对象的位姿关键点包括:

获取点云簇中包含的各个数据点的三维位置坐标,根据各个数据点的三维位置坐标所对应的预设运算结果,确定点云簇所对应的物品对象的位姿关键点的位置信息;

通过主成分分析法对所述点云簇中包含的各个数据点进行分析处理,根据分析结果确定位姿关键点的位置信息的三维状态信息。

可选的,所述按照深度值对各个点云簇所对应的物品对象进行分层处理包括:

将各个点云簇所对应的物品对象按照深度值进行有序排列,按照分层阈值将排序后的各个点云簇划分为多个点云分层;

其中,若两个点云簇的深度值之差小于所述分层阈值,则该两个点云簇属于同一个点云分层;若两个点云簇的深度值之差不小于所述分层阈值,则该两个点云簇属于不同的点云分层。

可选的,所述将各个点云分层中包含的除压叠物品对象之外的物品对象确定为待抓取对象之后,进一步包括:

按照各个待抓取对象的位姿关键点的深度值对各个待抓取对象进行排序,根据排序结果确定各个待抓取对象的抓取顺序;

其中,所述深度值为物品对象对应于深度坐标轴的坐标值,其中,所述深度坐标轴根据相机拍照方向、重力方向或物品承载面的垂直线所在的方向设定。

可选的,将各个待抓取对象按照与摄像头或物品承载面之间的距离远近进行排序,并根据排序结果确定各个待抓取对象的抓取顺序;

其中,距离摄像头越近的待抓取对象的抓取顺序越靠前;距离摄像头越远的待抓取对象的抓取顺序越靠后;距离物品承载面越近的待抓取对象的抓取顺序越靠后;距离物品承载面越远的待抓取对象的抓取顺序越靠前。

可选的,所述根据排序结果确定各个待抓取对象的抓取顺序之后,进一步包括:

获取相机坐标系与机器人坐标系之间的转换关系;

根据所述转换关系,将对应于相机坐标系的各个待抓取对象的位姿关键点转换到机器人坐标系中,向机器人输出转换后的各个待抓取对象的位姿关键点,以供机器人执行抓取操作。

可选的,所述三维物品区域中包括多个沿预设深度方向堆叠的待抓取对象;其中,所述待抓取对象包括:纸箱、纸盒、信封、塑料软包、药妆品、和/或玩具。

根据本发明的又一个方面,还提供了一种对象抓取装置,包括:

聚类模块,适于针对与三维物品区域相对应的点云进行聚类处理,得到多个与物品对象相对应的点云簇;

计算模块,适于计算各个点云簇所对应的物品对象的位姿关键点以及所述位姿关键点的深度值,按照深度值对各个点云簇所对应的物品对象进行分层处理,得到多个从顶层至底层依次排列的点云分层;

确定模块,适于按照从顶层至底层的顺序,依次将当前点云分层中包含的物品对象作为目标物品对象,当判断出与所述目标物品对象的位姿关键点相对应的覆盖检测区域内包含与所述当前点云分层相对应的底层点云分层中的物品对象时,将所述与所述当前点云分层相对应的底层点云分层中的物品对象确定为压叠物品对象;

抓取模块,适于将各个点云分层中包含的除压叠物品对象之外的物品对象确定为待抓取对象。

可选的,所述与所述目标物品对象的位姿关键点相对应的覆盖检测区域包括:与所述目标物品对象的位姿关键点相对应的椎体区域;

其中,所述椎体区域的顶部根据所述目标物品对象的位姿关键点确定,且所述椎体区域的底部位于所述目标物品对象所在的当前点云分层所对应的底层点云分层中。

可选的,所述椎体区域包括:圆锥区域和/或圆台区域;

其中,当所述椎体区域为圆锥区域时,所述圆锥区域的顶点根据所述目标物品对象的位姿关键点确定;当所述椎体区域为圆台区域时,所述圆台区域的上底面根据所述目标物品对象的位姿关键点确定。

可选的,所述多个从顶层至底层依次排列的点云分层的数量为N,且位于最顶层的点云分层为第1个点云分层;则当所述目标物品对象所在的当前点云分层为第M个点云分层时,所述与所述当前点云分层相对应的底层点云分层包括:位于第M个点云分层底部的N-M个点云分层;其中,N和M均为自然数,且M小于或等于N。

可选的,所述计算模块具体适于:

获取点云簇中包含的各个数据点的三维位置坐标,根据各个数据点的三维位置坐标所对应的预设运算结果,确定点云簇所对应的物品对象的位姿关键点的位置信息;

通过主成分分析法对所述点云簇中包含的各个数据点进行分析处理,根据分析结果确定位姿关键点的位置信息的三维状态信息。

可选的,所述计算模块具体适于:

将各个点云簇所对应的物品对象按照深度值进行有序排列,按照分层阈值将排序后的各个点云簇划分为多个点云分层;

其中,若两个点云簇的深度值之差小于所述分层阈值,则该两个点云簇属于同一个点云分层;若两个点云簇的深度值之差不小于所述分层阈值,则该两个点云簇属于不同的点云分层。

可选的,所述抓取模块进一步适于:

按照各个待抓取对象的位姿关键点的深度值对各个待抓取对象进行排序,根据排序结果确定各个待抓取对象的抓取顺序;

其中,所述深度值为物品对象对应于深度坐标轴的坐标值,其中,所述深度坐标轴根据相机拍照方向、重力方向或物品承载面的垂直线所在的方向设定。

可选的,所述抓取模块具体适于:

将各个待抓取对象按照与摄像头或物品承载面之间的距离远近进行排序,并根据排序结果确定各个待抓取对象的抓取顺序;

其中,距离摄像头越近的待抓取对象的抓取顺序越靠前;距离摄像头越远的待抓取对象的抓取顺序越靠后;距离物品承载面越近的待抓取对象的抓取顺序越靠后;距离物品承载面越远的待抓取对象的抓取顺序越靠前。

可选的,所述抓取模块进一步适于:

获取相机坐标系与机器人坐标系之间的转换关系;

根据所述转换关系,将对应于相机坐标系的各个待抓取对象的位姿关键点转换到机器人坐标系中,向机器人输出转换后的各个待抓取对象的位姿关键点,以供机器人执行抓取操作。

可选的,所述三维物品区域中包括多个沿预设深度方向堆叠的待抓取对象;其中,所述待抓取对象包括:纸箱、纸盒、信封、塑料软包、药妆品、和/或玩具。

根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述对象抓取方法对应的操作。

根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述对象抓取方法对应的操作。

在本发明所提供的对象抓取方法及装置中,首先,针对与三维物品区域相对应的点云进行聚类处理,得到多个与物品对象相对应的点云簇;然后,计算各个点云簇所对应的物品对象的位姿关键点及其深度值,按照深度值对各个点云簇所对应的物品对象进行分层处理,得到多个从顶层至底层依次排列的点云分层;最后,按照从顶层至底层的顺序,依次将当前点云分层中包含的物品对象作为目标物品对象,当判断出与目标物品对象的位姿关键点相对应的覆盖检测区域内包含与当前点云分层相对应的底层点云分层中的物品对象时,将与当前点云分层相对应的底层点云分层中的物品对象确定为压叠物品对象,从而将各个点云分层中包含的除压叠物品对象之外的物品对象确定为待抓取对象。由此可见,该方式通过设置覆盖检测区域的方式能够准确识别被压叠的物品对象,从而在确定待抓取对象时剔除压叠物品对象,防止其他物品飞出并破坏的问题,提升了抓取过程的可靠性。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的

具体实施方式

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的对象抓取方法的流程示意图;

图2示出了根据本发明另一个实施例的对象抓取方法的流程示意图;

图3示出了根据本发明又一个实施例的对象抓取装置的结构示意图;

图4示出了根据本发明的一种电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的对象抓取方法的流程示意图,该对象抓取方法具体可以通过智能程序控制,例如,通过机械手等智能程控机器人实施该抓取方法。如图1所示,该方法包括:

步骤S110:针对与三维物品区域相对应的点云进行聚类处理,得到多个与物品对象相对应的点云簇。

其中,三维物品区域是指:堆叠有多个物品的三维区域。由于本实施例中的多个物品之间存在堆叠现象,仅通过平面图像无法准确描述物品间的方位关系,因而通过三维物品区域进行描述。

另外,点云是预设坐标系下的点的数据集。点包含了丰富的信息,包括三维坐标X,Y,Z、颜色、分类值、强度值、时间等。点云能够将现实世界原子化,通过高精度的点云数据可以还原现实世界。由此可见,点云信息能够反映三维物品区域的三维立体特征。在本实施例中,与三维物品区域相对应的点云可通过多种方式获取,例如,可以先通过三维相机获取与三维物品区域相对应的二维彩色图以及对应于二维彩色图的深度图,进而根据二维彩色图和深度图构建点云信息。又如,可以根据激光探测器、LED等可见光探测器、红外探测器以及雷达探测器等元件生成点云,本发明对具体实现方式不作限定。

具体的,针对与三维物品区域相对应的点云进行聚类处理,得到多个与物品对象相对应的点云簇。其中,在执行聚类操作时,可按照点之间的距离进行聚类。例如,设置一个距离阈值,将间隔小于该距离阈值的多个点聚合为一个点云簇。

步骤S120:计算各个点云簇所对应的物品对象的位姿关键点以及位姿关键点的深度值,按照深度值对各个点云簇所对应的物品对象进行分层处理,得到多个从顶层至底层依次排列的点云分层。

其中,点云簇与物品对象之间具有对应关系。通常情况下,每个点云簇对应于一个物品对象。物品对象的三维位姿信息用于描述待抓取对象在三维世界的姿态。位姿关键点是指:能够反映物品对象的三维位置特征的位姿点,例如,可以是物品对象的重心所对应的位姿点。相应的,计算各个点云簇所对应的物品对象的位姿关键点以及位姿关键点的深度值。

其中,位姿关键点的深度值为物品对象对应于深度坐标轴的坐标值,其中,深度坐标轴的方向可以根据实际业务场景灵活设定,例如,可以根据相机拍照方向、重力方向或物品承载面的垂直线所在的方向设定深度坐标轴。

在一种实现方式中,深度坐标轴对应于相机拍照方向,相应的,深度值用于反映物品对象距离相机摄像头的远近。按照深度值对各个点云簇所对应的物品对象进行分层处理,得到多个从顶层至底层依次排列的点云分层。相应的,位于顶层的点云分层距离相机摄像头最近(距离物品承载面最远),而位于底层的点云分层则距离相机摄像头最远(距离物品承载面最近)。每个点云分层中包含一个或多个物品对象。

步骤S130:按照从顶层至底层的顺序,依次将当前点云分层中包含的物品对象作为目标物品对象,当判断出与目标物品对象的位姿关键点相对应的覆盖检测区域内包含与当前点云分层相对应的底层点云分层中的物品对象时,将与当前点云分层相对应的底层点云分层中的物品对象确定为压叠物品对象。

具体的,将位于顶层的点云分层作为当前点云分层,将顶层的点云分层中的物品对象作为目标物品对象,设置与该目标物品对象的位姿关键点相对应的覆盖检测区域。其中,该覆盖检测区域是指:将目标物品对象的位姿关键点作为基准点,围绕该基准点绘制的预设形状的几何区域。本发明不限定覆盖检测区域的具体形状,只要能够检测出与目标物品对象相邻的压叠物品对象即可。

相应的,当判断出与目标物品对象的位姿关键点相对应的覆盖检测区域内包含与当前点云分层相对应的底层点云分层中的物品对象时,将与当前点云分层相对应的底层点云分层中的物品对象确定为压叠物品对象。其中,与当前点云分层相对应的底层点云分层是指:位于当前点云分层底部的至少一个点云分层。其中,各个点云分层具有层级关系,按照从顶层至底层的顺序,各个点云分层的层级依次降低,即:顶层的点云分层层级最高,底层的点云分层层级最低。因此,与当前点云分层相对应的底层点云分层是指:层级低于当前点云分层的各个点云分层。

步骤S140:将各个点云分层中包含的除压叠物品对象之外的物品对象确定为待抓取对象。

由于上一步骤已经检测出压叠物品对象,该压叠物品对象是指:被上层点云分层中的物品压住的物品,因此,为了避免带飞上层物品的问题,将各个点云分层中包含的除压叠物品对象之外的物品对象确定为待抓取对象。通过上述方式,能够剔除压叠物品对象,从而确保待抓取对象中不包含被压住的物品,从而提升抓取的可靠性。

由此可见,该方式通过设置覆盖检测区域的方式能够准确识别被压叠的物品对象,从而在确定待抓取对象时剔除压叠物品对象,防止其他物品飞出并破坏的问题,提升了抓取过程的可靠性。

图2示出了根据本发明另一个实施例的对象抓取方法的流程示意图。如图2所示,该方法包括:

步骤S200:获取与三维物品区域相对应的点云。

其中,三维物品区域是指:堆叠有多个物品的三维区域。由于本实施例中的多个物品之间存在堆叠现象,仅通过平面图像无法准确描述物品间的方位关系,因而通过三维物品区域进行描述。另外,点云是预设坐标系下的点的数据集。在本实施例中,与三维物品区域相对应的点云可通过多种方式获取,本发明对具体实现方式不作限定。例如,可以根据激光探测器、LED等可见光探测器、红外探测器以及雷达探测器等元件生成点云。

在一个具体示例中,通过三维相机获取与三维物品区域相对应的二维彩色图以及对应于二维彩色图的深度图,进而根据二维彩色图和深度图构建点云信息,具体通过以下方式实现:沿预设深度方向获取与三维物品区域相对应的二维彩色图以及对应于二维彩色图的深度图,根据二维彩色图以及对应于二维彩色图的深度图构建点云信息。

其中,预设深度方向可以根据实际业务场景灵活设定,具体的,预设深度方向包括以下中的至少一个:相机拍照方向、重力方向以及物品承载面的垂直线所在的方向。

在一种实现方式中,预设深度方向为:相机拍照时所沿的深度方向,也叫相机拍照方向。具体的,相机的摄像头产生的光线从第一方位出发,并向第二方位延伸,则预设深度方向为从第一方位指向第二方位的方向。例如,当相机的摄像头从上往下拍照时,预设深度方向则为从上往下的方向;当相机的摄像头从左往右拍照时,预设深度方向则为从左往右的方向。例如,若通过一台相机进行拍照,则预设深度方向为:由相机指向物品区域的方向。又如,若通过两台相机进行拍照,则预设深度方向为:由两台相机的中点位置指向物品区域的方向。当然,对于多台相机的场景与之类似,可以根据多台相机的中心位置指向物品区域的方向设置预设深度方向,本发明对具体细节不作限定。

在又一种实现方式中,预设深度方向为:物品承载面的垂直线所在的方向,即:垂直于物品承载面的方向。具体的,考虑到相机的拍摄角度可以灵活设定,例如,相机的拍摄角度可能与物品放置方向之间呈现一定角度,即:相机呈倾斜状态。因此,为了准确描述,预设深度方向还可以是垂直于物品承载面的方向,具体实施时,该预设深度方向可以为任意方向,例如,既可以是竖直方向,也可以是某一倾斜方向,本发明对其不作限定。

其中,物品承载面是指:用于放置三维物品的载体所在的平面。例如,当三维物品放置于地面上时,地面即为用于放置三维物品的载体,相应的,物品承载面即为地面所在的平面;又如,当三维物品放置于托盘、传送带、或物料筐等部件上时,该托盘、传送带、或物料筐等部件即为用于放置三维物品的载体,相应的,物品承载面即为该托盘、传送带、或物料筐所在的平面。在特定场景中,托盘、传送带、或物料筐等载体可能是倾斜设置的,例如,为了便于装卸,传送带所在的平面可能与水平面之间呈预设角度,相应的,预设深度方向垂直于传送带所在的平面,因而也与竖直方向之间呈预设角度,本发明对具体实现细节不作限定。

另外,预设深度方向还可以为重力方向。例如,当物品承载面与水平面一致时,预设深度方向即为重力方向。

例如,在一个具体示例中,预设深度方向为相机拍照时所沿的深度方向,也叫拍照方向。具体的,相机的摄像头产生的光线从第一方位出发,并向第二方位延伸,则预设深度方向为从第一方位指向第二方位的方向。例如,当相机的摄像头从上往下拍照时,预设深度方向则为从上往下的方向;当相机的摄像头从左往右拍照时,预设深度方向则为从左往右的方向。具体实施时,通过3D相机获取与三维物品区域相对应的二维彩色图以及对应于二维彩色图的深度图。其中,二维彩色图对应于与预设深度方向垂直的平面区域的图像;对应于二维彩色图的深度图中的各个像素点与二维彩色图中的各个像素点一一对应,且各个像素点的取值为该像素点的深度值。其中,深度值根据物品距离相机摄像头的远近确定。例如,当相机从上向下拍摄时,二维彩色图对应于俯视平面图,而深度图则用于表示各个物品距离相机的远近。由此可见,通过二维彩色图以及对应于二维彩色图的深度图能够从三维立体角度准确描述物品之间的方位关系。相应的,根据二维彩色图以及对应于二维彩色图的深度图能够构建出对应的点云信息。

步骤S210:针对与三维物品区域相对应的点云进行聚类处理,得到多个与物品对象相对应的点云簇。

具体的,在执行聚类操作时,按照点之间的距离进行聚类。例如,设置一个距离阈值,将间隔小于该距离阈值的多个点聚合为一个点云簇。点云簇是指:由多个距离较近的点数据构成的一簇点云集合。点云簇与物品对象之间具有对应关系。通常情况下,每个点云簇对应于一个物品对象。

步骤S220:计算各个点云簇所对应的物品对象的位姿关键点以及位姿关键点的深度值。

其中,物品对象的三维位姿信息用于描述待抓取对象在三维世界的姿态。位姿关键点是指:能够反映物品对象的三维位置特征的位姿点。由于在后续步骤中需要将各个点云簇按照深度值进行分层处理,因此,为了便于衡量一个点云簇的深度,针对每个点云簇设置了对应的位姿关键点,将该位姿关键点的深度值作为该点云簇的深度值。

具体的,计算各个点云簇所对应的物品对象的位姿关键点时,通过以下方式实现:

首先,获取点云簇中包含的各个数据点的三维位置坐标,根据各个数据点的三维位置坐标所对应的预设运算结果,确定点云簇所对应的物品对象的位姿关键点的位置信息。例如,假设聚类后得到的一个点云簇中包含一千个数据点,分别获取一千个数据点的三维位置坐标,计算一千个数据点的三维位置坐标的平均值,将平均值所对应的数据点作为点云簇所对应的物品对象的位姿关键点。当然,上述的预设运算方式除求平均值之外,还可以为求重心、求最大值或最小值等,本发明对此不作限定。

然后,通过主成分分析法(Principal Component Analysis,PCA)对点云簇中包含的各个数据点进行分析处理,根据分析结果确定位姿关键点的位置信息的三维状态信息。其中,PCA是一种数学降维方法,利用正交变换把一系列可能线性相关的变量转换为一组线性不相关的新变量,也称为主成分,从而利用新变量在更小的维度下展示数据的特征。通过主成分分析法能够找出一千个数据点中变化量最小的方向以及变化量最大的方向。其中,将变化量最小的方向作为Z轴方向,将变化量最大的方向作为X轴方向,并通过右手坐标系确定Y轴方向,从而确定位姿关键点的位置信息的三维状态信息,以反映位姿关键点在三维空间中的方向特征。其中,Z轴方向即为深度坐标轴的方向,该深度坐标轴的方向与上文提到的预设深度方向一致。

最后,计算各个点云簇所对应的物品对象的位姿关键点以及位姿关键点的深度值。其中,位姿关键点的深度值为物品对象对应于深度坐标轴的坐标值,其中,深度坐标轴根据相机拍照方向、重力方向或物品承载面的垂直线所在的方向设定。由此可见,深度坐标轴的方向与上文提到的预设深度方向一致,也可以有三种实现方式,此处不再赘述。相应的,深度值用于反映物品对象处于该深度坐标轴的位置。具体实施时,深度坐标轴的原点以及方向可以由本领域技术人员灵活设定,本发明对深度坐标轴的原点设置方式不作限定。例如,当深度坐标轴根据相机拍照方向设置时,深度坐标轴的原点可以为相机所在的位置,深度坐标轴的方向为从相机指向物品的方向,因此,各个物品的深度值对应于物品到相机的距离。相应的,位姿关键点的深度值能够反映物品对象距离相机摄像头的远近。

步骤S230:按照深度值对各个点云簇所对应的物品对象进行分层处理,得到多个从顶层至底层依次排列的点云分层。

具体的,按照深度值对各个点云簇所对应的物品对象进行分层处理,得到多个从顶层至底层依次排列的点云分层。具体实施时,将各个点云簇所对应的物品对象按照深度值进行有序排列,按照分层阈值将排序后的各个点云簇划分为多个点云分层;其中,若两个点云簇的深度值之差小于分层阈值,则该两个点云簇属于同一个点云分层;若两个点云簇的深度值之差不小于分层阈值,则该两个点云簇属于不同的点云分层。由此可见,通过合理设置分层阈值,能够控制每个点云分层的厚度。其中,各个点云分层对应的分层阈值可以相同也可以不同。例如,可以设置顶层点云分层(或底层点云分层)的分层阈值大于或小于其他各层点云分层的分层阈值,从而控制顶层点云分层(或底层点云分层)的厚度。

其中,顶层和底层的概念是根据物品之间的压叠关系确定的,各个物品受重力作用,必然导致底层物品位于顶层物品的下方。因此,位于顶层的点云分层距离物品承载面最远,位于底层的点云分层距离物品承载面最近。或者说,位于顶层的点云分层距离相机摄像头最近,而位于底层的点云分层则距离相机摄像头最远。每个点云分层中包含一个或多个物品对象。

步骤S240:按照从顶层至底层的顺序,依次将当前点云分层中包含的物品对象作为目标物品对象,当判断出与目标物品对象的位姿关键点相对应的覆盖检测区域内包含与当前点云分层相对应的底层点云分层中的物品对象时,将与当前点云分层相对应的底层点云分层中的物品对象确定为压叠物品对象。

其中,多个从顶层至底层依次排列的点云分层的数量为N,且位于最顶层的点云分层为第1个点云分层,位于最底层的点云分层为第N个点云分层;则当目标物品对象所在的当前点云分层为第M个点云分层时,与当前点云分层相对应的底层点云分层包括:位于第M个点云分层底部的N-M个点云分层。其中,N和M均为自然数,且M小于或等于N。具体实施时,按照从第1层至第N层的顺序,依次将当前点云分层中包含的物品对象作为目标物品对象,判断与目标物品对象的位姿关键点相对应的覆盖检测区域内是否包含与当前点云分层相对应的底层点云分层中的物品对象。

具体实施时,假设N为4,先将最顶层的第1个点云分层作为当前点云分层,将第1个点云分层中的物品对象L1作为目标物品对象,绘制与目标物品对象的位姿关键点相对应的覆盖检测区域;然后,判断位于第1个点云分层底部的3个点云分层中的物品对象是否位于与该目标物品对象的位姿关键点相对应的覆盖检测区域内;接下来,再将第2个点云分层作为当前点云分层,将第2个点云分层中的物品对象L2作为目标物品对象,绘制与目标物品对象的位姿关键点相对应的覆盖检测区域;然后,判断位于第2个点云分层底部的2个点云分层中的物品对象是否位于与该目标物品对象的位姿关键点相对应的覆盖检测区域内……以此类推。

其中,与目标物品对象的位姿关键点相对应的覆盖检测区域包括:与目标物品对象的位姿关键点相对应的椎体区域;其中,椎体区域的顶部根据目标物品对象的位姿关键点确定,且椎体区域的底部位于目标物品对象所在的当前点云分层所对应的底层点云分层中。例如,椎体区域的顶部与目标物品对象的位姿关键点重合。其中,椎体区域包括:圆锥区域和/或圆台区域。其中,当椎体区域为圆锥区域时,圆锥区域的顶点根据目标物品对象的位姿关键点确定,例如,圆锥区域的顶点与目标物品对象的位姿关键点重合。当椎体区域为圆台区域时,圆台区域的上底面根据目标物品对象的位姿关键点确定,例如,圆台区域的上底面的圆心与目标物品对象的位姿关键点重合。

例如,以椎体区域为圆锥区域为例,当将上例中的第1个点云分层作为当前点云分层,且将第1个点云分层中的物品对象L1作为目标物品对象时,通过以下方式绘制与目标物品对象L1的位姿关键点相对应的覆盖检测区域:以目标物品对象L1的位姿关键点为圆锥顶点,朝向底层点云分层的方向向下绘制圆锥区域,相应的,圆锥区域的底部位于第2至第4个点云分层中的任一点云分层中,具体取决于圆锥区域的高度以及各个点云分层的厚度。另外,圆锥区域的覆盖范围的广度取决于圆锥的夹角角度。具体的,圆锥的立体几何定义如下:以直角三角形的直角边所在直线为旋转轴,其余两边旋转360度而成的曲面所围成的几何体叫做圆锥,旋转轴叫做圆锥的轴,垂直于轴的边旋转而成的曲面叫做圆锥的底面,不垂直于轴的边旋转而成的曲面叫做圆锥的侧面,无论旋转到什么位置,不垂直于轴的边都叫做圆锥的母线。参照上述定义,当圆锥的底面与圆锥的侧面之间的夹角越小时,圆锥区域的覆盖范围越宽;当圆锥的底面与圆锥的侧面之间的夹角越大时,圆锥区域的覆盖范围越窄。并且,当圆锥的旋转轴越长时,圆锥区域覆盖的底层点云分层的层数越多;当圆锥的旋转轴越短时,圆锥区域覆盖的底层点云分层的层数越少。实际实施时,可以将圆锥的底面与圆锥的侧面之间的夹角设置的尽量小,以覆盖更宽广的区域,从而使压叠判断更加严格;可以将圆锥的旋转轴的长度设置得足够长,以使圆锥区域覆盖位于当前点云分层下方的各个点云分层。

相应的,每当判断出与目标物品对象的位姿关键点相对应的覆盖检测区域内包含与当前点云分层相对应的底层点云分层中的物品对象时,将与当前点云分层相对应的底层点云分层中的物品对象确定为压叠物品对象。该压叠物品对象是指:被位于上层的至少一个物品对象压住的物品对象,因而应从待抓取对象中剔除。

步骤S250:将各个点云分层中包含的除压叠物品对象之外的物品对象确定为待抓取对象。

由于上一步骤已经检测出压叠物品对象,该压叠物品对象是指:被上层点云分层中的物品压住的物品,因此,为了避免带飞上层物品的问题,将各个点云分层中包含的除压叠物品对象之外的物品对象确定为待抓取对象。通过上述方式,能够剔除压叠物品对象,从而确保待抓取对象中不包含被压住的物品,从而提升抓取的可靠性。

步骤S260:按照各个待抓取对象的位姿关键点的深度值对各个待抓取对象进行排序,根据排序结果确定各个待抓取对象的抓取顺序。

其中,将各个待抓取对象按照与摄像头或物品承载面之间的距离远近进行排序,并根据排序结果确定各个待抓取对象的抓取顺序;其中,距离摄像头越近的待抓取对象的抓取顺序越靠前;距离摄像头越远的待抓取对象的抓取顺序越靠后;或者,距离物品承载面越近的可抓取对象的抓取顺序越靠后;距离物品承载面越远的可抓取对象的抓取顺序越靠前。通常情况下,由于相机从上往下拍摄,因此,距离摄像头近的可抓取对象位于顶层,而距离摄像头远的可抓取对象位于底层。因此,通过排序结果能够将各个可抓取对象按照从顶层到底层的顺序依次排列,进而在抓取时能够按照从顶层到底层的顺序依次抓取。其中,可抓取对象与物品承载面之间的距离为:可抓取对象沿物品承载面的垂直线到物品承载面的间隔距离。即:可抓取对象与物品承载面之间的距离是指可抓取对象与物品承载面之间的垂直距离。

步骤S270:向机器人输出抓取指令,以供机器人根据抓取指令执行抓取操作。

具体的,上述步骤主要根据相机拍摄的信息进行处理,以实现可抓取对象的识别以及抓取顺序的确定。通常情况下,相机与机器人分别属于不同的设备,因此,需要进一步向机器人输出抓取指令,以供机器人根据抓取指令执行抓取操作。

考虑到相机所处位置与机器人所处位置往往并不相同。因此,可通过坐标系转换的方式定位待抓取对象,具体通过以下方式实现:获取相机坐标系与机器人坐标系之间的转换关系;根据该转换关系,将对应于相机坐标系的各个待抓取对象的位姿关键点转换到机器人坐标系中,向机器人输出转换后的各个待抓取对象的位姿关键点,以供机器人执行抓取操作。其中,上述各个步骤中描述的待抓取对象的三维位姿信息都是根据相机坐标系确定的,为了便于机器人实现抓取操作,需要将其转换至机器人坐标系中。其中,相机坐标系与机器人坐标系之间的转换过程可根据相机所处方位与机器人所处方位之间的相对关系确定。

由此可见,本实施例中的三维物品区域中包括多个沿预设深度方向堆叠的可抓取对象,其中,可抓取对象包括:纸箱、纸盒、信封、文件袋、明信片等片状物体包装、塑料软包(包括但不限于零食包装、牛奶利乐枕包装、牛奶塑料包装等等)、药妆瓶、药妆品、和/或不规则的玩具物品等。该方式可帮助末端装配有真空吸盘的工业机器人,从混乱堆叠的物品堆中,将物品逐个捡出,用于后续的扫码,装载等工位流程。

另外,本领域技术人员还能够针对步骤S260进行各种改动和变形:在针对各个待抓取对象进行排序时,除按照深度值进行排序外,还可以直接按照待抓取对象所在的点云分层的层级进行排序:按照从顶层至底层依次抓取的顺序,设置各个点云簇所对应的物品对象的抓取顺序;其中,当同一点云分层中包含的物品对象为多个时,根据各个物品对象的尺寸大小设置同一点云分层内的多个物品对象的抓取顺序。具体的,按照从顶层至底层依次抓取的顺序,设置各个点云分层中的点云簇所对应的物品对象的抓取顺序。相应的,位于顶层的点云分层中的点云簇所对应的物品对象的抓取顺序早于位于底层的点云分层中的点云簇所对应的物品对象的抓取顺序,从而使位于上层的点云分层中的物品对象的抓取顺序优先于位于下层的点云分层中的物品对象。优先抓取上层的物品能够防止因下层物品被压住而导致上层物品被带飞的问题。另外,若同一点云分层中包含的物品对象为多个时,进一步获取各个物品对象的尺寸,进而根据各个物品对象的尺寸大小设置同一点云分层内的多个物品对象的抓取顺序。其中,物品对象的尺寸可通过多种方式表示,例如,可通过物品对象的体积、表面积等表示。在实际过程中,考虑到小物品被大物品压住的概率较大,因此,优先抓取尺寸较大的物品对象,能够防止抓取过程中被压住的物品飞出的情况。具体实施时,获取同一点云分层中包含的各个物品对象的暴露表面积和/或体积,将各个物品对象的暴露表面积和/或体积进行比较;根据比较结果将各个物品对象按照暴露表面积和/或体积从大到小的顺序进行排序,按照排序结果设置多个物品对象的抓取顺序。即:先抓取暴露表面积和/或体积大的物品对象,后抓取暴露表面积和/或体积小的物品对象。由于较大的物品对象容易压住其他小件物品对象,因此,优先抓取大的物品对象能够有效避免被压住的物品对象先抓取时导致的其他物品飞出的问题。

综上可知,该方式通过设置覆盖检测区域的方式能够准确识别被压叠的物品对象,从而在确定待抓取对象时剔除压叠物品对象,防止其他物品飞出并破坏的问题,提升了抓取过程的可靠性。并且,该方式通过设置点云分层,能够按照从上到下的顺序依次抓取物品,并且,当同层点云分层包含多个物品时,还能够进一步根据各个物品的尺寸大小,优先抓取尺寸较大的物品。

图3示出了根据本发明又一个实施例的对象抓取装置的结构示意图,如图3所示,该装置包括:

聚类模块31,适于针对与三维物品区域相对应的点云进行聚类处理,得到多个与物品对象相对应的点云簇;

计算模块32,适于计算各个点云簇所对应的物品对象的位姿关键点以及所述位姿关键点的深度值,按照深度值对各个点云簇所对应的物品对象进行分层处理,得到多个从顶层至底层依次排列的点云分层;

确定模块33,适于按照从顶层至底层的顺序,依次将当前点云分层中包含的物品对象作为目标物品对象,当判断出与所述目标物品对象的位姿关键点相对应的覆盖检测区域内包含与所述当前点云分层相对应的底层点云分层中的物品对象时,将所述与所述当前点云分层相对应的底层点云分层中的物品对象确定为压叠物品对象;

抓取模块34,适于将各个点云分层中包含的除压叠物品对象之外的物品对象确定为待抓取对象。

可选的,所述与所述目标物品对象的位姿关键点相对应的覆盖检测区域包括:与所述目标物品对象的位姿关键点相对应的椎体区域;

其中,所述椎体区域的顶部根据所述目标物品对象的位姿关键点确定,且所述椎体区域的底部位于所述目标物品对象所在的当前点云分层所对应的底层点云分层中。

可选的,所述椎体区域包括:圆锥区域和/或圆台区域;

其中,当所述椎体区域为圆锥区域时,所述圆锥区域的顶点根据所述目标物品对象的位姿关键点确定;当所述椎体区域为圆台区域时,所述圆台区域的上底面根据所述目标物品对象的位姿关键点确定。

可选的,所述多个从顶层至底层依次排列的点云分层的数量为N,且位于最顶层的点云分层为第1个点云分层;则当所述目标物品对象所在的当前点云分层为第M个点云分层时,所述与所述当前点云分层相对应的底层点云分层包括:位于第M个点云分层底部的N-M个点云分层;其中,N和M均为自然数,且M小于或等于N。

可选的,所述计算模块具体适于:

获取点云簇中包含的各个数据点的三维位置坐标,根据各个数据点的三维位置坐标所对应的预设运算结果,确定点云簇所对应的物品对象的位姿关键点的位置信息;

通过主成分分析法对所述点云簇中包含的各个数据点进行分析处理,根据分析结果确定位姿关键点的位置信息的三维状态信息。

可选的,所述计算模块具体适于:

将各个点云簇所对应的物品对象按照深度值进行有序排列,按照分层阈值将排序后的各个点云簇划分为多个点云分层;

其中,若两个点云簇的深度值之差小于所述分层阈值,则该两个点云簇属于同一个点云分层;若两个点云簇的深度值之差不小于所述分层阈值,则该两个点云簇属于不同的点云分层。

可选的,所述抓取模块进一步适于:

按照各个待抓取对象的位姿关键点的深度值对各个待抓取对象进行排序,根据排序结果确定各个待抓取对象的抓取顺序;

其中,所述深度值为物品对象对应于深度坐标轴的坐标值,其中,所述深度坐标轴根据相机拍照方向、重力方向或物品承载面的垂直线所在的方向设定。

可选的,所述抓取模块具体适于:

将各个待抓取对象按照与摄像头或物品承载面之间的距离远近进行排序,并根据排序结果确定各个待抓取对象的抓取顺序;

其中,距离摄像头越近的待抓取对象的抓取顺序越靠前;距离摄像头越远的待抓取对象的抓取顺序越靠后;距离物品承载面越近的待抓取对象的抓取顺序越靠后;距离物品承载面越远的待抓取对象的抓取顺序越靠前。

可选的,所述抓取模块进一步适于:

获取相机坐标系与机器人坐标系之间的转换关系;

根据所述转换关系,将对应于相机坐标系的各个待抓取对象的位姿关键点转换到机器人坐标系中,向机器人输出转换后的各个待抓取对象的位姿关键点,以供机器人执行抓取操作。

可选的,所述三维物品区域中包括多个沿预设深度方向堆叠的待抓取对象;其中,所述待抓取对象包括:纸箱、纸盒、信封、塑料软包、药妆品、和/或玩具。

上述各个模块的具体结构和工作原理可参照方法实施例中相应步骤的描述,此处不再赘述。

本申请实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的对象抓取方法。

图4示出了根据本发明实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。

如图4所示,该电子设备可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。

其中:

处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。

通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。

处理器402,用于执行程序410,具体可以执行上述域名解析方法实施例中的相关步骤。

具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。

处理器402可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。

存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

程序410具体可以用于使得处理器402执行上述方法实施例中的各项操作。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的电子设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种无人驾驶车辆隧道内姿态检测方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!