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

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.hqwc.cn/news/487655.html

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

相关文章

uni-app 黑魔法探秘 (一)—— 重写内置标签

一、背景 政采前端团队的移动端跨端解决方案选择的是 uni-app。跨端方案的好处就是一码多端,即书写一次就可以输出到 web、小程序、Anroid、iOS 等各端。既然是开发,那必然少不了配套的组件库和方法库,而我们公司因为历史原因存在一些的非 u…

[NCTF2019]True XML cookbook --不会编程的崽

题目的提示很明显了&#xff0c;就是xxe攻击&#xff0c;直接抓包。 <?xml version "1.0"?> <!DOCTYPE ANY [ <!ENTITY xxe SYSTEM "file:///etc/passwd" > ]> <user><username> &xxe; </username><passwor…

【BUG】解决java.util.Date and java.lang.String

报错解析与解决方案&#xff1a;Java中处理Date类型与String比较引发的IllegalArgumentException 前言 在日常的开发过程中&#xff0c;我们可能会遇到各种类型转换和比较相关的异常。今天&#xff0c;我在调用接口时就遭遇了这样一个问题&#xff1a; 错误描述 在执行SQL查…

Spring注入

文章目录 3.1 什么是注入3.1.1 为什么需要注入3.1.2 如何进行注入3.1.3 注入好处 3.2 Spring 注入的原理分析&#xff08;简易版&#xff09;3.3 Set 注入详解3.3.1 JDK内置类型3.3.2 自定义类型3.3.2.1 第一种方式3.3.2.2 第二种方式 3.4 构造注入3.4.1 步骤3.4.2 构造方法重载…

洛谷 【算法1-6】二分查找与二分答案

【算法1-6】二分查找与二分答案 - 题单 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 鄙人不才&#xff0c;刷洛谷&#xff0c;迎蓝桥&#xff0c;【算法1-6】二分查找与二分答案 已刷&#xff0c;现将 AC 代码献上&#xff0c;望有助于各位 P2249 【深基13.例1】查找 - 洛谷…

Python中if __name__ == ‘__main__‘:的原理、作用和实践

Python中if name ‘main‘&#xff1a;的原理、作用和实践 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 &#x1f448; 希望得到您的…

Unity之PUN2插件实现多人联机射击游戏

目录 &#x1f4d6;一、准备工作 &#x1f4fa;二、UI界面处理 &#x1f4f1;2.1 登录UI并连接PUN2服务器 &#x1f4f1;2.2 游戏大厅界面UI &#x1f4f1;2.3 创建房间UI &#x1f4f1;2.4 进入房间UI &#x1f4f1;2.5 玩家准备状态 &#x1f4f1;2.6 加载战斗场景…

电子元件分销商

Top 10 Active Electronic Parts Distributors List – 2022 / 2023 一家从众多制造商那里收购所有电子元件并销售给客户的公司被称为电子元件分销商。 A company that acquires all electronic components from numerous manufacturers and sells them to customers from a si…

第十一天-Excel的操作

目录 1.xlrd-Excel的读模块 安装 使用 获取工作簿 读取工作簿的内容 xlsxwriter-Excel的写模块 安装 使用 生成图表 add_series参数 图表的样式 demo&#xff1a;生成图表 Excel的操作在python中有多个模块&#xff0c;为了能够快速使用&#xff0c;选择了相对简单…

【Java程序设计】【C00276】基于Springboot的就业信息管理系统(有论文)

基于Springboot的就业信息管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的就业信息管理系统 本系统分为前台功能模块、管理员功能模块、学生功能模块、企业功能模块以及导师功能模块。 前台功能模块&…

Threejs 实现3D影像地图,Json地图,地图下钻

1.使用threejs实现3D影像地图效果&#xff0c;整体效果看起来还可以&#xff0c;底层抽象了基类&#xff0c;实现了通用&#xff0c;对任意省份&#xff0c;城市都可以只替换数据&#xff0c;即可轻松实现效果。 效果如下&#xff1a; 链接https://www.bilibili.com/video/BV1…

HMI界面:是工业自动化的“窗口”,大有用武之地。

Hello&#xff0c;我是大千UI工场&#xff0c;本期分享HMI人机交互界面在工业自动化领域的应用&#xff0c;关注大千&#xff0c;学习N多UI干货&#xff0c;有设计需求&#xff0c;我们也可以接单。 HMI&#xff08;Human Machine Interface&#xff0c;人机界面&#xff09;在…