自动驾驶决策规划算法——参考线

 文章内容来自b站up主忠厚老实的老王,视频链接如下:

自动驾驶决策规划算法第二章第二节(中) 参考线算法_哔哩哔哩_bilibili

 参考线的作用:

其中第二点,例如绿色的方形障碍物距离上侧和左侧障碍物距离相等,可能会导致投影点不唯一;蓝色点是路径中不平滑的点。

 参考线就是在全局路径中截取一小段路径,然后把它做平滑,平滑后的点的集合做为参考线,将障碍物投影到以参考线为坐标轴的frenet坐标系上。如下:

 参考线平滑算法

上面的算法认为参考线越接近直线,路径越平滑,但是参考线不是越平滑越好,如下,黑色是原来的,紫色是平滑后的,虽然是一条直线了,但是严重偏移原来的点。

 改进上面的缺陷后,如下:

除了平滑性和道路集合的因素,还有一点是长度要均匀紧凑,如下:

上面的问题是一个典型的二次规划问题,二次规划问题的形式如下:

 可以将上述问题写成二次规划的标准形式:

可以将costfunction化成二次规划的标准形式: 

这里的约束就是不希望x和xref不要距离太远,为了防止在设置权重时,偏向于平滑或者紧凑使得距离太远,如下:

 有时会考虑曲率约束,曲率约束是一个非线性约束,曲率约束一般和车的最大侧向加速度有关,曲率约束一般对参考线影响不大,对速度规划影响较大。在规划参考线时可以将平滑性的权重设置大一点。

曲率的近似计算如下:

其中,曲率kappa的参考方式是L/ds^2,其中l是向量的模,是个非线性量。

参考线算法

 以匹配点为原点向前150m,向后30米,需要注意的是只有在采样参考线时才以匹配点为原点采样,但是把车和障碍物投影在参考线上自然坐标系时还是需要计算投影点的。

改进:

 这里有一个注意事项,判断遍历的方向:

汽车如果往前走,遍历方向就是往前,往后走遍历方向就往后,如果判断车辆往前后还是往后走的方法:

其中d是车和上个匹配点组成的向量,τ是上个匹配点的方向向量。用两个点乘的结果来判断,如果两者的点乘结果很小,说明两种几乎垂直,可以将上个规划周期的匹配点当做本周期的匹配点。

 这个方法有点像梯度下降:

 使用本方法的缺陷如上图,如果以上一个周期的匹配点做为起点的话,有可能会导致落入局部极小值,但是上图上本周期实际上的匹配带你绿色文字处那个。但是这种情况出现的概率极小,如下:

 万一发生时的双保险:

上面伪代码的含义就是发现了第一个极小值后,在遍历这个极小值后面的点。遍历过程中如果发现l在增大,increase count就加1,increase count是l连续增加的次数,在遍历过程中如果连续遍历了10次还没找到新的极小值,这个极小值点就是匹配点,如果遍历遍历过程中发现了新的极小值点,就把这个新的极小值点存储,同时increase count就清零,再遍历这个新的极小值点后面的点,过程原理和上面一样,最后将存储到的极小值点进行比较,选择最小的。

在up的github上的代码处理方法如下:

首次运行时以第一个点为起点开始遍历,increase设置为50,次数多一些,从第二点开始就以上一个规划周期的匹配点为地点开始遍历,increase count设置为3。

前面规定了车辆在参考线上的投影往前取150米,往后取30米,但是如果前面或者后面长度不够时,解决方案就是保持整个长度不够,因为总长度不变,优化的个数也不变,这样二次规划矩阵的尺寸也不变,更符合编程特点。

综上找到每个规划周期的匹配点,并且采用后使用二次规划参考线平滑算法就可以将每个规划周期内参考线平滑之后得到一条平滑参考线。

因为规划周期只有100ms,所以每个规划周期所选的参考线区间一定会有大量重复,需要将每个规划周期内和前面规划周期不重复的区间拼接在一起,如下:

 

 如果不一样的话,计算要拼接几个点,因为每个规划周期内参考线的点的总数是一样的,所以后面新出来几个点,后面就会多出来几个点。拼接时就要把这个规划周期内新的点添加上去,把后面的点去掉。而且重复的点在上个周期内已经平滑过了,所以在这个周期只要平滑线的点即可。同时由于fem算法它至少需要三个点,所以拼接一个点时需要借助已经算好的两个点来平滑这个点,上图是两个不一样,就至少需要关注4个点。

 具体做法在约束中体现,优化的cost function形式和上面一样,但是优化的规模要比前面小很多,由于p1和p2是作为辅助的,所以他的坐标是不动的,具体表现在约束上就是

,也就是这两个点是一个等式约束,新的点约束会稍微放松点。

  • 24
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于Dijkstra算法自动驾驶汽车路径规划参考文献相对较多,以下列举了其中几篇: 1. 贺道辉, 周国亮, 于树青, & 纪其伟. (2018). 基于Dijkstra 算法的最佳路径规划及仿真研究. 计算机技术与发展, 28(2), 185-188. 这篇论文介绍了基于Dijkstra算法的最佳路径规划的基本原理,重点讨论了在自动驾驶汽车中应用该算法进行路径规划的可行性,并通过仿真研究验证了算法的有效性。 2. 郭宇明, 唐炎辉, & 雷林. (2019). 基于Dijkstra算法自动驾驶汽车路径规划研究. 智能计算机与应用, (9), 237-239. 这篇论文探讨了基于Dijkstra算法自动驾驶汽车路径规划,在考虑到实时交通情况和车辆行驶特性的基础上,提出了一种改进的Dijkstra算法,以提高路径规划的效率。 3. 王伟峰, 龙腾飞, & 黄翔. (2019). 基于改进Dijkstra算法自动驾驶路径规划. 机械与电子, (24), 66. 这篇论文在基于Dijkstra算法的路径规划的基础上,针对自动驾驶汽车路径规划中存在的问题,提出了一种改进的Dijkstra算法。通过引入权重和约束条件,优化路径规划结果,并提高了规划速度。 4. 张敏, 张长宁, & 彭云. (2017). 基于Dijkstra算法自动驾驶路径规划研究. 机械设计与制造, (10), 27-28. 这篇论文研究了基于Dijkstra算法自动驾驶路径规划,通过对路网图进行建模,并利用Dijkstra算法寻找最短路径,实现了自动驾驶汽车的高效路径规划。 以上是其中几篇关于基于Dijkstra算法自动驾驶汽车路径规划参考文献。这些研究为自动驾驶汽车的路径规划提供了理论支持和实践指导,为实现安全、高效的自动驾驶出行做出了贡献。 ### 回答2: Dijkstra算法是一种用于在加权图中寻找最短路径的经典算法。它的应用非常广泛,其中之一就是自动驾驶汽车路径规划。 在自动驾驶汽车路径规划中,Dijkstra算法可以用于确定汽车从起点到终点的最短路径。该算法基于图的搜索和权重计算,通过不断更新节点之间的最短距离和路径来找到最佳路径。 有许多文献可以作为基于Dijkstra算法自动驾驶汽车路径规划参考。以下是其中一些重要的文献: 1. Dijkstra, E.W. (1959). A note on two problems in connection with graphs. In Numerische Mathematik (pp. 269–271). Springer Berlin Heidelberg. 这是Dijkstra算法最初提出的经典文献之一,介绍了该算法的基本原理和应用。 2. Celebi, M.E., Alhajj, R. (2008). An efficient algorithm for finding the shortest path in transportation networks. Journal of Advanced Transportation, 42(4), 411-430. 这篇文章介绍了一种高效的改进Dijkstra算法,特别适用于自动驾驶汽车路径规划中的大规模交通网络。 3. Han, Z., Tang, T., Bai, X., Chen, Y., Huang, H., & Deng, Z. (2017). A Modified Dijkstra Algorithm for Shortest Path Computation in Large-Scale Networks. IEEE Transactions on Intelligent Transportation Systems, 18(5), 1124-1134. 该文献提出了一种改进的Dijkstra算法,以应对自动驾驶汽车路径规划中的大规模网络。 4. Bhatia, M., & Jain, R. (2018). Improved Dijkstra Algorithm for Vehicle Navigation Systems. International Journal of Scientific Research in Computer Science, Engineering, and Information Technology, 4(1), 115-120. 这篇文章提出了一种改进的Dijkstra算法,以加速自动驾驶汽车的导航系统。 以上是一些基于Dijkstra算法自动驾驶汽车路径规划参考文献,它们对于理解和应用该算法于车辆路径规划具有重要意义。 ### 回答3: 基于Dijkstra算法自动驾驶汽车路径规划在近年来得到了广泛的研究和应用。下面是几篇相关的参考文献。 1. “A Dijkstra-based Approach for Path Planning of Self-driving Cars” - 这篇文献提出了一种基于Dijkstra算法自动驾驶汽车路径规划方法。作者通过改进Dijkstra算法,将交通状态和车辆动态考虑进去,并利用实时的交通数据来更新路径规划,以确保行驶的安全和效率。 2. “Improved Dijkstra Algorithm for Autonomous Vehicle Path Planning” - 这篇文献在Dijkstra算法的基础上进行了改进,以适应自动驾驶汽车路径规划的需要。作者提出了一种优化的数据结构和算法,通过减少计算时间和空间复杂度,提高了路径规划的效率和准确性。 3. “Dijkstra-based Path Planning for Autonomous Vehicles in Dynamic Environments” - 这篇文献针对自动驾驶汽车在动态环境中的路径规划问题,提出了一种基于Dijkstra算法的解决方案。作者通过引入时空扩展图和权重函数,使得路径规划可以考虑交通状况和车辆运动的变化,从而实现安全和高效的驾驶。 4. “Traffic-aware Dijkstra Algorithm for Real-time Path Planning of Autonomous Vehicles” - 这篇文献中,作者提出了一种针对实时的自动驾驶汽车路径规划问题的Dijkstra算法版本。通过分析交通流量和路况信息,设计了一种基于交通感知的加权函数,使路径规划更加适应实际道路情况,并提高了系统的响应速度和准确性。 这些参考文献提供了关于基于Dijkstra算法自动驾驶汽车路径规划的理论基础和实际应用方法。研究者们通过改进算法和引入新的因素,不断提高路径规划的效率和安全性,使得自动驾驶技术在道路上更有吸引力和可行性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值