视觉语言动作模型能理解“把罐子拿到白桌上”,却不适合直接负责每一次关节修正。人形机器人真正需要的是双层控制:慢速模型决定动作意图,快速控制器持续维持平衡并生成关节目标。这个分工比单纯换更大模型更接近工程答案。
发生了什么
Hugging Face 社区 9 月 25 日宣布 Unitree G1 接入 LeRobot。公开方案沿用 OpenHLM 思路:π0.5 视觉语言动作模型(Vision-Language-Action,VLA)读取语言、相机和机器人状态,预测 64 维 SONIC 潜在动作 token;SONIC 解码器再结合短期本体感知历史,输出可执行的全身关节目标,底层比例—微分控制器负责跟踪。
演示数据约 100 个 episode、71 分钟、每秒 50 帧,包含三路 480×640 相机;状态是 29 个关节位置加 2 个夹爪状态,动作是 64 维潜在表示加 2 个夹爪命令。团队用 4×H100 微调 12000 步。深度躲球策略在三随机种子仿真中达到 79.1%,空白深度输入为 0%,特权状态 oracle 为 97.4%。这些是仿真和发布方结果,公开视频不是受控真机成功率。
技术原理:为什么要两种时钟
VLA 擅长把视觉和语言变成较长时间尺度的意图,但一次前向推理的延迟、抖动和偶发错误无法满足双足平衡。快速控制器只解决更窄的问题:根据最新姿态、速度和动作 token,在更高频率上产生动力学可行的目标。共享的潜在 token 像一份紧凑“动作乐谱”,把不同动作来源接到同一执行器。

核心变化不是“大模型终于能走路”,而是把语义决策和稳定执行隔离。任务数据不必重新学习所有平衡与协调规律,快速控制层也不必理解“白桌”是什么意思。这与操作系统把策略和机制分开很相似:上层决定做什么,下层保证动作按设备约束发生。
最小实践:模拟慢规划、快执行和过期门禁
下面用一维目标演示两个频率。每 5 个控制 tick 更新一次计划,快速控制器逐步逼近;若计划太旧,就回到安全目标。它不是机器人控制器,只用于看懂调度关系。
PLAN_EVERY = 5
MAX_PLAN_AGE = 6
desired_plans = [0.4, 1.0, -0.2, 0.0]
position = 0.0
plan = 0.0
plan_tick = -999
trace = []
for tick in range(20):
if tick % PLAN_EVERY == 0:
plan = desired_plans[tick // PLAN_EVERY]
plan_tick = tick
age = tick - plan_tick
safe_target = plan if age <= MAX_PLAN_AGE else 0.0
error = safe_target - position
command = max(-0.25, min(0.25, 0.6 * error))
position += command
trace.append((tick, plan, round(position, 3), age))
for row in trace:
print(row)
assert len(trace) == 20
assert max(abs(trace[i][2] - trace[i-1][2]) for i in range(1, 20)) <= 0.25
依赖只有 Python 标准库,保存为 dual_rate_control.py 后运行 python dual_rate_control.py。本次在 Python 3.9 实际运行,生成 20 个控制 tick,单步位置变化未超过 0.25,两条断言通过。真实系统还要有动力学模型、传感器时钟同步、关节限位、碰撞检查和独立硬件急停,不能把这个例子接到真机。
对开发者意味着什么
第一,接口契约应携带 token 版本、产生时间、有效时长和控制器版本,不能只传一个浮点数组。第二,仿真先验证过期计划、丢帧、状态突变和控制器重启,再谈任务成功率。第三,日志要能把“上层计划错误”“解码器误差”“底层跟踪失败”分开,否则失败视频只能告诉你机器人倒了,不能告诉你哪层负责。
部署还应设计失效路径:VLA 超时不能继续无限复用旧 token;相机丢失不能伪装成空白画面;控制器检测到姿态越界时必须覆盖上层意图。动作 token 解决的是接口压缩与复用,不是安全证明。
适用边界与风险
双层结构适合人形、四足和其他需要高频稳定控制的具身系统。低速桌面机械臂有时可直接执行动作 chunk,不必照搬复杂控制栈。发布方训练和仿真数字也不能回答真机摔倒率、地面变化、网络延迟和长期磨损,采购或部署前必须独立复测。
评测也要按层设计。上层可测任务完成率、指令一致性和计划更新延迟;中间接口可测 token 分布、版本兼容和过期率;下层则要测关节跟踪误差、姿态恢复时间、温度与扭矩边界。若只报一个“成功率”,一次失败究竟来自看错物体、计划过期还是脚底打滑,团队仍然无法修复。
数据回放是最便宜的第一步。保存相机时间戳、原始状态、上层 token、解码目标和实际关节反馈后,可以在不通电的情况下重放计划接口;随后进入仿真故障注入,再到系绳、软垫和限速真机。每一层都应有明确停止条件。公开视频可以展示能力,却不能替代这条证据链。
我的判断是,开源人形生态真正重要的进展,是开始形成可替换的“策略—潜在动作—控制器”接口,而不只是再放出一个视频。团队现在最值得投资的是接口时序、仿真故障注入和可回放日志,因为这些能力决定模型升级时能否不重写整台机器人。
如果只能先加一道保护,你会选择计划过期门禁、关节限位,还是独立急停?
关注「蜗牛聊AI」,一起看懂技术变化背后的真正机会。
本文首发于 java4u.cn,转载请注明出处。

