工件位姿识别方法、电子设备、存储介质及抓取系统与流程
未命名
09-10
阅读:109
评论:0

1.本发明涉及点云数据处理技术领域,尤其涉及工件位姿识别方法、电子设备、存储介质及抓取系统。
背景技术:
2.在3d视觉引导机械手智能操作的场景下,需要获取待抓取物的位姿信息,以便通过机器人或机械手等智能设备执行抓取等操作。但是,在采用传统的位姿获取方法对容器中的工件进行位姿识别时,检测得到的工件位姿准确性较低,难以满足用户需求。
技术实现要素:
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.图1是根据本发明的一个实施方式的工件位姿识别方法的流程示意图。
29.图2是不同形状工件的横截面示意图。
30.图3是根据本发明的一个实施方式的生成特征向量的流程示意图。
31.图4是原始点云数据的点云法向量的示意图。
32.图5是根据本发明的一个实施方式的确定工件实际位姿的流程示意图。
33.图6是对工件点云数据进行第二点云匹配后的点云的效果图。
34.图7是根据本发明的另一个实施方式的确定工件实际位姿的流程示意图。
35.图8是将工件第一端和第二端的端部点云与点云模型进行匹配后的效果图。
36.图9是根据本发明的另一个实施方式的工件位姿识别方法的流程框图。
37.图10是根据本发明的一个实施方式的采用处理系统的硬件实现方式的电子设备的示意图。
具体实施方式
38.下面结合附图和实施方式对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施方式仅用于解释相关内容,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分。
39.需要说明的是,在不冲突的情况下,本发明中的实施方式及实施方式中的特征可以相互组合。下面将参考附图并结合实施方式来详细说明本发明的技术方案。
40.除非另有说明,否则示出的示例性实施方式/实施例将被理解为提供可以在实践中实施本发明的技术构思的一些方式的各种细节的示例性特征。因此,除非另有说明,否则在不脱离本发明的技术构思的情况下,各种实施方式/实施例的特征可以另外地组合、分
离、互换和/或重新布置。
41.本文使用的术语是为了描述具体实施例的目的,而不是限制性的。如这里所使用的,除非上下文另外清楚地指出,否则单数形式“一个(种、者)”和“所述(该)”也意图包括复数形式。此外,当在本说明书中使用术语“包含”和/或“包括”以及它们的变型时,说明存在所陈述的特征、整体、步骤、操作、部件、组件和/或它们的组,但不排除存在或附加一个或更多个其它特征、整体、步骤、操作、部件、组件和/或它们的组。还要注意的是,如这里使用的,术语“基本上”、“大约”和其它类似的术语被用作近似术语而不用作程度术语,如此,它们被用来解释本领域普通技术人员将认识到的测量值、计算值和/或提供的值的固有偏差。
42.在工件的生产加工工序中,可以通过机械手进行取料、运料和下料。工件通常会被盛装和摆放在料框中,从而实现转运和储存。在需要取用工件以对工件进行加工时,机械手可以从料框中拾取工件以实现取料,并通过运动和动作将工件运动至目标位置附近以实现运料,之后将工件放置在目标位置处以实现下料。在机械手从料框中拾取工件之前,需要先对料框中的工件进行识别,获取到工件在料框中的摆放位姿,然后机械手才能够根据工件摆放位姿(简称工件位姿)来计算自身的抓取位姿。在识别工件位姿时,工件可能会与料框或料框内用于辅助盛装的板状物紧密接触,例如料框内可能放置有用于避免工件与料框摩擦撞击的纸板,纸板将料框本体与工件间隔开;又例如工件与工件之间可能会紧密接触,这都可能导致难以准确识别出工件位姿,使得检测到的工件位姿的数量和准确性均难以满足要求。
43.下面以对料框中的工件进行位姿识别的场景为例,参考附图描述本发明的工件位姿识别方法、电子设备、存储介质及机器人抓取系统。
44.图1是根据本发明的一个实施方式的工件位姿识别方法的流程示意图。参阅图1,本实施方式的工件位姿识别方法m10可以包括以下步骤s100、步骤s200、步骤s300、步骤s400和步骤s500。本实施方式的工件位姿识别方法m10中,待识别的工件具有相对的第一端和第二端,工件还具有位于第一端和所述第二端之间的第一表面,第一表面分别与第一端和第二端相接,第一表面为曲面,且第一表面为向外凸出的曲面。
45.s100,拍摄获取原始点云数据,原始点云数据包括内容物的点云数据,内容物包括所述工件和载具,工件置于载具中,工件在载具中的摆放位姿使得至少部分工件的第一表面能够至少部分地能够被相机观测到使得拍摄获取的工件的点云数据包括至少部分工件的第一表面的部分点云。
46.s200,依据经拍摄得到的原始点云数据生成相应的特征向量,特征向量表征内容物表面的点云几何特征。
47.s300,沿第一表面的点云的法线方向对特征向量进行点云滤波得到工件的点云集合,预设方向包括垂直于第一表面的方向,点云集合对应于内容物中的工件。
48.s400,基于工件的点云集合获取每个工件各自的工件点云数据。
49.s500,依据工件点云数据确定工件的工件实际位姿。
50.根据本发明的实施方式提出的工件位姿识别方法,通过对原始点云数据的特征向量沿着垂直于工件曲面的方向进行滤波,将点云中的料框以及料框内部设置的板状物滤除掉,准确地将工件从料框中分离出来,避免了由于工件与料框本体或料框内板状物紧密接触导致的工件识别障碍,使得在之后进行位姿识别时能够准确确定出工件的轴向边界,进
而能够准确定位工件位姿,提高了工件位姿的检测率和准确性。
51.载具是用于装载工件的工具。例如载具可以采用料框。在控制机械手从料框中拾取工件之前,可以通过机械手上配置的相机或者在现场的其他结构上配置的相机对预设位置进行拍照,得到点云文件,也就是原始点云数据。在原始点云数据中,被相机拍到的内容称为内容物,因此内容物既包括料框,也包括工件。
52.特征向量用于表征内容物表面的点云几何特征,点云几何特征指的是点云数据中包含的几何信息,例如坐标、法向量、曲率等信息,这些信息能够描述点云的形状、表面特征和空间分布等情况。料框的特征向量表征料框表面的点云几何特征,工件的特征向量表征工件表面的点云几何特征。
53.在原始点云数据中,料框的位置不固定,并且工件的端部朝向料框的内端面,料框本体可能会与工件紧密接触在一起,这可能导致在点云上工件和料框连成一片,从而无法找出工件的轴向边界。另外,若料框内侧设置有用于隔绝工件和料框以避免两者之间发生摩擦撞击的纸板,则纸板可能会与工件紧密接触在一起,同样可能导致在点云上工件和料框连成一片,从而无法找出工件的轴向边界。并且点云数据中可能存在有飞点的干扰,不利于后续对工件位姿进行识别。
54.虽然工件与料框或纸板之间可能紧密接触在一起,但是工件第一表面的法线方向与料框/纸板内壁的表面法线方向之间几乎是垂直的,因此可以沿z轴方向(即垂直于工件第一表面的方向)对原始点云数据的特征向量进行法向过滤,进而断开工件与料框/纸板之间的点云连接,获得工件在轴向上的边界,从而得到内容物中工件的整体点云数据集合。
55.出于要保留更多的工件点云数据的考虑,设置基于相机视野下的第一表面的曲面特征确定的第一滤波阈值,并基于第一滤波阈值进行法向滤波,能够在滤除掉料框点云数据的基础上尽可能保留更多的棒料点云。例如,当第一表面为圆柱面,在相机拍摄角度下获取的第一表面点云法向最大形成60度角时,相邻柱体之间法线跳变角度在60度之内。可以设置第一滤波阈值为60度以避免滤除其他工件的点云数据。该步骤不仅滤除了载具(在该实施例中,例如为料框)的点云数据,并且尽量大范围的保留了工件的点云数据。在其他实施例中,可以根据相机视野下的第一表面的曲面特征,例如点云法向的夹角或者曲率的变化等设置第一滤波阈值,防止过滤掉其他工件的点云数据。本领域技术人员应该了解,相机视野下的第一表面的曲面特征可以基于工件本身特性已知或者根据相机拍摄获取。需要注意的是,在设置第一滤波阈值的同时还需要根据该阈值的情况进行调整,当第一滤波阈值过大时需要进一步设置第一滤波阈值小于90
°
以防止在滤波时漏掉载具的点云数据。例如,当第一表面为圆柱面,在相机拍摄角度下获取的圆柱表面点云法向最大形成90度角,相邻柱体之间法线跳变角度在90度之内。可以设置第一滤波阈值为70度或80度以更大可能性的保留其他工件的点云数据。
56.在本公开另一实施例中,还包括基于上述法向滤波之后反向获取载具的点云数据,再基于原始点云数据以及载具的点云数据获取工件的点云数据。因拍摄获取的工件的点云数据包括至少部分工件的第一表面的部分点云,当有工件的第一表面未暴露于相机视野下时,会导致基于上述法向滤波之后获取工件的点云数据缺失。因此在上述方案的基础上结合该实施例的步骤可以防止工件点云数据丢失,也是基于此,摆放工件时有第一表面暴露于相机视野下即可,大大降低了工件的摆放难度,降低了操作难度。而且基于此,本方
案可以应用于具有均匀变化的曲面表面的工件,一定程度上扩大了本方案的应用场景。
57.点云数据集合中包含了n(n≥1)个工件的点云数据(这里的点云数据是指相机能够识别的工件的点云数据),此时相邻工件之间点云相连,因此还需要对点云数据集合进行分割,从而在集合中识别出n个工件中的各工件自身的点云数据,得到n份工件点云数据,每一份工件点云数据对应于一个工件。
58.在得到n个工件单独的工件点云数据后,对每个工件点云数据进行处理,例如进行点云筛选、点云匹配、点云滤波等操作,最终算出n个工件的工件实际位姿。可以理解的是,得到的工件实际位姿为相机坐标系下的位姿,在控制机械手对工件进行抓取时,还需要对工件实际位姿进行手眼标定矩阵转化和抓取点位姿转化,进而确定出机械手的抓取动作,然后控制机械手按照抓取动作进行工件抓取。
59.示例性地,工件可以为柱状工件,此时工件也称为棒料。工件的第一端和第二端分别为柱状工件的两个端部。图2是不同形状工件的横截面示意图。参阅图2,柱状工件可以具有多个侧表面。例如图2中的(a)情况,柱状工件具有两个侧表面,其中第一表面k的径向覆盖角度大于180度,第二表面为平面。又例如图2中的(b)情况,柱状工件具有三个侧表面,其中第一表面k的径向覆盖角度约为180度,第二表面和第三表面为互相垂直的平面。柱状工件还可以是呈圆柱状,例如图2中的(c)情况,此时工件为圆柱棒料,第一表面k为圆柱工件的侧表面。以下以圆柱状的工件为例进行说明。本领域技术人员应该了解,以下仅为本方案具有均匀变化趋势的第一表面的工件的示例性说明,并非是对本方案的限定。
60.工件在料框中水平堆叠摆放,两个端面分别朝向料框端面。多个工件在料框中堆叠形成一个工件堆。在同一堆工件中,摆放位置相邻的工件之间通过第一表面相接触。可以理解,每堆工件可以包括一层或多层工件,每层工件包括一个或多个并列摆放的工件。
61.图3是根据本发明的另一个实施方式的生成特征向量的流程示意图。参阅图3,步骤s200可以包括步骤s210。
62.s210,在经拍摄得到的原始点云数据中确定兴趣区域,并依据兴趣区域生成相应的特征向量。其中,兴趣区域(region of interest,roi)为包含料框和工件的区域,通过确定兴趣区域(region of interest,roi)来将原始点云数据所表征的点云图像中的料框及料框内工件的点云数据识别出来。
63.示例性地,步骤s210中依据兴趣区域生成相应的特征向量的方式可以包括:对兴趣区域进行下采样,并依据下采样的结果生成相应的特征向量。
64.由于相机直接获取到的原始点云数据的点云精度可能较高且点云数量较多,因此确定出的兴趣区域中可能仍然包含有数量较为庞大的点云,例如可能包含有近百万数量的点云。此时可以在确定出兴趣区域之后,先对兴趣区域内的点云数据进行体素降采样,然后再对降采样结果进行处理从而得到表征料框和工件的表面几何特征的特征向量。
65.体素降采样(voxel downsampling)是一种点云下采样的方法,该方法能够将点云中的点分配到一个三维网格结构中,并对每个网格单元计算一个代表性点的属性(如重心或平均位置),从而将点云的密度降低到所需的级别,同时保留关键的几何特征,并减少整体流程处理时间、降低计算量和提高处理速度。体素尺寸可以依据对点云匹配的精度要求来设置,例如可以将体素格子的边长设置为3毫米。
66.示例性地,步骤s200中生成的特征向量可以包括点云法向量。点云法向量可以通
过对点云数据进行点云法向估计得到。圆柱工件本身的点云质量较高,即点云相对完整且连续性好,几乎没有细节缺失,因此计算出的点云法向准确度也较高。图4是原始点云数据的点云法向量的示意图。参阅图4,图4中从各个点云的点处延伸出的线段为法线,图4上部的两条由点组成的接近水平的线为识别出的料框边缘。
67.由图4可见,圆柱料棒表面点云的法线方向与料框内壁的法线方向几乎垂直,因此,步骤s300中对点云法向量进行点云滤波时,可以采用法向滤波的方式进行滤波。点云法向滤波用于在去噪的同时保持点云的形状和边缘信息,通过对相邻点的法向量进行平均化来实现去噪的效果。点云法向滤波可以配置有滤波阈值,滤波阈值是指用于控制滤波强度和过滤效果的参数。由于点云数据中的法向量是通过计算点云中每个点周围的点的位置关系得出的,而这些位置关系可以表示为相邻点之间的夹角,因此滤波阈值可以设置为角度。具体来说,点云法向滤波的阈值可以被定义为两个法向量之间的最大夹角,如果夹角小于该阈值,则这两个法向量被认为是相似的。
68.法向滤波的滤波阈值可以依据需求设置,以便于在滤除掉料框的基础上,尽可能大范围获取更多的工件点云。例如,步骤s300中的法向滤波的滤波阈值可以设置为60
°
,也就是在相机拍摄角度下沿着垂直于圆柱工件圆柱面方向进行
±
60
°
的椎体过滤。
69.示例性地,在步骤s400中基于点云集合获取每个工件各自的工件点云数据的方式可以采取点云分割的方式,对点云集合进行点云分割时,基于圆柱工件的第一表面在相邻处的法线会骤变的特性,可以采用以下步骤实现点云分割:种子点选取步骤,从点云集合的待划分点集中选取种子点形成种子点集合,并以种子点作为当前点;区域分割步骤,对于当前点的相邻点,确定相邻点的法线与当前点的法线的角度差,若角度差小于预设角度阈值则将当前点添加到当前区域中;确定相邻点的曲率值,若曲率值小于预设曲率阈值则将相邻点加入种子点集合作为种子点,并删除相应的当前点;从种子点集合中选取新的种子点作为当前点代入区域分割步骤,直至种子点集合为空集,得到当前区域的点云;将点云集合中未进行划分的点云作为新的待划分点集代入种子点选取步骤,直至点云集合中所有的点均完成划分,得到的划分结果即可作为每个工件各自的工件点云数据。
70.在初始时刻,待划分点集即为点云集合中所有的点云。在从待划分点集中选取种子点时,可以先计算不同点的法线和曲率,并将曲率最小的点作为种子点。此时种子点集合中仅包括一个种子点,即该曲率最小的点。
71.预设角度阈值和预设曲率阈值均用于进行种子点筛选,若相邻点的角度差小于预设角度阈值但曲率值未小于预设曲率阈值,则该相邻点不可作为种子点,可以将该相邻点归类至当前区域中。若相邻点的角度差小于预设角度阈值且曲率值小于预设曲率阈值,则该相邻点可作为种子点。当种子点集合被清空时,说明完成了当前区域的生长过程。然后进行下一个区域生长过程。
72.在进行下一个区域生长过程时,待划分点集为点云集合中除了已完成区域生长的点之外的其他点。下一个区域生长过程依次类推,直至完成点云集合中所有点的遍历,即完成区域划分,得到多个区域。
73.基于区域增长的点云分割能够将点云数据集中的点分成不同的部分或区域,使得每个区域具有相似的特征,例如颜色或密度。该点云分割方法从种子点开始,通过添加与当前区域相邻的新点来逐步扩展区域,从而生成不同的区域,利用了相邻点的法线角度的连
续性和曲率来进行分割,以便将点云分成几个不同的簇。
74.对通过法向滤波进行过滤后的点云做基于区域增长的点云分割,能够基于圆柱工件之间在柱面相邻处的法线发生骤变的这一特性,经过点云分割能够在所有工件中分割出每一个圆柱体工件的点云,从而解决同一堆且同一层的圆柱工件之间的柱面相接触导致的识别障碍问题,也就是对于一层的圆柱工件来说,沿工件的排布方向将各个工件分别识别出来。
75.示例性地,在步骤s400中在点云集合中所有的点均完成划分之后,也就是对点云集合进行点云分割之后,可以先依据预设的点云数量区间对划分结果(点云分割结果)中的每份点云数据进行筛选,将满足点云数量区间的各份点云数据作为工件各自的工件点云数据。
76.由于圆柱工件的点云质量较高,几乎没有缺失部分,可以认为每个圆柱工件的点云点数相对稳定。因此可以根据聚类簇点数过滤聚类结果,也就是对点云分割的结果进行点云数量筛选。其中,聚类簇点数即为圆柱工件侧表面的点云数量。
77.点云数量区间可以预先通过实验和统计进行确定,其数值代表了按法向滤波的滤波阈值进行滤波后的圆柱工件点云数量参考值或普遍值的区间范围。例如经过点云分割后得到m份点云数据,则依次对m份点云数据进行筛选,若某份点云数据的点云数量大于点云数量区间的上限值或小于点云数量区间的下限值,则认为该点云数据对应的内容物不是工件,则将这份点云数据进行滤除,从而单独筛选出圆柱工件的点云。若某份点云数据表征的点云数量与于数量阈值大致匹配,则认为该点云数据被视为工件点云数据,该点云数据对应的内容物为工件。
78.图5是根据本发明的一个实施方式的确定工件实际位姿的流程示意图。图6是对工件点云数据进行第二点云匹配后的点云的效果图。参阅图5和图6,步骤s500可以包括步骤s510、步骤s520和步骤s530。
79.s510,对工件点云数据进行第一点云匹配,得到工件的候选工件位姿。
80.s520,对工件点云数据进行第二点云匹配,从候选工件位姿中确定可选工件位姿。其中,第二点云匹配的精度高于第一点云匹配的精度。
81.s530,依据可选工件位姿确定工件实际位姿。
82.第一点云匹配可以采用基于特征点对齐(point pair feature,ppf)的粗匹配方法,对每一个圆柱工件点云做基于特征点对齐的粗匹配以获取每一个圆柱工件的候选工件位姿。
83.可以理解的是,也可以采用ransac算法进行第一点云匹配。ransac(random sample consensus)算法是一种基于随机取样的迭代方法,能够应用于点云匹配。基于特征点对齐的粗匹配能够通过寻找具有鲁棒性的点云特征点,并在这些特征点周围提取描述子,然后利用这些描述子来确定点云中对应特征点之间的对应关系。该方法可以包括以下步骤:提取特征点、计算特征描述子、特征点匹配和位姿估计等。
84.示例性地,第二点云匹配的方式可以包括:点云关联步骤,以工件点云数据作为场景点云,在场景点云中确定与每个待匹配点之间距离最近的点作为关联点,形成待匹配点集和关联点集;确定待匹配点集和关联点集的重心坐标;依据重心坐标确定位姿变换矩阵和相应变换后的第一点集;确定第一点集和场景点云之间关联点的平均距离;将第一点集
中的点作为新的待匹配点代入点云关联步骤,直至满足迭代终止条件,通过最新的位姿变换矩阵得到可选工件位姿。
85.通过形成待匹配点集和关联点集,能够去除一些不具有关联点的点云。重心坐标是通过点集自身包含的点的坐标信息计算得到。在确定位姿变换矩阵时,还计算位姿变换矩阵的误差函数并使函数值最小。第一点集可以通过对位姿变换矩阵进行刚性变换得到。迭代终止条件可以是平均距离小于预设距离阈值,也可以是迭代次数小于预设迭代次数阈值。
86.第二点云匹配利用了第一点云匹配(粗匹配)提供的候选工件位姿和工件点云数据代表的完整场景点云,对每一个圆柱工件点云做基于最近点迭代(iterative cloest point,icp)的精匹配,得到的可选工件位姿的数据描述了将模型的位置和姿态转换到完整场景点云上的矩阵,即第二点云匹配的匹配结果为位姿转换矩阵,从而实现了候选位姿的调整,进而从中筛选出可用位姿。
87.可以理解的是,由于点云数据可能包含噪声和干扰点,使用基于特征点对齐的匹配方式难以进行准确描述,而使用基于最近点迭代的匹配方式能够只利用几何信息进行匹配,使得抗干扰能力更强,能够通过不断增加迭代次数来获得更好的匹配效果。
88.根据工件以及料框尺寸或根据现场工件摆放需求,工件在料框中可以形成两个工件堆,其中每个工件堆中工件摆放方式一致,两个工件堆的工件端面以相对的方式衔接或相邻。例如,每堆圆柱工件包括有六层工件,两堆工件相邻摆放,每个圆柱工件的同一端部朝向大致一致,也就是说,所有圆柱工件之间在轴向上大致平行。第一堆工件中,至少部分工件的第一端与第二堆工件中的一个或多个工件的第二端相对并衔接或者相邻。因此将工件放置在料框中时,这两堆工件中的每个圆柱工件都可能是一端与另一堆中的圆柱工件端部相接或相邻,另一端与料框或料框内用于辅助盛装的平面耗材相接或者相邻。因此,在进行相邻工件分割之后还要基于此情况继续进行端对端相接的工件的分割。
89.在工件摆放有两堆时,尤其是在步骤s520中采用基于最近点迭代的精匹配来进行第二点云匹配时存在圆柱体轴向偏移的问题。由于圆柱模型的特征可能不太明显,在采用完整圆柱模型匹配的过程中,可能存在匹配模型的“最近点”并非圆柱体边缘(即并非正确匹配对应点)的问题。例如,相邻两排的圆柱工件之间的端部接触较为紧密从而在点云视角下被视为同一个长圆柱的问题(参考图6左侧和右侧出现的上下两个圆柱对接形成一个圆柱)。这会导致匹配失准,影响匹配准确度。基于这种问题,增加了利用圆柱型工件端部具有的形状特点来进行点云匹配的步骤,以便解决在位姿识别时由于工件轴向偏移导致的匹配准确性不足的问题,如图7所示方案。图7是根据本发明的另一个实施方式的确定工件实际位姿的流程示意图。参阅图7,步骤s530可以包括步骤s531和步骤s533。
90.s531,获取工件点云数据中的边缘点云,并依据边缘点云确定工件的第一端和第二端的端部点云。
91.s533,依据第一端和所述第二端的端部点云、预设点云模型和可选工件位姿进行端部点云匹配,并依据端部匹配结果确定工件实际位姿。
92.根据本实施方式提出的确定工件实际位姿的方式,利用圆柱工件的两端边缘具有圆柱特征的特点,通过提取工件端部点云来强化圆柱特征,并使用预设模型进行点云匹配,解决了工件沿轴向偏移的问题,避免不同堆的两个相邻工件由于端部接触较为紧密而被视
为同一工件,进一步提高了匹配精度,提高了工件位姿的检测率和准确性,并且能够得出更多种类的位姿。
93.边缘点云指的是圆柱工件的边缘处的点云,能够表征圆柱工件的至少部分轮廓。端部点云匹配为精匹配,在匹配过程中,端部点云作为场景点云,可选工件位姿作为匹配时的初始位姿。可以理解的是,步骤s531和步骤s510之间的实施顺序可以是任意的,步骤s531可以在步骤s510之后实施,也可以和步骤s510并行实施,还可以在步骤s510之前实施。
94.示例性地,步骤s531可以包括:获取每个工件的工件点云数据的边缘部分,并对边缘部分进行合并,得到边缘点云。步骤s531还可以包括:分别沿工件的轴向正方向和轴向反方向对边缘点云进行法向滤波,得到工件的第一端和第二端的端部点云。其中,轴向依据第一端和第二端确定。
95.逐个获取圆柱工件点云的边缘,将所有圆柱工件边缘点云合并为一个点云(每一个圆柱工件的点云),用于提高后续计算速度。然后分别进行沿圆柱工件轴向正方向和轴向反方向的法向滤波,从而获取到圆柱工件两端的点云。对于圆柱工件来说,工件的轴向就是圆柱工件的中心线方向,轴向正方向和轴向反方向即为沿中心线的两个相反的方向。
96.图8是将工件第一端和第二端的端部点云与点云模型进行匹配后的效果图。参阅图8,在步骤s533的端部点云精匹配过程中,输入包括一个预设点云模型和可选工件位姿。预设点云模型为提前制作好的圆柱工件两端边缘点云模型,可选工件位姿通过步骤s520中第二点云匹配得到。匹配的过程包括将该模型转换到离目标相近的位置上并使这些输入去匹配端部点云场景,端部点云场景为圆柱工件两端的端部点云数据。精匹配输出的是调整后的位姿,例如输出位姿转换矩阵。之后利用端部点云匹配得到的端部匹配结果和步骤s300中法向滤波的滤波结果代表的完整场景点云进行精匹配,得到工件实际位姿的数据。之后即可利用工件实际位姿来控制机械手对工件进行抓取。
97.步骤s530利用提取到的圆柱工件的上、下两端边缘来进行匹配,在匹配过程中强化了圆柱特征,同时还使用两端边缘模型进行匹配,这样能够调整圆柱体轴向位置,解决了工件沿轴向偏移的问题。
98.示例性地,步骤s533中在进行端部点云匹配之前,可以先对第一端和第二端的端部点云进行合并。另外,在进行端部点云匹配之前,例如在对第一端和第二端的端部点云进行合并之后,可以先对第一端和第二端的端部点云进行统计滤波,然后再执行步骤s533的内容,也就是将经过合并和统计滤波之后的第一端和第二端的端部点云与点云模型进行匹配,得到相应匹配结果。通过统计滤波能够对第一端和第二端的端部点云中的干扰噪点和离群点进行过滤。具体可以采用均值滤波、中值滤波、高斯滤波或其他滤波方式来进行统计滤波。
99.示例性地,步骤s533中依据端部匹配结果确定工件实际位姿的方式可以包括:对端部点云匹配的匹配结果和原始点云数据的特征向量进行点云匹配,并依据匹配结果确定工件实际位姿。其中,端部点云匹配结果作为精匹配过程中输入的位姿数据,原始点云数据作为精匹配过程中输入的场景点云。通过对原始点云数据进行基于最近点迭代的点云匹配并计算匹配得分,从而筛选出工件实际位姿。
100.图9是根据本发明的另一个实施方式的工件位姿识别方法的流程框图。参阅图9,工件位姿识别方法可以包括以下步骤。
101.获取原始点云:获取原始点云数据,原始点云数据包括工件的点云数据和料框(载具)的点云数据。
102.降采样:在原始点云数据中确定兴趣区域,对兴趣区域进行下采样。
103.法向估计:确定下采样结果的点云法向量,从而得到与原始点云数据相应的特征向量。
104.法向滤波1:沿垂直于圆柱工件表面的方向对点云法向量进行法向滤波。
105.点云分割:对法向滤波的结果进行基于区域增长的点云分割。
106.点云筛选:依据预设的数量阈值对点云分割结果进行筛选,从而得到每个工件各自的工件点云数据。
107.点云粗匹配:对工件点云数据进行基于特征点对齐的粗匹配,得到所有工件中每个工件的候选工件位姿。
108.点云精匹配1:对工件点云数据进行基于最近点迭代的精匹配,从而从候选工件位姿中确定出可选工件位姿,其中,第二点云匹配的精度高于第一点云匹配的精度。
109.点云提取:获取所有工件中每个工件的工件点云数据的边缘部分。
110.点云合并1:对边缘部分进行合并,得到边缘点云。
111.正方向法向滤波:沿工件的轴向正方向对边缘点云进行法向滤波,得到工件的第一端的端部点云。其中,轴向依据第一端和第二端确定。
112.反方向法向滤波:沿工件的轴向反方向对边缘点云进行法向滤波,得到工件的第二端的端部点云。其中,轴向依据第一端和第二端确定。
113.点云合并2:对第一端和第二端的端部点云进行合并。
114.统计滤波:对第一端和第二端的端部点云进行统计滤波。
115.点云精匹配2:对端部点云与点云模型进行精匹配得到端部点云匹配结果。
116.点云精匹配3:对端部点云匹配结果和点云法向量进行点云精匹配,并依据匹配结果确定工件实际位姿。
117.图10是根据本发明的一个实施方式的采用处理系统的硬件实现方式的电子设备的示意图。参阅图10,本发明还提供了一种电子设备1000,电子设备1000可以包括存储器1300和处理器1200。存储器1300存储执行指令,处理器1200执行存储器1300存储的执行指令,使得处理器1200执行上述任一实施方式的工件位姿识别方法。其中,工件具有相对的第一端和第二端,以及位于第一端和第二端之间的第一表面,第一表面为曲面。
118.该电子设备1000可以包括执行上述流程图中各个或几个步骤的相应模块。因此,可以由相应模块执行上述流程图中的每个步骤或几个步骤,并且该装置可以包括这些模块中的一个或多个模块。模块可以是专门被配置为执行相应步骤的一个或多个硬件模块、或者由被配置为执行相应步骤的处理器来实现、或者存储在计算机可读介质内用于由处理器来实现、或者通过某种组合来实现。
119.例如,电子设备1000可以包括原始点云获取模块1002、特征向量生成模块1004、点云滤波模块1006、工件点云获取模块1008和实际位姿确定模块1010。
120.原始点云获取模块1002用于拍摄获取原始点云数据,所述原始点云数据包括内容物的点云数据,所述内容物包括所述工件和载具,其中,拍摄获取的工件的点云数据包括至少部分工件的所述第一表面的部分点云。
121.特征向量生成模块1004用于依据经拍摄得到的原始点云数据生成相应的特征向量,所述特征向量表征所述内容物表面的点云几何特征。
122.点云滤波模块1006用于沿所述第一表面的点云的法线方向对所述特征向量进行点云滤波获取所述工件的点云集合。
123.工件点云获取模块1008用于基于所述点云集合获取每个所述工件各自的工件点云数据。
124.实际位姿确定模块1010用于依据工件点云数据确定工件的工件实际位姿。
125.根据本发明的实施方式提出的电子设备,通过对原始点云数据的特征向量沿着垂直于工件曲面的方向进行滤波,将点云中的料框以及料框内部设置的板状物滤除掉,准确地将工件从料框中分离出来,避免了由于工件与料框本体或料框内板状物紧密接触导致的工件识别障碍,使得在之后进行位姿识别时能够准确确定出工件的轴向边界,进而能够准确定位工件位姿,提高了工件位姿的检测率和准确性。
126.示例性地,工件可以为柱状工件,工件的第一端和第二端分别为柱状工件的两个端部。工件可以呈圆柱状。工件在载具中可以水平堆叠摆放,工件的第一端和第二端的端面可以分别朝向载具的端面,第一表面可以朝向相机的拍摄端。工件可以摆放有两堆,每堆工件的工件摆放方式可以相同,每堆工件包括一层或多层工件,每层工件包括一个或多个并列摆放的工件,两个工件堆的工件端面可以以相对的方式衔接或相邻。
127.需要说明的是,本实施方式的电子设备1000中未披露的细节,可参照本发明提出的上述实施方式的工件位姿识别方法m10中所披露的细节,此处不再赘述。
128.该硬件结构可以利用总线架构来实现。总线架构可以包括任何数量的互连总线和桥接器,这取决于硬件的特定应用和总体设计约束。总线1100将包括一个或多个处理器1200、存储器1300和/或硬件模块的各种电路连接到一起。总线1100还可以将诸如外围设备、电压调节器、功率管理电路、外部天线等的各种其他电路1400连接。
129.总线1100可以是工业标准体系结构(isa,industry standard architecture)总线、外部设备互连(pci,peripheral component)总线或扩展工业标准体系结构(eisa,extended industry standard component)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,该图中仅用一条连接线表示,但并不表示仅有一根总线或一种类型的总线。
130.本发明还提供了一种可读存储介质,可读存储介质中存储有执行指令,执行指令被处理器执行时用于实现上述任一实施方式所述的工件位姿识别方法m10。
131.本发明还提供了一种机器人抓取系统,机器人抓取系统包括可读存储介质,可读存储介质为上述实施方式中的可读存储介质,以供机器人基于可读存储介质中存储的执行指令进行抓取。示例性地,机器人可以包括具有机械手的机械臂。
132.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施方式所属技术领域的技术人员所理解。处理器执行上文所描述的各个方法和处理。例如,本发明中的方法实施方式可以被实现为软件程序,其被有形地包含于机器可读介质,
例如存储器。在一些实施方式中,软件程序的部分或者全部可以经由存储器和/或通信接口而被载入和/或安装。当软件程序加载到存储器并由处理器执行时,可以执行上文描述的方法中的一个或多个步骤。备选地,在其他实施方式中,处理器可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行上述方法之一。
133.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,可以具体实现在任何可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
134.应当理解,本发明的各部分可以用硬件、软件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
135.本技术领域的普通技术人员可以理解实现上述实施方式方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种可读存储介质中,该程序在执行时,包括方法实施方式的步骤之一或其组合。
136.此外,在本发明各个实施方式中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个可读存储介质中。存储介质可以是只读存储器,磁盘或光盘等。
137.在本说明书的描述中,参考术语“一个实施方式/方式”、“一些实施方式/方式”、“具体示例”、或“一些示例”等的描述意指结合该实施方式/方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式/方式或示例中。在本说明书中,对上述术语的示意性表述不必须是相同的实施方式/方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施方式/方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施方式/方式或示例以及不同实施方式/方式或示例的特征进行结合和组合。
138.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
139.本领域的技术人员应当理解,上述实施方式仅仅是为了清楚地说明本发明,而并非是对本发明的范围进行限定。对于所属领域的技术人员而言,在上述公开的基础上还可以做出其它变化或变型,并且这些变化或变型仍处于本发明的范围内。
技术特征:
1.一种工件位姿识别方法,其特征在于,所述工件具有相对的第一端和第二端,以及位于所述第一端和所述第二端之间的第一表面,所述第一表面为曲面,所述方法包括:拍摄获取原始点云数据,所述原始点云数据包括内容物的点云数据,所述内容物包括所述工件和载具,其中,拍摄获取的工件的点云数据包括至少部分工件的所述第一表面的部分点云;依据经拍摄得到的原始点云数据生成相应的特征向量,所述特征向量表征所述内容物表面的点云几何特征;沿所述第一表面的点云的法线方向对所述特征向量进行点云滤波获取所述工件的点云集合;基于所述点云集合获取每个所述工件各自的工件点云数据;以及依据所述工件点云数据确定所述工件的工件实际位姿。2.根据权利要求1所述的工件位姿识别方法,其特征在于,沿所述第一表面的点云的法线方向对所述特征向量进行点云滤波获取所述工件的点云集合的步骤包括:基于相机视野下的所述第一表面的曲面特征确定第一滤波阈值;以及基于所述第一滤波阈值进行法向滤波以获取所述工件的点云集合。3.根据权利要求1所述的工件位姿识别方法,其特征在于,基于所述点云集合获取每个所述工件各自的工件点云数据,包括:种子点选取步骤,从所述点云集合的待划分点集中选取种子点形成种子点集合,并以所述种子点作为当前点;区域分割步骤,对于所述当前点的相邻点,确定所述相邻点的法线与所述当前点的法线的角度差,若所述角度差小于预设角度阈值则将所述当前点添加到当前区域中;确定所述相邻点的曲率值,若所述曲率值小于预设曲率阈值则将所述相邻点加入所述种子点集合作为种子点,并删除相应的所述当前点;从所述种子点集合中选取新的种子点作为当前点代入所述区域分割步骤,直至所述种子点集合为空集,得到当前区域的点云;以及将所述点云集合中未进行划分的点云作为新的待划分点集代入所述种子点选取步骤,直至所述点云集合中所有的点均完成划分。4.根据权利要求1所述的工件位姿识别方法,其特征在于,依据所述工件点云数据确定所述工件的工件实际位姿,包括:对所述工件点云数据进行第一点云匹配,得到所述工件的候选工件位姿及对所述工件点云数据进行第二点云匹配,从所述候选工件位姿中确定可选工件位姿,其中,所述第二点云匹配的精度高于所述第一点云匹配的精度;以及依据所述可选工件位姿确定工件实际位姿。5.根据权利要求4所述的工件位姿识别方法,其特征在于,所述第二点云匹配的方式包括:点云关联步骤,以所述工件点云数据作为场景点云,在所述场景点云中确定与每个待匹配点之间距离最近的点作为关联点,形成待匹配点集和关联点集;确定所述待匹配点集和所述关联点集的重心坐标;依据所述重心坐标确定位姿变换矩阵和相应变换后的第一点集;
确定所述第一点集和所述场景点云之间关联点的平均距离;以及将所述第一点集中的点作为新的待匹配点代入所述点云关联步骤,直至满足迭代终止条件,通过最新的位姿变换矩阵得到可选工件位姿。6.根据权利要求5所述的工件位姿识别方法,其特征在于,在所述工件摆放有两堆时,依据所述可选工件位姿确定工件实际位姿,包括:获取所述工件点云数据中的边缘点云,并依据所述边缘点云确定所述工件的第一端和第二端的端部点云;以及依据所述第一端和所述第二端的端部点云、预设点云模型和所述可选工件位姿进行端部点云匹配,并依据端部匹配结果确定工件实际位姿。7.根据权利要求6所述的工件位姿识别方法,其特征在于,依据所述边缘点云确定所述工件的第一端和第二端的端部点云,包括:分别沿所述工件的轴向正方向和轴向反方向对所述边缘点云进行点云滤波,得到所述工件的第一端和第二端的端部点云,其中,所述轴向依据所述第一端和所述第二端确定。8.一种电子设备,其特征在于,包括:存储器,所述存储器存储执行指令;以及处理器,所述处理器执行所述存储器存储的执行指令,使得所述处理器执行如权利要求1至7中任一项所述的工件位姿识别方法。9.一种可读存储介质,其特征在于,所述可读存储介质中存储有执行指令,所述执行指令被处理器执行时用于实现权利要求1至7中任一项所述的工件位姿识别方法。10.一种机器人抓取系统,其特征在于,包括:权利要求9所述的可读存储介质,以供机器人基于所述可读存储介质中存储的执行指令进行抓取。
技术总结
本发明涉及点云数据处理技术领域,并提供了一种工件位姿识别方法、电子设备、存储介质及抓取系统,该方法首先通过拍摄获取原始点云数据,然后依据经拍摄得到的原始点云数据生成相应的特征向量,之后沿第一表面的点云的法线方向对特征向量进行点云滤波获取工件的点云集合,基于点云集合获取每个工件各自的工件点云数据,最后依据工件点云数据确定工件的工件实际位姿。本发明通过对原始点云数据的特征向量进行滤波,并在滤波时沿着垂直于工件曲面的方向进行滤波,从而准确地将工件从料框中分离出来,提高了工件位姿的检测率和准确性。提高了工件位姿的检测率和准确性。提高了工件位姿的检测率和准确性。
技术研发人员:栾奥栋 李林轩 王梓儒 李宏坤 樊钰
受保护的技术使用者:北京迁移科技有限公司
技术研发日:2023.06.28
技术公布日:2023/9/7
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/