Home
/
机器人学习
/
DMP:把示范写进稳定动力系统
# 001|DMP:把示范写进稳定动力系统 [系列首页](README.md) · [时间线总览](00-发展时间线总览.md) · [下一篇](002-apprenticeship.md) **原论文**:*Learning Attractor Landscapes for Learning Motor Primitives*,Ijspeert、Nakanishi、Schaal,NIPS 2002(论文集版本常记 2003)。[原文](https://proceedings.neurips.cc/paper_files/paper/2002/hash/23c97e9cb93576e45d2feaf00d0e8502-Abstract.html)。 ## 一、为什么一条示范轨迹还不够 教机械臂挥拍,最直接的办法是记录每一时刻的关节角,再照表播放。问题在于,这张表没有回答“如果球的位置变了,或者手臂被短暂挡住,下一步怎么办”。离线插值可以让曲线更平滑,却不能自动提供受扰后的行为规律。 DMP 的核心思想是把示范变成一个动力系统:系统既保留动作的形状,又保留趋向目标的结构。作者在 2002 年论文中讨论离散运动与周期运动;这里的“策略”主要生成期望运动学轨迹,实际力矩仍依赖底层控制器。[原文 §2、表 1](https://proceedings.neurips.cc/paper_files/paper/2002/file/23c97e9cb93576e45d2feaf00d0e8502-Paper.pdf) 一句话概括:通过学习对简单稳定系统的变形,机器人可以复用示范动作;代价是目标、坐标系和跟踪控制仍需设计,收敛也不等于避障或接触安全。 ## 二、任务、信号与假设 | 要素 | 本文中的含义 | |---|---| | 学习场景 | 从人类运动示范学习连续运动生成器 | | 输入 | 位置、速度轨迹及目标或周期参数 | | 输出 | 随时间演化的期望位置与速度 | | 学习信号 | 对示范对应的非线性项做回归,而非环境奖励 | | 环境模型 | 不学习机器人完整动力学;假设底层能够跟踪计划 | | 结束条件 | 离散系统趋向目标;周期系统持续在极限环运行 | “动力系统”与“动力学模型”在这里容易混淆。前者规定期望运动怎样变化,后者预测施加力矩后真实机器人怎样变化。DMP 主要属于前者。若底层执行器过慢,即使生成的计划理论稳定,真实手臂也可能跟不上。 这也解释了为何 DMP 可以与强化学习结合,却不是一套必须靠强化学习训练的算法:示范可以初始化参数,之后回报优化可以继续修改这些参数。动作表示与训练信号是两个层次。 ## 三、从简单吸引子到示范形状 ### 1. 先保证最终往哪里去 原论文离散形式包含: $$ \tau\dot z=\alpha_z[\beta_z(g-y)-z],\qquad \tau\dot y=z+f. $$ $y$ 是期望位置,$z$ 是内部动态量,$g$ 是目标,$\tau$ 控制时间尺度。令 $f=0$,就是趋向目标的简单线性系统。参数选择适当时,它像带阻尼的弹簧,能逐渐停在目标附近。 这里写的是 2002 年论文的形式。后来常见的 DMP 教程把强迫项放在加速度方程,并使用衰减相位变量;它们属于同一思想家族,但不能在讨论具体原论文时混写成同一个公式。 ### 2. 让非线性改变过程,而不是改变终点 原文再引入规范系统的状态 $x,v$,并令: $$ f(x,v,g)= \frac{\sum_i\Psi_i(x)w_i v}{\sum_i\Psi_i(x)}. $$ $\Psi_i$ 是局部基函数,$w_i$ 控制对应阶段的运动形状。最关键的是乘上的 $v$:规范系统接近终点时它趋向零,因此形状项逐渐退出,剩下趋向目标的线性结构。这个门控设计解释了“可以学复杂过程,又能保留终点结构”的直觉。 不能把这句话缩成“任意神经网络都能稳定”:稳定性依赖规范系统、参数有界性和具体连接形式。若自行加入始终不消失的偏置,原来的推理就可能不成立。 ### 3. 将示范转换成监督目标 给定示范 $y_d,\dot y_d$,先沿示范积分得到内部量 $z_d$,然后构造: $$ f_{\mathrm{target}}=\tau\dot y_d-z_d. $$ 接下来拟合局部权重,使 $f$ 接近这个目标。优化的是回归误差,机制上新增的是相位相关的非线性形状项,实验观察的则是轨迹复现和参数调节后的运动表现。三者不能混成同一个“准确率”。 周期运动则用旋转相位与稳定幅值生成规范信号,基函数沿周期分布。改变周期参数就能改变重复速度,而不必重新录制整段示范。 ## 四、一次训练与执行过程 以下为教学伪代码,省略原文局部回归的自动核配置细节。 ~~~text 输入:示范位置 y_demo、速度 dy_demo、目标 g、持续时间 T 选择稳定线性系统参数与规范系统 根据 T 设置时间尺度 tau 沿示范积分内部状态 z_demo target = tau * dy_demo - z_demo 用相位相关的局部基函数回归 target,得到权重 w 执行: 初始化运动系统与规范系统 重复直到离散动作完成: 推进规范系统,得到 x 和 v 计算局部核响应与形状项 f(x, v, g) 积分 y、z,形成期望运动 把期望运动交给底层跟踪控制器 如采用误差反馈,按跟踪误差调节运动进度 输出:期望轨迹及跟踪执行结果 ~~~ 数据记录时需要一致的时间单位和坐标单位。把角度值从弧度换成度,却不调整相关目标与参数,会改变回归尺度。执行时改变 $\tau$ 也会改变速度需求,因此“轨迹形状可以缩放”不意味着电机能够无代价地加速。 ## 五、原文怎样检验这些性质 | 证据位置 | 实验或分析 | 支持的结论 | 不能推出的结论 | |---|---|---|---| | §2.1、式 1–3 | 离散系统构造与收敛论述 | 门控结构保留目标吸引性 | 任意附加控制项都稳定 | | 表 1、图 1 | 离散与周期系统及示例曲线 | 两种运动可由统一思路组织 | 两者使用完全相同状态方程 | | §3.1、图 2 | 人形机器人复现节律运动并调节参数 | 所示运动可复用速度、幅值参数 | 任意速度下均可安全执行 | | §3.2、图 3 | 示范挥拍与目标位置变化 | 附近目标下动作形状可以重用 | 任意远目标、障碍物下可用 | | §3.3、图 4 | 手写轨迹参数比较 | 参数也能用于运动形状识别 | 通用视觉识别或通用技能发现 | 实验平台包括 30 自由度人形机器人;字形部分使用 26 个字符、每字符 5 个示例。它们分别检验物理复现与轨迹参数表示,不能当作一个统一成功率相加。原文的主要展示也不是现代大规模随机种子基准。 训练预算、误差条和跨机器人统计没有在这里逐项确认,因此不把曲线视觉相近转换成自行估算的精确提升百分比。已经确认的证据范围是原文方法、系统表与上述实验段落,未独立运行实现。 ## 六、用一个小例子理解终点与形状的分工 下面是教学构造。机械臂沿一维轨迹从 0 到 1,中间需要先快后慢。简单吸引子能到 1,但速度形状不一定像示范。学习项在运动前段增大期望变化速度,在后段减弱,最后随着门控量趋零退出。 如果把最终目标改到 1.2,目标吸引结构会把终点改过去;如果把运动时间拉长,规范系统的进度变慢。两种调整分别作用于空间与时间。它们不是保证所有中间点都按任意几何变换精确对应,更不保证途中没有障碍。 再考虑恒定偏置 $f=c$ 且永不衰减。静止要求 $\dot y=0$,因而 $z=-c$;代入第一式得 $\beta_z(g-y)+c=0$,即平衡点偏离 $g$。这个简单推导说明门控不是装饰性设计。 ## 七、贡献与适用边界 最有价值的贡献是把学习放入一个可分析的运动结构,而不是仅用一条曲线拟合另一条曲线。低维权重便于示范初始化、参数搜索和技能复用,也为之后的 ProMP、策略搜索和技能组合提供了比较对象。 其限制来自表示边界。每个自由度都生成合适曲线,不代表整机满足接触力、碰撞和关节约束;共享相位能协调时序,却不自动解决不同身体之间的运动重定向。目标变得很远时,原先局部合理的形状也可能不再合理。这些属于对模型结构的分析,不应冒充原文已经系统测过的失败率。 理解本篇需要五个概念:吸引子描述长期趋向;相位标记动作进度;基函数提供局部形状自由度;监督回归从示范拟合参数;底层跟踪控制把期望运动变成真实动作。 | 原有问题 | 作者改动 | 为什么可能有效 | 实验证据 | 代价与局限 | |---|---|---|---|---| | 示范回放缺少可调整行为规律 | 稳定规范系统与可学习形状项 | 学习过程变化,同时保留终点结构 | 表 1、图 1–4及 §3 | 依赖跟踪控制与表示假设,不负责通用避障 | ## 八、自测题与参考答案 **问题 1:为什么把任意拟合函数加入稳定系统,会破坏目标收敛,而原文设计更有利?** 参考答案:任意函数可能在终点仍提供非零驱动,改变平衡点甚至形成振荡。原文将形状函数与趋零的规范量相乘,使非线性影响在终点退出。关键是这种连接结构及其条件,而不只是拟合误差小。 **问题 2:如果把同一挥拍动作执行得快四倍,只修改时间尺度是否足够?** 参考答案:对运动生成方程可以改变时间进度,但真实执行还受到速度、加速度、力矩与跟踪带宽约束。时间压缩会显著增加这些需求。因此需要同时验证底层控制与硬件是否允许,DMP 的时间缩放性质不是物理可行性证明。 **问题 3:DMP 学习到了奖励函数吗?它与强化学习怎样连接?** 参考答案:这里从示范回归的是运动形状项,没有恢复任务奖励。之后可以用外部回报搜索 DMP 参数,把高维逐步动作问题变成较低维技能参数优化。表示方式、初始化信号与后续优化目标应分别说明。