1 Star 5 Fork 0

chauby / DMP-matlab

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Dynamic Movement Primitives for matlab

by chauby Zou

2018.04.09

1. 简介

本代码主要是 Dynamic Movement Primitives(DMPs) 的matlab代码实现, DMPs又称为动态运动基元,基本思想是将运动过程分解为一系列的运动基元,通过运动基元的加权叠加来得到运动轨迹。

2. Dynamic System (动力系统、动态系统)

2.1 一阶动力系统

微分方程表示为 $$ \dot{x} = -\alpha x $$ 给定目标位置的微分方程表示为 $$ \begin{align} \dot{x} &= -\alpha (x-x_g)\\ &= \alpha (x_g - x) \end{align} $$ 其中,$\alpha$ 为衰减率(时间常数), $x_g$ 为目标状态。
一阶动态系统的时间响应示意图如下

2.2 二阶动力系统

二阶动力系统其实就是弹簧-阻尼系统,示意图如下所示:

其微分方程表示为 $$ m\ddot{x} = -kx-c\dot{x} $$ 其中,$m$ 为模块的质量,$k$ 为弹簧系数,$c$ 为阻尼系数。

给定目标位置的微分方程推导过程为 $$ \begin{align} m\ddot{y} &= -ky-c\dot{y} \\ m\ddot{y} &= c(-\frac{k}{c}y-\dot{y}) \\ \tau\ddot{y} &= \alpha(-\beta y -\dot{y}) \\ \tau\ddot{y} &= \alpha(-\beta (y - y^g) -\dot{y}) \\ \tau\ddot{y} &= \alpha(\beta (y^g - y) -\dot{y}) \\ \end{align} $$

其中,$\alpha=c, \beta=\frac{k}{c}, m=\tau$, $y^g$ 为设定的目标状态。二阶动态系统的时间响应示意图如下所示:

其中,$\tau=1, \alpha=1,\beta=\frac{\alpha}{4}=0.25$, $y, dy, ddy$ 分别是曲线的位置、速度和加速度信息。

其中,$\tau=1$, $\alpha$ 和 $\beta$ 的值如图中所示。

3. Dynamic Movement Primitives

动态运动基元(Dynamic Movement Primitives, DMPs)是基于动态系统的一种轨迹调制方法,通过将动作分解为一系列的基元,并使用运动基元加权的方式来实现轨迹的拟合。DMP分为离散DMP(discrete DMP)和节律DMP(rhythmicity DMP)。

3.1 离散DMP

其微分方程可以表示为

$$ \tau \ddot{y} = \alpha(\beta(g-y) - \dot{y}) + f $$

其中 $f$ 是一个非线性函数,表示外界对于动态系统的一个非线性“力”, $f$ 可以表示为

$$ f(x, g) = \frac{\sum^{N}{i=1}\psi_i w_i}{\sum^{N}{i=1}\psi_i}x(g-y_0) $$

其中,$x$ 是一个典型动态系统(canonical dynamical system), 其微分方程可以表示为 $$ \dot{x} = -\alpha_x x $$

$y_0$ 表示系统的初始值。 $w_i$ 表示权值, $\psi_i$ 表示第 $i$ 个中心值在 $c_i$的高斯函数: $$ \psi_i=exp(-h_i(x-c_i)^2) $$

4. Application

空文件

简介

Matlab语言实现的DMP, 包括Dynamic System。 展开 收起
Matlab
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Matlab
1
https://gitee.com/chauby/DMP-matlab.git
git@gitee.com:chauby/DMP-matlab.git
chauby
DMP-matlab
DMP-matlab
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891