自动驾驶决策规划算法-路径决策算法:二次规划

发布于:2024-12-07 ⋅ 阅读:(337) ⋅ 点赞:(0)

本文为学习自动驾驶决策规划算法第二章第四节(中) 路径二次规划算法》的学习笔记。

1 二次型

二次型的形式为
1 2 x T H x + f T x \begin{equation} \frac{1}{2}\boldsymbol{x}^TH\boldsymbol{x}+f^T\boldsymbol{x} \end{equation} 21​xTHx+fTx​​
约束
A e q x = b e q \begin{equation} A_{eq}\boldsymbol{x}=b_{eq} \end{equation} Aeq​x=beq​​​
或
l b ≤ A 1 x ≤ u b \begin{equation} lb≤A_1\boldsymbol{x}≤ub \end{equation} lb≤A1​x≤ub​​
可以转化为 A x ≤ b A\boldsymbol{x}≤b Ax≤b的形式:
A e q x = b e q    ⟹    b e q ≤ A e q x ≤ b e q    ⟹    { A e q x ≤ b e q − A e q x ≤ − b e q    ⟹    [ A e q − A e q ] x ≤ [ b e q − b e q ] \begin{equation} A_{eq}\boldsymbol{x}=b_{eq}\implies b_{eq}≤A_{eq}\boldsymbol{x}≤b_{eq}\implies \begin{cases} A_{eq}\boldsymbol{x}≤b_{eq}\\ -A_{eq}\boldsymbol{x}≤-b_{eq} \end{cases}\implies \begin{bmatrix} A_{eq} \\ -A_{eq} \end{bmatrix}\boldsymbol{x}≤ \begin{bmatrix} b_{eq} \\ -b_{eq} \end{bmatrix} \end{equation} Aeq​x=beq​⟹beq​≤Aeq​x≤beq​⟹{Aeq​x≤beq​−Aeq​x≤−beq​​⟹[Aeq​−Aeq​​]x≤[beq​−beq​​]​​
同理有
l b ≤ A 1 x ≤ u b    ⟹    [ A 1 − A 1 ] x ≤ [ u b − l b ] \begin{equation} lb≤A_1\boldsymbol{x}≤ub\implies\begin{bmatrix} A_{1} \\ -A_{1} \end{bmatrix}\boldsymbol{x}≤ \begin{bmatrix} ub \\ -lb \end{bmatrix} \end{equation} lb≤A1​x≤ub⟹[A1​−A1​​]x≤[ub−lb​]​​

2 轻决策与重决策

上一章节动态规划实际上属于决策算法,比如绕障碍时从左边绕还是右边绕,为二次规划开辟了凸空间。
在这里插入图片描述
决策算法分重决策和轻决策,重决策是基于人给定的规则,轻决策基于代价函数。
重决策:
优点:
计算量小;
在感知不强的情况下仍然能做决策;
缺点:
场景太多,无法完全覆盖;
人给出的决策所开辟的凸空间未必满足约束,二次规划搜不到解:
在这里插入图片描述
轻决策根据设计的代价函数,在离散空间上搜索最优路径,开辟凸空间;
优点:
无认为规则,可以处理复杂场景;
缺点:
复杂场景计算量很大;
依赖预测(速度规划时会涉及);
要求周围环境全知(感知、定位要求高);
代价函数设计/最优解未必符合人的驾驶习惯;

3 二次规划算法

在这里插入图片描述

如图,动态规划的粗解决策了绕行的方向,图中 l m i n 1 , l m i n 2 , l m i n 3 … l_{min1},l_{min2},l_{min3}\dots lmin1​,lmin2​,lmin3​…与 l m a x 1 , l m a x 2 , l m a x 3 … l_{max1},l_{max2},l_{max3}\dots lmax1​,lmax2​,lmax3​…构成凸空间,在该凸空间中使用二次规划求解路径:
已知 s i s_i si​和 [ l m i n i , l m a x i ] [l_{mini},l_{maxi}] [lmini​,lmaxi​]求 l = f ( s ) l=f(s) l=f(s)满足:
f ( s ) f(s) f(s)二阶导数连续;
l m i n i ≤ f ( s i ) ≤ l m a x i l_{mini}≤f(s_i)≤l_{maxi} lmini​≤f(si​)≤lmaxi​;
f ( s ) f(s) f(s)尽可能平滑(各阶导数的平方尽可能小);
f ( s ) f(s) f(s)尽可能在凸空间的中间;(Apollo)

3.1 分段加加速度优化法

假设连接 l i l_i li​和 l i + 1 l_{i+1} li+1​的曲线的三阶导数为常数 l i + 1 ′ ′ − l i ′ ′ Δ s \frac{l''_{i+1}-l''_i}{\Delta{s}} Δsli+1′′​−li′′​​,四阶及以上的导数全为0,由泰勒展开公式可得:
l i + 1 = l i + l i ′ Δ s + 1 2 l i ′ ′ Δ s 2 + 1 6 l i + 1 ′ ′ − l i ′ ′ Δ s Δ s 3 \begin{equation} l_{i+1}=l_i+l'_i\Delta{s}+\frac{1}{2}l''_i\Delta{s^2}+\frac{1}{6}\frac{l''_{i+1}-l''_i}{\Delta{s}}\Delta{s^3} \end{equation} li+1​=li​+li′​Δs+21​li′′​Δs2+61​Δsli+1′′​−li′′​​Δs3​​
l i + 1 ′ = l i ′ + l i ′ ′ Δ s + 1 2 l i + 1 ′ ′ − l i ′ ′ Δ s Δ s 2 \begin{equation} l'_{i+1}=l'_i+l''_i\Delta{s}+\frac{1}{2}\frac{l''_{i+1}-l''_i}{\Delta{s}}\Delta{s^2} \end{equation} li+1′​=li′​+li′′​Δs+21​Δsli+1′′​−li′′​​Δs2​​
进一步整理可得:
l i + Δ s l i ′ + 1 3 Δ s 2 l i ′ ′ − l i + 1 + 1 6 Δ s 2 l i + 1 ′ ′ = 0 \begin{equation} l_i+\Delta{s}l'_i+\frac{1}{3}\Delta{s}^2l''_i-l_{i+1}+\frac{1}{6}\Delta{s}^2l''_{i+1}=0 \end{equation} li​+Δsli′​+31​Δs2li′′​−li+1​+61​Δs2li+1′′​=0​​
l i ′ + 1 2 Δ s l i ′ ′ − l i + 1 ′ + 1 2 Δ s l i + 1 ′ ′ = 0 \begin{equation} l'_i+\frac{1}{2}\Delta{s}l''_i-l'_{i+1}+\frac{1}{2}\Delta{s}l''_{i+1}=0 \end{equation} li′​+21​Δsli′′​−li+1′​+21​Δsli+1′′​=0​​
写成矩阵形式就是:
[ 1 Δ s 1 3 Δ s 2 − 1 0 1 6 Δ s 2 0 1 1 2 Δ s 0 − 1 1 2 Δ s ] [ l i l i ′ l i ′ ′ l i + 1 l i + 1 ′ l i + 1 ′ ′ ] = 0 \begin{equation} \begin{bmatrix} 1 & \Delta{s} & \frac{1}{3}\Delta{s}^2 & -1 & 0 & \frac{1}{6}\Delta{s}^2 \\ 0 & 1 & \frac{1}{2}\Delta{s} & 0 & -1 & \frac{1}{2}\Delta{s} \end{bmatrix} \begin{bmatrix} l_i \\ l'_i \\ l''_i \\ l_{i+1} \\ l'_{i+1} \\ l''_{i+1} \end{bmatrix}=0 \end{equation} [10​Δs1​31​Δs221​Δs​−10​0−1​61​Δs221​Δs​] ​li​li′​li′′​li+1​li+1′​li+1′′​​ ​=0​​
记上式等式左侧的系数矩阵为 A e q _ s u b A_{eq\_sub} Aeq_sub​,左侧列向量为待优化的值,对于 i = 1 , 2 , … n i=1,2,\dots{n} i=1,2,…n可得:
[ A e q _ s u b 0 0 0 … 0 0 0 … 0 0 0 0 0 0 A e q _ s u b 0 0 0 … 0 0 0 … … 0 0 0 0 0 0 … A e q _ s u b ] [ l 1 l 1 ′ l 1 ′ ′ ⋮ l n l n ′ l n ′ ′ ] = 0 \begin{equation} \begin{bmatrix} A_{eq\_sub} & \begin{smallmatrix} 0 & 0 & 0 & \dots \\ 0 & 0 & 0 & \dots \end{smallmatrix} \\ \begin{smallmatrix} 0 & 0 & 0 & \\ 0 & 0 & 0 & \end{smallmatrix} & A_{eq\_sub} & \begin{smallmatrix} 0 & 0 & 0 & \dots \\ 0 & 0 & 0 & \dots \end{smallmatrix} \\ & \dots\\ \begin{smallmatrix} 0 & 0 & 0 & \\ 0 & 0 & 0 & \end{smallmatrix} & \dots & A_{eq\_sub} \end{bmatrix} \begin{bmatrix} l_1 \\ l'_1 \\ l''_1 \\ \vdots \\ l_n \\ l'_n \\ l''_n \end{bmatrix}=0 \end{equation} ​Aeq_sub​00​00​00​​00​00​00​​​00​00​00​……​Aeq_sub​……​00​00​00​……​Aeq_sub​​ ​ ​l1​l1′​l1′′​⋮ln​ln′​ln′′​​ ​=0​​
上式等式可记为
A e q x = b e q \begin{equation} A_{eq}x=b_{eq} \end{equation} Aeq​x=beq​​​
其中左侧的系数矩阵维度为 ( 2 n − 2 ) ∗ 3 n (2n-2)*3n (2n−2)∗3n。

3.2 对汽车的四个角点的约束

如图所示
在这里插入图片描述

汽车的角点:
l p 1 = l + d 1 sin ⁡ θ + w 2 cos ⁡ θ \begin{equation} l_{p_1}=l+d_1\sin\theta+\frac{w}{2}\cos\theta \end{equation} lp1​​=l+d1​sinθ+2w​cosθ​​
l p 2 = l + d 1 sin ⁡ θ − w 2 cos ⁡ θ \begin{equation} l_{p_2}=l+d_1\sin\theta-\frac{w}{2}\cos\theta \end{equation} lp2​​=l+d1​sinθ−2w​cosθ​​
l p 3 = l − d 2 sin ⁡ θ + w 2 cos ⁡ θ \begin{equation} l_{p_3}=l-d_2\sin\theta+\frac{w}{2}\cos\theta \end{equation} lp3​​=l−d2​sinθ+2w​cosθ​​
l p 4 = l − d 2 sin ⁡ θ − w 2 cos ⁡ θ \begin{equation} l_{p_4}=l-d_2\sin\theta-\frac{w}{2}\cos\theta \end{equation} lp4​​=l−d2​sinθ−2w​cosθ​​
再对三角函数做近似处理:
sin ⁡ θ ≈ tan ⁡ θ ≈ l ′ \begin{equation} \sin\theta≈\tan\theta≈l' \end{equation} sinθ≈tanθ≈l′​​
cos ⁡ θ ≈ 1 \begin{equation} \cos\theta≈1 \end{equation} cosθ≈1​​

角点的连线上的点不超过 l m i n l_{min} lmin​和 l m a x l_{max} lmax​,一种简单的处理方法是寻找自车当前位置前后一定范围内(比如 [ s i − d 2 , s i + d 1 ] [s_i-d_2, s_i+d_1] [si​−d2​,si​+d1​])的 l m a x i l_{maxi} lmaxi​的最小值,记为 u b i ub_i ubi​,车辆的四个角点都应小于 u b i ub_i ubi​,同理寻找自车当前位置前后一定范围内的 l m i n i l_{mini} lmini​的最大值,记为 l b i lb_i lbi​,车辆的四个角点都应大于 l b i lb_i lbi​:

l b i ≤ l i + d 1 l i ′ + w 2 ≤ u b i \begin{equation} lb_i≤l_i+d_1l'_i+\frac{w}{2}≤ub_i \end{equation} lbi​≤li​+d1​li′​+2w​≤ubi​​​
l b i ≤ l i + d 1 l i ′ − w 2 ≤ u b i \begin{equation} lb_i≤l_i+d_1l'_i-\frac{w}{2}≤ub_i \end{equation} lbi​≤li​+d1​li′​−2w​≤ubi​​​
l b i ≤ l i − d 1 l i ′ + w 2 ≤ u b i \begin{equation} lb_i≤l_i-d_1l'_i+\frac{w}{2}≤ub_i \end{equation} lbi​≤li​−d1​li′​+2w​≤ubi​​​
l b i ≤ l i − d 1 l i ′ − w 2 ≤ u b i \begin{equation} lb_i≤l_i-d_1l'_i-\frac{w}{2}≤ub_i \end{equation} lbi​≤li​−d1​li′​−2w​≤ubi​​​
根据式5可以将式19~22写成矩阵形式:
[ 1 d 1 0 1 d 1 0 1 − d 2 0 1 − d 2 0 − 1 − d 1 0 − 1 − d 1 0 − 1 d 2 0 − 1 d 2 0 ] [ l i l i ′ l i ′ ′ ] ≤ [ u b i − w 2 u b i + w 2 u b i − w 2 u b i + w 2 − l b i + w 2 − l b i − w 2 − l b i + w 2 − l b i − w 2 ] \begin{equation} \begin{bmatrix} 1 & d_1 & 0 \\ 1 & d_1 & 0 \\ 1 & -d_2 & 0 \\ 1 & -d_2 & 0 \\ -1 & -d_1 & 0 \\ -1 & -d_1 & 0 \\ -1 & d_2 & 0 \\ -1 & d_2 & 0 \\ \end{bmatrix} \begin{bmatrix} l_i \\ l'_i \\ l''_i \end{bmatrix} ≤ \begin{bmatrix} ub_i-\frac{w}{2} \\ ub_i+\frac{w}{2} \\ ub_i-\frac{w}{2} \\ ub_i+\frac{w}{2} \\ -lb_i+\frac{w}{2} \\ -lb_i-\frac{w}{2} \\ -lb_i+\frac{w}{2} \\ -lb_i-\frac{w}{2} \\ \end{bmatrix} \end{equation} ​1111−1−1−1−1​d1​d1​−d2​−d2​−d1​−d1​d2​d2​​00000000​ ​ ​li​li′​li′′​​ ​≤ ​ubi​−2w​ubi​+2w​ubi​−2w​ubi​+2w​−lbi​+2w​−lbi​−2w​−lbi​+2w​−lbi​−2w​​ ​​​
同理,记上式等式左侧的系数矩阵为 A s u b A_{sub} Asub​,左侧列向量为 b s u b b_{sub} bsub​,对于对于 i = 1 , 2 , … n i=1,2,\dots{n} i=1,2,…n可得
[ A s u b A s u b … A s u b ] [ l 1 l 1 ′ l 1 ′ ′ ⋮ l n l n ′ l n ′ ′ ] ≤ [ b s u b 1 b s u b 2 ⋮ b s u b n ] \begin{equation} \begin{bmatrix} A_{sub} \\ & A_{sub} \\ & & \dots \\ & & & A_{sub} \end{bmatrix} \begin{bmatrix} l_1 \\ l'_1 \\ l''_1 \\ \vdots \\ l_n \\ l'_n \\ l''_n \end{bmatrix} ≤ \begin{bmatrix} b_{sub_1} \\ b_{sub_2} \\ \vdots \\ b_{sub_n} \end{bmatrix} \end{equation} ​Asub​​Asub​​…​Asub​​ ​ ​l1​l1′​l1′′​⋮ln​ln′​ln′′​​ ​≤ ​bsub1​​bsub2​​⋮bsubn​​​ ​​​
记为
A x ≤ b \begin{equation} Ax≤b \end{equation} Ax≤b​​

4 代价函数

c o s t _ f u n c t i o n = w r e f ∑ i l i 2 + w d l ∑ i l i ′ 2 + w d d l ∑ i l i ′ ′ 2 + w d d d l ∑ i ( l i + 1 ′ ′ − l i ′ ′ ) 2 + w m i d ∑ i ( l i − l m i n i + l m a x i 2 ) 2 cost\_function=w_{ref}\sum_i{l_i}^2+w_{dl}\sum_i{l'_i}^2+w_{ddl}\sum_i{l''_i}^2+w_{dddl}\sum_i{(l''_{i+1}-l''_i)}^2+w_{mid}\sum_i{(l_i-\frac{l_{mini+l_{maxi}}}{2})}^2 cost_function=wref​i∑​li​2+wdl​i∑​li′​2+wddl​i∑​li′′​2+wdddl​i∑​(li+1′′​−li′′​)2+wmid​i∑​(li​−2lmini+lmaxi​​​)2
对应的约束是式12和式25,求解出 l 1 , l 1 ′ , l 1 ′ ′ … , l n . l n ′ , l n ′ ′ l_1,l'_1,l''_1\dots,l_n.l'_n,l''_n l1​,l1′​,l1′′​…,ln​.ln′​,ln′′​与 s 1 , s 2 , … , s n s_1,s_2,\dots,s_n s1​,s2​,…,sn​结合即得到二次规划下的最优路径,再转化到笛卡尔坐标系下完成路径规划。


微信公众号

今日签到

点亮在社区的每一天
去签到