把噪声与目标动作之间画一条直线,就能让机械臂沿着安全路线抓取吗?不能。训练分布中的插值、生成模型求解的流,以及真实空间中的运动路径,属于三个不同对象。
Flow Matching 的原始论文讨论通过回归条件概率路径的向量场训练连续生成模型。对最简单的线性插值 x_t=(1−t)x_0+t x_1,样本配对对应的目标速度是 x_1−x_0。但模型实际学习的是给定 x_t、t 及条件后的速度预测,不是每次都预先知道目标 x_1。
下面只演示一维积分:先用已知常速度检查 Euler 更新,再用随状态变化的速度观察离散误差。这里没有训练神经网络,也没有生成机器人动作。
import math def euler(field, x0, steps): if not isinstance(steps, int) or steps <= 0: raise ValueError("positive step count required") x = float(x0) dt = 1.0 / steps for i in range(steps): x += dt * field(x, i * dt) return x start, target = -1.0, 3.0 constant = lambda x, t: target - start assert math.isclose(euler(constant, start, 4), target) # dx/dt=x, x(0)=1 has the exact solution x(1)=e. coarse = euler(lambda x, t: x, 1, 4) fine = euler(lambda x, t: x, 1, 100) assert abs(fine - math.e) < abs(coarse - math.e) assert fine < math.e print("constant endpoint=", euler(constant, start, 4)) print("Euler error: coarse=", abs(coarse-math.e), "fine=", abs(fine-math.e))常速度例子恰好能准确抵达终点,不代表一般流场用四步就够。真实模型还会引入速度预测误差;增加积分步数只能控制数值求解的一部分误差,不能修复错误条件或训练数据缺口。
如果输出是一段关节角序列,平滑也不代表无碰撞。若输出是末端位姿,还要经过逆运动学、关节约束和接触控制。10 月 8 日的 ARC 机器人推理论文强调将推理落到下一步动作及其因果后果,这与“把文字计划直接当控制命令”有明显区别。
测试动作生成器时,生成质量、积分延迟、约束违反率与闭环任务完成率应分别测量。本文没有调用 VLA、GPU 或机器人;代码的误差只属于所写的一维微分方程。训练图上的直线提供了一个便于学习的路径,机器人是否安全执行,还需要控制系统回答。