一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

轨迹拟合方法、装置、设备及存储介质与流程

2022-11-23 15:53:31 来源:中国专利 TAG:


1.本发明涉及轨迹拟合技术领域,尤其涉及一种轨迹拟合方法、装置、设备及存储介质。


背景技术:

2.在机床加工领域,针对被加工件的形状进行轨迹规划是机床加工中十分重要的环节,轨迹拟合是轨迹规划中具有重大意义的一项技术。目前,针对平面自由曲线的轨迹拟合技术研究较多。虽然现有的轨迹拟合技术已较为成熟,但这些技术主要是针对于平面自由曲线的,无法直接应用到三维空间的自由曲线上,存在通用性较低的问题。


技术实现要素:

3.本发明的主要目的在于:提供一种轨迹拟合方法、装置、设备及存储介质,旨在解决现有技术中针对平面自由曲线的轨迹拟合方法不适用于三维空间自由曲线,存在通用性较低的技术问题。
4.为实现上述目的,本发明采用如下技术方案:
5.第一方面,本发明提供了一种轨迹拟合方法,所述方法包括:
6.获取至少三个空间离散点构成的点列;
7.根据预设直线拟合模式,利用最小二乘法对所述点列进行直线拟合,得到第一拟合直线;
8.当直线拟合失败时,利用最小二乘法对所述点列进行圆弧拟合,得到拟合圆弧,其中,所述直线拟合失败为所述第一拟合直线不符合预设误差条件;
9.根据所述第一拟合直线或所述拟合圆弧,确定所述点列对应的拟合轨迹。
10.可选地,上述轨迹拟合方法中,所述根据预设直线拟合模式,利用最小二乘法对所述点列进行直线拟合,得到第一拟合直线的步骤包括:
11.当所述预设直线拟合模式为第一直线拟合模式时,根据所述点列的起点,利用最小二乘法对所述点列进行直线拟合,得到第一直线;
12.当所述预设直线拟合模式为第二直线拟合模式时,根据所述点列的终点,利用最小二乘法对所述点列进行直线拟合,得到第二直线;
13.当所述预设直线拟合模式为第三直线拟合模式时,根据所述点列的起点和终点间连线的中点,利用最小二乘法对所述点列进行直线拟合,得到第三直线;
14.当所述预设直线拟合模式为第四直线拟合模式时,记录所述点列中任意两点连线的中点,获得点集合;
15.针对所述点集合中的每个记录点,利用最小二乘法对所述点列进行直线拟合,得到多条待选直线;
16.分别计算所述点列中各点到所述多条待选直线的距离之和,将距离之和最小时所对应的待选直线确定为第四直线;
17.将所述第一直线、所述第二直线、所述第三直线或所述第四直线确定为所述第一拟合直线。
18.可选地,上述轨迹拟合方法中,所述获取至少三个空间离散点构成的点列的步骤包括:
19.获取三维空间中的n个离散点,其中,n为正整数且n≥3;
20.在所述n个离散点中提取任意的至少三个离散点,得到第i点至第m点构成的点列,其中,i、m均为正整数,i<m≤n;
21.所述根据所述第一拟合直线或所述拟合圆弧,确定所述点列对应的拟合轨迹的步骤之后,所述方法还包括:
22.设定i的值为m-1,m的值为m 1,得到第i点至第m点构成的新点列,重复执行所述根据预设直线拟合模式,利用最小二乘法对所述点列进行直线拟合的步骤,得到所述新点列对应的拟合轨迹,直到遍历所述n个离散点,得到多条拟合轨迹;
23.对所述多条拟合轨迹进行拼接,得到所述n个离散点对应的最终轨迹。
24.可选地,上述轨迹拟合方法中,所述根据预设直线拟合模式,利用最小二乘法对所述点列进行直线拟合,得到第一拟合直线的步骤之后,所述方法还包括:
25.计算所述点列中各点分别与所述第一拟合直线的距离,得到第一距离最大值;
26.对所述第一距离最大值与预设直线拟合误差值进行比较;
27.若所述第一距离最大值小于所述预设直线拟合误差值,则判定直线拟合成功;
28.将所述第一拟合直线存入拟合矩阵,并设定m的值为m 1,重新得到第i点至第m点构成的点列,返回所述根据预设直线拟合模式,利用最小二乘法对所述点列进行直线拟合,得到第一拟合直线的步骤,直到所述第一距离最大值大于或等于所述预设直线拟合误差值;
29.若所述第一距离最大值大于或等于所述预设直线拟合误差值,则判定直线拟合失败,执行所述利用最小二乘法对所述点列进行圆弧拟合,得到拟合圆弧的步骤。
30.可选地,上述轨迹拟合方法中,所述利用最小二乘法对所述点列进行圆弧拟合,得到拟合圆弧的步骤之后,所述方法还包括:
31.计算所述点列中各点分别与所述拟合圆弧的距离,得到第二距离最大值;
32.对所述第二距离最大值与预设圆弧拟合误差值进行比较;
33.若所述第二距离最大值小于所述预设圆弧拟合误差值,则判定圆弧拟合成功;
34.将所述拟合圆弧存入所述拟合矩阵,并设定m的值为m 1,重新得到第i点至第m点构成的点列,返回所述利用最小二乘法对所述点列进行圆弧拟合,得到拟合圆弧的步骤,直到所述第二距离最大值大于或等于所述预设圆弧拟合误差值;
35.若所述第二距离最大值大于或等于所述预设圆弧拟合误差值,则判定圆弧拟合失败,执行所述根据所述第一拟合直线或所述拟合圆弧,确定所述点列对应的拟合轨迹的步骤。
36.可选地,上述轨迹拟合方法中,所述根据所述第一拟合直线或所述拟合圆弧,确定所述点列对应的拟合轨迹的步骤包括:
37.判断所述拟合矩阵中是否具有已存入的拟合圆弧;
38.若所述拟合矩阵中具有已存入的拟合圆弧,则将最近一次存入所述拟合矩阵的拟
合圆弧确定为所述点列中第i点至第m-1点对应的拟合轨迹;
39.若所述拟合矩阵中没有已存入的拟合圆弧,则将最近一次存入所述拟合矩阵的拟合直线确定为所述点列中第i点至第m-1点对应的拟合轨迹。
40.可选地,上述轨迹拟合方法中,所述利用最小二乘法对所述点列进行圆弧拟合,得到拟合圆弧的步骤之前,所述方法还包括:
41.当直线拟合失败时,判断所述点列中空间离散点的数量是否大于三;
42.若所述点列中空间离散点的数量大于三,则执行所述利用最小二乘法对所述点列进行圆弧拟合,得到拟合圆弧的步骤;
43.若所述点列中空间离散点的数量等于三,则将所述点列中第一点与第二点的连线确定为第二拟合直线;
44.将所述第二拟合直线存入所述拟合矩阵,执行所述根据所述第一拟合直线或所述拟合圆弧,确定所述点列对应的拟合轨迹的步骤。
45.第二方面,本发明提供了一种轨迹拟合装置,所述装置包括:
46.点列获取模块,用于获取至少三个空间离散点构成的点列;
47.直线拟合模块,用于根据预设直线拟合模式,利用最小二乘法对所述点列进行直线拟合,得到第一拟合直线;
48.圆弧拟合模块,用于当直线拟合失败时,利用最小二乘法对所述点列进行圆弧拟合,得到拟合圆弧,其中,所述直线拟合失败为所述第一拟合直线不符合预设误差条件;
49.轨迹获取模块,用于根据所述第一拟合直线或所述拟合圆弧,确定所述点列对应的拟合轨迹。
50.第三方面,本发明提供了一种轨迹拟合设备,所述轨迹拟合设备包括处理器和存储器,所述存储器中存储有轨迹拟合程序,所述轨迹拟合程序被所述处理器执行时,实现如上述的轨迹拟合方法。
51.第四方面,本发明提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被一个或多个处理器执行时,实现如上述的轨迹拟合方法。
52.本发明提供的上述一个或多个技术方案,可以具有如下优点或至少实现了如下技术效果:
53.本发明提出的一种轨迹拟合方法、装置、设备及存储介质,通过获取至少三个空间离散点构成的点列;根据预设直线拟合模式,利用最小二乘法对点列进行直线拟合,得到第一拟合直线;当第一拟合直线不符合预设误差条件时,利用最小二乘法对点列进行圆弧拟合,得到拟合圆弧;根据第一拟合直线或拟合圆弧,确定点列对应的拟合轨迹,实现了对三维空间自由曲线进行轨迹拟合的目的。由空间直线或空间圆弧得到的拟合轨迹,轨迹的曲率半径计算方便,为机床加工中轨迹拟合后的轨迹插补、速度和加速度的规划等操作提供了便利,考虑到了机床加工领域所具有特点,更加适用机床加工时的空间轨迹规划,具有较高的适用性;根据预设直线拟合模式进行对应的直线拟合,以不同方式得到拟合直线,并且误差精度可控,可以适用不同机床对轨迹拟合的不同要求,具有较高的通用性。
附图说明
54.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的这些附图获得其他的附图。
55.图1为本发明轨迹拟合方法第一实施例的流程示意图;
56.图2为本发明涉及的轨迹拟合设备的硬件结构示意图;
57.图3为本发明轨迹拟合方法第二实施例的流程示意图;
58.图4为本发明轨迹拟合装置第一实施例的功能模块示意图。
59.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
60.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
61.需要说明,在本发明中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。在本发明中,若有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
62.对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。另外,各个实施例的技术方案可以相互结合,但是,是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
63.随着时代的发展,机床加工技术已被应用到各行各业,由于行业的不同与需求的多样性,被加工件的几何形状也各不相同,使得具有空间自由曲线形状的物件得以广泛应用,在一定程度上,促使技术人员必须开发出功能更强、自由度更大、且能更好的满足使用需求的轨迹拟合技术。
64.对现有技术的分析发现,轨迹拟合大多都是基于给定的离散点来进行,也即通过采集被加工件上一系列点的坐标信息进而获得坐标点云,通过对所获取的点云进行逆向重构,重构出被加工件的几何形状。
65.目前来看,针对平面自由曲线的轨迹拟合技术研究较多,例如,基于动态设计方法使用直线与圆弧来拟合数字化平面自由曲线的技术,又如,通过基于遗传算法研究直线与圆弧来拟合平面自由曲线、通过设定误差精度来拟合平面自由曲线、通过采用平面样条曲线来拟合平面自由曲线等技术。
66.虽然现有的轨迹拟合技术已较为成熟,但这些技术主要是针对于平面自由曲线的,无法直接应用到三维空间的自由曲线上,存在通用性较低的问题;同时,现有的轨迹拟合技术往往只能实现几何意义上的轨迹拟合,拟合得到的轨迹在后续利用时,需要计算曲率半径且计算量较大,导致轨迹利用率不高,无法兼顾到机床加工时的插补计算和速度规划等后续操作的便利性,导致插补效率不高。
67.鉴于现有技术中针对平面自由曲线的轨迹拟合方法不适用于三维空间自由曲线,存在通用性较低以及拟合得到的轨迹利用率不高的技术问题,本发明提供了一种轨迹拟合方法,总体思路如下:
68.获取至少三个空间离散点构成的点列;根据预设直线拟合模式,利用最小二乘法对点列进行直线拟合,得到第一拟合直线;当直线拟合失败时,利用最小二乘法对点列进行圆弧拟合,得到拟合圆弧,其中,所述直线拟合失败为所述第一拟合直线不符合预设误差条件;根据第一拟合直线或拟合圆弧,确定点列对应的拟合轨迹。
69.通过上述技术方案,实现了对三维空间自由曲线进行轨迹拟合的目的。由空间直线或空间圆弧得到的拟合轨迹,轨迹的曲率半径计算方便,为机床加工中轨迹拟合后的轨迹插补、速度和加速度的规划等操作提供了便利,考虑到了机床加工领域所具有特点,更加适用机床加工时的空间轨迹规划,具有较高的适用性;根据预设直线拟合模式进行对应的直线拟合,以不同方式得到拟合直线,并且误差精度可控,可以适用不同机床对轨迹拟合的不同要求,具有较高的通用性。
70.下面结合附图,通过具体的实施例和实施方式对本发明提供的轨迹拟合方法、装置、设备及存储介质进行详细说明。
71.实施例一
72.参照图1的流程示意图,提出本发明轨迹拟合方法的第一实施例,该轨迹拟合方法应用于轨迹拟合设备。
73.轨迹拟合设备是指能够实现通信连接的终端设备或系统设备,可以是对机床进行控制的嵌入式工控机等终端设备,也可以是对机床进行控制的控制系统等系统设备。
74.如图2所示,为轨迹拟合设备的硬件结构示意图。轨迹拟合设备可以包括:处理器1001,例如cpu(central processing unit,中央处理器),通信总线1002,用户接口1003,网络接口1004,存储器1005。本领域技术人员可以理解,图2中示出的硬件结构并不构成对本发明轨迹拟合设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
75.具体的,通信总线1002用于实现这些组件之间的连接通信;用户接口1003用于连接客户端,与客户端进行数据通信,用户接口1003可以包括输出单元,如显示屏、输入单元,如键盘;网络接口1004用于连接后台控制中心,与后台控制中心进行数据通信,网络接口1004可以包括输入/输出接口,比如标准的有线接口、无线接口,如wi-fi接口;存储器1005用于存储各种类型的数据,这些数据例如可以包括该轨迹拟合设备中任何应用程序或方法的指令,以及应用程序相关的数据,存储器1005可以是高速ram存储器,也可以是稳定的存储器,例如磁盘存储器;可选的,存储器1005还可以是独立于处理器1001的存储装置,继续参照图2,存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及轨迹拟合程序;处理器1001用于调用存储器1005中存储的轨迹拟合程序,并执行以下操作:
76.获取至少三个空间离散点构成的点列;
77.根据预设直线拟合模式,利用最小二乘法对点列进行直线拟合,得到第一拟合直线;
78.当直线拟合失败时,利用最小二乘法对点列进行圆弧拟合,得到拟合圆弧,其中,所述直线拟合失败为所述第一拟合直线不符合预设误差条件;
79.根据第一拟合直线或拟合圆弧,确定点列对应的拟合轨迹。
80.基于上述的轨迹拟合设备,下面结合图1所示的流程示意图,对本实施例的轨迹拟合方法进行详细描述。方法可以包括以下步骤:
81.步骤s100:获取至少三个空间离散点构成的点列。
82.具体的,空间离散点是指位于三维空间中的间隔有一定距离的采集点,这些采集点可以基于目标加工产品的三维空间自由曲线轮廓设定,使最终得到的轨迹可以用于控制机床的加工部件按该轨迹加工,得到对应空间曲面轮廓的加工产品,其中,目标加工产品可以是用户基于绘图软件得到的产品样品,可以用坐标信息的不同来表示不同的空间离散点,而空间离散点的排序则可以根据实际需要设定。点列是指多个点构成的集合,此处为至少三个空间离散点构成的集合。空间离散点的数量可以根据实际情况设定,比如,由用户直接标定获取预设数量的空间离散点,又比如,从用户标定的大量空间离散点中提取的几个空间离散点。至少三个空间离散点是为了保证轨迹拟合的成功进行,若少于三个,则三维空间自由曲线的轨迹便成了相邻两个空间离散点构成的折线轨迹,无法得到平滑的轨迹,也就无法得到更趋近于实际产品曲面轮廓的加工产品。
83.步骤s300:根据预设直线拟合模式,利用最小二乘法对所述点列进行直线拟合,得到第一拟合直线。
84.具体的,直线拟合模式可以有多种,预设直线拟合模式是指预先设定的多种直线拟合模式中的任意一种。最小二乘法可以通过最小化误差的平方和寻找数据的最佳函数匹配,利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。此处利用最小二乘法对点列中至少三个空间离散点进行直线拟合后,可以得到一条拟合直线,即第一拟合直线。
85.可选地,得到第一拟合直线后,可以判断第一拟合直线是否满足预设误差条件,当第一拟合直线满足预设误差条件时,判定直线拟合成功,否则,判定直线拟合失败。当直线拟合成功时,可以跳转执行步骤s700;当直线拟合失败时,则执行步骤s500。直线拟合成功,可以直接确定该第一拟合直线为拟合轨迹,或者增加点列中的空间离散点继续进行直线拟合,得到新的第一拟合直线作为拟合轨迹;直线拟合失败,可以继续尝试用圆弧拟合的方式来获取拟合轨迹。
86.步骤s500:当直线拟合失败时,利用最小二乘法对所述点列进行圆弧拟合,得到拟合圆弧,其中,所述直线拟合失败为所述第一拟合直线不符合预设误差条件。
87.具体的,当直线拟合失败时,说明根据当前点列中的空间离散点进行直线拟合所得到的第一拟合直线,不符合预设误差条件,不能作为当前点列中的空间离散点对应的拟合轨迹,此时,可以采用最小二乘法再对当前点列中的空间离散点进行圆弧拟合,得到一条圆弧,即拟合圆弧。
88.可选地,得到拟合圆弧后,可以判断拟合圆弧是否满足预设误差条件,当拟合圆弧
满足对应的预设误差条件时,判定圆弧拟合成功,否则,判定圆弧拟合失败。进一步可选地,当圆弧拟合成功时,可以执行步骤s700;当圆弧拟合失败时,可以结束本轮流程或者返回步骤s100重新确定点列。
89.步骤s700:根据所述第一拟合直线或所述拟合圆弧,确定所述点列对应的拟合轨迹。
90.具体的,当对点列中至少三个空间离散点进行直线拟合,得到第一拟合直线后,可以根据第一拟合直线确定点列对应的拟合轨迹,即可以直接将第一拟合直线确定为该点列对应的拟合轨迹;也可以在判断第一拟合直线符合预设误差条件时,再将第一拟合直线确定为该点列对应的拟合轨迹;当得到的第一拟合直线不符合预设误差条件,对点列中至少三个空间离散点进行圆弧拟合,得到拟合圆弧后,可以根据拟合圆弧确定点列对应的拟合轨迹,即可以直接将拟合圆弧确定为该点列对应的拟合轨迹;也可以在判断拟合圆弧符合对应的预设误差条件时,再将拟合圆弧确定为该点列对应的拟合轨迹;还可以在判断拟合圆弧不符合对应的预设误差条件时,结束本轮流程或者返回步骤s100重新确定点列。
91.可选地,在判断第一拟合直线符合预设误差条件时,可以将第一拟合直线暂存,然后循环执行步骤s100、s300,得到新点列及对应的新第一拟合直线,并将该新第一拟合直线暂存,循环上述步骤即执行多轮流程,直到在判断新第一拟合直线不符合预设误差条件,对新点列进行圆弧拟合得到拟合圆弧后,判断拟合圆弧不符合对应的预设误差条件时,以最近一次暂存的第一拟合直线作为最终结果,也就是执行上一轮流程得到的第一拟合直线。当对新点列进行圆弧拟合得到拟合圆弧后,判断拟合圆弧符合对应的预设误差条件时,可以将该拟合圆弧暂存,然后循环执行步骤s100、s300、s500,得到新点列及对应的新拟合圆弧,并将该新拟合圆弧暂存,继续循环上述步骤即再执行多轮流程,直到在判断新拟合圆弧不符合对应的预设误差条件时,以最近一次暂存的拟合圆弧作为最终结果,也就是执行上一轮流程得到的拟合圆弧。其中,新点列可以是在原本至少三个空间离散点的基础上增加后续的一个空间离散点得到,也就是上述循环执行的流程的最终结果所对应的点列中的起点与一开始获取的至少三个空间离散点构成的点列中的起点是同一个。
92.本实施例的方法可以在实际应用中针对众多空间离散点循环执行,实现对众多空间离散点的轨迹拟合,使得到的轨迹在满足预设误差条件的基础上,满足实际应用的需求。该方法将直线拟合方式与圆弧拟合方式结合,不仅实现了不同拟合模式对应的直线拟合,还可保证拟合成功率,减少轨迹分段。
93.本实施例提供的轨迹拟合方法,通过获取至少三个空间离散点构成的点列;根据预设直线拟合模式,利用最小二乘法对点列进行直线拟合,得到第一拟合直线;当第一拟合直线不符合预设误差条件时,利用最小二乘法对点列进行圆弧拟合,得到拟合圆弧;根据第一拟合直线或拟合圆弧,确定点列对应的拟合轨迹,实现了对三维空间自由曲线进行轨迹拟合的目的。由空间直线或空间圆弧得到的拟合轨迹,轨迹的曲率半径计算方便,为机床加工中轨迹拟合后的轨迹插补、速度和加速度的规划等操作提供了便利,考虑到了机床加工领域所具有特点,更加适用机床加工时的空间轨迹规划,具有较高的适用性;根据预设直线拟合模式进行对应的直线拟合,以不同方式得到拟合直线,并且误差精度可控,可以适用不同机床对轨迹拟合的不同要求,具有较高的通用性。
94.实施例二
95.基于同一发明构思,参照图3,提出本发明轨迹拟合方法的第二实施例,该轨迹拟合方法也应用于轨迹拟合设备。
96.下面结合图3所示的流程示意图,对本实施例的轨迹拟合方法进行详细描述。方法可以包括以下步骤:
97.步骤s100:获取至少三个空间离散点构成的点列;
98.进一步地,步骤s100可以包括:
99.步骤s110:获取三维空间中的n个离散点,其中,n为正整数且n≥3;
100.步骤s120:在所述n个离散点中提取任意的至少三个离散点,得到第i点至第m点构成的点列,其中,i、m均为正整数,i<m≤n。
101.具体的,n可以是一个较大的数字,提取至少三个离散点,对应的,i与m的差值至少为2。获取三维空间中的n个离散点后,在这n个离散点中任意提取至少三个离散点,本实施例以提取三个离散点为例进行说明。为了保证对n个离散点中的所有点均实现轨迹拟合,第一次执行本方法的第一个流程时,i可以取值为1,结合限定的提取至少三个离散点,此时m可以取值为3。也就是说,i的初始值为1,m的初始值为3。
102.本实施例中,假设获取了n=10个离散点,首先,在这10个离散点中提取得到第1点至第3点构成的点列a[1,2,3]。
[0103]
步骤s300:根据预设直线拟合模式,利用最小二乘法对所述点列进行直线拟合,得到第一拟合直线。
[0104]
具体的,预设直线拟合模式的数量和对应的具体直线拟合方式可以根据实际情况设定。为了更全面且更适应多种应用需求,本实施例提供了四种不同的直线拟合方式。在实际应用中,可以针对这四种不同的直线拟合方式对应设置不同的表示符号,例如设置拟合模式值mode,分别以1-4表示四种不同的直线拟合方式,当然,还可以以其他字符来表示不同的直线拟合方式。设置拟合模式值可以方便用户选择合适的直线拟合方式,即得到预设直线拟合模式。然后,基于预设直线拟合模式,通过最小二乘法对点列进行直线拟合,从而得到第一拟合直线,其中,直线拟合为空间直线拟合操作。
[0105]
进一步地,步骤s300可以包括:
[0106]
步骤s310:当所述预设直线拟合模式为第一直线拟合模式时,根据所述点列的起点,利用最小二乘法对所述点列进行直线拟合,得到第一直线。
[0107]
第一直线拟合模式下,具体的拟合方式为,过点列的起点即第i点,对点列中第i点至第m点进行直线拟合,得到一直线,即第一直线。
[0108]
本实施例中,当预设直线拟合模式为第一直线拟合模式时,过点列a的起点即第1点,利用最小二乘法对第1至3点进行直线拟合,得到第一直线。
[0109]
步骤s320:当所述预设直线拟合模式为第二直线拟合模式时,根据所述点列的终点,利用最小二乘法对所述点列进行直线拟合,得到第二直线。
[0110]
第二直线拟合模式下,具体的拟合方式为,过点列的终点即第m点,对点列中第i点至第m点进行直线拟合,得到一直线,即第二直线。
[0111]
本实施例中,当预设直线拟合模式为第二直线拟合模式时,过点列a的终点即第3点,利用最小二乘法对第1至3点进行直线拟合,得到第二直线。
[0112]
步骤s330:当所述预设直线拟合模式为第三直线拟合模式时,根据所述点列的起
点和终点间连线的中点(即第i点和第m点连线的中点),利用最小二乘法对所述点列进行直线拟合,得到第三直线。
[0113]
第三直线拟合模式下,具体的拟合方式为,先获取点列的起点即第i点与点列的终点即第m点间连线的中点,然后过该中点,对点列中第i点至第m点进行直线拟合,得到一直线,即第三直线。
[0114]
本实施例中,当预设直线拟合模式为第三直线拟合模式时,过第1点和第3点连线的中点,利用最小二乘法对第1至3点进行直线拟合,得到第三直线。
[0115]
步骤s340:当所述预设直线拟合模式为第四直线拟合模式时,根据所述点列中任意两点连线的中点对应的点集合,利用最小二乘法对所述点列进行直线拟合,得到第四直线。
[0116]
具体的,步骤s340可以包括:
[0117]
步骤s341:当所述预设直线拟合模式为第四直线拟合模式时,记录所述点列中任意两点连线的中点,获得点集合;
[0118]
步骤s342:针对所述点集合中的每个记录点,利用最小二乘法对所述点列进行直线拟合,得到多条待选直线;
[0119]
步骤s343:分别计算所述点列中各点到所述多条待选直线的距离之和,将距离之和最小时所对应的待选直线确定为第四直线。
[0120]
第四直线拟合模式下,具体的拟合方式为,先在点列中任取两点,其中,该两点可以是重复提取的点,记录这两点连线的中点,针对点列中所有点可以组合得到多种任取两点的方式,记录下所有取点情况之下的线段中点,得到点集合;然后,针对点集合中的每个记录点,过该记录点,利用最小二乘法对点列中第i点至第m点进行直线拟合,得到对应的直线,对该点集合中所有记录点均执行该操作后,可以得到多条对应的直线,即多条待选直线;再分别计算点列中各点到待选直线的距离之和,从而可以得到与多条待选直线对应的多个距离之和,计算完成,得到该多个距离之和后,可以比较这些距离之和,选取距离之和的最小值,然后将该最小值所对应的待选直线确定为拟合得到的直线,即第四直线。
[0121]
本实施例中,当预设直线拟合模式为第四直线拟合模式时,第1点至第3点构成的点列a可以组合得到(1,2)、(1,3)、(2,3)三种取点方式,其中,第1点在两次取点中有重复。基于上述的取点方式,记录得到第1点与第2点连线的中点、第1点与第3点连线的中点以及第2点与第3点连线的中点,记录下这三个中点便构成点集合;然后,针对点集合中的每个记录点,即每个中点,过该中点,对点列a中第1点至第3点进行直线拟合,得到一直线,遍历完该点集合中的所有记录点,可以得到三条直线,即得到三条待选直线;接着,计算点列a中第1点至第3点分别到第一条待选直线的距离之和,分别到第二条待选直线的距离之和,以及分别到第三条待选直线的距离之和,再从这三个结果中选取一个最小距离之和,假设第三条待选直线的距离之和最小,对应的,可将第三条待选直线确定为第四直线。
[0122]
需要说明,提供上述前三种直线拟合方式是为了适用不同直线拟合需求,为了更精确地确定最合适的拟合直线,防止点列中离散点的数量较多时,直接过起点、过终点、过起点和终点间连线的中点时对应得到的拟合直线不够贴切,因此增加了第四种直线拟合方式,即第四直线拟合模式。可以理解,第一至第三直线拟合模式计算量都较小,但精确度不高,不过针对数量较少的点列是完全够用的;而第四直线拟合模式虽然计算量较大,但误差
较小,精确度较高,当用户需要更精确地拟合直线,以得到更精确的轨迹时,可以选择该模式。
[0123]
步骤s350:将所述第一直线、所述第二直线、所述第三直线或所述第四直线确定为所述第一拟合直线。
[0124]
本实施例中,假设以上述任意一种方式得到了对应的直线,则该步骤便将得到的对应的直线确定为第一拟合直线l1。
[0125]
提供了四种不同的直线拟合方式,以四选一的方式,基于用户经验选择得到预设直线拟合模式,再对应进行直线拟合,以得到第一拟合直线,达到了拟合精度可控以及满足多种拟合需求的效果。
[0126]
步骤s400:判断第一拟合直线是否满足预设误差条件,当第一拟合直线满足预设误差条件时,判定直线拟合成功,否则,判定直线拟合失败。
[0127]
具体的,步骤s400可以包括:
[0128]
步骤s410:计算所述点列中各点分别与所述第一拟合直线的距离,得到第一距离最大值。
[0129]
本实施例中,计算点列a中第1点至第3点分别与第一拟合直线l1的距离,选取其中的最大值,得到第一距离最大值dis_max1。
[0130]
步骤s420:对所述第一距离最大值与预设直线拟合误差值进行比较。
[0131]
本实施例中,对第一距离最大值dis_max1与预设直线拟合误差值wc_dis1进行比较,其中,预设直线拟合误差值wc_dis1可以是用户自定义设置的值。
[0132]
步骤s430:若所述第一距离最大值小于所述预设直线拟合误差值,则判定直线拟合成功。
[0133]
对应的,基于点列中各点分别与第一拟合直线的距离得到的第一距离最大值小于预设直线拟合误差值,即为预设误差条件,直线拟合成功的判定标准则为第一拟合直线满足该预设误差条件。
[0134]
本实施例中,假设dis_max1<wc_dis1,则说明对第1点至第3点构成的点列a进行直线拟合是成功的。
[0135]
步骤s440:将所述第一拟合直线存入拟合矩阵,并设定m的值为m 1,重新得到第i点至第m点构成的点列,返回所述根据预设直线拟合模式,利用最小二乘法对所述点列进行直线拟合,得到第一拟合直线的步骤,直到所述第一距离最大值大于或等于所述预设直线拟合误差值。
[0136]
本实施例中,当直线拟合成功时,可以将第一拟合直线l1存入拟合矩阵m。同时,设定m=m 1,也就是m=4,从10个离散点中提取第1点至第4点,便重新得到第1点至第4点构成的点列b[1,2,3,4],重复执行步骤s300和s400,得到第一拟合直线l2,若步骤s420进行比较后,仍然满足dis_max1<wc_dis1,则可以判定当前流程的直线拟合也成功,然后可以将该第一拟合直线l2也存入拟合矩阵m,并继续取m=5,重新得到第1点至第5点构成的点列c[1,2,3,4,5],重复执行步骤s300和s400,得到第一拟合直线l3,如此循环,直到dis_max1≥wc_dis1。
[0137]
本实施例中,假设在重新得到第1点至第6点构成的点列d[1,2,3,4,5,6],重复执行步骤s300和s400,得到第一拟合直线l4,在步骤s420进行比较后,dis_max1≥wc_dis1,则
步骤s420之后,直接执行步骤s450。
[0138]
步骤s450:若所述第一距离最大值大于或等于所述预设直线拟合误差值,则判定直线拟合失败,执行所述利用最小二乘法对所述点列进行圆弧拟合,得到拟合圆弧的步骤。
[0139]
本实施例中,基于上述设定,若dis_max1≥wc_dis1,则说明对第1点至第6点构成的点列d进行直线拟合是失败的。此时,可以在此基础上,执行步骤s500,对该点列d进行圆弧拟合。
[0140]
步骤s500:当直线拟合失败时,利用最小二乘法对所述点列进行圆弧拟合,得到拟合圆弧,其中,所述直线拟合失败为所述第一拟合直线不符合预设误差条件。
[0141]
具体的,当第一拟合直线不满足预设误差条件,即基于点列中各点分别与第一拟合直线的距离得到的第一距离最大值大于或等于预设直线拟合误差值时,判定直线拟合失败后,可以继续利用最小二乘法对点列中第i点至第m点进行圆弧拟合,该圆弧拟合为空间圆弧拟合操作。空间圆弧拟合是基于给定的空间离散点,拟合出一条圆弧,且该圆弧满足如下条件:参与拟合的空间离散点到该圆弧的距离之和局部最小。对点列进行圆弧拟合后,可以得到对应的拟合圆弧。
[0142]
本实施例中,基于上述设定,当点列d进行直线拟合失败时,可以利用最小二乘法对点列d中第1点至第6点进行圆弧拟合,得到拟合圆弧arc1。
[0143]
步骤s600:判断拟合圆弧是否满足预设误差条件,当拟合圆弧满足对应的预设误差条件时,判定圆弧拟合成功,否则,判定圆弧拟合失败。
[0144]
具体的,步骤s600可以包括:
[0145]
步骤s610:计算所述点列中各点分别与所述拟合圆弧的距离,得到第二距离最大值。
[0146]
本实施例中,计算点列d中第1点至第6点分别与拟合圆弧arc1的距离,选取其中的最大值,得到第二距离最大值dis_max2。
[0147]
步骤s620:对所述第二距离最大值与预设圆弧拟合误差值进行比较。
[0148]
本实施例中,对第二距离最大值dis_max2与预设圆弧拟合误差值wc_dis2进行比较,其中,预设圆弧拟合误差值wc_dis2可以是用户自定义设置的值。
[0149]
步骤s630:若所述第二距离最大值小于所述预设圆弧拟合误差值,则判定圆弧拟合成功。
[0150]
对应的,基于点列中各点分别与拟合圆弧的距离得到的第二距离最大值小于预设圆弧拟合误差值,即为对应的预设误差条件,圆弧拟合成功的判定标准则为拟合圆弧满足该对应的预设误差条件。
[0151]
本实施例中,假设dis_max2<wc_dis2,则说明对第1点至第6点构成的点列d进行圆弧拟合是成功的。
[0152]
步骤s640:将所述拟合圆弧存入所述拟合矩阵,并设定m的值为m 1,重新得到第i点至第m点构成的点列,返回所述利用最小二乘法对所述点列进行圆弧拟合,得到拟合圆弧的步骤,直到所述第二距离最大值大于或等于所述预设圆弧拟合误差值。
[0153]
本实施例中,当圆弧拟合成功时,可以将拟合圆弧arc1存入拟合矩阵m。同时,设定m=m 1,也就是m=7,从10个离散点中继续提取第1点至第7点,便重新得到第1点至第7点构成的点列e[1,2,3,4,5,6,7],返回执行步骤s500和s600,得到拟合圆弧arc2,若步骤s620进
行比较后,仍然满足dis_max2<wc_dis2,则可以判定当前流程的圆弧拟合也成功,然后可以将该拟合圆弧arc2也存入拟合矩阵m,并继续取m=8,直到dis_max2≥wc_dis2。
[0154]
本实施例中,假设在重新得到第1点至第8点构成的点列f[1,2,3,4,5,6,7,8],重复执行步骤s500和s600时,得到的拟合圆弧arc3,在步骤s620进行比较后,dis_max2≥wc_dis2,则步骤s620之后,直接执行步骤s650。
[0155]
步骤s650:若所述第二距离最大值大于或等于所述预设圆弧拟合误差值,则判定圆弧拟合失败,执行所述根据所述第一拟合直线或所述拟合圆弧,确定所述点列对应的拟合轨迹的步骤。
[0156]
本实施例中,基于上述设定,若dis_max2≥wc_dis2,则说明对第1点至第8点构成的点列f进行圆弧拟合是失败的。此时,可以在此基础上,执行步骤s700,获取第一阶段的拟合轨迹。
[0157]
步骤s700:根据所述第一拟合直线或所述拟合圆弧,确定所述点列对应的拟合轨迹。
[0158]
具体的,当对m=n时对应的点列进行直线拟合成功时,当前点列对应的第一拟合直线可以作为该点列对应的拟合轨迹;当对m=n时对应的点列进行直线拟合失败,但继续进行圆弧拟合成功时,当前点列对应的拟合圆弧可以作为该点列对应的拟合轨迹。
[0159]
例如,本实施例中,假设m=n=3,则在步骤s430之后,可以执行该步骤s700,也就是在第1点至第3点构成的点列a进行直线拟合成功时,将第一拟合直线l1作为点列a对应的拟合轨迹。又例如,本实施例中,假设m=n=6,在步骤s630之后,可以执行该步骤s700,也就是在第1点至第6点构成的点列d进行圆弧拟合成功时,将拟合圆弧arc1作为点列d对应的拟合轨迹,对应的,假设m=n=7,在第1点至第7点构成的点列e进行圆弧拟合成功时,将拟合圆弧arc2作为点列e对应的拟合轨迹。
[0160]
当对m<n时对应的点列进行直线拟合失败且圆弧拟合也失败时,基于当前点列,执行了步骤s300-s420、s450-620和s650,将继续执行步骤s700。
[0161]
对应的,步骤s700可以包括:
[0162]
步骤s710:判断所述拟合矩阵中是否具有已存入的拟合圆弧。
[0163]
本实施例中,判断拟合矩阵m中是否具有已存入的拟合圆弧。
[0164]
步骤s720:若所述拟合矩阵中具有已存入的拟合圆弧,则将最近一次存入所述拟合矩阵的拟合圆弧确定为所述点列中第i点至第m-1点对应的拟合轨迹。
[0165]
本实施例中,基于上述设定,假设第1点至第8点构成的点列f进行圆弧拟合是失败的,则步骤s650之后,执行步骤s710,可以得到拟合矩阵m中具有已存入的拟合圆弧,此时,可以将最近一次存入该拟合矩阵m的拟合圆弧确定为点列中第i点至第m-1点对应的拟合轨迹,也就是说,可以得到拟合矩阵m中具有已存入的拟合圆弧arc1和arc2,此时,可以将最近一次存入该拟合矩阵m的拟合圆弧arc2确定为第1点至第7点对应的拟合轨迹。
[0166]
步骤s730:若所述拟合矩阵中没有已存入的拟合圆弧,则将最近一次存入所述拟合矩阵的拟合直线确定为所述点列中第i点至第m-1点对应的拟合轨迹。
[0167]
本实施例中,基于上述设定,假设第1点至第6点构成的点列d进行圆弧拟合是失败的,则执行步骤s650和s710后,可以得到拟合矩阵m中没有已存入的拟合圆弧,此时,可以将最近一次存入该拟合矩阵m的拟合直线确定为点列中第i点至第m-1点对应的拟合轨迹,也
就是说,可以将最近一次存入该拟合矩阵m的第一拟合直线l3确定为第1点至第5点对应的拟合轨迹。
[0168]
进一步地,步骤s700之后,该方法还可以包括:
[0169]
步骤s800:设定i的值为m-1,m的值为m 1,得到第i点至第m点构成的新点列,重复执行所述根据预设直线拟合模式,利用最小二乘法对所述点列进行直线拟合的步骤,得到所述新点列对应的拟合轨迹,直到遍历所述n个离散点,得到多条拟合轨迹。
[0170]
具体的,点列对应的拟合轨迹可能并不是所有n个离散点对应的最终轨迹,在此情况下,当圆弧拟合失败时,可以将当前点列的前一点列所对应的拟合轨迹保留,作为第一阶段的拟合轨迹,也就是在得到点列中第i点至第m-1点对应的拟合轨迹后,可以设定i=m-1,m=m 1,得到三个离散点构成的新点列,也就是以该前一点列的终点为下一阶段的起始点列的起点,重新提取三个空间离散点,然后重复执行上述步骤,也可以不断扩大新点列的终点,继续循环执行上述步骤,直到得到第二阶段的拟合轨迹。如此循环,可以得到多个阶段的拟合轨迹,即得到多条拟合轨迹。
[0171]
本实施例中,基于上述设定,若针对第1点至第8点构成的点列f,步骤s700最后是将最近一次存入该拟合矩阵m的拟合圆弧arc2确定为第1点至第7点对应的拟合轨迹,那么接下来将以i=m-1=8-1=7,m=m 1=8 1=9,得到第7点至第9点构成的新点列,重复执行上述所有步骤后,假设第7点至第9点构成的点列在直线拟合时成功,则会重新得到第7点至第10点构成的点列,假设此时直线拟合失败,进行圆弧拟合,得到拟合圆弧arc4,假设圆弧拟合成功,则可以将此时得到的拟合圆弧作为第7点至第10点构成的点列对应的拟合轨迹。此时,便得到了两条拟合轨迹,即圆弧arc2和圆弧arc4。
[0172]
步骤s900:对所述多条拟合轨迹进行拼接,得到所述n个离散点对应的最终轨迹。
[0173]
具体的,在遍历n个离散点,完成所有阶段的拟合轨迹,得到多条拟合轨迹后,可以将所有阶段的拟合轨迹拼接,便可得到n个空间离散点对应的最终轨迹。
[0174]
本实施例中,基于上述设定,步骤s800之后得到圆弧arc2和圆弧arc4后,可以对圆弧arc2和圆弧arc4进行拼接,得到10个离散点对应的最终轨迹。此时,才算完成了对n个离散点的轨迹拟合。
[0175]
在满足预设误差条件的基础上,尽可能多地不断增加点列中的空间离散点,从而得到更多的空间离散点对应的拟合轨迹,使三维空间自由曲线的轨迹尽可能少分段,而增加了轨迹的平滑度。
[0176]
在另一实施方式中,步骤s500之前,该方法还可以包括:
[0177]
步骤a1:当直线拟合失败时,判断所述点列中空间离散点的数量是否大于三;
[0178]
步骤a2:若所述点列中空间离散点的数量大于三,则执行所述利用最小二乘法对所述点列进行圆弧拟合,得到拟合圆弧的步骤;
[0179]
步骤a3:若所述点列中空间离散点的数量等于三,则将所述点列中第一点与第二点的连线确定为第二拟合直线;
[0180]
步骤a4:将所述第二拟合直线存入所述拟合矩阵,执行所述根据所述第一拟合直线或所述拟合圆弧,确定所述点列对应的拟合轨迹的步骤。
[0181]
具体的,在直线拟合失败,需要进行步骤s500的曲线拟合之前,还可以判断点列中空间离散点的数量是否大于三,或者说是判断m与i的差值是否等于2;若点列中空间离散点
的数量大于三,或者说是m与i的差值大于2,可以跳转执行步骤s500;若点列中空间离散点的数量等于三,或者说是m与i的差值等于2,此时,可以将点列中第一点与第二点的连线确定为第二拟合直线,或者说是将第i点和第i 1点的连线确定为第二拟合直线;得到第二拟合直线后,可以将该第二拟合直线存入拟合矩阵,以便执行步骤s700时不同情况下可能会用到,比如要用到最近一次存入拟合矩阵的拟合直线时,第二拟合直线也可以是最近一次存入拟合矩阵的拟合直线。
[0182]
本实施例中,若区别于步骤s430中的假设举例,步骤s420中进行比较时,基于点列a中各点分别与第一拟合直线l1的距离得到的第一距离最大值dis_max1≥wc_dis1,判定基于点列a的直线拟合失败,可以直接跳转执行步骤s450,从而执行步骤s500,对点列a进行圆弧拟合。此时,该实施方式中,在执行步骤s500之前,先判断点列a中空间离散点的数量是否大于三,对应可以得到点列a中空间离散点的数量等于三,此时,可以将点列a中第1点和第2点的连线确定为第二拟合直线y1,然后执行步骤s700,将其确定为第1点至第2点对应的拟合轨迹,完成第一阶段的轨迹拟合,然后可以执行步骤s800,基于第3点至第5点,进行第二阶段的轨迹拟合。
[0183]
该实施方式主要针对一些刚开始对包含最少三个空间离散点的点列进行直线拟合便失败的情况下,提供一种备选方案,以便适用更多用户需求。
[0184]
上述方法步骤的具体实施方式中更多实施细节可参见实施例一中具体实施方式的描述,为了说明书的简洁,此处不再重复赘述。
[0185]
本实施例提供的轨迹拟合方法,可以应用于机床加工,基于给定的三维空间离散点,提出了一种误差精度可控且拟合自由度与灵活性较大的轨迹拟合方法,同时,还可以兼顾到机床加工场景中,轨迹插补、速度和加速度控制等不同情况下对轨迹拟合的不同需求,具备较好的通用性,也为后续的轨迹插补计算奠定了基础,使得轨迹插补计算效率更高。
[0186]
实施例三
[0187]
基于同一发明构思,参照图4,提出本发明轨迹拟合装置的第一实施例,该轨迹拟合装置可以为虚拟装置,应用于轨迹拟合设备。
[0188]
下面结合图4所示的功能模块示意图,对本实施例提供的轨迹拟合装置进行详细描述,装置可以包括:
[0189]
点列获取模块,用于获取至少三个空间离散点构成的点列;
[0190]
直线拟合模块,用于根据预设直线拟合模式,利用最小二乘法对所述点列进行直线拟合,得到第一拟合直线;
[0191]
圆弧拟合模块,用于当直线拟合失败时,利用最小二乘法对所述点列进行圆弧拟合,得到拟合圆弧,其中,所述直线拟合失败为所述第一拟合直线不符合预设误差条件;
[0192]
轨迹获取模块,用于根据所述第一拟合直线或所述拟合圆弧,确定所述点列对应的拟合轨迹。
[0193]
进一步地,直线拟合模块可以包括:
[0194]
第一直线拟合单元,用于当所述预设直线拟合模式为第一直线拟合模式时,根据所述点列的起点,利用最小二乘法对所述点列进行直线拟合,得到第一直线;
[0195]
第二直线拟合单元,用于当所述预设直线拟合模式为第二直线拟合模式时,根据所述点列的终点,利用最小二乘法对所述点列进行直线拟合,得到第二直线;
[0196]
第三直线拟合单元,用于当所述预设直线拟合模式为第三直线拟合模式时,根据所述点列的起点和终点间连线的中点,利用最小二乘法对所述点列进行直线拟合,得到第三直线;
[0197]
第四直线拟合单元,用于当所述预设直线拟合模式为第四直线拟合模式时,记录所述点列中任意两点连线的中点,获得点集合;针对所述点集合中的每个记录点,利用最小二乘法对所述点列进行直线拟合,得到多条待选直线;分别计算所述点列中各点到所述多条待选直线的距离之和,将距离之和最小时所对应的待选直线确定为第四直线;
[0198]
拟合直线获取单元,用于将所述第一直线、所述第二直线、所述第三直线或所述第四直线确定为所述第一拟合直线。
[0199]
进一步地,点列获取模块可以包括:
[0200]
离散点获取单元,用于获取三维空间中的n个离散点,其中,n为正整数且n≥3;
[0201]
点列获取单元,用于在所述n个离散点中提取任意的至少三个离散点,得到第i点至第m点构成的点列,其中,i、m均为正整数,i<m≤n;
[0202]
对应的,装置还可以包括:
[0203]
循环执行模块,用于设定i的值为m-1,m的值为m 1,得到第i点至第m点构成的新点列,重复执行所述根据预设直线拟合模式,利用最小二乘法对所述点列进行直线拟合的步骤,得到所述新点列对应的拟合轨迹,直到遍历所述n个离散点,得到多条拟合轨迹;
[0204]
拼接模块,用于对所述多条拟合轨迹进行拼接,得到所述n个离散点对应的最终轨迹。
[0205]
进一步地,装置还可以包括:
[0206]
第一执行模块,用于计算所述点列中各点分别与所述第一拟合直线的距离,得到第一距离最大值;对所述第一距离最大值与预设直线拟合误差值进行比较;若所述第一距离最大值小于所述预设直线拟合误差值,则判定直线拟合成功;将所述第一拟合直线存入拟合矩阵,并设定m的值为m 1,重新得到第i点至第m点构成的点列,返回所述根据预设直线拟合模式,利用最小二乘法对所述点列进行直线拟合,得到第一拟合直线的步骤,直到所述第一距离最大值大于或等于所述预设直线拟合误差值;若所述第一距离最大值大于或等于所述预设直线拟合误差值,则判定直线拟合失败,执行所述利用最小二乘法对所述点列进行圆弧拟合,得到拟合圆弧的步骤。
[0207]
进一步地,装置还可以包括:
[0208]
第二执行模块,用于计算所述点列中各点分别与所述拟合圆弧的距离,得到第二距离最大值;对所述第二距离最大值与预设圆弧拟合误差值进行比较;若所述第二距离最大值小于所述预设圆弧拟合误差值,则判定圆弧拟合成功;将所述拟合圆弧存入所述拟合矩阵,并设定m的值为m 1,重新得到第i点至第m点构成的点列,返回所述利用最小二乘法对所述点列进行圆弧拟合,得到拟合圆弧的步骤,直到所述第二距离最大值大于或等于所述预设圆弧拟合误差值;若所述第二距离最大值大于或等于所述预设圆弧拟合误差值,则判定圆弧拟合失败,执行所述根据所述第一拟合直线或所述拟合圆弧,确定所述点列对应的拟合轨迹的步骤。
[0209]
进一步地,轨迹获取模块可以包括:
[0210]
第一判断单元,用于判断所述拟合矩阵中是否具有已存入的拟合圆弧;
[0211]
第一结果单元,用于若所述拟合矩阵中具有已存入的拟合圆弧,则将最近一次存入所述拟合矩阵的拟合圆弧确定为所述点列中第i点至第m-1点对应的拟合轨迹;
[0212]
第二结果单元,用于若所述拟合矩阵中没有已存入的拟合圆弧,则将最近一次存入所述拟合矩阵的拟合直线确定为所述点列中第i点至第m-1点对应的拟合轨迹。
[0213]
进一步地,装置还可以包括:
[0214]
第三执行模块,用于当直线拟合失败时,判断所述点列中空间离散点的数量是否大于三;若所述点列中空间离散点的数量大于三,则执行所述利用最小二乘法对所述点列进行圆弧拟合,得到拟合圆弧的步骤;若所述点列中空间离散点的数量等于三,则将所述点列中第一点与第二点的连线确定为第二拟合直线;将所述第二拟合直线存入所述拟合矩阵,执行所述根据所述第一拟合直线或所述拟合圆弧,确定所述点列对应的拟合轨迹的步骤。
[0215]
需要说明,本实施例提供的轨迹拟合装置中各个模块可实现的功能和对应达到的技术效果可以参照本发明轨迹拟合方法各个实施例中具体实施方式的描述,为了说明书的简洁,此处不再赘述。
[0216]
实施例四
[0217]
基于同一发明构思,参照图2的硬件结构示意图,本实施例提供了一种轨迹拟合设备,轨迹拟合设备可以包括处理器和存储器,存储器中存储有轨迹拟合程序,该轨迹拟合程序被处理器执行时,实现本发明轨迹拟合方法各个实施例的全部或部分步骤。
[0218]
具体的,轨迹拟合设备是指能够实现通信连接的终端设备或系统设备,可以是对机床进行控制的嵌入式工控机等终端设备,也可以是对机床进行控制的控制系统等系统设备。
[0219]
可以理解,轨迹拟合设备还可以包括通信总线,用户接口和网络接口。其中,通信总线用于实现这些组件之间的连接通信;用户接口用于连接客户端,与客户端进行数据通信,用户接口可以包括输出单元,如显示屏、输入单元,如键盘;网络接口用于连接后台控制中心,与后台控制中心进行数据通信,网络接口可以包括输入/输出接口,比如标准的有线接口、无线接口。
[0220]
存储器用于存储各种类型的数据,这些数据例如可以包括该轨迹拟合设备中任何应用程序或方法的指令,以及应用程序相关的数据。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),随机存取存储器(random access memory,简称ram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘,可选的,存储器还可以是独立于处理器的存储装置。
[0221]
处理器用于调用存储器中存储的轨迹拟合程序,并执行如上述的轨迹拟合方法,处理器可以是专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,
简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件,用于执行如上述轨迹拟合方法各个实施例的全部或部分步骤。
[0222]
实施例五
[0223]
基于同一发明构思,本实施例提供了一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、磁性存储器、磁盘、光盘、服务器等等,该存储介质上存储有计算机程序,该计算机程序可被一个或多个处理器执行,该计算机程序被处理器执行时可以实现本发明轨迹拟合方法各个实施例的全部或部分步骤。
[0224]
需要说明,上述本发明实施例序号仅为了描述,不代表实施例的优劣。以上实施例仅为本发明的可选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均包括在本发明的专利保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献