小米发布了面向真实移动操作任务的具身基座模型 Xiaomi-Robotics-1,并表示代码与模型权重将在近期全面开源。相比只在固定机械臂或单一仿真环境中工作的策略模型,它更值得关注的地方,是以 10 万小时真实世界数据进行预训练,再利用跨本体数据完成后训练,目标直接指向未见环境、复杂新任务和不同机器人本体之间的迁移。
十万小时数据真正解决什么问题
具身模型面对的输入并不只是图像和文本。机器人还要处理关节状态、末端执行器姿态、底盘位置、历史动作以及不同频率的传感器数据。真实世界数据规模扩大后,模型有机会学习物体遮挡、光照变化、执行误差和接触失败等仿真环境难以完整覆盖的长尾现象。
不过,数据时长不能直接等同于有效样本量。判断这类模型时,还需要关注几个尚待开源材料说明的问题:
- 10 万小时数据覆盖了多少场景、任务和机器人本体;
- 训练数据中成功轨迹、失败轨迹和人工干预轨迹如何分布;
- 图像、状态和动作采用什么时间粒度对齐;
- 数据是否包含导航与操作耦合的长序列任务;
- 评测是否报告成功率、执行时间、碰撞率和人工接管次数。
小米披露的结果表明,模型在未见环境的真实机器人任务中呈现稳定的规模化收益,并在复杂新任务适配和多个仿真基准上取得较强表现。这里的关键不是某个单项分数,而是收益能否随着数据和模型规模增长持续出现。如果开源版本同时提供训练曲线、评测协议和失败案例,开发者才能进一步判断这种规模化趋势可以迁移到哪些设备与场景。
跨本体训练的难点在动作接口
跨本体数据可以扩大经验覆盖面,但不同机器人的动作空间往往并不兼容。轮式底盘可能接收线速度和角速度,机械臂可能接收关节位置、关节速度或末端位姿,夹爪的控制方式也各不相同。
工程上通常需要在基座模型和硬件驱动之间增加本体适配层,把统一动作表示转换为具体控制命令。例如,模型输出“底盘速度、末端位姿增量、夹爪开合度”,适配层再根据机器人的自由度、坐标系和安全限制执行映射。
这种设计还决定了后训练成本。如果统一表示足够稳定,新机器人可能只需要少量示范数据和一个动作适配器;如果表示依赖某种硬件结构,就可能需要重新训练较大范围的参数。Xiaomi-Robotics-1 的具体动作表示、参数规模和适配方法仍应以开源代码及技术文档为准。
可以这样实践:先定义可替换的本体适配层
在正式代码发布前,可以先整理自己的数据与控制边界。下面是一个最小伪项目,假设上层策略输出归一化的底盘速度、末端位姿增量和夹爪指令。它不是 Xiaomi-Robotics-1 的官方接口,但可以直接运行,用来验证动作裁剪与适配流程。
将以下内容保存为 robot_adapter.py,然后运行 python robot_adapter.py:
from dataclasses import dataclass
from typing import Sequence
def clamp(value: float, low: float, high: float) -> float:
return max(low, min(high, value))
@dataclass
class PolicyAction:
base_vx: float
base_wz: float
ee_delta: Sequence[float] # dx, dy, dz, droll, dpitch, dyaw
gripper: float # 0.0 closed, 1.0 open
class MobileManipulatorAdapter:
def __init__(self, max_vx: float = 0.4, max_wz: float = 0.8):
self.max_vx = max_vx
self.max_wz = max_wz
def convert(self, action: PolicyAction) -> dict:
if len(action.ee_delta) != 6:
raise ValueError("ee_delta must contain 6 values")
return {
"base": {
"linear_x": clamp(action.base_vx, -1.0, 1.0) * self.max_vx,
"angular_z": clamp(action.base_wz, -1.0, 1.0) * self.max_wz,
},
"arm": {
"cartesian_delta": [
clamp(value, -1.0, 1.0) * scale
for value, scale in zip(
action.ee_delta,
(0.02, 0.02, 0.02, 0.05, 0.05, 0.05),
)
]
},
"gripper": {"position": clamp(action.gripper, 0.0, 1.0)},
}
if __name__ == "__main__":
adapter = MobileManipulatorAdapter()
policy_output = PolicyAction(
base_vx=0.7,
base_wz=-0.3,
ee_delta=(0.5, -0.2, 0.1, 0.0, 0.0, 0.3),
gripper=1.0,
)
print(adapter.convert(policy_output))
接入真实机器人时,不要让模型输出直接进入电机控制器。适配层至少应增加工作空间检查、速度与加速度限制、碰撞检测、急停状态以及控制超时。模型负责提出动作,独立的安全控制器负责决定动作能否执行。
开源后应优先验证什么
评估 Xiaomi-Robotics-1 时,可以从一个范围清楚、可重复的任务开始,例如“从相邻房间移动到桌边并抓取指定物体”。至少准备训练场景、同分布测试场景和未见布局三组环境,并固定成功条件与超时时间。
建议记录任务成功率、平均完成时间、碰撞次数、动作重规划次数和人工接管次数。还应分别测试零样本执行、少量示范后适配和完整微调,避免只用一个最终成功率掩盖部署成本。
在代码、权重和许可证公布前,不宜提前假设模型可商用、可在消费级显卡运行或能够直接适配任意机器人。更稳妥的准备工作是统一数据格式、隔离硬件适配层、建立安全控制器,并把评测流程自动化。这样等开源版本落地后,团队可以快速回答最关键的问题:它在自己的机器人、场景和安全约束下,是否真的比现有策略更可靠。