CN116958264A - 一种基于三维视觉的螺栓孔定位及位姿估计方法 - Google Patents
一种基于三维视觉的螺栓孔定位及位姿估计方法 Download PDFInfo
- Publication number
- CN116958264A CN116958264A CN202311018082.8A CN202311018082A CN116958264A CN 116958264 A CN116958264 A CN 116958264A CN 202311018082 A CN202311018082 A CN 202311018082A CN 116958264 A CN116958264 A CN 116958264A
- Authority
- CN
- China
- Prior art keywords
- point
- bolt hole
- point cloud
- points
- dimensional
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000004364 calculation method Methods 0.000 claims abstract description 32
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 claims abstract description 20
- 238000001914 filtration Methods 0.000 claims abstract description 14
- 229910052742 iron Inorganic materials 0.000 claims abstract description 10
- 230000011218 segmentation Effects 0.000 claims abstract description 7
- 238000005070 sampling Methods 0.000 claims abstract description 5
- 239000013598 vector Substances 0.000 claims description 56
- 230000008569 process Effects 0.000 claims description 42
- 238000012545 processing Methods 0.000 claims description 11
- 239000011159 matrix material Substances 0.000 claims description 6
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 238000012935 Averaging Methods 0.000 claims description 3
- 238000000354 decomposition reaction Methods 0.000 claims description 3
- 230000008030 elimination Effects 0.000 claims description 3
- 238000003379 elimination reaction Methods 0.000 claims description 3
- 239000012535 impurity Substances 0.000 claims description 3
- 230000017105 transposition Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 description 6
- 238000000605 extraction Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/762—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using clustering, e.g. of similar faces in social networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Length Measuring Devices With Unspecified Measuring Means (AREA)
Abstract
一种基于三维视觉的螺栓孔定位及位姿估计方法,它属于螺栓孔定位及位姿估计领域。本发明解决了现有方法的计算复杂度高、计算速度慢、定位及位姿估计的准确性差的问题。本发明首先获取包含螺栓孔的铁塔桁架场景点云,对点云进行统计滤波和下采样,再采用采样一致性分割算法获取桁架平面方程和平面点云,然后基于法线计算、半径搜索滤波和分割聚类粗定位出各个螺栓孔点云,最后,根据去噪后点云和粗定位的螺栓孔点云精定位出各个螺栓孔的位置,并估计出各个螺栓孔的位姿。本发明方法可以应用于螺栓孔定位及位姿估计。
Description
技术领域
本发明属于螺栓孔定位及位姿估计领域,具体涉及一种螺栓孔定位及位姿估计方法。
背景技术
铁塔组立施工现场螺栓紧固目前以人工为主,作业人员的技能熟练度和实践经验对螺栓紧固质量影响很大,紧固质量易受主观因素影响。与此同时,组立单元吊装一般具有动态性且多为高空带电作业,螺栓密集阵列拧紧操作精度高,劳动强度大,人工协同环节耗时长,对工人体力耐受要求极高。在电力***中,人工带电作业存在极大的安全隐患,特别是等电位作业时,此问题尤为突出。人工作业伤亡事故频发,也对人员安全提出了极大的挑战。为避免人为操作对紧固质量带来影响,同时降低施工人员劳动强度、提高工程数字化施工水平并加快螺栓紧固自动化,研制了铁塔组立螺栓紧固机器人。螺栓紧固机器人中的一项重要技术就是螺栓孔的定位与位姿估计,它使机器人能够准确地感知和识别工作场景中的螺栓孔,实现自动化的定位和对齐过程。视觉定位技术还能弥补其他传感器和机器人运动误差,确保螺栓的正确对准,从而避免因误差累积而引起的装配偏差。引入机器人视觉为螺栓紧固机器人赋予了更高的精确性、可靠性和自动化水平。
目前,主流的螺栓孔定位与位姿估计技术分为基于深度学习和基于传统算法这两种。使用深度学习技术进行螺栓孔的定位与位姿估计一般能够自动提取可供学习的特征,具有较好的泛化能力,适应复杂场景性能好。但是深度学习的数据需求量大,训练和推理时间长,计算资源消耗非常大而且对结果的解释性差。在实际的铁塔组立螺栓紧固机器人上基于深度学习的螺栓孔定位与位姿估计算法难以落地,因此基于传统算法的优势凸显出来。螺栓孔数据有二维图像和三维点云两种,三维点云相较于二维图像可以提供更丰富和准确的空间信息,并且受室外光照变化的影响更小。目前三维传感器如深度相机和激光扫描仪技术已经成熟,成本已经下降。因此,由三维点云衍生而来的三维视觉有了更广泛的应用前景,例如,发明专利申请CN114792312A采用增加了阈值判断的RANSAC空间圆拟合算法来定位螺栓孔的中心位姿,但是其所采用的三维视觉定位技术仍然存在以下问题:
1)未充分利用螺栓孔所在平面信息:对螺栓孔所在平面的信息没有很好地利用,仅仅用于确定平面点云,并没有充分考虑该平面对于螺栓孔定位和位姿估计的重要性。最终确定孔心位姿的空间三维圆拟合算法复杂度较高,并且受螺栓孔噪声点和遮挡程度影响较大,计算准确性难以保证。
2)仅进行精确定位:针对已识别的螺栓孔进行精确定位,而没有涉及对螺栓孔边界的粗定位。这可能导致在复杂环境或存在遮挡时,定位的准确性受到限制。并且算法全程只靠一步精确定位需要相当数量的点云,计算速度难以保证。
3)边界提取后直接进行螺栓孔圆形拟合:采用基于法线计算的点云边界提取算法得到孔边缘点云和板边缘点云,之后直接进行了螺栓孔三维圆拟合。即使是多孔板,板边缘点云的数量也较孔边缘点云的数量多。直接进行空间三维圆拟合而不对边界点云进行更进一步的区分和滤波处理,同样会减慢计算速度。
综上所述,现有基于三维视觉的定位方法仍然存在计算复杂度高、计算速度慢、定位及位姿估计的准确性差的问题,因此,提出一种新的技术以解决上述问题是十分必要的。
发明内容
本发明的目的是为解决现有方法的计算复杂度高、计算速度慢、定位及位姿估计的准确性差的问题,而提出了一种基于三维视觉的螺栓孔定位及位姿估计方法。
本发明为解决上述技术问题所采取的技术方案是:
一种基于三维视觉的螺栓孔定位及位姿估计方法,所述方法具体包括以下步骤:
步骤一、采用三维传感器对包含螺栓孔的铁塔桁架场景进行扫描获取点云数据;
步骤二、对步骤一中获取的点云进行去噪处理,获得去噪后的点云数据;
步骤三、对去噪后的点云数据进行降采样,获得降采样后的点云数据;
步骤四、基于降采样后的点云数据,采用随机采样一致性的平面模型分割方法确定桁架平面以及平面点云;
步骤五、分别计算出平面点云数据中每个点的法向量,再根据计算出的法向量初步确定边界点;
步骤六、从步骤五初步确定出的边界点中剔除掉杂点和异常值,得到边界点;
步骤七、对步骤六中得到的边界点进行聚类后,得到各个螺栓孔的边界点云;
步骤八、基于桁架平面,分别对各个螺栓孔的边界点云进行二维圆拟合,粗定位出各螺栓孔的中心;
步骤九、在步骤二获得的去噪后点云数据中,分别从步骤八中粗定位出的各螺栓孔圆心出发,提取出各螺栓孔局部的所有点云;
再对提取出的点云进行初步边界点确定、边界点剔除和边界点聚类后,得到各螺栓孔的精确点云数据;
步骤十、根据各螺栓孔的精确点云数据得到螺栓孔定位及位姿估计结果。
进一步地,所述对步骤一中获取的点云进行去噪处理采用的是统计滤波方法,去噪的具体过程为:
步骤二一、将步骤一获取的点云数据中包含的点云总数记为N,对于点云数据中的任意一个点Pi,将位于点Pi的K邻域内的点表示为Pj,j=1,2,…,K,分别计算出Pi与K邻域内的每个点的欧式距离后,再对计算出的欧式距离取平均得到均值diK是点Pi对应的K邻域欧氏距离均值,(xi,yi,zi)是点Pi的坐标,(xj,yj,zj)是点Pj的坐标;
同理,分别计算出每个点对应的K邻域欧氏距离均值diK,i=1,2,...,N;
步骤二二、计算diK的均值μ和标准差σ:
步骤二三、设置标准差系数s,根据标准差系数s、均值μ和标准差σ计算统计滤波的标准距离阈值范围[Tstd,1,Tstd,2];
Tstd,1=μ-sσ2
Tstd,2=μ+sσ2
步骤二四、对于点Pi,判断diK是否处于标准距离阈值范围[Tstd,1,Tstd,2]内;若diK不处于标准距离阈值范围[Tstd,1,Tstd,2]内,则点Pi是噪点,将点Pi从点云数据集中剔除,否则点Pi不是噪点,不需要对点Pi进行处理;
同理,分别对每个点进行判断后,得到去除噪点后的点云数据。
进一步地,所述步骤三的具体过程为:
步骤三一、对去噪后点云数据的点云空间进行三维体素网格划分,且划分后获得的每个立方体网格的大小均为V=(Vx,Vy,Vz),Vx,Vy和Vz分别是立方体网格在每个维度上的尺寸;
步骤三二、对于任意的一个立方体网格,从该立方体网格中选择出最接近该立方体网格中心的点云;
同理,分别对每个立方体网格进行处理后,选择出的全部点云数据即为降采样后的点云数据。
进一步地,所述步骤四的具体过程为:
步骤四一、设置最大迭代次数为T,并初始化当前迭代次数t为1;
步骤四二、从降采样后的点云数据中随机选取点集,根据随机选取出的点集拟合平面方程Atx+Bty+Ctz+Dt=0,At、Bt、Ct和Dt是第t次迭代拟合出的平面方程的系数,x、y、z为平面上点的三维坐标;
步骤四二、设置距离阈值dmax,分别计算降采样后点云数据中的每个点到平面Atx+Bty+Ctz+Dt=0的距离:
其中,di′是降采样后点云数据中的第i′个点到平面的距离,i′=1,2,…,N′,N′是降采样后点云数据中包含的点云总数;
若di′<dmax,则第i′个点为局内点,否则,第i′个点为局外点;
步骤四三、设置点数阈值m,根据步骤四二的结果判断局内点的个数是否大于m;
若局内点的个数大于m,则保存本次迭代拟合的平面方程后,执行步骤四四;
否则,局内点的个数小于等于m,则直接执行步骤四四;
步骤四四、判断当前迭代次数t是否小于T;
若t小于T,则令t=t+1,并返回执行步骤四二;
若t等于T,则从经过T次迭代保存下来的全部平面方程中选择出包含局内点最多的平面方程,将选择出的平面方程记为Ax+By+Cz+D=0,Ax+By+Cz+D=0即为桁架平面,将平面方程Ax+By+Cz+D=0所对应的全部局内点作为平面点云。
进一步地,所述步骤五的具体过程为:
步骤五一、对于平面点云数据中的任意一点Pi″,将距离Pi″最近的K′个点组成的集合记为Mi″,利用集合Mi″中的点计算协方差矩阵;
其中,对集合Mi″中全部点的x方向坐标取均值、y方向坐标取均值、z方向坐标取均值后,Pmean是由x方向均值、y方向均值和z方向均值组成的三维坐标,Pj′-Pmean代表将集合Mi″中第j′个点的三维坐标与三维坐标Pmean做差,上角标T代表转置;
对协方差矩阵进行特征值分解,将最小特征值所对应的特征向量作为点Pi″的法向量;
步骤五二、对步骤五一中计算出的法向量进行归一化,得到点Pi″的归一化后的法向量;
步骤五三、对于平面点云数据中的每个点均执行步骤五一和步骤五二的过程,得到每个点的归一化后的法向量;
步骤五四、对于平面点云数据中的任意一点Pi″,从平面点云数据中选取出点Pi″的k'个邻域点,将点Pi″的归一化后的法向量记为将k'个邻域点的归一化后的法向量记为/>分别计算点Pi″的归一化后法向量与每个邻域点的归一化后法向量的夹角后,再对计算出的夹角取平均值;
点Pi″的归一化后法向量Npi″=(xpi″,ypi″,zpi″)与第j″个邻域点的归一化后法向量的夹角为:
点Pi″对应的夹角平均值为:
步骤五五、判断θi″是否大于角度阈值θ0,若θi″>θ0,则点Pi″是边界点,否则点Pi″是非边界点;
步骤五六、同理,采用步骤五四和步骤五五对平面点云数据中的每个点分别进行处理,获得的全部边界点即为初步确定出的边界点。
进一步地,所述角度阈值θ0的取值为或/>
进一步地,所述步骤六的具体过程为:
设定搜索半径r,对于步骤五中初步确定出的边界点中的任意一点pi″′,从初步确定出的边界点中选取出与点pi″′欧式距离小于搜索半径r的点,选取出的点组成的集合N(pi″′)为:
N(pi″′)={pj″′|dist(pi″′,pj″′)<r}
其中,点pj″′是步骤五中初步确定出的边界点,dist(pi″′,pj″)代表点pi″与点pj″′的欧式距离;
其中,(xi″″,yi″,zi″′)是点pi″′的坐标,(xj″,yj″,zj″′)是点pj″′的坐标;
若集合N(pi″′)中包含的点数大于阈值n,则点pi″′为边界点,否则将点pi″′剔除;
同理,对步骤五中初步确定出的边界点中的每个点进行处理,得到剩余的边界点。
进一步地,所述步骤七的具体过程为:
步骤七一、将步骤六中得到的全部边界点标记为未分类状态,并创建一个包含全部未分类的点的列表;
步骤七二、从列表的未分类的点中随机选择出一个点作为种子点,将种子点从未分类列表中移除,再分别计算种子点与其它各个未分类的点的欧式距离,若某个未分类的点与种子点的欧式距离小于给定的距离阈值,则将该未分类的点添加到种子点的聚类中,并将该未分类的点从未分类列表中移除;
步骤七三、判断列表中是否有未分类的点,若列表中有未分类的点,则返回执行步骤七二,否则列表中没有未分类的点,则聚类结束,分别获得各聚类点云数据;
步骤七四、设置最小聚类点数和最大聚类点数,若某个聚类中包含的点数介于最小聚类点数与最大聚类点数之间,则该聚类属于螺栓孔的边界点云,且每个聚类分别对应一个螺栓孔的边界点云,否则,该聚类不属于螺栓孔的边界点云。
进一步地,所述步骤八中,分别对各个螺栓孔的边界点云进行二维圆拟合,得到各个螺栓孔的二维圆拟合结果;其具体过程为:
步骤八一、对于任意一个螺栓孔的边界点云,将该螺栓孔的边界点云向桁架平面上投影后,得到投影后的点集;
步骤八二、从投影后的点集中随机选择出若干个数据点,利用选择出的数据点的x方向和y方向坐标进行二维圆拟合;
拟合得到的二维圆方程为:(x-xcenter)2+(y-ycenter)2=r′2,其中,(xcenter,ycenter)是二维圆的圆心坐标,r′是二维圆半径;
步骤八三、分别计算投影后该螺栓孔的边界点云中每个点到圆心的距离,对于投影后该螺栓孔的边界点云中的任意一点,将该点到圆心的距离与半径r′做差,若做差结果的绝对值小于阈值ε,则认为该点在圆上,否则认为该点不在圆上;
对投影后该螺栓孔的边界点云中的每个点分别进行判断后,统计在圆上的总点数,若在圆上的总点数大于设定的阈值,则该次拟合得到的二维圆方程符合要求;否则,该次拟合得到的二维圆方程不符合要求;
步骤八四、重复步骤八二至步骤八三的过程,直至达到设定的最大迭代次数;
从符合要求的二维圆方程中选择出圆上总点数最多的二维圆方程,将选择出的二维圆方程作为该螺栓孔对应的圆方程,选择出的二维圆方程的圆心即为粗定位出的该螺栓孔的中心,二维圆方程的圆心坐标即为该螺栓孔中心在x方向和y方向的坐标,将该螺栓孔中心在x方向和y方向的坐标代入桁架平面Ax+By+Cz+D=0,得到该螺栓孔中心的z方向坐标;
步骤八五、同理,对各个螺栓孔的边界点云均执行步骤八一至步骤八四的过程。
更进一步地,所述步骤十的具体过程为:
步骤十一、对于任意一个螺栓孔的精确点云数据,将该螺栓孔的精确点云数据向桁架平面Ax+By+Cz+D=0进行投影,得到投影后的点云数据;
采用步骤八的方法对该螺栓孔投影后的精确点云数据进行二维圆拟合,得到二维圆的圆心和半径,再根据二维圆的圆心得到该螺栓孔的中心;
该螺栓孔的轴向姿态(Nx,Ny,Nz)螺栓孔由桁架平面的法向量确定,即(Nx,Ny,Nz)螺栓孔=(A',B',C'),其中,
步骤十二、对于任意一个螺栓孔的精确点云数据均执行步骤十一的过程,各个螺栓孔的定位和位姿估计全部完成。
本发明的有益效果是:
(1)本发明通过下采样降低螺栓孔场景点云总数以保证算法的运行速度。在对螺栓孔孔心进行粗略定位后,再回到下采样前的场景获取各螺栓孔局部所有点云对已识别的螺栓孔进行精定位。在复杂环境下或存在遮挡时,本发明的先粗后精定位方式既保证了计算速度,又提高了定位及位姿估计的准确性。
(2)本发明采用基于法线计算的点云边界提取算法得到孔边界点云和板边界点云,再采用半径搜索滤波算法剔除杂点,然后采用欧几里得聚类算法得到各螺栓孔边界点云,通过对边界点云的更进一步的区分和滤波处理,提高了后续螺栓孔定位的计算速度。
(3)将螺栓孔所在桁架拟合平面的法向量作为螺栓孔的法向量,在螺栓孔精定位的过程中,将螺栓孔边界点云向桁架平面投影,并对投影后的点进行二维圆拟合,以得到二维圆的圆心和半径。二维圆拟合较三维圆拟合更加简单高效,收敛性更好,减少了计算量和计算时间,并降低了计算复杂度,降低了来自非桁架平面、周围环境的噪声和不确定性的影响。用于确定桁架平面的点云数量较多,并且受到噪声点的干扰较小,这可以确保平板平面的准确性和完整性。
附图说明
图1为铁塔组立拧螺栓机器人的结构示意图;
图中,1、拧螺栓工业机器人,2、双目光栅结构光相机,3、末端夹具,4、螺栓;
图2为本发明的一种基于三维视觉的螺栓孔定位及位姿估计方法的流程图;
图3为点向平面投影过程的示意图;
图4为螺栓孔粗定位结果图;
图5为初步确定边界点的示意图;
图6为螺栓孔精定位的结果图。
具体实施方式
具体实施方式一、结合图2说明本实施方式。本实施方式所述的一种基于三维视觉的螺栓孔定位及位姿估计方法,所述方法具体包括以下步骤:
步骤一、采用三维传感器(可以是双目光栅结构光相机)对包含螺栓孔的铁塔桁架场景进行扫描获取点云数据;
步骤二、对步骤一中获取的点云进行去噪处理,获得去噪后的点云数据;
步骤三、对去噪后的点云数据进行降采样,获得降采样后的点云数据;
步骤四、基于降采样后的点云数据,采用随机采样一致性的平面模型分割方法(SACSeg)确定桁架平面以及平面点云;
步骤五、分别计算出平面点云数据中每个点的法向量,再根据计算出的法向量初步确定边界点;
步骤六、从步骤五初步确定出的边界点中剔除掉杂点和异常值,得到边界点;
步骤七、对步骤六中得到的边界点进行聚类后,得到各个螺栓孔的边界点云;
步骤八、基于桁架平面,分别对各个螺栓孔的边界点云进行二维圆拟合,粗定位出各螺栓孔的中心;
步骤九、在步骤二获得的去噪后点云数据中,分别从步骤八中粗定位出的各螺栓孔圆心出发,提取出各螺栓孔局部的所有点云;
再对提取出的点云进行初步边界点确定、边界点剔除(即步骤六的方法)和边界点聚类后,得到各螺栓孔的精确点云数据;
步骤十、根据各螺栓孔的精确点云数据得到螺栓孔定位及位姿估计结果。
本发明使用三维传感器拍摄包含螺栓孔的铁塔桁架场景,然后对点云进行输入检测算法处理。算法首先进行统计滤波以去除噪点,并通过体素化网格下采样来减少点云数量,从而提高计算速度。接下来,采用采样一致性分割算法来获取桁架平面方程、平面法向量以及平面点云。螺栓孔所在平面的法向量被认为是螺栓孔的法向量。然后,通过基于法线计算的散乱点云边界提取算法得到了桁架外部矩形边界点云和螺栓孔内部的边界点云。通过半径搜索滤波算法剔除杂点后,再次进行分割聚类以获取内边界,即多个螺栓孔点云。最后,通过计算螺栓孔内部点云的圆心来对粗略定位进行进一步改善。从桁架平面上计算得到的各螺栓孔三维圆心出发,以半径搜索的方式获取原输入场景去噪后的螺栓孔周围局部的所有点云,然后再次进行精确定位——基于法线计算的内外边界提取,并分析内边界以获取目标螺栓孔的几何参数。这种先粗后精的定位方式既保证了计算速度,又增加了用于计算螺栓孔的局部点云数量,从而提高了定位精度。
精确定位将获取的螺栓孔边界点云投影到桁架平面上,并对投影后的点进行二维圆拟合,以得到二维圆的圆心和半径。这样做的目的是利用二维圆拟合的简单性和高效性,以减少计算量和计算时间。通过将点云投影到桁架平面上,可以降低来自非桁架平面和周围环境的噪声和不确定性的影响。之前用于确定桁架平面的点云数量较多,并且受到噪声点的较小干扰,这可以确保平板平面的准确性和完整性。因此,将螺栓孔边界点云投影到桁架平面上,并通过二维圆拟合来减少数据中的干扰。
本发明算法的检测效果如图4、图5和图6所示。其中,图4为螺栓孔粗定位结果,图5左侧为步骤九中获得的空间圆环状点云,图5右侧为基于法线计算的内边界提取点云,图6为螺栓孔精定位的结果,圆心处白色点是二维圆拟合后生成的定位圆心。
采用如图1所示的铁塔组立拧螺栓机器人进行工作。拧螺栓机器人的大致工作流程为:双目光栅结构光相机2扫描场景点云,经螺栓孔定位和位姿估计算法处理后,给出目标螺栓孔位姿信息并引导拧螺栓机器人1到工作空间。拧螺栓机器人末端夹具3自动上料夹取螺栓4,对准目标螺栓孔完成后续的拧紧动作。
具体实施方式二、本实施方式与具体实施方式一不同的是,所述对步骤一中获取的点云进行去噪处理采用的是统计滤波方法,去噪的具体过程为:
步骤二一、将步骤一获取的点云数据中包含的点云总数记为N,对于点云数据中的任意一个点Pi,将位于点Pi的K邻域内的点表示为Pj,j=1,2,…,K,分别计算出Pi与K邻域内的每个点的欧式距离后,再对计算出的欧式距离取平均得到均值diK是点Pi对应的K邻域欧氏距离均值,(xi,yi,zi)是点Pi的坐标,(xj,yj,zj)是点Pj的坐标;
同理,分别计算出每个点对应的K邻域欧氏距离均值diK,i=1,2,...,N;
步骤二二、假设diK服从正态分布,计算diK的均值μ和标准差σ:
步骤二三、设置标准差系数s,根据标准差系数s、均值μ和标准差σ计算统计滤波的标准距离阈值范围[Tstd,1,Tstd,2];
Tstd,1=μ-sσ2
Tstd,2=μ+sσ2
步骤二四、对于点Pi,判断diK是否处于标准距离阈值范围[Tstd,1,Tstd,2]内;若diK不处于标准距离阈值范围[Tstd,1,Tstd,2]内,则点Pi是噪点,将点Pi从点云数据集中剔除,否则点Pi不是噪点,不需要对点Pi进行处理;
同理,分别对每个点进行判断后,得到去除噪点后的点云数据。
其它步骤及参数与具体实施方式一相同。
需要说明的是,位于点Pi的K邻域内的点是指:分别计算出点Pi与其它任意一个点的欧式距离后,将计算出的欧式距离按照从小到大进行排序,将排在前K位的距离所对应的点作为点Pi的K邻域内的点。
本实施方式基于距离信息对异常点进行判断并剔除偏离点云平均值较远的噪点。
具体实施方式三、本实施方式与具体实施方式一或二不同的是,所述步骤三的具体过程为:
步骤三一、对去噪后点云数据的点云空间进行三维体素网格划分,每个体素网格实际上是一个可设定大小的立方体,且划分后获得的每个立方体网格的大小均为V=(Vx,Vy,Vz),Vx,Vy和Vz分别是立方体网格在每个维度上的尺寸;
步骤三二、对于任意的一个立方体网格,从该立方体网格中选择出最接近该立方体网格中心的点云;
同理,分别对每个立方体网格进行处理后,选择出的全部点云数据即为降采样后的点云数据。
其它步骤及参数与具体实施方式一或二相同。
本实施方式的方法可以在降低场景中点云数量的同时,保留原始点云的形状特征和空间信息,通过降低场景中点云数量,减小后续点云法向量计算过程中的耗时。
具体实施方式四、本实施方式与具体实施方式一至三之一不同的是,所述步骤四的具体过程为:
步骤四一、设置最大迭代次数为T,并初始化当前迭代次数t为1;
步骤四二、从降采样后的点云数据中随机选取点集,根据随机选取出的点集拟合平面方程Atx+Bty+Ctz+Dt=0,At、Bt、Ct和Dt是第t次迭代拟合出的平面方程的系数,x、y、z为平面上点的三维坐标;
步骤四二、设置距离阈值dmax,分别计算降采样后点云数据中的每个点到平面Atx+Bty+Ctz+Dt=0的距离:
其中,di′是降采样后点云数据中的第i′个点到平面的距离,i′=1,2,…,N′,N′是降采样后点云数据中包含的点云总数;
若di′<dmax,则第i′个点为局内点,否则,第i′个点为局外点;
步骤四三、设置点数阈值m,根据步骤四二的结果判断局内点的个数是否大于m;
若局内点的个数大于m,则保存本次迭代拟合的平面方程后,执行步骤四四;
否则,局内点的个数小于等于m,则直接执行步骤四四;
步骤四四、判断当前迭代次数t是否小于T;
若t小于T,则令t=t+1,并返回执行步骤四二;
若t等于T,则从经过T次迭代保存下来的全部平面方程中选择出包含局内点最多的平面方程,将选择出的平面方程记为Ax+By+Cz+D=0,Ax+By+Cz+D=0即为桁架平面,将平面方程Ax+By+Cz+D=0所对应的全部局内点作为平面点云。
需要说明的是:因为螺栓孔是均匀排布在桁架平面上,因此实现对螺栓孔的最终定位和位姿估计前,需要对桁架平面进行提取和计算。
其它步骤及参数与具体实施方式一至三之一相同。
具体实施方式五、本实施方式与具体实施方式一至四之一不同的是,所述步骤五的具体过程为:
步骤五一、对于平面点云数据中的任意一点Pi″,将距离Pi″最近的K′个点组成的集合记为Mi″(分别计算Pi″与其它任意一个点的欧式距离,再对计算出的欧氏距离按照从小到大进行排序,利用排在前面的K′个点组成集合Mi″),利用集合Mi″中的点计算协方差矩阵
其中,对集合Mi″中全部点的x方向坐标取均值、y方向坐标取均值、z方向坐标取均值后,Pmean是由x方向均值、y方向均值和z方向均值组成的三维坐标,Pj′-Pmean代表将集合Mi″中第j′个点的三维坐标与三维坐标Pmean做差(即,将Pj′的x方向坐标值与Pmean的x方向坐标值做差,将Pj′的y方向坐标值与Pmean的y方向坐标值做差,将Pj′的z方向坐标值与Pmean的z方向坐标值做差),上角标T代表转置;
对协方差矩阵进行特征值分解,将最小特征值所对应的特征向量作为点Pi″的法向量;
需要说明的是:计算法向量的结果会受到参数K′的影响;较小的K′值能够得到较细致的法向量,而较大的K′值则能获得更平滑的法向量。在螺栓孔定位和位姿估计背景下,根据点云的密度和几何结构,选择适当K′值;
步骤五二、对步骤五一中计算出的法向量进行归一化,得到点Pi″的归一化后的法向量;
步骤五三、对于平面点云数据中的每个点均执行步骤五一和步骤五二的过程,得到每个点的归一化后的法向量;
步骤五四、对于平面点云数据中的任意一点Pi″,从平面点云数据中选取出点Pi″的k'个邻域点,将点Pi″的归一化后的法向量记为将k'个邻域点的归一化后的法向量记为/>分别计算点Pi″的归一化后法向量与每个邻域点的归一化后法向量的夹角后,再对计算出的夹角取平均值;
点Pi″的归一化后法向量与第j″个邻域点的归一化后法向量的夹角为:
点Pi″对应的夹角平均值为:
步骤五五、判断θi″是否大于角度阈值θ0,若θi″>θ0,则点Pi″是边界点,否则点Pi″是非边界点;
步骤五六、同理,采用步骤五四和步骤五五对平面点云数据中的每个点分别进行处理,获得的全部边界点即为初步确定出的边界点,将边界点标记为1,非边界点标记为0,从而将边界点云从原始点云中提取出来,初步确定出的边界点是包含杂点的桁架平面边界点云和内部螺栓孔的边界点云。
需要说明的是:法向量计算与边界点评估都用到了基于欧氏距离的最近邻搜索算法,但两者是相互独立的,两者的最近邻个数也不相同。在法向量计算中,K′值一般小于10,能同时兼顾计算速度和精度;但是在边界点评估中,为了防止与用于确定该点法向量的邻域点过耦合,并且出于提高边界识别精度的目的,邻近点k'的数值可以取到50到100,必须要大于20,否则提取的边界点与计算法向量的k'个最近邻点过于关联,导致边界不平滑和缺失等问题。
其它步骤及参数与具体实施方式一至四之一相同。
具体实施方式六、本实施方式与具体实施方式一至五之一不同的是,所述角度阈值θ0的取值为或/>
其它步骤及参数与具体实施方式一至五之一相同。
具体实施方式七、本实施方式与具体实施方式一至六之一不同的是,所述步骤六的具体过程为:
设定搜索半径r,对于步骤五中初步确定出的边界点中的任意一点pi″′,从初步确定出的边界点中选取出与点pi″′欧式距离小于搜索半径r的点,选取出的点组成的集合N(pi″′)为:
N(pi″′)={pj″′|dist(pi″′,pj″′)<r}
其中,点pj″′是步骤五中初步确定出的边界点,dist(pi″′,pj″′)代表点pi″′与点pj″′的欧式距离;
其中,(xi″′,yi″′,zi″′)是点pi″′的坐标,(xj″′,yj″′,zj″′)是点pj″′的坐标;
若集合N(pi″′)中包含的点数大于阈值n,则点pi″′为边界点,否则将点pi″′剔除;
同理,对步骤五中初步确定出的边界点中的每个点进行处理,得到剩余的边界点。
其它步骤及参数与具体实施方式一至六之一相同。
本实施方式对初步提取出的边界点云进行半径搜索滤波,去除不属于边界的离群点或噪声,提高边界提取的准确性,减少噪声干扰。
具体实施方式八、本实施方式与具体实施方式一至七之一不同的是,所述步骤七的具体过程为:
步骤七一、将步骤六中得到的全部边界点标记为未分类状态,并创建一个包含全部未分类的点的列表;
步骤七二、从列表的未分类的点中随机选择出一个点作为种子点,将种子点从未分类列表中移除,再分别计算种子点与其它各个未分类的点的欧式距离,若某个未分类的点与种子点的欧式距离小于给定的距离阈值,则将该未分类的点添加到种子点的聚类中(认为该未分类的点与种子点属于同一类别),并将该未分类的点从未分类列表中移除;
步骤七三、判断列表中是否有未分类的点,若列表中有未分类的点,则返回执行步骤七二,否则列表中没有未分类的点,则聚类结束,分别获得各聚类点云数据;
步骤七四、设置最小聚类点数和最大聚类点数,若某个聚类中包含的点数介于最小聚类点数与最大聚类点数之间,则该聚类属于螺栓孔的边界点云,且每个聚类分别对应一个螺栓孔的边界点云,否则,该聚类不属于螺栓孔的边界点云。
其它步骤及参数与具体实施方式一至七之一相同。
根据步骤七三进行聚类后可以分别得到各个螺栓孔边界点云和桁架边缘点云,再采用步骤七四可以进一步区分桁架边缘点云和桁架上多个螺栓孔边界点云,获得只含有多个螺栓孔的边界点云。
具体实施方式九、本实施方式与具体实施方式一至八之一不同的是,所述步骤八中,分别对各个螺栓孔的边界点云进行二维圆拟合,得到各个螺栓孔的二维圆拟合结果;其具体过程为:
步骤八一、对于任意一个螺栓孔的边界点云,将该螺栓孔的边界点云向桁架平面上投影后,得到投影后的点集;
步骤八二、从投影后的点集中随机选择出若干个数据点,利用选择出的数据点的x方向和y方向坐标进行二维圆拟合;
拟合得到的二维圆方程为:(x-xcenter)2+(y-ycenter)2=r′2,其中,(xcenter,ycenter)是二维圆的圆心坐标,r′是二维圆半径;
步骤八三、分别计算投影后该螺栓孔的边界点云中每个点到圆心的距离,对于投影后该螺栓孔的边界点云中的任意一点,将该点到圆心的距离与半径r′做差,若做差结果的绝对值小于阈值ε,则认为该点在圆上,否则认为该点不在圆上;
对投影后该螺栓孔的边界点云中的每个点分别进行判断后,统计在圆上的总点数,若在圆上的总点数大于设定的阈值,则该次拟合得到的二维圆方程符合要求;否则,该次拟合得到的二维圆方程不符合要求;
步骤八四、重复步骤八二至步骤八三的过程,直至达到设定的最大迭代次数;
从符合要求的二维圆方程中选择出圆上总点数最多的二维圆方程,将选择出的二维圆方程作为该螺栓孔对应的圆方程,选择出的二维圆方程的圆心即为粗定位出的该螺栓孔的中心,二维圆方程的圆心坐标即为该螺栓孔中心在x方向和y方向的坐标,将该螺栓孔中心在x方向和y方向的坐标代入桁架平面Ax+By+Cz+D=0,得到该螺栓孔中心的z方向坐标;
步骤八五、同理,对各个螺栓孔的边界点云均执行步骤八一至步骤八四的过程。
其它步骤及参数与具体实施方式一至八之一相同。
具体实施方式十、结合图3说明本实施方式。本实施方式与具体实施方式一至九之一不同的是,所述步骤十的具体过程为:
步骤十一、对于任意一个螺栓孔的精确点云数据,将该螺栓孔的精确点云数据向桁架平面Ax+By+Cz+D=0进行投影,得到投影后的点云数据;
采用步骤八的方法对该螺栓孔投影后的精确点云数据进行二维圆拟合,得到二维圆的圆心和半径,再根据二维圆的圆心得到该螺栓孔的中心;
该螺栓孔的轴向姿态(Nx,Ny,Nz)螺栓孔由桁架平面的法向量确定,即(Nx,Ny,Nz)螺栓孔=(A',B',C'),其中,
步骤十二、对于任意一个螺栓孔的精确点云数据均执行步骤十一的过程,各个螺栓孔的定位和位姿估计全部完成(圆心即为螺栓孔的定位结果,轴向姿态即为位姿估计结果)。
其它步骤及参数与具体实施方式一至九之一相同。
将螺栓孔的精确点云数据向桁架平面Ax+By+Cz+D=0进行投影,投影的具体过程为:
对于螺栓孔的精确点云数据中的任意一点pi=(x,y,z),将点pi=(x,y,z)向桁架平面的投影点表示为qi=(x',y',z'),向量与桁架平面Ax+By+Cz+D=0的法向量(A,B,C)平行,则满足:
x=x'-At
y=y'-Bt
z=z'-Ct
其中,t为中间参数;
由于点q=(x',y',z')在桁架平面Ax+By+Cz+D=0上,因此Ax'+By'+Cz'+D=0,则求得代入t即可求得投影点q=(x',y',z')。
具体实施方式十一、本实施方式与具体实施方式一至十之一不同的是,所述分别从步骤八中粗定位出的各螺栓孔中心出发,提取出各螺栓孔局部的所有点云;其具体过程为:
设定搜索半径r,对于步骤八中粗定位出的任一螺栓孔中心O,从去噪后点云数据中选取出满足条件(1)的点,将选取出的点作为该螺栓孔局部的所有点云;
条件(1)为:若某点与中心O的欧式距离小于搜索半径r,则该点为满足条件(1)的点;
同理,分别从步骤八中粗定位出的每个螺栓孔中心出发,分别得到每个螺栓孔局部的所有点云。
其它步骤及参数与具体实施方式一至十之一相同。
本发明的上述算例仅为详细地说明本发明的计算模型和计算流程,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。
Claims (10)
1.一种基于三维视觉的螺栓孔定位及位姿估计方法,其特征在于,所述方法具体包括以下步骤:
步骤一、采用三维传感器对包含螺栓孔的铁塔桁架场景进行扫描获取点云数据;
步骤二、对步骤一中获取的点云进行去噪处理,获得去噪后的点云数据;
步骤三、对去噪后的点云数据进行降采样,获得降采样后的点云数据;
步骤四、基于降采样后的点云数据,采用随机采样一致性的平面模型分割方法确定桁架平面以及平面点云;
步骤五、分别计算出平面点云数据中每个点的法向量,再根据计算出的法向量初步确定边界点;
步骤六、从步骤五初步确定出的边界点中剔除掉杂点和异常值,得到边界点;
步骤七、对步骤六中得到的边界点进行聚类后,得到各个螺栓孔的边界点云;
步骤八、基于桁架平面,分别对各个螺栓孔的边界点云进行二维圆拟合,粗定位出各螺栓孔的中心;
步骤九、在步骤二获得的去噪后点云数据中,分别从步骤八中粗定位出的各螺栓孔圆心出发,提取出各螺栓孔局部的所有点云;
再对提取出的点云进行初步边界点确定、边界点剔除和边界点聚类后,得到各螺栓孔的精确点云数据;
步骤十、根据各螺栓孔的精确点云数据得到螺栓孔定位及位姿估计结果。
2.根据权利要求1所述的一种基于三维视觉的螺栓孔定位及位姿估计方法,其特征在于,所述对步骤一中获取的点云进行去噪处理采用的是统计滤波方法,去噪的具体过程为:
步骤二一、将步骤一获取的点云数据中包含的点云总数记为N,对于点云数据中的任意一个点Pi,将位于点Pi的K邻域内的点表示为Pj,j=1,2,…,K,分别计算出Pi与K邻域内的每个点的欧式距离后,再对计算出的欧式距离取平均得到均值diK是点Pi对应的K邻域欧氏距离均值,(xi,yi,zi)是点Pi的坐标,(xj,yj,zj)是点Pj的坐标;
同理,分别计算出每个点对应的K邻域欧氏距离均值diK,i=1,2,...,N;
步骤二二、计算diK的均值μ和标准差σ:
步骤二三、设置标准差系数s,根据标准差系数s、均值μ和标准差σ计算统计滤波的标准距离阈值范围[Tstd,1,Tstd,2];
Tstd,1=μ-sσ2
Tstd,2=μ+sσ2
步骤二四、对于点Pi,判断diK是否处于标准距离阈值范围[Tstd,1,Tstd,2]内;若diK不处于标准距离阈值范围[Tstd,1,Tstd,2]内,则点Pi是噪点,将点Pi从点云数据集中剔除,否则点Pi不是噪点,不需要对点Pi进行处理;
同理,分别对每个点进行判断后,得到去除噪点后的点云数据。
3.根据权利要求2所述的一种基于三维视觉的螺栓孔定位及位姿估计方法,其特征在于,所述步骤三的具体过程为:
步骤三一、对去噪后点云数据的点云空间进行三维体素网格划分,且划分后获得的每个立方体网格的大小均为V=(Vx,Vy,Vz),Vx,Vy和Vz分别是立方体网格在每个维度上的尺寸;
步骤三二、对于任意的一个立方体网格,从该立方体网格中选择出最接近该立方体网格中心的点云;
同理,分别对每个立方体网格进行处理后,选择出的全部点云数据即为降采样后的点云数据。
4.根据权利要求3所述的一种基于三维视觉的螺栓孔定位及位姿估计方法,其特征在于,所述步骤四的具体过程为:
步骤四一、设置最大迭代次数为T,并初始化当前迭代次数t为1;
步骤四二、从降采样后的点云数据中随机选取点集,根据随机选取出的点集拟合平面方程Atx+Bty+Ctz+Dt=0,At、Bt、Ct和Dt是第t次迭代拟合出的平面方程的系数,x、y、z为平面上点的三维坐标;
步骤四二、设置距离阈值dmax,分别计算降采样后点云数据中的每个点到平面Atx+Bty+Ctz+Dt=0的距离:
其中,di′是降采样后点云数据中的第i′个点到平面的距离,i′=1,2,…,N′,N′是降采样后点云数据中包含的点云总数;
若di′<dmax,则第i′个点为局内点,否则,第i′个点为局外点;
步骤四三、设置点数阈值m,根据步骤四二的结果判断局内点的个数是否大于m;
若局内点的个数大于m,则保存本次迭代拟合的平面方程后,执行步骤四四;
否则,局内点的个数小于等于m,则直接执行步骤四四;
步骤四四、判断当前迭代次数t是否小于T;
若t小于T,则令t=t+1,并返回执行步骤四二;
若t等于T,则从经过T次迭代保存下来的全部平面方程中选择出包含局内点最多的平面方程,将选择出的平面方程记为Ax+By+Cz+D=0,Ax+By+Cz+D=0即为桁架平面,将平面方程Ax+By+Cz+D=0所对应的全部局内点作为平面点云。
5.根据权利要求4所述的一种基于三维视觉的螺栓孔定位及位姿估计方法,其特征在于,所述步骤五的具体过程为:
步骤五一、对于平面点云数据中的任意一点Pi″,将距离Pi″最近的K′个点组成的集合记为Mi″,利用集合Mi″中的点计算协方差矩阵
其中,对集合Mi″中全部点的x方向坐标取均值、y方向坐标取均值、z方向坐标取均值后,Pmean是由x方向均值、y方向均值和z方向均值组成的三维坐标,Pj′-Pmean代表将集合Mi″中第j′个点的三维坐标与三维坐标Pmean做差,上角标T代表转置;
对协方差矩阵进行特征值分解,将最小特征值所对应的特征向量作为点Pi″的法向量;
步骤五二、对步骤五一中计算出的法向量进行归一化,得到点Pi″的归一化后的法向量;
步骤五三、对于平面点云数据中的每个点均执行步骤五一和步骤五二的过程,得到每个点的归一化后的法向量;
步骤五四、对于平面点云数据中的任意一点Pi″,从平面点云数据中选取出点Pi″的k'个邻域点,将点Pi″的归一化后的法向量记为将k'个邻域点的归一化后的法向量记为/>分别计算点Pi″的归一化后法向量与每个邻域点的归一化后法向量的夹角后,再对计算出的夹角取平均值;
点Pi″的归一化后法向量与第j″个邻域点的归一化后法向量的夹角为:
点Pi″对应的夹角平均值为:
步骤五五、判断θi″是否大于角度阈值θ0,若θi″>θ0,则点Pi″是边界点,否则点Pi″是非边界点;
步骤五六、同理,采用步骤五四和步骤五五对平面点云数据中的每个点分别进行处理,获得的全部边界点即为初步确定出的边界点。
6.根据权利要求5所述的一种基于三维视觉的螺栓孔定位及位姿估计方法,其特征在于,所述角度阈值θ0的取值为或/>
7.根据权利要求6所述的一种基于三维视觉的螺栓孔定位及位姿估计方法,其特征在于,所述步骤六的具体过程为:
设定搜索半径r,对于步骤五中初步确定出的边界点中的任意一点pi″′,从初步确定出的边界点中选取出与点pi″′欧式距离小于搜索半径r的点,选取出的点组成的集合N(pi″′)为:
N(pi″′)={pj″′|dist(pi″′,pj″″)<r}
其中,点pj″′是步骤五中初步确定出的边界点,dist(pi″′,pj″′)代表点pi″′与点pj″′的欧式距离;
其中,(xi″′,yi″′,zi″′)是点pi″′的坐标,(xj″′,yj″′,zj″′)是点pj″′的坐标;
若集合N(pi″′)中包含的点数大于阈值n,则点pi″′为边界点,否则将点pi″′剔除;
同理,对步骤五中初步确定出的边界点中的每个点进行处理,得到剩余的边界点。
8.根据权利要求7所述的一种基于三维视觉的螺栓孔定位及位姿估计方法,其特征在于,所述步骤七的具体过程为:
步骤七一、将步骤六中得到的全部边界点标记为未分类状态,并创建一个包含全部未分类的点的列表;
步骤七二、从列表的未分类的点中随机选择出一个点作为种子点,将种子点从未分类列表中移除,再分别计算种子点与其它各个未分类的点的欧式距离,若某个未分类的点与种子点的欧式距离小于给定的距离阈值,则将该未分类的点添加到种子点的聚类中,并将该未分类的点从未分类列表中移除;
步骤七三、判断列表中是否有未分类的点,若列表中有未分类的点,则返回执行步骤七二,否则列表中没有未分类的点,则聚类结束,分别获得各聚类点云数据;
步骤七四、设置最小聚类点数和最大聚类点数,若某个聚类中包含的点数介于最小聚类点数与最大聚类点数之间,则该聚类属于螺栓孔的边界点云,且每个聚类分别对应一个螺栓孔的边界点云,否则,该聚类不属于螺栓孔的边界点云。
9.根据权利要求8所述的一种基于三维视觉的螺栓孔定位及位姿估计方法,其特征在于,所述步骤八中,分别对各个螺栓孔的边界点云进行二维圆拟合,得到各个螺栓孔的二维圆拟合结果;其具体过程为:
步骤八一、对于任意一个螺栓孔的边界点云,将该螺栓孔的边界点云向桁架平面上投影后,得到投影后的点集;
步骤八二、从投影后的点集中随机选择出若干个数据点,利用选择出的数据点的x方向和y方向坐标进行二维圆拟合;
拟合得到的二维圆方程为:(x-xcenter)2+(y-ycenter)2=r′2,其中,(xcenter,ycenter)是二维圆的圆心坐标,r′是二维圆半径;
步骤八三、分别计算投影后该螺栓孔的边界点云中每个点到圆心的距离,对于投影后该螺栓孔的边界点云中的任意一点,将该点到圆心的距离与半径r′做差,若做差结果的绝对值小于阈值ε,则认为该点在圆上,否则认为该点不在圆上;
对投影后该螺栓孔的边界点云中的每个点分别进行判断后,统计在圆上的总点数,若在圆上的总点数大于设定的阈值,则该次拟合得到的二维圆方程符合要求;否则,该次拟合得到的二维圆方程不符合要求;
步骤八四、重复步骤八二至步骤八三的过程,直至达到设定的最大迭代次数;
从符合要求的二维圆方程中选择出圆上总点数最多的二维圆方程,将选择出的二维圆方程作为该螺栓孔对应的圆方程,选择出的二维圆方程的圆心即为粗定位出的该螺栓孔的中心,二维圆方程的圆心坐标即为该螺栓孔中心在x方向和y方向的坐标,将该螺栓孔中心在x方向和y方向的坐标代入桁架平面Ax+By+Cz+D=0,得到该螺栓孔中心的z方向坐标;
步骤八五、同理,对各个螺栓孔的边界点云均执行步骤八一至步骤八四的过程。
10.根据权利要求9所述的一种基于三维视觉的螺栓孔定位及位姿估计方法,其特征在于,所述步骤十的具体过程为:
步骤十一、对于任意一个螺栓孔的精确点云数据,将该螺栓孔的精确点云数据向桁架平面Ax+By+Cz+D=0进行投影,得到投影后的点云数据;
采用步骤八的方法对该螺栓孔投影后的精确点云数据进行二维圆拟合,得到二维圆的圆心和半径,再根据二维圆的圆心得到该螺栓孔的中心;
该螺栓孔的轴向姿态(Nx,Ny,Nz)螺栓孔由桁架平面的法向量确定,即(Nx,Ny,Nz)螺栓孔=(A',B',C'),其中,
步骤十二、对于任意一个螺栓孔的精确点云数据均执行步骤十一的过程,各个螺栓孔的定位和位姿估计全部完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311018082.8A CN116958264A (zh) | 2023-08-14 | 2023-08-14 | 一种基于三维视觉的螺栓孔定位及位姿估计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311018082.8A CN116958264A (zh) | 2023-08-14 | 2023-08-14 | 一种基于三维视觉的螺栓孔定位及位姿估计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116958264A true CN116958264A (zh) | 2023-10-27 |
Family
ID=88447547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311018082.8A Pending CN116958264A (zh) | 2023-08-14 | 2023-08-14 | 一种基于三维视觉的螺栓孔定位及位姿估计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116958264A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117928680A (zh) * | 2024-03-21 | 2024-04-26 | 青岛清万水技术有限公司 | 换能器自动定位方法、***、电子设备及存储介质 |
-
2023
- 2023-08-14 CN CN202311018082.8A patent/CN116958264A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117928680A (zh) * | 2024-03-21 | 2024-04-26 | 青岛清万水技术有限公司 | 换能器自动定位方法、***、电子设备及存储介质 |
CN117928680B (zh) * | 2024-03-21 | 2024-06-07 | 青岛清万水技术有限公司 | 换能器自动定位方法、***、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112070818B (zh) | 基于机器视觉的机器人无序抓取方法和***及存储介质 | |
CN109544456B (zh) | 基于二维图像和三维点云数据融合的全景环境感知方法 | |
CN111784770B (zh) | 基于shot和icp算法的无序抓取中的三维姿态估计方法 | |
CN107886528B (zh) | 基于点云的配电线路作业场景三维重建方法 | |
CN111640157B (zh) | 一种基于神经网络的棋盘格角点检测方法及其应用 | |
CN105021124B (zh) | 一种基于深度图的平面零件三维位置和法向量计算方法 | |
CN114743259A (zh) | 位姿估计方法、位姿估计***、终端、存储介质及应用 | |
CN116958264A (zh) | 一种基于三维视觉的螺栓孔定位及位姿估计方法 | |
CN109886124A (zh) | 一种基于线束描述子图像匹配的无纹理金属零件抓取方法 | |
CN110992422A (zh) | 一种基于3d视觉的药盒姿态估计方法 | |
CN111340834B (zh) | 基于激光雷达和双目相机数据融合的衬板装配***及方法 | |
CN113034593A (zh) | 6d位姿标注方法、***及存储介质 | |
CN114549549B (zh) | 一种动态环境下基于实例分割的动态目标建模跟踪方法 | |
CN115685160A (zh) | 基于标靶的激光雷达与相机标定方法、***、电子设备 | |
CN115222884A (zh) | 一种基于人工智能的空间对象分析及建模优化方法 | |
CN117132630A (zh) | 一种基于二阶空间兼容性度量的点云配准方法 | |
CN114511575A (zh) | 基于图像分割定位辅助点云配准的高反光物体的抓取方法 | |
CN117496401A (zh) | 一种用于视频测量影像序列椭圆形目标点全自动识别与跟踪方法 | |
CN116299525A (zh) | 一种基于点云区域相关性的动态环境rgb-d视觉slam方法 | |
CN114648544A (zh) | 一种亚像素椭圆提取方法 | |
CN113160332A (zh) | 一种基于双目视觉的多目标识别与定位方法 | |
CN113065483A (zh) | 一种定位方法、装置、电子设备、介质及机器人 | |
CN113111741A (zh) | 一种基于三维特征点的装配状态识别方法 | |
CN117541537B (zh) | 基于全景点云融合技术的时空差异检测方法及其*** | |
CN110059540B (zh) | 一种用于散堆抽芯铆钉识别定位的图像处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |