Google机器人团队获ICRA 2023 机器人学习方向最佳论文奖:机器人实体控制的大语言模型程序

这篇论文主要讨论了大型语言模型(LLM)在机器人控制方面的应用。作者们指出,尽管LLM在理解和生成自然语言方面表现出色,但其在实际应用中,如机器人控制等领域的应用仍然有限。因此,他们提出了一种新的方法,即使用LLM编写代码来控制机器人的行为。
在这里插入图片描述

他们发现,编写代码的LLM在规划、策略逻辑和控制方面表现出色。这些模型可以被重新用于编写机器人策略代码,给出自然语言命令(格式化为注释)。策略代码可以表达处理感知输出(例如,开放词汇对象检测器)和参数化控制原语API的函数或反馈循环。当提供了几个示例语言命令和相应的策略代码(通过少量提示),LLM可以接收新的命令并自主重新组合API调用以生成新的策略代码。此外,编写代码的模型可以表达各种算术运算以及基于语言的反馈循环。他们不仅可以推广到新的指令,而且由于在数十亿行代码和注释上进行了训练,也可以根据上下文为模糊的描述(例如,“更快”和“向左”)规定精确的值,以引出行为常识。

方法部分,作者们详细介绍了如何使用大型语言模型(LLM)生成代码作为策略。他们的方法主要包括以下几个步骤:

1.定义语言模型程序(LMP):作者们首先定义了语言模型程序(LMP)的概念。LMP是由语言模型生成并在系统上执行的任何程序。他们的工作主要研究了一类名为“代码作为策略”的LMP,这类LMP将语言指令映射到代码片段,这些代码片段可以(i)响应感知输入(即来自传感器或传感器上层的模块),(ii)参数化控制原语API,并(iii)直接在机器人上编译和执行。

2.生成LMP:作者们展示了如何使用LLM生成LMP。他们提供了一些示例,如何将自然语言指令(格式化为注释)转化为代码。例如,他们展示了如何使用LLM编写代码来控制机器人的行为,如移动物体,识别物体,以及执行更复杂的任务。

3.执行LMP:为了执行LMP,他们首先检查它是否安全运行,确保没有导入语句,没有以__开头的特殊变量,也没有对exec和eval的调用。然后,他们使用Python的exec函数,将代码作为输入字符串,并使用两个字典形成该代码执行的范围:(i)全局变量,包含生成的代码可能调用的所有API,和(ii)局部变量,一个将在exec期间定义的变量和新函数填充的空字典。如果LMP预计会返回一个值,他们会在exec完成后从局部变量中获取它。

4.提示生成LMP:生成LMP的提示包含两个元素:(i)提示,例如导入语句,告诉LLM哪些API可用以及如何使用这些API;(ii)示例,这些是指令到代码对,展示了如何将自然语言指令转化为代码。这些可能包括执行算术运算,调用其他API,以及编程语言的其他特性。

5.高级LMP:作者们还展示了如何使用LLM生成更复杂的代码,如使用控制流(如if-else和循环语句)和嵌套函数调用。他们还展示了如何使用LLM生成函数以供未来使用,以及如何使用LLM遵循良好的抽象实践,避免将所有代码逻辑“扁平化”。

在这篇论文的实验部分,作者们展示了如何使用大型语言模型(LLM)编写代码来控制机器人的行为。他们提供了一些示例,包括如何使用LLM编写Python脚本,如何使用第三方库进行复杂操作,以及如何使用第一方库进行操作。他们还展示了如何使用LLM编写更复杂的代码,如使用控制流(如if-else和循环语句)和嵌套函数调用。

在这里插入图片描述

在实验中,他们使用了一些具体的任务来展示他们的方法的效果。例如,他们展示了如何使用LLM编写代码来移动物体,如何识别物体,以及如何执行更复杂的任务。他们还展示了如何使用LLM生成函数以供未来使用,以及如何使用LLM遵循良好的抽象实践,避免将所有代码逻辑“扁平化”。

以下是一些具体的实验示例:

1.他们展示了如何使用LLM编写代码来移动物体。例如,他们展示了如何使用LLM编写代码来移动一个名为“红色块”的物体。他们首先获取该物体的位置,然后将其向右移动一定的距离。

2.他们展示了如何使用LLM编写代码来识别物体。例如,他们展示了如何使用LLM编写代码来识别一个名为“蓝色块”的物体。他们使用了一个开放词汇的物体检测器来完成这个任务。

3.他们展示了如何使用LLM编写代码来执行更复杂的任务。例如,他们展示了如何使用LLM编写代码来将一个名为“蓝色块”的物体放在一个名为“蓝色碗”的物体上。

4.他们展示了如何使用LLM生成函数以供未来使用。例如,他们展示了如何使用LLM编写代码来定义一个名为“get_total”的函数,该函数接受一个名为“xs”的参数,并返回其总和。

5.他们展示了如何使用LLM遵循良好的抽象实践,避免将所有代码逻辑“扁平化”。例如,他们展示了如何使用LLM编写代码来定义一个名为“get_objs_bigger_than_area_th”的函数,该函数接受两个参数——一个名为“obj_names”的物体名列表和一个名为“bbox_area_th”的阈值,然后返回所有大于该阈值的物体的名字。

这些实验结果表明,LLM可以有效地用于编写控制机器人行为的代码,具有很高的实用性和广泛的应用前景。
在这里插入图片描述

最后作者们总结了他们的研究成果,并对未来的研究方向进行了展望。他们认为,大型语言模型(LLM)在编写代码方面的能力为机器人控制提供了新的可能性。通过使用LLM,我们可以将自然语言指令转化为机器人策略代码,从而实现更复杂的机器人行为。此外,他们还指出,LLM不仅可以理解和生成自然语言,还可以通过使用"say(text)"作为一个可用的动作原语API,参与人机对话和问答。他们的研究结果表明,LLM可以有效地编写Python程序,并能够处理各种复杂的任务,如移动物体,识别物体,以及执行更复杂的任务。他们的方法不仅可以广泛应用于机器人控制,还可以用于其他需要编写代码的领域。

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

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

相关文章

通过栈将中缀表达式转换为等价的后缀表达式

为什么要从中缀表达式转换为等价的后缀表达式? →使后缀表达式包含运算符优先级的信息,方便计算机能理解进行运算。 什么是中缀表达式? →中缀表达式虽然是人类看得懂的简单算术形式,但对计算机来说反而复杂难以理解 什么是后缀表…

【头歌实训】PySpark Streaming 入门

文章目录 第1关:SparkStreaming 基础 与 套接字流任务描述相关知识Spark Streaming 简介Python 与 Spark StreamingPython Spark Streaming APISpark Streaming 初体验(套接字流) 编程要求测试说明答案代码 第2关:文件流任务描述相…

<JavaEE> TCP 的通信机制(三) -- 滑动窗口

目录 TCP的通信机制的核心特性 四、滑动窗口 1)什么是滑动窗口? 2)滑动窗口的作用是什么? 3)批量传输出现丢包如何处理? 1> 接收端ACK丢包 2> 发送端数据包丢包 4)适用性 TCP的通…

Mysql 容易忘的 sql 指令总结

目录 一、操作数据库的基本指令 二、查询语句的指令 1、基本查询语句 2、模糊查询 3、分支查询 4、 分组查询 5、分组查询 6、基本查询总结: 7、子查询 8、连接查询 三、MySQL中的常用函数 1、时间函数 2、字符串函数 3、聚合函数 4、运算函数 四、表…

【elk-day01】es和kibana搭建及验证---Mac-Docker

Mac系统使用Docker下载搭建和验证eskibana Docker下载安装es安装es验证kibana安装kibana验证 Docker下载安装 Docker Desktop官网安装下载地址 说明一下为什么要安装desktop版本的docker,因为docker作为工具使用,我们需要的是开箱即用,没有必…

QT中的信号与槽的讲解

文章目录 信号及其特点槽及其特点代码演示标准信号与标准槽函数方式一方式二 自定义信号和槽connect()函数信号和槽函数存在函数重载的情况下Qt的信号槽机制注意事项 信号及其特点 信号:是一种特殊的函数,又称信号函数,俗称信号,…

2023年新一代开发者工具 Vue ,正式开源!

以下文章来源于前端充电宝 ,作者CUGGZ 近日,Vue 新一代开发者工具(DevTools)正式开源!Vue DevTools 是一个旨在增强 Vue 开发人员体验的工具,它提供了一些功能来帮助开发者更好地了解 Vue 应用。下面就来看…

第九部分 图论

目录 例 相关概念 握手定理 例1 图的度数列 例 无向图的连通性 无向图的连通度 例2 例3 有向图D如图所示,求 A, A2, A3, A4,并回答诸问题: 中间有几章这里没有写,感兴趣可以自己去学,组合数学跟高中差不多&#xff0c…

记录汇川:MODBUS TCP-梯形图

H5U的MODBUS通信不需要编写程序,通过组态MODBUS通信配置表,实现数据通信。 Modbus-TCP 主站即Modbus-TCP客户端,通过Modbus-TCP配置,可最多支持同时与31个 Modbus-TCP服务器(从站)进行通讯。 …

【51单片机系列】DS18B20温度传感器模块

本文是关于温度传感器的相关内容。 文章目录 一、 DS18B20数字温度传感器介绍1.1、 DS18B20温度传感器的特点1.2、DA18B20内部结构1.3、 DS18B20的温度转换规则1.4、 DS18B20的ROM指令表1.6、 计算温度1.7、 读写时序 二、DS18B20使用示例 一、 DS18B20数字温度传感器介绍 DS1…

CloneNotSupportedException的解决方案 + Object的clone方法分析

CloneNotSupportedException的解决方案 引入问题: 在一次测试clone方法时,D类Override了Object类的clone方法 public class D {private Integer A1;private Integer A2;public D() {}public D(Integer a1, Integer a2 {A1 a1;A2 a2;}Overrideprotec…

Vlan的封装模式和端口讲解(Access、Trunk、Hypbrid端口)

目录 Vlan的封装模式 ISL协议 802.1Q协议 二层接口类型 Access接口 Trunk接口 Hybrid接口 不同Vlan之间的通信 Vlan的作用(Vlan工作于OSI参考模型的第二层) Vlan(Virtual Local Area Network)虚拟局域网,将一个…

公司电脑文件加密系统——防止内部核心文件数据 | 资料外泄,自动智能透明加密保护

一套从源头上保障企业电脑数据安全和电脑使用安全的加密软件。天锐绿盾加密软件包含了表格数据加密、图纸加密、文档文件加密、内网文件加密流转、密级管控、电脑离线管理、文件外发管理、灵活的审批流程、工作模式切换、服务器白名单等功能。天锐绿盾加密系统全面覆盖Mac、Win…

WeNet语音识别分词制作词云图

在线体验 ,点击识别语音需要等待一会,文件太大缓存会报错 介绍 本篇博客将介绍如何使用 Streamlit、jieba、wenet 和其他 Python 库,结合语音识别(WeNet)和词云生成,构建一个功能丰富的应用程序。我们将深入了解代码…

用CSS中的动画效果做一个转动的表

<!DOCTYPE html> <html lang"en"><head><meta charset"utf-8"><title></title><style>*{margin:0;padding:0;} /*制作表的样式*/.clock{width: 500px;height: 500px;margin:0 auto;margin-top:100px;border-rad…

力扣:62. 不同路径(动态规划,附python二维数组的定义)

题目&#xff1a; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&…

使用vmware,在ubuntu18.04中使用笔记本的摄像头

步骤1&#xff1a;在windows中检查相机状态 win10系统中&#xff0c;在左下的搜索栏&#xff0c;搜索“相机”&#xff0c;点击进入即可打开相机&#xff0c;并正常显示图像。 注意&#xff1a;如果相机连接到了虚拟机&#xff0c;则不能显示正常。 步骤2&#xff1a;在ubuntu…

百度沧海文件存储CFS推出新一代Namespace架构

随着移动互联网、物联网、AI 计算等技术和市场的迅速发展&#xff0c;数据规模指数级膨胀&#xff0c;对于分布式文件系统作为大规模数据场景的存储底座提出了更高的要求。已有分布式文件系统解决方案存在着短板&#xff0c;只能适应有限的场景&#xff1a; >> 新型分布式…

Vue.js学习笔记(1)——Visual Studio Code搭建Vue.js框架

1 安装Node.js 1、下载安装包&#xff1a;进入官网&#xff08;https://nodejs.org/en&#xff09;&#xff0c;下载左侧的稳定版。 2、选择安装位置&#xff0c;不用勾选自动安装必要工具。 其他都默认Next。 配置环境&#xff0c;具体参考本文章&#xff1a; https://blo…

性能测试-jmeter:安装 / 基础使用

一、理解jmeter 官网-Apache JMeter-Apache JMeter™ JMeter是一款开源的性能测试工具&#xff0c;主要用于模拟大量用户并发访问目标服务器&#xff0c;以评估服务器的性能和稳定性。 JMeter可以执行以下任务序号用途描述1性能测试通过模拟多个用户在同一时间对服务器进行请…