最近具身智能圈最热的消息,就是宇树、智元这类不同形态机器人“共用一个大脑”的模型 Demo。视频里没有花哨剪辑,直接一镜到底持续约 10 分钟,机器人连续完成多个长时段任务。这个 Demo 炸场的原因不是某个传感器或某个机械结构升级,而是整个控制范式变了:之前大家更多是“一个机器人、一个模型、一个任务”,这次更像是“一套模型权重,多个机器人本体共享”。
从技术角度看,这正好踩在具身智能 VLA(Vision-Language-Action,视觉-语言-动作模型)的窗口期。所谓“共用一个大脑”,通俗说就是把感知、规划、动作生成塞进一个统一的端到端模型里,再通过不同本体适配层去驱动不同类型的机器人。只要模型足够泛化,宇树、智元甚至其他形态的轮式、双足、机械臂本体,都可以共享同一套预训练权重,而不是每台机器人单独训一套策略。
这篇文章不准备把 Demo 视频里的每一帧拿来复盘,而是拆一下“共享大脑”背后的技术逻辑,并给出一套适合开发者参考的验证流程:怎么判断这类 Demo 是不是真的能复现,怎么在真实设备或仿真环境里做最小验证,遇到长任务漂移、接口不统一、资源占用高时怎么排查。内容偏思路和方法,适合正在做机器人大模型接入、VLA 模型选型以及多本体部署的技术同学收藏。
1. 核心能力速览
先从最粗的维度给一个表格,快速建立对该 Demo 以及背后“共享大脑”技术路线的整体认知。
| 能力项 | 说明 |
|---|---|
| 项目定位 | 多形态机器人共享同一个基础模型的演示,属于具身智能大模型方向 |
| 演示主体 | 宇树、智元等不同制造商、不同形态的机器人 |
| 核心卖点 | 一个模型权重对应多种本体,长任务连续执行,10 分钟一镜到底 |
| 技术路径 | VLA 统一感知-语言-动作生成,结合本体适配层 |
| 训练阶段硬件 | 未公开,按行业通用 VLA 模型推断,至少需要多卡 GPU 集群,具体以官方发布为准 |
| 推理阶段硬件 | 未公开,根据任务复杂度不同,可能支持边缘 GPU 或高性能计算平台,需实测确认 |
| 启动方式 | 演示视频为录制内容;若发布模型,推测涉及权重加载、机器人控制服务、相机流接入等流程 |
| 接口 API | 暂未公开确认,不能仅凭演示视频判断 |
| 批量任务 | 未公开确认;从“一镜到底”看,更偏连续任务流,而不是标准批量任务队列 |
| 适合场景 | 机器人算法研究、多本体控制方案选型、VLA 模型效果验证、人形机器人应用预研 |
这里要特别注意一个判断:演示视频成功,不等于模型已经开源、参数已经完全公开,也不等于当前能直接用普通消费级显卡复现。更稳妥的理解是,这个 Demo 展示了“端到端模型在异构本体上具备可迁移性”的概率很大,但具体训练数据规模、模型参数量、是否存在远程接管或有限状态机兜底,都需要等待官方进一步披露。
2. 适用场景与使用边界
2.1 适合谁重点关注
- 做具身智能算法落地的人:如果团队正在评估是否要自研 VLA 模型,还是直接接入某个通用基础模型,这类“共享大脑” Demo 提供了很好的架构参考。
- 做多机器人系统的同学:仓库、园区、制造产线往往同时存在机械臂、AGV、人形机器人,过去每个本体一套控制栈,维护成本极高;如果同一套模型能覆盖多类本体,可以大幅降低算法维护成本。
- 做硬件选型的技术负责人:机器人本体可以继续采购不同厂商产品,只要控制接口能对齐,模型层就可以保持一致。这不一定是坏事,反而可能是产业链分工更清晰的信号。
2.2 能解决的问题
- 任务泛化差:传统机器人策略经常“换一个杯子位置就不会抓了”,共享大脑的端到端模型更强调语义理解和环境自适应。
- 多本体重复开发:一个机械臂一个模型、一个人形一个模型的做法工程成本太高,统一大脑加本体适配层可以复用大量预训练能力。
- 长任务拆分难:常规“感知-规划-控制”管线在不同模块之间容易累积误差,一镜到底长任务非常考验端到端模型长期记忆和错误恢复能力。
2.3 不适合什么场景
- 高精度、高节拍工业产线:目前看这类 VLA 模型更适合开放环境、非精确重复任务,真要做到 DC 电机级别的毫秒控制,还是传统运动控制更稳。
- 安全等级极高的场景:比如医疗手术、高空高危作业,模型可解释性和确定性还不够,必须有人工复核保护。
- 轻量级边缘设备:如果只是做一块很弱的 MCU 小车,跑完整 VLA 模型不划算,传统 SLAM 加规则控制更合适。
2.4 版权、隐私与安全边界
这类演示往往涉及真实场景数据、人类交互动作、家庭或办公环境影像。如果后续要复现、采集数据或商用,必须注意三点:
- 数据来源要有授权。使用人类行为视频、语音、第三人称录像,要确保拍摄对象和场景所有者知情同意,不能拿公开视频直接训练商用模型。
- 机器人操作边界要设置物理层限制。模型输出只是目标动作,最终执行前仍建议在控制器层面加急停、力矩限制、空间限制。
- 不要把人形机器人或追踪能力用于未经授权的监控用途。这是合规底线。
3. “共享大脑”技术拆解
这个 Demo 能炸场,背后不是简单的“把模型做大”,而是几个技术层面的改变一起发生。
3.1 数据层:从“单机器人轨迹”到“跨本体动作数据集”
传统模仿学习往往是针对一个固定机器人采集遥操作数据,模型学到的动作和电机位置强绑定。共享大脑的前提,是把动作从“不同品牌电机的角度序列”中抽象出来。业界比较通用的做法有两种:
- 动作 token 化:把关节控制序列映射为离散或连续的动作 token,类似自然语言处理里的词元。
- 任务空间对齐:不只控制关节角度,而是控制末端位姿、移动方向、夹爪开合等与机器人本体解耦的高层动作。
这样同一个模型输出的同一个动作意图,到了宇树上是腿部电机控制,到了智元上可能变成机械臂末端移动,但模型不用重新训练,只需要不同的“动作解码器”。
3.2 感知层:把不同相机、不同视角统一进同一表示
机器人本体不同,相机安装位置、内参、视野范围也不同。共享大脑需要从异构视觉输入中抽取统一的语义,比如物体位置、类别、场景结构、人类指令。现在的 VLA 模型一般直接用视觉编码器加 LLM 结构,把图像和文本一起编码,再输出动作。这样,模型关注的是“哪里有什么东西、应该怎么操作”,而不是“相机像素坐标对应哪个电机角度”。
3.3 决策层:语言指令成为任务界面
一镜到底长任务的难点在于多个子任务切换。模型要能理解“先拿起水瓶放到桌上,再把桌子擦干净”这类连续指令,而且要在执行过程中保持状态记忆。语言在这里不仅用于交互,更是任务拆解和内部状态跟踪的中间表示。一个共享大脑的模型可以同时处理多语言指令、场景识别、动作生成,这也是为什么这类 Demo 看起来“很有智能感”。
3.4 执行层:本体适配器完成最后一步
真正让同一个模型能控制不同机器人的关键,是“本体适配器”。模型输出的动作 token 会通过一个轻量网络映射到具体机器人的电机空间,同时要把真实机器人关节反馈、力矩数据、碰撞检测结果返回模型用于闭环修正。这部分工作不需要在预训练阶段完成,而是部署阶段针对每种本体做小样本微调或在线适配。
从工程角度讲,这让机器人从“软件与硬件强耦合”走向“硬件可插拔”。但要注意,这种解耦是有代价的:每个新本体都需要重新标定运动学、速度限制、加速度限制和安全边界,否则模型输出可能超过硬件物理能力。
4. 演示 Demo 验证思路:开发者如何判断“能复现多少”
面对一个炸场演示,最该问的不是“好厉害”,而是“如果我在自己的机器人上复现,能复现多少”。下面给一套可执行的验证拆解思路。
4.1 先区分三层内容
| 层次 | 典型内容 | 可复现难度 |
|---|---|---|
| 第一层:模型能力 | 语义理解、目标识别、动作生成 | 中等,依赖训练数据和算力 |
| 第二层:系统集成 | 相机、电机、控制器、处理板之间的通信 | 较高,涉及硬件联调 |
| 第三层:长任务稳定性 | 十分钟不中断、失败后自纠错 | 很高,最难复现 |
看 Demo 时不要太快相信“第三层已经完美”。很多惊艳演示在实验室环境反复测试了很多次才成功,失败样本往往不会放出来。更合理的做法是寻找官方有没有提供失败案例、消融实验、成功率数据。如果没有任何量化指标,那只能算是“潜力展示”。
4.2 一镜到底要看什么
如果视频确实是一镜到底,重点看几个容易被忽略的细节:
- 任务切换瞬间:上一个动作结束到下一个动作开始的过渡是否自然,是模型自主判断还是有人在后台发送新指令。
- 遮挡和物体位移:操作过程中如果有人移动了物体、把物品碰倒,模型能否停下来重新规划。
- 指令响应延时:从人类语音或文字指令发出到机器人开始动作,是否在合理范围内。
- 是否存在重复动作:比如反复尝试同一个抓取动作多次才成功,这种情况说明模型可能只是在执行错误闭环,而不是真正理解任务。
4.3 给自己设计一个最小验证实验
如果团队准备评估类似方案,建议不要一开始上人形机器人,先用一个机械臂加一个移动底盘,按照下面的思路搭建最小实验:
目标:同一个模型控制不同形态本体,完成“到达指定位置并抓取目标物体”的简化任务。 环境:仿真环境优先,比如 Isaac Sim、MuJoCo,低成本且安全。 本体:一个固定机械臂、一个带机械臂的移动底盘。 指令:固定几条自然语言指令,先不追求开放词汇。 评估指标:任务成功率、单次任务耗时、失败恢复次数。这种实验能快速回答一个问题:模型在共享能力上是否真的具备跨本体泛化,还是只是在特定运动轨迹上过拟合。
5. 环境准备与前置条件
由于目前没有确切的官方开源包,这里给出一套通用的 VLA 模型验证环境准备清单。后续如果官方或社区放出正式仓库,可以按仓库说明替换其中的路径和参数。
5.1 硬件层面
- 训练或大规模微调:需要 NVIDIA GPU 集群,显存越大越好,至少保证能装下视觉编码器和语言模型权重。不同模型差异很大,具体显存以官方要求为准。
- 推理验证:如果只是做小规模验证,建议先准备一块显存 16GB 以上的显卡,并优先验证量化后模型能否跑通;实际需求要按模型参数和输入分辨率评估。
- 机器人本体:至少准备一台具备视觉传感器和可编程控制接口的机器人。如果暂时没有硬件,可以先在仿真环境里验证。
5.2 软件层面
建议使用这些通用组件:
| 软件 | 用途 | 说明 |
|---|---|---|
| Linux 系统 | 机器人开发常见环境 | Ubuntu 20.04 或 22.04 均可,具体看深度学习框架要求 |
| Python | 算法开发 | 建议 3.10 及以上,以项目要求为准 |
| PyTorch | 深度学习框架 | 训练和推理常用,安装版本需匹配 CUDA |
| ROS 2 | 机器人通信 | 用于相机、底盘、机械臂之间的消息中转 |
| Isaac Sim / MuJoCo | 仿真验证 | 没有实体机器人时非常有用 |
| CUDA / cuDNN | GPU 加速 | 版本必须与 PyTorch 匹配 |
5.3 基础环境安装示例
下面是一个通用安装示例,实际命令需要按项目目录和系统环境调整:
# 创建独立 Python 环境,避免污染系统环境 conda create -n robot-vla python=3.10 -y conda activate robot-vla # 安装 PyTorch,具体版本需要根据 CUDA 版本选择 pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121 # 安装 ROS 2 相关依赖 sudo apt install ros-humble-ros-base # 安装通用机器人 SDK,这里只是示例,具体库以实际硬件厂商为准 pip install transforms3d numpy opencv-python5.4 数据层面准备
复制共享大脑模型,绕不开跨本体数据集。建议先准备以下内容:
- 多个本体的动作数据,例如机械臂关节角度轨迹、移动底盘速度指令。
- 同步的视觉数据,建议使用多视角视频流或单目 RGB 加深度图。
- 任务指令文本,每条轨迹对应多条人类指令。
- 本体元数据,包括运动学参数、速度上限、关节限位、相机内外参。
数据格式越统一,后续跨本体训练越容易。如果各厂商 SDK 输出格式不一致,建议先做一层数据转换脚本,统一输出 JSON 或 HDF5 文件。
6. 从“单机模型”到“多机共享”的最小部署实验
很多人会问:如果我只想验证“共享大脑”是不是真的能控制两台不同机器人,应该如何部署?这里给出一个最小 POC 思路,不依赖具体厂商 SDK。
6.1 架构设计
统一推理服务(同一个模型权重) | |-- 本体 Adapter A:固定机械臂 |-- 本体 Adapter B:移动底盘机械臂模型推理服务负责接收视觉和文本输入,输出高层动作 token;Adapter 把 token 转换成不同本体的实际控制指令,并把传感器反馈传回推理服务。
6.2 伪代码示例
下面是一个偏伪代码的通用模板,实际接口需要按项目替换:
# 伪代码:展示“同一模型、不同 Adapter”的调用方式 class RobotAdapter: def __init__(self, robot_name, sdk): self.robot_name = robot_name self.sdk = sdk def execute_action(self, action_token): # 将 action_token 转为该机器人的底层控制指令 if self.robot_name == "arm": return self.sdk.move_arm(action_token) elif self.robot_name == "mobile_arm": return self.sdk.move_platform_and_arm(action_token) else: raise NotImplementedError# 使用同一个推理模型 import torch model = load_shared_brain_model() adapter_a = RobotAdapter("arm", sdk_a) adapter_b = RobotAdapter("mobile_arm", sdk_b) obs = capture_observation() instruction = "把桌上的杯子拿起来" for robot in [adapter_a, adapter_b]: action = model.predict(obs, instruction) robot.execute_action(action)这段代码的核心点是:模型本身不知道机器人 A 和机器人 B 的区别,它只输出语义化的动作 token,真正差异被 Adapter 吸收。如果在你的项目中这个 Adapter 做得很薄,说明模型确实参与了大部分控制决策;如果 Adapter 里写了大量规则,那就要怀疑模型是不是只承担了视觉识别和责任划分。
6.3 验证成功标准
- 两个本体都能完成同一指令对应的合理动作。
- 当任务语义发生变化时,比如从“拿起杯子”变为“推开水杯”,两个本体都能正确切换,而不是只对固定轨迹有效。
- 模型不需要针对第二个机器人重新训练,最多只需要做适配层微调。
7. 接口 API 与批量任务设计思路
如果未来这类“共享大脑”模型对外开放,大概率会以推理服务的形式提供 API。这里给出一个通用接口设计草案,可以作为开发者预研时的参考。注意,这不是任何官方接口。
7.1 推理接口示例
一个典型的请求可能包含图像、文本指令、本体标识和历史动作状态:
{ "robot_id": "unitree_h1", "instruction": "把桌面的水瓶放到右侧箱子里", "image_base64": "<...>", "state": { "joint_positions": [0.1, 0.2, 0.3], "gripper_state": "open" } }响应可能包含高层动作 token 或低层关节控制量:
{ "action_token": "move_end_effector_to", "target_pose": [0.4, 0.2, 0.8], "gripper": "close", "confidence": 0.87 }7.2 Python 调用示例
import requests url = "http://127.0.0.1:8000/api/v1/control" payload = { "robot_id": "unitree_h1", "instruction": "把桌面的水瓶放到右侧箱子里", "image_base64": "...", "state": { "joint_positions": [0.1, 0.2, 0.3], "gripper_state": "open" } } response = requests.post(url, json=payload, timeout=30) print(response.json())7.3 批量任务和多机调度
多机共享大脑最大的工程收益,是可以设计统一的批量任务调度系统。任务队列里每个任务可以指定 robot_id、指令、优先级、超时时间,然后由调度服务统一调用模型推理并发给不同机器人。需要关注这几个点:
- 每个机器人一个反馈队列,模型推理不能阻塞其他任务的调度。
- 任务要有超时和重试机制,机器人执行失败后,要么重新推理,要么转人工。
- 多机并发推理时的显存/内存隔离要做好,避免一个任务占满资源导致其他机器人掉线。
{ "tasks": [ { "task_id": "task_001", "robot_id": "unitree_h1", "instruction": "取水瓶", "priority": 1 }, { "task_id": "task_002", "robot_id": "zhiyuan_agibot", "instruction": "整理桌面", "priority": 2 } ] }8. 资源占用与性能观察
对于这类端到端模型,资源占用是决定能否落地的最现实因素。虽然现在没有官方数据,但从工程角度可以给出观察方法。
8.1 训练阶段性能指标
训练 VLA 模型通常要考虑:
- 模型参数量:视觉编码器、语言模型、动作头分别占多少。
- 数据批次大小:批次越大,显存占用越高,但训练稳定性更好。
- 上下文长度:长任务和一镜到底需要更多历史状态,视觉 token 和动作 token 累计后显存增长明显。
- 数据加载瓶颈:多机采集的海量轨迹需要高效缓存,否则 GPU 利用率上不去。
观察训练资源占用可以用nvidia-smi、TensorBoard 或 profiler:
nvidia-smi nvidia-smi --query-gpu=utilization.gpu,memory.used,temperature.gpu --format=csv -l 18.2 推理阶段性能指标
推理端的压力点通常不在“模型结构”,而在“序列长度”。
- 图像分辨率越高,视觉 token 越多,显存占用越高。
- 保留的历史帧越多,长任务记忆越好,但上下文长度会快速膨胀。
- 动作输出频率越高,对推理延迟越敏感。如果机器人要求 30Hz 控制,模型推理必须低于这个周期。
如果显存不够,优先尝试:
- 降低图像分辨率。
- 减少历史帧数量。
- 对模型做 INT8 量化。
- 把视觉编码器单独部署,减少端到端推理时的 token 峰值。
8.3 怎么判断资源是否满足
建议先做一次压力测试:
1. 准备 1 分钟真实机器人操作数据。 2. 按在线推理方式逐帧输入模型,记录每帧耗时和显存峰值。 3. 逐步增加历史帧数和图像分辨率,观察资源增长曲线。 4. 如果单帧推理耗时超过控制周期,说明当前硬件不够,需要降规模或换硬件。9. 常见问题与排查方法
下面是在类似具身智能大模型项目里最容易遇到的问题,以及对应的排查思路。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 不同机器人在同一指令下动作差异很大 | 动作 token 与机器人运动学映射没对齐 | 检查各本体 Adapter 是否把语义动作映射到正确的关节空间 | 重新标定运动学,加入动作一致性校验 |
| 长任务执行到一半动作开始漂移 | 上下文窗口过长导致模型遗忘早期目标 | 查看模型输入序列长度和注意力热力图 | 减少历史帧,加入任务状态摘要 token |
| 视觉识别不准,物体位置判断错误 | 相机标定不一致或图像分辨率过低 | 单独测试相机内外参,确认图像质量 | 重新标定相机,提高输入分辨率 |
| 推理延迟过高,机器人动作卡顿 | 模型推理速度低于控制周期 | 统计单帧推理耗时,分析瓶颈在视觉编码器还是语言模型 | 降采样图像、量化模型、升级 GPU |
| 仿真环境正常,真实机器人失败 | Sim-to-Real gap,动力学差异 | 对比仿真和真实电机反馈 | 加入随机化训练,增加真实数据比例 |
| 多机器人并发调度时任务丢失 | 任务队列没有确认机制 | 检查消息是否 ACK,是否有超时重试 | 增加任务状态管理,失败自动重放 |
| 模型偶发输出危险动作 | 缺少安全过滤层 | 检查模型输出动作是否超出关节限位、速度限制 | 在 Adapter 层加动作安全校验和急停逻辑 |
这里重点强调最后一行:任何 VLA 模型的输出都不能直接无限制地作用到电机上。部署前必须加一层“物理安全过滤器”,对关节角度、速度、力矩做硬限制。模型可以输出一个不够好的动作,但机器人不能执行一个可能造成伤害的动作。
10. 最佳实践与使用建议
10.1 降低复现风险
- 先用仿真环境验证,不要第一时间上真人形机器人。
- 第一次测试使用固定指令集,控制变量,记录一下成功率和失败模式。
- 建立“日志回放系统”,把模型输入和输出全部存下来,方便失败后复盘。
- 每个机器人单独保存一份标定参数和运动学配置,避免模型共享后互相污染。
10.2 模型层工程建议
- 共享的是预训练权重,不是微调结果。如果两个本体任务差异很大,建议各自保留一个轻量的 LoRA 分支。
- 动作输出尽量语义化。让模型输出“抓住杯柄往右转 30 度”这类粗粒度指令,再由底层控制器做轨迹规划,比直接输出电机电流更稳定。
- 视觉输入统一到固定分辨率和帧率,不要指望模型在运行时自适应各种相机参数。
10.3 数据与合规建议
- 数据采集前确认所有场景和人员已授权,特别是家庭、办公环境图像。
- 商业化前核对模型训练数据的开源许可证。不能因为模型是开源的,就默认训练数据也能任意商用。
- 涉及人体动作、人脸、声音的机器人交互,必须告知交互对象并设立关闭机制。
10.4 发布与部署建议
- 接口服务默认绑到内网,不要直接暴露公网。
- 增加访问鉴权,至少使用 API Token。
- 机器人控制指令要加密传输,避免中间人篡改指令后造成物理安全问题。
11. 总结与下一步
这个 Demo 最值得关注的动作,是把“宇树、智元共用一个大脑”从概念变成了可演示的近真实验证。无论底层是同一个完整的端到端模型,还是共享基础能力加本体适配,有一点已经很明显:具身智能正在从“单一硬件定制算法”走向“模型共享、硬件可插拔”的新阶段。对开发者来说,真正的机会不是去复制一个同样的发布会 Demo,而是提前想清楚自己的机器人平台如何在这样一个架构下接入。
如果你正在评估这个方向,建议先从这四件事入手:
- 把官方 Demo 视频拆成帧,分析任务切换、失败恢复和指令延迟,形成一份主观但结构化的评估表。
- 在仿真环境里跑一个机械臂加移动底盘的“同一模型控制两个本体”的最小实验,确认自己的代码链路是否支持多 Adapter。
- 数据采集不要等模型确定再做,先把跨本体数据格式和采集工具准备好,这是所有共享模型的地基。
- 关注官方后续是否开源权重、训练数据样例、和具体机器人适配器代码。如果没有开源,就重点跟踪社区复现版本。
这个领域技术迭代非常快,今天看来很惊艳的 10 分钟一镜到底,几个月后很可能就是标准配置。但落地变不了魔术,最终拼的还是数据质量、工程稳定性和安全边界。建议先把本文提到的验证表格保存下来,等正式模型或复现项目出来后,按里面的框架跑一遍。