通过生成模拟释放无限数据以实现机器人自动化学习

该工作推出RoboGen,这是一种生成机器人代理,可以通过生成模拟自动大规模学习各种机器人技能。 RoboGen 利用基础模型和生成模型的最新进展。该工作不直接使用或调整这些模型来产生策略或低级动作,而是提倡一种生成方案,该方案使用这些模型自动生成多样化的任务、场景和训练监督,从而在最少的人类监督下扩大机器人技能的学习。

该工作的方法为机器人代理提供了一个自我引导的提议(propose)-生成(generate)-学习(learning)循环。

1、代理首先提出要开发的感兴趣的任务和技能,然后通过使用适当的空间配置填充相关对象和资产来生成相应的模拟环境。

2、代理将propose的高级任务分解为子任务,选择最佳学习方法(强化学习、运动规划或轨迹优化),生成所需的训练监督,然后学习策略以获得提议的技能。

该工作的工作试图提取大型模型中嵌入的广泛且通用的知识,并将其转移到机器人领域。该工作的完全生成pipeline可以重复查询,产生与不同任务和环境相关的无穷无尽的技能演示。

介绍

这项工作的动机是机器人研究中一个长期存在且具有挑战性的目标:赋予机器人多种技能,使它们能够在各种非工厂环境中操作并为人类执行广泛的任务。近年来,在教机器人各种复杂技能方面取得了令人瞩目的进展:从可变形物体和流体操纵到动态和灵巧技能,如物体投掷、手部重新定向、踢足球甚至机器人跑酷。然而,这些技能仍然各自为政,视野相对较短,并且需要人为设计的任务描述和训练监督。值得注意的是,由于现实世界数据收集的成本高昂且费力,许多这些技能都是在具有适当领域随机化的模拟中进行训练,然后部署到现实世界中。

在这里插入图片描述

robogen可以自主生成任务和环境并且学习技能

事实上,模拟环境已经成为多样化机器人技能学习背后的关键驱动力。与现实世界中的探索和数据收集相比,模拟中的技能学习具有以下几个优点:1)模拟环境提供了特权低级状态的访问和无限的探索机会;2) 仿真支持大规模并行计算,能够显著加快数据收集速度,而无需依赖对机器人硬件和人力的大量投资;3)模拟探索允许机器人开发闭环策略和错误恢复能力,而现实世界的演示通常只提供专家轨迹。然而,模拟中的机器人学习也存在其自身的局限性:虽然在模拟环境中探索和练习具有成本效益,但构建这些环境需要大量的劳动力,需要繁琐的步骤,包括设计任务、选择相关且语义上有意义的资产、生成合理的场景布局和配置,以及制定训练监督,例如奖励或损失函数。创建这些组件并为该工作日常生活中遇到的无数任务构建个性化模拟设置的繁重任务是一项巨大的挑战,即使在模拟世界中,这也极大地限制了机器人技能学习的可扩展性。

解决的两个问题:1、机器人的技能各自孤立,且需要人为设计的任务描述和训练监督;(2)在模拟器上进行训练,虽然模拟器有很多优势,但也在一定程度上限制了机器人技能学习的可扩展性。

有鉴于此,该工作提出了一种称为生成模拟的范例,将模拟机器人技能学习、基础大模型和生成模型的最新进展结合起来。利用最先进的基础模型的生成能力,生成模拟旨在为模拟中各种机器人技能学习所需的所有阶段生成信息:从高级任务和技能建议,到任务相关的场景描述,资产选择和生成、策略学习选择和训练监督。得益于最新基础模型中编码的全面知识,以这种方式生成的场景和任务数据有可能与现实世界场景的分布非常相似。此外,这些模型还可以进一步提供分解的低级子任务,这些子任务可以通过特定领域的策略学习方法无缝处理,从而产生各种技能和场景的闭环演示。

本文的RoboGen结合模拟机器人技能学习、基础大模型和生成模型,想达到目标:1、生成机器人技能学习过程中所需要的信息:任务和技能的生成、为相关的任务配备虚拟环境;2、将高级任务分解成低级子任务,策略选择学习、生成训练监督。

方法介绍

在这里插入图片描述

robogen工作流程图

RoboGen是一个自动化pipeline,利用最新基础模型的嵌入式常识和生成功能来自动生成任务、场景和训练监督,从而实现大规模的多样化机器人技能学习。该工作在图中展示了整个流程,由几个完整的阶段组成:任务提议、场景生成、训练监督生成和技能学习。

任务提议:

RoboGen首先生成有意义的、多样化的、高水平的任务供机器人学习。该工作没有直接向 LLM 查询任务建议,而是使用特定的机器人类型和从池中随机采样的对象来初始化系统。然后将提供的机器人和采样对象信息用作 LLM 的输入以执行任务建议。这样的采样过程确保了生成任务的多样性:例如,四足机器人等腿式机器人能够获得多种运动技能,而机械臂操纵器在配对时有可能执行多种操纵任务与不同的采样对象。此初始化步骤充当播种阶段,为LLM可以进行调节并随后进行推理和推断以生成各种任务提供基础,同时考虑到机器人和物体的可供性。除了基于对象的初始化之外,另一种选择是采用基于示例的初始化,其中使用提供的机器人和从列表 11 个预定义任务中采样的几个示例任务来初始化查询。

场景生成:

给定一个提议的任务,继续生成相应的模拟场景,以学习完成该任务的技能。如图 2 所示,根据任务描述生成场景组件和配置,并检索或生成对象资产以随后填充模拟场景。具体来说,场景组件和配置由以下元素组成:查询要填充到场景中的相关资产、其物理参数(例如大小)、配置(例如初始关节角度)以及资产的整体空间配置。

训练监督生成:

为了获得解决所提出的任务的技能,需要对技能学习进行监督。为了促进学习过程,RoboGen 首先查询 GPT-4 来规划和分解生成的任务(可以是长范围的)为较短范围的子任务。关键假设是,当任务被分解为足够短的子任务时,每个子任务都可以通过现有的算法(例如强化学习、运动规划或轨迹优化)可靠地解决。

分解后,RoboGen随后查询 GPT-4 以选择合适的算法来解决每个子任务。RoboGen中集成了三种不同类型的学习算法:强化学习和进化策略、基于梯度的轨迹优化、具有运动规划的动作原语。每一种都适合不同的任务,例如,基于梯度的轨迹优化更适合学习涉及软体的细粒度操作任务,例如将面团塑造成目标形状;与运动规划相结合的动作基元在解决任务时更加可靠,例如通过无碰撞路径接近目标对象;强化学习和进化策略更适合接触丰富且涉及与其他场景组件持续交互的任务,例如腿运动,或者当所需的动作不能通过离散的末端执行器姿势简单地参数化时,例如转动烤箱的旋钮。

该工作提供示例,让 GPT-4 根据生成的子任务在线选择使用哪种学习算法。考虑的动作原语包括抓取、接近和释放目标对象。由于平行爪式夹具在抓取不同尺寸的物体时可能会受到限制,因此考虑使用配备吸盘的机器人操纵器来简化物体抓取。抓取和接近基元的实现如下:首先随机采样目标对象或链接上的一个点,计算与采样点法线对齐的夹具姿势,然后使用运动规划来找到一条无碰撞路径达到目标夹具姿势。达到姿势后,继续沿着法线方向移动,直到与目标物体接触。

技能学习:

一旦获得了所提出的任务所需的所有信息,包括场景组件和配置、任务分解以及分解的子任务的训练监督,就能够为机器人构建模拟场景,以学习完成任务所需的技能任务。

如上所述,结合使用多种技术进行技能学习,包括强化学习、进化策略、基于梯度的轨迹优化以及带有运动规划的动作原语,因为每种技术都适合不同类型的任务。对于对象操作任务,使用 SAC 作为学习技能的 RL 算法。观察空间是任务中物体和机器人的低层状态。强化学习策略的动作空间包括机器人末端执行器的增量平移或目标位置(由 GPT-4 确定)及其增量旋转。使用开放运动规划库(OMPL)(Sucan 等人,2012)中实现的BIT* 作为动作基元的底层运动规划算法。对于涉及多个子任务的长视野任务,采用顺序学习每个子任务的简单方案:对于每个子任务,运行 RL N = 8 次,并使用具有最高奖励的最终状态作为初始状态为下一个子任务。对于运动任务,交叉熵方法(CEM)用于技能学习,发现它比 RL 更稳定、更高效。CEM中采用地面真值模拟器作为动态模型,需要优化的动作是机器人的关节角度值。对于软体操纵任务,与 Adam 一起运行基于梯度的轨迹优化来学习技能,其中梯度由使用的完全可微模拟器提供。

实验

RoboGen是一个自动化pipeline,可以无限查询,并为不同的任务生成连续的技能演示流。在实验中,旨在回答以下问题:

• 任务多样性:RoboGen机器人技能学习提出的任务有多多样化?

• 场景有效性:RoboGen是否生成与建议的任务描述相匹配的有效模拟环境?

• 训练监督有效性:RoboGen 是否为任务生成正确的任务分解和训练监督,从而诱导预期的机器人技能?

• 技能学习:在RoboGen中集成不同的学习算法是否可以提高学习技能的成功率?

• 系统:结合所有自动化阶段,整个系统能否产生多样化且有意义的机器人技能?

实验设置

提出的系统是通用的,并且与特定的模拟平台无关。然而,由于考虑了从刚性动力学到软体模拟的广泛任务类别,并且还考虑了技能学习方法,例如基于梯度的轨迹优化,这需要可微分的模拟平台,因此使用 Genesis 来部署 RoboGen(一个模拟平台)用于使用多种材料和完全可微分的机器人学习。对于技能学习,使用 SAC 作为 RL 算法。策略和 Q 网络都是大小为 [256, 256, 256] 的多层感知器 (MLP),以 3e − 4 的学习率进行训练。对于每个子任务,使用 1M 环境步骤进行训练。使用 BIT* 作为运动规划算法,使用 Adam 用于软体操纵任务的基于梯度的轨迹优化。
在这里插入图片描述

长周期任务技能学习效果

评估指标和baseline:

任务多样性:生成的任务的多样性可以从许多方面来衡量,例如任务的语义、生成的模拟环境的场景配置、检索到的对象资产的外观和几何形状以及执行任务所需的机器人动作。对于任务的语义意义,通过计算生成的任务描述的 Self-BLEU 和嵌入相似度来进行定量评估,其中较低的分数表明更好的多样性。与既定基准进行比较,包括 RLBench、Maniskill2、Meta-World和 Behaviour-100。对于对象资产和机器人动作,使用生成的模拟环境和所学机器人技能的可视化来定性评估 RoboGen。

场景有效性:为了验证检索到的对象是否符合任务要求,计算模拟场景中检索到的对象的渲染图像与对象的文本描述之间的 BLIP-2 分数。A)无对象验证:我们不使用VLM来验证检索到的对象,而只是基于文本匹配来检索对象。B) 无大小验证:我们不使用 GPT-4 输出的对象大小;相反,我们使用 Objaverse 或 PartNetMobility 中提供的默认资源大小。

实验结果如下图所示:
在这里插入图片描述

robogen在7个任务上的结果

总结

该工作引入了RoboGen,这是一种生成代理,可以通过生成模拟自动大规模地提出和学习各种机器人技能。RoboGen 利用基础模型的最新进展,在模拟中自动生成不同的任务、场景和训练监督,为模拟中可扩展的机器人技能学习迈出了基础一步,同时部署后只需要最少的人工监督。系统是一个完全生成的pipeline,可以无限查询,产生大量与不同任务和环境相关的技能演示。RoboGen与后端基础模型无关,并且可以使用可用的最新模型不断升级。

当前的系统仍然存在一些局限性:1)对所学技能的大规模验证(即所得技能是否真的通过文本描述解决了相应的任务)仍然是当前pipeline中的一个挑战。未来可以通过使用更好的多模式基础模型来解决这个问题。Ma还探索了使用环境反馈对生成的监督(奖励函数)进行迭代细化,希望将来将其整合到范式中。2)当涉及到现实世界的部署时,范例本质上受到模拟与真实差距的限制。然而,随着物理精确模拟的最新和快速发展,以及域随机化和逼真的感官信号渲染等技术,预计模拟与真实的差距在未来将进一步缩小。3)系统假设,通过正确的奖励函数,现有的策略学习算法足以学习所提出的技能。对于在本文中测试的策略学习算法(具有 SAC 的 RL 和 delta 末端执行器姿势的动作空间,以及基于梯度的轨迹优化),观察到它们仍然不够鲁棒,并且通常需要多次运行才能产生成功某些生成任务的技能演示。将更强大的策略学习算法集成到 RoboGen 中,例如那些具有更好动作参数化的算法,作为未来的工作。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

利用Microsoft Visual Studio Installer Projects打包安装包

利用Microsoft Visual Studio Installer Projects打包安装包 具体步骤步骤1:安装扩展步骤2:创建 Setup 项目步骤3:设置属性步骤4:添加输出步骤5:添加文件步骤6:添加桌面快捷方式步骤7:添加菜单快…

初识人工智能,一文读懂人工智能概论(1)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

C语言——从键盘输入两个字串,判断它们是否相同。

代码实现&#xff1a; #include <stdio.h> #include <string.h>int main() {char str1[100], str2[100];printf("请输入第一个字串&#xff1a;");scanf("%s", str1);printf("请输入第二个字串&#xff1a;");scanf("%s"…

uc_16_UDP协议_HTTP协议

1 UDP协议 适合游戏、视频等情景&#xff0c;安全性要求不高&#xff0c;效率要求高。 1&#xff09;UDP不提供客户机与服务器的链接&#xff1a; UDP的客户机与服务器不必存在长期关系。一个UDP的客户机在通过一个套接字向一个UDP服务器发送了一个数据报之后&#xff0c;马上…

C语言----文件操作(一)

一&#xff1a;C语言中文件的概念 对于文件想必大家都很熟悉&#xff0c;无论在windows上还是Linux中&#xff0c;我们用文件去存储资料&#xff0c;记录笔记&#xff0c;常见的如txt文件&#xff0c;word文档&#xff0c;log文件等。那么&#xff0c;在C语言中文件是什么样的存…

unity 2d 入门 飞翔小鸟 死亡闪烁特效(十三)

一、c#脚本 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Bling : MonoBehaviour {public Texture img;public float speed;public static bool changeWhite false;private float alpha0f;// Start is called before the fi…

极速学习SSM之SpringMVC笔记

文章目录 一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点 二、HelloWorld1、开发环境2、创建maven工程a>添加web模块b>打包方式&#xff1a;warc>引入依赖 3、配置web.xmla>默认配置方式b>扩展配置方式 4、创建请求控制器5、创建springMVC…

kafka中消息key作用与分区规则关系

在 kafka 2.0.0 的 java sdk 中 <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka_2.12</artifactId><version>2.0.0</version> </dependency> ProducerRecord 中类注释如下 A key/value pair to be sen…

TypeScript 之 console的使用

语言&#xff1a; TypeScript 在线工具&#xff1a; PlayGround console console 对象是一个非常强大的控制台日志显示工具&#xff0c; 可以帮助我们在浏览器中调试代码。 注&#xff1a; console不属于TypeScript的语法&#xff0c;而是由JavaScript封装的内置对象。 简单的…

[AutoSar]一种ECU间CAN通信的优化方法

目录 关键词平台说明一、背景二、问题现象三、原因四、解决办法五、实现5.1 配置5.2 code 关键词 嵌入式、C语言、autosar 平台说明 项目ValueOSautosar OSautosar厂商EB芯片厂商英飞凌 TC397编程语言C&#xff0c;C编译器TASKING 一、背景 在一个项目中&#xff0c;会从多个…

【Proteus仿真】【51单片机】光照强度检测系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器&#xff0c;使共阴数码管&#xff0c;PCF8591 ADC模块、光敏传感器等。 主要功能&#xff1a; 系统运行后&#xff0c;数码管显示光传感器采集光照强度值&#xff…

【Python网络爬虫入门教程2】成为“Spider Man”的第二课:观察目标网站、代码编写

Python 网络爬虫入门&#xff1a;Spider man的第二课 写在最前面观察目标网站代码编写 第二课总结 写在最前面 有位粉丝希望学习网络爬虫的实战技巧&#xff0c;想尝试搭建自己的爬虫环境&#xff0c;从网上抓取数据。 前面有写一篇博客分享&#xff0c;但是内容感觉太浅显了…

JavaScript常用技巧专题二

文章目录 一、前言二、生成随机字符串三、转义HTML特殊字符四、单词首字母大写五、将字符串转换为小驼峰六、删除数组中的重复值七、移除数组中的假值八、获取两个数字之间的随机数九、将数字截断到固定的小数点十、日期10.1、计算两个日期之间天数10.2、从日期中获取是一年中的…

alpine linux 之嵌入式搭建

目录 序启动修改源安装 openssh设置开机网络 ip参考 序 最近发现了 alpine linux 这个文件系统&#xff0c;这是一个基于 musl libc 和 busybox 的面向安全的轻量级 Linux 发行版。 下载了他的文件系统&#xff0c;只有 3M 多的压缩包&#xff0c;非常适合嵌入式系统。 地址…

MVC Gantt Wrapper:RadiantQ jQuery

The RadiantQ jQuery Gantt Package includes fully functional native MVC Wrappers that let you declaratively and seamlessly configure the Gantt component within your aspx or cshtm pages just like any other MVC extensions. 如果您还没有准备好转向完全基于客户端…

【动手学深度学习】(十二)现代卷积神经网络

文章目录 一、深度卷积神经网络AlexNet1.理论知识 一、深度卷积神经网络AlexNet 1.理论知识 ImageNet(2010) 图片自然物体的彩色图片手写数字的黑色图片大小468 * 38728*28样本数1.2M60K类数100010 AlexNet AlexNet赢了2012ImageNet竞赛更深更大的LeNet主要改进&#xff…

多维时序 | MATLAB实现TSOA-TCN-Multihead-Attention多头注意力机制多变量时间序列预测

多维时序 | MATLAB实现TSOA-TCN-Multihead-Attention多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实现TSOA-TCN-Multihead-Attention多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现TSOA-TCN-Multihead-…

lv12 开发板启动过程

1 开发板启动过程 1.1 回顾芯片手册第三章内存映射 对于arm来说&#xff0c;不是给它多大的内存都能读。寻址空间&#xff08;地址空间&#xff09;读写范围是有限的&#xff0c;寻址空间的大小与地址总线宽度有关&#xff0c;如32位&#xff0c;地址空间4G&#xff08;2^32)…

【VRTK】【VR开发】【Unity】13-攀爬

课程配套学习资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【概述】 VRTK提供两个预制件实现攀爬 Climbing Controller,用于控制Player的物理义体Climbable Interactable,用于设置可攀爬对象【设置Climbing Controller…

ffmpeg编解码——数据包(packet)概念(如何正确处理数据包中的pts与dts关系?)(有疑问)

文章目录 FFmpeg编解码——数据包&#xff08;Packet&#xff09;概念1. 数据包&#xff08;Packet&#xff09;简介2. 数据包&#xff08;Packet&#xff09;在FFmpeg中的应用2.1 从媒体文件读取数据包2.2 向媒体文件写入数据包 3. 数据包&#xff08;Packet&#xff09;相关问…
最新文章