让不同机器人“说同一种话“:适配器(第3篇/共14篇)
让不同机器人"说同一种话":适配器(第3篇/共14篇)
适配器是平台与硬件之间的『翻译 + 守门人』:只做薄插件、只到关节指令层、入口强制统一单位。
本篇你能带走 3 句话
- 适配器就是给每个机器人品牌套的翻译官,让平台只用一套语言去采、去控。
- 平台最多接到"关节"这一层;更底层的电机电流碰不到——这是控制环的物理结构决定的,不是我们不行。
- 因此采到的关节数据可跨本体复用,电流数据换了机器就废——这正是数据主权的关键。
上篇说过,采数据前要先写"任务说明书"。但现实是:乐聚、傅利叶、宇树的机器人,说着三种不同的"方言"。 平台想统一指挥它们,就得先解决一件事——让不同机器人说同一种话。这层"翻译官",就是适配器。
一、它到底是个啥
M2 是平台的接入层 / 翻译层,更准确地说是一层硬件抽象层(HAL)。它把乐聚、傅利叶、宇树这些本体的私有接口,统一封装成平台能消费的"机器人设备"对象。 平台核心只跟一个统一的 Robot 抽象 打交道,具体怎么跟每家硬件"通话",全交给各自的适配器(Adapter)。
二、最反直觉的一刀:为什么碰不到电机电流
机器人控制是层层嵌套的闭环。从"抓箱子"这个想法,到电机真的转起来,中间隔着好几层:
| 控制层 | 平台能接管吗 |
|---|---|
| 任务指令(抓箱子) | ✅ 平台定义 |
| 关节指令层 q/dq/tau + kp/kd | ✅ 下边界·全开放(500Hz/2ms) |
| 脊髓电流环(1kHz) | ❌ 三家均不开放(固件黑盒) |
| 电机 / 驱动器 | ❌ 硬件,碰不到 |
真正的机理根因在于:现代伺服驱动器是"电流环内闭环"架构——把"力矩指令"换算成 PWM 占空比去驱动绕组这个环节,在电机驱动器固件内部以 1kHz+ 硬件闭环运行。平台/应用层只能把"目标力矩 tau"作为设定值发给驱动器,驱动器内部再实时调节相电流去逼近它。你看不到也改不了那一层原始相电流——它不是"厂商藏着不给你",而是物理上就跑在驱动器芯片里、毫秒级硬件闭环,任何上层协议都到不了。
三、关节空间 vs 笛卡尔空间:边界处的"解算"难题
适配器下指令有两种表达,交界处要过一道运动学反解(IK):
| 表达方式 | 原理 | 注意点 |
|---|---|---|
| 关节空间动作 | 直接命令每个关节的目标角度/速度/力矩 | 简单、无需 IK、延迟低 |
| 笛卡尔空间动作 | 命令末端 6-DoF 位姿,需 IK 解算成关节角 | IK 质量决定轨迹是否平滑、是否撞限位 |
遥操作时还要多一道 retargeting(重定向):把人的输入设备位姿(VR 手柄 / 主从臂 / 外骨骼)映射到机器人关节。人 5 根手指、机器人一个夹爪——这中间的形态差异,正是 retargeting 要弥合的。它是适配器"读状态/下指令"之外的第三类关键映射。
四、三家厂商 SDK 开放度实证
我们对三家的开放度做了实证(须逐条向厂商复核固件版本):
| 厂商 | 开放 / 限制 |
|---|---|
| 宇树 G1/H1 | ✅ lowcmd 关节层(500Hz/DDS)|❌ 电流环不开放|❓ 行走 RL 黑盒、灵巧手未开放 |
| 傅利叶 GR-3 | ✅ Aurora DDS|⚠️ 控制组制(单关节被拒)|Gello 遥操 + HDF5 可用 |
| 乐聚 KUAVO | ✅ MPC+WBC 开源最开放|⚠️ 单位坑 degree/radian 混写|ROS1 + 机载 NUC |
五、一个无声报废的坑:单位
乐聚 KUAVO 的文档两页分别写了 degree 与 radian。这绝不是笔误级小事,而是会让整批数据无声报废的坑:
六、别忽视的隐藏成本:标定与安全
- 手眼标定:相机与末端的相对位姿,决定"看到的点"能不能换算成"手该去的点"。标定误差几毫米,抓取就偏几毫米;漂移随温度/负载发生,需定期复标。
- 安全边界:适配器是"平台指令→硬件"的最后一道闸。急停(e-stop)归属、看门狗(watchdog)失联保护、位置/速度/力矩限幅,必须内置——这和一期"部署安全壳"同源:神经网络策略不可预测,硬实时安全壳是必经之路。
- 实时性与抖动:适配器跑在应用层,通信延迟 > 100ms 人就会觉得遥操作"手感黏";抖动(延迟波动)比平均延迟更伤时序对齐;丢包则需插值/重传。这正是下篇"时间同步"之所以是平台最难工程点的伏笔。
图说:这张图看两件事:左边是「一套语言接三个品牌」,右边是「接管到哪一层为止」。右边最下面那条线(电流环)是产业链的硬边界——不是我们的能力问题,是它物理上就跑在驱动器芯片里。
七、适配器该做多薄:五笔取舍
| 维度 | 做法 A | 做法 B | 本项目取舍 |
|---|---|---|---|
| **适配层形态** | 薄插件(每品牌一个 adapter,核心不动) | 核心内硬编码厂商协议 | ✅ 必须 A——换本体只换插件,且防私有格式绑定 |
| **动作空间** | 关节空间(直接下 q/dq/tau) | 笛卡尔空间(下末端位姿,由 IK 解算) | ✅ 关节空间为主(无需 IK、延迟低);笛卡尔仅在任务需要时用,且 IK 质量须验证 |
| **控制深度** | 只到关节指令层(q/dq/tau + kp/kd) | 试图接管电流环 / 行走 FSM | ✅ 必须 A——电流环物理上在驱动器固件内、行走受 FSM 门禁,B 不可行且不该追求 |
| **单位处理** | 入口强制统一单位 + 断言校验 | 沿用厂商原单位,下游各自转换 | ✅ 必须 A——单位坑(degree/radian)会让整批数据无声报废 |
| **安全边界** | 急停 / 看门狗 / 限幅内置于 adapter | 依赖上层平台或本体自带 | ✅ 必须 A——adapter 是"平台指令→硬件"的最后一道闸 |
八、外采要盯紧什么(❓ + ✅ 验收硬指标)
① 采集接入:能否读相机/关节/末端/力并同步?
② 数据标准化:能否转开放格式且保留动作空间定义?
③ 训练接入:能否进训练框架?
④ 真机部署:模型输出能否安全映射回本体?
额外追问:动作空间每一维的单位、坐标系、范围是否写全(防乐聚 degree/radian 类坑)?标定、急停、看门狗、限幅是否到位?
九、读完这篇,三句话带走
- 技术视角:适配器只到关节指令层,不是能力不足,是电流环物理上不开放。
- 采购视角:问一句——动作空间每一维的单位写全了吗?乐聚文档 degree/radian 混写的坑,差 180/π ≈ 57.3 倍。
- 管理视角:一个单位错,整批数据无声报废。这是最便宜、也最该提前防住的返工。
也把行业共性限制(只能到关节层)挡在边界内,
变成可管理的资产,而非不可说的痛点。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)