本篇将讲解MiniCheetah中所使用的的足端轨迹方程-贝塞尔曲线方程
一、贝塞尔曲线
贝塞尔曲线就是这样的一条曲线,它是依据四个位置任意的点坐标绘制出的一条光滑曲线。
在历史上,研究贝塞尔曲线的人最初是按照已知曲线参数方程来确定四个点的思路设计出这种矢量曲线绘制法。贝塞尔曲线的有趣之处更在于它的“皮筋效应”,也就是说,随着点有规律地移动,曲线将产生皮筋伸引一样的变换,带来视觉上的冲击。1962年,法国数学家Pierre Bézier第一个研究了这种矢量绘制曲线的方法,并给出了详细的计算公式,因此按照这样的公式绘制出来的曲线就用他的姓氏来命名是为贝塞尔曲线。
二、数学形式
1、线性公式
给定点P0、P1,线性贝兹曲线只是一条两点之间的直线。这条线由下式给出:
B ( t ) = P 0 + ( P 1 − P 0 ) t = ( 1 − t ) P 0 + t P 1 , t ∈ [ 0 , 1 ] B(t) = P_0 + (P_1 -P_0)t = (1-t)P_0+tP_1,t \in [0, 1] B(t)=P0+(P1−P0)t=(1−t)P0+tP1,t∈[0,1]
取 P 0 = [ 0 , 0 ] , P 1 = [ 1 , 1 ] P_0 = [0, 0], P_1 = [1, 1] P0=[0,0],P1=[1,1]。可以从图中看出,其效果等同于线性插值。
2、二次方公式
对于给定点 P 0 = [ 0 , 0 ] 、 P 1 = [ 0.5 , 0.5 ] 、 P 2 = [ 1 , 0 ] P0=[0, 0]、P1=[0.5, 0.5]、P2=[1, 0] P0=[0,0]、P1=[0.5,0.5]、P2=[1,0],曲线的函数如下:
B ( t ) = ( 1 − t ) 2 P 0 + 2 t ( 1 − t ) P 1 + t 2 P 2 , t ∈ [ 0 , 1 ] B(t) = (1-t)^2P_0 + 2t(1-t)P_1 + t^2P_2,t \in [0, 1] B(t)=(1−t)2P0+2t(1−t)P1+t2P2,t∈[0,1]
3、三次方公式
P0、P1、P2、P3四个点在平面或在三维空间中定义了三次方贝兹曲线。曲线起始于P0走向P1,并从P2的方向来到P3。一般不会经过P1或P2;这两个点只是在那里提供方向信息。P0和P1之间的间距,决定了曲线在转而趋进P3之前,走向P2方向的“长度有多长”。函数形式如下:
B ( t ) = P 0 ( 1 − t ) 3 + 3 P 1 t ( 1 − t ) 2 + 3 P 2 t 2 ( 1 − t ) + P 3 t