RobotGPT:利用ChatGPT的机器人操作学习框架,三星电子研究院与张建伟院士、孙富春教授、方斌教授合作发表RAL论文

news2024/11/18 13:58:46

1 引言
大型语言模型(LLMs)在文本生成、翻译和代码合成方面展示了令人印象深刻的能力。最近的工作集中在将LLMs,特别是ChatGPT,整合到机器人技术中,用于任务如零次系统规划。尽管取得了进展,LLMs在机器人技术中的潜力的完整范围仍然未被探索。人机交互(HRI)的不断发展从LLM的进步中受益,特别是在自然语言交互方面。ChatGPT以其代码生成和对话灵活性脱颖而出,允许用户直观地与机器人互动。先前的工作展示了ChatGPT在任务如无人机导航和物体操纵方面的有效性。

近期三星电子中国研究院与中国工程院外籍院士张建伟教授、孙富春教授和方斌教授合作,提出RobotGPT,探讨了ChatGPT在机器人操控应用中的应用,旨在推进相关实际实施。本文的框架将环境线索转换为自然语言,使ChatGPT能够为智能体(Agent)训练生成动作代码。该系统赋予机器人使用自然语言进行理性互动的能力,便于执行如拾取和放置等任务。团队探索了有效的提示(Prompt),提供了关于ChatGPT任务边界和系统稳定性的见解。虽然承认存在一定限制和安全风险,团队的贡献包括创新框架,并探索了ChatGPT在机器人任务上的能力边界。

2 方法
在这里插入图片描述

图1 整体架构

图1. 描述了本文的系统架构。在该系统中,ChatGPT扮演三个角色,分别是决策机器人、评估机器人和纠正机器人。操作员指示机器人完成任务,然后根据环境信息和人类指令生成自然语言提示。决策机器人将基于提供的提示生成相应的可执行代码。接下来,生成的代码将逐行执行。如果运行时出现错误,将为决策机器人提供错误原因和发生错误的代码行,以便修改,直到代码能够成功运行。然后,由评估机器人生成的Eval Code模型将测试可执行代码。如果可执行代码不能通过Eval Code,纠正机器人将分析导致结果失败的潜在原因,并将这些失败原因发送回决策机器人进行纠正。之后,满足评估条件的代码将用于生成演示数据。经过训练,训练有素的智能体可以完美地部署真实机器人。

2.1 提示描述
本文提出了一个包含五个部分的提示方法,包括背景描述、对象信息、环境信息、任务信息和示例。在背景描述部分,描述了环境的基本信息,如环境的目的、布局和相关实体。在对象信息部分中,列出了所有对象的名称、形状、姿态以及其他有用的信息,如它们的属性和与其他对象的关系。在环境信息部分中,描述了机器人和ChatGPT可以用来执行任务的API函数。在任务信息部分,则给出了ChatGPT的具体任务,通常是为给定的工作生成Python代码。最后,在示例部分,提供了一些代码示例,以促进对环境和API使用的更好理解。根据OpenAI的建议,文中将背景信息和RobotAPI信息设置为ChatGPT API中的系统消息,以获得满意的响应。

2.2 自纠正过程
在生成复杂任务的响应时,ChatGPT可能偶尔会产生一些小错误或语法错误,需要进行更正。本文介绍了一种用于纠正ChatGPT响应的交互式方法。要使用这种方法,首先在模拟器中执行生成的代码并评估结果。生成的代码将逐行执行,当运行时错误发生时,运行时错误,包括错误消息及其位置,将被代码错误捕捉模块捕获。然后,这些数据被发送回ChatGPT决策机器人进行进一步分析。在结果失败的情况下,纠正机器人可以基于提示分析失败的潜在原因,并生成一个解释任务失败原因的回复。最后,原始的ChatGPT决策机器人将基于纠正机器人的失败分析重新生成代码。利用这种反馈,ChatGPT修正其响应并产生准确的代码。这个交互过程可能迭代多达三次。这里的目标是提高ChatGPT响应的准确性和可靠性,使它们在各个领域越来越相关。

2.3 代码评价
如图1所示,团队使用一个名为评估机器人的ChatGPT来生成评估代码。评估机器人的提示与决策机器人的提示有一些不同。评估机器人生成的函数is_task_success()将作为判断整个任务成功与否的标准。人类的角色是复核生成的评估代码是否正确。如果生成了不正确的评估代码,人类将介入进行更正。这种设计可以最小化人类的负担。

2.4 机器人学习
依靠ChatGPT执行一般的机器人任务是不可靠的,因为ChatGPT的输出是随机的,这扩大了机器人工作的风险。尽管将temperature设置为零可以产生一致的结果,但代价是减少了多样性和创造力,这也可能导致任务的连续失败。为了解决这个问题,团队期望机器人学习机器人策略,以吸收ChatGPT解决一般任务的知识。对于机器人学习,团队利用最先进的开源机器人操纵基准和学习框架BulletArm,从ChatGPT生成的演示中训练代理。
在这里插入图片描述

图2 机器人学习网络架构

在本文中,采用了SDQfD 算法来进行机器人学习任务,使用等变ASR网络,如图2所示。损失函数是n-step TD loss和strict large margin loss之和。

3 实验结果
3.1 实验设置
表1展示了八个实验的定量结果。事实是,尽管每次输入相同的提示,由于决策机器人的temperature设置为1.0,生成的代码及其结果输出总是存在显著差异。此外,ChatGPT生成的代码包含语法或逻辑错误。尽管文中的自我修正模块可以修正一些语法错误,但在大多数情况下,如果ChatGPT最初未能生成成功的代码,这个实验成功的难度就会大大增加。

对于ChatGPT来说,很明显,随着任务难度的增加,成功率显著下降。简单、中等和困难任务的成功率分别为0.88、0.39和0.21。相比之下,本文的RobotGPT模型在所有级别的任务中都显示出稳健性,保持良好的表现,在模拟中平均可以达到0.915的成功率。在真实世界的实验中,RobotGPT可以达到0.86的成功率,这是在完全使用模拟数据进行训练的情况下达到的。

3.2 AB测试
在这里插入图片描述

为了分析本文的LLM驱动的机器人在解决非LLM方法难以解决的问题上的能力,团队引入了两个开放式实验。第一个实验涉及一个整理房间的挑战,需要组织40个自定义的家庭物品,而第二个实验是一个拼写单词游戏,目标是使用给定的一组字母A-L拼写出最长的单词。此外,团队邀请了人类参与者完成相同的任务。

与手工编码相比,RobotGPT在代码质量和时间消耗方面都展示了优势,分别是0.762和221.8秒,相比之下,人类的数据是0.70和554.9秒。只有五名参与者在70分钟内完成了所有任务,因此即便是对于具有强大编程背景的工程师来说,通过手工编码生成机器人演示数据也是耗时的。

4 结论
在本文中,团队首先开发了一个有效的提示结构,以增强ChatGPT对机器人环境和它需要实施的任务的理解。接下来,本文介绍了一个名为RobotGPT的框架,该框架利用ChatGPT的问题解决能力来实现更稳定的任务执行。在实验中,团队构建了一个度量任务难度的指标,并观察到随着任务难度的增加,ChatGPT执行任务的成功率降低。

相比之下,RobotGPT能够以91.5%的成功率执行这些任务,展示了更稳定的性能。更重要的是,这个智能体也已经被部署在真实世界环境中运行。因此,利用ChatGPT作为专家来训练RobotGPT,比直接使用ChatGPT作为任务规划器是一种更稳定的方法。此外,AB测试显示,文中的LLM驱动的机器人在两个开放式任务上显著优于手工编码,这得益于LLM庞大的先验知识库。总的来说,机器人学和LLMs的结合仍处于起步阶段。本文的工作只是初步探索,团队相信,未来在这一领域的研究很大一部分是探索如何恰当地利用ChatGPT在机器人学领域的能力。

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

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

相关文章

VSCODE使用Django 页面和渲染

https://code.visualstudio.com/docs/python/tutorial-django#_use-a-template-to-render-a-page 通过模板渲染页面 文件 实现步骤 1, 修改代码,hello的App名字增加到installed_apps表中。 2, hello子目录下,创建 .\templates\…

RT-Thread 时钟 timer delay 相关

前言 此处,介绍对delay 时钟 timer 这几部分之间的关联和相关的知识点;本来只是想介绍一下 delay的,但是发现说到delay 不先 提到 先验知识 晶振\时钟\时钟节拍\定时器 好像没法解释透彻,所以就变成了 晶振\时钟\时钟节拍\定时器\delay 的很简单的概括一遍;并附带上能直接运行的…

STM32物联网(封装AT指令进行TCP连接及数据的接收和发送)

文章目录 前言一、AT指令函数封装1.向ESP8266发送数据函数2.设置ESP8266工作模式3.连接WIFI函数4.查询IP地址5.连接TCP服务器6.发送数据到TCP服务器7.接收并解析来自TCP服务器的数据8.关闭TCP服务器 二、代码测试总结 前言 本篇文章将继续带大家学习STM32物联网,那…

二百二十四、Kettle——曲线实现从Hive插入更新到ClickHouse(分区字段是month或year)

一、目的 对于以month、year为分区字段的数据,不是像day字段分区那样每天增量插入更新即可,而是要以部分字段查询、部分字段更新,但是ClickHouse数据库并不适合更新操作,直接使用Kettle的插入更新控件会导致问题,必须…

前后端联调可能出现的问题

调不到后端数据 前后端传参方式不一样 --- formdata 主要接收文件 或者有文件和数据 --- json 纯数据

Linux命令 - 如何查询当前已使用的内存占比

结果先行 free -h | awk NR2{printf "%.2f%%", $3*100/$2 }解释一下 这个命令组合了 free -h 和 awk 命令来输出已用内存的百分比。我们一步一步来解析这个命令: Step 1 free -hfree 是一个用来显示 Linux 系统内存使用情况的命令。-h 参数是 “human…

《TCP/IP详解 卷一》第2章 Internet地址结构

目录 2.1 引言 2.2 表示IP地址 2.3 基本的IP地址结构 单播地址 全球单播地址: 组播地址 任播地址 2.4 CIDR和聚合 2.5 特殊用途地址 2.6 分配机构 2.7 单播地址分配 2.8 与IP地址相关的攻击 2.9 总结 2.1 引言 2.2 表示IP地址 IPv4地址:3…

2024-2-22 作业

作业要求: 复习前面知识点(指针、结构体、函数)整理思维导图顺序表(按位置插入、按位置删除和去重、重新写)理解链表的代码,尝试写一下链表的尾插和输出 1.复习前面知识点(指针、结构体、函数) 2.整理思维导图 3.顺序表(按位置插入、按位置删除和去重、…

Seurat包学习:如何查看R包函数源代码

​我们很多时候都很好奇作者的r包是如何写出来的,手痒的时候就想学习一下源码,顺便改一改 问题来源 为什么要写今天这个推文呢? 起因是因为我想使用seurat自带函数画热图,奈何这个图不是那么好看 DoHeatmap(pbmc,features fea…

2024-02-21 作业

作业要求: 复习课上内容 //已完成结构体字节对齐,64位没做完的做完,32位重新都做一遍,课上指定2字节对齐的做一遍,自己验证 //已完成两种验证大小端对齐的代码写一遍复习指针内容 //已完成完善顺序表已写出的…

视频评论抓取软件|抖音数据抓取工具

最近我们推出了一款基于C#语言开发的工具。这款工具提供了丰富的功能,旨在帮助用户轻松获取抖音视频内容。让我们一起来详细介绍一下这款工具的主要功能模块: 1. 批量视频提取: 工具提供了便捷的批量视频提取功能,用户只需输入关…

cookie伪造 [BSidesCF 2019]Kookie1

打开题目 提示用admin用户登录 尝试弱口令发现,登录失败 显示用admin&passwordadmin!进行登录 有发现说cookie,就尝试用cookie登录: f12编辑添加cookie重发包: 或者bp抓包 Cookie:usernameadmin 用admin登录成功 得到flag: 参考文章&…

Vue3项目结构分析

node_modules: 是项目npm install下载的node依赖库。 public: favicon.ico: 网页图标logo图片。index.html: 入口html。是一个基础的html页面,其中进行网页最基础的设置,并且设置了id为app的div盒子。该页面即为Vue单页面应用的基础页面。后…

QSettings使用示例

解决的问题: 平常要存储一些临时数据,或者ini的系统参数数据,以下是源码解析 如何实现: 实现的UI如下 主要功能: 初始化: m_settings new QSettings("DParamSetting.ini", QSettings::IniFo…

京东数据分析|京东销售数据怎么查|京东销售数据查询软件分享!

京东销售数据分析对商家来说具有多方面的重要作用,主要体现在以下几个方面: 市场趋势分析: 分析京东平台上的商品销量、销售额和价格走势等数据,可以帮助商家了解当前市场的整体需求趋势,以及不同品类的季节性变化、…

PLC为什么要开发网口通讯功能

PLC设置网口通讯功能,是现场总线向工业以太网的迈进,更是为了在网口之上构建更为庞大、开放的大一统的生态系统。 有了以太网,特别是TCP/IP协议后,全员工控人的日常工作更为便利了。 主要体现在以下4点: 1.再也不需要…

01VScode开发stm32环境搭建

title: VScode开发stm32环境搭建 tags: STM32vscode 1.准备工作 1.下载并安装VSCODE 在百度上搜索vscode记住一定要是官方的 不然你自己就是在给自己下毒2345全来了 打红圈一定要有不然就是在垃圾网站上下的 VSCode下载链接 选一个适合你的      安装正常流程走就行不再…

团簇束流沉积技术:氢气传感器守护安全与环境的利器

在当今日益增长的能源需求背景下,氢气作为一种清洁、高效的能源载体,正逐渐受到广泛关注。然而,氢气的易燃易爆特性也带来了不小的安全隐患。因此,精确、快速地监测氢气泄漏成为了确保生产安全和环境监测的重中之重。基于团簇束流…

一些可以参考的文档集合16

之前的文章集合: 一些可以参考文章集合1_xuejianxinokok的博客-CSDN博客 一些可以参考文章集合2_xuejianxinokok的博客-CSDN博客 一些可以参考的文档集合3_xuejianxinokok的博客-CSDN博客 一些可以参考的文档集合4_xuejianxinokok的博客-CSDN博客 一些可以参考的文档集合5…

[C#]winform基于opencvsharp结合pairlie算法实现低光图像增强黑暗图片变亮变清晰

【低光图像增强介绍】 在图像处理领域,低光图像增强是一个具有挑战性的任务。由于光线不足,这些图像往往呈现出低对比度、高噪声和细节丢失等问题,严重影响了图像的视觉效果和后续分析的准确性。因此,开发有效的低光图像增强方法…