The invention discloses a time optimized smooth a * algorithm, which comprises the following steps: step S1: weighting the cost estimation function of the a * algorithm; step S2: optimizing the open list of the a * algorithm with the minimum binary heap; step S3: optimizing the path optimized in steps S1 and S2 by three times of B-spline optimization to obtain the final path after three times of B-spline optimization; The invention adopts the smooth a * algorithm of time optimization. By weighting the cost estimation function of the a * algorithm and optimizing the open list of the a * algorithm with the minimum binary heap, the operation time of the path planning algorithm is reduced, the overall path smoothness is optimized, and the existing a * algorithm has many broken lines, many turning times and large cumulative turning angle in actual engineering application The work efficiency of the robot is improved.
【技术实现步骤摘要】
一种时间优化的平滑A*算法
本专利技术涉及一种路径规划A*算法,尤其涉及一种时间优化的平滑A*算法,具体来说是涉及一种融合最小二叉堆、系数加权和3次B样条优化来减少路径规划算法运算时间和对整体路径平滑度进行优化的平滑A*算法。
技术介绍
A*算法是广泛用于寻路和图遍历的计算机算法。由于其具有较好的性能和准确性,经常被使用在最短路径求解中,是一种启发式搜索算法,其成本估计函数为:f(n)=g(n)+h(n);式中:f(n)为从起始节点经由当前节点n到目标节点的估计成本,g(n)为初始节点到当前节点n的实际成本,h(n)为从当前节点到目标节点n的最佳路径的估计成本。A*算法的算法思想在于:A*算法典型的实现方法是使用优先级队列来重复执行选择要扩展的最小估计成本节点。此优先级队列称为开集,在算法的每个步骤中,从开集中移除具有最低f(n)值的节点,其相邻节点的f(n)和g(n)值被相应地更新,并且这些相邻节点被添加到队列中。算法继续进行,直到目标节点具有比队列中的任何节点更低的值(或者直到队列为空),而该目标节点的值就是最短路径的长度。在运行此算法之后,目标节点将指向其前导节点。依此类推,直到某个节点的前导是开始节点,就可以得到最短路径序列。A*算法采用了一个启发函数h(n),使算法利用启发信息朝着某个确定的方向搜索,所以其访问的节点比Dijkstra算法少得多,能快速地导向目标结点,访问到目标节点后算法停止。对于起始点和目标点都确定的情况,A*能利用启发函数快速找到目标点,现有的A*算法生成的路径图 ...
【技术保护点】
1.一种时间优化的平滑A*算法,其特征在于:包括如下步骤:/n步骤S1:对A*算法的代价估计函数进行加权处理;/n步骤S2:对A*算法的OPEN列表使用最小二叉堆进行优化;/n步骤S3:对步骤S1、S2优化后的路径进行3次B样条优化处理,得到最终的经3次B样条优化处理之后的路径。/n
【技术特征摘要】
1.一种时间优化的平滑A*算法,其特征在于:包括如下步骤:
步骤S1:对A*算法的代价估计函数进行加权处理;
步骤S2:对A*算法的OPEN列表使用最小二叉堆进行优化;
步骤S3:对步骤S1、S2优化后的路径进行3次B样条优化处理,得到最终的经3次B样条优化处理之后的路径。
2.根据权利要求1所述的一种时间优化的平滑A*算法,其特征在于:步骤S1中的对A*算法的代价估计函数进行加权处理的步骤为:
步骤一:采用代价估计函数f(n)=g(n)+h(n)计算代价值:
其中,f(n)是代价估计函数,g(n)是由起始节点到节点n的代价值,h(n)是节点n到目标节点的代价启发值;
步骤二:采用加权处理之后的函数h(n)=C{ω1[abs(nx-goalx)]+ω2[abs(ny-goaly)]}计算(nx,ny)与(goalx,goaly)两点之间的距离:
其中,abs(nx-goalx)+abs(ny-goaly)为曼哈顿距离计算公式,C为单位代价系数,C的实际值设为10,ω1、ω2为加权系数,(nx,ny)为算法中访问的当前节点坐标,(goalx,goaly)为目标节点坐标;
步骤三:选取不同的加权系数ω1、ω2进行试验,最后得到试验最优系数ω1=1、ω2=3。
3.根据权利要求1或2所述的一种时间优化的平滑A*算法,其特征在于:步骤S2中对A*算法的OPEN列表使用最小二叉堆进行优化的步骤为:
步骤Ⅰ:初始化OPEN表、CLOSE表和目标点A,将起始节点S放入OPEN表,CLOSE表置空;
步骤Ⅱ:判断OPEN表是否为空:如果否,则从OPEN表的表头取一个节点n;如果是,则算法结束;
步骤Ⅲ:判断n是否为目标节点:如果否,则进入步骤Ⅳ;如果是,则算法结束;
步骤Ⅳ:将节点n的所有后继节点展开形成直接关联子节点,判断子节点是否在CLOSE表中,如果否,则将子节点放入OPEN表中;如果是,则进入步骤Ⅴ;
步...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。