操作中的感觉运动环路

一个操作策略活在感觉运动环路之中。如果采集破坏了感知与动作之间的时序,数据就会教会机器人完全错误的东西。

阅读约 6 分钟

让一个机器人去拿起一只马克杯,然后在接触前的一瞬间切断它的摄像头。如果策略仍然成功了,那它其实并没有在看,它只是记住了一段动作。一个真正在操作世界的机器人,运行的是一个紧密的闭环:感知、决策、动作、再感知,每秒重复许多次。打破这个环,技能就会崩塌。

这就是感觉运动环路(sensorimotor loop),它是操作的核心。感知驱动动作,动作改变世界,被改变的世界又反馈回感知。这个环路不是幻灯片上的一张示意图,而是一份以毫秒计量的时序契约,它决定了采集到的示范数据,究竟能不能教会机器人任何有用的东西。

感知、动作,以及两者之间的时钟

一个操作策略把观测映射到动作。这样平铺直叙地说,它听起来是静态的。其实不然。一个动作的价值,取决于它被选定的那一刻,所依据的观测有多新鲜。给控制器喂一帧延迟了 200ms 的画面,它就是在照着一张过去的照片开车。

环路的每一部分,都以自己的频率运行。腕部摄像头可能以 30 fps 传输。力-力矩传感器每秒可上报数百次。底层控制器可能以 500 Hz 或 1 kHz 闭合其关节环路。人对视觉事件的反应大约在 200ms 量级,这正是遥操作系统要内建相应延迟的原因。这些频率不是无关紧要的细节。它们定义了策略能对什么做出反应,以及反应得有多快。

表 1:操作感觉运动环路的构成要素及其采集要求
环路要素典型频率采集必须保留什么
视觉(RGB 或深度)30-60 fps每帧一个时间戳、曝光时序
本体感受100-1000 Hz与视觉对齐的关节状态
力-力矩100-1000 Hz精确到毫秒的接触起始点
动作或指令10-100 Hz是哪个观测驱动了它

为什么采集要么保住环路,要么毁掉它

下面是那种毁掉本来不错的数据集的失败。你录下了漂亮的视频和干净的关节轨迹,但你把它们记录在各自独立的时钟上,从未对齐。现在训练管线无法说清,人在施加某个力的时候,究竟是在对哪个观测做出反应。因果链,也就是整件事的意义所在,就此消失了。

保住环路意味着三件事。把每一路数据流同步到一个共同的时钟上,让一次力的尖峰能对上引发它的那一帧。以足够高的频率采样,好让短暂的接触事件不会被抹平进单次读数里。并且把动作记录在驱动它的那个确切观测旁边,而不是两帧之后的观测旁边。

接触是最不留情面的情形。轴插入孔、手指找到边缘:这些事件只持续几毫秒,却承载了大部分信息。从 Berkeley BAIR,到在 Toyota Research Institute 构建大型行为模型的团队,那些研究富接触技能的研究组,反复回到同一个观点。没有高频、对齐的力和本体感受数据,策略就是在对最要紧的那一刻瞎猜。

这里还有一个人的因素。当一个人示范一次精细的插入时,他自己也在运行一个感觉运动环路,根据所感和所见来调整握持与角度。丢掉时序的采集,丢掉的正是那个让人擅长这项任务的信号。接触那一瞬间的手指压力,对齐到那一帧显示出偏差的画面,才是那堂课真正的内容。剥掉对齐,你留住了动作,却丢掉了动作背后的缘由。

一次示范不是一段附带了一些数字的视频,而是一份关于人感知到了什么、又如何回应的因果记录,只有对齐的采集,才能让这份因果性保持完整。

延迟是一个设计参数,而不是一个意外

一旦你接受环路是有时钟的,延迟就变成了你要为之设计的东西,而不是你要为之道歉的东西。如果你部署的机器人将在本地以 10 Hz 做推理,那么采集那些假定瞬时反应的示范,就是在教一种机器人永远无法复现的节奏。训练数据应当反映策略真正将要身处其中的那个环路。

Physical Intelligence 曾撰文讨论以可用频率运行真实机器人策略的实际问题,其中反复出现的主题是:时序和闭环反馈是头等大事,而非事后补丁。你可以在 Physical Intelligence blog 上读到更多。NVIDIA GEAR Lab research 从模型一侧提出了平行的论点:通用物理智能依赖于那些对新鲜感官输入做出反应、而不是回放一段固定计划的模型。

同步究竟是怎么发生的

说要对齐每一路数据流很容易。做到它,则是一门软硬件的功夫。最干净的做法,是让每一个传感器都挂在一个共享的时间源上,好让每一帧、每一次力的采样,都带上来自同一个时钟的时间戳,而不是来自碰巧接收到它的那台笔记本电脑。在无法共享时钟的地方,团队会退而求其次,采用一个同步事件,也就是一个能同时出现在几路数据流中的尖锐信号,然后在后期据此对齐。

那些微妙的失败,正是能在对数据的粗略一瞥中幸存下来的失败。一个在到达时而非曝光时打时间戳的摄像头,会引入一个随系统负载而变化的延迟。一个通过拥塞总线记录的力传感器,会迟到而且抖动。每一个误差都很小。但一旦被串进一个以数十毫秒作出反应的控制环路,小就足以教会策略一个错误的因果对应。

这就是为什么采集频率和采集时序不是同一份规格。一路数据流可以很快,却仍然是错位的;而一路带着诚实时间戳的慢数据流,可能比一路没有时间戳的快数据流更有用。真正要紧的数字,不是孤立的每秒帧数,而是每一路数据流在“每个采样发生于何时”这件事上,彼此吻合得有多紧。这一切都不会出现在数据集的头条指标里,而这恰恰是为什么这么多买家会跳过这项检查,直到一个训练好的策略开始行为古怪。

采集环路,而不是快照

人们容易把一次示范当成一叠可以事后合并的独立录像。物理规律却不这么认为。操作是一个环路,信息就存在于感知与动作之间的时序里。在采集时把这份对齐做对,数据就值得拿去训练。做错了,再大的规模,也无法把因果性放回去。

sensorimotorperception-actioncontrolclosed-loopcapture

来源