四足机器人-CPG控制&Hopf振荡器引入beta参数

一、回顾

我们先来回顾一下hopf振荡器的最初形式:
d x d t = α ( μ r 2 ) x ω y \frac{dx}{dt} = \alpha(\mu - r^2)x - \omega y

d y d t = α ( μ r 2 ) y + ω x \frac {dy}{dt} = \alpha(\mu-r^2)y+\omega x

在这微分方程组中,我们能够通过 α , μ , ω \alpha,\mu, \omega 三个参数来控制hopf振荡器的动态特性,分别对应收敛速度,幅值,以及周期,其具体公式如下:

  • 幅值 A = μ A = \sqrt{\mu}
  • 周期 T = 2 π ω T = \frac{2\pi}{\omega}

尽管通过震荡周期可以控制机器人的前进速度,通过幅值来控制关节的活动范围,但这对于我们的四足机器人来说,这可能远远不够用,因为我们可能需要改变机器人的运动步态来适应不同的地形,以及实现更低能耗的运作。

二、引入 β \beta

首先我们来考虑不同的步态。尽管我们可以通过控制hopf振荡器之间的耦合关系来控制相位,但是如果不对hopf振荡器进行改进的话,就无法单独控制振荡器的输出信号的形状,即上升沿与下降沿所用的时间是一致的,是一个对称的信号。
在这里插入图片描述

为了能够对这两者进行单独控制,使其能够适应不同负载因子下的运动模式,对 ω \omega 进行以下改进,引入参数a(定值)和 β \beta

{ ω = ω s t e a y + 1 + ω s w e a y + 1 ω s t = 1 β β ω s w \left\{\begin{matrix} \omega =& \frac{\omega_{st}}{e^{-ay}+1} + \frac{\omega_{sw}}{e^{ay}+1}\\ \\ \omega_{st} =& \frac{1-\beta}{\beta} \omega_{sw} \end{matrix}\right.

其中 ω s w , ω s t \omega_{sw}, \omega_{st} 分别表示摆动相和支撑相的频率, β \beta 为负载因子,用于决定,摆动相和支撑相的比例关系,最终我们的模型如下:

d x d t = α ( μ r 2 ) x ω y d y d t = α ( μ r 2 ) y + ω x r 2 = x 2 + y 2 ω = ω s t e a y + 1 + ω s w e a y + 1 ω s t = 1 β β ω s w \begin{matrix} \frac{dx}{dt}=& \alpha(\mu-r^2)x-\omega y\\ \\ \frac{dy}{dt}=& \alpha(\mu-r^2)y + \omega x\\ \\ r^2= & x^2 + y^2\\ \\ \omega=&\frac{\omega{st}}{e^{-ay}+1}+ \frac{\omega_{sw}}{e^{ay}+1} \\ \\ \omega_{st} =& \frac{1-\beta}{\beta}\omega_{sw} \end{matrix}

给定参数 α = 100 , μ = 1 , a = 50 \alpha=100, \mu=1, a=50 ,分别取 β = 0.75 , 0.5 \beta=0.75,0.5 ,我们得到图像(x值曲线)
在这里插入图片描述

我们将其与 β = 0.5 \beta=0.5 时的点运动放在一起,看下其点的运动变化:
在这里插入图片描述

发布了34 篇原创文章 · 获赞 221 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/weixin_41045354/article/details/104554298
今日推荐