ChatGPT 控制机器人的基本框架

       

        过去的一年,OpenAI的chatGPT将自然语言的大型语言模型(LLM)推向了公众的视野,人工智能AI如一夜春风吹遍了巴黎,全世界都为AI而疯狂。

      OpenAI ChatGPT是一个使用人类反馈进行微调的预训练生成文本模型。不像以前的模型主要在单个提示符上操作,ChatGPT通过对话提供了特别令人印象深刻的交互技能,结合了文本生成和代码合成。这些模型正在广泛的应用中发生革命性的变化。这些模型在文本生成、机器翻译和代码合成等各种任务中取得了显著的成果。进而迅速发展到文生图,文生视频的阶段,几个月前,SORA的出现更使人们惊呼人工智能时代已经到了。

  到目前为止,chatGPT输出的文本对于人类而言,已经近乎于完美,而生成的图片和视频不乏惊艳之作。但是生产的文本依然会出现文不对题的现象,而且每次输出的文本存在区别。而图片和视频还略显幼稚。有待进一步地提升。

    基于大语言模型的各种生成系统的不确定性和错误的风险,给人们一个感觉,将LLM 应用于物理设备的控制目前仍然是不现实的。LLM 在工业领域的应用仅限于知识库,图像识别的少数领域。

     本文介绍国外论文中的一些内容,探讨ChatGPT的能力是否以及如何推广到机器人领域。如果控制物理的机器人成为可能,那么将chatGPT技术延伸到物理世界就只是时间问题了。

基本思路

        机器人系统与纯文本应用程序不同,需要对现实世界的物理、环境背景以及执行物理动作的能力有深刻的理解。生成式机器人模型需要具有强大的常识性知识和复杂的世界模型,以及与用户交互的能力,以物理上可能且在现实世界中有意义的方式解释和执行命令。这些挑战超出了语言模型的原始范围,因为它们不仅必须理解给定文本的含义,还必须将意图转化为物理动作的逻辑序列。

        鉴于机器人技术是一个多种多样的领域,存在多种平台、场景和工具,因此存在各种各样的库和api。我们没有要求LLM输出特定于平台或库的代码,这可能涉及大量的微调,而是为ChatGPT创建一个简单的高级函数库来处理,然后可以在后端链接到所选择平台的实际api。因此,我们允许ChatGPT从自然对话中解析用户意图,并将其转换为高级函数调用的逻辑链。

        从上图可见,机器人的控制依然保留了现有工程控制的方式,使用API和程序库来控制机器人的动作,这里将会使用各种数字化模型,例如OPCUA ,工业4.0 管理壳等。物理设备仍然基于已有的数学模型,物理原理和机电控制算法来控制,我们并没有打算让chatGPT 来代替传统的工程设计,而是为chatGPT构建一个连接物理世界的接口。

机器人与ChatGPT

        推动机器人控制的LLM提出了几个挑战,例如提供对问题的完整而准确的描述,识别允许的函数调用和api的正确集合,以及使用特殊参数使答案结构有偏差。为了在机器人应用程序中有效地使用ChatGPT,我们构建了一个由以下步骤组成的管线:

  1. 定义一个高级机器人函数库。此库可以特定于感兴趣的形式因素或场景,并且应该映射到机器人平台上的实际实现,同时具有足够的描述性以供ChatGPT遵循;
  2. ChatGPT构建一个提示符( prompt),它描述了目标,同时还标识了库中允许的高级函数集。提示符还可以包含有关约束的信息,或者ChatGPT应该如何构建其响应;
  3. 用户在循环中评估ChatGPT输出的代码,通过直接分析或模拟,并向ChatGPT提供关于输出代码质量和安全性的反馈;
  4. 在对chatgpt生成的实现进行迭代之后,可以将最终代码部署到机器人上。

      通过这项工作,人们希望为融合LLM和机器人技术的未来研究开辟新的机会和途径。我们相信,我们的研究结果将启发和指导这个令人兴奋的领域的进一步研究,为开发新的、创新的机器人系统铺平道路,这些系统可以以自然、直观的方式与人类互动。

机器人API库的构建和描述

        机器人技术是一个成熟的领域,已经存在大量的库,无论是黑盒还是开源,都可以用于感知和动作领域的基本功能(例如对象检测和分割,映射,运动规划,控制,抓取)。如果在提示符中适当指定,LLM能够使用这些预定义的功能进行机器人推理和执行。

        提示符设计的一个重要要求是,所有API名称必须描述整个函数行为。明确的名称对于LLM推断api之间的功能连接并为问题产生所需的结果至关重要。因此,我们可以定义高级函数,它们作为来自各自库的实际实现的包装器。例如,一个名为detect_object(object_name)的函数可以在内部链接到一个OpenCV函数或一个计算机视觉模型,而像move_to(x, y, z)这样的函数可以在内部调用一个运动规划和避障管道,以及用于无人机的适当的低级电机命令。在提示符中列出这样一组高级函数是允许ChatGPT创建行为原语的逻辑序列,以及推广到不同场景和平台的关键。

提示符中清晰地描述任务细节

        通过提供对所需机器人任务及其上下文的清晰而简洁的描述,ChatGPT可以生成更准确的响应。除了机器人的api,一个好的上下文描述应该包含:

  • 约束和需求:指定与任务相关的约束或需求。如果任务涉及移动物体,你可以指定要移动的物体的重量、大小和形状。
  • 环境:描述机器人任务发生的环境。例如,如果任务是在迷宫中穿行,你可能会描述迷宫的大小和形状,以及需要避开的障碍物或危险。
  • 当前状态:描述机器人系统的当前状态。例如,如果任务是捡起一个物体,你可能会描述机器人和物体的当前位置和方向。
  • 目标和目的:陈述任务的目标和目的。如果任务是组装一个拼图,你可以指定需要组装的碎片的数量和期望的完成时间。
    •  解决方案示例:演示如何解决类似的任务,作为指导LLM案策略的一种手段。例如,如果一个任务涉及到与用户的交互,我们可以描述一个例子,说明机器人应该如何以及何时要求用户输入。注意,启动也会引入偏差,所以我们应该提供多样化的例子,避免过度规定性的语言。  
    • 任务描述

    • 完成提示工程之后,就可以向chatGPT 提出任务了,下面是一个例子

        为机器人问题定义不同api时的良好提示实践示例。明确机器人可以执行的函数定义,明确说明任务目标 。

                即使是设计良好的提示也可能不包含解决问题所需的所有必要信息,或者在某些情况下,ChatGPT无法以零概率的方式生成正确的响应。在这些情况下,我们发现用户可以采取的一个简单而有效的策略是,以聊天格式向ChatGPT发送描述问题的附加指令,并让它自行纠正。以前依赖于GPT-3模型的方法。要求用户重新设计输入提示符并从头生成新的输出。然而,ChatGPT的对话功能是一种非常有效的行为纠正工具。

仿真的重要性

        虽然ChatGPT的功能令人印象深刻,但不应忽视实际部署的安全考虑,特别是在物理机器人部署的情况下。 我们发现在ChatGPT产生意外行为的情况下,有必要让一个人在循环中进行监视和干预。此外,在将模型部署到现实世界之前,使用模拟器对评估模型的性能特别有帮助。我们强调,ChatGPT在机器人中的应用并不是一个完全自动化的过程,而是作为一种增强人类能力的工具。

结束语

        当chatGPT后,人们最沮丧的事情也许是突然发现过去的艰辛努力获得的经验,技术突然之间被AI白嫖了,而且自己在未来的角色也显得不重要了。这就是AI代替和超越人类的终结目标。现在看来并非如此。让AI 直接从头学习和理解物理世界是不现实的。将AI作为思考,推演和交互工具,与传统的物理系统作为观测与执行机构相结合是可行之路。今天,我们在解决IT/OT 融合,在不远的将来,我们将面临AI/OT的融合。

  •     AI/OT的融合是一个有趣的话题,也是可以马上开始的探索之路。

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

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

相关文章

每日一练:LeeCode-209、长度最小的子数组【滑动窗口+双指针】

每日一练:LeeCode-209、长度最小的子数组【滑动窗口双指针】 思路暴⼒解法滑动窗口 本文是力扣 每日一练:LeeCode-209、长度最小的子数组【滑动窗口双指针】 学习与理解过程,本文仅做学习之用,对本题感兴趣的小伙伴可以出门左拐 L…

《剑指 Offer》专项突破版 - 面试题 76 : 数组中第 k 大的数字(C++ 实现)

目录 详解快速排序 面试题 76 : 数组中第 k 大的数字 详解快速排序 快速排序是一种非常高效的算法,从其名字可以看出这种排序算法最大的特点是快。当表现良好时,快速排序的速度比其他主要对手(如归并排序)快 2 ~ 3 倍。 快速排…

力扣---腐烂的橘子

题目&#xff1a; bfs思路&#xff1a; 感觉bfs还是很容易想到的&#xff0c;首先定义一个双端队列&#xff08;队列也是可以的~&#xff09;&#xff0c;如果值为2&#xff0c;则入队列&#xff0c;我这里将队列中的元素定义为pair<int,int>。第一个int记录在数组中的位…

嵌入式驱动学习第二周——使用perf进行性能优化

前言 这篇博客来聊一聊如何使用perf进行性能优化。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程&#xff0c;未来预计四个月将高强度更新本专栏&#xff0c;喜欢的可以关注本博主并订阅本专栏&#xff0c;一起讨论一起学习。现在关注就是老粉啦&#xff01; 目录 前言…

考研复习C语言初阶(4)+标记和BFS展开的扫雷游戏

目录 1. 一维数组的创建和初始化。 1.1 数组的创建 1.2 数组的初始化 1.3 一维数组的使用 1.4 一维数组在内存中的存储 2. 二维数组的创建和初始化 2.1 二维数组的创建 2.2 二维数组的初始化 2.3 二维数组的使用 2.4 二维数组在内存中的存储 3. 数组越界 4. 冒泡…

HarmonyOS NEXT应用开发之MpChart图表实现案例

介绍 MpChart是一个包含各种类型图表的图表库&#xff0c;主要用于业务数据汇总&#xff0c;例如销售数据走势图&#xff0c;股价走势图等场景中使用&#xff0c;方便开发者快速实现图表UI。本示例主要介绍如何使用三方库MpChart实现柱状图UI效果。如堆叠数据类型显示&#xf…

FPGA的配置状态字寄存器Status Register

目录 简介 状态字定义 Unknown Device/Many Unknow Devices 解决办法 一般原因 简介 Xilinx的FPGA有多种配置接口&#xff0c;如SPI&#xff0c;BPI&#xff0c;SeletMAP&#xff0c;Serial&#xff0c;JTAG等&#xff1b;如果从时钟发送者的角度分&#xff0c;还可以…

2024/3/10周报

文章目录 摘要Abstract文献阅读题目问题创新点方法Section1&#xff1a;运动员检测Section2&#xff1a;行为识别输入层隐藏层输出层 实验实验数据评估指标模型设置实验结果 深度学习模糊逻辑系统概念模糊化模糊规则解模糊 总结 摘要 本周阅读了一篇关于基于YOLO和深度模糊LST…

131.分割回文串

// 定义一个名为Solution的类 class Solution {// 声明一个成员变量&#xff0c;用于存储所有满足条件的字符串子序列划分结果List<List<String>> lists new ArrayList<>(); // 声明一个成员变量&#xff0c;使用LinkedList实现的双端队列&#xff0c;用于临…

【Objective -- C】—— 自引用计数

【Objective -- C】—— 自引用计数 一. 内存管理/自引用计数1.自引用计数2.内存管理的思考方式自己生成的对象&#xff0c;自己持有非自己生成的对象&#xff0c;自己也能持有不再需要自己持有的对象时释放无法释放非自己持有的对象 3.alloc/retain/release/dealloc实现4. aut…

力扣--滑动窗口438.找到字符串中所有字母异位词

思路分析&#xff1a; 使用两个数组snum和pnum分别记录字符串s和p中各字符出现的次数。遍历字符串p&#xff0c;统计其中各字符的出现次数&#xff0c;存储在pnum数组中。初始化snum数组&#xff0c;统计s的前m-1个字符的出现次数。从第m个字符开始遍历s&#xff0c;通过滑动窗…

《YOLO5Face: Why Reinventing a Face Detector》为什么要重塑人脸检测器论文阅读

正好周末的时间天气也不错出去走走精神不错&#xff0c;回来读一篇论文这个论文之前查资料的时候看到的但是没有完整看下&#xff0c;今天正好花点时间整体看一下&#xff0c;下面是我自己阅读过程中使用翻译软件结合自己理解的阅读记录&#xff0c;感兴趣的话可以看下&#xf…

知识图谱 | 2023年图书馆学、情报学CSSCI期刊论文主题透视

数据来源 检索平台来源期刊年份有效数据中国知网大学图书馆学报国家图书馆学刊情报科学情报理论与实践情报学报情报杂志情报资料工作数据分析与知识发现图书馆建设图书馆论坛图书馆学研究图书馆杂志图书情报工作图书情报知识图书与情报现代情报信息资源管理学报中国图书馆学报2…

性能测试高阶内容:了解TPS和RT之间关系

引言 在开始今天的内容讲解之前&#xff0c;我们应该回顾一下&#xff0c;在我的全链路压测专栏中的第一篇&#xff0c;我就已经介绍了当前的性能测试在互联网企业中的重要性&#xff0c;已经性能在互联网行业中的占比是多少。 这个时候是不是会有同学问我&#xff0c; 你已经…

JVM-1

目录 1.基础知识 1.栈 2.本地方法栈 3.程序计数器 4.堆 5.方法区 6.JVM内存可见性 2.虚拟机类加载机制 1.加载 2.验证 3.准备 4.解析 5.初始化 6.使用 7.卸载 1.基础知识 JVM内存模型&#xff08;5种&#xff09;&#xff1a;栈&#xff0c;本地方法栈&#xff…

Java项目:44 ssm003在线医疗服务系统+jsp(含文档)

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 主要功能 前台登录&#xff1a; 注册用户&#xff1a;用户名、密码、姓名、联系电话 注册医生&#xff1a;医生工号、密码、医生姓名、职称、联系电话…

【Python】专栏文章索引

为了方便 快速定位 和 便于文章间的相互引用等 作为一个快速准确的导航工具 Python 目录&#xff1a; &#xff08;一&#xff09;装饰器函数 &#xff08;二&#xff09;牛客网—软件开发-Python专项练习 &#xff08;三&#xff09;time模块

数据结构与算法第三套试卷

1.删除链表节点 **分析&#xff1a;**首先用指针变量q指向结点A的后继结点B&#xff0c;然后将结点B的值复制到结点A中&#xff0c;最后删除结点B。 2.时间复杂度的计算 **分析&#xff1a;**当涉及嵌套循环的时候&#xff0c;我们可以直接分析内层循环即可&#xff0c;看内…

猫头虎分享已解决Bug || 批处理错误:BatchJobFailure, ProcessingDelay

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

太阳辐射环境模拟系统系统

太阳辐射环境模拟系统是一种高度专业化的设备&#xff0c;用于模拟太阳光的全谱段辐射&#xff0c;包括紫外线、可见光和红外线。这种系统的核心功能是在实验室条件下复制太阳的辐射条件&#xff0c;以评估材料、产品或设备在实际太阳辐射影响下的性能和耐久性。 应用领域&…