一种基于椭圆拟合的圆截面弯管类零件特征参数识别方法
技术领域
本发明属于工业机器人自动化加工领域,具体涉及一种基于椭圆拟合的圆截面弯管类零件特征参数识别方法。
背景技术
采用工业机器人对有外观质量要求的空间弯管类零件执行自动打磨,能克服采用人工打磨时低效、环境不友好、质量不稳定的缺点,是提高弯管类零件加工质量的有效方式。弯管类零件大多通过对圆截面管材实施弯曲工序完成,由于材料回弹的不一致,造成弯管零件在打磨之前外形尺寸的不一致,采用示教编程或者利用理论零件模型产生的打磨轨迹,无法对此类弯管零件的批量打磨进行稳定的质量控制。近年来利用三维扫描设备获取实际零件的点云数据来形成零件数字模型的技术已经成熟。要实现针对弯管的全自动打磨或者抛光,一个可行的方案是利用三维扫描设备实时获得待打磨工件的点云数据,并自动识别其几何特征参数,结合离线编程系统,自动完成工艺编程,从而实现全自动打磨。本发明特别针对上述方案,对实时扫描获得的零件点云模型进行自动特征参数识别,是实现工业机器人打磨轨迹自动编程的关键步骤。
在弯管零件的检测与重建方面,公开号为CN111489432A的专利申请“一种基于点云数据的弯管重建及余量计算方法”,提供了针对航空发动机中的弯管的识别和建模方法。该方法先利用MSAC算法提取直管部分,然后利用特征参数和控制点重建弯管,该方法同时提供端面几何中心以及法兰3D表征的提取。文献[H. Son, C. Kim, Automaticsegmentation and 3D modeling of pipelines into constituent parts from laser-scan data of the built environment, Automation in Construction (2016)]提供了针对建筑场地中的弯管结构提供特征识别的算法,该方法将弯管部分预先分为直管,弯管,渐缩管和三通管,然后针对每类特征进行识别。美国专利US8605093B2(PipeReconstruction from Unorganized Point Cloud Data, 2013)提供一种针对点云数据识别弯管几何特征的方法,首先从点云数据中识别基本几何图元如圆柱、圆环,其中需要对大量数据点的临近区域进行面拟合计算;然后确定基本图元中的连接顺序,来确定整个弯管的形状,对于算法没有识别到的部分,则需要通过与标准件库中的参考零件进行比较推理出其几何模型。文献[Schnabel, R., R. Wahl and R. Klein (2007). "EfficientRANSAC for point-cloud shape detection." Computer. Graph. Forum 26: 214-226.]提供一种RANSAC方法,利用随机采样对点云中的基本图元如圆柱面、平面、圆环面、锥面分别进行识别,该方法最后将无法识别为以上基本图元的点云部分保留不做处理。
对于圆截面弯管外表面自动化打磨工艺来说,识别算法的效率与鲁棒性是至关重要的。首先需要在扫描获得三维模型后实时快速特征识别并进行工艺编程,而特征识别的鲁棒性则保证识别到的弯管形状是可靠的,依据其几何特征参数规划出的打磨轨迹满足工艺要求且不会产生碰撞等安全问题。前述已存在的方法无法保证在弯管外表面自动化打磨设备中的可靠应用。
因此,本发明拟提供一种基于椭圆拟合的圆截面弯管类零件特征参数识别方法,本发明方法应用于针对圆截面管件的外表面打磨的工艺编程软件。一种典型应用场景是由工业机器人末端执行器夹持管件,将管件沿中心轴线的切线方向送入打磨装置进行打磨。管件由直管部分、弯管部分构成,其轴线由直线和三维自由曲线组成。管件的点云模型数据由三维扫描设备提供。以下对本发明适用的零件模型提供基本概念定义。
1)直管部分:是由两个大小相等、相互平行的圆以及连接两个圆的一个圆柱面围成的几何体,其轴线垂直于两端圆面;
2)弯管部分:由一个圆沿着平滑曲线扫掠形成;
3)径向截面:管件中与中心轴线垂直的截面。该截面与管件表面求交所得的轮廓,理论上是圆(直管部分),或者逼近为圆(弯管部分)。
发明内容
针对现有技术存在的问题,本发明提供了一种基于椭圆拟合和强力搜索的三维弯管类点云零件模型的特征参数自动提取算法,其目的在于快速可靠的提取弯管零件的几何特征参数,包括中心轴线、中心轴线上任意点对应的管径以及端面位置,以支持自动化编程软件利用弯管的几何特征参数实现实时打磨轨迹编程。这里先定义椭圆相似度指标E:用椭圆拟合后的平均拟合误差表示,该指标用于描述一组截面点集与一个椭圆的相似程度,等于零(考虑误差的等量比较)表示可精确拟合为椭圆。
本发明为解决现有技术中存在的问题采用的技术方案如下:
一种基于椭圆拟合的圆截面弯管类零件特征参数识别方法,首先开始输入点云模型,其特征在于,包括如下步骤:
S1:计算初始径向截面,并考虑点云的包围盒,计算两侧边缘截面;
S2:从初始径向截面向一侧单向搜索计算,判断搜索方向上临近部分是否为直管,如果是调用步骤S3的直管特征参数识别函数;如果不是直管,调用步骤S4的弯管特征参数识别函数,另一侧单向搜索的计算方法相同,最后得到完整的弯管中心轴线数据和管径信息;
S3:当步骤S2搜索方向上后续部分为直管,则执行后续S31-S33:
S31:设定起始径向截面和终止边缘截面,利用二分法,找到中间截面,判断起始径向截面与中间截面之间是否为直管;
S32:如果不是直管,则设当前中间截面为边缘截面,转到S31,继续执行;
S33:假如是直管,则设定当前中间截面为起始径向截面,继续在起始径向截面和终止边缘截面之间搜索,直到找到直管的边缘截面,程序结束;
S4:当步骤S2搜索方向上后续部分为弯管,则执行后续S41-S44;
S41:已知参考误差,给定步长值(可设置为参考误差值的两倍),确定椭圆度判断阈值;
S42:利用给定的步长,从起始径向截面向搜索方向偏移,得到偏移平面;计算该偏移平面与点云所截出的边缘轮廓点集;
S43:从边缘轮廓点集任取一点,计算其表面法矢,构造一个切平面,计算从该点出发的切线方向矢量中,表面曲率最小的方向矢量;
S44:由S43中的所取轮廓点和该方向矢量构造截面,计算该偏移平面与点云所截出的边缘轮廓点集,对该轮廓点集进行椭圆拟合,如果其椭圆度值大于椭圆度判断阈值,则重新设定步长为当前步长值的一半,转向S42,如果其椭圆度值小于或等于椭圆度判断阈值,则取该椭圆的中心,确定为一个轴线点;判断该轴线点是否为端点,如果不是,记该点所在的径向截面为初始径向截面,转向S42,如果是端点,则输出中心轴线和轴线点对应的管径值,函数结束退出。
所述步骤S1计算初始径向截面与边缘截面的具体步骤为:
S11:任意设定一个初始径向截面(随机方法),要求在该初始平面上截出的点集,其拟合出的椭圆度E为零,如果不为零则另随机选择截面;
S12:将这个初始径向截面向任意侧平移一个微量位移,计算另一个截面;
这两个截面所截出的椭圆的中心所在的线段即为直管上的一段轴线,其两端点可确定两个径向截面,即当前段的边缘截面。
所述步骤S2计算弯管中心轴线几何信息和管径信息,具体包括如下步骤:
S21:由径向截面出发,判断搜索方向上的后续部分是否是直管:将该径向截面向搜索方向侧平移一个微量位移,对所截出的点集做椭圆拟合,如果椭圆度E为零,则该搜索方向上的后续部分是直管,如果是直管,调用步骤S3的直管特征参数识别函数;如果不是直管,调用步骤S4的弯管特征参数识别函数;
S22:将识别出的直管轴线和弯管轴线顺序连接,形成整个管件中轴线,并输出圆管半径值。
本发明具有如下优点:
本发明方法对于弯管扫描形成的数据模型进行完整强力搜索计算,并用椭圆拟合代替对点云上所有数据点的局部区域作曲面拟合,与现有技术相比,本发明在弯管的特征识别上更有效率,更具鲁棒性,能满足针对弯管自动化打磨工艺的在线自动编程需求。
附图说明
图1是本发明所涉及的圆截面弯管零件的参考模型示意图;
图2是弯管零件的径向截面定义示意图;
图3是步骤S2的圆截面弯管零件特征参数识别算法的执行流程图;
图4是单向搜索算法流程图;
图5是步骤S2的圆截面弯管零件特征参数识别算法具体实施的包含伪代码的算法流程图;
图6是步骤S3的直管特征参数识别函数实施算法流程图;
图7是步骤S4的弯管特征参数识别函数实施算法流程图。
其中:图1中1/3/5代表直管段,2/4代表弯管段,
为图中零件三个圆截面圆心。
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明,如图1与2所示为某管状零件示意图,其中第1/3/5部分为直管,第2/4部分为弯管,零件的理论横截面为圆形,
为圆截面圆心。根据图3所示流程图,本发明公开了一种基于椭圆拟合和强力搜索的圆截面弯管类零件点云模型{P}的特征参数自动提取算法,以下结合附图对本发明做进一步详细说明。具体步骤为:
首先开始:输入点云模型;
S1:计算初始径向截面P0,并计算两侧边缘截面Pa与Pb。具体的,S1包括以下步骤:
S11:在图1所示弯管上任意设定一个初始径向截面P
0(随机方法),要求在该初始平面上截出的点集,其拟合出的椭圆度E为零,假如不为零则另随机选择截平面,最终得到初始截面圆
。
S12:将这个初始截面向任意侧平移一个微量位移,计算另一个截平面
。这两个截平面所截出的椭圆的中心所在的线段即为直管上的一段轴线,其两端点可确定两个径向截面。两侧边缘截面与初始径向截面平行,所形成的区域将点云模型的所有数据点包含其中。
S2:从初始径向截面向两侧搜索计算,直到末端截面
,得到完整的弯管中心轴线数据和管径信息,单侧方向的搜索计算算法相同,如图4所示。具体的,S2包括以下步骤:
S21:由初始径向截面P0出发,判断搜索方向上的后续部分是否是直管。将该径向截面向搜索方向侧平移一个微量位移,对所截出的点集做椭圆拟合,如果椭圆度E为零,则该搜索方向上的后续部分是直管。
如果是直管调用步骤S3的直管特征参数识别函数;如果不是直管,调用步骤S4的弯管特征参数识别函数。
S22:将识别出的直管轴线和弯管轴线顺序连接,形成整个管件中轴线,并输出圆管半径值。
算法实施的伪代码结合流程,显示在图5中。其中输入为:管件的扫描点云集合{P};识别误差t,缺省为0.1mm;管件直管部分的一个初始径向截面P0,该输入参数可选。输出为表示管件中心轴线的点集{A}。具体如下:
确定初始径向截面P0。如果用户没有输入,则计算一个初始径向截面P0,方法为:计算一个初始截平面(随机方法),要求在该初始平面上截出的点集,其拟合出的椭圆度E为零;将这个初始截平面向任意侧平移一个位移,计算另一个截平面。这两个截平面所截出的椭圆的中心所在的线段即为直管上的一段轴线,其两端点可确定两个径向截面。
从初始径向截面P0开始向两侧搜索,计算出所有轴线上的点。首先参考初始径向截面P0所有点云集合的包围盒Bounding Box,计算出两个与P0平行的边缘截面,所有的扫描点云都位于该边缘截面的某一侧,将这三个截面标记为Pa,P0,Pb,然后利用单向搜索法,如图4所示,计算[Pa,P0]和[P0,Pb]之间的轴线点集。
步骤S3阐述了直管特征参数识别函数,如图6所示,具体包括如下步骤:
S31:设定初始径向截面
和终止边缘截面
,记
上的中心点为
;利用二分法,找到中间截面
。
S32:中间截面
与点云模型
相截获得点组
,并进行椭圆拟合,记E最小的椭圆的中心点为
,记其长短轴为a、b。判断E是否为零。
S33:如果E不为零,则计算
与
的中间截面
,
,返回步骤S31。
S34:如果E为零,则记为一个有效截面,判断
与
之间的点云是否为直管。如果不是直管,则设当前中间截面为边缘截面,即
,转到S31,继续执行。
S35:假如是直管,判断
是否为直管的端点。如果
不是端点,则设定当前中间截面为起始径向截面,即
,返回步骤S31继续在起始径向截面和终止边缘截面之间搜索;如果
是直管的端点,则线段
为直管轴线,
为该段直管的两个端点,末端点A
E=
函数结束返回。
步骤S4阐述了弯管特征参数识别函数,如图7所示,具体包括如下步骤:
S41:参考误差
,给定步长值
(可设置为参考误差值的两倍),确定椭圆度判断阈值y。
S42:利用给定的步长
,从起始径向截面向搜索方向偏移,得到偏移平面
,记
上管件截面的中心点
,用
与{P}相截,获取点组{G},每个点组代表一个管件的截面上的点集,其边缘轮廓点集亦可计算,并去掉{G}中不在边缘上的内部点,取与
最近的点集G。
S43:从边缘轮廓点集任取一轮廓点
,计算其表面法矢,构造一个切平面
。计算从该点出发的切线方向矢量中,表面曲率最小的方向矢量
。
S44:由S43中的所取轮廓点
和该方向矢量
构造截面
,计算该偏移平面与点云所截出的边缘轮廓点集
。对该轮廓点集进行椭圆拟合,如果其椭圆度值Y大于椭圆度判断阈值y,则重新设定步长为当前步长值的一半,即s=0.5*s,转向S42。如果其椭圆度值Y小于或等于椭圆度判断阈值y,则取该椭圆的中心,确定为一个轴线点
;判断该轴线点是否为端点,如果不是,记该点所在的径向截面为初始径向截面,即P
1=P
0,转向S42。如果是端点,则输出中心轴线和轴线点对应的管径值,函数结束退出。
本发明的保护范围并不限于上述的实施例,显然,本领域的技术人员可以对本发明进行各种改动和变形而不脱离本发明的范围和精神。倘若这些改动和变形属于本发明权利要求及其等同技术的范围内,则本发明的意图也包含这些改动和变形在内。