Home / 机器人学习 / DMP:把示范写进稳定动力系统

001|DMP:把示范写进稳定动力系统

系列首页 · 时间线总览 · 下一篇

原论文:Learning Attractor Landscapes for Learning Motor Primitives,Ijspeert、Nakanishi、Schaal,NIPS 2002(论文集版本常记 2003)。原文。

先接住前作的问题

本篇是系列的起点:Day 0 阅读指南把“数据从哪里来、策略如何表示、证据在哪”分开,DMP 先解决其中的动作表示问题。照着示范时间表播放,尚不能规定目标移动或执行受扰后应怎样继续;这里要把一条轨迹变成可调整的运动生成规律。随后 PoWER会把这套表示接到回报优化,属于模块组合;ProMP则改用轨迹分布表达变异,是平行表示路线,不能继承本篇的吸引子稳定性结论。

五个前置概念

理解本篇需要五个概念:吸引子描述长期趋向;相位标记动作进度;基函数提供局部形状自由度;监督回归从示范拟合参数;底层跟踪控制把期望运动变成真实动作。

一、问题设定:目标移动后,示范轨迹怎样继续

教机械臂挥拍,最直接的办法是记录每一时刻的关节角,再照表播放。问题在于,这张表没有回答“如果球的位置变了,或者手臂被短暂挡住,下一步怎么办”。离线插值可以让曲线更平滑,却不能自动提供受扰后的行为规律。

要素 本文中的含义
学习场景 从人类运动示范学习连续运动生成器
输入 位置、速度轨迹及目标或周期参数
输出 随时间演化的期望位置与速度
学习信号 对示范对应的非线性项做回归,而非环境奖励
环境模型 不学习机器人完整动力学;假设底层能够跟踪计划
结束条件 离散系统趋向目标;周期系统持续在极限环运行

“动力系统”与“动力学模型”在这里容易混淆。前者规定期望运动怎样变化,后者预测施加力矩后真实机器人怎样变化。DMP 主要属于前者。若底层执行器过慢,即使生成的计划理论稳定,真实手臂也可能跟不上。

这也解释了为何 DMP 可以与强化学习结合,却不是一套必须靠强化学习训练的算法:示范可以初始化参数,之后回报优化可以继续修改这些参数。动作表示与训练信号是两个层次。

二、让学习项塑造过程,让吸引子决定终点

任务接口限定了要学的对象:不是机器人完整动力学,而是期望轨迹如何随相位变化。要让形状可学习又不改变终点,先把稳定线性部分与会退出的非线性部分分开。

DMP 的核心思想是把示范变成一个动力系统:系统既保留动作的形状,又保留趋向目标的结构。作者在 2002 年论文中讨论离散运动与周期运动;这里的“策略”主要生成期望运动学轨迹,实际力矩仍依赖底层控制器。原文 §2、表 1

1. 先保证最终往哪里去

原论文离散形式包含:

τz˙=αz[βz(g−y)−z],τy˙=z+f.\tau\dot z=\alpha_z[\beta_z(g-y)-z],\qquad \tau\dot y=z+f.

yy 是期望位置,zz 是内部动态量,gg 是目标,τ\tau 控制时间尺度。令 f=0f=0,就是趋向目标的简单线性系统。参数选择适当时,它像带阻尼的弹簧,能逐渐停在目标附近。

这里写的是 2002 年论文的形式。后来常见的 DMP 教程把强迫项放在加速度方程,并使用衰减相位变量;它们属于同一思想家族,但不能在讨论具体原论文时混写成同一个公式。

2. 让非线性改变过程,而不是改变终点

原文再引入规范系统的状态 x,vx,v,并令:

f(x,v,g)=∑iΨi(x)wiv∑iΨi(x).f(x,v,g)= \frac{\sum_i\Psi_i(x)w_i v}{\sum_i\Psi_i(x)}.

Ψi\Psi_i 是局部基函数,wiw_i 控制对应阶段的运动形状。最关键的是乘上的 vv:规范系统接近终点时它趋向零,因此形状项逐渐退出,剩下趋向目标的线性结构。这个门控设计解释了“可以学复杂过程,又能保留终点结构”的直觉。

不能把这句话缩成“任意神经网络都能稳定”:稳定性依赖规范系统、参数有界性和具体连接形式。若自行加入始终不消失的偏置,原来的推理就可能不成立。

3. 将示范转换成监督目标

给定示范 yd,y˙dy_d,\dot y_d,先沿示范积分得到内部量 zdz_d,然后构造:

ftarget=τy˙d−zd.f_{\mathrm{target}}=\tau\dot y_d-z_d.

接下来拟合局部权重,使 ff 接近这个目标。优化的是回归误差,机制上新增的是相位相关的非线性形状项,实验观察的则是轨迹复现和参数调节后的运动表现。三者不能混成同一个“准确率”。

周期运动则用旋转相位与稳定幅值生成规范信号,基函数沿周期分布。改变周期参数就能改变重复速度,而不必重新录制整段示范。

点吸引子要求停在目标,节律吸引子要求持续回到同一条闭合运动轨道;轨道稳定也不必让两个运动同步到相同相位。这个区分可对照Tedrake的极限环课程讲义,这里只借它辨认稳定对象,DMP的具体方程与图2参数仍以原文为准。

从连续稳定性到离散执行,还隔着采样周期

令位置误差 e=y−ge=y-g,固定目标 gg、时间尺度 τ>0\tau>0,暂令形状项 f=0f=0,则 τ2e¨+αzτe˙+αzβze=0\tau^2\ddot e+\alpha_z\tau\dot e+\alpha_z\beta_z e=0。其中 αz\alpha_z 为阻尼增益,αzβz\alpha_z\beta_z 决定恢复强度。特征根实部为负需要正增益;取 βz=αz/4\beta_z=\alpha_z/4 时是临界阻尼。这个推导说明“到达终点”来自系统极点,而拟合权重只塑造途中行为。原文 §2.1

教学检查:若临界阻尼根为 −αz/(2τ)-\alpha_z/(2\tau),前向欧拉步长 hh 对应离散根 1−hαz/(2τ)1-h\alpha_z/(2\tau),要求其绝对值小于1,即 0<h<4τ/αz0<h<4\tau/\alpha_z。把动作加快而不缩短采样周期,可能让原本稳定的连续生成器在数值积分中失稳。它是本式离散化的推导,不是论文硬件故障数据;还未计入底层力矩饱和。

门控项为什么必须退出,可以先在一维例子里检查;这样再写积分循环时,就知道哪些量能够缩放、哪些平衡条件不能破坏。

用终点偏移检查门控的作用

下面是教学构造。机械臂沿一维轨迹从 0 到 1,中间需要先快后慢。简单吸引子能到 1,但速度形状不一定像示范。学习项在运动前段增大期望变化速度,在后段减弱,最后随着门控量趋零退出。

如果把最终目标改到 1.2,目标吸引结构会把终点改过去;如果把运动时间拉长,规范系统的进度变慢。两种调整分别作用于空间与时间。它们不是保证所有中间点都按任意几何变换精确对应,更不保证途中没有障碍。

再考虑恒定偏置 f=cf=c 且永不衰减。静止要求 y˙=0\dot y=0,因而 z=−cz=-c;代入第一式得 βz(g−y)+c=0\beta_z(g-y)+c=0,即平衡点偏离 gg。这个简单推导说明门控不是装饰性设计。

三、把示范回归和离散执行接起来

连续方程和这个反例只说明结构是否合理。实际执行还要把示范变成回归目标,再以足够小的采样周期积分;下面按这两个阶段展开。

以下为教学伪代码,省略原文局部回归的自动核配置细节。

输入:示范位置 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 也会改变速度需求,因此“轨迹形状可以缩放”不意味着电机能够无代价地加速。

四、用原图分辨幅值、速度和目标的复用

前面的gg与收敛推导针对离散点吸引子;图2右侧展示的是节律系统,不能把其中的振荡中心当成离散动作终点。节律版用r0r_0调幅值、τ\tau调周期、ymy_m调振荡基线;离散挥拍改变目标gg的演示应看图3。

图2逐面板读: 原图与图注,PDF第6页。左侧每个小图是一项关节角轨迹,横轴为秒,点线是示范、实线是学得轨迹,只能比较这一周期的形状拟合。右侧都画右肘屈伸:A为学得的基线运动;B在3–7秒把r0r_0加倍,观察峰谷跨度;C在同一时间窗把τ\tau减半,观察单位时间振荡次数加倍;D把ymy_m提高1,观察振荡中心随之上移。两条竖虚线标出干预起止,D中的点线标出基线变化。右侧纵轴是该运动输出,不是误差或成功率;四个面板也不是四种算法的胜负比较。

Learning Attractor Landscapes for Learning Motor Primitives,图2:左侧虚线与实线分别是示范和拟合的关节轨迹;右侧分开改变幅值、时间尺度与中点。先区分这三种参数,再判断“复用”改变了什么。
实验图原图摘引:Ijspeert、Nakanishi、Schaal,NIPS 2002(论文集版本常记 2003),PDF第6页,图2。核对原文。原版权保留。
证据位置 实验或分析 支持的结论 不能推出的结论
§2.1、式 1–3 离散系统构造与收敛论述 门控结构保留目标吸引性 任意附加控制项都稳定
表1、图1 离散与周期系统及示例曲线 两种运动可由统一思路组织 两者使用完全相同状态方程
§3.1、图2 人形机器人复现节律运动并调节参数 所示运动可复用速度、幅值参数 任意速度下均可安全执行
§3.2、图3 示范挥拍与目标位置变化 附近目标下动作形状可以重用 任意远目标、障碍物下可用
§3.3、图4 手写轨迹参数比较 参数也能用于运动形状识别 通用视觉识别或通用技能发现

Learning Attractor Landscapes for Learning Motor Primitives,图1:左半部的离散状态逐步收敛,右半部的相位与轨迹持续周期变化;两者的稳定对象不同。
原图摘引:Ijspeert、Nakanishi、Schaal,NIPS 2002(论文集版本常记 2003),PDF第4页,图1。核对原文。左半部的离散状态逐步收敛,右半部的相位与轨迹持续周期变化;两者的稳定对象不同。
Learning Attractor Landscapes for Learning Motor Primitives,图3:上排是人类挥拍示范,下排是机器人复现;连续帧展示运动形状,不能替代目标误差统计。
原图摘引:Ijspeert、Nakanishi、Schaal,NIPS 2002(论文集版本常记 2003),PDF第7页,图3。核对原文。上排是人类挥拍示范,下排是机器人复现;连续帧展示运动形状,不能替代目标误差统计。
Learning Attractor Landscapes for Learning Motor Primitives,图4:左侧比较字形轨迹及各坐标随时间变化,右侧相关矩阵比较参数相似性,不是通用识别准确率。
原图摘引:Ijspeert、Nakanishi、Schaal,NIPS 2002(论文集版本常记 2003),PDF第8页,图4。核对原文。左侧比较字形轨迹及各坐标随时间变化,右侧相关矩阵比较参数相似性,不是通用识别准确率。

实验平台包括 30 自由度人形机器人;字形部分使用 26 个字符、每字符 5 个示例。它们分别检验物理复现与轨迹参数表示,不能当作一个统一成功率相加。原文的主要展示也不是现代大规模随机种子基准。

训练预算、误差条和跨机器人统计没有在这里逐项确认,因此不把曲线视觉相近转换成自行估算的精确提升百分比。已经确认的证据范围是原文方法、系统表与上述实验段落,未独立运行实现。

五、检查吸引性之外的接触与执行边界

上述证据把“运动形状可重用”与“整机安全”分开:下一步应检查表示没有覆盖的接触、碰撞和执行带宽,而不是继续从曲线贴合程度推安全性。

其限制来自表示边界。每个自由度都生成合适曲线,不代表整机满足接触力、碰撞和关节约束;共享相位能协调时序,却不自动解决不同身体之间的运动重定向。目标变得很远时,原先局部合理的形状也可能不再合理。这些属于对模型结构的分析,不应冒充原文已经系统测过的失败率。

追问:连续系统稳定,为什么缩短动作时间仍可能让数字执行失稳?

参考答案:缩短时间尺度 τ\tau 会让同一连续动作的变化更快。对本篇已推导的临界阻尼线性部分,前向欧拉步长需要满足 0<h<4τ/αz0<h<4\tau/\alpha_z;固定控制周期 hh 而持续减小 τ\tau,会越过该离散化条件。即便减小 hh 恢复了数值稳定,真实电机仍可能触及速度或力矩上限。可分两步核对:先在无饱和的数值积分中改变 h/τh/\tau,再在包含执行器限制的闭环中比较跟踪误差。前者检查离散根,后者检查物理可执行性,不能用一次曲线拟合同时替代。这个检验是由上文方程推出的教学设计,不是原论文新增实验。

六、把运动表示接到优化,或改成分布

  • 模块组合:PoWER保留结构化运动参数,把示范初始化后的权重交给回报优化;新增的是搜索与学习信号。
  • 平行表示路线:ProMP用权重分布表达轨迹变异及条件化,适合接着问多条示范怎样共存;它不自动拥有 DMP 的同一稳定性证明。

七、自测题与参考答案

问题 1:为什么把任意拟合函数加入稳定系统,会破坏目标收敛,而原文设计更有利?

参考答案:任意函数可能在终点仍提供非零驱动,改变平衡点甚至形成振荡。原文将形状函数与趋零的规范量相乘,使非线性影响在终点退出。关键是这种连接结构及其条件,而不只是拟合误差小。

问题 2:如果把同一挥拍动作执行得快四倍,只修改时间尺度是否足够?

参考答案:对运动生成方程可以改变时间进度,但真实执行还受到速度、加速度、力矩与跟踪带宽约束。时间压缩会显著增加这些需求。因此需要同时验证底层控制与硬件是否允许,DMP 的时间缩放性质不是物理可行性证明。

问题 3:DMP 学习到了奖励函数吗?它与强化学习怎样连接?

参考答案:这里从示范回归的是运动形状项,没有恢复任务奖励。之后可以用外部回报搜索 DMP 参数,把高维逐步动作问题变成较低维技能参数优化。表示方式、初始化信号与后续优化目标应分别说明。