欢迎大家关注我的B站:
偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com)
目录
1 车辆运动约束的避障轨迹规划算法
状态格方法具有图解法和采样法的优势,能够应对动态环境的变化,同时计算负载远小于图解法。但是 state lattice 方法是对车辆前进方向的大范围、大间隔的均匀采样,如下图1。其实一大部分会碰到障碍物的轨迹完全可以直接舍弃,这样就不会造成很多冗余的无效解。于是论文提出把采样点集中在障碍物的侧方区域,因为为了避障,轨迹一定在障碍物两侧,本文主要讨论一侧的轨迹,这就产生了一个衍生的状态区域,这个区域与原来采样的区域相比,范围小了很多,如下图2。因此,采样更集中,状态之间的距离可以更小,使得最终搜索结果更接近最优解。
相比与圆弧和多项式曲线拟合的方式,贝塞尔曲线可以通过调整中间控制点更快地调整局部轨迹。依靠车初始状态点与终端状态点进行轨迹控制点的初步选择,后根据搜索空间的环境变化与车辆运动特性进行轨迹调整与筛选。
整体算法架构如下
2 避障轨迹规划器设计
这一部分主要是规划器的具体细节
2.1 车辆运动学模型
规划算法考虑车辆运动学模型的意义是在实际控制中容易做到路径跟踪,我们需要对车辆的侧向加速度和横摆角速度进行估算,以便对轨迹的评价。车辆的动力学模型其实是非常复杂的,但在轨迹规划部分是不必要的,因此论文引入了简化的车辆单轨模型。
车辆是阿克曼转向系统,则车辆前轮偏角与车辆轨迹曲率的关系如下
由车轮转向引起的侧向加速度和横摆角速度的公式如下
具体推导可以参考自动驾驶之车辆运动学与动力学模型_HuangTLhit的博客-CSDN博客_车辆动力学模型和运动学模型
里面的公式推导非常详细
2.2 离散终端状态点集
终端状态点集中在障碍物与道路边界之间,这构成了障碍物侧向参考区域。这个区域由障碍物的状态(描述位置和航向,通过上一模块也就是感知模块得到)和外形(长宽等)以及行驶场景(本文是双车道结构化道路)决定。又需要有一个安全车距去做到安全性的保障,那么参考区域转换成衍生状态区域。于是这个衍生状态区域显然在frenet坐标系下更容易求解。因此将 1.衍生状态区域边界与障碍物的距离 2.衍生状态区域边界与道路边界的距离 3.障碍物中心到车辆中心的距离,做了frenet的转换。不熟悉frenet坐标系的读者请参考【自动驾驶轨迹规划之Frenet坐标系】_无意2121的博客-CSDN博客_frenet轨迹规划
同时规定了区域的纵向活动范围为Ldom,则衍生状态区域的范围如下
当得到衍生状态区域后,就可以离散采样终端点。
此时起始点确定可以拟合出行车轨迹,在很多采样点的情况下,也有很多行车轨迹,接下来就是设计评价轨迹的函数。好的轨迹应该满足较小的侧向加速度,较小的侧向急动度,较小的横摆角速度
这些成本权重可以进行人性化的调节,在选出一个最优的终端状态点后,再进行贝塞尔曲线轨迹优化。这一部分会在下一篇文章中讲解。