插值计算方法
假设有 n + 1 n+1 n+1个有序点 P k , k ∈ [ 0 , n ] P_k,k \in[0,n] Pk,k∈[0,n] , 样条曲线是构造 n n n个多项式分段定义,分别以 P i , P i + 1 , i ∈ [ 0 , n − 1 ] P_i,P_{i+1},i \in [0,n-1] Pi,Pi+1,i∈[0,n−1]为起止点。相邻的多项式交界点 P i P_i Pi处应连续,且多阶可导。
以3次样条插值为例,说明其计算方法如下:
设每段多项式的方程为: a i x 3 + b i x 2 + c i x + d i = p i a_i x^3 + b_i x^2 + c_i x + d_i = p_i aix3+bix2+cix+di=pi
这样的多项式共有 n n n个,需要求解 4 n 4n 4n个多项式系数。由每个多项式两端的坐标值可得到 2 n 2n 2n方程,再由相邻点处一阶,二阶导数相等可得 2 ( n − 1 ) 2(n-1) 2(n−1)个方程。另外增加两个初始条件,比如起点和终点处的速度或加速度,可得 4 n 4n 4n个方程,可求解所有的系数并计算每段曲线的方程式。
对于5次样条插值,多项式方程为: a i x 5 + b i x 4 + c i x 3 + d i x 2 + e i x + f i = p i a_i x^5 + b_i x^4 + c_i x^3 + d_ix^2 + e_ix + f_i = p_i aix5+bix4+cix3+dix2+eix+fi=pi
由每个多项式两端的坐标值可得到 2 n 2n 2n方程,再由相邻点处一阶,二阶,三阶和四阶导数相等可得 4 ( n − 1 ) 4(n-1) 4(n−1)个方程。另外可附近4个初始条件,比如起止点处的速度和加速度值
同理可推算高更次的样条插值计算公式
样条插值
意思是用样条曲线的方式完成插值运算,这里需要把坐标表示为关于时间的参数方程: x ( t ) , y ( t ) , z ( t ) x(t),y(t),z(t) x(t),y(t),z(t)。这样才可以计算出插值轨迹的速度,加速度等。
如果是样条拟合的话,则表示为关于 x x x的方程即可,如 y ( x ) , z ( x ) y(x),z(x) y(x),z(x)。
简化计算方法
三次样条有简化计算方法。
可参考论文: 六自由度串联机器人运动优化与轨迹跟踪控制研究
五次或更高次样条的计算没有找到相应的简化计算公式,但可以直接联立方程组求解。
计算结果与B样条对比
在初始速度为零的前提下计算三次样条插值 和三次B样条插值,得到插值轨迹和轨迹的速度如下图。
在初始速度为零的前提下计算五次样条插值 和五次B样条插值,得到插值轨迹和轨迹的速度如下图。
从上面的计算例子可以看出,样条曲线和B样条曲线计算的结果非常接近,没有想通是什么原因,暂时没有计算更高次的样条插值。