Apollo自动驾驶教程学习笔记-Apollo规划技术详解6-3

视频链接:http://bit.baidu.com/Course/detail/id/297.html
讲师:樊昊阳 百度Apollo研发工程师

说明:因个人工作方向变更的原因,该系列学习笔记不再更新,如有影响还请抱歉

与环境相关的路径规划

前边介绍了首先把车当做质点来规划,但是质点不能直接用在无人车上,所以把质点具象成刚体;然而刚体也不满足,因为车辆具有运动学特征,比如不能横向shift,不能原地turn之类,所以还要考虑运动学约束;之后,规划出的轨迹还需要考虑平滑性,这种平滑性不但是空间平滑,还有时间平滑;之后,我们要融入环境特征,比如交通规则,结构化道路,并且还要考虑动态障碍物。所以还是很复杂的。
这一节课讲了几个比较关键的问题。老师讲的时候感觉结构不是很清晰,所以笔记很乱,而且很多地方只是听了题目,内容划分不清晰,下边就简单整理了一下笔记。

车辆状态和模型

车辆模型可以按照bicycle module来处理,也就是前轮中心点看做bicycle的前轮,后轮中心点看做bicycle的后轮,然后满足一些bicycle module的特征,比如两个轮子的旋转圆心是一个点,比如前轮比后轮转向时走更远的路径(所以车辆需要差速器)。
除此之外,还需要kappa,用来描述车辆转向时的状态,另外还需要一个v,用来描述车辆速度,所以最后车辆状态的表示为=(x, y, theta, k, v)。

曲线坐标系

车辆在行进过程中的一种描述坐标系是曲线坐标系,即SL坐标系。因为我们车辆在行驶时,考虑的是相对当前道路的调整,而道路是一个曲线,SL坐标系中,S轴是跟随道路的一个曲线轴,而L轴是垂直与S轴的。
一个很重要的问题是世界坐标系即xy坐标系与SL坐标系之间如何变换,通过分析,我们能得出从SL坐标系到xy坐标系的转换是唯一的,但从xy坐标系到SL坐标系的转换是不唯一的,只有在一些特殊的约束条件下,才是唯一的,这是也很复杂的问题。

车与障碍物的关系

车辆本身看做刚体,与其他的刚体(障碍物)之间的需要满足关系,即不能相碰撞,也就是从数学上就是求解两个刚体是否相交,通常将障碍物当做是bounding box,判断bounding box之间是否相交,但这本身也不够,还需要用到其他数学方法,比如超平面分割定理,复杂度是O(n^2),另外还有一些其他办法,可能做到O(nlogn),但这个问题依然是个很复杂的问题,因为相撞情况是时刻需要求解的,这也很依赖于硬件条件。

Uturn问题

上边也提到了,对于U型弯(掉头)操作下,路径规划比较困难,一个原因是在这样的场景下一个障碍物的点对应着SL坐标系中多个点。
对这种场景下的规划问题,依然需要保证路线光滑,要保证曲率连续。之前说的直线加半圆加直线的方法不能保证连接点处的曲率连续,所以不是一条光滑曲线。
如果先求出轨迹再进行优化,其实也不行,因为要考虑动力学模型的约束条件。

插值法

会遇到龙格现象,插值的线抖动太大无法控制幅度。

Bezier Spline

2D Constrained Smoothing Spline

通过在轨迹上的采样点约束小方格,要求平滑后的曲线都要经过小方格。
要处理的优化函数是曲线的三阶导的平方的积分。

Piecewise Polynomial models

Spline 2D

现在的问题就是需要求解平滑曲线,还要满足约束条件,做优化问题。
piecewise polynomial的问题是它是一维的,对于轨迹优化不太够用,所以用Spline 2D。
曲线是由几节曲线组成的,在每一节曲线上求平滑结果,x轴和y轴的坐标都是polynomial的函数。
有一个性质是坐标轴旋转不变性,不管坐标轴是否旋转,得出的结果不变。
另一个问题是,需要保证曲线和曲线相接的点处也要保证平滑,这就需要增加其他约束条件。

螺旋曲线

是用极坐标来定义的曲线,在求解上比Spline方法要好处理。

你可能感兴趣的:(自动驾驶,学习笔记)