[EAI-027] RDT-1B,目前最大的用于机器人双臂操作的机器人基础模型
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 实现上述元素的泛化。注意,是利用多种机器人数据增强双臂操作的泛化能力,而非训练一个跨机器人本体泛化的基础模型。
需要解决两个问题:
- 如何设计强大的模型架构?
- 如何针对异质的数据训练?
模型架构
什么是机器人动作的多模态特性?给定语言指令和观测信息,可能存在多条可以执行的机器人动作轨迹来执行任务。如果是确定性映射的方式,模型会学习动作分布的平均值,从而导致无法完成任务。而如果使用连续条件分布建模,比如基于扩散模型,则可以解决这个问题。但随之而来的是原生的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。


双臂操作任务数据收集
高质量的微调数据集对于模型性能至关重要。从三个方面确保数据集的高质量:
- 在数量方面,收集了 6K+ 条轨迹,是目前最大的双臂数据集之一;
- 在全面性方面,考虑了 300+ 个具有挑战性的任务,涵盖了从抓取和放置到连接电缆等大多数操作任务类型,甚至包括书写数学方程;
- 在多样性方面,准备了 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 超越了现有方法,不仅在灵巧的双臂能力和指令遵循方面表现出显著改进,而且在少样本学习和对未见物体和场景的零样本泛化方面也取得了卓越的性能。
相关文章:
[EAI-027] RDT-1B,目前最大的用于机器人双臂操作的机器人基础模型
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/ab…...
什么是Rust?它有什么特点?为什么要学习Rust?
什么是Rust?它有什么特点?为什么要学习Rust? 如果你是一名编程初学者,或者已经有一些编程经验但对Rust感兴趣,那么这篇文章就是为你准备的!我们将用简单易懂的语言,带你了解Rust是什么、它有什…...
[EAI-028] Diffusion-VLA,能够进行多模态推理和机器人动作预测的VLA模型
Paper Card 论文标题:Diffusion-VLA: Scaling Robot Foundation Models via Unified Diffusion and Autoregression 论文作者:Junjie Wen, Minjie Zhu, Yichen Zhu, Zhibin Tang, Jinming Li, Zhongyi Zhou, Chengmeng Li, Xiaoyu Liu, Yaxin Peng, Chao…...
AIP-134 标准方法:Update
编号134原文链接AIP-134: Standard methods: Update状态批准创建日期2019-01-24更新日期2022-06-02 REST API通常向资源URI(如 /v1/publishers/{publisher}/books/{book} )发出 PATCH 或 PUT 请求,更新资源。 面向资源设计(AIP-…...
计算机网络一点事(24)
TCP可靠传输,流量控制 可靠传输:每字节对应一个序号 累计确认:收到ack则正确接收 返回ack推迟确认(不超过0.5s) 两种ack:专门确认(只有首部无数据) 捎带确认(带数据…...
DIFY源码解析
偶然发现Github上某位大佬开源的DIFY源码注释和解析,目前还处于陆续不断更新地更新过程中,为大佬的专业和开源贡献精神点赞。先收藏链接,后续慢慢学习。 相关链接如下: DIFY源码解析...
Kafka SSL(TLS)安全协议
文章目录 Kafka SSL(TLS)安全协议1. Kafka SSL 的作用1.1 数据加密1.2 身份认证1.3 数据完整性1.4 防止中间人攻击1.5 确保安全的分布式环境1.6 防止拒绝服务(DoS)攻击 2. Kafka SSL 配置步骤(1)创建 SSL 证…...
hexo部署到github page时,hexo d后page里面绑定的个人域名消失的问题
Hexo 部署博客到 GitHub page 后,可以在 setting 中的 page 中绑定自己的域名,但是我发现更新博客后绑定的域名消失,恢复原始的 githubio 的域名。 后面搜索发现需要在 repo 里面添加 CNAME 文件,内容为 page 里面绑定的域名&…...
【Block总结】MAB,多尺度注意力块|即插即用
文章目录 一、论文信息二、创新点三、方法MAB模块解读1、MAB模块概述2、MAB模块组成3、MAB模块的优势 四、效果五、实验结果六、总结代码 一、论文信息 标题: Multi-scale Attention Network for Single Image Super-Resolution作者: Yan Wang, Yusen Li, Gang Wang, Xiaoguan…...
移动互联网用户行为习惯哪些变化,对小程序的发展有哪些积极影响
一、碎片化时间利用增加 随着生活节奏的加快,移动互联网用户的碎片化时间越来越多。在等公交、排队、乘坐地铁等间隙,用户更倾向于使用便捷、快速启动的应用来满足即时需求。小程序正好满足了这一需求,无需下载安装,随时可用&…...
使用UpdateCursor删除行
UpdateCursor除了可以编辑表或要素类的行外,还可以删除行.但要记住,在编辑会话外删除行时,更改是永久性的. 操作方法: 1.打开IDLE,新建一个脚本 2.导入arcpy和os模块 import arcpy import os 3.设置工作空间 arcpy.env.workspace "<>" 4.在with语句中新…...
使用 Tauri 2 + Next.js 开发跨平台桌面应用实践:Singbox GUI 实践
Singbox GUI 实践 最近用 Tauri Next.js 做了个项目 - Singbox GUI,是个给 sing-box 用的图形界面工具。支持 Windows、Linux 和 macOS。作为第一次接触这两个框架的新手,感觉收获还蛮多的,今天来分享下开发过程中的一些经验~ 为啥要做这个…...
1.4 Go 数组
一、数组 1、简介 数组是切片的基础 数组是一个固定长度、由相同类型元素组成的集合。在 Go 语言中,数组的长度是类型的一部分,因此 [5]int 和 [10]int 是两种不同的类型。数组的大小在声明时确定,且不可更改。 简单来说,数组…...
攻防世界_simple_php
同类型题(更难版->)攻防世界_Web(easyphp)(php代码审计/json格式/php弱类型匹配) php代码审计 show_source(__FILE__):show_source() 函数用于显示指定文件的源代码,并进行语法高亮显示。__FILE__ 是魔…...
如何使用C#的using语句释放资源?什么是IDisposable接口?与垃圾回收有什么关系?
在 C# 中,using语句用于自动释放实现了IDisposable接口的对象所占用的非托管资源,如文件句柄、数据库连接、图形句柄等。其使用方式如下: 基础用法 声明并初始化资源对象:在using关键字后的括号内声明并初始化一个实现了IDisposable接口的对象。使用资源:在using语句块内…...
C++哈希(链地址法)(二)详解
文章目录 1.开放地址法1.1key不能取模的问题1.1.1将字符串转为整型1.1.2将日期类转为整型 2.哈希函数2.1乘法散列法(了解)2.2全域散列法(了解) 3.处理哈希冲突3.1线性探测(挨着找)3.2二次探测(跳…...
Solon Cloud Gateway 开发:导引
Solon Cloud Gateway 是 Solon Cloud 体系提供的分布式网关实现(轻量级实现)。 分布式网关的特点(相对于本地网关): 提供服务路由能力提供各种拦截支持 1、分布式网关推荐 建议使用专业的分布式网关产品࿰…...
科技快讯 | OpenAI首次向免费用户开放推理模型;特朗普与黄仁勋会面;雷军回应“10后小学生深情表白小米SU7”
不用开口:谷歌 AI 帮你致电商家,价格、预约一键搞定 谷歌在1月30日推出Search Labs中的“Ask for Me”实验性功能,用户可利用AI代替自己致电商家咨询价格和服务。该功能已与美汽车修理厂和美甲沙龙店合作,用户需加入Search Labs并…...
dmfldr实战
dmfldr实战 本文使用达梦的快速装载工具,对测试表进行数据导入导出。 新建测试表 create table “BENCHMARK”.“TEST_FLDR” ( “uid” INTEGER identity(1, 1) not null , “name” VARCHAR(24), “begin_date” TIMESTAMP(0), “amount” DECIMAL(6, 2), prim…...
谷歌收购HTC Vive部分软件团队:为VR/AR生态注入新活力
虚拟现实(VR)和增强现实(AR)技术的快速发展,正在重新定义我们与数字世界互动的方式。然而,尽管这些技术具有巨大的潜力,初创公司进入平台层面的竞争却异常艰难。Meta凭借其既有实力和先发优势占据了市场的主导地位,而苹果则似乎更倾向于专注于AR领域的发展。在这种背景…...
Spring AOP 入门教程:基础概念与实现
目录 第一章:AOP概念的引入 第二章:AOP相关的概念 1. AOP概述 2. AOP的优势 3. AOP的底层原理 第三章:Spring的AOP技术 - 配置文件方式 1. AOP相关的术语 2. AOP配置文件方式入门 3. 切入点的表达式 4. AOP的通知类型 第四章&#x…...
ElasticSearch view
基础知识类 elasticsearch和数据库之间区别? elasticsearch:面向文档,数据以文档的形式存储,即JSON格式的对象。更强调数据的搜索、索引和分析。 数据库:更侧重于事务处理、数据的严格结构化和完整性,适用于…...
一文读懂Python之random模块(31)
random模块是Python的内置标准库,用于生成各类随机数,可以用作生成网站初始登录密码和随机验证码。 一、random模块简介 random模块可以生成随机数,包括随机整数、浮点数、随机元素等。 二、random模块相关概念 随机数: 是指在…...
12.udp
12.udp **1. UDP特性****2. UDP编程框架(C/S模式)****3. UDP发送接收函数****4. UDP编程练习** 1. UDP特性 连接特性:无链接,通信前无需像TCP那样建立连接。可靠性:不可靠,不保证数据按序到达、不保证数据…...
Upscayl-官方开源免费图像AI增强软件
upscayl 链接:https://pan.xunlei.com/s/VOI0Szqe0fCwSSUSS8zRqKf7A1?pwdhefi#...
【Super Tilemap Editor使用详解】(十七):常见问题解答(FAQ)
1.问题:我更新了 Unity 版本后,资源无法正常工作或代码出现错误。 解答:当你使用不同版本的 Unity 打开项目时,应该删除项目根目录下的 Library 文件夹。此外,如果遇到窗口问题,可以将窗口布局重置为默认布局。 2.问题:我在 SceneView 中看不到工具栏,也无法在图块地图…...
SpringBoot Web开发(SpringMVC)
SpringBoot Web开发(SpringMVC) MVC 核心组件和调用流程 Spring MVC与许多其他Web框架一样,是围绕前端控制器模式设计的,其中中央 Servlet DispatcherServlet 做整体请求处理调度! . 除了DispatcherServletSpringMVC还会提供其他…...
苍穹外卖第一天
角色分工 技术选型 pojo子模块 nginx反向代理 MD5密码加密...
C# Winform enter键怎么去关联button
1.关联按钮上的Key事件按钮上的keypress,keydown,keyup事件随便一个即可private void textBox1_KeyDown(object sender, KeyEventArgs e){if (e.KeyCode Keys.Enter){this.textBox2.Focus();}}2.窗体上的事件private void textBox2_KeyPress(object sen…...
LeGO LOAM坐标系问题的自我思考
LeGO LOAM坐标系问题的自我思考 IMU坐标系LeGO LOAM代码分析代码 对于IMU输出测量值的integration积分过程欧拉角的旋转矩阵VeloToStartIMU()函数TransformToStartIMU(PointType *p) IMU坐标系 在LeGO LOAM中IMU坐标系的形式采用前(x)-左(y)-上(z)的形式,IMU坐标系…...
