Frenet-Frame 下Mini Jerk 的轨迹生成方法

介绍一种依靠车辆中心线的Mini Jerk 的轨迹生成方法。

注:下文中两点上标,都是3点上标。

1,原理推导

‘’’
如果让车开的稳就得保证轨迹加速的平滑,加速的平滑度可以用jerk的L2模来度量,jerk就是加速度的导数。即

$J_{t}(p(t)):=\int_{t_{0}}^{t_{1}} \ddot{p}^{2}(\tau) \mathrm{d} \tau$[1]

其中 p p p 为车行驶的位置, p p p上三个点表示对时间的三次导数,表示jerk物理量。

根据最优化原理[2]:

$C=\frac{1}{2} \int_{0}^{T} L d t$

其中

$L=\left(\frac{d^{3} x}{d t^{3}}\right)^{2}+\left(\frac{d^{3} y}{d t^{3}}\right)^{2}$

要想使C取得最小值,L应满足:

$\frac{\partial L}{\partial x}-\frac{d}{d t}\left(\frac{\partial L}{\partial x}\right) \cdots+(-1)^{n} \frac{d^{n}}{d t^{n}} \frac{\partial L}{\partial\left(x^{(n)}\right)}=0$
$\frac{\partial L}{\partial y}-\frac{d}{d t}\left(\frac{\partial L}{\partial y}\right) \cdots+(-1)^{n} \frac{d^{n}}{d t^{n}} \frac{\partial L}{\partial\left(y^{(n)}\right)}=0$

从而

$\frac{d^{3}}{d t^{3}} \frac{\partial\left(\ddot{x}^{2}\right)}{\partial(\ddot{x})}=0$ $\frac{d^{3}}{d t^{3}} \frac{\partial\left(\ddot{y}^{2}\right)}{\partial(\ddot{y})}=0$

然后

$\frac{d^{6} x}{d t^{6}}=0$ $\frac{d^{6} y}{d t^{6}}=0$

也就是说
x ( t ) , y ( t ) x(t),y(t) x(t),y(t)是个5次多项式

$\left.\begin{array}{l}x(\ell)=a_{0}+a_{1} t+a_{2} t^{2}+a_{3} t^{3}+a_{4} t^{4}+a_{5} t^{5} \\ y(t)=b_{0}+b_{1} t+b_{2} t^{2}+b_{3} t^{3}+b_{4} t^{4}+b_{5} t^{5}\end{array}\right\}$

至此,我们明白了,5次多项式是使 J t ( p ( t ) ) J_{t}(p(t)) Jt(p(t))最小的通解。

2,场景应用

在Frenet坐标系下

  • 场景一,在高速场景下,横向位移 d d d,和纵向位移 s s s 可以互相独立

d ( t ) d(t) d(t) 为:

$d(t)=a_{d 0}+a_{d 1} t+a_{d 2} t^{2}+a_{d 3} t^{3}+a_{d 4} t^{4}+a_{d s} t^{5}$

给出起始,终止边界条件

$\left[d_{s}, \dot{d}_{s}, \ddot{d}_{s}, 0\right],\left[d_{e}, \dot{d}_{e}, \ddot{d}_{e}, T\right]$

不就可以解出 d ( t ) d(t) d(t) 五次多项式了吗?
同理 s ( t ) s(t) s(t) 也可以由此得出。这样 d ( t ) , s ( t ) d(t),s(t) d(t),s(t)合起来就完成了Frenet下的轨迹生成。

  • 场景二,低速场景下,横向位移由纵向位移驱动,横向位移 d d d为:
$d(s)=a_{d 0}+a_{d 1} s+a_{d 2} s^{2}+a_{d 3} s^{3}+a_{d 4} s^{4}+a_{d s} s^{5}$

解此关于 s s s的五次多项式即可。

3, 效果展示

这个方法已经被Python Robot实现

https://github.com/AtsushiSakai/PythonRobotics/tree/master/PathPlanning/FrenetOptimalTrajectory
效果如下:
Frenet-Frame 下Mini Jerk 的轨迹生成方法

参考文献

[1] Optimal Trajectory Generation for Dynamic Street Scenarios in a Frene´t Frame 2010 Moritz Werling, Julius Ziegler, So¨ren Kammel, and Sebastian Thrun

[2] LOCAL PATH PLANNING AND MOTION CONTROL FOR AGV IN POSITIONING 1989 Arata Talcahashi Taltero Hongo Yoshilci Ninomiya Gunji Sugimoto