基于线段的路径规划方法技术

技术编号:33959789 阅读:14 留言:0更新日期:2022-06-30 00:18
本发明专利技术提供一种基于线段的路径规划方法,该方法包括以下步骤:步骤1.接收预先绘制好的线段集合,对所有线段集合中的坐标进行初始化节点并进行关联。步骤2.根据路径规划的起点,查找当前车辆所在的路线节点,并将该节点加入open集合中。步骤3.循环取出open中代价值最低的一个节点,从open集合中删除该节点,加入到close集合中,并比较节点信息中的坐标是否和终点坐标相等,相等则将final_path节点指向当前节点,跳出循环,执行步骤5,不相等则执行步骤4。本发明专利技术的优点因为是基于已绘制好的线段集合,不必考虑空间复杂性,所需计算量较小,算法时间可以得到控制。法时间可以得到控制。

【技术实现步骤摘要】
基于线段的路径规划方法


[0001]本专利技术涉及一种基于线段的路径规划方法。

技术介绍

[0002]AStar算法是在Dijkstra算法基础上发展出来的,是在静态路径中用于求解最优路径有效的直接搜索算法,比Dijkstra算法多了一个启发式的搜索函数,也就是通过一个代价函数来确定搜索方向,即从起点开始向周围扩张,通过代价函数,计算得到周围每个节点的代价值,选出最小代价节点作为下一个扩展点,重复这个过程直到到达目标点。AStar算法具有以下优点:1)Astart算法的整体搜索规模比Dijkstra算法小不少,其搜索具有一定的指向性,会促使整体搜索方向朝向目标点,使得搜索效率较高,很适合在开放空间中的路径规划;2)Astart算法拥有与Dijkstra算法相同的最终确定唯一最优解,具有很好的收敛性,是一个优良的搜索算法。同时AStar算法具有以下缺点:1)不论选择冯诺依曼邻域还是摩尔邻域,其计算规模仍然较大,对于较复杂路径较大空间的搜索,其路径计算往往不能达到很强的实时性;2)Astart算法整体需要求解出确切路径后才能知晓真正最短路径的方向,而任何过程中的计算都存在试错的过程,所以其适用于整体路径规划完毕后的执行,而不适合边执行边规划的任务作业,当然对于实时性要求很强的任务作业,可以采用分段的方式进行Astart算法,不过这样的分段策略和衔接策略就需要更详细的讨论和调优。
[0003]然而传统基于已绘制的线段集合进行路径规划的算法是使用穷举法,从当前线段往相交线段查找,因为并没有引入代价值的概念,所以传统算法会规划出所有可能性的路径,然后再从所有可行线段中找出合适的线段,这无疑是增加算法的计算量和时间,算法效率低下,而且在复杂场景不能实时计算。

技术实现思路

[0004]本专利技术目的是:提供一种基于线段的路径规划方法,使得搜索效率较高,具有很好的收敛性,所需计算量较小,算法时间可以得到控制。
[0005]本专利技术的技术方案是:1.一种基于线段的路径规划方法,其特征在于其包括如下步骤:
[0006]步骤S1:接收预先绘制好的线段集合,对所有线段集合中的坐标进行初始化路线节点并进行关联,返回起点的交点节点;
[0007]步骤S2:接收步骤1返回的起点交点节点,并将该节点加入open集合中;
[0008]步骤S3:循环取出open集合中代价值最低的一个节点,从open集合中删除该节点,加入到close集合中,并比较节点信息中的坐标是否和终点坐标相等,相等则将final_path节点指向当前节点,跳出循环,执行步骤S5,不相等则执行步骤S4;
[0009]步骤S4:根据关联过后的路线节点集合,当前所在路线节点信息,查找所在路线的相邻交点节点集合,进行代价值计算,将交点节点加入open集合中,继续执行步骤S3;
[0010]步骤S5:取出final_path节点中的路径信息,反馈给调用程序,路径规划成功。
[0011]在上述技术方案的基础上,进一步包括如下附属技术方案:
[0012]优选地,在步骤S1中,所述初始化路线节点并进行关联包括如下步骤:
[0013]步骤S1

1:接收线段集合,起点坐标信息,初始化回传节点集合;
[0014]步骤S1

2:对线段集合进行遍历,判断起点坐标在哪条路线上,并初始化路线节点lineNode;
[0015]步骤S1

3:逐一查找当前路线和其他路线的交点坐标,并将交点坐标初始化为交点节点Node,保存两条路线的ID放入节点的父路线索引Parent_index集合中,将节点与路线ID关联,其中判定两条线段是否相交的条件为:起点或终点坐标相等;两线端首尾相连;根据外积结果判定是否交于线上;
[0016]步骤S1

4:满足其中一个条件则认为两线段相交,并获取交点坐标,计算交点坐标与起点距离,计算方法位两点间距离公式,公式为:
[0017][0018]将距离值作为距离起点代价值保存,生成当前路线节点,并对当前路线中所包含的交点节点集合按照距离起点距离从大到小排序;
[0019]步骤S1

5,循环遍历后得到当前线段和其他所有线段的交点集合,将所有交点集合放入到lineNode路线节点中,如此循环得到每条线段与其他线段的交点节点集合及所有路线节点集合,最终返回起点的交点节点信息。优选地,在步骤S3中所述循环取出open中的路线信息的步骤包括:
[0020]步骤S3

1:循环取出open集合中的交点节点信息,取出代价值最低的一个节点,代价值计算方法为:
[0021]Cost=F+angle_change=G+H+angle_change
[0022]其中Cost为总的代价值,F=G+H,G为从起点到当前节点的距离累加值,H为当前节点到终点坐标的直线距离值,angle_change为当前路线到相邻路线的角度变换值;
[0023]步骤S3

2:从open集合中取出代价值最低的节点,open集合中已按Cost代价值从小到大排序,使用直接取出集合中第一个节点即可,取出节点,从open集合中删除,再加入到close集合中。
[0024]在步骤S4中查找相邻的交点节点加入open集合的方法的步骤包括:
[0025]步骤S4

1:根据当前Node节点中的父路线索引Parent_index,在路线节点集合中查找当前节点最近的其他交点节点,将所有节点放入集合中返回;
[0026]步骤S4

2:根据得到的最近的其他交点节点集合,按照步骤S3

1进行代价值计算,并查找当前交点节点是否在close集合和open集合中,如果在close集合中则不进行操作,直接查找下一交点节点;如果当前交点节点在open集合中,则在对比已有交点节点和当前交点节点的代价值,如果当前交点节点代价值比已有交点节点代价值更低,则对已有的交点节点代价值重新计算,并重新指定父节点,否则不进行计算;如果当前交点节点不在open集合中,则将节点放入到open集合中。
[0027]优选地,在步骤S5中取出final_path节点中的路径信息方法包括:
[0028]步骤S5

1:循环判断当前节点是否有父节点,有则将当前坐标保存,并将父节点指向当前节点;当当前节点无父节点则认为已取出所有节点,路径规划完成,返回坐标信息,
程序退出。
[0029]本专利技术的优点:
[0030](1)其搜索具有一定的指向性,会促使整体搜索方向朝向目标点,使得搜索效率较高。
[0031](2)基于AStar算法思想,具有最终确定唯一最优解,具有很好的收敛性,是一个优良的搜索算法。
[0032](3)因为是基于已绘制好的线段集合,不必考虑空间复杂性,所需计算量较小(只需遍历所有本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于线段的路径规划方法,其特征在于其包括如下步骤:步骤S1:接收预先绘制好的线段集合,对所有线段集合中的坐标进行初始化路线节点并进行关联,返回起点的交点节点;步骤S2:接收步骤S1返回起点的交点节点,并将该节点加入open集合中;步骤S3:循环取出open集合中代价值最低的一个节点,从open集合中删除该节点,加入到close集合中,并比较节点信息中的坐标是否和终点坐标相等,相等则将final_path节点指向当前节点,跳出循环,执行步骤S5,不相等则执行步骤S4;步骤S4:根据关联过后的路线节点集合,当前所在路线节点信息,查找所在路线的相邻交点节点集合,进行代价值计算,将交点节点加入open集合中,继续执行步骤S3;步骤S5:取出final_path节点中的路径信息,反馈给调用程序,路径规划成功。2.根据权利要求1所述的路径规划方法,其特征在于,在步骤S1中,所述初始化路线节点并进行关联包括如下步骤:步骤S1

1:接收线段集合,起点坐标信息,初始化回传节点集合;步骤S1

2:对线段集合进行遍历,判断起点坐标在哪条路线上,并初始化路线节点lineNode;步骤S1

3:逐一查找当前路线和其他路线的交点坐标,并将交点坐标初始化为交点节点Node,保存两条路线的ID放入节点的父路线索引Parent_index集合中,将节点与路线ID关联,其中判定两条线段是否相交的条件为:起点或终点坐标相等;两线端首尾相连;根据外积结果判定是否交于线上;步骤S1

4:满足其中一个条件则认为两线段相交,并获取交点坐标,计算交点坐标与起点距离,计算方法位两点间距离公式,公式为:将距离值作为距离起点代价值保存,生成当前路线节点,并对当前路线中所包含的交点节点集合按照距离起点距离从大到小排序;步骤S1

5,循环遍历后得到当前线段和其他所有线段的交点集合,将所有交点集合放入到lineNode路线节点中,如此循环得到每条线段与其他线段的交点节点集合及所有路线节点集合,最终返回起点的交点...

【专利技术属性】
技术研发人员:陈俊文
申请(专利权)人:凌鸟苏州智能系统有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1