基于参数方程的三次样条插值

Comparative Analysis

1.基于基于三次样条插值的路径生成方法,在xix_i非递增状态下时,三次样条插值法产生的曲线在实际应用中会产生缺陷。如下图所示,在第一次xix_i由递增状态变成递减,曲线走向不符合实际车辆的全局规划路径。
基于参数方程的三次样条插值
2.基于PythonRobotics中参数方程的三次样条插值,完美解决这个问题。如下图。
基于参数方程的三次样条插值
Detailed Introduction

1.参数方程的定义
一般的,在平面直角坐标系中,如果曲线上任意一点的坐标xyx和y都是某一个变数tt的函数{x=f(t) y=g(t)\begin{cases} x=f(t)\ \\y=g(t)\end{cases} 并且对于tt的每一个允许值,由这个方程所确定的M(x,y)M(x,y)都在这条曲线上。那么这个方程组就叫做参数方程。
2.具体构想
给定一连串数据点:
{x=[x0,x1,x2,...,xn] y=[y0,y1,y2,...,yn]\begin{cases} x=[x_0,x_1,x_2,...,x_n]\ \\y=[y_0,y_1,y_2,...,y_n]\end{cases}
在三次样条插值的原理上,分别计算临近两点之间的距离,并依次相加,得到每一点距离x0x_0按照折线并依次经过所有点的距离l=[l0=0,l1,l2,...ln]l=[l_0=0,l_1,l_2,...l_n]。将此距离按照一定的间距等距分割,作为参数方程的因变量tt。然后按照三次样条插值的原理分别进行计算{x=f(t) y=g(t)\begin{cases} x=f(t)\ \\y=g(t)\end{cases} ,每一个点都在得到的曲线上。
3.在实际车辆轨迹规划中,还需要知道各个路径的曲率和航向角。曲率计算公式根据参数方程的曲率公式进行计算。航向角就根据每一个点的一次导数进行三角tantan函数进行计算。
基于参数方程的三次样条插值
基于参数方程的三次样条插值
基于参数方程的三次样条插值
4.等距离撒点:基于普通方程的三次样条插值,等距是指绝对的xx坐标等距;基于参数方程的三次样条插值,等距是指在点集的折线上等距。