【关于四足机器人那些事】足端轨迹规划-八次多项式轨迹

系列文章目录

【四足机器人那些事儿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} x2x1xx1=y2y1yy1

该式可在带入坐标点后化简得到其点斜式形式,也就是一条一次的多项式,这里我们可以称已知的两个点坐标为方程的约束:

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} 02T ,足端处于摆动相,在 T 2 ∼ T \frac{T}{2} \sim T 2TT ,足端处于支撑相。设水平方向为 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

  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论
四足机器人的五次多项式轨迹规划是一种常用的方法,用于控制机器人在运动过程中的轨迹。该方法通过定义起始点、终止点和中间点的位置、速度和加速度,来生成一条平滑的轨迹。 以下是一个示例代码,演示了如何使用五次多项式轨迹规划来控制四足机器人的运动轨迹: ```matlab % 定义起始点、终止点和中间点的位置 start_point = [0, 0, 0]; % 起始点位置 end_point = [1, 1, 1]; % 终止点位置 mid_point = [0.5, 0.5, 0.5]; % 中间点位置 % 定义起始点、终止点和中间点的速度和加速度 start_velocity = [0, 0, 0]; % 起始点速度 end_velocity = [0, 0, 0]; % 终止点速度 mid_velocity = [0, 0, 0]; % 中间点速度 start_acceleration = [0, 0, 0]; % 起始点加速度 end_acceleration = [0, 0, 0]; % 终止点加速度 mid_acceleration = [0, 0, 0]; % 中间点加速度 % 定义时间范围 T = 1; % 总时间 t = linspace(0, T, 100); % 时间范围 % 使用五次多项式轨迹规划生成轨迹 trajectory = quintic_trajectory(start_point, end_point, mid_point, start_velocity, end_velocity, mid_velocity, start_acceleration, end_acceleration, mid_acceleration, t); % 控制四足机器人按照生成的轨迹运动 for i = 1:length(t) robot.move(trajectory(i, :)); % 控制机器人运动到指定位置 pause(0.01); % 等待一段时间,使得机器人运动平滑 end ``` 请注意,以上代码仅为示例,具体的实现方式可能因机器人的不同而有所差异。你需要根据你所使用的具体机器人的控制接口和运动规划算法进行相应的修改。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值