Hz 与 fps:机器人采集率与控制频率详解

为什么机器人平台以 240 Hz 采集,策略却只在 30 Hz 上动作?拆解采集率与控制频率的区别,以及多速率感知的代价。

阅读约 6 分钟

一台叠衣服的机械臂上,摄像头每秒拍下 240 帧。驱动夹爪的策略网络每秒只醒来 30 次。同一台机器人,同一条毛巾,系统的两半,一半在看,一半在动,速度却相差 8 倍。

这道差距并非工程上的马虎,而是当下几乎每一套严肃操作栈都在重复的设计选择。可是这里 240 Hz、那里 30 Hz、中间又冒出一个 50 Hz,这些数字往往报得含糊,让新人误以为它们可以互换。其实不能。Hz 和 fps 衡量的是相关却不同的东西,把两者混为一谈,正是一个数据集最终拍出了画质精美、策略却学不动的视频的原因。

本文把这两个速率拆开来看:高采集率到底买到了什么,控制频率为何顽固地压得很低,以及两者之间必须发生什么,才能让一个用人类演示数据训练出来的模型不被自己的时间戳噎住。

两个很少对得上的时钟

先从术语说起,因为混乱正是从这里开始的。fps(每秒帧数)是一种采样率:传感器多久写一次样本。Hz 只是每秒周期数,它挂在系统里的每一个时钟上:摄像头曝光、IMU 采样、力矩读出、控制回路、策略推理步。说一台机器人跑在 240,在你讲清楚是 240 个什么之前,这句话毫无意义。

一套典型的操作平台会同时跑至少四个时钟。RGB 摄像头 30 到 60 fps,深度有时更低。惯性测量单元(IMU)100 到 1000 Hz。力矩传感器 500 Hz 到几 kHz。而真正下达关节目标的控制回路,对一个学习型策略来说往往只有 15 到 50 Hz,尽管底层电机控制器把电流环闭合在 1 kHz 甚至更高。五个时钟,横跨三个数量级,每一个都得先对齐,模型才能看到哪怕一个样本。

为什么采集想要快

高采集率的理由是物理的,不是审美的。三条原因最重要。

接触很快。指尖触到刚性物体的一瞬,力在一两毫秒内飙升。用 30 Hz 采这个通道,你会完全错过这个瞬变:先看到「没接触」,再看到「已经在压」,中间什么都没有。抓取质量、打滑、冲击都活在这道缝里,这正是力矩通道要读到几百赫兹甚至更高的原因。

Nyquist 不留情面。要重建一个信号,采样率必须高于其最高频率的两倍。80 Hz 的肌腱颤动或刀具振颤,需要 160 Hz 以上才不至于混叠成一堆垃圾。欠采样不会把信号变糊,而是伪造出一个看起来很真、频率却更低的假信号。

模糊就是信息的丢失。30 fps、长曝光的摄像头会把快速移动的夹爪抹成一片。更高的帧率配更短的曝光能保住边缘的清晰,这对一个读取精细运动的模型,比对一个看回放的人重要得多。

用你在意的最快事件的速度去采集世界,再把策略仍能稳妥执行的最慢速率交给它。这是两个不同的数字,把它们当成一个,正是最典型的新手错误。

为什么控制保持慢

既然快这么好,为什么不让策略也跑在 240 Hz?因为策略很贵,而世界很宽容。

一个现代的视觉-语言-动作(VLA)模型是一张很大的神经网络。一次前向推理在数据中心 GPU 上要花几十毫秒,装到机器人身上的算力则更慢。若每个控制节拍都推理一次,你需要一次不到 5 ms 的前向,而没有哪个像样体量的模型能做到。于是这个领域用动作分块(action chunking)把两个速率解耦:策略看一次场景,预测出一小段未来动作序列,再由一个更廉价的控制器把它们逐个吐出,同时下一次推理已经在跑。Physical Intelligence 的 π0 用 flow matching,把动作块以大约最高 50 Hz 的速率输出,而那张沉重的 transformer 跳动得稀疏得多;NVIDIA 的 GR00T 沿用同样的「预测一块」范式。

第二个原因是操作任务本身容得下慢。叠毛巾、插接头都是准静态任务:手臂相对于感知移动得很慢,30 Hz 的指令流已经足够平滑。动态任务,奔跑步态、接抛物、甩鞭,才要求更高的控制率,而且底下通常是另一套非学习型控制器。

一套操作栈里有代表性的采样与控制速率。数值为近似,随平台不同而变化。
信号或回路典型速率为何是这个速率
RGB 摄像头30-60 fps足够慢速操作,受带宽与存储限制
力矩传感器500 Hz 到几 kHz接触瞬变是毫秒量级
IMU100-1000 Hz振动与快速旋转在此之下会混叠
学习型策略(控制)15-50 Hz受模型推理时延限制
电机电流环1 kHz 起底层伺服的稳定性

对齐的税

多个时钟带来一个容易被低估的记账问题。如果摄像头在 t 时刻给一帧打上时间戳,力传感器在 t 加 3 ms 打上一次读数,模型该把哪个动作和哪个观测配到一起?配错了,你就教给策略一个因果谎言:先压,再看,而不是先看,再压。

所以每一个严肃的数据集都要重采样。原始流以各自的原生速率进来,再被对齐到一条共同的时间线上,通常是控制速率,逐通道用插值或最近邻匹配。这正是「240 Hz 采集,30 Hz 输出」这句话的价值所在:你高速录制以捕捉快事件,再刻意降采样到策略消费的速率,同时把高速通道留着,供日后需要的人取用。Hugging Face 的 LeRobot 数据集格式把逐特征的时间戳写进结构里,正是为了让这种对齐可复现,而不是靠口口相传。

把时间戳扔掉,你就再也无法重做对齐。这是原始、高速率、时间戳规整的采集,比预先烘焙好的 30 Hz 片段更值钱的安静理由:那些片段已经替你做了一些你永远无法回头的选择。

公开数据集到底记在什么速率

开放语料里的数字,让这道跨度变得具体。

  • DROID 把一台 Franka 机械臂配上三路相机视角,以大约 15 Hz 的控制速率发布轨迹,这个刻意压低的数字是为了让学习型策略跟得上。参见 DROID 数据集。
  • Ego4D,数千小时的第一人称人类视频,以 30 fps 分发:读人类意图和手部动作够用,对快速接触则偏粗,这恰是其设计者为了规模而接受的取舍。参见 Ego4D
  • Open X-Embodiment 把跨 22 种机器人本体的六十多个数据集缝在一起,它们的控制频率大致横跨 3 到 30 Hz,这就是为什么在其上做跨数据集训练的人必须先重采样。无视这种不一致的模型,是在一堆对不齐的时钟之间学习。参见 Open X-Embodiment

所以下次一份规格书吹嘘某个孤零零的大数字时,问一句:240 个什么,对着哪个时钟?有意思的工程从不在峰值速率里。它在那道诚实的落差里,在机器人感知世界的速度与它敢于行动的速度之间,也在于把足够多的快信号留在手边,让重做那个选择的权利始终归你。

capture-ratecontrol-frequencymulti-rate-sensingaction-chunking

来源