自动驾驶轨迹规划中的动态窗口算法DWA-Coursera Self-Driving Car课程学习笔记

参考Coursera自动驾驶课程-DWA算法

       北京理工大学无人车课程Mooc

本文为该课程的学习笔记

1.学习目标

了解如何在自行车模型上增加线性/角加速度约束

了解这些约束如何影响我们的规划器

在规划过程中用动态窗口法处理这些约束

自动驾驶轨迹规划中的动态窗口算法DWA-Coursera Self-Driving Car课程学习笔记_第1张图片

2.运动学自行车模型

输入是纵向速度和转向角

运动学方程没有考虑更高阶的加速度,这是导致车内乘客舒适性的主要原因。

自动驾驶轨迹规划中的动态窗口算法DWA-Coursera Self-Driving Car课程学习笔记_第2张图片

3.自行车模型+加速度约束 

 我们可以通过为自行车模型允许的线性和角加速度范围添加一个约束来实现这一点。但是会导致车辆的机动性下降,速度不能很快的提升或降低,同时转向角也不能很快的改变。减少了可操作空间,因此需要权衡自动驾驶轨迹规划中的动态窗口算法DWA-Coursera Self-Driving Car课程学习笔记_第3张图片

4.按转向角进行约束

角加速度约束会导致我们在当前的角速度下无法选择特定操作。

每个规划周期间的转向角速度的改变是有上下限的

每个规划周期之间的线性的速度改变也不超过特定值

直接限制线性加速度/角加速度离散化

自动驾驶轨迹规划中的动态窗口算法DWA-Coursera Self-Driving Car课程学习笔记_第4张图片

5.约束对规划器的影响示例

例子,当前车辆速度为1m/s,转向角为Pi/8,规划周期为1s,转向角幅值不超过Pi/4,轴距1m,最大允许的角加速度为0.6 rad/s^2

自动驾驶轨迹规划中的动态窗口算法DWA-Coursera Self-Driving Car课程学习笔记_第5张图片

下一个规划周期,若转向角变为-Pi/8,-Pi/4计算下来都会超出角加速度的限制,所以该约束会导致规划器可执行的操作变少。如下图,可行的操作标成绿色,不可行的标成红色。

自动驾驶轨迹规划中的动态窗口算法DWA-Coursera Self-Driving Car课程学习笔记_第6张图片

再加上Mooc北理工无人驾驶车课程中的部分内容补充说明

6.DWA算法步骤

约束就是限制可执行操作的数量,再在剩下的操作空间等距采样,给出一个目标函数,在每个规划周期选取最优操作。

自动驾驶轨迹规划中的动态窗口算法DWA-Coursera Self-Driving Car课程学习笔记_第7张图片

7.运动学模型的离散化

离散后可以看出,对于每一个规划周期,只要确定接下来规划周期要采取的速度及角速度就可以预测车辆的轨迹。因此每个周期都要对速度角速度空间进行采样。

自动驾驶轨迹规划中的动态窗口算法DWA-Coursera Self-Driving Car课程学习笔记_第8张图片

8.约束

一个速度角速度约束,然后对v,w可能的空间进行采样

一个就上面Coursera示例的加速度,角加速度的限制

对于采样的v,w计算出δ=δ+w*t,然后根据第4小节转化为δ正切值的变化量的限制,若超出限制则舍弃该组v,w

自动驾驶轨迹规划中的动态窗口算法DWA-Coursera Self-Driving Car课程学习笔记_第9张图片

 9.轨迹的筛选自动驾驶轨迹规划中的动态窗口算法DWA-Coursera Self-Driving Car课程学习笔记_第10张图片

10.评价函数的制定

分为三大块

惩罚对全局参考路径的偏离

惩罚到局部目标点(全局规划路径的当前参考点)的距离

惩罚到障碍物的最近距离,这个是需要越大越好,可以将权重系数取为负

每个规划周期根据目标函数选出最优操作

只要感知信息正确,规划周期足够小,动静态障碍物都能很好的避开

自动驾驶轨迹规划中的动态窗口算法DWA-Coursera Self-Driving Car课程学习笔记_第11张图片

你可能感兴趣的:(自动驾驶,自动驾驶)