ChatGPT +工业机器人/自动驾驶控制器的一些尝试

ChatGPT 的功能目前已扩展到机器人领域,可以用语言直观控制如机械臂、无人机、家庭辅助机器人等的多个平台。这会改变人机交互的未来形式吗?

你可曾想过用自己的话告诉机器人该做什么,就像对人说话那样?

比如说,只要告诉你的家庭助理机器人「请帮我热一下午餐」,然后它就能自己找到微波炉。很神奇,对吗?

尽管语言是人类表达意图的最直观的方式,但此前很长一段时间,人们仍然严重依赖手写代码来实现对机器人的控制。不过,当 ChatGPT 出现之后,这种情况要变一下了。

在最近的一项研究中,微软团队在探索如何使用 OpenAI 的新 AI 语言模型 ChatGPT 来使自然的人机交互成为可能。

论文链接:
https://www.microsoft.com/en-us/research/uploads/prod/2023/02/ChatGPT___Robotics.pdf

ChatGPT 是一个在大量文本和人类互动语料库上训练的语言模型,因此应对广泛的 prompt 和问题时,它可以生成连贯且语法正确的响应。这项研究的目标是看看 ChatGPT 是否可以超越文本思考,并对现实世界进行推理,以帮助机器人完成任务。研究者希望以此便利人们与机器人的互动,而不需要学习复杂的编程语言或机器人系统的细节。

研究的关键挑战在于教会 ChatGPT:如何通过考虑物理定律、操作环境以及机器人运用肢体动作改变周遭环境的方式来解决问题。

事实证明,ChatGPT 本身可以做很多事情,但它仍然需要一些帮助。团队在论文中描述了一系列可用于指导语言模型解决机器人任务的设计原则,包括(但不限于)特别 prompt 结构、高级 API 和通过人类文本反馈。研究者认为,这项工作只是开发机器人系统的转变的开始,并且希望通过这项研究激励其他研究人员加入这个有趣的研究领域。

当今机器人技术面临的挑战,以及 ChatGPT 能提供的帮助

目前机器人的操作流是从工程师或技术用户开始,需要他们将任务需求转换为系统代码。工程师会处于工作流程的回路中,他们需要不断编写新的代码和规范来纠正机器人的行为。总得来说,这个过程是缓慢的(用户需要编写低级代码)、昂贵的(需要对机器人技术有深入了解的高技能用户)且低效的(需要多次交互才能正常运转)。

但 ChatGPT 开启了一种新的机器人范式,并允许潜在的非技术型用户参与到回路之中,在监视机器人性能的同时向大型语言模型(LLM)提供高级反馈。通过遵循研究的设计原则,ChatGPT 可以为机器人场景生成代码。在没有任何微调的情况下,研究利用 LLM 的知识来控制不同的机器人形状,以完成各种任务。工作中,研究人员展示了多个 ChatGPT 解决机器人难题的示例,以及在操作、空中和导航领域的复杂机器人部署。

机器人与 ChatGPT:设计原则

Prompting LLM 是一门高度实证的科学。研究通过反复试验建立了一套为机器人任务编写 prompt 的方法和设计原则:

首先,研究定义了一组高级机器人 API 或函数库。这个库可以特定于特定的机器人,并且可以映射到机器人的控制堆栈或感知库中现有的低级实现。对高级 API 使用描述性名称非常重要,这样 ChatGPT 就可以推断它们的行为;

接下来,研究人员为 ChatGPT 编写一个文本 prompt,它描述了任务目标,同时明确说明来自高级库的哪些函数是可用的。Prompt 还可以囊括关于任务约束的信息,或者 ChatGPT 应该如何形成其答案(特定的编码语言,使用辅助解析元素);

用户在回路中评估 ChatGPT 的代码输出,要么通过直接检查,要么使用模拟器。如果需要,用户可以使用自然语言向 ChatGPT 反馈答案的质量和安全性。

用户满意解决方案的话,代码就可以最终部署到机器人上。

理论已经够多了,ChatGPT 到底能做什么?

让我们参看几个例子,你还可以在代码库中找到更多案例研究。

零样本任务计划

研究人员让 ChatGPT 控制真正的无人机,经证明,它是非技术用户和机器人之间非常直观的基于语言的接口。当用户的指令含糊不清时,ChatGPT 会提出要明晰问题,并为无人机编写复杂的代码结构以直观地检查架构,例如锯齿形模式。它甚至学会了自拍!

研究人员还使用 Microsoft AirSim 模拟器在一个模拟工业检验场景中使用 ChatGPT。该模型能够有效地解析用户的高级意图和几何线索,从而准确地控制无人机。

回路中的用户:当复杂的任务需要对话时

接下来,研究人员将 ChatGPT 用于机械臂的操作场景,并使用对话反馈来教会模型如何将最初提供的 API 组合成更复杂的高级函数:ChatGPT 自动编程。该模型能够使用课程本位策略,按照逻辑将学习到的技能链接在一起,以执行诸如堆叠块等操作。

此外,当用木块构建微软标志时,该模型展示了一个连接文本和物理域的完美示例。它不仅能够从内部知识库中回忆 logo,还能够「绘制」logo(作为 SVG 代码),然后使用上面学到的技能来找出哪些现有的机器人动作可以构成其外形。

接下来,研究人员让 ChatGPT 编写一个算法,让无人机在达到空中目标的同时不撞上障碍物。他们告诉模型,这架无人机有一个面向前方的距离传感器,ChatGPT 立即为算法编写了大部分关键构建块。这项任务需要与人进行一些对话,ChatGPT 仅使用语言反馈就能进行本地化代码改进的能力令人印象深刻。

感知 - 行动回路:机器人在行动前感知世界

在做某事(行动)之前感知世界(感知)的能力是任何机器人系统的基础。因此,研究人员决定测试 ChatGPT 对这个概念的理解,并要求它探索一个环境,直到找到用户指定的对象。研究为模型提供了对象检测和对象距离 API 等功能,并验证了它生成的代码成功实现了感知 - 行动循环。

在实验阶段,研究者进行了额外的实验,以评估 ChatGPT 是否能够根据传感器反馈实时决定机器人应该去哪里(而不是让 ChatGPT 生成一个代码回路来做出这些决定)。有趣的是,恰好验证了可以在对话的每一步中输入相机图像的文本描述,并且模型能够弄清楚如何控制机器人,直到它到达特定的对象。

PromptCraft, LLM + 机器人研究的协作开源工具

良好的 Prompt 工程对于大型语言模型的成功至关重要,例如 ChatGPT 用于机器人任务。可惜,Prompt 是一门实证科学,缺乏全面和可访问的资源,其中能为该领域的研究人员和爱好者提供帮助的例子也是良莠不齐。为了弥合这一差距,研究者引入了「PromptCraft」,这是一个协作开源平台,任何人在这里都可以分享不同机器人类别的 Prompt 策略示例,而且,研究者公布了在这项研究中使用的所有 Prompt 和对话。

除了 Prompt 设计,研究还希望包括多个机器人模拟器和界面,允许用户测试他们的 ChatGPT 生成的算法。作为开始,研究还发布了一个与 ChatGPT 集成的 AirSim 环境,任何人都可以使用它来展开这些想法。

ChatGPT-AirSim 接口

让机器人走出实验室,走向世界

发布这些技术是一件值得庆祝的事,因为这会扩大机器人技术的受众面。微软的研究人员相信,基于语言的机器人控制将会为让机器人从科学实验室走进日常用户的生活中奠定基础。

本文要强调的是,在没有仔细分析的情况下,ChatGPT 的输出并不意味着要直接部署在机器人上。研究者鼓励用户利用模拟的力量,以便在潜在的现实生活部署之前评估这些算法,并始终采取必要的安全预防措施。本文所讲述的工作只代表了在机器人领域运行的大型语言模型的交集中可能实现的一小部分,希望能为更多的研究提供灵感。

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

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

相关文章

多个硬盘挂载到同一个目录

同一目录无法重复挂载,后挂载的会覆盖之前挂载的磁盘。但是现在需要将4块磁盘并行挂载,该如何操作呢? 将2块磁盘合并到一个逻辑卷 进行挂载。 基本知识 基本概念PV(Physical Volume)- 物理卷物理卷在逻辑卷管理中处于最底层,它可…

新能源锂电池行业除杂工艺介绍

近年来新能源汽车快速发展对锂电池的需求引发了人们对锂资源的高度关注。由于锂需求不断上升,全球锂资源越来越紧缺,而在生产含锂产品中会有大量废水、废渣。这些废水废渣含有丰富的锂,对其进行回收提锂具有极高的经济利益。在氟化锂生产中会…

文件操作介绍及C语言实现通讯录管理系统3.0最终版(文件操作版本)

文章目录1. 前言2. 文件操作2.1 什么是文件2.2 文件缓冲区2.3 文件指针2.4 文件的打开与关闭2.5 文件的顺序读写3. 优化通讯录3.1 保存通讯录3.2 加载通讯录4. 结尾1. 前言 上一篇文章我们学习了动态内存开辟的相关知识点,并用动态内存函数优化了我们的通讯录&…

【数据库连接,线程,ThreadLocal三者之间的关系】

一、数据库连接与线程的关系 在实际项目中,数据库连接是很宝贵的资源,以MySQL为例,一台MySQL服务器最大连接数默认是100, 最大可以达到16384。但现实中最多是到200,再多MySQL服务器就承受不住了。因为mysql连接用的是tcp协议&…

JAVA:常用API

一.什么是API? API(Application Programming Interface):应用程序编程接口。 简单的来说:就是Java帮我们已经写好的方法,我们可以直接使用。 二.有哪些常用的API? Object、Objects、StringB…

二战华为成功上岸,准备了小半年,要个27k应该也算不上很高吧~

先说下我基本情况,本科不是计算机专业,现在是学通信,然后做图像处理,可能面试官看我不是科班出身没有问太多计算机相关的问题,因为第一次找工作,华为的游戏专场又是最早开始的,就投递了&#xf…

二,八,十,十六进制等常用进制详解

总目录 文章目录总目录一、常用进制1、进制基本信息2、各进制的表示形式二、进制转换原理1、其他进制转为十进制计算原理2、十进制转为其他进制计算原理3、二进制,八进制,十六进制之间的转换结语一、常用进制 1、进制基本信息 基数数码名称描述20 和 1…

【C++】| C/C++内存管理

前言: 在上期,我们已经对类和对象的全部知识进行了总结和梳理。在类和对象学习完之后,今天我将给大家呈现的是关于——C/C内存管理的基本知识。 本文目录 1. C/C内存分布 2. C语言中动态内存管理方式 (1)C语言跟内…

php科研项目申报审批系统

目 录 1 绪论 4 1.1 开发背景 4 1.2 开发意义 4 1.3 相关知识介绍 4 1.3.1 Apache 4 1.3.2 MySQL 5 1.3.3 PHP 6 1.3.4 Dreamweaver CS3 7 1.4 本文所做的工作及组织结构 7 2 系统分析 7 2.1 需求分析 7 2.2 可行性分析 7 2.3 系统界面…

CSDN博客专家证书发放名单(2023年3月已更新)

目录 证书发放频次 6月(第一批)证书发放名单(80位) 7月(第二批)证书发放名单(50位) 8月(第三批)证书发放名单(54位) 9月&#xf…

2个月月活突破1亿,增速碾压抖音,出道即封神的ChatGPT,现在怎么样了?ChatGPT它会干掉测试?

从互联网的普及到智能手机,都让广袤的世界触手而及,如今身在浪潮中的我们,已深知其力。 前阵子爆火的ChatGPT,不少人保持观望态度。现如今,国内关于ChatGPT的各大社群讨论,似乎沉寂了不少,现在…

Prometheus监控实战之Exporter详解

1 exporter是什么? 广义上向prometheus提供监控数据的程序都可以成为一个exporter的,一个exporter的实例称为target, exporter来源主要2个方面,一个是社区提供的,一种是用户自定义的。 2 常用exporter 官方和一些社区提供好多ex…

彻底关闭Windows自动更新

彻底关闭Windows自动更新 目录 彻底关闭Windows自动更新 前言 Windows10彻底关闭自动更新方法步骤: 一、禁用Windows Update服务 二、在组策略里关闭Win10自动更新相关服务 三、禁用任务计划里边的Win10自动更新 四、在注册表中关闭Win10自动更新 前言 我们用…

易语言支持库配置闪退丨支持库配置崩溃_易语言打开支持库配置就闪退怎么办?

易语言支持库配置闪退打不开怎么办? 易语言支持库配置闪退解决方法丨支持库配置崩溃_易语言打开支持易语言支持库配置闪退丨支持库配置崩溃_易语言打开支持库配置就闪退怎么办? 很多人都遇到过 打开易语言支持库安装菜单报错退出的问题 今天教大家解决方法 我们…

4.2--Redis总结之高可用篇(关于哨兵机制)---(温故而知新篇)--加油呀

1.为什么要有哨兵机制? 在 Redis 的主从架构中,由于主从模式是读写分离的,如果主节点挂了,那么将没有主节点来服务客户端的写操作请求,也没有主节点给从节点进行数据同步了 哨兵机制,它的作用是实现主从节…

spring集成mybaits以注解方式完成连表查询练习

题目: 以注解的方式完成连表查询 1、查询全部员工信息,要求显示部门名称 2、根据姓名模糊查询员工信息 自己看完,建一个简单的员工表和部门表。 1、先创建一个maven模块,这里直接建的普通…

SpringMVC --- 获取请求参数、域对象共享数据、视图

一、SpringMVC获取请求参数 1.1、通过ServletAPI获取 将 HttpServletRequest 作为控制器方法的形参,此时 HttpServletRequest 类型的参数表示封装了当前请求的请求报文的对象 RequestMapping("/param/servletAPI")public String getParamByServletAPI(H…

从零开始实现一个C++高性能服务器框架----配置模块

此项目是根据sylar框架实现,是从零开始重写sylar,也是对sylar丰富与完善 项目地址:https://gitee.com/lzhiqiang1999/server-framework 简介 项目介绍:实现了一个基于协程的服务器框架,支持多线程、多协程协同调度&am…

【C++】多态(下)

文章目录1.单继承中的虚函数表整体代码用程序打印虚表如何寻找到虚表地址虚表存在哪里?2.多继承中的虚函数表整体代码寻找虚表地址注意事项多继承重写后的func1的地为什么地址不同?ptr1调用函数——一次jmpptr2 调用函数——多次jmp1.单继承中的虚函数表…

window环境 python ide 安装教程分享

一、 右键-以管理员身份运行 python.exe(以安装 3.8 的为例,安 装方法是一样的哈) 二、选择你的安装方式。 特别注意:需要把 Add Python ** to PATH 勾选上 ②Customize installation 是自定义安装,安装位置你可以自己…