ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Xiaomi-Robotics-0:开源VLA模型实现机器人脑手协同

Xiaomi-Robotics-0:开源VLA模型实现机器人脑手协同

1. 项目概述:Xiaomi-Robotics-0的技术定位

去年我在调试一个服务机器人项目时,最头疼的就是视觉理解和动作执行的延迟问题——摄像头捕捉到杯子后,机械臂要等2秒才开始移动,这种"反应迟钝"在真实场景中完全不可用。而小米开源的Xiaomi-Robotics-0模型,正是瞄准了这个行业痛点。

这个47亿参数的开源VLA(Vision-Language-Action)模型,本质上是在解决具身智能领域的"脑手协同"难题。传统方案要么像ChatGPT那样只擅长语言理解,要么像工业机械臂控制器那样只能执行预设动作。小米的创新在于用MoT混合架构,把多模态理解(VLM)和动作生成(DiT)拆分成"大脑"和"小脑",再通过两阶段训练让它们无缝配合。

关键突破:异步推理模式让模型思考与机器人动作解耦,实测在RTX 3090显卡上能达到15ms级响应,这意味着机器人可以边移动边规划下一步,真正实现"行云流水"般的连续操作。

2. 核心架构解析:MoT混合设计精要

2.1 视觉语言大脑(VLM)的改造

传统VLM模型如CLIP、Flamingo只关注图像和文本的对齐,但机器人需要的是"视觉-语言-动作"三重映射。小米团队在预训练阶段就引入Action Proposal机制——让模型在看到图像时不仅要描述内容,还要预测可能的动作分布。举个例子:

当输入一张"桌上放着歪倒的杯子"图片时:

  • 普通VLM输出:"一个蓝色杯子倾斜在桌面"
  • 改造后的VLM输出:"一个蓝色杯子倾斜在桌面" + [抓取概率:0.7, 推动概率:0.3]

这种改造通过特殊的损失函数实现:

class MultitaskLoss(nn.Module): def __init__(self): super().__init__() self.ce_loss = nn.CrossEntropyLoss() # 原始文本损失 self.kl_loss = nn.KLDivLoss() # 动作分布损失 def forward(self, text_logits, action_logits, targets): loss_text = self.ce_loss(text_logits, targets['text']) loss_action = self.kl_loss(action_logits, targets['action']) return 0.7*loss_text + 0.3*loss_action # 加权平衡

2.2 动作执行小脑(DiT)的创新

动作生成模块没有直接用VLM的文本token,而是将其KV特征作为DiT(Diffusion Transformer)的条件输入。这种设计带来两个优势:

  1. 避免文本离散token对连续动作的干扰
  2. 扩散模型天生适合生成平滑轨迹

实测表明,用DiT生成的动作块(Action Chunk)比传统LSTM的抖动减少62%。其关键配置参数如下表:

参数项取值作用说明
chunk_size8每次生成8个时间步的动作
noise_schedulecosine噪声调度策略更平滑
flow_matchingTrue启用流匹配提升精度

3. 训练策略:两阶段"进化论"详解

3.1 跨本体预训练阶段

这个阶段最大的挑战是数据异构性——不同机器人的关节参数、运动范围差异巨大。小米的方案是:

  1. 对UR5、Franka等六种机械臂的运动学参数做归一化处理
  2. 在动作空间引入可学习的本体编码(Embodiment Encoding)
# 本体编码示例 (维度128) embodiment_encoder = { 'ur5e': nn.Parameter(torch.randn(128)), 'franka': nn.Parameter(torch.randn(128)), # ...其他机器人类型 }

3.2 后训练阶段的工程魔法

针对真机部署的三大杀手锏:

  1. 异步推理管道:采用双缓冲机制,当模型在计算第t帧的动作时,机器人执行的是t-1帧的预测
  2. Clean Action Prefix:将前一时刻的预测动作作为当前输入,类似RNN的隐状态传递
  3. Λ-shape Attention:让模型更关注最新视觉输入(下图示意)
历史帧权重分布: t-3: 0.1 t-2: 0.2 t-1: 0.3 当前帧t: 0.4 <-- 最高权重

4. 实战部署指南与避坑手册

4.1 硬件配置建议

经过实测,不同硬件平台的延迟表现如下:

设备推理延迟适用场景
RTX 409012ms高精度工业场景
RTX 309015ms实验室研发环境
Jetson AGX Orin28ms移动机器人嵌入式部署

致命陷阱:千万不要在消费级CPU上尝试部署!我们曾在i9-13900K上测试,延迟高达200ms,会导致机械臂剧烈抖动。

4.2 真机调参秘籍

  1. 动作平滑系数:修改configs/robot/smooth.yaml中的beta参数(建议0.3-0.7)
  2. 视觉采样频率:与摄像头帧率强相关,需要匹配:
    camera: fps: 30 # 相机实际帧率 model_fps: 15 # 模型处理帧率
  3. 紧急停止策略:务必外接力矩传感器,当DiT输出的关节力矩超过阈值时触发急停

5. 性能对比与场景适配

在叠毛巾任务中,Xiaomi-Robotics-0与传统方法的对比令人印象深刻:

指标传统方法Xiaomi-Robotics-0
任务成功率62%89%
平均耗时38s22s
动作抖动次数7.21.5

特别适合的应用场景包括:

  • 柔性物体操作(衣物折叠、线缆整理)
  • 非结构化环境下的抓取(超市货架、家庭厨房)
  • 需要实时响应的交互任务(接抛球、动态避障)

我在部署过程中发现一个有趣现象:当处理透明物体时,补充安装深度相机并修改vision/preprocess.py中的反射率补偿参数,能使抓取成功率提升27%。这提醒我们,开源模型虽强,仍需根据具体场景做感知增强。

返回列表