目录

一、 规划方案:

1、x轴规划

2、z轴规划

二、灯哥源代码

三、MATLAB复现


笔者在看灯哥较新版的四足机器人控制程序中,观察到他没有向往常一样使用的传统的摆线轨迹,而是采用分段多项式进行足端轨迹规划。其中引入了摆动相抬腿速度作为轨迹规划的一个影响因素,提高了其自适应能力,这跟笔者之前写到的足端轨迹规划文章中的三次多项式规划方式有相同的思想。

一、 规划方案:

考虑到灯哥的py-apple为八自由度四足机器人,因此我们只考虑机器人前进方向和竖直方向,将前进方向定为x轴,竖直方向定为z轴。

并定义下列参数含义:

  • t:    当前时间
  • Tf:  摆动相时间
  • xt:  摆动相在x轴方向上的目标位置
  • zh: 摆动相在z轴方向上的抬腿高度
  • x0: 摆动腿在x轴上初始位置
  • z0: 摆动相在z轴上初始位置
  • xv0:摆动相抬腿前腿的瞬时速度

1、x轴规划

(1) 当 并且 时:

(2) 当并且时:

(3)当时:

2、z轴规划

         (1)  当 并且 时:

(2)当时:

二、灯哥源代码:

def swing_curve_generate(t,Tf,xt,zh,x0,z0,xv0):# X Generatorif t>=0 and t<Tf/4:xf=(-4*xv0/Tf)*t*t+xv0*t+x0if t>=Tf/4 and t<(3*Tf)/4:xf=((-4*Tf*xv0-16*xt+16*x0)*t*t*t)/(Tf*Tf*Tf)+((7*Tf*xv0+24*xt-24*x0)*t*t)/(Tf*Tf)+((-15*Tf*xv0-36*xt+36*x0)*t)/(4*Tf)+(9*Tf*xv0+16*xt)/(16)if t>(3*Tf)/4:xf=xt# Z Generatorif t>=0 and t<Tf/2:zf=(16*z0-16*zh)*t*t*t/(Tf*Tf*Tf)+(12*zh-12*z0)*t*t/(Tf*Tf)+z0if t>=Tf/2:zf=(4*z0-4*zh)*t*t/(Tf*Tf)-(4*z0-4*zh)*t/(Tf)+z0#Record touch down positionx_past=xft_past=t# # Avoid zf to go zeroif zf<=0:zf=0#x,z position,x_axis stop point,t_stop point;depend on when the leg stopreturn xf,zf,x_past,t_past

三、MATLAB复现

考虑到在该程序中,无法实时监测摆动腿速度,因此我们将xv0设置为定值,其他参数也任意初始化。

MATLAB源程序:

Tf = 0.5;
xv0 =1;
xt = 8;
zh = 4;
x0 = 0;
z0 = 0;
xf = zeros(1,length([0:0.01:Tf]));
zf = zeros(1,length([0:0.01:Tf]));
i=1;
k=1;
for t = 0:0.001:Tfif(t>=0&&t<Tf/4)xf(i) = (-4*xv0/Tf)*t*t+xv0*t+x0;i=i+1;elseif(t>=Tf/4&&t<(3*Tf)/4)xf(i) = ((-4*Tf*xv0-16*xt+16*x0)*t*t*t)/(Tf*Tf*Tf)+((7*Tf*xv0+24*xt-24*x0)*t*t)/(Tf*Tf)+((-15*Tf*xv0-36*xt+36*x0)*t)/(4*Tf)+(9*Tf*xv0+16*xt)/(16);i=i+1;elseif(t>=(3*Tf)/4)xf(i) =xt;i=i+1;endif(t>=0&&t<Tf/2)zf(k) = (16*z0-16*zh)*t*t*t/(Tf*Tf*Tf)+(12*zh-12*z0)*t*t/(Tf*Tf)+z0;if(zf(k)<0)zf(k)=0;endk=k+1;elseif(t>=Tf/2)zf(k) = (4*z0-4*zh)*t*t/(Tf*Tf)-(4*z0-4*zh)*t/(Tf)+z0;if(zf(k)<0)zf(k)=0;endk=k+1;end
endsubplot(3,1,1);
plot(xf,zf,'m-','LineWidth',2);
xlim([-1 max(xf)+1]);
ylim([0  max(zf)+1]);
xlabel('x');
ylabel('z');subplot(3,1,2);
t = 0:0.001:Tf;
plot(t,xf,'b--','LineWidth',2);
xlabel('t');
ylabel('x');
ylim([0  max(xf)+1]);subplot(3,1,3);
plot(t,zf,'g-','LineWidth',2);
xlabel('t');
ylabel('z');
ylim([0  max(zf)+1]);

想知道其他轨迹规划方法的友友可以看我的这一篇文章:
四足机器人学习笔记(足端轨迹规划)_某只旺仔的博客-CSDN博客_足端轨迹

代码解释及MATLAB复现--灯哥四足机器人步态规划部分相关推荐

  1. 四足机器人步态规划(walk and trot)

    古月居课程四足机器人控制与仿真入门笔记,视频链接:link 四足机器人步态规划(walk and trot) 常用步态简述 walk步态 trot步态 常用步态简述 足式运动的步态是指腿的摆动和支撑运 ...

  2. 四足机器人——步态规划

    一.步态的概念 步态就是描述动物走路的一种周期性现象.(描述动物是怎样走的) 二.四足机器人的步态 足式运动的步态是指腿的摆动和支撑运动以及这些运动之间的相对时间关系.不同的步态规则决定了不同的足式运 ...

  3. Matlab BP神经网络拟合四足机器人足端轨迹线积分方程反函数用于足端轨迹规划

    Matlab BP神经网络拟合四足机器人足端轨迹线积分方程用于足端轨迹规划 问题描述 一般情况下,在对四足机器人足端轨迹进行规划时分别对足端路径和轨迹加速度进行规划,然后将规划好的加速度进行两次积分得 ...

  4. 相对全面的四足机器人驱动规划MATLAB和Simulink实现方式(足端摆线规划,Hopf-CPG,Kimura-CPG)

    许久没更新四足机器人相关的博客文章,由于去年一整年都在干各种各样的~活,终于把硕士毕业论文给写好,才有点时间更新自己的所学和感悟.步态规划和足端规划只是为了在运动学层面获取四足机器人各关节的期望角位移 ...

  5. 【四足机器人步态状态FSM管理】电机失能模式、躯干翻身\收腿\恢复站立步态、WBC平衡站立步态、站立过程步态、对角小跑的运动步态

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 一.电机失能模式SM_State_Passive 功能 1.onEn ...

  6. [灯哥开源—四足机器人]程序算法讲解与STM32移植——PA_TROT和PA_WALK讲解和trot步态,walk步态,步态规划

    关键词:trot步态,walk步态,步态规划 目录 步态基础概念介绍 TROT步态原理 TROT代码实现 WALK步态原理 WALK代码实现 引用文献: 写在前面 这篇文章介绍的是,这篇文章https ...

  7. 四足机器人|机器狗|仿生机器人|多足机器人|Adams仿真|Simulink仿真|基于CPG的四足机器人Simulink与Adams虚拟样机|源码可直接执行|绝对干货!需要资料及指导的可以联系我!

    四足机器人|机器狗|仿生机器人|多足机器人|基于CPG的四足机器人Simulink与Adams虚拟样机|源码可直接执行|绝对干货!需要资料及指导的可以联系我!QQ:1096474659 基于CPG的四 ...

  8. 四足机器人——12自由度舵机狗DIY(二)

    目录 一.四足机器人步态研究控制的现状 1.1目前的三种控制策略 <1>基于静态稳定的控制方法. <2>基于动力学模型的控制方法. <3>基于生物所具有的神经性调节 ...

  9. 【菠萝狗四足机器人】二次开发教程--第一章 【简介与开发环境搭建】

    Py-apple Dynamics 简介与开发环境搭建 1 简介 1.1 何为 菠萝狗 和 Py-Apple Dynamics 1.2 目前支持的功能 2 开发环境搭建 2.1 硬件的搭建 2.1 软 ...

最新文章

  1. java enum.isdefined_Enum.IsDefined 方法 (System) | Microsoft Docs
  2. python数列求和-加强版_ES6深入浅出-3 三个点运算 新版字符串-1.函数与对象的语法糖...
  3. LeetCode--Excel Sheet Column Number
  4. boot spring 接口接收数据_在 Spring Boot 中使用 Dataway 配置数据查询接口
  5. SDNU 1427.分解质因数(水题)
  6. 分布式系统优势及衡量指标
  7. 搜索引擎反作弊之:整体技术思路
  8. iar烧录程序步骤_STM8入门以及程序编译、烧录、IAR使用方法(扫盲篇...
  9. C++ MFC string转Cstring为什么会乱码
  10. 人工智能诗歌写作平台_人工智能教作文,只写出二类文,人类语文老师稳赢
  11. 《深度学习要领》端到端的深度学习技术
  12. 记一次线上Zabbix对Redis监控实录
  13. paip.消除 Java 的冗长try/catch/finally
  14. Web安全——同源策略理解
  15. npm 报错 426 Upgrade Required
  16. robots文件对网站优化有哪些作用
  17. C语言编程核心要点,男人看了沉默,女人看了流泪
  18. 神奇宝贝五分类:网络自定义
  19. 1080驱动此图形驱动程序_如何更新图形驱动程序以获得最佳游戏性能
  20. android 仿微信聊天气泡显示图片,仿微信聊天气泡 图片尖角 按下变暗

热门文章

  1. 收藏:学做美食--欢乐年夜饭之神七年糕火焰虾
  2. angular 路由快照和 aggrid 结合后,导致aggrid 表头消失的问题
  3. 新安装Windows 2012 启动报错0xc0000225
  4. IDE——jupyter的安装与卸载
  5. 什么无线耳机音质最好,无线耳机品牌排行榜
  6. php小于neq qe,ThinkPHP eq neq if 标签
  7. python中shelf对象_11.4. shelve — Python 对象持久化 — Python 2.7.18 文档
  8. Linux-frp内网穿透
  9. Echarts曲线渐变色lineStyle
  10. 1599 元至 1999 元 ,Redmi Note 9 Pro 正式发布:骁龙 750G + 1 亿像素相机