时间:2020年4月9日
对之前内容做补充,加入支撑相轨迹规划,并构造完整的的周期曲线

在四足机器人的研究中,有一个很关键的问题,就是如何减少足端在触地瞬间的冲击,避免把机器人把自己给蹬倒了?这时候就需要一个合理的足端轨迹规划。本篇将会介绍几种足端轨迹。

本文将对四足机器人的足端轨迹进行规划。将数学中的复合摆线和多项式曲线引入到足端轨迹的规划中,根据零冲击原则[2],规划出 3 条满足要求的足端轨迹,包括:

  • 复合摆线轨迹
  • 八次多项式轨迹
  • 分段五次多项式轨迹

本篇先介绍第一个 —— 复合摆线轨迹

一、摆线

摆线,又称旋轮线、圆滚线,在数学中,摆线(Cycloid)被定义为,一个圆沿一条直线运动时,圆边界上一定点所形成的轨迹。它是一般旋轮线的一种。

看以下动图就知道摆线是如何来的:

红色线即为摆线轨迹,总结成数学公式为:

x=r(t−sin⁡t)x = r(t-\sin t)x=r(t−sint)

y=r(1−cos⁡t)y = r(1-\cos t)y=r(1−cost)

二、足端轨迹约束方程

为达到理想的步态,足端轨迹规划需要满足:

  • ① 行进平稳、协调,无明显的上下波动、左右摇晃和前后冲击;
  • ② 各关节没有较大冲击,特别是摆动相抬腿和落地瞬间实现零冲击抬腿和落地软
    着陆;
  • ③ 摆动腿跨步迅速,足端轨迹圆滑,关节速度和加速度平滑连续无畸点;
  • ④ 避免足端与地面接触时产生滑动,无摆动腿拖地现象。

规定在0∼T20 \sim \frac{T}{2}0∼2T​ ,足端处于摆动相,在T2∼T\frac{T}{2} \sim T2T​∼T ,足端处于支撑相。设水平方向为 X 方向,竖直方向为 Y 方向,根据四足机器人足端运动位置的要求,可确定足端轨迹在水平方向(X 方向)和竖直方向(Y 方向)的位移方程有以下约束。

1、水平x方向

位置约束
{x∣t=0=0x∣t=T/2=Sx∣t=T=0\left\{\begin{matrix} x|_{t=0} = 0\\ x|_{t=T/2} =& S\\ x|_{t = T} = 0 \end{matrix}\right.⎩⎨⎧​x∣t=0​=0x∣t=T/2​=x∣t=T​=0​S​

速度约束
{x˙∣t=0=0x˙∣t=T/2=0x˙∣t=T=0\left\{\begin{matrix} \dot{x}|_{t=0} = 0\\ \dot{x}|_{t=T/2} =& 0\\ \dot{x}|_{t = T} = 0 \end{matrix}\right.⎩⎨⎧​x˙∣t=0​=0x˙∣t=T/2​=x˙∣t=T​=0​0​

加速度约束
{x¨∣t=0=0x¨∣t=T/2=0x¨∣t=T=0\left\{\begin{matrix} \ddot{x}|_{t=0} = 0\\ \ddot{x}|_{t=T/2} =& 0\\ \ddot{x}|_{t = T} = 0 \end{matrix}\right.⎩⎨⎧​x¨∣t=0​=0x¨∣t=T/2​=x¨∣t=T​=0​0​

2、竖直y方向

位置约束
{y∣t=0=0y∣t=T/4=Hy=0,T/2≤t≤T\left\{\begin{matrix} &y|_{t=0}& = 0\\ &y|_{t=T/4}& = H \\ &y = 0,&T/2\leq t\leq T \end{matrix}\right.⎩⎨⎧​​y∣t=0​y∣t=T/4​y=0,​=0=HT/2≤t≤T​

速度约束
{y˙∣t=0=0y˙∣t=T/4=0y˙=0,T/2≤t≤T\left\{\begin{matrix} &\dot{y}|_{t=0}& = 0\\ &\dot{y}|_{t=T/4}& = 0 \\ &\dot{y} = 0,&T/2\leq t\leq T \end{matrix}\right.⎩⎨⎧​​y˙​∣t=0​y˙​∣t=T/4​y˙​=0,​=0=0T/2≤t≤T​

加速度约束
{y¨∣t=0=0y¨∣t=T/4=0y¨=0,T/2≤t≤T\left\{\begin{matrix} &\ddot{y}|_{t=0}& = 0\\ &\ddot{y}|_{t=T/4}& = 0 \\ &\ddot{y} = 0,&T/2\leq t\leq T \end{matrix}\right.⎩⎨⎧​​y¨​∣t=0​y¨​∣t=T/4​y¨​=0,​=0=0T/2≤t≤T​

三、复合摆线轨迹

1、摆动相轨迹设计

基于第二节中提到的原则,文献[1]中提出了一种基于复合摆线形式的轨迹规划方法,并在文献[2]中得到了验证和使用。针对机器人足底与地面接触时会产生滑动和行走过程中拖地问题,文献[2]对复合摆线规划方法提出了修改,修改后的摆动腿的步态规划轨迹定义为:

{x=S[tTm−12πsin⁡(2πtTm)]y=H[12−12cos⁡(2πtTm)]\left\{\begin{matrix} x = S\left [\frac{t} {T_m}-\frac{1}{2\pi}\sin(\frac{2\pi t}{T_m}) \right ]\\ \\ y = H\left [ \frac{1}{2}-\frac{1}{2}\cos(\frac{2\pi t}{T_m})\right ] \end{matrix}\right.⎩⎪⎪⎨⎪⎪⎧​x=S[Tm​t​−2π1​sin(Tm​2πt​)]y=H[21​−21​cos(Tm​2πt​)]​

其中S为步幅, H为抬腿高度,TmT_mTm​为摆动相周期。现在我们来看提下它的图像,设定S = 100, H = 30, 周期T=2。

我们用python绘制该轨迹的图像如下:

为了更好地研究该轨迹的特性,我们接下来依次看x,y关于时间的位置,速度,加速度

2、轨迹改进

从表达式上分析,该轨迹的加速度方程是余弦函数的倍数,在 t=0 和 t=Tm时刻会出现加速度跳变,根据F=MaF=MaF=Ma,这就导致了抬腿的瞬间要求产生较大的接触力。

从加速度图像亦能说明这一点。针对这一问题,文献[5]对 y 方向的位移方程提出了以下修改。

由于摆动腿在 y 轴运动需要先抬腿再落腿,借鉴 x 轴正弦方式运动的方法求解 y 轴位移曲线

先从加速度函数入手,我们设计成如下形式
y¨=Asin⁡(nπtTm)\ddot{y} = A\sin(\frac{n\pi t}{T_m})y¨​=Asin(Tm​nπt​)

对上式进行积分求得速度函数

y˙=ATmnπ[−cos⁡(nπtTm)]+C1\dot{y} = \frac{AT_m}{n\pi}\left [ -\cos(\frac{n\pi t}{T_m})\right ] +C_1y˙​=nπATm​​[−cos(Tm​nπt​)]+C1​

然后根据速度约束y˙∣t=0=0\dot{y}|_{t=0} = 0y˙​∣t=0​=0以及y˙∣t=Tm=0\dot{y}|_{t=T_m} = 0y˙​∣t=Tm​​=0,求出C1C_1C1​

C1=ATmnπn=2kk=1,2,...C_1 = \frac{AT_m}{n\pi} \quad n=2k \quad k=1,2,...C1​=nπATm​​n=2kk=1,2,...

对速度函数进行积分,求得位移函数为:

y=ATmnπ[t−Tmnπsin⁡(nπtTm)]+C2y = \frac{AT_m}{n\pi}\left [t -\frac{T_m}{n\pi}\sin(\frac{n\pi t}{T_m})\right ] +C_2y=nπATm​​[t−nπTm​​sin(Tm​nπt​)]+C2​

而根据轨迹约束y∣t=0=0,y∣t=Tm/2=H,y∣t=Tm=0y|_{t=0} = 0, y|_{t=T_m/2} = H, y|_{t=T_m} = 0y∣t=0​=0,y∣t=Tm​/2​=H,y∣t=Tm​​=0我们无法求解出参数AAA和C2C_2C2​,因此通过分段函数的方法求y轴方向的曲线方程:

y={2H[tTm−1nπsin⁡(nπtTm)]0≤t<Tm22H[1−tTm+1nπsin⁡(nπtTm)]Tm2≤t<Tmy = \left\{\begin{matrix} 2H\left [ \frac{t}{T_m}-\frac{1}{n\pi}\sin(\frac{n\pi t}{T_m})\right ] & 0\leq t< \frac{T_m}{2}\\ \\ 2H\left [1 - \frac{t}{T_m}+\frac{1}{n\pi}\sin(\frac{n\pi t}{T_m}) \right ] & \frac{T_m}{2}\leq t< T_m \end{matrix}\right.y=⎩⎪⎪⎨⎪⎪⎧​2H[Tm​t​−nπ1​sin(Tm​nπt​)]2H[1−Tm​t​+nπ1​sin(Tm​nπt​)]​0≤t<2Tm​​2Tm​​≤t<Tm​​

为了确定n的取值,我们来看看n取不同值时的速度图像
取T=2,H=1,S=1T = 2,H = 1, S = 1T=2,H=1,S=1


可以看出,当n越大时,y方向上的速度变化就越频繁,这可能会导致系统能耗的增加。

再来看位移图像:

从位移图像来看,只有当n取4时,轨迹才是平滑的。因此我们可以确定轨迹的最终形式为:

{x=S[tTm−12πsin⁡(2πtTm)]y=H[sgn(Tm2−t)(2fE(t)−1)+1]\left\{\begin{matrix} x =& S\left [\frac{t}{T_m}-\frac{1}{2\pi}\sin(\frac{2\pi t}{T_m}) \right ]\\ \\ y =& H\left [ sgn(\frac{T_m}{2}-t)(2f_E(t)-1) + 1 \right ] \end{matrix}\right.⎩⎪⎨⎪⎧​x=y=​S[Tm​t​−2π1​sin(Tm​2πt​)]H[sgn(2Tm​​−t)(2fE​(t)−1)+1]​

其中
fE(t)=tTm−14πsin⁡(4πtTm)f_E(t) = \frac{t}{T_m}-\frac{1}{4\pi}\sin(\frac{4\pi t}{T_m})fE​(t)=Tm​t​−4π1​sin(Tm​4πt​)

sgn(Tm2−t)={10⩽t<Tm2−1Tm2⩽t<Tmsgn(\frac{T_m}{2}-t) = \left\{\begin{matrix} 1 \quad 0\leqslant t < \frac{T_m}{2}\\ \\ -1 \quad \frac{T_m}{2}\leqslant t < T_m \end{matrix}\right.sgn(2Tm​​−t)=⎩⎨⎧​10⩽t<2Tm​​−12Tm​​⩽t<Tm​​

我们取H=30,S=100,T=2H=30, S=100, T=2H=30,S=100,T=2来验证上式:


这里我们发现速度图像与确定n值时给出的不一致,那是因为我们在y的轨迹方程中使用了分段函数,对t>Tm2t>\frac{T_m}{2}t>2Tm​​部分进行了取反,因此该部分的速度和加速度图像是沿横轴进行了翻转的。

2020年4月9日 新增内容

3、支撑相足端轨迹

相比于摆动相的足端轨迹,支撑相的设计就显得稍微简单。首先我们要知道两点:

  • 支撑相水平方向上的位移曲线与摆动相的关于t=Tmt=T_mt=Tm​对称。
  • 竖直方向的位移适终为0

基于这两点,我们可以设计出如下曲线:

{x=S(2Tm−tTm+12πsin⁡(2πtTm)),Tm≤y≤2Tmy=0,Tm≤t≤2Tm\left\{\begin{matrix} x &=& S(\frac{2T_m -t}{T_m} + \frac{1}{2\pi}\sin(\frac{2\pi t}{T_m})), T_m \leq y \leq 2T_m\\ \\ y &=& 0, T_m \leq t \leq 2T_m \end{matrix}\right.⎩⎨⎧​xy​==​S(Tm​2Tm​−t​+2π1​sin(Tm​2πt​)),Tm​≤y≤2Tm​0,Tm​≤t≤2Tm​​

4、周期轨迹

定义步态周期为TTT,支撑相,摆动相周期均为TmT_mTm​
,则T=2TmT = 2T_mT=2Tm​

关于周期:摆动相TfT_fTf​,支撑相TsT_sTs​的持续时间不一定要设为一致,可根据控制器模型实时动态调节。这种情况下T=Tf+TsT = T_f + T_sT=Tf​+Ts​

我们对时间进行周期化处理:

ti=(t+φi)modTit_i = (t+ \varphi_i)modT_iti​=(t+φi​)modTi​

其中,ttt为系统时间,tit_iti​为第iii条腿的轨迹规划时间,以LF腿的相位为初始值,则φi\varphi_iφi​为各腿相位落后于LF腿的时间与步态周期的比值。

总结

通过对轨迹方程的改进及其图像的分析,我们最终得到了一个平滑,且冲击较小的复合摆线轨迹


如果觉得ok,点个赞,点个关注,也欢迎给个打赏支持一下编者的工作

参考文献

[1] SAKAKIBARA Y,KAN K,HOSODA Y,et al. Foot trajectory for a quadruped walking machine[C] // Proceedings IROS '90. IEEE International Workshop on,July 3-6,1990,Ibaraki,Japan. New York,NY,USA:IEEE,1990:315-322.

[2] 何冬青,马培荪. 四足机器人动态步行仿真及步行稳定性分析[J]. 计算机仿真,2005(2):146-149. HE Dongqing , MA Peisun. Simulation of dynamic walking of quadruped robot and analysis of walking stability[J]. Computer Simulation,2005(2):146-149.

[3] 李贻斌,李彬,荣学文,等. 液压驱动四足仿生机器人的结构设计和步态规划[J]. 山东大学学报,2011(5):32-36,45. LI Yibin,LI Bin,RONG Xuewen,et al. Mechanical design and gait planning of a hydraulically actuated quadruped bionic robot[J]. Journal of Shandong University,2011(5):32-36,45.

【关于四足机器人那些事】足端轨迹规划-复合摆线轨迹相关推荐

  1. 四足机器人并联腿足端轨迹Matlab仿真

    四足机器人并联腿足端轨迹Matlab仿真 轨迹计算 轨迹是分成两部分:摆线方程+水平线段 首先,设置大腿关节轴心坐标为(0,0),根据机械设计的大腿小腿长度设置参数.此处设置大腿 l1=100mm,小 ...

  2. 【关于四足机器人那些事】零力矩点(zmp)

    根据零力矩点理论分析机器人行进过程的稳定条件,利用稳定裕度的概念,在支撑多边形中求取最优稳定点来规划零力矩点.可以为避免 walk步态中频繁调整躯干姿态导致的能耗和行进速度损失[1] 此外," ...

  3. 【关于四足机器人那些事】腿部运动学建模(三维)

    本篇将会三维空间中,对四足机器人的腿部进行数学建模,求解器正逆运动学解,包含详细公式推导与计算 首先,我们来看三维空间中简图: 其中a表示髋关节距离主体得偏移,L1,L2共面,与a保持垂直关系,[x, ...

  4. 【关于四足机器人那些事】直驱四足机器人Minitaur运动学建模

    文章目录 一.结构参数 二.腿部运动空间 随着人类环境中对机器人交互的需求不断增长,动态四足机器人的发展正成为人们越来越感兴趣的话题,但是它们需要自适应的控制方案来应对穿越现实世界地形时遇到的挑战. ...

  5. 【四足机器人--摆动相足端位置速度轨迹规划】(4.1)FootSwingTrajectory(bezier曲线计算脚的摆动轨迹)代码解析

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 一.FootSwingTrajectory(bezier曲线)的内容 ...

  6. 【机器人轨迹规划】ur16e机器人三维模型+轨迹规划+画五角星轨迹

    下载链接添加链接描述 ur16e机器人模型参数 轨迹线 咨询链接:matlab正逆运动学分析与轨迹规划

  7. 六轴机器人轨迹规划(直线轨迹规划,弧线轨迹规划)——C#实现+ABB为例(规划直接下发离线程序运动)

    机器人直线插补算法,弧线插补算法+离线编程转换(空间直线插补规划.空间弧线插补规划.离线编程.ABB二次开发.六轴机器人控制.C#) 一,通过对空间点的插补,形成空间点轨迹 1.插补算法原理简述: ( ...

  8. 【关于四足机器人那些事】雅克比矩阵

    一.引入 假设有6个函数,每个函数有6个独立的变量,即: y1=f1(x1,x2,x3,x4,x5,x6)y2=f2(x1,x2,x3,x4,x5,x6)⋮y6=f6(x1,x2,x3,x4,x5,x ...

  9. 【四足机器人】学习笔记 足端轨迹规划和步态规划

    [四足机器人]学习笔记 足端轨迹规划和步态规划 一.足端轨迹规划(摆线) 二.步态规划 1.Walk步态 2.Trot步态 近期,博主在古月居学习关于四足机器人的相关部分知识,从阳炼老师的四足机器人控 ...

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

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

最新文章

  1. html网页怎么向文章,一篇文章教你学会HTML
  2. oracle 换行符_python实现自动化报表(Oracle/plsql/Excel/多线程)
  3. 团队管理中的每日站立会
  4. Python可以这样学(第四季:数据分析与科学计算可视化)-董付国-专题视频课程...
  5. Mac vscode花屏问题解决
  6. mysql内部代码的优缺点
  7. Oracle form培训资料,Oracle ERP FORM开发学习操作手册
  8. 什么算法计算地图上从A点到B点的方向?
  9. kindle上网看其他网址_几个超赞的免费电子书下载网站(支持kindle)!
  10. ffmpeg 视频转码
  11. 有一种星光叫记忆:张国荣主演的九部经典影片
  12. 【历史上的今天】2 月 28 日:阿帕网退役;Quintus 收购 Mustang;同步电流磁芯存储器获得专利
  13. Proxy的常见使用——正向代理的使用及配置总结
  14. 美元指数回落美债收益率下跌,金价未能实现五连涨
  15. 蚂蚁金服服务注册中心数据一致性方案分析 | SOFARegistry 解析
  16. 微软小娜关闭服务器,Win10关闭小娜服务的两个方法
  17. 算法还是算力?周志华微博引爆深度学习的“鸡生蛋,蛋生鸡”问题
  18. cdma特有效应_CDMA技术有那些特点及优点?
  19. 【大数据】五、链接分析(PageRank、Topic-sensetive PageRank)
  20. 动态加载烘培贴图与Terrain转mesh

热门文章

  1. curl php 模拟来源_php采用curl实现伪造IP来源的方法
  2. 从零基础开始学习(一) esp32 micro python编程软件环境Thonny的安装
  3. 云呐|固定资产调拨流程(固定资产调拨需要哪些流程)
  4. 拼多多超越阿里淘宝,黄峥辞任董事长;蚂蚁集团CEO宣布辞职,上市陷入迷途?...
  5. 计算机字号调整,解答如何调整电脑字体大小
  6. 字符串函数的模拟实现
  7. 【网络Ping不通如何解决?】
  8. Fuzzy C-Means(模糊C均值聚类)算法原理详解与python实现
  9. 随便记录点 在 贴吧 里 讨论 广义相对论 的 想法
  10. 论文略读 | Pointing the Unknown Words