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

飞切处理方法、装置、储存介质及计算机设备与流程

2022-07-16 14:06:02 来源:中国专利 TAG:


1.本技术属于自动化控制技术领域,更具体地说,是涉及一种飞切处理方法、装置、储存介质及计算机设备。


背景技术:

2.在传统的激光切割中,小线段的飞切功能一般被设计在前瞻轨迹处理中。根据内核实时性需求,通常先将矢量方向一致的小线段尽可能多的整合成一条足够长的轨迹,再进行速度规划。然而此类处理方法极易受到实时系统内存大小的影响,使得矢量方向一致的飞切整合大段轨迹之间的衔接速度必须从0开始,从而导致飞切效率低。


技术实现要素:

3.本技术的目的在于提供一种飞切处理方法,可提高飞切处理的效率。
4.为实现上述目的,本技术采用的技术方案是:提供一种飞切处理方法,通过编译器执行以下步骤:
5.设定滑动窗口与预留窗口,并设置滑动窗口与预留窗口所存储的轨迹数量;
6.根据滑动窗口所存储的轨迹数量从待处理轨迹数据中获取第一预设数量的轨迹数据存入滑动窗口,所述第一预设数量不超过滑动窗口所存储的轨迹数量;
7.将满足飞切整合条件的轨迹数据进行飞切整合生成飞切大段轨迹数据;
8.对飞切大段轨迹数据之间、飞切大段轨迹数据与不能飞切整合的轨迹数据之间进行速度规划;
9.根据滑动窗口所存储的轨迹数量与预留窗口所存储的轨迹数量,确定速度规划后的轨迹数据的目标输出数量,并将目标输出数量的轨迹数据输出给控制器进行加工,其中预留窗口所存储的轨迹数量大于0。
10.进一步的,所述步骤“根据滑动窗口所存储的轨迹数量从待处理轨迹数据中获取第一预设数量的轨迹数据存入滑动窗口,所述第一预设数量不超过滑动窗口所存储的轨迹数量”具体包括:
11.按预设顺序依次从待处理轨迹数据中获取轨迹数据,并将获取的轨迹数据存入滑动窗口的缓存队列中;
12.当缓存队列中的轨迹数量超过滑动窗口所存储的轨迹数量或遇到轨迹结束指令时,则停止继续获取下一个轨迹数据;否则,继续获取下一个轨迹数据。
13.进一步的,所述步骤“将满足飞切整合条件的轨迹数据进行飞切整合生成飞切大段轨迹数据”之前还包括:
14.判断缓存队列中的轨迹数量是否超过1;若缓存队列中的轨迹数量超过1,则跳到步骤“将满足飞切整合条件的轨迹数据进行飞切整合生成飞切大段轨迹数据”;否则,直接将缓存队列中的轨迹数据输出给控制器进行加工。
15.进一步的,所述步骤“将满足飞切整合条件的轨迹数据进行飞切整合生成飞切大
段轨迹数据”具体包括:
16.根据飞切整合条件,判断缓存队列中的轨迹数据是否满足飞切整合条件;若满足飞切整合条件,则将满足飞切整合条件的轨迹数据标记为飞切小段轨迹数据,并将满足飞切整合条件的轨迹数据整合生成飞切大段轨迹数据;若不满足飞切整合条件,则将不满足飞切整合条件的轨迹数据标记为常规轨迹数据;其中,满足飞切整合条件的轨迹为直线轨迹且单位方向矢量一致。
17.进一步的,所述步骤“根据飞切整合条件,判断缓存队列中的轨迹数据是否满足飞切整合条件;若满足飞切整合条件,则将满足飞切整合条件的轨迹数据标记为飞切小段轨迹数据,并将满足飞切整合条件的轨迹数据整合生成飞切大段轨迹数据;若不满足飞切整合条件,则将不满足飞切整合条件的轨迹数据标记为常规轨迹数据”,具体包括:
18.a1、初始化n=0,f=true,其中,定义n为当前飞切大段轨迹中所包含的飞切小段轨迹的数量,定义f=true为当前能够进行飞切整合的轨迹为飞切大段轨迹的第一段;
19.a2、按预设顺序遍历缓存队列中的轨迹数据,取缓存队列中的第i条轨迹作为pf,第i 1条轨迹作为ps,同时,令n=n 1;
20.a3、判断pf与ps是否满足飞切整合条件,并判断n与s-b-1的大小,若pf与ps满足飞切整合条件,且n<s-b-1,则跳到a4;若pf与ps不满足飞切整合条件,则跳到a5;若pf与ps满足飞切整合条件,但n≥s-b-1,则跳到a6;其中,定义滑动窗口所存储的轨迹数量为s,预留窗口所存储的轨迹数量为b;
21.a4、判断f是否为true,若f=true,则跳到a7;否则跳到a8;
22.a5、判断f是否为false,若f=false,则跳到a6;否则跳到a9;其中,定义f=false为当前轨迹队列中已存在飞切整合大段轨迹数据;
23.a6、将n初始化为0,f初始化为true,pf的飞切标记nf设置为2,并将当前pf的终点赋值给p
t
的终点,再将p
t
插入当前第一次飞切整合开始的轨迹之前,a6之后继续执行a9;其中,定义p
t
为飞切大段轨迹数据;
24.a7、将pf的赋值给p
t
,作为飞切整合大段轨迹的第一段,并将p
t
的飞切标记nf设置为1,将pf与ps的飞切标记nf设置为2,同时将f设置为false,a7之后继续执行a9;
25.a8、将ps的飞切标记nf设置为2,a8之后继续执行a9;
26.a9、判断ps是否为缓存队列中的最后一段轨迹,若ps为缓存队列中最后一段轨迹,则跳到a10;否则,令i=i 1,重复返回a2,直到ps为缓存队列中的最后一段轨迹;
27.a10、判断f是否为false,若是,则修改p
t
终点,并将p
t
插入当前第一次飞切整合开始的轨迹之前,得到整合队列iq;否则,直接得到整合队列iq。
28.进一步的,所述步骤“对飞切大段轨迹数据之间、飞切大段轨迹数据与不能飞切整合的轨迹数据之间进行速度规划”,具体包括:
29.按预设顺序遍历整合队列iq,并将飞切标记nf为0和1的轨迹数据依次存入轨迹队列nb中;
30.正向遍历轨迹队列nb中的轨迹数据,正向计算第i段轨迹与第i 1段轨迹之间的正向衔接速度;
31.反向遍历轨迹队列nb中的轨迹数据,反向计算出第i段轨迹与第i 1段轨迹之间的反向衔接速度;并将第i段轨迹与第i 1段轨迹之间的正向衔接速度与反向衔接速度进行比
较,若反向衔接速度小于或等于正向衔接速度,则将反向衔接速度作为第i段轨迹与第i 1段轨迹之间的拐角衔接速度;否则,将正向衔接速度作为第i段轨迹与第i 1段轨迹之间的拐角衔接速度。
32.进一步的,所述步骤“正向遍历轨迹队列nb中的轨迹数据,正向计算第i段轨迹与第i 1段轨迹之间的正向衔接速度”,具体包括:
33.将轨迹队列nb中的第一段轨迹的开始速度赋值为上一次滑动窗口输出到控制器的末速度v
le

34.正向遍历轨迹队列nb中的轨迹数据,取第i段轨迹作为pi,第i 1段轨迹作为p
i 1
,通过直线加减速方法,确定pi的终点速度v
ife
,并将v
ife
作为pi和p
i 1
之间的拐角衔接速度及p
i 1
的开始速度;
35.返回步骤“正向遍历轨迹队列nb中的轨迹数据,取第i段轨迹作为pi,第i 1段轨迹作为p
i 1
,通过直线加减速方法,确定pi的终点速度v
ife
,并将v
ife
作为pi和p
i 1
之间的拐角衔接速度及p
i 1
的开始速度”,直至轨迹队列nb中的轨迹正向遍历完成。
36.进一步的,所述步骤“反向遍历轨迹队列nb中的轨迹数据,反向计算出第i段轨迹与第i 1段轨迹之间的反向衔接速度;并将第i段轨迹与第i 1段轨迹之间的正向衔接速度与反向衔接速度进行比较,若反向衔接速度小于或等于正向衔接速度,则将反向衔接速度作为第i段轨迹与第i 1段轨迹之间的拐角衔接速度;否则,将正向衔接速度作为第i段轨迹与第i 1段轨迹之间的拐角衔接速度”,具体包括:
37.将轨迹队列nb中的最后一段轨迹的末速度赋值为0;
38.反向遍历队列nb中的轨迹数据,取第i 1段轨迹作为p
i 1
,通过直线加减速方法,确定p
i 1
的开始速度v
(i 1)s

39.将p
i 1
的开始速度v
(i 1)s
与v
ife
进行比较,若v
(i 1)s
≤v
ife
,将v
(i 1)s
作为轨迹pi和p
i 1
之间的拐角衔接速度;否则将v
ife
作为轨迹pi和p
i 1
之间的拐角衔接速度;
40.返回步骤“反向遍历队列nb中的轨迹数据,取第i 1段轨迹作为p
i 1
,通过直线加减速方法,确定p
i 1
的开始速度v
(i 1)s”,直至轨迹队列nb中的轨迹反向遍历完成。
41.进一步的,所述步骤“反向遍历轨迹队列nb中的轨迹数据,反向计算出第i段轨迹与第i 1段轨迹之间的反向衔接速度;并将第i段轨迹与第i 1段轨迹之间的正向衔接速度与反向衔接速度进行比较,若反向衔接速度小于或等于正向衔接速度,则将反向衔接速度作为第i段轨迹与第i 1段轨迹之间的拐角衔接速度;否则,将正向衔接速度作为第i段轨迹与第i 1段轨迹之间的拐角衔接速度”之后还包括:
42.更新轨迹队列nb,用带衔接速度的轨迹队列nb替换原始不带衔接速度的轨迹队列nb,得到新的整合轨迹队列ob。
43.进一步的,所述步骤“更新轨迹队列nb,用带衔接速度的轨迹队列nb替换原始不带衔接速度的轨迹队列nb,得到新的整合轨迹队列ob”具体包括:
44.按轨迹的储存顺序遍历更新后的轨迹队列nb,取出带衔接速度的轨迹pi;
45.按轨迹的储存顺序遍历整合队列iq,取出飞切标志nf=0和nf=1的轨迹pj;
46.分析轨迹pi和轨迹pj的轨迹信息,若轨迹pi和轨迹pj的轨迹信息一致,则说明pi和轨迹pj属于同一段轨迹,则执行步骤“根据滑动窗口所存储的轨迹数量与预留窗口所存储的轨迹数量,确定速度规划后的轨迹数据的目标输出数量,并将目标输出数量的轨迹数据
输出给控制器进行加工”;否则跳到步骤“按轨迹的储存顺序遍历整合队列iq,取出飞切标志nf=0和nf=1的轨迹p
j”,直到找到对应轨迹信息pj;
47.将整合队列iq中的轨迹pj用nb中带衔接速度的轨迹pi替换;
48.重复步骤“按轨迹的储存顺序遍历整合队列iq,取出飞切标志nf=0和nf=1的轨迹p
j”直到整合队列iq中所有带飞切标记nf=0与nf=1的轨迹被在更新后的轨迹队列nb中轨迹信息相同的轨迹替代;
49.将处理后的整合队列iq赋值给轨迹队列ob,同时清空原来的整合队列iq与轨迹队列nb的缓存。
50.进一步的,所述步骤“根据滑动窗口所存储的轨迹数量与预留窗口所存储的轨迹数量,确定速度规划后的轨迹数据的目标输出数量,并将目标输出数量的轨迹数据输出给控制器进行加工,其中预留窗口所存储的轨迹数量大于0”具体包括:
51.按顺序遍历轨迹队列ob,取第i条轨迹定义为pi;
52.判断i是否小于s-b;
53.若i《s-b,则直接将轨迹pi输出给控制器加工,并重复s81至i2,以继续获取新的轨迹pi;
54.若i≥s-b,则判断轨迹pi的飞切标志nf,若轨迹pi的飞切标志nf为2,直接将轨迹pi输出给控制器加工,直到轨迹pi的飞切标志为nf为=0或者nf为1时停止;若轨迹pi的飞切标志为nf为0或者nf为1时,则轨迹pi不输出给控制器加工;
55.判断轨迹队列ob内是否存在没有输出的轨迹pi,若存在,再次判断轨迹pi的飞切标志nf,若轨迹pi的飞切标志为nf为0,则直接将轨迹pi存入缓存队列q;若轨迹pi的飞切标志为nf为1,则直接跳过或者删除轨迹pi;若轨迹pi的飞切标志为nf为2,先将轨迹pi的nf赋值为0,再将轨迹pi存入缓存队列中;
56.重复上述步骤,直到轨迹队列ob遍历完成,并清空轨迹队列ob的缓存。
57.进一步的,所述步骤“根据滑动窗口所存储的轨迹数量与预留窗口所存储的轨迹数量,确定速度规划后的轨迹数据的目标输出数量,并将目标输出数量的轨迹数据输出给控制器进行加工,其中预留窗口所存储的轨迹数量大于0”之后还包括:
58.判断待处理轨迹数据中是否存在未获取的轨迹数据,若存在,则返回到步骤“根据滑动窗口所存储的轨迹数量从待处理轨迹数据中获取第一预设数量的轨迹数据存入滑动窗口,所述第一预设数量不超过滑动窗口所存储的轨迹数量”;否则,继续判断缓存队列中是否存在轨迹数据,若缓存队列中存在轨迹数据,则返回到步骤“将满足飞切整合条件的轨迹数据进行飞切整合生成飞切大段轨迹数据”,直到将缓存队列中的轨迹数据全部输出给控制器。
59.本技术还提供了一种飞切处理装置,包括:
60.设定模块,用于设定滑动窗口与预留窗口,并设置滑动窗口与预留窗口所存储的轨迹数量;
61.获取模块,用于根据滑动窗口大小获取第一预设数量的轨迹数据存入滑动窗口,所述第一预设数量不超过滑动窗口所存储的轨迹数量;
62.飞切整合模块,用于将满足飞切整合条件的轨迹数据进行飞切整合生成飞切大段轨迹数据;
63.速度规划模块,用于对飞切大段轨迹数据之间、飞切大段轨迹数据与不能飞切整合的轨迹数据之间进行速度规划;以及,
64.输出模块,用于根据滑动窗口所存储的轨迹数量与预留窗口所存储的轨迹数量,确定速度规划后的轨迹数据的目标输出数量,并将目标输出数量的轨迹数据输出给控制器进行加工,其中预留窗口所存储的轨迹数量大于0。
65.本技术还提供了一种计算机设备,包括:
66.处理器,被配置成执行计算机可执行指令;
67.存储器,存储一个或多个计算机可执行指令,所述计算机可执行指令被所述处理器执行时,实现如上所述的飞切处理方法的各个步骤。
68.进一步的,所述处理器包括编译器和控制器,所述编译器用于执行如上所述的飞切处理方法的各个步骤,所述控制器用于接收编译器输出的轨迹数据并对输出的轨迹数据进行加工。
69.本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现如上所述的飞切处理方法的各个步骤。
70.本技术提供的飞切处理方法的有益效果在于:首先设定滑动窗口与预留窗口,并设置滑动窗口与预留窗口所存储的轨迹数量,根据滑动窗口所存储的轨迹数量从待处理轨迹数据中获取第一预设数量的轨迹数据存入滑动窗口,所述第一预设数量不超过滑动窗口所存储的轨迹数量;将满足飞切整合条件的轨迹数据进行飞切整合生成飞切大段轨迹数据;对飞切大段轨迹数据之间、飞切大段轨迹数据与不能飞切整合的轨迹数据之间进行速度规划;根据滑动窗口所存储的轨迹数量与预留窗口所存储的轨迹数量,确定速度规划后的轨迹数据的目标输出数量,并将目标输出数量的轨迹数据输出给控制器进行加工,其中预留窗口所存储的轨迹数量大于0,通过设置滑动窗口可限定编译器一次性处理的轨迹数量,可提高飞切整合效率,避免编译器由于一次性处理全部轨迹数据导致编译器处理时间过长,且通过设置预留窗口,预留窗口所存储的轨迹数量大于0,可避免将滑动窗口中的轨迹数据一次性全部输出,从而可避免输出给控制器的轨迹数据的拐角衔接速度为0,从而使得控制器可以以一定速度进行加工,从而进一步提高了飞切加工效率。
附图说明
71.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
72.图1为本技术实施例提供的飞切处理方法的流程示意图;
73.图2为本技术实施例提供的飞切处理方法具体应用实施例的流程示意图。
74.其中,图中各附图标记:
具体实施方式
75.为了使本技术所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅
用以解释本技术,并不用于限定本技术。
76.需要说明的是,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者间接在该另一个元件上。当一个元件被称为是“连接于”另一个元件,它可以是直接连接到另一个元件或间接连接至该另一个元件上。
77.需要理解的是,术语“长度”、“宽度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本技术的限制。
78.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
79.请参阅图1,现对本技术提供的飞切处理方法进行说明。本技术提供的一种飞切处理方法通过编译器执行s1、s2、s4、s6以及s8。
80.s1、设定滑动窗口与预留窗口,并设置滑动窗口与预留窗口所存储的轨迹数量。
81.s2、根据滑动窗口所存储的轨迹数量从待处理轨迹数据中获取第一预设数量的轨迹数据存入滑动窗口,第一预设数量不超过滑动窗口所存储的轨迹数量。
82.其中,通过限定滑动窗口的大小,限定编译器一次性处理的轨迹数量,可提高飞切整合效率,避免编译器由于一次性处理全部轨迹数据导致编译器处理时间过长。
83.s4、将满足飞切整合条件的轨迹数据进行飞切整合生成飞切大段轨迹数据。
84.s4中,通过将满足飞切整合条件的轨迹数据进行飞切整合,可提高飞切效率。
85.s6、对飞切大段轨迹数据之间、飞切大段轨迹数据与不能飞切整合的轨迹数据之间进行速度规划。
86.s6中,通过对飞切大段轨迹数据之间、飞切大段轨迹数据与不能飞切整合的轨迹数据之间进行速度规划,可以得到飞切大段轨迹数据之间、飞切大段轨迹数据与不能飞切整合的轨迹数据之间的拐角衔接速度。
87.s8、根据滑动窗口所存储的轨迹数量与预留窗口所存储的轨迹数量,确定速度规划后的轨迹数据的目标输出数量,并将目标输出数量的轨迹数据输出给控制器进行加工,其中预留窗口所存储的轨迹数量大于0。
88.s8中,根据滑动窗口所存储的轨迹数量与预留窗口所存储的轨迹数量,确定速度规划后的轨迹数据的目标输出数量,且预留窗口所存储的轨迹数量大于0,避免将滑动窗口中的轨迹数据一次性全部输出,从而可避免输出给控制器的轨迹数据的拐角衔接速度为0,从而进一步提高了飞切加工效率。
89.本技术提供的飞切处理方法,首先设定滑动窗口与预留窗口,并设置滑动窗口与预留窗口所存储的轨迹数量,根据滑动窗口所存储的轨迹数量从待处理轨迹数据中获取第一预设数量的轨迹数据存入滑动窗口,所述第一预设数量不超过滑动窗口所存储的轨迹数量;将满足飞切整合条件的轨迹数据进行飞切整合生成飞切大段轨迹数据;对飞切大段轨迹数据之间、飞切大段轨迹数据与不能飞切整合的轨迹数据之间进行速度规划;根据滑动窗口所存储的轨迹数量与预留窗口所存储的轨迹数量,确定速度规划后的轨迹数据的目标
输出数量,并将目标输出数量的轨迹数据输出给控制器进行加工,其中预留窗口所存储的轨迹数量大于0,通过设置滑动窗口可限定编译器一次性处理的轨迹数量,可提高飞切整合效率,避免编译器由于一次性处理全部轨迹数据导致编译器处理时间过长,且通过设置预留窗口,预留窗口所存储的轨迹数量大于0,可避免将滑动窗口中的轨迹数据一次性全部输出,从而可避免输出给控制器的轨迹数据的拐角衔接速度为0,从而使得控制器可以以一定速度进行加工,从而进一步提高了飞切加工效率。
90.请参阅图2,步骤s2“根据滑动窗口所存储的轨迹数量从待处理轨迹数据中获取第一预设数量的轨迹数据存入滑动窗口,所述第一预设数量不超过滑动窗口所存储的轨迹数量”具体可以包括s21、s22。
91.s21、按预设顺序依次从待处理轨迹数据中获取轨迹数据,并将获取的轨迹数据存入滑动窗口的缓存队列中。
92.其中s21中,编译器逐行解析nc编码的待处理轨迹数据,并将获取的轨迹数据存入滑动窗口的缓存队列q中。轨迹数据的类型可以包括直线或者圆弧。
93.s22、当缓存队列中的轨迹数量超过滑动窗口所存储的轨迹数量或遇到轨迹结束指令时,则停止继续获取下一个轨迹数据;否则,继续获取下一个轨迹数据。
94.当缓存队列中的轨迹数量超过滑动窗口所存储的轨迹数量或者当遇到轨迹结束指令时,时,则停止继续获取下一个轨迹数据,确保一次性处理的轨迹数量不会超过滑动窗口的大小,从而提高处理效率。轨迹结束指令为m02指令或者m30指令。
95.步骤s4“将满足飞切整合条件的轨迹数据进行飞切整合生成飞切大段轨迹数据”之前还可以包括s3。
96.s3、判断缓存队列中的轨迹数量是否超过1;若缓存队列中的轨迹数量超过1,则跳到步骤s4“将满足飞切整合条件的轨迹数据进行飞切整合生成飞切大段轨迹数据”;否则,直接将缓存队列中的轨迹数据输出给控制器进行加工。
97.s3用于判断缓存队列中的轨迹数量是否具备飞切条件。其中,飞切是为了实现多条同方向的直线轨迹能够被整理成一条长直线,因此轨迹数据的数量必须超过1。当缓存队列中的轨迹数据的数量不超过1时,表示缓存队列中的轨迹数量为0条或者只有1条,不满足飞切条件,则直接将缓存队列中的轨迹数据输出给控制器进行加工即可。例如,当缓存队列中,只有一条直线,或者一段圆弧时,不需要进行飞切处理,直接输出给控制器进行加工。
98.步骤s4“将满足飞切整合条件的轨迹数据进行飞切整合生成飞切大段轨迹数据”具体可以包括s40。
99.s40、根据飞切整合条件,判断缓存队列中的轨迹数据是否满足飞切整合条件;若满足飞切整合条件,则将满足飞切整合条件的轨迹数据标记为飞切小段轨迹数据,并将满足飞切整合条件的轨迹数据整合生成飞切大段轨迹数据;若不满足飞切整合条件,则将不满足飞切整合条件的轨迹数据标记为常规轨迹数据;其中,满足飞切整合条件的轨迹为直线轨迹且单位方向矢量一致。
100.具体的,判断相邻直线轨迹pf和ps的单位方向矢量是否一致可采用以下方法:
101.假设pf直线轨迹的起终点坐标分别为(xfs,yfs)和(x
fe
,y
fe
)轨迹长度为lf,ps直线的起终点分别为(x
ss
,y
ss
)和(x
se
,y
se
),轨迹长度为ls。其中(x
fe
,y
fe
)和(x
ss
,y
ss
)坐标相同,为pf和ps的衔接点。这两段轨迹的单位方向矢量分别为
若vf=vs,则说明pf和ps单位方向矢量一致,能够进行轨迹整合。
102.步骤s40“根据飞切整合条件,判断缓存队列中的轨迹数据是否满足飞切整合条件;若满足飞切整合条件,则将满足飞切整合条件的轨迹数据标记为飞切小段轨迹数据,并将满足飞切整合条件的轨迹数据整合生成飞切大段轨迹数据;若不满足飞切整合条件,则将不满足飞切整合条件的轨迹数据标记为常规轨迹数据”,具体可以包括:
103.s41、初始化n=0,f=true,其中,定义n为当前飞切大段轨迹中所包含的飞切小段轨迹的数量,定义f=true为当前能够进行飞切整合的轨迹为飞切大段轨迹的第一段。
104.其中,f=true表示缓存队列中未开始进行飞切整合。
105.s42、按预设顺序遍历缓存队列中的轨迹数据,取缓存队列中的第i条轨迹作为pf,第i 1条轨迹作为ps,同时,令n=n 1。
106.其中,第i条与第i 1条轨迹为缓存队列中相邻且连续的两条轨迹。i可以为1,2,3,4,
……
,n。由于n初始化为0,当n=0时,表示当前飞切大段轨迹中所包含的飞切小段轨迹的数量为1,当n=1是,表示当前飞切大段轨迹中所包含的飞切小段轨迹的数量为2,当n=2时,表示当前飞切大段轨迹中所包含的飞切小段轨迹的数量为3。
107.s43、判断pf与ps是否满足飞切整合条件,并判断n与s-b-1的大小,若pf与ps满足飞切整合条件,且n<s-b-1,则跳到s44;若pf与ps不满足飞切整合条件,则跳到s45;若pf与ps满足飞切整合条件,但n≥s-b-1,则跳到s46;其中,定义滑动窗口所存储的轨迹数量为s,预留窗口所存储的轨迹数量为b。
108.其中,s43中,判断n与s-b-1的大小,主要是为了保证缓存队列q在后续完成飞切和速度轨迹处理后,在将轨迹数据输出给控制器时,位于飞切大段轨迹后面的飞切小段轨迹的数量控制在s-b-1以内,使得当前的飞切小段轨迹的也满足飞切整合的条件。
109.若pf与ps满足飞切整合条件,且n<s-b-1,表明当前的飞切小段轨迹的数量也满足飞切整合的条件。若pf与ps满足飞切整合条件,但n≥s-b-1,表明当前飞切小段轨迹的数量已经达到输出给控制器加工的轨迹数量,需要中断当前飞切整合操作。
110.s44、判断f是否为true,若f=true,则跳到s47;否则跳到s48。
111.s45、判断f是否为false,若f=false,则跳到s46;否则跳到s49;其中,定义f=false为当前轨迹队列中已存在飞切整合大段轨迹数据。
112.s46、将n初始化为0,f初始化为true,pf的飞切标记nf设置为2,并将当前pf的终点赋值给p
t
的终点,再将p
t
插入当前第一次飞切整合开始的轨迹之前,s46之后继续执行s49;其中,定义p
t
为飞切大段轨迹数据。
113.s45中,判断f是否为false,若f=false,表明当前飞切结束时缓存队列中存在飞切大段轨迹数据p
t
,则需要将n初始化为0,f初始化为true。且表明当前的pf与ps不能进行飞切整合,则pf属于当前飞切大段轨迹数据p
t
中的飞切小段轨迹,而ps不属于当前飞切大段轨迹数据p
t
中的飞切小段轨迹,则需要将当前pf的终点赋值给p
t
的终点,再将p
t
插入当前第一次飞切整合开始的轨迹之前。
114.s47、将pf的赋值给p
t
,作为飞切整合大段轨迹的第一段,并将p
t
的飞切标记nf设置为1,将pf与ps的飞切标记nf设置为2,同时将f设置为false,s47之后继续执行s49。
115.s44中,判断f是否为true,若f=true,表明p
t
当前不存在飞切整合的大段p
t
,且pf与ps满足飞切整合条件,则将pf的赋值给p
t
,作为飞切整合大段轨迹的第一段,并将p
t
的飞切标记nf设置为1,将pf与ps的飞切标记nf设置为2,同时将f设置为false。
116.s48、将ps的飞切标记nf设置为2,s48之后继续执行s49。
117.s44中,判断f是否为true,若f=false,表明当前已经存在飞切大段轨迹p
t
。由于当前的pf为上一段的ps,则仅需要将ps的飞切标记nf设置为2即可,表示ps同样也属于当前已经存在飞切大段轨迹p
t
的飞切小段轨迹。
118.s49、判断ps是否为缓存队列中的最后一段轨迹,若ps为缓存队列中最后一段轨迹,则跳到s50;否则,令i=i 1,重复返回s42,直到ps为缓存队列中的最后一段轨迹。
119.s50、判断f是否为false,若是,则修改p
t
终点,并将p
t
插入当前第一次飞切整合开始的轨迹之前,得到整合队列iq;否则,直接得到整合队列iq。
120.s50中,再次判断f是否为false,是为了在经过s42至e20后,存在飞切整合大段轨迹,因此需要将将p
t
插入当前第一次飞切整合开始的轨迹之前。
121.在本技术的其中一个实施例中,若缓存队列q中依次排列的轨迹为p1、p2、p3、p4、p5、p6、p7。若p1、p2、p3满足飞切整合条件,p3和p4不满足飞切整合条件,p4、p5满足飞切整体条件,p6、p7不满足飞切条件。则,将p1赋值给第一个飞切大段轨迹pt1,将p3的终点赋值给第一个飞切大段轨迹p
t1
,表明第一个飞切大段轨迹pt1内具有p1、p2、p3飞切小段轨迹,并将pt1插入p1前面。由于p4、p5也满足飞切整体条件,则,将p4赋值给第二个飞切大段轨迹pt2,将p5的终点赋值给第二个飞切大段轨迹pt2,表明第二个飞切大段轨迹pt2内具有p4、p5飞切小段轨迹,并将pt2插入p4前面。即整合队列iq中依次排列的轨迹为pt1、p1、p2、p3、pt2、p4、p5、p6、p7。
122.请参阅图2,步骤s6、对飞切大段轨迹数据之间、飞切大段轨迹数据与不能飞切整合的轨迹数据之间进行速度规划,具体可以包括:
123.s61、按预设顺序遍历整合队列iq,并将飞切标记nf为0和1的轨迹数据依次存入轨迹队列nb中。
124.nf=0表示常规轨迹,即不满足飞切整合条件,不进行飞切轨迹整合;nf=1表示飞切整合的大段;nf=2表示飞切整合的小段。所以nf=1的轨迹是所有nf=2小段轨迹信息的整合,速度轨迹只需对nf=0和nf=1的轨迹按轨迹存储顺序依次规划即可。例如,上述实施例中,整合队列iq中依次排列的轨迹为pt1、p1、p2、p3、pt2、p4、p5、p6、p7。s61中,将飞切标记nf为0和1的轨迹数据依次存入轨迹队列nb中,则轨迹队列nb中依次排列的轨迹为pt1、pt2、p6、p7。只需要为pt1与pt2之间、pt2与p6之间、及p6与p7之间进行速度规划即可。
125.s61中,将飞切标记nf为0和1的轨迹数据依次存入轨迹队列nb中,主要是为了方便后期速度规划。
126.s62、正向遍历轨迹队列nb中的轨迹数据,正向计算第i段轨迹与第i 1段轨迹之间的正向衔接速度。
127.s63、反向遍历轨迹队列nb中的轨迹数据,反向计算出第i段轨迹与第i 1段轨迹之间的反向衔接速度;并将第i段轨迹与第i 1段轨迹之间的正向衔接速度与反向衔接速度进行比较,若反向衔接速度小于或等于正向衔接速度,则将反向衔接速度作为第i段轨迹与第i 1段轨迹之间的拐角衔接速度;否则,将正向衔接速度作为第i段轨迹与第i 1段轨迹之间的拐角衔接速度。
128.其中,正向衔接速度通过轨迹的起点速度计算轨迹终点速度,反向衔接速度则是通过终点速度计算轨迹起点速度。
129.首先正向遍历轨迹队列nb中的轨迹数据,正向计算第i段轨迹与第i 1段轨迹之间的正向衔接速度;再反向遍历轨迹队列nb中的轨迹数据,反向计算出第i段轨迹与第i 1段轨迹之间的反向衔接速度;并将同一段轨迹之间的正向衔接速度与反向衔接速度进行比较,选择速度小得作为拐角衔接速度,可保证每一段轨迹能够合理加工。
130.步骤s62“正向遍历轨迹队列nb中的轨迹数据,正向计算第i段轨迹与第i 1段轨迹之间的正向衔接速度”具体可以包括:
131.s621、将轨迹队列nb中的第一段轨迹的开始速度赋值为上一次滑动窗口输出到控制器的末速度v
le

132.s621可保证轨迹与上一段轨迹之间的速度连续。
133.s622、正向遍历轨迹队列nb中的轨迹数据,取第i段轨迹作为pi,第i 1段轨迹作为p
i 1
,通过直线加减速方法,确定pi的终点速度v
ife
,并将v
ife
作为pi和p
i 1
之间的拐角衔接速度及p
i 1
的开始速度。
134.s623、返回步骤s622,直至轨迹队列nb中的轨迹正向遍历完成。
135.其中,根据轨迹队列nb存储顺序,从头到尾遍历,确定每一段轨迹的末速度。具体过程:首先,根据第一段轨迹的开始速度通过直线加减速方法,计算出第一段轨迹的末速度;然后,将这个末速度作为第二段轨迹的开始速度,此时该末速度也被称为第一段轨迹和第二段轨迹的拐角衔接速度;接着,根据第二段轨迹的开始速度计算第二段轨迹的末速度,同样,将该末速度作为第二段轨迹和第三段轨迹的拐角衔接速度以及第三段轨迹的开始速度;再接着,计算第三段轨迹的末速度;最后,重复上述操作,直到计算完轨迹队列nb倒数第二段轨迹和最后一段轨迹的拐角衔接点速度即可。
136.步骤s63“反向遍历轨迹队列nb中的轨迹数据,反向计算出第i段轨迹与第i 1段轨迹之间的反向衔接速度;并将第i段轨迹与第i 1段轨迹之间的正向衔接速度与反向衔接速度进行比较,若反向衔接速度小于或等于正向衔接速度,则将反向衔接速度作为第i段轨迹与第i 1段轨迹之间的拐角衔接速度;否则,将正向衔接速度作为第i段轨迹与第i 1段轨迹之间的拐角衔接速度”具体可以包括:
137.s631、将轨迹队列nb中的最后一段轨迹的末速度赋值为0。
138.s632、反向遍历队列nb中的轨迹数据,取第i 1段轨迹作为p
i 1
,通过直线加减速方法,确定p
i 1
的开始速度v
(i 1)s

139.s633、将p
i 1
的开始速度v
(i 1)s
与v
ife
进行比较,若v
(i 1)s
≤v
ife
,将v
(i 1)s
作为轨迹pi和p
i 1
之间的拐角衔接速度;否则将v
ife
作为轨迹pi和p
i 1
之间的拐角衔接速度。
140.s634、返回步骤s632,直至轨迹队列nb中的轨迹反向遍历完成。
141.其中,根据轨迹队列nb逆序,从尾到头遍历,确定每一段轨迹的开始速度。具体过程:
142.首先,根据轨迹队列nb中的最后一段轨迹的末速度,按照直线加减速方法先确定最后一段的开始速度;然后,将该开始速度与s622正向拐角衔接速度计算过程中确定的最后一段轨迹的开始速度进行比较,选择速度小作为最后一段开始速度;
143.接着,将该开始速度作为倒数第二段轨迹的末速度,此时该开始速度也被称为最
后一段轨迹与倒数第二段轨迹的拐角衔接速度;
144.再接着,根据倒数第二段轨迹的末速度开始计算倒数第二段轨迹的开始速度,同样,将该开始速度与s622正向拐角衔接速度计算过程中确定的倒数第二段轨迹开始速度进行比较,选择开始速度小的作为倒数第三段的末速度,以及倒数第二段和倒数第三段的拐角衔接速度;
145.再接着,计算倒数第三段轨迹的开始速度;
146.最后,重复上述操作,直到计算完轨迹队列nb第二段轨迹和第一段轨迹的拐角衔接速度即可。与s622相比,反向拐角衔接速度的计算包含了对正向拐角衔接速度的修正过程,能够保证每一段轨迹能够合理加工。
147.其中,以飞切轨迹的正向衔接速度计算为例,所采用的直线加减速的方法为:假设直线轨迹pf的起点速度为vs,终点速度为ve,轨迹长度为lf,轨迹加速度a
cc
,轨迹最大速度vm,编程进给速度vf,轨迹加加速度j。除了轨迹pf的ve为待求值,其它均已知。那么,轨迹pf在加加速度j下,由0达到加速度a
cc
所用时间vs在j下达到的最大速度v
rm
=vs acc
×
δt,以及达到最大速度v
rm
所需的位移增量δl=(v
rm
vs)
×
δt。令v
tm
=min(vm,vf),下面根据δl与lf,v
rm
与v
tm
分类进行讨论ve的值:
148.第一种情况:δl≥lf且v
rm
≤v
tm
,说明以a
cc
加速,有足够距离走完lf,速度能够达到v
rm
,且不会超过系统设定的最大速度v
tm
。此时,一定存在ve,其求解过程如下:
149.首先求解在v
tm
下的距离增量δl2:
[0150][0151]
若pf剩余轨迹长度比δl2长,说明pf的末速度能够达到v
tm
,所以令ve=v
tm
。否则,令上式中v
rm
=ve,δl2=lf,求解ve的二元一次方程:
[0152][0153]
若上式有解,表示以vs在j下能够加速到ve,并取ve>vs正解。否则,令ve=vs,表示在j下,pf匀时运动。
[0154]
第二种情况:δl<lf且v
rm
≤v
tm
,说明以a
cc
加速,没有足够距离走完lf,但在最大加速度a
cc
下,能够达到速度v
rm
,且不超过系统设定的最大速度v
tm
。此时,需要通过逐次逼近的方法重新求解合适的加速度a
cc
和末速度ve。本技术采用的是二分法,具体求解过程如下:
[0155]
先初始化最大速度为v
bm
=v
rm
,最小速度v
hm
=vs,平均速度v
mm
=0.5
×
(v
bm
v
hm
),距离容差err:
[0156][0157]
如果err>0,将平均速度v
mm
作为最大速度v
bm
,即v
bm
=v
mm
;否则,将平均速度v
mm
作为最小速度v
hm
,即v
hm
=v
mm
;如果|err|≥0.2,平均速度v
mm
,取最大速度v
bm
和最小速度v
hm
的平均值,即v
mm
=0.5
×
(v
bm
v
hm
)。重复上述操作,直到距离容差|err|≥0.2,将v
mm
作为末速度ve,此时,加速度或者,重复迭代一定次数(本技术采用的50次)后,仍
计算不出结果,就认为速度规划不能达到合适的末速度ve和加速度a
cc
,循环结束,表示这种情况下,ve无解。
[0158]
第三种情况:δl≥lf且v
rm
>v
tm
,说明以a
cc
加速,有足够距离走完lf,但在最大加速度a
cc
下,能够达到的速度v
rm
已经超过了系统设定的最大速度v
tm
,故不能达到最大加速度a
cc
。此时,求解的末速度ve=v
tm
,加速度
[0159]
第四种情况:δl<lf且v
rm
>v
tm
,说明以a
cc
加速,没有足够距离走完lf,并且在最大加速度a
cc
下,能够达到速度v
rm
也超过了系统设定的最大速度v
tm
,故不能达到最大加速度a
cc
。此时,a
cc
和ve求解方法如下:
[0160]
先计算最大速度v
tm
下的距离增量δl3:
[0161][0162]
如果lf>δl3,说明ve能够达到v
tm
,即ve=v
tm
;否则,需要采用二分法,重新求解合适的a
cc
和ve。该求解过程与第二种方法求解过程一致,在此不再赘述。
[0163]
通过上述计算后,为了保护整个运动过程的安全性,还需要比较ve和lf。如果ve≥lf,说明末速度超过了剩余距离,此时令ve=lf,否则,ve为上述求解结果。
[0164]
请参阅图2,步骤s63“反向遍历轨迹队列nb中的轨迹数据,反向计算出第i段轨迹与第i 1段轨迹之间的反向衔接速度;并将第i段轨迹与第i 1段轨迹之间的正向衔接速度与反向衔接速度进行比较,若反向衔接速度小于或等于正向衔接速度,则将反向衔接速度作为第i段轨迹与第i 1段轨迹之间的拐角衔接速度;否则,将正向衔接速度作为第i段轨迹与第i 1段轨迹之间的拐角衔接速度”之后还可以包括:
[0165]
s64、更新轨迹队列nb,用带衔接速度的轨迹队列nb替换原始不带衔接速度的轨迹队列nb,得到新的整合轨迹队列ob。
[0166]
具体的,步骤s64、更新轨迹队列nb,用带衔接速度的轨迹队列nb替换原始不带衔接速度的轨迹队列nb,得到新的整合轨迹队列ob,具体可以包括:
[0167]
s641、按轨迹的储存顺序遍历更新后的轨迹队列nb,取出带衔接速度的轨迹pi。
[0168]
s642、按轨迹的储存顺序遍历整合队列iq,取出飞切标志nf=0和nf=1的轨迹pj。
[0169]
s643、分析轨迹pi和轨迹pj的轨迹信息,若轨迹pi和轨迹pj的轨迹信息一致,则说明pi和轨迹pj属于同一段轨迹,则执行s8;否则重复s642,直到找到对应轨迹信息pj。
[0170]
s644、将整合队列iq中的轨迹pj用nb中带衔接速度的轨迹pi替换。
[0171]
s645、重复s642,直到整合队列iq中所有带飞切标记nf=0与nf=1的轨迹被在更新后的轨迹队列nb中轨迹信息相同的轨迹替代。
[0172]
s646、将处理后的整合队列iq赋值给轨迹队列ob,同时清空原来的整合队列iq与轨迹队列nb的缓存。
[0173]
步骤s8“根据滑动窗口所存储的轨迹数量与预留窗口所存储的轨迹数量,确定速度规划后的轨迹数据的目标输出数量,并将目标输出数量的轨迹数据输出给控制器进行加工,其中预留窗口所存储的轨迹数量大于0”,具体可以包括:
[0174]
s81、按顺序遍历轨迹队列ob,取第i条轨迹定义为pi。
[0175]
s82、判断i是否小于s-b。
[0176]
s83、若i《s-b,则直接将轨迹pi输出给控制器加工,并重复s81至i2,以继续获取新
的轨迹pi。
[0177]
s84、若i≥s-b,则判断轨迹pi的飞切标志nf,若轨迹pi的飞切标志nf为2,直接将轨迹pi输出给控制器加工,直到轨迹pi的飞切标志为nf为=0或者nf为1时停止;若轨迹pi的飞切标志为nf为0或者nf为1时,则轨迹pi不输出给控制器加工。
[0178]
其中,s84中,当i≥s-b时,则需要判断轨迹pi的飞切标志nf。若轨迹pi的飞切标志nf为2,说明该轨迹pi属于当前大段轨迹数据中的小段,则需要继续将该轨迹pi输出。当pi的飞切标志nf为0或者nf为1时,说明当前大段轨迹数据中的小段已经全部输出,此时需要停止继续输出。
[0179]
若轨迹pi的飞切标志为nf为0或者nf为1时,说明轨迹pi为常规轨迹数据或者下一个大段轨迹数据,此时不会将轨迹pi输出给控制器加工。
[0180]
具体的,在本技术的一个实施例中,若s=7,b=2,s-b=5,经整合后的轨迹队列ob中依次排序的轨迹为p
t1
、p1、p2、p3、pt2、p4、p5、p6、p7。当需要输出轨迹给控制器时,首先,判断i与s-b的大小,取i=1时,由于i<5,此时直接输出p
t1
给控制器;接着,取i=2时,由于i<5,此时直接输出p1给控制器;取i=3时,由于i<5,此时直接输出p2给控制器;当i=4时,由于i<5,此时直接输出p3给控制器;当i=5时,此时需要判断轨迹p
t2
的飞切标志nf。由于p
t2
的飞切标志nf为1,说明第5段属于飞切大段轨迹,此时需要停止继续输出。此时输出的轨迹为p
t1
、p1、p2、p3,轨迹队列ob中仍然存在p
t2
、p4、p5、p6、p7。
[0181]
在本技术的另一实施例中,若s=7,b=4,s-b=3,经整合后的轨迹队列ob中依次排序的轨迹为p
t1
、p1、p2、p3、pt2、p4、p5、p6、p7。当需要输出轨迹给控制器时,首先,判断i与s-b的大小,取i=1时,由于i<3,此时直接输出p
t1
给控制器;接着,取i=2时,由于i<3,此时直接输出p1给控制器;取i=3时,由于i=s-b,此时需要判断轨迹p2的飞切标志nf。由于p2的飞切标志nf为2,说明第3段属于当前飞切大段轨迹中的小段轨迹,继续将p2输出给控制器。再接着,取i=4时,由于i>s-b,此时需要判断轨迹p3的飞切标志nf。由于p3的飞切标志nf为2,说明第4段属于当前飞切大段轨迹中的小段轨迹,继续将p3输出给控制器。然后,取i=5时,由于i>s-b,此时需要判断轨迹p
t2
的飞切标志nf。由于p
t2
的飞切标志nf为1,说明第5段属于飞切大段轨迹,此时需要停止继续输出。此时输出的轨迹为p
t1
、p1、p2、p3,轨迹队列ob中仍然存在p
t2
、p4、p5、p6、p7。
[0182]
s85、判断轨迹队列ob内是否存在没有输出的轨迹pi,若存在,再次判断轨迹pi的飞切标志nf,若轨迹pi的飞切标志为nf为0,则直接将轨迹pi存入缓存队列q;若轨迹pi的飞切标志为nf为1,则直接跳过或者删除轨迹pi;若轨迹pi的飞切标志为nf为2,先将轨迹pi的nf赋值为0,再将轨迹pi存入缓存队列中。
[0183]
由于要保证拐角衔接速度不是从0开始,因此预留窗口所存储的轨迹数量需要大于0,从而轨迹队列ob内存在没有输出的轨迹pi。s85的设置,主要是将轨迹队列ob内没有输出的轨迹pi进行还原,方便剩下的轨迹pi继续与下一次新获取的轨迹数据重新进行飞切整合。
[0184]
s85中,判断轨迹pi的飞切标志nf,当轨迹pi的飞切标志为nf为0时,表明该轨迹为常规轨迹,则直接将轨迹pi存入缓存队列q;当轨迹pi的飞切标志为nf为1,表明该轨迹pi为飞切大段轨迹,此时直接跳过或者删除轨迹pi;当轨迹pi的飞切标志为nf为2时,表明该轨迹pi为飞切小段轨迹,则需要先将轨迹pi的nf赋值为0,再将轨迹pi存入缓存队列中。
[0185]
例如,上述实施中,经整合后的轨迹队列ob中依次排序的轨迹为p
t1
、p1、p2、p3、p
t2
、p4、p5、p6、p7。输出的轨迹为p
t1
、p1、p2、p3,轨迹队列ob中仍然存在p
t2
、p4、p5、p6、p7。当对轨迹队列ob中仍然存在p
t2
、p4、p5、p6、p7。进行轨迹还原的流程如下所示:
[0186]
首先,判断轨迹p
t2
的飞切标志nf,由于轨迹p
t2
的飞切标志为nf为1,表明该轨迹p
t2
为飞切大段轨迹,此时直接跳过或者删除轨迹p
t2

[0187]
接着,判断轨迹p4的飞切标志nf,由于轨迹p4的飞切标志为nf为2,表明该轨迹p4为飞切小段轨迹,此时需要先将轨迹p4的nf赋值为0,再将轨迹p4存入缓存队列中;
[0188]
然后,判断轨迹p5的飞切标志nf,由于轨迹p5的飞切标志为nf为2,表明该轨迹p5为飞切小段轨迹,此时需要先将轨迹p5的nf赋值为0,再将轨迹p5存入缓存队列中;
[0189]
再接着,判断轨迹p6的飞切标志nf,由于轨迹p6的飞切标志为nf为0,表明该轨迹p6为表明该轨迹为常规轨迹,此时直接将轨迹p6存入缓存队列q;
[0190]
再接着,判断轨迹p7的飞切标志nf,由于轨迹p7的飞切标志为nf为0,表明该轨迹p7为表明该轨迹为常规轨迹,此时直接将轨迹p7存入缓存队列q。经过上述轨迹还原的步骤,此时缓存队列q中还原后存在的轨迹为p4、p5、p6、p7。在进行下一次的飞切整合时,还需要继续获取新的轨迹数据存入缓存队列中。
[0191]
s86、重复步骤s81到s85,直到轨迹队列ob遍历完成,并清空轨迹队列ob的缓存。
[0192]
步骤s8“根据滑动窗口所存储的轨迹数量与预留窗口所存储的轨迹数量,确定速度规划后的轨迹数据的目标输出数量,并将目标输出数量的轨迹数据输出给控制器进行加工,其中预留窗口所存储的轨迹数量大于0”之后还可以包括:
[0193]
s9、判断待处理轨迹数据中是否存在未获取的轨迹数据,若存在,则返回步骤s2“根据滑动窗口所存储的轨迹数量从待处理轨迹数据中获取第一预设数量的轨迹数据存入滑动窗口,所述第一预设数量不超过滑动窗口所存储的轨迹数量”;否则,继续判断缓存队列中是否存在轨迹数据,若缓存队列中存在轨迹数据,则返回步骤s4“将满足飞切整合条件的轨迹数据进行飞切整合生成飞切大段轨迹数据”,直到将缓存队列中的轨迹数据全部输出给控制器。
[0194]
步骤s9中,判断待处理轨迹数据中是否存在未获取的轨迹数据,如果存在,则跳到s2中获取新的轨迹数据并开始下一次的飞切整合。当待处理轨迹数据中不存在未获取的轨迹数据时,此时继续判断缓存队列中是否存在轨迹数据,若缓存队列中存在轨迹数据,说明上一次飞切处理中,有轨迹数据被还原并存在缓存队列中,此时跳到s4中重新对轨迹数据进行飞切整合与速度规划,直到将缓存队列中的轨迹数据全部输出给控制器。
[0195]
本技术实施例还提供了一种飞切处理装置,包括:
[0196]
设定模块,用于设定滑动窗口与预留窗口,并设置滑动窗口与预留窗口所存储的轨迹数量;
[0197]
获取模块,用于根据滑动窗口大小获取第一预设数量的轨迹数据存入滑动窗口,所述第一预设数量不超过滑动窗口所存储的轨迹数量;
[0198]
飞切整合模块,用于将满足飞切整合条件的轨迹数据进行飞切整合生成飞切大段轨迹数据;
[0199]
速度规划模块,用于对飞切大段轨迹数据之间、飞切大段轨迹数据与不能飞切整合的轨迹数据之间进行速度规划;以及,
[0200]
输出模块,用于根据滑动窗口所存储的轨迹数量与预留窗口所存储的轨迹数量,确定速度规划后的轨迹数据的目标输出数量,并将目标输出数量的轨迹数据输出给控制器进行加工,其中预留窗口所存储的轨迹数量大于0。
[0201]
本技术实施例还提供了一种计算机设备,包括:
[0202]
处理器,被配置成执行计算机可执行指令;
[0203]
存储器,存储一个或多个计算机可执行指令,计算机可执行指令被处理器执行时,实现上述任意实施例中的飞切处理方法的各个步骤。
[0204]
本技术实施例的计算机设备,处理器包括编译器和控制器,编译器用于执行上述任意实施例中的飞切处理方法的各个步骤,控制器用于接收编译器输出的轨迹数据并对输出的轨迹数据进行加工。
[0205]
本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现上述任意实施例中的飞切处理方法的各个步骤。
[0206]
以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献