点到点轨迹规划——三次曲线,五次曲线,梯形曲线,S曲线

  • Post author:
  • Post category:其他


一. 简介

点到点的轨迹规划算法可以理解为在规定的时间T内,从已知起始点

运动到末尾点

的方法。这里引入中间变量s(t),它是时间的函数,定义域为[0,T],值域为[0,1],s与

的关系见下面公式。这个公式不难理解,当s=0时,

;当s=1时,


对t求导是速度,即:


对t求二阶导是加速度,即

所以

由于



是已知的,所以速度和加速度随时间的变化取决于

,这里的s(t)有很多种方法,比较常用的是三次函数,五次函数,梯形曲线,S曲线等。这里对这几种曲线的方法和优缺点进行一下介绍。

二. 三次曲线

三次曲线公式为


,

根据起始和终止时刻的约束条件即

这四个约束条件可以分别求出

所以

分别画出

随时间变化的曲线。细心的朋友可以看出在在初始和末了时刻加速度是不连续的,会有冲击,这也是三次曲线的缺点。

三. 五次曲线

五次曲线公式为

根据起始和终止时刻的约束条件即

这六个约束条件可以分别求出

所以

分别画出

随时间变化的曲线。从图中可以看出加速度始末时刻页是连续的,消除了三次曲线始末时刻有冲击的缺点。

四. 梯形曲线

梯形曲线在电机控制中经常用到,因为

的曲线形状为梯形,所以取名为梯形曲线,见下图。

s为分段函数,即

这里的v,a,T是有约束条件的,即

  • 当指定v,a则,

    ,且需要满足

  • 当指定v,T则,

    ,且需要满足

  • 当指定a,T则,

    ,且需要满足



曲线中可以看出在

四个时刻加速度不连续,存在冲击,为了改善这个问题有人提出S曲线。

五. S曲线

S曲线见下图,

它的定义为:

第一段:以恒定的痉挛J(加速度的导数)使加速度从0增加到预先设定的a;

第二段:以恒定的加速度加速;

第三段:已恒定的负的痉挛J(加速度的导数)使加速度从预先设定的a减到0;

第四段:以恒定的速度v匀速运动;

第五段:已恒定的负的痉挛J(加速度的导数)使加速度从0减到预先设定的-a;

第六段:以恒定的加速度-a减速;

第七段:以恒定的痉挛J(加速度的导数)使加速度从预先设定的-a增加到0;

在已知最大加速度a, 最大速度v和运行时间T时, 可由以下公式求得s曲线:



和梯形曲线一样, 也是有约束的:

解得:

我也写了Matlab程序,验证了推导是正确的,且程序中如果输入的a,v,T满足上述不等式关系,则可以运算;如果不满足上述不等式关系,通过算法可以自动调整的值,使其得到可用解,这种算法也叫自适应S曲线。

程序代码见下面链接:


https://download.csdn.net/download/fengyu19930920/10639635

例子:



版权声明:本文为fengyu19930920原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。