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

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

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} 21xTHx+fTx

约束
A e q x = b e q \begin{equation} A_{eq}\boldsymbol{x}=b_{eq} \end{equation} Aeqx=beq


l b ≤ A 1 x ≤ u b \begin{equation} lb≤A_1\boldsymbol{x}≤ub \end{equation} lb≤A1x≤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} Aeqx=beq⟹beq≤Aeqx≤beq⟹{Aeqx≤beq−Aeqx≤−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≤A1x≤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+21li′′Δ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Δs131Δs221Δs−100−161Δs221Δs\] lili′li′′li+1li+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_sub000000000000000000......Aeq_sub......000000......Aeq_sub l1l1′l1′′⋮lnln′ln′′ =0 上式等式可记为 A e q x = b e q \\begin{equation} A_{eq}x=b_{eq} \\end{equation} Aeqx=beq 其中左侧的系数矩阵维度为 ( 2 n − 2 ) ∗ 3 n (2n-2)\*3n (2n−2)∗3n。 ### 3.2 对汽车的四个角点的约束 如图所示 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a2e405569b6a40b6ba19e63692f9db0a.png) 汽车的角点: 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+d1sinθ+2wcosθ 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+d1sinθ−2wcosθ 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−d2sinθ+2wcosθ 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−d2sinθ−2wcosθ 再对三角函数做近似处理: 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+d1li′+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+d1li′−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−d1li′+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−d1li′−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−1d1d1−d2−d2−d1−d1d2d200000000 lili′li′′ ≤ ubi−2wubi+2wubi−2wubi+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} AsubAsub...Asub l1l1′l1′′⋮lnln′ln′′ ≤ bsub1bsub2⋮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=wrefi∑li2+wdli∑li′2+wddli∑li′′2+wdddli∑(li+1′′−li′′)2+wmidi∑(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结合即得到二次规划下的最优路径,再转化到笛卡尔坐标系下完成路径规划。

相关推荐
阿坡RPA2 小时前
手搓MCP客户端&服务端:从零到实战极速了解MCP是什么?
人工智能·aigc
用户27784491049932 小时前
借助DeepSeek智能生成测试用例:从提示词到Excel表格的全流程实践
人工智能·python
机器之心2 小时前
刚刚,DeepSeek公布推理时Scaling新论文,R2要来了?
人工智能
算AI4 小时前
人工智能+牙科:临床应用中的几个问题
人工智能·算法
凯子坚持 c5 小时前
基于飞桨框架3.0本地DeepSeek-R1蒸馏版部署实战
人工智能·paddlepaddle
你觉得2055 小时前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义下载方法
大数据·人工智能·python·gpt·学习·机器学习·aigc
8K超高清5 小时前
中国8K摄像机:科技赋能文化传承新图景
大数据·人工智能·科技·物联网·智能硬件
hyshhhh6 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
薛定谔的猫-菜鸟程序员6 小时前
零基础玩转深度神经网络大模型:从Hello World到AI炼金术-详解版(含:Conda 全面使用指南)
人工智能·神经网络·dnn
币之互联万物6 小时前
2025 AI智能数字农业研讨会在苏州启幕,科技助农与数据兴业成焦点
人工智能·科技