深入理解Xiaomi-Robotics-0-LIBERO的动作生成机制:从输入编码到控制命令的全流程

发布时间:2026/9/25 17:10:17

深入理解Xiaomi-Robotics-0-LIBERO的动作生成机制:从输入编码到控制命令的全流程
深入理解Xiaomi-Robotics-0-LIBERO的动作生成机制从输入编码到控制命令的全流程【免费下载链接】Xiaomi-Robotics-0-LIBERO项目地址: https://ai.gitcode.com/hf_mirrors/XiaomiRobotics/Xiaomi-Robotics-0-LIBEROXiaomi-Robotics-0-LIBERO是小米机器人技术团队开发的开源项目专注于机器人动作生成与控制。本文将详细解析其核心动作生成机制从输入编码到控制命令输出的完整流程帮助新手开发者快速掌握项目核心技术。动作生成系统架构概览Xiaomi-Robotics-0-LIBERO采用模块化设计主要由视觉语言模型VLM和动作生成模块DiT两部分组成。系统架构如图所示输入数据 → 视觉语言编码器 → 状态与动作投影 → DiT解码器 → 动作输出核心实现位于modeling_mibot.py文件中其中MiBoTForActionGeneration类整合了完整的动作生成流程。关键组件介绍Qwen3VL视觉语言模型负责处理多模态输入图像/视频文本指令DiT解码器基于扩散模型的动作生成核心状态/动作投影器实现状态与动作空间的维度转换时间嵌入模块为扩散过程提供时间步信息输入编码多模态信息处理系统支持图像、视频和文本指令等多种输入形式通过统一的编码流程转换为模型可处理的特征向量。视觉输入处理图像和视频输入通过Qwen3VLVisionModel类进行处理图像分块嵌入使用Qwen3VLVisionPatchEmbed将图像分割为固定大小的块并投影到特征空间位置编码通过fast_pos_embed_interpolate方法生成空间位置信息视觉注意力Qwen3VLVisionAttention模块提取图像特征关键代码实现# 图像特征提取流程 hidden_states self.patch_embed(hidden_states) # 分块嵌入 pos_embeds self.fast_pos_embed_interpolate(grid_thw) # 位置编码 hidden_states hidden_states pos_embeds # 添加位置信息文本指令编码文本指令通过Qwen3VLTextModel处理采用Transformer架构词嵌入embed_tokens将文本转换为向量表示** Rotary位置编码**Qwen3VLTextRotaryEmbedding处理序列位置信息自注意力机制Qwen3VLTextAttention捕获文本上下文关系状态与动作空间转换机器人状态和动作需要经过投影处理以适应模型输入输出要求。状态投影环境状态通过MLPProjector转换为与模型隐藏层维度匹配的特征self.state_projector MLPProjector( input_dimconfig.state_dim, output_dimconfig.dit_config.hidden_size, num_layers2 )动作投影与输出动作空间转换包括编码输入到模型和解码模型输出到动作两个过程# 动作输入投影 self.action_projector MLPProjector( input_dimconfig.action_dim, output_dimconfig.dit_config.hidden_size, num_layers2 ) # 动作输出解码 self.action_output_layer MLPProjector( input_dimconfig.dit_config.hidden_size, output_dimconfig.action_dim, num_layers2 )DiT动作生成核心扩散模型DiT是动作生成的核心通过逐步去噪过程生成平滑的机器人动作序列。时间嵌入扩散过程的时间步信息通过TimestepEmbedder编码class TimestepEmbedder(nn.Module): def forward(self, t): t_freq self.timestep_embedding(t, self.frequency_embedding_size) t_emb self.mlp(t_freq) return t_emb[:, None]解码器层结构DecoderLayer整合了注意力和MLP模块支持动作序列生成class DecoderLayer(nn.Module): def forward(self, hidden_states, past_key_values, position_embeds, t_embeds, attn_maskNone): # 注意力子层 residual hidden_states hidden_states self.input_layernorm(hidden_states) hidden_states modulate(hidden_states, shift_msa, scale_msa) hidden_states self.attn(hidden_states, past_key_values, position_embeds, attn_mask) hidden_states residual gate_msa * hidden_states # MLP子层 residual hidden_states hidden_states self.post_layernorm(hidden_states) hidden_states modulate(hidden_states, shift_mlp, scale_mlp) hidden_states self.mlp(hidden_states) hidden_states residual gate_mlp * hidden_states return hidden_states扩散过程实现动作生成采用逐步去噪的扩散过程从随机噪声开始迭代优化x torch.randn_like(action_mask) # 初始随机噪声 dt 1.0 / num_steps for step in range(num_steps): t torch.ones((x.shape[0], 1, 1), devicex.device, dtypex.dtype) * step / num_steps v dit_forward_fn(x, t) # 预测噪声 x x v * dt # 更新动作完整动作生成流程综合上述模块完整的动作生成流程如下输入处理多模态输入图像/视频文本通过VLM编码状态编码机器人当前状态通过状态投影器转换初始噪声生成随机动作噪声作为扩散起点迭代去噪DiT模型逐步优化动作序列动作输出生成最终机器人控制命令核心代码入口在MiBoTForActionGeneration类的forward方法torch.no_grad() def forward(self, state, action_mask, num_steps5,** kwargs): vlm_outputs self.vlm(**kwargs, use_cacheTrue) # VLM编码 state_embed self.state_projector(state) # 状态投影 # 扩散过程 x torch.randn_like(action_mask) # 初始噪声 for step in range(num_steps): t torch.ones((x.shape[0], 1, 1), devicex.device) * step / num_steps v self.dit_forward(x, t, ...) # 噪声预测 x x v * (1.0/num_steps) # 迭代更新 return ActionGenerationOutput(actionsx)快速上手与实践环境准备首先克隆项目仓库git clone https://gitcode.com/hf_mirrors/XiaomiRobotics/Xiaomi-Robotics-0-LIBERO基本使用示例动作生成的基本调用方式from modeling_mibot import MiBoTForActionGeneration import torch # 加载模型 model MiBoTForActionGeneration.from_pretrained(./) # 准备输入 state torch.randn(1, 10, 64) # 示例状态 action_mask torch.ones(1, 20, 7) # 动作掩码 # 生成动作 outputs model(statestate, action_maskaction_mask, num_steps5) print(生成的动作序列:, outputs.actions.shape)总结与扩展Xiaomi-Robotics-0-LIBERO通过视觉语言模型与扩散模型的结合实现了从多模态指令到机器人动作的端到端生成。核心优势包括多模态理解同时处理视觉和文本输入平滑动作生成扩散模型确保动作序列的连续性灵活扩展模块化设计支持不同机器人平台适配未来可以通过以下方向进一步优化增加动作约束条件提高安全性优化扩散过程减少计算量增强环境交互反馈机制通过本文的解析相信您已经对Xiaomi-Robotics-0-LIBERO的动作生成机制有了全面了解。更多细节请参考项目源代码和技术文档。【免费下载链接】Xiaomi-Robotics-0-LIBERO项目地址: https://ai.gitcode.com/hf_mirrors/XiaomiRobotics/Xiaomi-Robotics-0-LIBERO创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

njs学习资源大全:从官方示例到社区最佳实践

njs学习资源大全:从官方示例到社区最佳实践

2026/9/25 17:10:01

njs学习资源大全:从官方示例到社区最佳实践 【免费下载链接】njs-examples NGINX JavaScript examples 项目地址: https://gitcode.com/gh_mirrors/nj/njs-examples njs(NGINX JavaScript)是一个强大的工具,它允许开发者使…

【AI在线咨询落地实战指南】:20年IT专家亲授5大避坑法则与3周上线速成路径

【AI在线咨询落地实战指南】:20年IT专家亲授5大避坑法则与3周上线速成路径

2026/9/25 17:07:35

更多请点击: https://codechina.net 第一章:AI在线咨询落地的核心价值与战略定位 AI在线咨询已从技术概念演进为关键业务基础设施,其核心价值不仅体现在响应效率提升,更在于重构客户信任路径与服务成本结构。当企业将AI咨询能力嵌…

发电企业的数据,为什么“存得多”却“用得少”?

发电企业的数据,为什么“存得多”却“用得少”?

2026/9/8 10:39:53

在数字化转型的浪潮中,发电企业无疑是走在最前列的行业之一。SIS系统实时采集机组运行数据,MIS系统管理设备台账和检修记录,燃料系统跟踪煤质化验和库存变化,财务系统核算成本和经营指标,大大小小七八套系统&#xff0…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/25 10:06:33

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/25 9:40:47

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/25 10:06:21

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/25 9:53:52

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/25 8:58:17

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/25 10:00:17

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/24 16:02:49

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/25 9:41:47

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/25 4:22:14

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…