当前位置: 首页 > news >正文

Octo论文详解

论文:Octo:An Open-Source Generalist Robot Policy

1. 引言

机器人领域构建“通用策略模型”面临多重挑战,包括处理不同的机器人结构、传感器设置、动作空间、任务规格和环境条件等,考虑设计和开发一个具备广泛适应性的机器人策略模型,旨在解决传统机器人策略难以泛化的问题。

Octo模型由Transformer架构驱动,在Open X-Embodiment数据集的800k条trajectory上训练,支持多任务、多传感器输入和多动作空间,能够高效微调并适应新领域的机器人任务。

2. Octo模型架构

Octo的核心架构是基于Transformer的通用策略模型,模型设计注重灵活性可扩展性,包括以下三个主要部分:

  • input tokenizers:将任务描述(语言指令或目标图像)和观察(第三人称和腕式相机图像或其他传感器数据)转化为统一的token序列,后续统一输入到transformer

    • 语言输入通过预训练的T5模型(111M参数)进行编码。
    • 观测和目标图像通过浅层卷积网络编码为token。

    输出:将位置编码添加到任务token和观察token,按照 [TT, To1, To2, . . . ]顺序排列

  • Transformer主干网络:输入任务token和观察token,产生embeddings

    Octo的Transformer结构采用了块状的自注意力机制,观察token只能因果地关注来自当前或更早时间步的token和任务token。这种模块化设计可以在微调过程中增加或移除观察和任务输入。

  • Readout Heads:action head接受Readout token,输出动作序列
    readout代表transformer的输出中的[CLS] token。readout标记的作用类似于BERT中的[CLS]标记,充当序列的紧凑向量嵌入。Action Head用于从Transformer输出中生成连续动作,是一个3层 MLP,包含256隐藏单元、残差连接和层归一化

Octo的架构设计是为了在处理多种不同机器人平台、传感器输入以及任务定义时具有灵活性。

这当在下游添加新的任务,不同机器人的动作空间(如末端位姿、关节位置、关节速度)仅需修改Action Head结构,Transformer主干保持完全不变,在特定的任务上进行微调。

例如: 某个场景中, 机器人配备了激光雷达, rgb相机, 红外相机, 目的是完成某些特定零件的摆放和打包, 所以这里observation就变成了rgb图像, 红外图像, 点云, task为文本指令, 以及最终的head预测为 机械臂的末端位姿, 末端执行器的开合状态等.

3. 预训练数据

Octo模型预训练基于Open X-Embodiment数据集,这是一个包含150万机器人操作轨迹的庞大数据集。Octo使用了其中80万条机器人示范数据,覆盖了多种机器人任务和环境。该数据集包括:

  • 多种不同的机器人类型和任务场景;
  • 各种传感器配置(如手腕相机和第三人称相机);
  • 丰富的任务标签,包括语言指令和目标图像。

在数据采样方面,论文采用了加权采样方法,优先选择数据多样性较高的任务和场景,同时避免过度重复的任务对训练产生偏差。此外,为了使不同的数据集之间的动作空间保持一致,研究团队对抓手动作进行了标准化处理。

4. 训练目标与优化方法

Octo采用conditional diffusion decoding head来预测连续的、多模态的动作分布。

具体来说,每个动作预测只执行一次transformer backbone的前向传播,之后,多步去噪过程完全在action head进行。生成动作步骤如下:

  • 采样高斯噪声向量;

  • 将高斯噪声添加到数据集动作

  • 通过条件化网络逐步去噪,生成准确的动作序列。

    xk−1=α(xk−γϵθ(xk,e,k)+N(0,σ2I))x^{k−1}=α(x^k−γ\epsilon_{θ}(x^k,e, k)+N(0,σ^2I))xk1=α(xkγϵθ(xk,e,k)+N(0,σ2I))

    其中,e对应的是transformer的Readout token,作为条件输入到去噪网络

与均方误差(MSE)或离散化动作分布的预测方法相比,扩散解码能够更好地捕捉多模态动作分布,提高策略的精度和灵活性。训练过程中使用了标准的DDPM(去噪扩散概率模型)目标函数,这种方法对处理复杂、多模态的机器人任务非常有效。

训练细节

  • 根据transformer的参数大小, 训练了两个模型Octo-Small(使用VIT-S), Octo-Base(使用VIT-B),
  • 图像使用了2帧历史帧(论文提到只使用1帧历史帧时, 精度反而会轻微下降)
  • 当数据集中没有文本指令时, 只用goal image作为task toke
http://www.jsqmd.com/news/88265/

相关文章:

  • 移动应用开发实验室大一上考核
  • DAY 8 打卡训练
  • 详细介绍:Java集合框架概述
  • 瑞萨推出M33内核WiFi6双频(2.4G+5G) + BLE蓝牙芯片RA6W2/W1,同时还将推出现成模组
  • 修改kubuntu下matlab2025b系统界面的大小
  • 基于SSM的高校大学生就业平台的设计与实现(开题报告)
  • 6、RSEI 生态环境质量智能评估系统 (GEE App)
  • 基于vue的酒店管理系统_tfdib7x1_springboot php python nodejs
  • Diffusion Policy详解
  • 基于python+django的学生就业管理的招聘系统(源码+lw+部署文档+讲解等)
  • 基于VFNet的安全装备检测系统Python实现(含代码+模型解析)
  • 基于springboot和vue的Script的线上超市团购系统的设计与实现_kvoptnlt(java毕业设计项目源码)
  • 将NeMo模型转换为Triton兼容格式
  • JavaDataStructure预备知识
  • 经典算法题详解之统计重复个数(三)
  • 打卡信奥刷题(2536)用C++实现信奥 P2044 [NOI2012] 随机数生成器
  • 基于springboot和vue的人脸识别的无人值守自习室预约签到系统的设计与实现_4s9zffod(java毕业设计项目源码)
  • 树的初阶相关知识(中)
  • 力扣 打家劫舍
  • Windows系统wfdprov.dll文件损坏 下载修复
  • 基于springboot和vue的协同办公系统 企业员工请假销假系统_c27myh05(java毕业设计项目源码)
  • 【3D图像技术分析与实现】Apple Vision Pro三维成像技术栈深度解析
  • 力扣 完全平方数
  • python3
  • 基于springboot和vue的城市公交管理系统的设计与实现_8f8dpq62(java毕业设计项目源码)
  • shell 判断二进制是否可用
  • Flask安装与第一个应用 路由系统
  • Triton推理服务器部署微调后的模型及测试
  • 树的初阶相关知识(上)
  • 基于springboot和vue的大学生课程排课管理系统设计_2ux3bmwb(java毕业设计项目源码)