news 2026/7/26 13:27:07

Octo论文详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/24 19:35:28

python3

import osdef traverse_files(path):# 遍历当前路径下的所有文件和文件夹for item in os.listdir(path):# 拼接完整路径item_path os.path.join(path, item)if os.path.isfile(item_path):# 是文件则输出路径print("文件:", item_path)elif os.path.isdir(item_path…

作者头像 李华
网站建设 2026/7/25 16:36:19

【3D图像技术分析与实现】Apple Vision Pro三维成像技术栈深度解析

作为空间计算的标杆产品,Apple Vision Pro的三维成像能力是其实现虚实融合体验的核心基石。它并未依赖单一技术路径,而是通过“多传感器硬件阵列专用芯片算力全栈软件框架”的协同架构,构建了兼具精度、实时性与沉浸感的三维感知系统。本文将…

作者头像 李华
网站建设 2026/7/21 19:26:50

经典算法题详解之统计重复个数(三)

算法我们设计一个哈希表 recall:哈希表 recall 以 s2 字符串的下标 index 为索引,存储匹配至第 s1cnt 个 s1 的末尾,当前匹配到第 s2cnt 个 s2 中的第 index 个字符时, 已经匹配过的 s1 的个数 s1cnt 和 s2 的个数 s2cnt 。我们在…

作者头像 李华
网站建设 2026/7/25 12:46:25

移动应用开发实验室大一上考核

文章目录一、二叉树的前序遍历递归法迭代法二、用栈实现队列1. push(int x):将元素加入队列尾部2. pop():移除并返回队列头部元素3. peek():返回队列头部元素4. empty():判断队列是否为空三、无重复字符的最长字串四、打家劫舍1. …

作者头像 李华
网站建设 2026/7/26 10:59:50

云数据库服务(如AWS RDS)的优势和考虑因素?

随着全球数字化转型的浪潮进入深水区,数据已成为企业最核心的战略资产。如何高效、安全、经济地管理和利用这些数据,直接关系到企业的市场竞争力与创新能力。在此背景下,以亚马逊云科技(AWS)的关系型数据库服务&#x…

作者头像 李华
网站建设 2026/7/24 7:20:15

【设计模式|第四篇】适配器模式:让不兼容的接口协同工作

适配器模式详解基本概念现实生活中的例子 核心角色优缺点分析优点缺点 实现方式及选择类适配器对象适配器如何选择 实际应用案例设计建议与其他模式的关系 适配器模式详解 基本概念 适配器模式(Adapter Pattern)是一种结构型设计模式,它的核…

作者头像 李华