系列文章目录
【四足机器人那些事儿2】MiniCheetah中所使用的的足端轨迹方程
文章目录
前言
在四足机器人的研究中,有一个很关键的问题,就是如何减少足端在触地瞬间的冲击,避免把机器人把自己给蹬倒了?这时候就需要一个合理的足端轨迹规划。本篇将会介绍几种足端轨迹。
本文将对四足机器人的足端轨迹进行规划。将数学中的复合摆线和多项式曲线引入到足端轨迹的规划中,根据零冲击原则[2],规划出 3 条满足要求的足端轨迹,包括:
- 复合摆线轨迹
- 八次多项式轨迹
- 分段五次多项式轨迹
本篇先介绍 - 八次多项式轨迹
一、多项式曲线拟合
1、一次多项式
众所周知,过任意不同的两点可以确定一条直线。即已知:
P 1 = [ x 1 , y 1 ] P 2 = [ x 2 , y 2 ] \begin{aligned} &P_1 = [x_1, y_1] \\ &P_2 = [x_2, y_2] \end{aligned} P1=[x1,y1]P2=[x2,y2]
可求得用两点式表示直线方程:
x − x 1 x 2 − x 1 = y − y 1 y 2 − y 1 \frac{x-x_1}{x_2-x_1} = \frac{y-y_1}{y_2-y_1} x2−x1x−x1=y2−y1y−y1
该式可在带入坐标点后化简得到其点斜式形式,也就是一条一次的多项式,这里我们可以称已知的两个点坐标为方程的约束:
y = a x + b y = ax + b y=ax+b
2、二次多项式
加入给定任意不同的三个点,我们能否确定一条曲线通过这些点,答案是可以的。已知
P 1 = [ x 1 , y 1 ] P 2 = [ x 2 , y 2 ] P 3 = [ x 3 , y 3 ] \begin{aligned} &P_1 = [x_1, y_1] \\ &P_2 = [x_2, y_2] \\ &P_3 = [x_3, y_3] \end{aligned} P1=[x1,y1]P2=[x2,y2]P3=[x3,y3]
根据初高中的知识,我们知道通过这三点的曲线是一条抛物线,因此我们可以假设该曲线方程为
y = a x 2 + b x + c y = ax^2 + bx + c y=ax2+bx+c
将点坐标带入当成即可求解得到该二次方程,对于该方程,存在3个位置点的约束。
y 1 = a x 1 2 + b x 1 + c y 2 = a x 2 2 + b x 2 + c y 3 = a x 3 2 + b x 2 + c \begin{aligned} &y_1 = ax_1^2 + bx_1 + c \\ &y_2 = ax_2^2 + bx_2 + c \\ &y_3 = ax_3^2 + bx_2 + c \end{aligned} y1=ax12+bx1+cy2=ax22+bx2+cy3=ax32+bx2+c
3、多次多项式
将上述推广到一般情况,对于给定n个不同坐标点,我们可以确定一条n-1次多项式的曲线,我们可以利用该特性来设计一种四足机器人足端轨迹方程,即在满足约束条件下的曲线方程。
二、足端轨迹约束方程
为达到理想的步态,足端轨迹规划需要满足:
- ① 行进平稳、协调,无明显的上下波动、左右摇晃和前后冲击;
- ② 各关节没有较大冲击,特别是摆动相抬腿和落地瞬间实现零冲击抬腿和落地软
着陆; - ③ 摆动腿跨步迅速,足端轨迹圆滑,关节速度和加速度平滑连续无畸点;
- ④ 避免足端与地面接触时产生滑动,无摆动腿拖地现象。
规定在 0 ∼ T 2 0 \sim \frac{T}{2} 0∼2T ,足端处于摆动相,在 T 2 ∼ T \frac{T}{2} \sim T 2T∼T ,足端处于支撑相。设水平方向为 X 方向,竖直方向为 Y 方向,步长为S。根据四足机器人足端运动位置的要求,可确定足端轨迹在水平方向(X 方向)和竖直方向(Y 方向)的位移方程有以下约束。
1、水平x方向
位置约束:初始位置为0,摆动相结束位置为0,支撑相结束位置为0
x ( 0 ) = 0 x ( T / 2 ) = S x ( T ) = 0 \begin{aligned} &x(0) = 0\\ &x(T/2) = S\\ &x(T) = 0 \end{aligned} x(0)=0x(T/2)=Sx(T)=0
速度约束
x ˙ ( 0 ) = 0 x ˙ ( T / 2 ) = 0 x ˙ ( T ) = 0 \begin{aligned} &\dot x(0) = 0\\ &\dot x(T/2) =0\\ &\dot x(T) = 0 \end{aligned} x˙(0)=0x˙(T/2)=0x˙(T)=0
加速度约束
x ¨ ( 0 ) = 0 x ¨ ( T / 2 ) = 0 x ¨ ( T ) = 0 \begin{aligned} &\ddot x(0) = 0\\ &\ddot x(T/2) =0\\ &\ddot x(T) = 0 \end{aligned} x¨(0)=0x¨(T/2)=0x¨(T)=0
2、竖直y方向
位置约束
y ( 0 ) = 0 y ( T / 4 ) = H y = 0 , T / 2 ≤ t ≤ T \begin{aligned} &y(0) = 0\\ &y(T/4) = H \\ &y = 0,T/2\leq t\leq T \end