← 返回博客
1. 世界模型预测变化量,不预测下一状态
网络只输出这一步变了多少,再解析地加回当前状态。
\[\hat s_{t+1}=s_t+f_\phi(s_t,a_t)\tag{1}\]
- 信号太小。关节角的波动是一步变化的 11 倍,直接预测时目标几乎等于输入。
- 不用学复制。\(s_t\) 不经过网络,没有复制误差。
- 起点合理。配合输出层小初始化,一开始就预测"平均的一步变化",连续预测不易飞掉。
- 绝对值预测不了。输入去掉了水平位置和偏航,只能预测相对变化。
骨盆水平位置约 198 倍
骨盆高度约 29 倍
根部线速度约 22 倍
关节角约 11 倍
关节角速度约 3 倍
状态自身的波动 ÷ 一步变化的波动,条长按对数刻度。LAFAN1,40 条动作,50 Hz。
证据:公开复现的选择,没有对比实验。图是我算的参考动作统计。
2. 策略拆成编码器和解码器
编码器管"做什么",解码器管"怎么做"。换任务只换编码器。
\[z=\tanh\big(E(g)\big),\qquad a=D(z,\ o)\tag{2}\]
\(g\) 是目标,\(o\) 是观测,\(z\) 是 32 维潜变量。
- 控制能力可复用。平衡、接触都在解码器里,新任务不用重学走路。
- 新接口很小。速度编码器只有 MLP(256, 256),运动编码器是 2048-1024-512-256。
- 只做动作跟踪时没必要。等于一个带瓶颈的 MLP,BeyondMimic 不拆也能跟踪。
证据:设计来自 SuperMimic 论文,但论文和公开复现都没有做"拆 vs 不拆"的对比。
3. 朝向变化用轴角,所以输出 70 维而不是 71 维
状态里朝向是 4 维四元数,变化量里换成 3 维轴角,所以少 1 维。其余 67 维一一对应。
\[R_{t+1}=R_t\exp(\Delta_R),\qquad \Delta_R\in\mathbb R^3\tag{3}\]
- 旋转不能相加。四元数加增量后不再是单位四元数,增量也没有物理意义。
- 四元数有约束。4 个数只有 3 个自由度,网络要多满足"模长为 1"。
- 轴角正合适。20 毫秒内转动很小,轴角接近 0;任意 3 个数经 \(\exp\) 都是合法旋转。
证据:公开复现的选择,没有对比实验。
4. 世界模型输入用 245 维特征,不用 71 维原始状态
特征全部由 71 维状态算出,没有新信息,只是让网络更好学。
\[\begin{aligned}x=\big[\,&p_z,\ \operatorname{rot6d}(H^\top R),\\ &H^\top v,\ R^\top\omega,\ q-q_0,\ \dot q,\\ &H^\top(P_i-p),\ H^\top V_i\,\big]\end{aligned}\tag{4}\]
\(H\) 是偏航旋转,\(P_i\)、\(V_i\) 是 29 节连杆的位置和速度。共 245 维:高度 1、倾斜 6、根部速度 3 + 3、关节 29 + 29、连杆 87 + 87。
- 去掉无关量。水平位置和偏航不影响物理,去掉后不用靠网络去学这种不变性。
- 朝向连续。四元数 \(\pm\mathbf q\) 是同一朝向,6D 连续且唯一。
- 直接给部位位置。接触取决于手脚位置,而它们要经过多层旋转才算得出,所以把 174 维结果直接喂进去。
证据:公开复现的选择,论文没写输入是什么,也没有对比实验。
5. 网络只输出相对基准的小偏移
让输出 0 本身就是合理行为,网络只学修正量。
\[\begin{aligned}\text{策略:}\ &q_{\text{target}}=q_0+\text{scale}\cdot a\\ \text{世界模型:}\ &\hat s_{t+1}=s_t+\Delta\end{aligned}\tag{5}\]
- 策略以默认姿态为基准。\(a=0\) 时朝站姿发力,不会乱动。
- 世界模型以当前状态为基准。\(\Delta\) 接近均值时,状态只做平均的一步变化。
- 公式能写的不交给网络。PD 控制器和积分都是解析的,网络不用学高频稳定,也不用学复制状态。
- 尺度统一。动作乘逐关节 scale,\(\Delta\) 乘 \(\sigma_\Delta\),网络输出都在单位尺度附近。
- 配合输出层小初始化。增益 0.01,让训练一开始输出就接近 0。
证据:公开复现的做法,没有对比实验。PD 目标比力矩好学,见 Peng 和 van de Panne 2017 年的动作空间比较。
6. sim.step() 里发生了什么
一个物理步按顺序从几何算到力,再算到运动。
- 正运动学:由 \(q\) 算出连杆位姿。
- 碰撞检测:找出接触点。
- 算力:PD 力矩、重力、科氏力等。
- 解约束:求接触力、摩擦力、关节限位力。
- 求加速度:\(\ddot q=M^{-1}(\tau+\text{其他力})\)。
- 积分:更新速度,再更新位置。
证据:MuJoCo 的标准计算流程。
7. 策略不直接预测力,握力来自"目标压进物体"
PD 不知道物体。策略把目标角设在物体里面,手指被挡住,误差不消失,PD 就持续出力。
\[\tau=k_p\,(q_{\text{target}}-q)-k_d\,\dot q\tag{6}\]
- 物体没有电机。它只受重力和接触力,不能直接给它力矩。
- 力是隐含的。握力大致正比于 \(k_p\) 乘"目标比实际多压进去的量"。
- 分工。策略给目标角,PD 出关节力矩,物理解出接触力。
- 训练时可以帮一把。给物体加辅助力,再衰减到 0;部署时没有这个力。
- 想明确控制力。让策略输出 \(k_p\)(变阻抗),或输入触觉。
证据:PD 和接触的一般机理,不是某个对比实验的结论。