欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2016102578405
申请人: 广西大学
专利类型:发明专利
专利状态:已下证
专利领域: 控制;调节
更新日期:2023-12-11
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种适用于机器人路径搜索的改进的A*算法,其特征在于,只需输入机器人运动路径的初始节点s和目标节点g,改进的A*算法能够自动搜索出一条全局无碰撞的优化路径,具体包含以下步骤:(1)建立OPEN表与CLOSED表,且两个都为空表,表中没有存放任何节点信息;

所述的CLOSED表用于存放最终的路径节点ni;其中,i=1,2,3...;所述的OPEN表用于存放待检测的候选节点mj;其中,j=1,2,3...;所述的OPEN表的作用还在于将当前节点ni的邻域Nn内的所有候选节点mj按估价值从小到大排列;其中,ni表示最终的路径节点,i是最终路径依次按照初始节点s到目标节点g的顺序排列的编号;mj表示路径节点ni的邻域Nn内的候选节点,j为路径节点ni的邻域Nn内所有候选节点的编号;每遍历一个路径节点ni,i的数值加1;每遍历一个路径节点ni邻域Nn内的候选节点mj,j的数值加1;所述的估价值是A*算法搜索路径过程中评价路径长短与否的重要尺标,估价值越小,则该段路径越短;所述的路径节点ni的邻域Nn是以路径节点ni为球心,以一固定邻域阈值ρ为半径设定的球型空间,该球型空间中包含候选节点mj;即在此球型空间内所有候选节点mj与路径节点ni间的距离均小于等于邻域阈值ρ;

(2)将初始节点s直接添加进入CLOSED表的末尾处;

(3)用局部路径规划器判断机器人沿初始节点s与目标节点g之间的局部路径运动是否发生碰撞;若碰撞,则顺序执行步骤(4);否则将目标节点g移入CLOSED表末尾,执行步骤(18);

所述的局部路径规划器是将两个节点之间的局部路径离散成若干离散点,并对各离散点进行判断,判断机器人末端位于该局部路径间的各离散点时是否与周围环境物体存在碰撞;

(4)以初始节点s为当前节点n1,建立当前节点n1的邻域Nn,分别计算该节点邻域Nn内的各候选节点mj的估价值,将OPEN表中最小估价值f(mj)的候选节点mj转移到OPEN表的表头;

所述的估价值函数公式表示为:f(x)=g(x)+h(x);f(x)是从初始节点s经由节点x到目标节点g的估价函数,g(x)是从初始节点s到节点x的实际代价,h(x)是从节点x到目标节点g的最佳路径的估计代价;其中x为节点表达的通项形式,计算路径节点时x为ni,即路径节点ni的估价值函数为f(ni);计算邻域Nn内的候选节点时x为mj,即邻域Nn内的候选节点mj的估价值函数为f(mj);

(5)将OPEN表表头的候选节点mj移入CLOSED表的末尾,并以移入CLOSED表的末尾的候选节点mj为路径搜索的当前节点n2;

(6)对转移到CLOSED表中的当前节点n2进行判断,确定其是否为目标节点g;若节点n2为目标节点g,则执行步骤(18);否则顺序执行步骤(7);

为表达方便,遍历搜索过程中所有当前节点的表述均采用通项ni的形式表示,即当前节点为ni;每遍历一个节点,i的数值加1;

(7)用局部路径规划器将当前节点ni与目标节点g之间的局部路径离散;

(8)判断机器人沿着当前节点ni到目标节点g之间的局部路径运动时是否会发生碰撞;

若机器人沿着当前节点ni到目标节点g之间的局部路径运动时发生碰撞,则顺序执行步骤(9);否则将目标节点g移入CLOSED表的末尾,执行步骤(18);

所述的判断机器人沿路径运动时是否发生碰撞,本质是判断机器人末端位于该路径中的任一节点时,是否与周围环境物体发生碰撞;

(9)建立当前节点ni的邻域Nn;

(10)遍历当前节点ni的邻域Nn中的候选节点mj;

(11)计算当前遍历的候选节点mj的估价值,并将当前遍历的候选节点mj添加进OPEN表中;

(12)将添加进入OPEN表中当前遍历的候选节点mj的估价值f(mj)与之前遍历的候选节点mk的估价值f(mk)进行比较;其中,k=1,2,3...;若当前遍历的候选节点mj的估价值f(mi)小于之前遍历的候选节点mk的估价值f(mk),则顺序执行步骤(13);否则跳转到步骤(14)执行;

邻域Nn内的候选节点mj添加进入OPEN表中的过程有先后之分,所述的当前遍历的候选节点mj的估价值f(mj)必须与之前遍历的候选节点mk的估价值f(mk)进行比较;所述的之前遍历的候选节点mk与当前遍历的候选节点mj中的编号j≠k,即j和k表示不同的候选节点;

(13)更新OPEN表,将当前遍历的候选节点mj保留在OPEN表表头;

(14)判断当前节点ni的邻域Nn中的遍历是否完成;若没有,返回执行步骤(10),直至当前节点ni的邻域Nn中所有节点遍历完成;否则顺序执行步骤(15);

(15)判断OPEN表是否为空;若为空,则路径搜索失败,结束本次路径搜索;否则顺序执行步骤(16);

OPEN表为空,表示遍历的当前节点ni的邻域Nn内不包含其它候选节点mj,路径搜索失败,本次路径搜索结束;

(16)邻域Nn遍历结束后,将OPEN表中的候选节点mj按照估价值f(mj)从小到大排列;将OPEN表中位于表头的候选节点mj转移至CLOSED表末尾,并以该候选节点mj为下一搜索过程的当前节点ni;

以候选节点mj为下一搜索过程的当前节点ni,开始下一轮搜索,即i的数值加1;开始下一轮搜索,OPEN表中的信息将被覆盖,以用于存放下一路径节点ni的邻域Nn中其它候选节点mj的信息;

(17)判断当前路径节点ni是否为目标节点g;若当前节点ni不是目标节点g,返回执行步骤(7);若当前节点ni为目标节点g,则顺序执行步骤(18);

(18)顺序连接CLOSED表中的所有路径节点ni,获得机器人路径。

2.根据权利要求1所述的一种适用于机器人路径搜索的改进的A*算法,其特征在于,所述的改进的A*算法不同于传统的A*算法,所述的改进的A*算法是用局部路径规划器直接将当前节点ni与目标节点g之间的局部路径离散并判断其是否碰撞;若该段局部路径有效,则直接将当前节点ni和目标节点g导入CLOSED表中作为最终的路径节点;否则按照传统的A*算法执行;轮到将下一节点视为当前节点时,再按照改进的A*算法的步骤执行,以此往复,直至搜索到当前节点ni与目标节点g之间的局部路径有效,将目标节点g导入CLOSED表中,改进的A*算法搜索路径完成。

3.根据权利要求1所述的一种适用于机器人路径搜索的改进的A*算法,其特征在于,所述的具体步骤中的步骤(3)中所述的局部路径规划器为“二分法”形式的局部路径规划器;

所述的“二分法”形式的局部路径规划器是将两点之间的局部路径离散成各个离散点;每一次“二分法”形式的局部路径规划器的操作,是在每两个离散点间等距的插入一个新的离散点,判断插入后的新的离散点是否发生碰撞;若不发生碰撞,则再在每两个离散点间等距的插入一个新的离散点,并对其进行碰撞检测,以此往复操作,直至两个离散点之间的距离小于设定的局部路径检测阈值ε,局部路径规划器的操作终止,认为两点之间的局部路径为局部安全路径,两点之间的局部路径不发生碰撞;否则认为两点之间的局部路径碰撞,不为局部安全路径。

4.根据权利要求1所述的一种适用于机器人路径搜索的改进的A*算法,其特征在于,所述的具体步骤中的步骤(8)中所述的机器人沿当前节点ni到目标节点g之间的局部路径是否会发生碰撞的判断方法,是采用碰撞检测算法对局部路径碰撞与否进行判断的;所述的碰撞检测算法为OBB包围盒的碰撞检测算法,或为RAPID碰撞检测算法,或为混合包围体层次树碰撞检测算法。

5.根据权利要求4所述的一种适用于机器人路径搜索的改进的A*算法,其特征在于,所述的碰撞检测算法是利用混合包围体层次树碰撞检测算法对各节点或离散点之间进行碰撞检测;所述的混合包围体层次树算法采用由顶层、中间层和底层3层结构构成的包围体层次树技术;如果所述的混合包围体层次树中父结点包围体不存在碰撞,则无须对子结点包围体进行碰撞检测,以此加快碰撞检测速度;所述的混合包围体层次树算法计算简化和耗时较少,随着机器人实际运动时各连杆间相对位置的变化而动态更新,适用于对机器人的碰撞检测。