[EAI-027] RDT-1B: a Diffusion Foundation Model for Bimanual Manipulation

Paper Card

论文标题:RDT-1B: a Diffusion Foundation Model for Bimanual Manipulation
论文作者:Songming Liu, Lingxuan Wu, Bangguo Li, Hengkai Tan, Huayu Chen, Zhengyi Wang, Ke Xu, Hang Su, Jun Zhu
论文链接:https://arxiv.org/abs/2410.07864v1
项目主页:https://rdt-robotics.github.io/rdt-robotics/
论文出处:/
论文被引:/

Abstract

双臂操作由于协调两只机械臂的复杂性(导致多模态动作分布)以及训练数据的稀缺性,开发基础模型极具挑战性。本文提出了用于双臂操作的扩散基础模型 Robotics Diffusion Transformer (RDT)。 RDT 构建在扩散模型的基础上,有效地表征多模态动作分布,并创新性地设计了可扩展的Transformer来处理异质的多模态输入,以学习非线性和高频的机器人数据。为了解决数据稀缺问题,引入了物理可解释的统一动作空间,该空间可以统一各种机器人的动作表示,同时保留原始动作的物理意义,便于学习可迁移的物理知识。凭借这些设计,成功地对迄今为止最大的多机器人数据集完成了参数量最大的基于扩散的机器人操作基础模型 RDT-1.2B 的训练。 最后,在一个自建的多任务双臂数据集上对RDT进行了微调,该数据集包含超过 6K+ episode,以改进其操作能力。真实机器人上的实验表明,RDT 显著优于现有方法。 展示了对未见的物体和场景的零样本泛化,理解并遵循语言指令,只需 1∼5 次演示数据就能学习新技能,并有效地处理复杂、灵巧的任务。

Summary

用于机器人双臂操作的基础模型 1.2B,跟pi0是同期发布的工作,应该不是参数规模最大的了。这个模型的优势是整个DiT骨干上进行扩散过程,相比pi0仅仅在action expert进行扩散,能够统一动作空间。劣势是没办法做多模态推理,对语言指令的语义泛化能力没有使用VLM的pi0好。开源了 6k+ 条的双臂操作数据,功德无量~
在这里插入图片描述

研究背景

当前缺少用于机器人双臂操作的基础模型,主要原因是包含高维动作空间的数据稀缺(可用数据 < 10K episode),硬件成本高,数据采集困难。为了解决这个问题,首先能够使用已有的机器人数据,这些数据可以是单臂机器人的数据,提供一个比较好的start up之后,再使用专门的双臂数据进行微调,并且要具备一定的泛化能力。要达成这个目标,需要解决下述模型层面问题:1)需要一个在表达能力和可扩展性方面非常强大的架构,尤其是对机器人动作空间多模态分布特性的建模能力;2)能够有效地处理多模态的异质数据,包括文本、图像和动作(不同机器人本体、不同机器人观测空间等等);3)能够高效稳定地在大规模数据上进行训练。

方法介绍

本文提出了一个具备强大泛化能力的双臂操作基础模型 Robotics Diffusion Transformer (RDT),其以 DiT 作为骨干网络,这使得其具备对复杂动作分布的建模能力,精心设计了多模态编码器,以消除模态间的异质性。

  • 为了适配机器人动作的高频变化和非线性动力学,针对DiT做了优化,主要包括MLP解码,改进的归一化方法和交替条件注入(alternating condition injecting)。
  • 为了能够在异质数据上训练,设计了可解释的统一动作空间,这是一个用于具有夹爪机器人的统一动作格式,可以在保留原始操作物理语义的前提下,缓解不同机器人动作空间配置的冲突,从而学习跨机器人本体的课泛化的物理世界知识。

问题描述

机器人本体:松灵 ALOHA 双臂机器人,通过遥操作收集数据,包括两个二指夹爪,两个腕部相机和第三视角相机
在这里插入图片描述
在这里插入图片描述

解决的问题:以语言为条件的双臂视觉操作任务,在家居场景具有重要价值。给定语言指令 l,和 t 时刻的观测信息 ot(包括:相机的历史序列长度为T的RGB输入x,机器人低维的本体感受信息 zt,以及控制频率 c),模型需要生成动作 at 来控制双臂实现 l 指定的目标。注意,动作 at 通常是本体感受信息 zt+1的子集。

一个典型的双臂操作任务涉及的元素:

  • 一个技能:例如,抓取,擦拭等
  • 一个物体:例如,瓶子,桌子等
  • 一个场景:任务发生的场景
  • 一个关于如何执行技能的模态描述:例如用左手臂拿起瓶子

对于一个新任务,需要模型能够泛化到训练数据未出现过的元素。本文的的目标是训练一个适用于双臂操作机器人的基础模型 RDT 实现上述元素的泛化。注意,是利用多种机器人数据增强双臂操作的泛化能力,而非训练一个跨机器人本体泛化的基础模型。

需要解决两个问题:

  1. 如何设计强大的模型架构?
  2. 如何针对异质的数据训练?

模型架构

什么是机器人动作的多模态特性?给定语言指令和观测信息,可能存在多条可以执行的机器人动作轨迹来执行任务。如果是确定性映射的方式,模型会学习动作分布的平均值,从而导致无法完成任务。而如果使用连续条件分布建模,比如基于扩散模型,则可以解决这个问题。但随之而来的是原生的DiT架构建模的是图像和视频,并且在时间和空间上是连续的,帧与帧之间的变化是增量的。然而,机器人相关的低维动作模态等物理量是非线性的并且是高频变化的,这些特性源于注入碰撞、约束和材料阻尼等物理交互产生。此外,还可能由于传感器不可靠导致存在数值不稳定的问题。

基于扩散的动作建模

两点需要注意:去噪过程在整个网络进行,可以学习到统一的动作空间;预测的是 action trunk 而非单点的action。
在这里插入图片描述

异质多模态输入编码

异质性体现在模态的格式、维度数量和信息量(编码后的token)方面。为了解决这个问题,需要将不同的模态编码到一个统一的隐空间中,使用的编码器如下:

  • 低维输入:包括机器人诶本体感受信息,动作块、控制频率,使用带有傅立叶特征的 MLP 编码捕获低维空间中的高频变化
  • 图像输入:使用 SigLIP 从图像中提取高维的、包含丰富的空间和语义信息
  • 语言输入:使用 T5-XXL 从语言中提取长度变化、高度抽象、模糊和复杂的信息

小的trick:不同模态输入可能包含非常不同的信息量,比如第三视角相机捕获的全局视图的图像包含的信息量多于腕部相机捕获的图像,为了避免模型只关注全局视图走捷径而忽略腕部相机视图,从而失去感知深度的能力,在编码过程中以一定概率随机地对每个多模态输入进行mask,以防止模型过度依赖特定输入。

DiT骨干网络改进

对 DiT 的三个改进:

  • QKNorm 和 RMSNorm:为了解决机器人物理量的数值不稳定导致的梯度不稳定和数值溢出问题,在计算attention时,增加了 QKNorm。action prediction本质上可以看作一个时间序列预测问题,而原始DiT 中的LayerNorm中的centering 操作会导致 token shift 和 attention shift 从而破坏时间序列的对称性。因此,替换为了 RMSNorm。图 4 可以看出,如果没有这种修改,预训练会非常不稳定,并且可能导致梯度爆炸。
  • MLP解码器:为了提高对非线性的机器人动作的建模能力,将现行解码器替换为非线性MLP解码器,作为从隐空间到物理空间的投影。图 4 可以看出,如果没有这个改进,RDt 无法有效地捕获非线性动态,从而导致无法完成需要精细操作的灵巧操作任务。
  • Alternating Condition Injection (ACI):RDT中的图像和语言输入作为条件,是高维的,并且长度可变,这与传统 DiTs 中的类别标签条件不同。这些信息丰富的条件难以压缩成单个 token,使得原始的 adapter layer 的 norm 方法不适用。因此,采用交叉注意力来适应不同长度的条件,避免在进一步压缩时造成信息丢失。此外,由于图像通常远多于文本token,同时注入两种模态往往会掩盖文本相关信息,从而削弱指令遵从能力(图 4)。 为了缓解这个问题,在 successive layer 的交叉注意力中交替注入图像和文本token,而不是在每一层都注入

数据构建

统一的动作空间

为了能够在异构多机器人数据上进行训练,需要一个在各种机器人之间共享的统一动作空间,它可以为多机器人动作提供统一的格式。 从机器人的原始动作空间到统一动作空间的映射应该是物理上可解释的,其每个维度都应该具有明确的物理意义。这可以使得模型从不同的机器人数据中学习共享的物理规律,从而提高从不同机器人数据中学习的效率。

如图 3 左侧所示,通过将原始动作向量中的每个元素根据其物理意义填充到统一动作空间向量的对应位置来将机器人的动作空间嵌入到这个统一空间中,剩余位置则用填充值填充(表 4 列出了具体的含义)。在这个统一空间下,能够利用几乎所有带夹爪的现代机器人的数据上预训练 RDT,并极大地扩展数据规模,以满足基础模型的要求。 预训练数据包含 46 种不同机器人的数据集(表 6),总规模为 1M+ 条轨迹,共计 21TB。
在这里插入图片描述
在这里插入图片描述

双臂操作任务数据收集

高质量的微调数据集对于模型性能至关重要。从三个方面确保数据集的高质量:

  1. 在数量方面,收集了 6K+ 条轨迹,是目前最大的双臂数据集之一;
  2. 在全面性方面,考虑了 300+ 个具有挑战性的任务,涵盖了从抓取和放置到连接电缆等大多数操作任务类型,甚至包括书写数学方程;
  3. 在多样性方面,准备了 100+ 个物体,包括不同尺寸和纹理的刚性和非刚性物体,以及 15+ 个不同照明条件的不同房间
    此外,进一步利用 GPT-4-Turbo 来重写人工标注的指令,以增加文本多样性。
    在这里插入图片描述

消融实验

实验设置

旨在通过真实机器人实验回答以下问题:

Q1: RDT 的零样本泛化能力是否可以泛化到未见的物体和场景?

Q2: RDT 的零样本指令遵循能力对未见的模态的有效性?

Q3: RDT 能否促进对未见的技能的少样本学习?

Q4: RDT 是否能够完成需要精细操作的任务?

Q5: 大模型参数、大数据量和扩散模型对 RDT 的性能有帮助吗?

  • RDT (ours): the original RDT.
  • RDT (regress): RDT without diffusion modeling. It models the deterministic mapping (ℓ,𝒐t)↦𝒂t.
  • RDT (small): RDT without large parameters. It has only 166M parameters.
  • RDT (scratch): RDT without pre-training. It is trained from scratch during fine-tuning.

研究任务:一共7个,来评估 RDT 从不同维度的泛化能力和功能,包括模型在现实世界任务中可能遇到的复杂场景,例如各种未见的元素和灵巧的操作。如图5和表1所示。
在这里插入图片描述
在这里插入图片描述
数据量:

  • Wash Cup: 133 demos for seen cups combined and 0 demos for unseen cups;
  • Pour Water: 350 demos for seen rooms combined and 0 demos for unseen rooms;
  • Pour Water-L-1/3 & Pour Water-R-2/3: 18 demos for the water level of little, 19 demos for half, and 19 demos for full;
  • Handover: 5 demos; Fold Shorts: 1 demo;
  • Robot Dog: 68 demos.

模型训推:

  • 训练:48 个 H100 GPU,一个月,1M steps
  • 微调:48 个 H100 GPU,三天,130K steps

模型推理:

  • 框架:DPM-Slover++
  • RTX 4090 24GB GPU 推理频率 6Hz Action Trunk,381 Hz Actions

测试配置:

  • Wash Cup is tested with 8 trials for each cup (one seen cup, two unseen cups, 24 trials in total).
  • Pour Water is tested with 8 trials for each room (three unseen rooms, 24 trials in total).
  • Pour Water-L-1/3 and Pour Water-R-2/3 are tested with 8 trials each.
  • Handover, Fold Shorts, and Robot Dog are tested with 25 trials each.

实验分析

在这里插入图片描述
在这里插入图片描述

从表 3 的结果可以看出,RDT 始终优于其他基线方法。 这是因为 RDT 使用强大的网络架构与扩散相结合,能够准确地对多模态动作的分布进行建模,而离散化和 VAE 分别缺乏准确性和表达能力。 此外,大规模预训练后的大量参数提供了大量的先验知识,这极大地提高了泛化能力。 下面是详细分析:

Q1 & Q2: RDT 可以零样本泛化到未见的物体、场景和模态。 在 Wash Cup 和 Pour Water 任务中,RDT 仍然可以在未见的场景中取得很高的成功率,其性能与可见场景中的性能相差无几。 相反,其他基线方法甚至无法完成整个任务。 在 Pour Water-L-1/3 和 Pour Water-R-2/3 中,从图 5 或图 10 可以发现,RDT 精确地理解了要操纵哪只手以及要倒多少水,并通过其动作严格遵循指令,即使它从未见过像“三分之一”或“三分之二”这样的词正是因为大规模预训练,RDT 已经看到了大量的不同物体、场景和指令,从而导致了如此强大的零样本泛化

Q3: RDT 仅使用少量样本就可以学习新技能。 在 Handover 和 Fold Shorts 中,RDT 通过少样本学习学习了新的复杂技能,即移交和折叠,其动作模式与已知技能非常不同,而其他模型的成功率几乎为零。 这种改进也归因于大规模预训练。 少样本学习可以帮助 RDT 快速适应新的工作环境,这对实际应用具有重大意义

Q4: RDT 可以处理灵巧的任务。 在 Robot Dog 中,RDT 在推动操纵杆时准确地控制角度,而其他机器人则会导致机器狗偏离。这是因为扩散,可以对多模态和非线性动作的分布进行建模,从而使动作精度能够满足灵巧任务的要求。 操纵杆和遥控器都是黑色的,使得操纵杆在视觉上不明显。这可能会导致 ACT 容易发生故障。 相比之下,大规模预训练使 RDT 学习了更好的操纵杆概念的视觉语言表示,提高了识别能力

Q5: 大型模型尺寸、大量数据和扩散都是我们取得优异成绩的重要因素。 在表 2 中,如果没有这些因素,性能会严重下降。RDT (scratch) 在未见的物体和场景上的表现很差,这表明预训练的知识对于泛化至关重要

实验结论

本文提出了 RDT 来解决可泛化双臂操作中数据稀缺和操作复杂性增加的挑战,RDT 是一种基于扩散的语言条件视觉运动模仿学习基础模型(diffusion-based foundation model for language-conditioned visuomotor imitation learning)。 RDT 是在一个广泛的多机器人数据集上预训练的,并在一个自收集的双臂数据集上微调。引入了可解释的统一动作空间,以统一不同机器人之间的动作表示,增强了鲁棒性和可迁移性。RDT 超越了现有方法,不仅在灵巧的双臂能力和指令遵循方面表现出显著改进,而且在少样本学习和对未见物体和场景的零样本泛化方面也取得了卓越的性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/68622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可扩展架构:如何打造一个善变的柔性系统?

系统的构成:模块 + 关系 我们天天和系统打交道,但你有没想过系统到底是什么?在我看来,系统内部是有明确结构 的,它可以简化表达为: 系统 = 模块 + 关系 在这里,模块是系统的基本组成部分,它泛指子系统、应用、服务或功能模块。关系指模块 之间的依赖关系,简单…

【LLM】DeepSeek-R1-Distill-Qwen-7B部署和open webui

note DeepSeek-R1-Distill-Qwen-7B 的测试效果很惊艳&#xff0c;CoT 过程可圈可点&#xff0c;25 年应该值得探索更多端侧的硬件机会。 文章目录 note一、下载 Ollama二、下载 Docker三、下载模型四、部署 open webui 一、下载 Ollama 访问 Ollama 的官方网站 https://ollam…

讯飞智作 AI 配音技术浅析(二):深度学习与神经网络

讯飞智作 AI 配音技术依赖于深度学习与神经网络&#xff0c;特别是 Tacotron、WaveNet 和 Transformer-TTS 模型。这些模型通过复杂的神经网络架构和数学公式&#xff0c;实现了从文本到自然语音的高效转换。 一、Tacotron 模型 Tacotron 是一种端到端的语音合成模型&#xff…

JavaScript 进阶(下)

原型 what 首先&#xff0c;构造函数通过原型分配的函数是所有对象所 共享的。 然后&#xff0c;JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象 这个对象可以挂载函数&#xff0c;对象实…

Effective Objective-C 2.0 读书笔记—— 消息转发

Effective Objective-C 2.0 读书笔记—— 消息转发 文章目录 Effective Objective-C 2.0 读书笔记—— 消息转发前言消息转发机制概述动态方法解析处理dynamic的属性用于懒加载 消息转发快速消息转发完整消息转发 总结 前言 在前面我学习了关联对象和objc_msgSend的相关内容&a…

Hive:struct数据类型,内置函数(日期,字符串,类型转换,数学)

struct STRUCT&#xff08;结构体&#xff09;是一种复合数据类型&#xff0c;它允许你将多个字段组合成一个单一的值, 常用于处理嵌套数据&#xff0c;例如当你需要在一个表中存储有关另一个实体的信息时。你可以使用 STRUCT 函数来创建一个结构体。STRUCT 函数接受多个参数&…

嵌入式知识点总结 Linux驱动 (二)-uboot bootloader

针对于嵌入式软件杂乱的知识点总结起来&#xff0c;提供给读者学习复习对下述内容的强化。 目录 1.什么是bootloader&#xff1f; 2.Bootloader的两个阶段 3.uboot启动过程中做了哪些事&#xff1f; 4.uboot和内核kernel如何完成参数传递&#xff1f; 5.为什么要给内核传递…

Unbutu虚拟机+eclipse+CDT编译调试环境搭建

问题1: 安装CDT&#xff0c;直接Help->eclipse Market space-> 搜cdt , install&#xff0c;等待重启即可. 问题2&#xff1a;C变量不识别vector ’could not be resolved 这是库的头文件没加好&#xff0c;右键Properties->C Build->Enviroment&#xff0c;增加…

碳化硅MOSFET相对IGBT和超结MOSFET出现价格倒挂预示着什么

碳化硅&#xff08;SiC&#xff09;MOSFET相对于IGBT和超结MOSFET出现价格倒挂&#xff08;即SiC MOSFET单价低于传统硅基器件&#xff09;&#xff0c;这一现象反映了化合物半导体产业的深刻变革&#xff0c;并预示着技术、市场和产业链格局的多重演变。倾佳电子杨茜从技术突破…

openRv1126 AI算法部署实战之——TensorFlow TFLite Pytorch ONNX等模型转换实战

Conda简介 查看当前系统的环境列表 conda env list base为基础环境 py3.6-rknn-1.7.3为模型转换环境&#xff0c;rknn-toolkit版本V1.7.3&#xff0c;python版本3.6 py3.6-tensorflow-2.5.0为tensorflow模型训练环境&#xff0c;tensorflow版本2.5.0&#xff0c;python版本…

LabVIEW无线齿轮监测系统

本案例介绍了基于LabVIEW的无线齿轮监测系统设计。该系统利用LabVIEW编程语言和改进的天牛须算法优化支持向量机&#xff0c;实现了无线齿轮故障监测。通过LabVIEW软件和相关硬件&#xff0c;可以实现对齿轮箱振动信号的采集、传输和故障识别&#xff0c;集远程采集、数据库存储…

SpringBoot+Vue的理解(含axios/ajax)-前后端交互前端篇

文章目录 引言SpringBootThymeleafVueSpringBootSpringBootVue&#xff08;前端&#xff09;axios/ajaxVue作用响应式动态绑定单页面应用SPA前端路由 前端路由URL和后端API URL的区别前端路由的数据从哪里来的 Vue和只用三件套axios区别 关于地址栏url和axios请求不一致VueJSPS…

jQuery小游戏(一)

jQuery小游戏&#xff08;一&#xff09; 嘻嘻&#xff0c;今天我们来写个jquery小游戏吧 首先&#xff0c;我们准备一下写小游戏需要准备的佩饰&#xff0c;如果&#xff1a;图片、音乐、搞怪的小表情 这里我准备了一些游戏中需要涉及到的图片 游戏中使用到的方法 eval() 函…

H3CNE-28-VRRP

虚拟网关冗余协议&#xff0c;Virtual Router Redundancy Protocotol 三层网关冗余技术对用户网关做冗余 VRRP配置示例 接口IP配置&#xff0c;略。 R1&#xff1a; int g0/0vrrp vrid 1 virtual 192.168.1.254vrrp vrid 1 priority 105 # 1-254,越大越优先R2&#xff1a; …

私有包上传maven私有仓库nexus-2.9.2

一、上传 二、获取相应文件 三、最后修改自己的pom文件

Alfresco Content Services dockerCompose自动化部署详尽操作

Alfresco Content Services docker社区部署文档 Alfresco Content Services简介 官方说明书 https://support.hyland.com/r/Alfresco/Alfresco-Content-Services-Community-Edition/23.4/Alfresco-Content-Services-Community-Edition/Using/Content/Folder-rules/Defining-…

麒麟操作系统服务架构保姆级教程(十四)iptables防火墙四表五链和防火墙应用案例

如果你想拥有你从未拥有过的东西&#xff0c;那么你必须去做你从未做过的事情 防火墙在运维工作中有着不可或缺的重要性。首先&#xff0c;它是保障网络安全的关键防线&#xff0c;通过设置访问控制规则&#xff0c;可精准过滤非法网络流量&#xff0c;有效阻挡外部黑客攻击、恶…

Midjourney基础-常用修饰词+权重的用法大全

用好修饰词很关键 Midjourney要用除了掌握好提示词的写法&#xff0c;按照上一篇《做Midjourney最好图文教程-提示词公式以及高级参数讲解》画面主体 场景氛围 主体行为 构图方式 艺术风格 图像质量。 要画出有质感的内容我们必须要掌握好“修饰词”&#xff0c;这些修饰…

钉钉群机器人设置——python版本

钉钉群机器人设置——python版本 应用场景钉钉界面操作程序开发效果展示 应用场景 由于工作需要&#xff0c;很多项目执行程序后出现报错信息无法第一时间收到&#xff0c;因此实时预警对于监控程序还是有必要。&#xff08;仅个人观点&#xff09; 参考文档及博客&#xff1a…

babylon.js-3:了解STL网格模型

网格模型上色 本篇文章主要介绍如何在 BabylonJS 中实现STL网格模型上色。 文章目录 网格模型上色运用场景概要延申正文加载器库的支持认识 OBJ 和 STL 文件GUI 色板选择器网格模型异步加载加载动画网格模型上色官方即将弃用 ImportMesh 而推荐使用 ImportMeshAsync 说明OBJ …