一种空间连续小线段圆弧拟合方法与流程

未命名 08-27 阅读:131 评论:0

一种空间连续小线段圆弧拟合方法
1.本发明是申请号为202110342697.0、申请日为2021.03.30、发明名称为一种空间连续小线段圆弧与直线拟合方法的分案申请。
技术领域
2.本发明涉及数控加工技术领域,尤其是涉及一种空间连续小线段圆弧拟合方法。


背景技术:

3.数控加工中的刀路轨迹主要有三种形式:连续小线段轨迹、圆弧轨迹和nurbs曲线轨迹。连续小线段轨迹是通过连续直线连接一系列数据点形成,这种运动轨迹只是从工件形状上逼近原加工轨迹轮廓,无法保证加工后直线或曲面的光顺性。而nurbs曲线在曲面造型设计中应用较广泛,多数数控系统不支持nurbs曲线插补,通常也是将nurbs曲线轨迹离散成连续小线段轨迹进行加工。
4.对于连续小线段轨迹的拟合,圆弧或直线的拟合多以二维问题进行,且大多方法都是圆弧和直线拟合分开进行,这样导致某些适合拟合成圆弧的轨迹却拟合成多段短直线段,而适合拟合成长直线段的轨迹却拟合成了多段短圆弧,导致拟合结果存在较大的误差,不适合运动控制系统的实时性加工,且大多数拟合方法只适用于二维平面。


技术实现要素:

5.本发明要解决的技术问题是提供一种空间连续小线段圆弧拟合方法,可以使加工后零件的圆弧表面更加的光滑,并提高加工的效率,提高企业生产效率。
6.为了解决上述技术问题,本发明提供一种空间连续小线段圆弧拟合方法,包括以下步骤:
7.步骤1、导入连续小线段点,确定设定拟合精度erd,err;e
rd
为点到圆弧所在空间平面的允许距离,e
rr
为点到圆心距离与半径差值的允许误差;
8.步骤2、由小线段上的前三个点p0,p1,p2的坐标值(x0,y0,z0),(x1,y1,z1),(x2,y2,z2),计算三点所在的空间平面参数a、b、c、d;
9.步骤3、对小线段上的后续点pi=(xi,yi,zi)(i=4,5,

,n),计算该点到步骤2所求空间平面的垂直距离d
p

10.步骤4、如果所述步骤3中所得d
p
<erd,则继续下一步骤5,否则输出前一圆弧的圆心坐标(a,b,c)和半径r参数;
11.步骤5、选取首点p0(x0,y0,z0)、当前点pi(xi,yi,zi)、p0与pi中间一点pc(xc,yc,zc)坐标,并且结合圆弧圆心(a,b,c)位于所述步骤2的空间平面上;计算空间圆弧的圆心(a,b,c)和半径r,以及圆弧方向参数;
12.步骤6、求连续小线段数据点列区间[0,i]各点p0,p1,...,pi到圆弧圆心点的距离与半径的差值δrj;
[0013]
步骤7、若δrj<err,则继续回到步骤3拟合下一点,否则输出前一圆弧的圆心和半径参数;
[0014]
步骤8、直到拟合完最后一点,结束拟合。
[0015]
本发明涉及一种空间连续小线段圆弧拟合方法,与现有设计相比,其优点在于:本技术所提出的空间圆弧拟合方法相对与其它方法效率较快,所提的空间圆弧拟合方法还可以与所提的空间直线方法结合方式,适合运动控制系统的实时性加工,将本发明算法植入基于rtx64的开放式运动控制器,同时结合实时工业以太网ethercat总线技术实现软控制器与伺服从站设备的通讯,实现了对轴的精确控制,在不增加硬件成本的条件下,提高了运动控制系统的加工效率,并且提高了加工轨迹的光滑性和加工精度,具有较高的应用价值。同时,本技术所提的三维圆弧-直线拟合同样能应用于二维圆弧-直线拟合。
附图说明
[0016]
图1为本发明导入的空间连续小线段的示意图。
[0017]
图2为本发明空间圆弧拟合连续小线段的示意图。
[0018]
图3为本发明空间直线拟合方法的流程示意图。
[0019]
图4为本发明空间曲线拟合方法的流程示意图。
[0020]
图5为本发明空间圆弧与直线拟合方法的流程示意图。
具体实施方式
[0021]
下文结合说明书附图和具体实施例对本发明进行详细说明。
[0022]
实施例1
[0023]
本发明涉及一种空间直线拟合方法,如图3所示,包括以下步骤:
[0024]
步骤1、导入如图1所示的连续小线段点,设定空间直线的拟合精度erl。
[0025]
步骤2、设小线段的初始点p0=(x0,y0,z0),设初始参数值η
max
=+∞,η
min
=-∞,θ
max
=+∞,θ
min
=-∞(其中,[η
min

max
]为拟合直线段与xoy平面的夹角区间范围,[θ
min

max
]为拟合直线段在xoy平面的投影直线与x轴的夹角区间范围)。
[0026]
初始化参数值η
max
=+∞,η
min
=-∞,θ
max
=+∞,θ
min
=-∞是为了程序的初始化,在步骤6中会将区间[η
min

max
],[θ
min

max
]修正,保证参数区间的收敛性。
[0027]
步骤3、对小线段初始点的后续任意点pi=(xi,yi,zi)(i=1,2,

,n),计算点p0与点pi连成的直线段p0pi与xoy平面的夹角计算直线段p0pi在xoy平面的投影与x轴的夹角
[0028]
通过确保空间直线参数η,θ一直在收敛的区间范围,以保证拟合空间直线的收敛性。
[0029]
步骤4、若所述步骤3中所得η,θ在所述步骤2和步骤6设定的允许范围内,即η∈[η
min

max
]且θ∈[θ
min

max
],则继续后续步骤5计算参数
[0030]
空间拟合直线段与xoy平面的夹角η和拟合直线段在xoy平面的投影直线与x轴的
夹角限制在区间[η
min

max
]、[θ
min

max
]范围,是为了使连续小线段点尽量都位于拟合的空间直线段上。
[0031]
若所述步骤3中所得η,θ不在所述步骤2设定的允许范围内,即η<η
min
或η>η
max
或θ<θ
min
或θ>θ
max
,则将前一直线段p0p
i-1
作为拟合直线段输出。将直线段p0p
i-1
作为拟合直线段后,若后续还有小线段未拟合,即i<n,则点p
i-1
为下一拟合直线段初始点,回到步骤2开始拟合后续的小线段。若后续无剩余小线段,即i==n,则结束拟合。
[0032]
由于导入的连续小线段点较多时,并不是所有小线段都拟合成一条长直线段,一般会拟合成多条长直线段,所以拟合完一条长直线段时,还需对剩余连续小线段点继续进行直线拟合。
[0033]
步骤5、由下面公式计算参数(分别用作步骤6中区间[η
min

max
]和区间[θ
min

max
]的修正系数):
[0034]
由步骤1知,erl为设定的拟合精度,转换为空间拟合直线段与xoy平面的夹角允许角度偏差转换为拟合直线段在xoy平面的投影直线与x轴的夹角允许的角度偏差
[0035][0036]
步骤6、按以下公式修正步骤2中的参数θ
max

min

max

min

[0037][0038][0039]
此步骤确保拟合直线的角度η,θ所属区间范围是保持收敛的。
[0040]
步骤7、回到步骤3,继续拟合小线段的下一点。
[0041]
实施例2
[0042]
本发明涉及一种空间圆弧拟合拟合方法,如图4所示,包括以下步骤:
[0043]
步骤1、导入如图2所示的连续小线段点,确定设定拟合精度erd,err(其中,e
rd
为点到圆弧所在空间平面的允许距离,e
rr
为点到圆心距离与半径差值的允许误差)。
[0044]
空间圆可看成是一个空间球面与一个过球心的空间平面相交形成。因此,首先考虑连续小线段点是否在空间圆弧所在的平面上,点到空间平面距离需要允许误差erd范围内;其次考虑连续小线段点是否位于圆弧所在球面上,点到圆心距离与半径差值需在允许误差e
rr
内。
[0045]
步骤2、由小线段上的前三个点p0,p1,p2的坐标值(x0,y0,z0),(x1,y1,z1),(x2,y2,z2),三个不共线的点可确定一个平面方程,将三点坐标带入平面方程ax+by+cz+d=0,联立公式即可求解平面方程的参数a、b、c、d,即得到三点所在的空间平面参数a、b、c、d。
[0046][0047]
步骤3、对小线段上的后续点pi=(xi,yi,zi)(i=4,5,

,n),计算该点到步骤2所求空间平面的垂直距离d
p
;根据点到空间平面的距离公式即可计算d
p

[0048][0049]
步骤4、考虑连续小线段点是否在空间圆弧所在的平面上,点到空间平面距离d
p
需要允许误差erd范围内。如果所述步骤3中所得d
p
<erd,则继续下一步骤5,否则输出前一圆弧参数。
[0050]
步骤5、选取首点p0(x0,y0,z0)、当前点pi(xi,yi,zi)、p0与pi中间一点pc(xc,yc,zc)坐标,并且结合圆弧圆心(a,b,c)位于步骤2所求空间平面上。由以下公式计算空间圆弧的圆心(a,b,c)和半径r,以及圆弧方向参数。空间圆弧需由空间不共线的三点确定,选取首点和当前点,是为了此拟合的长圆弧段的结束点是下一拟合的长圆弧段的开始点,这样可以保证圆弧段之间是连续的,保证加工的连续性。
[0051][0052]
步骤6、为了判断此次拟合的连续小线段点是否都近似在拟合的圆弧上,因此需计算各点到圆弧圆心点的距离与半径的差值。求连续小线段数据点列区间[0,i]各点p0,p1,...,pi到圆弧圆心点的距离与半径的差值:
[0053][0054]
步骤7、考虑连续小线段点是否位于空间圆弧上,点到圆心距离与半径差值δrj需在允许误差e
rr
内。若δrj<err,则继续回到第3步骤拟合下一点,否则输出前一圆弧的参数。
[0055]
步骤8、直到拟合完最后一点,结束拟合。
[0056]
实施例3
[0057]
本发明提供一种空间圆弧与直线拟合方法,结合空间圆弧和直线拟合,具体算法流程如图5所示,结合前面空间圆弧和空间直线拟合方案,主要技术方案如下:
[0058]
步骤1、导入连续小线段数据点列,求连续小线段数据点列区间[0,i],确定参数erδ,erd,err,erl(其中,erδ为判断程序进入直线拟合还是圆弧拟合的阈值,e
rd
为点到圆弧所在空间平面的允许距离,e
rr
为点到圆心距离与半径差值的允许误差,erl为空间直线的拟合精度)。
[0059]
步骤2、由前三个点坐标p0(x0,y0,z0),p1(x1,y1,z1),p2(x2,y2,z2),向量向量由以下过程计算向量和的夹角δ:
[0060][0061]
[0062][0063][0064]
δ=arccosδ;
[0065]
通过计算向量和向量的夹角δ,是为了判断点p0,p1,p2是否在一条直线上。
[0066]
步骤3、若δ<erδ,则可认为点p0,p1,p2位于同一条直线,因此可进入直线拟合继续拟合后续点。则进入步骤6空间直线拟合过程,否则,点p0,p1,p2不共线,可拟合成圆弧段,因此进入圆弧拟合过程。
[0067]
步骤4、对后续点pi=(xi,yi,zi)(i=4,5,

,n),判断每点pi圆弧拟合误差是否满足要求,即d
p
<erd,δrj<err。每点pi满足圆弧拟合要求则继续将后续点拟合成圆弧。所述空间圆弧拟合过程为:
[0068]
步骤4.1、由小线段上的前三个点p0,p1,p2的坐标值(x0,y0,z0),(x1,y1,z1),(x2,y2,z2)带入以下方程计算三点所在的空间平面参数a、b、c、d。
[0069][0070]
步骤4.2、对小线段上的后续点pi=(xi,yi,zi)(i=4,5,ω,n),计算该点到步骤4.1所求空间平面的垂直距离d
p

[0071][0072]
步骤4.3、如果所述步骤4.2中所得d
p
<erd,则继续下一步骤4.4,否则输出前一圆弧参数(即圆心坐标(a,b,c)和半径r)。
[0073]
步骤4.4、选取首点p0(x0,y0,z0)、当前点pi(xi,yi,zi)、p0与pi中间一点pc(xc,yc,zc)坐标,并且结合圆弧圆心(a,b,c)位于空间平面上。由以下公式计算空间圆弧的圆心(a,b,c)和半径r,以及圆弧方向参数。
[0074][0075]
步骤4.5、求连续小线段数据点列区间[0,i]各点p0,p1,...,pi到圆弧圆心点的距离与半径的差值:
[0076][0077]
步骤4.6、若δrj<err,则继续回到步骤4.2拟合下一点,否则输出前一圆弧的圆心和半径参数。
[0078]
步骤4.7、直到拟合完最后一点,结束拟合。
[0079]
步骤5、若点pi不满足圆弧拟合要求,判断已经拟合的点数i是否小于4,若i≤4,则前面4个点不拟合成圆弧,进入步骤6的空间直线拟合过程。若i>4,则将为拟合的圆弧段。点p
i-1
作为后续拟合的初始点,从点p
i-1
开始下一拟合。
[0080]
拟合的圆弧少于4个点,大概率这4个点位于同一直线上,因进入直线拟合可拟合更多的点。
[0081]
步骤6、空间直线拟合方法如下步骤,若进入空间直线拟合,则按照技术方案一的空间直线拟合的步骤,计算η,θ等参数,点pi满足拟合要求,则继续拟合下一点,不满足拟合要求则输出前一拟合直线段p0p
i-1
。点p
i-1
作为后续拟合的初始点,从点p
i-1
开始下一拟合。
[0082]
步骤6.1、设小线段的初始点p0=(x0,y0,z0),设初始参数值η
max
=+∞,θ
min
=-∞,θ
max
=+∞,θ
min
=-∞(其中,[θ
max

min
]为拟合直线段与xoy平面的夹角区间范围,[θ
max

min
]为拟合直线段在xoy平面的投影直线与x轴的夹角区间范围)。
[0083]
步骤6.2、对小线段初始点的后续任意点pi=(xi,yi,zi)(i=1,2,

,n),计算点p0与点pi连成的直线段p0pi与xoy平面的夹角计算直线段p0pi在xoy平面的投影与x轴的夹角
[0084]
步骤6.3、若所述步骤6.2中所得θ,θ在所述步骤6.1设定的允许范围内,即η∈[η
min

max
]且θ∈[θ
min

max
],则继续后续步骤6.4计算参数
[0085]
若所述步骤6.2中所得η,θ不在所述步骤6.1设定的允许范围内,即η<η
min
或η>η
max
或θ<θ
min
或θ>θ
max
,则将前一直线段p0p
i-1
作为拟合直线段输出。将直线段p0p
i-1
作为拟合直线段后,若后续还有小线段未拟合,即i<n,则点p
i-1
为下一拟合直线段初始点,回到步骤6.1开始拟合后续的小线段。若后续无剩余小线段,即i==n,则结束拟合。
[0086]
步骤6.4、由下面公式计算参数(分别用作步骤6.5中区间[η
min

max
]和区间[θ
min

max
]的修正系数):
[0087][0088]
步骤6.5、按以下公式修正步骤6.1中的参数η
max

min

max

min

[0089][0090][0091]
步骤6.6、回到步骤6.2,继续拟合小线段的下一点。
[0092]
步骤7、直到所有点拟合完成,结束拟合。

技术特征:
1.一种空间圆弧拟合方法,其特征在于,包括以下步骤:步骤1、导入连续小线段点,确定设定拟合精度erd,err;e
rd
为点到圆弧所在空间平面的允许距离,e
rr
为点到圆心距离与半径差值的允许误差;步骤2、由小线段上的前三个点p0,p1,p2的坐标值(x0,y0,z0),(x1,y1,z1),(x2,y2,z2),计算三点所在的空间平面参数a、b、c、d;步骤3、对小线段上的后续点p
i
=(x
i
,y
i
,z
i
)(i=4,5,l,n),计算该点到步骤2所求空间平面的垂直距离d
p
;步骤4、如果所述步骤3中所得d
p
<erd,则继续下一步骤5,否则输出前一圆弧的圆心坐标(a,b,c)和半径r参数;步骤5、选取首点p0(x0,y0,z0)、当前点p
i
(x
i
,y
i
,z
i
)、p0与p
i
中间一点p
c
(x
c
,y
c
,z
c
)坐标,并且结合圆弧圆心(a,b,c)位于所述步骤2的空间平面上;计算空间圆弧的圆心(a,b,c)和半径r,以及圆弧方向参数;步骤6、求连续小线段数据点列区间[0,i]各点p0,p1,k,p
i
到圆弧圆心点的距离与半径的差值δr
j
;步骤7、若δr
j
<err,则继续回到步骤3拟合下一点,否则输出前一圆弧的圆心和半径参数;步骤8、直到拟合完最后一点,结束拟合。

技术总结
一种空间圆弧拟合方法:1、导入连续小线段点,设定拟合精度E


技术研发人员:东梁 董志劼 蔡四雄 向龙 马树华 严昊
受保护的技术使用者:深圳市旗众智能科技有限公司
技术研发日:2021.03.30
技术公布日:2023/8/24
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐