人形机器人是"硬件决定下限,软件决定上限"的典型。两条腿站得稳是硬件和控制的功劳,但要让它理解指令、适应环境、完成复杂任务,靠的是一整套软件栈。这篇从 ROS 2 讲到具身智能时代的新中间件。

## ROS 2:机器人软件的事实标准

ROS 2 是当前机器人开发最主流的中间件框架,相比 ROS 1 的核心升级在于通信层换成了 DDS(数据分发服务):

- **去中心化**:没有单点 master 节点,节点之间点对点发现,系统鲁棒性更好。
- **实时性**:DDS 支持 QoS 策略(可靠/尽力传输、历史缓存、截止时间),能为控制指令配置确定性更高的传输,这是人形机器人高频控制环路的前提。
- **跨平台**:支持 Linux、Windows、macOS,还能在资源受限的嵌入式设备上跑精简版本。

对人形机器人来说,ROS 2 通常承担"神经系统"的角色:连接感知、规划、控制各模块。但要注意,ROS 2 本身不是实时操作系统,硬实时的关节控制环路一般还是跑在 RTOS 或专用控制器上,ROS 2 负责上层协调。

## 具身智能带来的新需求

大模型进入机器人领域后,软件栈出现了新玩家和新需求:

**VLA 模型的接入**:视觉-语言-动作(VLA)模型让机器人能直接理解自然语言指令并输出动作。中间件需要解决:大模型的推理在哪里跑(端侧还是云端)、推理延迟如何与控制环路解耦、模型输出如何映射为安全的关节指令。常见做法是分层:VLA 做高层语义规划,传统控制器做底层执行,中间加一层安全校验。

**仿真到真机的链路**:人形机器人的策略大量在仿真里训练,再迁移到真机。Sim2Real 的关键是仿真环境的物理保真度(接触、摩擦、执行器延迟)和域随机化。软件栈要支持"同一套接口,仿真真机无缝切换",否则迁移成本会吞掉仿真的效率红利。

**数据闭环**:真机运行数据回流到训练,形成迭代闭环。这要求软件栈具备完善的数据记录、标注、回放能力——数据工程和算法工程同等重要。

## 典型软件栈分层

自上而下看,一个完整的人形机器人软件栈大概是:

1. **任务层**:自然语言理解、任务规划(VLA/大模型在此)。
2. **技能层**:导航、抓取、操作等技能库,仿真训练的策略模型部署在此。
3. **运动控制层**:步态规划、全身控制,运行在高频实时环路。
4. **中间件层**:ROS 2/DDS 负责模块间通信,贯穿上下。
5. **硬件抽象层**:关节、传感器驱动,屏蔽硬件差异。

## 给开发者的建议

1. 先吃透 ROS 2 的 QoS 和生命周期管理,这是多机协作和系统稳定性的基础。
2. 控制和 AI 团队要 early 对齐接口:VLA 输出什么格式、频率多少、安全边界在哪,越早定越好。
3. 仿真投入是值得的,但要定期做真机验证,防止在仿真里"自嗨"。
4. 安全是底线:任何大模型输出的动作指令,都要经过运动学可行性和碰撞检查才能下发。

软件栈的成熟度,决定了人形机器人从"能动"到"能干活"要走多远。