深入理解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学习资源大全:从官方示例到社区最佳实践

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

2026/10/23 18:53:53 阅读更多 →
【AI在线咨询落地实战指南】:20年IT专家亲授5大避坑法则与3周上线速成路径

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

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

2026/11/3 5:42:18 阅读更多 →
发电企业的数据,为什么“存得多”却“用得少”?

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

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

2026/11/2 16:48:12 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/3 1:09:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/2 10:46:11 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/2 10:47:40 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/3 2:27:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/2 10:46:31 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/2 10:46:26 阅读更多 →

日新闻

周新闻

月新闻