一种基于非均匀B样条的加工轨迹实时规划方法及装置与流程

文档序号:16132698发布日期:2018-12-01 00:30阅读:344来源:国知局

本发明涉及工业自动化领域,具体而言,涉及一种基于非均匀b样条的加工轨迹实时规划方法及装置。

背景技术

目前,市场上还没有直接提供样条插补接口的运动控制产品,通常是由用户提供加工轨迹的离散型值点,控制卡(器)根据这些数据点构造b样条曲线路径段。型值点一般由cam软件直接生成或由用户示教得到,两种方法得到的型值点坐标相较于期望路径均会存在一定的偏差。非均匀b样条相较于均匀b样条在对存在偏差以及点位间距分布不均的型值点进行拟合时,得到的曲线更加平滑,不易出现奇异形态曲线。然而,非均匀b样条曲线路径段规划以及进行样条插补的方案流程通常为:上位机读入用户输入的型值点数据,计算节点向量,将型值点及节点向量一次性下传,下位机反算并保存控制点坐标,进而根据求得的控制点进行实时样条插补。该方案的不足之处主要有:一,若读入的型值点数量较多,则需要求解大型线性方程组。例如用户输入100个型值点,要求得控制点,需对一个100*100的矩阵进行线性运算,计算量较大,且在线性方程组没有解出前,该段样条的插补过程无法启动,而微小直线、圆弧的插补速度都很快,在样条曲线、直线、圆弧路径混合应用场景中,可能出现插补缓冲区中的线段已插补完成,而样条轨迹还不能交付插补的情况,导致“数据饥饿”;二,求得控制点后,该段样条插补结束前,控制点要一直保存在内存中,占用较多系统资源。



技术实现要素:

本发明实施例提供的一种基于非均匀b样条的加工轨迹实时规划方法及装置,可以克服上述的技术问题。

本发明实施例提供的一种基于非均匀b样条的加工轨迹实时规划方法,包括:获取用户输入的多个型值点数据;将多个所述型值点数据划分为多个待规划单元,每个所述待规划单元包括至少4个所述型值点数据;构建每个所述待规划单元所对应的b样条轨迹单元;将每相邻两个所述b样条轨迹单元进行融合,生成目标b样条轨迹。

可选地,所述的将多个所述型值点数据划分为多个待规划单元,包括:按照时间先后顺序将多个所述型值点数据划分为多个待规划单元。

可选地,所述的将每相邻两个所述b样条轨迹单元进行融合,生成目标b样条轨迹,包括:获取每相邻两个所述b样条轨迹单元的共接点;从每相邻两个所述b样条轨迹单元中获取与所述共接点相邻的第一型值点数据和第二型值点数据;确定所述共接点与所述第一型值点数据的第一中点和与所述第二型值点数据的第二中点;确定所述第一中点和所述第二中点的一阶导矢和二阶导矢;以所述第一中点和所述第二中点的一阶导矢和二阶导矢为边界条件,构建三次b样条,生成目标b样条轨迹。

可选地,所述的按照时间先后顺序将多个所述型值点数据划分为多个待规划单元,包括:按照时间先后顺序将m个所述型值点数据划分为n-1个待规划单元,所述m大于所述n;若剩余的所述型值点数据小于3时,将剩余的所述型值点数据加入到所述n-1个待规划单元中最后的一个所述待规划单元中。

可选地,在将每相邻两个所述b样条轨迹单元进行融合,生成目标b样条轨迹之后,还包括:将所述目标b样条轨迹压入插补缓冲区。

本发明实施例提供的一种基于非均匀b样条的加工轨迹实时规划装置,包括:数据获取单元,用于获取用户输入的多个型值点数据;第一数据处理单元,用于将多个所述型值点数据划分为多个待规划单元,每个所述待规划单元包括至少4个所述型值点数据;第二数据处理单元,用于构建每个所述待规划单元所对应的b样条轨迹单元;第三数据处理单元,用于将每相邻两个所述b样条轨迹单元进行融合,生成目标b样条轨迹。

可选地,所述第一数据处理单元还包括:第一数据处理子模块,用于按照时间先后顺序将多个所述型值点数据划分为多个待规划单元。

可选地,所述第三数据处理单元还用于:获取每相邻两个所述b样条轨迹单元的共接点;从每相邻两个所述b样条轨迹单元中获取与所述共接点相邻的第一型值点数据和第二型值点数据;确定所述共接点与所述第一型值点数据的第一中点和与所述第二型值点数据的第二中点;确定所述第一中点和所述第二中点的一阶导矢和二阶导矢;以所述第一中点和所述第二中点的一阶导矢和二阶导矢为边界条件,构建三次b样条,生成目标b样条轨迹。

可选地,所述第一数据处理子模块还用于:按照时间先后顺序将m个所述型值点数据划分为n-1个待规划单元,所述m大于所述n;若剩余的所述型值点数据小于3时,将剩余的所述型值点数据加入到所述n-1个待规划单元中最后的一个所述待规划单元中。

可选地,在所述第三数据处理单元之后,还包括:第四数据处理单元,用于将所述目标b样条轨迹压入插补缓冲区。

上述本发明实施例提供的一种基于非均匀b样条的加工轨迹实时规划方法及装置,通过获取用户输入的多个型值点数据;将多个所述型值点数据划分为多个待规划单元,每个所述待规划单元包括至少4个所述型值点数据;构建每个所述待规划单元所对应的b样条轨迹单元;将每相邻两个所述b样条轨迹单元进行融合,生成目标b样条轨迹,所以相较于现有技术中的方法而言,通过采用分片样条轨迹规划,避免了大型线性方程组的求解,减少计算量,并且在得到目标b样条轨迹后,可即时交付到后续插补流程,解决了插补过程中“数据饥饿”的问题,提高插补稳定性。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明第一实施例提供的基于非均匀b样条的加工轨迹实时规划方法的流程图;

图2为图1所示的基于非均匀b样条的加工轨迹实时规划方法中的相邻b样条轨迹单元进行融合的示意图;

图3为本发明第二实施例提供的基于非均匀b样条的加工轨迹实时规划装置的功能模块示意图;

图4为本发明第三实施例提供的终端设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,是本发明第一实施例提供的基于非均匀b样条的加工轨迹实时规划方法的流程图。下面将对图1所示的具体流程进行详细阐述。

步骤s101,获取用户输入的多个型值点数据。

其中,型值点数据是指通过测量或计算得到的曲线或曲面上少量描述曲线或曲面几何形状的数据点。

作为一种实施方式,上位机获取用户输入的多个型值点数据。

步骤s102,将多个所述型值点数据划分为多个待规划单元,每个所述待规划单元包括至少4个所述型值点数据。

可选地,每个所述待规划单元包括4个所述型值点数据。

可选地,步骤s102包括:按照时间先后顺序将多个所述型值点数据划分为多个待规划单元。

可选地,按照时间先后顺序将多个所述型值点数据划分为多个待规划单元包括:按照时间先后顺序将m个所述型值点数据划分为n-1个待规划单元,所述m大于所述n;若剩余的所述型值点数据小于3时,将剩余的所述型值点数据加入到所述n-1个待规划单元中最后的一个所述待规划单元中。

可选地,除第一个待规划单元以外,其余多个待规划单元中的第一个型值点数据为前一个待规划单元中的最后一个型值点数据。

举例来说,假设有7个型值点数据,分别为a1、a2、a3、a4、a5、a6、a7,则按照时间先后顺序,第一个待规划单元的型值点数据分别为:a1、a2、a3、a4,第二个待规划单元的型值点数据分别为:a4、a5、a6、a7。

步骤s103,构建每个所述待规划单元所对应的b样条轨迹单元。

根据每个待规划单元中的型值点数据构建b样条轨迹单元。

可选地,假设每个所述待规划单元包括4个所述型值点数据,通过一个4*4的线性方程组即可得到所述b样条轨迹单元。

步骤s104,将每相邻两个所述b样条轨迹单元进行融合,生成目标b样条轨迹。

作为一种实施方式,步骤s104包括:获取每相邻两个所述b样条轨迹单元的共接点;从每相邻两个所述b样条轨迹单元中获取与所述共接点相邻的第一型值点数据和第二型值点数据;确定所述共接点与所述第一型值点数据的第一中点和与所述第二型值点数据的第二中点;确定所述第一中点和所述第二中点的一阶导矢和二阶导矢;以所述第一中点和所述第二中点的一阶导矢和二阶导矢为边界条件,构建三次b样条,生成目标b样条轨迹。

举例来说,如图2所示,其中,pi为两段b样条轨迹单元的相接点(共接点),pi-1、pi+1分别为两段b样条轨迹单元上离pi点最近的型值点。在b样条轨迹单元bsi-1上,判断由pi-1到pi的轨迹区间是否有拐点,若有,则将该点记为特征点pr1,否则,记pi-1为pr1。样条单元bsi同理。找到pr1与pi的中点,记为pb1,同理,找到pb2。微调pb1或pb2,使得pb1、pb2、pi三点在空间上呈均匀分布。计算pb1、pb2处的一阶导矢和二阶导矢。以pb1、pb2处的一阶导矢和二阶导矢为边界条件,构建三次b样条,连接pb1、pb2、pi三点,使得bsi-1、bsbi、bsi三条轨迹形成g2连续轨迹即得到目标b样条轨迹。

在一可能的实施例中,在步骤s104之后,还包括:将所述目标b样条轨迹压入插补缓冲区。

其中,通过将完成b样条单元融合处理的目标b样条轨迹压入插补缓冲区,进行插补流程。由于在本发明中都是以最小样条轨迹单元进行计算,因此计算量相较传统方案大大缩小,同时保证了整条样条轨迹为g2连续,满足加工要求。将融合处理完成的目标b样条轨迹压入插补缓冲区后,该轨迹插补完成即可将数据删除,又避免了不需要的数据长时间占用系统内存资源的情况。

本发明实施例提供的基于非均匀b样条的加工轨迹实时规划方法,通过获取用户输入的多个型值点数据;将多个所述型值点数据划分为多个待规划单元,每个所述待规划单元包括至少4个所述型值点数据;构建每个所述待规划单元所对应的b样条轨迹单元;将每相邻两个所述b样条轨迹单元进行融合,生成目标b样条轨迹,所以相较于现有技术中的方法而言,通过采用分片样条轨迹规划,避免了大型线性方程组的求解,减少计算量,并且在得到目标b样条轨迹后,可即时交付到后续插补流程,解决了插补过程中“数据饥饿”的问题,提高插补稳定性。

第二实施例

对应于第一实施例中的基于非均匀b样条的加工轨迹实时规划方法,图3示出了采用第一实施例所示的基于非均匀b样条的加工轨迹实时规划方法一一对应的基于非均匀b样条的加工轨迹实时规划装置。如图3所示,所述基于非均匀b样条的加工轨迹实时规划装置400包括数据获取单元410、第一处理单元420、第二处理单元430和第三处理单元440。其中,数据获取单元410、第一处理单元420、第二处理单元430和第三处理单元440的实现功能与第一实施例中对应的步聚一一对应,为避免赘述,本实施例不一一详述。

数据获取单元410,用于获取用户输入的多个型值点数据。

第一数据处理单元420,用于将多个所述型值点数据划分为多个待规划单元,每个所述待规划单元包括至少4个所述型值点数据。

可选地,所述第一数据处理单元还包括:第一数据处理子模块,用于按照时间先后顺序将多个所述型值点数据划分为多个待规划单元。

可选地,所述第一数据处理子模块还用于:按照时间先后顺序将m个所述型值点数据划分为n-1个待规划单元,所述m大于所述n;若剩余的所述型值点数据小于3时,将剩余的所述型值点数据加入到所述n-1个待规划单元中最后的一个所述待规划单元中。

第二数据处理单元430,用于构建每个所述待规划单元所对应的b样条轨迹单元。

第三数据处理单元440,用于将每相邻两个所述b样条轨迹单元进行融合,生成目标b样条轨迹。

可选地,所述第三数据处理单元440还用于:获取每相邻两个所述b样条轨迹单元的共接点;从每相邻两个所述b样条轨迹单元中获取与所述共接点相邻的第一型值点数据和第二型值点数据;确定所述共接点与所述第一型值点数据的第一中点和与所述第二型值点数据的第二中点;确定所述第一中点和所述第二中点的一阶导矢和二阶导矢;以所述第一中点和所述第二中点的一阶导矢和二阶导矢为边界条件,构建三次b样条,生成目标b样条轨迹。

在一可能的实施例中,在所述第三数据处理单元440之后,所述基于非均匀b样条的加工轨迹实时规划装置400还包括:第四数据处理单元,用于将所述目标b样条轨迹压入插补缓冲区。

第三实施例

如图4所示,是终端设备300的示意图。所述终端设备300包括存储器302、处理器304以及存储在所述存储器302中并可在所述处理器304上运行的计算机程序303,所述计算机程序303被处理器304执行时实现第一实施例中的所述基于非均匀b样条的加工轨迹实时规划方法,为避免重复,此处不再赘述。或者,所述计算机程序303被处理器304执行时实现第二实施例所述基于非均匀b样条的加工轨迹实时规划装置中各模型/单元的功能,为避免重复,此处不再赘述。

示例性的,计算机程序303可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器302中,并由处理器304执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序303在终端设备300中的执行过程。例如,计算机程序303可以被分割成第二实施例中的数据获取单元410、第一处理单元420、第二处理单元430和第三处理单元440,各模块的具体功能如第一实施例或第二实施例所述,在此不一一赘述。

可选地,终端设备300可以是电脑。

其中,存储器302可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器302用于存储程序,所述处理器304在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流程定义的方法可以应用于处理器304中,或者由处理器304实现。

处理器304可能是一种集成电路芯片,具有信号的处理能力。上述的处理器304可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

可以理解的是,图4所示的结构仅为终端设备300的一种结构示意图,终端设备300还可以包括比图4所示更多或更少的组件。图4中所示的各组件可以采用硬件、软件或其组合实现。

第四实施例

本发明实施例还提供一种存储介质,所述存储介质上存储有指令,当所述指令在计算机上运行时,所述计算机程序被处理器执行时实现第一实施例中的所述基于非均匀b样条的加工轨迹实时规划方法,为避免重复,此处不再赘述。或者,所述计算机程序被处理器执行时实现第二实施例所述基于非均匀b样条的加工轨迹实时规划装置中各模型/单元的功能,为避免重复,此处不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1