0、摘要
从优化的视角来看,车辆的运动规划可以被视作一个非凸约束[KP1]的非线性优化。对初值非常敏感。
将自动驾驶的规划问题变成两个方面:一个是能够避开静态障碍物的一个轨迹+一个能够避开动态障碍物的速度规划。
将这个问题转化为一个凸性的问题,来确保全局的最优。
1、介绍
搜索算法需要将道路离散,所以即便它的最优性有保证,但是其精度不高。优化法容易进入局部最优。
主要实现了基于凸优化的自动驾驶运动规划,主要解决障碍、非线性系统与系统限制。
主要工作:
1) 使用微分平坦理论将线性将非线性系统线性化。( automatically satisfied with a spline representation )
2) 基于垂直单元分解构建走廊(这儿应该是道路的意思),将障碍物转化为凸约束。
3)通过迭代的凸优化处理曲率的约束。(曲率约束基本代表车辆打角)
主要贡献:
1)将运动控制转为了二次规划的问题->可靠的全局最优路径。
2)约束样条转化为最优控制的问题,并减小计算时间到与优化范围的大小同级。
3)迭代时的初值要求低。
4)微分平坦理论->在对目标进行趋近的时候,能够获得较大的步长。
2、相关工作
A、轨迹生成
使用Frenet坐标系时,对于曲率其实不好定义。
使用曲率方程时,路径得积分算,不能直接生成。
我们通过使用全局坐标系中定义样条 使路径和曲率同时达到目标。
B、最优控制和轨迹与轨迹优化。
LQR(linear quadratic regulator)
直接解决非线性系统最优控制的问题:Shooting & Collocation。他们将轨迹优化问题转化为一个有限制的非线性规划问题。并且利用数值优化的方式(连续二次规划)SQP。
与LQR不同的是,这个工作能够融入强约束。
3、运动学车辆建模
A、建模如下
x-后轮位置;y-后轮位置;θ-前轮转角;δ-前轮打角;
B、微分平坦理论
1)微分平坦的概念
这样的情况下我们会认为一个系统事微分平坦的:存在一组平坦的,仅与状态空间、输入和输入衍生物相关的平坦输出。这样,我们的状态和控制输入可以表示成一种有关于这一平坦输出的代数方程,同时,时间也是按照确定的规律生成的。[22][23][问题一]
简单来说,如果输出数量与输入的控制因素数量是相同的,而且我们可以仅通过代数方法接出来,无需积分。如下图,用仅使用y就可以解出x和输入u。
2)对于我们的模型我们的微分平坦性的证明
x和y是输出,可以求出速度为SQRT(x'^2+y'^2),求出汽车打角速度为
C、走廊法如何处理障碍物
能够与车辆产生交互的交通参与者其实没那么多,所以使用垂直元组分解的方式,将所能够做的空间分解为一些元。这些元是一些梯形或者三角形。走廊由这样一系列相连的凸元组成,这样一个算法可以让计算时间缩短到 O(nlog n)n为场景下车的数量。
D、有约束的样条优化
将x和y转化为对于参考路径弧长的函数。s并不是最终路径的弧长。
将分段的约束描述为:
优化的目标是x,y的二三阶导数的方均根代数和最小。[问题二]
其中,goal不一定是一个确定的点,也可以是一个region。d-f则是用于确保生成的轨迹在运动学上是连续的。g是走廊边界的仿射非平衡约束。h用于约束车的总想运动。结果是,这样的约束导致的终会是一个凸集[问题三]。这个优化的 复杂度是O(N^3*(n_p+n_c)^3)。
E、朝向和曲率约束
使用微积分的朝向和曲率公式求解的。一个假设是,我们的最终的优化目标的弧长度接近相同。我们可以得到,,12式子就可以被替换成
F、从带约束的样条优化到控制优化
通过如E中的变换,将这个约束系统变化为现在22这种形式,优化目标:22a-10a 始末状态:22bc-10bc。状态空间的转化的限制22d->10def。走廊的限制22ef->10fh。新增了初始的线的方向与车辆当前角度一致。
使用将这个模型进行如下转化:
其中,t是有关于不等式的一个松弛变量,pi和λ表示一个拉格朗日乘数,这些数满足TAe = 0那个式子。其中
从而将这个量送入到规划器中,实现优化。
994、阅读总结
首先需要证明,在已知轨迹的情况下,能够反解出系统的输入量。(微分平坦理论)然后开始进行轨迹生成。
首先是使用文献中的方法生成一个可以通行的空间。而且这个空间一定是一个凸的空间,即存在唯一的最优路径。
轨迹生成的基变量是s(参考轨迹的路程)。通过数学方法证明了,可以求解相应的曲率和曲率变化率。
在此基础上,对车辆进行建模,对路径的约束进行定义。
定义一个初始的参考路线,这个规划器由于是凸的,所以对规划器要求不高的。放入规划器中进行优化。
通过一定的变化,将优化的内容简化,主要体现在曲率算法上的简化,以及将点之间的关系变为状态空间,而非一个s了。然后进一步优化。大幅减少了计算时间。
优点是能够较快地生成一条可以的轨迹,对初值要求很低。
缺点是考虑的量明显很少,对走廊的要求很小。
会出现一个非常sharp 的 turn 的时候。其处理是个问题。
995、知识点积累
[KP1] 非凸约束是指?
[KP2] 状态栅格&状态晶格。
[KP3] 微分平坦理论。
[KP3] 障碍物的约束为何非凸?
[KP4] 内点法解决非线性
[KP5] 如何定义一个平坦
997、阅读时存在的问题
问题一:如何定义一个平坦的输出。
其实挺无聊的,就是已知输出,而且无需积分就可以解出车辆的运行情况。
问题二:忽视了s自己本身的距离是为何?
问题三:为啥就是凸集了?
998、 Linked Papers
背景介绍
[1][2] 基于搜索的规划方法 基于状态空间的连续性。
[3][4][5] 基于优化的方法 基于状态空间的连续性。
[6] 能够进行逆向生成的轨迹需要能够使用多项式进行求解或者[7][8],依据时间生成了一种横向纵向的四次时间多项式
[7][8] 或者能够转化为一个非线性系统的优化问题。
[8] 使用曲率多项式确保曲率平衡。
[9] 使用优化方法-Apollo 的核心论文(ToRead)
[10] 黎卡提方程
[11][12] 迭代的线性二次调节器(iLQR)找到最优路径
[13] LQR-smoothing、iLQR
[14] 基于shooting的直接轨迹优化方式
[15] 基于手机的轨迹优化方法
[16] SQP 连续二次规划方法
[17][18][19] 内点法 [19] Schur-based FORCES method
[20] collocation法实现将最优控制变为非线性规划问题
[21] 车辆的建模方法
[22][23] 微分平坦理论。
[24] 将运动规划转化为晶格网络
[25] 垂直元组分解
[26] A smoothing spline
[27] OSQP [28] CVXPY
[29][30]内点法求解的polynomial time
[17][31] primal-dual interior point method
[32] Schur-based 方法 fast-mpc
[33] 基于黎卡提方程的 hpipm算法
[34] ACADO 方法-with default settings
[35] ms-ipopt 算法 一个基于内点的多shooting approach,执行CasADi
[36] CasADi
999、词语积累
decompose v. 分解 be decomposed into 被分解成。
noval adj.新颖的
lattice n. 晶格
with respect to 关于
corridor n.走廊
Simultaneously adv.同时地
iterative adj. 迭代的
sequential adj.连续的
interior adj. 内的
nonholonomic adj.非完整性的
impose v. 实行
affine v. 仿射
sparsity n.稀疏性
slack adj.松弛的
endl;