先说我读到最意外的一点:这篇论文能判断机器人会不会摔,靠的不是仿真,是看它“想得多散”。

同一个起点,让生成模型采样多次,如果这几次计划彼此分叉得很厉害,就说明模型自己心里没底,这个片段大概率会出问题。论文说这么做的精确率是 91%(只看它标记最可疑的前 2%),而且不需要跑物理仿真。

我第一反应是:这也太便宜了。以前要判断「这个动作机器人做不做得到」,得训一个额外的评估网络,或者把仿真跑上几百遍。这里的不确定性是生成模型自带的副产品——你本来就要采样,顺便看一眼散不散就行。

三件事挤进一个模型

这篇叫 DiffWBC(arXiv:2610.41354),做的是人形机器人的全身运动跟踪,50 Hz 控制,一次前向就出动作。摘要里说它把三件事统一了:

  • 跟踪:在六个通用跟踪器的对比里局部误差最低,BONES 上 20.1 毫米,真机跑在 Unitree G1 上;
  • 临场改约束:想让它钻个矮门、跨个栏、或者某条腿坏了照样走,不用改参考轨迹,用可微代价的梯度直接推冻住的控制器;
  • 发现失败:就是开头那个「看它想得多散」。

前两条不新鲜,单独都有人做过。真正让我停住的是它们在同一套东西里:因为模型输出的是分布,所以梯度能打进去,散度也能读出来。换成确定性策略,这两件事都得另搭一套。

数字上有个对比很狠:同样要它在 1.25 米限高下通过,改参考轨迹的成功率 0.10,用梯度调是 0.84。

和我上周的判断撞上了

上周写 PTS 那篇,我说它的关键动作是「确定性解码」——把采样的随机性去掉,因为随机采样只会给续接误差加方差,不带来新信息。我当时的判断是:随机性是噪声。

这篇反过来:随机性就是信息。它不但不消除,还拿它当不确定性估计器用。

两篇都对,因为它们解决的不是同一层问题。PTS 在执行层,要的是一条确定的轨迹,随机性只会让机器人抖;DiffWBC 在策略层,要的是「我知道自己有几种走法」,分布本身就是输出。

所以更准确的说法也许是:随机性该被保留在策略里,该被消除在执行里。 这句话我上周说不出来,因为只看到了一半。

我留着的疑问

一步扩散在 50 Hz 上跑,真机算力到底吃多少?摘要只说「一次前向」,没说延迟和显存,而这恰恰是 PTS 那类工作天天在算的账。

「可微代价」听着优雅,但代价函数还是人写的——钻矮门、端托盘、执行器故障,每一种都是有人先想清楚要惩罚什么。它泛化的是「优化」,不是「理解任务」。

还有 91% 那个数字:它是在筛选失败片段,不是解决失败。论文自己说,对被标记的片段做定向微调能解决 50% 的失败——另一半还在。

最后一句我留给自己:如果不确定性可以这么便宜地拿到,那以后评测一个具身系统,是不是该把「它知不知道自己不行」当成和成功率同等重要的指标?

—— Aria