在MATLAB中创建2点(缓动)之间的S曲线

我正在研究机器人项目的一些轨迹生成。它在步态周期内上下移动机器人的躯干。在MATLAB中创建2点(缓动)之间的S曲线

当我改变躯干的设定值时,我使用linspace()在当前位置和所需位置之间创建一条直线。不过,我想减轻线的开始和结束。我想要创建一个S曲线,以防止线路开始和结束时的冲击。

我曾看过使用sigmoid函数sigmf(x,[a c]),但我不知道依赖关系是ac变量关于2点之间的距离。

如何使用MATLAB在2点之间生成平滑的S曲线以缓解线的端点?

实施例:

我有2点:y = 0.9y = 0.3。我需要创建一个S曲线开始于x=0,并结束于x=1000

x轴永远是01000之间的Y轴总是会内[0 1][1 0]

回答:

MATLAB的文档给你一些线索:

http://www.mathworks.com/help/fuzzy/sigmf.html?requestedDomain=www.mathworks.com

附近有一座小游戏应该明确,但参数似乎意味着和c“上升/下降的开始”的意思是“过渡,其中T的中点他的S曲线值是0.5“。

最重要的是,它给你它使用的确切公式。您可以轻松绘制出不同的值并查看它的行为。

你真正的问题可能是你需要重复求解适当的常量a和c给定的开始和结束点。两个未知数a和c;两个方程式,每个方程起点和终点各一个。对于给定的开始点和结束点,您应该求解a和c的闭式表达式,然后使用结果曲线在它们之间进行平滑过渡。

以上是 在MATLAB中创建2点(缓动)之间的S曲线 的全部内容, 来源链接: utcz.com/qa/263741.html

回到顶部