[发明专利]一种基于双线程的速度预处理算法有效

专利信息
申请号: 201710958828.1 申请日: 2017-10-16
公开(公告)号: CN107783503B 公开(公告)日: 2020-03-17
发明(设计)人: 贺跃帮;董尚东 申请(专利权)人: 五邑大学
主分类号: G05B19/416 分类号: G05B19/416
代理公司: 广州粤高专利商标代理有限公司 44102 代理人: 刘瑶云
地址: 529020 广*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 双线 速度 预处理 算法
【权利要求书】:

1.一种基于双线程的速度预处理算法,其特征在于:包括以下步骤:

步骤1:建立直线或圆弧存储线段的循环队列,将队列中未加工线段的首段作为实时线程开始位置,将队列中未加工线段最后一段作为非实时线程开始位置;

步骤2:将速度预处理算法分成实时部分和非实时部分两部分,其中实时部分放在实时线程中与速度规划算法一起运行,非实时部分放在非实时线程中与插入线段程序一起运行;

所述速度预处理算法中实时部分实现过程如下:

步骤1:定义Vel等于一较大值,且定义队列中未加工线段第一段线段所在段链为cursor,进入步骤2;

步骤2:如果段链cursor中有线段标志last_flag=1,则Vel=0,进入步骤3;

步骤3:取plFinalVel为Vel和cursor末端速度finalVel之间的较小值,并判断cursor起始速度initFinal是否大于plFinalVel,如果是,则表明够长,进入步骤8,否则进入步骤4;

步骤4:测试cursor从起始速度initFinal到末端速度plFinalVel是否够长,如果是,则进入步骤8,否则进入步骤5;

步骤5:判断cursor段链中线段数量,如果大于给定的最大链接数量N,则进入步骤7,否则进入步骤6;

步骤6:定义cursor的前段链为nextCursor,并将cursor与nextCursor链接,返回步骤2;

步骤7:在区间[initFinal,plFinalVel]之间采用二值搜索法搜索速度newVel,使得cursor从起始速度initFinal到末端速度newVel刚好够长;设plFinalVel=newVel,进入步骤8;

步骤8:设cursor末端速度为plFinalVel,退出;

所述速度预处理算法中非实时部分实现过程如下:

当插入一段新线段并定义为newseg时,如果队列中只有这一段,则该段首末速度都为0,否则定义其前段链为prevseg,由于newseg和prevseg衔接,其衔接速度将由newseg和prevseg的夹角或曲率计算,设为cornerVel,prevseg末速改变,从0变为cornerVel,需要测试其首末速是否可达,且需测试newseg首末速是否可达;分别定义函数sqBackLink()函数和sqLastBackLink()函数来处理prevseg首末速可达和newseg首末速可达问题。

2.根据权利要求1所述一种基于双线程的速度预处理算法,其特征在于:所述Vel定义为10的6次方。

3.根据权利要求1所述一种基于双线程的速度预处理算法,其特征在于:所述sqBackLink()函数实现过程如下:

步骤1:如果prevseg正在运行,即被实时部分调用,则返回-1,否则进入步骤2;

步骤2:如果prevseg起始速度initVec小于等于末端速度cornerVel,则返回0,否则进入步骤3;步骤3:测试prevseg从起始速度规划到末端速度是否够长,如果够长,则返回0,否则进入步骤4;

步骤4:定义prevseg的前段链为cursor,如果cursor正在运行,则返回-1,否则进入步骤5;

步骤5:测试cursor从起始速度规划到cornerVel是否够长,如果够长,则表明cursor足够长,prevseg不应该链接cursor,进入步骤6,否则表明cursor不够长,将prevseg与cursor链接,返回步骤2;

步骤6:在区间[cornerVel,initVec]采用二值搜索法搜索速度vel,使得prevseg以vel为起始速度,cornerVel为末端速度刚好够长,设vel为prevseg起始速度,且为cursor末端速度,并返回0。

4.根据权利要求1所述一种基于双线程的速度预处理算法,其特征在于:所述sqLastBackLink()函数实现过程如下:

步骤1:定义cursor=newseg;

步骤2:测试从cursor起点速度到newseg末端速度0是否够长,如果够长,则进入步骤4,否则进入步骤3;

步骤3:定义cursor所在段链的前段链为prevseg,如果prevseg正在运行,newseg起始速度设为0,退出,否则令cursor=prevseg,返回步骤2;

步骤4:设置cursor到newseg之间所有线段为末段标志,即标志位last_flag=1,并将cursor之前所有标志last_flag为1的线段标志位清零,退出。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于五邑大学,未经五邑大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710958828.1/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top