System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及三维姿态检测的,尤其是指一种基于icp算法的工件内部关键点定位方法。
技术介绍
1、在当前国内的许多工厂中,生产流水线上的工件需要检测其内部的一些关键点,以验证其合格性。然而,这个工作目前主要依赖于人工完成,导致了两个主要问题:一是耗费大量人力资源,增加了企业的生产成本;二是由于人工操作的主观性和不稳定性,检测结果无法得到很好的保障,从而可能导致不合格的产品流出工厂,进入市场,给消费者带来安全隐患,对工厂造成经济损失。如何利用好自动化设备有效、高效地对工件内部的关键点进行检测已经成为一个迫切需要解决的问题。
技术实现思路
1、本专利技术的目的在于克服现有技术的缺点与不足,提出了一种基于icp算法的工件内部关键点定位方法,利用3d激光相机对工件内部快速的扫描,精准地定位关键点的位置,借助机械臂进行有效的检测关键点状态,不仅大大降低了生产成本,还能保障每一个工件都进行了有效检测,防止出现漏检、错检的情况,可以大幅度提高生产效率和产品质量,为工厂的品质管理提供了更多依据和支持。
2、为实现上述目的,本专利技术所提供的技术方案为:基于icp算法的工件内部关键点定位方法,包括以下步骤:
3、1)先对机械臂和3d激光相机进行手眼标定,得到相机坐标系与世界坐标系之间的坐标变换矩阵;
4、2)固定工件在传送带上的位置,用3d激光相机进行扫描,得到源点云,即该工件的第一张点云图片,同时调试机械臂,让机械臂移动到关键点的位置,得到世界坐标系下面关键点的
5、3)改变工件位置,重新对工件进行扫描,得到目标点云,即该工件的第二张点云图片;
6、4)对两张点云图片进行预处理,包括随机采样、体素化和异常点剔除,使得点云数据更加少量、平整,有助于进行匹配;
7、5)利用icp算法将两张点云图片进行配准,得到源点云和目标点云之间的配准矩阵,将配准矩阵分解为旋转矩阵和平移矩阵;
8、6)借助步骤1)的坐标变换矩阵以及步骤5)得到的配准矩阵,计算出改变位置后,工件内部关键点在世界坐标系下的三维坐标。
9、进一步,在步骤1)中,对机械臂和3d激光相机进行标定,需要选择一个标定板,标定板上面需要有一些能够用来定位的标记点,首先用3d激光相机观察标定板,检测出标记点的图片坐标,然后用机械臂移动到标记点位置,得到标记点在机械臂坐标系下的坐标,借助多个标记点在两个坐标系下的三维坐标,计算世界坐标系与相机坐标系之间的坐标变换矩阵t_g。
10、进一步,在步骤2)中,固定传送带上工件的位置,用3d激光相机扫描工件的三维图片,得到源点云,用于后面进行配准,接着用机械臂移动到工件内部关键点的位置,得到关键点在世界坐标系下的三维坐标w:
11、w={x,y,z}
12、式中,x、y、z分别是关键点在世界坐标系下的x、y、z轴坐标。
13、进一步,在步骤3)中,改变工件位置是模仿实际生产中工件是由人员随机摆放在传送带上面,用3d激光相机对工件进行扫描,得到随机状态下工件的点云图片,即目标点云,用于与源点云进行配准。
14、进一步,在步骤4)中,对源点云和目标点云进行数据的预处理,预处理内容具体如下:
15、读取源点云的数据,构建点集s:
16、s={a1,a2,…,an}={ai|i=1,2,…,n}
17、式中,ai表示点集中的第i个数据,即是工件表面上被扫描到的第i个点在相机坐标下面的三维坐标;
18、读取目标点云的数据,构建点集p:
19、p={b1,b2,…,bm}={bj|j=1,2,…,m}
20、式中,bj表示点集中的第j个数据,即是待匹配工件表面上被扫描到的第j个点在相机坐标下面的三维坐标;
21、分别对点集s和点集p进行随机采样,采样的比例设置为500,即采样后的点云数量为原点云数量的1/500;
22、对随机采样后的点云进行体素化,异常点的剔除得到规整的点云数据,构建新的源点云数据集k:
23、k={d1,d2,…,dq}={di′|i′=1,2,…,q}
24、式中,di′表示源点云数据集中第i′个数据,这里的q是远小于n;
25、构建新的目标点云数据集g:
26、g={e1,e2,…,el}={ej′|j′=1,2,…,l}
27、式中,ej′表示目标点云数据集中第j′个数据,这里的l是远小于m。
28、进一步,在步骤5)中,使用icp算法将目标点云进行配准,具体步骤如下:
29、设定一个初始的变换矩阵t,t默认为4*4的单位对角矩阵;
30、对于每个源点云中的点,在目标点云中寻找对应的点,采用最近邻搜索方法找到源点云中的点的最近邻点,将之对应起来,形成对应的点对;
31、计算每个点对之间的欧式距离,这些距离之和作为误差e;
32、通过最小化误差来计算最优的刚体变换,通过优化算法进行求解,得到最优变换矩阵t_opt;
33、不断进行迭代计算,更新最优变换矩阵t_opt,直到误差e小于设定阈值y,返回满足条件的最优变换矩阵t_opt,这个矩阵也就是配准矩阵;
34、为了方便后面计算关键点在世界坐标系下的位置,需要将配准矩阵分解为旋转矩阵r和平移矩阵t,分解方式如下所示:
35、r=t_opt[:3,:3]
36、t=t_opt[:3,3]。
37、进一步,在步骤6)中,计算目标点云中关键点在世界坐标系下位置的具体过程如下:
38、首先,计算源点云中关键点在相机坐标系下面的三维坐标w_camera,计算公式如下:
39、w_camera=t_g-1*w
40、接着,计算关键点在目标点云中的对应位置w_tg:
41、w_tg=r*w_camera+t
42、最后,求出目标点云中关键点在世界坐标系下面的位置w_global:
43、w_global=t_g*w_tg。
44、本专利技术与现有技术相比,具有如下优点与有益效果:
45、1、本专利技术是首次将3d激光相机与机械臂进行配合,实现高效精准的对工件内部关键点的定位和检测。过去,工件内部关键点的检测通常依赖于人工操作,这不仅耗费大量人力资源,而且由于人为主观性和不稳定性,检测结果不能得到很好的保障,可能导致不合格产品的流出,给工厂和消费者带来安全隐患,造成经济损失。
46、2、本专利技术采用icp算法进行工件内部关键点的定位,icp算法具有较高的精度和稳定性,可以有效地将源点云与目标点云进行匹配,提高了检测的准确性和稳定性。与传统方法相比,本专利技术能够更准确地匹配对应点,避免了由于人为误差引起的检测不准确问题。
47、3、本专利技术的方法不仅适用于特定类型的本文档来自技高网...
【技术保护点】
1.基于ICP算法的工件内部关键点定位方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于ICP算法的工件内部关键点定位方法,其特征在于,在步骤1)中,对机械臂和3D激光相机进行标定,需要选择一个标定板,标定板上面需要有一些能够用来定位的标记点,首先用3D激光相机观察标定板,检测出标记点的图片坐标,然后用机械臂移动到标记点位置,得到标记点在机械臂坐标系下的坐标,借助多个标记点在两个坐标系下的三维坐标,计算世界坐标系与相机坐标系之间的坐标变换矩阵T_G。
3.根据权利要求2所述的基于ICP算法的工件内部关键点定位方法,其特征在于,在步骤2)中,固定传送带上工件的位置,用3D激光相机扫描工件的三维图片,得到源点云,用于后面进行配准,接着用机械臂移动到工件内部关键点的位置,得到关键点在世界坐标系下的三维坐标W:
4.根据权利要求3所述的基于ICP算法的工件内部关键点定位方法,其特征在于,在步骤3)中,改变工件位置是模仿实际生产中工件是由人员随机摆放在传送带上面,用3D激光相机对工件进行扫描,得到随机状态下工件的点云图片,即目标点云,用于与源
5.根据权利要求4所述的基于ICP算法的工件内部关键点定位方法,其特征在于,在步骤4)中,对源点云和目标点云进行数据的预处理,预处理内容具体如下:
6.根据权利要求5所述的基于ICP算法的工件内部关键点定位方法,其特征在于,在步骤5)中,使用ICP算法将目标点云进行配准,具体步骤如下:
7.根据权利要求6所述的基于ICP算法的工件内部关键点定位方法,其特征在于,在步骤6)中,计算目标点云中关键点在世界坐标系下位置的具体过程如下:
...【技术特征摘要】
1.基于icp算法的工件内部关键点定位方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于icp算法的工件内部关键点定位方法,其特征在于,在步骤1)中,对机械臂和3d激光相机进行标定,需要选择一个标定板,标定板上面需要有一些能够用来定位的标记点,首先用3d激光相机观察标定板,检测出标记点的图片坐标,然后用机械臂移动到标记点位置,得到标记点在机械臂坐标系下的坐标,借助多个标记点在两个坐标系下的三维坐标,计算世界坐标系与相机坐标系之间的坐标变换矩阵t_g。
3.根据权利要求2所述的基于icp算法的工件内部关键点定位方法,其特征在于,在步骤2)中,固定传送带上工件的位置,用3d激光相机扫描工件的三维图片,得到源点云,用于后面进行配准,接着用机械臂移动到工件内部关键点的位置,得到关键点在世界坐标系下的三维...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。