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

具身智能controller---RT-1(Robotics Transformer)(中---实验介绍)

6 实验

实验目的是验证以下几个问题:

  1. RT-1可以学习大规模指令数据,并且可以在新任务、对象和环境上实现zero-shot的泛化能力?
  2. 训练好的模型可以进一步混合多种其他数据(比如仿真数据和来自其他机器人的数据)吗?
  3. 多种方法如何对long-horizon的机器人场景实现泛化?
  4. 泛化度量如何随着数据数量和数据多样性变化?
  5. 在设计模型方面重要和实践的决策应该是什么?他们又将如何影响性能和泛化性?

6.1 实验设置

机器人环境
机器人训练数据的采集是在一个环境下的,示教共13个机器人采集,然后会放在另外两个不同的环境中进行验证。
Seen task performance:即在训练过的任务上来评测,但这类数据也存在一定的变化(如机器人位置,物体位置不同等),一共测试了超过200个任务: 36物体抓取任务, 35敲击物体的任务, 35摆放物体的任务,48个移动物体的操作,18个开关不同抽屉的任务和36个从抽屉中取出或者放置物体的任务;
Unseen tasks generalization:在21个未见的指令任务上进行了测试,这里的未见是指组合任务未见,但拆分的动作和目标对象是见过的;
Robustness:进行了30个任务对错误诱导的鲁棒性验证实验和22个背景鲁棒性验证实验,如下图所示:
干扰Long-horizon scenarios: 测试了机器人需要执行一些列技能的场景,在两个厨房场景中测试了15个这样的任务,每个任务需要约10个步骤,这些步骤由Saycan系统根据高层指令自动产生,然后由RT-1执行。

数据
本工作的目标是建立一个高性能机器人控制系统,,对新任务具有一定的通用性,并对背景和干扰选项具有鲁棒性,因此需要采集大量的机器人数据集,包括多任务、对象和环境。原始数据集包含约130k机器人示教,在13个机器人上耗时17个月采集;当前的技能包括:抓取,放置,开关抽屉,从抽屉取放东西, 直立地放置细长东西,将他们锁住,抽出餐巾纸和打开瓶罐,同时技能的扩充是很容易的,随着需求扩增数据即可。
数据

6.2 RT-1是否可以学习大规模指令数据,并且可以在新任务、对象和环境上实现zero-shot的泛化能力?

为回答这个问题,首先和先前的几个工作(Gato, BC-Z, BC-Z XL)进行对比比较,实验结果表明本方法具有更好的性能和泛化性;
为了进一步验证泛化能力,我们在厨房环境中进行实验,首先根据真实厨房环境与训练环境的差异,将其划分成L1-L3三个等级,L1表示对新的案台上面布局和不同光照条件的通用性,L2表示额外有未见过的诱导物体,L3表示额外有较大的新未见任务设置,未见物体或者未见位置,然后对比不同方法在这三种场景下的成功率。
实验对比泛化性

6.3 训练好的模型可以进一步混合多种其他数据(比如仿真数据和来自其他机器人的数据)吗?

设计了两大类实验:(1) RT-1同时在真实数据和仿真数据上进行训练和测试 (2) RT-1在大规模不同任务上机芯训练,这些数据来自不同机器人,实验结果如下:
sim+real使用多个机器人数据训练

6.4 多种方法如何对long-horizon的机器人场景实现泛化?

在Saycan的框架下验证RT-1在long-horizon任务上的泛化能力。另外因为移动操作任务同时需要导航和操作,因此策略对底盘位置的鲁棒性也很重要(底盘可能无法到达期望位置,这时机械臂需要一定的鲁棒性)。
long horizon任务

6.5 泛化度量如何随着数据数量和数据多样性变化?

此部分对数据集的大小和多样性进行消融实验,因为数据在传统数据受限的机器人学习中扮演着重要的作用。同时由于数据采集是很昂贵的,了解什么样的数据有助于模型实现特定性能和泛化性也是很重要的。
数据泛化性
数据增长

D4 模型消融实验:在设计模型方面重要和实践的决策应该是什么?他们又将如何影响性能和泛化性?

可能的性能提升猜想包括(i) 模型的容量和表征能力,可以通过消融模型大小和试用其他结构来验证(e.g., 移除Transformer部分); (ii)特定的动作表征, 可以使得表征复杂的多模态动作分别更容易,可以通过转向连续(正态分布)动作,或者自回归动作表征; (iii) ImageNet预训练权重初始化,可以通过随机初始化进行验证;(iv)短历史帧输入,可以通过减少观测历史来验证。更具体地,消融实验包括(1)减少模型大小(参数了从 35M 降低到 21M), (2) 移除Transformer结构 (使用一个预训练的EfficientNet), (3)使用连续的动作空间(使用MSE损失和 多变量正太分布输出(multivariate normal output)), (4) 自回归训练动作, (5)移除ImageNet的预训练权重初始化, and (6) 移除历史(将历史6帧观测减少到当前单帧)。
模型消融实验

7 结论,局限和未来工作

结论

  1. RT-1在超过700个指令任务上达到97%的成功率,同时对新任务,物体和环境具有比之前工作更好的泛化性;.
  2. RT-1可以成功吸收多种数据,来自仿真环境或者其他机器人,不会牺牲在原来任务上面的性能,同时改进了对新场景的泛化性;
  3. 展示了这种性能和通用性如何可以被应用到SayCan框架中执行最多可达50步的long-horizon任务。

局限

  1. RT-1是一种模仿学习的方法,因此也继承了该类方法的缺陷,如无法超越示教者的能力;
  2. 对未见新指令的泛化性来自于以前见过的概念组合,对完全未见的指令任务不具备泛化性;
  3. 我们的方法应用在大规模但并不灵巧的操作任务.

未来工作

  1. 通过开发允许非专家来训练机器人的方法来加快机器人技能的扩充;
  2. 当前RT-1对错误诱导的鲁棒性很好,其对背景和环境的鲁棒性可以通过增加环境的多样性来提升;已有工作见diffusion-rosie;
  3. 通过可扩展的注意力和记忆来提升反应速度和文本记忆。

个人见解
RT-1模型上最大的创新在于使用了Transformer网络,其架构上也方便进行scale,比如输出可以按需增加或者减少,同时足以容纳足够多的训练数据,另外就是用充足的实验证明了机器人利用模仿学习里的BC训练方法可以从大量数据中学习到较泛化的能力,突出了数据的重要性,指引了通用机器人的一个研发方向。

相关文章:

具身智能controller---RT-1(Robotics Transformer)(中---实验介绍)

6 实验 实验目的是验证以下几个问题: RT-1可以学习大规模指令数据,并且可以在新任务、对象和环境上实现zero-shot的泛化能力?训练好的模型可以进一步混合多种其他数据(比如仿真数据和来自其他机器人的数据)吗?多种方…...

无涯教程-jQuery - load( url, data, callback)方法函数

load(url,data,callback)方法从服务器加载数据,并将返回的HTML放入匹配的元素中。 load( url, [data], [callback] ) - 语法 [selector].load( url, [data], [callback] ) 这是此方法使用的所有参数的描述- url - 包含请求发送到…...

【Shell】Shell编程之免交互

免交互:不需要人为控制就可以完成的自动化操作 自动化运维 Shell脚本和免交互是一个概念,但是两种写法 here document 使用i/o重定向的方式将命令的列表提供给交互式的程序或者命令 是一种标准输入,只能接受正确的指令或命令&#x…...

从Vue2到Vue3【七】——Vue2中响应式原理的实现及其缺陷

系列文章目录 内容链接从Vue2到Vue3【零】Vue3简介从Vue2到Vue3【一】Composition API(第一章)从Vue2到Vue3【二】Composition API(第二章)从Vue2到Vue3【三】Composition API(第三章)从Vue2到Vue3【四】C…...

用C语言实现堆排序算法

1.设计思路 排序的思想将一个数组按递增的顺序进行排序,将数组的第一个位置空下(下标为0),因为会导致子节点和本身同一个结点(i和2i一致),每次堆排序在下标1的位置放上了最大值,然后…...

tauri在github上进行自动更新打包并发版过程,实战操作避坑

从网上找了很多很多的文章,结果还是入坑了,一个问题找了一天才解决: Error A public key has been found, but no private key. Make sure to set TAURI_PRIVATE_KEY environment variable. 596 ELIFECYCLE  Command failed with exit code…...

css中flex后文本溢出的问题

原因: 为了给flex item提供一个合理的默认最小尺寸,flex将flex item的min-width 和 min-height属性设置为了auto flex item的默认设置为: min-width: auto 水平flex布局 min-height:auto 垂直flex布局 解决办法&…...

restful接口设计规范[仅供参考]

1. 域名 应该尽量将API部署在专用域名之下。 https://api.example.com 如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。 https://www.example.org/api/2. 版本(Versioning) 应该将API的版本号放入URL。 http://…...

Metabase 远程代码执行(CVE-2023-38646)

漏洞描述 Metabase是一款开源数据分析及可视化工具。它可允许用户连接至各种不同类型数据源,未经身份认证的攻击者可利用本漏洞在服务器上以运行 Metabase服务器的权限进行任意命令执行。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩…...

【TiDB理论知识 07】SQL执行流程

一 DML语句读写流程 1 DML语句读流程概要 用户发出SQL 被协议层接收 Protocal Layer 通过PD获取时间戳 parse模块 解析SQL,通过词法解析 与 语法解析 生成AST语法树 编译SQL Compile模块 ,区分点查 与 非点查,生成执行计划 发送给Executor,从TIKV获…...

微服务——服务异步通讯RabbitMQ

前置文章 消息队列——RabbitMQ基本概念容器化部署和简单工作模式程序_北岭山脚鼠鼠的博客-CSDN博客 消息队列——rabbitmq的不同工作模式_北岭山脚鼠鼠的博客-CSDN博客 消息队列——spring和springboot整合rabbitmq_北岭山脚鼠鼠的博客-CSDN博客 目录 Work queues 工作队列…...

事件冒泡、事件捕获和事件委托

原文合集地址如下,有需要的朋友可以关注 本文地址 合集地址 什么是事件冒泡、事件捕获和事件委托? 事件冒泡(Event Bubbling)、事件捕获(Event Capturing)和事件委托(Event Delegation&…...

WEB 典型安全功能说明

WEB 典型安全功能 认证Authentication 认证是指通过验证用户的身份来确认用户是否有权访问某个系统或资源。在Web安全中,认证是非常重要的一环,它可以防止未经授权的访问,保护用户的数据和系统的安全。 登录 登录是用户认证的常见方式之一…...

SQL编译优化原理

最近在团队的OLAP引擎上做了一些SQL编译优化的工作,整理到了语雀上,也顺便发在博客上了。SQL编译优化理论并不复杂,只需要掌握一些关系代数的基础就比较好理解;比较困难的在于reorder算法部分。 文章目录 基础概念关系代数等价 j…...

qt signal slots lambda

这里用到了qt的版本检测 连接 Combox的currentIndexChanged事件 emit来触发处理的事件 ,进行业务或逻辑处理 这样的写法是lambda表达式的写法,和c#中的 (obj)>{ //todo } 类同 [](int indx){ //todo } #if QT_VERSION > QT_VERSION_CHECK(5,7,0)c…...

Spring【声明式事务】

事务简介 把一组业务当成一个业务来做;要么都成功,要么都失败!事务在项目开发中,十分重要,涉及到数据一致性的问题,需要十分注意!确保完整性和一致性! 事务的ACID原则:…...

【雕爷学编程】MicroPython动手做(17)——掌控板之触摸引脚2

知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…...

pytorch 中 view 和reshape的区别

在 PyTorch(一个流行的深度学习框架)中, reshape 和 view 都是用于改变张量(tensor)形状的方法,但它们在实现方式和使用上有一些区别。下面是它们之间的主要区别: 实现方式: reshap…...

认识数组指针

文章目录 数组指针的定义数组指针的应用 数组指针的定义 类比 整形数组——存放整形的数组 指针数组——存放指针的数组 整形指针——存放整形地址的指针 数组指针——存放数组地址的指针 深度理解 在之前我们知道:数组名表示首元素地址,但是有&#xf…...

SSM面试题-Spring容器的启动流程

解答: 1. BeanDefinitionReader读取配置文件(xml yml properties),创建BeanDefinition(存储bean的定义信息) 2. 配置文件读取成功后,将相应的配置转换成 BeanDefinition 的对象实例保存在DefaultListableBeanFactory#beanDefinitionMap 中 3. 根据配置的 BeanFacto…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

ESP32读取DHT11温湿度数据

芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

【Java_EE】Spring MVC

目录 Spring Web MVC ​编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 ​编辑参数重命名 RequestParam ​编辑​编辑传递集合 RequestParam 传递JSON数据 ​编辑RequestBody ​…...