动态运动基元(DMP)时间放缩系数详解

动态运动基元(DMP)时间放缩系数 \(\tau\) 详解

动态运动基元 (Dynamic Movement Primitive, DMP), 是一种轨迹规划的模仿学习方法. 其在学术界有大量的相关论文研究, 但是至今未有教材完整的介绍 DMP 这一方法. 本系列希望能够将 DMP 基础以更加通俗易懂的形式讲解 DMP , 加入一些自己的理解, 讲解一些 DMP 的初学者会困惑, 论文和网上博客未曾讲到的东西. 本文将深入讲解 DMP 中时间放缩系数 \(\tau\) , 包括一阶方程如何向二阶方程转换, \(\tau\) 的实际物理意义, \(\tau\) 的作用等等.

动态运动基元公式

DMP 的核心是通过一个简单的二阶线性系统 (弹簧-阻尼系统), 并通过加入非线性力项(forcing term) 使其表达出复杂的行为. 其核心公式如下:

\[\tau \dot{z}=\alpha _z\left( \beta _z\left( g-y \right) -z \right) +f\left( x \right) \]

\[\tau \dot{y}=z \]

其中 \(x\)相位变量, \(z\) 是辅助变量, \(g\) 是运动的期望最终位置, \(f\) 是非线性力项, \(\tau\) 是时间放缩系数, \(\alpha _z\), \(\beta _z\) 类似于二阶线性系统PD参数. 如果选择 \(\tau >0\), 系统将达到临界阻尼状态并收敛到 \(y=g, z=0\) 处的唯一的吸引点. \(f(x)\) 被定义为 \(N\) 个非线性基函数 (Radial Basis Function, RBF) 的线性组合, 这使得机器人能够从初始位置 \(y_0\) 平滑地跟踪到最终配置 \(g\).

如果写成二阶线性系统, 则

\[\tau ^2\ddot{y}=\alpha _z\left( \beta _z\left( g-y \right) -\tau \dot{y} \right) +f\left( x \right) \]

二阶形式的推导

相信大家看到这里都会蒙圈, 第一反应是直接将公式 \(\tau \dot{y}=z\) 代入到第一个公式中, 我们会得到

\[\tau \ddot{y}=\alpha _z\left( \beta _z\left( g-y \right) -\tau \dot{y} \right) +f\left( x \right) \]

那么这里 \(\ddot{y}\) 系数为什么是 \(\tau^2\) 呢? 且这里求导究竟是对谁求导, 时间 \(t\) 还是相位 \(x\) . 作者研究 DMP 一年了, 也没有见到有人写这方面的东西, 另外还有 DMP 的开篇之作论文[1]中写到的

这里甚至时间放缩系数 \(\tau\) 只存在于 \(\ddot{y}\) 项中, 更是离谱, 后来才理解这里是的 \(\tau\) 和后面一阶线性系统中的 \(\tau\) 是两个参数, 当然这是后话.

下面开始进行一阶形式向二阶形式的推导, 首先要明确的是这里 \(\dot{y}\) 求导符号是 \(\frac{dy}{dt}\), \(\ddot{y}\) 表示 \(\frac{d^2y}{dt^2}\), 将 \(\tau \dot{y}=z\), 于是对于两个一阶方程, 我们可以写为如下形式

\[\tau \frac{dz}{dt}=\alpha _z\left( \beta _z\left( g-y \right) -z \right) +f\left( x \right) \]

\[\tau \frac{dy}{dt}=z \]

于是有

\[\tau \frac{d}{dt}\left( \tau \frac{dy}{dt} \right) =\alpha _z\left( \beta _z\left( g-y \right) -\tau \frac{dy}{dt} \right) +f\left( x \right) \]

所以

\[\tau ^2\frac{d^2y}{dt^2}=\alpha _z\left( \beta _z\left( g-y \right) -\tau \frac{dy}{dt} \right) +f\left( x \right) \]

\[\tau ^2\ddot{y}=\alpha _z\left( \beta _z\left( g-y \right) -\tau \dot{y} \right) +f\left( x \right) \]

这就是 DMP 核心公式的一阶形式向二阶形式的推导过程

物理意义

\(\tau\) 控制了时间的放缩, 因为实际示教轨迹编码过程中, 时间是不可控的, 我们希望模仿复现轨迹时候, 可以实现轨迹执行速度的快慢, 即 DMP 时间尺度 (temporal scaling)[1:1]泛化效果

  • 在一阶形式中, \(\tau\) 直接影响相位变量的演化速度
  • 在二阶形式中, \(\tau ^2\) 则表征了加速度的时间放缩

\(\tau\) 的含义

假定时间缩放系数是常数, 则

对于不同时间尺度的轨迹生成, 现在我们来考虑放缩前原始轨迹 (original) 和放缩后期望轨迹 (desired), 我们有

原始轨迹 (放缩前)

\[\dot{y}_{original}=z_{original} \]

期望轨迹 (放缩后)

\[\tau _{desired}\ \dot{y}_{desired}=z_{desired} \]

其中辅助变量 \(z\) 应是时间尺度不变性 (即 \(z_{original}=z_{desired}\) ), 且速度与轨迹总执行时间 \(T\) 成反比, 于是我们有

\[\tau =\frac{\dot{y}_{original}}{\dot{y}_{desired}}=\frac{T_{desired}}{T_{original}} \]

可以见得, \(\tau\) 与轨迹总执行时间成正比. 更一般地来说, 在示教和模仿复现轨迹中, 如果我们将原始的示教时间设定为 \(T_{original}=1s\), 则有

\[\tau =T_{desired} \]

放缩系数即代表了轨迹实际执行时间

作用: 通过调节 \(\tau\) , 我们可以调节 DMP 系统的实际执行速度.


  1. Ijspeert A J, Nakanishi J, Hoffmann H, et al. Dynamical movement primitives: learning attractor models for motor behaviors[J]. Neural computation, 2013, 25(2): 328-373. ↩︎ ↩︎

posted @ 2025-06-21 15:33  今天9点醒  阅读(77)  评论(0)    收藏  举报