决策规划算法四:Piecewise Jerk Path Optimizer

一,问题分析

路径规划的本质目的:规划出一条安全(无碰撞),舒适(平滑),符合车辆运动学的轨迹。

如下图所示,决策算法开辟凸空间后,路径规划算法用数值优化的方法搜索出一条最优路径,即将问题转化为二次规划的问题,采用二次规划的求解器进行求解。

决策规划算法四:Piecewise Jerk Path Optimizer_第1张图片

二次规划问题的求解顺序:

1,确定优化变量

2,确定目标函数

3,确定约束条件

4,将目标函数和约束条件变形为二次规划的标准形式

min J=\frac{1}{2}x^{T}Px+f^{T}x

st:

lb <= Ax<= ub

Bx = c

5,用二次规划求解器进行求解,获得优化变量的序列,使得目标函数取得最小值。

注:路径的最终表达式为:l=f(s),即确定ls之间的关系。

二,路径平滑算法的设计思路

该路径平滑算法用3次多项式连接每个离散点,即每段曲线的Jerk为常数,该算法因此而得名:Piecewise Jerk Path Optimizer.

常数Jerk的表达式为:

{​{l_{i}}''}' =\frac{​{l_{i+1}}'' -{l_{i}}'' }{\Delta s}

三,问题求解:以4个点P1,P2,P3,P4为例

1,确定优化变量

优化变量为:x=(l_{1},l_{2},l_{3},l_{4},l{}'_{1},l{}'_{2},l{}'_{3},l{}'_{4},l{}{}''_{1},l{}'{}'_{2},l{}{}''_{3},l{}{}''_{4})^{T}

2,确定目标函数

路径的评价指标(软约束):平滑性,靠近凸空间的中心线,平滑后的曲线终点靠近离散点的终点

(1),平滑性:\omega _{l}\sum_{i=0}^{n-1}l_{i}^{2}+\omega _{l{}'}\sum_{i=0}^{n-1}l_{i}{}'^{2}+\omega _{l{}''}\sum_{i=0}^{n-1}l_{i}{}''^{2}+\omega _{l{}''{}'}\sum_{i=0}^{n-1}l_{i}{}''{}'^{2}

\omega _{l}\sum_{i=0}^{n-1}l_{i}^{2}+\omega _{l{}'}\sum_{i=0}^{n-1}l_{i}{}'^{2}+\omega _{l{}''}\sum_{i=0}^{n-1}l_{i}{}''^{2}+\omega _{l{}''{}'}\sum_{i=0}^{n-1}(\frac{l_{i+1}{}'' - l_{i}{}''}{\Delta s})^{2}

则P1矩阵为:

决策规划算法四:Piecewise Jerk Path Optimizer_第2张图片

 q1=0

(2),靠近凸空间中心线:\omega _{ref}\sum_{i=0}^{n-1}(l_{i}-\frac{l_{imax}+l_{imin}}{2})^{2}

P2矩阵为:

决策规划算法四:Piecewise Jerk Path Optimizer_第3张图片

q2矩阵为:

决策规划算法四:Piecewise Jerk Path Optimizer_第4张图片

(3),靠近终点:w_{end_{l}}(l_{n-1} - l_{endref})^{2}+w_{end_{dl}}(l{}'_{n-1} - l{}'_{endref})^{2}+w_{end_{ddl}}(l{}{}''_{n-1} - l{}{}''_{endref})^{2}

P3矩阵为:

决策规划算法四:Piecewise Jerk Path Optimizer_第5张图片

 q3矩阵为:

决策规划算法四:Piecewise Jerk Path Optimizer_第6张图片

3,确定约束条件:硬约束

(1)对l,l{}',l{}'',l{​{}'}''的约束

l的约束:

决策规划算法四:Piecewise Jerk Path Optimizer_第7张图片

 对l{}'(tan(heading))的约束,也就是对航向角的约束,目前取固定值2.0: 

决策规划算法四:Piecewise Jerk Path Optimizer_第8张图片

的约束,也就是对曲率的约束,范围是道路曲率自车允许的最大曲率:

的约束,

(2)由于每段的Jerk为常数,故需要满足数学关系的约束

带入上面2个等式得:

转化为矩阵为:

 

4,综上所述,以上各式已经将目标函数和约束条件变形为二次规划的标准形式,采用二次规划求解器即可获得曲线平滑的最优解。

你可能感兴趣的:(Planning,path,optimizer,piecewise,jerk)