文献阅读之如何规划一条让车平稳顺滑过弯道的轨迹

大家好,我已经把CSDN上的博客迁移到了知乎上,欢迎大家在知乎关注我的专栏慢慢悠悠小马车https://zhuanlan.zhihu.com/c_1132958996826546176。以后,我会把日常的思考放在CSDN上,梳理过的精华文章放在知乎上,希望大家可以多多交流,互相学习。


在体验Tesla自动驾驶功能时,我发现车在过又急又长的匝道时会有侧移发生,感受到车向离心方向偏移,偏移一段时间后,车会自动朝着向心方向“拉回”纠正。虽然这种迹象不甚明显,却揭示了顺滑过弯这个难题的存在。联想到我使用了三次多项式来近似模拟道路中心线,当道路的曲率较大时,三次多项式的近似效果就会不如人意,导致规划出的轨迹不符合道路和环境的实际状况,车辆行驶就会抖动甚至发生碰撞。

解决这个问题有2种思路,1是对弯道的数学模型近似表示加以处理,在安全、准确的前提下,减小曲率;2是换用更贴近弯道曲率实际情况的数学模型。这次分享的文献《Real-Time Trajectory Planning for Autonomous Urban Driving_ Framework, Algorithms,and Verifications》采用了思路1的方法。

  1. 本文最新颖的地方在于对参考线的预处理,分为以下3个步骤:a- 从数字地图(高精地图)中获取道路中心线,即初步的参考线;b- 使用共轭梯度非线性优化方法使其平滑;c- 使用三次B样条曲线插值。带来的提升是:比较急的弯道上,参考线的曲率会变小,并且更平滑,有效降低了车辆过弯时的侧移风险。当然,这无法从根本上解决车辆难以过急转弯的问题。

  2. 其余的步骤和Apollo Lattice Planner类似,细节处不同。相同处:a- 在frenet坐标系下,将轨迹分解为横纵向分别求解,且横向是纵向的函数L(s);b- 建立一系列的cost函数,来评价众多的候选轨迹;c- 碰撞检测。评价排序后横纵向合并,其实这个步骤很简单,略过也罢。                                                   

  3. 有实车、实际道路测试。但测试道路较窄、单车道,车速很慢,22Km/h,执行周期也慢,100ms/cycle。

  4. 本文的behavioral planning 就是决策,输出是跟车、左转、变道、停车等指令。

  5. 规划过程的计算分2部分:参考线预处理大约50ms,轨迹规划20ms。限定候选轨迹最大数量为500,比我在lattice中的采样数量少,算是个适中偏小的量。不过,限定了候选轨迹的最大数量,也就限定了采样密度,是否可行?如果上层决策和环境信息较准确,有效的缩小采样范围,也是可以的。

  6. 平滑参考线时没有考虑避障。参考线是静态的,只与静态地图有关,无需考虑避障。优化的目标函数分为3项:a- 相邻两点间的偏移;b- 相邻两点间的角度朝向变化;c- 点是否落在道路内。a和b使得参考线平滑,c使得参考线不会超出道路范围。(P4)                                                                                                                  

  7. 平滑优化前后的路径点数相同,优化后的点作为B-spline插值的控制点。

  8. 速度曲线的生成分3步:a- 求各种speed limit并取其中的最小值,受当前决策和交通规则、最大横向加速度、最大加减速度、安全距离等因素的限制,其中,考虑横向加速度是一个有趣的点。b- 根据加速-平稳-减速的模型采样;c- 把b产生的速度曲线分为3段,依次用3次多项式拟合平滑。这个过程有点类似Apollo的piecewise optimization。

  9.  碰撞检测时采用多个圆形代替矩形表示车辆自身,以降低计算复杂度。不知依据何在,如何应用?

  10. 评价轨迹使用了4项cost functions,分别是:a- s更长的轨迹;b- 曲率的积分(限制平滑);c- 与参考线的偏移;d- 连续规划cycle间的轨迹一致性,用(上次规划轨迹的终点横向偏移-本次终点横向偏移)表征。(P8)

     

发布了40 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/linxigjs/article/details/104518325
今日推荐