听到去野餐就蹦蹦跳跳,谷歌用大模型教机器狗听懂模糊指令

更新时间:2023-09-07 18:08:18作者:无忧百科

听到去野餐就蹦蹦跳跳,谷歌用大模型教机器狗听懂模糊指令

选自谷歌研究博客

机器之心编译

编辑:Panda W

说一句「我们去野餐吧!」,机器狗竟高兴得蹦蹦跳跳;告诉它地面非常热,机器狗会一路小跑。难道机器狗能「听懂」人话了?某种程度上说确实如此。近日,谷歌研究博客介绍了 DeepMind 入选机器人学习会议 CoRL 2023 的一篇论文,其中提出的 SayTap 方法使用了大型语言模型,可将自然语言指令转译成四足机器人的低层控制信号,而且这些指令可以相当模糊。

人类和四足机器人之间简单有效的交互是创造能干的智能助理机器人的途径,其昭示着这样一个未来:技术以超乎我们想象的方式改善我们的生活。对于这样的人类-机器人交互系统,关键是让四足机器人有能力响应自然语言指令。

近来大型语言模型(LLM)发展迅速,已经展现出了执行高层规划的潜力。然而,对 LLM 来说,理解低层指令依然很难,比如关节角度目标或电机扭矩,尤其是对于本身就不稳定、必需高频控制信号的足式机器人。因此,大多数现有工作都会假设已为 LLM 提供了决定机器人行为的高层 API,而这就从根本上限制了系统的表现能力。

在 CoRL 2023 论文《SayTap: Language to Quadrupedal Locomotion》中,谷歌 DeepMind 与东京大学提出了一种新方法,该方法使用足部接触模式作为连接人类的自然语言指令与输出低层命令的运动控制器的桥梁。



足部接触模式(foot contact pattern)是指四足智能体在移动时足放在地上的顺序和方式。他们基于此开发出了一种交互式四足机器人系统,让用户可以灵活地制定不同的运动行为,比如用户可以使用简单的语言命令机器人走、跑、跳或执行其它动作。

他们的贡献包括一种 LLM prompt 设计、一个奖励函数和一种能让 SayTap 控制器使用可行的接触模式分布的方法。

研究表明 SayTap 控制器能够实现多种运动模式,并且这些能力还能迁移用于真实机器人硬件。

SayTap 方法

SayTap 方法使用了一种接触模式模板,该模板是一个由 0 和 1 构成的 4 X T 矩阵,其中 0 表示智能体的脚在空中,1 表示脚落在地面。从上至下,该矩阵的每一行分别给出了左前足(FL)、右前足(FR)、左后足(RL)、右后足(RR)的足部接触模式。SayTap 的控制频率为 50 Hz,即每个 0 或 1 持续 0.02 秒。这项研究将所需足部接触模式定义为一个大小为 L_w、形状为 4 X L_w 的循环滑动窗口。该滑动窗口会从接触模式模板提取四足的接地标志,其指示了在时间 t + 1 和 t + L_w 之间机器人足是在地面还是在空中。下图给出了 SayTap 方法的概况。



SayTap 方法概述

SayTap 引入的所需足部接触模式可作为自然语言用户命令与运动控制器之间的新接口。运动控制器是用于完成主要任务的(比如遵循指定的速度)以及用于在特定时间将机器人足放在地上,以使实现的足部接触模式尽可能接近所需的接触模式。

为了做到这一点,在每个时间步骤,运动控制器以所需的足部接触模式为输入,再加上本体感官数据(如关节位置和速度)及任务相关输入(如特定于用户的速度命令)。DeepMind 使用了强化学习来训练该运动控制器,并将其表征成一个深度神经网络。在控制器的训练期间,研究者使用了一个随机生成器来采样所需的足部接触模式,然后优化策略以输出能实现所需足部接触模式的低层机器人动作。而在测试时间,则是使用 LLM 将用户指令转译成足部接触模式。



SayTap 使用足部接触模式作为连接自然语言用户指令和低层控制命令的桥梁。SayTap 既支持简单直接的指令(比如「向前慢速小跑」),也支持模糊的用户命令(比如「好消息,我们这个周末去野餐!)。通过基于强化学习的运动控制器,能让四足机器人根据命令做出反应。

研究表明:使用适当设计的 prompt,LLM 有能力准确地将用户命令映射到特定格式的足部接触模式模板中,即便用户命令是非结构化的或模糊的。在训练中,研究者使用随机模式生成器生成了多种接触模式模板,它们有不同的模式长度 T、基于给定步态类型 G 在一个周期内的足地接触比,使得运动控制器能够在广泛的运动模式分布上学习,获得更好的泛化能力。更多详情请参阅论文。

实验结果

使用一个仅包含三种常见足部接触模式上下文样本的简单 prompt,LLM 可将各种人类命令准确地转译成接触模式,甚至泛化用于那些没有明确指定机器人应当如何行为的情况。

SayTap prompt 简洁紧凑,包含四个组分:

(1) 用于描述 LLM 应完成的任务的一般性说明;

(2) 步态定义,用于提醒 LLM 关注有关四足步态的基本知识以及它们与情绪的关联;

(3) 输出格式定义;

(4) 演示示例,让 LLM 学习在上下文中的情况。

研究者还设定了五种速度,让机器人可以前进或后退、快速或慢速、或保持不动。

General instruction blockYou are a dog foot contact pattern expert.Your job is to give a velocity and a foot contact pattern based on the input.You will always give the output in the correct format no matter what the input is.Gait definition blockThe following are description about gaits:1. Trotting is a gait where two diagonally opposite legs strike the ground at the same time.2. Pacing is a gait where the two legs on the left/right side of the body strike the ground at the same time.3. Bounding is a gait where the two front/rear legs strike the ground at the same time. It has a longer suspension phase where all feet are off the ground, for example, for at least 25% of the cycle length. This gait also gives a happy feeling.Output format definition blockThe following are rules for describing the velocity and foot contact patterns:1. You should first output the velocity, then the foot contact pattern.2. There are five velocities to choose from: [-1.0, -0.5, 0.0, 0.5, 1.0].3. A pattern has 4 lines, each of which represents the foot contact pattern of a leg.4. Each line has a label. "FL" is front left leg, "FR" is front right leg, "RL" is rear left leg, and "RR" is rear right leg.5. In each line, "0" represents foot in the air, "1" represents foot on the ground.Example blockInput: Trot slowlyOutput: 0.5FL: 11111111111111111000000000FR: 00000000011111111111111111RL: 00000000011111111111111111RR: 11111111111111111000000000Input: Bound in placeOutput: 0.0FL: 11111111111100000000000000FR: 11111111111100000000000000RL: 00000011111111111100000000RR: 00000011111111111100000000Input: Pace backward fastOutput: -1.0FL: 11111111100001111111110000FR: 00001111111110000111111111RL: 11111111100001111111110000RR: 00001111111110000111111111Input:

用于 LLM 的 SayTap prompt。蓝色文本是用于说明的,不是 LLM 的输入。

遵循简单和直接的命令

下面的动图展示了 SayTap 成功执行直接清晰命令的示例。尽管某些命令并不包含在三个上下文示例之中,但依然可以引导 LLM 表达出其在预训练阶段学习到的内部知识,这会用到 prompt 中的「步态定义模块」,即上面 prompt 中第二个模块。





遵循非结构化或模糊的命令

但更有趣的是 SayTap 处理非结构化和模糊指令的能力。只需一点提示即可将某些步态与一般情绪印象联系起来,比如机器人在听到让其兴奋的消息(如「我们去野餐吧!」)后会上下跳跃。此外,它还能准确地呈现出场景,比如当被告知地面非常热时,机器人会快速移动,让脚尽量少接触地面。









总结和未来工作

SayTap 是一个用于四足机器人的交互式系统,其允许用户灵活地制定不同的运动行为。SayTap 引入了所需足部接触模式作为自然语言与低层控制器之间的接口。这种新接口简单直接又很灵活,此外,它既支持机器人遵循直接指令,也支持机器人遵从没有明确说明机器人行为方式的命令。

DeepMind 的研究者表示,未来一大研究方向是测试暗含特定感受的命令是否能让 LLM 输出所需步态。在上面结果的步态定义模块中,研究者提供了一个将开心情绪与跳动步态联系起来的句子。如果能提供更多信息,也许能增强 LLM 解释命令的能力,比如解读隐含的感受。在实验评估中,开心情绪与跳动步态的联系能让机器人在遵从模糊的人类指令行动时表现得充满活力。另一个有趣的未来研究方向是引入多模态输入,比如视频和音频。理论上讲,从这些信号转译而来的足部接触模式也适用于这里新提出的工作流程,并有望开创更多有趣的用例。

原文链接:https://blog.research.google/2023/08/saytap-language-to-quadrupedal.html